1 / 32
文档名称:

数据结构实验报告册.doc

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

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

分享

预览

数据结构实验报告册.doc

上传人:薄荷牛奶 2018/9/30 文件大小:222 KB

下载得到文件列表

数据结构实验报告册.doc

相关文档

文档介绍

文档介绍:数据结构实验报告册
班级: 计算机1401
学号: 25
姓名: 马奕
长春建筑学院电气信息学院
实验题目:顺序表的操作
实验日期:2015年11月6日
实验要求:

,把相关缺失程序补充完整。

,结合程序分析顺序结构的特点。

概要设计:
在顺序表的第i个位置上要求插入一个数据元素时候,先将顺序表的第i个位置元素后的所有数据元素按顺序后移一个位置,在插入的地方空出一个位置,然后把要插入的新数据元素插入到该位置,同时将表长加一。
在顺序表中删除表中第i个位置的数据元素的时候,先将该位置的数据元素删除,然后将第i个位置后的其他剩余元素按顺序依次向前移动一个位置,同时将表长减一。
顺序表中查找一个数据元素的值,需要遍历整个顺序表,如要找道该值,则返回该值在顺序表中的位置,否则继续查找。如果遍历整个顺序表都没有找到该值,则要求函数返回-1
详细设计:
#include <>
#include <>
#define maxsize 1024
typedef char datatype ;
typedef struct //结点的结构类型
{
datatype data[maxsize];
int last ;
}sequenlist;
int insert(sequenlist *l,datatype x,int i)//插入数据
{
int j;
if(l->last==maxsize-1)
{
printf("overflow");return 0;
}
else if((i<1)||(i>l->last))
{
printf("error ,please input the right 'i'\n");return 0;
}
else
{for(j=l->last;j>=i;j--)
l->data[j+1]=l->data[j];
l->data[i]=x;
l->last=l->last+1;}
return (1);
}
int dellist (sequenlist *l,int i)//删除数据
{
if((i<1)||(i>l->last))
{
printf("error,please input the right i");
return 0;
}
else
{
for (;i<l->last;i++)
l->data [i]=l->data [i+1];
l->last =l->last -1;
return (1);
}
}
int loc(sequenlist *l,datatype y)/
{
int i,j;
j=l->last;
if(j==0)
return false;
for(i=1;i<=j;i++)
if(l->data[i]==y)
{
printf("该数据的位置在第%d位\n",i);
return i;
}
printf("找不到该值!\n");
return 0;
}
void creatlist(sequenlist *l)// 建立顺序表
{
int n,i;
char tmp;
printf("请输入数据的个数:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("data[%d]=",i);
fflush(stdin);
scanf("%c",&tmp);
l->data [i]=tmp;
}
l->last =n;
printf("\n");
}
void printout(sequenlist *l)//输出顺序表
{
int i;
for (i=1;i<=l->last;i++)
{
printf("data[%d]=",i);
printf("%c\n",l->data [i]);
}}
void main()
{
sequenlist *l;char cmd,x,y;int i;
l=(sequenlist *)malloc(sizeof(sequenlist));
creatlist(l);
printout(l);
do
{
printf("p...插入\n");
printf("q...删除\n");