关于堆栈解释

2014-07-04 10:46:14 +08:00
 83f420984
百度百科解释堆栈:堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。要点:堆,列队优先,先进后出;栈,后进先出

可能我理解的不对,不对的地方请指点,后面的要点开始,堆:先进后出;栈:后进先出,既然堆是先进后出,而又说栈是后进先出,那如何实现先进后出后进先出?有没有岐义?
7572 次点击
所在节点    程序员
47 条回复
hellov22ex
2014-07-04 10:52:34 +08:00
身为一个程序员,在寻找专业知识的时候,请不要去看百度百科,谢谢

堆是先进先出,栈是先进后出

楼下的,我说的对不对?
hyq
2014-07-04 10:56:07 +08:00
@hellov22ex 必须对
hyq
2014-07-04 10:57:26 +08:00
@hellov22ex 好吧,我也错了,谁说堆是先进先出,尼玛那是队列啊!!!被你和楼主给误导了
maikcn
2014-07-04 10:59:09 +08:00
堆不就是栈?

堆栈 - Stack - LIFO(后进先出)
队列 - Queue - FIFO(先进先出)
hyq
2014-07-04 11:00:26 +08:00
在计算机科学中,堆可以指:

一种树形数据结构,详见堆 (数据结构) http://zh.wikipedia.org/wiki/%E5%A0%86_(%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84)
用于动态内存分配的内存空间

维基上抄下来的
wy315700
2014-07-04 11:04:24 +08:00

分为最大堆和最小堆
最大堆的意思是,每次取出的都是最大的一个数
最小堆意思类推


先进后出

队列
先进先出

优先级队列
按照某个优先级出。

大部分系统里,堆是作为优先级队列的一个实现方法。
maikcn
2014-07-04 11:06:24 +08:00
好吧,原来堆是heap,被中文搞糊涂了 = =
Mutoo
2014-07-04 11:08:09 +08:00
堆栈(英语:stack),也可直接称栈。
http://zh.wikipedia.org/wiki/%E5%A0%86%E6%A0%88

你说的是队列(FIFO)/栈(FILO)的区别

另外在编译原理中,堆(heap)和栈(stack)有另外的解释

此外还有一个叫堆排序(大根堆、小根堆)的算法
johncang
2014-07-04 11:09:40 +08:00
我一直以为 V2EX 都是问些高大上的问题,原来还可以问这种问题
heliar
2014-07-04 11:17:07 +08:00
...其实是stack不是heap。。heap是另外个东西。。不知道为啥要翻译成堆栈。。是要和储存另一个栈的概念做区分么
lu18887
2014-07-04 11:17:17 +08:00
@hellov22ex “堆栈”就是 stack 吧,不要分开理解!
单独的"堆"和 heap 对应

不要误导了别人噢!
heliar
2014-07-04 11:18:45 +08:00
@heliar 额。。多打了两个字。。‘储存’
lu18887
2014-07-04 11:18:51 +08:00
这个问题,建议把一二楼踩下去,太容易误导小白了!
touzi
2014-07-04 11:20:04 +08:00
记得大一上课的时候老师画了个图,非常形象的理解了堆栈的区别.现在找大一笔记已经不见了.
em70
2014-07-04 11:21:35 +08:00
见过装羽毛球的球筒吧,一个原理
yakczh
2014-07-04 11:22:36 +08:00
做为一名程序员 在host中屏蔽百度才会有技术进步

找到hosts文件
win32 "C:\Windows\System32\drivers\etc\hosts"
linux /etc/hosts

最前面写上一句 127.0.0.1 www.baidu.com
tabris17
2014-07-04 11:25:24 +08:00
还是说英文吧, 栈是stack,堆是heap

stack一般指FILO访问内存

heap在不同语境下意义不同
ffffwh
2014-07-04 11:30:41 +08:00
初级阶段,堆请理解为能够动态被分配的内存。
它确实是用“堆”来实现的,不过你只要关心malloc/free就行...
mikale
2014-07-04 11:32:21 +08:00
國內也把stack翻譯為堆棧。。不知道是怎麼回事
xinglp
2014-07-04 11:32:54 +08:00
@maikcn 堆是堆栈是栈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/120921

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX