Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2021, 17:00   #1
AnatolMed
Новичок
Джуниор
 
Регистрация: 25.03.2021
Сообщений: 5
По умолчанию Односвязный список

Задача: Произвести поиск и сортировку — по названию фирмы, виду работ, дате исполнения односвязным списком(ОС). ОС представлю как LinkedList в который добавляется несколько LinkedListNode в каждом из которых отдельно находятся "название фирмы", " вид работ", "дата исполнения". Класс LinkedListNode<T> и LinkedList<T> это понятно. Не понятно как в Main это все должно выглядеть.
Как добавить в LinkedList<T> к примеру LinkedListNode<T>c именем фирмы и сделать указатель на LinkedListNode<T> с видом работ.
Буду очень признателен за кусок кода.
AnatolMed вне форума Ответить с цитированием
Старый 25.03.2021, 17:07   #2
FrosyaZZ
Форумчанин
 
Регистрация: 16.11.2020
Сообщений: 243
По умолчанию

Цитата:
Сообщение от AnatolMed Посмотреть сообщение
Как добавить в LinkedList<T> к примеру LinkedListNode<T>c именем фирмы и сделать указатель на LinkedListNode<T> с видом работ.
Не надо этого делать.

Код:
LinkedList<Task> tasks = new LinkedList<Task>();
tasks.AddLast(new Task() { Firma = "Super", ... });
FrosyaZZ вне форума Ответить с цитированием
Старый 25.03.2021, 19:05   #3
AnatolMed
Новичок
Джуниор
 
Регистрация: 25.03.2021
Сообщений: 5
По умолчанию Односвязный список

Спасибо за ответ! Но ясней не стало. Допустим:
LinkedList<string> linkedList = new LinkedList<string>();
// добавление элементов
linkedList.Add("Tom");
linkedList.Add("Alice");
linkedList.Add("Bob");
linkedList.Add("Sam");
я не могу добавить вместо "Tom" - "название фирмы", " вид работ", "дата исполнения". Мне нужна сортировка по этим полям. ИЛИ я не то понимаю, что нужно понимать как работает односвязный список
AnatolMed вне форума Ответить с цитированием
Старый 26.03.2021, 06:25   #4
AnatolMed
Новичок
Джуниор
 
Регистрация: 25.03.2021
Сообщений: 5
По умолчанию

Для тех кто в броне, вот код рабочего односвязного списка
using System;
using System.Collections.Generic; // подключаем LinkedList<T>
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
public class Book
{
public string BookName { set; get; }
public int Price { set; get; }
}

class Program
{
static void Main(string[] args)
{
// создаем LinkedList<T>
LinkedList<Book> myList = new LinkedList<Book>();

// добавляем элемент в начало
Book b1 = new Book() { BookName = "Властелин Колец", Price = 200 };
myList.AddFirst(b1);
// в myList элементы: {"Властелин Колец", 200}

// добавляем элемент в конец
Book b2 = new Book() { BookName = "Три мушкетера", Price = 300 };
myList.AddLast(b2);
// в myList элементы: {"Властелин Колец", 200}, {"Три мушкетера", 300}

// найти элемент (ищет по ссылке)
LinkedListNode<Book> node2 = myList.Find(b2);

// добавляем элемент перед node2 {"Три мушкетера", 300}
Book b3 = new Book() { BookName = "Гарри Поттер", Price = 400 };
myList.AddBefore(node2, b3);
// в myList элементы: {"Властелин Колец", 200}, {"Гарри Поттер", 400}, {"Три мушкетера", 300}

// найти элемент (ищет по ссылке)
LinkedListNode<Book> node1 = myList.Find(b1);

// добавляем элемент после node1 {"Властелин Колец", 200}
Book b4 = new Book() { BookName = "Волшебник", Price = 800 };
myList.AddAfter(node1, b4);
// в myList элементы: {"Властелин Колец", 200}, {"Волшебник", 800}, {"Гарри Поттер", 400}, {"Три мушкетера", 300}

// Вариант 1 (проходим элементы с начала в конец)
LinkedListNode<Book> node = myList.First;
while (node != null)
{
Console.WriteLine("Название=" + node.Value.BookName + " ,Цена=" + node.Value.Price);
node = node.Next; // next node
}

// Вариант 2 (проходим элементы с конца в начало)
node = myList.Last;
while (node != null)
{
Console.WriteLine("Название=" + node.Value.BookName + " ,Цена=" + node.Value.Price);
node = node.Previous; // previous node
}

// перебираем все элементы с помощью foreach
foreach (Book item in myList)
Console.WriteLine("Название=" + item.BookName + " ,Цена=" + item.Price);
}
}
}
AnatolMed вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часть кода сделал. Односвязный список без заглавного звена. Динамическая память. Перевернуть список и считать в обратном порядке. Varner Общие вопросы Delphi 5 19.05.2016 17:30
Создать односвязный список и вывести его на экран. Из этого списка создать новый список по указанному ниже правилу и новый список San111 Паскаль, Turbo Pascal, PascalABC.NET 1 15.05.2012 22:08
Необходимо реализовать классы, односвязный список для хранения целых чисел, односвязный список для хранен lineico Помощь студентам 2 09.05.2011 17:45
[C] Односвязный список Dieno Помощь студентам 2 19.10.2009 18:52
C++. Односвязный список. Уничтожить список Olya90 Помощь студентам 2 10.06.2009 18:52