Task - Implementing a Generic Class
You can clone the base code from the GithHub Repository.
A stack is a special kind of data structure which stores data according to the Last In, First Out (LIFO) principle. A stack has two main methods, namely, Push
and Pop
. The Push
adds a new element to the stack, and Pop
removes the most recently added element from the stack. You can imagine it like a stack of books, or any other item. By using Push
you add a new item on the top, and by using Pop
you remove the item at the top. This is the LIFO principle.
The program contains a class which implements the Stack data structure, however, it only supports integers. Make changes in the class code so that it is able to support any data type.
class className { /* class code here */ }
.
namespace ConsoleApp
{
internal class Program
{
public class Stack<T>
{
private List<T> items;
public Stack()
{
items = new List<T>();
}
public void Push(T item)
{
items.Add(item);
}
public T Pop()
{
if (items.Count == 0)
throw new InvalidOperationException("Stack is empty");
T poppedItem = items[items.Count - 1];
items.RemoveAt(items.Count - 1);
return poppedItem;
}
// Gets the last element, without removing it
public T Peek()
{
if (items.Count == 0)
{
throw new InvalidOperationException("Stack is empty");
}
return items[items.Count - 1];
}
public int Count
{
get { return items.Count; }
}
public bool IsEmpty
{
get { return items.Count == 0; }
}
}
static void Main(string[] args)
{
Stack<string> s1 = new Stack<string>();
s1.Push("a");
s1.Push("b");
s1.Push("c");
Console.WriteLine(s1.Pop());
Console.WriteLine(s1.Pop());
Console.WriteLine(s1.Pop());
}
}
}
Все було зрозуміло?
Зміст курсу
Advanced C# with .NET
1. Introduction to Desktop Development with .NET
Advanced C# with .NET
Task - Implementing a Generic Class
You can clone the base code from the GithHub Repository.
A stack is a special kind of data structure which stores data according to the Last In, First Out (LIFO) principle. A stack has two main methods, namely, Push
and Pop
. The Push
adds a new element to the stack, and Pop
removes the most recently added element from the stack. You can imagine it like a stack of books, or any other item. By using Push
you add a new item on the top, and by using Pop
you remove the item at the top. This is the LIFO principle.
The program contains a class which implements the Stack data structure, however, it only supports integers. Make changes in the class code so that it is able to support any data type.
class className { /* class code here */ }
.
namespace ConsoleApp
{
internal class Program
{
public class Stack<T>
{
private List<T> items;
public Stack()
{
items = new List<T>();
}
public void Push(T item)
{
items.Add(item);
}
public T Pop()
{
if (items.Count == 0)
throw new InvalidOperationException("Stack is empty");
T poppedItem = items[items.Count - 1];
items.RemoveAt(items.Count - 1);
return poppedItem;
}
// Gets the last element, without removing it
public T Peek()
{
if (items.Count == 0)
{
throw new InvalidOperationException("Stack is empty");
}
return items[items.Count - 1];
}
public int Count
{
get { return items.Count; }
}
public bool IsEmpty
{
get { return items.Count == 0; }
}
}
static void Main(string[] args)
{
Stack<string> s1 = new Stack<string>();
s1.Push("a");
s1.Push("b");
s1.Push("c");
Console.WriteLine(s1.Pop());
Console.WriteLine(s1.Pop());
Console.WriteLine(s1.Pop());
}
}
}
Все було зрозуміло?