【数据结构】-树-求先序遍历中第k个结点的值

这篇博客探讨了如何通过递归先序遍历数据结构中的树来找到第k个节点的值。算法思路强调使用全局计数器num,在第k次递归时返回节点值并终止程序。
摘要由CSDN通过智能技术生成

 【算法思路】

采用递归先序遍历,设置计数器num,注意num必须是全局变量,第k次递归结束后,输出结点的值,并结束程序

【算法实现】
 

typdef struct BiTNode{
 int data;
 struct BiTNode*lchild;
 struct BiTNode*rchild;
}BiTNode, *BiTree;


int num = 0;
void DLR_k(BiTree T,int k) {
	if (T)
	{
		num++;
		if (num == k)
		{
			cout << T->data;
			return;
		}
		else
		{
			if (T->lchild) DLR_k(T->lchild,k);
			if (T->rchild) DLR_k(T->rchild,k);
		}
	}

}

void moni1() {
	BiTree T;
	cout << "先序遍历创建二叉树" << endl;
	DLR_DG_createTree(T);
	int k = 0;
	cout << "输入k:";
	cin >> k;
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vector<>

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值