ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:171.62KB ,
资源ID:8176539      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8176539.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单链表问题.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单链表问题.docx

1、单链表问题实验报告名称: 实验目的:1掌握单向链表的存储特点及其实现。2掌握单向链表的插入、删除算法及其应用算法的程序实现实验报告(实验内容、实验步骤、实验运行结果分析、实验小结)实验内容:1键盘输入一组元素,建立一个带头结点的单向链表(无序)。2遍历单向链表。3把单向链表中元素逆置(不允许申请新的结点空间)。4在单向链表中删除所有的偶数元素结点。5编写在非递减有序链表中插入一个元素使链表元素仍有序的函数,并利用该函数建立一个非递减有序单向链表。6利用算法5 建立两个非递减有序单向链表,然后合并成一个非递增链表。7利用算法5 建立两个非递减有序单向链表,然后合并成一个非递减链表。8利用算法1

2、建立的链表,实现将其分解成两个链表,其中一个全部为奇数,另一个全部为偶数(尽量利用已知的存储空间)。* 9采用单向链表实现一元多项式的存储并实现两个多项式相加并输出结果。10在主函数中设计一个简单的菜单,分别调试上述算法。#include #include #include /*构建结点结构体 */typedef struct LNode int data; struct LNode * next;LNode, * LinkList;/*用于创建链表的函数 */*反序构建的*/LinkList CreateList_L(LinkList L, int n) int i; LinkList p;

3、 L = (LinkList)malloc(sizeof(LNode); L-next = NULL; for(i = n; i 0; -i) p = (LinkList)malloc(sizeof(LNode); scanf(%d,&p-data); p-next = L-next; L-next = p; return L;int ListLength_L(LinkList L) LinkList p; int i=0; p = L-next; while(p) i+; p=p-next; return i;/* 用于插入结点的函数 */LinkList ListInsert_L(Link

4、List L, int i, int newnode) LinkList p = L; LinkList s; int j = 0; while(p&jnext; +j; if(!p|ji-1) printf(位置小于1或大于表长。n); return L; s = (LinkList)malloc(sizeof(LNode); s-data = newnode; s-next = p-next; p-next = s; return L;/* 用于删除结点的函数 */LinkList ListDelete_L(LinkList L, int i) LinkList p = L; LinkLi

5、st s; int j=0; while(p-next&jnext; +j; if(!(p-next)|ji-1) printf(删除位置不合理。n); return L; s = p-next; p-next = s-next; printf(%s%dn,被删除的结点是:,s-data); free(s); return L;LinkList GetListElem_L(LinkList L, int i,int *flag,int *elem) LinkList p = L; LinkList s; int j=0; while(p-next&jnext; +j; if(!(p-next)

6、|ji-1) *flag=0; return L; s = p-next; *flag=1; *elem=s-data; return L;/*用于遍历链表的函数 */void ListDisp_L(LinkList L) LinkList p; int i=0; p = L-next; printf(该表中元素分别为:); while(p) printf(%4d, p-data); p = p-next;+i; /* 选择排序算法 */LinkList ListSort_L(LinkList L) LinkList h1,p,q,r,s; h1=p=(LinkList)malloc(size

7、of(LinkList); p-next=L; while(p-next) q=p-next; r=p; while(q-next) if(q-next-data next-data) r=q; q=q-next; if(r!=p) s=r-next; r-next=s-next; s-next=p-next; p-next=s; p=p-next; L=h1-next; free(h1); return L;int getoptions() int opt; printf(1: 建立链表n); printf(2: 显示链表n); printf(3: 插入结点n); printf(4: 删除结

8、点n); printf(5: 返回链表的长度n); printf(6: 返回指定结点n); printf(7: 将链表进行排序n); printf(0: 退出n); printf(输入选项并按回车确认:); scanf(%d,&opt); return opt;int main(int argc, char* argv) int opt; int where; int value; int count; int tag; LinkList L; while(1) opt = getoptions(); if(opt = 1) printf(请输入链表初始结点数:); scanf(%d,&cou

9、nt); printf(请输入各个结点数值,每输入一个按回车确认:n); L = CreateList_L(L, count); ListDisp_L(L); system(PAUSE); continue; if(opt = 2) ListDisp_L(L); system(PAUSE); continue; if(opt = 3) ListDisp_L(L); printf(请输入插入位置:); scanf(%d, &where); printf(请输入要插入的数值:); scanf(%d, &value); L = ListInsert_L(L,where,value); ListDis

10、p_L(L); system(PAUSE); continue; if(opt = 4) ListDisp_L(L); printf(请输入要删除的位置:); scanf(%d,&where); L = ListDelete_L(L,where); ListDisp_L(L); system(PAUSE); continue; if(opt = 7) L = ListSort_L(L); ListDisp_L(L); system(PAUSE); continue; if(opt = 5) ListDisp_L(L); printf(线性表的长度是:%dn,ListLength_L(L); system(PAUSE); continue; if(opt = 6) printf(请输入要查找的元素位置:); scanf(%d,&where); L = GetListElem_L(L,where,&tag,&value); if(tag=1) printf(你要查找的元素是:%dn,value); else printf(输入的查找元素位置不合理。n); system(PAUSE); continue; if(opt = 0) return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1