Python の基礎となるテクノロジーのデータ構造を実装する方法
Python の基礎となるテクノロジーのデータ構造を実装する方法
データ構造はコンピューター サイエンスの非常に重要な部分であり、データを整理して保存するために使用されます。効率的に操作してデータにアクセスできます。 Python は高級プログラミング言語として、リスト、タプル、辞書などの豊富な組み込みデータ構造を提供しますが、特定のニーズを満たすために、基礎となるデータ構造を実装する必要がある場合もあります。
この記事では、Python を使用して、スタック、キュー、リンク リストなどの一般的な基盤となるデータ構造を実装する方法を紹介し、対応するコード例を示します。
- スタック
スタックは、先頭での挿入 (プッシュ) と削除 (ポップ) のみを許可する後入れ先出し (LIFO) データ構造です。スタックの)操作。 Python では、リストを使用して単純なスタックを実装できます。
class Stack: def __init__(self): self.items = [] def is_empty(self): return len(self.items) == 0 def push(self, item): self.items.append(item) def pop(self): if not self.is_empty(): return self.items.pop() def peek(self): if not self.is_empty(): return self.items[-1] def size(self): return len(self.items)
Stack クラスを使用してスタック オブジェクトを作成し、操作を実行します。
stack = Stack() stack.push(1) stack.push(2) stack.push(3) print(stack.size()) # 输出:3 print(stack.pop()) # 输出:3 print(stack.peek()) # 输出:2 print(stack.is_empty()) # 输出:False
- Queue (キュー)
キューは先入れ方式です。 -first-out ( FIFO のデータ構造では、キューの最後での挿入 (エンキュー) 操作と、キューの先頭でのデキュー操作のみが許可されます。リストを使用して、Python で単純なキューを実装できます。
class Queue: def __init__(self): self.items = [] def is_empty(self): return len(self.items) == 0 def enqueue(self, item): self.items.append(item) def dequeue(self): if not self.is_empty(): return self.items.pop(0) def size(self): return len(self.items)
Queue クラスを使用してキュー オブジェクトを作成し、操作を実行します。
queue = Queue() queue.enqueue('a') queue.enqueue('b') queue.enqueue('c') print(queue.size()) # 输出:3 print(queue.dequeue()) # 输出:'a' print(queue.is_empty()) # 输出:False
- リンク リスト
リンク リストは動的なデータ構造です。は一連のノードで構成され、各ノードにはデータと次のノードへのポインターの 2 つの部分が含まれます。 Python では、クラスを使用して単純なリンク リストを実装できます。
class Node: def __init__(self, data): self.data = data self.next = None class LinkedList: def __init__(self): self.head = None def is_empty(self): return self.head is None def add_node(self, data): new_node = Node(data) if self.is_empty(): self.head = new_node else: current_node = self.head while current_node.next: current_node = current_node.next current_node.next = new_node def remove_node(self, data): if not self.is_empty(): current_node = self.head if current_node.data == data: self.head = current_node.next else: while current_node.next: if current_node.next.data == data: current_node.next = current_node.next.next break current_node = current_node.next def get_size(self): size = 0 current_node = self.head while current_node: size += 1 current_node = current_node.next return size
LinkedList クラスを使用して、リンク リスト オブジェクトを作成し、操作を実行します。
linked_list = LinkedList() print(linked_list.is_empty()) # 输出:True linked_list.add_node(1) linked_list.add_node(2) linked_list.add_node(3) print(linked_list.get_size()) # 输出:3 linked_list.remove_node(2) print(linked_list.get_size()) # 输出:2
上記のコード例を通じて、Python を使用してスタックやキューなどの一般的な基礎データを実装する方法を示します。 、およびリンクされたリストの構造。これらのデータ構造はアルゴリズムやデータ処理において広く使われており、その実装原理や利用方法をマスターすることは、プログラミング能力をさらに向上させるために非常に重要です。
以上がPython の基礎となるテクノロジーのデータ構造を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

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

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

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

データ処理およびデータ分析技術の発展に伴い、リアルタイムのデータ視覚化は企業や個人からますます注目を集めています。 PHP は、リアルタイム データ処理において大きな可能性を秘めた人気のあるサーバーサイド スクリプト言語です。この記事では、リアルタイムのデータ視覚化を実現するための PHP テクノロジーを紹介します。 1. PHP はリアルタイムデータ取得を実現 PHP では、Ajax 技術を利用してリアルタイムデータを取得します。 Ajax は HTTP リクエストを非同期に送信してバックエンド サーバーから返されたデータを取得できるため、ページを更新せずにデータを動的に更新できます。による

ネットワーク アプリケーションの継続的な開発に伴い、Web 開発における権限管理の重要性がますます高まっています。その中でも、マルチレベル権限管理技術は非常に実用的な権限管理技術であり、PHPでも広く使用され推進されています。マルチレベルの権限管理テクノロジとは、実際には、データのアクセスと変更に対するさまざまなユーザーのニーズを満たすために、さまざまなユーザーの権限を階層的に管理することを指します。具体的には、多段階権限管理技術は主にスーパー管理者、一般管理者、一般ユーザーの3つのレベルに分かれています。ユーザーが異なれば権限も異なります

Golang ロックの基本的な実装原理の詳細な説明には、特定のコード例が必要です 概要: 同時プログラミングは現代のソフトウェア開発の非常に重要な部分であり、ロックは同時実行制御を実現するメカニズムです。 Golang では、ロックの概念が同時プログラミングで広く使用されています。この記事では、Golang ロックの基礎となる実装原則を深く調査し、具体的なコード例を示します。ミューテックス ロック (Mutex) の基本的な実装原理 ミューテックス ロックは、Golang で最も一般的に使用されるロック タイプの 1 つです。基礎となるデータ構造 sync.M を使用します。

人工知能と機械学習が発展するにつれて、モデルを運用環境に導入する必要がある企業や組織がますます増えています。これらのモデルは、自然言語処理、コンピューター ビジョン、その他のさまざまなアプリケーションで使用できます。 Python は非常に人気のある機械学習フレームワークであるため、この記事では、実稼働環境へのモデルのデプロイをより適切に行うのに役立つ、Python でのモデル デプロイのヒントをいくつか紹介します。 1. ニーズに合った Python ライブラリを選択する まず、ニーズに合った Python ライブラリを選択することが非常に重要です。

ブロックチェーン技術の段階的な発展に伴い、分散型台帳技術はますます注目を集めています。分散台帳テクノロジーを実装するプロセスでは、効率的な言語を選択することが特に重要です。 Go 言語は、静的に型付けされた効率的なプログラミング言語として、多くの分散システムで選択される言語となっています。この記事では、Go言語を使用した分散台帳技術の実装方法と技術的な詳細を紹介します。 1. 分散台帳技術の概要 分散台帳技術

インターネットの発展に伴い、検索エンジンは人々が情報を入手する重要な方法の 1 つになりました。しかし、従来の検索エンジンは一般に、不正確な検索や検索速度の遅さなどの問題を抱えていました。これらの問題に対応して、ますます多くの開発者がリアルタイム検索エンジン技術の実装を試み始めており、その中でも PHP リアルタイム検索エンジンの技術実装が注目のトピックの 1 つとなっています。 1. リアルタイム検索エンジンの意義 リアルタイム検索エンジンは、ユーザーがキーワードを入力すると、関連するコンテンツの検索結果をリアルタイムに表示し、ユーザーが自分の情報をより早く入手できる検索エンジンです。

MySQL データベースでは、バックアップは非常に重要なリンクです。データ バックアップを使用すると、データを復元し、データ セキュリティを保護し、データベースでデータ損失を回避できなかった場合にデータを以前の状態に迅速に復元できます。データをバックアップするプロセスでは、ストレージ容量と転送時間を節約するために、データバックアップ圧縮テクノロジーを使用する必要があります。 MySQL のデータ バックアップ圧縮テクノロジは、主に物理バックアップと論理バックアップの 2 つのカテゴリに分類できます。物理バックアップとは、データベース ファイル システムの内容をバックアップ ファイルにコピーすることを指します。通常は、

WebMan テクノロジーを活用してオンライン ファイル管理システムを実装 情報化の発展に伴い、さまざまな種類の電子文書やファイルが爆発的に増加し、従来の紙のファイル管理では増大するファイル管理の需要に対応できなくなりました。アーカイブをより効率的に管理および利用するために、多くの機関や企業がオンライン アーカイブ管理システムを導入し始めています。この記事では、WebMan テクノロジを使用してシンプルなオンライン ファイル管理システムを実装する方法を紹介し、対応するコード例を示します。システム要件の分析 オンライン ファイル管理システムを設計する前に、まず次のことを理解する必要があります。
