Untitled
unknown
plain_text
2 years ago
5.0 kB
7
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