已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验2 链表的操作实验内容:1)基础题:编写链表基本操作函数,链表带有头结点(1)CreatList_h()/用头插法建立链表(2)CreateList_t()/用尾插法建立链表(3)InsertList()向链表的指定位置插入元素(4)DeleteList()删除链表中指定元素值(5)FindList()查找链表中的元素(6)OutputList()输出链表中元素2)提高题:(1)将一个头节点指针为heada的单链表A分解成两个单链表A和B,其头结点指针分别为heada和headb,使得A表中含有原单链表A中序号为奇数的元素,B表中含有原链表A中序号为偶数的元素,且保持原来的相对顺序。(2)将一个单链表就地逆置。即原表(a1,a2, 。 an), 逆置后新表(an,an-1,。a1)/* 程序功能 :单链表基本功能操作 编程者 :杨天啸 日期 :2016-04-14 版本号 :3.0 */#include #include typedef struct Listint data; struct List *next; List;void CreatList_h(List *L) /头插法int i = 0;int n = 0;int goal;List *p;printf(请输入数据的个数:n);scanf(%d,&n);L - next = NULL;for(i=0;i data = goal;p - next = L-next; /将L指向的地址赋值给p;L - next = p;void CreateList_t(List *L) /尾插法int i;int n;int goal;List *p;List *q=L;printf(请输入数据的个数:n);scanf(%d,&n); for (i=0;i data = goal; q - next = p; q = p; q - next = NULL;void InsList(List *L,int i,int e) /插入 List *s;List *p = L;int j = 0; while (p&jnext; +j; s = (struct List*)malloc(sizeof(struct List); s - data = e; /插入L中 s - next = p - next; p - next = s;return ;void DeleteList(List*L,int e) /删除 List *q; List *p = L; while (p-next&p-next-data!=e) p = p - next; if (!(p-next) printf(不存在该元素!n); exit(0); q = p - next; p - next = q-next; e = q - data; free(q);return ;void FindList(List*L,int e) /查找元素 int j = 1; List *p = L-next; while (p&p-data!=e) p = p-next; +j; if (!p) printf(不存在该元素!n); exit(0); printf(您查找的元素位置为:%dn,j);return ;void DisPlay(List *L) /输出链表 List *p = L-next; printf(您输入的数据为:n); while (p!=NULL) printf (%d ,p-data); p = p - next; printf(n);void Inverse(List*L) /单链表就地逆置 List *q; List *p = L-next; L - next = NULL; while (p != NULL) q = p - next; /q指针保留原链表当前处理节点的下一个节点 p - next = L - next; /将当前处理节点p插入到逆置L的表头 L - next = p;p = q; /p指向下一个待插入的节点 void DisCreat(List*L) /链表拆分 int i = 0; /i记录表A中结点的序号 List *p;List *B = (struct List*)malloc(sizeof(struct List); /创建 B 表表头 B - next = NULL; /B表初始化 List*ra = L,*rb = B; /ra和rb将分别指向将创建的A表和B表的尾结点 p = L - next; /p指向待处理的结点 L - next = NULL; /置空新的 A 表 while (p != NULL) i+; /序号加 1 if (i%2 = 0) /处理序号为偶数的链表结点 rb - next = p; / 若B表尾描入新结点 rb = p; /rb指向新的尾结点 else /处理原序号为奇数的结点 ra - next = p; /在A表尾插入新结点 ra = p; p = p-next; /将p指向新的待处理结点 ra - next = NULL; rb - next = NULL; p = L - next;printf(奇数位数据为:n); /输出奇数位数据 while (p != NULL) printf (%d ,p - data);p = p - next; printf(n);List *q = B-next;printf(偶数位数据为:n); /输出偶数位数据 while(q != NULL) printf (%d ,q-data);q = q - next; printf(n);return ;int main() int n;int i;int e;int No;List*L = (struct List*)malloc(sizeof(struct List);List*B = (struct List*)malloc(sizeof(struct List);char yes_no = y; while(yes_no=y|yes_no=Y) /循坏开始 system(cls);printf(ttt|-|n); /交互式界面 printf(ttt| 单链表基本操作 |n);printf(ttt|-|n);printf(ttt| 1-头插法建立链表 |n);printf(ttt| 2-尾差法建立链表 |n);printf(ttt| 3-指定位置插入 |n);printf(ttt| 4-指定元素删除 |n);printf(ttt| 5-查找链表元素 |n);printf(ttt| 6-输出链表元素 |n);printf(ttt| 7-单链表就地逆置 |n); printf(ttt| 8-单链表拆分 |n);printf(ttt| 0-退出 |n);printf(ttt|-|n);printf(ttt| 计科14-2 第5组_|n);printf(ttt|-|n); printf(请选择运算方式:n); scanf (%d,&No); switch(No) case 1: CreatList_h(L); DisPlay(L); break; case 2: CreateList_t(L); DisPlay(L);break; case 3: printf(请输入需要插入元素的位置:n); scanf(%d,&i);printf(请输入需要插入的元素:n); scanf(%d,&e); InsList(L,i,e);DisPlay(L);break; case 4: printf(请输入需要删除的元素:n); scanf(%d,&e);DeleteList(L,e);DisPlay(L);break; case 5: printf(请输入需要查找的元素:n); scanf(%d,&e);FindList(L,e);DisPlay(L);break; case 6: DisPlay(L);break; case 7: Inverse(L); DisPlay(L);break; case 8: DisCreat(L);break; case 0:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- KM-001-E2-S-KM-001-生命科学试剂-MCE
- T-HXCY 148-2025 亚热带地区冷季型草地改良技术规程
- 2026年社区党建知识测试题及答案
- 2026年中医养生体质测试题及答案
- 2026年非发酵菌测试题及答案
- 2026年文秘专业潜能测试题及答案
- 2026年分离定律致死测试题及答案
- 2026年轴向力圆周力测试题及答案
- 2026年孩子发育测试题及答案
- 口腔诊疗器械维护与保养制度
- 2026年山西华新燃气集团有限公司招聘(196人)笔试备考试题及答案详解
- 2026贵州织金翔盛工业发展有限公司招聘17人考试参考试题及答案解析
- 2026中国地质大学(北京 )招聘备考题库(第二批)附答案详解(培优a卷)
- 2026年合肥复兴控股集团有限公司第一批人员招聘36名笔试备考题库及答案解析
- 2026年安全生产月主题培训
- 2026中国教师生成式人工智能应用报告
- 生产部大事件管理制度
- 党委换届选举工作安排表
- 信号波形发生与合成实验
- GB/T 29464-2023两相流喷射式热交换器
- 新教科版五年级下册科学期末综合测试卷(一)(含答案)
评论
0/150
提交评论