读取字符串abcdefghij,然后层次建树建立一颗二叉树,然后中序遍历输出 hdibjeafcg,后序遍历输出 hidjebfgca,层序遍历输出abcdefghij(太菜了,这个代码主要还是用了王道网课的代码,以后可能我有更好的写法)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
//定义树节点结构
typedef struct BiTNode {
char data;
struct BiTNode* lchild, * rchild;
}BiTNode,*BiTree;
//定义辅助队列节点结构
typedef struct QNode {
BiTree data;//队列里的元素为树的节点
struct QNode* next;
}QNode,*PQNode;
//分别前序,中序,后序,层序递归遍历二叉树
void PreOrder(BiTree p) {//前序遍历
if (p != NULL) {
putchar(p->data);
PreOrder(p->lchild);
PreOrder(p->rchild);
}
}
void InOrder(BiTree p) {//中序遍历
if (p != NULL) {
InOrder(p->lchild);
putchar(p->data);
InOrder(p->rchild);
}
}
void PosOrder(BiTree p) {//后序遍历
if (p != NULL) {
PosOrder(p->lchild);
PosOrder(p->rchild);
putchar(p->data);
}
}
void L