Data Structureチェーン行列
データ構造教室作業実験六実験報告第1題 テーマ コード 第一題
テーマ
チェーンを使って患者の診察を実現するシミュレーションプログラムです.(1)キューの記憶構造を定義する.(2)キューの初期化を実現し、空、入隊、出隊などの基本操作を判断する.(3)行列の基本的な操作を呼び出して患者の診察を実現するシミュレーションプログラムは、行列、診察、問い合わせ、退出などの機能を含む.
コード
テーマ
チェーンを使って患者の診察を実現するシミュレーションプログラムです.(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;
}