資料結構和演算法--棧的數組實現__JAVA

來源:互聯網
上載者:User
//棧的順序儲存(與順序表類似)#include <stdio.h>#include <stdlib.h>#define N 32//定義資料類型typedef int datatype_t;//定義結構體typedef struct {datatype_t data[N];int top;}seqstack_t;//建立一個空的棧seqstack_t *seqstack_create(){seqstack_t *s;s = (seqstack_t *)malloc(sizeof(seqstack_t));//s->top = 0;s->top = -1;return s;}//判斷棧是否為滿int seqstack_full(seqstack_t *s){//return s->top == N ? 1 : 0;return s->top == N - 1 ? 1 : 0; }//判斷棧是否為空白int seqstack_empty(seqstack_t *s){//return s->top == 0 ? 1 : 0;return s->top == -1 ? 1 : 0;}//入棧(壓棧)int seqstack_push(seqstack_t *s, datatype_t value){if(seqstack_full(s)){printf("seqstack is full\n");return -1;}//s->data[s->top] = value;//s->top++;s->top++;s->data[s->top] = value;return 0;}//列印資料int seqstack_show(seqstack_t *s){int i = 0;#if 0for(i = 0; i < s->top; i++){printf("%d ", s->data[i]);}putchar(10);#endif#if 1for(i = 0; i <= s->top; i++){printf("%d ", s->data[i]);}#endifputchar(10);return 0;}//出棧(彈棧)datatype_t seqstack_pop(seqstack_t *s){datatype_t value;if(seqstack_empty(s)){printf("seqstack is empty\n");return -1;}#if 0s->top--;value = s->data[s->top];#endif#if 1value = s->data[s->top];s->top--;#endifreturn value;}int main(int argc, const char *argv[]){seqstack_t *s = seqstack_create();seqstack_push(s, 10);seqstack_push(s, 20);seqstack_push(s, 30);seqstack_push(s, 40);seqstack_push(s, 50);seqstack_show(s);printf("%d\n", seqstack_pop(s));seqstack_show(s);printf("%d\n", seqstack_pop(s));seqstack_show(s);printf("%d\n", seqstack_pop(s));seqstack_show(s);printf("%d\n", seqstack_pop(s));seqstack_show(s);printf("%d\n", seqstack_pop(s));seqstack_show(s);printf("%d\n", seqstack_pop(s));seqstack_show(s);return 0;}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.