//线索二叉树
#include<stdio.h>
#include<malloc.h>
#include<process.h>
#define OVERFLOW -2
//二叉树的二叉线索存储结构
enum PointerTag{Link,Thread};  //枚举类型,Link(0):指针,Thread(1):线索
struct BiThrNode
{char data;BiThrNode *lchild,*rchild;//左右孩子指针PointerTag LTag,RTag;//左右标志
};
typedef BiThrNode *BiThrTree;//按照先序的次序输入二叉树中节点的值,构造线索二叉树T,char,空格表示空节点
void CreateBiThrTree( BiThrTree &T)
{char ch;scanf("%c",&ch);if(ch == ' ')T=NULL;else{T=(BiThrTree)malloc(sizeof(BiThrNode));//生成根节点,先序if(!T)exit(OVERFLOW);T->data=ch;//给根节点赋值CreateBiThrTree(T->lchild);//递归构造左子树if(T->lchild)//如果有左孩子T->LTag=Link;//给坐标值赋值为0CreateBiThrTree(T->rchild);//递归构造右子树if(T->rchild)T->RTag=Link;//如果有右孩子,就给右标志赋值为0}
}
BiThrTree pre;//全局变量,始终指向刚刚访问过的节点//通过中序遍历进行中序线索化,线索化之后,pre指向最后一个节点
void InThreading(BiThrTree p)/

线索二叉树和中序非递归遍历线索化后的二叉树相关推荐

  1. 二叉树的中序非递归遍历

    二叉树的中序非递归遍历 中序遍历的非递归算法描述如下: 从根节点开始检索,如果当前节点不为空,则将当前节点入栈,让当前节点成为其左孩子节点,再继续上一步的操作 加入当前节点为空了,说明其父节点已经没有 ...

  2. 二叉树中序非递归遍历

    递归是程序设计中强有力的工具.递归函数结构清晰,使程序易读.但递归函数也有不可克服的弱点,时间.空间效率较低,运行代价较高,所以在实际使用中,常希望使用它的迭代版本.为了实现非递归遍历算法,需要一个堆 ...

  3. 中序非递归遍历二叉树

    二叉树的递归算法虽然简单,但是会导致时间复杂度比较高,下面给大家带来用栈实现的二叉树非递归算法 首先定义好二叉树,和元素类型为二叉树的栈 typedef struct BiTNode{TElemTyp ...

  4. 二叉树 中序非递归遍历算法 c++

    二叉树的中序非递归算法,详见下 首先,二叉树结点定义 typedef struct BiTNode//二叉树结点结构 {string data;struct BiTNode *lchild,*rchi ...

  5. 数据结构: 中序非递归遍历二叉树

    status InOrderTraverse(BiTree T,status (*visit)(TElementType e) { InitStack(s); p=T; while(p||!Stack ...

  6. 线索二叉树中序非递归线索化以及递归线索化构建和遍历算法

    引文 大部分教材给出了 线索二叉树的中序递归线索化以及中序遍历,但是没给出非递归,现在网上大部分非递归算法代码各种条件判断写的比较离谱,所以干脆自己总结了一个清晰的.线索二叉树中序非递归线索化以及递归 ...

  7. 数据结构专题 | 先序非递归遍历二叉树

    先序非递归遍历二叉树,主要是利用了栈的先进后出原理,用一个栈即可实现该算法,下面我们一起来看一下如何来实现吧 目录 先序建立二叉树 先序递归遍历二叉树 先序非递归遍历二叉树 先序建立二叉树 在进行先序 ...

  8. 二叉树的后序非递归遍历(巧妙思想)

    大家都知道二叉树的前序非递归遍历非常好写: //二叉树的结构 public class TreeNode {TreeNode left;TreeNode right;int val;TreeNode( ...

  9. 后序非递归遍历二叉树

    后序遍历的顺序是左.右.根.而前序遍历的顺序是根.左.右.所以只需将前序遍历稍作改变,变成先遍历根再遍历右最后遍历左即(根右左)就会发现此时的顺序便是后序遍历的倒序了,所以这时候只需将改变后的前序遍历 ...

最新文章

  1. 前端需要什么样的方案设计
  2. Python学习—函数
  3. Linux环境下gcc编译链接库-lz -lrt -lm -lc都是什么库?
  4. 大数据新手之路二:安装Flume
  5. 多布局怎么搭建_关键词SEO优化怎么做?具体包括哪些方面?
  6. 金山手机控usb调试模式开启工具_话筒坏了无法连麦?一招手机秒变电脑麦克风...
  7. tt桌球瞄准器手机版_法国或将禁止不可拆卸手机,想当年手机后盖随便拆开玩儿...
  8. python任务调度系统web_监听调度系统定时执行任务python_websock
  9. 亲测!这本 Python 书销量超过13W+原来是这样
  10. 悟空问答 模板 html,悟空问答上首页技巧每小时2500个阅读快速为自己吸粉.pdf
  11. 教你如何使用automake生成Makefile文件
  12. Python如何实现人脸识别系统
  13. PDM与ERP系统集成设计
  14. 【VBA研究】打印表单时指定打印机
  15. mysql strtolower_自己写的mysql类_PHP教程 - strtolower
  16. 级联查询ajax,ajax级联查询
  17. Python疫情数据分析+数据可视化展示
  18. ni max不能连续采集图像_图像识别技术在智慧教室录播系统中的应用研究
  19. Microbiome:微生物组名词定义
  20. 编程的97件事——1、谨慎行事

热门文章

  1. mysql查男女比例百分比_sql server 计算男女比例 百分比
  2. [AHK]通达信联动到同花顺下单
  3. EA将向内政及手机游戏开辟商供应发行办事
  4. css浮动以及清除浮动
  5. bootstrap v4 toast轻提示正确用法
  6. Linux 下软件包的安装,压缩,解压(详细)
  7. 毕设 疲劳驾驶检测系统 python
  8. c#如何实现软件授权后才能使用?
  9. Python 每日一记217根据词频生成词云图
  10. Python每日一记42机器学习中特征重要性feature_importances_