(验证性实验)实现二叉树的各种基本运算的算法 编写一个程序btree.cpp, 实现二叉树基本运算,并在此基础上设计一个程序exp5-1.cpp,完成如下功能。由图所示的二叉树创建对应的二叉链存储结构b,叉树的括号表示串为“A(B(D,E(H(J,K(L,M(,N))))),C(,I)))”输出二叉树b输出‘H’结点的左、右孩子结点值输出二叉树b的高度释放二叉树b
代码如下
btree
//二叉树的基本运算算法
#include <stdio.h>
#include <malloc.h>
#define MaxSize 100
typedef char ElemType;
typedef struct node
{
ElemType data; //数据元素
struct node *lchild; //指向左孩子节点
struct node *rchild; //指向右孩子节点
} BTNode;
void CreateBTree(BTNode * &b,char *str)
//创建二叉树
{
BTNode *St[MaxSize],*p=NULL;
int top=-1,k,j=0; char ch; b=NULL; //建立的二叉树初始时为空
ch=str[j]; while (ch!='\0') //str未扫描完时循环
{
switch(ch)
{
case '(':top++;St[top]=p;k=1; break; //为左孩子节点
case ')':top--