举个例子:吃啦吐就是栈 吃完拉就是队列
什么是栈
栈是限定在一端进行插入和删除运算的线性表,不能随意的进行插入和删除,只能在一端(尾端)插入和删除
1,允许插入和删除的那一端叫做栈顶,不允许插入和删除的那一段叫栈底,可以把栈看成是竖着放的线性表
2,栈是按照’‘先进先出’‘的或者’‘后进后出’‘的原则
3,插入元素称为入栈运算(插入元素的时候,他的指针指向顶部,每插入一位就会往上移一位)
4,删除元素称为退栈运算(指针往下移位)
5,读栈顶元素是讲栈顶元素赋给一个指定变量,此时指针无变化
什么是队列
区别是只能一头进行插入,一头进行删除,不能在中间或者其他位置进行插入和删除
队列是允许在一端(队头)进行插入,在另一端(队尾)进行删除的线性表
原则是;先进先出,后进后出
运算包括;
入队运算;从队尾插入一个元素
退队运算:从队头删除一个元素
在实际运算中,队列通常是使用循环队列的形式
循环队列:就是将队列存储空间的最后一位绕道第一个位置,形成逻辑上的环状空间,空队列循环使用
循环队列的元素个数:队尾减去队头
入队和退队运算:
每进行一次入队运算,队尾就会进行指针加一,当队尾指针是最大值+1时候(超出队列分配的空间的时候)他的指针就会指向第一个位置,就是指向1,就会形成一个循环的存储
每进行一次退队运算,排头指针就进一