王道数据结构p149——10

本文介绍了如何使用C语言实现一个二叉树的数据结构,包括创建节点、find_k函数查找第k个节点并输出其值,以及printtree函数用于遍历并打印树形结构。特别地,通过全局变量i实现了与输入整数k的动态比较。
摘要由CSDN通过智能技术生成

王道数据结构p149——10

代码

#include<stdio.h>
#include<stdlib.h>
typedef struct treenode{
	char data;
	struct treenode *lchild,*rchild;
}treenode,*tree;

//ABD##E##C##    //ABD##E##CF##G##
void create(tree &t);
void find_k(tree &t,int k);
void printtree(tree t);

int i = 0;

int main(){
	tree T;
	create(T);
	int k = 5;
	find_k(T,k);

	
	//printtree(T);
	return 0;
} 
void find_k(tree &t,int k){
	if(t){
		i++;
		if(k == i) printf("%c ",t->data);
		find_k(t->lchild,k);
		find_k(t->rchild,k);
	}
}

void printtree(tree t){
	if(t){
		printf("%c  ",t->data);
		printtree(t->lchild);
		printtree(t->rchild);
	}
}
void create(tree &t){
	char c;
	c = getchar();
	if(c == '#') t = NULL;
	else{
		t = (treenode*)malloc(sizeof(treenode));
		t->data = c;
		t->lchild = NULL;
		t->rchild = NULL;
		create(t->lchild);
		create(t->rchild);
	}
}

注,要添加一个全局变量i,通过i与k的比较,实现输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值