栈的操作特点是什么

呼延覺羅修 3个月前 已收到2个回答 举报

忘了好难 3星

共回答了337个问题采纳率:92.5% 评论

栈(stack)是一个特殊的线性表,是限定在一端(通常是表尾)进行插入和删除操作的线性表

表尾称为栈顶,表头称为栈底(Base),基本操作为PUSH(入栈),POP(出栈).

特点是**LIFO(Last In First out)后进先出,**在进行PUSH和POP操作的时候也是要这个模式进行访问。

对于顺序栈而言,栈的存储方式与一般线性表的顺序存储结构完全相同,利用一组地址连续的存储单元一次存放自栈底到栈顶的数据元素,栈底一般在地地址端,附设top指针,指示栈顶元素在顺序栈的位置,另设base指针,指示栈底元素在顺序栈中的位置。

但是,为了方便操作,通常top指示真正的栈顶元素之上的下标地址,用stacksize来指示栈课使用的最大容量。

空栈的标志是base==top也就是栈顶和栈底重合,不存储任何数据。

栈满的标志是top-base==stacksize

上溢(overflow):栈已经满,又要压入元素

下溢(underflow):栈已经空,又要弹出元素

上溢是一种错误,使问题的处理无法进行,而下溢一般认为是一种结束条件,也就是问题的处理结束

17小时前

8

苍白了泪珠 1星

共回答了167个问题 评论

栈(stack)是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈,程序员不能直接地设置栈。

堆栈是一种执行“后进先出”算法的数据结构

栈的特点是先进后出,队列的特点是先进先出.

栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共

享,详见第3点。堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要

在运行时动态分配内存,存取速度较慢。

堆栈就是这样一种数据结构.它是在内存中开辟一个存储区域,数据一个一个顺序地存入(也就是“压入——push”)这个区域之中.有一个地址指针总指向最后一个压入堆栈的数据所在的数据单元,存放这个地址指针的寄存器就叫做堆栈指示器.开始放入数据的单元叫做“栈底”.数据一个一个地存入,这个过程叫做“压栈”.在压栈的过程中,每有一个数据压入堆栈,就放在和前一个单元相连的后面一个单元中,堆栈指示器中的地址自动加1.读取这些数据时,按照堆栈指示器中的地址读取数据,堆栈指示器中的地址数自动减

1.这个过程叫做“弹出pop”.如此就实现了后进先出的原则.

15小时前

1
可能相似的问题

猜你喜欢的问题

热门问题推荐

Copyright © 2024 微短问答 All rights reserved. 粤ICP备2021119249号 站务邮箱 959505@qq.com