Golang实现二叉搜索树(BST)及其相关操作
介绍二叉查找树(英语:Binary Search Tree),也称为二叉查找树、有序二叉树(ordered binary tree)或排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树:若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值;若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值;任意节点的左、右子树也分别为二叉查...
介绍二叉查找树(英语:Binary Search Tree),也称为二叉查找树、有序二叉树(ordered binary tree)或排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树:若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值;若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值;任意节点的左、右子树也分别为二叉查...
介绍层序遍历,顾名思义,不难理解,就是一层一层地遍历Golang实现此处分为递归实现(DFS,深度优先算法)和迭代实现(BFS,广度优先算法)本文以Leetcode102题为例:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/递归实现(DFS)递归实现需要储存每层的级数实现起来主要分为以下几个步骤递归跳出条...
介绍前序遍历前序遍历首先访问根节点,然后遍历左子树,最后遍历右子树。上图的树的前序遍历顺序:1->2->4->5->7->8->3->6->9中序遍历中序遍历是先遍历左子树,然后访问根节点,然后遍历右子树。上图的树的前序遍历顺序:4->2->7->5->8->3->9->6后序遍历后序遍历是先遍历左子树...
队列介绍队列这玩意,貌似也没什么,就是一个先进先出FIFO(First Input First Output)的数据结构,主要分为顺序队列和循环队列。顺序队列顺序队列在入队过程中直接在队尾插入即可,时间复杂度为O(1),而在每次出队过程都需要将所有元素向前移位,此时时间复杂度为O(n),效率低下。循环队列循环队列则在出队过程中不需要移动元素,而是引入两个指针front和rear分别指向队头和...
栈介绍栈这个东西,也没啥,说白了就是先进后出(LIFO, Last In First Out)的一种数据结构,主要分为静态栈和动态栈,静态栈一般由数组实现,而动态栈则通过链表实现,本文将演示两种栈的创建及其相关操作。本文仅为个人学习的记录,仅供参考。相关操作介绍元素的入栈元素的出栈返回栈的长度判断是否为空栈栈的生成栈的清空Java实现静态栈package stack; public cla...