Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2012, 18:32   #1
KOMPNET
Пользователь
 
Регистрация: 30.09.2011
Сообщений: 55
По умолчанию Вывести линейный список

Здравствуйте, нужна помощь. Очень надо. Необходимо создать линейный список упорядоченный по фамилиям и вывести его на экран.
Код вроде написал. но есть сомнения в правильности его работы. т.к. не знаю как вывести на экран

Код C++

Код:
struct list
{char name[25];
list*next;
};
list*first=NULL;
 
void spisok()
{f=fopen("d:\\gai.txt","r");
list*tek,*preol,*now;
char name[25];
while (fgets(name,25,f))
{now=new list;
 strcpy(now->name,name);
 now->next=NULL;
 if (!first)
    first=now;
 else
 {tek=first;
 preol=NULL;
 while(tek!=NULL && strcmp((*tek).name,(*now).name)<0)
 {preol=tek;
  tek=tek->next;
}
if (!preol)
{first=now;
now->next=tek;
}
else
{preol->next=now;
now->next=tek;
}
}
KOMPNET вне форума Ответить с цитированием
Старый 31.05.2012, 00:57   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Примерно такая должна быть функция вывода:
Код:
void Print(list* top)
{
list* curr_node = top;
while (curr_node)
 {
 printf("%s\n", curr_node -> name);
 curr_node = curr_node -> next;
 }
}
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 31.05.2012, 12:42   #3
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

ну или для любителей for to do
Код:
void Print(list* top)
{
   for(list* i = top; i != NULL; i = i->next)
     cout << i->name;
}
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 31.05.2012, 16:16   #4
KOMPNET
Пользователь
 
Регистрация: 30.09.2011
Сообщений: 55
По умолчанию

Не работает...
KOMPNET вне форума Ответить с цитированием
Старый 31.05.2012, 16:23   #5
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

У вас ужасное форматирование (почти нет отступов, код на той же строке, что и "{"), поэтому трудно что-то разобрать, но я заметил, что память вы выделили только для одного узла списка, а для других не выделяете. Ну и соответственно потом не освобождаете, но это уже другая история.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 31.05.2012, 16:26   #6
KOMPNET
Пользователь
 
Регистрация: 30.09.2011
Сообщений: 55
По умолчанию

И как же быть? У меня уже имеется структура фамилий необходимо по ней создать линейный список, упорядоченный в алфавитном порядке
KOMPNET вне форума Ответить с цитированием
Старый 31.05.2012, 16:29   #7
KOMPNET
Пользователь
 
Регистрация: 30.09.2011
Сообщений: 55
По умолчанию

Код:
{char name[25];
 list*next;
};
list*first=NULL;
 
void spisok()
{f=fopen("d:\\gai.txt","r");
 list*tek,*preol,*now;
 char name[25];
 while (fgets(name,25,f))
   {now=new list;
    strcpy(now->name,name);
    now->next=NULL;
    if (!first)
        first=now;
    else
      {tek=first;
        preol=NULL;
        while(tek!=NULL && strcmp((*tek).name,(*now).name)<0)
           {preol=tek;
             tek=tek->next;
           }
        if (!preol)
           {first=now;
             now->next=tek;
            }
       else
          {preol->next=now;
           now->next=tek;
          }
       }
    }
}
KOMPNET вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Линейный список. GripEnemy Visual C++ 0 05.12.2011 22:35
линейный список Nelson1992 Помощь студентам 1 26.11.2011 01:40
C++,линейный список katerunechka Помощь студентам 0 08.10.2011 11:38
Линейный список doter Общие вопросы C/C++ 1 20.02.2011 21:36
Линейный список Black_Ak24 Паскаль, Turbo Pascal, PascalABC.NET 2 04.01.2008 15:00