栈属于什么数据结构 栈属于什么结构


栈属于什么数据结构 栈属于什么结构

文章插图
栈的存储结构是顺序存储结构和链表存储结构 。就像一个箱子 , 后放的在上边 , 所以后进先出 。
【栈属于什么数据结构 栈属于什么结构】
栈它是一种具有后进先出性质的数据结构 , 也就是说后存放的先取 , 先存放的后取 。这就如同要取出放在箱子里面底下的东西(放入的比较早的物体) , 首先要移开压在它上面的物体(放入的比较晚的物体) 。内存中的栈区处于相对较高的地址以地址的增长方向为上的话 , 栈地址是向下增长的 。栈中分配局部变量空间 , 堆区是向上增长的用于分配程序员申请的内存空间 。另外还有静态区是分配静态变量 , 全局变量空间的;只读区是分配常量和程序代码空间的;以及其他一些分区 。
由于栈上的空间是自动分配自动回收的 , 所以栈上的数据的生存周期只是在函数的运行过程中 , 运行后就释放掉 , 不可以再访问 。栈在Windows下 , 栈是向低地址扩展的数据结构 , 是一块连续的内存的区域 。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的 , 在 WINDOWS下 , 栈的大小是2M(也有的说是1M , 总之是一个编译时就确定的常数) , 如果申请的空间超过栈的剩余空间时 , 将提示overflow 。因此 , 能从栈获得的空间较小 。