Tag:顺序栈

Tag (顺序栈)'s result:

Sequential stack

栈(stack)是先进后出的一种数据结构,要注意栈顶指针的移动,而且只能在栈顶进行操作。 #include <stdio.h> #include <stdlib.h> typedef struct { char stack[10]; //利用数组模拟栈 int top; //栈顶指针 } qstype; //初始化 void init(qstype *s) { s->top=-1; } //入栈 int push(qstype *s,int x) { if (s->top>=9) //0~9 10个元素 { return 0; } else { s->top++; //下标要从0开始 s->stack[s->top] = x; return 1; } } void main() { int ch,sign; qstype *s; s = (qstype *)malloc(sizeof(qstype)); init(s); printf(“顺序栈建立成功\n”); printf(“请输入数据并以-1结束\n”); scanf(“%d”,&ch); while (ch!=-1) { if ((sign=push(s,ch))==0) { printf(“数据溢出\n”); break; } else { scanf(“%d”,&ch); } } printf(“输出栈中元素\n”); //倒序输出(后进先出) while (s->top!=-1) //top最大是9 { s->top–; printf(“%d “,s->stack[s->top+1]); } printf(“\n”); }