public bool add(int e)
{
if(head == null)
{
Node n = new Node
{
element = e
};
head = n;
return true;
}
Node t = head;
if(t.next == null)
{
if(t.element == e)
{ return false; }
Node n = new Node
{
element = e
};
t.next = n;
return true;
}
t = t.next;
this.add(e);
return true;
}
Это код для добавления нового узла в набор. Не допускается дублирование значений. Существует Основной класс, называемый Sets, и один внутренний класс, называемый Nodes. Я знаю Узел t = голова; создает проблему, так или иначе, чтобы сделать эту рекурсивную? Даже прохождение дополнительных необязательных параметров не помогает.Рекурсивная реализация «append if not present» для связанного списка
Я изменил название, чтобы соответствовать вашему образцу кода - выглядит как то, что вы называете «набор «на самом деле является единственным связанным списком - не стесняйтесь возвращаться/меняться. Стандартная рекурсивная реализация для него - «вставка после первого ИЛИ рекурсивно вызывает список, начинающийся со второго элемента». –
Это связанный список, но я использую его для реализации набора. Но я считаю, что связанный список является более общим и будет легко искать в поиске. – Shah