Двусвязный список: Почему нельзя сравнить тип Т - C#
Формулировка задачи:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _4laba { class Program { static void Main(string[] args) { GenericList<int> list = new GenericList <int>(); list.Add(10); list.Add(12); list.Add(13); list.Show(); } } class GenericList<T> { private class Node { private Node next;//скрытая ссылка на следующий элемент public Node Next//свойство "следующий элемент" { get { return next; } set { next = value; } } private Node prev;//скрытая ссылка на следующий элемент public Node Prev//свойство "следующий элемент" { get { return prev; } set { prev = value; } } private T data;//переменная типа Т, хранит данные public T Data//свойство для получения и установки данных типа Т в элементе { get { return data; } set { data = value; } } public Node(T t) { next = null; data = t; } } private Node head;//хранит ссылку на первый элемент в списке private Node tail;//хранит ссылку на последний элемент в списке public GenericList()//конструктор списка { head = null; tail = null; } public void Add(T t) { Node temp = new Node(t); if(head==null) { temp.Prev = null; head = tail = temp; } else { temp.Prev = tail; temp.Next = temp; tail = temp; } } public void Show() { ////ВЫВОДИМ СПИСОК С КОНЦА Node temp = tail; //Временный указатель на адрес последнего элемента while (temp != null) //Пока не встретится пустое значение { Console.WriteLine(temp.Data + " ");//Выводить значение на экран temp = temp.Prev; //Указываем, что нужен адрес предыдущего элемента } Console.WriteLine("\n"); } public int GetIndex(T data)//достать индекс по значению элемента { Node temp = tail; T TEMP; while(temp!=null) { TEMP = temp.Data; if(data==TEMP) { } } } } }
Решение задачи: «Двусвязный список: Почему нельзя сравнить тип Т»
textual
Листинг программы
class NodeList<T> { // конструктор public NodeList(T value) { Value = value; } // кастомный конструктор для вставки в середину public NodeList(T value, NodeList<T> next) { Value = value; Next = next; } // значение узла (data) public T Value { get; set; } // установка следущего узла в списке, если ничего то NULL (просто сам указатель) public NodeList<T> Next { get; set; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д