Связанные списки (или помогите исправить код...)

Модератор: Модераторы разделов

KnupK
Сообщения: 65
ОС: openSUSE 10.2 x86_64

Связанные списки

Сообщение KnupK »

Помогите пожалуйста исправить код,так чтобы при введении в поле имени "exit" выводился весь список на экран :blush:

Код: Выделить всё

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <iostream>
#include <cstdlib>
#include <string>
#include <stdio.h>

class Human
{
  public:
  char szFirstName[128];
  char szLastName[128];
  int nAge;

  Human* pNext;
};

Human* pHead = 0;

void addTail(Human* pH)
{
pH->pNext = 0;

if (pHead ==0)
{
  pHead = pH;
  return;
}

Human* pCurrent = pHead;

while(pCurrent->pNext)
{
    pCurrent = pCurrent->pNext;
}
pCurrent->pNext = pH;
}

Human* getData()
{
    Human* pH = new Human;

    cout << "\nВведите имя: ";
    cin >> pH->szFirstName;

if ((strcmp(pH->szFirstName,"exit") ==0))
{
  delete pH;
  return 0;
}

    cout << "Введите фамилию: ";
    cin >> pH->szLastName;

    cout << "Введите возраст: ";
    cin >> pH->nAge;

   return pH;
}

void displayData(Human* pH)
{
            cout << pH->szFirstName
            << " "
            << pH->szLastName
            << ",возраст - "
            << pH->nAge;

}


int main()
{
   Human* pH;
   while(pH = getData())
   {
       addTail(pH);
   }

   while(pH)
  {
    displayData(pH);
    pH = pH->pNext;
  }

return 0;
}
So allein will ich nicht sein....
Спасибо сказали:
Аватара пользователя
Zeus
Сообщения: 694

Re: Связанные списки

Сообщение Zeus »

Ну навскидку: в main'е перед вторым циклом pH неплохо бы присвоить pHead.
Спасибо сказали:
KnupK
Сообщения: 65
ОС: openSUSE 10.2 x86_64

Re: Связанные списки

Сообщение KnupK »

О,спасибо :)
So allein will ich nicht sein....
Спасибо сказали: