>> SPEAKER 1: Ejjew nagħtu din is-soluzzjoni jipprova.
Mela ejja tagħti ħarsa lejn dak tagħna Node Struct se look like.
Hawnhekk, naraw aħna qed tmur biex ikollhom Bool Word u stilla node Istituzzjonjijiet
Tfal parentesi alfabett.
Allura l-ewwel ħaġa li inti jista 'jkun mintix, għaliex huwa hash alfabett definita bħala 27?
Ukoll, ftakar li aħna qed tmur għall-ħtieġa li għandu jittratta l-apostrophe, hekk
li għaddej biex tkun kemmxejn ta 'speċjali każ matul dan il-programm.
>> OK, issa, ftakar kif Trie attwalment xogħlijiet.
Ejja ngħidu aħna qed indiċjar-qtates kelma, imbagħad mill-għeruq ta 'Trie tagħna,
aħna qed tmur biex tħares lejn l-Tfal array, u aħna qed tmur biex tħares lejn il-
indiċi li tikkorrispondi għall-ittra C. Allura li jkun indiċi tnejn.
Allura peress li, li se tagħtina node ġdid, u mbagħad aħna ser
xogħol minn dak node.
>> Allura peress li node, aħna qed darb'oħra ser tħares lejn il-firxa Tfal,
u aħna qed tmur biex tħares lejn indiċi żero li jikkorrispondu għall-A fil-qtates.
Mela allura aħna qed tmur biex tmur f'dak node, u minħabba li node, aħna qed tmur
li tħares lejn l-indiċi li jikkorrispondi li T. U jimxu fuq dak node,
fl-aħħarnett, aħna għandna kompletament ħarsu permezz Cat kelma tagħna, u issa bool
Word suppost jindikaw jekk din il-kelma mogħtija hija attwalment kelma.
>> Allura għaliex għandna bżonn li każ speċjali?
Ukoll, dak li jekk il-katastrofi kelma huwa dizzjunarju tagħna, iżda
il-qattus kelma mhix?
Allura meta tħares 'tara jekk l-qattus kelma hija dizzjunarju tagħna, aħna qed tmur biex
tħares b'suċċess permezz tal-indiċi C-A-T u jilħqu node, iżda li
biss minħabba katastrofi ġara joħolqu lymph fuq il-mod mill-C-A-T kollu
il-mod sa l-aħħar tal-kelma.
Allura bool Word tintuża jindikaw jekk dan il-post partikolari fil-fatt
jindika kelma.
>> Kull dritt, hekk issa li nafu x'inhi Trie se look like, ejja nħarsu
fil-funzjoni tat-Tagħbija.
Allura Tagħbija se jirritornaw bool għal kemm aħna b'suċċess jew
dizzjunarju mingħajr suċċess mgħobbija u dan se jkun l-dizzjunarju
li rridu tagħbija.
Allura l-ewwel ħaġa li aħna qed tmur biex tagħmel hu miftuħ up li dizzjunarju għall-qari.
Irridu niżguraw li ma jonqsu, hekk jekk il-dizzjunarju ma kienx
miftuħa b'suċċess, din se terġa 'lura Le, f'liema każ aħna qed tmur biex
ritorn foloz.
Iżda jekk wieħed jassumi li dan b'suċċess miftuħa, allura nistgħu fil-fatt taqra
permezz tal-dizzjunarju.
>> Allura l-ewwel ħaġa li aħna qed tmur biex trid tagħmel hu li għandna dan
root varjabbli globali.
Issa, għeruq se tkun stilla node.
Hu l-quċċata ta 'Trie tagħna li aħna qed ser jiġu mtennija permezz.
Allura l-ewwel ħaġa li aħna qed tmur jridu tagħmel huwa talloka memorja għall-għeruq tagħna.
>> Avviż li aħna qed tuża l-Calloc funzjoni, li huwa bażikament l-istess
bħala l-funzjoni malloc, ħlief huwa garantit li jirritornaw xi ħaġa li hija
kompletament zeroed out.
Allura jekk aħna użati malloc, għandna bżonn biex jmorru kollha permezz ta 'l-pointers fil tagħna
node u kun żgur li dawn qed kollha null.
Allura Calloc se tagħmel dan għalina.
>> Issa, bħad malloc, hemm bżonn li nagħmlu żgur li l-allokazzjoni fil-fatt
suċċess.
Jekk dan lura null, allura aħna bżonn li tagħlaq dizzjunarju tagħna
fajl u r-ritorn foloz.
Allura jekk wieħed jassumi l-allokazzjoni kienet suċċess, aħna qed tmur biex tuża node
istilla Cursor li jtenni permezz Trie tagħna.
Allura għeruq tagħna qatt se jibdlu, imma aħna qed tmur għall-użu Cursor biex
fil-fatt imorru minn node biex node.
>> Kull dritt, hekk f'dan Għal loop, aħna qari permezz-fajl dizzjunarju,
u aħna qed jużaw fil fgetc.
Allura fgetc se grab wieħed karattru mill-fajl.
Aħna ser tkompli ħtif karattri filwaqt li aħna ma jilħqu l-
tmiem tal-fajl, u għalhekk hemm żewġ każijiet għandna bżonn biex jimmaniġġaw.
L-ewwel, jekk il-karattru ma kienx linja l-ġdida, hekk nafu jekk kienx ġdida
linja, allura aħna qed waslu biex jimxu fuq kelma ġdida.
Iżda jekk wieħed jassumi li ma kienx linja ġdida, allura hawn, irridu insemmu l-
indiċi aħna qed tmur għall-indiċi fi fil-firxa Tfal li
ħarisna lejn qabel.
>> So bħal I intqal qabel, għandna bżonn li każ speċjali tal-apostrophe.
Avviż aħna qed jużaw l-operatur ternarji hawn, hekk aħna qed tmur biex taqra
dan daqslikieku l-karattru naqraw fil kienet apostrophe, allura aħna qed tmur biex
stabbiliti indiċi ugwali għal minus alfabett 1, li se tkun l-indiċi 26.
Else, jekk ma kienx apostrophe, allura aħna qed tmur biex jistabbilixxu l-indiċi
daqs c nieqes.
Mela ftakar lura minn settijiet p preċedenti, c nieqes se tagħtina l-
pożizzjoni alfabetika tal c, hekk jekk c hija l-ittra A, dan se
agħtina indiċi żero.
Għall-ittra B, dan jagħti lilna l-indiċi 1, u l-bqija.
>> Allura dan jagħtina l-indiċi fil- Tfal array li rridu.
Issa, jekk dan l-indiċi bħalissa null l-array Tfal, dan ifisser li
a node ma jeżistix bħalissa minn f'din it-triq, għalhekk għandna bżonn li jallokaw
node għal dik it-triq.
Dak hu li aħna nagħmlu hawnhekk.
Allura aħna qed tmur biex, għal darb'oħra, uża l-Calloc funzjoni hekk li aħna ma jkollhomx
għal żero out kollha tal-pointers, u aħna, għal darb'oħra, bżonn li jiċċekkja li Calloc
ma naqasx.
Jekk Calloc ma jonqsu, allura għandna bżonn li jħottu kollox, qrib tagħna
dizzjunarju, u r-ritorn foloz.
>> Allura jekk wieħed jassumi li ma ifallu, din se toħloq tifel ġdida għalina,
u allura aħna se jmorru għal dak tat-tfal.
Cursor tagħna se jtenni stabbiliti għal dak it-tifel.
Issa, jekk dan ma kienx null biex jibdew, allura l-cursor tista 'biss ittenni
stabbiliti għal dak it-tifel mingħajr ma attwalment jkollu jalloka xejn.
Dan huwa l-każ fejn aħna l-ewwel li ġara li talloka l-qattus kelma, u
dan ifisser li meta immorru biex jallokaw katastrofi, aħna ma bżonn li jinħoloq
nodes għal C-A-T mill-ġdid.
Huma diġà jeżistu.
>> OK, sabiex dak li huwa dan Else?
Din hija l-kundizzjoni fejn c kienet backslash n, fejn c kienet linja ġdida.
Dan ifisser li aħna rnexxielna temm kelma.
Issa, dak li rridu nagħmlu meta aħna temmew kelma?
Aħna ser jużaw dan il-qasam kelma ġewwa tal node Istituzzjonjijiet tagħna.
>> Aħna rridu li jistabbilixxu li biex Veru, b'tali mod li jindika li dan node jindika
kelma suċċess kelma attwali.
Issa, tistabbilixxi li biex True.
Irridu reset cursor tagħna għall-punt għall-bidu tal-Trie darb'oħra.
U fl-aħħarnett, inkrement dizzjunarju tagħna daqs peress li sibna kelma oħra.
>> Kull dritt, hekk aħna qed tmur biex iżommu tagħmel li, qari fil-karattru minn
karattru, kostruzzjoni lymph ġodda Trie tagħna u għal kull kelma fil-
dizzjunarju, sakemm aħna finalment tilħaq c ugwali EOF, f'liema każ, aħna break
barra mill-fajl.
Issa, hemm żewġ każijiet taħt li aħna jista 'jkollha hit EOF.
L-ewwel huwa jekk kien hemm żball qari mill-fajl, hekk jekk kienx hemm
żball, rridu nagħmlu l-tipiċi jħottu kollox, jagħlaq il-fajl,
ritorn foloz.
Jekk wieħed jassumi li ma kien hemm żball, dak ifisser biss għandna attwalment laqat il-aħħar ta '
il-fajl, f'liema każ, aħna qrib il- proċess u li terġa Veru peress li aħna
mgħobbija b'suċċess-dizzjunarju fis Trie tagħna.
>> Dritt, hekk issa ejja kollha check out Iċċekkja.
Ħarsa lejn il-funzjoni Check, naraw Dak il-kontroll se jirritornaw bool.
Dan jirritorna Veru jekk din il-kelma li huwa jiġu mgħoddija huwa Trie tagħna.
Dan jirritorna False mod ieħor.
>> Allura kif huma aħna se tiddetermina jekk din il-kelma hija fil Trie tagħna?
Naraw hawnhekk li, bħal qabel, aħna qed tmur biex jużaw cursor biex jtenni
permezz Trie tagħna.
Issa, hawnhekk, aħna qed tmur biex jtenni fuq kelma tagħna kollu.
Allura mtennija fuq il-kelma aħna għaddiet, aħna qed tmur biex tiddetermina l-
indiċi fil-firxa Tfal li jikkorrispondi għall-kelma bracket i.
Allura dan se tfittex eżattament bħal Tagħbija, fejn jekk i bracket kelma hija
apostrophe, allura irridu li jużaw indiċi alfabett minus 1 għaliex aħna determinati
li huwa fejn aħna qed tmur biex jaħżnu apostrophes.
>> Else aħna qed tmur għall-użu tolower bracket kelma i.
Mela ftakar din il-kelma tista 'jkollha arbitrarja kapitalizzazzjoni, u hekk aħna
jixtiequ jagħmlu ċert li aħna qed jużaw verżjoni zghar ta 'affarijiet.
U mbagħad naqqas minn dak zghar a li, għal darb'oħra, tagħtina l-
pożizzjoni alfabetika ta 'dan il-karattru.
Allura li għaddej biex tkun indiċi tagħna fil-firxa Tfal.
>> U issa, jekk f'dak l-indiċi fil-Tfal array huwa null, dan ifisser li aħna
m'għadhomx jistgħu jkomplu jiġu mtennija down Trie tagħna.
Jekk dan huwa l-każ, din il-kelma ma tistax possibilment tkun Trie tagħna, peress li jekk dan
kienu, dan ikun ifisser se jkun hemm triq sa din il-kelma, u inti
qatt jiltaqgħu null.
Allura jiltaqgħu null, nerġgħu lura Foloz.
Il-kelma mhijiex fid-dizzjunarju.
Jekk ma jkunx null, allura aħna qed tmur biex tkompli mtennija, hekk aħna qed tmur
biex taġġorna cursor tagħna għall-punt għal dak partikolari node f'dak l-indiċi.
>> Allura aħna iżommu tagħmel li matul il-kelma kollu.
Jekk wieħed jassumi aħna qatt hit null, li l-mezzi konna kapaċi tikseb permezz tal-kollu
dinja u ssib node fil Trie tagħna, iżda aħna mhux qed pjuttost isir s'issa.
Aħna ma jridux biss jirritornaw True.
Aħna rridu li jirritornaw cursor kelma żball peress li, ftakar darb'oħra, jekk qattus mhuwiex
dizzjunarju tagħna u katastrofi huwa, allura aħna se jiksbu b'suċċess permezz
il-qattus kelma, imma kelma cursor se jkunu foloz u mhux Veru.
Allura aħna ritorn kelma cursor biex jindikaw jekk dan node huwa attwalment kelma,
u li hu għal kontroll.
>> Mela ejja check out Daqs.
Allura Daqs se tkun pjuttost faċli peress li, ftakar fil Tagħbija, aħna qed
inkrementazzjoni daqs dizzjunarju għal kull kelma li aħna jiltaqgħu.
Allura Daqs huwa biss se jirritorna daqs dizzjunarju, u thats it.
>> Kull dritt, hekk fl-aħħar, għandna jħottu.
Allura jħottu, aħna qed tmur biex tuża funzjoni jirrikorri għall-fatt jagħmlu kollha
tax-xogħol għalina, sabiex funzjoni tagħna se jiġu msejħa Unloader.
X'inhu Unloader se jagħmlu?
Naraw hawnhekk li Unloader se jtenni fuq kollha tat-tfal fil-
dan node partikolari, u jekk il-wild node ma huwiex null, allura aħna qed tmur biex
jħottu l-node tfal.
>> Allura dan se recursively jħottu kollha tat-tfal tagħna.
Ladarba aħna qed żgur li kollha tat-tfal tagħna ikunu mniżżla, allura aħna
jistgħu ħielsa lilna nfusna, hekk jħottu ourself.
Allura dan recursively se jħottu l- Trie kollu, u mbagħad darba li l-
jsir, nistgħu biss ritorn True.
Jħottu ma jistgħux jonqsu, aħna qed biss ħelsien affarijiet.
Allura ladarba aħna qed isir ħelsien kollox, ritorn True.
U thats it.
Jisimni Rob, u dan kien [inaudible].