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(); }
private void setStack(string source, ClassStDin st) { string[] sNum = source.Split(); for (int i = 0; i < sNum.Length; i++) { if (sNum[i] != "") { int x = Convert.ToInt16(sNum[i]); st.Push(x); } } }
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; }