版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验总结报告—栈和队列学号:姓名:时间:目的做实验的目的加深对线性表的理解,学会定义线性表的存储结构,掌握线性表的基本操作。撰写实验报告的目的对本次实验情况进行总结,加强对实验内容的理解,对实验过程有一个系统的认识,从中获得本次试验的经验,并对实验结果进行适当的分析,加深对栈和队列的理解和认识。内容说明实验次数及实验内容本次实验用一次实验课时完成实验内容:节点定义:typedefstructnode{ intidx; intage; structnode*next;}Node,*List;本次实验的对象的存储内容包括ID和AGE,所以定义了如上的结构体,idx用于存储ID号,age用于存储年龄,next用于形成链式结构,Node定义了该类型的一个节点,List定义了该类型的一个链表。(1)、编写函数CreateList()和PrintList(),从给定数组创建链表,打印链表。intidx[8]={1,2,3,4,5,6,7,8};intage[8]={15,18,13,22,50,18,30,20};ListCreatList(intidx[],intage[],intlen){}intPrintList(ListL){}(2)、编写函数DeleteNode(ListL,intdelete_age),完成以下操作。intDeleteNodeAge(ListL,intdelete_age){}该函数传入ListL,可以直接修改链表的节点,建议返回值为int或void类型,无需为List类型,3,4题同上。2.1删除年龄为18的成员,打印链表。2.2删除年龄为20的成员,打印链表。2.3删除年龄为15的成员,打印链表。2.4(可选)删除年龄为21的成员(因无此成员,报错),打印链表。(3)、编写函数InsertNodeByIdx(ListL,Nodend),完成以下操作。(或编写函数InsertNodeByIdx(ListL,Node*pnd),完成以下操作。)(建议用Node*pnd,因Nodend作为参数传给函数InsertNodeByIdx,nd本身不能被修改,而插入链表需修改nd.next,故需创建新的节点把nd的idx和age赋值给新节点。)3.1将(idx,age)=(6,23)插入链表,保证链表的idx仍为升序,打印链表。3.2将(idx,age)=(1,25)插入链表,保证链表的idx仍为升序,打印链表。(选做)、编写函数InsertNodeByAge(ListL,Nodend),完成以下操作。(或编写函数InsertNodeByAge(ListL,Node*pnd),完成以下操作。)4.1将(idx,age)=(9,31)插入链表,不用保证链表的idx仍为升序,新节点插在节点nd0后面,要求nd0.age是整个链表节点的age小于且最接近nd.age,打印链表。(提示:本例要求插在(7,30)后面。)4.2插入节点(8,1)(提示:本例要求插在(1,25)之前,即最前面,因age=1最小。)2.做实验完成情况要求实验内容在实验时间内全部完成,选做实验未做。创建链表:ListCreateList(intidx[],intage[],intlen){ Listp,L; inti; L=NULL;for(i=len-1;i>=0;i--){ p=newNode; p->age=age[i]; p->idx=idx[i]; p->next=L; L=p; } returnL;}该操作创建一个不带头节点的链表并返回类型为List的结果打印链表:voidPrintList(ListL){ Listp=L; printf("idxage\n"); while(p){ printf("%d%d\n",p->idx,p->age); p=p->next; }}该操作从表头到表尾依次打印idx和age删除节点:intDeleteNodeAge(List&L,intdelete_age){ Listp=L; intflag=0; if(p->age==delete_age){ L=L->next; flag=1; } else{ while(p->next){ if(p->next->age==delete_age){ flag++; if(p->next->next==NULL) p->next=NULL; elsep->next=p->next->next; } elsep=p->next; } } returnflag;}该操作删除需要删除的节点,成功删除返回删除节点的个数,否则返回0插入节点:voidInsertNodeByIdx(List&L,Node*pnd){ Listp=L; if(p->idx>=pnd->idx){ pnd->next=L; L=pnd; return; } else{ while(p->next){ if(p->next->idx<=pnd->idx) p=p->next; else{ pnd->next=p->next; p->next=pnd; return; } } }}该操作完成节点的插入,插入之后链表仍按idx成升序主函数:intmain(){ ListL,pnd1,pnd2; pnd1=newNode; pnd2=newNode; intidx[8]={1,2,3,4,5,6,7,8},age[8]={15,18,13,22,50,18,30,20},r; L=CreateList(idx,age,8); PrintList(L);r=DeleteNodeAge(L,18); printf("Theresultis%d\n",r); PrintList(L); r=DeleteNodeAge(L,20); printf("Theresultis%d\n",r); PrintList(L); r=DeleteNodeAge(L,15); printf("Theresultis%d\n",r); PrintList(L);pnd1->idx=6; pnd1->age=23; InsertNodeByIdx(L,pnd1);PrintList(L); pnd2->idx=1; pnd2->age=25; InsertNodeByIdx(L,pnd2);PrintList(L); system("pause"); return0;}实验结果:从实验代码及结果来看,首先按要求创建单链表,从打印结果来看,链表成功创建;第二步删除age为18的节点,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《平衡记分卡的应用》课件
- 《企业人力绩效管理》课件
- 2024-2025学年天津市红桥区高一上学期期中考试历史试卷(解析版)
- 单位管理制度分享汇编人事管理
- 单位管理制度分享大全人力资源管理十篇
- 单位管理制度范例选集人力资源管理篇
- 《磺达肝癸钠》课件
- 单位管理制度呈现大合集人力资源管理十篇
- 《市场营销学案例分》课件
- 《投资经济学》教学大纲
- 数学-湖南省天一大联考暨郴州市2025届高考高三第二次教学质量检测(郴州二检怀化统考)试题和答案
- 2024-2025学年人教版生物学八年级上册期末复习测试题(含答案)
- 施工现场环保要求措施
- 重症患者的营养支持
- 瓷砖店销售薪酬方案
- 小学体育课件教学
- 2024年事业单位招聘考试计算机基础知识复习题库及答案(共600题)
- 西京学院《机械制造技术基础》2022-2023学年第一学期期末试卷
- 2024新版《药品管理法》培训课件
- 【初中语文】2024-2025学年新统编版语文七年级上册期中专题12:议论文阅读
- 信息科技大单元教学设计之七年级第一单元探寻互联网新世界
评论
0/150
提交评论