美文网首页算法
Swift-创建二叉查找树

Swift-创建二叉查找树

作者: FlyElephant | 来源:发表于2017-05-13 12:19 被阅读8次

题目:给定一个有序整数数组,元素各不相同且按照升序排列,编写一个算法,创建一个高度最小的二叉查找树.二叉查找树是指对于任意一个结点,左边的结点均小于它,右边的结点均大于它.

核心代码:
<pre><code>` func createMinBST(arr:[Int],start:Int,end:Int) -> TreeNode? {

    if arr.count == 0 {
        return nil
    }
    
    if start < 0 || end < 0 {
        return nil
    }
    
    if start > end {
        return nil
    }
    
    let mid:Int = (start + end) / 2
    
    let treeNode:TreeNode = TreeNode()
    treeNode.data = "\(arr[mid])"
    treeNode.leftChild = createMinBST(arr: arr, start: start, end: mid - 1)
    treeNode.rightChild = createMinBST(arr: arr, start: mid + 1, end: end)
    
    return treeNode
}`</code></pre>

测试代码:
<pre><code>var binarySearchTree:BinarySearchTree = BinarySearchTree() var searchData:[Int] = [1,2,3,4,5,6,7] var searchNode:TreeNode? = binarySearchTree.createMinBST(arr: searchData, start: 0, end: searchData.count - 1) tree.treeLevelOrder(root: searchNode) print("FlyElephant")</code></pre>

FlyElephant.png

相关文章

  • Swift-创建二叉查找树

    题目:给定一个有序整数数组,元素各不相同且按照升序排列,编写一个算法,创建一个高度最小的二叉查找树.二叉查找树是指...

  • 极客时间数据结构与算法之美笔记25~26

    二叉树到二叉查找树,是为了查找数据的效率接近logN。 二叉查找树到平衡二叉查找树,是为了防止二叉查找树沦为链表。...

  • 二叉查找树

    1)二叉查找树是什么?2)二叉查找树的插入、删除、查找?3)Go代码实现 一、二叉查找树是什么?二叉查找树(BST...

  • swift 二叉树

    二叉树 创建二叉查找树 前序 中序 后序 遍历(递归/非递归) 深度 判断是否为二叉平衡树 判断是否为二叉平衡树 ...

  • 红黑树

    红黑树的本质就是一棵二叉查找树,所以先从二叉查找树来了解起。 二叉查找树 二叉查找树又称有序二叉树,具有以下特性:...

  • 二叉查找树

    二叉查找树,又称二叉搜索树 二叉查找树也称为有序二叉查找树,满足二叉查找树的一般性质,是指一棵空树具有如下性质: ...

  • 99-数据结构和算法

    难点:二叉树的遍历 红黑树 图的遍历 二叉查找树二叉查找树(binary search tree),二叉查找树在二...

  • 108. Convert Sorted Array to Bin

    根据已排序数组创建平衡二叉查找树 需要认识到,平衡二叉查找树的中序遍历即为有序数组。 递归解法:

  • 11-二叉查找树

    二叉查找树 1.什么是二叉查找树? 二叉查找树是一种支持数据动态的插入,删除,查找的数据结构。 2.二叉查找树的设...

  • 17张图带你解析红黑树的原理!保证你能看懂!

    二叉查找树 由于红黑树本质上就是一棵二叉查找树,所以在了解红黑树之前,咱们先来看下二叉查找树。 二叉查找树(Bin...

网友评论

    本文标题:Swift-创建二叉查找树

    本文链接:https://www.haomeiwen.com/subject/xvdxxxtx.html