⑴ 栈的顺序储存空间中,元素个数怎么算
因为栈顶在高位,也就是m+1处,进栈时top向低下标扩展,因此当top为m时,有1个元素;为m -1 时,有2个元素;为20时,有m- 20 +1 = m-19个元素在栈中。
栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。
向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
(1)栈的存储空间基本运算例题讲解扩展阅读:
1、进栈(PUSH)算法
① 若TOP≥n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则作②);
② 置TOP=TOP+1(栈指针加1,指向进栈地址);
③ S(TOP)=X,结束(X为新进栈的元素);
2、退栈(POP)算法
① 若TOP≤0,则给出下溢信息,作出错处理(退栈前先检查是否已为空栈, 空则下溢;不空则作②);
② X=S(TOP),(退栈后的元素赋给X):
③ TOP=TOP-1,结束(栈指针减1,指向栈顶)。
⑵ 设栈的顺序存储空间为S(1:m),初始状态为TOP=m+1。现经过一系列入栈与退栈运算后,
栈的顺序存储空间为S(1:50),初始状态为top=0。现经过一系列入栈与退栈运算后,top=20,则栈顶-栈底=20-0=20个元素。
⑶ 设栈的存储空间为S(1:50),初始状态为top=0,现经过一系列正常的入栈与退栈操作后,top=
栈的顺序存储空间为S(1:50),初始状态为top=0。
top可以理解为如果要再放入一个元素,这个元素存放的位置为top—1,top=0,top—1=—1,显然不可能在存放下一个元素,所以初始状态为满,经过一系列操作,top为30,同理,如果要再存放一个元素,位置为30—1=29,所以现在30是有元素的,30到50,一共为21个元素,所以答案为21。