~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:vs2017,C++
作者博客:https://blog.csdn.net/aj64994979
撰写时间:19年7月27日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include<iostream>
using namespace std;
struct Ertree
{
char name;
Ertree*left;
Ertree*right;
};
void traverse(Ertree *tree, int n);
void CreatTree();
void main()
{
CreatTree();
}
void traverse(Ertree *tree, int n)//遍历节点
{
if(tree == NULL)
{
return;
}
if(n == 1)//先序遍历
{
cout<< tree->name << ends;
traverse(tree->left,n);
traverse(tree->right,n);//A F D C B E K J H G
}
elseif (n == 2)//中序遍历
{
traverse(tree->left,n);
cout<< tree->name << ends;
traverse(tree->right,n);//C D B F E A K H J G
}
elseif (n == 3)//后序遍历
{
traverse(tree->left,n);
traverse(tree->right,n);
cout<< tree->name << ends;//C B D E F H G J K A
}
}
void CreatTree()//创建节点
{
ErtreetreeA = { 'A',NULL,NULL };
ErtreetreeB = { 'B',NULL,NULL };
ErtreetreeC = { 'C',NULL,NULL };
ErtreetreeD = { 'D',NULL,NULL };
ErtreetreeE = { 'E',NULL,NULL };
ErtreetreeF = { 'F',NULL,NULL };
ErtreetreeG = { 'G',NULL,NULL };
ErtreetreeH = { 'H',NULL,NULL };
ErtreetreeJ = { 'J',NULL,NULL };
ErtreetreeK = { 'K',NULL,NULL };
treeA.left= &treeF;
treeA.right= &treeK;
treeF.left= &treeD;
treeF.right= &treeE;
treeD.left= &treeC;
treeD.right= &treeB;
treeK.right= &treeJ;
treeJ.left= &treeH;
treeJ.right= &treeG;
cout<< "1:先序遍历 2:中序遍历3:后序遍历" << endl;
intn;
cin>> n;
traverse(&treeA,n);
}



开发工具与关键技术:vs2017,C++
作者博客:https://blog.csdn.net/aj64994979
撰写时间:19年7月27日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include<iostream>
using namespace std;
struct Ertree
{
char name;
Ertree*left;
Ertree*right;
};
void traverse(Ertree *tree, int n);
void CreatTree();
void main()
{
CreatTree();
}
void traverse(Ertree *tree, int n)//遍历节点
{
if(tree == NULL)
{
return;
}
if(n == 1)//先序遍历
{
cout<< tree->name << ends;
traverse(tree->left,n);
traverse(tree->right,n);//A F D C B E K J H G
}
elseif (n == 2)//中序遍历
{
traverse(tree->left,n);
cout<< tree->name << ends;
traverse(tree->right,n);//C D B F E A K H J G
}
elseif (n == 3)//后序遍历
{
traverse(tree->left,n);
traverse(tree->right,n);
cout<< tree->name << ends;//C B D E F H G J K A
}
}
void CreatTree()//创建节点
{
ErtreetreeA = { 'A',NULL,NULL };
ErtreetreeB = { 'B',NULL,NULL };
ErtreetreeC = { 'C',NULL,NULL };
ErtreetreeD = { 'D',NULL,NULL };
ErtreetreeE = { 'E',NULL,NULL };
ErtreetreeF = { 'F',NULL,NULL };
ErtreetreeG = { 'G',NULL,NULL };
ErtreetreeH = { 'H',NULL,NULL };
ErtreetreeJ = { 'J',NULL,NULL };
ErtreetreeK = { 'K',NULL,NULL };
treeA.left= &treeF;
treeA.right= &treeK;
treeF.left= &treeD;
treeF.right= &treeE;
treeD.left= &treeC;
treeD.right= &treeB;
treeK.right= &treeJ;
treeJ.left= &treeH;
treeJ.right= &treeG;
cout<< "1:先序遍历 2:中序遍历3:后序遍历" << endl;
intn;
cin>> n;
traverse(&treeA,n);
}




