使用单链表实现c++栈结构。
首先要加入头文件slist.h
http://blog.csdn.net/qq_16192007/article/details/51504630
stack.h
#ifndef _STACK_H_INCLUDED
#define _STACK_H_INCLUDED
#include "slist.h"
template<typename T>
class Stack {
public:
Stack() : hb_slist() {}
~Stack() {}
bool empty() const { return hb_slist.empty(); }
void clear() { hb_slist.clear(); }
int size() const { return hb_slist.size(); }
T top() const { return hb_slist.value(hb_slist.size()); }//查看栈顶元素。
void push(const T& elem) { hb_slist.push_back(elem); }//压人栈中。
T pop() { return hb_slist.pop_back(); }//弹出栈。
private:
Slist<T> hb_slist;//声明一个单链表的对象为成员变量。
};
#endif
test.cpp
#include "stdafx.h"
#include <iostream>
#include "stack.h"
int main()
{
Stack<int> stack;
stack.push(2);
stack.push(6);
stack.push(9);
int num = stack.size();
std::cout << stack.top() << std::endl;
for (int i = 0; i != num; ++i)
std::cout << stack.pop() << "-";
std::cout << std::endl;
std::cout << stack.top() <<std::endl;
return 0;
}