Ejemplo n.º 1
0
        public void proc(string s, out string s0, out string s1, out string s2)
        {
            // формирование исходного стека из textBox'a
            string [] sNum = s.Split();
            for (int i = 0; i < sNum.Length; i++)
            {
                if (sNum[i] != "")
                {
                    int x = Convert.ToInt16(sNum[i]);
                    st1.Push(x);
                }
            } //for

            // печать исходного стека
            s0 = st1.printStack();


            // перенос исходного стека во вспомогательный
            while (st1.Count > 0)
            {
                tmp.Push(st1.Pop());
            }

            // разделение колец по "цвету"
            while (!tmp.isEmpty())
            {
                int x = tmp.Pop();
                if (x > 0)
                {
                    st1.Push(x);
                }
                else
                {
                    st2.Push(x);
                }
            }

            // печать получившихся стеков
            s1 = st1.printStack();
            s2 = st2.printStack();
        }
Ejemplo n.º 2
0
        public void counter(out int len1, out int len2)
        {
            while (!st1.isEmpty()) // перенос элементов из стека 1 в стек 2
            {
                st2.Push(st1.Pop());
                counter1++;
            }

            while (!st2.isEmpty()) // перенос элементов из стека 2 в стек 1
            {
                st1.Push(st2.Pop());
                counter2++;
            }

            for (int i = 0; i < counter1; i++)
            {
                st2.Push(st1.Pop());
            }

            len1 = counter1;
            len2 = counter2 - counter1;
        }