Tumpukan di C ++: Panduan Lengkap – Codewithaden

Tumpukan adalah struktur data yang bekerja berdasarkan prinsip LIFO (terakhir, pertama keluar). Di tumpukan, kami memasukkan elemen dari satu sisi dan hanya menghapus item dari sisi itu. Stack adalah adaptor kontainer yang menggunakan objek yang dienkapsulasi dari kelas kontainer tertentu, yang menyediakan serangkaian fungsi anggota tertentu untuk mengakses elemennya.

Tumpukan di C ++

Tumpukan dalam C ++ adalah adaptor kontainer dengan jenis pekerjaan LIFO (terakhir di First Out), di mana elemen baru ditambahkan di satu ujung dan (atas) item dihapus dari ujung itu saja. Dalam struktur data tumpukan, elemen -elemen yang dimasukkan pada awalnya dikeluarkan dari tumpukan akhirnya.

Kami dapat menggunakan tumpukan di PDA (Pushdown Automata).

Stacks

File header diperlukan untuk menggunakan tumpukan di C ++ – #include

Dengan ini kita dapat menggunakan Stack STL.

Fungsi berbeda yang terkait dengan tumpukan

kosong()

Fungsi kosong () mengembalikan apakah tumpukan kosong atau tidak.

Sintaksis

stack_name.empty() 

Kami tidak melewati parameter apa pun, dan itu mengembalikan true jika tumpukan kosong atau salah sebaliknya.

Contoh

stack1 = 1,2,3

stack1.empty(); 

Keluaran

False
 

ukuran()

Ini mengembalikan beberapa item di tumpukan.

Sintaksis

stack_name.size()
 

Kami tidak melewati parameter apa pun dalam hal ini, dan mengembalikan jumlah elemen dalam wadah tumpukan.

Contoh

stack_1 = 1,2,3,4,5
stack_1.size();
 

Keluaran

atas()

Ini mengembalikan referensi ke elemen paling atas dari tumpukan.

Sintaksis

stack_name.top();
 

Kami tidak perlu melewati parameter apa pun, dan mengembalikan referensi langsung dari elemen teratas.

Contoh

stack_name.push(5);
stack_name.push(6);
stack_name.top();
 

Keluaran

dorong (k)

Fungsi push () digunakan untuk memasukkan elemen ke dalam tumpukan.

Ini menambahkan elemen ‘K’ di bagian atas tumpukan.

Sintaksis

stack_name.push(value)
 

Dalam hal ini, kami memberikan nilai sebagai parameter dan, sebagai hasilnya, menambahkan elemen ke tumpukan.

Contoh

stack1.push(77)
stack1.push(88)
 

Keluaran

77, 88
 

pop ()

Ini menghapus elemen paling atas dari tumpukan.

Sintaksis

stack_name.pop()
 

Dalam hal ini, kami tidak melewati parameter apa pun. Fungsi ini muncul elemen paling atas dari tumpukan.

Contoh

stack1 = 10,20,30;  
stack1.pop(); 

Keluaran

10, 20 

Kesalahan dan pengecualian

1. Menunjukkan kesalahan jika parameter dilewatkan.

2. Tidak menunjukkan jaminan lemparan kecuali.

Algoritma Stack C ++

Dalam algoritma terkait stack, yang awalnya menunjuk ke 0, indeks elemen dalam tumpukan dimulai dari 1, dan indeks elemen terakhir adalah maks.

     Init_stack (tumpukan, atas)  

    Algorithm to initialize a stack using array. 
    TOP points to the top-most element of stack.

    1) TOP: = 0;
    2) Exit
 

Operasi push () digunakan untuk memasukkan elemen ke dalam tumpukan.

     Push_stack (stack, atas, maks, item)  

    Algorithm to push an item into stack.
            
    1) IF TOP = MAX   then
    Print “Stack is full”;
    Exit;
    2) Otherwise
    TOP: = TOP + 1;        /*increment TOP*/
    STACK (TOP):= ITEM;
    3) End of IF
    4) Exit
 

Operasi pop () digunakan untuk menghapus item dari tumpukan, dapatkan item dan kemudian kurangi pointer atas.

     Pop_Stack (tumpukan, atas, item)  

    Algorithm to pop an element from stack.

    1) IF TOP = 0 then
        Print “Stack is empty”;
        Exit;
    2) Otherwise
        ITEM: =STACK (TOP);
        TOP:=TOP – 1;
    3) End of IF
    4) Exit
 
     Is_full (stack, top, max, status)  

    Algorithm to check stack is full or not. 
    STATUS contains the result status.

    1) IF TOP = MAX then
        STATUS:=true;
    2) Otherwise
        STATUS:=false;
    3)  End of IF
    4)  Exit
 
     Is_empty (stack, top, max, status)  

    Algorithm to check stack is empty or not.
    STATUS contains the result status.

            
    1) IF TOP = 0 then
        STATUS:=true;
    2) Otherwise
        STATUS:=false;
    3)  End of IF
    4)  Exit 

Program Stack C ++

Q1- Tulis program untuk memasukkan lima elemen ke dalam tumpukan dan cetak elemen atas menggunakan atas () dan cetak ukuran tumpukan dan periksa apakah tumpukan kosong atau tidak.

#include 
#include 

using namespace std;

int main()
{
  stack stack1; //empty stack of integer type
  stack1.push(100);
  stack1.push(200);
  stack1.push(300);
  stack1.push(400);
  stack1.push(500);

  cout << "The topmost element of the stack is:" << stack1.top() << endl;
  cout << "The size of the stack is=" << stack1.size() << endl;

  if (stack1.empty())
  {
    cout << "Stack is empty" << endl;
  }
  else
  {
    cout << "Stack is not empty" << endl;
  }
} 

Lihat outputnya.

Stacks

Q2- Tulis program untuk memasukkan 5 elemen ke dalam tumpukan, hapus 2 elemen, dan cetak tumpukan.

#include 
#include 

using namespace std;

int main()
{
  stack stack1; //empty stack of integer type
  stack1.push(100);
  stack1.push(200);
  stack1.push(300);
  stack1.push(400);
  stack1.push(500);

  stack1.pop();
  stack1.pop();

  while (!stack1.empty())
  {
    cout << "Element =" << stack1.top() << endl;
    stack1.pop();
  }
} 

Lihat outputnya.

C++

Aplikasi tumpukan

  1. Konversi notasi Polandia

    Ada tiga jenis notasi:

    1) Notasi infiks - Operator berada di antara operan: x + y

    2) Notasi awalan - Seorang operator ada sebelum operan: + xy

    3) Notasi postfix - Seorang operator mengejar operan: xy +
  2. Untuk membalikkan string

    String dapat dibalik dengan menggunakan tumpukan. Pertama, karakter string didorong ke tumpukan sampai akhir string. Kemudian, karakter muncul dan ditampilkan. Karena karakter akhir dari string didorong, akhirnya, itu akan dicetak terlebih dahulu.
  3. Ketika suatu fungsi (sub-program) dipanggil

    Ketika fungsi dipanggil, fungsi terakhir akan selesai terlebih dahulu. Itu adalah milik tumpukan. Ada area memori yang khusus disediakan untuk tumpukan.

Kesimpulan

Stack adalah struktur data abstrak yang berisi kumpulan elemen.

Stack mengimplementasikan mekanisme LIFO, yaitu, elemen yang didorong pada akhirnya muncul terlebih dahulu.

Itu dia.

Posting yang disarankan

Antrian Prioritas di C ++

Perpustakaan Template Standar C ++ Antrian

C ++ deque

Array dalam C ++

Iterator di C ++

Artikel ini berasal dari website Winpoin, dan kemudian diterjemahkan ke bahasa indonesia, baca artikel asli disini

Leave a Reply

Your email address will not be published. Required fields are marked *