C++二叉树递归遍历
来源:互联网 发布:淘宝闲鱼小二介入草率 编辑:程序博客网 时间:2024/05/24 07:26
#include <iostream>
struct BinTreeNode {
int value ;
BinTreeNode * leftChild, *rightChild;
BinTreeNode(int data) : value(data), leftChild(nullptr), rightChild(nullptr) {};
};
void preOrderRecur(const BinTreeNode * root);
void midOrderRecur(const BinTreeNode * root);
void lastOrderRecur(const BinTreeNode * root);
int main()
{
BinTreeNode root(5);
BinTreeNode n1(9);
BinTreeNode n2(8);
BinTreeNode n3(7);
BinTreeNode n4(6);
BinTreeNode n5(5);
BinTreeNode n6(4);
root.leftChild = &n1;
root.rightChild = &n4;
n1.leftChild = &n2;
n1.rightChild = &n3;
n3.rightChild = &n6;
n4.leftChild = &n5;
std::cout << "preOrderRecur: ";
preOrderRecur(&root);
std::cout << std::endl;
std::cout << "midOrderRecur: ";
midOrderRecur(&root);
std::cout << std::endl;
std::cout << "lastOrderRecur: ";
lastOrderRecur(&root);
std::cout << std::endl;
system("pause");
return 0;
}
void preOrderRecur(const BinTreeNode * root)
{
if (root == nullptr)
{
return;
}
std::cout << root->value << " ";
preOrderRecur(root->leftChild);
preOrderRecur(root->rightChild);
}
void midOrderRecur(const BinTreeNode * root)
{
if (root == nullptr)
{
return;
}
midOrderRecur(root->leftChild);
std::cout << root->value << " ";
midOrderRecur(root->rightChild);
}
void lastOrderRecur(const BinTreeNode * root)
{
if (root == nullptr)
{
return;
}
lastOrderRecur(root->leftChild);
lastOrderRecur(root->rightChild);
std::cout << root->value << " ";
}
struct BinTreeNode {
int value ;
BinTreeNode * leftChild, *rightChild;
BinTreeNode(int data) : value(data), leftChild(nullptr), rightChild(nullptr) {};
};
void preOrderRecur(const BinTreeNode * root);
void midOrderRecur(const BinTreeNode * root);
void lastOrderRecur(const BinTreeNode * root);
int main()
{
BinTreeNode root(5);
BinTreeNode n1(9);
BinTreeNode n2(8);
BinTreeNode n3(7);
BinTreeNode n4(6);
BinTreeNode n5(5);
BinTreeNode n6(4);
root.leftChild = &n1;
root.rightChild = &n4;
n1.leftChild = &n2;
n1.rightChild = &n3;
n3.rightChild = &n6;
n4.leftChild = &n5;
std::cout << "preOrderRecur: ";
preOrderRecur(&root);
std::cout << std::endl;
std::cout << "midOrderRecur: ";
midOrderRecur(&root);
std::cout << std::endl;
std::cout << "lastOrderRecur: ";
lastOrderRecur(&root);
std::cout << std::endl;
system("pause");
return 0;
}
void preOrderRecur(const BinTreeNode * root)
{
if (root == nullptr)
{
return;
}
std::cout << root->value << " ";
preOrderRecur(root->leftChild);
preOrderRecur(root->rightChild);
}
void midOrderRecur(const BinTreeNode * root)
{
if (root == nullptr)
{
return;
}
midOrderRecur(root->leftChild);
std::cout << root->value << " ";
midOrderRecur(root->rightChild);
}
void lastOrderRecur(const BinTreeNode * root)
{
if (root == nullptr)
{
return;
}
lastOrderRecur(root->leftChild);
lastOrderRecur(root->rightChild);
std::cout << root->value << " ";
}
阅读全文
0 0
- 【C++】非递归遍历二叉树
- 二叉树非递归遍历(C++)
- 先中后序递归非递归遍历二叉树(c#)
- 二叉树的递归与非递归遍历源码(C++)
- 二叉树的递归,非递归遍历(C++)
- C语言二叉树的遍历,递归和非递归
- 【C++】二叉树遍历--递归与非递归实现
- 二叉树递归遍历
- 二叉树遍历(递归)
- 二叉树递归遍历
- 递归遍历二叉树
- 递归二叉树遍历
- 二叉树递归遍历
- 递归遍历二叉树
- 二叉树递归遍历
- 二叉树的遍历(递归法)C语言版
- 二叉树的非递归遍历 C语言版
- 二叉树的非递归遍历 C语言版
- 深入理解SP、LR和PC
- uCOS在51单片机上的移植心得
- python3删除sina微博
- java中的逻辑运算符和位运算符
- OSTaskStkInit():任务堆栈结构的初始化
- C++二叉树递归遍历
- HDU 1847 Good Luck in CET-4 Everybody!
- UC/OS-II的详细移植笔记 两种处理器的移植比较(S1C33209&&S3C44BOX)
- 计算机时间:1970年1月1日
- 图片匀速淡入淡出效果(纯js)
- 一类排列组合计数问题
- jsp中<c:forEach varStatus="status">的属性值问题
- ART深入浅出5--了解Dex文件格式(2)
- 洛谷2822 组合数问题