Я пытаюсь сделать программу стека с динамически распределенным связанным списком, и я очень смущен всем этим. Во всяком случае, я создал собственную конструкцию стека, но отображает только первый элемент. Вот мой main.cpp файл:Стек отображает только первое значение?
// (Description in Word File)
#include "Prototypes.h"
unsigned seed = time(0);
int main()
{
int random; // score between 30 and 95
Stack stk; // stack of random scores
srand(seed);
// Populate that stack!
for (int count = 0; count != 20; count++)
{
// generate a random number between 30 and 95
random = (95 - (rand() % 65)) + 1;
stk.push(random);
// just to check for values
//cout << stk.lst.getFirst() << endl;
}
// now display
stk.lst.print();
return 0;
}
Вот функции, используемые в файле:
int List::getFirst() const{
return first->data;}
void List::addFirst(int value)
{
Node* tmp = new Node(value);
first = tmp;
}
void Stack::push(int value){
lst.addFirst(value);}
void List::print() const
{
Node* cur = first;
cout << "\tValues:\n\n";
for (int count = 1; cur != nullptr; count++)
{
cout << " " << cur->data;
// print in rows of 5
if ((count % 5) == 0)
cout << endl;
// move down the list
cur = cur->next;
}
cout << endl << endl;
}
Наконец, вот те структуры, которые я использовал:
struct Node
{
int data;
Node* next;
Node(int value) : data(value), next(nullptr){}
};
struct List
{
Node* first; // a pointer to the first Node
List() : first(nullptr){}
void addFirst(int);
int getFirst() const;
bool removeFirst();
void addLast(int);
int getLast() const;
bool removeLast();
void print() const;
};
struct Stack
{
List lst;
void push(int);
int pop();
bool isEmpty() const;
};
Может кто-то объяснить, для меня, почему отображается только одно значение? Пожалуйста, сделайте это простым, я новичок в программировании. Благодаря!
Спасибо! Это сработало! – SoloMael
Yup! Добро пожаловать в SO; здесь принято помещать галочку на ответ, который решает вашу проблему, чтобы указать людям, которые ищут похожие вопросы, что это правильно. Кроме того, я получаю rep для него = D. – sqykly
Извините, я забыл. Спасибо за напоминание. – SoloMael