数据结构——栈和队列

来源:互联网 发布:投弹兵升级数据 编辑:程序博客网 时间:2024/06/06 08:48

数据结构——栈和队列

1、栈

      栈的概念

            栈是一种特殊的线性表,具有和线性表的特点,同时也有特殊性:元素遵循“先进后出”的特点,也就是只能从栈顶插入或删除元素。同样可以用顺序存储和链式存储两种方式实现,分别称为顺序栈和链栈。栈结构可以用来实现表达式求值、括号匹配等。
        栈的特点可以看成是一个桶,往桶里面装东西,取东西都是从上面进行的,最先放进去的要最后才能取出来:

     栈的基本操作定义:

  • InitStack(&S):初始化一个空栈
  • StackEmpty(S):判断栈是否为空,为空返回1否则返回0
  • GetTop(S,&e):返回栈顶元素放到e中
  • PushStack(&S,e):从栈顶插入元素e
  • PopStack(&S,&e):从栈顶弹出元素放入e
  • StackLength(S):返回栈内元素个数
  • ClearStack(&S):清空栈内元素

     栈的实现:

顺序存储和链式存储

2、队列

     队列的概念

           队列也是一种特殊的线性表,它的特殊性在于“先进先出”,如同现实生活中的排队问题:先来的人先服务完先走。不同于栈的地方在于队列一端用来插入新元素,一端用来删除元素,即有队首和队尾:


    队列的基本操作:

  • InitQueue(&Q):初始化一个空队列
  • QueueEmpty(Q):判断队列是否为空
  • EnterQueue(&Q,x):插入元素到队尾
  • DeleteQueue(&Q,&x):删除队首一个元素并放入x中
  • GetHead(Q,&e):返回队首元素到e
  • ClearQueue(&Q):清空队列

     队列的实现:

顺序循环队列和链式队列


0 0
原创粉丝点击