数据结构(十二) 二叉树的基本操作 --- 创建一个二叉树 前中后序遍历二叉树
2017-01-01 19:55
756 查看
//二叉树可以顺序存储也可以链式存储 顺序存储适合满二叉树和完全二叉树但不适合一般的二叉树 //用链式存储对二叉树的一些基本操作 //采用的二叉链表的方法 #include <iostream> using namespace std; //二叉树的结构体 typedef struct Node { char data; struct Node *lchild; struct Node *rchild; }*TreeNode; //二叉树的创建 //输入时注意比如先序序列为123 你应该输入 1 2 # # 3 # # void createBiTree(TreeNode &Tree) { char data; cin>>data; if(data=='#') { Tree = NULL; } else { Tree = new Node(); Tree->data = data; createBiTree(Tree->lchild); createBiTree(Tree->rchild); } } //二叉树的先序遍历 void preBiTree(TreeNode &Tree) { if(Tree) { cout<<Tree->data; preBiTree(Tree->lchild); preBiTree(Tree->rchild); } } //二叉树的中序遍历 void LDRBiTree(TreeNode &Tree) { if(Tree) { LDRBiTree(Tree->lchild); cout<<Tree->data; LDRBiTree(Tree->rchild); } } //二叉树的后序遍历 void LRDBiTree(TreeNode &Tree) { if(Tree) { LRDBiTree(Tree->lchild); LRDBiTree(Tree->rchild); cout<<Tree->data; } } int main() { TreeNode Tree; cout<<"请输入你要创建的二叉树的数据(按先序遍历创建的二叉树#为空节点的表示)\n"; createBiTree(Tree); cout<<"先序遍历的结果为:\n"; preBiTree(Tree); cout<<"中序遍历的结果为:\n"; LDRBiTree(Tree); cout<<"后序遍历的结果为:\n"; LRDBiTree(Tree); return 0; }
相关文章推荐
- 数据结构之线性表知识点小结(一)
- Zookeeper概念 & 数据结构
- 数据结构课程设计——烟大导航系统
- 数据结构课程设计-图书管理开发系统
- 数据结构----单链表(c++)
- 数据结构--学生成绩管理
- 数据结构课程设计——学生成绩管理系统
- Bloom Filter
- 数据结构实训之学生信息管理系统
- 数据结构课程设计
- 数据结构实训之学生信息管理系统
- 数据结构课程设计-ytu职工信息管理系统
- 数据结构与算法分析C++表述第二章编程题
- 数据结构课程设计--学生成绩管理系统
- binary indexed tree
- redis集群实现(七)sentinel数据结构和初始
- 数据结构——中国邮递员问题
- java数据结构与算法之平衡二叉树(AVL树)的设计与实现
- 【瞎搞】回文自动机
- 数据结构与算法C++描述学习笔记1、辗转相除——欧几里得算法