数据结构中树与图的常用算法实现
树
树
:是N(N>=0)个结点的有限集合。任意一颗非空树应满足:
- 有且仅有一个特定的称为
根
的结点- 当N>1时,其余结点可分为m(m>0)个互不相交的有限集合T1,T2,…,Tm,其中每一个集合本身又是一颗树,并且称为根结点的
子树
树适合表示具有层次结构的数据。
结构体
typedef struct Tree{
int data;
Tree *left,*right;
Tree(int x):data(x),left(NULL),right(NULL){}
}TreeNode,*pTreeNode;
树的遍历
树中最重要的算法就是树的遍历,分为前中后
序三种遍历方法,本文分别用递归和非递归的方式实现了以上三种遍历方法以及树的层次遍历。
源码实现
#include <iostream>
#include <stack>
#include <queue>
using namespace std;
//树的结构体
typedef struct Tree{
int data;
Tree *left,*right;
Tree(int x):data(x),left(NULL),right(NULL){}
}TreeNode,*pTreeNode;
int res[6]={0},i=0; //res辅助读取树的内容
/