单链表.docx
- 文档编号:7496486
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:12
- 大小:188.66KB
单链表.docx
《单链表.docx》由会员分享,可在线阅读,更多相关《单链表.docx(12页珍藏版)》请在冰豆网上搜索。
单链表
单链表
肇庆学院计算机学院
实验报告
专业:
电子商务班级:
11科技1班姓名:
黎庆强学号:
201124131147课程名称:
单链表
学年学期1□/2□课程类别专业必修□限选□任选□实践□
●实验时间:
2012年3月23日
●实验内容:
1.编写函数,实现随机产生或键盘输入一组元素,建立一个带头结点的单链表(无序)。
2.编写函数,实现遍历单链表。
3.编写函数,实现把单向链表中元素逆置(不允许申请新的结点空间)。
4.编写函数,建立一个非递减有序单链表。
5.编写函数,利用以上算法,建立两个非递减有序单链表,然后合并成一个非递减链表。
6.编写函数,在非递减有序单链表中插入一个元素使链表仍然有序。
7.编写函数,实现在非递减有序链表中删除值为x的结点。
8.编写一个主函数,在主函数中设计一个简单的菜单,分别调试上述算法。
●实验目的及要求:
●目的:
1.掌握单链表的存储结构形式及其描述。
2.掌握单链表的建立、查找、插入和删除操作。
要求:
1.插入、删除时元素的移动原因、方向及先后顺序。
2.理解不同的函数形参与实参的传递关系。
●实验内容、方法与步骤:
(使用附页填写并附在本页后)
●实验结果:
(使用附页填写并附在本页后)
●小结:
通过这次的实验我学会了如何去运用单链表的建立、查找、插入和删除操作,理解了不同的函数形参与实参的传递关系。
分数:
批阅老师:
20年月日
第页/共页
肇庆学院计算机科学系
实验报告(附页)
实验内容、方法与步骤:
#include
#include
typedefintdatatype;
typedefstructnode//结点类型的定义
{
datatypedata;
structnode*next;
}Lnode,*Linklist;
voidformer_Linklist(Linklist&L);//表头插入
voidlater_Linklist(Linklist&L);//表尾插入
voidprint_Linklist(Linklist&L);//输出数据
voidyouinsert_Linklist(LinklistL,inti);//有序插入
intlength_Linklist(LinklistL);//求表长
voidxuhao_Linklist(LinklistL,inti);//按序号查找
voidanjing_Linklist(LinklistL);//按值查找
voiddelete_Linklist(LinklistL);//删除数据
voidinsert_Linklist(LinklistL);
intx,a,i;
intmain()
{
intchoic=1;
LinklistL;
L=NULL;
do{
printf("********************************欢迎使用整型单链表******************************\n");
printf("\t\t【1】表头输入数据【2】表尾输入数据【3】按值查找数据\n\n");
printf("\t\t【4】位置查找数据【5】删除数据【6】求单链表的表长\n\n");
printf("\t\t【7】用有序表插入法建立一个新的单链表\n\n");
printf("\t\t【8】把元素x插入到有序单链表里,使其依然有序\n\n");
printf("\t\t【9】退出\n");
printf("*******************************************************************************\n");
printf("请选择你要进行的操作【1-9】:
");
scanf("%d",&choic);//读入一个数
while(choic<1||choic>9)
{
printf("******************************输入错误!
请重新选择******************************\n");
scanf("%d",&choic);//读入第二个数
}
switch(choic)
{
case1:
//表头输入数据
{
former_Linklist(L);
print_Linklist(L);
break;
}
case2:
//表尾输入数据
{
printf("请你输入要插入整型数据的个数:
");
scanf("%d",&a);
printf("请你输入%d个整型数据:
",a);
later_Linklist(L);
print_Linklist(L);
break;
}
case3:
//按值查找数据
{
anjing_Linklist(L);
break;
}
case4:
//位置查找数据
{
xuhao_Linklist(L,i);
break;
}
case5:
{
printf("请你输入要删除的整型数据:
");
scanf("%d",&x);
delete_Linklist(L);//删除数据
print_Linklist(L);
break;
}
case6:
{
intlength;
length=length_Linklist(L);
printf("此单链表的表长为:
%d",length);
printf("\n");
break;
}
case7:
{
L=(Linklist)malloc(sizeof(Lnode));
L->next=NULL;
printf("请你输入要建立新单链表整型数据的个数:
");
scanf("%d",&a);
printf("请你输入%d个整型数据:
",a);
for(i=0;i { scanf("%d",&x); insert_Linklist(L); } print_Linklist(L); break; } case8: { printf("请你输入要插入的整型数据: "); scanf("%d",&x); insert_Linklist(L); print_Linklist(L); break; } } }while(choic! =9); return0; }//主函数结束 voidprint_Linklist(Linklist&L)//输出数据 { Linklistp; p=L; while(p->next! =NULL) { p=p->next; printf("%6d",p->data); } printf("\n"); } voidformer_Linklist(Linklist&L)//表头插入 { Linklistp,q; printf("请你输入要插入整型数据的个数: "); scanf("%d",&a); printf("请你输入%d个整型数据: ",a); L=(Linklist)malloc(sizeof(Lnode)); L->next=NULL; p=L;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单链表