1.列表:
说明:
一种最自然的数据组织方式
随意队列,元素不多
定义:
有序的数据,每个数据项称为元素。元素的数量收内存控制
不包含任何元素的列表为空列表
迭代器:
不必关心底层数据结构
代码实现
2.栈
概念
特殊的列表
搞笑的数据结构,只能在栈顶删除或者增加,操作很快
定义
只能从一端访问一端为栈顶(反之栈底)
后入先出的数据结构
插入元素,成为进栈,压栈,入栈
代码实现
3.队列
概念
队列只能操作队首或者队尾
队列增加元素只能从队尾入,出队只能队首出
先入先出的数据结构
如果有特殊情况则为优先队列,可以不用遵守先入先出的原则
代码实现
优先队列 为元素添加权重
链表
概念
由一系列节点组成的集合,每一个节点都是用一个对象的引用
散列表
关键概念定义
1.数组长度是预先设定的,可以随时增加,所有元素根据和钙元素对应的键,保存数组特定位置
2.即使使用高效的散列函数,仍然存在两个键值相同的情况,这种现象称为碰撞
3.数组的长度应该是一个质数,所有的策略都基于碰撞
4.开链法:两个键相同保存位置一样,开辟第二数组,也称第二个数组为链
5.线性探测法属于开放寻址散列,查找散列位置,如果当前位置没有继续寻找下一个位置。存储数据较大较合适。数组大小>=1.5*数据(开链法),数组大小>=2*数据(线性探测法)
代码实现
集合
不允许有相同的成员
空集,全集,子集
交集,并集,补集(设S是一个集合,A是S的一个子集,由S中所有不属于A的元素组成的集合,叫做子集A在S中的绝对补集)
代码实现
二叉树:
1.父节点,子节点, 叶子结点(没有子节点),深度(层数)
2.二叉树有且最多有两个子节点,并且左节点小于右节点
3.