循环单链表,首尾连在一起
双向链表,一个块有指向前面的指针和后面的指针,两个。
- 枚举(Enumeration)
- 位集合(BitSet)
- 向量(Vector)
- 栈(Stack)
- 字典(Dictionary)
- 哈希表(Hashtable)
- 属性 java 7个数据结构
数组是典型的顺序存储,链表是非顺序存储
栈(先进后出,一头开)和队列(先进先出,两头开,一端插入,一端删除)都可以用数组和链表实现。
循环队列,首尾相连;
动态链表是像C语言有自带指针实现的链表,静态链表是自己定义实现链表
栈和队列特殊在于限制了其插入和删除等操作的位置。
递归算法的主要结构:(只要有相似的操作步骤就可以递归)
函数()内形参,
if判断结构{里放最底层,开始的比如从1开始,像是盖房子最底层的那个砖;
else 里才放循环的函数,也可以掉换else和if里的内容,是相对的
return 返回;
long fact(int n)
{
if(n==1)
return 1;
else
return n+fact(n-1);
}
递归是从后往前执行,循环是从前往后执行‘递归好理解,但占空间大,循环不好理解但占空间小
静态链表是自己带指针实现的,如C语言;
子串是主串中连续的;空格串是由空格组成的串;定长顺序串,堆串(动态分配,长度不一定),块链串(指针)和链表
相似,只是一个data域中存放的数据个数不一样;文本编辑器就是串的应用;字符串就是一种数据结构,只是它
的存储方式有这三种;
三角矩阵(方阵的上三角或下三角全为0);带状矩阵(若干条对角线含有非0元素,像好几条斜线);矩阵的压缩存储是将矩阵的
非0规律的元素的下标i和j用函数一个自变量映射起来;
数组,广义表(其单位可以是一个数据,也可以是个子表,即多个数据),第一个元素叫表头,其余的叫表尾;
指针运算是赋它的值;要画图;层次遍历就是一行一行的遍历;最小生成树,就是权值之和最小;
冒泡:从左一个大的一个大的冒,遇到比他更大的停;
快排:两边各一个向上的箭头,表示min和max,一次移一下一边向中间;
选择:和冒泡不同的是比较而不移动,最后把最大的移到底;
堆排序:相比树形排序是每层都是原始数据,找到一个,剔除一个,顺便把那个子堆整理好;