查询结点到根结点的路径

本文探讨如何在二叉树数据结构中,有效地找到任意结点到根结点的路径。通过深度优先搜索或广度优先搜索策略,可以遍历树并记录从目标结点到根的路径。这种方法对于理解二叉树操作和解决相关问题至关重要。
摘要由CSDN通过智能技术生成
#include <stdio.h>
#include <malloc.h>
#include <string.h>				//memset()的头文件
#define MAXLEN 100

typedef char DataType;

//全局变量
DataType path[MAXLEN];
int flag = 0, top = 0;

typedef struct tnode
{   //二叉树结点存储类型
	DataType data;                      //定义数据域
    struct tnode *lchild, *rchild;    	//定义左、右孩子指针域
}BiTree;

BiTree *CreateBiTree()
{	//按照先序序列建立二叉树的二叉链表的过程
	DataType ch;
	BiTree *bt;
    scanf("%c",&ch);  
    if(ch=='#')
		return NULL;
    else 
	{
		bt = (BiTree *)malloc(sizeof(BiTree)); // 生成一个新结点
        bt->data = ch;
        bt->lchild = CreateBiTree();      // 生成左子树
        bt->rchild = CreateBiTree();      // 生成右子树
	}
	return bt;
}

void ShowBTree(BiTree *t)                    
{   // 用广义表表示法显示二叉树子函数
	if (t!=NULL)                               // 当二叉树非空时
    {
		printf("%c",t->data);             // 输入该结点数据域
        if(t->lchild!=NULL)               // 若其左子树非空
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值