Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template <typename T>
- class Queue
- {
- private:
- T* arr;
- int c;
- public:
- Queue()
- {
- c = 0;
- }
- Queue(const Queue& obj)
- {
- c = obj.c;
- arr = new T[c];
- for (int i = 0; i < c; i++)
- arr[i] = obj.arr[i];
- }
- void push(T item)
- {
- T* arr1;
- arr1 = arr;
- arr = new T[c + 1];
- for (int i = 0; i < c; i++) {
- arr[i] = arr1[i];
- }
- item = arr[c];
- c++;
- if (c > 1)
- delete[] arr2;
- }
- T pop()
- {
- if (c == 0){
- return 0;
- }
- T item;
- item = arr[0];
- T* arr1;
- arr1 = new T[c - 1];
- c--;
- for (int i = 0; i < c; i++){
- arr1[i] = arr[i + 1];
- }
- if (c > 0){
- delete[] arr;
- }
- arr = arr1;
- return item;
- }
- Queue& operator=(const Queue& obj)
- {
- T* arr1;
- arr1 = new T[obj.c];
- if (c > 0) {
- delete[] arr;
- }
- arr = arr1;
- c = obj.c;
- for (int i = 0; i < c; i++) {
- arr[i] = obj.arr[i];
- }
- return *this;
- }
- ~Queue()
- {
- if (c > 0){
- delete[] arr;
- }
- }
- T GetItem()
- {
- if (c > 0){
- return arr[0];
- }
- else
- return 0;
- }
- void clear()
- {
- if (c > 0)
- {
- delete[] arr;
- c = 0;
- }
- }
- void print(const char* objName)
- {
- cout << "Object: " << objName << endl;
- for (int i = 0; i < c; i++)
- cout << arr[i] <<;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement