多语言展示
当前在线:1811今日阅读:122今日分享:18

什么是“堆”,'栈','堆栈','队列',它们的区别?

嗨!大家好!作为一名计算机人员!来给大家概括的介绍一下“堆”、“栈”、“堆栈”、以及“队列”的区别!不知道的朋友可以一起来看看哦!
工具/原料

电脑/笔记本

方法/步骤
1

1,如果你学过数据结构与算法,一般来说都会遇到这些问题!对于这种情况,首先知道它们的大概意思!

2

2,首先是“堆”!你可以理解为是一棵大树的数组对象。堆是一种特殊的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根结点的值最小或最大,且根结点的两个子树也是一个堆。

3

3,其次是“栈”!栈是一种特殊的线性表,其插入与删除运算都限定在线性表的同一端进行的!所以,一端叫'栈顶”,一端叫“栈低”。就像一个装满乒乓球的圆筒,最后放进去的乒乓球总是最先拿出,而最后放入的乒乓球直到最后才能拿出!

4

4,至于“堆栈”,大家也不要被它迷惑了,其实它也是栈,只是换了一个名字,变的更加抽象了,其特性:最后一个放入堆栈中的乒乓球总是被最先拿出来, 这个特性通常称为后进先出(LIFO)队列。 堆栈中又定义了一些操作。 最重要的是PUSH和POP。 PUSH操作在堆栈的顶部加入一 个元素。POP操作相反, 在堆栈顶部移去一个元素, 并将堆栈的大小减一。

5

5,之后是队列,那么什么是队列?队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

6

6,(1)最后就来说说它们的区别。首先“堆”是在程序运行时,而不是在程序编译时,申请某个大小的内存空间。即动态分配内存,对其访问和对一般内存的访问没有区别。 (2)之后是“栈”它就是一个桶,后放进去的先拿出来,它下面本来有的东西要等它出来之后才能出来 (3)最后是“队列”只能在队头做删除操作,在队尾做插入操作.而栈只能在栈顶做插入和删除操作。 (4)至于“堆栈”则和“栈”差不多(可以看看前面的介绍)。

注意事项

以上也只是个大概,具体的还需要大家多多研究哦!

推荐信息