首页 > 编程知识 正文

堆栈技术,逻辑堆栈指令

时间:2023-05-04 04:43:06 阅读:119962 作者:2137

的堆栈实现向上长(即向上长)时,其本质是堆栈底部固定不动,进入堆栈的只能不断向上堆积。 这就像把书放在桌子上一样,桌子的底部是固定的,所以书只能一册一册地往上堆,向上伸)。 由于计算机内部堆栈的实现采用这一模式,因此“修改指针后插入数据,离开堆栈时相反”的堆栈指针始终指向堆栈顶部的元素,堆栈底部不动,因此数据不会堆栈离开堆栈时自然相反,可以和放置上面列举的书的例子联系起来。 但是,如果堆栈在下面实现得很长(也就是说,每当一个元素进入堆栈时,堆栈底部就会自动下降到一个元素的位置)。 其本质是,该堆栈模型是“无底洞”型),此时堆栈的顶点是固定的,可以先压入元素,然后修改指针。 堆栈的底部是无限的,因此当您按下一个元素时,新元素将取代以前堆栈的顶部元素,位于堆栈的顶部。 那么,指向以前堆栈顶部元素的指针现在应该修改为指向这个新堆栈的顶部元素。 接下来,我们将讨论“无底”型堆栈的实现。 堆栈(instack )。 将对象或数据推入堆栈中,然后更新堆栈顶部指针,使其指向上次堆栈的对象或数据。 堆栈(外堆栈) :返回堆栈顶部指向的对象或数据,从堆栈中删除该对象或数据,并更新堆栈顶部。 但是,在计算机内部一定会选择第一种模式,而不会选择第二种模式。 这是因为第二个模型需要在每次推入新元素时,将以前在堆栈中的所有元素一起移动到一个元素的位置,将新元素放入堆栈顶部元素的位置。 这种移动是很大的开销。 但是,“无底洞”模式并不是不能实现。 实际上,可以在第一个模型中进行模拟。 每次需要推入新元素时,首先打开空间,将数据存储在此空间中,然后修改堆栈顶部元素指针以指向此新的堆栈顶部元素。 换句话说,使用链表,只要有足够的空间可以作为节点进行开发,这两种堆栈模型都可以实现。 当然,“无底洞”型是如上所述用第一种模拟制造的,否则平移的工作量相当大。 使用数组时,数组是内存中连续分配的空间,因此使用第一种模型比较自然。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。