【C++数据结构】栈(Stack)和队列(Queue)

堆:是在程序运行时,而不是在程序编译时,申请一个内存。即动态内存分配,对其访问和对一般内存的访问没有区别。堆就是在程序运行时申请的动态内存,栈是使用堆的一种方法(先进先出)。

程序编译时是不分配内存的此时只是根据声明时的类型进行占位,到以后程序执行时分配内存才会正确。

所谓在编译时分配空间是指静态分配空间(相对于用new动态申请空间),全局变量静态变量包括一些复杂类型的常量,他们所需要的空间大小可以明确计算出来,并且不会改变。

栈:先进后出,LIFO(last in first out)

顺序栈:顺序存储结构

链栈:采用链式存储结构

顺序栈和链栈实现方式的区别,在于数据元素在实际物理空间上存放的相对位置,顺序栈底层采用的是数组,链栈底层采用的是链表。

peek():查找栈顶元素

pop()移除栈顶元素并返回函数值。

push()把一个元素放到栈顶

队列:FIFO先进先出,后进后出,与栈不同的是队列两端都开口,要求数据只能从一端进,从另一端出。先进先出。

顺序队列:顺序表

链队列:链表

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值