数据: 能被输入到计算机中,且能被计算机处理的符号的集合 。
数据元素:数据集合中的一个个体。
数据项:数据的不可分割的最小单位。
数据类型:在一种程序设计语言中,变量所具有的数据种类。
逻辑结构:数据之间的相互关系。
存储结构:数据在计算机中的表示。
算法五个特性: 有穷性、确定性、可行性、输入、输出 。
算法设计要求:正确性、可读性、健壮性、高效率与低存储量需求。
时间复杂度:算法的执行时间与原操作执行次数之和成正比。时间复杂度有小到大:O(1)、O(logn)、O(n)、O(nlogn)、O(n2)、O(n3)。幂次时间复杂度有小到大O(2n)、O(n!)、O(n^n)。
空间复杂度:若输入数据所占空间只取决于问题本身,和算法无关,则只需要分析除输入和程序之外的辅助变量所占额外空间。
线性表是一种典型的线性结构。头结点无前驱有一个后继,尾节点无后继有一个前驱。
线性表的顺序存储结构:把线性表的结点按逻辑顺序依次存放在一组地址连续的存储单元里。
? 插入:插入新结点,之后结点后移。平均时间复杂度:O(n)
? 删除:删除节点,之后结点前移。平均时间复杂度:O(n)
随机存取:访问时可以按下标随机访问 。
链式表:用一组任意的存储单元来依次存放线性表的结点,这组存储单元即可以是连续的,也可以是不连续的,甚至是零散分布在内存中的任意位置上的。
? 每个结点的存储地址是存放在其前趋结点next域中。
? 查找:只能从链表的头指针出发,顺链域next逐个结点往下搜索,直到搜索到第i个结点为止。链表 不是随机存取结构。
? 插入:先找到表的第i-1个的存储位置,然后插入。新结点先连后继,再连前驱。
? 删除:首先找到第i-1个的存储位置p。然后令p–>next指向第i个的直接后继结点,即把第i个从链上摘下。最后释放结点ai的空间。
原文:https://www.cnblogs.com/feifei0211/p/12589719.html