链式队列

来源:互联网 发布:复利源码下载 编辑:程序博客网 时间:2024/05/01 04:37
链式队列

////  链式队列//  TestList////  Created by chenshang on 14-2-7.//  Copyright (c) 2014年 chenshang. All rights reserved.//#ifndef TestList_LinkQueue_h#define TestList_LinkQueue_h#include <iostream>using namespace std;typedef int T;class QueueNode{public:    QueueNode(const T item):data(item),next(NULL){}    T data;    QueueNode* next;};class LinkQueue{public:    LinkQueue():front(NULL),rear(NULL){}    ~LinkQueue(){        Empty();    }public:    void append(const T item);    T Delete(); //删除队列头元素    T getFront();    void Empty();    void print();    bool isEmpty()const{        return front==NULL;    }private:    QueueNode* front;    QueueNode* rear;};void LinkQueue::Empty(){    QueueNode* pdel;    while (front) {        pdel=front;        front=front->next;        delete pdel;    }}void LinkQueue::append(const T item){    if (front==NULL) {        front=rear = new QueueNode(item);    }else{        rear->next= new QueueNode(item);        rear=rear->next;    }}T LinkQueue::Delete(){    if (isEmpty()) {        cout<<"There is no element!"<<endl;        exit(1);    }    QueueNode* pdel = front;    T temp = front->data;    front=front->next;    delete pdel;    return temp;}T LinkQueue::getFront(){    if (isEmpty()) {        cout<<"There is no element!"<<endl;        exit(1);    }    return front->data;}void LinkQueue::print(){    QueueNode* pmove = front;    cout<<"front";    while (pmove) {        cout<<"-->"<<pmove->data;        pmove=pmove->next;    }    cout<<"->rear"<<endl<<endl<<endl;}#endif


0 0
原创粉丝点击