Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace List_of_object
- {
- interface ICompareble
- {
- public void CompareTo(object el);
- }
- public class Element :ICompareble
- {
- public object Data { get; set; } // Коефициенты элемента
- public int Index { get; set; } // Индекса элемента
- public Element Next { get; set; } // указатель на следующий элемент
- // constructors
- public Element() { Index = 0; Next = null; } // Конструктор без параметров
- public Element (object data, int index) // Конструктор с параметрами
- {
- Data = Data;
- Index = index;
- }
- public Element(object date) { Data = date; } // конструктор с параметром коефициент
- public Element(int index) { Index = index; } // Конструктор с параметром Индекс
- public void Delete()
- {
- Data = null;
- Index = 0;
- Next = null;
- }
- public void CompareTo(object el)
- {
- if(el.GetType()==typeof(int))
- {
- }
- }
- }
- class List
- {
- Element Head; // Первый элемент в стэке
- int count; // Количество элементов в стэке
- public bool IsEmpty // Проверка на пустоту списка
- { get { return count == 0; } }
- public int Count // Возвращаем кол-во элементов в списке
- { get { return count; } }
- public object this[int i]
- {
- get
- {
- Element mrk = Head;
- while (mrk != null && mrk.Index! != i)
- mrk = mrk.Next;
- if (mrk.Index != i)
- throw new InvalidOperationException("Element not found");
- return mrk.Data;
- }
- set
- {
- Element mrk = Head;
- while (mrk != null && mrk.Index! != i)
- mrk = mrk.Next;
- if (mrk.Index != i)
- throw new InvalidOperationException("Element not found");
- mrk.Data = value;
- }
- }
- public void Push(Element element) // Кладем элемент в список сортировка идет по номеру индекса
- {
- Element mrk = Head;
- bool f = false;
- while (mrk != null && !f)
- {
- if (element.Index < mrk.Index)
- {
- element.Next = Head;
- Head = element;
- f = true;
- }
- else
- {
- mrk = mrk.Next;
- }
- }
- count++;
- }
- public void Add(object date,int index)
- {
- Element new_el = new Element(date, index);
- Push(new_el);
- }
- public Element Peek() // Возвращает 1-ый элемент
- {
- if (IsEmpty)
- throw new InvalidOperationException("Список пуст");
- return Head;
- }
- public override string ToString()
- {
- string s = "";
- Element temp = Head;
- while (temp != null)
- {
- s += temp.Data + " ";
- temp = temp.Next;
- }
- return s;
- }
- public void Remove(object date, int index)
- {
- Element mark = Head;
- while (mark != null && mark.Index != index && index < mark.Index)
- mark = mark.Next;
- if (mark != null && mark.Index == index)
- mark.Data = date;
- else
- {
- Console.WriteLine($"Element with index {index} not found");
- }
- }
- public void Clear()
- {
- Element mrk = Head;
- while(Head!=null)
- {
- Head = Head.Next;
- mrk.Delete();
- }
- }
- public bool Contains(Element el)
- {
- Element mrk = Head;
- while (mrk != null)
- {
- if (mrk.Data == el.Data)
- {
- return true;
- }
- }
- return false;
- }
- public Element Index_of(int index) // Берем из списка элемент
- {
- if (IsEmpty)
- throw new InvalidOperationException("List null");
- Element temp = Head;
- while(temp!=null)
- {
- if(temp.Index==index)
- {
- break;
- }
- temp = temp.Next;
- }
- if(temp.Index!=index)
- throw new InvalidOperationException("Element not found");
- return temp;
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine("Hello World!");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement