初始化一棵树

#include <stdio.h>
#include <stdlib.h>

//定义一个树节点的结构
struct treeNode{
	char data;
	struct treeNode *lchild, *rchlid;
};


//初始化一棵树的根节点
int initial_tree(struct treeNode**);

int main(){
	//定义一个指向树节点的指针,并初始化为空
	struct treeNode *root = NULL;
	//调用初始化函数,把指针root的地址传递给函数,这样,函数就能直接操纵指针root了
	initial_tree(&root);
	//打印根节点root的数据项,结果为g
	printf("%c\n", root->data);

	return 0;
}

//由于root本身是指针,所以指针的地址要用一个指向指针的指针来接收
int initial_tree(struct treeNode **t){
	//*t 相当于root,给*t分配空间
	(*t) = (struct treeNode*)malloc(sizeof(struct treeNode));
	//把字符g 付给root的数据项
	(*t)->data = 'g';
	//把root的左孩子右孩子都置为空值
	(*t)->lchild = NULL;
	(*t)->rchlid = NULL;
	//返回
	return 0;
}

二叉的链式存储使用指针来表示的结构,每个节点包括一个数据域和两个指针域,分别指向左子和右子初始化一棵树需要创建根节点,并为根节点分配空间,然后递归地创建左子和右子。 下面是一个示例代码来初始化一棵二叉: ```c #include <stdio.h> #include <stdlib.h> typedef struct TreeNode { int data; struct TreeNode* left; struct TreeNode* right; } TreeNode; // 创建一个新节点 TreeNode* createNode(int val) { TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode)); node->data = val; node->left = NULL; node->right = NULL; return node; } // 初始化一棵树 TreeNode* initTree() { TreeNode* root = createNode(1); root->left = createNode(2); root->right = createNode(3); root->left->left = createNode(4); root->left->right = createNode(5); root->right->left = createNode(6); root->right->right = createNode(7); return root; } int main() { TreeNode* root = initTree(); printf("根节点的数据为:%d\n", root->data); printf("左子的根节点数据为:%d\n", root->left->data); printf("右子的根节点数据为:%d\n", root->right->data); return 0; } ``` 在上面的代码中,我们创建了一个名为 TreeNode 的结构体来表示二叉的节点,其中包括一个数据域和两个指针域。createNode() 函数用来创建一个新节点,initTree() 函数用来初始化一棵树。在 main() 函数中,我们调用 initTree() 函数来初始化一棵树,并打印出根节点、左子的根节点和右子的根节点的数据。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值