Двусвязный список: Почему нельзя сравнить тип Т - 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; }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д