В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
Сарфароз03
Сарфароз03
05.05.2020 14:44 •  Информатика

Добавить к программе метод extend, добавляющий к списку копию другого списка. c#

using system; (3 лаб 2 -)
using system.collections.generic;
using system.text;
namespace mylinkedlist
{//2.1. метод extend, добавляющий к списку копию другого списка.
public class listunderflow : exception { }

public class linkedlist // односвязный список
{
class node
{
public double value { get; set; }

public node next { get; set; }
public node(double item)
{
value = item;
next = null;
}
}
node head = null; // головной/первый элемент
node tail = null; // последний/хвостовой элемент
int count; // количество элементов в списке

// добавление элемента в конец списка
public void add(double item)
{
node node = new node(item);
if (head == null)
head = node;
else
tail.next = node;
tail = node;
count++;
}
// добавление в начало
public void appendfirst(double item)
{
node node = new node(item);
node.next = head;
head = node;
if (count == 0)
tail = head;
count++;
}
// удаление элемента
public bool remove(double item)
{
node current = head; // текущий элемент
node previous = null; // предыдущий элемент
while (current ! = null)
{
if (current.value == item)
{
// если узел в середине или в конце
if (previous ! = null)
{
// убираем узел current, теперь previous ссылается не на current,
// а на current.next
previous.next = current.next;
// если current.next не установлен, значит, узел последний,
// изменяем переменную tail
if (current.next == null)
tail = previous;
}
else
{

// если удаляется первый элемент
// переустанавливаем значение head
head = head.next;
// если после удаления список пуст, сбрасываем tail
if (head == null)
tail = null;
}
count--;
return true;
}
previous = current;
current = current.next;
}
return false;
}
// содержит ли список элемент
public bool contains(double item)
{
node current = head;
while (current ! = null)
{
if (current.value == item)
return true;
current = current.next;
}
return false;
}
// вывод элементов списка
public void printlist()
{
if (head == null)
throw new listunderflow();
node current = head;
while (current ! = null)
{
console.write(current.value + " ");
current = current.next;
}
console.writeline();
}
// строковое представление списка
public override string tostring()
{
if (head == null)
throw new listunderflow();
stringbuilder printlist = new stringbuilder();
node current = head;
while (current ! = null)
{
printlist.append(current.value + " ");
current = current.next;
}
return printlist.tostring();
}
}

class program
{
static void main(string[] args)
{
try
{
linkedlist list = new linkedlist();
// добавление элементов
list.add(5);
list.add(7);
list.add(9);
list.add(3);
// вывод элементов списка
console.writeline("список: {0}", list);
linkedlist list1 = new linkedlist();
// добавление элементов
list1.add(3);
list1.add(-3);
list1.add(2);
list1.add(1);
// вывод элементов списка
console.writeline("список: {0}", list1);
// или
// console.write("список: ");
// list.printlist();
// удаление элемента
console.writeline("введите элемент для удаления");
double x = convert.todouble(console.;
if (list.remove(x))
{
console.writeline("элемент {0} удален из списка", x);
console.writeline("список: {0}", list);
}
else console.writeline("элемент {0} в списке отсутствует", x);
// проверка наличия элемента
console.writeline("введите элемент для поиска");
x = convert.todouble(console.;
if (list.contains(x))
console.writeline("элемент есть в списке");
else
console.writeline("элемент в списке отсутствует");
// добавление элемента в начало
list.appendfirst(4);

console.writeline("элемент 4 добавлен в начало списка");
console.writeline("список: {0}", list);
//console.writeline("список: {0}", list.;
}
catch (listunderflow)
{
console.writeline("список пуст");
}
console.readline();
}
}

}

Показать ответ
Ответ:
korolevdanil99
korolevdanil99
10.10.2020 13:49

Метод добавления выглядит так:

public void Extend(LinkedList list)

{

   Node current = list.head;

   while(current != null)

   {

       Add(current.Value);

       current = current.Next;

   }

}

Использовать можно так: list.Extend(list1);

list и list1 уже созданные в программе списки.

В список list добавятся элементы из списка list1.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота