链表实验报告.doc

链表实验报告.doc

ID:59501905

大小:69.50 KB

页数:11页

时间:2020-11-03

链表实验报告.doc_第1页
链表实验报告.doc_第2页
链表实验报告.doc_第3页
链表实验报告.doc_第4页
链表实验报告.doc_第5页
资源描述:

《链表实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《数据结构》实验报告二系别:嵌入式系统工程系班级:嵌入式11003班学号:姓名:孙立阔日期:2012年4月9日指导教师:申华一、上机实验的问题和要求:单链表的查找、插入与删除。设计算法,实现线性结构上的单链表的产生以及元素的查找、插入与删除。具体实现要求:1.从键盘输入10个字符,产生不带表头的单链表,并输入结点值。2.从键盘输入1个字符,在单链表中查找该结点的位置。若找到,则显示“找到了”;否则,则显示“找不到”。3.从键盘输入2个整数,一个表示欲插入的位置i,另一个表示欲插入的数值x,将x插入在对应位置上,输出单链表所有结点值,观察

2、输出结果。4.从键盘输入1个整数,表示欲删除结点的位置,输出单链表所有结点值,观察输出结果。5.将单链表中值重复的结点删除,使所得的结果表中个结点值均不相同,输出单链表所有结点值,观察输出结果。6.删除其中所有数据值为偶数的结点,输出单链表所有结点值,观察输出结果。7.(★)将单链表分解成两个单链表A和B,使A链表中含有原链表中序号为奇数的元素,而B链表中含有原链表中序号为偶数的元素,且保持原来的相对顺序,分别输出单链表A和单链表B的所有结点值,观察输出结果。二、程序设计的基本思想,原理和算法描述:(包括程序的结构,数据结构,输入/输出

3、设计,符号名说明等)创建一个空的单链表,实现对单链表的查找,插入,删除的功能。三、源程序及注释:#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2#defineTRUE1#defineFALSE0#defineList_Init_Size10#defineListIncrement2typedefcharET;typedefET*Ep;typedefintStatus;typedefstructLNode{ETdata;structLNode*next;}LNode,*

4、LinkList;/*LinkListLa,Lb,Lc;*/#include"stdio.h"#include"alloc.h"/*Displaythelinklist'selements.*/voidprintlk(LinkListL){LinkListp;p=L->next;while(p){printf("%c->",p->data);p=p->next;}printf("NULL");}/*Creatlinklistfromheadnode.*/voidCreatList(LinkList*L,intn){inti;Lin

5、kListp,q;ETstr[20],c;p=(LinkList)malloc(sizeof(LNode));p->next=NULL;*L=q=p;printf("Pleaseinputthedata:");for(i=n;i>0;i--){p=(LinkList)malloc(sizeof(LNode));c=getche();/*scanf("%c",&c);*/printf("");p->data=c;p->next=q->next;q->next=p;}}/*Initthelinklist.*/voidInit(Lin

6、kList*L){intn;printf("Pleaseinputthenumberofthenode:");scanf("%d",&n);CreatList(L,n);}/*GetthevalueofelementI;*/intGetElem(LinkListL,inti,ET*e){intj=1;LinkListp;p=L->next;while(p&&jnext;++j;}if(!p

7、

8、j>i)returnTRUE;*e=p->data;returnFALSE;}/*InsertaelementafterI*/i

9、ntListInsert(LinkList*L,inti,ETe){/*Addyourowncodes.*/}/*DeletetheelementI*/intListDelete(LinkList*L,inti,ET*e){/*Addyourowncodes.*/}intInsert(LinkList*L){inti,flag;ETdata;printf("Pleaseinputtheposition:");scanf("%d",&i);printf("Pleaseinputthedata:");data=getche();/*scan

10、f("%c",&data);*/flag=ListInsert(L,i,data);returnflag;}StatusDelete(LinkList*L){inti,flag;ETe;printf("Pl

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

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

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