
考研数据结构代码实现
本人以清华大学严蔚敏版《数据结构》为主要参考书,将书中重要数据结构与算法的伪代码进行了重写,供大家学习参考,其中所有程序都经过本人在vs2015上调试通过,大部分程序都附上了参考图例和输入输出样例供大家参考
楼上小宇
more AC, more happy!!!
展开
-
树之二叉树的建立与四种遍历(前序,中序, 后序, 层次)及树的深度
前言### 建立### 前序遍历### 中序遍历### 后序遍历### 层次遍历### 求二叉树深度求二叉树宽度二叉树的建立与遍历code#include<stdio.h>#include<malloc.h>#include<iostream>using namespace std;typedef struct BTNode{ char data; struc原创 2017-03-01 16:07:23 · 587 阅读 · 0 评论 -
排序算法之插入排序以及二分插入排序
简单插入排序#include<stdio.h>#include<iostream>using namespace std;#define N 100void InsertSort(int a[], int n){ int i, j, temp; for (i = 1; i <= n - 1; i++) { if (a[i] < a[i - 1]) /原创 2017-10-23 10:28:53 · 975 阅读 · 0 评论 -
树之非递归二叉树先序 中序 后序遍历合集
非递归二叉树前序 中序 后序遍历合集先序遍历算法描述若 p 所指结点不为空,则访问该结点,然后将该结点的地址入栈,然后再将 p 指向其左孩子结点;若p所指向的结点为空,则从堆栈中退出栈顶元素(某个结点的地址),将 p 指向其右孩子结点。重复上述过程,直到 p = NULL 且堆栈为空,遍历结束。中序遍历算法描述若 p 所指结点不为空,则将该结点的地址 p 入栈,然后再将 p 指向其左孩子结点;若 p原创 2017-03-01 16:15:36 · 806 阅读 · 0 评论 -
树之二叉树的建立与四种遍历(前序,中序, 后序, 层次)及树的深度
前言### 建立### 前序遍历### 中序遍历### 后序遍历### 层次遍历### 求二叉树深度求二叉树宽度二叉树的建立与遍历code#include<stdio.h>#include<malloc.h>#include<iostream>using namespace std;typedef struct BTNode{ char data; struc原创 2017-03-01 16:07:38 · 902 阅读 · 0 评论 -
图之 最短路径 Floyd算法
最短路径之Floyd算法描述每一对顶点之间的最短路径算法实现#### 初始时设置一个n阶方阵,令其对角线元素为0,若存在弧代码实现#include<stdio.h>#include<iostream>#include<malloc.h>using namespace std;#define maxsize 100#define INFINITY 65535typedef struct{原创 2016-09-25 01:09:58 · 1245 阅读 · 0 评论 -
图之 最短路径 Dijkstra迪杰斯特拉算法
最短路径之Dijkstra迪杰斯特拉算法描述从某个源点到其余各顶点的最短路径算法实现#### 图用带权邻接矩阵存储g.edges[][]#### 数组dist[]存放当前找到的从源点V0到每个终点的最短路径长度,其初态为:若有边则为图中直接路径权值,否则为无穷大#### path[]中保存从v0到vi最短路径的前一个顶点,其初态为:若v0到vi有边则path[vi] = v0,否则path[v原创 2016-09-25 01:08:27 · 2413 阅读 · 0 评论 -
图之 打印从源点到任何一个顶点最短路径所经过的顶点
打印从源点到任何一个顶点最短路径所经过的顶点思路主要用栈去实现代码#include<stdio.h>#include<iostream>#include<malloc.h>using namespace std;#define maxsize 100//用栈打印path[]数组中保存的树即从源点到任何一个顶点最短路径所经过的所有顶点void print(int path[], int a)原创 2016-09-25 01:06:36 · 1521 阅读 · 0 评论 -
图之 最小生成树 Kruskal算法
最小生成树之Kruskal算法说明Kruskal算法的find函数由边决定,时间复杂度为O(log e),而外面有一个for循环e次,所以Kruskal算法得时间复杂度为O(e * log e),适合求边稀疏的网的最小生成树代码#include<stdio.h>#include<stdlib.h>#include<algorithm>#include<iostream>using names原创 2016-09-22 22:44:21 · 1280 阅读 · 0 评论 -
图之 最小生成树 Prim算法
最小生成树之Prim算法说明Prim算法的时间复杂度为O(n^2),适合于求边稠密的网的最小生成树代码#include<stdio.h>#include<stdlib.h>#include<iostream>using namespace std;#define INFINITY 65535 // 表示无穷大#define maxSize 50#define OK 1typedef i原创 2016-09-22 22:43:08 · 1082 阅读 · 0 评论 -
图之 宽度优先遍历 DFS 邻接矩阵建立的图
天勤高分笔记 DFS 邻接矩阵#include<stdio.h>#include<stdlib.h>#include<iostream>using namespace std;#define maxSize 50#define OK 1typedef int VertexType;typedef int EdgeType;typedef struct{ VertexType v原创 2016-09-22 22:35:32 · 1244 阅读 · 0 评论 -
图之 邻接表 邻接矩阵 结构体定义
邻接表 邻接矩阵 结构体定义使用邻接表时候的结构体定义#include<stdio.h>#include<iostream>using namespace std;#define MaxSize 100typedef int VertexType;typedef int EdgeType;//边表结点typedef struct ArcNode { int adjvex; //邻原创 2016-09-22 22:31:01 · 5719 阅读 · 3 评论 -
图之 宽度优先遍历 BFS 邻接表创建的图
BFS 邻接表创建#include<stdio.h>#include<iostream>using namespace std;#define MaxSize 100typedef int VertexType;typedef int EdgeType;typedef struct ArcNode { int adjvex; struct ArcNode *nextarc;原创 2016-09-22 22:32:28 · 1232 阅读 · 0 评论