Однонаправленный линейный список с функцией вывода на экран только положительных элементов списка - C#
Формулировка задачи:
Ребят, необходимо чуток подправить код между <<<<<<< см. ниже >>>>>>>...
а именно организовать однонаправленный линейный список с функцией вывода на экран только положительных элементов списка.
Спасибо
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication2 { class Program { class ListElem // класс элемент списка { public int Value; // поле данных public ListElem Next; // поле - переход на след. элемент public ListElem(ListElem next, int value) // конструктор класса { Next = next; // заполнение поля Value = value; // заполнение поля } } class List // класс список { int value; public ListElem head = null; // заголовок списка public ListElem current = null; // текущий элемент списка public List() { } // пустой конструктор public void Menu() // вставка элемента в начало списка { Console.Clear(); Console.WriteLine("Главное меню:\n"); Console.WriteLine(" 1. Заполнить список."); Console.WriteLine(" 2. Просмотреть список."); Console.WriteLine(" 3. Добавить новый элемент."); Console.WriteLine(" 4. Поиск элемента."); Console.WriteLine(" 5. Удалить элемент."); Console.WriteLine(" 6. Очистить список."); Console.WriteLine(" 7. Индивидуальное задание(вариант 20)."); Console.WriteLine(" 8. Выход.\n"); Console.WriteLine("\nВЫБЕРИТЕ НОМЕР НУЖНОГО ЗАДАНИЯ!\n"); } public void FirstElem() // вставка элемента в начало списка { Console.Clear(); Console.Write("Сколько элементов Вы хотите ввести? "); int n = int.Parse(Console.ReadLine()); Console.WriteLine("Введите " + n + " элементов.\n"); for (int i = 0; i < n; i++) { value = int.Parse(Console.ReadLine()); ListElem temp = new ListElem(null, value); // создание нового элемента списка и заполнение его значениями if (head == null) // если список пуст head = temp; // новый элемент становится первым else { temp.Next = head; // добавление в новый элемент ссылки на первый элемент head = temp; // перезапись первого элемента } } } public void Show() // метод просмотра списка { Console.Clear(); Console.Write("Однонаправленный список: "); if (head == null) // если список пуст Console.WriteLine("список пуст!"); else { ListElem temp = head; // создание нового элемента и запись в него первого while (temp != null) // цикл до конца списка { Console.Write(temp.Value + " "); // вывод на экран текущего значения temp = temp.Next; // переход к след. элементу } Console.WriteLine(""); } } public void FindElem() // метод поиска элемента по значению { Console.WriteLine("Введите элемент для поиска: "); value = int.Parse(Console.ReadLine()); ListElem temp = head; // запись первого элемента в новый Console.WriteLine("Результаты поиска: "); while (temp != null) // цикл пока не дошли до конца списка { if (temp.Value == value) // если элемент найден Console.Write(temp.Value); // вернуть найденный элемент temp = temp.Next; // переход к след. элементу } } public void Right_Element()//вставка справа от текущего { Console.Clear(); if (head == null) { Console.WriteLine("Заполните список!"); } else { Console.WriteLine("После какого элемента вставить новый? "); int m = int.Parse(Console.ReadLine()); current = head; for (int i = 1; i < m; i++) current = current.Next; // переход к след. элементу; Console.WriteLine("Введите число: "); value = int.Parse(Console.ReadLine()); ListElem temp = new ListElem(null, value); temp.Next = current.Next; current.Next = temp; current = temp; } } public void Delete_Elements()//удаление элемента { Console.Clear(); if (head != null) { Show(); ListElem temp = head; ListElem prev = head; int i = 1; Console.WriteLine("Введите позицию в списке (число): "); int pos = int.Parse(Console.ReadLine()); while (pos != i) { prev = temp; temp = temp.Next; i++; } if (head == temp) head = head.Next; else prev.Next = temp.Next; } else Console.WriteLine("Список и так пустой! Удалять нечего."); } public void Clear_list()//метод очистки списка { ListElem temp; while (head != null) { temp = head.Next; head = temp; } } <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< public void Variant_20()//из { Console.Clear(); Console.WriteLine("20. Организовать однонаправленный линейный список с функцией вывода на экран элементов меньших первого элемента.\n"); ListElem temp = head.Next; // ListElem prev = head; if (head != null) { bool flag = false; while (temp != null) { if (temp.Value < head.Value) { Console.Write(temp.Value.ToString() + " "); flag = true; } temp = temp.Next; } if (flag == false) Console.Write("Элементов, меньше первого, нет в списке"); } else Console.WriteLine("Список пуст!"); } >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> } static void Main(string[] args) { List List = new List(); List.Menu(); int c = int.Parse(Console.ReadLine()); while (c != 8) { switch (c) { case 1: List.FirstElem(); break;//заполнить список case 2: List.Show(); break;//просмотреть список case 3: List.Right_Element(); break;//добавить новый элемент case 4: List.FindElem(); break;//поиск элемента case 5: List.Delete_Elements(); break;//удалить элемент case 6: List.Clear_list(); break;//очистить список case 7: List.Variant_20(); break;//индивидуальное задание (20 вариант) case 8: break;//выход default: Console.Write("Команды с таким номером нет!"); break; } do Console.Write("\nДля продолжения нажмите клавишу Enter...."); while (Console.ReadKey().Key != ConsoleKey.Enter); List.Menu(); c = int.Parse(Console.ReadLine()); } } } }
Решение задачи: «Однонаправленный линейный список с функцией вывода на экран только положительных элементов списка»
textual
Листинг программы
public void Variant_20() { Console.Clear(); Console.WriteLine("20. Организовать однонаправленный линейный список с функцией вывода на экран только положительных элементов списка.\n"); if (head == null) return; ListElem next = head.Next; while(next != null) { if (next.Value > 0) Console.WriteLine(next.Value); next = next.Next; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д