Data Structure 체인 대기 열 (하나)
제목.
체인 대기 열 을 이용 하여 환자 의 진찰 을 실현 하 는 시 뮬 레이 션 프로그램.(1) 대기 열의 저장 구 조 를 정의 합 니 다.(2) 대열 의 초기 화, 빈 것 인지, 입 대 · 출 대 등 기본 조작 여 부 를 판단 한다.(3) 대기 열의 기본 조작 을 호출 하여 환자 의 진찰 시 뮬 레이 션 프로그램 은 대기 열, 진료, 조회, 탈퇴 등 기능 을 포함한다.
코드
//
#include
#include
#include
using namespace std;
//
//
typedef struct QNode
{
int data;
struct QNode *next;
}QNode,*QueuePtr;
typedef struct LinkQueue
{
//
QueuePtr front;
//
QueuePtr rear;
}LinkQueue;
//
void InitQueue_L(LinkQueue &Q)
{
QueuePtr p=new QNode;
p->next=NULL;
Q.front=Q.rear=p;
}
//
void DestroyQueue_L(LinkQueue &Q)
{
// Front
while(Q.front)
{
//
//
//
Q.rear=Q.front->next;
delete Q.front;
Q.front=Q.rear;
}
}
//
void ClearQueue_L(LinkQueue &Q)
{
//
//
//
//
//
QueuePtr p,q;
p=Q.front->next;
while(p)
{
q=p;
p=p->next;
delete q;
}
Q.front->next=NULL;
Q.rear=Q.front;
}
//
int QueueLength_L(LinkQueue Q)
{
QueuePtr p;
p=Q.front;
int length;
length=0;
while(p->next)
{
length++;
p=p->next;
}
return length;
}
//
void GetHead_L(LinkQueue Q,int &e)
{
if(Q.front->next==NULL)
{
cout<<"The Queue is EMPTY."<<endl;
return;
}
else
{
e=Q.front->next->data;
return;
}
}
//
void EnQueue_L(LinkQueue &Q,int &e)
{
//
QueuePtr p;
p->data=e;
p->next=NULL;
//
Q.rear->next=p;
Q.rear=p;
return;
}
//
void DeQueue_L(LinkQueue &Q,int &e)
{
if(Q.front->next==NULL)
{
cout<<"The Queue is EMPTY."<<endl;
return;
}
QueuePtr p;
//p front
p=Q.front->next;
e=p->data;
Q.front->next=p->next;
//
if(Q.rear==p)
{
Q.rear=Q.front;
}
delete p;
}
void SeeDoctor()
{
LinkQueue Q;
//
InitQueue_L(Q); // Q
int flag=1; // flag=1: ;=0:
char ch;
while(flag)
{
cout<<" :";
cin>>ch;
switch(ch)
{
case 'a' :
case 'A' :
cout<<" :";
int n;
cin>>n;
cout<<endl;
EnQueue_L(Q,n);//
break;
case 'n' :
case 'N' :
if(Q.front->next)
{
int n;
DeQueue_L(Q,n); //
cout<<" "<<n<<" "<<endl;
}
else
cout<<" 。"<<endl;
break;
case 's' :
case 'S' :
cout<<" :";
while(Q.front->next)
{//
int n;
DeQueue_L(Q,n);
cout<<n<<" ";
}
cout<<endl<<" !"<<endl;
flag=0;
break;
default:
cout<<" !"<<endl;
}
}
} // SeeDoctor
int main()
{
void SeeDoctor();
SeeDoctor();
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Sparse Table을 아십니까? 나는 알고 있다.Sparse Table을 지금 배웠으므로, 메모를 겸해 씁니다. 불변의 수열의 임의의 구간에 대한 최소치/최대치를, 전처리 $O(N\log N)$, 쿼리 마다 $O(1)$ 로 구하는 데이터 구조입니다. 숫자 열의 값...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.