Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Quene.cpp : 定義主控台應用程式的進入點。
- //
- #include "stdafx.h"
- #include <iostream>
- using namespace std;
- template<class T, int maxsize = 20>
- class queue
- {
- public:
- queue(){ sq = 0; obj = 0; }
- T pop();
- void push(T in);
- void show_data(){ cout << endl << "***data[]="; for (int i = 0; i < sq; i++){ cout << data[i]; } cout << endl; }
- private:
- int sq, obj;
- T data[maxsize];
- static void error(){ cout << "\nQueue error!\n"; }
- void qswap(T* data, int sq);
- };
- template < class T, int maxsize>
- void queue<T, maxsize>::push(T in)
- {
- if (sq == maxsize)
- {
- error();
- }
- else
- {
- data[sq++] = in;
- obj++;
- }
- }
- template < class T, int maxsize>
- void queue<T, maxsize>::qswap(T* data, int sq)
- {
- for (int i = 1; i < sq; i++)
- {
- data[i - 1] = data[i];
- }
- }
- template < class T, int maxsize>
- T queue<T, maxsize>::pop()
- {
- if (obj == 0)
- {
- error();
- return 0;
- }
- else
- {
- T temp = data[0];
- cout << temp;
- obj--;
- qswap(data, sq);
- sq--;
- return temp;
- }
- }
- int main()
- {
- queue<int> qu1;
- queue<char, 10> qu2;
- qu1.push(1);
- //qu1.show_data();
- qu1.push(2);
- //qu1.show_data();
- qu1.push(3);
- //qu1.show_data();
- qu2.push('a');
- //qu2.show_data();
- qu2.push('b');
- //qu2.show_data();
- qu2.push('c');
- //qu2.show_data();
- qu1.pop();
- //qu1.show_data();
- qu1.pop();
- //qu1.show_data();
- qu1.pop();
- //qu1.show_data();
- qu2.pop();
- //qu2.show_data();
- qu2.pop();
- //qu2.show_data();
- qu2.pop();
- //qu2.show_data();
- qu2.pop();
- //qu2.show_data();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement