#include "PersonList.h"
#include <iostream>
#include <string>
using namespace std;
PersonList::PersonList()
{
head=NULL; //Head is a PersonRec*
}
struct PersonRec
{
string aName;
int aBribe;
PersonRec* link;
};
void PersonList::AddToList()
{
//string a;
//int b;
PersonRec* p;
p=new PersonRec;
p->link=NULL;
cout << "\nEnter the person's name: ";
cin >> p->aName;
cout<< "\nEnter the person's contribution: ";
cin >> p->aBribe;
if(head==NULL)
{
cout<<1<<endl;
head=p;
}
else if(head!=NULL) //The problem is in here.
{
PersonRec *currPtr=head;
bool x=true;
while(x==true)
{
currPtr=currPtr->link;
if(currPtr==NULL)
{
currPtr=p;
x=false;
}
}
}
}
Это программа, которая должна вводить имя и взятку в связанный список посредством распределения динамической памяти и выводить результат по запросу (я только разместил функцию ввода здесь, потому что это единственный с проблемами). Первый элемент входов и выходов отлично, но если я попытаюсь ввести второй, он не будет выводиться. Программа компилируется, но так как добавление узла для всех узлов после первого отличается, проблема должна быть связана с той частью, которую я прокомментировал как проблему. Любая помощь будет оценена по достоинству. Это домашнее задание, да, поэтому любые подсказки будут оценены.Связанный список программ с динамическим распределением памяти
Пожалуйста, добавьте код, который вы используете для вывода содержимого списка. Что заставило вас думать, что проблемы нет? –
Проблема была там, потому что я только что исправил ее, извините за то, что не опубликовал ее раньше. – user2167980
Для добавления в список вам нужно установить 'tail-> link = newElement', правильно? Но вы, кажется, не делаете этого нигде, то как оно добавляется в список? – balki