二叉树的创建遍历删除求高度

Posted feliz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树的创建遍历删除求高度相关的知识,希望对你有一定的参考价值。

创建> 需要给定一个root的key,所有小于这个key的放到左边,大于key的放到右边, 比如vector<int> tree = 5,2,7,1,9,3,8,最后的树:

           5
          /          2   7
        /\   /       1  3  8 9

实现:

TreeNode* AddNode(int key, int direction, TreeNode* root)
 
     if(direction == 0)//左孩子
     
         if(root->leftChild == NULL)//找到对应的叶节点插入
             root->leftChild = new binaryTreeNode<T>(key);
         
         else
             root->leftChild = AddNode(key, direction, root->leftChild);
         
     
     else//右孩子
     
         if (root->rightChild == NULL) //找到相应的叶节点插入
             root->rightChild = new binaryTreeNode<T>(key);
         
         else
             root->rightChild = AddNode(key, direction, root->rightChild);
         
     
     
     return root;

//vector[0]作为root
TreeNode* createTree(vector<int>& tree)
      int nodes = tree.length();
      int pos = 0;
      if(nodes<1) return NULL;
      TreeNode* root = new TreeNode(tree[pos++]);

      while(pos < nodes)
            if(tree[pos]<tree[0])
                  root->left = AddNode(tree[pos++], 0, root);
            else
                  root->right = AddNode(tree[pos++], 1, root);
      
      return root;

  

  

以上是关于二叉树的创建遍历删除求高度的主要内容,如果未能解决你的问题,请参考以下文章

二叉树的创建和遍历

急!二叉树的存储结构,并完成:建立、查找、计算结点数、求高度、三种遍历方式

二叉树的层序遍历二叉树叶节点输出算法求二叉树的高度层序创建一棵二叉树

非递归遍历求二叉树的高度

数据结构 二叉树的简单理解和代码实现

二叉树有关习题整理543二叉树的直径 606根据二叉树创建字符串 KY11二叉树遍历 - 牛客105从前序遍历与中序遍历构造二叉树