Example #1
0
        private static void TestStrukturyA()
        {
            var arr     = new[] { 5, 5, 1, 0, 10 };
            var struktA = new StrukturaA(10);

            AddHeader("Struktura A - 1.28 z podrecznika");
            Console.WriteLine(StrukturaA.Search(1, struktA));
            Console.WriteLine(StrukturaA.Search(-5, struktA));

            foreach (int val in arr)
            {
                Console.WriteLine(StrukturaA.Insert(val, struktA));
            }

            Console.WriteLine(StrukturaA.Search(10, struktA));

            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine(StrukturaA.Select(struktA));
            }

            foreach (int val in arr)
            {
                Console.WriteLine(StrukturaA.Insert(val, struktA));
            }

            for (int i = 0; i < 5; i++)
            {
                Console.WriteLine(StrukturaA.Select(struktA));
            }
        }
Example #2
0
        public static bool Insert(int val, StrukturaA set)
        {
            if (IsInBounds(set, val - 1) && set.Arr[val - 1] is null)
            {
                set.Arr[val - 1]   = new Value(val);
                set.Indexes[set.N] = val - 1;
                set.N++;
                return(true);
            }

            return(false);
        }
Example #3
0
        public static int Select(StrukturaA set)
        {
            if (set.N > 0)
            {
                set.N--;
                int ind    = set.Indexes[set.N];
                int result = set.Arr[ind].Data;
                set.Arr[ind] = null;
                return(result);
            }

            return(-1);
        }
Example #4
0
 public static bool Search(int val, StrukturaA set)
 {
     return(IsInBounds(set, val - 1) && !(set.Arr[val - 1] is null));
 }
Example #5
0
 private static bool IsInBounds(StrukturaA set, int val)
 {
     return(val < set.Size && val >= 0);
 }