首页 新闻 会员 周边

求计算二叉树中值为X的结点的层次的算法

0
悬赏园豆:10 [待解决问题]
二叉链表表示的二叉树:按先序次序输入二叉树中结点的值,'#'字符表示空树,构造二叉链表表示的二叉树T(该二叉树中的结点为单个字符并且无值重复的结点),
编写算法完成:计算二叉树中值为X的结点的层次,根结点为第1层,根结点的孩子为第2层,依次类推。
复制代码
#include "malloc.h"
#define TRUE 1
#define FALSE 0
#define OK  1
#define ERROR  0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int  Status;

typedef char  ElemType;
typedef struct BiTNode{
  ElemType data;
  struct BiTNode *lchild,*rchild;//左右孩子指针
} BiTNode,*BiTree;

Status CreateBiTree(BiTree &T) {  // 算法6.4
  // 按先序次序输入二叉树中结点的值(一个字符),’#’字符表示空树,
  // 构造二叉链表表示的二叉树T。
  char ch;
  scanf("%c",&ch);
  if (ch=='#') T = NULL;
  else {
    if (!(T = (BiTNode *)malloc(sizeof(BiTNode)))) return ERROR;
    ________________________ // 生成根结点
     _______________________   // 构造左子树
    _________________________  // 构造右子树
  }
  return OK;
} // CreateBiTree


int main()   //主函数
{
                      //补充代码
 }//main
复制代码

输入格式:

第一行输入先序次序二叉树中结点
第二行输入结点X(输入X前注意处理上一行的回车)

 

输出格式:

第一行输出结点X所在的层次

样例
ABC###D##
B

结果
2
会飞翔的猪ovo的主页 会飞翔的猪ovo | 初学一级 | 园豆:192
提问于:2016-07-13 15:24
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册