标签:顺序 tac i++ void main pre size 基本 its
1 #include <stdio.h> 2 #define StackSize 100 3 typedef int DataType; 4 typedef struct{ 5 DataType data[StackSize]; 6 int top; 7 }SeqStack; 8 9 void InitStack(SeqStack * S); 10 void Push(SeqStack *S,DataType x); 11 int Pop(SeqStack * S,DataType * ptr); 12 int GetTop(SeqStack * S,DataType*ptr); 13 int Empty(SeqStack * S); 14 int Print(SeqStack * S); 15 16 int main(){ 17 DataType x; 18 SeqStack S; 19 InitStack(&S); 20 printf("对5和10执行入栈操作:\n"); 21 Push(&S,15); 22 Print(&S); 23 Push(&S,10); 24 Print(&S); 25 if(GetTop(&S,&x)==1) 26 printf("当前栈顶元素为:%d\n",x); 27 if(Pop(&S,&x)==1) 28 printf("执行一次出栈操作,删除元素:%d\n",x); 29 if(GetTop(&S,&x)==1){ 30 printf("当前栈顶元素为:%d\n",x); 31 } 32 printf("请输入待入栈元素:"); 33 scanf("%d",&x); 34 Push(&S,x); 35 if(Empty(&S)==1) 36 printf("栈为空\n"); 37 else 38 printf("栈非空\n"); 39 return 0; 40 } 41 42 void InitStack(SeqStack * S){ 43 S->top=-1; 44 printf("初始化成功!\n"); 45 } 46 void Push(SeqStack * S,DataType x){ 47 if(S->top==StackSize-1){ 48 printf("上溢错误,插入失败\n"); 49 } 50 S->data[++S->top]=x; 51 printf("入栈成功!\n"); 52 } 53 int Pop(SeqStack * S,DataType * ptr){ 54 if(S->top==-1){ 55 printf("下溢错误,删除失败\n"); 56 return 0; 57 } 58 *ptr = S->data[S->top--]; 59 return *ptr; 60 } 61 int GetTop(SeqStack * S,DataType*ptr){ 62 if(S->top==-1){ 63 printf("下溢错误,取栈顶失败\n"); 64 return 0; 65 } 66 *ptr = S->data[S->top]; 67 return 1; 68 } 69 int Empty(SeqStack * S){ 70 if(S->top==-1) 71 return 1; 72 else 73 return 0; 74 } 75 int Print(SeqStack * S){ 76 printf("栈内元素:\n"); 77 for(int i=0;i<=S->top;i++){ 78 printf("%d ",S->data[i]); 79 } 80 printf("\n"); 81 }
标签:顺序 tac i++ void main pre size 基本 its
原文地址:https://www.cnblogs.com/wy0526/p/11788516.html