酱鸭 2017-04-23 03:16 采纳率: 50%
浏览 5825

二叉树的创建:根据一串字符串用先序创建二叉树

一串字符串:ABC空格空格DE空格GF空格空格空格
用先序创建二叉树。

 #include <stdio.h>
#include <stdlib.h>
#define maxsize 100
//递归法创建二叉树
//规则:对一串字符串挨个读取遇到空格完成对当前树的创建
typedef struct BimaryTree {
    char data;
    struct BimaryTree *Lchild;
    struct BimaryTree *Rchild;
}BiTree;
int count = 0;//显示节点的个数
char str[maxsize];
void creatTree(BiTree *&T) {
    char *ch=str;
    int i = 0;
    if (ch[i] == ' ') {
        T = NULL;
    }
    else {
        if (!(T = (BiTree *)malloc(sizeof(BimaryTree)))) {//问题就在这if内的语句无法执行 各位神我这语句有什么问题吗?
            T->data = ch[i];
            i++; count++;
            creatTree(T->Lchild);
            creatTree(T->Rchild);
        }
    }
    return;
}
int main() {
    BiTree *T;
    printf("请输入一串字符串!完成对二叉树的创建!");
    scanf("%s", str);
    creatTree(T);
    printf("%d", count);
    system("pause");
    return 0;
}
  • 写回答

2条回答 默认 最新

  • 内核之道 PostgreSQL领域优质创作者 2017-04-23 03:35
    关注

    ``
    楼主, char *ch=str;若想创建一个二叉树,你需要把str作为参数传入函数中,void creatTree(BiTree *&T)可以改为void creatTree(BiTree *&t, char *str);
    把字符串的地址传入进来,否则,函数里面的值是一个随机值;

    
    
    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?