#include<iostream> using namespace std; template<class datatype> struct Node { datatype data; Node<datatype> *next; }; template <class datatype> class link { private: Node<datatype> *front, *rear; public: link() { Node<datatype> *s = NULL; s = new Node<datatype>; s->next = NULL; front = rear = s; } ~link() { Node<datatype> *p = NULL; while (front != NULL) { p = front->next; delete front; front = p; } } void inqueue(datatype x) { Node<datatype> *s = NULL; s = new Node<datatype>; s->data = x; s->next = NULL; rear->next = s; rear = s; } datatype outqueue() { Node<datatype> *p = NULL; int x; if (rear == front) throw"下溢"; p = front->next; x = p->data; front->next = p->next; if (p->next == NULL) rear = front; delete p; return x; } datatype getqueue() { if (front != rear) return front->next->data; } int empty() { if (front == rear) return 1; else return 0; } }; void main() { link<int> q; if (q.empty()) cout << "队列为空" << endl; else cout << "队列非空" << endl; cout << "15,36,77入队" << endl; try { q.inqueue(15); q.inqueue(36); q.inqueue(77); } catch(char* wrong) { cout << "wrong" << endl; } cout << "队头元素:" << endl; cout << q.getqueue() << endl; cout << "执行出队操作:" << endl; try { q.outqueue(); } catch (char* wrong) { cout << wrong << endl; } cout << "查看队头元素" << endl; cout << q.getqueue() << endl; }
实验2:链队列
猜你喜欢
转载自blog.csdn.net/u011633428/article/details/80086586
今日推荐
周排行