‘壹’ c语言中的栈、堆是什么
C语言中的堆和栈都是一种数据项按序排列的数据结构。
栈就像装数据的桶或箱子
我们先从大家比较熟悉的栈说起吧,它是一种具有后进先出性质的数据结构,也就是说后存放的先取,先存放的后取。
这就如同我们要取出放在箱子里面底下的东西(放入的比较早的物体),我们首先要移开压在它上面的物体(放入的比较晚的物体)。
堆像一棵倒过来的树
而堆就不同了,堆是一种经过排序的树形数据结构,每个结点都有一个值。
通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。
由于堆的这个特性,常用来实现优先队列,堆的存取是随意,这就如同我们在图书馆的书架上取书。
虽然书的摆放是有顺序的,但是我们想取任意一本时不必像栈一样,先取出前面所有的书,书架这种机制不同于箱子,我们可以直接取出我们想要的书。
(1)c语言栈结构图讲解扩展阅读:
关于堆和栈区别的比喻
使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小。
使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大。
参考资料来源:网络-堆栈
‘贰’ C语言版的数据结构中,栈存储结构是什么
栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。 栈是一种数据结构 ,是只能在某一端插入和删除的特殊线性表 。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
‘叁’ 什么是C语言中的栈
栈是一种数据存储的结构,其实跟数组,队列的存储方式是一样的,主要是它有存储的规则,就是先进后出,只在栈定操作。
也就是说数据存入一个栈,取出的是最后一个存入的数据,必须从最后一个开始取。
可参考网络和维基网络
‘肆’ c语言中的栈是指什么啊
是一种数据结构.这种结构的存取原则相当于取放盘子的过程,放的时候将盘子一个一个堆起来放,取的时候先取原先最后放入的一个,然后依次类推.即后进先出的原则.
栈有顺序(数组等)和链式(链表)两种存储结构,它的逻辑结构实质是线性表中的一种,只是这种线性表只允许在其中一端进行存取操作.更为详细的解释请参考数据结构一书!
‘伍’ C语言中表,树,栈是什么
都是数据结构
其中栈包括在表里,因为表中有线性表。线性表分为栈(后进先出)和队列(先进先出),而树是一种区别于表的数据结构,有时将其归于图的范畴,特别要注意二叉树并不是树,这些数据结构都是基本功,不光学习C语言的人要会,任何学习编程的人都要掌握
‘陆’ 求大神精简的讲讲c语言中栈的用法
堆栈用于特殊的数据存储,一般用于函数调用,特点是先入后出。
在进行子程序(函数)调用时,它可以存储调用时调用者给出的参数,子程序通过堆栈指针可找到所有传入的参数,即使修改它们由于返回时设置堆栈指针也不会影响参数原型数据;子程序开设的普通变量也会在堆栈中开辟。
在进行中断函数调用时,堆栈用于保护现场,可以将断点处程序执行的关键寄存器压栈保存,执行完后弹栈恢复现场。
堆栈的好处在于,cpu有专用的堆栈地址寄存器,压栈、弹栈有专用语句,对于栈内数据存取以堆栈指针为参照存取方便,利于最后舍弃无需的数据。