Hva er tretypene i datastrukturer?


Beste svaret

Det finnes forskjellige typer tredatastrukturer. Noen av dem er

  1. Binært tre : Dette er den mest grunnleggende grunnleggende fra trestrukturen. Hvor hver node kan ha to barn. Et perfekt binært tre er et binært tre der alle indre noder har to barn og alle bladene har samme dybde eller samme nivå. A fullt binært tre (noen ganger referert til som et riktig [15] eller plan binært tre) er et tre der hver node i treet enten har 0 eller 2 barn. I en fullført binært tre hvert nivå, bortsett fra muligens det siste, er fullstendig fylt, og alle noder i det siste nivået er så langt igjen som mulig. I uendelig komplett binært tre, hver node har to barn.
  2. Binært søketre: BST er et binært tre med visse egenskaper slik som, og venstre barn til den gitte noden inneholder verdi som er mindre enn lik den gitte noden, og høyre håndbarn inneholder noden som er større enn den gitte noden.
  3. AVL-tre eller høydeavbalansert binært tre : Det er en variant av det binære treet der høydeforskjellen mellom venstre og høyre undertre kan være maksimalt 1. Hvis de til enhver tid skiller seg ut med mer enn ett, gjøres ombalansering for å gjenopprette denne eiendommen. Oppslag, innsetting og sletting tar alt tid O (log n) i både gjennomsnitt og verste tilfeller, hvor n er antall noder i treet før operasjonen.
  4. Rød-svart tre : En annen variant av binært tre som ligner på AVL-tre, det er et selvbalanserende binært søketre. I dette treet er noder enten farget rødt eller svart.
  5. Splaytreet: Et splay-tre er et selvjusterende binært søketre med tilleggsegenskaper som nylig har åpnet elementer, har rask tilgang til igjen. Alle normale operasjoner på et binært søketre er kombinert med en grunnleggende operasjon, kalt splaying. Å spille treet for et bestemt element, omorganiserer treet slik at elementet blir plassert på roten av treet.
  6. N-ary tree: I dette treet fjernes begrensningen av det binære treet. Her kan en node maksimalt ha n barn. Som binært tre kan det være fullt, komplett eller perfekt n-ary-tre. N-ary er en stund kjent som skog.
  7. Trie Structure : I informatikk, en trie, også kalt digitalt tre og noen ganger radix tre eller prefiksetre (ettersom de kan søkes med prefikser), er en ordnet tredatastruktur som brukes til å lagre et dynamisk sett eller assosiativ matrise der nøklene vanligvis er strenger. Alle etterkommere av en node har et felles prefiks for strengen som er knyttet til den noden, og roten er knyttet til den tomme strengen.
  8. Suffikstreet : Trie og suffiks tre er nært beslektet. et suffiks-tre (også kalt PAT-tre eller, i en tidligere form, posisjonstreet) er en komprimert trie som inneholder alle suffikser av den gitte teksten som nøklene og posisjonene i teksten som deres verdier. Suffikstrær tillater spesielt raske implementeringer av mange viktige strengoperasjoner.
  9. Huffman Tree: Huffman tree er et frekvens sortert binært tre som brukes mye i komprimering data. Huffman-treet er konstruert for å tildele et kort kodeord til en lang tekst basert på hyppigheten av forekomster.
  10. Haugstruktur [Rediger som foreslått ]: Haugstruktur er en annen mye brukt trestruktur med en bestemt bestillingsegenskap. Det er to typer heap – Min heap og Max heap. I en min haug må foreldrene til en node være mindre enn verdiene til alle barna. Tilsvarende har foreldrene alltid større verdi sammenlignet med alle sine barn i maks. En vanlig implementering av dyngen er binær haug der hver forelder maksimalt kan ha to barn.

Andre populære trestrukturer inkluderer men ikke uttømmende B -Tree, B + – tree, R-Tree, Counted-B Tree, KD-treet (eller K- dimensjonalt BST), beslutningstreet (a variant av n-ary-treet), Markeltre, Fenwick-treet (eller binært indekstre), Range Tree.

Svar

  • Mal som kode ved å danne et avhengighetstre.

Vær nå med meg i 5 minutter for å forklare i detalj hvordan vi brukte treet som datastruktur for å løse vår komplekse brukssak.

For å forklare scenariet, la oss ta et lite eksempel på å få data fra et API via tokenbasert autentisering.

Så hvis du vil oppnå denne bragden,

  • du får først brukernavnet, passordet og leietakerinformasjonen og ringer API-en for å hente tokenet.
  • Deretter ringer du det aktive token med det hentede tokenet ved å sende det i overskriftene til forespørselen.

Nå er dette veldig enkelt scenario, men ting blir ganske komplekse når du må utføre en kjede av 10 API «S hver avhengig av hverandre.

Det er her vi kom opp med denne avhengighetstretilnærmingen

Først må vi danne en mal som denne

Nå etter dette danner vi et avhengighetstre som dette

Alt definert som $ {} betydde at det er avhengig av en annen variabelutgang.

ResourceOps betyr at API skal utføres

Slik skapes avhengighetstreet

  • Vi vurderer parametere som er uavhengige og fest dem til roten.
  • Vi kommer så til ressursoperasjoner og forstår at det avhenger av verdiene som er knyttet til rotnoden. Så vi løsner dem fra roten og fester dem til en ny node.
  • Det samme vil gjøres for alle ressursoperasjoner og output.

Når vi oppretter avhengighetstreet, går vi til bladnoden utfør det, kom så til foreldren med bladnoderutførelsesresultatet, og deretter er det foreldre og det er foreldre til vi når toppnoden.

Når vi når den øverste noden, får vi resultatet og returnerer tilbake som http suksessrespons.

Hvis det er noen feil i kjøringen, returnerer vi deretter feilresponsen på en lesbar måte.

Jeg tror ikke jeg hadde forklart litt om det, men jeg vil bare trekke frem hvordan vi løste et reelt verdensproblem med tredatastruktur for dynamiske handlinger som skal utføres uten at en utvikler skriver noen kode.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *