计算机软件基础实验二(链表实验).doc

计算机软件基础实验二(链表实验).doc

ID:51389800

大小:88.50 KB

页数:20页

时间:2020-03-23

计算机软件基础实验二(链表实验).doc_第1页
计算机软件基础实验二(链表实验).doc_第2页
计算机软件基础实验二(链表实验).doc_第3页
计算机软件基础实验二(链表实验).doc_第4页
计算机软件基础实验二(链表实验).doc_第5页
资源描述:

《计算机软件基础实验二(链表实验).doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验报告课程(项目)名称:计算机软件技术基础实验二(链表)学院:专业:班级:学号:姓名:成绩:2009年11月8H%1.实验目的(1)掌握链表的概念。(2)熟练掌握线性表的链式存储结构。(3)熟练掌握线性表在链式存储结构上的运算。%1.算法设计方案与实施过程1・实验内容简述(1)编写算法,根据用户输入的字符数据分别用尾插法和头插法创建一个带头结点的单链表,作为输入数据的结束符。(2)编写算法,在带有头结点的单链表中查找序号为i的结点和值为x的结点并输出。(3)[2知单链表中的数据元素递増有序,编写算法,删除表中值在min与n

2、mx之间的结点。⑷己知单链表中的元素非递减有序排列,编写算法删除单链表中值相同的多余的元素。2.算法设计思想尾插法——创建头结点,第一次建立的新结点链给头结点,以后创建的新结点链到上一个结点,把最后一个结点的next赋空.返冋头结点,就得到幣个链表!头插法——创建头结点,将h->next作为尾结点,第一次建立的新结点的next链给尾结点,以后创建的新结点next链到上一个结点,最后一•个结点链给头结点后而。返冋头结点,就得到幣个链表!按序号杳找一一从头一次往下杳找,每查找一次将计数器加-,当计数器和要杳找的序号一致时,结束循

3、环,输出所杏找的结点对应的数据。按值杳找——从头往下杳找,每杳找一次计数器加一,当杳找值和表中值一•致时结束循环,输出杳找的元素和对应的序号,当循环一直进行,找不到要查找的元素时,输出无此元素!删除min和max之间的元素——从头往下查找,当查找到min吋结束第一次循环,当查找到max时结束第二次循环,将min和max链起來,将中间的结点释放。返冋头结点!删除多余的元素——依次往下查找,当两个相邻的元素相等时,链到下一个元素,释放重复的元素!返冋头结点!2.算法模块流程图2.源程序清单^include#in

4、cludetypedefchardatatype;typedefstruetnode{ddtatypechta;structnode*next;}LinkList;//尾插法LinkList*createlist(){LinkList*h,*q;charch;h=(LinkList*)mtilloc(sizeof(LinkList));printf(zzPleaseinputtheLinkListnodevalues(Endby#)");P=h;ch=getchar();while(ch!=,#'

5、){q二(LinkList*(sizeof(LinkList));q->dcitaz:ch;p->next=q;P二q;ch=getchar();p->ncxL二NULL;returnh;}//头插法LinkList*createlist2(){LinkList*q,*h;charch;h=(LinkList*)malloc(sizeof(LinkList));printf(z,PleaseinputtheLinkListnodevalues(Endby#)〃);h->ncxt=NULL;ch=getchar();w

6、hile(ch!=,#'){q二(LinkList*)nmlloc(sizeof(LinkList));q->data=ch;q->next二h->next;h->ncxt=q;ch=getchar();returnh;voidoutput(LinkList*h)LinkList*pl二NULL;pl=h->next;while(pl!=NULL){printf(〃%c”,pl->data);pl=pl->next;}printf(/z/z);}voidmain(){intchoose二0;LinkList*h=NULL

7、;printf(,z选择1-尾插法,选择2-头插法"):scanf&choose);switch(choose){case1:h=createlist();printf(〃尾插法链表为:〃);output(h);break;case2:h=createlist2();printfC头插法链表为:");output(h);break;查找:#include#includetypedefchardatstype;typedefstructnode{datatypedata;structn

8、ode*next;}LinkList;//尾插法LinkList*createlist(){LinkList*h,*p,*q;charch;h=(LinkList*)malloc(sizeof(LinkList));printf(?,PleaseinputtheLinkListnode

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。