我是靠谱客的博主 辛勤铃铛,最近开发中收集的这篇文章主要介绍2020-11-20 编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

题目6.41:
编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值

//题目:编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值
//解决方法:递归函数的参数使用引用参数
#include<iostream>
using namespace std;
#define TElemType double
typedef struct BiTNode
{
    TElemType data;
    struct BiTNode* lchild,* rchild;
}BiTNode,* BiTree;

void Creat_Tree(BiTree& T)
{
    TElemType num;
    if(cin>>num){
        T=new BiTNode;
        if(!T) exit(-2);
        T->data=num;
        Creat_Tree(T->lchild);
        Creat_Tree(T->rchild);
    }
    if(!cin){
        T=nullptr;
        cin.clear();
        cin.sync();
    }
}

void PreOrder_BiTree(BiTree T,int& i,int k)
{
    if(T){
        i++;
        if(i==k)
            cout<<"先序序列的"<<"第"<<k<<"个位置的数据:"<<T->data<<endl;
        PreOrder_BiTree(T->lchild,i,k);
        PreOrder_BiTree(T->rchild,i,k);
    }
}

int main()
{
    BiTree T;
    Creat_Tree(T);
    int i=0;
    cout<<"输入要找的先序序列中的位置:";
    int k;
    while(cin>>k){
        PreOrder_BiTree(T,i,k);
        i=0;
        cout<<"输入要找的先序序列中的位置:";
    }
    return 0;
}

1
2
4
9
@
@
6
@
8
@
@
@
3
@
@
输入要找的先序序列中的位置:1
先序序列的第1个位置的数据:1
输入要找的先序序列中的位置:2
先序序列的第2个位置的数据:2
输入要找的先序序列中的位置:3
先序序列的第3个位置的数据:4
输入要找的先序序列中的位置:4
先序序列的第4个位置的数据:9
输入要找的先序序列中的位置:5
先序序列的第5个位置的数据:6
输入要找的先序序列中的位置:@

Process returned 0 (0x0)   execution time : 22.015 s
Press any key to continue.

最后

以上就是辛勤铃铛为你收集整理的2020-11-20 编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值的全部内容,希望文章能够帮你解决2020-11-20 编写递归算法,在二叉树中求位于先序序列中第k个位置的结点的值所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部