欢迎来到天天文库
浏览记录
ID:21016346
大小:73.50 KB
页数:12页
时间:2018-10-18
《线性表的操作与应用(算法与数据结构课程设计)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方线性表的操作与应用一、问题描述线性表是一种常见的数据结构,它在实际中有着广泛的应用。本文要求实现线性表的就地逆置操作,并选择合适的存储结构,以同学录为例完成线性表的建立、查找、插入、删除、修改等操作来实现有关线的操作与应用。二、基本要求1、采用顺序和链式存储结构,分别实现线性表的就地逆置操作;2、采用双向链表,实现报数游戏:即n个人报数,先向n端报数,报到m出列。当报数到达表尾时,再向表尾向1端报数。如此反复,求出列顺序。3、选择合适的存储结构,以同学录为
2、例完成线性表的建立、查找、插入、删除、修改等操作。三、测试数据1、就地逆置的数据为:135792、报数游戏的数据为:10个人1到3报数3、同学录得数据为:1)建立的数据:学号姓名性别101liningnan228zhougaonan335fangqiannv2)查找的数据:学号:2283)插入的数据:434meixunan4)删除的数据:学号:2285)修改的数据:335fangqiannan四、算法思想1、就地逆置的算法思想:1)链式结构:从头到尾扫描单链表L,将头节点的next域置为NULL,将原链表的每个元素节点依次插入头节点。2)顺序结构:利用原有的存储空
3、间,设置一个变量t,再利用循环表的两个方向向表中间进行表头表尾的交换。2、报数游戏的算法思想:在实现双向链表的基本操作:建立,插入,删除后,用for循环从1到m报数,在循环中:1)用标志ch判断是向前或向后报数。2)当到达表头或表尾时,改变指针方向和报数方向。3)每当报数到3或只剩两个结点时,删除所报数在的结点,并将m置为-1。3、同学录的算法思想:选择链式结构作为个人信息的存储结构,用链表的基本操作:建立、插入、删除等算法,完成同学录的建立、查询、显示信息等功能,再用switch语句来判断想要实现的功能。----------专业最好文档,专业为你服务,急你所急,
4、供你所需-------------文档下载最佳的地方----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方五、模块划分1、就地逆置链式结构:1)voidInitList(LinkList*L),初始化链表。2)voidDestroyList(LinkList*L),销毁链表。3)voidClearList(LinkList*L),清空链表。4)intListEmpty(LinkListL),判断链表是否为空。若为空,则返回1;反之,则返回0。5)voidListTraverse(LinkListL),遍历链表
5、并输出。6)voidCreateList(LinkList*L,ElemTypea[],intn),后接法建立顺序链表。7)voidreverse(SqList*L,ElemTypea[],intn),逆置顺序表。8)main(),主函数。顺序结构:1)voidInitList(SqList*L),初始化链表。2)voidDestroyList(SqList*L),销毁链表。3)voidClearList(SqList*L),清空链表。4)intListLength(SqListL),求链表的长度。5)voidListTraverse(SqListL),遍历链表并
6、输出。6)voidInputElem(SqList*L,ElemTypea[],intn),由预置数组输入顺序表元素。7)voidreverse(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)vo
7、idmain()主函数:用以个while循环和switch选择结构进行进行循环交互性操作。3、同学录:1)voidadd(Stud*head)来实现同学录的建立。2)voidsearch(Stud*head,intid)查询学生信息。----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方3)voiddel(Stud*head,intid)删除学号为id的学生的信息。4)voidrewrite(Stud
8、*head
此文档下载收益归作者所有