创建一个二叉树,对其进行前序遍历输出,然后输入想要求双亲孩子的结点,最后输出双亲结点。注意输入的"#"字符和非"#"字符的序列及个数关系,这会最终决定创建的二叉树的形态。
输入:
创建一个由大写英文字母和“#”组成的二叉树
输出:
该二叉树的前序遍历
再次输入:
所需求双亲孩子的结点
最后输出:
该结点的双亲结点以及孩子结点
样例输入:
ABC##DE#G#F###
样例输出:
ACBDEGF
再次输入:
B
最后输出:
该结点的双亲结点为:A 该结点的孩子结点为:左孩子为:C 右孩子为:D
#include
#include
using namespace std;
typedef struct BiNode
{
char date;
BiNode *lchild, *rchild;
}BiNode;
void creat(BiNode*&root)
{
char str;
cin >> str;
if (str != '#')
{
root = (BiNode*)malloc(sizeof(BiNode));
root->date = str;