1 00:00:00,000 --> 00:00:00,530 2 00:00:00,530 --> 00:00:03,070 >> HIZLARIA 1: Eman dezagun irtenbide hau saiatu. 3 00:00:03,070 --> 00:00:07,130 Beraz, dezagun zein den gure begirada bat Egitura nodo itxura. 4 00:00:07,130 --> 00:00:11,040 Hemen, ikusten dugun behar dugu bat Bool Word eta egitura nodo izar bat 5 00:00:11,040 --> 00:00:12,990 Children alfabetoa parentesia. 6 00:00:12,990 --> 00:00:18,720 Beraz, lehenengo gauza galdetzen baliteke, zergatik da alfabetoa hash 27 bezala definitzen? 7 00:00:18,720 --> 00:00:22,540 Beno, gogoratzen ari garela behar joan egon apostrofeari manipulazioa, beraz 8 00:00:22,540 --> 00:00:25,610 hori zertxobait berezi bat izango da joan Programa honetan zehar kasu. 9 00:00:25,610 --> 00:00:28,780 >> Ados, orain, gogoratzen nola bat Trie benetan funtzionatzen. 10 00:00:28,780 --> 00:00:33,420 Demagun hitza katuak indexatzeko ari gara, ondoren, gure Trie erro batetik, 11 00:00:33,420 --> 00:00:36,670 Children begiratu goaz array, eta ari gara hemen begiratu 12 00:00:36,670 --> 00:00:42,250 letraren dagokion indizea C. Beraz, indize bi izango litzateke. 13 00:00:42,250 --> 00:00:46,400 Beraz, ematen duten, horrek emango digu nodo berri bat, eta, ondoren zaitugu 14 00:00:46,400 --> 00:00:47,880 nodo horretako lan. 15 00:00:47,880 --> 00:00:51,830 >> Beraz emandako nodo hori, berriro ere gaude Children array begiratu, 16 00:00:51,830 --> 00:00:56,170 eta ari gara indizea zero begiratu katu A dagozkie. 17 00:00:56,170 --> 00:01:01,240 Beraz, ondoren ari gara Nodo hori joango gara, eta emandako nodo, goazen 18 00:01:01,240 --> 00:01:05,170 hori dagokion indizea begiratu T. Eta mugitzea nodo horretan, nahi 19 00:01:05,170 --> 00:01:09,590 azkenik, erabat begiratu dugu gure hitza Cat bidez, eta orain Boolearra 20 00:01:09,590 --> 00:01:15,020 Hitza suposatzen da ala ez adierazten hitza eman hau da, benetan hitz bat. 21 00:01:15,020 --> 00:01:17,530 >> Beraz, zergatik ez, kasu berezi hori behar dugu? 22 00:01:17,530 --> 00:01:21,680 Beno, zer bada hitzaren katastrofe gure hiztegian dago, baina 23 00:01:21,680 --> 00:01:24,120 Hitz katua ez da? 24 00:01:24,120 --> 00:01:29,030 Beraz, hitza katua bada ikusteko bila gure hiztegian, goazela 25 00:01:29,030 --> 00:01:34,880 arrakastaz eduki bidez begiratu C-A-T eta nodo bat iristeko, baina hori da 26 00:01:34,880 --> 00:01:39,760 hondamendia gertatu bakarra delako C-A-T bidean nodoak sor guztiak 27 00:01:39,760 --> 00:01:41,250 hitzaren bukaerara bidean. 28 00:01:41,250 --> 00:01:46,520 Beraz Boolearra Word erabiltzen den ala ez adierazten kokapena zehatz honetan benetan 29 00:01:46,520 --> 00:01:48,370 hitz bat adierazten du. 30 00:01:48,370 --> 00:01:52,920 >> Ondo da, beraz, gaur egun ezagutzen dugun zer bat Trie da, bezalako dezagun begiratu joan 31 00:01:52,920 --> 00:01:54,800 Zama funtzioa at. 32 00:01:54,800 --> 00:01:58,670 Beraz Load da Boolearra bat itzuli egingo da Arrakastaz dugu edo ala 33 00:01:58,670 --> 00:02:03,020 arrakastarik gabe kargatu hiztegi eta hau da hiztegi izango da 34 00:02:03,020 --> 00:02:04,520 kargatu nahi dugun. 35 00:02:04,520 --> 00:02:08,310 Beraz, lehenengo gauza egin behar dugu, irekia irakurtzeko hiztegi hori sortu. 36 00:02:08,310 --> 00:02:12,060 Ziurtatu ez genuen huts egin behar dugu, beraz, hiztegi ez zen bada 37 00:02:12,060 --> 00:02:15,280 ondo ireki, itzuliko da Gabe, eta kasu horretan goazela 38 00:02:15,280 --> 00:02:16,340 itzultzeko Gezurra. 39 00:02:16,340 --> 00:02:21,290 Baina suposatuz dela arrakastaz ireki, ondoren, benetan irakurri ahal 40 00:02:21,290 --> 00:02:22,310 Hiztegi bitartez. 41 00:02:22,310 --> 00:02:24,940 >> Beraz, lehenengo gauza goaz Egin nahi hori dugu 42 00:02:24,940 --> 00:02:26,560 erro aldagai global. 43 00:02:26,560 --> 00:02:30,250 Orain, erro nodo izar bat izango da. 44 00:02:30,250 --> 00:02:33,830 Gure Trie goiko da hori gara egon errepikatzean den igaro. 45 00:02:33,830 --> 00:02:38,200 Beraz, lehenengo gauza nahi goaz egin da memoria esleitu gure erroa da. 46 00:02:38,200 --> 00:02:42,040 >> Nabarituko calloc erabiltzen ari gara funtzioa, hau da, funtsean, gauza bera 47 00:02:42,040 --> 00:02:45,560 Malloc funtzioa bezala, salbu da hau da zerbait itzultzeko bermatuta 48 00:02:45,560 --> 00:02:47,240 erabat zeroed daudelarik. 49 00:02:47,240 --> 00:02:51,350 Beraz Malloc erabiliko bagenitu, ez genuke behar in erakusleak guztietan barrena joan gure 50 00:02:51,350 --> 00:02:54,220 nodo eta ziur null guztiak ari dira. 51 00:02:54,220 --> 00:02:56,780 Beraz calloc egin egingo dela guretzat. 52 00:02:56,780 --> 00:03:00,390 >> Orain, besterik Malloc bezala, egin behar dugu ziur esleipena hori da benetan 53 00:03:00,390 --> 00:03:01,580 arrakastatsua. 54 00:03:01,580 --> 00:03:04,060 Hau itzuli nulua bada, orduan dugu gure hiztegi itxi behar 55 00:03:04,060 --> 00:03:06,170 fitxategia eta itzultzeko Gezurra. 56 00:03:06,170 --> 00:03:11,040 Beraz, esleipena suposatuz zen arrakastatsua, nodo bat erabili goaz 57 00:03:11,040 --> 00:03:14,340 izarra Kurtsore batetik bestera joateko gure Trie bidez. 58 00:03:14,340 --> 00:03:17,950 Beraz, gure erro inoiz aldatu egingo da, baina ari gara Kurtsore erabiltzeko joan 59 00:03:17,950 --> 00:03:20,770 benetan joan nodo nodo. 60 00:03:20,770 --> 00:03:25,000 >> Ondo da, beraz, honetan begizta baterako, gaude Hiztegi fitxategia bidez irakurtzen, 61 00:03:25,000 --> 00:03:26,965 eta fgetc at erabiltzen ari gara. 62 00:03:26,965 --> 00:03:30,360 Beraz fgetc da bakar bat hartzen joan fitxategia karaktere. 63 00:03:30,360 --> 00:03:33,430 Grabbing jarraitzeko goaz karaktereak ez dugu iritsi bitartean 64 00:03:33,430 --> 00:03:37,540 fitxategiaren amaitzeko, beraz, ez dira bi kasuetan kudeatzeko behar dugu. 65 00:03:37,540 --> 00:03:41,640 Lehenengoan, pertsonaia ez zen bada bat linea berria, beraz, ezagutzen dugun berri bat bada 66 00:03:41,640 --> 00:03:44,480 lerroan, eta gero gara buruz mugitu eta hitz berri bat egiteko. 67 00:03:44,480 --> 00:03:49,300 Baina suposatuz ez zen linea berri bat, ondoren Hemen, irudikatu nahi dugu 68 00:03:49,300 --> 00:03:52,440 Indize gabiltza indizea joan sartu Children array duten 69 00:03:52,440 --> 00:03:53,890 begiratu aurretik dugu. 70 00:03:53,890 --> 00:03:57,950 >> Lehen esan dudan bezala, beraz, behar dugu kasu berezia apostrofeari. 71 00:03:57,950 --> 00:04:01,040 Nabarituko du hirutarra operadorea erabiltzen ari gara hemen, beraz ari gara irakurtzen joan 72 00:04:01,040 --> 00:04:05,500 hau balitz bezala, pertsonaia batean irakurri dugu zen apostrofoa, ondoren goazela 73 00:04:05,500 --> 00:04:11,740 ezarri alfabetoa ken berdina indizea 1, eta horrek indizearen 26 izango da. 74 00:04:11,740 --> 00:04:15,190 Bestela, ez zen apostrofoa bada, orduan ari gara indizea, bada, gauzak 75 00:04:15,190 --> 00:04:17,820 c ken baten berdina. 76 00:04:17,820 --> 00:04:23,090 Beraz, gogoratu aurreko p multzoetako atzera, c ken bat da guri emateko joan 77 00:04:23,090 --> 00:04:27,470 c posizio alfabetikoa, hala bada c gutuna, borondate hau da 78 00:04:27,470 --> 00:04:28,770 indizea zero ematen diguten. 79 00:04:28,770 --> 00:04:32,180 B letra, eman litzateke gurekin indizea 1 da, eta abar. 80 00:04:32,180 --> 00:04:37,070 >> Beraz, hau sartu indizea ematen digu Children array nahi dugula. 81 00:04:37,070 --> 00:04:42,540 Orain, indize hau nulua da bada Children array, horrek esan nahi du 82 00:04:42,540 --> 00:04:47,470 nodo bat ez da gaur egun existitzen bide hori, nolabait esleitu behar dugu bat 83 00:04:47,470 --> 00:04:49,220 bidea duten nodo. 84 00:04:49,220 --> 00:04:50,610 , Hemen zer egiten dugun. 85 00:04:50,610 --> 00:04:54,650 Beraz, berriro ere, erabiliko calloc joan funtzioa ez dugu, beraz, izan 86 00:04:54,650 --> 00:05:00,130 zero erakusleak guztia, eta guk, berriro ere, behar calloc direla egiaztatzeko 87 00:05:00,130 --> 00:05:01,300 ez zuen huts egin. 88 00:05:01,300 --> 00:05:04,760 Calloc huts egin bada, orduan behar dugu guztia jaisteko, ixteko gure 89 00:05:04,760 --> 00:05:06,880 hiztegi, eta itzultzeko Gezurra. 90 00:05:06,880 --> 00:05:14,110 >> Beraz suposatuz zuen ez dela huts egin, eta gero hau guretzat beste ume bat sortuko da, 91 00:05:14,110 --> 00:05:16,000 eta ondoren egingo duten ume joan ginen. 92 00:05:16,000 --> 00:05:19,030 Gure kurtsorea batetik bestera joateko egingo Umea zela behera. 93 00:05:19,030 --> 00:05:23,390 Orain, hau ez zela nulua hasteko bada, ondoren kurtsorea besterik batetik bestera joateko daiteke 94 00:05:23,390 --> 00:05:26,650 behera haur hori benetan gabe ezer esleitu beharrik. 95 00:05:26,650 --> 00:05:30,790 Kasu hauetan gertatzen lehen gertatu dena da Hitz katua esleitu, eta 96 00:05:30,790 --> 00:05:34,390 horrek esan nahi du noiz esleitu goaz katastrofe, ez dugu behar, sortu 97 00:05:34,390 --> 00:05:35,720 C-A-T nodo berriro. 98 00:05:35,720 --> 00:05:37,620 Dagoeneko existitzen dira. 99 00:05:37,620 --> 00:05:40,140 >> Ados, beraz, zer gehiago da hau? 100 00:05:40,140 --> 00:05:44,600 Honetan baldintza non c zen da backslash n, non c linea berri bat izan zen. 101 00:05:44,600 --> 00:05:47,780 Horrek esan nahi arrakastaz dugula hitz bat osatu. 102 00:05:47,780 --> 00:05:51,020 Orain, zer egin nahi dugunean ongi burutu da hitz bat? 103 00:05:51,020 --> 00:05:55,250 Hitz eremu hori erabiltzeko goaz Gure egitura nodo barruan. 104 00:05:55,250 --> 00:06:00,570 >> Duten ezarri Egia nahi dugu, beraz, adierazten nodo hori adierazten batean 105 00:06:00,570 --> 00:06:03,320 arrakastatsua hitzaren benetako hitz bat. 106 00:06:03,320 --> 00:06:05,050 Orain, ezarri duten True. 107 00:06:05,050 --> 00:06:09,210 Gure kurtsorea berrezartzeko puntua nahi dugu Trie hasieratik berriro. 108 00:06:09,210 --> 00:06:13,510 Eta, azkenik, Kontatzailea gure dictionary beste hitz bat aurkitu dugu tamaina geroztik. 109 00:06:13,510 --> 00:06:16,450 >> Ondo da, beraz ari gara egiten jarraitzea dagoela in irakurriz 110 00:06:16,450 --> 00:06:21,960 pertsonaia, nodo berria eraikitzeko gure Trie eta hitz bakoitzeko 111 00:06:21,960 --> 00:06:26,810 hiztegi, azkenik iritsi gara c arte berdinen EOF, eta kasu horretan, apurtu dugu 112 00:06:26,810 --> 00:06:28,100 fitxategian daudelarik. 113 00:06:28,100 --> 00:06:31,110 Orain, han azpian, bi kasu daude bertan dugu EOF hit liteke. 114 00:06:31,110 --> 00:06:35,680 Lehenengoa da akats bat izan zen bada fitxategia irakurtzean, beraz, ez zen bada 115 00:06:35,680 --> 00:06:39,280 Errore bat, tipikoa egin behar dugu deskargatu dena, fitxategia itxi, 116 00:06:39,280 --> 00:06:40,520 itzultzeko Gezurra. 117 00:06:40,520 --> 00:06:43,870 Ez zen errore bat suposatuz, hori besterik gabe esan nahi benetan hit dugu amaieran 118 00:06:43,870 --> 00:06:47,820 fitxategia, eta kasu horretan, itxi dugu fitxategia eta itzultzeko True geroztik dugu 119 00:06:47,820 --> 00:06:51,010 Arrakastaz hiztegia kargatu gure Trie sartu. 120 00:06:51,010 --> 00:06:54,240 >> Ondo da, beraz orain utzi check out Check. 121 00:06:54,240 --> 00:06:58,780 Check funtzioa begira, ikusiko dugu Check hori Boolearra bat itzuli du. 122 00:06:58,780 --> 00:07:03,740 True itzultzen du hitz hau da, hori bada ari gainditu gure Trie dago. 123 00:07:03,740 --> 00:07:06,170 False itzultzen du bestela. 124 00:07:06,170 --> 00:07:10,110 >> Beraz, nola ari garen diren erabakitzeko joan hitz hau gure Trie da? 125 00:07:10,110 --> 00:07:14,270 Hemen ikusten dugu, zertxobait lehenago bezala, kurtsorea erabili batetik bestera joateko goaz 126 00:07:14,270 --> 00:07:16,010 gure Trie bidez. 127 00:07:16,010 --> 00:07:20,650 Orain, hemen, horrelakoak gara, batetik bestera joateko joan gure hitz osoa baino gehiago. 128 00:07:20,650 --> 00:07:24,680 Beraz, hitza gaude baino gehiago errepikatzean gainditu, zehazteko goaz du 129 00:07:24,680 --> 00:07:29,280 Indize Children array sartu duten hitza parentesi i dagokio. 130 00:07:29,280 --> 00:07:34,150 Beraz, hau da zehazki itxura joan Karga, non hitza parentesi i bada bat 131 00:07:34,150 --> 00:07:38,110 apostrophe, orduan indize erabili nahi dugu alfabetoa erabaki dugu zeren minus 1 132 00:07:38,110 --> 00:07:41,160 hori da, nora goazen apostrophes gordetzeko. 133 00:07:41,160 --> 00:07:44,440 >> Bestela goaz tolower erabili joan hitza parentesi i. 134 00:07:44,440 --> 00:07:48,270 Beraz, gogoratu, hitz hori izan daiteke arbitrarioa kapitalizazio, eta beraz, 135 00:07:48,270 --> 00:07:51,590 Ziurtatu erabiltzen ari gara hori egin nahi minuskulaz gauza bertsio bat. 136 00:07:51,590 --> 00:07:55,300 Eta, ondoren, minuskulaz duen bati kentzen batera, berriro ere, eman digu 137 00:07:55,300 --> 00:07:57,940 posizio alfabetikoa pertsonaia hori. 138 00:07:57,940 --> 00:08:01,740 Beraz, gure indizea izango da Children array sartu. 139 00:08:01,740 --> 00:08:06,480 >> Eta, gaur egun, bada indizea duten Children sartu array nulua da, horrek esan nahi dugu 140 00:08:06,480 --> 00:08:09,050 Jada jarraitu ahal errepikatzean gure Trie behera. 141 00:08:09,050 --> 00:08:13,320 Hori horrela bada, hitz hori ezin seguru asko, gure Trie izan, geroztik bada 142 00:08:13,320 --> 00:08:18,000 dira, horrek esan nahi du han bat izango litzateke Bidea hitz hori egin eta gero, eta egiten duzun 143 00:08:18,000 --> 00:08:19,350 inoiz topo nulua. 144 00:08:19,350 --> 00:08:21,910 Beraz null topatzea, False itzuliko gara. 145 00:08:21,910 --> 00:08:23,810 Hitza ez dago hiztegian. 146 00:08:23,810 --> 00:08:28,200 Ez balitz nulua bada, orduan goazela errepikatzean jarraitzeko, hain goaz 147 00:08:28,200 --> 00:08:33,150 gure kurtsorea eguneratu nahi duten seinalatu Indize horretan nodo bereziki. 148 00:08:33,150 --> 00:08:36,659 >> Beraz, zehar egiten mantendu dugu hitza osoa. 149 00:08:36,659 --> 00:08:40,630 Hit dugu inoiz nulua dela suposatuz, baliabide ra bidez osoa lortzeko gai izan ginen 150 00:08:40,630 --> 00:08:44,840 mundua eta gure Trie lotune bat aurkitu, baina ez nahiko oraindik egin dugu. 151 00:08:44,840 --> 00:08:46,350 Ez dugu nahi, besterik gabe itzultzeko True. 152 00:08:46,350 --> 00:08:51,400 Kurtsorea error hitza itzuli nahi dugu geroztik, gogoratu berriro, katu ez bada 153 00:08:51,400 --> 00:08:55,140 gure hiztegi eta katastrofe da urtean, orduan izango dugu arrakastaz bidez lortu 154 00:08:55,140 --> 00:08:59,810 hitza katua, baina kurtsorea hitzaren Gezurra eta ez Egia izango da. 155 00:08:59,810 --> 00:09:04,990 Beraz, kurtsorea hitzaren itzultzeko dugun adierazi ala nodo hau da, benetan hitz bat, 156 00:09:04,990 --> 00:09:06,530 eta hori da txeke da. 157 00:09:06,530 --> 00:09:08,310 >> Hargatik begiratu neurria. 158 00:09:08,310 --> 00:09:11,410 Beraz Tamaina nahiko erraza izango geroztik, Load gogoratu, gaude 159 00:09:11,410 --> 00:09:15,480 hiztegi tamaina incrementing egiteko dugu topo hitz bakoitza. 160 00:09:15,480 --> 00:09:20,820 Beraz neurria besterik ez da itzuli joan hiztegi-tamaina, eta hori da. 161 00:09:20,820 --> 00:09:24,650 >> Ondo da, beraz, azkenik, deskargatzeko dugu. 162 00:09:24,650 --> 00:09:29,050 Beraz deskargatzeko, gabiltza erabili going bat funtzioa errekurtsiboa benetan egiten denak 163 00:09:29,050 --> 00:09:33,390 Guri, beraz, gure funtzioa lanaren da Unloader deitu behar da joan. 164 00:09:33,390 --> 00:09:35,830 Zer da Unloader egin? 165 00:09:35,830 --> 00:09:40,640 Hemen ikusten dugu Unloader hori joan den batetik bestera joateko baino gehiago ume guztiek at 166 00:09:40,640 --> 00:09:45,810 nodo zehatz honetan, eta seme-alaba bada, nodoa ez da nulua, eta gero goazela 167 00:09:45,810 --> 00:09:47,760 umea nodoa jaisteko. 168 00:09:47,760 --> 00:09:52,070 >> Beraz, hau da, joan errekurtsiboki deskargatu gure haurren guztiak. 169 00:09:52,070 --> 00:09:55,140 Behin gaude ziur gure seme-alaben guztiak dute deskargatzen dira, orduan dugu 170 00:09:55,140 --> 00:09:58,830 geure burua askatu ahal, beraz, deskargatu ourself. 171 00:09:58,830 --> 00:10:04,550 Beraz, hau errekurtsiboki hustuketa egingo du osoa Trie, eta, ondoren, hori da, behin 172 00:10:04,550 --> 00:10:06,910 egin, besterik ez dugu itzuli ahal True. 173 00:10:06,910 --> 00:10:09,770 Hustuketa ezin huts, gaude besterik gauzak uzten. 174 00:10:09,770 --> 00:10:12,985 Beraz, behin Bukatutakoan dugu askatzeaz guztia, bueltatu True. 175 00:10:12,985 --> 00:10:14,380 Eta hori da. 176 00:10:14,380 --> 00:10:16,792 Nire izena Rob da, eta hau izan zen [INAUDIBLE]. 177 00:10:16,792 --> 00:10:21,888