用資料模擬棧,在一定的程度上提高了效率。但浪費了一些空間。下面我附上**:
#include #include #define emptytos (-1)
#define minstacksize (5)
struct stackrecord;
typedef struct stackrecord *stack;
struct stackrecord;/*
* 建立乙個stack
*/stack createstack(int maxelements)
s = (stack)malloc(sizeof(struct stackrecord));
if (s == null)
s->array = (int *)malloc(sizeof(int)*maxelements);
if (s->array == null)
s->topofstack = -1;
s->capacity = maxelements;
// printf("topofstack`s value = %d, s->capacity = %d\n", s->topofstack, s->capacity);
return s;}/*
* 釋放棧
*/void disposestack(stack s)}/*
* 棧是否為空
*/int isempty(stack s)
/* * 清空棧。
*/void makeempty(stack s)
/* * 判斷棧是否滿
*/int isfull(stack s)
else
return 0; }
/* * push data.
*/void push(int x, stack s)}/*
* print stack.
*/void showstack(stack s)
else
}}/*
* 彈出第乙個數.
*/int top(stack s)
else }
/* * pop data.
*/int pop(stack s)
else }
int main(void)
用陣列模擬棧
用陣列模擬棧 棧是乙個先入後出 filo first in last out 的有序列表 允許插入和刪除的一端為變化的一端,稱為棧頂 top 另一端為固定的一端,稱為棧底 bottom public class arraystackdemo catch exception e break case ...
陣列模擬棧
在資料結構中棧是一種線性結構也是有序列表,棧的特點就是 filo 先進後出 棧是限制線性表中元素的增加和刪除只能在一端進行的特殊線性表,變化的一端為棧頂 top 固定的一端棧底 bottom 在學習棧時我們可以把它想象成乙個桶,依次放入東西,在取東西時只能從上面依次取出,不可能直接取出下面的東西。棧...
陣列模擬棧
棧的結構相當於生活中常見的一端封閉,一端開頭的容器,如下圖 底部封死後,只能通過上邊的埠來訪問東西,即先放入的後取出。棧就是這樣一種結構。棧 是一種線性資料結構,並且棧中的元素只能先入後出,並且最早進入的元素存放的位置叫棧底 封閉端 最後進入的元素存放的位置叫棧頂 開口端 可以通過陣列或者鍊錶來實現...