списки в си



Автор Renzo задал вопрос в разделе Другие языки и технологии

Списки в Си. Подскажите, пожалуйста, сайт, где доступно и понятно изложена тема линейных списков на Си (не ++) и получил лучший ответ

Ответ от CODEMASTER[гуру]
односвязный циклический список это как бы рукурсивное объявление струкутыр, точнее указателя на нее в самой структуре. типа:
struct s{
int data;//поледанных
s *next;//следующий элемент
} *first,*curr;//первый и текущий элемент
инициализируешь так:
first=new s;
curr=new s;
first->next=curr;
чтобы получить первый элемент используй first->data
чтобы добавить новый элемент:
curr->next=new s;
curr=curr->next;//переходишь к последнему
и чтобы получить например 50 элемент через цикл перебирай список:
curr=first;//переход к первому
for(int i=0;i<50;i++)
{
if(curr->next!=NULL)
{
curr=curr->next;
}
}
и используй curr->data.
т. е. структура содержит указатель на следующий элемент
Источник: опыт

Ответ от Андрей Севастьянов[гуру]
Книжка "Pointers on C", PDF, 61 метр --

Ответ от И.А. Голованов[гуру]
А нафига сайт?
Просто делаешь структуру в которой один из элементов является указателем на следующую в списке или NULL в концевом
и по ходу дела наращиваешь выделяя место в памяти командой malloc и присваивая указатели. и держать отдельно указатеь на первую
(линейные не советую. Жрут много ресурсов проца на пробегание от начала до нужного. Лучше двусвязные - держать в структуре указатели и на следующий и на предидущий. Чуть больше затрат памяти, но в десятки раз меньше затрат проца)
-------------
Для кодемастера
не путай С и С++
в С нет new

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Списки в Си. Подскажите, пожалуйста, сайт, где доступно и понятно изложена тема линейных списков на Си (не ++)
Связный список на Википедии
Посмотрите статью на википедии про Связный список
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*