Advertisement
Guest User

list

a guest
Dec 16th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.39 KB | None | 0 0
  1. using System;
  2.  
  3. namespace List_of_object
  4. {
  5.  
  6.     interface ICompareble
  7.     {
  8.         public void CompareTo(object el);
  9.     }
  10.     public class Element :ICompareble
  11.     {
  12.         public object Data { get; set; } // Коефициенты элемента
  13.         public int Index { get; set; }  // Индекса элемента
  14.         public Element Next { get; set; }  // указатель на следующий элемент
  15.  
  16.         // constructors
  17.         public Element() { Index = 0; Next = null; } // Конструктор без параметров
  18.         public Element (object data, int index) // Конструктор с параметрами
  19.         {
  20.             Data = Data;
  21.             Index = index;
  22.         }
  23.         public Element(object date) { Data = date; }  // конструктор с параметром коефициент
  24.         public Element(int index) { Index = index; }  // Конструктор с параметром Индекс
  25.         public void Delete()
  26.         {
  27.             Data = null;
  28.             Index = 0;
  29.             Next = null;
  30.         }
  31.  
  32.         public void CompareTo(object el)
  33.         {
  34.             if(el.GetType()==typeof(int))
  35.             {
  36.             }
  37.         }
  38.  
  39.     }
  40.  
  41.     class List
  42.     {
  43.         Element Head; // Первый элемент в стэке
  44.         int count; // Количество элементов в стэке
  45.  
  46.         public bool IsEmpty  // Проверка на пустоту списка
  47.         { get { return count == 0; } }
  48.  
  49.         public int Count // Возвращаем кол-во элементов в списке
  50.         { get { return count; } }
  51.  
  52.         public object this[int i]
  53.         {
  54.             get
  55.             {
  56.                 Element mrk = Head;
  57.  
  58.                 while (mrk != null && mrk.Index! != i)
  59.                     mrk = mrk.Next;
  60.  
  61.                 if (mrk.Index != i)
  62.                     throw new InvalidOperationException("Element not found");
  63.  
  64.                 return mrk.Data;
  65.             }
  66.  
  67.             set
  68.             {
  69.                 Element mrk = Head;
  70.                 while (mrk != null && mrk.Index! != i)
  71.                     mrk = mrk.Next;
  72.  
  73.                 if (mrk.Index != i)
  74.                     throw new InvalidOperationException("Element not found");
  75.  
  76.                 mrk.Data = value;
  77.             }
  78.  
  79.         }
  80.         public void Push(Element element) // Кладем элемент в список сортировка идет по номеру индекса
  81.         {
  82.             Element mrk = Head;
  83.             bool f = false;
  84.  
  85.             while (mrk != null && !f)
  86.             {
  87.                 if (element.Index < mrk.Index)
  88.                 {
  89.                     element.Next = Head;
  90.                     Head = element;
  91.                     f = true;
  92.                 }
  93.                 else
  94.                 {
  95.                     mrk = mrk.Next;
  96.                 }
  97.                
  98.             }
  99.  
  100.             count++;
  101.         }
  102.  
  103.         public void Add(object date,int index)
  104.         {
  105.             Element new_el = new Element(date, index);
  106.             Push(new_el);
  107.         }
  108.        
  109.         public Element Peek() // Возвращает 1-ый элемент
  110.         {
  111.             if (IsEmpty)
  112.                 throw new InvalidOperationException("Список пуст");
  113.             return Head;
  114.         }
  115.  
  116.         public override string ToString()
  117.         {
  118.             string s = "";
  119.             Element temp = Head;
  120.             while (temp != null)
  121.             {
  122.                 s += temp.Data + " ";
  123.                 temp = temp.Next;
  124.             }
  125.            
  126.             return s;
  127.         }
  128.        
  129.         public void Remove(object date, int index)
  130.         {
  131.             Element mark = Head;
  132.             while (mark != null && mark.Index != index && index < mark.Index)
  133.                 mark = mark.Next;
  134.             if (mark != null && mark.Index == index)
  135.                 mark.Data = date;
  136.             else
  137.             {
  138.                 Console.WriteLine($"Element with index {index} not found");
  139.             }
  140.         }
  141.  
  142.         public void Clear()
  143.         {
  144.             Element mrk = Head;
  145.  
  146.             while(Head!=null)
  147.             {
  148.                 Head = Head.Next;
  149.                 mrk.Delete();
  150.             }
  151.         }
  152.  
  153.         public bool Contains(Element el)
  154.         {
  155.             Element mrk = Head;
  156.  
  157.             while (mrk != null)
  158.             {
  159.                 if (mrk.Data == el.Data)
  160.                 {
  161.                     return true;
  162.                 }
  163.             }
  164.  
  165.             return false;
  166.         }
  167.  
  168.        
  169.         public Element Index_of(int index)  // Берем из списка элемент
  170.         {
  171.             if (IsEmpty)
  172.                 throw new InvalidOperationException("List null");
  173.  
  174.             Element temp = Head;
  175.            
  176.             while(temp!=null)
  177.             {
  178.                 if(temp.Index==index)
  179.                 {
  180.                     break;
  181.                 }
  182.                 temp = temp.Next;
  183.             }
  184.  
  185.             if(temp.Index!=index)
  186.                 throw new InvalidOperationException("Element not found");
  187.  
  188.             return temp;
  189.         }
  190.        
  191.  
  192.     }
  193.  
  194.     class Program
  195.     {
  196.         static void Main(string[] args)
  197.         {
  198.             Console.WriteLine("Hello World!");
  199.         }
  200.     }
  201. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement