③读栈顶元素
读栈顶元素是指将栈顶元素赋给一个指定的变量。必须注意,此运算不删除栈顶元素,只是将其赋给一个变量,因此在这个运算中,栈顶指针不会改变。
当栈顶指针为0时,说明栈空,读不到栈顶元素。
课件演示:入栈与退栈操作.ppt
*考点11 队列及其基本运算 重点 1.队列的定义
队列(queue)是指允许在一端进行插入、而在另一端进行删除的线性表。
允许插入的一端称为队尾,通常用一个称为尾指针(rear)的指针指向队尾,即尾指针总是指向最后被插入的元素;
允许删除的一端称为排头(也称队头),通常也用一个排头指针(front)指向排头元素的前一个位置。
队列又称为“先进先出”(first in first out,FIFO)或“后进后出” (last in last out,LILO)的线性表,它体现了“先来先服务”的原则。
在队列中,队尾指针与排头指针共同反映了队列中元素动态变化的情况。
当队列中没有元素时称为空队列。
下图为具有6个元素的队列示意图。
往队列的队尾插入一个元素称为入队运算,从队列的排头删除一个元素称为退队运算。下图为入队、退队运算示意图。
2.循环队列及其运算 重点
在实际应用中,队列的顺序存储结构一般采用循环队列的形式。
所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用,
其它内容不再介绍了
五、线性链表
*考点12 线性链表的基本概念 重点
在链式存储结构中,要求每个结点由两部分组成:一部分是用于存放数据元素值,称为数据域;另一部分用于存放指针,称为指针域。其中,指针用于指向该结点的前一个或后一个结点(即前件或后件)。
在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,
而数据元素之间的逻辑关系是由指针域来确定的。
链式存储方式既可用于表示线性结构,也可用于表示非线性结构。
1.线性链表
线性表的链式存储结构称为线性链表。 为了适应线性表中的链式存储结构,计算机存储空间被划分为一个一个小块,每一小块占若干字节,通常称这些小块为存储结点。
每个存储结点分为两部分:一部分用于存储数据元素的值,称为数据域;另一部分用于存放下一个数据元素的存储序号(即存储结点的地址),即指向后件结点,称为指针域。在线性链表中,存储空间的结构如下图所示。
在线性链表中,用一个专门的指针HEAD指向线性链表中第一个数据元素的结点。线性表中最后一个元素没有后件,因此线性链表中最后一个结点的指针域为空(用NULL或0表示),表示链表终止。线性链表中存储结点的结构如下图所示。
线性链表的逻辑结构如下图所示。
例:设线性表为(a1, a2, a3 , a4 , a5),存储空间具有10个存储结点,该线性表在存储空间中的存储情况如图1所示。为了直观地表示该线性表中各元素之间的前后件关系,还可以用如图2所示的逻辑状态来表示,其中每一个结点上面的数字表示该结点的存储序号(简称结点号)。
一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系不一致。
在线性链表中,各数据元素之间的前后件关系是由各结点的指针的指针域来指示的,指向线性表中第一个结点的指针HEAD