线性单链表的初始化、插入、删除运算.doc_第1页
线性单链表的初始化、插入、删除运算.doc_第2页
线性单链表的初始化、插入、删除运算.doc_第3页
线性单链表的初始化、插入、删除运算.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、个元素。原图:1020300head删除后:3002010head程序代码:#includestdlib.h#includestdio.hstruct nodeint d;struct node *next; /定义一个结构体变量struct node *input(struct node *head,int *n)struct node *p,*q;int x;p=null;q=null;scanf(%d,&x);while(x0)*n=*n+1;p=(struct node *)malloc(sizeof(struct node);p-d=x;p-next=null;if(head=nul

3、l)head=(struct node *)malloc(sizeof(struct node); head=p;else q-next=p;q=p;scanf(%d,&x);return head; /定义一个输入函数,用于建立线性链表void output(struct node *head,int *n) struct node *p; p=head; while(p!=null) printf(%5d,p-d); p=p-next; /定义一个输出函数,用于链表中元素的输出struct node *lookst(struct node *head,int x) struct node

4、*p; p=head; while(p-next!=null)&(p-next)-d)!=x) p=p-next; return(p); /定义一个查找函数,用于查找链表中指定元素 struct node * inslst(struct node *head,int x,int b,int *n)struct node *p,*q;p=(struct node *)malloc(sizeof(struct node);p-d=b;if(head=null)head=p;p-next=null;return head;if(head-d=x)p-next=head;head=p;return h

5、ead;q=lookst(head,x);p-next=q-next;q-next=p;*n=*n+1;return head; /定义一个插入函数,用于插入指定元素 struct node * delst(struct node *head,int x ,int *n)struct node *p,*q;if(head=null)printf(this is an empty list!n);return head;if(head-d)=x)p=head-next;free(head);head=p;return head;q=lookst(head,x);if(q-next=null)pr

6、intf(no this node in the list!n); return head;p=q-next;q-next=p-next ;free(p);*n=*n-1;return head; /定义一个删除函数,用于删除指定元素void menu1()printf(*请选择您所要进行的操作*n!新建建立线性表*1n!退出*2n); /定义一个菜单函数,用于指导使用者进行操作void menu2()printf(*请选择需要操作*n);printf(*进行插入请选择3*n);printf(*进行删除请选择4*n);printf(*退出请选择5*n); /定义一个菜单函数,用于指导使用者进行

7、操作void main()int *n,b,x,j,k;struct node *head; head=null;n=null;n=(int *)malloc(sizeof(int);*n=0; /定义各种变量,并给各种变量赋予初始值printf(*您好!欢迎您使用这款软件。*n 本软件是由严康文开发出来的,版权所用,翻版必究!n 本软件是用于实现线性表的删除与插入运算,操作界面简单,人性化适用于数据库的建立,插入与删除n); /使用前的说明menu1(); /调用菜单一,进行使用前的选择scanf(%d,&j);if(j=1)printf(现在开始建立一个线性表n);printf(请输入元素到线性链表中:);head=input(head,n);printf(线性表中的元素是:);output(head,n); /若用户选择建立一个线性链表,则调用input函数进行建立链表,并同时调用output函数进行输出menu2(); /调用菜单二,进行选择插入或删除scanf(%d,&k); while(k!=6)if(k=3) printf(n现在请输入要插入的元素:);scanf(%d,&b);printf(n请输入在那个元素前插入:);scanf(%d,&x);inslst(head,x,b,n);output(head,n);else if(k=4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论