简易倒货架

/*
商品货架,货架顶商品的生产日期最早,货架底商品的生产日期最近。
上货时,需要倒货架,以保证生产日期较近的商品在较下的位置。
设计2个算法实现“倒货架”的过程。
要求:1算法1使用栈或队列实现。
*/

在这里插入代码片
#define Maxsize 100
#define STACKINCREMENT 10
typedef struct shelf_stack {
int *base;
int *top;
int stacksize;                    //堆栈结构
}Sqstack,*Stack;
void init_stack(Stack s);         //创建一个堆栈
void pop_stack (Stack s,int *e);  //删除栈顶元素,将栈顶元素用e返回
void push_stack(Stack s,int e);   //将元素e入栈
void transfer(Sqstack s,Sqstack t,int k);   //倒货架函数```
#include<stdio.h>
void insert_sort(int A[],int N)                    //插入排序,按从大到小排序
{
int temp,p,i;
for(p=1;p<N;p++)
	{
		temp=A[p];
		for(i=p;A[i-1]<temp&&i>0;i--)
		A[i]=A[i-1];
A[i]=temp;
	}
}
int main()
{
printf("***************Administrion Of Goods Shelf System***************\n");
int k,i,length;
i=0;
printf("Please input the information of present goods:\n");
    while(k!=-1){                                //输入原有的货物直到-1结束
    scanf("%d",&k);
    if(k>0) {
        A[i]=k;i++;}
    }
    printf("Please input the information of new goods:\n");
    scanf("%d",&k);                               //输入新货物
     A[i]=k;
     length=i+1;
printf("****************************renewing****************************\n"); 
insert_sort(A,length);
{
for(i=length-1;i>=0;i--)                            //从上到下输出排序好的货物
{
    printf("%d\n",A[i]);
}
printf("*****************************over*****************************\n"); 
while(1);
return 0;
}
}

分析过程
从上到下输入货物,-1为结束输入。再输入新货物的参数。
倒货架函数三个输入参数,堆栈S,堆栈T,放入的新货物。将S货架导入T中,直到货架日期小于新货架。将小于的那一个i货品先弹出 。将新货品入栈。小于新货品的物品入栈。将s的货继续倒入t中。t中的货倒入s中。再将t中的货物按生产日期从远到近输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值