欢迎光临散文网 会员登陆 & 注册

数据结构拓展习题:二叉树打印值为x结点的所有祖先

2022-05-27 21:49 作者:回到唐朝当少爷  | 我要投稿

题目:假设二叉树bt采用二叉链表存储,在二叉树bt中查找值为x的结点,试编写算法打印值为x的结点的所有祖先,假设值为x的结点不多于一个。

typedef char TElemType;

typedef struct BiTNode

{

       TElemType data;

       struct BiTNode* lchild, * rchild;

}BiTNode, * BiTree;

int PrintAncestors(BiTree T, TElemType x)

{

       if (T == NULL)//先判断二叉树是否为空

              return 0;

       if (T->data == x) //判断二叉树根节点是否为所要查找的结点

              return 1;

//如果一棵二叉树的左孩子或右孩子里面有所要查询的结点

//那么该二叉树的根节点就是我们要找的值为x的结点的祖先

       if (PrintAncestors(T->lchild, x) || PrintAncestors(T->rchild, x))

       {

              printf("%d ", T->data);

              return 1;

       }

       else

              return 0;

}


数据结构拓展习题:二叉树打印值为x结点的所有祖先的评论 (共 条)

分享到微博请遵守国家法律