线性单链表的初始化、插入、删除运算

线性单链表的初始化、插入、删除运算

ID:39930324

大小:78.00 KB

页数:5页

时间:2019-07-15

线性单链表的初始化、插入、删除运算_第1页
线性单链表的初始化、插入、删除运算_第2页
线性单链表的初始化、插入、删除运算_第3页
线性单链表的初始化、插入、删除运算_第4页
线性单链表的初始化、插入、删除运算_第5页
资源描述:

《线性单链表的初始化、插入、删除运算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、软件基础基础实验报告系别:地质工程系班级:09测绘学号:0910205006姓名:严康文实验时间:实验地点:网教中心实验环境:vc6.0实验名称:实验五线性单链表的初始化、插入运算实验六线性单链表的删除运算实验目的:(1)学习建立单链表(2)学会在单链表中实现数据的插入(3)掌握线性单链表的结构。(4)学会在单链表中实现数据的删除。实验内容:定义一个单链表输入元素10,20,30,在扫描输出该单链表中的元素以及元素个数。在元素为20的结点前插入100。然后扫描输出该单链表中的元素以及元素个数。3002010HEAD在实

2、验六的基础上实现删除指定元素。例如下图要删除20这个元素。原图:1020300HEAD删除后:3002010HEAD程序代码:#include"stdlib.h"#include"stdio.h"structnode{intd;structnode*next;};//定义一个结构体变量structnode*input(structnode*head,int*n){structnode*p,*q;intx;p=NULL;q=NULL;scanf("%d",&x);while(x>0){*n=*n+1;p=(structn

3、ode*)malloc(sizeof(structnode));p->d=x;p->next=NULL;if(head==NULL){head=(structnode*)malloc(sizeof(structnode));head=p;}elseq->next=p;q=p;scanf("%d",&x);}returnhead;}//定义一个输入函数,用于建立线性链表voidoutput(structnode*head,int*n){structnode*p;p=head;while(p!=NULL){printf("

4、%5d",p->d);p=p->next;}}//定义一个输出函数,用于链表中元素的输出structnode*lookst(structnode*head,intx){structnode*p;p=head;while((p->next!=NULL)&&(((p->next)->d)!=x))p=p->next;return(p);}//定义一个查找函数,用于查找链表中指定元素structnode*inslst(structnode*head,intx,intb,int*n){structnode*p,*q;p=(st

5、ructnode*)malloc(sizeof(structnode));p->d=b;if(head==NULL){head=p;p->next=NULL;returnhead;}if(head->d==x){p->next=head;head=p;returnhead;}q=lookst(head,x);p->next=q->next;q->next=p;*n=*n+1;returnhead;}//定义一个插入函数,用于插入指定元素structnode*delst(structnode*head,intx,int*

6、n){structnode*p,*q;if(head==NULL){printf("thisisanemptylist!");returnhead;}if((head->d)==x){p=head->next;free(head);head=p;returnhead;}q=lookst(head,x);if(q->next==NULL){printf("nothisnodeinthelist!");returnhead;}p=q->next;q->next=p->next;free(p);*n=*n-1;ret

7、urnhead;}//定义一个删除函数,用于删除指定元素voidmenu1(){printf("**********请选择您所要进行的操作************!新建建立线性表***********1!退出*************2");}//定义一个菜单函数,用于指导使用者进行操作voidmenu2(){printf("************请选择需要操作************");printf("************进行插入请选择3************");printf("***

8、*********进行删除请选择4************");printf("************退出请选择5************");}//定义一个菜单函数,用于指导使用者进行操作voidmain(){int*n,b,x,j,k;structnode*head;head=NULL;n=NULL;n=(int*)

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

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

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