kai


私信TA

用户名:dotcpp0729454

访问量:964

签 名:

思维改变生活态度

等  级
排  名 5576
经  验 1522
参赛次数 0
文章发表 7
年  龄 0
在职情况 学生
学  校 苍天剑海
专  业 杀手

  自我简介:

解题思路:无


注意事项:无

参考代码:

#include<stdio.h>

#include<stdlib.h>

#include<stdbool.h>

#include<string.h>

typedef struct ware_house{

    int num;

    struct ware_house *next;

}ware_ ,* WARE;


int push_ware(WARE head){

    WARE ware1=malloc(sizeof(ware_));

     

        ware1->next=head->next;

        head->next=ware1;

        scanf("%d",&ware1->num);

        

    

     return 0;

}


int pop_ware(WARE head){

     if(head->next==NULL)//判断栈空

        return false;

        

        WARE temp=head->next;

        head->next=head->next->next;

        free(temp);

     return 0;

}

int read_ware(WARE head){

   if(head->next==NULL){//判断栈空

       printf("E\n");

   }else{

       

       printf("%d\n",head->next->num);

   }

    return 0;

}


int FREE(WARE head){

    WARE temp=malloc(sizeof(ware_));

    while(head->next!=NULL){

        temp=head->next;

        head->next=temp->next;

        free(temp);

        

    }

    

    return 0;

}



int main()

{       WARE head=malloc(sizeof(ware_));

        head->next=NULL;

        char ch;

        int n;

   

    while(scanf("%d",&n)&&n!=0){

         

        int count=1;

        while(count<=n){

            getchar();

            scanf("%c",&ch);

            switch(ch){

                case 'P':

                push_ware(head);

                break;

                case 'O':

                pop_ware(head);

                break;

                case 'A':

                read_ware(head);

                break;

                default:

                break;

            }

            

            count++;

        }

        printf("\n");

       FREE(head);

      

    }

    free(head);

return 0;

}


 

0.0分

1 人评分

  评论区

  • «
  • »