顺序栈
#include<stdlib.h> #include<stdio.h> //顺序栈 #define datatype int #define MAXSIZE 3 typedef struct { datatype data[MAXSIZE]; int top; }SeqStack; int main() { SeqStack s; //初始化 s.top = -1; //入栈:只要有空间则 if (s.top < MAXSIZE - 1) { int x; scanf("%d", &x); s.data[++s.top] = x; } else { printf("overflow"); } //出栈 if (s.top >= 0) { printf("%d",s.data[s.top]); s.top--; } else { printf("empty"); } getchar(); return 0; }
链栈
#include<stdlib.h> #include<stdio.h> //链栈 typedef struct node { int data; struct node * next; }Node,* LinkList; int main() { LinkList top=NULL; LinkList q=NULL; int a; for (int i = 0; i < 3; i++) { scanf("%d", &a); q = (LinkList)malloc(sizeof(Node)); q->data = a; q->next= top; top = q; } if (top) { LinkList p = top; printf("%d", top->data); top = top->next; free(p); } getchar(); system("pause"); //return 0; }