随机存取、顺序存取、随机存储和顺序存储概念辨析:
存取结构:分为随机存取和非随机存取(又称顺序存取)。
1、随机存取:就是直接存取,可以通过下标直接访问的那种数据结构,与存储位置无关,例如数组。存取第N个数据时,不需要访问前(N-1)个数据,直接对第N个数据操作 (array)。
2、顺序存取:即非随机存取。存取第N个数据时,必须先访问前(N-1)个数据 (list),不能通过下标访问,只能按照存储顺序存取,与存储位置有关,例如链表。
存储结构:分为顺序存储和随机存储。
1、顺序存储:在计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素,称作线性表的顺序存储结构。顺序存储结构是把逻辑上相邻的节点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现。通常顺序存储结构是借助于计算机程序设计语言(例如c/c++)的数组来描述的。顺序存储结构特点:
l 节省存储空间,因为分配给数据的存储单元全用存放结点的数据(不考虑c/c++中数组需指定大小的情况),结点之间的逻辑关系没有占用额外的存储空间。
l 可实现对结点的随机存取,即每一个结点对应一个序号,由该序号可以直接计算出来结点的存储地址。
l 不便于修改,对结点的插入、删除运算时,可能要移动一系列的结点。
2、随机存储:在计算机中用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。它不要求逻辑上相邻的元素在物理位置上也相邻,但也同时失去了顺序表可随机存取的优点。随机存储最典型的代表为链式存储。链式存储结构特点:
l 比顺序存储结构的存储密度小 (每个节点都由数据域和指针域组成,所以相同空间内假设全存满的话顺序比链式存储更多)。
l 逻辑上相邻的节点物理上不必相邻。
l 插入、删除灵活 (不必移动节点,只要改变节点中的指针)。
l 查找结点时链式存储要比顺序存储慢。
l 每个结点是由数据域和指针域组成。