堆、栈概念

堆:

①堆一般是一个能够被看作一棵树的数组对象。堆老是知足下列性质:数组

        ·堆中某个节点的值老是不大于或不小于其父节点的值;多线程

        ·堆老是一棵彻底二叉树。将根节点最大的堆叫作最大堆或大根堆,根节点最小的堆叫作最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。spa

②堆是在程序运行时,而不是在程序编译时,申请某个大小的内存空间。即动态分配内存,对其访问和对通常内存的访问没有区别。操作系统

③堆是应用程序在运行的时候请求操做系统分配给本身内存,通常是申请/给予的过程。线程

④堆是指程序运行时申请的动态内存,而栈只是指一种使用堆的方法(即先进后出)。对象

 

栈:

栈(stack)又名堆栈,一个数据集合,能够理解为只能在一端进行插入或删除操做的列表。其限制是仅容许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另外一端称为栈底进程

②栈就是一个桶,后放进去的先拿出来,它下面原本有的东西要等它出来以后才能出来(先进后出)内存

③栈(Stack)是操做系统在创建某个进程时或者线程(在支持多线程的操做系统中是线程)为这个线程创建的存储区域,该区域具备FIFO的特性,在编译的时候能够指定须要的Stack的大小。get

栈的基本操做:
  进栈(压栈):push
  出栈:pop
  取栈顶:gettop编译

相关文章
相关标签/搜索