永发信息网

数据结构停车场

答案:1  悬赏:10  手机版
解决时间 2021-07-19 14:32

#define FALSE 0
#define TURE 1
#define N 3

#include<stdio.h>

typedef struct
{
int number;
int t_come;
int t_go;
} car,*CAR;


typedef struct Stack
{
CAR c[N];
int n;

}Stack;


typedef struct Node
{
car *Car;
struct Node *next;

}LinkQueueNode;

typedef struct
{
LinkQueueNode *front;
LinkQueueNode *rear;
}LinkQueue;

Stack S;
LinkQueue Q;
LinkQueue ranglu;
int Time;

void print();
int QInit_queue()
{
Q.front=(LinkQueueNode *)
malloc(sizeof(LinkQueueNode));
if(Q.front !=NULL)
{
Q.rear =Q.front ;
Q.front ->next =NULL;
return( TURE );
}
else return(FALSE);



}

int rangluInit_queue()
{
ranglu.front=(LinkQueueNode *)
malloc(sizeof(LinkQueueNode));
if(ranglu.front !=NULL)
{
ranglu.rear =ranglu.front ;
ranglu.front ->next =NULL;
return( TURE );
}
else return(FALSE);



}

int Enter_queue( car x)
{
int i=0;
LinkQueueNode *temp;
temp=(LinkQueueNode *)
malloc(sizeof(LinkQueueNode));
if(temp == NULL)
return( FALSE);
else
{
*(temp->Car) = x;
temp->next = NULL;
Q.rear ->next=temp;
Q.rear=temp;



i++;

return(i);

}
}

int Enter_ranglu_queue( car x)
{
int i=0;
LinkQueueNode *temp;
temp=(LinkQueueNode *)
malloc(sizeof(LinkQueueNode));
if(temp == NULL)
return( FALSE);
else
{
*(temp->Car) = x;
temp->next = NULL;
ranglu.rear ->next=temp;
ranglu.rear=temp;



i++;

return(i);

}
}

CAR DeleteQueue()
{
LinkQueueNode *p;
if(Q.front == Q.rear)
return( FALSE);
p=Q.front->next;
Q.front ->next=p->next ;
if(Q.rear==p)
Q.rear=Q.front;
p->Car->t_come =Time;
return(p->Car);
}
CAR Delete_ranglu_queue()
{

LinkQueueNode *p,*pre;
if(ranglu.front == ranglu.rear)
return( FALSE);
p=ranglu.rear;
p->Car->t_come =Time;

pre=ranglu.front;
while(pre->next->next!=NULL) pre=pre->next;
ranglu.rear=pre;
return(p->Car);
free(p);


}

comein()
{
car mm;


printf("\n\tPlease put in the coming car's number: ");
scanf("%d",&mm.number);


printf("\n\tPlease put in the car's come time: ");
scanf("%d",&mm.t_come);
Time=mm.t_come ;
if(S.n<N)
{
car *temp;
temp=(car *)malloc(sizeof(car));
*temp=mm;
S.c[S.n]=temp;
S.n++;
printf("\nThe car insert the stack %d",S.n);
}
else
{
printf("\n\rThe car insert the queue %d",Enter_queue(mm));
}

}

goout()
{
int i,j;
int str;
CAR mm;
car *huifu;
printf("\n\tPlease put in the number of the going car: ");
scanf("%d",&str);
for(i=0;i<S.n;i++)
{
if(S.c[i]->number!=str) i++;

if(S.c[i]->number==str) break;


Enter_ranglu_queue(*S.c[i]);
}



if(i==N || S.n==0)
printf(" Not in the stack");


else{

printf("\n\tPlease put in the go time: ");
scanf("%d",&Time);
S.c[i]->t_go=Time;
printf("%d %d",i+1,S.c[i]->number);
printf("\n Stop time *money is %d*2.5",S.c[i]->t_go - S.c[i]->t_come);


while(ranglu.rear!=ranglu.front&&i>=0)
{

*(S.c[i])=*(Delete_ranglu_queue());
i--;
}

if(Q.rear!=Q.front&&i>=0)
{S.c[i]=DeleteQueue();}

}
}


void print()
{
int i;
LinkQueueNode *temp=Q.front;
printf("\n\n----------------------------------------\n");
printf("The cars in the Stack\n");
printf("place \t number\n");
for(i=0;i<S.n;i++)
printf("%4d\t %4d \n",i+1, S.c[i]->number);
i=0;

if(Q.front != Q.rear)
{
printf("\nThe cars in the queue:\n");
printf("place \t number\n");
while(temp!=Q.rear)
{
i++;
temp=temp->next;
printf("%4d \t %4d \n",i, temp->Car->number);
}
}
else
printf("\nThere is no car in the queue.");
printf("\n------------------------ok------------");
}


main()
{
int k;
char ch;
S.n=0;
QInit_queue();
rangluInit_queue();
while(1)
{ fflush(stdin);

printf("\n\n\rPLEASE CHOSE:\n\tC: COME IN\n\tG: GO OUT \n\tF: LOOK\n\t0: EXIT");
ch=getch();

if(ch=='c'||ch=='C')
comein();

else if(ch=='g'||ch=='G')
goout();
else if(ch=='f'||ch=='F')
print();
else if(ch=='0'||ch=='O' || ch=='o'||ch==27)
break;
}

for(k=0;k<N;k++)
{
printf("%d",S.c[k]->number);
}
}
帮帮忙改改错。。。



最佳答案
你好 楼主。
很幸运的看到你的问题。
但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。
可能是你问的问题有些专业了,没人会。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也比较热心,可能能快点帮你解决问题。
希望我的回答也能够帮到你!
祝你好运。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
号真的不会被封吗
干邑白兰地配什么食物,轩尼诗新点干邑白兰地
有什么超级搞笑的港台电影啊
请问,诺基亚E63手机下载的游戏怎么显示不完
谁有飞蛾扑火的MP3吖,跪求,
感情可以换位思考吗?
林俊杰最近出新歌了么?
泡澡桶用什么材质好,木浴桶哪个品牌好,怎么
不灭之王菠萝丁的称号是怎么来的
NDF哪种角色攻击力强?
厨师义工队口号,北京义工联盟口号是什么
银河网吧在哪里啊?
1996年7月28日是什么8:10分是什么星座
阿字开头的诗句,有没有书字和晴字开头的诗句
谁能给我找几本养鸡方面的书籍?谢谢!
推荐资讯
DNF魔道的扫帚最贵的是什么扫帚,要好多钱
手机QQ农场什么时候才可以玩呀
分隔两地的爱情可不可以长久?
寂寞怎解决?
表达发式.记叙.说明.描写,议论.抒情怎么区别?
形容雨下的很及时很舒服的诗句有哪些
战地之王怎样才可以玩?现在不能玩吗?
欧蓝德劲界有没有空调后排出风口?
日本京都哪些景观最美?
在银行怎么样投资基金
一起来看流星雨都上过什么节目
暮光之城第2部大概什么时候上?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?