版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告课程名称数据结构实验名称链表的基本操作日期2013/4/2学生学号B11050226姓名枯天蝎班级B110502实验目的:掌握线性表的基本操作:插入、删除、查找在链式存储结构上的实现。实验条件:电脑一台VC++实验内容与算法思想:实验内容:建立以有序的单链表,并实现下列操作:输出表中所有元素的值;查找值为x的元素;插入值为x的元素,保持有序;删除第i个元素。算法思想:先是创建头指针初始化一个空链表。调用指针创建函数,用头插法把元素输入链表。然后在一个switch函数里面调用函数,选择实现输出、查找、插入和删除等操作。运行结果:输入元素123456请按提示选择操作输出单链表,输入“1”;按值查找,输入“2”;插入元素,输入“3”;删除元素,输入“4”。1123456…………实验总结(结论或问题分析):通过上机实验更加熟练了解有关链表的各种算法,加深了对C语言的了解。基本掌握了基于链表的创建、查找、插入和删除等操作。实验成绩任课教师签名张红霞附:源程序:#include<stdio.h>#include<stdlib.h>#defineERROR0;#defineOK1;typedefstructnode{ chardata; structnode*next;}Node,*Linklist;LinklistCreateList(void);voidPrint(Linklistlist);Node*Locate(LinklistL,intkey);intInslist(LinklistL,inti,inte);intDellist(LinklistL,inti,int*e);voidmain(){ intflag1,flag2,key,x,i; Node*p; int*r; Linklisthead; printf("输入元素\n"); head=CreateList(); printf("请按提示选择操作\n"); printf("1、输出单链表,输入“1”;\n2、按值查找,输入“2”;\n3、插入元素,输入“3”;\n4、删除元素,输入“4”。\n"); scanf("%d",&flag1); switch(flag1) { case'1':printf("单链表输出如下:\n"); Print(head); break; case'2':printf("请输入要查找的元素\n"); scanf("%d",&key); p=Locate(head,key); break; case'3':printf("请输入要插入的元素\n"); scanf("%d",&x); printf("请输入插入位置\n"); scanf("%d",&i); flag2=Inslist(head,i,x); if(!flag2)printf("插入失败!\n"); break; case'4':printf("请输入要删除元素的位置\n"); scanf("%d",&i); flag2=Dellist(head,i,r); if(flag2)printf("删除成功!\n"); elseprintf("删除失败!\n"); } Print(head);}/*创建单链表*/LinklistCreateList(void){ charch; Linklisthead; Linklists,r; head=NULL; s=NULL; while((ch=getchar())!='\n') { r=(structnode*)malloc(sizeof(structnode)); r->data=ch; if(head==NULL)head=r; elses->next=r; s=r; } if(s!=NULL) { s->next=NULL; } returnhead;}/*输出*/voidPrint(Linklistlist){ Linklista,b; a=list; while(a!=NULL) { printf("%c",a->data); b=a; a=a->next; free(b); } printf("\n");}/*按值查找*/Node*Locate(LinklistL,intkey){ Node*p; intk=0; p=L->next; while(p!=NULL) if(p->data!=key) { p=p->next; k++; } elseprintf("%d的位置为:\n",key,k+1); returnp;}/*插入*/intInslist(LinklistL,inti,inte){ Node*pre,*s; intk; if(i<=0)returnERROR; pre=L; k=0; while(pre!=NULL&&k<i-1) { pre=pre->next; k++; } if(!pre) { printf("输入位置不合理\n"); returnERROR; } s=(structnode*)malloc(sizeof(structnode)); s->data=e; s->next=pre->next; pre->next=s; returnOK;}/*删除*/intDellist(LinklistL,inti,int*e){ Node*pre,*r; intk; if(i<=0)returnERROR; pre=L; k=0; while(pre->next!=NULL&&k<i-1) { pre=pre->nex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中秋节放假安排通知(集锦15篇)
- 2025-2030智慧农业无人机应用现状市场趋势研究开发规划方案
- 2025-2030智慧农业开发行业市场供需现状及投资评估规划分析研究报告
- 2025-2030智慧农业传感器成本下降及精准灌溉普及与农业产业基金偏好报告
- 中秋节诗歌朗诵稿(汇编15篇)
- 2026年中药治疗心绞痛实践技能卷及答案(专升本版)
- 2026年系统集成的核心技术与应用
- 2026年控制理论在机器人学中的应用
- 2026年自动化技术在食品生产中的市场机会
- 园林景观水流导向设施建设方案
- 2025年高级会计师资格考试真题及答案
- 放射科股骨头坏死MRI诊断标准
- 2025年工会党建知识竞赛试题及答案
- DB3401∕T 232-2021 物业服务档案管理规范
- 银杏苗木知识培训总结课件
- 投资管理岗相关知识培训课件
- 境外旅游保险知识培训课件
- 幼儿园足球课题申报书
- 【普法教育】初高中主题班会:知法懂法做明理少年【课件】
- 豪宅防水策划方案(3篇)
- 小红书电商学习中心 -新手小白也能上手的0-1起号策略
评论
0/150
提交评论