- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学号:123745姓名:胡文凯实验二报告{链表}
安徽工商职业学院实验报告
课程名称:《数据结构》 班级:软件二班 学号:123745 姓名:胡文凯 实验名称:线性表的链式存储结构 实验目的:1、掌握用VC++调试程序的基本方法。
2、掌握线性表链式存储结构的基本运算。 实验原理(预习内容):1、线性表的链式存储思想。
2、单链表的创建、查找、插入、删除等操作的算法。 实验器材(软件):Computer,Windows OS,VC++ 实验过程记录:
1、链表的基本操作
[问题描述] 设计一个链表类型LinkList,并实现以下功能:
1)初始化表;
2)创建表;
3)按指定位置或按值查询数据元素;
4)在指定位置插入一个数据元素;
5)删除指定位置上的一个元素或删除指定值的元素;
6)遍历输出表元素;
0)退出
[基本要求] 把上述每个功能分模块分别编制算法实现,然后在主程序中调用。
实验程序清单:
#includestdio.h
#includestdlib.h
typedef struct node
{
int data;
struct node *next;
}LNode,*Linklist;
Linklist L;
//生成带头结点的空链表
Linklist InitList()
{
Linklist L;
L=(Linklist)malloc(sizeof(LNode));
L-next=NULL;
return L;
system(pause);
}
//表的输出
void OutList(Linklist L)
{
Linklist p=L-next;
if(p-next==NULL) printf(表中没有元素!);
while(p!=NULL)
{
printf(%d ,p-data);
p=p-next;
}
printf(\n);
system(pause);
}
Linklist CreateList(Linklist L)
{
Linklist p,r;
int x;
r=L;
printf(请输入元素,直到输入0结束!);
scanf(%d,x);
while(x!=0)
{
p=(Linklist)malloc(sizeof(LNode));
p-data=x;
r-next=p;
r=p;
scanf(%d,x);
}
r-next=NULL;
return L;
// system(pause);
}
//查找
void SearchList(Linklist L)
{
int t,x,pos,count=1,a[50],i=1;
Linklist p;
p=L-next;
printf(****************\n);
printf( 1、按位查找!\n);
printf( 2、按值查找!\n);
printf(****************\n);
printf(请输入查找的方式:);
scanf(%d,t);
if(t==1)
{
printf(请输入查找的位置:);
scanf(%d,pos);
while(count!=posp) {count++;p=p-next;}
if(p!=NULL) printf(你要找到的数是%d,p-data);
else
printf(查找的位置错误!);
system(pause);
}
if(t==2)
{
printf(请输入你要查找的数:);
scanf(%d,x);
while(p)
{
if(p-data==x) {printf(你要找的数是%d,p-data);break; }
else p=p-next;
}
if(p==NULL) printf(没有你要找的数);
}
else
printf(选择错误!);
system(pause);
}
//插入
void InserList(Linklist L)
{
Linklist p,s;
int pos,x,count=0;
p=L;
printf(请输入你要插入的位置:);
scanf(%d,pos);
printf(请输入你要插入的数:);
scanf(%d,x);
while(p-nextcountpos-
文档评论(0)