题目:假设二叉树采用二叉链表结构。设计并实现如下算法:输入某棵二叉树的广义表形式,建立该二叉树,并按层次遍历该二叉树。
⒈ 本演示程序根据提示输入二叉树的广义表形式例如:a(b(c),d(e(f, g),h(,i)))
⒉ 在演示过程序中,用户敲击键盘,即可观看演示结果。
⒊ 程序执行的命令包括:
(1)构造树的广义表
(2)输出构造好的广义表
(3)层次比遍历该二叉树
源程序 (C语言)
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define STACK_MAX_SIZE 30
#define QUEUE_MAX_SIZE 30
typedef struct BTreeNode{
char data;
struct BTreeNode *lchild;
struct BTreeNode *rchild;
}BTreeNode;
void initBTree(BTreeNode* *bt) /* 初始化二叉树 */
{ *bt = NULL; }
void createBTree(BTreeNode* *bt, char *a)
{ /*建立二叉树(根据a所指向的二叉树广义表字符串建立) */
struct BTreeNode *p;
struct BTreeNode *s[STACK_MAX_SIZE]; /*定义s数组为存储根结点指针的栈使用