数据结构和算法
LengDanRan
生命在于运动,生活在于平衡。
小主致力学习,仍在不断进步。
欢迎关注个人公众号【然Coder】
Java资源分享+技术文章,持续更新推送
如有问题,欢迎【然Coder】私信哦
展开
-
二叉树的四种遍历:先序遍历、中序遍历、后序遍历、层次遍历
树结构public class Tree { Node root; public Tree(Node node) { this.root = node; } ... private static class Node { Node left; Node right; int data; Node(int data) { this.data = data;原创 2020-08-30 16:03:04 · 306 阅读 · 0 评论 -
带你手写红黑树——500行代码
手写一个红黑树既然红黑树如此的不友好,那么我就来手写一个红黑树,来细致地探究一下该如何实现一个属于自己的红黑树,这样自己也好有个底_。500+行代码实现一个红黑树:树的设计public class RBTree<Key extends Comparable<Key>, Value> { /****************颜色常量***************************/ private static final boolean RED = tr原创 2020-08-10 17:33:43 · 4883 阅读 · 0 评论 -
二叉树——二叉查找树和红黑树
二叉树二叉树,是一个非常重要的数据结构,在日常的开发中起着很重要的作用,它也衍生出来的各种高效的复杂的数据结构,为我们解决问题提供了高效的解决方案。二叉树,它是由各个数据节点和左右链接构成的一种类似树的数据结构。一棵二叉树,我们只需要知道根节点,便可以访问到树中各个节点;同时树中的每一个节点,都有自身包装的数据和指向它的左右子节点的链接,如果不存在子节点,为null值,每一个节点(除去根节点)都有一个父亲节点。节点(TreeNode)的数据结构private class TreeNode {原创 2020-08-10 16:00:46 · 1856 阅读 · 1 评论 -
初级排序算法(选择、插入、希尔)
初级排序算法选择排序选择排序,就是每次都从待排序序列中获得关心的值的最小的项,并将其与第一个项交换,依次循环,直到所有的项都排序完成。/** *功能描述:传入一个 int 类型的数组,进行排序,flag : true 升序,false 降序 *@param arr the array that needs to be sorted. *@author Jason *Date 2020-07-28 16:32 */ private static int [] selectSort(int原创 2020-07-30 18:55:33 · 286 阅读 · 0 评论 -
带你手写一个栈,顺序表,链表,双栈表达式计算
栈的手写实现在之前的文章中提到过,栈的实现方式有比较多的方式,主要有 顺序表和 链表两种方式,在带你手写一个栈之前,先来看看这两种基本的数据结构。顺序表顺序表的底层是依靠数组实现的,由于数组具有高效的索引,我们可以在给定索引下标的情况下在时间复杂度为 O(1)的条件下,得到需要的数据,具有高效的随机访问性能。所以一般对于需要高效访问的需求,我们一般考虑使用顺序表这种数据结构。但是对于这种数据结构,在进行元素的增删时候,性能就比较低了,原因是:以插入为例,数组首先会确定需要操作的元素,这易操作,但原创 2020-07-22 16:00:40 · 355 阅读 · 0 评论 -
数据结构与算法——背包、队列、栈简介
背包(Bag)简介背包(Bag)是一种不支持从中删除元素的一种数据结构——这种数据结构的主要用处就是收集元素,并且提供遍历所有集合中的元素的方法。他的迭代顺序是随机的,并不确定。APIBagpublic class Bag<Item> implements Iterable<Item> { Bag(); //创建一个背包 void add(Item item); //添加元素 boolean isEmpty(); //是否为空背包 int size()原创 2020-07-09 18:57:32 · 1083 阅读 · 0 评论