任何数据结构都具备三个基本运算:插入、删除和查找。
数据的逻辑结构与各数据元素在计算机中如何存储有关。
如果数据元素值发生改变,则数据的逻辑结构也随之改变。
逻辑结构不相同的数据,必须采用不同的存储方法来储存。
数据的逻辑结构是指数据元素的各数据项之间的逻辑关系。
数据结构、数据元素、数据项在计算机中的表示分别称为存储结构、节点和数据域。
数据的物理结构是指数据在计算机内的实际的存储形式。
顺序存储方式的特点是存储密度大且插入、删除运算效率高。
顺序存储结构属于静态结构而链式存储结构属于动态结构。
与顺序表相比,在链表中顺序访问所有节点,其算法的效率比较低。
从长度为n的顺序表中删除任何一个元素,时间复杂度都是O(n)
向顺序表中插入一个元素,平均要移动大约一半的元素。
如果单链表带有头结点,则插入操作永远不会改变头节点指针的值。
在循环单链表中,任何一个节点的指针域都不可能为空。
由于顺序存储结构要求连续的存储区域,所以再存储管理上不够灵活。
对于单链表来说,只有从头节点开始才能扫描表中全部节点
对于循环单链表来说,从表中任一节点出发都能扫描整个链表
在n个元素连续进栈后,他们的出栈顺序和进栈顺序一定正好相反。
若s[m]表示顺序栈的存储空间,则对栈的进栈、出栈操作最多只能进行m次。
对顺序栈进行进栈、出栈操作,不涉及元素的前、后移动问题。
环形队列中有多少元素,可以根据队首指针和队尾指针的值来计算。
无论是顺序队列,还是链式队列,插入、删除运算的时间复杂度都是O(1)。
队列若用不带头节点的非循环单链表来表示链式队列,则可以用“队首指针和
队尾指针的值相等”作为空队标志。
栈和队列的存储方式既可以是顺序方式,也可以是链式方式
当待排序序列初始有序时,简单选择排序的时间复杂性为O(n)。
递归算法的执行效率比功能相同的非递归算法的执行效率高