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

Giải thích việc xóa một phần tử trong hàng đợi bằng ngôn ngữ C

Cấu trúc dữ liệu là tập hợp dữ liệu được tổ chức theo một cách có cấu trúc. Nó được chia thành hai loại như được giải thích bên dưới -

  • Cấu trúc dữ liệu tuyến tính - Dữ liệu được tổ chức theo kiểu tuyến tính. Ví dụ:mảng, cấu trúc, ngăn xếp, hàng đợi, danh sách được liên kết.

  • Cấu trúc dữ liệu phi tuyến - Dữ liệu được tổ chức một cách phân cấp. Ví dụ:Cây, đồ thị, tập hợp, bảng.

Hàng đợi

Đây là một cấu trúc dữ liệu tuyến tính, trong đó việc chèn được thực hiện ở phía sau và việc xóa được thực hiện ở phía trước.

Giải thích việc xóa một phần tử trong hàng đợi bằng ngôn ngữ C

Thứ tự hàng đợi là FIFO - Nhập trước ra trước

Hoạt động

  • Chèn - Chèn một phần tử vào hàng đợi.
  • Xóa - Xóa một phần tử khỏi hàng đợi.

Điều kiện

  • Xếp hàng qua luồng - Cố gắng chèn một phần tử vào một hàng đợi đầy đủ.

  • Hàng đợi trong luồng - Đang cố gắng xóa một phần tử khỏi hàng đợi trống.

Thuật toán

Dưới đây là một thuật toán cho insert () -

  • Kiểm tra lỗi tràn hàng đợi.
if (r==n)
printf ("Queue overflow")
  • Nếu không, hãy chèn một phần tử vào hàng đợi.
q[r] = item
r++

Dưới đây là một thuật toán cho xóa () -

  • Kiểm tra hàng đợi theo quy trình.
if (f==r)
printf ("Queue under flow")
  • Nếu không, hãy xóa một phần tử khỏi hàng đợi.
item = q[f]
f++

Dưới đây là một thuật toán cho display () -

  • Kiểm tra xem hàng đợi có trống hay không.
if (f==r)
printf("Queue is empty")
  • Nếu không, hãy in tất cả các phần tử từ ‘f’ đến ‘r’.
for(i=f; i<r; i++)
printf ("%d", q[i]);

Chương trình

Sau đây là chương trình C để xóa một phần tử trong hàng đợi -

#include <stdio.h>
#define MAX 50
void insert();
int array[MAX];
int rear = - 1;
int front = - 1;
main(){
   int add_item;
   int choice;
   while (1){
      printf("1.Insert element to queue \n");
      printf("2.Delete an element from queue\n");
      printf("3.Display elements of queue \n");
      printf("4.Quit \n");
      printf("Enter your choice : ");
      scanf("%d", &choice);
      switch (choice){
         case 1:
            insert();
         break;
         case 2:
            delete();
         case 3:
            display();
         break;
         case 4:
            exit(1);
         default:
         printf("Wrong choice \n");
      }
   }
}
void insert(){
   int add_item;
   if (rear == MAX - 1)
      printf("Queue Overflow \n");
   else{
      if (front == - 1)
      /*If queue is initially empty */
      front = 0;
      printf("Inset the element in queue : ");
      scanf("%d", &add_item);
      rear = rear + 1;
      array[rear] = add_item;
   }
}
void display(){
   int i;
   if (front == - 1)
      printf("Queue is empty \n");
   else{
      printf("Queue is : \n");
      for (i = front; i <= rear; i++)
         printf("%d ", array[i]);
         printf("\n");
   }
}
void delete(){
   if (front == - 1 || front > rear){
      printf("Queue Underflow \n");
      return ;
   }
   else{
      printf("Element deleted from queue is : %d\n",array[front]);
      front = front + 1;
   }
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

1.Insert element to queue
2.Delete an element from queue
3.Display elements of queue
4.Quit
Enter your choice: 1
Inset the element in queue: 12
1.Insert element to queue
2.Delete an element from queue
3.Display elements of queue
4.Quit
Enter your choice: 1
Inset the element in queue: 23
1.Insert element to queue
2.Delete an element from queue
3.Display elements of queue
4.Quit
Enter your choice: 1
Inset the element in queue: 34
1.Insert element to queue
2.Delete an element from queue
3.Display elements of queue
4.Quit
Enter your choice: 2
Element deleted from queue is: 12
Queue is:
23 34
1.Insert element to queue
2.Delete an element from queue
3.Display elements of queue
4.Quit
Enter your choice: 2
Element deleted from queue is: 23
Queue is:
34
1.Insert element to queue
2.Delete an element from queue
3.Display elements of queue
4.Quit
Enter your choice: 4