4.3.2线索二叉树
2021/5/1 10:25:22
本文主要是介绍4.3.2线索二叉树,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#include <stdio.h> #include <stdlib.h> #include <string.h> //作者 王道训练营 龙哥 typedef char ElemType; typedef struct ThreadNode{ ElemType data; struct ThreadNode *lchild,*rchild; int ltag,rtag; }ThreadNode,*ThreadTree; //手工建线索树,总计5个结点 void BulidThreadTree(ThreadTree &T) { ThreadTree arr[5]; int i; for(i=0;i<5;i++) { arr[i]=(ThreadTree)malloc(sizeof(ThreadNode)); memset(arr[i],0,sizeof(ThreadNode)); arr[i]->data='A'+i; } arr[0]->lchild=arr[1]; arr[0]->rchild=arr[2]; arr[1]->rchild=arr[3]; arr[2]->lchild=arr[4]; T=arr[0]; } void InThread(ThreadTree &p,ThreadTree &pre) { if(p!=NULL){ InThread(p->lchild,pre); if(p->lchild==NULL){ p->lchild=pre; p->ltag=1; } if(pre!=NULL&&pre->rchild==NULL){ pre->rchild=p; pre->rtag=1; } pre=p; InThread(p->rchild,pre); } } void CreateInThread(ThreadTree T) { ThreadTree pre=NULL; if(T!=NULL){ InThread(T,pre); pre->rchild=NULL; pre->rtag=1; } } //中序序列下的第一个结点 ThreadNode *Firstnode(ThreadNode *p) { while(p->ltag==0) p=p->lchild; return p; } //p在中序序列下的后继结点 int main() { ThreadTree T; ThreadTree p; BulidThreadTree(T); CreateInThread(T); p=Firstnode(T); printf("最左下结点值为 %d\n",p); system("pause"); }
这篇关于4.3.2线索二叉树的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?