栈,队列,堆的区别

堆,栈,队列的区别;

从内存分配上来说

栈是操作系统在建立某个进程或者线程时建立的一个存储区域,是线程私有的,栈中存的是局部变量之类,
函数参数。由操作系统自动分配。

堆是程序运行时,向操作系统申请某大小的内存空间,所有new 出来的对象和数组都是存储在堆中的。

从数据结构来说

堆是完全二叉树;
栈是线性表。栈是先进后出的而堆没有这一特性。栈的插入与删除都是在表尾进行,队列的插入在队尾,删除在队头;

如何用两个栈实现一个队列?

栈是先进后出的,队列是先进后出,例如abcd入栈后pop出来即是dcba,入队列则是abcd。
所以让abcd先入一个栈被pop出再入另一个栈变成dcba的顺序再pop出即可,负负得正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值