Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어를 사용하여 큐의 요소 삭제 설명

<시간/>

데이터 구조는 구조화된 방식으로 구성된 데이터의 모음입니다. 아래 설명과 같이 두 가지 유형으로 나뉩니다 -

  • 선형 데이터 구조 − 데이터는 선형 방식으로 구성됩니다. 예를 들어 배열, 구조, 스택, 대기열, 연결 목록이 있습니다.

  • 비선형 데이터 구조 − 데이터는 계층적 방식으로 구성됩니다. 예를 들어, 나무, 그래프, 세트, ​​테이블.

대기열

삽입은 후단에서, 삭제는 전단에서 수행되는 선형 데이터 구조입니다.

C 언어를 사용하여 큐의 요소 삭제 설명

대기열의 순서는 FIFO – First In First Out

입니다.

작업

  • 삽입 – 대기열에 요소 삽입
  • 삭제 – 대기열에서 요소를 삭제합니다.

조건

  • Queue over flow - 전체 대기열에 요소를 삽입하려고 합니다.

  • Queue under flow − 빈 대기열에서 요소를 삭제하려고 합니다.

알고리즘

다음은 삽입 알고리즘입니다( ) -

  • 대기열 오버플로를 확인합니다.
if (r==n)
printf ("Queue overflow")
  • 그렇지 않으면 대기열에 요소를 삽입하세요.
q[r] = item
r++

다음은 삭제( ) 알고리즘입니다. -

  • 흐름 중인 대기열을 확인합니다.
if (f==r)
printf ("Queue under flow")
  • 그렇지 않으면 대기열에서 요소를 삭제합니다.
item = q[f]
f++

다음은 디스플레이( )에 대한 알고리즘입니다. -

  • 대기열이 비어 있는지 확인합니다.
if (f==r)
printf("Queue is empty")
  • 그렇지 않으면 'f'에서 'r'까지의 모든 요소를 ​​인쇄합니다.
for(i=f; i<r; i++)
printf ("%d", q[i]);

프로그램

다음은 큐에 있는 요소를 삭제하는 C 프로그램입니다 -

#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;
   }
}

출력

위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -

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