#c #insert
#c #вставить
Вопрос:
У меня есть проблема с домашним заданием, где я должен: Написать функцию вставки, которая вставляет элемент на первую позицию в списке после элемента, хранящего определенный элемент ДАННЫХ. Я также должен использовать эту функцию. Я не понимаю, в чем проблема. Может ли кто-нибудь объяснить мне эту проблему в терминах, которые легче понять?
#include "list.h"
LINK lookup(DATA c, LINK head)
{
if (head == NULL)
return NULL;
else if ( c == head -> d)
return head;
else
return (lookup(c, head -> next));
}
Ответ №1:
Вопрос заключается в том, чтобы попросить вас написать функцию, которая находит указанный элемент в списке, а затем вставляет новый элемент в список после этой позиции.
Итак, учитывая список
List = {Item1, Item2, Item3, Item4}
Ваша функция List.Insert(Item2, Item5)
(например) должна приводить к
List = {Item1, Item2, Item5, Item3, Item4}
Ответ №2:
У вас есть связанный список. Список состоит из LINK
структур (если быть более точным, похоже, что LINK
тип определен как указатель на фактические структуры узла. У нас нет определения перед нами, но, по-видимому, каждая LINK
структура содержит DATA
struct, а также обычный связывающий указатель (указатели).
Ваша задача состоит в том, чтобы взять заголовок списка LINK
и DATA
структуру и выполнять поиск по списку, пока не найдете первый, LINK
который имеет DATA
значение, идентичное тому, которое вам дано. Затем вставьте новый элемент в список непосредственно перед этим LINK
.
Ответ №3:
Вас попросят найти DATA c
в связанном списке (функция lookup( )
сделает это за вас), затем вставьте DATA
элемент между c
и DATA
следующим c
элементом. Если c
это последний DATA
элемент в списке, то вы должны добавить свой новый DATA
элемент в качестве последнего DATA
элемента. Если список пуст, т.е. если lookup( )
возвращается NULL
, то ваш новый DATA
элемент должен быть сохранен как единственный DATA
элемент в списке.
Почему бы не опубликовать соответствующую часть list.h
, чтобы мы могли понять, как выглядит связанный список?
Также было бы неплохо опубликовать всю lookup( )
функцию целиком.
Комментарии:
1. Единственное, чего не хватает в
lookup()
функции, это закрывающего ‘}
‘.