实现如下任务: (1)初始化树二叉链表InitTree(T); (2)创建树二叉链表CreateTree_CST(T); (3)先序遍历树PreOrderTraverse_CST(T); (4)后序遍历树PostOrderTraverse_CST(T); (5)层序遍历树FloorTraverse_CST(T); (6)销毁树二叉链表DestroyTree_CST(T)。
时间: 2023-01-31 20:01:28 浏览: 227
编写采用二叉链表形式存储的二叉树的创建、先序、中序、后序和按层遍历的算法
5星 · 资源好评率100%
树二叉链表是一种存储二叉树的数据结构,它将二叉树的每个节点用一个结构体表示,该结构体包含指向左右子节点和父节点的指针。
1. 初始化树二叉链表InitTree(T)
初始化树二叉链表的操作是创建一个新的二叉树,并将根节点的指针设置为空。例如:
```
void InitTree(BiTree &T)
{
T = NULL;
}
```
2. 创建树二叉链表CreateTree_CST(T)
创建树二叉链表的操作是通过用户输入的先序遍历序列来建立二叉树的过程。例如:
```
void CreateTree_CST(BiTree &T)
{
char ch;
cin >> ch;
if (ch == '#') T = NULL;
else
{
T = new BiTNode;
T->data = ch;
CreateTree_CST(T->lchild);
CreateTree_CST(T->rchild);
}
}
```
3. 先序遍历树PreOrderTraverse_CST(T)
先序遍历是指先访问根节点,然后访问左子树,最后访问右子树。例如:
```
void PreOrderTraverse_CST(BiTree T)
{
if (T != NULL)
{
cout << T->data << " ";
PreOrderTraverse_CST(T->lchild);
PreOrderTraverse_CST(T->rchild);
}
}
```
4. 后序遍历树PostOrderTraverse_CST(T)
后序遍历是指先访问左子树,然后访问右子树,最后访问根节点。例如:
```
void PostOrderTraverse_CST(BiTree T)
阅读全文