private ArraySet UnionAndIntersResult(String posfix) { Stack <ArraySet> stack = new Stack <ArraySet>(); foreach (char c in posfix.ToCharArray()) { if (c == 'U' || c == 'u') { ArraySet resultTemp = stack.Pop().Union(stack.Pop()); stack.Push(resultTemp); } else if (c == 'n') { ArraySet resultTemp = stack.Pop().intersection(stack.Pop()); stack.Push(resultTemp); } else if (c == '-') { ArraySet resultTempB = stack.Pop(); ArraySet resultTempA = stack.Pop(); stack.Push(resultTempA.difference(resultTempB)); } else { ArraySet temp1 = setList[getIndexFromChar(c)]; stack.Push(temp1); } } return(stack.Pop()); }