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

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 双方向循環リストの意味・解説 

双方向循環リスト

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

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

双方向循環リスト(doubly-circularly-linked list)では、各ノード線形双方向リスト同じよう2つのリンクを持つが、先頭ノード後方リンクは最後尾ノード指し最後尾ノード前方リンクは先頭ノードを指す。双方向リストと同様、挿入削除もその位置隣接するノードへの参照1つあれば、高速行える。構造的には双方向循環リストには先頭最後尾もないが、一般に外部のアクセスポインタを用意して先頭または最後尾ノード指しておくことが多い。そして、双方向リストでの番兵ノードのように順序把握するのに使われる

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


双方向循環リスト

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

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

someNode は空でないリストにある何らかのノードであるとする。ここでは任意の "someNode" から繰り返し開始するものとしている。 順方向 node := someNode do node.value について何か行node := node.next while node ≠ someNode 逆方向 node := someNode do node.value について何か行node := node.prev while node ≠ someNode ループ最後終了条件チェックをしている点に注意されたい。これは、リストに "someNode" という1つノードしかない場合に重要である。 次の関数は双方向循環リスト上のノード次に新たなノード追加するfunction insertAfter(Node node, Node newNode) newNode.next := node.next newNode.prev := node node.next.prev := newNode node.next := newNode "insertBefore" を実現したければ、単に "insertAfter(node.prev, newNode)" を行えばよい。空のリストへのノード追加次の特殊関数が必要となる。 function insertEnd(List list, Node node) if list.lastNode = null node.prev := node node.next := node else insertAfter(list.lastNode, node) list.lastNode := node 先頭挿入したければ、"insertAfter(list.lastNode, node)" を実行すればよい。ノード削除では空のリストにうまく対処する必要があるfunction remove(List list, Node node) if node.next = node list.lastNode := null else node.next.prev := node.prev node.prev.next := node.next if node = list.lastNode list.lastNode := node.prev; destroy node 双方向リストと同様、"removeAfter" と "removeBefore" は "remove(list, node.prev)" と "remove(list, node.next)" で実現可能である。

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

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



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

辞書ショートカット

すべての辞書の索引

「双方向循環リスト」の関連用語

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

   

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



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

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

©2025 GRAS Group, Inc.RSS