
DSA课程设计实验报告
DSA课程设计实验报告
Shudderwock7
这个作者很懒,什么都没留下…
展开
-
迷宫问题设计实验报告
课程设计题目:迷宫问题设计实验一、问题描述有一个 n * m 的迷宫,给定入口和出口,求路径。二、概要设计1. 算法的设计采用BFS(Breadth-first search,广度优先搜索)。伪代码如下1. 队列初始化2. 入口点坐标进队并标记来过3. 当队列不为空时循环执行下述操作: 3.1 (x, y) <-- 队头元素出队 3.2 沿顺时针试探每一个方向,记为(to_x, to_y),如果可走且没来过: 3.2.1 标记(to_x, to_y)来原创 2021-04-19 13:04:42 · 3140 阅读 · 0 评论 -
火车车厢重排
其实火车车厢重排那道题的算法没那么复杂,只需要所有轨道出车到不能出为止遍历缓冲轨,找到能放下入口轨道的首辆车的就塞入缓冲轨。然后不断循环这两步即可。这是因为,缓冲轨的队尾一定是降序排列的。#include <algorithm>#include <cstdio>#include <iostream>using namespace std;template <typename T>struct Node{ T data;原创 2021-04-19 13:01:11 · 405 阅读 · 0 评论 -
表达式求值设计实验报告
课程设计题目:表达式求值一、问题描述与基本要求利用栈,实现以下功能:中缀表达式求值;中缀表达式转后缀表达式;后缀表达式求值。假设用户输入的表达式均合法,且运算符只含+(加号)、-(减号)、*、/、%、(和),允许浮点数(浮点数计算取模规定为向零取整后得到整数再计算取模)。二、概要设计1. 数据结构的设计我们利用栈来实现上述3个功能。具体原因见后文算法的设计。2. 算法的设计2.1 表达式读入与预处理用户从键盘输入一个语法正确的中缀/后缀表达式,但格式可能并不标准,例如有多余的空格原创 2021-04-09 15:38:14 · 4237 阅读 · 0 评论 -
进制转换
用短除法,然后把余数倒过来就能得到答案了。下面是十进制233转二进制和八进制的演示:余数需要逆序输出,所以可以在短除法时将余数压入栈,整个短除法结束后再全部出栈输出。程序只写了十进制转二至九进制#include <iostream>using namespace std;template <typename T>struct Node { T data; Node *next;};template <typename T>cla原创 2021-04-07 22:05:42 · 298 阅读 · 0 评论 -
多项式加法
#include <algorithm>#include <cmath>#include <iostream>#define eps (1e-8)using namespace std;struct Elem{ double coef; int exp; bool operator<(const Elem &b) { return exp < b.exp; }};struct Node{ Elem原创 2021-04-07 21:49:41 · 114 阅读 · 0 评论 -
双向循环链表
// main.cpp#include "DoublyCircularLinkedList.cpp"#include <iostream>using namespace std;int main(){ int r[5] = {1, 2, 3, 4, 5}; DoublyCircularLinkedList<int> L(r, 5); // DoublyCircularLinkedList<int> L(r, 0); cout原创 2021-04-07 21:48:58 · 84 阅读 · 0 评论 -
双向链表
// main.cpp#include "DoublyLinkedList.cpp"#include <iostream>using namespace std;int main(){ int r[5] = {1, 2, 3, 4, 5}; DoublyLinkedList<int> L(r, 5); cout << "链表长度:" << L.Length() << endl; cout <&原创 2021-04-07 21:46:36 · 88 阅读 · 0 评论 -
循环链表
// main.cpp#include "CircularLinkedList.cpp"#include <iostream>using namespace std;int main(){ int r[5] = {1, 2, 3, 4, 5}; CircularLinkedList<int> L(r, 5); cout << "链表长度:" << L.Length() << endl; cout &原创 2021-04-07 21:44:08 · 86 阅读 · 0 评论 -
BigInteger (亿进制高精度)类设计实验报告
课程设计题目:BigInteger(亿进制高精度)类设计实验一、问题描述C/C++ 语言中的 int 类型能表示的整数范围是−231-2^{31}−231~231−12^{31}-1231−1,unsigned int 类型能表示的整数范围是 000~232−12^{32}-1232−1,即 000~429496729542949672954294967295,所以,int 和 unsigned int 类型都不能存储超过10位的整数。有些问题需要处理的整数远远不止10位,这种大整数用C/C++语言的基原创 2021-03-22 15:44:19 · 284 阅读 · 0 评论 -
数组循环左移算法实验报告
课程设计题目:用 Reverse 实现时间复杂度为 O(n)O(n)O(n) 数组循环左移算法一、问题描述设计一个时间复杂度为 O(n)O(n)O(n) 的算法,实现将数组 A[n] 中所有元素循环左移 kkk 个位置。详见王红梅等编著的《数据结构(C++版)(第2版)》P53页习题5(1)。二、基本要求实现将数组 A[n] 中所有元素循环左移 kkk 个位置。时间复杂度为 O(n)O(n)O(n) 。三、概要设计1. 算法的设计算法思路参考王红梅等编著的《数据结构(C++版)原创 2021-03-15 13:57:30 · 720 阅读 · 0 评论 -
整型数组按奇偶排序实验报告
目录一级目录二级目录三级目录# 整型数组按奇偶排序实验报告课程设计题目:整型数组按奇偶排序一、问题描述二、基本要求三、概要设计1. 算法的设计四、详细设计1. 设计每个函数2. 设计主函数五、运行与测试1. 测试环境2. 在调试程序的过程中遇到的问题与解决方案3. 设计的测试数据与测试结果4. 程序清单及运行结果六、总结与心得七、参考资料一级目录二级目录三级目录# 整型数组按奇偶排序实验报告课程设计题目:整型数组按奇偶排序一、问题描述已知数组 A[n] 中的元素为整型,设计算法将其调整为左右两部原创 2021-03-15 13:02:55 · 366 阅读 · 0 评论