北京邮电大学计算机学院 数据结构第一次实验报告Word文档下载推荐.docx
- 文档编号:8316585
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:12
- 大小:17.52KB
北京邮电大学计算机学院 数据结构第一次实验报告Word文档下载推荐.docx
《北京邮电大学计算机学院 数据结构第一次实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《北京邮电大学计算机学院 数据结构第一次实验报告Word文档下载推荐.docx(12页珍藏版)》请在冰点文库上搜索。
intlen;
Linklisthead;
}HeadNode;
//头结点结构定义
Linklistcreatlist(HeadNode*L);
//创造含头结点的链表函数
Linklistget(LinklistR,intkey);
//在链表中寻找值为key的结点,并返回该结点
Linklistinvert(HeadNode*L,LinklistS,intnum);
//在链表中的某个结点之后插入num个结点
voidprintlist(HeadNode*L,LinklistS);
//打印链表中数据域的值
voiddeletelist(LinklistR);
//释放链表
intmain()
{
HeadNode*L;
LinklistS;
intkey,num;
L=(HeadNode*)malloc(sizeof(HeadNode));
if(L==NULL)
return0;
L->
head=creatlist(L);
//含头结点的链表的创建
printlist(L,L->
head);
if(L->
head==NULL)//判断链表中是否只有头结点
{
printf("
Thelisthasnodata,can'
tbeinverted!
\n"
);
}
printf("
Pleaseinputthedatayouwanttoresearch:
scanf("
%d"
&
key);
//提示用户输入需要查找的数值
fflush(stdin);
//清空缓冲区,防止读入用户多输入的数据
S=get(L->
head,key);
if(!
S)
PleaseinputthenumberoftheLnodeyouwanttoinvert:
//提示用户输入需要插入的结点值
num);
S=invert(L,S,num);
deletelist(L->
free(L);
//释放头结点
system("
pause"
return0;
}
Linklistcreatlist(HeadNode*L)//创造含头结点的链表函数
LinklistS=NULL,R=NULL,H=NULL;
inti;
Pleaseinputthelengthofthelist:
L->
len);
len<
=0)
Pleaseinputthedata:
for(i=0;
i<
=L->
len-1;
i++)
{
S=(Linklist)malloc(sizeof(Lnode));
if(S!
=NULL)
{
if(R==NULL)
{
R=S;
H=S;
}
scanf("
S->
data);
R->
next=S;
}
R->
next=NULL;
head=H;
returnL->
head;
Linklistget(LinklistR,intkey)//在链表中寻找值为key的结点,并返回该结点
S=R;
while(S&
&
data!
=key)
S=S->
next;
S)
Can'
tfindthedata%d,thelistcan'
key);
returnNULL;
}
else
Findthedatasuccessful!
returnS;
}
Linklistinvert(HeadNode*L,LinklistS,intnum)//在链表中的某个结点之后插入num个结点
LinklistR,K,H;
R=S;
H=S->
if(num>
0)
Pleaseinputthedataof%dinvertedLnode:
num);
L->
len+=num;
printf("
Invertfailed!
=num-1;
K=(Linklist)malloc(sizeof(Lnode));
scanf("
K->
R->
next=K;
R=K;
next=H;
returnS;
voidprintlist(HeadNode*L,LinklistS)//打印链表中数据域的值
if(S==NULL)
Thelistisempty.\n"
else
{
Thelisthas%dLnodes.\n"
L->
Thelistis:
while(S!
{
%d--->
"
S->
S=S->
NULL\n"
}
voiddeletelist(LinklistR)//释放链表
Linklisttemp;
while(R!
temp=R;
R=R->
free(temp);
第一题存在的问题:
1.注意头结点与非头结点结构定义的差别,链表的长度由用户输入,需要排除用户错误输入即L->
len小于0时的情况,并注意判断链表中是否只含有头结点;
2.在进行链表的创建与结点的查找操作时,需要读入每个结点的数据值及num的值,这时候需要清空缓存区,防止读入用户输入的多余的数据。
第二题实验程序代码:
//头结点结构定义
Linklistget(HeadNode*L,LinklistH,intnum,intjudge);
//在链表中寻找数值小于num的结点并返回
Linklistdelete(HeadNode*L,LinklistS,LinklistR,intmin);
//释放链表中两个节点之间的所有节点空间
intjudgelist(LinklistS);
//判断链表是否按升序排列
//打印链表中数据域的值
voiddeletelist(LinklistS);
HeadNode*L=NULL;
LinklistS,R;
intmin,max;
while((judgelist(L->
head))==0)//判断链表是否按升序排列,若不是,则提示用户重新输入,直至符合要求
deletelist(L->
printlist(L,L->
head==NULL)//判断链表中是否只有头结点
tbedeleted!
Pleaseinputthemindataandthemaxdatayouwanttofindfordelete:
%d%d"
min,&
max);
if(min>
=max||max<
head->
data)//无法进行删除的情况
Deletefailed!
return0;
else
S=get(L,L->
head,min,0);
//0和1为开关,进行设置
R=get(L,S,max,1);
if(min>
data)//判断删除的节点中是否包含头结点
S=delete(L,S,R->
next,min);
L->
head=delete(L,L->
head,R->
if(S)
Deletesuccessful!
else
LinklistS=NULL,R=NULL,N=NULL;
{
S=(Linklist)malloc(sizeof(Lnode));
if(S!
N=S;
fflush(stdin);
head=N;
returnL->
Linklistget(HeadNode*L,LinklistH,intnum,intjudge)//在链表中寻找数值小于num的结点并返回
S=H;
if(judge==0)//设置开关,最小值与最大值寻找结点的差异区分开来
while(S->
next&
next->
data<
=num)
S=S->
num)
Linklistdelete(HeadNode*L,LinklistS,LinklistR,intmin)//释放链表中两个节点之间的所有节点空间
LinklistH,K;
if(min==S->
data||S!
head)//注意是否为头结点,进行区分
K=S->
K=S;
K||K==R)
while(K&
K!
=R)
H=K;
K=K->
free(H);
len--;
S->
else
head=K;
intjudgelist(LinklistS)
while(S!
temp=S;
if(S!
=NULL&
temp->
data>
=S->
data)
Thelistisn'
tlistedrightfromthesmalldatatobigdata,pleaseinputthedataagain!
return1;
Thelistisempty,ithas0data.\n"
voiddeletelist(LinklistS)//释放链表
第二题存在的问题:
1.链表的创建需要用户自己输入每个结点的数值,因而需要在用户创建完链表之后,对链表进行判断,判断是否为升序链表,若不是,则提示用户重新输入每个结点的数值,直至链表为升序链表,再进行相应的结点删除操作。
2.进行相关的删除操作时,应注意区分删除的结点是否包括头指针所指向的结点,以及在链表中查找大于min与小于max所对应的结点的差异,注意排除用户错误输入的情况,即min可能大于等于max的值。
3.在进行链表的创建与结点的查找操作时,需要读入每个结点的数据值及min和max,因而需要清空缓存区,防止读入用户输入的多余的数据。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京邮电大学 计算机学院 数据结构第一次实验报告 北京邮电 大学 计算机 学院 数据结构 第一次 实验 报告
文档标签
- 军队文职计算机数据结构
- 南航计算机实践报告数据结构计算机
- 北京邮电大学计算机学院数据结构第一次实验报告北京邮电
- 淮海工学院数据结构第一次
- 一个北大学生学习数据结构
- 北邮大二下数电实验报告讲解大二实验
- 四川大学计算机学院数据结构
- 北邮大统计学基础第一次
- 中北大学算法与数据结构实验报告北大算法
- 川师数学院数据结构试验报告学院
- 北京邮电大学数据结构实验
- 数字签名第一次实验报告
- 北京邮电大学微机原理硬件实验报告北京邮电大学
- 南京邮电大学数值计算
- 郭飞数电第二次实验报告
- 计算机体系结构知识点汇总
- 845数据结构算法难点
- KNN算法总结计划
- 数据结构知识点算法
- 计算机体系结构知识点汇总
- 数据结构算法基础知识总结
- 数据结构计算机本科
- 国防军队知识文职