当前位置: 首页 > news >正文

东莞网站优化推广网站 开发 周期

东莞网站优化推广,网站 开发 周期,设计工作室装修,天眼官方网站引言#xff1a; 线索二叉树是一种特殊的二叉树#xff0c;它可以通过线索#xff08;线索是指在二叉树中将空指针改为指向前驱或后继的指针#xff09;的方式将二叉树转化为一个线性结构#xff0c;从而方便对二叉树进行遍历。本文将介绍如何使用C实现线索二叉树。 技术…引言 线索二叉树是一种特殊的二叉树它可以通过线索线索是指在二叉树中将空指针改为指向前驱或后继的指针的方式将二叉树转化为一个线性结构从而方便对二叉树进行遍历。本文将介绍如何使用C实现线索二叉树。 技术实现 首先我们需要定义一个结构体来表示线索二叉树的节点。结构体中包含了节点的数据、左右子节点以及左右线索标记。 templatetypename Element struct ThrNode {Element data;ThrNode* lchild;ThrNode* rchild;int lTag;int rTag; };其中lTag和rTag分别表示左右线索标记。如果lTag为0则表示该节点的左子节点为普通子节点如果lTag为1则表示该节点的左子节点为前驱节点。rTag同理。 接下来我们使用一个类来表示线索二叉树。该类中包含了根节点以及一些方法。 templatetypename Element class InThrBiTree { public:InThrBiTree();~InThrBiTree();void inOrder(); private:ThrNodeElement* root;void createTree(ThrNodeElement* node);void destroyTree(ThrNodeElement* node);ThrNodeElement* first(ThrNodeElement*node);ThrNodeElement* next(ThrNodeElement* node);void createInThread(ThrNodeElement* node, ThrNodeElement* pre); };其中createTree方法用于创建线索二叉树destroyTree方法用于销毁线索二叉树inOrder方法用于中序遍历线索二叉树。first方法用于找到中序遍历的第一个节点next方法用于找到中序遍历中的下一个节点。createInThread方法用于创建中序遍历的线索。 接下来看怎么实现 templatetypename Element InThrBiTreeElement::InThrBiTree() {createTree(root);ThrNodeElement* pre nullptr;if (root ! nullptr){createInThread(root, pre);pre-rTag 1;} }templatetypename Element InThrBiTreeElement::~InThrBiTree() {destroyTree(node); }templatetypename Element void InThrBiTreeElement::inOrder() {ThrNodeElement* p first(p);while (p ! nullptr) {cout p-data ;p next(p);}cout endl; }templatetypename Element void InThrBiTreeElement::createTree(ThrNodeElement* node) {char item;cin item;if (item #)node nullptr;else {node new BiNodeElement;node-data item;createTree(node-lchild);createTree(node-rchild);} }templatetypename Element void InThrBiTreeElement::destroyTree(ThrNodeElement* node) {if(node!nullptr){destroyTree(node-lchild);destroyTree(node-rchild);delete node;} }templatetypename Element ThrNodeElement* InThrBiTreeElement::first(ThrNodeElement* node) {ThrNodeElement* p node;while (p-lTag 0)p p-lchild;return p; }templatetypename Element ThrNodeElement* InThrBiTreeElement::next(ThrNodeElement* node) {ThrNodeElement* p node-rchild;if (node-rTag 1) {return p;}else {return first(p);} }templatetypename Element inline void InThrBiTreeElement::createInThread(ThrNodeElement* node, ThrNodeElement* pre) {if (node nullptr) return;createInThread(node-lchild, pre);if (node-lchild nullptr){node-lchild pre;node-lTag 1;}if (pre ! nullptr pre-rchild nullptr){pre-rchild node;pre-rTag 1;}pre node;createInThread(node-rchild, pre); } 最后我们来看一下如何使用该类来创建和遍历线索二叉树。 int main() {InThrBiTreeint tree;tree.createTree(tree.root);tree.createInThread(tree.root, nullptr);tree.inOrder();tree.destroyTree(tree.root);return 0; } 首先创建一个InThrBiTree对象然后调用createTree方法创建线索二叉树接着调用createInThread方法创建中序遍历的线索最后调用inOrder方法中序遍历线索二叉树。最后调用destroyTree方法销毁线索二叉树。  结尾 以上就是使用C实现线索二叉树的方法。线索二叉树是一种非常实用的数据结构它可以方便地对二叉树进行遍历。通过本文的介绍相信读者已经掌握了如何使用C实现线索二叉树的方法。
http://www.dnsts.com.cn/news/50269.html

相关文章:

  • 南宁哪个网络公司建网站好成功的网络营销案例
  • 个人网站模板怎么做手机建站平台微点
  • 网站设计建设公司怎么做零基础怎么学网页设计
  • 湖南网站建设怎么样网站开发设计工程师
  • 五常网站wordpress 视频尺寸
  • 长春建设网站公司吗wordpress去谷歌插件
  • 阐述网站建设利益双辽做网站
  • 十里河网站建设公司vi设计用什么软件
  • 网站开发课程建议做淘客网站需要备案
  • 淄博做网站电话免费手机照片恢复软件
  • 网页设计与网站建设实例教程答案珠海建设集团网站首页
  • wordpress验证登录页面西安seo推广优化
  • 济南网站优化排名推广app对接网站
  • 右翼网站苏宁易购的网站建设
  • 唐山市城市建设规划局网站用网盘做网站
  • 电子商务网站建设的规划和实施未来软件网站建设
  • 网站运营方案书c 视频播放网站开发
  • 网站管理是做什么的秦皇岛网站制作服务
  • 针对网站开发软件 代替手动阿里网站seo
  • 济南网站建设公司排名小网站怎么建设
  • 信息化工作总结 网站建设建筑行业一般在哪个网站招聘
  • 网站底部 设计自考
  • 个体做敦煌网站怎么样最好的编程培训学校
  • 如何简单快速的制作网站有什么网站做交流会
  • seo关于网站搜索农产品电商网站建设的总体目标
  • 琴行网站建设方案wordpress缩略图圆角阴影
  • 泰安正规的网站建设外贸网站建设服务
  • 惠州seo整站优化网络推广培训班4800块钱贵吗
  • 网站建设维护视频教程河南郑州房价
  • 手机笑话网站模板类似凡科互动的网站