powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Односвязный список
3 сообщений из 3, страница 1 из 1
Односвязный список
    #38395468
asupviking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, создал список, заполнил его и вывожу его, но нужно упорядочить список (поле фамилия), по алфавиту, не могу никак сообразить, помогите пожалуйста.

struct List
{
int key;
char *Name;
char *Surname;
char *Lastname;
char *org;
List *next;
};
List *first(int key, char Name[], char Surname[], char Lastname[], char org[]);
void add(List **pend, int key, char Name[], char Surname[], char Lastname[], char org[]);

int main()
{
setlocale(LC_ALL, "Russian");

List *pbeg=first(1, "Иван", "Иванович", "Иванов", "Профсоюз");
List *pend=pbeg;

add(&pend, 2, "Пётр", "Петрович", "Петров", "Профсоюз");
add(&pend, 3, "Владимир", "Николаевич", "Федяев", "Учёный совет");
add(&pend, 4, "Александр", "Николаевич", "Кротиков", "Общество книголюбов");
add(&pend, 5, "Сергей", "Константинович", "Юдин", "Федерация Пентикса");

List *pv = pbeg;

//количество элементов в списке
List *pcount = pbeg;
int count_el=0;
while(pcount)
{
pcount=pcount->next;
count_el=count_el+1;
}
cout<<"Количество элементов в списке: "<<count_el;
cout<<endl;cout<<endl;

//вывод списка
while(pv)
{
cout<<pv->key<<' ';
cout<<pv->Name<<' ';
cout<<pv->Surname<<' ';
cout<<pv->Lastname<<' ';
cout<<pv->org<<' ';
pv=pv->next;
cout<<endl;
}


cout<<endl;
cout<<endl;
system("pause");
return 0;
}

//------------------------------------------------------------------------------------
List *first(int key, char Name[], char Surname[], char Lastname[], char org[])
{
List *pv = new List;
pv->key=key;
pv->Name=Name;
pv->Surname=Surname;
pv->Lastname=Lastname;
pv->org=org;
pv->next=0;
return pv;
}
//-----------------------------------------------------------------------------------
void add(List **pend, int key, char Name[], char Surname[], char Lastname[], char org[])
{
List *pv = new List;
pv->key=key;
pv->Name=Name;
pv->Surname=Surname;
pv->Lastname=Lastname;
pv->org=org;
pv->next=0;
(*pend)->next=pv;
*pend=pv;
}
...
Рейтинг: 0 / 0
Односвязный список
    #38395842
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asupvikingне могу никак сообразить
Переделай функцию add. Добавляй не в начало списка, а перед элементом у которого Name (или
какой там критерий сортировки) больше чем Name нового элемента.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Односвязный список
    #38396196
asupviking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, всё получилось.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Односвязный список
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]