Как объеденить два объекта? Доброго времени суток Программа представляет собою стек, куда записываются вагоны и они сортируются по типам А и Б Нужно мне эти два типа объеденить и потом вывести одним целым стеком Как объединить их информацию в одну целую?using System using System.Collections.Generic using System.Linq using System.Text using System.Threading.Tasks interface IStack Boolean Empty() object Pop() object Push(object element1) object Peek() void Display()
class Carriage public int CarriageNumber get; protected set
public string CarriageType get; protected set
public Carriage(string type, int number) this.CarriageNumber = number this.CarriageType = type
public override string ToString() return CarriageNumber.ToString() + "/" + CarriageType
public void Entering()
class Stack : IStack int StackSize int top object[] item public int StackSizeProperty get { return StackSize; set { StackSize = value;
public Stack() StackSizeProperty = 10 item = new object[StackSize] top = 0
public Stack(int capacity) StackSizeProperty = capacity item = new object[StackSizeProperty] top = 0
public bool Empty() if (top == 0) return true
return false
public object Push(object elements) if (top == StackSize) Console.WriteLine("Stack is full.\n") return "Stack is full."
else item[++top] = elements Console.WriteLine("Item was been pushed.\n") return "item was been pushed."
public void Entering(string CarriageType, int CarriageNumber) Console.Write("\n\tEnter the type of train: ") CarriageType = Console.ReadLine() Console.Write("\tEnter the number of train: ") CarriageNumber = int.Parse(Console.ReadLine())
public object Pop() if (Empty()
Console.WriteLine("Stack is empty.\n") return "Nothing."
else return item[top--]
public object Peek() if (Empty()) Console.WriteLine("Stack is empty.\n") return "Nothing."
else return item[top]
public void Display() for (int elements = top; elements > 0; elements--) Console.WriteLine("Item " + elements + ": " + item[elements])
public void Exit() do } while (Console.ReadKey().Key != ConsoleKey.Escape)
public int Entering() Console.Write("\tEnter the number of train: ") return int.Parse(Console.ReadLine())
class MainProgramStacks static void Main() Stack FullStack = new Stack() Stack AtypeStack = new Stack() Stack BtypeStack = new Stack() int mm_choice = 0, type_choice = 0, peek_choice = 0 rmv_choice = 0, display_choice = 0 CarriageNumberA = 0, CarriageNumberB = 0 while (true) Console.WriteLine("- -- --- - Menu - --- -- -") Console.WriteLine("- 1 - Add an element -"); // Console.WriteLine("- 2 - Peek top element -"); // Console.WriteLine("- 3 - Remove top element -"); // Console.WriteLine("- 4 - Display stacks -"); // Console.WriteLine("- 5 - Exit -") Console.WriteLine("- -- --- - -- - --- -- -") mm_choice = int.Parse(Console.ReadLine())
switch (mm_choice) case 1 Console.Clear() while (type_choice != 3
Console.WriteLine("- 1 - Add an element to type A: ") Console.WriteLine("- 2 - Add an element to type B: ") Console.WriteLine("- 3 - Exit -") type_choice = int.Parse(Console.ReadLine()) switch (type_choice
case 1 AtypeStack.Push(new Carriage("a", AtypeStack.Entering())) break case 2 BtypeStack.Push(new Carriage("b", AtypeStack.Entering())) break
break case 2 Console.Clear() while (peek_choice != 3) Console.WriteLine("- 1 - Peek top element of A type: ") Console.WriteLine("- 2 - Peek top element of B type: ") Console.WriteLine("- 3 - Exit ") peek_choice = int.Parse(Console.ReadLine()) switch (peek_choice) case 1 AtypeStack.Peek() break case 2 BtypeStack.Peek() break
break case 3 Console.Clear() while (rmv_choice != 3) Console.WriteLine("- 1 - Remove element from type A: ") Console.WriteLine("- 2 - Remove element from type B: ") Console.WriteLine("- 3 - Exit -") rmv_choice = int.Parse(Console.ReadLine()) switch (rmv_choice) case 1 AtypeStack.Pop() break case 2 BtypeStack.Pop() break
FullStack.Pop() break case 4 Console.Clear() while (display_choice != 4
Console.WriteLine("- 1 - Display elements of type A: ") Console.WriteLine("- 2 - Display elements of type B: ") Console.WriteLine("- 3 - Display all elements: ") Console.WriteLine("- 4 - Exit -") display_choice = int.Parse(Console.ReadLine())
switch (display_choice
case 1 AtypeStack.Display() break case 2 BtypeStack.Display() break case 3 FullStack.Display() break
Для объединения двух стеков типов A и B в один общий стек, можно просто добавить все элементы из стека типа B в стек типа A Вот пример кода, который показывает, как это сделать:
Создаём метод в классе Stack для объединения стеков:public void CombineStacks(Stack stackB
while(!stackB.Empty()
Push(stackB.Pop())
}В методе Main после добавления элементов в стеки типов A и B, вызываем метод CombineStacks для объединения:case 1 Console.Clear() while (type_choice != 3
Console.WriteLine("- 1 - Add an element to type A: ") Console.WriteLine("- 2 - Add an element to type B: ") Console.WriteLine("- 3 - Exit -") type_choice = int.Parse(Console.ReadLine()) switch (type_choice
case 1 AtypeStack.Push(new Carriage("a", AtypeStack.Entering())) break case 2 BtypeStack.Push(new Carriage("b", AtypeStack.Entering())) break
AtypeStack.CombineStacks(BtypeStack) break;
Теперь после того, как вы добавите все элементы в стеки типов A и B, они будут объединены в стеке типа A.
Для объединения двух стеков типов A и B в один общий стек, можно просто добавить все элементы из стека типа B в стек типа A
Создаём метод в классе Stack для объединения стеков:public void CombineStacks(Stack stackBВот пример кода, который показывает, как это сделать:
while(!stackB.Empty()
Push(stackB.Pop())
}В методе Main после добавления элементов в стеки типов A и B, вызываем метод CombineStacks для объединения:case 1
Console.Clear()
while (type_choice != 3
Console.WriteLine("- 1 - Add an element to type A: ")
Console.WriteLine("- 2 - Add an element to type B: ")
Console.WriteLine("- 3 - Exit -")
type_choice = int.Parse(Console.ReadLine())
switch (type_choice
case 1
AtypeStack.Push(new Carriage("a", AtypeStack.Entering()))
break
case 2
BtypeStack.Push(new Carriage("b", AtypeStack.Entering()))
break
AtypeStack.CombineStacks(BtypeStack)
break;
Теперь после того, как вы добавите все элементы в стеки типов A и B, они будут объединены в стеке типа A.