1 00:00:00,000 --> 00:00:00,530 2 00:00:00,530 --> 00:00:03,070 >> Oratè 1: Se pou yo bay sa a solisyon yon eseye. 3 00:00:03,070 --> 00:00:07,130 Se konsa, kite a pran yon gade nan sa ki nou Konstri ne ap gade tankou. 4 00:00:07,130 --> 00:00:11,040 Isit la, nou wè nou pral gen yon Bouleen Pawòl ak yon etwal ne struct 5 00:00:11,040 --> 00:00:12,990 Timoun bracket alfabè a. 6 00:00:12,990 --> 00:00:18,720 Se konsa, premye bagay ou ka mande, poukisa se alfabè hash defini kòm 27? 7 00:00:18,720 --> 00:00:22,540 Oke, sonje ke nou ap ale nan bezwen yo dwe manyen apostwòf a, se konsa 8 00:00:22,540 --> 00:00:25,610 ki k ap pase yo dwe yon ti jan nan yon espesyal ka nan tout pwogram sa a. 9 00:00:25,610 --> 00:00:28,780 >> OK, kounye a, sonje ki jan yon Trye aktyèlman ap travay. 10 00:00:28,780 --> 00:00:33,420 Se pou nou di nou ap Indexing mo chat yo, Lè sa a, soti nan rasin lan nan trye nou an, 11 00:00:33,420 --> 00:00:36,670 nou pral gade nan timoun yo etalaj, e nou pral fè yon gade nan la 12 00:00:36,670 --> 00:00:42,250 endèks ki koresponn ak lèt ​​la C. Se konsa, ki ta ka endèks de. 13 00:00:42,250 --> 00:00:46,400 Se konsa, bay sa, ki pral ban nou yon nouvo ne, ak Lè sa a, nou pral 14 00:00:46,400 --> 00:00:47,880 travay nan ki ne. 15 00:00:47,880 --> 00:00:51,830 >> Se konsa, bay yo ke ne, nou yon lòt fwa ankò ale nan gade nan etalaj la Timoun, 16 00:00:51,830 --> 00:00:56,170 e nou pral fè yon gade nan endèks zewo koresponn ak yon an nan chat. 17 00:00:56,170 --> 00:01:01,240 Se konsa, Lè sa a, nou pral pou yo ale nan ki ne, ak bay sa ne, nou pwal 18 00:01:01,240 --> 00:01:05,170 fè yon gade nan endèks la ki koresponn T. Apre sa, deplase sou ak sa yo ki ne, 19 00:01:05,170 --> 00:01:09,590 finalman, nou te konplètman gade nan Cat pawòl Bondye nou an, epi kounye a bouleen 20 00:01:09,590 --> 00:01:15,020 Se pawòl Bondye sipoze endike si mo sa a bay se aktyèlman yon mo. 21 00:01:15,020 --> 00:01:17,530 >> Se konsa, poukisa nou bezwen ki ka espesyal? 22 00:01:17,530 --> 00:01:21,680 Oke, sa si katastwòf pawòl Bondye a se nan diksyonè nou an, men 23 00:01:21,680 --> 00:01:24,120 chat la mo se pa? 24 00:01:24,120 --> 00:01:29,030 Se konsa, nan je l 'nan wè si chat la mo se an nan diksyonè nou yo, nou ap ale nan 25 00:01:29,030 --> 00:01:34,880 avèk siksè gade nan endis yo C-A-T, epi rive nan yon ne, men sa a 26 00:01:34,880 --> 00:01:39,760 sèlman paske katastwòf rive kreye nœuds sou wout la soti nan C-A-T tout 27 00:01:39,760 --> 00:01:41,250 wout la nan fen a nan mo a. 28 00:01:41,250 --> 00:01:46,520 Se konsa, bouleen Pawòl ki itilize endike si kote sa a an patikilye aktyèlman 29 00:01:46,520 --> 00:01:48,370 endike yon mo. 30 00:01:48,370 --> 00:01:52,920 >> Tout dwa, se konsa kounye a ke nou konnen ki sa yon Trye ki pral gade tankou, se pou yo gade 31 00:01:52,920 --> 00:01:54,800 nan fonksyon an chaj. 32 00:01:54,800 --> 00:01:58,670 Se konsa, chaj ki pral retounen yon bouleen pou si nou avèk siksè oswa 33 00:01:58,670 --> 00:02:03,020 diksyonè san siksè chaje ak sa a se pral fè diksyonè a 34 00:02:03,020 --> 00:02:04,520 ke nou vle chaje. 35 00:02:04,520 --> 00:02:08,310 Se konsa, premye bagay nou pral fè se louvri sa ki diksyonè pou lekti. 36 00:02:08,310 --> 00:02:12,060 Nou dwe asire w ke nou pa t 'echwe, Se konsa, si diksyonè a pa t ' 37 00:02:12,060 --> 00:02:15,280 avèk siksè louvri, li pral retounen Pa gen, nan ka sa a nou pral 38 00:02:15,280 --> 00:02:16,340 retounen Fo. 39 00:02:16,340 --> 00:02:21,290 Men, an konsideran ke li avèk siksè louvri, lè sa a nou ka aktyèlman li 40 00:02:21,290 --> 00:02:22,310 nan diksyonè a. 41 00:02:22,310 --> 00:02:24,940 >> Se konsa, premye bagay nou pral vle fè se nou gen sa a 42 00:02:24,940 --> 00:02:26,560 mondyal rasin varyab. 43 00:02:26,560 --> 00:02:30,250 Koulye a, rasin a pwal yon etwal ne. 44 00:02:30,250 --> 00:02:33,830 Li nan tèt la nan trye nou an ke nou ap yo pral iteration nan. 45 00:02:33,830 --> 00:02:38,200 Se konsa, premye bagay nou pral vle fè se asiyen memwa pou rasin nou an. 46 00:02:38,200 --> 00:02:42,040 >> Remake nou ap lè l sèvi avèk Calloc la fonksyon, ki se fondamantalman menm bagay la tou 47 00:02:42,040 --> 00:02:45,560 kòm fonksyon an malok, eksepte li a garanti yo retounen yon bagay ki 48 00:02:45,560 --> 00:02:47,240 konplètman zero deyò. 49 00:02:47,240 --> 00:02:51,350 Se konsa, si nou itilize malok, nou ta bezwen ale nan tout nan pwent yo nan nou an 50 00:02:51,350 --> 00:02:54,220 ne ak asire w ke yo ap tout nil. 51 00:02:54,220 --> 00:02:56,780 Se konsa, Calloc pral fè sa pou nou. 52 00:02:56,780 --> 00:03:00,390 >> Koulye a, jis tankou malok, nou bezwen fè asire w ke alokasyon an la aktyèlman 53 00:03:00,390 --> 00:03:01,580 siksè. 54 00:03:01,580 --> 00:03:04,060 Si sa a tounen nil, lè sa a nou ap oblije fèmen pòt diksyonè nou an 55 00:03:04,060 --> 00:03:06,170 ranpli epi retounen Fo. 56 00:03:06,170 --> 00:03:11,040 Se konsa, an konsideran alokasyon an te siksè, nou pral sèvi ak yon ne 57 00:03:11,040 --> 00:03:14,340 zetwal flèch repňte nan trye nou an. 58 00:03:14,340 --> 00:03:17,950 Se konsa, rasin nou an pa janm ale nan chanje, men nou ap ale nan sèvi ak flèch 59 00:03:17,950 --> 00:03:20,770 aktyèlman ale nan ne ne. 60 00:03:20,770 --> 00:03:25,000 >> Tout dwa, se konsa nan sa a pou bouk, nou se lekti atravè dosye a diksyonè, 61 00:03:25,000 --> 00:03:26,965 e nou lè l sèvi avèk nan fgetc. 62 00:03:26,965 --> 00:03:30,360 Se konsa, fgetc ki pral gen tan pwan yon sèl N. nan dosye a. 63 00:03:30,360 --> 00:03:33,430 Nou pral kontinye arachman karaktè pandan ke nou pa rive nan 64 00:03:33,430 --> 00:03:37,540 fini nan dosye a, se konsa gen de ka nou bezwen okipe. 65 00:03:37,540 --> 00:03:41,640 Premye a, si karaktè a pa t 'yon nouvo liy, se konsa nou konnen si se te yon nouvo 66 00:03:41,640 --> 00:03:44,480 liy, Lè sa a, nou ap sou yo deplase sou yon nouvo mo. 67 00:03:44,480 --> 00:03:49,300 Men, an konsideran li pa t 'yon liy nouvo, Lè sa a, isit la, nou vle konnen nan 68 00:03:49,300 --> 00:03:52,440 endèks nou pral endèks nan nan etalaj la Timoun ki 69 00:03:52,440 --> 00:03:53,890 nou te etidye anvan. 70 00:03:53,890 --> 00:03:57,950 >> Se konsa, tankou mwen te di anvan, nou bezwen ka espesyal apostwòf la. 71 00:03:57,950 --> 00:04:01,040 Avi nou ap lè l sèvi avèk operatè a tèrsyèr isit la, se konsa nou ap ale nan li 72 00:04:01,040 --> 00:04:05,500 sa a kòm si karaktè a nou li nan te yon apostwòf, lè sa a nou pral 73 00:04:05,500 --> 00:04:11,740 mete endèks egal a alfabè mwens 1, ki pral endèks la 26. 74 00:04:11,740 --> 00:04:15,190 Lòt Bagay, si li pa t 'yon apostwòf, Lè sa a, nou pral mete endèks la 75 00:04:15,190 --> 00:04:17,820 egal a c mwens yon. 76 00:04:17,820 --> 00:04:23,090 Se konsa, sonje tounen soti nan kouche p anvan, c mwens yon ki pral ban nou an 77 00:04:23,090 --> 00:04:27,470 alfabetik pozisyon nan c, Se konsa, si c se lèt A a, yo pral sa a 78 00:04:27,470 --> 00:04:28,770 ban nou endèks zewo. 79 00:04:28,770 --> 00:04:32,180 Pou lèt la B, li ta bay nou endèks la 1, ak sou sa. 80 00:04:32,180 --> 00:04:37,070 >> Se konsa, sa a ba nou endèks la nan la Timoun etalaj ke nou vle. 81 00:04:37,070 --> 00:04:42,540 Koulye a, si sa a endèks se kounye a nil nan etalaj la Timoun, sa vle di 82 00:04:42,540 --> 00:04:47,470 yon ne pa ki egziste kounye a soti nan ki chemen, se konsa nou bezwen asiyen yon 83 00:04:47,470 --> 00:04:49,220 ne pou sa chemen. 84 00:04:49,220 --> 00:04:50,610 Sa a ki sa nou fè isit la. 85 00:04:50,610 --> 00:04:54,650 Se konsa, nou ap ale nan, ankò, sèvi ak Calloc la fonksyon pou ke nou pa jwenn okenn 86 00:04:54,650 --> 00:05:00,130 a zewo soti tout nan pwent yo, epi nou, ankò, bezwen yo tcheke ki Calloc 87 00:05:00,130 --> 00:05:01,300 pa t 'febli. 88 00:05:01,300 --> 00:05:04,760 Si Calloc t rate, lè sa a nou bezwen dechaje tout bagay, fèmen nou an 89 00:05:04,760 --> 00:05:06,880 diksyonè, epi retounen Fo. 90 00:05:06,880 --> 00:05:14,110 >> Se konsa, an konsideran ke li pa t 'echwe, Lè sa a, sa a pral kreye yon timoun nouvo pou nou, 91 00:05:14,110 --> 00:05:16,000 ak Lè sa a, nou pral ale nan ke pitit. 92 00:05:16,000 --> 00:05:19,030 Kurseur nou yo ap repňte desann nan sa timoun nan. 93 00:05:19,030 --> 00:05:23,390 Koulye a, si sa a pa t 'nil yo kòmanse avèk yo, Lè sa a, kurseur nan ka jis repňte 94 00:05:23,390 --> 00:05:26,650 desann nan ke pitit san yo pa aktyèlman li te gen asiyen anyen. 95 00:05:26,650 --> 00:05:30,790 Sa a se ka a kote nou te rive premye asiyen chat la pawòl, ak 96 00:05:30,790 --> 00:05:34,390 sa vle di lè nou ale nan asiyen katastwòf, nou pa bezwen yo kreye 97 00:05:34,390 --> 00:05:35,720 nœuds pou C-A-T ankò. 98 00:05:35,720 --> 00:05:37,620 Yo deja egziste. 99 00:05:37,620 --> 00:05:40,140 >> OK, se konsa sa ki Lòt Bagay sa a? 100 00:05:40,140 --> 00:05:44,600 Sa a se kondisyon an kote c te antislach n, kote c te yon liy nouvo. 101 00:05:44,600 --> 00:05:47,780 Sa vle di ke nou gen avèk siksè ranpli yon mo. 102 00:05:47,780 --> 00:05:51,020 Koulye a, ki sa nou vle fè lè nou konplete avèk siksè yon mo? 103 00:05:51,020 --> 00:05:55,250 Nou pral itilize sa a jaden mo andedan nan ne struct nou an. 104 00:05:55,250 --> 00:06:00,570 >> Nou vle mete ke yo Vrè, se konsa ke endike ke ne sa a endike yon 105 00:06:00,570 --> 00:06:03,320 mo yon mo aktyèl siksè. 106 00:06:03,320 --> 00:06:05,050 Koulye a, mete ke yo Vrè. 107 00:06:05,050 --> 00:06:09,210 Nou vle Reyajiste kurseur nou an nan pwen nan konmansman an nan trye la ankò. 108 00:06:09,210 --> 00:06:13,510 E finalman, enkreman diksyonè nou an gwosè depi nou te jwenn yon lòt mo. 109 00:06:13,510 --> 00:06:16,450 >> Tout dwa, se konsa nou ap ale nan kontinye ap fè sa a, lekti nan karaktè pa 110 00:06:16,450 --> 00:06:21,960 karaktè, konstwi nouvo nœuds nan trye nou yo ak pou chak mo nan la 111 00:06:21,960 --> 00:06:26,810 diksyonè, jouk nou finalman rive nan c egal èof, nan ka sa, nou kraze 112 00:06:26,810 --> 00:06:28,100 soti nan dosye a. 113 00:06:28,100 --> 00:06:31,110 Koulye a, ki te gen de ka ki poko gen ki nou ka gen frape èof. 114 00:06:31,110 --> 00:06:35,680 Premye a se si te gen yon erè li nan dosye a, se konsa si te gen 115 00:06:35,680 --> 00:06:39,280 yon erè, nou bezwen fè tipik la dechaje tout bagay, fèmen dosye a, 116 00:06:39,280 --> 00:06:40,520 retounen Fo. 117 00:06:40,520 --> 00:06:43,870 Si nou sipoze gen pa t 'yon erè, ki jis vle di nou aktyèlman frape nan fen 118 00:06:43,870 --> 00:06:47,820 dosye a, nan ki ka, nou fèmen a ranpli epi retounen Vrè depi nou 119 00:06:47,820 --> 00:06:51,010 avèk siksè chaje diksyonè a nan trye nou an. 120 00:06:51,010 --> 00:06:54,240 >> Tout dwa, se konsa kounye a kite a tcheke deyò chèk la. 121 00:06:54,240 --> 00:06:58,780 Gade nan fonksyon an Tcheke, nou wè ki Tcheke ki pral retounen yon bouleen. 122 00:06:58,780 --> 00:07:03,740 Li retounen Vrè si mo sa a ke li nan ke yo te pase se nan trye nou an. 123 00:07:03,740 --> 00:07:06,170 Li retounen Fo otreman. 124 00:07:06,170 --> 00:07:10,110 >> Se konsa, kouman nou pral detèmine si mo sa a se nan trye nou an? 125 00:07:10,110 --> 00:07:14,270 Nou wè isit la ke, jis tankou anvan, nou pral sèvi ak kurseur repňte 126 00:07:14,270 --> 00:07:16,010 nan trye nou an. 127 00:07:16,010 --> 00:07:20,650 Koulye a, isit la, nou ap ale nan repňte sou tout pawòl nou yo. 128 00:07:20,650 --> 00:07:24,680 Se konsa, iteration sou pawòl Bondye a nou se te pase, nou pral detèmine a 129 00:07:24,680 --> 00:07:29,280 endèks nan etalaj la Timoun ki koresponn ak mo bracket mwen. 130 00:07:29,280 --> 00:07:34,150 Se konsa, sa a ki pral gade egzakteman tankou Chaj, kote si bracket mo mwen se yon 131 00:07:34,150 --> 00:07:38,110 apostwòf, lè sa a nou vle sèvi ak endèks alfabè mwens 1 paske nou detèmine 132 00:07:38,110 --> 00:07:41,160 ki se kote nou pral nan magazen apostrof. 133 00:07:41,160 --> 00:07:44,440 >> Lòt Bagay nou pral sèvi ak toloe mo bracket mwen. 134 00:07:44,440 --> 00:07:48,270 Se konsa, sonje mo sa a ka gen abitrè lèt majiskil, ak pou nou 135 00:07:48,270 --> 00:07:51,590 vle asire nou ke nou ap itilize yon vèsyon miniskil de bagay sa yo. 136 00:07:51,590 --> 00:07:55,300 Lè sa a, fè soustraksyon de sa miniskil yon a, yon lòt fwa ankò, ban nou an 137 00:07:55,300 --> 00:07:57,940 alfabetik pozisyon nan ki karaktè. 138 00:07:57,940 --> 00:08:01,740 Se konsa, ki k ap pase yo dwe endèks nou nan etalaj la Timoun. 139 00:08:01,740 --> 00:08:06,480 >> Epi, koulye a, si sa endèks nan timoun yo etalaj se nil, sa vle di nou 140 00:08:06,480 --> 00:08:09,050 pa kapab kontinye iteration desann trye nou an. 141 00:08:09,050 --> 00:08:13,320 Si sa a, se ka a, mo sa a pa kapab petèt dwe nan trye nou an, depi si li 142 00:08:13,320 --> 00:08:18,000 yo te, ki ta vle di ke ta gen yon chemen desann nan mo sa a, epi ou ta 143 00:08:18,000 --> 00:08:19,350 pa janm rankontre nil. 144 00:08:19,350 --> 00:08:21,910 Se konsa, rankontre nil, nou retounen Fo. 145 00:08:21,910 --> 00:08:23,810 Pawòl Bondye a se pa an nan diksyonè a. 146 00:08:23,810 --> 00:08:28,200 Si se pa t nil, lè sa a nou pral kontinye iteration, se konsa nou pral 147 00:08:28,200 --> 00:08:33,150 nan aktyalizasyon kurseur nou an nan pwen ak sa yo ki ne patikilye nan ki Konpayi paran yo. 148 00:08:33,150 --> 00:08:36,659 >> Se konsa, nou kontinye ap fè sa nan tout tout mo a. 149 00:08:36,659 --> 00:08:40,630 Si nou sipoze nou pa janm frape nil, sa vle di nou te kapab jwenn nan tout la 150 00:08:40,630 --> 00:08:44,840 mond epi jwenn yon ne nan trye nou an, men nou pa ap byen fè ankò. 151 00:08:44,840 --> 00:08:46,350 Nou pa vle jis retounen Vrè. 152 00:08:46,350 --> 00:08:51,400 Nou vle retounen kurseur mo erè depi, sonje ankò, si chat se pa 153 00:08:51,400 --> 00:08:55,140 an nan diksyonè nou yo ak katastwòf se, Lè sa a, nou pral avèk siksè jwenn nan 154 00:08:55,140 --> 00:08:59,810 chat la mo, Men, pawòl kurseur yo pral Fo ak pa vre. 155 00:08:59,810 --> 00:09:04,990 Se konsa, nou retounen mo kurseur yo endike si wi ou non ne sa a se aktyèlman yon mo, 156 00:09:04,990 --> 00:09:06,530 e ke sa a li pou chèk la. 157 00:09:06,530 --> 00:09:08,310 >> Se konsa, kite a tcheke deyò Size. 158 00:09:08,310 --> 00:09:11,410 Se konsa, Size a pwal trè fasil depi, sonje nan chaj, nou 159 00:09:11,410 --> 00:09:15,480 incrementing diksyonè gwosè pou chak mo ke nou rankontre. 160 00:09:15,480 --> 00:09:20,820 Se konsa, Size se jis ale nan retounen diksyonè gwosè, e ke sa a li. 161 00:09:20,820 --> 00:09:24,650 >> Tout dwa, se konsa Finalman, nou gen dechaje. 162 00:09:24,650 --> 00:09:29,050 Se konsa, dechaje, nou ap ale nan sèvi ak yon fonksyon repetitif ki aktyèlman fè tout 163 00:09:29,050 --> 00:09:33,390 nan travay la pou nou, se konsa fonksyon nou ki pral yo dwe rele decharjeur. 164 00:09:33,390 --> 00:09:35,830 Ki sa ki decharjeur pral fè? 165 00:09:35,830 --> 00:09:40,640 Nou wè isit la ke decharjeur ki pral repňte sou tout timoun yo nan 166 00:09:40,640 --> 00:09:45,810 ne sa a an patikilye, epi si timoun nan ne se pa nil, lè sa a nou pral 167 00:09:45,810 --> 00:09:47,760 dechaje ne nan timoun. 168 00:09:47,760 --> 00:09:52,070 >> Se konsa, sa a ki pral recursive dechaje tout pitit nou yo. 169 00:09:52,070 --> 00:09:55,140 Yon fwa nou ap asire w ke tout timoun nou yo yo te chaje, lè sa a nou 170 00:09:55,140 --> 00:09:58,830 ka nou libere tèt nou, se konsa dechaje ourself. 171 00:09:58,830 --> 00:10:04,550 Se konsa, sa a pral recursive dechaje la tout trye, ak Lè sa a, yon fwa sa a, se 172 00:10:04,550 --> 00:10:06,910 fè, nou ka jis retounen Vrè. 173 00:10:06,910 --> 00:10:09,770 Debake pa ka echwe, nou ap jis libere bagay sa yo. 174 00:10:09,770 --> 00:10:12,985 Se konsa, yon fwa nou ap fè libere tout bagay, retounen Vrè. 175 00:10:12,985 --> 00:10:14,380 Epi sa a, li. 176 00:10:14,380 --> 00:10:16,792 Non mwen se Rob, ak sa a te [fèbl]. 177 00:10:16,792 --> 00:10:21,888