Untitled

 avatar
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