信息学奥赛教学 栈 C++版.pptVIP

  • 29
  • 0
  • 约6.12千字
  • 约 21页
  • 2018-07-15 发布于浙江
  • 举报
第一章 栈 * * 栈是只能在某一端插入和删除的特殊线性表。 用桶堆积物品,先堆进来的压在底下,随后一件一件往上堆。取走时,只能从上面一件一件取。堆和取都在顶部进行,底部一般是不动的。 栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶,另一堆称栈底。插入一般称为进栈(PUSH),删除则称为退栈(POP)。 栈也称为后进先出表(LIFO表)。 一个栈可以用定长为N的数组S来表示,用一个栈指针TOP指向栈顶。若TOP=0,表示栈空,TOP=N时栈满。进栈时TOP加1。退栈时TOP减1。当TOP0时为下溢。栈指针在运算中永远指向栈顶。 1、进栈(PUSH)算法 ①若TOP≥n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作②); ②TOP++(栈指针加1,指向进栈地址); ③S[TOP]=X,结束(X为新进栈的元素); 2、退栈(POP)算法   ①若TOP≤0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈, 空则下溢;不空则作②);   ②X=S[TOP],(退栈后的元素赋给X);   ③TOP--,结束(栈指针减1,指向栈顶)。 进栈、出栈的c++实现过程程序: #define n 100 void push(int s[],int *top,int *x) //入栈 { if (*top==

文档评论(0)

1亿VIP精品文档

相关文档