#include#include using namespace std; typedef struct tree{ char data; struct tree *lchild, *rchild; }BitNode, *BiTree; //建立二叉树 ABC##DE#G##F### void creatTree(BiTree &T){ char ch; cin >> ch; if (ch == '#'){ T = NULL; } else { T = new BitNode; T->data = ch; creatTree(T->lchild); creatTree(T->rchild); } } //中序遍历 void InOrderTraverse(BiTree T){ if (T){ InOrderTraverse(T->lchild); cout << T->data; InOrderTraverse(T->rchild); } } //先序遍历 void front(BiTree T) { if (T){ cout << T->data; InOrderTraverse(T->lchild); InOrderTraverse(T->rchild); } } //后续遍历 void end(BiTree T) { if (T){ InOrderTraverse(T->lchild); InOrderTraverse(T->rchild); cout << T->data; } } //计算节点个数 int NodeCount(BiTree T){ if (T){ return NodeCount(T->lchild) + NodeCount(T->rchild) + 1; } } //计算深度 int Depth(BiTree T){ int m = 0, n = 0; if (T){ m = Depth(T->lchild); n = Depth(T->rchild); if (m > n){ return (m + 1); } else { return (n + 1); } } } int main(){ BiTree T = NULL; creatTree(T); cout << "================中序============"<



