Vilka typer av träd finns i datastrukturer?


Bästa svaret

Det finns olika typer av träddatastrukturer. Några av dem är

  1. Binärt träd : Detta är den mest grundläggande basen från trädstrukturen. Där varje nod kan ha högst två barn. Ett perfekt binärt träd är ett binärt träd där alla inre noder har två barn och alla bladen har samma djup eller samma nivå. A fullständigt binärt träd (ibland kallat ett ordentligt [15] eller plan binärt träd) är ett träd där varje nod i trädet har antingen 0 eller 2 barn. I en komplett binärt träd varje nivå, utom möjligen den sista, är helt fylld och alla noder i den sista nivån är så långt kvar som möjligt. I oändligt komplett binärt träd, varje nod har två barn.
  2. Binärt sökträd: BST är ett binärt träd med vissa egenskaper till exempel, och vänster underordnad för den angivna noden innehåller ett värde som är mindre än lika med den givna noden och det högra barnet innehåller en nod som är större än den givna noden.
  3. AVL-träd eller höjdbalanserat binärt träd : Det är en variant av det binära trädet där höjdskillnaden mellan vänster och höger subträd kan vara högst 1. Om de när som helst skiljer sig åt med mer än en, görs ombalansering för att återställ den här egenskapen. Sökning, insättning och radering tar alla tid (log n) i både genomsnittliga och värsta fall, där n är antalet noder i trädet före operationen.
  4. Röd-svart träd : En annan variant av binärt träd som liknar AVL-träd det är ett självbalanserande binärt sökträd. I detta träd är noder antingen färgade röda eller svarta.
  5. Spelträd: Ett splay-träd är ett självjusterande binärt sökträd med ytterligare egendom som nyligen öppnade element är snabba att komma åt igen. Alla normala operationer i ett binärt sökträd kombineras med en grundläggande operation, kallad splaying. Att spela trädet för ett visst element ordnar om trädet så att elementet placeras vid trädets rot.
  6. N-ary träd: I detta träd tas begränsningen av det binära trädet bort. Här kan en nod ha högst n barn. Som binärt träd kan det vara fullt, komplett eller perfekt n-ary träd. N-ary är någon gång känd som skog.
  7. Trie Structure : Inom datavetenskap, ett trie, även kallat digitalt träd och ibland radix träd eller prefix träd (eftersom de kan sökas med prefix), är en ordnad träddatastruktur som används för att lagra en dynamisk uppsättning eller associerande matris där nycklarna vanligtvis är strängar. Alla ättlingar till en nod har ett gemensamt prefix för strängen som är associerad med den noden och roten är associerad med den tomma strängen.
  8. Suffixträd : Trie och suffixträd är nära besläktade. ett suffixträd (även kallat PAT-träd eller, i en tidigare form, positionsträd) är en komprimerad trie som innehåller alla suffix för den givna texten som nycklar och positioner i texten som sina värden. Suffixträd tillåter särskilt snabba implementeringar av många viktiga strängoperationer.
  9. Huffman-träd: Huffman-träd är ett frekvenssorterat binärt träd som används allmänt vid komprimering data. Huffman-trädet är konstruerat för att allokera ett kort kodord till en lång text baserat på dess förekomst.
  10. Heapstruktur [Redigera som föreslagit ]: Heapstruktur är en annan mycket använd trädstruktur med en specifik beställningsegenskap. Det finns två typer av heap – Min heap och Max heap. I en min hög måste föräldrarna till en nod vara mindre än värdena på alla dess barn. På samma sätt har föräldern alltid större värde jämfört med alla sina barn. En vanlig implementering av heap är Binary heap där varje förälder kan ha högst två barn.

Annan populär trädstruktur inkluderar men inte uttömmande B -Tree, B + – tree, R-Tree, Counted-B Tree, KD-träd (eller K- dimensionell BST), Beslutsträd (a variant av n-ary-träd), Markelträd, Fenwick-träd (eller binärt indexträd), Range Tree.

Svar

  • Mall som kod genom att skapa ett beroendeträd.

Ha nu med mig i 5 minuter för att förklara i detalj hur vi använde träd som datastruktur för att lösa vårt komplexa användningsfall.

För att förklara scenariot, låt oss ta ett litet exempel på att få data från ett API via tokenbaserad autentisering.

Så om du vill uppnå detta,

  • först får du användarnamnet, lösenordet och hyresgästinformationen och ringer API: et för att hämta tokenet.
  • Ring sedan det aktuella API: et med den hämtade token genom att skicka det i rubrikerna på begäran.

Nu är det här mycket enkelt scenario, men saker blir ganska komplexa när du måste köra en kedja av 10 API ”S, var och en beroende av varandra.

Det är här vi kom fram till detta beroendeträdsinriktning

Först måste vi bilda en mall så här

Nu efter detta bildar vi ett sådant beroende träd

Allt som definierats som $ {} innebar att det är beroende av en annan variabelutdata.

ResourceOps betyder API: er som ska köras

Så skapas beroendesträdet

  • Vi utvärderar parametrar som är oberoende och koppla dem till roten.
  • Vi kommer sedan till resursoperationer och förstår att det beror på värdena som är kopplade till rotnoden. Så vi tar bort dem från dem från roten och fäster dem sedan till en ny nod.
  • Samma sak kommer att göras för alla resursoperationer och output.

När vi skapat beroendeträdet går vi till bladnoden, kör den, kom sedan till föräldern med resultatet av bladnoden och sedan är den förälder och dess förälder tills vi når den övre noden.

När vi väl har nått den övre noden får vi resultatet och återvänder som ett http-framgångssvar.

Om det finns något fel i körningen, returnerar vi sedan felsvaret på ett läsbart sätt.

Jag tror inte att jag hade förklarat bit och bit av det, men jag vill bara lyfta fram hur vi löste ett verkligt problem med trädatastrukturen för dynamiska åtgärder som ska utföras utan att en utvecklare skriver någon kod.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *