线性表的操作与应用(算法与数据结构课程设计)

线性表的操作与应用(算法与数据结构课程设计)

ID:14316143

大小:75.50 KB

页数:11页

时间:2018-07-27

线性表的操作与应用(算法与数据结构课程设计)_第1页
线性表的操作与应用(算法与数据结构课程设计)_第2页
线性表的操作与应用(算法与数据结构课程设计)_第3页
线性表的操作与应用(算法与数据结构课程设计)_第4页
线性表的操作与应用(算法与数据结构课程设计)_第5页
资源描述:

《线性表的操作与应用(算法与数据结构课程设计)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、线性表的操作与应用一、问题描述线性表是一种常见的数据结构,它在实际中有着广泛的应用。本文要求实现线性表的就地逆置操作,并选择合适的存储结构,以同学录为例完成线性表的建立、查找、插入、删除、修改等操作来实现有关线的操作与应用。二、基本要求1、采用顺序和链式存储结构,分别实现线性表的就地逆置操作;2、采用双向链表,实现报数游戏:即n个人报数,先向n端报数,报到m出列。当报数到达表尾时,再向表尾向1端报数。如此反复,求出列顺序。3、选择合适的存储结构,以同学录为例完成线性表的建立、查找、插入、删除、修改等操作。三、测试数据1、就地逆置的数据为:13579

2、2、报数游戏的数据为:10个人1到3报数3、同学录得数据为:1)建立的数据:学号姓名性别101liningnan228zhougaonan335fangqiannv2)查找的数据:学号:2283)插入的数据:434meixunan4)删除的数据:学号:2285)修改的数据:335fangqiannan四、算法思想1、就地逆置的算法思想:1)链式结构:从头到尾扫描单链表L,将头节点的next域置为NULL,将原链表的每个元素节点依次插入头节点。2)顺序结构:利用原有的存储空间,设置一个变量t,再利用循环表的两个方向向表中间进行表头表尾的交换。2、报数

3、游戏的算法思想:在实现双向链表的基本操作:建立,插入,删除后,用for循环从1到m报数,在循环中:1)用标志ch判断是向前或向后报数。2)当到达表头或表尾时,改变指针方向和报数方向。3)每当报数到3或只剩两个结点时,删除所报数在的结点,并将m置为-1。3、同学录的算法思想:选择链式结构作为个人信息的存储结构,用链表的基本操作:建立、插入、删除等算法,完成同学录的建立、查询、显示信息等功能,再用switch语句来判断想要实现的功能。wilyes11收集博客(与学习无关):http://blog.sina.com.cn/u/1810231802五、模块

4、划分1、就地逆置链式结构:1)voidInitList(LinkList*L),初始化链表。2)voidDestroyList(LinkList*L),销毁链表。3)voidClearList(LinkList*L),清空链表。4)intListEmpty(LinkListL),判断链表是否为空。若为空,则返回1;反之,则返回0。5)voidListTraverse(LinkListL),遍历链表并输出。6)voidCreateList(LinkList*L,ElemTypea[],intn),后接法建立顺序链表。7)voidreverse(SqL

5、ist*L,ElemTypea[],intn),逆置顺序表。8)main(),主函数。顺序结构:1)voidInitList(SqList*L),初始化链表。2)voidDestroyList(SqList*L),销毁链表。3)voidClearList(SqList*L),清空链表。4)intListLength(SqListL),求链表的长度。5)voidListTraverse(SqListL),遍历链表并输出。6)voidInputElem(SqList*L,ElemTypea[],intn),由预置数组输入顺序表元素。7)voidreve

6、rse(SqList*L,ElemTypea[],intn),逆置顺序表。8)main(),主函数。2、报数游戏:1)voidInitList(LinkList*L),初始化链表。2)voidListTraverse(LinkListL),遍历链表。3)voidCreateList(LinkList*L,ElemTypea[],intn),建立双向链表4)4)voidysf(LinkList*L,intm),约瑟夫函数。5)voidmain()主函数:用以个while循环和switch选择结构进行进行循环交互性操作。3、同学录:1)voidadd(

7、Stud*head)来实现同学录的建立。2)voidsearch(Stud*head,intid)查询学生信息。3)voiddel(Stud*head,intid)删除学号为id的学生的信息。4)voidrewrite(Stud*head,intid)修改学号为id的学生的信息。5)voidprint(Stud*head)显示建立好的同学录。wilyes11收集博客(与学习无关):http://blog.sina.com.cn/u/18102318026)voidmain()主函数:用以个while循环和switch选择结构进行进行循环交互性操作。

8、六、数据结构//(ADT)1、链表的存储结构:typedefstructLNode{ElemTypedata;struct

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。