数据结构
晓处微寒
这个作者很懒,什么都没留下…
展开
-
邻接矩阵的BFS和DFS(简明版)
我的简洁看过就知道话不多说代码:#include<iostream>#include<cstring>#include<queue>using namespace std;#define Max 10char vertex[4]={'a','b','c','d'};//顶点int visited[Max],arc[Max][Max];void DFS(int v...原创 2018-06-03 21:03:41 · 2242 阅读 · 1 评论 -
二叉树的创建(不使用类),查找,求树高
<代码>#include<iostream>#include<queue>using namespace std;//创建节点struct Tnode{ char data;//数据域 Tnode *rchild;//右孩子 Tnode *lchild;//左孩子};//创建二叉树void CreatTree(Tnode...原创 2018-07-15 23:46:59 · 157 阅读 · 0 评论 -
自定义一个Stack类
思想:用一个数组读入元素,再反向取元素即可模拟栈中元素先进后出,后进先出。源代码:#include <iostream>using namespace std;const int Max_SIZE=100;//定义栈大小class Stack{public: Stack(); ~Stack(); void Push(int x);//入栈 v...原创 2018-07-06 09:36:23 · 1782 阅读 · 0 评论 -
图的最小生成树——Prim算法
Prim算法的基本思想用伪代码描述如下:1. 初始化:U = {v0}; TE={ }; 2. 重复下述操作直到U = V: 2.1 在E中寻找最短边(u,v),且满足u∈U,v∈V-U; 2.2 U = U + {v}; 2.3 TE = TE + {(u,v)};源码:#include<iostream>#include<vector>#incl...原创 2018-06-26 00:24:59 · 684 阅读 · 0 评论 -
图的最小生成树——Kruskal算法
Kruskal算法的基本思想用伪代码描述如下:1. 初始化:U=V;TE={ }; 2. 重复下述操作直到T中的连通分量个数为1: 2.1 在E中寻找最短边(u,v); 2.2 如果顶点u、v位于T的两个不同连通分量,则 2.2.1 将边(u,v)并入TE; 2.2.2 将这两个连通分量合为一个; 2.3 标记边(u,v),使得(u...原创 2018-06-26 00:12:55 · 612 阅读 · 0 评论 -
Floyd算法(C++极简版)
<伪代码>初始化权值数组,路径字串判断是否存在其它最小路径 更新权值数组和路径字串组源码:#include<iostream>#include<iomanip>//控制格式#include<string>#define INF 0x3f3f3f3f//定义无穷大using namespace std;#define vertexNum 5//源...原创 2018-06-10 19:26:36 · 4198 阅读 · 2 评论 -
Dijkstra(迪杰特斯拉)算法(极简版)
示例:用Dijkstra算法求A到图中各点的最短路径源码:#include<iostream>#include<iomanip>//控制格式#include<string>#define INF 0x3f3f3f3f//定义无穷大using namespace std;#define vertexNum 5//源点数int G[vertexNum][vertex...原创 2018-06-06 16:29:29 · 14322 阅读 · 4 评论 -
二叉链表创建一棵二叉树并进行前中后序遍历
源码:#include<iostream>using namespace std;typedef char Datatype;struct TNode{ Datatype data; TNode* rchild; TNode* lchild;};void CreatTree(TNode* &root){ char ndata; cin>>...原创 2018-05-24 21:37:55 · 1740 阅读 · 0 评论 -
邻接链表的BFS和DFS(简明版)
代码:#include<iostream>#include<queue>#include<cstdlib>#include<string>using namespace std;const int MaxSize=10;int visited[MaxSize];struct ArcNode{ int adjvex; ArcNode* ne...原创 2018-06-03 21:08:02 · 860 阅读 · 0 评论 -
重建一棵二叉树
根据先序,中序重建一棵二叉树;思路:中序确定根节点,递归到叶子,在回溯建树代码:#include <iostream>#include <assert.h>using namespace std;typedef char Datatype;struct BiTreeNode{ Datatype m_nData; BiTreeNode ...转载 2018-12-10 17:36:42 · 288 阅读 · 0 评论