标签:
#include <stdio.h> #include <stdlib.h> #include <iostream> using namespace std; typedef struct Node { int data; struct Node * next; }Node,*PNode; typedef struct Queue { PNode front; PNode rear; }Queue,*PQueue; //函数声明 void InitQueue(PQueue Q); void EnQueue(PQueue Q); void PrintQueue(PQueue Q); void DeQueue(PQueue Q); void showlist(); void selection(PQueue); bool empty(PQueue); int main() { Queue q; InitQueue(&q); selection(&q); system("pause"); return 0; } void showlist() { system("color 3e"); cout<<"**********************************"<<endl;; cout<<"************1.入队列**************"<<endl; cout<<"************2.出队列**************"<<endl; cout<<"************3.打印队列元素********"<<endl; cout<<"************4.退出****************"<<endl; cout<<"**********************************"<<endl; } void selection(PQueue q) { int opt; showlist(); while(1) { cout<<"请选择你的操作:"; cin>>opt; switch(opt) { case 1: EnQueue(q); system("color 7e"); break; case 2: DeQueue(q); system("color 6e"); break; case 3: PrintQueue(q); system("color 5e"); break; case 4: exit(-1); } } } //初始化 void InitQueue(PQueue Q) { Q->front=(PNode)malloc(sizeof(Node)); Q->rear=Q->front; Q->front->next=NULL; cout<<"初始化成功"<<endl; } //入队列 void EnQueue(PQueue Q) { int n; int x; cout<<"请输入要入队列的个数:"; cin>>n; for(int i=1;i<=n;i++) { cout<<"请输入第"<<i<<"个元素的值:"; cin>>x; PNode p; p=(PNode)malloc(sizeof(Node));//申请节点 p->data=x; p->next=NULL; Q->rear->next=p; Q->rear=p; } } //打印队列元素 void PrintQueue(PQueue Q) { PNode p; p=Q->front->next; cout<<"遍历队列的结果是:"<<endl; if(empty(Q)) cout<<"没有元素要打印!!"<<endl; else { while(p->next!=NULL) { cout<<p->data<<" "; p=p->next; } cout<<p->data<<endl;//打印最后一个元素 } } //出队列 void DeQueue(PQueue Q) { PNode p; if(Q->front == Q->rear) cout<<"对不起,没有元素,不能出队列!!!"<<endl; else { p=Q->front->next; //指向要出队的元素 Q->front->next=p->next; if(p->next=NULL) Q->rear=Q->front; cout<<"出队的元素是"<<p->data<<endl; free(p); } } bool empty(PQueue Q) { if(Q->front == Q->rear) return true; else return false; }
运行结果:
标签:
原文地址:http://my.oschina.net/lvguidong/blog/521528