1单链表Word文档下载推荐.docx
- 文档编号:21698038
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:8
- 大小:39.39KB
1单链表Word文档下载推荐.docx
《1单链表Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《1单链表Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
C++程序设计与试验系统
四、实验步骤
1、建立单链表
2、完成排序函数
3、完成插入函数
4、完成删除函数
5、完成输出函数
6、执行函数
#include<
iostream>
usingnamespacestd;
#defineNULL0
structAH
{
intdata;
structAH*next;
};
//*******************************创建链表***************************
AH*creat(intn)
AH*head,*p1,*p2;
inti;
for(i=1;
i<
=n;
i++)
{
p1=newAH;
if(i==1)
head=p1;
else
p2->
next=p1;
p2=p1;
cin>
>
p1->
data;
}
p1->
next=NULL;
p2=p1=NULL;
cout<
<
endl;
returnhead;
}
//****************************排序**********************************
voidorder(structAH*head,intn)
structAH*p,*q;
intt;
p=q=head;
for(q=head;
q->
next!
=NULL;
q=q->
next)
p=q->
next;
while(p->
=NULL)
{
if(p->
data>
=q->
data)
t=p->
p->
data=q->
q->
data=t;
}
p=p->
if(p->
data)//这完了后,还有一个没有比较呢,再加个if
//****************************插入函数***************************
voidinsert(structAH*head,inta)
structAH*p,*q,*r;
q=head;
r=newAH;
r->
data=a;
p=q->
while(p->
=NULL&
&
r->
data<
p->
q=q->
next==NULL)
r->
next=p->
next=r;
else
next=q->
cout<
//*********************************删除函数*******************************
intdel(structAH*head,inta)
AH*p1,*p2;
intg=1;
p1=p2=head;
while(p1->
data!
=a&
=NULL)
p1=p1->
if(p1->
=a)
g=0;
elseif(p1==head)
head=head->
p1->
elseif(p1->
next=p1->
else
deletep1;
returng;
//********************************输出函数**************************************
voidprint(structAH*head)
structAH*p;
p=head;
for(i=0;
"
"
;
//**************************************************************************
voidmain()
structAH*head;
intn;
创建单链表AH存储n个数据:
cin>
n;
这n个整数分别是:
head=creat(n);
按从大到小的顺序输出存储的n个数据:
order(head,n);
print(head);
inta;
输入你要插入的数据值"
a;
insert(head,a);
排序后的数组为:
n=n+1;
intb;
输入你要删除的数据:
b;
del(head,b);
n=n-1;
//order(head,n);
删除后的数据:
五、实验结果及分析
显示结果如图所示。
通过反复校验本小组成员发现改程序有两处不完整的地方
1.“创建单链表AH存储n个数据”的个数必须是大于1个的。
“输入要删除的数据”的必须是前面输入的某个数,如果该数据前面没出现,则执行不能完全完成。
因为主函数中有此句:
n=n-1;
order(head,n);
,要删除的数如果不存在则n就没能减1,排序出错。
由于学期末时间紧,未能完善,小组成员之后将再将其完善。
六、实验总结
通过本次编程,学会了单链表的实现方法和有关的数据类型定义。
在实现链表的基本操作的过程中,复习和巩固了C++语言中的基本语句的使用方法,程序的规范写法,尤其是定义插入、排序等函数时if·
·
else·
判断语句的嵌套和for语句的双重循环控制等理解的更加深入。
相信在以后的编程时应用这些判断和控制语句会更加得心应手。
总之实验过程中不仅认识,掌握了新知识还巩固了基础,使自己的编程能力有了一定的提高。
编程能力更大的提升还需要大量的编写和反复的练习重复,下去之后自己再努力练习。
七、教师评语和成绩
教师签名:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单链表