栈(栈(StackStack))栈的应用栈的应用队列(队列(QueueQueue))队列的应用队列的应用第三章栈和队列定义3
1栈栈与线性表相同,仍为一对一(1:1)关系
用顺序栈顺序栈或链栈链栈存储均可,但以顺序栈更常见只能在栈顶栈顶运算,且访问结点时依照后进先出后进先出(LIFO)或先进后出先进后出(FILO)的原则
关键是编写入栈入栈和出栈出栈函数,具体实现依顺序栈或链栈的存储结构有别而不同
存储结构运算规则实现方式逻辑结构限定只能在表的一端一端进行插入和删除运算的线性表
基本操作建栈、判断栈满或栈空、入栈、出栈、读栈顶元素值,等等
栈栈是仅在表尾进行插入、删除操作的线性表
表尾(即an端)称为栈顶/top;表头(即a1端)称为栈底/base例如:栈SS=(a1,a2,a3,………
,an-1,an)插入元素到栈顶的操作,称为入栈栈
从栈顶删除最后一个元素的操作,称为出栈
an称为栈顶元素a1称为栈底元素强调:强调:插入和删除都只能在表的一端(栈顶)进行
栈的基本操作•ClearStack(S):清除栈S中的所有元素•InitStack(S):构造一个空栈S•StackEmpty(S):判断栈S是否为空,若为空,则返回true;否则返回false•GetTop(S):返回S的栈顶元素,但不移动栈顶指针•Push(S,x):插入元素x为新的栈顶元素(入栈操作)•Pop(S):删除S的栈顶元素并返回其值(出栈操作)顺序栈的存储结构和操作的实现顺序栈:是利用一组地址连续的存储单元依次存放从栈底到栈顶的数据元素
在在CC语言中,预语言中,预设一个数组的最设一个数组的最大空间大空间,,栈底设栈底设置在置在00下标端,下标端,栈顶随着插入和栈顶随着插入和删除元素而变化,删除元素而变化,用一个整型变量用一个整型变量ttopop来指示栈顶的来指示栈顶的位置位置