Example #1
0
        // используется во время отладки так что даже не считаю
        public MyStack GetCopy()
        {
            MyStack tmp_stack = new MyStack(GetMaxSize());

            while (!IsEmpty())
            {
                tmp_stack.Add(Pop());
            }

            MyStack for_return = new MyStack(GetMaxSize());     // 11

            while (!tmp_stack.IsEmpty())
            {
                for_return.Add(tmp_stack.Peek());
                Add(tmp_stack.Pop());
            }
            return(for_return);
        }
Example #2
0
        public int GetElement(int pos)                          // 26n + 20 = 11 + 13n + 8 + 13n + 1
        {
            MyStack tmp_stack = new MyStack(GetTopPointer());   // 11 = 10 + 1

            N_op += 2;

            while (TopPointer != pos + 1)                       // 13n = n раз, где n размер стека, так что (3(проверка) + 10(внутр)) * n
            {
                N_op += 4;
                tmp_stack.Add(Pop());                           // 10
            }
            int element = Peek();                               // 8 = 7 + 1

            N_op += 2;

            while (!tmp_stack.IsEmpty())                        // 13n
            {
                N_op += 4;
                Add(tmp_stack.Pop());                               // 3(add) + 7(pop) = 10
            }
            N_op += 1;
            return(element);                                     // 1
        }