为实现相关功能,创建了以下四个头文件
1.创建二叉树的头文件(BiTree.h)
#pragma once
#include<iostream>
#include"BiTree.h"
using namespace std;
typedef struct BiTNode//二叉树的结构体
{
char data;//数据域
string number;
struct BiTNode *lchild, *rchild;//左孩子、右孩子指针
}BiTNode, *BiTree;
BiTree CreateExpTree(BiTree &T, BiTree a, BiTree b, char ch)//以a,b为左右孩子创建二叉树
{
BiTree T1= new BiTNode;
T1->data = ch;
T1->lchild = a;
T1->rchild = b;
T = T1;
return T;
}
BiTree CreateExpTree_number(BiTree &T, BiTree a, BiTree b, string ch)//以a,b为左右孩子创建二叉树
{
BiTree T1 = new BiTNode;
T1->number = ch;
T1->lchild = a;
T1->rchild = b;
T = T1;
return T;
}
2 .遍历二叉树的头文件(TrverseBiTree.h)
#pragma once
#include"iostream"
#include"BiTree.h"
using namespace std;
void PrePrintBiTree(BiTree T)//先序打印树
{
if (T)
{
cout << T->data;
PrePrintBiTree(T->lchild);
PrePrintBiTree(T->rchild);
}
}
void InorderPrintBiTree(BiTree T)//中序打印树
{
if (T)
{
InorderPrintBiTree(T->lchild);
cout << T->data;
InorderPrintBiTree(T->rchild);
}
}
void PostPrintBiTree(BiTree T)//后序打印树
{
if (T)
{
PostPrintBiTree(T->lchild);
PostPrintBiTree(T->rchild);
cout << T->data;
}
}
3.EXPT栈的头文件(EXPTStack.h)
#pragma once
#include"iostream"
#include"BiTree.h"
using namespace std;
#define maxstacksize 100
#