数据结构
渴望成长的一个小白
这个作者很懒,什么都没留下…
展开
-
数据结构之Trie的相关
Trie的相关情况 适用于字符串的相关查询,查询只与字符串的长度相关。 Trie的结构情况 里面有一个内部的节点,如下,考录到用map主要是子节点的个数不是很确定。 private class Node{ boolean isWord; Map<Character,Node> next; public Node(boolean isW...原创 2020-05-03 16:22:56 · 62 阅读 · 0 评论 -
数据结构之线段树
定义 线段树是一种二叉搜索树,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 不一定是满二叉树,也不一定是完全二叉树,但是一定是平衡二叉树,堆也是平衡二叉树可以用数组表示,将线段是看作满二叉树。如果有n个需要表示,需要数组的长度为2*n ...原创 2020-05-03 14:59:19 · 98 阅读 · 0 评论 -
优先级队列
和普通队列的区别 主要就是出队和看下队首元素这两个方法。 主要是使用堆来进行优先级队列的实现。 性质: 二叉堆是一个完全二叉树 堆中某个节点的值总是不大于其父节点的值。 此时这时候的堆叫做最大堆。 可以用数组来描述二叉堆,这是由于第一个性质 此时会有很多的性质。 一个节点的父亲节点和子节点通过关系来进行描述。从1开始标会比较方便。 ...原创 2020-05-02 22:52:02 · 106 阅读 · 0 评论 -
映射(map)
基本概念 存储(键,值)数据对的数据结构(Key, Value)。 根据键(Key)寻找值,(Value)。 此时node中需要存储key和value两个数值 class Node { K key; V value; Node left; Node right; public Node(K key ,V value...原创 2020-05-02 17:13:45 · 203 阅读 · 0 评论 -
树结构之二分搜索树
二叉树 里面有有一个节点,和链表不同的是有两个节点引用 class Node{ int e; Node left; Node right; } 二叉树和链表都具有天然的递归结构,但是由于链表具有线性,使用循环也能处理,但是二叉树是非线性,使用递归进行处理会更加方便 二分搜索树 二分搜索树首先是一个二叉树。 二分搜索树的节点值大于其左子树...原创 2020-05-02 13:46:56 · 486 阅读 · 0 评论 -
数据结构之链表学习
链表 数据存储在节点中 另一部分存引用 定义链表的内部节点 public class Node { private E e; private Node next; } 最后一个节点的next存储的为空,丧失了随机访问的能力,适应索引没有语义的情况。链表的添加元素 链表的增加节点(不带头节点) public class LinkList<E> { //...原创 2020-05-01 21:31:58 · 165 阅读 · 0 评论 -
数据结构之栈和队列
目录栈的相关知识数组实现栈队列的相关知识数组实现队列 栈的相关知识 是一种后进先出的数据。LIFO 栈的相关应用 撤销功能 程序调用的系统栈 数组实现栈 常用的操作 void push(E e) E pop() //看一下栈顶的元素 E peek() int getSize() boolean isEmpty() 数组实现的方式 package array; public class A...原创 2020-05-01 16:53:31 · 96 阅读 · 0 评论 -
数据结构相关学习(数组)
数组 数组中有一个很重要的概念就是索引,注意索引是从0开始。根据索引可以很快的访问到需要访问的数据。 数组的声明 int[] array = new int[10]; int[] array1 = {1,2,3}; 数组的二次封装 数组的最大优点就是快速查询,使用数组的时候最好的就是有语义的情况。并非所有的语义都适合数字的索引,如身份证号就是太大的例子,类似于arraylist。 数据结构常...原创 2020-05-01 11:07:42 · 242 阅读 · 1 评论