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

การสร้าง Stack ใน C#

ภาพรวม

Stack<T> เป็นโครงสร้างข้อมูลแบบ LIFO (Last In, First Out) ใช้ Push() เพิ่มข้อมูล, Pop() ดึงข้อมูลออก, Peek() ดูข้อมูลบนสุด, และ Contains() ตรวจสอบว่ามีค่าหรือไม่

ตัวอย่างที่ 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);
        stack.Push(300);
        stack.Push(400);
        stack.Push(450);
        stack.Push(500);

        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));
    }
}

ผลลัพธ์

Elements in the Stack:
500
450
400
300
250
225
200
175
150
100
Count of elements in the Stack = 10
Does Stack has the element 400? = True

ตัวอย่างที่ 2: สร้าง Stack และวนลูปแสดงข้อมูล

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        Stack<int> stack = new Stack<int>();
        stack.Push(10);
        stack.Push(20);
        stack.Push(30);
        stack.Push(40);
        stack.Push(50);
        stack.Push(60);
        stack.Push(70);
        stack.Push(80);
        stack.Push(90);
        stack.Push(100);

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

ผลลัพธ์

Count of elements = 10
Elements in Stack...
100
90
80
70
60
50
40
30
20
10

สรุป

  • ข้อมูลที่ Push สุดท้ายจะอยู่บนสุด (แสดงก่อนใน foreach)
  • Count คืนจำนวนสมาชิก, Contains() ตรวจสอบค่า
  • เหมาะสำหรับงานที่ต้องการประมวลผลแบบถอยหลัง (undo, backtracking)