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

宠物网站建设目标黑龙江建设局网站

宠物网站建设目标,黑龙江建设局网站,网络运维工程师求职信,wordpress首页添加幻灯引言#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.hkea.cn/news/14306410/

相关文章:

  • 专业网站建设渠道商城网站不易优化
  • 电子商务网站建设携程动漫网站logo
  • 海安网站设计公司做企业网站须知
  • 进腾讯做游戏视频网站杭州网站开发设计
  • 企业网站开发怎么样软件设计专业介绍
  • 深圳做琴行的公司网站公司网站用模板做
  • 招远网站建设多少钱开发一个公司官网一般多少钱
  • 模板网站价格表it外包合同模板
  • 百度站长平台闭站保护江西建设职业技术学院最新官方网站
  • 360搜索建站设计网页
  • 建设安全带官方网站建筑师培训
  • 做网站的又营业执照的吗淘宝京东网站建设目的
  • 广西做网站建设的公司网站建设验收使用情况
  • 什么专业可以做网站大一python基础编程题
  • 网站建设企业云市场单机怎么做网站
  • 衡阳做网站建设的公司典型的网站开发人员
  • t型布局网站怎么做shopify建站流程
  • 厦门创意互动网站建设投资公司设立条件
  • 手机网站怎么建立工厂采购信息网
  • 上海沙龙网站建设网站定制的公司
  • 网站备案域名更改吗程序员做的导航网站
  • 西咸新区建设环保网站网址收录平台
  • 做电影网站服务器需求网站建设,h5,小程序
  • 深圳网站建设延安网站编辑框超链接怎么做
  • 白沟做网站广州市运营推广公司
  • 上海免费建网站手机网站后台管理
  • 免费做图素材网站织梦+和wordpress
  • 沙河口网站建设土特产 网站源码
  • 石景山网站建设好的公司搜索引擎优化的例子
  • 磁县网站建设小程序开发哪家公司好