网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

C++手写栈(stack)-创新互联

1. 为什么要用它

成都创新互联专注于绥江企业网站建设,成都响应式网站建设,商城网站制作。绥江网站建设公司,为绥江等地区提供建站服务。全流程按需求定制网站,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

是因为STL栈比手写栈慢,所以有人会用手写栈。

STL栈可以看看我的这篇文章:传送门。

2. 内容

作者这里只实现这几个基本的函数。

push(x)//压入元素x。

pop()//按先进后出弹出最顶端元素。

top()//查询最顶端元素。

size()//查询元素个数。

empty()//查询是否为空(若返回true为空,否则为不空)。

手写栈我们可以用数组来写,还可以用vector来写。

3. 代码

lv.1 散装:

只能调用函数对一个栈进行操作。

定义:写的时候就以定义。

int s[10005],n;//s栈,n栈的长度。
void push(int x){
	s[++n]=x;
}
void pop(){
	if(n!=0)n--;
}
int top(){
	if(n!=0)return s[n];
}
int size(){
	return n;
}
bool empty(){
	if(n==0)return 1;
	else return 0;
}

lv.2 struct封装:

可以不停定义新栈。

定义: 

Stack 栈名;
struct Stack{
	int s[10005],n;//s栈,n栈的长度。
	init(){
		n=0;
	}//构造函数:初始化。
	void push(int x){
		s[++n]=x;
	}
	void pop(){
		if(n!=0)n--;
	}
	int top(){
		if(n!=0)return s[n];
	}
	int size(){
		return n;
	}
	bool empty(){
		if(n==0)return 1;
		else return 0;
	}
};

lv.3 class封装:

可以设置站的类型;将栈的元素设为像STL栈一样不可访问。

定义:

Stack<类别>栈名;
templateclass Stack{
	public:
        init(){
			n=0;
		}//构造函数:初始化。
		void push(int x){
			s[++n]=x;
		}
		void pop(){
			if(n!=0)n--;
		}
		int top(){
			if(n!=0)return s[n];
		}
		int size(){
			return n;
		}
		bool empty(){
			if(n==0)return 1;
			else return 0;
		}
	protected:
		t s[10005];long long n;//s栈,n栈的长度。
};

今天的手写栈讲完了,快春节了,留个赞再走呗!收藏也行!🧡祝大家新年快乐!bye-bye!

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


标题名称:C++手写栈(stack)-创新互联
网站URL:http://bjjierui.cn/article/dhsegp.html

其他资讯