题目:假设二叉树是用二叉链表存储,试设计一个算法,求先序遍历中第k(1<=k<=二叉树的节点个数)个节点的值
分析:
        很简单,每遍历一个节点,计数器便加一,直至等于k

struct biTree {char data;struct biTree *lchild;struct biTree *rchild;
};
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
biTree *preK(biTree *T, int k) {static int num = 0;static biTree *r;if (!T) return NULL;if (++num == k) {//找到后,记录下来r = T;}else {preK(T->lchild, k);preK(T->rchild, k);}return r;
}
int main() {int k, count = 0;struct biTree *T = (struct biTree*)malloc(sizeof(struct biTree));T->lchild = NULL;T->rchild = NULL;T->data = NULL;struct biTree *r;biTree *create(biTree *);void inOrder(biTree *);void nodeNum(biTree *, int *);T = create(T);//创建一颗二叉树nodeNum(T, &count);if (!count) {printf("该二叉树是空树");}else {printf

寻找先序遍历中第k个节点相关推荐

  1. 求二叉树先序序列中第k个结点的值

    typedef struct TreeNode {int data;struct TreeNode* left, *right; }TNode,*BTree;int i = 1; //直接在先序遍历的 ...

  2. 二叉树先序遍历,中序遍历,后序遍历,层次遍历学习总结及完整C/C++代码

    伪代码阐述 先序遍历 先序遍历:先访问根节点, 然后深入左子树,直到不能深入时再深入右子树 由定义可得递归式 void travPre_R(BinNodePosi* x,VISIT& visi ...

  3. python数据结构与算法:二叉树及三种遍历方式(先序遍历/中序遍历/后序遍历)

    树的实现采用queue的形式: 树的三种遍历方式(广度优先白能力法):先序遍历(根左右),中序遍历(左根右)以及后序遍历(左右根) ######################P6.4 数据结构### ...

  4. 【C++/数据结构】先序遍历+中序遍历构建二叉树

    #include<vector> using namespace std; struct TreeNode {     int val;     TreeNode* left;     T ...

  5. 【数据结构】先序遍历+中序遍历创建二叉树(C++实现)

    创建如图所示的二叉树. 先序遍历为:ABDGECF 中序遍历为:DGBEAFC 创建结构体 定义二叉树中每个结点的数据,以及左右孩子. typedef struct BiNode {char data ...

  6. 用栈作为存储实现二叉树先序遍历 中序遍历 后续遍历

    package com.example.ljia.Structure.tree;import lombok.Data;import java.util.Stack;/*** @ Author :Sam ...

  7. 【C++】已知二叉树先序遍历+中序遍历 求后序遍历

    题目:已知二叉树先序遍历+中序遍历 求后序遍历 对于一棵二叉树,给定其先序遍历的结果序列和中序遍历的结果序列,请写出其后序遍历的结果序列. 输入样例: GDAFEMHZ(先序遍历的结果序列) ADEF ...

  8. 一道二叉树的题目--后序遍历+中序遍历确定二叉树

    这样的题目比较少, 但是据说计算机里就是使用后序遍历的..(忘记哪里说的了), 多做几次. 后序: KBFDCAE, 中序:BKEFACD ------------------------------ ...

  9. PAT1127 如何根据后序遍历中序遍历建树?

    原题链接:PAT1127 解析:本题要求按s形层次遍历二叉树,如此一来建树就成了首要目的,然后再利用栈的先进后出的特性来s形遍历.于是难点主要放在了如何根据后序遍历和中序遍历来建立一颗二叉树. 代码实 ...

最新文章

  1. 深度强化学习的前景:帮助机器掌控复杂性
  2. win7 dll怎么在xp运行_win7电脑安装软件提示缺少vcruntime140.dll如何解决
  3. java javac javap 命令使用简介
  4. DLPack构建跨框架深度学习编译器-实现张量之间的相互转换【pytorch】
  5. 1107 Linq高级查询
  6. 上传jar包到Apache Archiva本地仓库
  7. matlab连通区边界_Matlab图像处理学习笔记(一):二值化、开操作、连通区域提取、重心、ROI...
  8. label mpchart 饼图_Android MPChart—饼图-Go语言中文社区
  9. PCAP文件格式分析(做抓包软件之必备)
  10. Java基础Arrays类
  11. 视频教程-纯风老师AI平面设计视频教程-其他
  12. Jeecg Boot连接人大金仓数据库步骤及常见问题
  13. 信息安全概论———网络安全协议
  14. 超级实用网址合集(必须收藏一波)
  15. 【C++】跟着老九君学习记录(一)
  16. django QQ认证登录
  17. 数论 判断素数:普通素数判别 线性筛 二次筛法求素数 米勒拉宾素数检验
  18. GBase XDM初识
  19. Minecraft神奇玩家不用键盘,行走全部靠骑猪最后通关MC
  20. org.quartz

热门文章

  1. JavaScript习题(数组去重、有序数组乱序排列)
  2. Command 模式 Step by Step
  3. python-爬虫学习(文字、图片、视频)
  4. Putty 重新启动 linux sqlserver服务
  5. 定时任务之crond服务
  6. fzu 2109 Mountain Number 数位DP
  7. ZCTF2015 pwn试题分析
  8. MFC多线程的创建,包括工作线程和用户界面线程
  9. PCL 学习(2)——基本数据类型与点云数据拼接
  10. Snabbdom(虚拟dom)