Списки. Инициализация, добавление элемента в начало и после другого элемента. Удаление элемента - C#

Узнай цену своей работы

Формулировка задачи:

uses crt;
type
list= ^item;
item=record
data: integer;
next:list;
end;
var
l:list;
procedure print;
var
t:list;
begin
new(t);
t:=l;
while t<>nil do begin
write(t^.data,' ');
t:=t^.next;
end;
writeln;
end;
 
begin
new(l);
l^.data:=1;
l^.next:=nil;
print;
readln;
end.
Помогите реализовать в с#. Я только начала изучать, немного про указатели прочитала, но ещё многого не понимаю.

Решение задачи: «Списки. Инициализация, добавление элемента в начало и после другого элемента. Удаление элемента»

textual
Листинг программы
public class TList<T> : IList<T>
{
    T[] a;
    public TList()
    {
        a = new T[0];
    }
    public TList(IEnumerable<T> s)
    {
        a = new T[0];
        foreach (T item in s)
            Add(item);
    }
    public T this[int index]
    {
        get
        {
            return a[index];
        }
        set
        {
            a[index] = value;
        }
    }
    public int IndexOf(T item)
    {
        for (int i = 0; i < a.Length; i++)
            if (this[i].Equals(item))
                return i;
        return -1;
    }
    public void Insert(int index, T item)
    {
        Array.Resize(ref a, a.Length + 1);
        for (int i = a.Length - 1; i > index; i--)
            a[i] = a[i - 1];
        a[index] = item;
    }
    public void RemoveAt(int index)
    {
        for (int i = index; i < a.Length - 1; i++)
            a[i] = a[i - 1];
        Array.Resize(ref a, a.Length - 1);
    }
    public IEnumerator<T> GetEnumerator()
    {
        for (int i = 0; i < a.Length; i++)
            yield return a[i];
    }
    IEnumerator IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }
    public bool IsReadOnly
    {
        get
        {
            return false;
        }
    }
    public int Count
    {
        get
        {
            return a.Length;
        }
    }
    public bool Remove(T item)
    {
        int index = IndexOf(item);
        if (index == -1)
            return false;
        RemoveAt(index);
        return true;
    }
    public void CopyTo(T[] array, int arrayIndex)
    {
        Array.Copy(a, 0, array, arrayIndex, a.Length);
    }
    public bool Contains(T item)
    {
        return IndexOf(item) != -1;
    }
    public void Add(T item)
    {
        Array.Resize(ref a, a.Length + 1);
        a[a.Length - 1] = item;
    }
    public void Clear()
    {
        a = new T[0];
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5
Похожие ответы