美文网首页c#程序员
堆 、 栈、 堆栈 、队列、装箱、拆箱

堆 、 栈、 堆栈 、队列、装箱、拆箱

作者: 青鱼谷雨 | 来源:发表于2017-10-13 14:52 被阅读176次

堆(heap):堆是一种经过排序的树形数据结构,每个结点都有一个值。存储引用类型

栈(stack):它是一种具有后进先出性质的数据结构,也就是说后存放的先取,先存放的后取。存储值类型


有人老是搞不清楚内存堆栈与数据结构堆栈,我们来看看什么是内存堆栈,什么是数据结构堆栈

①数据结构堆栈:是一种后进先出的数据结构,它是一个概念,图4-1中可以看出,栈是一种后进先出的数据结构。

②内存堆栈:存在内存中的两个存储区(堆区,栈区)。

栈区:存放函数的参数、局部变量、返回数据等值,由编译器自动释放

堆区:存放着引用类型的对象,由CLR释放


堆栈通常是指栈。

值类型分配在 内存栈中

引用类型存储在内存堆中,若声明一个引用类型的变量,该变量只存储在内存堆上的引用类型的实例化的内存地址,也就是说该变量所代表的不是这个变量值的本身,而是该变量值的一个内存地址。 则该引用类型只存储该变量实例化中在内存堆中的内存地址。

装箱:把值类型转变成引用类型

int  i=5;

object bates=i;

Debug.Log(i)

拆箱:把一个已经装箱的引用类型转变成值类型

int i=5;
object bat=i;
int j=(int)(bat);
Debug.Log(j);

在对值类型进行装箱操作时,所使用的时间比直接赋值多20倍;拆箱操作时,所使用的时间比直接赋值多4倍。

堆栈不是指堆和栈,堆是一种类型,栈是另一种类型。它们是不同的;堆栈是指栈
小猪大牛的强行解释

栈中保存引用类型变量和值类型变量,值类型变量保存的是值类型实例的值,引用类型变量保存的是引用类型实例的引用。 对象的引用 是保存的 指向堆中的 地址的指针,堆中保存的才是对象实例

关于值类型和引用类型的区别

堆栈:

堆栈定义
堆栈(Stack)代表了一个后进先出的对象集合。
当您需要对各项进行后进先出的访问时,则使用堆栈。当您在列表中添加一项,称为推入元素,当您从列表中移除一项时,称为弹出元素。

Count : 获取 Stack 中包含的元素个数。
Contains: 判断某个元素是否在堆栈中。
Push:压榨、入栈,向 Stack 的顶部添加一个对象。
Pop:移除堆栈中顶部的元素
Peek:返回堆栈中的顶部元素,但不删除。

Unity3d使用堆栈

队列:

队列定义
队列(Queue)代表了一个先进先出的对象集合。
当您需要对各项进行先进先出的访问时,则使用队列。当您在列表中添加一项,称为入队,当您从列表中移除一项时,称为出队。

Clear:移除所有的元素。
Conut:获取Queue中元素个数。
Contains:判断某个元素是否在 Queue 中。
Dequeue:移除并返回在 Queue 的开头的对象。
Enqueue:向 Queue 的末尾添加一个对象。
TrimToSize:设置容量为 Queue 中元素的实际个数。

Unity3d使用队列

队列和堆栈.png

相关文章

  • 堆 、 栈、 堆栈 、队列、装箱、拆箱

    堆(heap):堆是一种经过排序的树形数据结构,每个结点都有一个值。存储引用类型 栈(stack):它是一种具有后...

  • 堆栈

    #什么是“堆”,"栈","堆栈","队列",它们的区别 如果你学过数据结构,就一定会遇到“堆”,"栈","堆栈",...

  • 数据结构和算法

    堆和栈 数据结构中的堆栈:堆:树状结构,是一种优先队列,先进先出栈:桶状结构,先进后出 操作系统中的堆栈:都是指内...

  • 数据结构

    知识点:堆栈,队列,排序算法 堆栈: 一.基本概念: 栈顶,栈底,出栈(pop),入栈(push),空栈 1.堆栈...

  • 堆和栈基本知识

    一、定义 堆栈是不同的两种数据结构,堆:队列优先,先进先出。栈,先进后出。 堆栈空间分配 栈(操作系统):由操作系...

  • 三 常用API第二部分——第六节 包装类

    1、包装类的概念 2、装箱与拆箱 装箱:基本类型-->包装类对象拆箱:包装类对象-->基本类型 3、自动装箱与拆箱...

  • 装箱和拆箱

    装箱 拆箱

  • 装箱与拆箱详解笔记

    1、什么是自动装箱与拆箱 //自动装箱Integer integer = 100;//自动拆箱int i = in...

  • Java自动装箱和拆箱,包装类缓存机制和JVM调节

    关于Java自动装箱和拆箱 基本数据(Primitive)类型的自动装箱(autoboxing)、拆箱(unbox...

  • 机试常用算法和题型-栈和队列专题

    堆栈+ordermap使用括号匹配 堆栈使用简单计算器 栈+队列实现中缀转后缀,计算后缀表达式 栈+队列计算,包括...

网友评论

    本文标题:堆 、 栈、 堆栈 、队列、装箱、拆箱

    本文链接:https://www.haomeiwen.com/subject/hoqzyxtx.html