Стек на C# на основе массива
Всем привет!
Попробовал сделать пример стека из книжки "Полный справочник на С#" Г. Шилдта. Но почему-то не работает, может, кто поможет понять, почему.
В Метода stk.full выдает ошибку в return t==stk.Length
, якобы "Ссылка на объект не указывает на экземпляр объекта".
Где моя ошибка?)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication6
{
class Stek{
char[] stk;
int t;
public Stek(int size){
char[] stk=new char[size];
t=0;
Console.WriteLine("создание объект");
}
// Добавляем в стек элемент
public void setStk(char element)
{
if (t == stk.Length)
{
Console.WriteLine("Опасность!!! Стек Перегружен!!!");
return;
}
Console.WriteLine("s2");
stk[t] = (char)element;
t++;
}
// извлекаем из стека элемент
public char getStk()
{
// char element;
if (t == 0)
{
Console.WriteLine("Стек Пуст!!!!");
return (char)0;
}
t--;
return stk[t];
}
// Размер Стека
public bool full()
{
return t==stk.Length;
}
}
class Program
{
static void Main(string[] args)
{
int size = 10;
Stek s = new Stek(size);
Console.WriteLine("Помещаем Элементы в Стек!!!!!");
for (int i = 1;!s.full(); i++)
{
Console.Write(" " + i);
s.setStk((char)i);
}
Console.WriteLine("Извлекаем Элементы из Стека!!!!!");
while (!s.full()){
Console.WriteLine(s.getStk()+" ");
}
Console.ReadLine();
}
}
}
Источник: Stack Overflow на русском