• 数据结构笔记1顺序栈


    #include<stdio.h> 
    #include<conio.h>
    #include<stdlib.h>
    #define MAX 100
    typedef struct{
     int data[MAX];
     int top;
    }Stack;
    Stack s;
    //初始化 成功1
    int InitStack(Stack s){
     s.top=-1;
     return 1;
    }
    //判空 非空1
    int StackEmpty(Stack s){
     if(-1==s.top)
      return 0;
     return 1;

    //判满 未满1 
    int StackFull(Stack s){
     if(MAX-1==s.top)
      return 0;
     return 1;
    }
    //求长度 成功1输出长度 
    int StackLength(Stack s){
     printf("长度为%d",s.top+1);
     return 1;

    //访问栈顶 返回1输出元素 
    int GetTop(Stack s,int *e){
     e=s.data;
     printf("栈顶元素为%d",*e);
     return 1;

    //入栈 成功1 
    int Push(Stack s,int e){
     ++s.top;
     s.data[s.top]=e;
     printf("入栈成功! ");
     return 0;

    //出栈 成功1 
    int Pop(Stack s,int *e){
     *e=s.data[s.top];
     s.top--;
     return 1;

    int main(){
     int i,E,*e1,*e2;
     Stack L;
     printf("现在开始进行站的操作! ");
     if(1!=InitStack(L)){
      printf("初始化失败,按任意键退出! ");
      getch();
      exit(0);
     }
     if(1!=StackEmpty(L)){
      printf("栈的空间为空! ");
      exit(0);
     }
     printf("是否进行入栈操作?1-是");
     scanf("%d",&i);
     if(1==i){
      loop:
       printf("请输入你要入栈的元素:");
       scanf("%d",&E);
       if(1!=StackFull(L)){
        printf("栈空间已满! "); 
        printf("是否进行出栈操作1或者访问栈顶操作2? ");
        printf("请输入你的选择:");
        scanf("%d",&i);
        if(i==1)
         goto pop;
        else if(i==2)
         goto gettop;
        else{
         printf("操作失败,按任意键退出! ");
         getch();
         exit(0);
        }
       }
       else{
        Push(L,E);
        printf("是否继续入栈?1-是"); 
        scanf("%d",&i);
        if(i==1)
         goto loop;
       }
     }
     else{
      printf("是否进行出栈操作1或者访问栈顶操作2? ");
      printf("请输入你的选择:");
      scanf("%d",&i);
      if(i==1)
       goto pop;
      else if(i==2)
       goto gettop;
      else{
       printf("操作失败,按任意键退出! ");
       getch();
       exit(0);
      }
     }
     pop:
      Pop(L,e1);
      printf("是否继续进行出栈操作?1是");
      scanf("%d",&i);
      if(1==i)
       goto pop;
     gettop:
      GetTop(L,e2);
     printf("顺序栈的操作已经结束!");
     return 0;
    }

  • 相关阅读:
    【Mysql学习笔记】浅析mysql的binlog
    HBase 学习笔记---守护进程及内存调优
    字符集例子-同一字符不同字符集编码不同及导入导出的乱码
    随机访问
    格式化的代价
    读写文本文件
    缓冲
    加速I/O的基本规则
    序列化再探讨
    数据库I/O:CMP、Hibernate
  • 原文地址:https://www.cnblogs.com/100114jerro/p/4998729.html
Copyright © 2020-2023  润新知