AVL木

AVL木の例
AVL木の例

AVL木(えーぶいえるき、AVL tree、Adelson-Velskii and Landis' tree)とは、コンピュータサイエンスにおいて、「どのノードの左右部分木高さの差も1以下」という条件を満たす二分探索木のことである。

平衡二分探索木の1つで、木に対する操作によって条件を満たさないノードが発生しても、回転と呼ばれる操作を行うだけで木をAVL木に再構成でき、平衡を維持できる。

AVL木は最初に考案された平衡二分探索木であり、その名は1962年に論文を発表したソ連の2人の数学者、ゲオルギー・アデルソン・ヴェルスキー英語版エフゲニー・ランディス英語版に由来する。

平衡条件と計算量

通常の二分探索木は入力されるデータの順番によって木の構成が変わるため、探索効率が安定しない。例えば、データがソートされた状態で順に入力されると、木は線形リストと等価な構造になるため、探索の計算量は最悪のになってしまう。木が完全二分木であれば計算量は最良のになるが、完全二分木でなくとも木全体の高さがより小さくバランスが取れている状態、すなわち平衡な状態であれば木の性能は十分発揮できる。AVL木は「どのノードの左右部分木の高さの差も1以下」であることを平衡の条件としており、これを常に満たすので、探索の計算量は常に程度になる。

平衡係数

AVL木では、1つのデータを挿入、削除する度に全てのノードが条件を満たしているか調べる。ここでは、その手がかりとして各ノードに平衡係数を持たせることを考える。平衡係数は以下のように各ノードの左右部分木の高さの差で定義する(左右は逆でもよい)。

(平衡係数) = (左部分木の高さ) - (右部分木の高さ)

平衡係数は挿入や削除などの操作の度に再計算する。すなわち、左部分木の方が高くなるほど+1、右部分木の方が高くなるほど-1すればよい。

平衡係数が2以上または-2以下のノードが存在する時、木の再構成が必要である。再構成後は平衡係数を更新する。

操作

AVL木の基本操作は通常の二分探索木に対して行うものと同じだが、木の平衡が崩れた時は木を再構成するために回転も行う。回転は、平衡係数が2以上または-2以下のノードのうち最も根から遠いノード、すなわち最も葉に近いノードから行う。

回転操作の詳細は「木の回転」を参照のこと。

探索

木の中から目的の値を持つノードを見つけ出すのが探索である。AVL木の探索は通常の二分探索木と同様の手順で、「左の子の値 ≤ 親の値 ≤ 右の子の値」の条件を手がかりに行う。

  1. 根ノードに着目する
  2. 着目しているノードが存在しなければ、木に目的の値を持つノードはないので処理を終了(※)
  3. 「着目しているノードの値」と「目的の値」を比較する
    1. 値が等しければ探索終了
    2. 「目的の値 < 着目しているノードの値」であれば、左の子ノードを新たに着目するノードとして(※)から繰り返す
    3. 「着目しているノードの値 < 目的の値」であれば、右の子ノードを新たに着目するノードとして(※)から繰り返す

挿入

複回転の様子
複回転の様子。円はノードを、三角形は部分木を表す。ノード横の青い数字はそのノードの平衡係数を表す。

通常の二分探索木における挿入は、条件「左の子の値 ≤ 親の値 ≤ 右の子の値」を満たす枝の末端を探索し、そこに新たに作成したノードを繋ぐだけであるが、AVL木ではさらに平衡条件を満たしているか調べ、満たしていない場合は回転を行う。

まず、挿入すべき枝の末端を探索しながら、探索してきた経路を記憶しておく。これはスタック再帰呼出しを用いることで実現できる。挿入後、この経路上を「挿入したノードの親ノード」から「根ノード」に向かって順に調べていく。

平衡条件を満たさないノード(Pとする)があった場合に回転を行うが、ほとんどの場合、「P」と「Pの高い方の部分木の根ノード」に着目して1度回転を行えば、これらのノードとその子孫ノードは平衡条件を満たした状態になる。この回転を単回転または1重回転などと呼ぶ。

ただし、単回転では平衡条件が満たされない場合があることに注意しなければならない。具体的には、

  • Pの左部分木の方が高く、かつPの左の子ノードの右部分木の方が高い場合(図のLeft Right Case)
  • Pの右部分木の方が高く、かつPの右の子ノードの左部分木の方が高い場合(図のRight Left Case)

の2通りである。

この場合はそれぞれ以下のように2度回転を行うことで解決できる。これを複回転または2重回転などと呼ぶ。

  • 回転前のPの左の子ノードをL、Lの右の子ノードをLRとすると、まずLとLRで回転し、次にPと新たにPの左の子ノードとなったLRで回転する
  • 回転前のPの右の子ノードをR、Rの左の子ノードをRLとすると、まずRとRLで回転し、次にPと新たにPの右の子ノードとなったRLで回転する

このように、AVL木では部分木の構造によって単回転と複回転を使い分ける必要がある。

挿入後の平衡確認の終了条件

AVL木の挿入における平衡条件の確認は、探索してきた経路上の全てのノードが平衡条件を満たしていることを確認する必要は必ずしもなく、探索してきた経路上のどこかのノードを回転するか、探索してきた経路上に平衡係数が0のノードを見つけた時点で処理を終了できる。

なぜなら、挿入は木の高さを1大きくする操作であるのに対して、回転は木の高さを1小さくする操作であるから、これらの操作によってその部分木の高さが挿入前と等しくなるためである。また、挿入により平衡係数が0になったノードがあるということは、挿入前に高さが1小さかった方の部分木に挿入したということであるから、そのノードを根とする部分木の高さは挿入前後で変わっていないので、全てのノードが平衡条件を満たしていることがわかる。

ただし、探索してきた経路上に平衡係数が1もしくは-1のノードを見つけても処理を終了できない。

なぜなら、挿入により平衡係数が1もしくは-1になったノードがあるということは、挿入前のそのノードの左右部分木の高さは等しかったが、挿入により一方の部分木の高さが1大きくなったということであり、そのノードを根とする部分木の高さは1大きくなっているので、全てのノードが平衡条件を満たしていることを保証できないからである。

削除

AVL木の削除は、通常の二分探索木と同様の削除操作を行ったあと、平衡条件を満たしているか調べ、満たしていない場合は回転を行う。

挿入と同様に、まずは探索してきた経路上を「削除したノードの親ノード」から「根ノード」に向かって順に調べていく。平衡条件を満たさないノードがあった場合、そのノードと高い方の部分木の根ノードに着目して単回転、または複回転を行う。

なお、削除するノードが子ノードを2つ持つ場合、削除するノードの左部分木のうち最大値を持つノード(もしくは右部分木のうち最小値を持つノード)を探索して、削除するノードと置き換える処理が発生するが、ここで探索した経路も記憶しておく必要があることに注意する。ノードを削除するのは置き換え後なので、平衡条件の確認も置き換えられた先の親ノードから始めなければならない。

削除後の平衡確認の終了条件

AVL木の削除における平衡条件の確認は、探索してきた経路上の全てのノードが平衡条件を満たしていることを確認する必要は必ずしもなく、探索してきた経路上に平衡係数が1もしくは-1のノードを見つけた時点で処理を終了できる。

なぜなら、削除により平衡係数が1もしくは-1になったノードがあるということは、削除前のそのノードの左右部分木の高さは等しかったが、削除により一方の部分木の高さが1小さくなったということであり、そのノードを根とする部分木の高さは削除前後で変わっていないので、全てのノードが平衡条件を満たしていることがわかるからである。

ただし、探索してきた経路上のどこかのノードを回転したり、平衡係数が0のノードを見つけても処理を終了できない。

なぜなら、削除は木の高さを1小さくする操作であるのに対して、回転も木の高さを1小さくする操作であるから、これらの操作によって平衡条件を満たさなくなったノードが出てくる可能性があるためである。また、削除により平衡係数が0になったノードがあるということは、削除前に高さが1大きかった方の部分木から削除したということであるから、そのノードを根とする部分木の高さは1小さくなるので、同様の可能性がある。

特徴

AVL木ではない赤黒木
赤黒木ではあるが、AVL木ではない木の例。AVL木の平衡条件の方が厳密である。

子ノードがない場合は部分木の高さを0と考えるため、1つの子ノードしか持たないノードについて、その子ノードは葉ノードとなる。すなわち、兄弟ノードを持たないノードは必ず葉ノードである。

AVL木のどの部分木もAVL木である。

AVL木は、あくまで各ノードの左右部分木の高さのバランスを保った木であり、各葉ノードの深さが均等な木というわけではない。深さが最も大きい葉ノードと最も小さい葉ノードの深さの差が2以上になって、完全二分木とはかけ離れた構造になることもある。

挿入や削除の操作は、毎回平衡条件の判定を伴うため比較的コストが掛かる。そのため、これらの操作が探索に比べてあまりにも頻繁に行われるような環境では、AVL木は性能を発揮しにくい。

AVL木は、同じく平衡二分探索木の1つである赤黒木に比べて平衡性をより厳密に維持するので、探索性能はAVL木の方がよいが、挿入や削除の性能は赤黒木の方がよい。

関連項目

Read other articles:

Sepak takraw at the 2009 Asian Indoor GamesVenueHà Đông Competition HallDates31 October – 2 November 2009← 2007 Sepak takraw was contested at the 2009 Asian Indoor Games in Hanoi, Vietnam from October 31 to November 2. The competition took place at the Ha Dong Competition Hall. Medalists Event Gold Silver Bronze Men  ThailandChaiya WattanoEkachai MasukNarachai ChumeungkusolSaharat OunumpaiThanaiwat YoosukWattana Jaiyan  IndonesiaMiftakhul AriefSugeng Samsul Arif...

Адвока́т (від лат. advocates — прикликаний від лат. advoco — запрошую) — юрист, що надає професійну правову допомогу учасникам правовідносин. Участь адвоката є обов'язковою при захисті особи від кримінального обвинувачення, а також в інших випадках, визначених законода�...

Hotel Avenida Palace Inmueble de interés público LocalizaciónPaís PortugalLocalidad Santa JustaUbicación Santa Maria MaiorCoordenadas 38°42′53″N 9°08′29″O / 38.714809, -9.141281Información generalDeclaración 1977Inauguración 1891http://www.hotelavenidapalace.pt/hotel-overviewhtml[editar datos en Wikidata] El Hotel Avenida Palace es un hotel histórico de Lisboa. Fue construido entre 1890 y 1892 por la Companhia dos Caminhos de Ferro Portugueses, par...

Dit artikel staat op een nalooplijst. Als de inhoud op verifieerbaarheid gecontroleerd is, kan dit sjabloon verwijderd worden. Geef dat ook aan op de betreffende nalooplijst. Bekijk ook de bewerkingsgeschiedenis om te zien of anderen hier al aan gewerkt hebben. Gwladys Nocera 2008 Persoonlijke informatie Nationaliteit  Frankrijk Geboorteplaats Moulins Geboortedatum 22 mei 1975 Lengte 1,68 m Carrière Sport Golf Profdebuut 2002 Titels 15 Overwinningen per tour Ladies European Tour 14 ALPG...

У Вікіпедії є статті про інші географічні об’єкти з назвою Артісія. Місто Артісіяангл. Artesia Координати 33°24′57″ пн. ш. 88°38′43″ зх. д. / 33.416100000028° пн. ш. 88.64530000002778820° зх. д. / 33.416100000028; -88.64530000002778820Координати: 33°24′57″ пн. ш. 88°38′43″ зх. д....

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (يوليو 2019) مديرية تتا ضلعو ٺٽو   موقع الإحداثيات 24°30′00″N 67°50′00″E / 24.5°N 67.833333333333°E / 24.5; 67.833333333333  تقسيم إداري  باكستان باكستان  إقليم السند عاصمة �...

Герб Каракаса ДеталіНосій Каракас Герб Каракаса — офіційний геральдичний символ міста Каракаса, столиці Венесуели. Опис та символізм Герб Каракаса є геральдичним щитом, оточеним золотою стрічкою. На синьому полі герба розміщено зображення лева з язиком червоного кол

Basketball competition For the women's tournament, see FIBA Oceania Women's Championship. This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: FIBA Oceania Championship – news · newspapers · books · scholar · JSTOR (September 2014) (Learn how and when to remove this template message) FIBA Oceania ChampionshipSpor...

American actor (1934–1979) Not to be confused with Jim Hutton, the partner of Freddie Mercury This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Jim Hutton – news · newspapers · books · scholar · JSTOR (September 2014) (Learn how and when to remove this template message) Jim HuttonHutton as Ellery Queen in 19...

Queenstown Police Station[1] is the largest police station in the Otago Lakes Central Area which is one of three policing areas in the Southern District of the New Zealand Police.[2] The Otago Lakes Central Area headquarters has returned to Queenstown Police Station after a period at Alexandra Police Station. The area of responsibility covered by the Queenstown Police extends from Kingston in the south, to the Crown Range summit in the north, and from Glenorchy and its environ...

American basketball player Brianté WeberWeber playing for VCU in 2014Free AgentPositionPoint guardPersonal informationBorn (1992-12-29) December 29, 1992 (age 30)Chesapeake, VirginiaNationalityAmericanListed height6 ft 2 in (1.88 m)Listed weight178 lb (81 kg)Career informationHigh schoolGreat Bridge(Chesapeake, Virginia)CollegeVCU (2011–2015)NBA draft2015: undraftedPlaying career2015–presentCareer history2015–2016Sioux Falls Skyforce2016Memphis Grizzlies20...

КоммунаБенонBenon 46°12′00″ с. ш. 0°49′00″ з. д.HGЯO Страна  Франция Регион Пуату — Шаранта Департамент Шаранта Приморская Кантон Курсон История и география Площадь 46,62 км²[1] Часовой пояс UTC+1:00, летом UTC+2:00 Население Население 1010 человек (2010) Цифровые иденти�...

List of events in Ireland in 2006 For Northern Ireland, see 2006 in Northern Ireland. ← 2005 2004 2003 2002 2001 2006 in Ireland → 2007 2008 2009 2010 2011 Centuries: 19th 20th 21st Decades: 1980s 1990s 2000s 2010s 2020s See also:2006 in Northern IrelandOther events of 2006List of years in Ireland Events from the year 2006 in Ireland. Incumbents President: Mary McAleese Taoiseach: Bertie Ahern (FF) Tánaiste: Mary Harney (PD) (until 13 September 2006) Michael McDowell (PD) (from 1...

Yoü and ISingel oleh Lady Gagadari album Born This WayDirilis23 Agustus 2011FormatUnduhan musikDirekam2010; Warehouse Productions, (Omaha, Nebraska), Swiss, Allertown Hill (Britania Raya)GenreRock and roll, countryDurasi5:07LabelStreamline, Interscope, Kon LivePenciptaStefani Germanotta[1]ProduserLady Gaga, Robert John Mutt LangeKronologi singel The Edge of Glory (2011) Yoü and I (2011) Marry the Night (2011) Yoü and I adalah lagu dari penyanyi asal Amerika Serikat, Lady Gaga dan d...

Pre-Roman tribe in Iberia Location of the tribe of the Autrigones. The Autrigones were a pre-Roman tribe that settled in the north of the Iberian Peninsula, in what today is the western Basque Country (western regions of Biscay and Álava) and northern Burgos and the East of Cantabria, Spain. Their territory limited with the Cantabri territory at west, the Caristii at east, the Berones at the southeast and the Turmodigi at the south. It is discussed whether the Autrigones were Celts, theory s...

Questa voce sull'argomento programmi televisivi statunitensi è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Good Morning AmericaPaeseStati Uniti d'America Anno1975-in corso Genererotocalco, talk show, costume Edizioni43 Puntate10164 (al 15 maggio 2014) Durata120 min Lingua originaleinglese RealizzazioneConduttoreGeorge StephanopoulosRobin RobertsMichael StrahanLara SpencerGinger Zee IdeatoreDonald L. Perris, William F. Baker Casa di produzione...

List of districts of Arunachal Pradesh, India. As of July 2020[update], the Indian state Arunachal Pradesh comprised 25 districts, with more districts proposed.[1] Most of the districts are inhabited by various tribal groups. The latest and presently valid official map of districts of Arunachal Pradesh, after the most recent new districts were last announced on 30 August 2018, is in the external links. History Year of formation of districts in Arunachal Pradesh 1965 [5] Kameng...

Loco shed in Andhra Pradesh, India Diesel Loco Shed, GuntakalGuntakal based WDM-3D twins hauling Devagiri Express.Location within Andhra PradeshLocationLocationGuntakal, Andhra Pradesh, IndiaCoordinates15°10′N 77°23′E / 15.17°N 77.38°E / 15.17; 77.38CharacteristicsOwnerIndian RailwaysOperatorSouth Central Railway zoneDepot codeGTLTypeEngine shedRolling stockWDM-3A, WDM-3D, WDG-3A, WDS-6HistoryOpened1964; 59 years ago (1964)Former rolling stock...

Made in AbyssSampul buku volume pertama, menampilkan Reg (atas) and Riko (bawah), di depan Abyss.メイドインアビス(Meido in Abisu)GenreAdventure, dark fantasy, science fiction[1][2] MangaPengarangAkihito TsukushiPenerbitTakeshoboPenerbit bahasa InggrisNA Seven Seas EntertainmentImprintBamboo ComicsMajalahWeb Comic GammaDemografiSeinenTerbit20 Oktober 2012 – sekarangVolume12 (Daftar volume) AnimeSutradaraMasayuki KojimaSkenarioHideyuki KurataMusikKevin PenkinStudioKine...

International border Georgia-Turkey borderსაქართველო-თურქეთის საზღვარიGürcistan-Türkiye sınırıCharacteristicsEntities Georgia  TurkeyLength276 km (171 mi)[1] Map of Georgia, with Turkey to the south-west The Georgia–Turkey border (Georgian: საქართველო–თურქეთის საზღვარი, Turkish: Gürcistan–Türkiye sınırı) is 273 km (170 miles) in length an...