Однонаправленный линейный список с функцией вывода на экран только положительных элементов списка - C#

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

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

Ребят, необходимо чуток подправить код между <<<<<<< см. ниже >>>>>>>... а именно организовать однонаправленный линейный список с функцией вывода на экран только положительных элементов списка. Спасибо
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace ConsoleApplication2
  6. {
  7. class Program
  8. {
  9. class ListElem // класс элемент списка
  10. {
  11. public int Value; // поле данных
  12. public ListElem Next; // поле - переход на след. элемент
  13. public ListElem(ListElem next, int value) // конструктор класса
  14. {
  15. Next = next; // заполнение поля
  16. Value = value; // заполнение поля
  17. }
  18. }
  19. class List // класс список
  20. {
  21. int value;
  22. public ListElem head = null; // заголовок списка
  23. public ListElem current = null; // текущий элемент списка
  24. public List() { } // пустой конструктор
  25. public void Menu() // вставка элемента в начало списка
  26. {
  27. Console.Clear();
  28. Console.WriteLine("Главное меню:\n");
  29. Console.WriteLine(" 1. Заполнить список.");
  30. Console.WriteLine(" 2. Просмотреть список.");
  31. Console.WriteLine(" 3. Добавить новый элемент.");
  32. Console.WriteLine(" 4. Поиск элемента.");
  33. Console.WriteLine(" 5. Удалить элемент.");
  34. Console.WriteLine(" 6. Очистить список.");
  35. Console.WriteLine(" 7. Индивидуальное задание(вариант 20).");
  36. Console.WriteLine(" 8. Выход.\n");
  37. Console.WriteLine("\nВЫБЕРИТЕ НОМЕР НУЖНОГО ЗАДАНИЯ!\n");
  38. }
  39. public void FirstElem() // вставка элемента в начало списка
  40. {
  41. Console.Clear();
  42. Console.Write("Сколько элементов Вы хотите ввести? ");
  43. int n = int.Parse(Console.ReadLine());
  44. Console.WriteLine("Введите " + n + " элементов.\n");
  45. for (int i = 0; i < n; i++)
  46. {
  47. value = int.Parse(Console.ReadLine());
  48.  
  49. ListElem temp = new ListElem(null, value); // создание нового элемента списка и заполнение его значениями
  50. if (head == null) // если список пуст
  51. head = temp; // новый элемент становится первым
  52. else
  53. {
  54. temp.Next = head; // добавление в новый элемент ссылки на первый элемент
  55. head = temp; // перезапись первого элемента
  56. }
  57. }
  58. }
  59. public void Show() // метод просмотра списка
  60. {
  61. Console.Clear();
  62. Console.Write("Однонаправленный список: ");
  63. if (head == null) // если список пуст
  64. Console.WriteLine("список пуст!");
  65. else
  66. {
  67. ListElem temp = head; // создание нового элемента и запись в него первого
  68. while (temp != null) // цикл до конца списка
  69. {
  70. Console.Write(temp.Value + " "); // вывод на экран текущего значения
  71. temp = temp.Next; // переход к след. элементу
  72. }
  73. Console.WriteLine("");
  74. }
  75. }
  76. public void FindElem() // метод поиска элемента по значению
  77. {
  78. Console.WriteLine("Введите элемент для поиска: ");
  79. value = int.Parse(Console.ReadLine());
  80. ListElem temp = head; // запись первого элемента в новый
  81. Console.WriteLine("Результаты поиска: ");
  82. while (temp != null) // цикл пока не дошли до конца списка
  83. {
  84. if (temp.Value == value) // если элемент найден
  85. Console.Write(temp.Value); // вернуть найденный элемент
  86. temp = temp.Next; // переход к след. элементу
  87. }
  88. }
  89. public void Right_Element()//вставка справа от текущего
  90. {
  91. Console.Clear();
  92. if (head == null)
  93. {
  94. Console.WriteLine("Заполните список!");
  95. }
  96. else
  97. {
  98. Console.WriteLine("После какого элемента вставить новый? ");
  99. int m = int.Parse(Console.ReadLine());
  100. current = head;
  101. for (int i = 1; i < m; i++)
  102. current = current.Next; // переход к след. элементу;
  103. Console.WriteLine("Введите число: ");
  104. value = int.Parse(Console.ReadLine());
  105. ListElem temp = new ListElem(null, value);
  106. temp.Next = current.Next;
  107. current.Next = temp;
  108. current = temp;
  109. }
  110. }
  111. public void Delete_Elements()//удаление элемента
  112. {
  113. Console.Clear();
  114. if (head != null)
  115. {
  116. Show();
  117. ListElem temp = head;
  118. ListElem prev = head;
  119. int i = 1;
  120. Console.WriteLine("Введите позицию в списке (число): ");
  121. int pos = int.Parse(Console.ReadLine());
  122. while (pos != i)
  123. {
  124. prev = temp;
  125. temp = temp.Next;
  126. i++;
  127. }
  128. if (head == temp)
  129. head = head.Next;
  130. else
  131. prev.Next = temp.Next;
  132. }
  133. else
  134. Console.WriteLine("Список и так пустой! Удалять нечего.");
  135. }
  136. public void Clear_list()//метод очистки списка
  137. {
  138. ListElem temp;
  139. while (head != null)
  140. {
  141. temp = head.Next;
  142. head = temp;
  143. }
  144. }
  145. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  146. public void Variant_20()//из
  147. {
  148. Console.Clear();
  149. Console.WriteLine("20. Организовать однонаправленный линейный список с функцией вывода на экран элементов меньших первого элемента.\n");
  150. ListElem temp = head.Next;
  151. // ListElem prev = head;
  152. if (head != null)
  153. {
  154. bool flag = false;
  155. while (temp != null)
  156. {
  157. if (temp.Value < head.Value)
  158. { Console.Write(temp.Value.ToString() + " "); flag = true; }
  159. temp = temp.Next;
  160. }
  161. if (flag == false) Console.Write("Элементов, меньше первого, нет в списке");
  162. }
  163. else
  164. Console.WriteLine("Список пуст!");
  165. }
  166. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  167. }
  168. static void Main(string[] args)
  169. {
  170. List List = new List();
  171. List.Menu();
  172. int c = int.Parse(Console.ReadLine());
  173. while (c != 8)
  174. {
  175. switch (c)
  176. {
  177. case 1: List.FirstElem(); break;//заполнить список
  178. case 2: List.Show(); break;//просмотреть список
  179. case 3: List.Right_Element(); break;//добавить новый элемент
  180. case 4: List.FindElem(); break;//поиск элемента
  181. case 5: List.Delete_Elements(); break;//удалить элемент
  182. case 6: List.Clear_list(); break;//очистить список
  183. case 7: List.Variant_20(); break;//индивидуальное задание (20 вариант)
  184. case 8: break;//выход
  185. default: Console.Write("Команды с таким номером нет!"); break;
  186. }
  187. do Console.Write("\nДля продолжения нажмите клавишу Enter....");
  188. while (Console.ReadKey().Key != ConsoleKey.Enter);
  189. List.Menu();
  190. c = int.Parse(Console.ReadLine());
  191. }
  192. }
  193. }
  194. }

Решение задачи: «Однонаправленный линейный список с функцией вывода на экран только положительных элементов списка»

textual
Листинг программы
  1.              public void Variant_20()
  2.             {
  3.                 Console.Clear();
  4.                 Console.WriteLine("20.  Организовать однонаправленный линейный список с функцией вывода на экран только положительных элементов списка.\n");
  5.                 if (head == null)
  6.                     return;
  7.                 ListElem next = head.Next;
  8.                 while(next != null)
  9.                 {
  10.                     if (next.Value > 0)
  11.                         Console.WriteLine(next.Value);
  12.                     next = next.Next;
  13.                 }
  14.             }

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


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

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

13   голосов , оценка 3.846 из 5

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

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

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