SPEAKER 1: Dajmo ta rešitev poskusiti. Torej, vzemimo si oglejte, kaj naše Struct vozlišče bo izgledal. Tukaj vidimo, da bomo imeli Bool Beseda in vozlišče zvezda Struct Otroci oklepati abecedo. Torej prva stvar, ki jo morda sprašujete, Zakaj se abeceda hash opredeljena kot 27? No, ne pozabite, da bomo potrebovali da se ravnanje opuščaj, tako da se dogaja, da se nekoliko posebna Primer v celotnem programu. OK, zdaj se spominjam, kako Trie dejansko deluje. Recimo, da smo indeksiranje besedo mačke, potem iz korenin naše Trsta, bomo pogled na otroke matrika, in gremo pogledati Indeks, ki ustreza črko C. tako da bi indeks dva. Torej, glede na to, da nam bo dala novo vozlišče, nato pa se bomo delati iz tega vozlišča. Torej, glede na to vozlišče, smo še enkrat bo pogled na paleto otroke, in bomo pogled na indeks ničelni ustrezati A v mačka. Potem smo šli na to vozlišče, in glede na to, da je vozlišče, gremo pogled na indeks, ki ustreza na T. in se gibljejo na to vozlišče, Nazadnje smo popolnoma videti skozi našo besedo Cat, in zdaj Bool Beseda naj bi kazali, ali ta dana beseda je pravzaprav beseda. Torej, zakaj potrebujemo to poseben primer? No, kaj pa če je beseda katastrofa V našem slovarju, vendar Beseda mačka ne? Torej, je videti, da vidim, če je beseda mačka v našem slovarju, bomo Uspešno odmisliti indeksov C--T in doseči vozlišče, ampak to je Samo zato, ker katastrofa se je zgodilo ustvariti vozlišča na poti od C-A-T vse Tako na koncu besede. Torej je Bool Beseda uporablja navesti, ali To posebno mesto dejansko označuje besedo. Vse je v redu, tako da zdaj, da vemo, kaj Trie bo videti, pa si poglejmo v funkciji obremenitve. Torej obremenitev se bo vrnil bool Za ugotovitev, ali smo uspešno ali neuspešno naložen slovar in To se bo slovar ki jih želimo naložiti. Torej prva stvar, bomo storiti je odprt do tega slovarja za branje. Moramo zagotoviti, nismo ne, tako da, če slovarju ni bilo uspešno odprta, se bo vrnil Ne, v tem primeru bomo vrne False. Vendar ob predpostavki, da je uspešno odprt, potem lahko dejansko prebral s pomočjo slovarja. Torej prva stvar, ki jo bomo želite storiti, je, moramo to Globalna spremenljivka korenina. Zdaj, korenina se bo vozlišče zvezda. To je vrh naše Trsta, da smo bodo ponavljanjem skozi. Torej prva stvar, ki jo boste želeli, da storiti je rezervirati pomnilnika za naše korenine. Opazimo, da smo s pomočjo Calloc funkcija, ki je v bistvu enak kot funkcije malloc, razen, da je zagotovljeno, da se vrnete nekaj, kar je popolnoma nulo. Torej, če smo uporabili malloc, bi morali iti skozi vse napotke v našem vozlišče in poskrbite, da oni so vsi null. Tako da bo Calloc naredil za nas. Zdaj, tako kot malloc, moramo narediti zagotoviti, da dodelitev je dejansko uspešna. Če je ta vrnil nič, potem smo morali zapreti naše slovar datoteko in vrne False. Torej, ob predpostavki, da je porazdelitev uspešna, bomo uporabili vozlišča zvezda kurzor za ponovitev preko našega Trsta. Torej, naša korenina nikoli ne bo spremenilo, ampak bomo uporabili kurzor na dejansko šel od vozlišča do vozlišča. Vse je v redu, tako da v to zanko, smo branje skozi slovarju datoteko in smo ga uporabljate na fgetc. Torej fgetc se dogaja, da zgrabite single lik iz spisa. Bomo še naprej vzbujajoči znakov, medtem ko mi ne dosežejo konec datoteke, tako da so dva primera, ki jih moramo obvladovati. Prvič, če ni bilo znakov Nova linija, tako da vemo, če je bil nov linijo, potem bomo kmalu premakniti na novo besedo. Vendar ob predpostavki, da ni bilo novo linijo, nato pa Tukaj smo želeli ugotoviti, Indeks bomo indeksa v v matriki Otroci, ki smo pogledal prej. Torej, kot sem rekel prej, moramo Poseben primer opuščaj. Opazili smo, da uporabljate trikomponentne operaterja tukaj, tako da gremo, da se glasi to, kot če znak beremo v bilo opuščaj, potem pa gremo na nastavite indeks enak abecedi minusom 1, ki bo indeks 26. Drugega, če ne bi bilo opuščaj, potem bomo nastavili indeks enako c minus. Torej, se spomnite nazaj od prejšnjih p sklopov, c minus se dogaja, da nam abecedni položaj c, tako da, če c je pismo, bo to nam indeks zero. Za črko B, bi dal us indeks 1, in tako naprej. Torej, to nam daje indeksa na Otroci niz, ki ga želimo. Zdaj, če je ta indeks trenutno null leta matrika Otroci, to pomeni, da vozlišče trenutno ne obstaja od da je pot, zato moramo nameniti vozlišče za to pot. To je tisto, kar delamo tukaj. Torej bomo spet uporabite Calloc delujejo tako, da nimamo nič od vseh kazalcev, in mi, še enkrat, morate preveriti, da Calloc ni propadel. Če Calloc pa ne, potem moramo raztovarjanje vse, zatiskati slovar, in vrne False. Torej, ob predpostavki, da ne bo propadel, potem To bo ustvarilo nov otroka za nas, in potem bomo šli na tega otroka. Naša kazalec se bo Ponovil do tega otroka. Zdaj, če to ni bilo null na začetku, Nato kazalec lahko samo Ponovil do tega otroka, ne da bi dejansko ob dodeliti ničesar. To je primer, ko sva se prvič zgodilo dodeliti besedo mačka, in to pomeni, da ko gremo dodeliti katastrofa, nam ni treba ustvariti vozlišča za C-A-T znova. Že obstajajo. OK, kaj je to drugega? To je pogoj, kjer je c backslash n, kjer je c nova linija. To pomeni, da smo uspešno končan besedo. Zdaj, kaj želimo narediti, ko smo Uspešno zaključen besedo? Bomo uporabili to besedo polje znotraj našega Struct vozlišča. Želimo določiti, da Res je, da označuje, da vozlišče označuje Uspešno beseda dejansko beseda. Zdaj pa nastavite, da True. Želimo ponastaviti našo kazalec na točko na začetku Trsta znova. In končno, prirastek našo zbirko velikost, saj smo našli drugo besedo. Vse je v redu, tako da bomo vztrajati početje da je branje v karakterju, ki ga lik, gradnji novih vozlišč v naša Trie in za vsako besedo v slovar, dokler ne bomo na koncu dosegli c enak EOF, v tem primeru smo zlomiti iz spisa. Sedaj je na voljo v dveh primerih pod ki bi lahko zadeli smo EOF. Prvi je, če je prišlo do napake branje iz datoteke, tako da če ne bi bilo napaka, moramo storiti tipično razkladanje vse, zaprite datoteko vrne False. Ob predpostavki, da ni bilo napak, da samo pomeni, da smo dejansko prizadela konec datoteka, v tem primeru smo blizu datoteko in vrne True, saj smo uspešno naložen slovar v naši Trsta. V redu, zdaj pa odjaviti Check. Če pogledamo na Preverite funkcije, vidimo, Preverite, da se bo vrnil bool. Vrne True, če je to beseda, ki je prevalili je v našem Trsta. Vrne False drugače. Torej, kako bomo ugotoviti, ali ta beseda je v našem Trsta? Vidimo tukaj, da, tako kot prej, bomo uporabili kazalec za ponovitev preko našega Trsta. Zdaj, tukaj, bomo Ponovil nad našo celotno besedo. Torej ponavljanjem nad besedo smo opravili, bomo ugotoviti, indeks v paleto Otroci, ki ustreza besedo držala i. Torej, to bo videti natanko tako kot Obremenitev, kjer, če beseda nosilec i opuščaj, nato pa želimo uporabiti indeks abeceda minus 1, ker smo ugotovili, da je, če gremo Shranjevanje opuščaj. Sicer bomo uporabili tolower Beseda nosilec i. Torej, ne pozabite, da je beseda ima lahko samovoljno kapitalizacija, in tako smo želijo zagotoviti, da bomo s pomočjo male črke različica stvari. In nato odšteje od te male črke da, še enkrat, da nam po abecednem vrstnem redu te značaja. Tako, da se dogaja, da je naš indeks v matriki otrok. In zdaj, če je indeks v Otroci Niz je nična, to pomeni, da ne deluje več ponavljanjem navzdol našega Trsta. Če je temu tako, ta beseda ne more možnosti, da v naši Trsta, saj če so bili, bi to pomenilo, da bi bilo Pot do te besede, in bi jo nikoli ne naletijo na null. Tako srečujejo null vrnemo False. Besede ni v slovarju. Če ne bi bilo nič, potem pa gremo na naprej ponavljanjem, zato bomo posodobiti svoj kazalec, da kaže, da je Zlasti vozlišče v tem indeksu. Tako smo vztrajati početje, ki v celotnem celotna beseda. Ob predpostavki, da ne bomo nikoli udaril null, da sredstva smo lahko dobili skozi celoten svet in najti vozlišče v naši Trsta, vendar nismo še čisto končano. Mi ne želimo le vrnitev True. Želimo, da se vrnete kazalec napake besedo saj se spomnite spet, če mačka ni v našem slovarju, in katastrofa je, potem bomo uspešno priti skozi beseda mačka, ampak kazalec beseda bo False in ni res. Torej se bomo vrnili kazalec besedo, ki označuje ali je to vozlišče pravzaprav beseda, in da je za pregled. Torej, kaj je odjaviti Size. Torej Velikost se bo precej enostavno saj se spomnite na obremenitve, smo povečevanje obsega slovarja za vsaka beseda, ki jo srečamo. Torej Velikost je le, da bo vrnitev slovar velikost, in to je to. Vse je v redu, tako da na koncu imamo raztovoriti. Torej raztovoriti, bomo uporabili rekurzivna funkcija dejansko storiti vse dela za nas, tako da naše delovanje se dogaja, da se imenuje razkladalec. Kaj je razkladalec storili? Vidimo tukaj, da razkladalec bo Ponovil skozi vse otroke na To zlasti vozlišča, in če je otrok vozlišče ni nič, potem pa gremo na raztovoriti vozlišče otrok. Torej, to se dogaja, da rekurzivno raztovarjanje vseh naših otrok. Ko smo prepričani, da so vsi naši otroci so raztovorili, nato pa smo Lahko se osvobodimo, tako razkladanje Sebe. Tako da bo to rekurzivno razkladanje Celoten Trie, in potem, ko je to narediti, lahko samo vrne True. Raztovoriti ne more izogniti, smo samo sprostitev stvari. Torej, ko smo končali sprostitev Vse, vrne True. In to je to. Moje ime je Rob, in to je bil [neslišno].