#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(); ~link(); void Push(datatype x); //ru datatype Pop(); //chu datatype Gettop() //zhuqu { if (front != rear) return front->next->data; } int Empty() { if (front==rear) return 1; else return 0; } }; template <class datatype> link<datatype>::link() { Node <datatype> *s = NULL; s = new Node<datatype>; s->next = NULL; front = rear = s; } template <class datatype> link<datatype>::~link() { Node <datatype>*p = NULL; while (front != NULL) { p = front->next; delete front; front = p; } } template <class datatype> void link<datatype>::Push(datatype x) { Node<datatype> *s = NULL; s = new Node<datatype>; s->data = x; s->next = NULL; rear->next = s; rear = s; } template <class datatype> datatype link<datatype>::Pop() { 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; } void main() { link<int> s; if (s.Empty()) cout << "队列为空" << endl; else cout << "队列非空" << endl; cout << "元素23,33,43,53,63入队操作"<<endl; try { s.Push(23); s.Push(33); s.Push(43); s.Push(53); s.Push(63); } catch (char *wrong) { cout << wrong << endl; } cout << "查看队头元素" << endl; cout << s.Gettop() << endl; cout << "执行出队操作" << endl; try { s.Pop(); } catch (char *wrong) { cout << wrong << endl; } cout << "查看队头元素"<<endl; cout << s.Gettop()<< endl; }
实验2:链栈
猜你喜欢
转载自blog.csdn.net/u011633428/article/details/80085908
今日推荐
周排行