zoukankan      html  css  js  c++  java
  • MyStack

    #pragma once
    
    
    class MyQueue
    {
    public:
        MyQueue();
        ~MyQueue();
        void Insert(int aValue);
        int Top();
        void Pop();
        void PrintQueue();
        void PrintHead();
    
    private:
        int GetIncreIndex(const int& aIndex);
    
    private:
        int* m_pData;
        int m_Length;
        int m_Count;
        int m_Head;
        int m_Tail;
    };
    View Code
    #include "MyQueue.h"
    #include <stdio.h>
    #include <string.h>
    #include <malloc.h>
    #include <stdlib.h> 
    
    MyQueue::MyQueue( void )
    :m_pData(NULL)
    , m_Length(8)
    , m_Head(0)
    , m_Tail(0)
    , m_Count(0)
    {
        m_pData = (int*)malloc(sizeof(int)*m_Length);
        memset(m_pData,0,m_Length);
    }
    
    void MyQueue::Insert( int aValue )
    {
        m_pData[m_Tail] = aValue;
        m_Tail = (m_Tail+1)%m_Length;
        ++m_Count;
    
        if (m_Count == m_Length-1)
        {
            m_Length = m_Length << 2;
            m_pData = (int*)realloc(m_pData,sizeof(int)*m_Length);
        }
    }
    
    int MyQueue::Top()
    {
        return m_pData[m_Head];
    }
    
    void MyQueue::Pop()
    {
        if (m_Count == 0)
        {
            printf("NoData
    ");
            return;
        }
        m_Head = (m_Head+1)%m_Length;
        --m_Count;
    }
    
    MyQueue::~MyQueue()
    {
        delete []m_pData;
    }
    
    void MyQueue::PrintQueue()
    {
        if (m_Count > 0)
        {
            int lTempIndex = m_Head;
            do 
            {
                printf("%d ", m_pData[lTempIndex]);
                lTempIndex = GetIncreIndex(lTempIndex);
            } while (lTempIndex != m_Tail);
        }
    
        printf("
    ");
    }
    
    int MyQueue::GetIncreIndex( const int& aIndex )
    {
        return (aIndex+1)%m_Length;
    }
    
    void MyQueue::PrintHead()
    {
        if (m_Count==0)
        {
            printf("NoData
    ");
            return;
        }
        printf("Head: %d
    ",m_pData[m_Head]);
    }
  • 相关阅读:
    7.2.7 其他的MediaRecorder方法
    7.2.6 MediaRecorder示例
    7.2.5 MediaRecorder状态机
    【风马一族_代码英语】代码英语之一
    【风马一族_Android】Android 前端内容1
    【风马一族_Android】Android 前端内容
    ssm框架拦截器
    对象,字符串,集合判断
    保存Session、获取Session、移除Session
    Hello Quartz
  • 原文地址:https://www.cnblogs.com/xiangshancuizhu/p/3303247.html
Copyright © 2011-2022 走看看