入栈、出栈指针和数据操作顺序是什么样的?

发布网友 发布时间:2022-04-20 01:31

我来回答

1个回答

热心网友 时间:2022-03-29 16:43

什么是栈栈实际上也是线性表,只不过是一种特殊的线性表。在这种特殊的线性表中,其插入与删除运算都只在线性表的一端进行。即在这种线性表的结构中,一端是封闭的,不允许进行插入与删除元素;另一端是开口的,允许插入与删除元素。在顺序存储结构下,对这种类型线性表的插入与删除运算是不需要移动表中其他数据元素的。这种线性表称为栈。线是限定在一端进行插入与删除的线性表。在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。即栈是按照“先进后出”或“后进先出”的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表。由此可以看出,栈具有记忆作用。通常用指针top来指示栈顶的位置,用指针bottom指向栈底。往栈中插入一个元素称为入栈运算,从栈中删除一个元素(即删除栈顶元素)称为退栈运算。栈的顺序存储及其运算与一般的线性表一样,在程序设计语言中,用一维数组S(1:m)作为栈的顺序存储空是,其中m为栈的最大容量。S(bottom)通常为栈底元素(在栈非空的情况下),s(top)为栈顶元素。Top-0表示栈空;top=m表示栈满。栈的基本运算有三种:入栈、退栈与读栈顶元素。入栈运算入栈运算是指在栈顶位置插入一个新元素。这个运算有两个基本操作:道德将栈顶指针进一(即top加1),然后将新元素插入到栈顶指针指向的位置。当栈顶指针已经指向存储空间的最后一个位置时,说明栈空间已满,不可能再进行入栈操作。这种情况称为栈“上溢”错误。退栈运算退栈运算是指取出栈顶元素并赋给一个指定的变量。这个运算有两个基本操作:道德将栈顶元素(栈顶指针指向的元素)赋给一个指定的变量。然后将栈顶指针退一(即top减1)。当栈顶指针为0时,说明栈空,不可能进行退栈操作。这种情况称为栈“下溢”错误码。读栈顶元素读栈顶元素是指将栈顶元素赋给一个指定的变量。必须注意,这个运算不删除栈顶元素,只是将的值赋给一个变量,因此,在这个运算中,栈顶指针不会改变。当栈顶指针为0时,说明栈空,读不到栈顶元素。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com