LinkQueue链式队列的实现

Posted 阿龙亡命天涯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LinkQueue链式队列的实现相关的知识,希望对你有一定的参考价值。




#ifndef LINKQUEUE_H
#define LINKQUEUE_H
#include "Queue.h"
#include "linklist.h"
#include "Exception.h"
namespace DragonLib 
template <typename T,int N>
class StaticQueue : public Queue

protected:
    LinkList<T> m_list;
public:
    LinkQueue()
    
    
    void add(const T&e)
    
        m_list.insert(e);
    
    void remove()
    
        if(m_list.length()>0)
        
            m_list.remove(0);
        
        else
        
            THROW_EXCEPTION(InvalidOperationException,"No element in current queue...");
        
    
    T front() const
    
        if(m_list,length()>0)
        
            return m_list.get(0);
        
        else
        
            THROW_EXCEPTION(InvalidOperationException,"No element in current queue...");
        
    
    void clear()
    
        m_list.clear();
    
    int length() const
    
        return m_list.length();
    
;


#endif // LINKQUEUE_H


优化:


第25行会调用10次构造函数,顺序队列和顺序栈都有这样的相同问题,效率不高

以上是关于LinkQueue链式队列的实现的主要内容,如果未能解决你的问题,请参考以下文章

链式队列的实现

java使用数组实现链式队列

数据结构之链式队列(C实现)

队列(Queue)的链式存储结构以及双端队列的相关概念(C语言)

[数据结构-严蔚敏版]P61ADT Queue的表示与实现(单链队列-队列的链式存储结构)

不带头节点的链式存储队列基本操作