「已注销」 2022-09-29 10:53 采纳率: 0%
浏览 17
已结题

代码报错了看看问题在哪

看看这个代码错哪了感谢


#include<iostream>
using namespace std;
/********************************************************/
const int StackSize=10;
template<class T>
class SeqStack
{
    private:
        T data[StackSize];
        int top;
    public:
    
        
        SeqStack()
        {
            top=-1;
        }
        ~SeqStack()
        {
        }
        void push(T x);
        T pop();
        T GetTop()
        {
            if(top!=-1)
                return data[top];
        }
        bool Empty()
        {
            top=-1?(return 1):(return 0);
        }
};

template<class T>
void SeqStack<T>::push (T x)
{
    if(top==StackSize-1)
        throw "上溢";
    top++;
    data[top]=x;
}
template<class T>
T SeqStack<T>::pop()
{
    T x;
    if(top==-1)
        throw "下溢";
    x=data[top--];
    return x;
}

/****************************************************/
template<class T>
struct Node
{
    T data;
    Node<T> *next;
};

template<class T>
class LinkStack
{
private:
    Node<T> *top;
public:
    LinkStack()
    {
        top=NULL;
    }
    ~LinkStack()
    {
        
        while(top)
        {
            Node<T> *p;
            p=top->next;
            delete top;
            top=p;
        }
        
    }
    void push(T x);
    T pop();
    T gettop()
    {
        if(top!=NULL)
            return top->data;
    }
    bool Empty()
    {
        top==NULL?return 1:return 0;
    }
};

template<class T>
void  LinkStack<T>::push(T x)
{
    Node<T> *s;
    s=new Node<T>;       //没有申请空间时 会出现错误!
    s->data=x;
    s->next=top;
    top=s;
}
template<class T>
T LinkStack<T>::pop()
{
    T x;
    Node<T> *p;
    if(top==NULL)
        throw "下溢";
    x=top->data;
    p=top;
    top=top->next;
    delete p;
    return x;
}

/******************************************************/
int main()
{
    SeqStack<int>  aa;
    LinkStack<int> bb;

    for(int i=1;i<=5;i++)
        aa.push(i);
    
    cout<<"顺序栈出栈:";
    for( i=0;i<5;i++)
    {
        int k=0;
        k=aa.pop();
        cout<<k<<"   ";
    }
    
    cout<<endl;

    
    for( i=1;i<=5;i++)
        bb.push(i);
        
    cout<<"链式栈出栈:";
    for( i=1;i<=5;i++)
    {
        int j=0;
        j=bb.pop();
        cout<<j<<"   ";
    }
    cout<<endl;
}



  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-09-29 11:08
    关注

    你先说一下有啥现象啊

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月29日
  • 创建了问题 9月29日