用陣列去模擬棧

2021-06-06 00:24:06 字數 1161 閱讀 8909

用資料模擬棧,在一定的程度上提高了效率。但浪費了一些空間。下面我附上**:

#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 在學習棧時我們可以把它想象成乙個桶,依次放入東西,在取東西時只能從上面依次取出,不可能直接取出下面的東西。棧...

陣列模擬棧

棧的結構相當於生活中常見的一端封閉,一端開頭的容器,如下圖 底部封死後,只能通過上邊的埠來訪問東西,即先放入的後取出。棧就是這樣一種結構。棧 是一種線性資料結構,並且棧中的元素只能先入後出,並且最早進入的元素存放的位置叫棧底 封閉端 最後進入的元素存放的位置叫棧頂 開口端 可以通過陣列或者鍊錶來實現...