c++中的栈先进先出吗?堆又是如何的?
发布网友
发布时间:2022-04-20 01:31
我来回答
共5个回答
热心网友
时间:2023-11-04 20:32
假设有一种盘子,有很多,你一次只能搬得动一个,你有时要把它们一个一个摞起来放在一个墙角,有时候又要拿出去用。
想象下这种情况,是不是每次从那一摞盘子中只能拿最上面的呢,因为你只能每次搬动一个。如果你每次要放回盘子,是不是也只能放到最上面呢,除非把最上面的一个一个往下搬,然后一个一个搬回去,才能放到中间。
这个所谓的其实就是栈了。
至于你想说堆嘛,其实并不是一种数据结构,而是有一定的计算机组成的意味了,是一个逻辑上的概念,和栈不同,因为栈是一种数据结构。例如在操作系统里面会有系统堆,系统栈,在算法里面的堆排序里面也有大头堆,小头堆,其实只是一个概念,并不是数据结构,需要在特定的环境下理解。
比如说java中的栈就是指向对象存放的位置,而堆却是由对象来创立的用来存放对象的相关属性和方法。
热心网友
时间:2023-11-04 20:32
栈是先进后出的。
堆是根据你设计的关键字比较,对于你的关键字的权值大的在堆顶。
注:队列才是先进先出的。
热心网友
时间:2023-11-04 20:33
后进先出。堆就像现实中的煤堆一样,最后放到堆上去的煤,最先被取出来使用。
热心网友
时间:2023-11-04 20:34
栈是先进后出,队列是先进先出,堆是一种特殊的二叉树
热心网友
时间:2023-11-04 20:34
1 栈是先进后出,但是堆是系统为程序提供动态内存分配。于这种数据结构无关。
2 队列是先进先出