C++DAY6

手动实现顺序栈,要求实现数据结构中,所有栈的相关操作

#include 

using namespace std;
//定义节点,使用模板类
template
class Node{
private:
    Type data;//数据元素
    Type* next;//指针域
    int top;//栈顶
    int maxsize;//栈的最大容量
public:
    //定义栈的最大容量
    Node(int s);
    //析构函数
    ~Node();
    void push(Type d);
    void pop();
    void output();
};
//定义栈的最大容量
template
Node::Node(int s):maxsize(s) {
    next = new Type[s];
    top = 0;//初始化栈顶位置
}
//析构函数
template
Node::~Node() {
    delete []next;
    next = nullptr;
}
template
void Node::push(Type d){//入栈
    if(this->top == maxsize){//判满
        throw string("栈满");
    }
    this->next[this->top++] = d;//赋值
    cout<<"入栈成功"<
void Node::pop(){//出栈
    if(-1 == this->top){//判空
        throw string("栈空");
    }
    cout<<"出栈的是"<next[--this->top]<
void Node::output(){//遍历d
    for(int i = 0; i < this->top; i++){
        cout<
void Menu(void)
{
    //传栈的最大容量
    int size = 0;
    cout<<"请输入栈的最大容量>>>";
    cin>>size;
    Node s(size);
    int n = 0;
    Type d;
    while(1){
NEXT:
        cout<<"/----------------/"<>>";
        cin>>n;
        switch(n){
        case 1:
            cout<<"请输入要入栈的数据>>";//接收数据
            cin>>d;
            try{s.push(d);}catch(const string str){cout<();

    return 0;
}

你可能感兴趣的:(c++,算法,图论)