数据结构实验报告1由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数据结构实验1报告”。
南京信息工程大学实验(实习)报告
实验(实习)名称数据结构实验(实习)日期 2010-10-26得分指导教师周素萍
系信息管理与信息系统专业年级班次姓名学号
实验一顺序表的基本操作及C语言实现
【实验目的】
顺序表的基本操作及 C 语言实现
【实验要求】
1、用 C 语言建立自己的线性表结构的程序库,实现顺序表的基本操作。
2、对线性表表示的集合,集合数据由用户从键盘输入(数据类型为整型),建立相应的顺序表,且使得数据按从小到大的顺序存放,将两个集合的并的结果存储在一个新的线性表集合中,并输出。
3、撰写实验报告并附上集合操作的程序和结果。(实验报告格式等会儿上传)
【实验内容】
1、根据教材定义的顺序表结构,用 C 语言实现顺序表结构的创建、插入、删除、查找等操作;
2、利用上述顺序表操作实现如下程序:建立两个顺序表表示的集合(集合中无重复的元素),并求这样的两个集合的并。
【实验结果】
#include
#include
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define ERROR 0
#define OVERFLOW-1
typedef struct{
int *elem;int length;int listsize;
}SqList;
void InitList_Sq(SqList &L)
{
//构造一个空的线性表 L.elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));if(!L.elem)exit(OVERFLOW);L.length=0;L.listsize=LIST_INIT_SIZE;
}//InitList_Sq
void ListInsert_Sq(SqList &L,int i,int e)
{
//在顺序表L中的第i个位置之前插入新的元素e int *newbase,*p,*q;if(iL.length+1){} q=&(L.elem[i-1]);for(p=&(L.elem[L.length-1]);p>=q;--p)*(p+1)=*p;*q=e;2 exit(ERROR);if(L.length>=L.listsize)newbase=(int*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(int));if(!newbase)exit(OVERFLOW);L.elem=newbase;L.listsize+=LISTINCREMENT;
++L.length;
}//ListInsert_Sq
void ListDelete_Sq(SqList &L,int i)
{
//在顺序线性表L中删除第i个元素 int *p,*q;exit(ERROR);if((iL.length))p=&(L.elem[i-1]);q=L.elem+L.length-1;for(++p;p
}//ListDelete_Sq
void MergeList_Sq(SqList La,SqList Lb,SqList &Lc){
//已知线性表La和Lb中的数据元素按值非递减排列。//归并La和Lb得到新的线性表Lc,Lc的数据元素也按值非递减排列。int *pa,*pb,*pc,*pa_last,*pb_last,i;pa=La.elem;pb=Lb.elem;Lc.listsize=Lc.length=La.length+Lb.length;pc=Lc.elem=(int *)malloc(Lc.listsize*sizeof(int));if(!Lc.elem)exit(OVERFLOW);pa_last=La.elem+La.length-1;pb_last=Lb.elem+Lb.length-1;while(pa
} for(i=0;i
}//MergeList_Sq
int LocateElem_Sq(SqList L,int e,int(*compare)(int)){
}
void sort(SqList a,int n)
{
}
int main()//在顺序线性表L中查找第1个值与e满足compare()的元素位序 int i=1,*p;p=L.elem;while(i=a.elem[j+1]){} t=a.elem[j+1];a.elem[j+1]=a.elem[j];a.elem[j]=t;
SqList a,b,c;
int i=0,n1,n2;InitList_Sq(a);InitList_Sq(b);printf(“请输入第一个顺序表的整数数据(以0000为结束标志,100个数据以while(scanf(”%d“,&a.elem[i])&&(a.elem[i]!=0000)&&(++i));a.length=i;n1=i;printf(”请输入第二个顺序表的整数数据(以0000为结束标志,100个数据以i=0;while(scanf(“%d”,&b.elem[i])&&(b.elem[i]!=0000)&&(++i));b.length=i;n2=i;sort(a,n1);printf(“顺序表1排序后为:”);for(i=0;i
}} i--;printf(“顺序表1去除重复数据排序后为:”);for(i=0;i
printf(“%d ”,a.elem[i]);
printf(“n”);
printf(“顺序表2去除重复数据排序后为: for(i=0;i
printf(”%d “,b.elem[i]);
printf(”n“);
printf(”合并后从小到大为:“);
MergeList_Sq(a,b,c);
printf(”n“);
return 0;
}”);
刀豆文库小编为你整合推荐8篇数据结构实验报告,也许这些就是您需要的文章,但愿刀豆文库能带给您一些学习、工作上的帮助。......
注意:实验结束后提交一份实验报告电子文档电子文档命名为“学号+姓名”,如:E01214058宋思怡《数据结构》实验报告(一)学号:姓名:专业年级:实验名称:线性表实验日期:2014年4月14日实验......
数据结构实验报告想必学计算机专业的同学都知道数据结构是一门比较重要的课程,那么,下面是本站小编给大家整理收集的数据结构实验报告,供大家阅读参考。数据结构实验报告1一、......
数据结构实验报告(精选16篇)由网友“coco2008”投稿提供,下面是小编为大家推荐的数据结构实验报告,欢迎大家分享。篇1:数据结构实验报告 一、实验目的及要求1)掌握栈和队列这两种......
实验报告4 排序一、实验目的1、掌握常用的排序方法,并掌握用高级语言实现排序算法的方法。2、深刻理解排序的定义和各种排序方法的特点,并能加以灵活应用。3、了解各种方法的......