线性表 链表实验报告链表线性表.docx

上传人:b****5 文档编号:5330010 上传时间:2022-12-15 格式:DOCX 页数:8 大小:15.99KB
下载 相关 举报
线性表 链表实验报告链表线性表.docx_第1页
第1页 / 共8页
线性表 链表实验报告链表线性表.docx_第2页
第2页 / 共8页
线性表 链表实验报告链表线性表.docx_第3页
第3页 / 共8页
线性表 链表实验报告链表线性表.docx_第4页
第4页 / 共8页
线性表 链表实验报告链表线性表.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

线性表 链表实验报告链表线性表.docx

《线性表 链表实验报告链表线性表.docx》由会员分享,可在线阅读,更多相关《线性表 链表实验报告链表线性表.docx(8页珍藏版)》请在冰豆网上搜索。

线性表 链表实验报告链表线性表.docx

线性表链表实验报告链表线性表

[线性表链表实验报告]链表线性表

实验一:

线性表运算的实现

班级姓名学号

一、实验预备知识

1复习C++中编写函数的相关内容。

2复习如何用主函数将多个函数连在一起构成一个C++完整程序。

二、实验目的

1掌握线性表的顺序和链式存储结构

2熟练运用线性表在顺序存储方式下的初始化、创建、输出、插入和删除运算

3熟练运用线性表在链式存储方式下的创建、输出、插入和删除运算

三、实验要求

1编写初始化并创建线性表和输出线性表的算法。

2编写对线性表插入和删除运算算法,要判断位置的合法性和溢出问题。

3编写一个主函数,将上面函数连在一起,构成一个完整的程序。

4将实验源程序调试并运行,写出输入、输出结果,并对结果进行分析。

四、实验步骤

◇顺序表实验内容:

1.给定的线性表为L=(12,25,7,42,19,38),元素由键盘输入。

2.初始化并建立顺序表。

3.编写顺序表输出算法。

(内存中开辟的单元数为8)

4.依次插入3,21,15三个数,分别插入在第4,6和2位置,每插入一次都要输出一次顺序表。

5.删除第5,第3和第12个位置上的元素,每删除一个元素都要输出一次顺序表。

◇单链表实验内容:

1.给定的线性表为L=(12,25,7,42,19,38),元素由键盘输入。

2.建立一个带表头结点的单链表(前插入法和尾插入法都可以)。

3.编写单链表输出算法。

4.依次插入3,21,15三个数,分别插入在第4,6和12位置,每插入一次都要输出一次单链表。

5.删除第5,第3和第12个位置上的元素,每删除一个元素都要输出一次单链表。

五、实验程序

◇顺序表实验

//LinkList.h

#defineMAXSIZE8

typedefintDataType;

typedefstruct{

DataTypedata[MAXSIZE];

intlast;

}Seqlist;

voidcreat_seqlist(Seqlist&s);

voiddisplay_seqlist(Seqlist&s);

intinsert_seqlist(Seqlist&s,inti,DataTypex);

intdelet_seqlist(Seqlist&s,inti);

//LinkList.cpp

#include

#include”Seqlist.h”

voidcreat_seqlist(Seqlist&s)

{

intx,i=0;

cout

cin>>x;

while(x!

=-1){

s.data[i]=x;

cin>>x;

i++;

}

s.last=i-1;

}

voiddisplay_seqlist(Seqlist&s)

{

inti;

cout

for(i=0;i

cout

cout

}

intinsert_seqlist(Seqlist&s,inti,DataTypex)

{

intj;

if(s.last==MAXSIZE-1){

}

couts.last+2){cout=i-1;j--)s.data[j+1]=s.data[j];s.data[i-1]=x;s.last++;return1;

intdelet_seqlist(Seqlist&s,inti)

{

intj;

if(is.last+1){

cout

return-1;

}

for(j=i;j

s.data[j-1]=s.data[j];

s.last--;

return1;

}

//main.cpp

#include

#include”Seqlist.h”

intmain()

{

intx,d,s;

Seqlists_list;

creat_seqlist(s_list);

cout>d;cout>x;s=insert_seqlist(s_list,d,x);if(s==1){cout>d;s=delet_seqlist(s_list,d);

}

if(s==1){cout

运行结果:

请输入数据(以输入-1结束)

12257421938-1

顺序表为:

12257421938

插入操作

请输入插入的位置:

4

请输入要插入的数据:

3

插入后的顺序表为:

122573421938

请输入插入的位置:

6

请输入要插入的数据:

21

插入后的顺序表为:

12257342211938

请输入插入的位置:

2

请输入要插入的数据:

15

表满!

删除操作

请输入删除元素的位置:

5

删除后的顺序表为:

122573211938

请输入删除元素的位置:

3

删除后的顺序表为:

12253211938

请输入删除元素的位置:

12

不存在该元素!

Pressanykeytocontinue

◇单链表实验

//LinkList.h

typedefintDataType;

typedefstructNode{

DataTypedata;

structNode*next;

}LNode,*LinkList;

voidCreat_LinkList(LinkList&L);//创建链表

voidShow_LinkList(LinkList&L);//显示数据

LNode*Get_LinkList(LinkList&L,inti);//获得第i个结点的地址intInsert_linklist(LinkList&L,inti,DataTypex);//插入结点

intDelete_LinkList(LinkList&L,inti);//删除结点

//LinkList.cpp

#include

#include”LinkList.h”

voidCreat_LinkList(LinkList&L)

{

LNode*s;

L=NULL;

s=newLNode;

s->next=L;

L=s;

intx;

}

//头插法创建带头结点的链表cout>x;while(x!

=-1){s=newLNode;s->next=L;L->data=x;L=s;cin>>x;}

voidShow_LinkList(LinkList&L)

{

LNode*p;

p=L->next;

while(p!

=NULL){

coutdata

p=p->next;//显示数据

}

cout

}

LNode*Get_LinkList(LinkList&L,inti)

{

intj=1;

LNode*q;

q=L->next;

while(q!

=NULL&&j

q=q->next;

j++;

}

returnq;

}

//获得第i个结点的地址

intInsert_LinkList(LinkList&L,inti,DataTypex)//插入结点{

LNode*p,*s;

p=Get_LinkList(L,i-1);

if(p==NULL){

}

coutdata=x;s->next=p->next;p->next=s;return1;}

intDelete_LinkList(LinkList&L,inti)

{

LNode*p,*s;

p=Get_LinkList(L,i-1);

if(p==NULL){

//删除结点coutnext==NULL){cout

return0;

}

else{

s=p->next;

p->next=s->next;deletes;

return1;

}

}

//main.cpp

#include#include”LinkList.h”

intmain()

{

intx,d,s;

LinkListH;

Creat_LinkList(H);Show_LinkList(H);

}cout>d;cout>x;s=Insert_LinkList(H,d,x);if(s==1){cout>d;s=Delete_LinkList(H,d);if(s==1){cout

运行结果:

请输入数据(以输入-1结束)12257421938-1单链表为:

38194272512

插入操作

请输入插入的位置:

4请输入要插入的数据:

3插入后的单链表为:

381942372512请输入插入的位置:

6请输入要插入的数据:

21插入后的单链表为:

38194237212512请输入插入的位置:

12请输入要插入的数据:

15插入位置错误!

删除操作

请输入删除元素的位置:

5删除后的单链表为:

3819423212512请输入删除元素的位置:

3删除后的单链表为:

38193212512

请输入删除元素的位置:

12插入位置的前驱结点不存在!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1