二叉搜索树(二叉穿线树)抽象结构以及线索化算法
来源:互联网 发布:2016人工智能论坛 编辑:程序博客网 时间:2024/06/11 01:32
//二叉线索树//每个节点存储了它在某种遍历顺序下的前驱和后继节点的位置,所以Node类中需要添加//preLink和nextLink两个指针,但是在中序遍历下,可以把未被利用的n+1个指针域用//上来存下一访问节点的位置,但是需要增加leftTag和rightTag两个标记量区分是指向//孩子还是指向遍历的前驱和后继//Node类的数据类型class ThreadNode{public: bool leftTag; bool rightTag; ThreadNode* lLink; ThreadNode* rLink; int item;public: ThreadNode() = default; ThreadNode(int a);};ThreadNode::ThreadNode(int a) {item = a;leftTag = rightTag = 0;lLink = rLink = nullptr;}//ThreadBinaryTree类//这里构造方法和普通二叉树一样,直接一点一点连就好了class ThreadBinaryTree{public: ThreadNode root;public: ThreadBinaryTree() = default; ThreadBinaryTree(ThreadNode*); void InOrder(ThreadNode * _root); void InThread(ThreadNode *_root, ThreadNode* & pre);//线索化中序二叉树};//线索化二叉树void ThreadBinaryTree::InThread(ThreadNode * _root,ThreadNode* & pre)//pre在函数递归调用的时候要保持{ if(_root!= nullptr) { InThread(_root->lLink, pre); if(_root->lLink == nullptr) { _root->lLink = pre; _root->leftTag = 1; } if(pre && pre->rLink == nullptr) { pre->lLink = _root; pre->rightTag = 1; } pre = _root; InThread(_root->rLink, pre); }}
阅读全文
0 0
- 二叉搜索树(二叉穿线树)抽象结构以及线索化算法
- 穿线二叉树
- 穿线二叉树
- 线索二叉树的线索化算法
- 线索二叉树算法
- 线索二叉树算法
- 线索二叉树 算法
- 二叉树 线索二叉树 以及遍历算法
- 数据结构(三):非线性逻辑结构-特殊的二叉树结构:堆、哈夫曼树、二叉搜索树、平衡二叉搜索树、红黑树、线索二叉树
- 6.3线索二叉树(二叉树的线索化)
- (C++)二叉树的线索化 / 线索二叉树
- 线索化二叉树
- 二叉树线索化
- 线索化二叉树
- 线索化二叉树
- 线索化二叉树
- 线索化二叉树
- 线索化二叉树
- 面向对象编程有三大特性:封装、继承、多态。
- POJ2299 线段树求逆序数
- Qt组件之模拟电池充电
- git拉一个新分支
- 线性表类型定义与顺序表操作
- 二叉搜索树(二叉穿线树)抽象结构以及线索化算法
- visual studio C++ 使用OpenMP 进行并行计算
- 蓝桥杯 算法提高 快乐司机
- 感知机模型
- OPENGL学习笔记之九
- typeScript中的类型
- 排序算法
- HTML DOM Event 对象(Attribute对象)
- Python logging模块