функция вставки - PullRequest
       1

функция вставки

0 голосов
/ 04 мая 2011

У меня проблема с домашним заданием, когда я должен: написать функцию вставки, которая вставляет элемент в первую позицию в списке после элемента, хранящего определенный элемент данных. Я также должен использовать эту функцию. Я не понимаю, о чем проблема. Может ли кто-нибудь объяснить мне эту проблему в терминах, которые легче понять?

#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));
}

Ответы [ 3 ]

0 голосов
/ 04 мая 2011

У вас есть связанный список.Список состоит из LINK структур (если быть более точным, кажется, что тип LINK является typedef'd, чтобы быть указателем на фактические структуры узлов. У нас нет определения перед нами, но предположительнокаждая структура LINK содержит структуру DATA, а также обычный указатель (и) ссылки.

Ваша задача - взять верхнюю часть списка LINK и структуру DATAи ищите в списке, пока не найдете первый LINK, в котором DATA идентичен указанному вами. Затем вставьте новый элемент в список непосредственно перед этим LINK.

0 голосов
/ 04 мая 2011

Вас попросят найти DATA c в связанном списке (функция lookup( ) сделает это за вас), затем вставьте элемент DATA между c и элементом DATA после c.Если c является последним DATA элементом в списке, то вы должны добавить свой новый DATA элемент в качестве окончательного DATA элемента.Если список пуст, т.е. если lookup( ) возвращает NULL, то ваш новый элемент DATA должен быть сохранен как единственный элемент DATA в списке.

Почему бы не опубликовать соответствующую часть list.h, чтобы мы могли понять, как выглядит связанный список?

Было бы также неплохо опубликовать всю функцию lookup( ).

0 голосов
/ 04 мая 2011

Вопрос просит вас написать функцию, которая находит указанный элемент в списке, а затем вставляет новый элемент в список после этой позиции.

Итак, учитывая список

List = {Item1, Item2, Item3, Item4}

Ваша функция List.Insert(Item2, Item5) (например) должна привести к

List = {Item1, Item2, Item5, Item3, Item4}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...