隐藏页面特效

数据结构复习代码——线索二叉树的实现

1、线索二叉树的实现

#include<stdio.h> #include<assert.h> #include<malloc.h> #define ElemType char typedef enum{LINK,THREAD}Tag_Type; typedef struct BinTreeNode { ElemType data; struct BinTreeNode *leftChild; struct BinTreeNode *rightChild; Tag_Type ltag; Tag_Type rtag; }BinTreeNode; typedef struct BinTree { BinTreeNode *root; ElemType refvalue; }BinTree; void InitBinTree(BinTree *bt,ElemType ref); void CreateBinTree(BinTree *bt, char *str); void CreateBinTree(BinTree *bt,BinTreeNode *&t,char *str); BinTreeNode* _Buynode(ElemType x); void CreateInTread(BinTree *bt); void CreateInTread(BinTreeNode *&t,BinTreeNode *&pre); void CreateInTread(BinTree *bt) { BinTreeNode *pre = NULL; CreateInTread(bt->root,pre); pre->rightChild = NULL; pre->rtag = THREAD; } void CreateInTread(BinTreeNode *&t,BinTreeNode *&pre) { if(t == NULL) return; CreateInTread(t->leftChild,pre); if(t->leftChild == NULL) { t->ltag = THREAD; t->leftChild = pre; } if(pre!=NULL&&pre->rightChild==NULL) { pre->rtag = THREAD; pre->rightChild = t; } pre = t; CreateInTread(t->rightChild,pre); } BinTreeNode* _Buynode(ElemType x) { BinTreeNode *s = (BinTreeNode*)malloc(sizeof(BinTreeNode)); assert(s != NULL); s->data = x; s->leftChild = s->rightChild = NULL; s->ltag = s->rtag = LINK; return s; } void InitBinTree(BinTree *bt,ElemType ref) { bt->root = NULL; bt->refvalue = ref; } void CreateBinTree(BinTree *bt, char *str) { CreateBinTree(bt,bt->root,str); } void CreateBinTree(BinTree *bt,BinTreeNode *&t,char *str) { if(*str == bt->refvalue) t = NULL; else { t = _Buynode(*str); CreateBinTree(bt,t->leftChild,++str); CreateBinTree(bt,t->rightChild,++str); } } int main() { char *str = "ABC##DE##F##G#H##"; BinTree mytree; InitBinTree(&mytree,'#'); CreateBinTree(&mytree,str); CreateInTread(&mytree); return 0; }

 


__EOF__

本文作者往心。
本文链接https://www.cnblogs.com/lx06/p/16456016.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   往心。  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示