二叉树的线索化

摘要:
T-˃left){T-˃left=pre;T-˃ltag=1;}如果(!

最近学了线索二叉树 自己也写了一个中序线索化 二叉树  但出现了错误  无法实现 希望高手指点一下 发现哪错了 谢谢

 #include<iostream.h>

struct Node{//二叉树结点
int data;
Node*left;
Node*right;
int ltag;//线索化标志
int rtag;//线索化标志
};
class binarytree{
protected:
Node*root;
void preonder(Node*T);//前序遍历
public:
    binarytree(){root=NULL;}
void creattree(Node*&T);//创建数的函数
void show1();//前序遍历函数
void Inthreading(Node*&T,Node*&pre);//线索化二叉树
void INthreadingtree();// 主调函数 调用 前一个函数Inthreading
Node*& getroot();//得到根节点
};
void binarytree::creattree(Node*&T){
int x;
cin>>x;
if(x==0) T=NULL;
else{
    T=new Node;
    T->data=x;
T->ltag=0;
T->rtag=0;
         creattree(T->left);
         creattree(T->right);
}
}
void binarytree::preonder(Node*T){
if(T){
cout<<T->data;
        preonder(T->left);
        preonder(T->right);
}
}
void binarytree::show1(){
preonder(root);
}
Node*& binarytree::getroot(){
return root;
}
void binarytree::Inthreading(Node*&T,Node*&pre){
   if(T==NULL) return ;
Inthreading(T->left,pre);//pre 为标记 p遍历的前驱
if(!T->left){
T->left=pre;
T->ltag=1;
}
if(!pre->right&&pre){ 
pre->rtag=1;
    pre->right=T;
}
  pre=T;//修改pre 使他指向前一结点
         Inthreading(T->right,pre);
}
void binarytree::INthreadingtree(){
Node*pre=NULL;
     Inthreading(root,pre);
}
 
 
void main(){
binarytree b;
b.creattree(b.getroot());
b.INthreadingtree();//这个线索化函数导致 程序崩溃 导致其他功能无实现
b.show1();
}

免责声明:文章转载自《二叉树的线索化》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇win7下安装IIS7.0及部署VS2010 ASP.NET程序网站的相关问题关于一些无法被代替的宏定义函数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

NodeJS与多核HTTP服务器

NodeJS与多核HTTP服务器 | 移动开发博客 NodeJS与多核HTTP服务器 2010/09/05 by lishen3 Comments » 译自:http://developer.yahoo.net/blog/archives/2010/07/multicore_http_server_with_nodejs.html(稍有修改), 转载...

k8s集群添加node节点(使用kubeadm搭建的集群)

1、安装docker、kubelet、kubectl、kubeadm、socat # cat kubernets.repo[kubernetes]name=Kubernetesbaseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64enabled=1gpgcheck=1...

没有admin权限如何免安装使用Node和NPM

此教程只针对于在windows系统上没有admin权限和软件安装权限,但是又希望能像安装版一样使用Node和NPM的用户。 步骤一: 下载压缩版node 访问https://nodejs.org/en/download, 根据自己的系统,选择下载32位或者64位的免安装压缩包版node。解压压缩包,将node.exe文件拷贝到自己想要存放node的路径,比...

prometheus node_exporter部署

curl url | sh 方式: install.sh #!/bin/bash #-------------------VAR------------------------------------------------ ABS_INSTALL_PATH=/usr/local/bin/ ABS_INSTALL_PREFIX=/usr/local/bi...

查看k8s中etcd数据

1.查看ETCD集群中运行的ETCD pod [root@master1 ~]# kubectl get pod -n kube-system | grep etcd etcd-master1 1/1 Running 0 61m etcd-master2...

Vue【第1章】:Vue介绍与安装

内容概要: Vue介绍 安装Vue 一、Vue介绍 Vue是一套用于构建用户界面的渐进式框架。Vue的核心库只关注视图层。是一个单页面框架,是基于模块化组件化的开发模式。 二、安装Vue 1. 安装node.js nodejs目前使用nodejs最多的场景是前端构建工具,比如webpack、gulp。而Vue的组件要编译势必...