c++实现二叉树的遍历
来源:互联网 发布:淘宝回收手机 编辑:程序博客网 时间:2024/06/13 08:57
在本例中,创建的树的结构为:
代码如下:
#include <iostream>using namespace std;typedef struct BinaryTreeNode{ char data; struct BinaryTreeNode *leftChild; struct BinaryTreeNode *rightChild;}BTNODE, *PBTNODE;PBTNODE CreateBinaryTree(); //创建一个二叉树void PreTraverseBinaryTree(PBTNODE pRoot); //先序遍历二叉树void InTraverseBinaryTree(PBTNODE pRoot);//中序遍历二叉树void PostTraverseBinaryTree(PBTNODE pRoot); //后序遍历二叉树int main(){ PBTNODE pRoot = CreateBinaryTree(); cout << "先序遍历的结果为:"; PreTraverseBinaryTree(pRoot); cout << endl; cout << "中序遍历的结果为:"; InTraverseBinaryTree(pRoot); cout << endl; cout << "后序遍历的结果为:"; PostTraverseBinaryTree(pRoot); return 0;}PBTNODE CreateBinaryTree(){ PBTNODE pA = new BTNODE; PBTNODE pB = new BTNODE; PBTNODE pC = new BTNODE; PBTNODE pD = new BTNODE; PBTNODE pE = new BTNODE; pA->data = 'A'; pB->data = 'B'; pC->data = 'C'; pD->data = 'D'; pE->data = 'E'; pA->leftChild = pB; pA->rightChild = pC; pB->leftChild = NULL; pB->rightChild = NULL; pC->leftChild = pD; pC->rightChild = pE; pD->leftChild = NULL; pD->rightChild = NULL; pE->leftChild = NULL; pE->rightChild = NULL; return pA;}void PreTraverseBinaryTree(PBTNODE pRoot){ if(pRoot != NULL) { cout << pRoot->data << " "; //先输出根节点的值 if(pRoot->leftChild != NULL) PreTraverseBinaryTree(pRoot->leftChild); //然后遍历根节点的左子树 if(pRoot->rightChild != NULL) PreTraverseBinaryTree(pRoot->rightChild); //最后遍历根节点的右子树 }}void InTraverseBinaryTree(PBTNODE pRoot){ if(pRoot != NULL) { if(pRoot->leftChild != NULL) InTraverseBinaryTree(pRoot->leftChild); //先中序遍历根节点的左子树 cout << pRoot->data << " "; //再输出根节点的值 if(pRoot->rightChild != NULL) InTraverseBinaryTree(pRoot->rightChild); //最后中序遍历根节点的右子树 }}void PostTraverseBinaryTree(PBTNODE pRoot){ if(pRoot != NULL) { if(pRoot->leftChild != NULL) InTraverseBinaryTree(pRoot->leftChild); //先后序遍历根节点的左子树 if(pRoot->rightChild != NULL) InTraverseBinaryTree(pRoot->rightChild); //再后序遍历根节点的右子树 cout << pRoot->data << " "; //最后输出根节点的值 }}运行结果:
0 0
- C语言实现二叉树的遍历
- C实现二叉树的各种遍历
- 二叉树的创建、遍历及搜索(C实现)
- 递归实现二叉树的建立及前中后序遍历 c
- 二叉树构造与遍历的C程序实现代码
- 二叉树遍历的c语言非递归实现
- 二叉树的非递归遍历C实现
- 二叉树的几种遍历(C实现)
- 二叉树的非递归遍历C语言实现
- 【算法】二叉树的递归遍历C语言实现
- 二叉树的创建与遍历(C语言实现)
- C语言之二叉树(包括遍历的实现)
- C实现二叉树的建立和遍历
- 平衡二叉树(遍历,插入,删除)的C实现
- C实现二叉树的先序遍历,中序遍历,后序遍历
- c语言实现二叉树的先序遍历,中序遍历,后序遍历
- 二叉树遍历的实现
- 二叉树的遍历实现
- Android初识之简易计算器
- leetcode之逆波兰求值
- 网络模拟器WANem使用配置图文教程
- 第一个小游戏,被我卖了。。。
- PPT2010设置:让备注信息只在演讲者显示器显示
- c++实现二叉树的遍历
- 获取文件的md5(java & php)
- 计算机的爱情
- 【转】应届毕业生要知道的几个小东西,,三方协议,,报到证,,干部身份
- 在胸口凝成一颗鲜红的朱砂印
- 感悟
- 66句震撼人心的禅语(转)
- 看到的转
- 中国十大最意想不到的外资企业(转)