博客
关于我
中序线索二叉树的遍历
阅读量:640 次
发布时间:2019-03-15

本文共 946 字,大约阅读时间需要 3 分钟。

C语言程序中的线性链表树结构型定义 在编程实践中,线性链表树(Thread Tree)是一种常用的数据结构,用于实现树形的数据存储与操作。本文将详细阐述ThreadNode数据结构的定义及其相关函数的实现。
ThreadNode数据结构定义 ThreadNode是一个包含多个成员的C语言结构体,定义如下: struct ThreadNode { int data; //数据成员 struct ThreadNode *lc; //左子树指针 struct ThreadNode *rc; //右子树指针 int lt; //左子树存在的标志位(1表示存在,0表示不存在) int rt; //右子树存在的标志位 }; ThreadNode *Nextnode(ThreadNode *p); //函数指宣,而p是当前节点 函数实现:Nextnode Nextnode函数用于获取树中节点的后继线索,实现如下: ThreadNode *Nextnode(ThreadNode *p) { if (p->rc == 0) { return Firstnode(p->lc); //返回左子树的第一个节点 } return p->rc; //直接返回右子树指针 } 函数实现:Firstnode Firstnode函数用于查找左子树的第一个节点,实现如下: ThreadNode *Firstnode(ThreadNode *p) { while (p->lt == 0) { p = p->lc; } return p; } 按序遍历函数Inorder Inorder函数用于按顺序遍历线性链表树,实现如下: void Inorder(ThreadNode *T) { for (ThreadNode *node = Firstnode(T); node != NULL; node = Nextnode(node)) { visit(node); } }

转载地址:http://toglz.baihongyu.com/

你可能感兴趣的文章
一文理解设计模式--命令模式(Command)
查看>>
VTK:可视化之RandomProbe
查看>>
block多队列分析 - 2. block多队列的初始化
查看>>
Java时间
查看>>
不编译只打包system或者vendor image命令
查看>>
【编程】C语言入门:1到 100 的所有整数中出现多少个数字9
查看>>
flink启动(二)
查看>>
pair的用法
查看>>
Flex 布局的自适应子项内容过长导致其被撑大问题
查看>>
PL/SQL 动态Sql拼接where条件
查看>>
Lua-table 一种更少访问的安全取值方式
查看>>
虚函数
查看>>
Error:Cannot read packageName from AndroidManifest.xml
查看>>
【自学Flutter】4.1 Material Design字体图标的使用(icon)
查看>>
【换行符】什么时候用cin.get()吃掉输入流中的换行符
查看>>
广东外语外贸大学第三届网络安全大赛Writeup
查看>>
SpringBoot使用RedisTemplate简单操作Redis的五种数据类型
查看>>
Thymeleaf sec:authorize 标签不生效
查看>>
微信JS-SDK DEMO页面和示例代码
查看>>
一张图搞定RPC框架核心原理
查看>>