欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

栈的简单使用和运行结果

程序员文章站 2024-03-23 12:32:52
...
#include <stdio.h>
#include <stdlib.h>
#include<malloc.h>
#include<string.h>

#define STACK_SIZE 10 //定义数组10

typedef struct Stack{
  int stack[STACK_SIZE];
  int top;
} stack;

void init_Stack(stack *a){
    a->top=-1;
}

int Push(stack *a,int n){
    if(a->top==STACK_SIZE-1){
      printf("此栈已经满\n");
      return -1;
    }else{
        a->top++;
        a->stack[a->top]=n;
        printf("%d 已经成功压栈\n",a->stack[a->top]);
      return 0;
    }
}
int Pop(stack *a,int n){
    if(a->top==-1){
      printf("此栈无数字可弹出\n");
      return -1;
    }else{
    printf("弹出顺序%d\n",a->stack[a->top]);
     a->top--;//此顺序很重要
    }
}
int main(){

    stack a;
    int i=0;
    printf("@franklei__Coding\n"); //给自己的代码打个标记
    init_Stack(&a);
    // 定义了10个单位的栈,输入12个则有两个不会压栈
    for(i=1;i<=12;i++){
     Push(&a,i);
    }
    // 将压入栈中的数据打印出来
    printf("压入栈中的数据为\n");
   for(i=0;i<10;i++){
        printf("%d  ",a.stack[i]);
    }
    printf("弹出栈的数据为\n");
   for(i=1;i<=12;i++){
     Pop(&a,i);
    }
    system("pause");
    return 0;
}

栈的简单使用和运行结果