二叉树层序遍历的凹入表c++代码
时间: 2023-12-28 08:05:26 浏览: 30
以下是二叉树层序遍历的凹入表c++代码:
```c++
#include <iostream>
#include <queue>
using namespace std;
typedef struct BiTNode {
int data;
struct BiTNode *lchild, *rchild;
} BiTNode, *BiTree;
void CreateBiTree(BiTree &T) {
int data;
cin >> data;
if (data == -1) {
T = NULL;
} else {
T = new BiTNode;
T->data = data;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
}
void PrintTree(BiTree T, int level) {
if (T == NULL) {
return;
}
PrintTree(T->rchild, level + 1);
for (int i = 0; i < level; i++) {
cout << " ";
}
cout << T->data << endl;
PrintTree(T->lchild, level + 1);
}
void LevelOrderTraversal(BiTree T) {
if (T == NULL) {
return;
}
queue<BiTree> q;
q.push(T);
while (!q.empty()) {
BiTree p = q.front();
q.pop();
cout << p->data << " ";
if (p->lchild != NULL) {
q.push(p->lchild);
}
if (p->rchild != NULL) {
q.push(p->rchild);
}
}
}
int main() {
BiTree T;
CreateBiTree(T);
cout << "凹入表:" << endl;
PrintTree(T, 1);
cout << "层序遍历:" << endl;
LevelOrderTraversal(T);
return 0;
}
```