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].