数据结构
四类基本结构:
1、集合:结构中元素同属一种类型
2、线性结构:结构中元素一对一
3、树型结构:结构中元素一对多
4、图状或网状:结构中元素多对多
算法:
1、有穷性:时间有穷
2、确定性:指令确定
3、可行性:操作有限
4、输入:0或多个
5、输出:一或多个
算法设计要求:
1、正确性:答案正确
2、可读性:易于理解
3、健壮性:非法数据处理
4、高效和低存储量需求:执行时间和最大存储空间
线性表的顺序存储结构:
数组:物理地址连续,增、删时间复杂度为o(n)
线性表的链式存储结构:
链表:逻辑地址连续,查找时只能从头部开始,因此不是随机存取结构。
不带头节点的链表:
链表指针指向第一个元素的地址,如果操作第一个元素(增删),则需要修改链表指针;
链表空时头指针为null,
带头节点的链表:
链表指针指向头节点,操作第一个元素是无需修改链表指针。
链表空时头指针指向头节点
算法:
1、查找链表倒数第k个元素:
q,p指向头,count=0,当count