美文网首页
使用递归、二叉树、实现排序

使用递归、二叉树、实现排序

作者: 观镜人 | 来源:发表于2017-02-05 15:04 被阅读0次

使用递归方式实现二叉树,再通过二叉树的结构特点对切片进行排序。

func main() {
    sli := []int{1, 3, 7, 2, 4, 8, 6, 0, 5, 9}
    var tree *tree
    for _, v := range sli {
        tree = AddTree(tree, v)
    }
    sli2 := []int{}
    sli2 = SortTree(tree, sli2)
    fmt.Println(sli2)

}

//中序插入
func AddTree(t *tree, v int) *tree {

    if t == nil {
        t = new(tree)
        t.data = v

    } else if t.data < v {
        t.rTree = AddTree(t.rTree, v)

    } else {
        t.lTree = AddTree(t.lTree, v)

    }

    return t

}

//中序遍历
func SortTree(tree *tree, result []int) []int {

    if tree.lTree != nil {
        result = SortTree(tree.lTree, result)

    }

    result = append(result, tree.data)

    if tree.rTree != nil {
        result = SortTree(tree.rTree, result)
    }
    return result

}

type tree struct {
    data         int
    lTree, rTree *tree
}

当然了,排序还有很多种方法...二叉树使用场景多用在目录结构、爬虫爬取到的URL等...本例只为练习递归思维。

相关文章

  • 使用递归、二叉树、实现排序

    使用递归方式实现二叉树,再通过二叉树的结构特点对切片进行排序。 当然了,排序还有很多种方法...二叉树使用场景多用...

  • 算法之二叉树

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

  • 面试题

    面试题 二叉树 非递归实现二叉树遍历 节点: 前序遍历 中序遍历 后序遍历 排序 快速排序 其他问题 算法题 给一...

  • Java二叉树的遍历

    Java二叉树的遍历 利用递归和非递归实现二叉树的先序,中序,后序遍历以及使用队列实现二叉树的层次遍历

  • 数据结构之二叉树

    数据结构之二叉树 递归构造二叉树 二叉树节点: 递归构造: 图示: 递归遍历 递归实现先序遍历 图示: 递归实现中...

  • Tree

    二叉树的深度优先遍历使用递归实现的时候又叫递归遍历,递归就是函数调用自己,同时需要明确递归的出口。递归遍历可以分为...

  • python实现二叉树

    递归实现二叉树 堆实现二叉树前序遍历

  • 2020-08-21 算法合集

    1. 冒泡排序 2.选择排序 3. 插入排序 4. 希尔排序 5. 归并排序(递归实现) 6. 快速排序(递归实现...

  • 多线程归并排序 go实现

    特性 线程数可以调整 混合使用归并排序的递归版和非递归版实现减少递归调用损耗 线程利用率高 不足:归并排序的mer...

  • 算法设计与分析——5.排序与树结构

    5.1 引言 5.2 递归与排序 5.2.1 选择排序 代码 5.1 选择排序的递归实现 代码 5.2 选择排序...

网友评论

      本文标题:使用递归、二叉树、实现排序

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