Списки. Инициализация, добавление элемента в начало и после другого элемента. Удаление элемента - 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]; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д