#创建二叉树,并先序遍历# 代码没有出错,但是输入:ab##cd##,没有显示结果出来 (*꒦ິ⌓꒦ີ)求大佬帮忙看一下
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<stdlib.h>
typedef struct node {
char data; //存放数据域
struct node *lchild,*rchild;//创建两个结构体指针变量 ,也就是定义了两个指向该结构体的指针 。遍历左子树指针,遍历右子树指针
}bnode;
typedef struct node blink;//创建新的标签,用blink来代替struct node
void xian(blink bt)
{
if(bt)
{
printf("%c",bt->data);
xian(bt->lchild);
xian(bt->rchild);
}
}
blink create(blink bt)
{
char ch;
scanf("%c",&ch);
getchar();
if(ch=='#')
bt=NULL;
else
{
bt=(blink)malloc(sizeof(bnode));
if(!bt)
exit(-1);
bt->data=ch;
bt->lchild=create(bt->lchild);
bt->rchild=create(bt->rchild);
}
return bt;
}
int main()
{
blink bt=NULL;
create(bt);
xian(bt);
return 0;
}
#创建二叉树,并先序遍历# 代码没有出错,但是输入:ab##cd##,没有显示结果出来
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- CSDN专家-天际的海浪 2021-11-23 02:22关注
你题目的解答代码如下:
#include <stdio.h> #include <conio.h> #include <malloc.h> #include <stdlib.h> typedef struct node { char data; //存放数据域 struct node *lchild, *rchild; //创建两个结构体指针变量 ,也就是定义了两个指向该结构体的指针 。遍历左子树指针,遍历右子树指针 } bnode; typedef struct node blink; //创建新的标签,用blink来代替struct node void xian(blink *bt) { if (bt) { printf("%c", bt->data); xian(bt->lchild); xian(bt->rchild); } } blink* create() { blink *bt; char ch; scanf("%c", &ch); getchar(); if (ch == '#') bt = NULL; else { bt = (blink *)malloc(sizeof(bnode)); if (!bt) exit(-1); bt->data = ch; bt->lchild = create(); bt->rchild = create(); } return bt; } int main() { blink *bt = NULL; bt = create(); xian(bt); return 0; }
如有帮助,望采纳!谢谢!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 一道python难题2
- ¥15 一道python难题
- ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
- ¥15 牛顿斯科特系数表表示
- ¥15 arduino 步进电机
- ¥20 程序进入HardFault_Handler
- ¥15 oracle集群安装出bug
- ¥15 关于#python#的问题:自动化测试
- ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
- ¥15 教务系统账号被盗号如何追溯设备