栈是如何进行删除的,栈顶和栈底的删除原则和顺序是什么1
发布网友
发布时间:2023-11-13 19:02
我来回答
共1个回答
热心网友
时间:2024-12-13 00:19
栈是一种线性数据结构,只支持插入、删除操作,而且遵循先进后出的规则……
你可以想象栈是一个很窄的瓶子,一次允许一个小球掉进去。这就是插入操作了。然后栈的删除就相当于从瓶口取一个小球出来。显然先放进去的小球只有在它上面的球全取完才能取,这样就不难理解先进后出了吧
我不懂什么叫栈底删除……照你这么说可以两端删……不是队列么……必须指出栈只能在栈顶删除,两端都可以的不叫栈,叫队列。概念什么的还是要搞清楚的
一般我们用栈都是利用了先进后出的特性,这样的特性使它支持维护一个单调递增或递减的栈。当前我们需要插入一个元素,比如维护单调递增的栈,栈里是1 3 5 7 9,我们要加入一个4,那就和栈顶比较,如果不满足单调性就删除栈顶元素,直到加入4后仍然维持单调性。就是:
a[]=1,3,5,7,9 top=5 要插入4
1,3,5,7,9,4不满足单调性,所以9要删掉
1,3,5,7,4不满足单调性,所以7要删掉
1,3,5,4不满足单调性,所以5要删掉
1,3,4满足单调性了,所以4直接插入栈中就可以了
至于原则,要看情况而定,就是说你为何需要这个栈。你要用它维护单调性,就按上面说的操作。如果只是单纯因为栈的操作和你需要的操作符合,比如模拟火车进出站,直接模拟即可。