標籤:數值 儲存方式 color err div def 添加 初始 nod
#include <stdio.h>#include <stdlib.h> //提供malloc()原型#include <stdbool.h> //提供true false原型#define MaxSize 10#define ERROR -1typedef struct SNode *Stack;typedef int ElementType ;struct SNode { ElementType *Data; //數組存放資料 int Top; //top指明棧頂的位置 int Maxsize; //堆棧最大容量};Stack CreateStack(int Max){ Stack S = (Stack)malloc(sizeof(struct SNode)); S->Data = (ElementType *)malloc(Max * sizeof(ElementType)); S->Top = -1; S->Maxsize = Max; return S;}bool Push(Stack PtrS,ElementType item){ if(PtrS->Top==MaxSize-1) //判斷數組是否已滿 { printf("堆棧已滿!"); return false; } else { PtrS->Data[++(PtrS->Top)] = item; //添加元素並更新top return true; }}ElementType Pop(Stack PtrS){ if(PtrS->Top == -1) { printf("堆棧空"); //判斷數組是否已空 return ERROR; } else { return (PtrS->Data[(PtrS->Top)--]); //傳回值並更新top }}int main(){ Stack Ptr; int Tmp; Ptr=CreateStack(10); //初始化棧 Push(Ptr,10); //在數組0的位置Push 數值10 Tmp = Pop(Ptr); // 取出棧的最上面的值賦給變數Tmp printf("%d",Tmp); return 0;}
C語言實現棧(順序儲存方式)