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

Chương trình C ++ để triển khai hàng đợi bằng cách sử dụng mảng

Hàng đợi là một cấu trúc dữ liệu trừu tượng chứa một tập hợp các phần tử. Triển khai hàng đợi theo cơ chế FIFO tức là phần tử được chèn vào trước cũng sẽ bị xóa trước. Nói cách khác, phần tử mới nhất được thêm gần đây sẽ bị xóa đầu tiên trong hàng đợi.

Một chương trình thực hiện hàng đợi bằng cách sử dụng một mảng được đưa ra như sau -

Ví dụ

#include <iostream>
using namespace std;
int queue[100], n = 100, front = - 1, rear = - 1;
void Insert() {
   int val;
   if (rear == n - 1)
   cout<<"Queue Overflow"<<endl;
   else {
      if (front == - 1)
      front = 0;
      cout<<"Insert the element in queue : "<<endl;
      cin>>val;
      rear++;
      queue[rear] = val;
   }
}
void Delete() {
   if (front == - 1 || front > rear) {
      cout<<"Queue Underflow ";
      return ;
   } else {
      cout<<"Element deleted from queue is : "<< queue[front] <<endl;
      front++;;
   }
}
void Display() {
   if (front == - 1)
   cout<<"Queue is empty"<<endl;
   else {
      cout<<"Queue elements are : ";
      for (int i = front; i <= rear; i++)
      cout<<queue[i]<<" ";
         cout<<endl;
   }
}
int main() {
   int ch;
   cout<<"1) Insert element to queue"<<endl;
   cout<<"2) Delete element from queue"<<endl;
   cout<<"3) Display all the elements of queue"<<endl;
   cout<<"4) Exit"<<endl;
   do {
      cout<<"Enter your choice : "<<endl;
      cin>>ch;
      switch (ch) {
         case 1: Insert();
         break;
         case 2: Delete();
         break;
         case 3: Display();
         break;
         case 4: cout<<"Exit"<<endl;
         break;
         default: cout<<"Invalid choice"<<endl;
      }
   } while(ch!=4);
   return 0;
}

Kết quả của chương trình trên như sau

1) Insert element to queue
2) Delete element from queue
3) Display all the elements of queue
4) Exit
Enter your choice : 1
Insert the element in queue : 4
Enter your choice : 1
Insert the element in queue : 3
Enter your choice : 1
Insert the element in queue : 5
Enter your choice : 2
Element deleted from queue is : 4
Enter your choice : 3
Queue elements are : 3 5
Enter your choice : 7
Invalid choice
Enter your choice : 4
Exit

Trong chương trình trên, hàm Insert () chèn một phần tử vào hàng đợi. Nếu phía sau bằng n-1, thì hàng đợi đã đầy và phần tràn được hiển thị. Nếu phía trước là -1, nó được tăng thêm 1. Sau đó, phần tử được tăng thêm 1 và phần tử được chèn vào chỉ mục của phía sau. Điều này được hiển thị bên dưới -

void Insert() {
   int val;
   if (rear == n - 1)
   cout<<"Queue Overflow"<<endl;
   else {
      if (front == - 1)
      front = 0;
      cout<<"Insert the element in queue : "<<endl;
      cin>>val;
      rear++;
      queue[rear] = val;
   }
}

Trong hàm Delete (), nếu không có phần tử nào trong hàng đợi thì đó là điều kiện dòng chảy, ngược lại phần tử ở phía trước được hiển thị và phía trước được tăng thêm một. Điều này được hiển thị dưới đây -

void Delete() {
   if (front == - 1 || front > rear) {
      cout<<"Queue Underflow ";
      return ;
   }
   else {
      cout<<"Element deleted from queue is : "<< queue[front] <<endl;
      front++;;
   }
}

Trong hàm display (), nếu phía trước là -1 thì hàng đợi trống. Nếu không, tất cả các phần tử hàng đợi được hiển thị bằng vòng lặp for. Điều này được hiển thị bên dưới -

void Display() {
   if (front == - 1)
   cout<<"Queue is empty"<<endl;
   else {
      cout<<"Queue elements are : ";
      for (int i = front; i <= rear; i++)
      cout<<queue[i]<<" ";
      cout<<endl;
   }
}

Hàm main () cung cấp sự lựa chọn cho người dùng nếu họ muốn chèn, xóa hoặc hiển thị hàng đợi. Theo phản hồi của người dùng, chức năng thích hợp được gọi là sử dụng công tắc. Nếu người dùng nhập một phản hồi không hợp lệ, thì phản hồi đó sẽ được in. Đoạn mã cho điều này được cung cấp bên dưới -

int main() {
   int ch;
   cout<<"1) Insert element to queue"<<endl;
   cout<<"2) Delete element from queue"<<endl;
   cout<<"3) Display all the elements of queue"<<endl;
   cout<<"4) Exit"<<endl;
   do {
      cout<<"Enter your choice : "<<endl;
      cin>>ch;
      switch (ch) {
         case 1: Insert();
         break;
         case 2: Delete();
         break;
         case 3: Display();
         break;
         case 4: cout<<"Exit"<<endl;
         break;
         default: cout<<"Invalid choice"<<endl;
      }
   } while(ch!=4);
   return 0;
}