ホームページ > バックエンド開発 > C++ > C言語を使用してキュー内の要素の削除を説明します

C言語を使用してキュー内の要素の削除を説明します

王林
リリース: 2023-08-28 09:45:15
転載
1058 人が閲覧しました

データ構造は、構造化された方法で編成されたデータのコレクションです。以下に示すように 2 つのタイプに分類されます。 -

  • 線形データ構造 - データは線形に編成されます。たとえば、配列、構造体、スタック、キュー、リンク リストなどです。

  • 非線形データ構造 - データは階層的に編成されます。たとえば、ツリー、グラフ、セット、テーブルなどです。

キュー

これは線形データ構造であり、挿入はバックエンドで行われ、削除はフロントエンドで行われます。

C言語を使用してキュー内の要素の削除を説明します

キューの順序は FIFO – 先入れ先出しです。

操作

  • Insert – 要素をqueue.
  • Delete – キューから要素を削除します。

条件

  • キュー オーバーフロー - 満杯のキューに要素を挿入しようとします。

  • キューはストリーミング状態です-空のキューから要素を削除しようとします。

アルゴリズム

( ) -

  • キューのオーバーフローを確認するためのアルゴリズムを以下に示します。
if (r==n)
printf ("Queue overflow")
ログイン後にコピー
  • それ以外の場合は、要素をキューに挿入します。
q[r] = item
r++
ログイン後にコピー
は削除アルゴリズムの HTML コードを示します。

以下は deletion ( ) のアルゴリズムです。

-
  • フロー下のキューを確認します。

if (f==r)
printf ("Queue under flow")
ログイン後にコピー
  • それ以外の場合は、キューから要素を削除します。
item = q[f]
f++
ログイン後にコピー
次は display ( )

-
  • キューが空かどうかを確認するアルゴリズムです。
      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 </p><p>");
          printf("2.Delete an element from queue</p><p>");
          printf("3.Display elements of queue </p><p>");
          printf("4.Quit </p><p>");
          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 </p><p>");
          }
       }
    }
    void insert(){
       int add_item;
       if (rear == MAX - 1)
          printf("Queue Overflow </p><p>");
       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 </p><p>");
       else{
          printf("Queue is : </p><p>");
          for (i = front; i <= rear; i++)
             printf("%d ", array[i]);
             printf("</p><p>");
       }
    }
    void delete(){
       if (front == - 1 || front > rear){
          printf("Queue Underflow </p><p>");
          return ;
       }
       else{
          printf("Element deleted from queue is : %d</p><p>",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
    ログイン後にコピー
    ###

    以上がC言語を使用してキュー内の要素の削除を説明しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート