Challenge: 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.
The syntax for creating a generic class is class className<T1, T2, …> { /* 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());
}
}
}
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください