ホームページ よくある問題 キューとはどのようなデータ構造ですか?

キューとはどのようなデータ構造ですか?

Dec 25, 2020 am 10:45 AM

キューは線形データ構造です。キューでは、テーブルのフロントエンドでの削除操作と、テーブルのバックエンドでの挿入操作のみが許可されます。スタックと同様、キューは操作が制限された線形テーブルです。挿入操作が実行される端は、キューと呼ばれます。キューの最後尾、削除操作が実行されます。最後尾はチームの先頭と呼ばれます。

キューとはどのようなデータ構造ですか?

#この記事の動作環境: Windows10 システム、Thinkpad t480 コンピューター。

キューは線形データ構造です。

キューは特殊な線形テーブルです。特別なのは、テーブルの前端 (前) では削除操作のみが許可され、テーブルの後端 (後端) では挿入操作のみが許可されることです。スタックと同様、キューは操作が制限された線形リストです。挿入操作を実行する端はキューの末尾と呼ばれ、削除操作を実行する端はキューの先頭と呼ばれます。キュー内に要素が存在しない場合、それは空のキューと呼ばれます。

キューのデータ要素はキュー要素とも呼ばれます。キュー要素をキューに挿入することをエンキューといい、キュー要素をキューから削除することをデキューといいます。キューでは一方の端での挿入ともう一方の端での削除のみが許可されるため、キューに最も早く入った要素のみが最初にキューから削除できるため、キューは先入れ先出し (FIFO - 最初に) とも呼ばれます。先出し) 線形リスト。

シーケンシャル キュー

シーケンシャル キュー構造を確立するには、連続ストレージ スペースを静的に割り当てるか動的に適用し、管理用の 2 つのポインタを設定する必要があります。 1 つはヘッド要素を指すヘッド ポインター前部で、もう 1 つはキュー内の次の要素の格納場所を指すテール ポインター後部です (図

キューとはどのようなデータ構造ですか?# を参照)。

キューの最後に要素が挿入されるたびに、rear が 1 ずつ増加し、キューの先頭で要素が削除されるたびに、front が 1 ずつ増加します。挿入および削除操作が進むにつれて、キュー要素の数は変化し続け、キューによって占有される記憶領域もキュー構造に割り当てられた連続領域内で移動します。フロント=リアの場合、キューには要素がありません。これは空のキューと呼ばれます。割り当てを指す連続スペースを超えて後部が増加すると、キューは新しい要素を挿入できなくなりますが、多くの場合、この時点では占有されていない利用可能なスペースが大量に存在します。デキューされたキュー要素。

シーケンシャルキューのオーバーフロー現象:

(1) 「アンダーフロー」現象: キューが空の場合、キューの操作によって引き起こされるオーバーフロー現象。 「アンダーフロー」は正常な現象であり、プログラム制御転送の条件としてよく使用されます。

(2) 「真のオーバーフロー」現象: キューがいっぱいの場合、スタック上のプッシュ操作によりスペース オーバーフローが発生します。 「真のオーバーフロー」はエラー状態であり、回避する必要があります。

(3) 「偽のオーバーフロー」現象: エンキューおよびデキュー操作中に先頭ポインタと末尾ポインタが増加するだけで減少しないため、削除された要素の領域は再利用できません。キュー内の実際の要素数がベクトル空間のサイズよりもはるかに小さい場合、末尾ポインタがベクトル空間の上限を超えているため、キューの操作が不可能になる可能性があります。この現象を「偽オーバーフロー」といいます。

循環キュー

実際にキューを使用する場合、キュー空間を再利用できるようにするために、キューの使用方法がわずかに改良されることがよくあります。挿入または挿入に関係なく、削除、1回 後方ポインタが1インクリメントされるか、前方ポインタが1インクリメントされて割り当てられたキュースペースを超えた場合、この連続スペースの開始位置を指すようにします。実際に MaxSize-1 を 1 ずつ 0 に変更する場合は、剰余演算 Rear%MaxSize と Front%MaxSize を使用してそれを実現できます。これは、実際にはキュー空間を循環空間としてイメージし、その循環空間内の記憶装置を循環的に使用するものであり、このように管理されるキューを循環キューとも呼ぶ。いくつかの単純なアプリケーションに加えて、実際に実用的なキューは循環キューです。

循環キューでは、キューが空の場合は前=後、キューのスペースがすべていっぱいの場合は前=後となります。 2 つの状況を区別するために、循環キューには最大で MaxSize-1 のキュー要素しか含めることができないと規定されており、循環キューに空のストレージ ユニットが 1 つだけ残っている場合、キューはいっぱいになります。したがって、キューが空である条件は、フロント=リアであり、キューがいっぱいである条件は、フロント=(リア 1)%MaxSize です。空のキューと満杯のキューの状況は次の図に示されています。

キューとはどのようなデータ構造ですか?

推奨事項: " プログラミング ビデオ "

以上がキューとはどのようなデータ構造ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Python での Deque: 効率的なキューとスタックの実装 Python での Deque: 効率的なキューとスタックの実装 Apr 12, 2023 pm 09:46 PM

Python の deque は、コンピューティングにおいて最も一般的なリストベースのデータ型である、エレガントで効率的な Python のキューとスタックの実装に役立つ、低レベルの高度に最適化された deque です。この記事では、Yun Duo 氏が次のことを一緒に学びます: deque を使用して効果的に要素をポップアップおよび追加する deque 内の任意の要素にアクセスする deque を使用して効率的なキューを構築する deque を使用して要素を右側に追加するPython リストの最後とポップアップ要素の操作は、一般に非常に効率的です。時間計算量を Big O で表現すると、O(1) であると言えます。そして、新しい要素を受け入れるために基になるリストを増やすために Python がメモリを再割り当てする必要がある場合、これらは

Supervisor を使用して ThinkPHP6 キューを管理するにはどうすればよいですか? Supervisor を使用して ThinkPHP6 キューを管理するにはどうすればよいですか? Jun 12, 2023 am 08:51 AM

Web アプリケーションは開発を続けるため、アプリケーションの安定性と可用性を維持するために多数のタスクを処理する必要があります。キュー システムの使用は 1 つの解決策です。 ThinkPHP6 は、タスクを管理するための組み込みのキュー システムを提供します。ただし、多数のタスクを処理するには、より適切なキュー管理が必要です。これはスーパーバイザーを使用して実現できます。この記事では、Supervisor を使用して ThinkPHP6 キューを管理する方法を紹介します。その前に、いくつかの基本概念を理解する必要があります。 キュー システム キュー システムとは

PHP および MySQL でのメッセージ遅延とメッセージ再試行におけるキュー テクノロジーの応用 PHP および MySQL でのメッセージ遅延とメッセージ再試行におけるキュー テクノロジーの応用 Oct 15, 2023 pm 02:26 PM

PHP および MySQL におけるメッセージ遅延とメッセージ再試行におけるキュー テクノロジーの応用概要: Web アプリケーションの継続的な開発に伴い、高い同時処理とシステムの信頼性に対する要求がますます高まっています。解決策として、キュー テクノロジーはメッセージ遅延機能とメッセージ再試行機能を実装するために PHP と MySQL で広く使用されています。この記事では、キューの基本原理、キューを使用してメッセージ遅延を実装する方法、キューを使用してメッセージの再試行を実装する方法など、PHP および MySQL におけるキュー テクノロジのアプリケーションを紹介します。

Java Queueキューのパフォーマンスの分析と最適化戦略 Java Queueキューのパフォーマンスの分析と最適化戦略 Jan 09, 2024 pm 05:02 PM

JavaQueue のパフォーマンス分析と最適化戦略 キューの概要: キュー (キュー) は Java で一般的に使用されるデータ構造の 1 つであり、さまざまなシナリオで広く使用されています。この記事では、JavaQueue キューのパフォーマンスの問題について、パフォーマンス分析と最適化戦略の 2 つの側面から説明し、具体的なコード例を示します。はじめに キューは、プロデューサー/コンシューマー モード、スレッド プール タスク キュー、およびその他のシナリオの実装に使用できる先入れ先出し (FIFO) データ構造です。 Java は、Arr などのさまざまなキュー実装を提供します。

Javaでは、キューのadd()メソッドとoffer()メソッドの違いは何ですか? Javaでは、キューのadd()メソッドとoffer()メソッドの違いは何ですか? Aug 27, 2023 pm 02:25 PM

Java のキューは、複数の機能を備えた線形データ構造です。キューには 2 つのエンドポイントがあり、要素の挿入と削除には先入れ先出し (FIFO) 原則に従います。このチュートリアルでは、Java のキューの 2 つの重要な関数、add() と Offer() について学習します。キューとは何ですか? Java のキューは、ユーティリティ パッケージとコレクション パッケージを拡張するインターフェイスです。要素はバックエンドに挿入され、フロントエンドから削除されます。 Java のキューは、リンク リスト、DeQueue、優先キューなどのクラスを使用して実装できます。優先キューは通常のキューの拡張形式であり、各要素には優先順位があります。キューの add() メソッドは、キューに要素を挿入するために使用されます。要素を(次のように)定義します。

PHPとMySQLでのキュータスク監視とタスクスケジューリングの実装計画 PHPとMySQLでのキュータスク監視とタスクスケジューリングの実装計画 Oct 15, 2023 am 09:15 AM

PHP および MySQL でのキュー タスクの監視とタスク スケジューリングの実装 はじめに 最新の Web アプリケーション開発において、タスク キューは非常に重要なテクノロジです。キューを使用すると、バックグラウンドで実行する必要があるいくつかのタスクをキューに入れ、タスクのスケジュール設定を通じてタスクの実行時間と順序を制御できます。この記事では、PHP と MySQL でタスクの監視とスケジュールを実装する方法を紹介し、具体的なコード例を示します。 1. キューの動作原理 キューは先入れ先出し (FIFO) データ構造であり、

PHPメールキューシステムの原理と実装は何ですか? PHPメールキューシステムの原理と実装は何ですか? Sep 13, 2023 am 11:39 AM

PHPメールキューシステムの原理と実装は何ですか?インターネットの発展に伴い、電子メールは人々の日常生活や仕事に欠かせないコミュニケーション手段の 1 つになりました。しかし、ビジネスが成長し、ユーザー数が増加すると、メールを直接送信すると、サーバーのパフォーマンスの低下やメール配信の失敗などの問題が発生する可能性があります。この問題を解決するには、メール キュー システムを使用して、シリアル キューを通じて電子メールを送信および管理します。メールキューシステムの実装原理は次のとおりです。メールがキューに入れられるとき、メールを送信する必要があるときは、直接送信する必要はありません。

Yii フレームワークのキュー: 非同期操作を効率的に処理する Yii フレームワークのキュー: 非同期操作を効率的に処理する Jun 21, 2023 am 10:13 AM

インターネットの急速な発展に伴い、大量の同時リクエストやタスクを処理するアプリケーションの重要性がますます高まっています。このような場合、アプリケーションの効率が向上し、ユーザーのリクエストに対する応答性が向上するため、非同期タスクの処理が不可欠です。 Yii フレームワークは、非同期操作の処理をより簡単かつ効率的にする便利なキュー コンポーネントを提供します。この記事では、Yii フレームワークにおけるキューの使用法と利点について探っていきます。キューとは キューは、先入れ先出し (FIFO) 順序でデータを処理するために使用されるデータ構造です。チーム