Как решить ошибку сегментации в коде реализации стека по связанному списку - PullRequest
0 голосов
/ 07 июля 2019

Показывает ошибку сегментации в консоли вывода при запуске кода. Как это исправить? Я немного знаю об ошибке сегментации, хотя не смог найти ошибку. Здесь я создал два класса. Один для стека. Еще один для Node. Вот мой код:

#include<iostream>
using namespace std;
class Node
{
    int data;
    Node* link;
public:
    void setData(int a)
    {
        data=a;
    }
    int getData()
    {
        return data;
    }
    void setLink(Node* a)
    {
        link=a;
    }
    Node* getLink()
    {
        return link;
    }
};
class stack
{
    int number=0;
    int n;
    Node* t;
    Node* start;
public:
    void push(int z)
    {
        //cout<<"d1"<endl;
        Node* temp=new Node();
        if(start==NULL){
            start->setData(z);
            start->setLink('\0');
            t=start;
            number++;
            cout<<"d1"<endl;
        }
        else{
            if(number==10){
                cout<<"stack is overflowed"<<endl;
            }
            else{
                temp=start;
                while(temp->getLink()!=NULL){
                    temp=temp->getLink();
                }
                t->setData(z);
                t->setLink('\0');
                temp->setLink(t);
                cout<<"d2"<endl;
                number++;
            }
        }
    }
    int pop()
    {
        if(t==NULL){
            cout<<"stack is empty"<<endl;
            return 0;
        }
        else{
            Node* temp;
            while(temp->getLink()!=t){
                temp=temp->getLink();
            }
            t=temp;
            temp=temp->getLink();
            return temp->getData();
        }
    }
};
int main()
{
    stack s1;
    s1.push(2);
    s1.push(3);
    cout<<s1.pop()<<endl;
}
...