C++创建二叉树
来源:互联网 发布:军人网络保密自查自纠 编辑:程序博客网 时间:2024/06/05 19:31
从网上爬来的,加了自己的注释,万一忘了自己可以看一看。
#include <iostream>using namespace std;struct BiTNode{ char data; struct BiTNode* lchild,* rchild; // 左右孩子};void CreatBiTree(BiTNode* &T){ // 先序递归创建二叉树 // 先按顺序驶入二叉树中节点的值(一个字符),空格字符代表空树 char ch; for (int j = 0; j < 13; ++j) { if((ch=getchar()) == '#') // getchar() 为逐个读入标准库函数 T = NULL; else{ T = new BiTNode; // 产生新的子树 T->data = ch; // 由getchar()逐个读进来 CreatBiTree(T->lchild); // 递归创建左子树 CreatBiTree(T->rchild); // 递归创建右子树 } }}void PreOrderTraverse(BiTNode* &T){ // 先序遍历二叉树 if(T){ // 当节点不为空时执行 cout << T->data; PreOrderTraverse(T->lchild); PreOrderTraverse(T->rchild); } else cout << "";}void Inoder(BiTNode* &T){ // 中序遍历二叉树 if(T){ Inoder(T->lchild); cout << T->data; Inoder(T->rchild); } else cout << "";}void Posoder(BiTNode* &T){ // 中序遍历二叉树 if(T){ Posoder(T->lchild); Posoder(T->rchild); cout << T->data; } else cout << "";}int main(){ cout << "创建一颗二叉树,其中A~Z字符代表树的数据,用'#'表示空树:" << endl; BiTNode* T; CreatBiTree(T); cout << "先序递归遍历" << endl; PreOrderTraverse(T); cout << "中序递归遍历" << endl; Inoder(T); cout << "后序递归遍历" << endl; Posoder(T); return 1;}
0 0
- 创建二叉树,C语言实现
- c语言创建并输出二叉树
- c语言简单创建二叉树
- c语言二叉树创建及遍历
- C语言二叉树的创建
- C语言创建一个二叉树
- c语言的二叉树的创建
- 纯C创建二叉树及二叉树的遍历
- 二叉树的创建、遍历及搜索(C实现)
- 二叉树的创建、打印、删除等函数(c)
- C,C++创建二叉树,以及3种遍历
- 二叉树创建、遍历、求深度--C语言实现
- 创建二叉查找树的完整C代码
- 二叉树的创建与遍历(C语言实现)
- C语言二叉树创建、遍历、深度、叶子节点
- 二叉树的创建及应用(c++)
- c语言二叉树简单创建与遍历
- Linux c 二叉搜索树(节点创建、插入BST)
- 12c_Data redaction 数据编写策略
- scala-String
- linux 命令之 fork[1]
- iOS堆与栈的区别
- HBase分布式集群搭建
- C++创建二叉树
- //判断数组类型不包含indexOf方法
- BZOJ 2502 清理雪道 有上下界的网络流
- webx3对请求的处理流程详解一
- Java ConcurrentHashMap 源码分析(2)
- 课程Project总结 - 移动web大作业(不看微博)
- CQUPT登录页
- Linux 中mysql常用命令
- Matlab 中输入希腊字母