美文网首页
swift先序创建二叉树

swift先序创建二叉树

作者: 前年的邂逅_Jerry | 来源:发表于2019-10-29 22:50 被阅读0次

如先序遍历得到如下字符串:ABDE##F##G##HI###
对应二叉树如图一所示:


图一.png

class Node{
    var val : Character
    var left : Node?
    var right : Node?
    init(_ val : Character) {
        self.val = val
        self.left = nil
        self.right = nil
    }
}

struct test {
    static var index = 0
}

class NodeList {
    var root : Node?
    func creatPreBt(_ arr : [Character]) -> Node?{
        if test.index >= arr.count{
            return nil
        }
        let val = arr[test.index]
        test.index += 1
        var node : Node? = nil
        if val != "#"{
            node = Node(val)
            node?.left = creatPreBt(arr)
            node?.right = creatPreBt(arr)
        }
        return node
    }
    func preOrder(_ node : Node?) -> [Character] {
        var res = [Character]()
        preOrderHelper(node,arr: &res)
        return res
    }
    func preOrderHelper(_ node : Node? , arr : inout [Character]) {
        if let node = node{
            arr.append(node.val)
            preOrderHelper(node.left ,arr:  &arr)
            preOrderHelper(node.right ,arr:  &arr)
        }
    }
}

        let arr = Array(String("ABDE##F##G##HI###"))
        let list = NodeList()
        list.root = list.creatPreBt(arr)
        print(list.preOrder(list.root))

先序打印结果为:

["E", "D", "F", "B", "G", "A", "I", "H"]

相关文章

  • 记一次Tree的遍历

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

  • 二叉树 基础操作

    二叉树的使用 二叉树结构 先序创建二叉树 DFS 先序遍历二叉树 中序遍历二叉树 后序遍历二叉树 BFS 层次遍历...

  • 二叉树的基本操作

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

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

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

  • Java 二叉树

    创建一个二叉树对象 build 一个二叉树 遍历 先序遍历 后序遍历 中序遍历 先序遍历的结果为:0 1 3...

  • swift先序创建二叉树

    如先序遍历得到如下字符串:ABDE##F##G##HI###对应二叉树如图一所示: 先序打印结果为:

  • 2.常用算法数据结构编程-二叉树子系统

    流程 1.创建二叉树的结构体节点2.创建一颗二叉树3.就是显示二叉树,求关于二叉树的相关数据(先序遍历,中序遍历,...

  • Swift-二叉树创建

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

  • 数据结构之二叉树2

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

  • 算法之二叉树

    二叉树之C++实现 创建二叉树 复制二叉树 先序遍历 递归实现 非递归实现 中序遍历 递归实现 非递归实现 后序遍...

网友评论

      本文标题:swift先序创建二叉树

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