首页 > 代码库 > 算法实验-二叉树的创建和前序-中序-后序-层次 遍历
算法实验-二叉树的创建和前序-中序-后序-层次 遍历
对于二叉树的创建我是利用先序遍历的序列进行创建
能够对于树节点的内容我定义为char型变量 ‘0‘为空,即此处的节点不存在
头文件 Tree.h
//链式二叉树的头文件 #pragma once #include<iostream> #include<queue> using namespace std; class BinaryTreeNode { public: char data; BinaryTreeNode *leftChild,*rightChild; BinaryTreeNode(char _data,BinaryTreeNode *_leftChild=NULL,BinaryTreeNode *_rightChild=NULL) { data=http://www.mamicode.com/_data;>
主函数
//二叉树的创建 先序 中序 后序便利 高度 结点元素个数 和按层便利 2014-4-20 #include<iostream> #include"Tree.h" using namespace std; void Vist(BinaryTreeNode *&t) { if(t){cout<<" "<<(*t).data<<"";return ;} } int main() { BinaryTree binaryTree; char tree[]={‘A‘,‘B‘,‘C‘,‘0‘,‘0‘,‘0‘,‘D‘,‘0‘,‘0‘}; //binaryTree.Root(‘a‘); //binaryTree.CreateBinaryTree(binaryTree.root); binaryTree.CreateBinaryTree(binaryTree.root,tree); cout<<endl<<"PreOrder: "; binaryTree.PreOrder(Vist,binaryTree.root); cout<<endl<<"InOrder: "; binaryTree.InOrder(Vist,binaryTree.root); cout<<endl<<"PostOrder: "; binaryTree.PostOrder(Vist,binaryTree.root); cout<<endl<<"Size: "<<binaryTree.Size(binaryTree.root)<<endl; cout<<"Height: "<<binaryTree.Height(binaryTree.root)<<endl; //binaryTree.LevelOrder(Vist);; return 0; }
前序:ABEHGCF
中序:EBGHAFC
后序:EGHBFCA
层次:ABCEHFG
节点个数:7
树的深度:4
貌似大概就是这样了,唯一要提及的就是书上可能用‘*‘字符表示空,而非‘0‘ 关于这点仅仅要改一下if的推断语句即可了,其它的一切照旧不变.
算法实验-二叉树的创建和前序-中序-后序-层次 遍历
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。