Untitled
unknown
plain_text
2 years ago
3.3 kB
13
Indexable
using System;
namespace arraylist_005
{
public class ArrayList<T> where T : IComparable
{
public T Var { get; set; }
public ArrayList<T> Nastepny { get; set; }
public ArrayList()
{
Nastepny = null;
}
public ArrayList(T val)
{
Var = val;
Nastepny = null;
}
public void Dodaj(T val) //dopisywanie nowego elementu i automatyczne sortowanie
{
if (Var.CompareTo(val) < 0)
{
if (Nastepny == null)
{
Nastepny = new ArrayList<T>(val);
}
else
{
if (Nastepny.Var.CompareTo(val) < 0)
{
Nastepny.Dodaj(val);
}
else
{
var nowy = new ArrayList<T>(val);
nowy.Nastepny = Nastepny;
Nastepny = nowy;
}
}
}
else if (Var.CompareTo(val) == 0)
{
var nowy = new ArrayList<T>(val);
nowy.Nastepny = Nastepny;
Nastepny = nowy;
}
else
{
var nowy = new ArrayList<T>(val);
nowy.Var = Var;
nowy.Nastepny = Nastepny;
Var = nowy.Var;
Nastepny = nowy.Nastepny;
}
}
public bool Znajdz(T val) //sprawdzenie, czy dany element jest w liście
{
if (Var != null)
{
if (Var.CompareTo(val) == 0)
{
return true;
}
}
return Nastepny != null && Nastepny.Znajdz(val);
}
public void Wyswietl() //pokazanie zawartości tablicy
{
Console.Write(Var + " ");
if (Nastepny != null)
{
Nastepny.Wyswietl();
}
}
public void ZwolnijPamiec() //usuniecie listy z pamieci
{
if (Nastepny != null)
{
Nastepny.ZwolnijPamiec();
}
Var = default(T);
Nastepny = null;
}
}
class Program
{
static void Main(string[] args)
{
var list = new ArrayList<int>();
Random rand = new Random();
for (int i = 0; i < 10; i++)
{
int a = rand.Next(20);
list.Dodaj(a);
}
Console.WriteLine("Posortowana lista:");
list.Wyswietl();
Console.WriteLine("\n========================================");
Console.WriteLine("Szukanie liczby '4' w liście");
if (list.Znajdz(4))
{
Console.WriteLine("Taka liczba znajduje się w liście.");
}
else
{
Console.WriteLine("Taka liczba nie znajduje się w liście.");
}
list.ZwolnijPamiec();
list.Wyswietl();
Console.ReadKey();
}
}
}
Editor is loading...
Leave a Comment