SPEAKER 1: Anname see lahendus proovida. Võtame pilk meie Struct sõlme välja näeb. Siin näeme me lähed on Bool Word ja Struct sõlme star Laste ümbritsevad tähestikku. Nii et esimene asi, mida sa võib olla ei tea, miks tähestik hash defineeritud 27? Noh, pea meeles, et me peame tuleb käitlemise ülakoma, nii et see saab olema mõnevõrra eriline juhul kogu programmi. OK, nüüd, mäletan, kuidas Trie tegelikult toimib. Oletame, et me indekseerimise sõna kassid, siis juur meie Trie, me vaatame Lapsed massiiv, ja me ei kavatse vaadata indeks, mis vastab kirjale C. Nii et oleks indeks kaks. Seega, arvestades, et see annab meile uus sõlm, ja siis me tööd, et sõlme. Seega, arvestades, et sõlm, me oleme taas lähen vaatama Lapsed massiiv, ja me ei kavatse vaadata indeks nulli vastama kassi. Siis me läheme selle sõlme ning arvestades, et sõlm, me pilk indeks, mis vastab T. ja liigub edasi, et sõlm, Lõpuks oleme täiesti vaadanud läbi meie sõna Cat ja nüüd Bool Word peaks näitama, kas see antud sõna on tegelikult sõna. Nii et miks meil seda vaja on erijuhtum? Noh, mis siis, kui sõna katastroof on meie sõnastik, kuid sõna kass ei ole? Nii vaadates näha, kui sõna kass meie sõnastik, me läheme edukalt läbi vaatama indeksid C-A-T ja jõuda sõlme, kuid see on ainult sellepärast, et katastroof juhtus luua sõlmede tee C-A-T kõik viis lõpuks sõna. Nii Bool sõna kasutatakse näitavad, kas see konkreetne asukoht tegelikult näitab sõna. Olgu, nüüd, kui me teame, mida Trie läheb nägema, vaatame koormusel funktsioon. Nii Load läheb tagasi Bool jaoks kas õnnestus või edutult koormatud sõnastik ja see saab olema sõnastik et me tahame last. Nii et esimene asi, mida me teeme, on avatud up, et sõnastik lugemiseks. Me peame tagama, et me ei suuda, nii et kui sõnastik ei olnud avasid, siis pöördutakse Ei, sel juhul me ei kavatse tagasi false. Kuid kui eeldada, et see edukalt avatud, siis võib tegelikult lugeda läbi sõnastik. Nii et esimene asi, mida me ei kavatse tahame teha, on meil see globaalse muutuja root. Nüüd, root saab olema sõlme star. See on top meie Trie et me oleme kavatse iterating kaudu. Nii et esimene asi, mida me tahame vaja on mälu eraldada meie root. Pange tähele, et me kasutame Calloc funktsioon, mis on põhimõtteliselt sama kui malloc funktsioon, välja arvatud see tagatud tagasi midagi, mis on täiesti nullida välja. Nii et kui me kasutasime malloc, meil oleks vaja läbima kõik suunanäitajaks meie sõlm ja veenduge, et nad on kõik null. Nii Calloc teeb seda meie eest. Nüüd, just nagu malloc, peame Veenduge, et jaotus on tegelikult edukas. Kui see tagastatakse null, siis vaja sulgeda meie sõnastik faili ja tagasi false. Seega eeldades, et eraldist edukas, me ei kavatse kasutada sõlme star Cursor itereerima meie Trie. Nii et meie root ei saa kunagi muuta, kuid me ei kavatse kasutada Cursor'iga tegelikult lähevad sõlme sõlme. Olgu, selle jaoks loop, oleme lugedes sõnastik faili ja me kasutame at fgetc. Nii fgetc läheb haarata ühe tegelasele faili. Me läheme edasi haarates märki, kui me ei jõua faili lõppu, seega on kahel juhul peame hakkama. Esimene, kui märk ei uus liin, nii et me teame, et see oli uus line, siis me parasjagu liikuda edasi uue sõna. Aga isegi kui see ei olnud uue raudteeliini, siis siin, me tahame teada, index me indeks in the Children massiivi me vaatasime enne. Nii nagu ma enne ütlesin, on meil vaja erijuhtum ülakoma. Pange tähele, me kasutame ternaarse operaator siin, nii et me ei kavatse lugeda see justkui iseloomu loeme oli ülakomaga, siis me läheme määrata indeks on tähestik miinus 1, mis on indeks 26. Sest kui ta ei ülakoma, siis me ei kavatse seada indeks võrdub c miinus. Seega pidage meeles, tagasi eelmine p komplekti, c miinus läheb meile tähestiku positsiooni c, nii et kui c on kirjas, siis see meile indeks null. Tähe B, see annaks us indeks 1, ja nii edasi. Nii et see annab meile indeks Laste massiiv, mida me tahame. Nüüd, kui see indeks on praegu null sisse Laste massiiv, mis tähendab, et sõlme ei eksisteeri alates et tee, nii et me peame eraldama sõlm, mis teed. See, mida me siin teeme. Nii et me läheme jälle kasutada Calloc funktsioon, nii et meil ei ole nulli viia kõiki vihjeid ja me, jälle on vaja kontrollida, et Calloc ei suuda. Kui Calloc ei suuda, siis on meil vaja lossimiseks kõike, sulgeda sõnastikku ja tagasi false. Seega eeldades, et ta ei ole, siis see loob uue lapse juures, ja siis me läheme, et laps. Meie kursor itereerib alla, et laps. Nüüd, kui see ei ole null alustada, siis kursori lihtsalt kinnitada, alla, et laps ilma tegelikult võttes eraldada midagi. Seda juhul, kui me esimest korda juhtus eraldada sõna kass, ja see tähendab, et kui me läheme eraldada katastroof, me ei pea looma sõlmpunktid C--T uuesti. Nad on juba olemas. OK, siis on see teine? See on seisund, kus c on kurakriips n, kus c on uus liin. See tähendab, et meil on edukalt lõpule sõna. Nüüd, mida me tahame teha, kui me edukalt lõpule sõna? Me ei kavatse kasutada seda sõna valdkonnas sees meie Struct sõlme. Me tahame, et määrata, et kuni Tõsi, nii et näitab, et seda sõlme näitab edukas sõna tegelik sõna. Nüüd sätestatud, et True. Me tahame taastada oma kursor punkti Lisa alguses Trie uuesti. Ja lõpuks, juurdekasvu meie sõnastik suurus alates leidsime mõni muu sõna. Olgu, me ei kavatse seda enam teha et lugedes sümbol iseloomu, ehitades tippe meie Trie ja iga sõna sõnastik, kuni me lõpuks jõuda c võrdub EOF, mille puhul me murda välja faili. Nüüd on kaks pooleliolevad mis meil oleks tabanud EOF. Esimene neist on, kui seal oli viga lugemine fail, nii et kui seal oli viga, mida me peame tegema tüüpiline lossimiseks kõike, sulgege fail, tagasi false. Eeldades, ei olnud viga, et lihtsalt tähendab, et me tegelikult tabas lõpuks fail, mille puhul me sulgeda faili ja tagastab True, sest me edukalt laaditud sõnastik meie Trie. Olgu, nüüd lähme vaadake Check. Vaadates kontrolli funktsioon, näeme See kontroll läheb tagasi Bool. Ta naaseb tõsi, kui see sõna, mis ta on möödutakse on meie Trie. Ta naaseb False teisiti. Niisiis, kuidas me saame kindlaks teha, kas see sõna on meie Trie? Me näeme siin, et nagu varem, Me ei kavatse kasutada kursori itereerima meie Trie. Nüüd, siin, me läheme itereerima üle kogu meie sõna. Nii iterating üle sõna me oleme möödas, me kindlaks indeks Laste massiivi vastab sõna sulg i. Nii see läheb välja täpselt nagu Load, kus juhul, kui sõna sulg i on ülakomaga, siis tahame kasutada indeks tähestiku miinus 1, sest me kindlaks et on, kuhu me läheme salvestada ülakomad. Else me ei kavatse kasutada tolower Sõna sulg i. Seega pidage meeles, et sõna võib olla meelevaldne kapitalisatsiooni, ja nii me soovite veenduda, et me kasutame väiketähed versiooni asju. Ja siis lahutad et väiketähed et jälle meile tähestiku seisukoht selle iseloomu. Nii et see saab olema meie indeks arvesse Laste massiivi. Ja nüüd, kui see indeks Lapsed massiiv on null, mis tähendab, et me ei saa enam jätkata iterating alla meie Trie. Kui see on nii, see sõna ei saa võib-olla on meie Trie, sest kui see aastal, mis tähendab, et oleks tee alla, et sõna, ja siis oleks kunagi tekib null. Nii tekib null, siis tagastab false. Sõna ei ole sõnastikus. Kui see ei oleks null, siis me läheme jätkama iterating, et me läheme uuendada oma kursor juhtida selle eriti sõlme sel indeks. Nii me edasi teha kogu kogu sõna. Eeldades, et me ei tabanud null, see tähendab me saime läbi kogu maailma ja leida sõlme meie Trie, kuid me ei ole päris valmis veel. Me ei taha lihtsalt tagasi True. Tahame tagasi kursori viga sõna sest mäletan veel, kui kass ei ole meie sõnastik ja katastroof on siis me edukalt läbi saama sõna kass, kuid kursor sõna on vale ja ei vasta tõele. Nii me tagasi kursor tähistavat sõna kas see sõlm on tegelikult sõna, ja see on seda kontrollida. Nii Vaatame Size. Nii suurus saab olema üsna lihtne sest mäletan Load, me oleme incrementing sõnastik suurus Iga sõna, mida me kohtame. Nii Suurus on lihtsalt läheb tagasi sõnastiku suurus ja see on kõik. Olgu, lõpuks on meil maha laadida. Nii mahalaadimine, me ei kavatse kasutada rekursiivne funktsioon tegelikult teha kõik töö meie eest, et meie ülesanne läheb nimega Unloader. Mida Unloader teha kavatsed? Me näeme siin, et Unloader läheb Käi kõik lapsed Selle konkreetse sõlme, ning kui laps sõlm ei ole null, siis me läheme lossimiseks laps sõlme. Nii see läheb rekursiivselt lossimiseks kõik meie lapsed. Kui oleme kindlad, et kõik meie lapsed on maha laaditud, siis me saab tasuta ise, nii lossimiseks paigaldada. Nii et see on rekursiivselt mahalaadimiseks kogu Trie, ja siis kui see on tehtud, saame lihtsalt tagasi True. Sulgeda ei saa jätta, et me oleme lihtsalt vabastades asju. Nii et kui me teinud vabastades kõik, tagastab True. Ja ongi kõik. Minu nimi on Rob ja see oli [kuuldamatu].