顺序栈的进栈与出栈操作
- 2017-10-20 15:32:32
- 6,803 次阅读
- 2
栈是一种线性的逻辑结构,是一种稍加限制的只能在一端进行插入或删除操作的线性表。栈由栈顶和栈底组成,其栈顶进行插入和删除操作。
栈具有后进先出的特点,比如在生活中,我们用浏览器上网时一连窜点击了好几个链接,这个时候想回到前一页,点击后退按钮就能实现了,这就运用了栈的特点。
栈按存储结构(物理结构)分为:顺序栈和链式栈,其对应的是顺序表和链表。
下面是顺序栈的进栈和出栈代码实现及图解。
①顺序栈进栈(push)图解:
②顺序栈进栈(push)代码:
int push(SqStack &st,int x) { if(st.top==maxsize-1) return 0; ++(st.top);//先移动指针,再进栈 st.data[st.top]=x; return 1; }
③顺序栈出栈(pop)图解:
④顺序栈出栈(pop)代码:
int pop(SqStack &st,int &x) { if(st.top==-1) return 0; x=st.data[st.top];//先取出元素,再移动指针 - -(st.top); return 1; }
以上代码用到了自增和自减运算符,++top和- -top这两个运算的效率要比对应的top++和top- -高。++top是自增1后再进行赋值运算,top++是赋值运算后,再自增1,其它两个同理。
文章评论 (0)