списки в си



Автор 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 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Списки в Си. Подскажите, пожалуйста, сайт, где доступно и понятно изложена тема линейных списков на Си (не ++)
спросили в Интернет
Как увеличить скорость инета в компе, не делая высокоскоростной?
Зависит от провайдера. Программы-ускорители - это все полное фуфло. Хочешь убедиться - проделай
подробнее...
спросили в Кавычки
Как по правилам русского языка пишутся названия книг? Всегда в кавычках и с большой буквы?
Если по правилам, то вот так.

§129. Названия литературных, музыкальных произведений,
подробнее...
спросили в Велосипед 1447 год
Когда появился первый велосипед?
История
До 1817 года
Средневековое изображение херувима по «Видению пророка Иезекииля» .
подробнее...
спросили в Другое
что такое "прелестные грамоты"
С началом нового похода Степана Разина на Волгу в мае 1670 г. движение приняло антикрепостнический
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:

Что такое "прелестные грамоты"(при Петре I)? Нужно раскрыть значение понятия - "прелестные грамоты"
С началом нового похода Степана Разина на Волгу в мае 1670 г. движение приняло антикрепостнический
подробнее...

Как максимально увеличить скорость интернета?
Как увеличить скорость интернета на 20%?
Сия хитрость справедлива только для Windows XP. В
подробнее...

Как повысить скорость скачивания файла? И можно ли ее повысить?
можно повысить скорость всего инета от 20 до 35% поделюсь как:
Сия хитрость справедлива только
подробнее...

Как можно уменьшить вес JPEG картинки?
можно использовать программу по сжатию или просто открыть в пайнте и сохранить.... весить будет
подробнее...
спросили в Другое 1200 е годы
Существует ли золото Колчака? Где оно спрятано?
Колчак, Александр Васильевич! #yaimg20260#[ссылка появится после проверки модератором] В России до
подробнее...
спросили в Grapsoidea Star Ocean
на AliExpress надо вводить почтовый индекс города или почтового отделения?
Внимательно отнеситесь к заполнению адреса. Индекс -это основная точка т. е в это почтовое
подробнее...
спросили в 1037 год 1110 год
Когда и почему на Руси появилась первая летопись?
Принятие христианства (988 год) способствовалораспространению письменности и письменной культуры.
подробнее...
спросили в Интернет
как ускорить работу модема?
заплатив денежку провайдеру за расширение канала, больше НИКАК, у провайдера сидят НЕ ИДИОТЫ, чтобы
подробнее...
Связный список на Википедии
Посмотрите статью на википедии про Связный список
 

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

Имя*

E-mail:*

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