算法与数据结构课程设计

算法与数据结构课程设计

ID:9935382

大小:55.50 KB

页数:4页

时间:2018-05-16

算法与数据结构课程设计_第1页
算法与数据结构课程设计_第2页
算法与数据结构课程设计_第3页
算法与数据结构课程设计_第4页
资源描述:

《算法与数据结构课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、算法与数据结构课程设计一、线性表题1、建立一个单链表,显示链表中每个节点的数据,并做删除和插入处理。例:(掌握线性表在链式存储结构下的基本运算的实现。)1、功能(1)建立以带头结点的单链表(2)显示链表中每个结点的数据(3)在单链表中指定位置插入指定数据并输出单链表中所有数据(4)删除单链表中指定的结点并输出单链表中所有数据2、输入要求输入单链表中所有数据,插入的数据元素的位置、值,要删除的数据元素的位置。3、测试数据单链表中所有数据:12,23,56,21,8,10,15,67,90,32插入的数据元素的位置、值:1,28要删除的数据元素的位置:10[概要设计](1)算法思想:由于在操作过程

2、中要进行插入、删除操作,为运算方便,选用单带头结点的单链表作数据元素的存储结构。对每个数据元素,由一个数据域和一个指针域组成,数据域放输入的数据值,指针域指向下一个结点。(2)数据结构单链表结点类型:typedefstructNode{intdata;structnode*next;}ListNode;带头结点的单链表类型定义:typedefListNode*LinkList;(1)模块划分:①建立点头结点的单链表CreatLinkList;②显示链表中每个结点的数据PrintList;③在单链表中指定位置插入指定数据并输出单链表中所有数据InsertList;④删除单链表中指定的结点并输出单

3、链表中所有数据DeleteList;⑤主函数mian(),功能是给出测试数据值,建立测试数据值的带头结点的单链表,调用PrintList函数、InsertList函数、DeleteList函数实现问题要求。[详细设计]见程序LinkList.c题2、约瑟夫环(Joseph)问题的一种描述是:编号1,2,┉,n的n个人按顺时针方向围坐一圈,每个人持有一个密码(正整数),一开始,任选一个正整数作为报数上线值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1开始报数,如此下去,直至所有人全部出列为止。设设计

4、一个程序求出出列顺序。二、数组、栈和队列题3、用n×n矩阵M表示一个迷宫,0和1分别表示通路和墙壁。迷宫的入口地点下标为(1,1),出口点下标为(n,n)。试求出从入口点到达出口点的一条通路。[基本要求]利用二维数组存储迷宫,采用递归算法实现。[测试数据]自己设计一个8≤n≤20的数据,并把测试迷宫打印出来,程序能够求出一条这样的通路。题4、停车场管理。设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,

5、一旦有车开走,则排在便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场。每辆停放在车场的车在它不离开停车场时必须按它停留的时间长短交费。试为停车场编制按上述要求进行管理的模拟程序。以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离开”信息,汽车牌照号码以及到达或离去的时刻。与每一组输入数据信息相对应的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在

6、便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。(提示:需另设一个栈,临时停放为给要离去的汽车让路从停车场退出来的汽车,也用顺序存储结构实现。)[测试数据]设n=2,输入数据为:(‘A’,1,5),(‘A’,2,10),(‘D’,1,15),(‘A’,3,20),(‘A’,4,25),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0)。其中:‘A’表示到达,‘D’表示离去,‘E’表示输入结束。其中:(‘A’,1,5)表示1号牌照车在5这个时刻到达,而(‘D’,1,15)表示1号牌照车在15这个时刻离去。三、树题5、请使用数组输入二叉树的结点数据,按照提示以链表结构创

7、建二叉树,完成后将链表内容输出。提示:创建二叉树结点数据的策略有三个,如下:l将第一个要创建的元素插入成为根节点。l将元素值与结点值比较,如果元素值大于结点值,将此元素送往结点的右儿子结点,如果右儿子结点不是空的,需要重复比较,否则创建结点将元素值插入。l如果元素值小于结点值,将此元素送往结点的左儿子结点,如果左儿子结点不是空的,需要重复比较,否则创建结点将此元素值插入。例如:二叉树结点值输入的数

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

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

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