3.1栈
3.1.1抽象数据类型栈的定义
栈是限定仅在表尾进行插入或删除操作的线性表。因此,表尾端称为栈顶(top),相应的,表头端称为栈底(bottom)。不含元素的空表称为空栈。
栈是后进先出的线性表。
3.1.2栈的表示和实现
与线性表类似,栈也有两种存储表示方法。顺序栈和链式栈。
顺序栈:栈的顺序存储结构是利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置。
非空栈中的栈顶指针始终在栈顶元素的下一个位置上。
链式栈
3.2队列
3.2.1抽象数据类型队列的定义
和栈相反,队列是一种先进先出的线性表。它只允许在表的一端进行插入,而在另一端进行删除。
在队列中,允许插入的一端叫做队尾,允许删除的一端叫做队头。
双端队列:是限定插入和删除操作在表的两端进行的线性表。
3.2.2链队列
用链表表示的队列简称链队列。
一个链队列需要两个分别指示队头和队尾的指针(分别称为头指针和尾指针)才能唯一确定。
3.2.3循环队列
在循环队列中,除了用一组地址连续的存储单元依次存放从队列头到队列尾的元素之外,尚需附设两个指针front和rear分别指示队列头元素及队列尾元素的位置。
初始化建空队列时,令front=rear=0,每当插入新的队列尾元素时,尾指针增1,每当删除队列头元素时,头指针增1。因此,在非空队列中,头指针始终指向队列头元素,而尾指针始终指向队列尾元素的下一个位置。
下一篇: