C# Stack dengan Contoh Push & Pop
⚡ Ringkasan Cerdas
Stack di C# adalah koleksi dari namespace System.Collections yang mengikuti prinsip last in, first out (LIFO), di mana metode Push menambahkan elemen ke bagian atas dan metode Pop menghapusnya.
Apa itu Tumpukan di C#?
Tumpukan adalah kumpulan kasus khusus yang mewakili konsep masuk terakhir keluar pertama (LIFO). Untuk memahami LIFO terlebih dahulu, mari kita ambil contoh. Bayangkan setumpuk buku yang masing-masing bukunya ditumpuk satu sama lain.
Konsep masuk terakhir keluar pertama dalam hal buku berarti hanya buku paling atas yang dapat dikeluarkan dari tumpukan buku. Tidak mungkin mengeluarkan buku di antara keduanya, karena hal itu akan mengganggu pengaturan tumpukan.
Oleh karena itu dalam C#, tumpukan juga bekerja dengan cara yang sama. Elemen ditambahkan ke tumpukan, satu di atas yang lain. Proses penambahan elemen ke tumpukan disebut operasi push. Untuk menghapus elemen dari tumpukan, Anda juga dapat menghapus elemen paling atas dari tumpukan. Operasi ini dikenal sebagai pop.
Mari kita lihat operasi yang tersedia untuk koleksi Stack secara lebih rinci.
Deklarasi tumpukan
Tumpukan dibuat dengan bantuan tipe Stack Data. Kata kunci “baru” digunakan untuk membuat objek Stack. Objek tersebut kemudian ditugaskan ke variabel st.
Stack st = new Stack()
Menambahkan elemen ke tumpukan
Metode push digunakan untuk menambahkan elemen ke tumpukan. Sintaks umum dari pernyataan tersebut diberikan di bawah ini.
Stack.push(element)
Menghapus elemen dari tumpukan
Metode pop digunakan untuk menghapus elemen dari tumpukan. Operasi pop akan mengembalikan elemen paling atas dari tumpukan. Sintaks umum dari pernyataan tersebut diberikan di bawah ini
Stack.pop()
Menghitung
Properti ini digunakan untuk mendapatkan jumlah item di Stack. Di bawah ini adalah sintaks umum dari pernyataan ini.
Stack.Count
Mengandung
Metode ini digunakan untuk melihat apakah suatu elemen ada di Stack. Di bawah ini adalah sintaks umum dari pernyataan ini. Pernyataan akan mengembalikan nilai benar jika elemennya ada, jika tidak maka akan mengembalikan nilai salah.
Stack.Contains(element)
Sekarang mari kita lihat ini berfungsi pada tingkat kode. Semua kode yang disebutkan di bawah ini akan ditulis ke kami Aplikasi konsol. Kode akan ditulis ke file Program.cs kami.
Dalam program di bawah ini, kita akan menulis kode untuk melihat bagaimana kita dapat menggunakan metode yang disebutkan di atas.
Contoh 1: Metode Stack.Push()
Dalam contoh ini, kita akan melihatnya
- Bagaimana tumpukan dibuat.
- Cara menampilkan elemen tumpukan, dan menggunakan metode Hitung dan Isi.
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Stack st = new Stack(); st.Push(1); st.Push(2); st.Push(3); foreach (Object obj in st) { Console.WriteLine(obj); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("The number of elements in the stack " +st.Count); Console.WriteLine("Does the stack contain the elements 3 "+st.Contains(3)); Console.ReadKey(); } } }
Code Penjelasan:-
- Langkah pertama digunakan untuk mendeklarasikan Stack. Di sini kita mendeklarasikan “st” sebagai variabel untuk menampung elemen tumpukan kita.
- Selanjutnya, kita menambahkan 3 elemen ke tumpukan kita. Setiap elemen ditambahkan melalui metode Push.
- Sekarang karena elemen tumpukan tidak dapat diakses melalui posisi indeks seperti daftar susunan, kita perlu menggunakan pendekatan berbeda untuk menampilkan elemen tumpukan. Objek (obj) adalah variabel sementara, yang dideklarasikan untuk menampung setiap elemen tumpukan. Kami kemudian menggunakan pernyataan foreach untuk menelusuri setiap elemen tumpukan. Untuk setiap elemen tumpukan, nilainya ditetapkan ke variabel obj. Kami kemudian menggunakan perintah Console.Writeline untuk menampilkan nilai ke konsol.
- Kami menggunakan properti Hitung (st.hitungan) untuk mendapatkan jumlah item dalam tumpukan. Properti ini akan mengembalikan nomor. Kami kemudian menampilkan nilai ini ke konsol.
- Kami kemudian menggunakan metode Berisi untuk melihat apakah nilai 3 ada di tumpukan kami. Ini akan mengembalikan nilai benar atau salah. Kami kemudian menampilkan nilai kembalian ini ke konsol.
Jika kode di atas dimasukkan dengan benar dan program dijalankan, output berikut akan ditampilkan.
Keluaran:
Dari output, kita dapat melihat bahwa elemen-elemen tumpukan ditampilkan. Selain itu, nilai True ditampilkan untuk menyatakan bahwa nilai 3 ditetapkan pada tumpukan.
Note: Anda telah memperhatikan bahwa elemen terakhir yang dimasukkan ke dalam tumpukan ditampilkan terlebih dahulu. Ini adalah elemen paling atas dari tumpukan. Jumlah elemen tumpukan juga ditampilkan dalam output.
Contoh 2: Metode Stack.Pop()
Sekarang mari kita lihat fungsi “hapus”. Kita akan melihat kode yang diperlukan untuk menghapus elemen paling atas dari tumpukan.
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Stack st = new Stack(); st.Push(1); st.Push(2); st.Push(3); st.Pop(); foreach (Object obj in st) { Console.WriteLine(obj); } Console.ReadKey(); } } }
Code Penjelasan:-
- Disini kita hanya mengeluarkan metode pop yang digunakan untuk menghapus elemen dari tumpukan.
Jika kode di atas dimasukkan dengan benar dan program dijalankan, output berikut akan ditampilkan.
Keluaran:
Kita dapat melihat bahwa elemen 3 telah dihapus dari tumpukan.
Metode Stack Peek() C#
Metode Push dan Pop bekerja dengan elemen teratas tumpukan, tetapi terkadang Anda hanya perlu melihat elemen teratas tanpa menghapusnya. Metode Peek melakukan hal itu. Metode ini mengembalikan nilai teratas tumpukan tanpa mengubah koleksi, yang berguna ketika Anda ingin menguji item berikutnya sebelum memutuskan untuk menghapusnya.
Langkah 1) Buat tumpukan dan masukkan tiga elemen ke dalamnya, sehingga nilai 3 berada di atas.
Langkah 2) Panggil metode Peek untuk membaca elemen teratas, lalu periksa properti Count untuk memastikan tidak ada yang dihapus.
using System; using System.Collections; namespace DemoApplication { class Program { static void Main(string[] args) { Stack st = new Stack(); st.Push(1); st.Push(2); st.Push(3); Console.WriteLine(st.Peek()); Console.WriteLine(st.Count); Console.ReadKey(); } } }
Code Penjelasan:-
- Sebuah tumpukan bernama st dideklarasikan, dan nilai 1, 2, dan 3 ditambahkan dengan metode Push, sehingga 3 menjadi elemen teratas.
- Metode Peek mengembalikan elemen teratas tanpa menghapusnya, dan properti Count tetap melaporkan jumlah total item dalam tumpukan.
Saat program dijalankan, program akan mencetak nilainya. 3 dari Peek dan kemudian hitungannya 3, yang membuktikan elemen tersebut tetap berada di tumpukan. Jika tumpukan kosong, Peek akan melempar Invalid.OperationException, jadi aman untuk memeriksa Count sebelum memanggilnya.
Tumpukan Generik dalam C#
Contoh-contoh di atas menggunakan kelas Stack non-generik dari System.Collections, yang menyimpan setiap elemen sebagai objek. Kode C# modern biasanya lebih menyukai Stack generik. Kelas ini berasal dari namespace System.Collections.Generic. Kelas ini mengikat stack ke satu tipe yang dideklarasikan, sehingga compiler memeriksa setiap operasi Push dan Pop dan tidak memerlukan casting atau boxing.
Manfaat utama dari Stack generik tercantum di bawah ini.
- Jenis keamanan: Tipe data ditetapkan saat deklarasi, sehingga hanya nilai dengan tipe tersebut yang dapat dimasukkan, dan kesalahan akan ditangkap pada saat kompilasi.
- Tidak ada tinju: Tipe nilai seperti int disimpan secara langsung, yang menghindari biaya boxing yang dibayarkan oleh Stack non-generik.
- Petugas kebersihan membaca: Pop dan Peek mengembalikan tipe yang dideklarasikan secara langsung, sehingga Anda tidak perlu melakukan casting kembali hasilnya dari objek.
using System; using System.Collections.Generic; namespace DemoApplication { class Program { static void Main(string[] args) { Stack<string> st = new Stack<string>(); st.Push("Java"); st.Push("Python"); Console.WriteLine(st.Pop()); Console.ReadKey(); } } }
Dalam contoh ini, stack dideklarasikan sebagai Stack. , jadi hanya menerima nilai string. Metode Pop mengembalikan string secara langsung dan mencetak Python, nilai terakhir yang dimasukkan. Untuk setiap proyek baru, Stack generik adalah pilihan yang direkomendasikan.
Perbedaan Antara Stack dan Queue di C#
Tumpukan dan sebuah antre Baik stack maupun queue sama-sama mengontrol urutan penghapusan elemen, tetapi menggunakan aturan yang berlawanan. Stack menggunakan prinsip last in, first out (masuk terakhir, keluar pertama), sedangkan queue menggunakan prinsip first in, first out (masuk pertama, keluar pertama). Memilih yang tepat akan membuat maksud kode Anda jelas bagi pengembang lain.
Perbedaan utamanya tercantum di bawah ini:
- Order: Stack menghapus elemen yang paling baru ditambahkan terlebih dahulu (LIFO), sedangkan queue menghapus elemen terlama terlebih dahulu (FIFO).
- metode: Stack menggunakan Push dan Pop, sedangkan queue menggunakan Enqueue untuk menambahkan dan Dequeue untuk menghapus.
- Akses elemen teratas: Sebuah stack membaca item berikutnya dengan Peek, dan sebuah queue membaca item berikutnya dengan Peek from the front.
- Kegunaan umum: Stack cocok untuk fitur undo, evaluasi ekspresi, dan rekursi. tracKing, sedangkan antrian cocok untuk penjadwalan, buffering, dan penelusuran breadth-first.
Kedua tipe tersebut tersedia dalam bentuk generik sebagai Stack. dan Antrian di System.Collections.Generic, sehingga Anda mendapatkan keamanan tipe dengan pilihan mana pun.





