本题要求给定二叉树的4种遍历。 函数接口定义: void inordertraversal( bintree bt ); void preordertraversal( bintree bt ); void postordertraversal( bintree bt ); void levelordertraversal( bintree bt );
时间: 2023-06-05 19:47:40 浏览: 206
本题要求给定二叉树的4种遍历。函数接口定义: void inordertraversal(bintree bt); void preordertraversal(bintree bt); void postordertraversal(bintree bt); void levelordertraversal(bintree bt);
相关问题
本题要求给定二叉树的4种遍历。 函数接口定义: void InorderTraversal( BinTree BT ); void PreorderTraversal( BinTree BT ); void PostorderTraversal( BinTree BT ); void LevelorderTraversal( BinTree BT ); 其中BinTree结构定义如下: typedef struct TNode *Position; typedef Position BinTree; struct TNode{ ElementType Data; BinTree Left; BinTree Right; }; 要求4个函数分别按照访问顺序打印出结点的内容,格式为一个空格跟着一个字符。
以下是该题的C语言题解:
```
// 中序遍历
void InorderTraversal(BinTree BT) {
if (BT) {
InorderTraversal(BT->Left);
printf(" %c", BT->Data);
InorderTraversal(BT->Right);
}
}
// 先序遍历
void PreorderTraversal(BinTree BT) {
if (BT) {
printf(" %c", BT->Data);
PreorderTraversal(BT->Left);
PreorderTraversal(BT->Right);
}
}
// 后序遍历
void PostorderTraversal(BinTree BT) {
if (BT) {
PostorderTraversal(BT->Left);
PostorderTraversal(BT->Right);
printf(" %c", BT->Data);
}
}
// 层序遍历
void LevelorderTraversal(BinTree BT) {
if (!BT) return;
Queue Q = CreateQueue();
BinTree T;
Enqueue(Q, BT);
while (!IsEmpty(Q)) {
T = Dequeue(Q);
printf(" %c", T->Data);
if (T->Left) Enqueue(Q, T->Left);
if (T->Right) Enqueue(Q, T->Right);
}
}
```
该题要求实现四种二叉树遍历算法,分别为中序遍历、先序遍历、后序遍历和层序遍历,并按照访问顺序打印出结点的内容,格式为一个空格跟着一个字符。具体实现中,中序遍历、先序遍历和后序遍历使用递归算法实现,层序遍历使用队列实现。
本题要求给定二叉树的4种遍历。\n\n函数接口定义:\nvoid inordertraversal( bintree bt );\nvoid preordertraversal( bintree bt );
本题要求给定二叉树的4种遍历。
void inordertraversal( bintree bt ); // 中序遍历
void preordertraversal( bintree bt ); // 前序遍历
void postordertraversal( bintree bt ); // 后序遍历
void levelordertraversal( bintree bt ); // 层序遍历
阅读全文