/*======================================================================*/
/* CreatBTNode.c 广义表形式输入,建立二叉树,分层形式输出 */
/*=======================================================================*/
#include <stdio.h>
#include <malloc.h>
#define MaxSize 100
typedef char ElemType; //定义数据为字符类型
typedef struct node
{
ElemType data;
struct node *lchild;
struct node *rchild;
}BTNode;
/*-------------------------------------------------------------------------*/
/*按广义表输入序列,创建二叉树的二叉链表b. */
BTNode *CreatBTNode(char *str) // *str是二叉树的广义表表示的字符串 ,函数构造二叉链表
{
BTNode *St[MaxSize],*p=NULL,*b;
/* St是栈空间,b是新建二叉链表的根指针 */
int top=-1,k,j=0;
char ch;ch=str[j];
b=NULL; //初始为空链表
for(j=0;str[j]!='\0';j++)
/* str未扫描完时循环 */
{
ch=str[j];
switch(ch)
{
case '(':top++; //作为左结点
St[top]=p;
k=1;break;
case ')':top--;
break;
case ',':k=2;
break; //作为右结点
default:p=(BTNode *)malloc(size
二叉树1:广义表形式生成二叉链表形式,利用队列输出层次结构
最新推荐文章于 2021-12-06 21:44:23 发布