用数组模拟栈和队列(手写栈/队列)

模拟栈:

原理:开一个数组表示栈,用一个变量来记录当前栈顶位置

int stk[N],top;

压栈:存入栈顶的下一个下标

弹出:使栈顶的大小减一

取栈顶元素:栈顶位置的值

栈的大小:栈顶位置

清空栈:top=0

模拟队列:

原理:开一个数组表示队列,用变量front表示队首,用变量back表示队尾

int que[N],front,back;

压入:让数组中back的下一个下标存入数字

弹出:让front加一,即从队首弹出

获取队尾元素:back下标的值

获取队首元素:front下标的值

队列大小:back-front+1

清空队列:front=1,back=0

为什么使用手写栈/队列:

需要注意的事:

要注意调用元素的时候的下标引用,防止爆栈(下标越界,此时的界应为top/front/back),可能一些方法用不了,毕竟是简单实现

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部