引言

当我们深入的学习Java的过程中,如果没有对数据结构做出深刻的了解的话,接下来的学习过程将会尤为的艰辛,但是当我们学习过了数据结构、清楚它的内核以后,在日后的学习过程中将会起到很大的帮助作用。因此今天给大家简单的讲解一下Java中常见的数据结构。

概述

  • 数据结构是计算机底层存储、组织数据的方式。是指数据相互之间是以什么方式排列在一起的
  • 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率
     

 常见数据结构:

  • 队列
  • 数组
  • 链表
  • 二叉树
  • 二叉查找树
  • 平衡二叉树
  • 红黑树

栈和队列

栈的执行特点:

后进先出,先进后出

队列的执行特点:

先进先出,后进后出

数据从后端进入队列模型的过程称为:入队列;

数据从前端离开队列模型的过程称为:出队列; 

数组

数组是一种查询快、增删慢的模型

查询速度快∶查询数据通过地址值和索引定位,查询任意数据耗时相同。(元素在内存中是连续存储的)
删除效率低:要将原始数据删除,同时后面每个数据前移
 添加效率极低:添加位置后的每个数据后移,再添加元素

链表 

链表(单向链表和双向链表)的特点:

链表中的元素是在内存中不连续存储的,每个元素节点包含数据值和下一个元素的地址
 链表查询慢:无论查询哪个数据都要从头开始找

链表增删相对快

//双链表 public class LinkedList<E> { transient Node<E> first; transient Node<E> last; private static class Node<E> { E item; Node<E> n; Node<E> p; Node(Node<E> p, E element, Node<E> n) { this.item = element; this.n = n; this.p = p; } } }


二叉树、二叉查找树 

 

java 先进先出堆先进后出栈 java先进先出数据结构_散列表

 二叉树特点

只能有一个根节点,每个节点最多支持2个直接子节点

节点的度:节点拥有的子树的个数,二叉树的度不大于2叶子节点度为o的节点,也称之为终端结点

高度:叶子结点的高度为1,叶子结点的父节点高度为2,以此类推,根节点的高度最高。

层:根节点在第一层,以此类推

兄弟节点︰拥有共同父节点的节点互称为兄弟节点

java 先进先出堆先进后出栈 java先进先出数据结构_java 先进先出堆先进后出栈_02

java 先进先出堆先进后出栈 java先进先出数据结构_散列表_03

 二叉查找树又称二叉排序树或者二叉搜索树

特点:

1,每一个节点上最多有两个子节点

2,左子树上所有节点的值都小于根节点的值

3,右子树上所有节点的值都大于根节点的值

目的:提高检索数据的性能

创作不易,给个三连

java 先进先出堆先进后出栈 java先进先出数据结构_散列表_04