• 测试一下live writer,请无视 - [Diary]

    2010-01-25

    测试

     

    测试代码框

    #include <iostream>
    #include <assert.h>
    using namespace std;
     
    template <class Type>
    struct Node
    {
        Type data;
        Node * next;
    };
     
    template <class Type,class Node = Node<Type>>
    class Queue
    {
    private:
        Node * _front;
        Node * _rear;
        int _size;
    public:
        Queue()
        {
            _front = new Node;
            _front->next = NULL;
            _rear = _front;
            _size = 0;
        }
        ~Queue()
        {
            Node * pCur;
            while(_front != NULL)
            {
                pCur = _front;
                _front = _front->next;
                delete pCur;
            }
        }
     
        void push(const Type & data)
        {
            Node *newNode = new Node;
            newNode->data = data;
            newNode->next = NULL;
            _rear->next = newNode;
            _rear = newNode;
            _size++;
        }
        void pop()
        {
            assert(_front != _rear);
            Node * pCur = _front;
            _front = _front->next;
            delete pCur;
            _size--;
        }
        Type & front()
        {
            assert(_front != _rear);
            return _front->next->data;
        }
        int size()
        {
            return _size;
        }
    };
     
    int main()
    {
        _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
     
        Queue<int> iQueue;
        iQueue.push(1);
        iQueue.push(2);
        iQueue.push(3);
     
        cout <<iQueue.size() <<endl;
     
        cout <<iQueue.front() <<endl;
        iQueue.pop();
        cout <<iQueue.front() <<endl;
     
     
        system("pause");
        return 0;
    }