Untitled
unknown
plain_text
a year ago
3.3 kB
6
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