• 数据结构笔记3双向栈


    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    #define MAX 100
    //定义两个方向生长的栈 
    typedef struct{
     int data[MAX];
      int top1,top2;
    }DDStack;
    DDStack s;
    //创建 
    int InitStack(DDStack s){
     s.top1=-1;
      s.top2=MAX-1;
      return 0;
    }
    //判满
    int FullStack(DDStack s){
      if(s.top1==s.top2-1)
       return 1;
      return 0;

    //入栈  奇数放左边偶数放右边 
    int PushStack(DDStack s,int e){
      int i=0;
      int count=0;
      if(e%2==0){
        s.data[i++]=e;
        s.top2--;
        count++;
      }
      else{
        s.data[i++]=e;
        s.top1++;
        count++;
      }
     return count;

    //显示
    int ShowStack(DDStack s,int count){
      if(-1==s.top1&&MAX==s.top2){
        printf("栈是空的! ");
       exit(0);
    }
     else
        for(int i=0;i<count-1;i++)
          printf("%d ",s.data[i]);
      printf("%d",s.data[count-1]);
     return 0;
    }
    //出栈
    int PopStack(DDStack s,int count){
      int i;
      loop:
      printf("请选择你要出栈的方向:1-左边,2-右边");
      scanf("%d",&i);
      if(i==1){
      s.top1--;
       count--;

      else if(i==2){
        s.top2++;
       count--;
    }
      else
        printf("你的输入有误,清再次输入! ");
      return count;
    }
    int main(){
      DDStack s;
      int i,e,count;
      if(InitStack(s)){
        printf("创建失败,按任意键返回! ");
        getch();
        exit(0); 
    }
      else{
        printf("请输入你要入栈的个数:");
        scanf("%d",&i);
        printf("请输入你要入栈的数据:");
        for(int j=0;j<i;j++){
          if(FullStack(s)){
            printf("占已满!无法进行入栈操作! ");
           break;
          }
          scanf("%d",&e);
          PushStack(s,e);
          count=PushStack(s,e);
          printf("111 ");
         }
        ShowStack(s,count);
     }
      printf("是否进行出栈操作?1-是");
      printf("请输入你的数字:"); 
      scanf("%d",&i);
      if(i==1){
        count=PopStack(s,count);
        ShowStack(s,count);
     }
      else
        printf("栈的操作已经结束! ");
      printf("栈的操作已经结束! ");
      return 0;
    }

  • 相关阅读:
    分片副本监控优化备份分词器03
    es score限制
    German Collegiate Programming Contest 2017 G. Water Testing
    SQL注入以及sqlmap初体验
    BUUCTF [极客大挑战 2019]Upload 1
    DVWA—File Upload 文件上传
    DVWA—XSS 跨站脚本攻击
    WUSTCTF2020 佛说:只能四天
    猪圈密码
    2016全国大学生信息安全竞赛 破译
  • 原文地址:https://www.cnblogs.com/100114jerro/p/4998738.html
Copyright © 2020-2023  润新知