Untitled
unknown
plain_text
2 years ago
5.0 kB
4
Indexable
using System; using System.Collections.Generic; namespace arraylist { public class ArrayListRek<T> { private List<object> arrayList; public ArrayListRek() { arrayList = new List<object>(); } public void Dodawanie(T item) { DodawanieRek(arrayList, item); } public T Get(int indeks) { return GetRek(arrayList, indeks); } public void Set(int indeks, T wartosc) { SetRek(arrayList, indeks, wartosc); } public void Usuwanie(int indeks) { UsuwanieRek(arrayList, indeks); } public int LicznikRek() { return LicznikRek(arrayList); } public void WyswietlMiejscaElementow() { WyswietlMiejscaElementowRek(arrayList); } private int LicznikRek(List<object> list) { int licznik = 0; foreach (var item in list) { if (item is List<object>) { licznik += LicznikRek((List<object>)item); } else { licznik++; } } return licznik; } private void DodawanieRek(List<object> list, T item) { if (LicznikRek(list) > 0 && list[list.Count - 1] is List<object>) { DodawanieRek((List<object>)list[list.Count - 1], item); } else { list.Add(item); } } private T GetRek(List<object> list, int indeks2) { foreach (var item in list) { if (item is List<object>) { var wynik = GetRek((List<object>)item, indeks2); if (wynik != null) { return wynik; } } else { if (indeks2 == 0) { return (T)item; } indeks2--; } } return default(T); } private void SetRek(List<object> list, int indeks2, T wartosc) { for (int i = 0; i < list.Count; i++) { var item = list[i]; if (item is List<object>) { SetRek((List<object>)item, indeks2, wartosc); } else { if (indeks2 == 0) { list[i] = wartosc; return; } indeks2--; } } } private void UsuwanieRek(List<object> list, int indeks2) { for (int i = 0; i < list.Count; i++) { var item = list[i]; if (item is List<object>) { UsuwanieRek((List<object>)item, indeks2); } else { if (indeks2 == 0) { list.RemoveAt(i); return; } indeks2--; } } } private void WyswietlMiejscaElementowRek(List<object> list) { for (int i = 0; i < list.Count; i++) { var item = list[i]; if (item is List<object>) { WyswietlMiejscaElementowRek((List<object>)item); } else { Console.WriteLine($"Indeks {i}: {item}"); } } } } class Program { static void Main() { ArrayListRek<object> arrayListRek = new ArrayListRek<object>(); // Dodawanie elementów arrayListRek.Dodawanie(87); arrayListRek.Dodawanie("Hello"); arrayListRek.Dodawanie(2.96); // Wyświetlanie zawartości Console.WriteLine($"Licznik: {arrayListRek.LicznikRek()}"); arrayListRek.WyswietlMiejscaElementow(); // Zmiana wartości arrayListRek.Set(1, "World"); // Usuwanie elementu arrayListRek.Usuwanie(0); // Wyświetlanie zmienionej zawartości Console.WriteLine("\nPo zmianach:"); Console.WriteLine($"Licznik: {arrayListRek.LicznikRek()}"); arrayListRek.WyswietlMiejscaElementow(); Console.ReadKey(); } } }
Editor is loading...
Leave a Comment