码迷,mamicode.com
首页 > 编程语言 > 详细

C++学习笔记49:栈

时间:2017-03-15 22:36:27      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:ack   blog   bsp   c++学习   void   end   --   logs   学习笔记   

栈是一种只能从一端访问的线性数据结构,栈是一种后进先出的数据结构

//stack.h
#ifndef STACK_H
#define STACK_H
#include <cassert>
template <class T, int SIZE = 50> class Stack
{
private:
    T list[SIZE];
    int top;
public:
    Stack();
    void push(const T &item);
    T pop();
    void clear();
    const T &peek() const;
    bool isEmpty() const;
    bool isFull() const;
};

//模板的实现
template <class T, int SIZE>
Stack<T, SIZE>::Stack():top(-1){}

template <class T, int SIZE> void Stack<T, SIZE>::push(const T &item)
{
    assert(!isFull());
    list[++top] = item;
}

template <class T, int SIZE> T Stack<T, SIZE>::pop() const
{
    assert(!isEmpty());
    return list[top--];
}

template <class T, int SIZE> const T &Stack<T, SIZE>::peek() const
{
    assert(!isEmpty());
    return list[top];
}

template <class T, int SIZE> bool Stack<T, SIZE>::isEmpty() const
{
    return top == -1;
}

template <class T, int SIZE> bool Stack<T, SIZE>::isFull() const
{
    return top == SIZE - 1;
}

template <class T, int SIZE> void Stack<T, SIZE>::clear()
{
    top = -1;
}

#endif // 

 

C++学习笔记49:栈

标签:ack   blog   bsp   c++学习   void   end   --   logs   学习笔记   

原文地址:http://www.cnblogs.com/hujianglang/p/6556836.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!