c++数据结构-栈-创新互联

简单说一下定义:

成都创新互联长期为上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为天山企业提供专业的成都网站设计、网站制作,天山网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。

栈是限定仅在表的一端进行插人和删除操作的线性表,允许 插人和删除的一端称为栈顶(stack top),另一端称为栈底(stack bottom),不含任何数据元素的栈称为空栈。

任何时刻出栈的元素都只 能是栈顶元素,即最后入栈者最先出栈,所以栈中元素除了具有线性关系外,还具有后进入栈。

下面说一下顺序栈的代码:

实现的功能:

  • 初始化栈(构造函数)
  • 销毁栈(析构函数)
  • 入栈
  • 出栈
  • 读取栈顶元素
  • 判断空
  • 打印
#include#include#define STACKSIZE 10
using namespace std;
templateclass Stack {public:
	//初始化(构造)
	Stack();
	//销毁(析构)
	~Stack();
	//入栈
	bool Push(int x);
	//出栈
	bool Pop();
	//读取
	int getTop();
	//判断空
	bool empty();
	//打印
	void prints();
private:
	int data[STACKSIZE];
	int top;
};
templateStack::Stack() {top=-1;
}
templateStack::~Stack() {top = -1;
	cout<< "栈已销毁"<< endl;
}
templatebool Stack::Push(int x) {if (top==STACKSIZE-1) {cout<< "栈满"<< endl;
		return false;
	}
	data[++top] = x;
	cout<< "元素x="<< x<< "入栈成功!"<< endl;
	return true;
}
templatebool Stack::Pop() {if (top==-1) {cout<< "栈为空!"<< endl;
		return false;
	}
	int x = data[top--];
	cout<< "栈顶元素x移除成功!x="<< x<< endl;
	return true;
}
templateint Stack::getTop() {if (top==-1) {cout<< "栈为空!"<< endl;
		return 0;
	}
	int x = data[top];
	return x;
}
templatebool Stack::empty() {if (top==STACKSIZE-1) {cout<< "栈已满!"<< endl;
		return false;
	}
	if (top==-1) {cout<< "栈为空!"<< endl;
		return true;
	}
}
templatevoid Stack::prints() {if (top==-1) {cout<< "栈为空!"<< endl;
	}
	else {while (top!=-1) {	cout<< data[top--]<< " ";
		}
		cout<< endl;
	}
}

void test() {Stacks;
	s.Push(1);
	s.Push(2);
	s.Push(3);
	//s.Pop();
	int x=s.getTop();
	if (x) {cout<< "获取栈顶元素x="<< x<< endl;
	}
	s.empty();
	s.prints();
	
}

int main() {test();
	system("pause");
	return 0;
}

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


分享文章:c++数据结构-栈-创新互联
网页路径:http://scyanting.com/article/ceooih.html