美文网首页
Swift-二叉树创建

Swift-二叉树创建

作者: FlyElephant | 来源:发表于2017-05-13 10:41 被阅读227次

题目:根据二叉树的先序遍历结果构建二叉树.

树.jpg

创建二叉树
<pre><code>` func createTreeByPreOrder(root:inout TreeNode?,listData:[String]) {

    rootIndex = rootIndex + 1
    
    if rootIndex >= listData.count {
        return
    }
    
    let data:String = listData[rootIndex] as String
    
    if data == "#" {
        root = nil
    } else {
        root = TreeNode()
        root?.data = data
        createTreeByPreOrder(root: &root!.leftChild, listData: listData)
        createTreeByPreOrder(root: &root!.rightChild, listData: listData)
    }
    
}`</code></pre>

层次遍历二叉树
<pre><code>` func treeLevelOrder(root:TreeNode?) {

    if root == nil {
        return
    }
    
    var arr:[TreeNode] = []
    arr.append(root!)
    
    while arr.count > 0 {
        
        let firstNode:TreeNode = arr[0]
        
        if firstNode.data != nil {
            print("\(firstNode.data!)\t", terminator: "")
            arr.removeFirst()
        }
        
        
        if firstNode.leftChild != nil {
            arr.append(firstNode.leftChild!)
        }
        
        
        if firstNode.rightChild != nil {
            arr.append(firstNode.rightChild!)
        }

    }
    
    print("")
}`</code></pre>

测试代码:
<pre><code>`var tree:Tree = Tree()
var preListData:[String] = ["1","2","4","#","#","5","7","#","#","#","3","#","6","#","#"]
var preOrderRoot:TreeNode?

tree.createTreeByPreOrder(root: &preOrderRoot, listData: preListData)
tree.treeLevelOrder(root: preOrderRoot)
print("FlyElephant")`</code></pre>

FlyElephant.png

相关文章

  • Swift-二叉树创建

    题目:根据二叉树的先序遍历结果构建二叉树. 创建二叉树 ` func createTreeByPreOrd...

  • 数据结构之二叉树2

    二叉树的创建 二叉树的创建用到了辅助队列,通过辅助队列来创建二叉树; 二叉树的遍历 前(先)序遍历 1、递归实现 ...

  • 线索二叉树操作

    树节点 创建中序线索二叉树 遍历中序线索二叉树 创建前序线索二叉树 遍历前序线索二叉树 参考:https://bl...

  • 二叉树的递归遍历+非递归遍历,Swift实现

    定义二叉树模型 创建二叉树: 创建的二叉树如下: 这个二叉树的遍历分别为: 先序遍历: 124536 中序遍历:4...

  • 使用PHP创建二叉树

    创建二叉树

  • 二叉树相关

    二叉树相关问题 静态创建二叉树 1.首先建立一个树节点,节点有值,左节点和右节点 2.想要创建的二叉树 3.创建二...

  • 二叉树总结(Python)

    一、创建 二叉树结点类的定义: 使用结点类可以直接创建一颗小型的二叉树做测试用: 1、从列表创建一颗二叉树 假设列...

  • 二叉树的创建和遍历

    二叉树的创建和遍历 如图所示的二叉树,我们用C++来实现其创建和...

  • 记一次Tree的遍历

    统计利用先序遍历创建的二叉树的深度 利用先序递归遍历算法创建二叉树并计算该二叉树的深度。先序递归遍历建立二叉树的方...

  • 二叉树的基本操作

    一、基本内容 二叉树的创建(先顺遍历的方法) 二叉树的先序遍历 二叉树的中序遍历 二叉树的后序遍历 哈夫曼树的创建...

网友评论

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

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