C++创建二叉树,C++实现二叉树

  C++创建二叉树,C++实现二叉树

  永远的神干货盘点

  原文链接

  使用C构建一个二叉树并复制、输出。

  #包含标准视频

  #包含标准库

  //#包含cstdio

  #包含矢量

  #包括输入输出流

  #包括堆栈

  #包含标准库函数

  #包含字符串

  使用命名空间标准

  struct TreeNode //定义二叉树

  int val//当前节点值用英国压力单位表示

  struct TreeNode * left//指向左子树的指针用左边的表示

  struct TreeNode * right//指向右子树的指针用正确表示

  TreeNode(int x) :val(x),left(NULL),right(NULL) { } //初始化当前结点值为x,左右子树为空

  //创建树

  TreeNode* insert(TreeNode* tree,int value)

  TreeNode * node=(TreeNode *)malloc(sizeof(TreeNode));//创建一个节点

  节点值=值;//初始化节点//malloc函数可以分配长度

  node-left=NULL;

  node-right=NULL;

  TreeNode * temp=tree//从树根开始

  while (temp!=空)

  如果(值临时值)//小于根节点就进左子树

  if (temp- left==NULL)

  左侧温度=节点;//新插入的数为临时雇员的左子树

  返回树;

  else //下一轮判断

  temp=temp-left;

  else //否则进右子树

  if (temp- right==NULL)

  右侧温度=节点;//新插入的数为临时雇员的右子树

  返回树;

  else //下一轮判断

  temp=temp-right;

  返回树;

  //************* 输出图形二叉树*************

  void output_impl(TreeNode* n,bool left,字符串常量缩进)

  如果(n-右)

  output_impl(n- right,false,indent (left? : ));

  标准输出缩进;

  cout(左?\\ : /);

  cout -;

  cout n-val endl;

  如果(n-左)

  output_impl(n- left,true,indent (left? : ));

  空的输出(TreeNode* root)

  如果(根右)

  output_impl(root- right,false, );

  标准输出根值恩德尔

  如果(左根)

  output_impl(root- left,true, );

  系统("暂停");

  //******************************************

  void CopyBiTree(TreeNode* root,TreeNode* newroot) //复制二叉树

  if (root==nullptr)

  返回;

  其他

  newroot- val=root-

  如果(根-左!=nullptr)

  newroot- left=新的TreeNode(0);

  如果(root-右!=nullptr)

  newroot- right=新的TreeNode(0);

  CopyBiTree(左根,新左根);

  CopyBiTree(右根,新右根);

  //输出(新根);

  //====================测试代码====================

  int main()

  TreeNode * tree=new TreeNode(10);//树的根节点

  TreeNode * treeresult

  treeresult=insert(tree,6);//输入n个数并创建这个树

  treeresult=insert(tree,4);

  treeresult=insert(tree,8);

  treeresult=insert(tree,14);

  treeresult=insert(tree,12);

  treeresult=insert(tree,16);

  TreeNode * mirroot=new TreeNode(10);

  CopyBiTree(treeresult,mirroot);//复制二叉树

  输出(树形结果);//输出原二叉树

  输出(mirroot);//输出复制的二叉树

  }

  学习更多编程知识,请关注我的公众号:

  代码的路

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 二叉树深度遍历算法,多叉树的深度优先遍历
  • 如果希望按照非递减顺序访问二叉树所有节点,二叉树中至少包含一个节点
  • 二叉查找树镜像,镜像对称二叉树
  • 完全二叉树的先序遍历,请写出该二叉树的先序和层次遍历的序列
  • 二叉搜索树和二叉查找树,二叉树 二叉搜索树区别
  • 二叉树查找第k个最小元素,找出二叉搜索树第k小的节点
  • 如果f是由有序树t转换而来的二叉树,
  • 判断二叉树是否是平衡二叉树,b+树是不是平衡二叉树
  • 二叉链表实现完全二叉树,采用三叉链表存储二叉树
  • 二叉树的三种遍历方式是什么,二叉树的三种遍历方式是
  • java二叉树排序算法,二叉排序树的实现
  • java二叉树的遍历算法代码,编程实现二叉树的遍历算法
  • java二叉树删除,二叉树查找算法java
  • java二叉树查找,二叉搜索树的定义
  • 留言与评论(共有 条评论)
       
    验证码: