3.数据结构-栈

该文章展示了一个用C++实现的模板类`stack`,用于存储`person`对象。类包含了栈的基本操作,如初始化、尾部插入(push)、尾部删除(pop)、获取栈顶元素以及获取栈的大小。在`main`函数中,创建了三个`person`对象并压入栈中,然后打印栈中所有元素及栈顶元素的信息。
摘要由CSDN通过智能技术生成

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;
	//}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋进在AI路上的小李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值