数据结构域算法设计-实验一 单链表 实验二 栈和队列的基本操作及其应用)

数据结构域算法设计-实验一 单链表 实验二 栈和队列的基本操作及其应用)

ID:33422175

大小:290.00 KB

页数:15页

时间:2019-02-25

数据结构域算法设计-实验一  单链表     实验二  栈和队列的基本操作及其应用)_第1页
数据结构域算法设计-实验一  单链表     实验二  栈和队列的基本操作及其应用)_第2页
数据结构域算法设计-实验一  单链表     实验二  栈和队列的基本操作及其应用)_第3页
数据结构域算法设计-实验一  单链表     实验二  栈和队列的基本操作及其应用)_第4页
数据结构域算法设计-实验一  单链表     实验二  栈和队列的基本操作及其应用)_第5页
资源描述:

《数据结构域算法设计-实验一 单链表 实验二 栈和队列的基本操作及其应用)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1、帮助读者复习C语言程序设计中的知识。2、熟悉线性表的逻辑结构。3、熟悉线性表的基本运算在两种存储结构上的实现,其中以熟悉链表的操作为侧重点。二、实验内容实现带头结点的单链表的建立、求长度,取元素、修改元素、插入、删除等单链表的基本操作。三、基本要求(1)依次从键盘读入数据,建立带头结点的单链表;(2)输出单链表中的数据元素(3)求单链表的长度;(4)根据指定条件能够取元素和修改元素;(5)实现在指定位置插入和删除元素的功能。四、实验步骤(1)程序如下:#include#includetypedefcharElemType;structLNode{El

2、emTypedata;structLNode*next;};//***********************************************************放置空表setnull()voidsetnull(structLNode**p){*p=NULL;}//************************************************************求长度length()intlength(structLNode**p){intn=0;structLNode*q=*p;while(q!=NULL){n++;q=q->next;}retur

3、n(n);}//*************************************************************取结点get()ElemTypeget(structLNode**p,inti){intj=1;structLNode*q=*p;while(jnext;j++;}if(q!=NULL)/**//*找到了第i个结点*/return(q->data);else{printf("位置参数不正确!");returnNULL;}}//*******************************

4、*****************************按值查找locate()intlocate(structLNode**p,ElemTypex){intn=0;structLNode*q=*p;while(q!=NULL&&q->data!=x)/**//*查找data域为x的第一个结点*/{q=q->next;n++;}if(q==NULL)/**//*未找到data域等于x的结点*/return(-1);else/**//*找到data域等于x的结点*/return(n+1);}//*************************************************

5、*********插入结点insert()voidinsert(structLNode**p,ElemTypex,inti){intj=1;structLNode*s,*q;s=(structLNode*)malloc(sizeof(structLNode));/**//*建立要插入的结点s*/s->data=x;q=*p;if(i==1)/**//*插入的结点作为头结点*/{s->next=q;*p=s;}else{while(jnext!=NULL)/**//*查找第i-1个结点*/{q=q->next;j++;}if(j==i-1)/**//*找到了第i-1个结点,由

6、q指向它*/{s->next=q->next;/**//*将结点s插入到q结点之后*/q->next=s;}elseprintf("位置参数不正确!");}}//*********************************************************删除结点del()voiddel(structLNode**p,inti){intj=1;structLNode*q=*p,*t;if(i==1)/**//*删除链表的头结点*/{t=q;*p=q->next;}else{while(jnext!=NULL)/**//*查找第i-1个结点*/{q=q

7、->next;j++;}if(q->next!=NULL&&j==i-1)/**//*找到第i-1个结点,由q指向它*/{t=q->next;/**//*t指向要删除的结点*/q->next=t->next;/**//*将q之后的结点删除*/}elseprintf("位置参数不正确!");}if(t!=NULL)/**//*在t不为空时释放该结点*/free(t);}//*****************

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

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

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