c语言中什么是堆栈,堆栈的具体应用,求高手帮我解释下,最好能详细点,谢谢

如题所述

也就是一个井喽,然后丢石头进去,要的话就从最上面的拿上来。如
abc要进栈,则: 元素 栈中的元素
1.a进栈。 cb a
2.可以a出栈也可以b进栈。 c ba
3.可以b出栈也可以c进栈。 无 cba
如果按照示例的话,3次后abc都进入栈了,则从上往下的排序分别是c b a,此时只可以取出c,不可以取出其他的,也就是说,栈就是:
可以往里面丢东西,填平了或者无聊的时候就取出最上面的东西。
你可以理解成人的肝脏。如果糖分多的话,多余的就存在肝脏里,如果少了,就从肝脏里面取。但是你不把靠近血液的糖取出来,你是没有办法取更里面的糖分的......

它的应用吧,应该是可以用来加密。如可执行文件的出栈、入栈。不过一般我们电脑里面的计算就用到了栈,只不过没有察觉到。
原创!
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-16
堆和栈是两种不同的数据结构。
栈是一种后进先出的数据结构,即先进栈的数据反而要后出来,后进栈的数据反而可以先出来。
堆是一种优先队列,它满足一定的性质(即堆的性质)。

而在操作系统内存方面的堆和栈,也是不同的。内存栈是用来存放局部动态变量的。而内存堆是由程序员自己分配释放的内存空间。
第2个回答  2011-12-16
额...按我理解的... 一般来说在32位操作系统,可供程序员使用虚拟内存总共大概8个G
堆一般是程序员分配释放,如果不释放,程序运行完自动释放.. 用malloc申请的内存在堆中
栈..编译器自定分配,函数应该就是在栈执行,函数里的变量和局部变量也应该是在栈中
我感觉栈也就2多G大吧...常量应该按地址位置应该在堆下面,
我的理解是 栈内执行效率高,适合执行类似函数那样反复执行的代码...
第3个回答  2011-12-16
栈是一种特殊的线性表,即里面的元素是一对一的关系。栈只能在线性表的一端进行插入和删除元素,这端称之为栈顶,另外一端为栈底。所以栈具有先进后出的特点。
至于栈的应用比较广泛,计算表达式,实现递归函数,判断括号匹配等应用。
相似回答
大家正在搜