📄 about-tree.cpp
字号:
#include "iostream.h"
#include "stdlib.h"
//----二叉树的二叉链表存储表示----
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;//左右孩子指针
}BiTNode,*BiTree;
//----建立二叉树的二叉链表的过程
BiTree CreateBiTree(BiTree &T)
{
char ch;
cin>>ch;
if(ch=='#')
T=NULL;
else
{
if(!(T=(BiTNode*)malloc(sizeof(BiTNode))))
return 0;
T->data=ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return 0;
}
//-----先序遍历
int PreorderTraverse(BiTree T)
{
if(T)
{
cout<<T->data;
if(PreorderTraverse(T->lchild))
return 0;
if(PreorderTraverse(T->rchild))
return 0;
}
return 0;
}//PreorderTraverse
//-----中序遍历
int InorderTraverse(BiTree T)
{
if(T)
{
if(InorderTraverse(T->lchild))
return 0;
cout<<T->data;
if(InorderTraverse(T->rchild))
return 0;
}
return 0;
}
//-----后序遍历
int LastorderTraverse(BiTree T)
{
if(T)
{
if(LastorderTraverse(T->lchild))
return 0;
if(LastorderTraverse(T->rchild))
return 0;
cout<<T->data;
}
return 0;
}//LastorderTraverse
void main()
{
BiTree T;
cout<<"输入要建立的树:";
CreateBiTree(T);
cout<<"先序遍历建立的树:";
PreorderTraverse(T);
cout<<endl;
cout<<"中序遍历建立的树:";
InorderTraverse(T);
cout<<endl;
cout<<"后序遍历建立的树:";
LastorderTraverse(T);
cout<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -