Объясните код работы данного односвязного списка - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Хотелось, что бы мне последовательно объяснили те строчки кода, которые выложены ниже, частично я их сам понимаю. Если есть то, что я неправильно указал в комментариях к коду, пожалуйста, поправьте.
Листинг программы
  1. namespace LinkedList // создали класс с названием LinkedList
  2. {
  3. public class Item // создали класс Item, как я понимаю из теории это так называемый узел(Node)
  4. {
  5. public int Value; // создали поле типа int и назвали его Value
  6. public Item Next; // создали поле типа Item и назвали его Next
  7. public Item(int value) // создали конструктор и назвали его Item и указали входной параметр value типа int (вопрос зачем указывать входной параметр)
  8. {
  9. Value = value; // полю Value присвоили значение value, которое является параметром для конструктора Item
  10. Next = null; // присвоили полю Next значение null
  11. }
  12. }
  13. }
Листинг программы
  1. namespace LinkedList // работаем в пространстве имен LinkedList
  2. {
  3. class MyList // создаем класс MyList
  4. {
  5. Item Head; // создали поле Head типа Item
  6. Item Tail; // создали поле Tail типа Item
  7. public MyList() // создали конструктор MyList. Почему мы здесь не указали входной параметр, как сделали это в public Item(int value)
  8. {
  9. Head = null; // присвоили полю Head значение null. Вопрос зачем?
  10. }
  11. public void AddToTail(int value) // создали метод добавления элемента(могу неправильно сказать) поправьте, пожалуйста, в хвост списка списка. Указали у него входной value типа int. Вопрос зачем?
  12. {
  13. if (Head == null) // условие: если поле Head равно пустому значение, то выполняется следующее действие
  14. {
  15. Head = new Item(value); // создали объект Head класса Item. Вопрос 1) как имя поля может совпадать с именем вновь созданного объекта 2) ведь, когда мы создаем новый объект класса мы пишем конструкцию вида Имя_класса название объекта = new Имя_Конструктора(); 3) Действительно ли мы создали новый объект класса 4) Если действительно создали новый объект класса, то зачем в качестве параметра указали value?
  16. Tail = Head; // полю Tail присвоили значение поля Head. Вопрос зачем? Какая смысловая нагрузка тут
  17. }
  18. else // альтернативный случай, если Head не равно пустому значению
  19. {
  20. Tail.Next = new Item(value); // не понимаю абсолютно ничего
  21. Tail = Tail.Next; // аналогично всё неясно
  22. }
  23. }
  24. public void AddToHead(int value) // создали метод добавление элемента в голову списка. Указали у него входной параметр value типа int. Вопрос зачем?
  25. {
  26. Item p = new Item(value); // создали новый объект p класса
  27. p.Next = Head; //что мы здесь хотели сказать???
  28. Head = p; // и здесь???
  29. }
Скажите, пожалуйста.

Решение задачи: «Объясните код работы данного односвязного списка»

textual
Листинг программы
  1. using System;
  2. using System.Windows.Forms;
  3.  
  4. namespace LinkedList
  5. {
  6.     public partial class FormMain : Form
  7.     {
  8.         public FormMain()
  9.         {
  10.             InitializeComponent();
  11.         }
  12.         //tb_Input - в вашем случае самый верхний textBox
  13.         //tb_Output - средний textBox
  14.         //назначение третьего мне пока не понятно
  15.         private void bt_ConvertToStringWithPluss_Click(object sender, EventArgs e)
  16.         {
  17.             if (tb_Input.Text.Length > 0)//если есть что преобразовывать
  18.             {
  19.                 for (int i = 0; i < tb_Input.Text.Length; i++)//для каждого символа строки в tb_Input
  20.                 {
  21.                     tb_Output.Text += tb_Input.Text[i] + " + ";//вписываем текущий символ с добавлением " + "
  22.  
  23.                 }
  24.             }
  25.         }
  26.     }
  27. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут