可变长顺序表设计

上传人:新** 文档编号:512956937 上传时间:2023-09-23 格式:DOC 页数:8 大小:170.50KB
返回 下载 相关 举报
可变长顺序表设计_第1页
第1页 / 共8页
可变长顺序表设计_第2页
第2页 / 共8页
可变长顺序表设计_第3页
第3页 / 共8页
可变长顺序表设计_第4页
第4页 / 共8页
可变长顺序表设计_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《可变长顺序表设计》由会员分享,可在线阅读,更多相关《可变长顺序表设计(8页珍藏版)》请在金锄头文库上搜索。

1、如果您需要使用本文档,请点击下载按钮下载!题目:可变长顺序表设计基本要求:(1)使用动态数组结构。(2)顺序表的操作包括:初始化、求数据元素个数、插入、删除、取数据元素,编写每个操作的函数。(3)设计一个测试主函数。测试数据:以用户随机输入的元素为原始数据。算法思想:可变长顺序表的设计,主要是利用动态数组结构的设计方法。动态数组是指用动态内存分配方法定义的数组,他中的元素的个数是在用户申请动态数组空间时才确定的。此外,用键盘输入顺序表的元素,进行建立顺序表。依次调用初始化、求数据元素个数,插入、删除和取数据元素并输出新的顺序表。模块划分:Main.c文件。Main.c文件包括以下函数。包括:初

2、始化,求数据元素个数,插入,删除,取数据元素。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.顺序表结构体定义:typ

3、edef structint *str;int Length;SeqList;2.动态数组动态申请空间: s-str=(int *)malloc(sizeof(int)*max);源程序:#include#include#includetypedef structint *str;1 / 6如果您需要使用本文档,请点击下载按钮下载!int Length;SeqList;void main()void Initiate(SeqList *s,int max);/函数声明int ListLength(SeqList *s);int Insert(SeqList *s);int Delete(Seq

4、List *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);pr

5、intf(*4.取数据元素*n);printf(*0.退出*);printf(n*输入序号选择程序功能:n);scanf(%d,&x);if(x=1)printf(n数据元素个数是:%dn,ListLength(&L);goto leep;if(x=2)Insert(&L);goto leep;if(x=3)Delete(&L);goto leep;if(x=4)2 / 6如果您需要使用本文档,请点击下载按钮下载!getdata(&L);goto leep;if(x=0)printf(n谢谢使用!n);void Initiate(SeqList *s,int max)/初始化顺序表int i,

6、x;s-str=(int *)malloc(sizeof(int)*max);/动态申请空间s-Length=max;for(i=0; istri=x;int ListLength(SeqList *L)return L-Length;int Insert(SeqList *s)int i,j,x;printf(n请输入要插入的位置及数据: );scanf(%d %d,&j,&x);if(jstr,(s-Length+1)*sizeof(int);/新结点申请空间for(i=s-Length-1;i=j-1;i-)s-stri+1=s-stri;s-strj-1=x;s-Length+;pri

7、ntf(新的顺序表是:);for(i=0;iLength;i+)3 / 6如果您需要使用本文档,请点击下载按钮下载!printf(%d ,s-stri);printf(n);return 1; void print(SeqList *s,int max)int i;for(i=0;istri);int Delete(SeqList *s)int i,j,x;printf(n请输入要删除数据的位置 :);scanf(%d,&j);if(js-Length)printf(参数不合法!n);return 0;x=s-strj-1;for(i=j;iLength;i+)s-stri-1=s-stri;

8、s-Length-;printf(删除的数据为:%dn,x);printf(新的顺序表为: );for(i=0;iLength;i+)printf(%d ,s-stri);printf(n);return 1;int getdata(SeqList *s)int j,x;printf(n请输入要获取元素的位置:);scanf(%d,&j);if(js-Length)4 / 6如果您需要使用本文档,请点击下载按钮下载!printf(参数不合法!n);return 0;elsex=s-strj-1;printf(获取的元素为: %dn,x);return 1;测试情况:(1)程序运行输出为:5 / 6如果您需要使用本文档,请点击下载按钮下载!(2)测试结果分析:程序运行结果和人工模拟分析结果完全相同,说明程序设计正确 (注:可编辑下载,若有不当之处,请指正,谢谢!) 6 / 6

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号