#includeusing namespace std; typedef int T; //单链队列 class Qnode { public: T data; Qnode* next; }; class LinkQueue { public: LinkQueue(); ~LinkQueue(); void EnLinkQueue(); //入队 void DeLinkQueue(); //出队 void ShowLinkQueue(); //遍历 void GetEleLinkQueue(); //查找指定数值 private: Qnode* front; Qnode* rear; }; LinkQueue::LinkQueue() { front = rear = new Qnode; front->next = NULL; } LinkQueue::~LinkQueue() { while (front->next) { Qnode* ptemp; ptemp = front->next; front->next = ptemp->next; delete ptemp; ptemp = NULL; } delete front; front = rear = NULL; } void LinkQueue::EnLinkQueue() //入队 { Qnode* pnew = new Qnode; cout << "输入入队数据:" << " "; cin >> pnew->data; pnew->next = NULL; rear->next = pnew; rear = pnew; pnew = NULL; } void LinkQueue::DeLinkQueue() //出队 { if (front == rear) { cout << "空队!" << endl; } Qnode* ptemp = front->next; cout << "出队数据为:" << ptemp->data << endl; front->next = ptemp->next; if (rear == ptemp) { rear = front; } delete ptemp; ptemp = NULL; } void LinkQueue::ShowLinkQueue() //遍历 { Qnode* ptemp = front->next; cout << "队列元素为:" << endl; while (ptemp) { cout << ptemp->data << " "; ptemp = ptemp->next; } cout << endl; } void LinkQueue::GetEleLinkQueue() //查找指定数值 { int i = 0; int e = 0; cout << "输入查询值:" << " "; cin >> e; Qnode* ptemp = front->next; while (ptemp) { if (ptemp->data == e) { i++; } ptemp = ptemp->next; } cout << "队列中存在" << i << "个" << e << endl; } int main() { LinkQueue q; q.EnLinkQueue(); q.EnLinkQueue(); q.EnLinkQueue(); q.EnLinkQueue(); q.ShowLinkQueue(); q.GetEleLinkQueue(); q.ShowLinkQueue(); q.DeLinkQueue(); q.ShowLinkQueue(); system("pause"); return 0; }
实现效果如下:



