片方向リストとは? わかりやすく解説

片方向リスト

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/29 20:30 UTC 版)

連結リスト」の記事における「片方向リスト」の解説

片方向リスト(singly-linked list)は、最も単純な連結リストであり、ノード毎に1つのリンクを持つ。このリンクはリスト上の次のノード指しリスト最後尾ならNull値格納するか、空のリストを指す。 3つの整数値を格納した片方向リスト

※この「片方向リスト」の解説は、「連結リスト」の解説の一部です。
「片方向リスト」を含む「連結リスト」の記事については、「連結リスト」の概要を参照ください。


片方向リスト

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/29 20:30 UTC 版)

連結リスト」の記事における「片方向リスト」の解説

ここでのノードデータ構造には2つフィールドがある。また、List の "firstNode" というフィールドリスト先頭ノード(空のリスト場合は "null")を指すとする。 record Node { data // ノード格納されるデータ next // 次のノードへの参照最後尾場合null) } record List { Node firstNode // リスト先頭ノードを指す(空のリスト場合null) } 片方向リストを辿るのは単純で、先頭ノードから各ノードの "next" リンクを最後まで辿っていく。 node := list.firstNode while nodenull { (node.data に何かをする) node := node.next } 次のコードは片方向リスト上のあるノード次に新たにノード挿入する。あるノード前にノード挿入することはできないその場合は挿入位置の前のノードを見つける必要があるfunction insertAfter(Node node, Node newNode) { // newNode を node次に挿入 newNode.next := node.next node.next := newNode } リスト先頭ノード追加する場合別の関数が必要である。この場合、firstNode を更新しなければならないfunction insertBeginning(List list, Node newNode) { // 現在の先頭ノード前にノード挿入 newNode.next := list.firstNode list.firstNode := newNode } 同様に指定されノード次のノード削除する関数と、リスト先頭ノード削除する関数を示す。特定のノード探して削除する場合、その前のノード覚えておく必要があるfunction removeAfter(Node node) { // このノード次のノード削除 obsoleteNode := node.next node.next := node.next.next destroy obsoleteNode } function removeBeginning(List list) { // 先頭ノード削除 obsoleteNode := list.firstNode list.firstNode := list.firstNode.next // 削除されるノードの次を指す destroy obsoleteNode } removeBeginning() は、削除するノード最後ノードだった場合、"list.firstNode" を "null" にする。 逆方向繰り返すことができないので、"insertBefore" や "removeBefore" といった操作効率的に実装することはできない2つの片方向リストを連結した場合リスト最後尾を常に保持していないと効率的に処理できない2つリストそれぞれ長さ n {\displaystyle n} である場合連結にかかる時間は O ( n ) {\displaystyle O(n)} となる。LISP言語では、リスト連結には append を使う。 片方向リストの操作先頭ノード扱いが特殊であるが、先頭ダミー要素追加することでこれを排除できる。これによって、"insertBeginning()" や "removeBeginning()" が不要となる。この場合最初データ持ったノードは "list.firstNode.next" で参照可能である。

※この「片方向リスト」の解説は、「連結リスト」の解説の一部です。
「片方向リスト」を含む「連結リスト」の記事については、「連結リスト」の概要を参照ください。

ウィキペディア小見出し辞書の「片方向リスト」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「片方向リスト」の関連用語

片方向リストのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



片方向リストのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの連結リスト (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS