中国石油大学数据结构上机实验2Word文档下载推荐.docx
- 文档编号:21038649
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:16
- 大小:312.89KB
中国石油大学数据结构上机实验2Word文档下载推荐.docx
《中国石油大学数据结构上机实验2Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《中国石油大学数据结构上机实验2Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
此处给出主要函数功能、及函数间调用关系的的描述。
例如:
1.构造一个空的单链表的函数;
2.插入函数;
3.删除函数
4.查找函数;
5.计算并输出函数;
6.销毁函数。
其功能描述如下:
(1)主函数:
统筹调用各个函数以实现相应功能
voidmain()
(2)
①构造一个空的单链表的函数
StatusInitList_L(LinkList&
L)
{
L=(LinkList)malloc(sizeof(LNode));
//构造一个空的线性表L
f(!
L)exit(OVERFLOW);
//存储分配失败
L->
next=NULL;
//空表长度为0system("
cls"
);
//清空屏幕
printf("
\n\n初始化成功\n\n\n"
system("
PAUSE"
//按任意键继续
returnOK;
}
voidCreateList_L(LinkList&
{//创建一个新表
inti,count;
LinkListp;
//清屏
\n输入总结点数:
"
scanf("
%d"
&
count);
\n输入各个结点数值,每输一个按下回车:
\n"
for(i=count;
i>
0;
i--)
p=(LinkList)malloc(sizeof(LNode));
p->
data);
next=L->
next;
next=p;
//赋值
\n录入成功\n"
②插入函数
StatusListInsert_L(LinkList&
L,inti,intnewnode)
{//在顺序线性表L中第i个位置之前插入新的元素
LinkListp=L;
LinkLists;
intj=0;
while(p&
&
j<
i-1)
p=p->
++j;
if(!
p||j>
i-1)//i插入的位置不合法
error\n"
s=(LinkList)malloc(sizeof(LNode));
s->
data=newnode;
next=p->
//将p的后继结点给s的后继结点
next=s;
//将s给p的后继结点
③删除函数
StatusListDelete_L(LinkList&
L,inti)
{//在顺序线性表L中删除第i个元素,并用e返回其值
LinkListp=L;
LinkListq;
intj=0;
while(p->
next&
i-1)//如果满足这样的条件
(p->
next)||j>
i-1)returnERROR;
//删除位置非法
q=p->
//将p的后继结点给q
next=q->
//将q的后继结点给p的后继结点
\n\n删除成功\n\n被删除的结点是:
%d\n"
q->
free(q);
④查找函数
StatusFindElemList_L(LinkList&
{//单链表按照关键字查询
inti=1,NUMBER;
intn=0;
p=L->
\n输入查询数字:
NUMBER);
while(p)
if(p->
data==NUMBER)
{printf("
\n查询成功!
该数字位于结点%d\n"
i);
n++;
i++;
n)
\n查询失败!
未找到该元素!
⑤计算并输出函数
StatusPrintList_L(LinkList&
{//输出链表
m=0;
p=L;
next!
=NULL)//当链表非空
p=p->
%d:
%d\n"
++m,p->
//输出
⑥销毁函数
StatusDestroyList_L(LinkList&
L)//销毁单链表
{
LinkListp,q;
while(p)
q=p;
//释放
}
if(p==NULL)
\n成功,请退出\n\n"
else
失败\n"
四、实验测试结果及结果分析
(一)测试结果(此处给出程序运行截图)
(二)结果分析成功完成了题目所要求的插入,删除,查找等基本操作。
五、实验总结
附录实验程序代码(该部分请加注释)
#include"
stdio.h"
stdlib.h"
malloc.h"
#defineMAX1000
#defineOVERFLOW-2
#defineOK1
#defineERROR0
intm=0;
typedefintElemType;
typedefintStatus;
typedefstructLNode
ElemTypedata;
structLNode*next;
}LNode,*LinkList;
//空表长度为0
i--)//循环嵌套
voidmainmenu()//输出菜单
\n菜单"
\n***********************\n\n"
*1.建立单链表*\n"
*2.录入新元素*\n"
*3.插入新元素*\n"
*4.删除已有元素*\n"
*5.查找元素*\n"
*6.输出单链表*\n"
*7.销毁线性表*\n"
*0.退出*\n"
\n***********************\n"
voidmain()
intchoose,location,value;
LinkListL;
while
(1)
{
mainmenu();
\n输入选择:
choose);
switch(choose)
case1:
InitList_L(L);
break;
case2:
CreateList_L(L);
PrintList_L(L);
case3:
请输入插入位置:
&
location);
请输入要插入的数值:
value);
ListInsert_L(L,location,value);
default:
\n输入错误,重新输入!
case4:
\n请输入删除结点位置:
ListDelete_L(L,location);
case5:
FindElemList_L(L);
case6:
\n单链表的表长为:
%d\n\n"
m);
case7:
DestroyList_L(L);
case0:
exit(0);
}//case
}//while
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中国 石油大学 数据结构 上机 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)