表中所有元素的所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。ai的存储地址为:ADRaiADRa1i1k,ADRa1为第一个元素的地址,k代表每个元素占的字节数。由此可以看出,在线性表的顺序结构中,其前后件两个元素在存储空间中是紧邻的,且前件元素一定存储在后件元素的前面。在程序设计语言中,通常定义一个一维数组来表示线性表的顺序存储空间。顺序表的运算:插入、删除。(详见1718页)画图来理解1.4栈和队列1.4.1栈及其基本运算1.什么是栈栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。用top表示栈顶位置,用bottom表示栈底。2.栈的顺序存储与栈的基本运算:(1)插入元素称为入栈运算;(2)删除元素称为退栈运算;(3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化。
f1.4.2队列及其基本运算1.什么是队列队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。Rear指针指向队尾,fro
t指针指向队头。队列是“先进先出”(FIFO)或“后进后出”(LILO)的线性表。2.循环队列运算包括(1)入队运算:从队尾插入一个元素;(2)退队运算:从队头删除一个元素。循环队列:s0表示队列空,s1且fro
trear表示队列满1.5线性链表p24对于大的线性表或者变动频繁的线性表不宜用顺序存储,应该用链式存储。在链式存储结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。结点由两部分组成:(1)用于存储数据元素值,称为数据域;(2)用于存放指针,称为指针域,用于指向前一个或后一个结点。链式存储方式的特点:☆在链式存储结构中,存储数据结构的存储空间可以不连续,☆各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。☆链式存储方式即可用于表示线性结构,也可用于表示非线性结构。1.线性链表为了适应线性表的存储结构,计算机存储空间被划分为一个一个小块,每一个小块占若干字节,通常称这些小块为存储结点。存储结点数据域(数据元素本身)指针域(数据元素之间的前后逻辑关系)在线性链表中,用一个专门的指针HEAD指向线性链表中的第一个数据元素的结点(即存放线性表中第一个数据元素的存储结点的序号r