本文共 1745 字,大约阅读时间需要 5 分钟。
class LinkNode{ public: int data; LinkNode *next;};
class LQueue{ public: LQueue(); virtual ~LQueue(); //析构函数 void InitQueue(LQueue &); //初始化队列 void EnQueue(LQueue &,int&); //入队 void TraverseQueue(LQueue &); //遍历 bool isEmpty(LQueue &); //判空 bool DelQueue(LQueue&,int&); protected: private: LinkNode *front,*rear;};LQueue::LQueue(){ //ctor}LQueue::~LQueue(){ //dtor}//初始化队列void LQueue::InitQueue(LQueue &LQ){ LQ.front=LQ.rear= new LinkNode [sizeof(LinkNode)];//创建头结点,头结点不保存数据 LQ.front->next=NULL;}//入队void LQueue::EnQueue(LQueue &LQ,int& val){ LinkNode* q=LQ.rear; LinkNode* p=(LinkNode*)malloc(sizeof(LinkNode)); p->data=val; p->next=NULL; q->next=p; LQ.rear=p;}//判空bool LQueue::isEmpty(LQueue &LQ){ if(LQ.front==LQ.rear) return true; else return false;}//遍历void LQueue::TraverseQueue(LQueue &LQ){ LinkNode* p; if(isEmpty(LQ)) { cout<<"空队列!"<next; while(p!=NULL) { cout<<"元素为"< data< next; }}//出队bool LQueue::DelQueue(LQueue& LQ,int&x){ if(isEmpty(LQ)) return false; LinkNode *p=LQ.front->next; x=p->data; LQ.front->next=p->next; if(LQ.rear==p) LQ.rear=LQ.front; //当队伍中只有一个元素时,出队后就为空 free(p); return true;}
#include#include using namespace std;int main(){ int x[]={ 2,3,4,6}; int val=0; LQueue Lq; LQueue LQ2; LQueue Q; Lq.InitQueue(Q); Lq.InitQueue(LQ2); for(int i=0;i<(int)(sizeof(x)/sizeof(int));i++) { Lq.EnQueue(Q,x[i]); } cout<<"Q队伍为"<
转载地址:http://xdyki.baihongyu.com/