>> SPIKA 1: Hebu kutoa hii ufumbuzi kujaribu.
Hivyo basi tuangalie nini yetu Struct node kuangalia kama.
Hapa, tunaona tunakwenda na Bool neno na nyota node Struct
Watoto mabano alfabeti.
Kitu hivyo kwanza unaweza kuwa anashangaa, kwa nini alfabeti hash hufafanuliwa kama 27?
Vizuri, kumbuka kwamba sisi ni kwenda haja ya kwa kuwa utunzaji apostrophe, hivyo
ambayo inaenda kuwa fulani maalum kesi katika mpango huu.
>> Sawa, sasa, kumbuka jinsi Trie kweli kazi.
Hebu sema sisi ni Indexing paka neno, kisha kutoka mizizi ya Trie yetu,
tunakwenda kuangalia watoto safu, na sisi ni kwenda kuangalia
index kwamba sambamba na barua C. Kwa hiyo itakuwa index mbili.
Hivyo kutokana na kwamba, hii itatupa node mpya, na kisha tutaweza
kazi na kwamba nodi.
>> Hivyo kutokana na kwamba node, tuko kwa mara nyingine tena kwenda kuangalia watoto safu,
na sisi ni kwenda kuangalia index zero yanahusiana na A katika paka.
Hivyo basi sisi ni kwenda kwa kuwa node, na kutokana na kwamba node, tunakwenda
kuangalia index kwamba sambamba kwa T. Na kuhamia kwenye kwamba node,
hatimaye, tuna kabisa inaonekana kupitia neno wetu Cat, na sasa bool
Neno zinatakiwa kuonyesha kama neno hili kutokana na ni kweli neno.
>> Hivyo kwa nini tunahitaji kuwa kesi maalum?
Naam, ni nini kama neno janga ni katika kamusi yetu, lakini
neno paka si?
Hivyo katika kuangalia ili kuona kama neno paka ni katika kamusi yetu, tunakwenda
mafanikio kuangalia njia fahirisi C-A-T na kufikia node, lakini hiyo ni
tu kwa sababu janga kilichotokea kwa kujenga nodes juu ya njia ya kutoka C-A-T wote
njia ya mwisho wa neno.
Hivyo bool neno hutumiwa kuonyesha kama eneo hili hasa kwa kweli
inaonyesha neno.
>> Yote ya haki, hivyo sasa kwamba sisi kujua nini a Trie ni kwenda kuangalia kama, hebu tuangalie
katika mzigo kazi.
Hivyo Load ni kwenda na kurudi bool kwa kama sisi mafanikio au
bila mafanikio kubeba kamusi na hii ni kwenda kuwa kamusi
kwamba tunataka kupakia.
Kitu hivyo kwanza tunakwenda kufanya ni wazi juu kwamba kamusi ajili ya kusoma.
Tuna kuhakikisha sisi hakuwa na kushindwa, hivyo kama kamusi hakuwa
mafanikio kufunguliwa, itakuwa kurudi No, katika kesi ambayo tunakwenda
kurudi uongo.
Lakini kuchukua kwamba ni mafanikio kufunguliwa, basi tunaweza kweli kusoma
kupitia dictionary.
>> Kitu hivyo kwanza tunakwenda wanataka kufanya ni sisi na hii
kimataifa variable mizizi.
Sasa, mzizi ni kwenda kuwa nyota wa nodi.
Ni juu ya Trie yetu kwamba sisi ni kwenda kuwa iterating kupitia.
Kitu hivyo kwanza tunakwenda kutaka kufanya ni kutenga kumbukumbu kwa ajili ya mizizi yetu.
>> Taarifa kwamba sisi ni kutumia Calloc kazi, ambayo ni sawa kimsingi
kama kazi malloc, ila ni uhakika wa kurudi kitu ambacho ni
kabisa alizungumzia zaidi hali ilivyo nje.
Hivyo kama sisi kutumika malloc, tunataka haja ya kwenda kwa njia zote za kuyatumia katika maisha yetu
node na kuhakikisha kwamba wao uko wote null.
Hivyo Calloc kufanya kwetu hilo.
>> Sasa, kama malloc, sisi haja ya kufanya kuhakikisha kwamba mgao wa kweli
mafanikio.
Kama hii akarudi null, kisha sisi haja ya karibu kamusi yetu
faili na kurudi uongo.
Hivyo kuchukua mgao ilikuwa mafanikio, sisi ni kwenda kutumia node
nyota Mshale iterate kupitia Trie yetu.
Hivyo mizizi yetu kamwe kwenda na mabadiliko, lakini sisi ni kwenda kutumia mshale
kweli kwenda na nodi ya nodi.
>> Haki ya wote, hivyo katika hii Kwa kitanzi, sisi ni kusoma kwa njia ya kamusi file,
na sisi ni kutumia katika fgetc.
Hivyo fgetc ni kwenda kunyakua moja tabia kutoka file.
Sisi ni kwenda kuendelea grabbing wahusika wakati sisi si kufikia
mwisho wa file, hivyo kuna kesi mbili sisi haja ya kushughulikia.
kwanza, kama tabia alikuwa si line mpya, hivyo sisi kujua kama ilikuwa mpya
line, kisha sisi ni juu ya kuendelea na neno jipya.
Lakini kuchukua haikuwa line mpya, kisha hapa, tunataka kufikiri
index tunakwenda index katika katika Watoto safu kwamba
sisi inaonekana katika kabla ya.
>> Hivyo kama nilivyosema hapo kabla, tunahitaji kesi maalum apostrophe.
Taarifa sisi ni kutumia operator ternary hapa, hivyo sisi ni kwenda kusoma
hii kama tabia ya sisi kusoma katika mara apostrophe, basi tunakwenda
kuweka index sawa na alfabeti minus 1, ambayo itakuwa index 26.
Mwingine, kama siyo apostrophe, kisha tunakwenda kuweka index
sawa na c minus a.
Basi kumbuka nyuma kutoka p seti ya awali, c minus a ni kwenda kutupa
nafasi herufi ya c, hivyo kama c ni barua A, dhamira hii ya
kutupa index sifuri.
Kwa barua B, ingekuwa kutoa sisi index 1, na kadhalika.
>> Hivyo hii inatupa index katika Watoto safu kwamba tunataka.
Sasa, kama ripoti hii kwa sasa ni null katika Watoto safu, hiyo ina maana kwamba
node haina sasa zipo kutoka njia hiyo, hivyo tunahitaji kutenga
node kwa njia hiyo.
Hiyo ni nini sisi kufanya hapa.
Hivyo sisi ni kwenda, tena, matumizi Calloc kazi ili hatuna
kwa sifuri nje ya kuyatumia, na sisi, tena, haja ya kuangalia kwamba Calloc
hakuwa na kushindwa.
Kama Calloc hakuwa kushindwa, basi tunahitaji ipakuliwe kila kitu, karibu yetu
kamusi, na kurudi uongo.
>> Hivyo kudhani kuwa hakuwa na kushindwa, kisha itajenga mtoto mpya kwa ajili yetu,
na kisha tutakwenda kwa mtoto.
Mshale yetu iterate chini ya kwamba mtoto.
Sasa, kama hii ilikuwa si null kwa kuanzia, kisha mshale unaweza tu iterate
chini ya kwamba mtoto bila ya kweli ya kuwa na kutenga kitu chochote.
Hii ni kesi ambapo sisi kwanza kilichotokea kutenga neno paka, na
hiyo ina maana wakati sisi kwenda kutenga janga, hatuna haja ya kuunda
nodes kwa C-A-T tena.
Wao tayari zipo.
>> OK, hivyo ni nini Else hii?
Hii ni hali ambapo c mara backslash n, ambapo c alikuwa mstari mpya.
Hii ina maana kwamba sisi kuwa na mafanikio kukamilika neno.
Sasa, je, tunataka kufanya wakati sisi mafanikio ya kumaliza neno?
Tunakwenda kutumia uwanja hii neno ndani ya Struct yetu nodi.
>> Tunataka kuweka kwamba kwa kweli, ili inaonyesha kwamba node hii inaonyesha
mafanikio neno neno halisi.
Sasa, kuweka kwamba kwa kweli.
Tunataka upya mshale yetu kwa uhakika mwanzo wa Trie tena.
Na hatimaye, nyongeza kamusi yetu ukubwa tangu sisi kupatikana neno mwingine.
>> Haki ya wote, hivyo sisi ni kwenda kuendelea kufanya kwamba, kusoma katika tabia kwa
tabia ya, ujenzi wa nodes mpya katika Trie yetu na kwa kila neno katika
kamusi, mpaka sisi hatimaye kufikia c sawa na EOF, katika kesi ambayo, sisi kuvunja
nje ya faili.
Sasa, kuna mambo mawili chini ya ambayo sisi tupate kuwa hit EOF.
kwanza ni kama kulikuwa na makosa kusoma kutoka file, hivyo kama kulikuwa na
makosa, tunahitaji kufanya kawaida kupakua kila kitu, karibu faili,
kurudi uongo.
Kutokana kulikuwa na si kosa, kwamba tu ina maana sisi kweli hit mwisho wa
file, katika kesi ambayo, sisi karibu faili na kurudi kweli tangu sisi
mafanikio kubeba kamusi ndani ya Trie yetu.
>> Yote ya haki, hivyo sasa hebu kuangalia nje Check.
Kuangalia Check kazi, tunaona kwamba Check ni kwenda na kurudi bool.
Kuirudisha kweli kama neno hili ni kupitishwa ni katika Trie yetu.
Kuirudisha uongo vinginevyo.
>> Hivyo ni jinsi sisi ni kwenda kuamua kama neno hili ni katika Trie yetu?
Tunaona hapa kwamba, kama kabla, tunakwenda kutumia mshale iterate
kupitia Trie yetu.
Sasa, hapa, tunakwenda iterate juu ya neno yetu yote.
Hivyo iterating juu ya neno sisi ni kupita, tunakwenda kuamua
index katika Watoto safu kwamba sambamba na neno bracket i.
Hivyo hii ni kwenda kuangalia hasa kama Mzigo, ambapo kama neno bracket i ni
apostrophe, basi tunataka kutumia index alfabeti minus 1 kwa sababu sisi kuamua
kwamba ni wapi tunakwenda kuhifadhi apostrophes.
>> Mwingine tunakwenda kutumia tolower neno bracket i.
Basi kumbuka neno ambayo yanaweza kuwa na holela mtaji, na hivyo sisi
unataka kuhakikisha kwamba sisi ni kutumia toleo lowercase ya mambo.
Na kisha Ondoa na kwamba lowercase a kwa mara nyingine tena, kutupa
nafasi herufi ya kwamba tabia.
Ili kwenda kuwa orodha yetu ndani ya Watoto safu.
>> Na sasa, kama kwamba index katika Watoto safu ni null, hiyo ina maana sisi
haiwezi kuendelea iterating chini Trie yetu.
Kama hiyo kesi, neno hili hawawezi uwezekano wa kuwa katika Trie yetu, kwani kama ni
walikuwa, ambayo ina maana kutakuwa na njia chini ya neno hilo, na wewe ungekuwa
kamwe kukutana null.
Hivyo kukutana null, sisi kurudi uongo.
neno ni si katika kamusi.
Kama si null, kisha tunakwenda kuendelea iterating, hivyo tunakwenda
update mshale yetu kwa uhakika na kwamba node hasa katika kwamba index.
>> Kwa hiyo sisi kuendelea kufanya kwamba katika neno nzima.
Kutokana sisi kamwe hit null, kwamba njia tulikuwa na uwezo wa kupata njia nzima
duniani na kutafuta node katika Trie yetu, lakini sisi siyo kabisa kufanyika bado.
Hatutaki tu kurudi kweli.
Tunataka kurudi mshale makosa neno tangu, kumbuka tena, kama paka ni si
katika kamusi yetu na janga ni, basi sisi mafanikio kupata njia
neno paka, lakini mshale neno itakuwa uongo na si kweli.
Hivyo sisi kurudi mshale neno zinaonyesha kama node hii ni kweli neno,
na hiyo ni kwa ajili ya kuangalia.
>> Hivyo hebu angalia nje Size.
Hivyo kawaida ni kwenda kuwa pretty rahisi tangu, kumbuka katika Load, sisi ni
incrementing kamusi kawaida kwa ajili ya kila neno kwamba sisi kukutana.
Hivyo ukubwa ni kwenda tu kurudi kamusi kawaida, na hiyo ni yake.
>> Haki ya wote, hivyo mwisho, tuna ipakuliwe.
Hivyo ipakuliwe, sisi ni kwenda kutumia kazi kujirudia kwa kweli kufanya yote
ya kazi kwa ajili yetu, hivyo kazi yetu ni kwenda kuitwa mpakuzi.
Je, ni mpakuzi kwenda kufanya nini?
Tunaona hapa kwamba mpakuzi ni kwenda iterate juu ya yote ya watoto katika
node fulani, na kama mtoto node ni si null, kisha tunakwenda
kupakua node mtoto.
>> Hivyo hii ni kwenda recursively kupakua watoto wetu wote.
Mara baada ya sisi ni kuhakikisha kwamba watoto wetu wote wamekuwa unloaded, basi sisi
inaweza bure sisi wenyewe, ili kupakua wenyewe.
Hivyo hii itakuwa recursively kupakua nzima Trie, na kisha mara moja kwamba
kufanyika, tunaweza tu kurudi kweli.
Ipakuliwe hawezi kushindwa, sisi ni tu kumkomboa mambo.
Hivyo mara moja sisi ni kosa kumkomboa kila kitu, kurudi kweli.
Na hiyo ni yake.
Jina langu ni Rob, na hii mara [inaudible].