概述
编写递归算法,求在二叉树中先序序列中第k个位置的节点
#include<stdio.h>//freopen()的头文件
#include<malloc.h>
#include<iostream>
using namespace std;
const int N=1000;
struct node{
char info;
struct node *llink,*rlink;
};
typedef struct node NODE;
NODE *creat(){ //先序创建树
char x;
NODE *p;
scanf("%c",&x);
//printf("%c",x);
if(x!='.')
{
p=(NODE *)malloc(sizeof(NODE));
p->info=x;
p->llink=creat();
p->rlink=creat();
}
else
p=NULL;
return p;
}
char a[N];//注意information是char类型的
int i=1;//主函数和这个函数都要用 放在这个函数之前即可
void run(NODE *t) //先序遍历,然后建立结果存入char a[N]中
{
if(t)
{
a[i] =t->info;
i++;
run(t->llink);
run(t->rlink);
}
}
main()
{
NODE *T;
int k;
freopen("a.txt","r",stdin);//打开文zhu件//https://blog.csdn.net/yzl_rex/article/details/6892059
scanf("%d",&k);
getchar();//c语言如果自动接受的话会接受一个回车或空格
printf("PLease input a tree:n");
T=creat();//或者k可以在字符串后面接受
//T是一个指针
if(!T)
printf("This is a empty binary tree.");
else
{
printf("第k个位置的节点 is:n ");
run(T);
printf("%c",a[k]);
}
return 0;
}
最后
以上就是飞快发带为你收集整理的编写递归算法,求在二叉树中先序序列中第k个位置的节点的全部内容,希望文章能够帮你解决编写递归算法,求在二叉树中先序序列中第k个位置的节点所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复