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++数据结构-栈-创新互联
URL地址:http://scjbc.cn/article/ceooih.html