列表 ArrayList

概述

重构思路

  1. size 表示表中数据数
  2. last数据位置为size-1
  3. 删除last时,返回last,只改动size
  4. 如果size等于容量,扩容并使用arraycopy
阅读更多

链表 Linked List

概述

理论上长度可以无限拓展

  1. 以节点的方式储存
  2. 每个节点包含data,next:指向下一个节点
  3. 各个节点不一定是在连续的储存位置
阅读更多

队列 Queue

概述

队列(Queue)是一个先进先出(FIFO:First In First Out)的有序表,可以由数组或者链表实现。
由链表实现的队列和List的区别在于,List可以在任意位置添加和删除元素,
而队列只有两个操作:1.把元素添加到队列末尾;2.从队列头部取出元素。

阅读更多

数据结构 简介

简介

数据结构是存储、组织数据的方式。它包含三方面的内容,逻辑关系、存储关系及操作。可分为线性结构和非线性结构。

线性结构

数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。
常用的线性结构有:线性表,栈,队列,双队列,串(一维数组)。

[稀疏数组]

存储结构

顺序存储结构:一组地址连续的存储单元依次存储线性表的各个数据元素
链式存储结构:一组任意的存储单元来存储线性表的数据元素,这些单元可以分散在内存中的任意位置

非线性结构

各个数据元素不再保持在一个线性序列中,每个数据元素可能与零个或者多个其他数据元素发生联系。
常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图