1、概述
数据结构(data structure):是计算机专业一门独立学科,主要研究数据的逻辑结构和存贮结构及数据之间的关系
逻辑结构:主要用4个 -- 集合、线性结构、树(元素之间构建的是层次关系)、图(网状关系)
**集合:**一个存放数据的容器(第3章研究)
**线性结构:**除第一个元素外,每一个元素只有一个前驱,除最后一个元素外,每一个元素只有一个后驱;
线性表、栈(特点:先进后出)、队列
存贮结构:数据在磁盘中如何存贮;
顺序存贮(数据存放在磁盘连续的空间中);
链式存贮(数据存放在磁盘的任何位置),单向链式存贮(单链表)、双向链式存贮(双链表)、循环链式存贮(循环链表)
2、线性表
基于 数组 实现线性结构 (用数组存放数据,并保持元素之间是一个线性关系)
编写线性结构的数据结构
public void insert(int i,Object data); //添加到线性表指定的位置;
public void append(Object data) ;//追加到线性表的末尾;
public void remove(int i);
public void update(int i,Object data);//i为下标 ;
public Object get(int i);
public Object[] list();
public int size(); //线性表元素数量;
public boolean isEmpty();//线性表是否为空;
总结:对数据常见操作:检索,插入,删除,更新,排序
3、栈(stack)
SUN在JDK中已实现了设计 --- java.util.Stack类
public void push(Object data);
public Object pop();
public Object seek();
public int size();
public boolean isEmpty();
4、队列(queue)
队列特点:先进先出(FIFO)
SUN在JDK中已实现了设计 --- java.util.Queue阶列接口 ,其中LinkedList类是Queue接口的一个实现类
boolean offer(E e); //添加数据 入队
Object poll(); //删除 出队
Object peek();//返回队列第一次元素(不删)
int size();
boolean isEmpty();
5、算法
检索:遍历 、二分查找(对一个排好序 序列)
排序:4种排序算法(冒泡排序 选择排序 插入排序 快速排序)