Вопрос задан 16.07.2023 в 19:50. Предмет Информатика. Спрашивает Лызанець Миша.

Добавить к программе Метод 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.ReadLine()); if (list.Remove(x)) { Console.WriteLine("Элемент {0} удален из списка", x); Console.WriteLine("Список: {0}", list); } else Console.WriteLine("Элемент {0} в списке отсутствует", x); // проверка наличия элемента Console.WriteLine("Введите элемент для поиска"); x = Convert.ToDouble(Console.ReadLine()); if (list.Contains(x)) Console.WriteLine("Элемент есть в списке"); else Console.WriteLine("Элемент в списке отсутствует"); // добавление элемента в начало list.AppendFirst(4); Console.WriteLine("Элемент 4 добавлен в начало списка"); Console.WriteLine("Список: {0}", list); //Console.WriteLine("Список: {0}", list.Extend()); } catch (ListUnderflow) { Console.WriteLine("Список пуст"); } Console.ReadLine(); } } }
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Селиванов Матвей.

Ответ:

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

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
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Разработайте метод Extend, который добавляет к текущему списку копию другого списка. Вот как может выглядеть реализация метода в классе LinkedList:

csharp
public void Extend(LinkedList otherList) { Node current = otherList.head; while (current != null) { Add(current.Value); current = current.Next; } }

Вы можете вызвать этот метод из метода Main следующим образом:

csharp
LinkedList list = new LinkedList(); list.Add(5); list.Add(7); list.Add(9); list.Add(3); LinkedList list1 = new LinkedList(); list1.Add(3); list1.Add(-3); list1.Add(2); list1.Add(1); list.Extend(list1); Console.WriteLine("Расширенный список: {0}", list);

Результат выполнения кода будет:

Расширенный список: 5 7 9 3 3 -3 2 1

Таким образом, метод Extend добавит все элементы из list1 в конец list.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос