2023年链表实验报告.docx
《2023年链表实验报告.docx》由会员分享,可在线阅读,更多相关《2023年链表实验报告.docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构实验报告二系别:嵌入式系统工程系学号:日期:202 3年4月9日一班级:嵌入式110 0 3班一姓名:孙立阔指导教师呻华一、上机实验的问题和规定:单链表的查找、插入与删除。设计算法,实现线性结构上的单链表的产生以及元素的查 找、插入与删除。具体实现规定:1 .从键盘输入1 0个字符,产生不带表头的单链表,并输入结点值。2 .从键盘输入1个字符,在单链表中查找该结点的位置。若找到,则显示“找到了” ;否则, 则显示“找不到”。3 .从键盘输入2个整数,一个表达欲插入的位置i,另一个表达欲插入的数值x,将x插入在 相应位置上,输出单链表所有结点值,观测输出结果。4 .从键盘输入1个整数,表
2、达欲删除结点的位置,输出单链表所有结点值,观测输出结果。5 .将单链表中值反复的结点删除,使所得的结果表中个结点值均不相同,输出单链表所有 结点值,观测输出结果。6 .删除其中所有数据值为偶数的结点,输出单链表所有结点值,观测输出结果。7 .()将单链表分解成两个单链表A和B,使A链表中具有原链表中序号为奇数的元素,而B链表中具有原链表中序号为偶数的元素,且保持本来的相对顺序,分别输出单链表A 和单链表B的所有结点值,观测输出结果。二、程序设计的基本思想,原理和算法描述:(涉及程序的结构,数据结构,输入/输出设计,符号名说明等)创建一个空的单链表,实现对单链表的查找,插入,删除的功能。prin
3、tf ( nnnn);wh ile (1), pri n tf (nS electn);sc a nf &n);s w i tch (n)6 (叱a s e 0:。exit (0);e ak; ca s e 1:g printf (please input the p o sit i on: n);。scan f ( %d, &n);g prin t f ( please i nput the d ata: n*);*scanf (%d ”,&x); InsL i st (h, n, x);P r intLi s t(h);o bre a k;c as e 2:予r i ntf ( p le
4、a s e i np u t y ou want to delete p o sition:n );scan& i );D e 1 L ist(h , i);Prin t L i st ( h);c ase 3 : printf (p 1 ease inpu t y ou want t o search posit i on:n);sc anf ( , %d w , &i);g L o cLis t (h, i );P r i ntList(h);awbreak;default:pr i ntf (*e r r o rn );g br e ak;)LinkLi st* InitLi s t (
5、)(。L i n kList *h, *s, *r;int a, c, i;h= (L i nkList*)malloc(si z e o f (Li n kL i st);hnex t =NULL;r=h;pri n tf (please inp u t some 1 ink s le n g t h :);sc a n f &c);for(i=0; i s c anf (%d”, &a);s= (L i nkL ist * ) malloc(s i ze o f (Li nkList);g s-data=a;0 s -nex t =r-nex t ;3 rnext=s;, r=r-ne x
6、 t ; )return h;)v oi d I n s L i s t (L i nkL ist *h, i n t i, Da t aTy p e x) (此inkList *s, *p;in t j =1 ;P=h;岭二(L inkLis t *) ma 1 loc(sizeof (LinkList);f or(j = l; jnext;i f(p=NULL)aprintf ( e rror! n);else(s-dat a =x;s-next=pnext ;n e xt=s; ,void DelList (L i nkList *h, int i ) (电 i n kL i st *p
7、, *q;int j = l;p = h n ext;q =p-ne x t;whil e (j!= i - 1 & q!=NULL)p=p- n ext;o q =q-next;,j +;if(q=NULL)。 printf ( error! n );else( p-n e xt= q -n e xt;f r e e (q);4)voi d LocLis t (LinkL i s t *h, i nt i)Li n kLi s t *p;int j=l;p= h -ne x t; d a ta=i) (p rintf C position i s %dn”, j );,b r e ak;8a
8、p=p- n ex t ;d +;4nf (p =NULL)Q pr i nt f (NO this d a ta in the linkn);)v oid PrintList (L i nkL is t *h)(L inkL i st *p;op= h - n ex t ;twhile(p! =NULL)(p r int f ( %d p - d ata);四、运营输出结果:F:ESEC PROJECTslkDebugslk.exeplease input sone link, s length:4 12351 - 23 - 4 - 5 -H123EXIT INSERT DELERT LOC
9、ERTSelect1please input the position:3please input the data: 341 - 23 - 34 - 4 - 5 Select2please input you want todelete position:1 - 23 - 34 - 5 - Select3 please input you uant to31 - 23 - 34 - 5 -search position:五、调试和运营程序过程中产生的问题及采用的措施:问题:子函数和主函数前后的调用出现问题,指针的调用不是太明白。措施:根据编译器提醒的错误逐个检查子函数前后的变量,以及寻求同学
10、的帮助。六、对算法的程序的讨论、分析,改善设想,其它经验教训I:看一段代码和亲自动手编写一套程序差别太大了,所以以后还 要多亲手上机操作,尚有对指针的调用方便还很欠缺,要多学习。七、对实验方式、组织、设备、题目的意见和建议:希望老师以后可以给我们多些自己动手实践的机会,可以在课堂 上多让我们动手去上机操作,老师带领我们完毕重要部分,或给一些 提醒指导。三、源程序及注释:# d e fin e OKIde f ine ERROR0# dcf i n e INFEASIBLE -1d e fine OVERFLOW-2# de fine TRUE1defin e FALSE0# def i n e
11、 List_ I n it_Size 10d e fine L i sll n cremen t 2 typcdcf char ET;typedef ET * E p ;typed e f i nt St a t u s;typ e def struc t LNodeET data;s t ru c I LN ode *n e xt;o LNode,*LinkList;/ * L i n k List L a ,Lb, L c;#in c 1 nd e st dio.h# i nckide al 1 oc.h/*Display the 1 i n kl i stselements.*/v o
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 年链表 实验 报告
限制150内