点击这里给我发消息 点击这里给我发消息

用栈模拟商店进货系统

添加时间:2013-12-7
    相关阅读: 系统

    #define stacksize 10
    #include "stdio.h"
    #include <malloc.h>
    typedef strUCt
    {int num[stacksize];
     int top;
    }seqstack; /*栈定义*/

    typedef struct node
    {unsigned num;
     struct node *next;
    }linkqnode;

    typedef struct
    {linkqnode *front,*rear;}linkqueue; /*链队列定义*/

    void initstack(seqstack *s) /*初始化栈*/
    {s->top=-1;}

    int push(seqstack *s,int e)/*入栈*/
    {if(s->top==stacksize-1){printf("Stack is full!\n");return 0;}
     s->top++;
     s->num[s->top]=e;return 1;
    }


    int pop(seqstack *s,int *e)/*出栈*/
    {if(s->top==-1)return 0;
     *e=s->num[s->top];
     s->top--;
     return 1;
    }

    void printstack(seqstack *s)/*输出栈中元素,栈底到栈顶*/
    {int i;
     for(i=0;i<=s->top;i++)
     printf("%5d",s->num[i]);
     printf("\n");
    }

    int initqueue(linkqueue *q)/*初始化队列*/
    {
     q->front=(linkqnode*)malloc(sizeof(linkqnode));
     if(q->front!=NULL)
     {q->front->next=NULL;
     q->rear=q->front;return 1;
     }
     else return 0;
    }

     int enterqueue(linkqueue *q,int e)/*入队*/
     {linkqnode *s;
      s=(linkqnode*)malloc(sizeof(linkqnode));
      if(s!=NULL)
      {s->num=e;q->rear->next=s;s->next=NULL;q->rear=s;return 1;}
      else return 0;
     }

     int delqueue(linkqueue *q,int *e)/*出队*/
     {linkqnode *p;
     if(q->front==q->rear)return 0;
     p=q->front->next;
     q->front->next=p->next;
     if(q->rear==p)q->rear=q->front;
     *e=p->num;
     free(p);return 1;
     }

     main()/*主函数*/
     {seqstack s;
      linkqueue q;
      int goodsnum;

      initstack(&s);
      initqueue(&q);
      printf("输入进货商品号,-1结束:");
      scanf("%d",&goodsnum);

 


     while(goodsnum!=-1)
      {push(&s,goodsnum);scanf("%d",&goodsnum);}

      printf("\n原货架:\n");
      printstack(&s);

      while(s.top!=-1)
       if(pop(&s,&goodsnum))enterqueue(&q,goodsnum);

      while((q.front)->next!=NULL)
      {delqueue(&q,&goodsnum);
       push(&s,goodsnum);
      }
      printf("\n倒置后货架:\n");
      printstack(&s);
      }

 

相关用栈模拟商店进货系统

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册