当前位置:网站首页>Binary tree traversal
Binary tree traversal
2022-06-30 07:09:00 【HL_ Aeolus】

Child representation :
typedef struct treeNode {
char data;
struct treeNode * lChild;
struct treeNode * rChild;
}treeNode,* pTreeNode;
Create a tree node
pTreeNode createTreeNode(char data)
{
pTreeNode p = new treeNode;
p->data = data;
p->lChild = nullptr;
p->rChild = nullptr;
return p;
}
Insert tree node
void insertTreeNode(pTreeNode parentNode,pTreeNode l,pTreeNode r)
{
if(parentNode != nullptr)
{
parentNode->lChild = l;
parentNode->rChild = r;
}
}
Print out current tree node data
void printfCurTreeNode(pTreeNode node)
{
if(nullptr != node)
{
O << node->data << " ";
}
}
Three traversal methods , Recursive implementation
// The former sequence traversal root Left Right
void preOrder(pTreeNode root)
{
if(nullptr != root)
{
printfCurTreeNode(root);
preOrder(root->lChild);
preOrder(root->rChild);
}
}
// In the sequence traversal Left root Right
void midOrder(pTreeNode root)
{
if(nullptr != root)
{
midOrder(root->lChild);
printfCurTreeNode(root);
midOrder(root->rChild);
}
}
// After the sequence traversal Left Right root
void lastOrder(pTreeNode root)
{
if(nullptr != root)
{
lastOrder(root->lChild);
lastOrder(root->rChild);
printfCurTreeNode(root);
}
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
pTreeNode A = createTreeNode('A');
pTreeNode B = createTreeNode('B');
pTreeNode C = createTreeNode('C');
pTreeNode D = createTreeNode('D');
pTreeNode E = createTreeNode('E');
pTreeNode F = createTreeNode('F');
pTreeNode G = createTreeNode('G');
insertTreeNode(A,B,C);
insertTreeNode(B,D,nullptr);
insertTreeNode(D,nullptr,G);
insertTreeNode(C,E,F);
O << "\n The former sequence traversal :\n";
preOrder(A);
O << " In the sequence traversal :\n";
midOrder(A);
O << "\ After the sequence traversal :\n";
lastOrder(A);
return 0;
}
Output effect :
边栏推荐
猜你喜欢

安装Go语言开发工具

Go项目目录结构介绍

Google Earth Engine(GEE)——墨累全球潮汐湿地变化 v1 (1999-2019) 数据集

How crazy are young people in sideline industry: 3000 monthly salary and 3W sideline income

leetcode:98. Validate binary search tree

年轻人搞副业有多疯狂:月薪3000,副业收入3W

1285_把AUTOSAR函数以及变量等定义的宏用脚本展开以提高可读性

Assembly language learning I (with stack co process, 32-bit registers and related instructions, to be continued 06/29)

Unity中实现溶解(Dissolve)特效及其原理解析

【我的OpenGL学习进阶之旅】关于OpenGL的着色器的向量和矩阵分类的访问方式: xyzw/rgba/stpq以及数组下标
随机推荐
神经网络计算量及参数量
Which securities company is good for opening a mobile account? Also, is it safe to open an account online?
app quits unexpectedly
第一行代码(第三版)学习笔记
Egret P2 pit encountered by physical engine (1)
我开户后把账号忘记了咋办?股票在网上开户安全吗?
[semidrive source code analysis] [x9 chip startup process] 34 - RTOS side display module SDM_ display_ Init display initialization source code analysis
What if I don't know what to do after graduating from university?
Solr search
Install go language development tools
Write and run the first go language program
leetcode:98. Validate binary search tree
tomorrow! "Mobile cloud Cup" competition air publicity will start!
What underlying technologies support the metauniverse?
[Hot100]10. Regular Expression Matching
Base64 encoding method implemented by native JS
Linux server installation redis
Detailed analysis of message signals occupying multiple bytes and bits
【已解决】MySQL异常:ERROR 1045 (28000): Unknown error 1045,忘记初始密码
Egret engine P2 physics engine (2) - Funny physical phenomenon of small balls hitting the ground