参加“去哪儿”面试的一道题,面试官很严格,很注意细节,而我昨天从进门开始就犯迷糊,代码也写得一塌糊涂,回来后查了资料看了几遍,自己又写了几遍。这次面试得到的教训是:自己会的东西一定要懂得彻底,不能被问倒,尤其是基础的问题,更不能出现这种大概知道,细节实现不好的问题。
LinkQueue.h
#includeusing namespace std;template struct Node{ Node(T &d){ data=d; next=NULL; } T data; Node *next;};template class LinkQueue{ private: int length; Node *front; Node *rear; public: LinkQueue(T &n){ Node *p=new Node (n); length=0; front=rear=p; } bool Queuelength() { cout<<"当前队列长度:"< < *p=new Node (n); rear->next=p; rear=p; length++; } bool DelQueue(){ if(front==rear) return false; Node *p=front->next; front->next=p->next; if(front->next==NULL) rear=front; delete p; length--; return true; } void Tranverse() { Node *p=front->next; cout<<"遍历队列:"< data<<" "; p=p->next; } cout<
LinkQueue.cpp
#include "LinkQueue.h"int main(){ int head=0; LinkQueue *lq=new LinkQueue (head); lq->EnQueue(2); lq->EnQueue(4); lq->EnQueue(6); cout<<"当前队列"<Tranverse(); if(lq->DelQueue()){ cout<<"出队成功"< Queuelength(); lq->Tranverse(); lq->EnQueue(16); lq->EnQueue(18); lq->EnQueue(19); if(lq->DelQueue()){ cout<<"出队成功"< Queuelength(); lq->Tranverse(); if(lq->DelQueue()){ cout<<"出队成功"< Queuelength(); lq->Tranverse(); return 0;}