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