Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

การแทรกออบเจ็กต์ไปที่ด้านบนของ Stack ใน C#

ภาพรวม

เมธอด Stack<T>.Push(T item) ใส่ออบเจ็กต์ไว้ที่ด้านบน (top) ของสแต็ก ทำงานแบบ LIFO (Last-In-First-Out)

ตัวอย่างที่ 1: Stack ของจำนวนเต็ม

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        Stack<int> stack = new Stack<int>();
        stack.Push(100);
        stack.Push(150);
        stack.Push(175);
        stack.Push(200);
        stack.Push(225);
        stack.Push(250);

        Console.WriteLine("Elements in the Stack:");
        foreach (var val in stack)
        {
            Console.WriteLine(val);
        }

        Console.WriteLine("Count of elements in the Stack = " + stack.Count);
        Console.WriteLine("Does Stack has the element 400? = " + stack.Contains(400));

        stack.Push(300);
        stack.Push(400);
        stack.Push(450);
        stack.Push(500);

        Console.WriteLine("Elements in the Stack... (UPDATED)");
        foreach (var val in stack)
        {
            Console.WriteLine(val);
        }

        Console.WriteLine("Count of elements in the Stack (UPDATED) = " + stack.Count);
    }
}

ผลลัพธ์

Elements in the Stack:
250
225
200
175
150
100
Count of elements in the Stack = 6
Does Stack has the element 400? = False
Elements in the Stack... (UPDATED)
500
450
400
300
250
225
200
175
150
100
Count of elements in the Stack (UPDATED) = 10

ตัวอย่างที่ 2: Stack ของสตริง

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        Stack<string> stack = new Stack<string>();
        stack.Push("A");
        stack.Push("B");
        stack.Push("C");
        stack.Push("D");
        stack.Push("E");
        stack.Push("F");
        stack.Push("G");
        stack.Push("H");

        Console.WriteLine("Count of elements = " + stack.Count);
        Console.WriteLine("Elements in Stack...");
        foreach (string res in stack)
        {
            Console.WriteLine(res);
        }

        stack.Push("M");

        Console.WriteLine("Elements in the Stack... (UPDATED)");
        foreach (var val in stack)
        {
            Console.WriteLine(val);
        }

        Console.WriteLine("Count of elements in the Stack (UPDATED) = " + stack.Count);
    }
}

ผลลัพธ์

Count of elements = 8
Elements in Stack...
H
G
F
E
D
C
B
A
Elements in the Stack... (UPDATED)
M
H
G
F
E
D
C
B
A
Count of elements in the Stack (UPDATED) = 9

สรุป

  • Push ใส่ที่ top, Pop ดึงและลบ top, Peek ดู top โดยไม่ลบ
  • Stack เป็น LIFO ตัวสุดท้ายที่ Push จะเป็นตัวแรกที่ Pop
  • generic Stack<T> แนะนำให้ใช้แทน non-generic Stack