二叉链表表示的二叉树:按先序次序输入二叉树中结点的值,'#'字符表示空树,构造二叉链表表示的二叉树T(该二叉树中的结点为单个字符并且无值重复的结点), 编写算法完成:计算二叉树的第k层中所有叶子结点个数,根结点为第1层,根结点的孩子结点为第2层,依次类推。 #include "stdio.h" #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 输入格式 第一行输入先序次序二叉树中结点 第二行输入层次k 输出格式 第一行输出该二叉树的第k层中所有叶子结点个数 输入样例 ABC###D## 2 输出样例 1
时间: 2023-06-08 18:04:13 浏览: 147
二叉链表表示法是一种最常用的表示方法:-树、二叉树的性质和存储结构
二叉链表表示的二叉树是指用链表来表示二叉树的结构,每个节点都包含指向左右子树的指针。按先序次序输入二叉树中结点的值,则是先输入根节点的值,再按照从左到右的顺序输入左右子树的节点值。这样可以递归地构建出整棵二叉树。
阅读全文