顺序表是一种典型的线性结构,是最简单、最常用的数据结构。 在计算机中线性表可以采用两种方式来保存,一种是顺序存储结构,另一种是链式存储结构.
栈结构是一种线性结构,栈结构包括两类:
- 顺序栈结构:即使用一组地址连续的内存单元依次保存栈中的数据。在程序中,可以定义一个指定大小的结构数组来作为栈,序号为0的元素就是栈底,再定义一个变量top保存栈顶的序号即可。
- 链式栈结构:即使用链表形式保存栈中各元素的值。链表首部(head引用所指向元素)为栈顶,链表尾部(指向地址为null)为栈底。
栈结构是按照“后进先出”的原则处理节点数据的。在栈结构中,只有栈顶元素是可以访问的。一般栈结构的基本操作有两个:
- 入栈(Push):将数据保存到栈顶的操作。进行入栈操作前,先修改栈顶引用,使其向上移一个元素,然后将数据保存到栈顶引用所指的位置。
- 出栈(Pop):将栈顶的数据弹出的操作。先取出栈顶指针所指位置的数据,再通过 修改栈顶引用,使其指向栈中的下一个元素。
从数据的逻辑结构来看,队列是一种线性结构。如果从数据的存储结构来进一步划分,队列结构包括两类。
- 顺序队列结构:即使用一组地址连续的内存单元依次保存队列中的数据。在程序中,可以定义一个指定大小的结构数组作为队列。
- 链式队列结构:即使用链表形式保存队列中各元素的值。
从数据的运算角度来分析,队列结构是按照“先进先出”的原则处理结点数据的。在队列结构中,数据运算非常简单。一般队列结构的基本操作只有
- 入队列:将一个元素添加到队尾(相当于到队列最后排队等候)
- 出队列:将队头的元素取出,同时删除该元素,使后一个元素成为队头。