结构体定义树节点
typedef struct BiTNode
{
string data;
struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;
创建一颗树
void CreateBiTree(BiTree *T)
{
string ch;
cin >> ch;
if(ch == "#")
*T = NULL;
else
{
*T = new BiTNode;
if(!*T)
cout << "error" << endl;
(*T)->data = ch;
CreateBiTree(&(*T)->lchild);
CreateBiTree(&(*T)->rchild);
}
}
前序遍历:
void PreOrderTraverse(BiTree T)
{
if(T == NULL)
return;
cout << T->data;
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
中序遍历:
void InOrderTraverse(BiTree T)
{
if(T == NULL)
return;
InOrderTraverse(T->lchild);
cout << T->data;
InOrderTraverse(T->rchild);
}
后序遍历:
void PostOrderTraverse(BiTree T)
{
if(T == NULL)
return;
PostOrderTraverse(T->lchild);
PostOrderTraverse(T->rchild);
cout << T->data;
}
主程序
#include <iostream>
using namespace std;
int main()
{
BiTree t;
CreateBiTree(&t);
PreOrderTraverse(t);
InOrderTraverse(t);
}

本文介绍了一种使用C++实现二叉树的方法,包括树节点的结构体定义、通过递归方式创建二叉树的过程以及三种不同的树遍历方法:前序遍历、中序遍历和后序遍历。这些遍历方法能够帮助理解和操作二叉树数据结构。
973

被折叠的 条评论
为什么被折叠?



