下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构上机实验课后练习报告姓名:冯天明学号:班级:通信1412015年9月28日星期一实验三:编写一个程序,实现双链表的各种基本运算,并在此基础上设计一个主程序完成 以下功能。.初始化双链表L.依次采用尾插法或者头插法插入元素a,b,c,d,e.输出双链表L.输出双链表的长度.判断双链表是否为空.输出双链表的第四个元素.输出元素a的位置.在第三个元素位置插入元素f.输出双链表L.删除双链表L的第四个元素.输出双链表L.释放双链表#include#include#includedefine OK 0define ERROR -2dcfinc OVERFLOW-1typedef char Ele
2、mType;typedef struct DuLNode /定义双向链表ElemType data;DuLNode *prior;DuLNode *next; DuLNode,*DuLinkList;void InitDuLinkList( DuLinkList h) 创立一个空表h = new DuLNode;/(DuLinkList)malloc(sizeof(DuLNode); h-next = h-prior;void CreateDuLinkList(DuLinkList h,int n)/初始化链表DuLNode *p,*q;InitDuLinkList(h);q = h;prin
3、tf(输入个元素:nM,n);for(int i = 0;idata);fflush(stdin);q-next = p;p-prior = q;q = p;)q-next = NULL;int DestroyList(DuLinkList L) 销毁链表(DuLNode *p=L ;while(L-next)直到达最后一个节点p = L-next;L-next = p-next;free( p);)L-prior =NULL;return OK;int ListEmpty(DuLinkList L)return (L-ncxt = NULL& L-prior = NULL);DuLNode
4、*GetElem(DuLinkList h,int i) 获取对应节点的元素IDuLNode *p;p = h-next;intj = 1;while(p&jnext;+j;)if(j = i)return p;elsereturn NULL;int DuLinkListInser(DuLinkList h,int i,ElemType e)f IDuLNode *p,*s;p = GetElem(h,i-l);if(!p) return ERROR;s = (DuLinkList)malloc(sizeof(DuLNode);s-data = e;if(p-next)如果插入的不是尾节点p-
5、next-prior = s;s-next = p-next;s-prior = p;p-ncxt = s;else插入的是尾节点s-next = p-next;p-ncxt = s;s-prior = p;return OK;)int DeleListElem(DuLinkList L ,int i)(DuLNode *p,*q;p = GetElem(L,i-l);if(!p) return ERROR; 删除的元素不存在if(p-next)如果删除的不是最后一个节点(q = p-next;q-next-prior = p;p-next = q-next;) else q = p-next
6、;p-next = NULL;free( q);return OK;|int LocateElcm(DuLinkList L,ElcmTypc c)Iint loca = 0;DuLNode *p;p = L-next;if(P) (while( p != L) +loca;if(p & p-data = c) 元素匹配,返回节点 return loca;if(!p)return ERROR;p = p-next; return ERROR;int ListLength(DuLinkList L)DuLNode *p = L;int i = 0;while(p-next) 遍历链表,记录节点数
7、ip = p-next;+i;return i;void DisplayList(DuLinkList L)(DuLNode *p;p = L-next;if(ListEmpty(L)(printf(链表为空! n”);return ;fprintf(“链表的内容为while(p)遍历链表,输出节点data(printf(n%4cH,p-data);p = p-next;int main() DuLNode L,*temp;intloca;CreateDuLinkList(&L,5);初始化链表DisplayList(&L);/输出链表if(ListEmpty(&L) printf(链表为空!n“); elseiprintf(链表不为空!n”);temp = GetElem(&L,4);获取第四个位置的元素printf(链表第四个元素是:%cn,temp-data);loca = LocateElcmC&L/a1);printf(元素a在链表的第d个位置nJoca); 寻找a元素在链 表的某个节点printf(在第三个位置插入元素f:“);DuLinkListInser(&L,3,*f);插入元素f在第三个位置DisplayList(&L);DeleListElem(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工会资产工作知识题库及答案
- 心理咨询师之心理咨询师基础知识能力提升模拟题附答案
- 2026上海市妇幼保健中心人员招聘3人备考题库附参考答案详解(综合卷)
- 2026广西柳州市技工学校编外合同制教师招聘5人备考题库及答案详解一套
- 建筑物抗灾设计技术方案
- 2026北京海淀区北京航空航天大学实验学校中学部招聘备考题库附参考答案详解(达标题)
- 2026宁夏警官职业学院自主招聘博士研究生专任教师资格复审及面试备考题库(第一批)附答案详解(a卷)
- 运维阶段老旧建筑改造BIM技术方案
- 2026年云南公务员考试备考题库(8925人)附参考答案详解(预热题)
- 2026四川省国投资产托管有限责任公司招聘1人备考题库带答案详解(达标题)
- GB/T 7031-2025机械振动道路路面谱测量数据的报告
- 黑龙江流浪犬管理办法
- 产品变更通知单模板PCN(4P)
- 河南省天一大联考2025届高三考前模拟考试数学试题
- (完整版)生气汤(绘本故事)
- T-CAS 886-2024 输血相容性检测设备检测性能验证技术规范
- 中建机电工程预留预埋施工方案
- 2025企业年会总结大会跨越新起点模板
- 高职“大学语文”一体化改革
- FZ∕T 74002-2014 运动文胸行业标准
- 房地产营销费效分析
评论
0/150
提交评论