数据结构课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
首先实现一个以链表作存储结构的栈类型,然后 编写一个求迷宫问题的非递归程序,求得的通路以三元 组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的 一个坐标, d表示走到下一坐标的方向。
测试数据:
左上角(1,1)为入口,右下角(m,n)为出口。
选作内容:
(1)编写递归形式的算法,求得迷宫中的所有可能 的通路;
ElemType data; LNode *next; }*Link,*Position;
// 结点类型
struct LinkList
// 链表类型
{
Link head,tail;
// 分别指向线性链表中的头结点和最后一个结点
int len;
// 指示线性链表中数据元素的个数
};
分配由p指向的值为e的结点
用伪随机数产生程序产生随机数,表长不小于20。 选作内容:
实现二叉排序树的插入和删除操作。
题目4 交通咨询系统
问题描述: 设计一个交通咨询系统,为自驾游旅行者客咨询从任
一个城市到另一个城市之间的最短路径问题。设计分三 个部分,一是建立交通网络图的存储结构;二是解决单 源最短路径问题;最后再实现两个城市顶点之间的最短 路径问题。 基本要求:
B=10x100+10x50+10x20+x 选作内容: (1)多项式在x=1时的运算结果; (2)求多项式A和B的乘积。
题目2 迷宫问题
问题描述: 以一个m*n的长方阵表示迷宫,0和1分别表示迷宫
中的通路和障碍。迷宫问题要求求出从入口(1,1)到 出口(m,n)的一条通路,或得出没有通路的结论。 基本要求:
Status MakeNode(Link &p,ElemType e) { // 分配由p指向的值为e的结点,并返回OK;
//若分配失败, 则返回ERROR p=(Link)malloc(sizeof(LNode)); if(!p) return ERROR; p->data=e; return OK; }
和指数,序列按指数降序排列。 (3)完成两个多项式的相加、相减,并将结果输出。
测试数据: (1)A+B A=3x14-8x8+6x2+2;
B=2x10+4x8+-6x2 (2) A-B A=11x14+3x10+2x8+10x6+5 ;
B=2x14+3x8+5x6+7 (3) A+B A=x3+x1 ; B=-x3-x1 (4) A+B A=0 ; B=x7+x5+x3+x1 (5)A-B A=100x100+50x50+20x20+x ;
多项式相加
p(x)=3x14−8x8+6x2+2 q(x)=2x10+4x8−6x2
p(x)p(x)+q(x)
结果:p(x) =3x14+2x10−4x8+2
多项式的逻辑结构:视为线性表
p(x)=3x14-8x8+6x2+2 数据元素 (coef,exp) 表示多项式项 coef·xexp ,coef是该项的系数,exp是变 元x的指数。
1 对城市信息(城市名、城市间的里程)进行编辑:具 备添加、修改、删除功能;
2 咨询以用户和计算机对话方式进行,要注意人机交 互的屏幕界面。由用户选择输入起点、终点,输出信息: 旅行者从起点、终点经过的每一座城市。
3. 主程序可以有系统界面、菜单;也可用命令提示方 式;选择功能模块执行,要求在程序运行过程中可以反 复操作。
(2)以方阵的形式输出迷宫及其通路迷宫中的所有 可能的通路;
题目3 二叉排序树的应用
问题描述: 利用二叉排序树对顺序表进行排序。
基本要求: (1)生成一个顺序表L; (2)对所生成的顺序表L构造二叉排序树; (3)利用栈结构实现中序遍历二叉排序树; (4)中序遍历所构造的二叉排序树将记录由小到
大输出。 测试数据:
多项式的存储表示 p(x)=3x14-8x8+6x2+2 ( (3,14),(-8,8),(6,2),(2,0) )
顺序表示 • 线性表长度事先难以确定;
• 算术运算需插入和删除元素。
多项式的链接表示 多项式的项
多项式相加
带头结点的线性链表类型(pp37)
typedef struct LNode {
8 系统测试 说明程序调试过程中出现的问题及 解决的方法。
9 操作说明 说明使用本软件的操作方法。
10 总结 在总结中可谈本人的心得体会及软件 进一步改进的方向等项内容。
11 参考文献
12 附录
题目1 一元多项式计算器
问题描述: 设计一个稀疏多项式简单计算器
基本要求: (1) 输入并分别建立多项式A和B。 (2) 输入输出多项式,输出形式为整数序列: n,c1,e1,c2,e2……, 其中n是多项式的项数,ci和ei是第i项的系数
测试数据:
参考《数据结构(C语言版)》(严蔚敏 吴伟民 编著)7.6节图7.33的交通图。
答辩测试数据:北京到乌鲁木齐;北京到昆明; 广州到哈尔滨;乌鲁木齐到南昌;沈阳到昆明。
选作内容:
考虑由于路况不同,不同城市间自驾旅行每百公 里油耗不同,为旅行选择最经济路线。
题目5 内部排序算法的比较
问题描述: 通过比较各内部排序算法的关键字比较次数和关
键字移动的次数,以取得直观感受。 基本要求:
1、待排序表的表长不小于100; 2、至少要用5组不同的输入数据作比较; 3、排序算法不少于5种; 4、最后要对结果作简单的分析。
测试数据: 用伪随机数产生程序产生。
选作内容: 对不同的表长做试验分析两个指标相对于表长变
化关系。
实现要点
题目1 多项式的算术运算
课百度文库设计
时间: 完成方式: 考核方式: 考核形式:
二周。 一人一题。 考查。
检查:上机运行、检查结果; 答辩:对程序提问、回答问题; 提交:原程序清单、课程设计报告。
成绩评定方式: 按上机调试情况、运行结果和答辩 情况、课程设计报告三方面评定。
成绩评定档次: 优、良、中、及格、不及格。
文档要求
课程设计报告按教务处指定的格式填写打印。 1 封面 2 课程设计任务书 3 课程设计鉴定表 4 目录 要求给出标题及页次。 5 课程设计的目的 6 课程设计任务与要求 7 设计思想及实现要点
释放p所指结点
void FreeNode(Link &p)
{ free(p); p=NULL; }
// 释放p所指结点
相关文档
最新文档