⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 duilie.cpp

📁 对队列操作,可以让人简单了解还可以加深对队列的理解
💻 CPP
字号:
#include<iostream.h>

struct QNode
{int data;
 QNode *next;
};
  
struct LinkQueue
{QNode *front,*rear;   
}; 


void endqueue(LinkQueue *Q)//将元素插入到队列的未尾
{  int x;
	cout<<"请输入要加入的队列元素:"<<endl;cin>>x;
	QNode *p;   
	p=new QNode;   
       p->data=x ; p->next=NULL ;       /*形成新结点*/
       Q->rear->next=p ;  Q->rear=p ;    
}

void front(LinkQueue *Q)
   //输出队列的第一个元素
  {      if  (Q->front->next==NULL)cout<<"队列为空"<<endl;  
     else  cout<<"第一个元素为:"<<Q->front->next->data<<endl;
	}


/*void show(LinkQueue *Q)
{LinkQueue *p;
 p=Q;
	while(p->front!=NULL)
{cout<<p->front->data<<endl;
 p->front=p->front->next;
}
	delete p;
}*/


void delqueue(LinkQueue *Q)
{QNode *p;
 if(Q->front==Q->rear)  
            cout<<"队列为空"<<endl;
 else  { p=Q->front->next ; 
        Q->front->next=p->next ; 
		if  (p==Q->rear)  Q->rear=Q->front ;
                       /*当队列只有一个结点时应防止丢失队尾指针*/
         delete p;
	     }
}

void makenull(LinkQueue *Q)
{while(Q->front!=Q->rear)
  delqueue(Q);
 cout<<"队列已置空"<<endl;
}


void main()
{LinkQueue  *Q ;
      QNode  *p ; 
     p=new QNode;    //开辟头结点
     p->next=NULL ;
      Q=new LinkQueue; //开辟链队的指针结点,头结点不参与运算
     Q->front=Q->rear=p; 
    char ans;
	
	
  while(ans!='0')
  {cout<<"        请选择操作                        "<<endl;
   cout<<"1.加入元素      2.输出队列的第一个元素    "<<endl;
   cout<<"3.将队列置空    4.删除队列的第一个元素    "<<endl;
   cout<<"0.退出                                    "<<endl;
   cin>>ans;
   switch(ans)
   {
   case '1':endqueue(Q);break;
   case '2':front(Q);break;
   case '3':makenull(Q);break;
   case '4':delqueue(Q);break;
   case '0':break;
   default:cout<<"输入错,请重新输入:"<<endl;
   }
  }  
}



   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -