棧的順序儲存結構與基本運算
阿新 • • 發佈:2018-12-19
// // main.cpp // 棧的基本運算 // // Created by 柯木超 on 2018/12/3. // Copyright © 2018年 柯木超. All rights reserved. // #include <iostream> #define maxsize 10 // 棧:先進後出,只有一個數據區域和頭部指標 typedef struct { int data[maxsize]; int top; }stask, *seqStask; // 建立棧 seqStask createStask(){ seqStask stask; stask = (seqStask)malloc(sizeof(stask)); for (int i=0;i<10;i++){ stask->data[i] = i; stask->top = i; } return stask; } // 元素進棧 seqStask insertStask(seqStask stask, int data){ stask->data[stask->top] = data; stask->top ++; return stask; } // 元素出棧 int deleteStaskData(seqStask stask){ int data = stask->data[stask->top]; stask->top --; return data; } // 取棧頂元素 int getTopStask(seqStask stask){ int data = stask->data[stask->top]; return data; } // 輸出棧元素 void printStask(seqStask stask){ for (int i=0;i<stask->top;i++){ printf("%d",stask->data[i]); } printf("\n"); } int main(int argc, const char * argv[]) { seqStask stask = createStask(); printStask(stask); deleteStaskData(stask); printStask(stask); insertStask(stask, 50); printStask(stask); int data = getTopStask(stask); printf("%d",data); return 0; }