可变长顺序表.docVIP

  • 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)

1亿VIP精品文档

相关文档