1、 2、 后进先出 3、栈的应用 从A出发进是入栈,红色的出是出栈 4、创建栈的思路
zhan* zhancreat(int len) { zhan* s; if ((s = (zhan*)malloc(sizeof(zhan))) == NULL) { printf("s fail\n"); return NULL; } if ((s->date = (int*)malloc(len * sizeof(int))) == NULL) { printf("s->date fail\n"); return NULL; } memset(s->date,0,len*sizeof(int)); s->maxlen = len; s->top = -1; return s; }
5、入栈思路
int zhaninseart(zhan* z,int a) { if (z->top == N) { return -1; } z->top++; z->date[z->top] = a; return 0; }
6、出栈思路
int zhanout(zhan* z) { if (z == NULL) { return -1; } if (z->top == -1) { return -1; } while (z->top != -1) { z->top--; printf("%d ",z->date[z->top+1]); } printf("\n"); return 0; }
7、链式栈(就是把链表当栈用 )