单链表的建立、删除、及建立递增的单链表.doc

单链表的建立、删除、及建立递增的单链表.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单链表的建立、删除、及建立递增的单链表

班级: 数学112班 学号:201112010222姓名: 吕文辉 报告日期: 2012/12/9 试验一:单链表 一、实验目的 (1)掌握单链表的存储结构形式及其描述。 (2)掌握单链表的建立、查找、插入和删除操作。 二、实验要求 (1)编写函数,实现随机产生或键盘输入一组元素,建立一个带头结点的单链表(无序)。 (2)编写函数,实现遍历单链表。 编写函数,实现把单向链表中元素逆置(不允许申请新的结点空间)。 编写函数,建立一个非递减有序单链表。 编写函数,利用以上算法,建立两个非递减有序单链表,然后合并成一个非递减链表。 编写函数,在非递减有序单链表中插入一个元素使链表仍然有序。 编写函数,实现在非递减有序链表中删除值为x的结点。 (8)编写一个主函数,在主函数中设计一个简单的菜单,分别调试上述算法。 三、实验代码: #include iostream.h #includestdio.h #includestdlib.h /////////////////////////////////////////// typedef char elemtype; #define null 0 const int n=20; int i=1; typedef struct node {elemtype data; struct node *p; }node,*linklist; /////////////////////////// void initlist(linklist L);//初始化单链表 void createfromhead(linklist L); //利用头插法建立单链表; void textlinklist(linklist L); // 检测单链表; void createfromtail(linklist L);//尾插法建立单链表; void linklistnizhi(linklist k);//单链表的逆置; void Lorder(elemtype a[n],int n);//给数组中元素排序; void increaselinklist(linklist k); //给单链表中的元素排序; linklist unittwolinklist(linklist k1,linklist k2); // 建立两个非递减有序单链表,然后合并成一个非递减链表。 void DeleteIncreaselinklist(linklist k); //编写函数,实现在非递减有序链表中删除值为x的结点 void Insertelemtypelinklist(linklist k); //编写函数,在非递减有序单链表中插入一个元素使链表仍然有序 void alllinklistfunctionlwh(char s); //将所有函数的整合在一个函数里面; void textlwhplinklist(linklist lwhp); /////////////////////////////// int main() { cout************************endl; cout头插法建立程序的眼演示实例endl当输入符号的时候就默认(单链表的字符已经输完)退出endl; cout************************endl; char s; cout如果执行程序请输入Lendl; cins; alllinklistfunctionlwh(s); //////////////////////////////////////////////// //调试程序时要用到的代码; /* node lwh; linklist lwhp; lwhp=lwh; initlist(lwhp); coutsizeof(node) sizeof(node)endl; coutsizeof(lwhp)sizeof(lwhp)endlsizeof(char)sizeof(char)endl; cout第一个为表头指针,不放数据,由于用的头插法,故输出链表的顺序和输入的顺序恰好相反endl; createfromhead(lwhp); createfromtail(lwhp); linklistnizhi(lwhp); 1逆置单链表; increaselinklist(lwhp); //给单链表中的元素排序; //建立另外一个单链表; node lwh1; linklist lwhp1; lwhp1=lwh1; initlist(l

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档