Mitkä ovat puuryhmät tietorakenteissa?


Paras vastaus

Puutietorakenteita on erityyppisiä. Jotkut niistä ovat

  1. binaaripuu : Tämä on puurakenteen perusasetus. Jos jokaisella solmulla voi olla äärimmäisen kaksi lasta. täydellinen -binaaripuu on binääripuu, jossa kaikilla sisätiloissa on kaksi lasta ja kaikki lehdillä on sama syvyys tai sama taso. täysi binääripuu (joskus kutsutaan oikeaksi [15] tai tasobinaariseksi puuksi) on puu, jossa jokaisessa puun solmussa on joko 0 tai 2 lasta. valmis binaaripuu jokainen taso, mahdollisesti viimeistä lukuun ottamatta, on täysin täytetty, ja kaikki viimeisen tason solmut ovat mahdollisimman vasemmalla. ääretön täydellinen binääripuu, jokaisella solmulla on kaksi lasta.
  2. Binaarinen hakupuu: BST on binääripuu, jolla on tiettyjä ominaisuuksia kuten ja annetun solmun vasen lapsi sisältää arvon, joka on pienempi kuin annettu solmu, ja oikeanpuoleinen lapsi sisältää solmun, joka on suurempi kuin annettu solmu.
  3. AVL-puu tai korkeussuhteinen binaarinen puu : Se on binääripuun muunnos, jossa vasemman ja oikean alipuun korkeusero voi olla korkeintaan 1. Jos ne eroavat milloin tahansa useammalla kuin yhdellä, tasapainotetaan palauta tämä ominaisuus. Haku, lisäys ja poisto vie kaikki O (log n) -aikaa sekä keskimääräisessä että pahimmassa tapauksessa, jossa n on puun solmujen määrä ennen operaatiota.
  4. Puna-Musta puu : Toinen AVL-puuta muistuttava binääripuun muunnelma on itse tasapainottava binäärihakupuu. Tässä puussa solmut ovat joko punaisia ​​tai mustia.
  5. Splay-puu: Splay-puu on itsesäätyvä binaarinen hakupuu, jossa on lisäominaisuus, johon äskettäin päätyneet elementit ovat nopeasti käytettävissä. Kaikki binäärihakupuun normaalit toiminnot yhdistetään yhteen perustoimintoon, nimeltään splaying. Puun toistaminen tietylle elementille järjestää puun uudelleen siten, että elementti sijoitetaan puun juurelle.
  6. N-ary puu: Tässä puussa binääripuun rajoitus poistetaan. Tässä solmussa voi olla enintään n lasta. Binaaripuun tavoin se voi olla täydellinen, täydellinen tai täydellinen n-ary-puu. N-ary tunnetaan jonkin aikaa nimellä metsä.
  7. Trie-rakenne : Tietojenkäsittelytieteessä trie, jota kutsutaan myös digitaaliseksi puuksi ja joskus radixiksi puu tai etuliite puu (koska niitä voidaan etsiä etuliitteillä), on järjestetty puun tietorakenne, jota käytetään dynaamisen joukon tai assosiatiivisen taulukon tallentamiseen, jossa avaimet ovat yleensä merkkijonoja. Kaikilla solmun jälkeläisillä on yhteinen merkkijonon etuliite, joka liittyy kyseiseen solmuun, ja juuri liittyy tyhjään merkkijonoon.
  8. Loppupuu : Trie ja loppupuu liittyvät läheisesti toisiinsa. loppuliitepuu (jota kutsutaan myös PAT-puuksi tai, aikaisemmassa muodossa, sijaintipuu) on pakattu trie, joka sisältää kaikki annetun tekstin jälkiliitteet avaimina ja sijainnit tekstissä arvoina. Lisäpuut mahdollistavat monien tärkeiden merkkijonooperaatioiden erityisen nopean toteutuksen.
  9. Huffman-puu: Huffman-puu on taajuusjärjestetty binääripuu, jota käytetään laajasti pakkauksessa tiedot. Huffman-puu on rakennettu jakamaan lyhyt koodisana pitkälle tekstille sen esiintymistiheyden perusteella.
  10. Kasan rakenne [Muokkaa ehdotuksen mukaisesti ]: Kasan rakenne on toinen laajalti käytetty puurakenne, jolla on erityinen tilausominaisuus. Kasaa on kahta tyyppiä – Min kasa ja Max kasa. Pienessä kasassa solmun vanhemman on oltava pienempi kuin kaikkien sen lasten arvot. Vastaavasti vanhemmilla on aina suurin arvo kasaan verrattuna kaikkiin lapsiinsa. Yksi kasan yleinen toteutus on binäärikasa, jossa kummallakin vanhemmalla voi olla enintään kaksi lasta.

Muihin suosittuihin puurakenteisiin sisältyy mutta ei tyhjentävästi B -Puu, B + – puu, R-puu, Laskettu-B-puu, KD-puu (tai K-ulotteinen BST), päätöspuu (a n-ary-puun muunnos), Markelipuu, Fenwick-puu (tai binaarinen hakemistopuu), Range Tree.

Vastaa

  • Malli koodina muodostamalla riippuvuuspuu.

Kannatkaa nyt minua viisi minuuttia selittääkseni yksityiskohtaisesti, miten käytimme puuta tietorakenteena ratkaisemaan monimutkaisen käyttötapauksen.

Selitämme skenaariota ottamalla pienen esimerkin tietojen saamisesta API: lta tunnuspohjaisen todennuksen avulla.

Joten jos haluat saavuttaa tämän saavutuksen,

  • haet ensin käyttäjänimen, salasanan ja vuokralaisten tiedot ja soitat sovellusliittymään hakemaan tunnuksen.
  • Soita sitten noudetun tunnuksen kanssa todellinen sovellusliittymä välittämällä se pyynnön otsikoihin.

Nyt tämä on hyvin yksinkertainen skenaario, mutta asiat muuttuvat melko monimutkaisiksi, kun joudut suorittamaan ketjun 10 API: sta ”S, jotka ovat riippuvaisia ​​toisistaan.

Täältä keksimme tämän riippuvuuspuun lähestymistavan.

Ensin on muodostettava tällainen malli

Tämän jälkeen muodostamme tämän tyyppisen riippuvuuspuun

Kaikki, mikä määritellään nimellä $ {}, tarkoitti sitä se riippuu toisesta muuttujien tuotoksesta.

ResourceOps tarkoittaa suoritettavia sovellusliittymiä

Näin luodaan riippuvuuspuu

  • Arvioimme parametrit, jotka ovat riippumattomia ja Liitä ne juuriin.
  • Sitten siirrymme resurssioperaatioihin ja ymmärrämme, että se riippuu juurisolmuun liitetyistä arvoista. Joten irrotamme ne heistä juuresta ja kiinnitämme ne sitten uuteen solmuun.
  • Sama tehdään kaikille resurssioperaatioille ja tuotos.

Kun luomme riippuvuuspuun, siirrymme lehtisolmulle suoritettava se tulee sitten vanhemalle lehtisolmun suoritustuloksen kanssa ja sitten sen ”ylätaso” ja ”ylätaso”, kunnes saavutamme ylimmän solmun.

Kun olemme saavuttaneet ylimmän solmun, saamme tuloksen ja palaamme takaisin http-menestysvastauksena.

Jos suorituksessa on virheitä, palautamme sitten virhevasteen luettavalla tavalla.

En usko, että olisin selittänyt sitä vähän, mutta haluan vain korostaa miten ratkaisimme reaalimaailman ongelman puiden tietorakenteella, jotta dynaamiset toiminnot voidaan suorittaa ilman, että kehittäjä kirjoittaa koodia.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *