数据结构
数据结构课程作业和实验,常用数据结构的实现和测试。
球王武磊
愿我们穿越阴霾,依然心怀太阳。
展开
-
【数据结构】 各种排序算法的实现
数据结构实验 各种排序算法的实现实验内容本人完成了直接插入排序,折半插入排序,希尔排序,冒泡排序,快速排序,选择排序,归并排序(分别用迭代和递归两种方式实现),堆排序。程序能够输出各种排序的中间步骤变化情况,以及最后得到正确的排序结果。实验代码:#include <iostream>#include <cstdio>#include <cmath>using namespace std;typedef int T;void print(T a[],co原创 2020-12-23 02:12:55 · 638 阅读 · 2 评论 -
【数据结构实验】 最短路径算法 Dijkstra和Floyd
【数据结构实验】 最短路径算法 Dijkstra和Floyd实验内容本人完成了最短路径算法的实现,包含Dijkstra和Floyd两种算法。首先实现图的创建(采用邻接矩阵,包括有向网和无向网)以及打印图的邻接矩阵。分别用Dijkstra算法和Floyd算法实现求无向网和有向网的最短路径,其中Dijkstra算法可以求得从某个顶点出发到其余各顶点的最短路径,Floyd算法能够求得任意两个顶点之间的最短路径。并且程序中能够输出每一步操作过后的当前状态,便于观察实验结果。测试样例无向网 681 2原创 2020-12-12 00:23:15 · 1629 阅读 · 2 评论 -
数据结构 图的实现
数据结构实验 图的实现实验内容本人完成了图的实现,包含图的创建(采用邻接矩阵,包括有向图、有向网、无向图、无向网);打印图的邻接矩阵;求无向图(网)顶点的度和邻接点,求有向图(网)顶点的入度和出度;无向图的深度优先遍历和广度优先遍历;分别用Prim算法和Kruskal算法实现求无向网的最小生成树,能够得到每一步加入的顶点或边,并求得最小生成树的代价;以及分别用Dijkstra算法和Floyd算法实现求无向网(或有向网)的最短路径。程序中主要用到的数据结构如下:typedef struct{int原创 2020-12-09 00:11:11 · 767 阅读 · 0 评论 -
数据结构 哈夫曼编码的实现
数据结构实验 哈夫曼编码的实现实验内容本人完成了哈夫曼编码的实现,包含哈夫曼树和哈夫曼编码表的建立,实现了编码操作和译码操作。用户输入字符串后可以得到每个字符对应的哈夫曼编码;同样输入包含表中存在的字符编码也可以得到对应的原字符串。程序中主要用到的数据结构和函数如下:typedef struct{int weight;int parent;int lchild;int rchild;}HTNode,HuffmanTree;//动态分配数组存储哈夫曼树typedef char* Huff原创 2020-12-03 01:44:49 · 1085 阅读 · 2 评论 -
数据结构实验 二叉树的实现
数据结构实验 二叉树的实现实验内容本人完成了二叉树基本操作的实现,包含二叉树的建立、复制、交换左右子树;判断两棵二叉树是否相同;求二叉树的深度、宽度、叶子结点数量;二叉树的先序、中序、后序遍历,分别用递归和非递归两种方式进行了实现,以及二叉树的层次遍历(广度优先遍历)。代码:#include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <原创 2020-11-23 01:24:57 · 1126 阅读 · 2 评论 -
数据结构实验 二维矩阵的实现
数据结构实验 二维矩阵的实现#include <iostream>#include <cstdio>#include <memory>//包含unique_ptr的头文件 using namespace std;template <class T> class Matrix{ public: Matrix()=default;//默认构造函数 Matrix(int a1,int a2);//含行列数的构造函数 T operat原创 2020-11-18 00:55:37 · 1156 阅读 · 0 评论 -
数据结构实验 多维数组的实现
数据结构实验 多维数组的实现#include<stdio.h>#include<stdlib.h>#include<stdarg.h>//用于存取变长参数表 #define MAX_DIM 8//假设数组维数的最大值为8 typedef struct{ int *base;//数组元素基址 int dim;//数组维数 int *bounds;//数组维数基址,例如维数dim=3,bounds[0]=2,bounds[1]=3,bounds[2]原创 2020-11-18 00:54:53 · 732 阅读 · 0 评论 -
数据结构实验 字符串类型的实现
数据结构实验 字符串类型的实现实验内容本人实现了字符串String类的基本操作,另外还完成了KMP算法以及查找子串的函数实现。类的定义中进行了构造函数重载以适应不同方式的初始化和赋值,此外进行了运算符“+=”重载以实现字符串的拼接,以及运算符“<<”重载以实现用cout输出String字符串。代码#include <iostream>#include <cstdio>using namespace std;class String{ public:原创 2020-11-07 19:21:29 · 763 阅读 · 2 评论 -
数据结构实验 表达式求值
数据结构实验 表达式求值代码思路:priority函数:用于比较两个算符的优先级operate函数:用于计算二元运算的结果首先将“#”压入运算符栈中,输入表达式以“#”结束,开始依次对每个字符进行判断处理,如果是运算数则压入运算数栈,如果是运算符则将其和当前栈顶的运算符比较优先级,分别进行不同的处理,具体在代码当中进行了注释。注意:输入的运算数仅限于0到9之间的单个数字。代码实现:#include <iostream>#include <cstdio>#includ原创 2020-11-04 00:02:20 · 867 阅读 · 2 评论 -
数据结构实验 农夫过河问题
农夫过河问题本学期数据结构的第一次作业经典的BFS问题,同时也帮我复习(自学)了很多位运算的内容,还是很有收获的,记录一下。经过这半年多以来的编程练习,自己写代码的能力有了很大的提升,后面我会再接再厉。#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <stack>using namespace std;int farme原创 2020-10-26 22:37:47 · 1412 阅读 · 2 评论 -
数据结构实验 链式表
实验题目链式表的实现实验内容实现一个链式表(包括常用基本操作)。测试链式表。实验要求独立完成、严禁抄袭、参考别人的需要注明出处。提供实验代码、测试情况、遇到的问题是如何解决的。#include <iostream>#include <cstdio> #include <iomanip>using namespace std;template<class T> struct node{ T data; node<T>* n原创 2020-10-26 22:34:16 · 361 阅读 · 2 评论 -
数据结构试验 顺序表
实验题目顺序表的实现实验内容实现一个顺序表(包括常用基本操作)。测试顺序表。实验要求独立完成、严禁抄袭、参考别人的需要注明出处。提供实验代码、测试情况、遇到的问题是如何解决的。#include<iostream>#include<cstdio>usingnamespace std;template<classT>classSqList{ public: SqList(int cap原创 2020-10-26 00:50:57 · 328 阅读 · 2 评论