数据结构之栈与队列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构之栈与队列相关的知识,希望对你有一定的参考价值。

(本文参考《剑指offer》总结笔记,供学习使用)

  栈是一种常见的数据结构,在操作系统中会给每个进程创建一个栈来存储函数调用时各个函数的参数、返回地址以及临时变量等。栈的特点是后进先出。

   队列是另外一种很重要的数据结构,队列的特点是先进先出。


例:用两个栈实现队列

队列声明:
template <typename T> class CQueue
{
    public:
        CQueue(void);
        ~CQueue(void);
        
        void appendTail(const T& node);
        T deleteHead();
    private:
        stack<T> stack1;
        stack<T> stack2;
};

//使用两个栈模拟一个队列的操作
template<typename T> void CQueue<T>::appendTail(const T& element)
{
    stack1.push(element);
}
template<typename T> T CQueue<T>::deleteHead()
{
    if(stack2.size()<=0)
    {
        while(stack1.size()>0)
        {
            T& data=stack1.top();
            stack1.pop();
            stack2.push(data);
        }
    }
    if(stack2.size()==0)
        throw new exception("queue is empty");
    
    T head=stack2.top();
    stack2.pop();
    
    return head;
}


本文出自 “11773640” 博客,谢绝转载!

以上是关于数据结构之栈与队列的主要内容,如果未能解决你的问题,请参考以下文章

数据结构之栈与队列

SDUT 2449 数据结构实验之栈与队列十:走迷宫

数据结构实验之栈与队列九:行编辑器

SDUT-2131_数据结构实验之栈与队列一:进制转换

SDUT 3332 数据结构实验之栈与队列五:下一较大值

SDUT-2449_数据结构实验之栈与队列十:走迷宫