1.栈的结构体
2. 栈的初始化
3. 栈的尾插
4. 栈的尾删
5. 栈顶的数据
6. 栈的大小
7. 销毁栈
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
#define MAX 1024
template<class T1>
class stack {
public:
T1 address[MAX];
int m_size;
public:
stack() {
this->m_size = 0;
}
void push(const T1& val) {
this->address[this->m_size] = val;
m_size++;
}
void pop(const T1& val) {
m_size--;
}
T1& top() {
return this->address[this->m_size-1];
}
int stack_size() {
return this->m_size;
}
};
class person {
public:
person() {
}
person(string name, int age) {
this->name = name;
this->age = age;
}
public:
string name;
int age;
};
void main() {
stack<person> myStack;
person p1("zhangsan", 10);
person p2("lisi", 20);
person p3("wangwu", 30);
myStack.push(p1);
myStack.push(p2);
myStack.push(p3);
for (int i = 0; i < myStack.m_size; i++) {
cout << myStack.address[i].name << " " << myStack.address[i].age << endl;
}
person stack_top = myStack.top();
cout << stack_top.name <<" " << stack_top.age << endl;
//for (int i = 0; i < myStack.m_size; i++) {
// cout << i;
//}
}