Народ. Поясните мне за списки. Вот тут (https://tproger.ru/translations/linked-list-for-beginners/) написано, что "В то время, как односвязный список позволяет добавлять элементы только в конец, используя двусвязный список мы можем добавлять элементы как в начало, так и в конец". А с фига ли нельзя добавлять в односвязном в начало, если у меня есть указатель head и я могу просто создать ноду, к next присвоить ноду, которая head, а потом просто за head считать ту самую новую ноду?
Меньше читай даунские сайты.
>>749178Где нормально почитать?
>>749178http://www.tutorialspoint.com/data_structures_algorithms/linked_lists_algorithm.htmвот тут чётко вижу, что в списках первый элемент вообще данных не содержит.
>>749168 (OP)Ты все правильно понял. Можно.
>>749184Какой первый элемент, наркоман? Это ссылка на первую ноду.
>>749188ну, т.е. если каждая нода, это структура с двумя полями, то ссылка на первую ноду это что хоть?я запутался, немножко.
Вот этот head это что вообще? просто там в коде это вот так.//insert link at the first locationvoid insertFirst(int key, int data){ //create a link struct node link = (struct node) malloc(sizeof(struct node)); link->key = key; link->data = data; //point it to old first node link->next = head; //point first to new first node head = link;}т.е. это просто переменная, которая есть head? Я просто сначала принял это за отдельный элемент. лол. И не понимал зачем это.
>>749190Это ссылка на ноду, наркоман.
>>749194Да, это ссылка/указатель на первую ноду. Тебе же надо как-то к ней обращаться.
>>749190это либо пустой указатель на звено, либо указатель на указатель на звено
>>749196понял. спасибо. http://www.tutorialspoint.com/data_structures_algorithms/linked_lists_algorithm.htmвот тут мне нравится.
>>749196А это... Мне надо вот ещё стек реализовать. Я так понимаю, я никак односвязный не могу заюзать для хранения данных в стеке?(( Просто нет у меня такого задания "сделать двусвязный список". Я вот и как-то хочу обойти этот момент, чтобы мне лишних вопросов не задали.
>>749199Соображалку включи. В связный список ты всегде добавляешь элементы в начало (перед первой нодой, как ты уже догадался, а не как у тебя в первой ссылке). Первый элемент легко можно и удалить: просто переставляем указатель на первый элемент (о ктором ты спрашивал как о пустой ноде) на второй элемент - ура ты выкинул последний элемент котторый добавил. Вот и весь стек.
>>749206ой, точно! Блин. соображалка не работает никогда(((
>>749181Кормен.
>>749206а вот хуй, можно и в конец добавлять
>>749250А удалять?
>>749253в цикле же
>>749255но это будет не за О(1)
>>749258да и похуй, скажи лучше нахуя нужен список где самый ранний узел является последним?
>>749263Просто реализовать алгоритм на нём и всё.
>>749266ясно, какаято хуета вконец оторванная от жизни
>>749268ну, а что ты предлагаешь?
>>749270>В то время, как односвязный список позволяет добавлять элементы только в конецне быть автору столь категоричным