数据结构实验一--基于数组的表实验

上传人:206****923 文档编号:90427677 上传时间:2019-06-12 格式:DOCX 页数:8 大小:22.21KB
返回 下载 相关 举报
数据结构实验一--基于数组的表实验_第1页
第1页 / 共8页
数据结构实验一--基于数组的表实验_第2页
第2页 / 共8页
数据结构实验一--基于数组的表实验_第3页
第3页 / 共8页
数据结构实验一--基于数组的表实验_第4页
第4页 / 共8页
数据结构实验一--基于数组的表实验_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《数据结构实验一--基于数组的表实验》由会员分享,可在线阅读,更多相关《数据结构实验一--基于数组的表实验(8页珍藏版)》请在金锄头文库上搜索。

1、实验一 基于数组的表实验一、实验目的1.学会定义线性表的顺序存储类型,实现C程序的基本结构,对线性表的一些基本操作和具体的函数定义。2.掌握顺序表的基本操作,实现顺序表在指定位置插入、删除运算以及查找运算。3.掌握函数的调用过程。二、实验要求1预习C语言中结构体的定义与基本操作方法。2对顺序表的每个基本操作用单独的函数实现。3编写完整程序完成下面的实验内容并上机调试,运行。4按南昌大学教务处要求整理并上交实验报告。 三、实验内容:1编写程序实现顺序表的下列基本操作:(1) 初始化顺序表La。(2) 在顺序表中插入元素形成表 10 20 30 40 50,并输出表。(3) 删除表中第3个元素,并

2、输出表(4) 删除元素40,并输出表(5)在La中查找某元素,若找到,则返回它在La中第一次出现的位置,否则返回0。(6)打印输出La中的元素值。#includestdio.h#include#define maxsize 10typedef structint datamaxsize; int length;seqlist;seqlist sqint()seqlist L; L.length=0; return L;seqlist sqinsert(seqlist L,int x)if(L.length=maxsize)printf(overflow);exit(0);L.length+;L

3、.dataL.length-1=x;return L;seqlist sqdelete(seqlist L,int i)int j; if(iL.length) printf(not this element in the list.n);exit(0); for(j=i;jL.length;j+) L.dataj-1=L.dataj; L.length-; return L;int sqlocate(seqlist L,int x)int i=1; while(i=L.length&L.datai-1!=x) i+; if(i=L.length) return i; else return

4、0;void sqprint(seqlist L)int i; for(i=0;iL.length;i+) printf(%dn,L.datai);main()int i,a;seqlist L;L=sqint();L=sqinsert(L,10);L=sqinsert(L,20);L=sqinsert(L,30);L=sqinsert(L,40);L=sqinsert(L,50);printf(初始化的表为:n);sqprint(L);printf(删除第三个元素后的表为:n);L=sqdelete(L,3);sqprint(L);printf(n);i=sqlocate(L,40);L=s

5、qdelete(L,i);printf(删除元素40后的表为:n);sqprint(L);printf(n);printf(请输入元素:);scanf(%d,&a);i=sqlocate(L,a);printf(所在的位置是%dn,i);printf(最终的表为:n);sqprint(L);2编写程序完成下面的操作:(1)构造两个顺序线性表La和Lb,其元素都按值非递减顺序排列。(2)实现归并La和Lb得到新的顺序表Lc,Lc的元素也按值非递减顺序排列。#includestdio.h#include#define maxsize 30typedef structint datamaxsize;

6、 int length;seqlist;seqlist sqint()seqlist L; L.length=0; return L;seqlist sqinsert(seqlist L,int x)if(L.length=maxsize)printf(overflow);exit(0);L.length+;L.dataL.length-1=x;return L;seqlist sqdelete(seqlist L,int i)int j; if(iL.length) printf(not this element in the list.n);exit(0); for(j=i;jL.leng

7、th;j+) L.dataj-1=L.dataj; L.length-; return L;int sqlocate(seqlist L,int x)int i=1; while(i=L.length&L.datai-1!=x) i+; if(i=L.length) return i; else return 0;void sqprint(seqlist L)int i; for(i=0;iL.length;i+) printf(%dn,L.datai);main()int i,j,t;int a0,a1,a2,a3;int b1,b2,b3,b4,b0;seqlist La,Lb,Lc;pr

8、intf(请输入La表的四个元素:n);scanf(%d%d%d%d,&a0,&a1,&a2,&a3);La=sqint();La=sqinsert(La,a0);La=sqinsert(La,a1);La=sqinsert(La,a2);La=sqinsert(La,a3);for(i=0;i3;i+) for(j=i+1;jLa.dataj) t=La.datai;La.datai=La.dataj;La.dataj=t;printf(La表为:n);sqprint(La);printf(请输入Lb表的四个元素:n);scanf(%d%d%d%d,&b0,&b1,&b2,&b3);Lb=s

9、qint();Lb=sqinsert(Lb,b0);Lb=sqinsert(Lb,b1);Lb=sqinsert(Lb,b2);Lb=sqinsert(Lb,b3);for(i=0;i3;i+) for(j=i+1;jLb.dataj) t=Lb.datai;Lb.datai=Lb.dataj;Lb.dataj=t;printf(Lb表为:n);sqprint(Lb);Lc=sqint();i=0; while(La.length&Lb.length) if(La.datai=Lb.datai) Lc=sqinsert(Lc,La.datai); La=sqdelete(La,i+1); el

10、se Lc=sqinsert(Lc,Lb.datai); Lb=sqdelete(Lb,i+1); if(La.length=0)for(i=0;iLb.length;i+)Lc=sqinsert(Lc,Lb.datai);elsefor(i=0;iLb.length;i+)Lc=sqinsert(Lc,La.datai); printf(Lc表为:n);sqprint(Lc);四、思考与提高假设两个顺序线性表La和Lb分别表示两个集合A和B,如何实现A=A B ?#includestdio.h#include#define maxsize 30typedef structint datama

11、xsize; int length;seqlist;seqlist sqint()seqlist L; L.length=0; return L;seqlist sqinsert(seqlist L,int x)if(L.length=maxsize)printf(overflow);exit(0);L.length+;L.dataL.length-1=x;return L;seqlist sqdelete(seqlist L,int i)int j; if(iL.length) printf(not this element in the list.n);exit(0); for(j=i;j

12、L.length;j+) L.dataj-1=L.dataj; L.length-; return L;void sqprint(seqlist L)int i; for(i=0;iL.length;i+) printf(%dn,L.datai);main()int i,j,t;int a0,a1,a2,a3,a4,a5;int b1,b2,b3,b4,b5,b0;seqlist La,Lb,Lc;printf(请输入La表的六个元素:n);scanf(%d%d%d%d%d%d,&a0,&a1,&a2,&a3,&a4,&a5);La=sqint();La=sqinsert(La,a0);La=

13、sqinsert(La,a1);La=sqinsert(La,a2);La=sqinsert(La,a3);La=sqinsert(La,a4);La=sqinsert(La,a5);for(i=0;i5;i+) for(j=i+1;jLa.dataj) t=La.datai;La.datai=La.dataj;La.dataj=t;printf(La表为:n);sqprint(La);printf(请输入Lb表的六个元素:n);scanf(%d%d%d%d%d%d,&b0,&b1,&b2,&b3,&b4,&b5);Lb=sqint();Lb=sqinsert(Lb,b0);Lb=sqinsert(Lb,b1);Lb=sqinsert(Lb,b2);Lb=sqinsert(Lb,b3);Lb=sqinsert(Lb,b4);Lb=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号