用数组模拟队列的实现

参照《算法导论》P120伪代码实现。
head指向队首，tail指向队尾后一个位置，即下一个入队元素的添加位置，队列可以循环入队和出队；
添加了溢出条件判定。当head == tail时，队列为空；当head == (tail + 1) % (capacity +
1)时队列已满。数组中head和tail之间有一个元素不放数据，故动态申请时申请capacity+1个整型变量内存空间。
用数组模拟栈的实现

参考《算法导论》P119-P120伪代码。
top为指向栈顶元素的下标，初始为0；
添加了溢出条件判定。当top == 0时，栈为空；当top == capacity时栈已满；
入栈时，先top++，后入栈；出栈时，先记录出栈元素值，后top--；
数据存放在stack[1..capacity]中，stack[0]不放数据，故动态申请时多申请一个(capacity +
1个)整型变量内存空间。