}
Q、front->next=p->next;
if (Q、rear==p) Q、rear=Q、front; free(p); return OK;
Status QueueEmpty(LinkQueue Q){ }
void Menu(LinkQueue &Q){
//输出选择界面 int select=1; QElemType e; while(select){
cout<<\cout<<\请选择以下功能:\cout<<\入队\cout<<\出队\cout<<\判断队空\cout<<\退出程序\cout<<\请输入您得选择\cin>>select; switch (select){ case 0:break; case 1:
cout<<\输入入队数据\cin>>e;
if(EnQueue(Q,e)){
cout<<\入队成功\
//判断对就是否为空
if(Q、front==Q、rear)return ERROR; return OK;
}
}
} break;
case 2:
if(DeQueue(Q,e)){ } break;
cout< case 3: } if(QueueEmpty(Q)) cout<<\此队不为空\else cout<<\此队为空\break; //QNode、h #ifndef QNODE_H #define QNODE_H #include QElemType data; struct QNode * next; }QNode,*QueuePrt; typedef struct { QueuePrt front; QueuePrt rear; }LinkQueue; Status InitQueue(LinkQueue &Q);//构造空队列 Status DestroyQueue(LinkQueue &Q);//销毁队列Q Status EnQueue (LinkQueue &Q,QElemType e);//插入元素a为Q得新得队尾元素 Status DeQueue (LinkQueue &Q,QElemType &e);//删除Q得队头元素,用e返回其值 Status QueueEmpty(LinkQueue Q);//判断对就是否为空 void Menu(LinkQueue &Q);//输出选择界面 #endif ? 运行结果: B顺序存储: ? 代码部分: //main、cpp: #include\、h\int main(){ SqQueue Q; if(InitQueue(Q)){ cout<<\创建队成功\ Menu(Q); DestroyQueue(Q); } return 0; } //SqQueue、cpp: #include\、h\ Status InitQueue(SqQueue &Q){ } Status EnQueue(SqQueue &Q,QElemType e){ } Status DeQueue(SqQueue &Q,QElemType &e){ } Status SqQueueEmpty(SqQueue Q){ } Status DestroyQueue(SqQueue &Q){ //销毁栈 Q、front=Q、rear=0; free(Q、base); //判断Q就是否为空 if(Q、front==Q、rear) return ERROR; return OK; //删除Q得对头元素,用e返回其值。 if(Q、front == Q、rear) return ERROR; e=Q、base[Q、front]; Q、front=(Q、front+1)%MAXSIZE; return OK; //插入元素e为Q得新队尾元素 if(((Q、rear+1)% MAXSIZE) == Q、front) return ERROR; Q、base[Q、rear]=e; Q、rear=(Q、rear+1)%MAXSIZE; return OK; //创建空队列 Q、base=(QElemType *)malloc(MAXSIZE * sizeof(QElemType)); if (!Q、base) exit(ERROR); Q、front=Q、rear=0; return OK;
相关推荐: