📄 dd.cpp
字号:
#include<iostream.h>
#include <cmath>
#include <ctime>
//using namespace std;
// 使用RAND_MAX
#include <time.h>
#include <stdio.h>
#include<windows.h>
int stack_size=100;
int sleep(int n)//休眠n*0.1秒
{
while(n--)
{
Sleep(100);//休眠0.1秒
//每0.1秒执行一次
}
return 0;
}
typedef struct Lnode{
double floor; //进入哪层楼
int outfloor; //要去那层楼
double giveuptime; //能忍耐多长时间
double Intertime; //下一人出现的时间
}Lnode,*person; // 定义人的结构体
//入电梯的队列链式存储结构
typedef struct Queue{
Lnode man;
struct Queue *next;
}Queue,*people;
typedef struct{
int count;
people front; //队头指针
people rear; //对尾指针
}linkqueue;
int Initqueue(linkqueue &Q) //构造一个空队列
{
Q.front=Q.rear=new Queue;
Q.front->next=NULL;
return 1;
}
int Enqueue(linkqueue &Q,Lnode &e) //插入元素
{
people p=new Queue;
p->man=e;
p->next=NULL;
Q.rear->next=p;
Q.rear=p;
return 1;
}
int Dequeue(linkqueue &Q,Lnode &e) //删除元素
{
if(Q.front==Q.rear)
return 0;
people p=new Queue;
p=Q.front->next;
Lnode *k=&e;
*k=p->man;
Q.front->next=p->next;
if(Q.front==p)Q.rear=Q.front;
delete p;
return 1;
}
//栈的顺序存储结构
typedef struct{
struct Lnode *base;
struct Lnode *top;
int stacksize;
}Sqstack;
int initstack(Sqstack &s)
{
s.base=new Lnode[stack_size];
s.top=s.base;
s.stacksize=stack_size;
return 1;
}
int Push(Sqstack &s,Lnode &e)
{
if(s.top-s.base>=s.stacksize){
s.base =(Lnode *)realloc(s.base,(s.stacksize+stack_size)*sizeof(Lnode));
s.top=s.base+s.stacksize;
s.stacksize+=stack_size;
}
//person l=new Londe;
*s.top=e;
s.top++;
return 1;
}
int Pop(Sqstack &s,Lnode &e)
{
//if(s.top=s.base)return ERROR;
--s.top;
e=*s.top;
return 1;
}
void main()
{
Sqstack s;
initstack(s);
linkqueue Q[5];
for(int i=0;i<5;i++)
{
Initqueue(Q[i]);
}
Lnode l={1,2,3,5};
Lnode b={0,0,0,0};
for(i=0;i<5;i++)
{
Enqueue(Q[i],l);
Enqueue(Q[i],b);
Lnode w;
Dequeue(Q[i],w);
cout<<w.floor<<endl;
cout<<w.Intertime<<endl;
Dequeue(Q[i],w);
cout<<w.floor<<endl;
cout<<w.Intertime<<endl;
}
Sqstack v;
initstack(v);
Push(v,l);
Push(v,b);
Lnode y;
Pop(v,y);
cout<<y.floor<<endl;
Pop(v,y);
cout<<y.floor<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -