1 / 29
文档名称:

实验一线性表基本操作应用.doc

格式:doc   大小:411KB   页数:29页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验一线性表基本操作应用.doc

上传人:一花一叶 2019/5/17 文件大小:411 KB

下载得到文件列表

实验一线性表基本操作应用.doc

相关文档

文档介绍

文档介绍:蒆蚅数据结构实验报告莀(实验一&实验二)薇蚅肄膀虿羇薄袁螀班级:软件121肅学号:201200834122羃姓名:程猛实验一线性表的基本操作及应用蚁【实验目的】蒇理解线性表的逻辑结构特性是数据元素之间存在着线性关系,掌握顺序表的特点是逻辑上相邻的元素的存储地址也相邻,熟练掌握线性表的查找、插入和删除等算法并灵活运用这些算法。蒈【实验内容】(任选一题)莃1、建立一个顺序表,要求完成以下操作:实现顺序表的初始化、销毁顺序表、重置顺序表为空表、判断顺序表是否是空表、求顺序表的元素个数、取顺序表中的一个数据、查找顺序表中的一个元素值、查找某一位置元素的前驱和后继、将一个值插入到指定的位置、删除指定位置的元素。莂按此方法定义另一个顺序表,实现两个顺序表的合并;如果这两个顺序表元素值是有序的,实现这两个顺序表的合并,并使合并后的数据也是有序排列的。蕿要求薆(a)顺序表的初始状态可直接赋值,也可将初态置为空表,从键盘读入数据元素。肆(b)每做一次操作将结果打印出来。膂蚀2、建立单链表L(分别采用头插法和尾插法),打印单链表中的数据、打印单链表长度、按值查找元素、按位置取元素、插入结点和删除结点。蚅(a)初始将单链表置空蒅(b)在单链表中插入元素袂(c)按值查找元素蒈(d)按位置取元素肇(e)插入结点羅(f)删除结点薃葿3、以循环单链表为存储结构,编写程序求解约瑟夫问题。膅编号为1,2,···,n的n个人围坐在一圆桌旁,从第s个人开始报数,报到第m的人退席,下一个人又重新从1开始报数,依此重复,直至所有的人都退席。莄要求莃(a)循环单链表的初始状态可直接赋值,也可将初态置为空表,从键盘(文件)读入数据元素。薀(b)输出删除元素的顺序薈(c)分析算法的时间性能螃【源代码】肃#include""莈#include<>蚆#include<>芃#defineSIZE10薀#defineREMENT5荿typedefstruct螄{蚂 int*elem;莀 intlength;蒀 intlsize;***}Sqlist;莆SqlistL;肁voidstate_initlist(Sqlist&L)//线性表的初始化芈{芅 =(int*)malloc(SIZE*sizeof(int));螅 =0;螁 =SIZE;荿 蚈}膄voidcreatlist(Sqlist&L)//线性表的建立薁{莁 int*p;螆 inte;蚄 =(int*)malloc(sizeof(int));节 printf("请输入线性表的数据:\n");膈 scanf_s("%d",&e);膈 *()=e;肃 for(inti=1;i<10;i++)肂 {艿 p=(int*)malloc(sizeof(int));芇 scanf_s("%d",p);蒂 e=*p;螂*(+i)=e;芁 ++;莅 }膆}薃intinsertelem(Sqlist&L,inti,inte)//插入肈{螈 int*p,*q;薅 if(i<0||i>-1)芃 exit(0);腿 if(>=)袆 {肅 =(int*)realloc(,(+REMENT)*sizeof(int));螀 if(!)膁 exit(0);芈 +=REMENT;蒄 }蒀 q=+i;羈 for(p=+;p>=q;p--)莇 {袃*(p+1)=*p;芀 }肀 *q=e;蒅 ++;芃 return0;羁}膁intdeletlist(Sqlist&L,inti)//删除袇{螂 int*p,*q;螁 inte;羈 if(i<0||i>)羆 exit(0);蒅 q=+i;蒁 e=[i];羀 for(p=+;q<=p;q++)芈*q=*(q+1);袅 --;膂 return0;螇}蒇voidmain()