怎么用递归建立二叉树????

guotyro guotyro 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include "stdio.h"
#include "stdlib.h"

typedef char TElemType;
typedef struct BiTNode{
TElemType data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;


int CreateBiTree(BiTNode *T);//利用递归遍历建立二叉树的存储结构
void PreOrder(BiTNode *T);//用先序遍历打印二叉树
int main()
{
BiTNode T;
CreateBiTree(&T);
PreOrder(&T);
return 1;
}

int CreateBiTree(BiTNode *T)
{
char ch;
scanf("%c",&ch);
if(ch==' ')T=NULL;
else{
if(!(T=(BiTNode *)malloc(sizeof(BiTNode))))return 0;
T->data =ch;
CreateBiTree(T->lchild );//形参是个指针,实参也是个指针,
CreateBiTree(T->rchild );
}
return 1;

}
void PreOrder(BiTNode *T)
{
if(T){
printf("%2c",T->data );
PreOrder(T->lchild );
PreOrder(T->rchild );
}
}

为何这样建立的二叉树的每个结点之间是独立的,CreateBiTree(T->lchild )的递归调用的参数有无问题??这里好象有一个实参是指针,形参也是指针,在被调用函数里对指针的修改并不能返回到调用函数
...全文

相关推荐

建立二叉树,层序、先序遍历( 用递归或非递归的方法都可以)

在本问题中,我们将讨论如何建立二叉树、进行层序遍历和先序遍历,以及如何实现这些功能的函数。首先,我们需要了解二叉树的基本术语和概念。根节点是二叉树的起始节点,没有父节点。

Sunny_520

数据结构c语言版建立二叉树,中序非递归遍历(实验报告)

在本实验中,我们主要探讨了如何使用C语言来实现二叉树的建立以及中序非递归遍历。实验的目的是深入理解二叉树的逻辑结构,掌握非递归遍历方法,特别是中序非递归遍历,以及如何通过递归方式建立二叉树。

麻瓜小姐姐

C++非递归建立二叉树实例

在本实例中,我们将探讨如何非递归地建立二叉树,这种方法通常比递归方式更节省内存,因为它不需要函数调用栈的空间。非递归建立二叉树的核心思想是利用栈来辅助构建过程。

weixin_38631331

在QT下使用递归生成二叉树

在这里,我们主要探讨如何利用QT的绘图功能和递归算法来实现二叉树的绘制。首先,我们要理解二叉树的基本概念。二叉树是每个节点最多有两个子节点的数据结构,通常分为左子节点和右子节点。

wzwxiaozheng

链表先序建立二叉树,得到中序后序输出,递归和非递归实现(C++代码加设计报告)

在本课程设计中,我们将探讨如何使用C++编程语言来构建和操作二叉树,特别是通过先序遍历建立二叉树以及非递归方式实现中序遍历。

weixin_41217242
评论 1
收藏 已收藏
分享
返回顶部
guotyro
C语言 70,039 成员 243,237 内容