预习的时候写的栈,不是很严格
/*
* My_stack.h
*
* Created on: 2016年2月4日
* Author: triose
*/
#ifndef MY_STACK_H_
#define MY_STACK_H_
#include<iostream>
#include<string>
using namespace std;
template <class T>
class StackElmt {
public:
T data;
StackElmt<T> * next;
StackElmt(T data_) {
data = data_;
next = NULL;
}
void creat(T data_) {
data = data_;
next = NULL;
}
};
template <class T>
class My_stack {
private:
int size;
StackElmt<T>* top;
public:
My_stack(){
size = 0;
top = NULL;
}
void push(StackElmt<T> * new_elmt) {
if(size == 0) {
size++;
top = new_elmt;
return ;
}
new_elmt->next = top;
top = new_elmt;
size++;
return ;
}
void pop() {
if(size == 0) {
return ;
}
StackElmt<T> * delete_elmt = top;
top = top->next;
size--;
delete delete_elmt;
return ;
}
int get_size() {
return size;
}
StackElmt<T> * get_top() {
return top;
}
void output() {
while(this->size > 0) {
cout << this->top->data << " ";
this->pop();
}
cout << endl;
}
};
#endif /* MY_STACK_H_ */