Pythonの単一リンクリストにノードを挿入して出力するにはどうすればよいですか? (コード例)
Pythonの単一リンクリストにノードを挿入および出力するにはどうすればよいですか?次の記事は、単一リンク リストとは何か、および単一リンク リストに対して挿入や出力などの非常に基本的な操作を実行する方法を理解するのに役立ちます。
単一リンクリストとは何ですか?
まず、単結合リストを理解する前に、ノードとは何かを理解する必要があります。
ノードはリンク リストの構成要素であり、次の 2 つの部分で構成されます:
1. データ部分: データを含めるために使用されます
2. アドレス部分: に使用されます。 point to next ノードの場所を指すポインタ。
単一リンク リストでは、各ノードのアドレス部分に次のノードの位置に関する情報が含まれており、これにより一連のチェーンまたはリンクが形成されます。リンクされたリストの最初のノードはヘッド ポインターによって追跡され、最後のノードは None を指します。
これをよりよく理解するために、下の図を見てみましょう:
注: 上の図では、最後の要素 1 は None を指しています。これらのノードは互いに連続して描画されていますが、実際には連続したメモリ位置に存在する場合とそうでない場合があります。
単一リンクリストにノードを挿入および出力するにはどうすればよいですか?
1. 単一リンク リストの作成
まず、単一リンク リストを作成するためのノードを作成する必要があります。これを行うには、data と nextNode プロパティを使用して Node クラスを作成します。前に述べたように、data 属性にはデータが含まれ、nextNode は単にリンクされたリスト内の次のノードを指します。 nextNode のデフォルト値を None に設定します。これを行うには、ゲッター メソッドとセッター メソッドを使用できます。
Node クラスが作成されたので、次は LinkedList クラスを作成します。これには属性が 1 つだけあり、頭です。デフォルトでは、これは「なし」を指します。ヘッダーが「None」を指している場合は、リンクされたリストが空であることを意味します。リンク リスト内のノードの数を追跡するには、LinkedList クラスに size 属性を追加し、デフォルトで 0 に設定します。
2. ノードの挿入
LinkedList クラスのメソッドです。新しいノードはリンク リストのどこにでも挿入できますが、コーディングをシンプルかつ効率的に保つために、常に新しいノードをリンク リストの先頭に追加します。つまり、先頭は常に最後に追加されたノードを指します。 。
新しいノードをリストの末尾に追加する場合、リストの末尾を見つけて追加するという追加の作業を実行する必要があります。これは無駄な操作です。ただし、これは、最後のノードを指す別のポインター (テール ポインターと呼びます) を維持する場合に実行できます。
ここでは前者の方法、つまりリンクリストの先頭にノードを挿入する方法を紹介します。
リンク リストに 7 を追加する必要があるとします。次の手順を実行する必要があります。
# ノード オブジェクトを作成します。7 はデータを表し、次のノードがポイントします。ヘッド ノードへ
● ヘッド ポインタをこの新しいノードにポイントします
最後に、size 属性を 1 だけ増やします。挿入が成功した場合は、True を返します。これは良い習慣です。つまり、ユーザーは何が起こったのかを知っています。
3. 出力ノード
LinkedListクラスのメソッドです。リンクされたリスト内のすべてのノードのデータを出力するには、一度に 1 つのノードを反復処理して、各ノードのデータ部分を出力する必要があります。
実装コード:
class Node: def __init__(self,data,nextNode=None): self.data = data self.nextNode = nextNode def getData(self): return self.data def setData(self,val): self.data = val def getNextNode(self): return self.nextNode def setNextNode(self,val): self.nextNode = val class LinkedList: def __init__(self,head = None): self.head = head self.size = 0 def getSize(self): return self.size def addNode(self,data): newNode = Node(data,self.head) self.head = newNode self.size+=1 return True def printNode(self): curr = self.head while curr: print(curr.data) curr = curr.getNextNode() myList = LinkedList() print("Inserting") print(myList.addNode(5)) print(myList.addNode(15)) print(myList.addNode(25)) print("Printing") myList.printNode() print("Size") print(myList.getSize())
単一リンクリストの長所と短所は何ですか?
利点:
● 挿入と削除が簡単な動的データ構造です。要素を移動します。次のポインタを更新するだけで問題は解決します。
● スタックとキューのデータ構造は、リンク リストを使用して簡単に実装できます。
欠点
● 次のポインタが追加のメモリを占有します。
#●ランダムアクセスはできません。特定のノードに到達するには、リンク リストを最初からたどる必要があります。 以上がこの記事の全内容です、皆様の学習のお役に立てれば幸いです。さらにエキサイティングなコンテンツについては、PHP 中国語 Web サイトの関連チュートリアルのコラムに注目してください。 ! !以上がPythonの単一リンクリストにノードを挿入して出力するにはどうすればよいですか? (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

この記事では、Debianシステムの下でApacheログを分析することにより、Webサイトのパフォーマンスを改善する方法について説明します。 1.ログ分析の基本Apacheログは、IPアドレス、タイムスタンプ、リクエストURL、HTTPメソッド、応答コードなど、すべてのHTTP要求の詳細情報を記録します。 Debian Systemsでは、これらのログは通常、/var/log/apache2/access.logおよび/var/log/apache2/error.logディレクトリにあります。ログ構造を理解することは、効果的な分析の最初のステップです。 2。ログ分析ツールさまざまなツールを使用してApacheログを分析できます。コマンドラインツール:GREP、AWK、SED、およびその他のコマンドラインツール。

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

開発環境とエコシステムにおけるLaravelとPythonの比較は次のとおりです。1。Laravelの開発環境は簡単で、PHPと作曲家のみが必要です。 Laravelforgeなどの豊富な範囲の拡張パッケージを提供しますが、拡張パッケージのメンテナンスはタイムリーではない場合があります。 2。Pythonの開発環境もシンプルで、PythonとPIPのみが必要です。エコシステムは巨大で複数のフィールドをカバーしていますが、バージョンと依存関係の管理は複雑な場合があります。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

この記事では、DDOS攻撃検出方法について説明します。 「DebiansNiffer」の直接的なアプリケーションのケースは見つかりませんでしたが、次の方法はDDOS攻撃検出に使用できます:効果的なDDOS攻撃検出技術:トラフィック分析に基づく検出:突然のトラフィックの成長、特定のポートの接続の急増などのネットワークトラフィックの異常なパターンの識別。たとえば、PysharkライブラリとColoramaライブラリと組み合わせたPythonスクリプトは、ネットワークトラフィックをリアルタイムで監視し、アラートを発行できます。統計分析に基づく検出:データなどのネットワークトラフィックの統計的特性を分析することにより

この記事では、DebianシステムでNGINXSSL証明書を更新する方法について説明します。ステップ1:最初にCERTBOTをインストールして、システムがCERTBOTおよびPython3-Certbot-Nginxパッケージがインストールされていることを確認してください。インストールされていない場合は、次のコマンドを実行してください。sudoapt-getupdatesudoapt-getinstolcallcertbotthon3-certbot-nginxステップ2:certbotコマンドを取得して構成してlet'sencrypt証明書を取得し、let'sencryptコマンドを取得し、nginx:sudocertbot - nginxを構成します。

DebianシステムのReadDir関数は、ディレクトリコンテンツの読み取りに使用されるシステムコールであり、Cプログラミングでよく使用されます。この記事では、ReadDirを他のツールと統合して機能を強化する方法について説明します。方法1:C言語プログラムを最初にパイプラインと組み合わせて、cプログラムを作成してreaddir関数を呼び出して結果をinclude#include#include inctargc、char*argv []){dir*dir; structdireant*entry; if(argc!= 2){(argc!= 2){
