stati c функция стека не 1) принимает ввод 1-го элемента 2) распознает старый элемент при добавлении нового элемента - PullRequest
0 голосов
/ 09 января 2020

Существует массив узлов (структура) и используется в качестве стека. он имеет 3 функции

  • для добавления новых элементов (pu sh)
  • для удаления элементов (pop)
  • для отображения (отображения)

проблемы:

  1. не сохраняет первый вход

  2. при добавлении нового входа, он заменяет предыдущий узел на новый ввод.

пожалуйста, помогите мне определить, где я ошибся

#include <iostream>
#include<conio.h>
#include<process.h>

struct node
{
    int x, y;
};
int top = -1;
class stack
{
    node s[30];
public:
    void push();
    void pop();
    void display();
};
void stack::push()
{
    if (top < 29)
    {
        cout << "enter elements" << endl;
        int a, b;
        cin >> a >> b;
        top = top + 1;
        s[top].x = a;
        s[top].y = b;
    }
    else
    {
        cout << "OVERFLOW" << endl;
    }
}

void stack::pop()
{
    node temp;
    temp = s[top];
    top--;
    cout << "element" << temp.x << "&" << temp.y << " has been deleted" << endl;
}

void stack::display()
{
    for (int i = 0; i < top; i++)
    {
        cout << s[top].x << "&" << s[top].y << endl;
    }
}
void main()
{
    clrscr();
    stack sup;
     int choice = 1;
    do
    {
        cout << "1.add" << endl << "2.delete" << endl << "3.display" << endl;
        int c;
        cin >> c;
        switch (c)
        {
            case 1:
                sup.push();
                sup.display();
                break;
            case 2:
                sup.pop();
                sup.display();
                break;
            case 3:
                sup.display();
                break;
            default:
                cout << "error in switch case" << endl;
        }
        cout << "enter 1 to perform more operations" << endl;
        cin >> choice;
    } while (choice == 1);
    getch();
}

1 Ответ

1 голос
/ 09 января 2020

Вы удаляете и воссоздаете свой стек (sup) на каждой итерации вашего l oop. Декларация должна быть до do.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...