• c++实现队列


        参加“去哪儿”面试的一道题,面试官很严格,很注意细节,而我昨天从进门开始就犯迷糊,代码也写得一塌糊涂,回来后查了资料看了几遍,自己又写了几遍。这次面试得到的教训是:自己会的东西一定要懂得彻底,不能被问倒,尤其是基础的问题,更不能出现这种大概知道,细节实现不好的问题。

    LinkQueue.h

    #include<iostream>
    using namespace std;
    
    template <typename T>
    struct Node{
        Node(T &d){
            data=d;
            next=NULL;
        }
        T data;
        Node *next;
    };
    
    template <typename T>
    class LinkQueue{
        private:
            int length;
            Node<T> *front;
            Node<T> *rear;
        public:
            LinkQueue(T &n){
                Node <T> *p=new Node<T>(n);
                length=0;
                front=rear=p;
            }
            bool Queuelength()
            {
                cout<<"当前队列长度:"<<length<<endl;
                return true;
            }
            bool IsEmpty(){
                return length==0;
            }
            void EnQueue(T n)
            {
                Node<T> *p=new Node<T>(n);
                rear->next=p;
                rear=p;
                length++;
            }
            bool DelQueue(){
                if(front==rear)
                  return false;
                Node<T> *p=front->next;
                front->next=p->next;
                if(front->next==NULL)
                    rear=front;
                delete p;
                length--;
                return true;
            }
            
            void Tranverse()
            {
                Node<T> *p=front->next;
                
                cout<<"遍历队列:"<<endl;
                while(p!=NULL)
                {
                    cout<<p->data<<" ";
                    p=p->next;
                }
                cout<<endl;
            }
    };

    LinkQueue.cpp

    #include "LinkQueue.h"
    
    int main(){
        int head=0;
        LinkQueue<int> *lq=new LinkQueue<int>(head);
        lq->EnQueue(2);
        lq->EnQueue(4);
        lq->EnQueue(6);
        cout<<"当前队列"<<endl;
        lq->Tranverse();
        if(lq->DelQueue()){
            cout<<"出队成功"<<endl; 
        }
        lq-> Queuelength();
        lq->Tranverse();
            lq->EnQueue(16);
        lq->EnQueue(18);
        lq->EnQueue(19);
        if(lq->DelQueue()){
            cout<<"出队成功"<<endl; 
        }
        lq-> Queuelength();
        lq->Tranverse();
        if(lq->DelQueue()){
            cout<<"出队成功"<<endl; 
        }
        lq-> Queuelength();
        lq->Tranverse();
        return 0;
    }
  • 相关阅读:
    py-day1-2 python的循环语句
    B/S和C/S结构的区别
    php get_magic_quotes_gpc() addslashes()
    SqlHelper数据库访问类
    随滚动条滚动的居中div
    有关Repeater的事件
    Repeater的ItemCommand事件和ItemCreated事件,高手请跳过~
    温故而知新之数据库的分离和附加…高手请跳过….
    自己做的一个小功能~
    php什么是变量的数据类型
  • 原文地址:https://www.cnblogs.com/lanying/p/4889399.html
Copyright © 2020-2023  润新知