using System;
using System.Collections.Generic;
using System.Collections;
class ProgrammingLanguagesStack
{
static void Main(string[] args)
{
// Create a stack representing the order of programming languages learned
Stack<string> languageStack = new Stack<string>();
Console.WriteLine("Programming Languages Learning History (LIFO Stack):");
Console.WriteLine("===================================================");
// Push languages onto the stack in the order they were learned
languageStack.Push("BASIC");
languageStack.Push("Pascal");
languageStack.Push("C");
languageStack.Push("C++");
languageStack.Push("Java");
languageStack.Push("Python");
languageStack.Push("JavaScript");
Console.WriteLine("\nLanguages learned (most recent first):");
foreach (string language in languageStack)
{
Console.WriteLine(language);
}
Console.WriteLine("\nTotal languages learned: " + languageStack.Count);
// Check if stack contains specific languages
Console.WriteLine("\nStack contains Java: " + languageStack.Contains("Java"));
Console.WriteLine("Stack contains Ruby: " + languageStack.Contains("Ruby"));
Console.WriteLine("\nRemoving languages from stack (LIFO order):");
// Pop languages from the stack
while (languageStack.Count > 0)
{
string language = languageStack.Pop();
Console.WriteLine("Removed: " + language + " (Remaining in stack: " + languageStack.Count + ")");
}
Console.WriteLine("\nStack is now empty. Count: " + languageStack.Count);
// Demonstrate stack again with a different scenario
Console.WriteLine("\n--- New Scenario: Current Project Languages Stack ---");
Stack<string> projectStack = new Stack<string>();
projectStack.Push("SQL");
projectStack.Push("C#");
projectStack.Push("JavaScript");
projectStack.Push("HTML/CSS");
Console.WriteLine("\nCurrent project technology stack (top to bottom):");
foreach (string tech in projectStack)
{
Console.WriteLine(tech);
}
}
}