- 21
- 0
- 约3.17千字
- 约 5页
- 2016-09-24 发布于山西
- 举报
题目可变长顺序表设计基本要求使用动态数组结构。
顺序表的操作包括初始化、求数据元素个数、插入、删除、取数据元素编写每个
操作的函数。
设计一个测试主函数。测试数据以用户随机输入的元素为原始数据。算法思想可变长顺序表的设计主要是利用动态数组结构的设计方法。动态数组是指
用动态内存分配方法定义的数组他中的元素的个数是在用户申请动态数组空间时才确定
的。此外用键盘输入顺序表的元素进行建立顺序表。依次调用初始化、求数据元素个数
插入、删除和取数据元素并输出新的顺序表。
模块划分Main.c文件。Main.c文件包括以下函数。
包括初始化求数据元素个数插入删除取数据元素。
void Initiate(SeqList *s,int max) 函数其功能是用于顺序表的初始化。
int ListLength(SeqList *L) 函数其功能是用于求顺序表的数据元素个数。
int Insert(SeqList *s) 函数其功能是用于顺序表的插入。
int Delete(SeqList *s) 函数其功能是用于顺序表的删除。
int getdata(SeqList *s) 函数其功能是用于函数的获取元素
void main函数主函数。其功能建立顺序表并调用以上函数实现问题要求。
数据结构1.顺序表结构体定义
typedef struct
{
int *str;
int Length;
}SeqList;
2.动态数组
动态申请空间
s-str=(int *)malloc(sizeof(int)*max); 源程序#includestdio.h
#includemalloc.h
#includestdlib.h
typedef struct
{
int *str;
int Length;
}SeqList;
void main()
{
void Initiate(SeqList *s,int max);//函数声明
int ListLength(SeqList *s);
int Insert(SeqList *s);
int Delete(SeqList *s);
int getdata(SeqList *s);
void print(SeqList *s,int);
SeqList L;
int x,max;
printf(* * * * * * * * * * * *可变长顺序表设计* * * * * * * * * * * * *\n);
printf(\n请输入所创建顺序表的长度:);
scanf(%d,max);
printf(请输入创建的顺序表的值:);
Initiate(L,max);
printf(\n);
leep: printf(\n***1.数据元素个数***\n);
printf(***2.数据元素插入***\n);
printf(***3.数据元素删除***\n);
printf(***4.取数据元素***\n);
printf(***0.退出***);
printf(\n***输入序号选择程序功能:\n);
scanf(%d,x);
if(x==1)
{
printf(\n数据元素个数是%d\n,ListLength(L));goto leep;
}
if(x==2)
{
Insert(L);
goto leep;
}
if(x==3)
{
Delete(L);
goto leep;
}
if(x==4)
{
getdata(L);
goto leep;
}
if(x==0)
printf(\n谢谢使用!\n);
}
void Initiate(SeqList *s,int max)//初始化顺序表
{
int i,x;
s-str=(int *)malloc(sizeof(int)*max);//动态申请空间
s-Length=max;
for(i=0; imax;i++)
{
scanf(%d,x);
s-str[i]=x;
}
}
int ListLength(SeqList *L)
{
return L-Length;
}
int Insert(SeqList *s)
{
int i,j,x;
printf(\n请输入要插入的位置及数据: );
scanf(%d %d,j,x);
i
原创力文档

文档评论(0)