Computer >> Máy Tính >  >> Lập trình >> C ++

Triển khai ngăn xếp bằng cách sử dụng Hàng đợi trong C ++


Giả sử chúng ta muốn triển khai một ngăn xếp bằng cách sử dụng hàng đợi. Chúng tôi phải xác định các phương thức này cho ngăn xếp.

  • push (x) - Đẩy x vào ngăn xếp.

  • pop () - Xóa và trả về phần tử trên cùng từ ngăn xếp

  • top () - Trả về phần tử trên cùng từ ngăn xếp.

  • rỗng () - Trả về xem ngăn xếp có trống hay không.

Vì vậy, nếu chúng ta gọi các hàm push (10), push (20), sau đó gọi pop (), pop (), thì đầu ra sẽ là 20, 10

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • Xác định một deque q

  • Xác định một hàm push (), điều này sẽ lấy x,

  • chèn x vào đầu q

  • Xác định một hàm pop ()

  • k:=phần tử đầu tiên của q

  • xóa phần tử phía trước khỏi q

  • trả lại k

  • Xác định một hàm top ()

  • trả về phần tử đầu tiên của q

  • Xác định một hàm trống ()

  • nếu q trống, thì -

    • trả về true

  • Nếu không

    • trả về false

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#include <bits/stdc++.h>
using namespace std;
class MyStack {
private:
   deque<int> q;
public:
   void push(int x){
      q.push_front(x);
   }
   int pop(){
      int k = q.front();
      q.pop_front();
      return k;
   }
   int top(){
      return q.front();
   }
   bool empty(){
      if (q.empty())
         return true;
      else
         return false;
   }
};
main(){
   MyStack ob;
   ob.push(10);
   ob.push(20);
   cout << (ob.pop()) << endl;
   cout << (ob.pop()) << endl;
}

Đầu vào

push(10),push(20),pop(),pop()

Đầu ra

20
10