欢迎来到天天文库
浏览记录
ID:11864443
大小:139.50 KB
页数:16页
时间:2018-07-14
《计算机软件技术基础实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一线性表的基本操作一、实验目的与基本要求1.掌握数据结构中的一些基本概念。数据、数据项、数据元素、数据类型和数据结构,以及它们之间的关系。2.了解数据的逻辑结构和数据的存储结构之间的区别与联系;数据的运算与数据的逻辑结构的关系。3.掌握线性表的基本操作:插入、删除、查找以及线性表的合并等运算。4.掌握运用C语言上机调试线性表的基本方法。二、实验条件1.硬件:一台微机2.软件:操作系统和C语言系统三、实验方法确定存储结构后,上机调试实现线性表的基本运算。四、实验内容1.试编写在无头结点的单链表上实现线性表基本运算LOCATE(L,X),INSERT(L,X,1)和D
2、ELETE(L,1)的算法。2.假设有两个按数据元素值递增有序排列的线性表A和B,均以单链表作为存储结构。编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许值相同)排列的线性表C,并要求利用原表(即A表和B表)结点空间存放表C。3.将一个线性表中的值就地逆置。4.在线性表的顺序存储结构的第一个位置上插入一个元素。(注意区分链表和顺序表)实验代码:#include"stdlib.h"#include"stdio.h"structnode//定义结构体{16intd;structnode*next;};structnode*head1,*head2,*p,
3、*q;voidpre(structnode*head)//打印数据{printf("链表中的数据为:");p=head;while(p!=NULL){printf("%5d",p->d);q=p;p=p->next;}printf("");}structnode*creat()//建立链表{structnode*head;intx;printf("输入你要储存的数据:");head=NULL;q=NULL;scanf("%d",&x);while(x>0){p=(structnode*)malloc(sizeof(structnode));p->d=x;p
4、->next=NULL;if(head==NULL)head=p;elseq->next=p;q=p;scanf("%d",&x);getchar();}pre(head);return(head);}voidlocate(structnode*head,intx)//查找链表中的数据{intu=1;p=head;16while(p->next!=NULL){if(p->d==x)break;else{p=p->next;u++;}}if(p->d!=x)printf("无此结点");printf("在链表中的位置为:");printf("%d",u);}voidin
5、sert(structnode*head,intx,inti)//插入数据{p=head;intj=1;q=(structnode*)malloc(sizeof(structnode));q->d=x;if(i==1){q->next=head;head=q;}else{while((jnext!=NULL)){j++;p=p->next;}q->next=p->next;p->next=q;}}voiddelet(structnode*head,inti)//删除数据{p=head;intj=1;if(i<0)printf("无此位置");if
6、(i==1){q=head;head=head->next;free(q);}else{while((jnext!=NULL)){p=p->next;j++;}q=p->next;p->next=q->next;free(q);}}16voidhebing(structnode*x,structnode*y)//合并两个链表{p=x;q=y;while(p->next!=NULL)p=p->next;p->next=q;pre(x);}voidpaixu(structnode*head)//对链表中的数据进行排序{intm,n,i=1,t;p=h
7、ead;while(p->next!=NULL){p=p->next;i++;}p=head;for(n=i;n>1;n--){p=head;for(m=1;mnext;if(p->dd){t=p->d;p->d=q->d;q->d=t;}p=p->next;}}}voidcaozuo(structnode*head)//操作界面{intm,n;chart;printf("输入你要的操作:,查找2,插入3,删除");scanf("%c",&t);switch(t){case'1':{printf("输入你要查找的
此文档下载收益归作者所有