/datastructure

数据结构

Primary LanguageJava

线性结构

1.线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系。
2.线性结构有两种不同的存储结构,既顺序存储结构(数组)和链式存储结构(链表),顺序存储的线性表为顺序表,顺序表中的存储元素是连续的。
3.链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相连元素的地址信息。
4.线性结构常见的有 数组 队列 链表和栈。

非线性结构

1.非线性结构包括,二维数组,多维数组,广义表,树结构,图结构。

1.稀疏数组

2.队列

1.队列是一个有序列表,可以用数组或是链表来实现。
2.遵循先入先出的原则,既:先存入队列的数据,要先取出,后存入的要后取出。
3.数组队列
4.循环队列

3.链表

1.链表是以节点的方式来存储的 是链式存储。
2.每个节点包含data域,next域,指向下一个节点。
3.链表的各个节点不一定的是连续的。
4.链表分为带头节点的链表和不带头的链表。
5.单链表
6.双向链表
7.单向环形链表
8.约瑟夫问题

4.栈

1.栈是一先入后出(FILO First In Last Out)的有序列表
2.栈是限制线性表中的元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(TOP) 另一端为固定的一端,称为栈底
3.根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶。删除元素刚刚相反,最后放入的元素最先删除,最先放入的元素最后删除。
4.中缀表达式
5.逆波兰表达式
6.中缀表达式转后缀表达式
7.逆波兰表达式计算器

5.递归

1.递归就是方法调用自己,每次调用时传入不同的变量。
2.执行一个方法时,就创建一个新的受保护的独立空间(栈空间)
3.方法中的局部变量是独立的,不会相互影响,比如n变量。
4.递归必须向退出递归的条件逼近,否则就是无限递归,出现StackOverFlowError
5.当一个方法执行完毕,或者遇到return,就会返回,遵守谁调用,就将结果返回给谁,同时当方法执行完毕或者返回时,该方法就执行完毕。
6.谜宫问题
7.八皇后问题

6.排序算法

1.冒泡排序
2.选择排序
3.插入排序
4.希尔排序
5.快速排序
6.归并排序
7.基数排序
8.堆排序

7.查找算法

1.线性查找算法
2.二分查找算法
3.插值查找算法
4.斐波那契分值查找算法

8.哈希表

1.哈希表(散列表)

9.数结构基础部分

1.二叉树
2.顺序存储二叉树
3.线索化二叉树

10.数结构应用部分

1.赫夫曼树
2.赫夫曼编码
3.二叉排序树
4.平衡二叉树(AVL)