资源描述:
《线性单链表的初始化、插入、删除运算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
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*)