Дан стек размера N. Изменить порядок его элементов на обратный - C#
Формулировка задачи:
Доброго вечера!
Помогите, пожалуйста, с задачей:
Не совсем понятно, как реализовать его работу и выполнения условия задачи после указания размера стека (Stack st = new Stack(10))
Изначально, в стеке все нули
Дан стек размера N. Изменить порядок его элементов на обратный.
Для решения создан класс Stackusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ПЕРВЫЕ_УЧЕБНЫЕ_КЛАССЫ
{
class Stack
{
byte[] mas;
int tos;
int dlina;
bool errflag;
public Stack(int size)
{
mas = new byte[size];
tos = 0;
}
public void Push(byte simb)
{
if (tos == mas.Length)
{
Console.WriteLine("Стек полон!");
return;
}
mas[tos] = simb;
tos++;
}
public ushort Pop()
{
if (tos == 0)
{
Console.WriteLine("Стек пуст!");
return (ushort)0;
}
tos--;
return mas[tos];
}
public bool Full() { return tos == mas.Length; }
public bool Empty() { return tos == 0; }
public int Capacity() { return mas.Length; }
public int Get_num() { return tos; }
public void Show()
{
for (int i = mas.Length - 1; i >= 0; i--)
Console.WriteLine(mas[i]);
Console.WriteLine();
}
public void Show(Stack Ob)
{
for (int i = mas.Length - 1; i >= 0; i--)
Console.WriteLine(mas[i]);
Console.WriteLine();
}
public Stack(Stack Ob)
{
mas = new byte[Ob.Capacity()];
for (int i = 0; i < Ob.tos; i++)
mas[i] = Ob.mas[i];
tos = Ob.tos;
}
public int Razmer
{
get
{
return dlina;
}
}
public bool Oshibka
{
get
{
return errflag;
}
}
private bool Ok(int index)
{
if (index >= 0 && index < Razmer) return true;
else
return false;
}
public byte this[int index]
{
get
{
if (Ok(index))
{
errflag = false;//Ошибки нет!
return mas[index];
}
else
{
errflag = true;//Ошибка индекса!
return 0;//Без.прог.кода.
}
}
set
{
if (Ok(index))
{
errflag = false;
mas[index] = value;
}
else
errflag = true;
}
}//Конец класса
}
}Решение задачи: «Дан стек размера N. Изменить порядок его элементов на обратный»
textual
Листинг программы
for(i=0; !stk1.IsFull(); i++) stk1.Push(int.Parse(Console.ReadLine()));