HOPARLÖR 1: Gəlin verək Bu həll bir cəhd. Belə ki, nə bizim nəzər salaq Struct node kimi görünür. Burada, biz olacaq bax Bool Word və Struct node ulduz Uşaqlar əlifba sıraya. Belə ki, ilk şey merak bilər niyə əlifba hash 27 kimi müəyyən olunur? Yaxşı, biz lazım olacaq ki, xatırlayıram apostrof user, belə etmək ki, bir xüsusi qədər olacaq Bu proqram boyunca halda. OK, indi xatırlayıram necə Trie həqiqətən işləyir. Biz sözü pişik indeksasiyası etdiyiniz deyirlər, sonra bizim Trie kökündən, Biz Uşaqlar baxmaq olacaq array, və biz baxmaq olacaq Məktubda uyğun index C. Belə ki, index iki olardı. Belə ki, bizə verəcək verilir yeni node, sonra biz will ki node çalışır. Belə ki node verilmiş, biz bir daha istəyirik Uşaq array baxmaq üçün gedir, və biz index sıfır baxmaq olacaq pişik A uyğun. Beləliklə biz ki node getmək olacaq, ki node verilmiş, gedirik uyğun indeksi baxmaq T. Və node hərəkət üçün nəhayət, biz tamamilə baxdı Bizim söz Cat vasitəsilə və indi Bool Word olub-olmadığını göstərir ehtimal edilir Bu söz əslində bir söz. Belə ki, niyə biz xüsusi halda lazımdır? Yaxşı, nə sözü fəlakət bizim lüğət, lakin sözü pişik deyil? Belə ki, söz pişik olmadığını görmek üçün axtarır bizim lüğət, biz olacaq uğurla göstəriciləri nəzərdən C-A-T və bir node çatmaq, lakin var fəlakət baş yalnız çünki C-A-T yolunda qovşaqlarının yaratmaq bütün Sözün sonuna yol. Belə ki, Bool Word olub göstərir istifadə olunur bu yer həqiqətən bir söz göstərir. Bütün hüquqlar, belə ki, indi biz bilirik ki, nə Trie nin baxaq kimi baxmaq gedir Yük funksiyası. Belə ki, Load bir Bool qayıtmaq üçün gedir olub biz uğurla və ya uğursuz dolu lüğət və Bu lüğət olacaq biz yüklemek üçün istəyirəm ki,. Biz nə olacaq, belə ki, ilk şey açıqdır oxu üçün lüğət up. Biz uğursuz etməyib əmin etmək lazımdır, belə lüğət deyil, əgər uğurla açıldı, o qayıdacaq Xeyr, hansı halda biz olacaq Asma qayıtmaq. Amma hərfinin uğurla açdı, sonra biz, həqiqətən oxuya bilərsiniz Lüğət vasitəsilə. Biz olacaq Belə ki, ilk şey etmək istəyirəm ki, biz bu var qlobal dəyişən kök. İndi, kök bir node ulduz olacaq. Biz istəyirik ki, bizim Trie üst var vasitəsilə iterating olacaq. Biz istəyirik olacaq Belə ki, ilk şey bunu bizim kök üçün yaddaş ayrılması deyil. Biz calloc istifadə edirik ki, görürsünüz əsasən eyni olan funksiyası, Bu Malloc funksiyası kimi, başqa bu ki, bir şey geri zəmanət tamamilə həyata zeroed. Biz malloc istifadə əgər Belə ki, biz lazımdır olan göstəricilər bütün vasitəsilə getmək bizim node və əmin olun onlar bütün null istəyirik. Belə ki, calloc bizim üçün bunu edəcək. İndi, yalnız malloc kimi, biz etmək lazımdır ayrılması həqiqətən əmin müvəffəqiyyətli. Bu null döndü, onda biz bizim lüğət bağlamaq lazımdır fayl və False qayıtmaq. Belə ki, ayrılması fərz uğurlu, biz bir node istifadə etmək olacaq təkrarlamaq Kursor ulduz bizim Trie vasitəsilə. Belə ki, bizim kök dəyişdirmək üçün gedir heç, lakin biz Kursor istifadə etmək olacaq həqiqətən node node getmək. Bütün hüquqlar, belə ki, bu loop üçün, biz , lüğət faylı vasitəsilə oxu və biz fgetc da istifadə edirik. Belə ki, fgetc bir qamarlamaq üçün gedir fayl character. Biz qənimətçilik davam edirik simvol biz çata bilməyən isə fayl başa, belə var biz idarə etmək üçün lazım olan iki hallarda. Ilk, karakter deyil, əgər bir bir yeni idi əgər yeni xətt, biz bilirik line, sonra biz üzrəyik yeni bir söz keçin. Amma sonra, yeni bir xətt idi fərz burada, biz anlamaq istəyirəm index biz daxil index olacaq Uşaqların array ki, biz əvvəl baxdı. Mən əvvəl bildirib, belə ki, kimi, biz lazım xüsusi halda apostrof. Biz ternary operator istifadə etdiyiniz bildiriş burada, belə ki, biz oxumaq olacaq bu biz oxumaq xarakter kimi bir apostrof, sonra biz olacaq əlifba minus bərabər index müəyyən 1, olan index 26 olacaq. Başqa, bu apostrof deyil, əgər, sonra biz index müəyyən olacaq c minus a bərabərdir. Belə ki, geri əvvəlki p dəstləri xatırlayıram, c minus bir bizə vermək niyyətindədir əlifba c mövqeyi, əgər c məktub A, bu iradə bizə index sıfır verir. Hərfi B üçün, verəcək belə bizə indeksi 1, və. Belə ki, bu bizə indeksi verir Biz istəyirik ki, uşaqlar array. İndi bu göstərici hazırda null əgər Uşaq array, o deməkdir ki, bir node hazırda olan mövcud deyil ki yol, belə ki, biz ayrılması lazımdır ki, yol üçün node. Yəni burada nə var. Belə ki, biz, yenə calloc istifadə etmək olacaq funksiyası yoxdur ki, göstəricilər bütün həyata sıfıra, və biz, daha ki, calloc yoxlamaq lazımdır uğursuz olmadı. Calloc uğursuz oldu, onda biz lazım hər şeyi boşaltmaq, yaxın bizim lüğət və False qayıtmaq. Belə ki, sonra, bilmirlər ki, fərz Bu, bizim üçün yeni bir uşaq yaradacaq və sonra biz uşaq gedəcək. Bizim kursor təkrarlamaq edəcək ki, uşaq aşağı. İndi, bu ilə başlamaq null deyil, əgər, sonra kursor yalnız təkrarlamaq olar həqiqətən olmadan uşaq aşağı bir şey ayırmaq üçün olan. Bu, bizim ilk baş belədir sözü pişik ayrılması və biz ayrılması getmək zaman o deməkdir ki, fəlakət, biz yaratmaq lazım deyil yenə C-A-T qovşaqlarının. Onlar artıq mövcuddur. OK, belə ki, bu Else nədir? Bu c olduğu şərtdir c a yeni xətt olduğu backslash n. Bu biz uğurla o deməkdir ki, bir söz başa. İndi biz nə istəyirsiniz zaman uğurla bir söz başa? Biz bu söz sahəsində istifadə etmək olacaq Bizim Struct node daxilində. Biz True ki qurmaq istəyirəm ki, belə Bu node göstərir ki, göstərir bir uğurlu söz faktiki söz. İndi True üçün seçin. Biz nöqtəyə kursor yenidən istəyirəm yenidən Trie əvvəlinə. Və nəhayət, bizim lüğət arttırmayı biz başqa söz tapılmadı ölçüsü bəri. Bütün hüquqlar, belə ki, biz bunu saxlamaq olacaq ki, xarakter oxu xarakter, yeni qovşaqlarının tikintisi bizim Trie və hər bir söz üçün lüğət, biz nəhayət c çatana qədər , biz qırmaq olan halda EOF bərabərdir fayl həyata. İndi iki hallarda altında var biz EOF hit ola biləcək. Bir səhv var idi, əgər ilk var idi, əgər fayl oxu, belə ki, bir səhv, biz tipik etmək lazımdır , hər şeyi boşaltmaq faylı bağlamaq, Asma qayıtmaq. , Bir səhv var idi hərfinin yalnız biz həqiqətən sonunda hit deməkdir fayl olan halda, biz yaxın fayl və True qayıtmaq bəri biz uğurla lüğət yüklü bizim Trie daxil. Bütün hüquqlar, belə ki, indi edək Check kontrol. Check funksiyası baxaraq, biz görürük ki, Check Bir Bool geri gedir. Bu söz ki, əgər True qaytarır keçib bizim Trie edir. Bu başqa False qaytarır. Belə ki, necə biz müəyyən etmək gedir Bu söz bizim Trie edir? Biz burada görürük ki, əvvəl kimi, biz təkrarlamaq kursor istifadə etmək olacaq bizim Trie vasitəsilə. İndi burada, biz təkrarlamaq olacaq bizim bütün söz üzərində. Belə ki, biz söz üzərində iterating keçdi, biz müəyyən etmək olacaq index Uşaq array daxil söz bracket i uyğundur. Belə ki, bu məhz kimi baxmaq gedir Load, burada sözü bracket i bir əgər apostrof, sonra biz index istifadə etmək istədiyiniz 1 minus əlifba biz müəyyən çünki hara getdiyimizi ki, Apostrophes saxlamaq üçün. Else biz tolower istifadə etmək olacaq söz bracket i. Belə ki, ola bilər ki, sözü xatırlayıram ixtiyari kapitallaşdırılması və biz biz istifadə etdiyiniz əmin etmək istəyirəm şeyi bir kiçik versiyası. Və sonra kiçik-dən çıxmaq a, bir dəfə daha, bizə vermək əlifba mövqeyi ki, xarakter. Belə ki, bizim index olacaq Uşaq massivinə. İndi, əgər uşaqlar daxil index array null ki, we deməkdir artıq iterating davam edə bilər bizim Trie aşağı. Ki, işi varsa, bu söz ola bilməz bəlkə, bizim Trie ola bəri əgər ki, bir olacaq deməkdir edildi yol aşağı ki, söz və siz ki null qarşılaşma heç vaxt. Belə null qarşılaşmadan, biz yalan. Söz lüğətdə yoxdur. Bu null deyil, onda biz olacaq Iterating davam, belə ki, biz gedirik ki, qeyd etmək bizim kursor yeniləmə ki, index da xüsusi node. Beləliklə, biz ərzində bunu saxlamaq bütün söz. , Biz null hit heç vaxt hərfinin vasitələri Biz bütün vasitəsilə əldə edə bildik dünya və Trie bir node tapmaq, lakin biz olduqca hələ həyata deyilik. Biz yalnız True qayıtmaq istəmirəm. Biz kursor səhv söz qayıtmaq istəyirəm pişik deyil bəri, yenidən xatırlamaq bizim lüğət və fəlakət edir sonra biz uğurla vasitəsilə əldə edəcək sözü pişik, lakin kursor söz Asma və True olacaq. Beləliklə, biz göstərir kursor söz qayıtmaq olmadığını, bu node həqiqətən bir söz, ki, çek üçün var. Belə ki, ölçüsü kontrol imkan. Belə ki, Size olduqca asan olacaq ildən, yük xatırlayıram, biz istəyirik üçün lüğət ölçüsü incrementing Biz qarşılaşırıq ki, hər bir söz. Belə ki, Size yalnız qayıtmaq üçün gedir Lüğət ölçüsü, və bu. Bütün hüquqlar, belə nəhayət, biz boşaltmaq var. Belə ki, boşaltmaq, biz istifadə etmək olacaq bir əslində bütün etmək üçün recursive funksiyası bizə, belə ki, bizim funksiyası üçün iş azad etməyə çağırıb olacaq. Nə azad etməyə nə gedir? Biz azad etməyə gedir burada bax uşaqların bütün təkrarlamaq bu node, və əgər uşaq node null deyil, sonra biz olacaq uşaq node boşaltmaq. Belə ki, bu recursively gedir bizim uşaqlar bütün boşaltmaq. Biz əmin deyilik dəfə bizim uşaqlar bütün boşaldılır olub, sonra biz özümüzü azad, belə ki, özümüz boşaltmaq bilər. Belə ki, bu recursively boşaltmaq edəcək bütün Trie, və sonra bir dəfə görülən, biz yalnız True qayıda bilər. Boşaltmaq biz istəyirik, uğursuz bilməz yalnız şeyi azad. Belə ki, bir dəfə biz azad tamamlayın hər şey, True qayıtmaq. Və bu. My name Rob və bu [işitilemez] idi.