zoukankan      html  css  js  c++  java
  • c++ template Queue

    #pragma once
    #include <iostream>
    #include <iomanip>

    using namespace std;

    template<class T>
    class Queue
    {
      struct Node
      {
        T a;
        Node *next;
      };

    public:
      Queue();
      void push(T b);
      void pop();
      int getlength();
      virtual void print();

      private:
      Node *head;
      Node *rear;
    };

    template<class T>
    void Queue<T>::push(T b)
    {
      Node *p1 = new Node;
      p1->a = b;
      p1->next = NULL;
      rear->next = p1;
      rear = p1;
      head->a++;
      cout << setw(2) << b << setw(2) << "进入队列" << endl;
    }

    template<class T>
    void Queue<T>::pop()
    {
      Node *p;
      p = head->next;
      cout << " " << setw(2) << p->a << setw(2) << "出队" << endl;
      head->next = p->next;
      delete p;
      head->a--;
    }

    template<class T>
    int Queue<T>::getlength()
    {
      return head->a;
    }

    template<class T>
    void Queue<T>::print()
    {
      Node *p;
      p = head->next;
      cout << "队列中的元素" << endl;
      while (p)
      {
        cout << p->a << "->";
        p = p->next;
      }
      cout << "NULL" << endl;
    }

    template<class T>
    Queue<T>::Queue()
    {
      rear = head = new Node();
    }

  • 相关阅读:
    jsp设置footer底部内容
    dashboard项目心得:
    深度和广度优先算法
    一个action读取另一个action里的session
    算法笔记-0302
    JAVA基础---面向对象
    Flutter 读写本地文件
    Dart 处理json,built_value库
    Flutter 页面入栈和出栈
    web项目如何使用Material Icons
  • 原文地址:https://www.cnblogs.com/herd/p/10969870.html
Copyright © 2011-2022 走看看