1 00:00:00,000 --> 00:00:02,770 [Powered by Google Translate] [Seksyon 7: pi konfòtab] 2 00:00:02,770 --> 00:00:05,090 [Rob Bowden] [Inivèsite Harvard] 3 00:00:05,090 --> 00:00:07,930 [Sa a se CS50] [CS50.TV] 4 00:00:07,930 --> 00:00:10,110 Tout dwa. Se konsa, tankou mwen te di nan imel mwen an, 5 00:00:10,110 --> 00:00:14,060 sa a se pral gen yon seksyon binè-pyebwa-entansif. 6 00:00:14,060 --> 00:00:16,820 Men, gen pa ki anpil kesyon. 7 00:00:16,820 --> 00:00:18,920 Se konsa, nou pwal eseye ak trase soti chak kesyon 8 00:00:18,920 --> 00:00:25,430 epi ale nan detay ki fè mal nan tout fason yo pi bon nan fè bagay. 9 00:00:25,430 --> 00:00:31,200 Se konsa, dwa nan kòmansman an, nou ale nan desen echantiyon nan pyebwa binè ak lòt bagay. 10 00:00:31,200 --> 00:00:35,970 Se konsa, isit la, "Sonje ke yon pye bwa binè gen nœuds menm jan ak sa yo ki nan yon lis lye, 11 00:00:35,970 --> 00:00:38,150 eksepte olye de yon konsèy ki te gen de: youn pou 'pitit' bò gòch la 12 00:00:38,150 --> 00:00:41,950 ak yonn pou 'timoun nan' dwa. " 13 00:00:41,950 --> 00:00:45,630 Se konsa, yon pye bwa binè se jis tankou yon lis lye, 14 00:00:45,630 --> 00:00:47,910 eksepte struct a pral gen de pwent. 15 00:00:47,910 --> 00:00:51,390 Genyen nan pye bwa trinary, ki fè yo pral gen twa endikasyon, 16 00:00:51,390 --> 00:00:56,540 gen N-ari pye bwa, ki jis gen yon konsèy jenerik 17 00:00:56,540 --> 00:01:00,320 ke ou Lè sa a, gen malok yo dwe gwo ase gen 18 00:01:00,320 --> 00:01:04,840 endikasyon ase nan tout timoun yo posib. 19 00:01:04,840 --> 00:01:08,200 Se konsa, pyebwa binè jis k ap pase gen yon nimewo konstan nan de. 20 00:01:08,200 --> 00:01:11,260 Si ou vle, ou kapab bay yon lis lye kòm yon pye bwa unèr, 21 00:01:11,260 --> 00:01:15,360 men mwen pa panse ke nenpòt moun ki rele l sa. 22 00:01:15,360 --> 00:01:18,060 "Trase yon dyagram bwat-ak-flèch nan yon ne pyebwa binè 23 00:01:18,060 --> 00:01:24,110 ki gen pi renmen nimewo Nate a, 7, kote chak konsèy timoun se nil. " 24 00:01:24,110 --> 00:01:27,780 Se konsa, iPad mòd. 25 00:01:27,780 --> 00:01:30,280 >> Li k ap pase yo dwe trè senp. 26 00:01:30,280 --> 00:01:36,150 Nou jis ap pral gen yon ne, mwen pral trase li kòm yon kare. 27 00:01:36,150 --> 00:01:38,730 Apre sa, m'a fè desen valè yo nan isit la. 28 00:01:38,730 --> 00:01:41,090 Se konsa, valè a pral ale nan isit la, 29 00:01:41,090 --> 00:01:44,770 ak Lè sa a, desann isit la n ap gen konsèy gòch la sou bò gòch la ak konsèy nan dwa sou bò dwat la. 30 00:01:44,770 --> 00:01:50,430 E li se anpil se konsa konvansyon yo rele li kite la ak dwa, non yo konsèy. 31 00:01:50,430 --> 00:01:52,460 Tou de sa yo yo ale nan pral nil. 32 00:01:52,460 --> 00:01:57,870 Ki pral jis pral nil, e ke yo pral jis pral nil. 33 00:01:57,870 --> 00:02:03,630 Oke. Se konsa, tounen nan isit la. 34 00:02:03,630 --> 00:02:05,700 "Ak yon lis lye, nou sèlman te gen nan magazen yon konsèy 35 00:02:05,700 --> 00:02:09,639 ne nan premye nan lis la nan lòd yo sonje tout lis la lye, oswa lis nan tout antye. 36 00:02:09,639 --> 00:02:11,650 Menm jan an tou, ak pye bwa, nou gen sèlman yo estoke yon konsèy 37 00:02:11,650 --> 00:02:13,420 nan yon ne sèl yo nan lòd yo sonje pyebwa a tout antye. 38 00:02:13,420 --> 00:02:15,980 Sa a ne se CALLE 'rasin lan' nan pyebwa sa a. 39 00:02:15,980 --> 00:02:18,320 Bati sou dyagram ou yo devan oubyen desine yon nouvo 40 00:02:18,320 --> 00:02:21,690 tankou ke ou gen yon ilistrasyon bwat-ak-flèch nan yon pyebwa binè 41 00:02:21,690 --> 00:02:25,730 ak nan valè a 7, Lè sa a, 3 nan bò gòch lan, 42 00:02:25,730 --> 00:02:32,760 Lè sa a, 9 sou bò dwat la, ak Lè sa a, 6 sou bò dwat la nan 3 a. " 43 00:02:32,760 --> 00:02:34,810 Ann gade pou wè si mwen ka sonje nan tout sa nan tèt mwen. 44 00:02:34,810 --> 00:02:37,670 Se konsa, sa a se pral fè rasin nou moute isit la. 45 00:02:37,670 --> 00:02:41,600 Nou pral gen kèk konsèy yon kote, yon bagay ke nou ap rele rasin, 46 00:02:41,600 --> 00:02:45,140 epi li lonje dwèt sa a nèg. 47 00:02:45,140 --> 00:02:48,490 Koulye a, fè yon ne nouvo, 48 00:02:48,490 --> 00:02:52,870 sa nou genyen, 3 sou bò gòch la? 49 00:02:52,870 --> 00:02:57,140 Se konsa, yon ne nouvo ak 3, epi li okòmansman pwen nil. 50 00:02:57,140 --> 00:02:59,190 Mwen pral jis mete N. 51 00:02:59,190 --> 00:03:02,250 Koulye a, nou vle fè ki ale nan kite nan 7. 52 00:03:02,250 --> 00:03:06,840 Se konsa, nou chanje sa a konsèy kounye a lonje dwèt sou sa a Guy. 53 00:03:06,840 --> 00:03:12,420 E nou fè menm bagay la. Nou vle yon 9 sou isit la 54 00:03:12,420 --> 00:03:14,620 ki okòmansman jis di nil. 55 00:03:14,620 --> 00:03:19,600 Nou pwal chanje sa a konsèy, pwen nan 9, 56 00:03:19,600 --> 00:03:23,310 e kounye a, nou vle mete 6 a dwat a 3. 57 00:03:23,310 --> 00:03:32,170 Se konsa, li pral - fè yon 6. 58 00:03:32,170 --> 00:03:34,310 Ak ke nèg ap pwen la. 59 00:03:34,310 --> 00:03:38,320 Oke. Se konsa, ki nan tout sa li mande nou fè. 60 00:03:38,320 --> 00:03:42,770 >> Koulye a, kite a ale sou kèk tèminoloji. 61 00:03:42,770 --> 00:03:46,690 Nou deja te pale osijè de ki jan rasin nan pyebwa a se ne nan tèt-pi nan pyebwa sa a. 62 00:03:46,690 --> 00:03:54,720 Yon sèl la ki gen 7. Nœuds yo nan fon an nan pye bwa a yo rele fèy yo. 63 00:03:54,720 --> 00:04:01,240 Nenpòt ne ki jis gen nil tankou yon timoun li yo se yon fèy. 64 00:04:01,240 --> 00:04:03,680 Se konsa, li se posib, si pye bwa binè nou se jis yon ne sèl, 65 00:04:03,680 --> 00:04:10,130 ki yon pyebwa se yon fèy, ak sa a, se li. 66 00:04:10,130 --> 00:04:12,060 "'Wotè nan' nan pye bwa a se nimewo a nan so ou gen fè 67 00:04:12,060 --> 00:04:16,620 jwenn nan tèt la nan yon fèy. " 68 00:04:16,620 --> 00:04:18,640 Nou pral jwenn nan, nan yon dezyèm fwa, diferans lan 69 00:04:18,640 --> 00:04:21,940 ant pyebwa balanse ak dezekilib binè, 70 00:04:21,940 --> 00:04:29,470 men pou kounye a, wotè an jeneral nan pye bwa sa a 71 00:04:29,470 --> 00:04:34,520 Mwen ta ka di se 3, byenke si ou konte kantite so 72 00:04:34,520 --> 00:04:39,710 ou te fè yo nan lòd pou li ale nan 9, Lè sa a, li vrèman se sèlman yon wotè ki 2. 73 00:04:39,710 --> 00:04:43,340 Kounye a sa a se yon pyebwa binè dezekilib, 74 00:04:43,340 --> 00:04:49,840 men nou pwal pale sou balanse lè li vin gen ki enpòtan. 75 00:04:49,840 --> 00:04:52,040 Se konsa, kounye a nou ka pale de nœuds nan yon pye bwa nan tèm 76 00:04:52,040 --> 00:04:54,700 relatif nan nœuds yo ak lòt nan pyebwa sa a. 77 00:04:54,700 --> 00:04:59,730 Se konsa, kounye a nou gen paran yo, timoun yo, frè ak sè, zansèt yo, ak pitit pitit. 78 00:04:59,730 --> 00:05:05,650 Yo se bèl bon sans, ki sa yo vle di. 79 00:05:05,650 --> 00:05:09,610 Si nou mande - paran li a. 80 00:05:09,610 --> 00:05:12,830 Se konsa, sa se paran an sou 3? 81 00:05:12,830 --> 00:05:16,090 [Elèv yo] 7. >> Yeah. Paran an se jis pral fè sa ki pwen ou. 82 00:05:16,090 --> 00:05:20,510 Lè sa a, ki sa yo se timoun yo nan 7 la? 83 00:05:20,510 --> 00:05:23,860 [Elèv yo] 3 ak 9. >> Yeah. 84 00:05:23,860 --> 00:05:26,460 Remake "timoun" literalman vle di timoun yo, 85 00:05:26,460 --> 00:05:31,010 se konsa 6 pa t 'vle aplike yo, paske li nan tankou yon pitit pitit. 86 00:05:31,010 --> 00:05:35,540 Men, Lè sa a, si n 'al jwenn pitit pitit, se konsa ki sa yo se pitit pitit yo nan 7? 87 00:05:35,540 --> 00:05:37,500 [Elèv yo] 3, 6 ak 9. >> Yeah. 88 00:05:37,500 --> 00:05:42,330 Pitit pitit yo nan ne an rasin a pwal tout sa ki nan pye bwa a, 89 00:05:42,330 --> 00:05:47,950 eksepte petèt ne nan rasin tèt li, si ou pa vle konsidere ke yon pitit. 90 00:05:47,950 --> 00:05:50,750 Epi finalman, zansèt, kidonk li a direksyon opoze a. 91 00:05:50,750 --> 00:05:55,740 Se konsa, sa yo se zansèt yo nan 6? 92 00:05:55,740 --> 00:05:58,920 [Elèv yo] 3 ak 7. >> Yeah. 9 se pa sa enkli ladan li. 93 00:05:58,920 --> 00:06:02,520 Se jis nan do a filiation dirèk nan rasin lan 94 00:06:02,520 --> 00:06:13,230 a pwal zansèt nou yo. 95 00:06:13,230 --> 00:06:16,300 >> "Nou di ke se yon pye bwa binè 'te bay lòd', si pou chak ne nan pyebwa a, 96 00:06:16,300 --> 00:06:19,530 tout pitit pitit li yo sou bò gòch la gen pi piti valè 97 00:06:19,530 --> 00:06:22,890 ak tout nan yo menm ki sou bò dwat la yo gen pi gwo valè. 98 00:06:22,890 --> 00:06:27,060 Pou egzanp, yon pyebwa ki pi wo a te bay lòd men li pa aranjman an sèlman posib bay lòd la. " 99 00:06:27,060 --> 00:06:30,180 Anvan nou jwenn ak sa yo ki, 100 00:06:30,180 --> 00:06:36,420 se yon pyebwa binè te bay lòd ke yo rele tou yon pye bwa rechèch binè. 101 00:06:36,420 --> 00:06:38,660 Isit la nou rive yo dwe rele li yon pyebwa binè te bay lòd, 102 00:06:38,660 --> 00:06:41,850 Men, mwen pa janm tande li rele yon pyebwa binè te bay lòd anvan, 103 00:06:41,850 --> 00:06:46,650 yo, epi sou yon egzamen nou yo se pi plis chans yo mete binè pyebwa rechèch. 104 00:06:46,650 --> 00:06:49,250 Yo ap yon sèl ak menm bagay la tou, 105 00:06:49,250 --> 00:06:54,580 ak li enpòtan ou rekonèt distenksyon ki genyen ant pyebwa binè ak pyebwa rechèch binè. 106 00:06:54,580 --> 00:06:58,830 Yon pye bwa binè se jis yon pye bwa ki pwen a de bagay sa yo. 107 00:06:58,830 --> 00:07:02,120 Chak ne pwen a de bagay sa yo. 108 00:07:02,120 --> 00:07:06,310 Pa gen okenn rezònman sou valè yo ke li lonje dwèt yo. 109 00:07:06,310 --> 00:07:11,370 Se konsa, renmen sou isit la, depi li nan yon pyebwa rechèch binè, 110 00:07:11,370 --> 00:07:14,030 nou konnen ke si nou ale rete nan 7, 111 00:07:14,030 --> 00:07:16,670 Lè sa a, tout valè sa yo ke nou ka pètèt rive jwenn 112 00:07:16,670 --> 00:07:19,310 pa ale rete nan 7 gen yo dwe pi piti pase 7. 113 00:07:19,310 --> 00:07:24,070 Remake tout valè yo mwens pase 7 se 3 ak 6. 114 00:07:24,070 --> 00:07:26,040 Moun sa yo se tout nan kite nan 7. 115 00:07:26,040 --> 00:07:29,020 Si nou ale a dwat a 7, tout bagay te ka pi plis pase 7, 116 00:07:29,020 --> 00:07:33,220 Se konsa 9 se a dwat a 7, konsa nou ap bon. 117 00:07:33,220 --> 00:07:36,150 Sa a se pa ka a pou yon pye bwa binè, 118 00:07:36,150 --> 00:07:40,020 pou yon pye bwa binè regilye nou ka jis gen 3 nan tèt la, 7 a gòch la, 119 00:07:40,020 --> 00:07:47,630 9 nan kite nan 7; gen nan pa gen kòmann-nan nan valè tou. 120 00:07:47,630 --> 00:07:56,140 Koulye a, nou pa pral aktyèlman fè sa a paske li nan fatigan ak nesesè, 121 00:07:56,140 --> 00:07:59,400 men "eseye trase kòm anpil te bay lòd pye bwa kòm ou ka panse a 122 00:07:59,400 --> 00:08:01,900 lè l sèvi avèk chif yo 7, 3, 9, ak 6. 123 00:08:01,900 --> 00:08:06,800 Konbyen aranjman distenk ki genyen? Ki sa ki se wotè a nan chak yon sèl? " 124 00:08:06,800 --> 00:08:10,480 >> Nou pral fè yon koup, men lide prensipal se, 125 00:08:10,480 --> 00:08:16,530 sa a se nan okenn fason yon reprezantasyon inik nan yon pye bwa ki gen binè valè sa yo. 126 00:08:16,530 --> 00:08:22,760 Tout sa nou bezwen se kèk pyebwa binè ki gen 7, 3, 6, ak 9. 127 00:08:22,760 --> 00:08:25,960 Yon lòt posib yon sèl ki valab ta dwe rasin lan se 3, 128 00:08:25,960 --> 00:08:30,260 ale nan bò gòch la ak li nan 6, ale nan bò gòch la ak li nan 7, 129 00:08:30,260 --> 00:08:32,730 ale nan bò gòch la ak li nan 9. 130 00:08:32,730 --> 00:08:36,169 Sa se yon binè pyebwa parfe ki valab rechèch. 131 00:08:36,169 --> 00:08:39,570 Li pa trè itil, paske li nan jis tankou yon lis lye 132 00:08:39,570 --> 00:08:43,750 ak tout moun sa yo endikasyon yo se jis nil. 133 00:08:43,750 --> 00:08:48,900 Men, li se yon pyebwa ki valid. Yeah? 134 00:08:48,900 --> 00:08:51,310 [Elèv] Eske pa valè yo gen yo dwe pi gwo sou bò dwat la? 135 00:08:51,310 --> 00:08:56,700 Oswa se sa a -? >> Sa yo mwen vle di ke yo ale nan lòt fason. 136 00:08:56,700 --> 00:09:00,960 Genyen tou - yeah, kite la chanje sa. 137 00:09:00,960 --> 00:09:07,770 9, 7, 6, 3. Bon peche. 138 00:09:07,770 --> 00:09:11,730 Li toujou gen yo obeyi sa ki yon rechèch pyebwa binè sipoze fè. 139 00:09:11,730 --> 00:09:15,650 Se konsa, tout bagay sa yo bò gòch la gen li dwe mwens pase nenpòt ne bay yo. 140 00:09:15,650 --> 00:09:23,180 Nou te ka jis deplase, di, sa a 6 li mete l 'isit la. 141 00:09:23,180 --> 00:09:26,880 Non, nou pa kapab. Poukisa mwen kontinye ap fè sa? 142 00:09:26,880 --> 00:09:35,350 Se pou nou fè - isit la se 6, isit la se 7, 6 pwen nan 3. 143 00:09:35,350 --> 00:09:39,290 Sa se toujou yon binè pyebwa ki valab rechèch. 144 00:09:39,290 --> 00:09:49,260 Sa ki mal si mwen - kite a wè si mwen ka vini ak yon aranjman. 145 00:09:49,260 --> 00:09:52,280 Yeah, oke. Se konsa, sa ki mal ak pye bwa sa a? 146 00:09:52,280 --> 00:10:08,920 Mwen devine mwen te deja ba ou yon allusion ki di ke gen yon bagay mal ak li. 147 00:10:08,920 --> 00:10:14,430 Poukisa mwen kontinye ap fè sa? 148 00:10:14,430 --> 00:10:18,510 Oke. Sa a sanble rezonab. 149 00:10:18,510 --> 00:10:22,590 Si nou gade nan chak ne, tankou 7, Lè sa a, nan kite nan 7 se yon 3. 150 00:10:22,590 --> 00:10:24,960 Se konsa, nou gen 3, bagay la a dwat a 3 se yon 6. 151 00:10:24,960 --> 00:10:27,750 Men, si ou gade nan 6, bagay la a dwat a 6 se yon 9. 152 00:10:27,750 --> 00:10:30,910 Se konsa, poukisa sa a pa yon binè pyebwa ki valab rechèch? 153 00:10:30,910 --> 00:10:36,330 [Elèv yo] 9 se toujou nan kite nan 7. >> Yeah. 154 00:10:36,330 --> 00:10:43,710 Li fèt pou laverite ke tout valè ou ka posib rive jwenn pa ale nan kite nan 7 yo gen mwens pase 7. 155 00:10:43,710 --> 00:10:49,120 Si nou ale rete nan 7, nou jwenn nan 3 epi nou ka toujou jwenn a 6, 156 00:10:49,120 --> 00:10:52,520 nou ka toujou jwenn a 9, men si w ale mwens pase 7, 157 00:10:52,520 --> 00:10:55,070 nou pa ta dwe kapab jwenn nan yon nimewo ki nan pi gran pase 7. 158 00:10:55,070 --> 00:10:59,830 Se konsa, sa a se pa yon binè pyebwa ki valab rechèch. 159 00:10:59,830 --> 00:11:02,330 >> Frè m 'lan aktyèlman te gen yon kesyon entèvyou 160 00:11:02,330 --> 00:11:07,760 sa yo ki te fondamantalman sa a, jis kòd moute yon bagay yo valide 161 00:11:07,760 --> 00:11:10,500 si yon pyebwa se yon pye bwa rechèch binè, 162 00:11:10,500 --> 00:11:13,580 e konsa nan premye bagay li te fè te jis tcheke wè 163 00:11:13,580 --> 00:11:17,020 si bò gòch la ak dwa yo se kòrèk, epi li Lè sa a, repekte anba isit la. 164 00:11:17,020 --> 00:11:19,700 Men, ou pa ka jis fè sa; ou gen nan kenbe tras 165 00:11:19,700 --> 00:11:22,550 nan lefèt ke kounye a ke mwen te ale rete nan 7, 166 00:11:22,550 --> 00:11:26,340 tout bagay nan sa a subtree dwe pi piti pase 7. 167 00:11:26,340 --> 00:11:28,430 Algorithm ki kòrèk la bezwen kenbe tras 168 00:11:28,430 --> 00:11:35,970 nan avèk limit yo ki valè yo ka pètèt tonbe pous 169 00:11:35,970 --> 00:11:38,360 Nou pa pral ale nan tout nan yo. 170 00:11:38,360 --> 00:11:41,630 Gen yon relasyon ankò bèl, 171 00:11:41,630 --> 00:11:44,810 byenke nou pa gen vinn bay moun, oswa nou pa pral jwenn nan sa yo, 172 00:11:44,810 --> 00:11:47,030 defini ki jan anpil gen aktyèlman yo. 173 00:11:47,030 --> 00:11:53,180 Se konsa, gen 14 nan yo. 174 00:11:53,180 --> 00:11:56,020 Lide a nan kijan ou ta fè li nan matematik, se tankou, 175 00:11:56,020 --> 00:11:59,770 ou ka chwazi nenpòt yon sèl yo dwe ne nan rasin, 176 00:11:59,770 --> 00:12:03,160 ak Lè sa a, si mwen chwazi 7 yo dwe ne nan rasin, 177 00:12:03,160 --> 00:12:08,150 Lè sa a, gen, di, kèk nimewo ki ka ale pou ne gòch mwen an, 178 00:12:08,150 --> 00:12:10,440 e gen kèk nimewo ki kapab ne dwat mwen, 179 00:12:10,440 --> 00:12:15,090 Men, si mwen te N nimewo total, Lè sa a, kantite lajan sa a ki ka ale nan bò gòch la 180 00:12:15,090 --> 00:12:18,820 plis lajan ke yo ka ale nan dwa a ap n - 1. 181 00:12:18,820 --> 00:12:26,130 Se konsa, nan nimewo ki rete yo, yo gen pou kapab ale swa a gòch la oswa dwa a. 182 00:12:26,130 --> 00:12:31,580 Li sanble difisil sa, si mwen mete 3 premye Lè sa a, tout bagay gen pou yo ale nan bò gòch lan, 183 00:12:31,580 --> 00:12:35,080 Men, si mwen mete 7, Lè sa a, kèk bagay ka ale bò gòch la a ak kèk bagay ka ale nan bò dwat la. 184 00:12:35,080 --> 00:12:39,570 Ak pa '3 'premye fwa mwen te vle di tout bagay ka ale nan bò dwat la. 185 00:12:39,570 --> 00:12:42,350 Li nan reyèlman, ou jis gen panse osijè de li kòm, 186 00:12:42,350 --> 00:12:47,980 konbyen bagay sa yo ka ale sou nivo kap vini an nan pyebwa sa a. 187 00:12:47,980 --> 00:12:50,420 Ak li vini soti nan gen 14; oswa ou ka rale tout nan yo, 188 00:12:50,420 --> 00:12:54,650 ak Lè sa a, ou pral jwenn 14. 189 00:12:54,650 --> 00:13:01,120 >> Ale tounen isit la, 190 00:13:01,120 --> 00:13:03,510 "Lòd pou fè pye bwa binè yo fre paske nou kapab fè rechèch nan yo 191 00:13:03,510 --> 00:13:06,910 nan yon fason yo chèche sou yon etalaj Ranje trè sanblab. 192 00:13:06,910 --> 00:13:10,120 Pou fè sa, nou kòmanse nan rasin lan ak travay wout nou desann pye bwa a 193 00:13:10,120 --> 00:13:13,440 nan direksyon pou fèy yo, tcheke valè chak ne a kont valè yo nou 're chache. 194 00:13:13,440 --> 00:13:15,810 Si valè ne yo ye a se mwens pase valè an ke nou ap chèche pou yo, 195 00:13:15,810 --> 00:13:18,050 ou ale bò kote dwa timoun ne la. 196 00:13:18,050 --> 00:13:20,030 Sinon, ou ale nan pitit gòch ne la. 197 00:13:20,030 --> 00:13:22,800 Nan kèk pwen, ou pral swa jwenn valè nan w ap chèche pou yo, oswa ou pral kouri antre nan yon nil, 198 00:13:22,800 --> 00:13:28,520 ki endike valè a se pa nan pyebwa sa a. " 199 00:13:28,520 --> 00:13:32,450 Mwen dwe rdesine pyebwa sa a nou te gen anvan; ki ap pran yon dezyèm fwa. 200 00:13:32,450 --> 00:13:38,280 Men, nou vle gade moute si 6, 10, ak 1 yo nan pyebwa sa a. 201 00:13:38,280 --> 00:13:49,180 Se konsa, sa li te, 7, 9, 3, 6. Oke. 202 00:13:49,180 --> 00:13:52,730 Nimewo sa yo ou vle gade leve, nou vle yo gade jiska 6. 203 00:13:52,730 --> 00:13:55,440 Kòman sa fèt algorithm? 204 00:13:55,440 --> 00:14:03,040 Oke, nou menm tou nou gen kèk konsèy rasin pyebwa nou yo. 205 00:14:03,040 --> 00:14:12,460 E nou ta ale nan rasin lan ak di, se sa a valè ki egal ak valè an ke nou ap chèche pou? 206 00:14:12,460 --> 00:14:15,000 Se konsa, nou ap chèche pou 6, se konsa li pa egal. 207 00:14:15,000 --> 00:14:20,140 Se konsa, nou kenbe prale a, e kounye a, nou di, oke, se konsa 6 se mwens pase 7. 208 00:14:20,140 --> 00:14:23,940 sa vle di nou vle pou yo ale nan bò gòch la, oswa nou vle pou yo ale nan dwa a? 209 00:14:23,940 --> 00:14:27,340 [Elèv] Left. >> Yeah. 210 00:14:27,340 --> 00:14:33,340 Li nan siyifikativman pi fasil, tout sa ou dwe fè se desine yon posib ne nan pye bwa a 211 00:14:33,340 --> 00:14:37,760 ak Lè sa a, ou don't - olye pou yo ap eseye panse nan tèt ou, 212 00:14:37,760 --> 00:14:40,020 oke, si li nan mwens, m 'ale nan bò gòch la oswa ale dwat la, 213 00:14:40,020 --> 00:14:43,030 jis gade nan foto sa a, li trè klè ke mwen gen pou yo ale nan bò gòch la 214 00:14:43,030 --> 00:14:47,700 si sa a ne se pi gran pase valè a ke mwen kap chèche. 215 00:14:47,700 --> 00:14:52,600 Se konsa, ou fè bò dwat, kounye a mwen nan 3. 216 00:14:52,600 --> 00:14:57,770 Mwen vle - 3 se mwens pase valè a mwen kap chèche, ki se 6. 217 00:14:57,770 --> 00:15:03,420 Se konsa, nou ale nan dwa an, epi koulye a, mwen fini nan 6, 218 00:15:03,420 --> 00:15:07,380 ki se valè a mwen kap chèche, se konsa mwen retounen vre. 219 00:15:07,380 --> 00:15:15,760 Valè nan pwochen mwen pral gade pou se 10. 220 00:15:15,760 --> 00:15:23,230 Oke. Se konsa, 10, koulye a, ki pral - koupe sa - ale nan swiv rasin lan. 221 00:15:23,230 --> 00:15:27,670 Koulye a, 10 a pwal pi gran pase 7, Se konsa, mwen vle gade a dwat la. 222 00:15:27,670 --> 00:15:31,660 Mwen pral vin sou isit la, 10 a pwal pi gran pase 9, 223 00:15:31,660 --> 00:15:34,520 se konsa mwen pral vle gade a dwat la. 224 00:15:34,520 --> 00:15:42,100 Mwen vin sou isit la, men isit la sou kounye a Mwen nan nil. 225 00:15:42,100 --> 00:15:44,170 Kisa pou mwen fè si mwen frape nil? 226 00:15:44,170 --> 00:15:47,440 [Elèv] Retounen fo? >> Yeah. Mwen pa t 'jwenn 10. 227 00:15:47,440 --> 00:15:49,800 1 a pwal yon ka prèske idantik, 228 00:15:49,800 --> 00:15:51,950 eksepte li jis yo pral ranvèrse; olye pou yo kap 229 00:15:51,950 --> 00:15:56,540 desann bò dwat la, mwen pral gade desann bò gòch la. 230 00:15:56,540 --> 00:16:00,430 >> Koulye a, mwen panse ke nou aktyèlman jwenn kòd. 231 00:16:00,430 --> 00:16:04,070 Isit la nan kote - louvri moute aparèy la CS50 ak navige fason ou a, 232 00:16:04,070 --> 00:16:07,010 men ou ka tou jis fè li nan espas la. 233 00:16:07,010 --> 00:16:09,170 Li pwobableman ideyal yo fè li nan espas la, 234 00:16:09,170 --> 00:16:13,760 paske nou ka travay nan espas la. 235 00:16:13,760 --> 00:16:19,170 "Premye nou pral bezwen yon definisyon kalite nouvo pou yon ne pyebwa binè ki gen valè int. 236 00:16:19,170 --> 00:16:21,400 Lè l sèvi avèk boilerplate nan tipedèf anba a, 237 00:16:21,400 --> 00:16:24,510 kreye yon definisyon kalite nouvo pou yon ne nan yon pyebwa binè. 238 00:16:24,510 --> 00:16:27,930 Si ou jwenn kole. . . "Bla, bla, bla. Okay. 239 00:16:27,930 --> 00:16:30,380 Se konsa, kite a mete boilerplate a isit la, 240 00:16:30,380 --> 00:16:41,630 tipedèf struct ne, ak ne. Yeah, oke. 241 00:16:41,630 --> 00:16:44,270 Se konsa, sa yo se jaden yo nou pral vle nan ne nou an? 242 00:16:44,270 --> 00:16:46,520 [Elèv] Int ak Lè sa a, de pwent? 243 00:16:46,520 --> 00:16:49,700 >> Int valè, de pwent? Kouman pou mwen ekri pwent yo? 244 00:16:49,700 --> 00:16:58,440 [Elèv] struct. >> M 'ta dwe rale pous Yeah, se konsa struct ne * kite, 245 00:16:58,440 --> 00:17:01,320 ak struct ne * dwat. 246 00:17:01,320 --> 00:17:03,460 Epi sonje diskisyon an soti nan tan sot pase yo, 247 00:17:03,460 --> 00:17:15,290 ke sa a pa fè okenn sans, sa a pa fè okenn sans, 248 00:17:15,290 --> 00:17:18,270 sa a pa fè okenn sans. 249 00:17:18,270 --> 00:17:25,000 Ou bezwen tout bagay gen yo nan lòd yo defini sa a struct repetitif. 250 00:17:25,000 --> 00:17:27,970 Oke, kidonk se sa ki pyebwa nou ki pral sanble. 251 00:17:27,970 --> 00:17:37,670 Si nou te fè sa yon pyebwa trinary, lè sa a yon ne ta ka gade tankou b2 b1,, struct ne * B3, 252 00:17:37,670 --> 00:17:43,470 kote b se yon branch - aktyèlman, mwen te plis tande l 'kite, mwayen, dwat, men tou sa. 253 00:17:43,470 --> 00:17:55,610 Nou sèlman swen sou binè, se konsa dwat, kite. 254 00:17:55,610 --> 00:17:59,110 "Kounye a, deklare yon ne mondyal varyab * pou rasin lan pyebwa sa a." 255 00:17:59,110 --> 00:18:01,510 Se konsa, nou pa ale fè sa. 256 00:18:01,510 --> 00:18:08,950 Nan lòd fè bagay sa yo yon ti kras pi difisil ak plis ankò jeneralize, 257 00:18:08,950 --> 00:18:11,570 nou pa pral gen yon varyab ne mondyal. 258 00:18:11,570 --> 00:18:16,710 Olye de sa, nan prensipal nou pral esplike nou tout bagay ne nou an, 259 00:18:16,710 --> 00:18:20,500 ak ki vle di ke anba a, lè nou kòmanse ap kouri 260 00:18:20,500 --> 00:18:23,130 fonksyon konprann nou yo ak fonksyon insert nou an, 261 00:18:23,130 --> 00:18:27,410 olye pou yo konprann nou fonksyon jis lè l sèvi avèk sa a varyab ne mondyal, 262 00:18:27,410 --> 00:18:34,280 nou pral genyen li pran kòm yon agiman pyebwa a ke nou vle li nan travay sou. 263 00:18:34,280 --> 00:18:36,650 Èske w gen varyab mondyal la te sipoze fè bagay sa yo pi fasil. 264 00:18:36,650 --> 00:18:42,310 Nou pral fè bagay sa yo pi rèd. 265 00:18:42,310 --> 00:18:51,210 Koulye a, pran yon minit oswa konsa jis fè sa a sòt de bagay sa, 266 00:18:51,210 --> 00:18:57,690 kote andedan nan prensipal ou vle kreye pye bwa sa a, ak ki nan tout sa ou vle fè. 267 00:18:57,690 --> 00:19:04,530 Eseye ak konstwi pye bwa sa a nan fonksyon prensipal ou an. 268 00:19:42,760 --> 00:19:47,610 >> Oke. Se konsa, ou pa menm gen yo te konstwi pyebwa sa a wout la tout antye ankò. 269 00:19:47,610 --> 00:19:49,840 Men, nenpòt moun ki gen yon bagay mwen te kapab rale moute 270 00:19:49,840 --> 00:20:03,130 yo montre ki jan yon moun ka kòmanse konstwi tankou yon pyebwa? 271 00:20:03,130 --> 00:20:08,080 [Elèv] tapan Yon moun a, ap eseye jwenn deyò. 272 00:20:08,080 --> 00:20:13,100 [Bowden] Nenpòt moun ki konfòtab ak konstriksyon pyebwa yo? 273 00:20:13,100 --> 00:20:15,520 [Elèv] Sure. Li pa nan fè. >> Li nan amann. Nou ka jis fini - 274 00:20:15,520 --> 00:20:26,860 oh, èske ou kapab sove li? Hooray. 275 00:20:26,860 --> 00:20:32,020 Se konsa, isit la nou genyen - o, mwen yon ti kras koupe. 276 00:20:32,020 --> 00:20:34,770 Èske mwen agrandi nan? 277 00:20:34,770 --> 00:20:37,730 Rale nan, woulo liv deyò. >> Mwen gen yon kesyon. >> Yeah? 278 00:20:37,730 --> 00:20:44,410 [Elèv] Lè ou defini struct, se bagay sa yo tankou inisyalizèd anyen? 279 00:20:44,410 --> 00:20:47,160 [Bowden] No >> Okay. Se konsa, ou ta gen yo inisyalize - 280 00:20:47,160 --> 00:20:50,450 [Bowden] No Lè ou defini, oswa lè ou deklare yon struct, 281 00:20:50,450 --> 00:20:55,600 ki sa li pa inisyalizèd pa default; li nan jis tankou si ou deklare yon int. 282 00:20:55,600 --> 00:20:59,020 Li nan egzakteman menm bagay la. Se tankou chak nan jaden endividyèl li yo 283 00:20:59,020 --> 00:21:04,460 ka gen yon valè fatra nan li. >> Epi se li posib defini - oswa yo deklare yon struct 284 00:21:04,460 --> 00:21:07,740 nan yon fason ki li fè sa inisyalize yo? 285 00:21:07,740 --> 00:21:13,200 [Bowden] Wi. Se konsa, rakoursi inisyalizasyon sentaks 286 00:21:13,200 --> 00:21:18,660 ki pral gade tankou - 287 00:21:18,660 --> 00:21:22,200 Genyen de fason nou ka fè sa. Mwen panse ke nou ta dwe konpile li 288 00:21:22,200 --> 00:21:25,840 asire w sonnen tou sa a. 289 00:21:25,840 --> 00:21:28,510 Lòd la nan agiman ki vini nan struct a, 290 00:21:28,510 --> 00:21:32,170 ou mete kòm lòd la nan agiman andedan nan sa yo aparèy òtopedik Curly. 291 00:21:32,170 --> 00:21:35,690 Se konsa, si ou vle inisyalize li nan 9, epi yo kite yo nil epi Lè sa a, dwa pral nil, 292 00:21:35,690 --> 00:21:41,570 li ta 9, nil, nil. 293 00:21:41,570 --> 00:21:47,890 Altènatif a se, ak editè nan pa renmen sa a sentaks, 294 00:21:47,890 --> 00:21:50,300 epi li panse mwen vle yon blòk nouvo, 295 00:21:50,300 --> 00:22:01,800 men altènatif la se yon bagay tankou - 296 00:22:01,800 --> 00:22:04,190 isit la, mwen pral mete l 'sou yon liy nouvo. 297 00:22:04,190 --> 00:22:09,140 Ou ka klèman di, mwen bliye sentaks an egzak. 298 00:22:09,140 --> 00:22:13,110 Se konsa, ou ka klèman adrese yo pa non yo, epi w'a di, 299 00:22:13,110 --> 00:22:21,570 . C, oswa. Valè = 9,. Gòch = nil. 300 00:22:21,570 --> 00:22:24,540 Mwen devine sa yo bezwen yo dwe vigil. 301 00:22:24,540 --> 00:22:29,110 . Dwa = nil, se konsa nan fason sa a ou pa fè sa 302 00:22:29,110 --> 00:22:33,780 aktyèlman bezwen konnen lòd la struct a, 303 00:22:33,780 --> 00:22:36,650 ak ki lè ou ap li sa a, li la pi plis eksplisit 304 00:22:36,650 --> 00:22:41,920 sou sa k valè a ke yo te inisyalizèd a. 305 00:22:41,920 --> 00:22:44,080 >> Sa rive yo dwe youn nan bagay sa yo ke - 306 00:22:44,080 --> 00:22:49,100 se konsa, pou pati ki pi, C + + se yon suransanbl nan C. 307 00:22:49,100 --> 00:22:54,160 Ou ka pran C kòd, deplase li nan men C + +, epi li ta dwe konpile. 308 00:22:54,160 --> 00:22:59,570 Sa a se youn nan bagay sa yo ke C + + pa sipòte, se konsa moun yo gen tandans pa fè li. 309 00:22:59,570 --> 00:23:01,850 Mwen pa konnen si sa a, se rezon ki fè la sèlman moun ki gen tandans pa fè li, 310 00:23:01,850 --> 00:23:10,540 men ka a kote mwen te bezwen sèvi ak li bezwen yo travay avèk C + + ak Se konsa, mwen pa t 'kapab sèvi ak sa a. 311 00:23:10,540 --> 00:23:14,000 Yon lòt egzanp sou yon bagay ki pa travay avèk C + + se 312 00:23:14,000 --> 00:23:16,940 ki jan malok retounen yon "* anile," teknikman, 313 00:23:16,940 --> 00:23:20,200 men ou ta ka jis di Char * x = tou sa malok, 314 00:23:20,200 --> 00:23:22,840 epi li pral otomatikman yo jete nan yon * Char. 315 00:23:22,840 --> 00:23:25,450 Sa jete otomatik pa rive nan C + +. 316 00:23:25,450 --> 00:23:28,150 Sa pa t 'vle konpile, ak ou ta fòmèlman bezwen di 317 00:23:28,150 --> 00:23:34,510 Char *, malok, kèlkeswa sa, nan voye l 'jete nan yon * Char. 318 00:23:34,510 --> 00:23:37,270 Pa gen anpil bagay ki C ak C + + dakò sou li a, 319 00:23:37,270 --> 00:23:40,620 men sa yo se de. 320 00:23:40,620 --> 00:23:43,120 Se konsa, nou pral ale ak sa a sentaks. 321 00:23:43,120 --> 00:23:46,150 Men, menm si nou pa t 'ale ak sa sentaks, 322 00:23:46,150 --> 00:23:49,470 ki sa ki - ta ka sa ki mal ak sa a? 323 00:23:49,470 --> 00:23:52,170 [Elèv] mwen pa bezwen dèreferans li? >> Yeah. 324 00:23:52,170 --> 00:23:55,110 Sonje ke flèch la gen yon dèreferans enplisit, 325 00:23:55,110 --> 00:23:58,230 epi konsa lè nou jis ap fè fas ak yon struct, 326 00:23:58,230 --> 00:24:04,300 nou vle itilize. jwenn nan yon jaden andedan nan struct la. 327 00:24:04,300 --> 00:24:07,200 Menm lè a, sèlman fè nou itilize flèch se lè nou vle fè - 328 00:24:07,200 --> 00:24:13,450 byen, flèch ki ekivalan a - 329 00:24:13,450 --> 00:24:17,020 se sa li ta vle di ke si mwen te itilize flèch. 330 00:24:17,020 --> 00:24:24,600 Tout vle di flèch la, dèreferans sa a, kounye a mwen nan yon struct, e mwen ka jwenn jaden an. 331 00:24:24,600 --> 00:24:28,040 Swa jwenn jaden an dirèkteman oswa dèreferans epi pou yo jwenn jaden an - 332 00:24:28,040 --> 00:24:30,380 Mwen devine sa a ta dwe valè. 333 00:24:30,380 --> 00:24:33,910 Men, isit la mwen fè fas ak jis struct yon, se pa yon konsèy nan yon struct, 334 00:24:33,910 --> 00:24:38,780 Se poutèt sa mwen pa ka sèvi ak flèch la. 335 00:24:38,780 --> 00:24:47,510 Men, sa a sòt de bagay sa nou ka fè pou tout nœuds. 336 00:24:47,510 --> 00:24:55,790 Oh Bondye mwen an. 337 00:24:55,790 --> 00:25:09,540 Sa a se 6, 7, ak 3. 338 00:25:09,540 --> 00:25:16,470 Lè sa a, nou ka mete kanpe branch yo nan pyebwa nou yo, nou ka gen 7 - 339 00:25:16,470 --> 00:25:21,650 nou ka fè sa, bò gòch li yo ta dwe lonje dwèt sou 3. 340 00:25:21,650 --> 00:25:25,130 Se konsa, kouman nou fè sa? 341 00:25:25,130 --> 00:25:29,320 [Elèv yo, enkonpreansibl] >> Yeah. Adrès postal la nan node3, 342 00:25:29,320 --> 00:25:34,170 epi si ou pa t 'gen adrès li, Lè sa a, li jis pa t' vle konpile. 343 00:25:34,170 --> 00:25:38,190 Men, sonje ke sa yo se endikasyon nœuds kap vini yo. 344 00:25:38,190 --> 00:25:44,930 Dwa a ta dwe lonje dwèt sou 9, 345 00:25:44,930 --> 00:25:53,330 ak 3 yo ta dwe lonje dwèt sou bò dwat la a 6. 346 00:25:53,330 --> 00:25:58,480 Mwen panse ke sa a se tout ansanm. Nenpòt kòmantè oswa kesyon? 347 00:25:58,480 --> 00:26:02,060 [Elèv yo, enkonpreansibl] rasin nan a pwal 7. 348 00:26:02,060 --> 00:26:08,210 Nou ka jis di ne * ptr = 349 00:26:08,210 --> 00:26:14,160 oswa rasin, = & node7. 350 00:26:14,160 --> 00:26:20,730 >> Pou rezon nou yo, nou ap pral fè fas ak insert, 351 00:26:20,730 --> 00:26:25,490 pou nou ap ale nan vle ekri yon fonksyon insert nan pye bwa sa a binè 352 00:26:25,490 --> 00:26:34,230 ak insert se inevitableman ale nan rele malok yo kreye yon ne nouvo pou pyebwa sa a. 353 00:26:34,230 --> 00:26:36,590 Se konsa, bagay yo pral jwenn sal ak lefèt ke kèk nœuds 354 00:26:36,590 --> 00:26:38,590 yo se kounye a sou chemine a 355 00:26:38,590 --> 00:26:43,680 ak nœuds lòt yo ale nan fini moute sou pil wòch la, lè nou antre yo. 356 00:26:43,680 --> 00:26:47,640 Sa a se parfe ki valab, men rezon ki fè la sèlman 357 00:26:47,640 --> 00:26:49,600 nou ap kapab fè sa a sou chemine a 358 00:26:49,600 --> 00:26:51,840 se paske li nan tankou yon egzanp parvenus ke nou konnen 359 00:26:51,840 --> 00:26:56,360 se pye bwa a sipoze konstwi kòm 7, 3, 6, 9. 360 00:26:56,360 --> 00:27:02,970 Si nou pa t 'gen sa a, lè sa a nou pa ta gen yo malok an plas an premye. 361 00:27:02,970 --> 00:27:06,160 Kòm nou pral wè yon ti jan pita, nou ta dwe malloc'ing. 362 00:27:06,160 --> 00:27:08,570 Kounye a li nan parfe rezonab mete yo sou chemine a, 363 00:27:08,570 --> 00:27:14,750 Men, kite a chanje sa a nan yon aplikasyon malok. 364 00:27:14,750 --> 00:27:17,160 Se konsa, chak nan sa yo se kounye a pral fè yon bagay tankou 365 00:27:17,160 --> 00:27:24,240 ne * node9 = malok (sizof (ne)). 366 00:27:24,240 --> 00:27:28,040 Epi, koulye a nou pral gen fè chèk nou an. 367 00:27:28,040 --> 00:27:34,010 si (node9 == nil) - Mwen pa t 'vle ke - 368 00:27:34,010 --> 00:27:40,950 retounen 1, ak Lè sa a, nou ka fè node9-> paske kounye a li nan yon konsèy, 369 00:27:40,950 --> 00:27:45,300 valè = 6, node9-> kite = nil, 370 00:27:45,300 --> 00:27:48,930 node9-> dwa = nil, 371 00:27:48,930 --> 00:27:51,410 e nou pral gen fè sa pou chak nan sa yo nœuds. 372 00:27:51,410 --> 00:27:57,490 Se konsa, olye, kite la mete l 'anndan yon fonksyon ki apa a. 373 00:27:57,490 --> 00:28:00,620 Se pou nou rele li ne * build_node, 374 00:28:00,620 --> 00:28:09,050 ak sa a se yon ti jan ki sanble ak APIs a nou bay pou Huffman kodaj. 375 00:28:09,050 --> 00:28:12,730 Nou ba ou fonksyon inisyalizasyon pou yon pye bwa 376 00:28:12,730 --> 00:28:20,520 ak deconstructor "fonksyon" pou moun ki pye bwa ak menm bagay la pou forè. 377 00:28:20,520 --> 00:28:22,570 >> Se konsa, isit la nou pwal gen yon fonksyon inisyalizasyon 378 00:28:22,570 --> 00:28:25,170 jis bati yon ne pou nou. 379 00:28:25,170 --> 00:28:29,320 Epi li pral gade bèl anpil egzakteman tankou sa a. 380 00:28:29,320 --> 00:28:32,230 Apre sa, mwen ap menm pral fè parese epi yo pa chanje non an nan varyab la, 381 00:28:32,230 --> 00:28:34,380 menm si node9 pa fè okenn sans ankò. 382 00:28:34,380 --> 00:28:38,610 Oh, mwen devine valè node9 a pa ta dwe te 6. 383 00:28:38,610 --> 00:28:42,800 Koulye a, nou ka retounen node9. 384 00:28:42,800 --> 00:28:49,550 Ak isit la nou ta dwe retounen nil. 385 00:28:49,550 --> 00:28:52,690 Tout moun dakò sou ki fonksyon bati-yon-ne? 386 00:28:52,690 --> 00:28:59,780 Se konsa, kounye a nou ka jis rele ke yo bati nenpòt ne ki gen yon valè yo bay ak endikasyon nil. 387 00:28:59,780 --> 00:29:09,750 Koulye a, nou ka rele sa, nou ka fè ne * node9 = build_node (9). 388 00:29:09,750 --> 00:29:25,810 Li kite yo fè. . . 389 00:29:25,810 --> 00:29:33,980 , 6, 3, 7, 6, 3, 7. 390 00:29:33,980 --> 00:29:39,330 Epi, koulye a nou vle yo mete kanpe endikasyon yo menm, 391 00:29:39,330 --> 00:29:42,470 eksepte kounye a tout bagay ap deja an tèm de pwent 392 00:29:42,470 --> 00:29:48,480 Se konsa pa bezwen adrès la nan. 393 00:29:48,480 --> 00:29:56,300 Oke. Se konsa, sa ki nan bagay la pase mwen vle fè? 394 00:29:56,300 --> 00:30:03,850 Genyen nan yon erè-w tcheke ke mwen pa fè. 395 00:30:03,850 --> 00:30:06,800 Ki sa ki bati retounen ne? 396 00:30:06,800 --> 00:30:11,660 [Elèv yo, enkonpreansibl] >> Yeah. Si malok echwe, li pral retounen nil. 397 00:30:11,660 --> 00:30:16,460 Se konsa, mwen pral paresezman mete l 'desann isit la olye pou yo fè yon kondisyon pou yo chak. 398 00:30:16,460 --> 00:30:22,320 Si (node9 == nil, oswa - menm senpl, 399 00:30:22,320 --> 00:30:28,020 sa a se ekivalan a jis si node9 pa. 400 00:30:28,020 --> 00:30:38,310 Se konsa, si pa node9, oswa ou pa node6, oswa ou pa node3, oswa ou pa node7, retounen 1. 401 00:30:38,310 --> 00:30:42,850 Petèt nou ta dwe enprime malok echwe, oswa yon bagay. 402 00:30:42,850 --> 00:30:46,680 [Elèv] Èske fo egal a nil kòm byen? 403 00:30:46,680 --> 00:30:51,290 [Bowden] Nenpòt valè zewo se fo. 404 00:30:51,290 --> 00:30:53,920 Se konsa, nil se yon valè zewo. 405 00:30:53,920 --> 00:30:56,780 Zewo se yon valè zewo. Fo se yon valè zewo. 406 00:30:56,780 --> 00:31:02,130 Nenpòt - bèl anpil sèlman 2 valè yo zewo se nil epi zewo, 407 00:31:02,130 --> 00:31:07,900 fo se jis regle defini kòm zewo. 408 00:31:07,900 --> 00:31:13,030 Sa a aplike tou si nou deklare mondyal varyab. 409 00:31:13,030 --> 00:31:17,890 Si nou te gen rasin * ne moute isit la, 410 00:31:17,890 --> 00:31:24,150 Lè sa a, - bagay la bèl sou varyab mondyal se yo ke yo toujou gen yon valè inisyal. 411 00:31:24,150 --> 00:31:27,500 Sa se pa vre nan fonksyon, ki jan andedan nan isit la, 412 00:31:27,500 --> 00:31:34,870 si nou gen, tankou, ne * oswa x ne. 413 00:31:34,870 --> 00:31:37,380 Nou pa gen okenn lide ki sa x.value, x.whatever, 414 00:31:37,380 --> 00:31:40,700 oswa nou te ka enprime yo, li yo ta kapab abitrè. 415 00:31:40,700 --> 00:31:44,980 Sa a se pa vre nan varyab mondyal. 416 00:31:44,980 --> 00:31:47,450 Se konsa, ne rasin oswa x ne. 417 00:31:47,450 --> 00:31:53,410 Pa default, tout bagay ki nan mondyal, si li pa trete keksyon inisyalizèd nan kèk valè, 418 00:31:53,410 --> 00:31:57,390 te gen yon valè zewo kòm valè li yo. 419 00:31:57,390 --> 00:32:01,150 Se konsa, isit la, ne rasin *, nou pa trete keksyon inisyalize li nan anyen, 420 00:32:01,150 --> 00:32:06,350 se konsa valè default li yo pral nil, ki se valè a zewo nan pwent. 421 00:32:06,350 --> 00:32:11,870 Valè a default pou x ki pral vle di ke x.value se zewo, 422 00:32:11,870 --> 00:32:14,260 x.left se nil, ak x.right se nil. 423 00:32:14,260 --> 00:32:21,070 Se konsa, depi li se yon struct, nan tout jaden ki te andeyò struct a pral zewo valè. 424 00:32:21,070 --> 00:32:24,410 Nou pa bezwen sèvi ak ki isit la, menm si. 425 00:32:24,410 --> 00:32:27,320 [Elèv] strukt yo se diferan pase varyab lòt, epi varyab yo lòt yo 426 00:32:27,320 --> 00:32:31,400 valè fatra; sa yo, se zewo? 427 00:32:31,400 --> 00:32:36,220 [Bowden] valè Lòt tou. Se konsa, nan x, x yo pral zewo. 428 00:32:36,220 --> 00:32:40,070 Si li la nan dimansyon mondyal, li gen yon valè inisyal. >> Okay. 429 00:32:40,070 --> 00:32:48,950 [Bowden] Swa valè inisyal la ou te bay li oswa zewo. 430 00:32:48,950 --> 00:32:53,260 Mwen panse ke pran swen de tout bagay sa yo. 431 00:32:53,260 --> 00:32:58,390 >> Oke. Se konsa, yon pati nan pwochen nan kesyon an mande ou, 432 00:32:58,390 --> 00:33:01,260 "Koulye a, nou vle ekri yon fonksyon rele gen 433 00:33:01,260 --> 00:33:04,930 ak yon pwototip nan bouleen gen valè int. " 434 00:33:04,930 --> 00:33:08,340 Nou pa pral fè bouleen gen valè int. 435 00:33:08,340 --> 00:33:15,110 Pwototip nou an ki pral gade tankou 436 00:33:15,110 --> 00:33:22,380 bouleen gen (valè int. 437 00:33:22,380 --> 00:33:24,490 Lè sa a, n ap tou ale nan pase l pye bwa a 438 00:33:24,490 --> 00:33:28,870 ke li ta dwe tcheke yo wè si li gen ki valè. 439 00:33:28,870 --> 00:33:38,290 Se konsa, ne * pyebwa). Oke. 440 00:33:38,290 --> 00:33:44,440 Lè sa a, nou ka rele l 'ak yon bagay tankou, 441 00:33:44,440 --> 00:33:46,090 petèt nou pral vle printf oswa yon bagay. 442 00:33:46,090 --> 00:33:51,040 Gen 6, rasin nou an. 443 00:33:51,040 --> 00:33:54,300 Ki ta dwe retounen yon sèl, oswa vre, 444 00:33:54,300 --> 00:33:59,390 Lè nou konsidere ke gen 5 rasin yo ta dwe retounen fo. 445 00:33:59,390 --> 00:34:02,690 Se konsa, pran yon dezyèm pour enplimant sa. 446 00:34:02,690 --> 00:34:06,780 Ou kapab fè l swa iterativman oswa recursive. 447 00:34:06,780 --> 00:34:09,739 Bagay nan bon sou wout la nou te mete bagay yo se ke 448 00:34:09,739 --> 00:34:12,300 li prèt tèt li solisyon repetitif nou pi fasil 449 00:34:12,300 --> 00:34:14,719 pase fason Mondyal la-varyab te fè sa. 450 00:34:14,719 --> 00:34:19,750 Paske si nou jis gen gen valè Int, lè sa a nou pa gen okenn fason pou recursing desann subtrees. 451 00:34:19,750 --> 00:34:24,130 Nou ta gen gen yon fonksyon lòt moun sanble apa ke recurses desann subtrees yo pou nou. 452 00:34:24,130 --> 00:34:29,610 Men, depi nou te chanje li nan pran pye bwa an kòm yon agiman, 453 00:34:29,610 --> 00:34:32,760 ki li ta dwe te toujou an plas an premye, 454 00:34:32,760 --> 00:34:35,710 kounye a nou kapab recurse pi fasil. 455 00:34:35,710 --> 00:34:38,960 Se konsa, repete oswa repetitif, nou pral ale sou toude, 456 00:34:38,960 --> 00:34:46,139 men nou pwal wè ke bout repetitif yo te byen fasil. 457 00:34:59,140 --> 00:35:02,480 Oke. nenpòt moun ki gen yon bagay nou ka travay avèk? 458 00:35:02,480 --> 00:35:12,000 >> [Elèv] mwen te gen yon repete solisyon an. >> Tout dwa, repete. 459 00:35:12,000 --> 00:35:16,030 Okay, sa a sanble bon. 460 00:35:16,030 --> 00:35:18,920 Se konsa, vle mache nou nan li? 461 00:35:18,920 --> 00:35:25,780 [Elèv] Sure. Se konsa, mwen mete yon varyab tanporèr jwenn ne an premye nan pyebwa sa a. 462 00:35:25,780 --> 00:35:28,330 Lè sa a, mwen jis boukl nan pandan y ap tanporèr pa nil egal, 463 00:35:28,330 --> 00:35:31,700 Se konsa, pandan te toujou nan bwa a, mwen devine. 464 00:35:31,700 --> 00:35:35,710 Men, si valè a ki egal a valè a ki tanporèr a montre a, 465 00:35:35,710 --> 00:35:37,640 Lè sa a, li retounen ke valè. 466 00:35:37,640 --> 00:35:40,210 Sinon, li tcheke si li nan sou bò dwat la oswa bò gòch la. 467 00:35:40,210 --> 00:35:43,400 Si ou janm jwenn yon sitiyasyon kote gen nan pa gen pyebwa pi plis, 468 00:35:43,400 --> 00:35:47,330 Lè sa a, li retounen - li sòti riban a ak retounen fo. 469 00:35:47,330 --> 00:35:52,190 [Bowden] Okay. Se konsa, ki sanble bon. 470 00:35:52,190 --> 00:35:58,470 Nenpòt moun ki gen nenpòt kòmantè sou anyen? 471 00:35:58,470 --> 00:36:02,400 Mwen pa gen okenn kòmantè ekzaktitid nan tout. 472 00:36:02,400 --> 00:36:11,020 Youn nan bagay nou ka fè se nèg sa a. 473 00:36:11,020 --> 00:36:21,660 Oh, li pral ale yon longish ti kras. 474 00:36:21,660 --> 00:36:33,460 Mwen pral ranje ki leve. Oke. 475 00:36:33,460 --> 00:36:37,150 >> Tout moun ta dwe sonje ki jan tèrsyèr travay. 476 00:36:37,150 --> 00:36:38,610 Gen definitivman te ti tès nan tan lontan an 477 00:36:38,610 --> 00:36:41,170 ki ba ou yon fonksyon ki gen yon operatè tèrsyèr, 478 00:36:41,170 --> 00:36:45,750 epi di, tradwi sa a, fè yon bagay ki pa sèvi ak tèrsyèr. 479 00:36:45,750 --> 00:36:49,140 Se konsa, sa a se yon ka trè komen nan lè mwen ta panse yo sèvi ak tèrsyèr, 480 00:36:49,140 --> 00:36:54,610 kote si gen kèk kondisyon mete yon varyab ak yon bagay, 481 00:36:54,610 --> 00:36:58,580 lòt bagay mete varyab sa a menm yo yon lòt bagay. 482 00:36:58,580 --> 00:37:03,390 Sa a se yon bagay ki trè souvan yo ka transfòme nan sa a sòt de bagay 483 00:37:03,390 --> 00:37:14,420 kote mete varyab sa a sa a - oswa, byen, se sa a vre? Lè sa a, sa a, lòt bagay sa a. 484 00:37:14,420 --> 00:37:18,550 [Elèv] youn nan premye se si se laverite, dwa? 485 00:37:18,550 --> 00:37:25,570 [Bowden] Yeah. Wout la mwen toujou li li l 'se, tanporèr egal valè ki pi konsekan pase valè tanporèr, 486 00:37:25,570 --> 00:37:30,680 Lè sa a, sa a, lòt bagay sa a. Li nan mande yon kesyon. 487 00:37:30,680 --> 00:37:35,200 Èske li pi gran? Lè sa a, fè bagay la an premye. Lòt Bagay fè menm bagay la dezyèm fwa. 488 00:37:35,200 --> 00:37:41,670 Mwen prèske toujou - kolon an, mwen jis - nan tèt mwen, mwen li kòm lòt bagay. 489 00:37:41,670 --> 00:37:47,180 >> nenpòt moun ki gen yon solisyon repetitif? 490 00:37:47,180 --> 00:37:49,670 Oke. Yon sèl sa a nou pral - li te kapab deja vin yon grannèg, 491 00:37:49,670 --> 00:37:53,990 men nou pwal fè li menm pi bon. 492 00:37:53,990 --> 00:37:58,720 Sa a se bèl anpil lide nan menm egzak. 493 00:37:58,720 --> 00:38:03,060 Se jis nan, byen, ou vle eksplike? 494 00:38:03,060 --> 00:38:08,340 [Elèv] Sure. Se konsa, nou ap fè si ke pyebwa a pa nil an premye, 495 00:38:08,340 --> 00:38:13,380 paske si pyebwa a se nil Lè sa a, li pral retounen fo paske nou pa te jwenn li. 496 00:38:13,380 --> 00:38:19,200 Men, si gen nan toujou yon pye bwa, nou antre nan - nou premye tcheke si valè a se ne aktyèl la. 497 00:38:19,200 --> 00:38:23,740 Retounen vre si li se, ak si se pa nou recurse sou bò gòch la oswa dwa. 498 00:38:23,740 --> 00:38:25,970 Èske sa son ki apwopriye? >> MWA-hmm. (AKÒ) 499 00:38:25,970 --> 00:38:33,880 Se konsa, remake ke sa a se prèske - estriktirèl anpil menm jan ak solisyon an repete. 500 00:38:33,880 --> 00:38:38,200 Se jis ke olye pou yo recursing, nou te gen yon riban pandan y ap. 501 00:38:38,200 --> 00:38:40,840 Ak baz ka a isit la kote pye bwa a pa nil egal 502 00:38:40,840 --> 00:38:44,850 te kondisyon la anba ki nou te kraze yon riban a pandan y ap. 503 00:38:44,850 --> 00:38:50,200 Yo ap trè sanblab. Men, nou ap ale nan pran etap sa a yon sèl pli lwen. 504 00:38:50,200 --> 00:38:54,190 Koulye a, nou fè menm bagay la isit la. 505 00:38:54,190 --> 00:38:57,680 Avi nou ap retounen menm bagay la nan tou de nan liy sa yo, 506 00:38:57,680 --> 00:39:00,220 eksepte pou yon sèl agiman se diferan. 507 00:39:00,220 --> 00:39:07,950 Se konsa, nou pwal fè ki nan yon tèrsyèr. 508 00:39:07,950 --> 00:39:13,790 Mwen frape yon bagay opsyon, epi li te fè yon senbòl. Oke. 509 00:39:13,790 --> 00:39:21,720 Se konsa, nou ap ale nan retounen a ki gen ladan. 510 00:39:21,720 --> 00:39:28,030 Sa a se ap resevwa yo dwe liy miltip, byen, agrandi nan li ye. 511 00:39:28,030 --> 00:39:31,060 Anjeneral, kòm yon bagay stil, mwen pa panse ke gen anpil moun ki 512 00:39:31,060 --> 00:39:38,640 mete yon espas apre flèch la, men mwen devine si ou se ki konsistan, li la amann. 513 00:39:38,640 --> 00:39:44,320 Si valè se mwens pase valè pyebwa, nou vle recurse sou bò gòch pyebwa, 514 00:39:44,320 --> 00:39:53,890 lòt bagay nou vle recurse sou bò dwat pyebwa. 515 00:39:53,890 --> 00:39:58,610 Se konsa, sa ki te etap youn nan fè sa a gade pi piti. 516 00:39:58,610 --> 00:40:02,660 Etap de nan fè sa a gade ki pi piti - 517 00:40:02,660 --> 00:40:09,150 nou ka separe sa a nan liy miltip. 518 00:40:09,150 --> 00:40:16,500 Oke. Etap de nan fè li gade ki pi piti se isit la, 519 00:40:16,500 --> 00:40:25,860 se konsa valè retounen egal valè pyebwa, oswa gen tou sa. 520 00:40:25,860 --> 00:40:28,340 >> Sa a se yon bagay enpòtan. 521 00:40:28,340 --> 00:40:30,860 Mwen pa si si li te di li klèman nan klas la, 522 00:40:30,860 --> 00:40:34,740 men sa yo rele kout-sikwi evalyasyon. 523 00:40:34,740 --> 00:40:41,060 Lide a isit la se valè == valè pyebwa. 524 00:40:41,060 --> 00:40:49,960 Si se sa ki se verite, Lè sa a, sa a se laverite, e nou vle 'oswa' ke ak tou sa se sou isit la. 525 00:40:49,960 --> 00:40:52,520 Se konsa, san yo pa menm panse sou tou sa se sou isit la, 526 00:40:52,520 --> 00:40:55,070 ki sa ki ekspresyon nan tout pral retounen? 527 00:40:55,070 --> 00:40:59,430 [Elèv] vre? >> Yeah, paske vre nan anyen, 528 00:40:59,430 --> 00:41:04,990 or'd - or'd oswa laverite ak anyen se nesesèman verite. 529 00:41:04,990 --> 00:41:08,150 Se konsa, le pli vit ke nou wè valè retounen = valè pyebwa, 530 00:41:08,150 --> 00:41:10,140 nou ap jis pral retounen vre. 531 00:41:10,140 --> 00:41:15,710 Pa menm ale nan recurse plis gen desann liy lan. 532 00:41:15,710 --> 00:41:20,980 Nou ka pran etap sa a yon sèl pli lwen. 533 00:41:20,980 --> 00:41:29,490 Pyebwa yo ap Retounen pa nil egal ak tout bagay sa yo. 534 00:41:29,490 --> 00:41:32,650 Li te fè li yon fonksyon yon sèl-liy. 535 00:41:32,650 --> 00:41:36,790 Sa a se tou yon egzanp sou kout-sikwi evalyasyon. 536 00:41:36,790 --> 00:41:40,680 Men koulye a, li nan lide la menm - 537 00:41:40,680 --> 00:41:47,320 olye pou yo - Se konsa, si pyebwa a pa nil egal - oswa, byen, 538 00:41:47,320 --> 00:41:49,580 si pye bwa fè sa ki nil egal, ki se ka a move, 539 00:41:49,580 --> 00:41:54,790 si pyebwa egal nil, lè sa a kondisyon an premye a pwal fo. 540 00:41:54,790 --> 00:42:00,550 Se konsa, fo anded ak anyen a pwal ki sa? 541 00:42:00,550 --> 00:42:04,640 [Elèv] Fo. >> Yeah. Sa a se lòt mwatye a nan kout-sikwi evalyasyon, 542 00:42:04,640 --> 00:42:10,710 kote si pyebwa pa egal nil, lè sa a nou pa pral menm ale - 543 00:42:10,710 --> 00:42:14,930 oswa si pye bwa fè sa ki nil egal, Lè sa a, nou pa pral fè valè == valè pyebwa. 544 00:42:14,930 --> 00:42:17,010 Nou jis ap ale nan imedyatman retounen fo. 545 00:42:17,010 --> 00:42:20,970 Ki se yon bagay enpòtan, depi li si li pa t 'kout-sikwi evalye, 546 00:42:20,970 --> 00:42:25,860 Lè sa a, si pye bwa fè sa ki nil egal, kondisyon sa a dezyèm ki pral fòt segman, 547 00:42:25,860 --> 00:42:32,510 paske pyebwa-> valè a dereferencing nil. 548 00:42:32,510 --> 00:42:40,490 Se konsa, sa a, se sa. Ka fè sa a - chanje yon fwa sou. 549 00:42:40,490 --> 00:42:44,840 Sa a se yon bagay trè komen tou, pa fè liy sa a yon sèl ak sa a, 550 00:42:44,840 --> 00:42:49,000 men li la yon bagay ki komen nan kondisyon yo, petèt pa dwa isit la, 551 00:42:49,000 --> 00:42:59,380 Men, si (pyebwa! nil =, ak pye bwa-> valè == valè), fè tout sa. 552 00:42:59,380 --> 00:43:01,560 Sa se yon kondisyon trè komen, kote olye pou yo gen 553 00:43:01,560 --> 00:43:06,770 kraze sa a an de ifs, kote renmen, se nil nan pyebwa? 554 00:43:06,770 --> 00:43:11,780 Oke, sa se pa nil, pou kounye a se valè a pyebwa ki egal ak valè? Fè sa. 555 00:43:11,780 --> 00:43:17,300 Olye de sa, kondisyon sa a, sa a pa janm ap segman fòt 556 00:43:17,300 --> 00:43:21,220 paske li pral kraze konnen si sa a k ap pase yo nil. 557 00:43:21,220 --> 00:43:24,000 Oke, Mwen devine si pyebwa ou a se yon konsèy konplètman envalid, li toujou kapab segman fòt, 558 00:43:24,000 --> 00:43:26,620 men li pa ka segman fòt si pyebwa se nil. 559 00:43:26,620 --> 00:43:32,900 Si se te nil, li ta kraze deyò anvan ou te janm dereferenced konsèy la nan plas an premye. 560 00:43:32,900 --> 00:43:35,000 [Elèv] Èske sa se evalyasyon yo rele parese? 561 00:43:35,000 --> 00:43:40,770 >> [Bowden] evalyasyon Parese se yon bagay ki apa a. 562 00:43:40,770 --> 00:43:49,880 Evalyasyon parese se plis tankou ou mande pou gen yon valè, 563 00:43:49,880 --> 00:43:54,270 ou mande kalkile yon valè, kalite, men ou pa bezwen li imedyatman. 564 00:43:54,270 --> 00:43:59,040 Se konsa, jiskaske ou aktyèlman bezwen li, ki sa li pa evalye. 565 00:43:59,040 --> 00:44:03,920 Sa a se pa egzakteman menm bagay la, men nan Huffman pset a, 566 00:44:03,920 --> 00:44:06,520 li di ke nou "paresezman" ekri. 567 00:44:06,520 --> 00:44:08,670 Rezon ki fè nou fè sa se paske nou ap aktyèlman bufe ekri a - 568 00:44:08,670 --> 00:44:11,820 nou pa vle ekri Bits endividyèl nan yon moman, 569 00:44:11,820 --> 00:44:15,450 oswa bytes moun nan yon moman, nou olye vle jwenn yon ti moso nan bytes. 570 00:44:15,450 --> 00:44:19,270 Lè sa a, yon fwa nou gen yon ti moso nan bytes, lè sa a nou pral ekri li soti. 571 00:44:19,270 --> 00:44:22,640 Menm si ou mande li nan ekri - epi fwrite ak frèd fè sòt nan menm nan bagay sa yo. 572 00:44:22,640 --> 00:44:26,260 Yo tanpon li ou ak ekri. 573 00:44:26,260 --> 00:44:31,610 Menm si ou mande li nan ekri imedyatman, li pwobableman pa pral. 574 00:44:31,610 --> 00:44:34,540 Epi ou pa ka asire w ke bagay yo ap mache dwe ekri 575 00:44:34,540 --> 00:44:37,540 jiskaske ou rele hfclose oswa kèlkeswa sa li ye, 576 00:44:37,540 --> 00:44:39,620 ki lè sa a di, oke, mwen fèmen dosye m 'yo, 577 00:44:39,620 --> 00:44:43,450 sa vle di mwen ta pi bon ekri tout bagay mwen pa te ekri ankò. 578 00:44:43,450 --> 00:44:45,770 Li te gen pa gen okenn bezwen ekri tout bagay soti 579 00:44:45,770 --> 00:44:49,010 jiskaske ou yo fèmen dosye a, ak Lè sa a, li bezwen yo. 580 00:44:49,010 --> 00:44:56,220 Se konsa, sa se sèlman sa ki parese - li tann jouk li gen rive. 581 00:44:56,220 --> 00:44:59,990 Sa a - pran 51 epi ou pral antre andedan li nan plis detay, 582 00:44:59,990 --> 00:45:05,470 paske okanl ak tou sa ki 51, tout bagay se rkursyon. 583 00:45:05,470 --> 00:45:08,890 Pa gen okenn repete solisyon, fondamantalman. 584 00:45:08,890 --> 00:45:11,550 Tout se rkursyon, ak evalyasyon parese 585 00:45:11,550 --> 00:45:14,790 a pwal enpòtan pou yon anpil nan sikonstans 586 00:45:14,790 --> 00:45:19,920 kote, si ou pa t 'paresezman evalye, ki ta ka vle di - 587 00:45:19,920 --> 00:45:24,760 Egzanp la se sous dlo yo, ki se enfiniman lontan. 588 00:45:24,760 --> 00:45:30,990 Nan teyori, ou ka panse nan nimewo ki natirèl kòm yon kouran nan 1-2-3-4-5-6-7, 589 00:45:30,990 --> 00:45:33,090 Se konsa, paresezman evalye bagay yo amann. 590 00:45:33,090 --> 00:45:37,210 Si mwen di mwen vle nimewo a dizyèm, lè sa a mwen ka evalye jiska nimewo a dizyèm. 591 00:45:37,210 --> 00:45:40,300 Si m 'vle nimewo a santyèm, lè sa a mwen ka evalye jiska nimewo a santyèm. 592 00:45:40,300 --> 00:45:46,290 San yo pa evalyasyon parese, Lè sa a, li pral pou yo eseye evalye tout nimewo imedyatman. 593 00:45:46,290 --> 00:45:50,000 W ap evalye nimewo enfiniman anpil, ak sa a, se jis pa posib. 594 00:45:50,000 --> 00:45:52,080 Se konsa, gen yon anpil nan sikonstans kote parese evalyasyon 595 00:45:52,080 --> 00:45:57,840 se jis esansyèl nan trape bagay sa yo travay. 596 00:45:57,840 --> 00:46:05,260 >> Koulye a, nou vle ekri insert kote insert a pwal 597 00:46:05,260 --> 00:46:08,430 Menm jan an chanje nan definisyon li yo. 598 00:46:08,430 --> 00:46:10,470 Se konsa, kounye a li nan insert bouleen (Int valè). 599 00:46:10,470 --> 00:46:23,850 Nou pwal chanje sa insert bouleen (Int valè, ne * pyebwa). 600 00:46:23,850 --> 00:46:29,120 Nou ap aktyèlman pral chanje ke ankò nan yon ti jan, nou pral wè pou ki rezon. 601 00:46:29,120 --> 00:46:32,210 Ak nan kite deplase build_node, jis pou èk an nan li, 602 00:46:32,210 --> 00:46:36,730 pi wo a insert pou nou pa oblije ekri yon pwototip fonksyon. 603 00:46:36,730 --> 00:46:42,450 Ki se yon allusion ke ou ap pral lè l sèvi avèk build_node nan insert. 604 00:46:42,450 --> 00:46:49,590 Oke. Pran yon minit pou sa. 605 00:46:49,590 --> 00:46:52,130 Mwen panse mwen sove dat revizyon an si ou vle rale de sa, 606 00:46:52,130 --> 00:47:00,240 oswa, omwen, mwen te fè kounye a. 607 00:47:00,240 --> 00:47:04,190 Mwen te vle pran yon ti repo ti tay bezwen panse osijè de lojik nan insert, 608 00:47:04,190 --> 00:47:08,750 si ou pa kapab panse a li. 609 00:47:08,750 --> 00:47:12,860 Fondamantalman, ou pral sèlman toujou ap mete nan fèy bwa. 610 00:47:12,860 --> 00:47:18,640 Tankou, si mwen insert 1, Lè sa a, mwen inevitableman yo pral mete 1 - 611 00:47:18,640 --> 00:47:21,820 Mwen pral chanje an nwa - I'll dwe mete 1 sou isit la. 612 00:47:21,820 --> 00:47:28,070 Oswa si mwen insert 4, mwen vle yo mete 4 sou isit la. 613 00:47:28,070 --> 00:47:32,180 Se konsa, pa gen pwoblèm sa ou fè sa, w ap ale nan dwe mete nan yon fèy. 614 00:47:32,180 --> 00:47:36,130 Tout sa ou dwe fè se repekte desann pyebwa a jiskaske ou jwenn yo ne la 615 00:47:36,130 --> 00:47:40,890 ki ta dwe paran ne la, paran ne nan nouvo a, 616 00:47:40,890 --> 00:47:44,560 ak Lè sa a, chanje konsèy agoch ​​oswa adwat li yo, tou depann de si wi ou non 617 00:47:44,560 --> 00:47:47,060 li nan pi gran pase oswa mwens pase ne aktyèl la. 618 00:47:47,060 --> 00:47:51,180 Chanje ki konsèy nan pwen ne nouvo ou. 619 00:47:51,180 --> 00:48:05,490 Se konsa, repekte desann pyebwa a, fè pwen nan fèy ne nan nouvo. 620 00:48:05,490 --> 00:48:09,810 Panse tou ke sou rezon ki fè ke entèdi ki kalite sitiyasyon anvan yo, 621 00:48:09,810 --> 00:48:17,990 kote mwen konstwi pyebwa a binè kote li te kòrèk 622 00:48:17,990 --> 00:48:19,920 si ou sèlman gade yon ne sèl, 623 00:48:19,920 --> 00:48:24,830 men 9 te nan kite nan 7 si ou iteratif desann tout wout la. 624 00:48:24,830 --> 00:48:29,770 Se konsa, sa a, se enposib nan senaryo sa a, depi - 625 00:48:29,770 --> 00:48:32,530 Reflechi sou inséré 9 oswa yon bagay; nan ne an trè premye, 626 00:48:32,530 --> 00:48:35,350 Mwen pral wè 7 ak mwen jis pral pou yo ale nan bò dwat la. 627 00:48:35,350 --> 00:48:38,490 Se konsa, pa gen pwoblèm sa m 'fè, si mwen mete pa ale nan yon fèy, 628 00:48:38,490 --> 00:48:40,790 ak nan yon fèy lè l sèvi avèk algorithm ki apwopriye a, 629 00:48:40,790 --> 00:48:43,130 li pral yo dwe enposib pou m 'nan insert 9 nan kite nan 7 630 00:48:43,130 --> 00:48:48,250 paske le pli vit ke mwen frape 7 Mwen pral pou yo ale nan bò dwat la. 631 00:48:59,740 --> 00:49:02,070 nenpòt moun ki gen yon bagay yo kòmanse avèk? 632 00:49:02,070 --> 00:49:05,480 [Elèv] m 'fè. >> Sure. 633 00:49:05,480 --> 00:49:09,200 [Elèv yo, enkonpreansibl] 634 00:49:09,200 --> 00:49:14,390 [Lòt elèv yo, enkonpreansibl] 635 00:49:14,390 --> 00:49:18,330 [Bowden] Li nan apresye. Oke. Vle eksplike? 636 00:49:18,330 --> 00:49:20,690 >> [Elèv] Depi nou konnen ke nou te mete 637 00:49:20,690 --> 00:49:24,060 nœuds nouvo nan fen pyebwa a, 638 00:49:24,060 --> 00:49:28,070 Mwen boukl nan pye bwa a iterativman 639 00:49:28,070 --> 00:49:31,360 jouk tan mwen te rive nan yon ne ki pwente nil. 640 00:49:31,360 --> 00:49:34,220 Lè sa a, mwen deside mete l 'swa sou bò dwat la oswa bò gòch la 641 00:49:34,220 --> 00:49:37,420 lè l sèvi avèk sa a varyab dwa; li te di m 'ki kote yo mete li. 642 00:49:37,420 --> 00:49:41,850 Lè sa a,, ki esansyèlman, mwen jis te fè ki dire - 643 00:49:41,850 --> 00:49:47,520 pwen sa a ne tanporèr ne nan nouvo sa yo ki te kreye, 644 00:49:47,520 --> 00:49:50,770 swa sou bò gòch la oswa sou bò dwat la, depann sou sa ki valè a dwa te ye a. 645 00:49:50,770 --> 00:49:56,530 Finalman, mwen mete valè a ne nouvo nan valè a nan tès li yo. 646 00:49:56,530 --> 00:49:59,550 [Bowden] Okay, Se konsa, mwen wè yon pwoblèm isit la. 647 00:49:59,550 --> 00:50:02,050 Sa a se tankou 95% nan wout la a. 648 00:50:02,050 --> 00:50:07,550 Pwoblèm nan yon sèl ki mwen wè, byen, nenpòt lòt moun wè yon pwoblèm? 649 00:50:07,550 --> 00:50:18,400 Ki sa ki sikonstans la anba kote yo kraze soti nan riban an? 650 00:50:18,400 --> 00:50:22,100 [Elèv] Si tanporèr se nil? >> Yeah. Se konsa, kouman ou kase soti nan riban an se si tanporèr se nil. 651 00:50:22,100 --> 00:50:30,220 Men, sa m 'fè sa ki dwat isit la? 652 00:50:30,220 --> 00:50:35,410 Mwen dèreferans tanporèr, ki se inevitableman nil. 653 00:50:35,410 --> 00:50:39,840 Se konsa, bagay la lòt sa ou bezwen fè se pa sèlman kenbe tras jouk tanporèr se nil, 654 00:50:39,840 --> 00:50:45,590 ou vle kenbe tras nan paran an nan tout fwa. 655 00:50:45,590 --> 00:50:52,190 Nou menm tou nou vle paran * ne, mwen devine nou ka kenbe yo ke nan nil nan premye. 656 00:50:52,190 --> 00:50:55,480 Sa a se pral gen etranj konpòtman pou rasin pyebwa a, 657 00:50:55,480 --> 00:50:59,210 men nou pwal jwenn ak sa yo ki. 658 00:50:59,210 --> 00:51:03,950 Si valè a pi konsekan pase tou sa, lè sa a tanporèr = tanporèr dwat. 659 00:51:03,950 --> 00:51:07,910 Men, anvan nou fè sa, paran = tanporèr. 660 00:51:07,910 --> 00:51:14,500 Oswa yo paran yo toujou ale nan tanporèr egal? Se ke ka a? 661 00:51:14,500 --> 00:51:19,560 Si tanporèr se pa nil, lè sa a mwen pral pou avanse pou pi desann, pa gen pwoblèm sa, 662 00:51:19,560 --> 00:51:24,030 nan yon ne pou ki tanporèr se paran an. 663 00:51:24,030 --> 00:51:27,500 Se konsa, paran k ap pase yo dwe tanporèr, ak Lè sa a, mwen demenaje tanporèr desann. 664 00:51:27,500 --> 00:51:32,410 Koulye a, tanporèr se nil, men pwen pou paran pou paran an nan bagay la ki se nil. 665 00:51:32,410 --> 00:51:39,110 Se konsa, desann isit la, mwen pa vle yo mete dwa egal 1. 666 00:51:39,110 --> 00:51:41,300 Se konsa, mwen te deplase sou bò dwat la, kidonk si dwa = 1, 667 00:51:41,300 --> 00:51:45,130 ak mwen devine nou menm tou nou vle fè - 668 00:51:45,130 --> 00:51:48,530 si ou deplase a gòch la, ou vle mete dwa egal a 0. 669 00:51:48,530 --> 00:51:55,950 Oswa lòt moun si ou te janm deplase a dwat la. 670 00:51:55,950 --> 00:51:58,590 Se konsa, dwa = 0. Si dwa 1 =, 671 00:51:58,590 --> 00:52:04,260 kounye a nou vle fè paran dwa newnode nan konsèy, 672 00:52:04,260 --> 00:52:08,520 lòt bagay nou vle fè paran gòch newnode a konsèy. 673 00:52:08,520 --> 00:52:16,850 Kesyon sou sa? 674 00:52:16,850 --> 00:52:24,880 Oke. Se konsa, sa se yon fason a nou - byen, aktyèlman, olye pou yo fè sa, 675 00:52:24,880 --> 00:52:29,630 nou mwatye espere ou itilize build_node. 676 00:52:29,630 --> 00:52:40,450 Lè sa a, si newnode egal nil, retounen fo. 677 00:52:40,450 --> 00:52:44,170 Sa a se sa. Koulye a, sa a se sa nou espere ou fè. 678 00:52:44,170 --> 00:52:47,690 >> Sa a se sa solisyon yo anplwaye fè. 679 00:52:47,690 --> 00:52:52,360 Mwen dakò avèk sa a kòm wout la "dwa" pou yo ale sou li 680 00:52:52,360 --> 00:52:57,820 men sa a se parfe amann epi li pral travay. 681 00:52:57,820 --> 00:53:02,840 Youn nan bagay ki se yon dwa ti kras etranj kounye a se 682 00:53:02,840 --> 00:53:08,310 si pye bwa la kòmanse koupe kòm nil, nou pase nan yon pyebwa nil. 683 00:53:08,310 --> 00:53:12,650 Mwen devine li depann de ki jan ou defini konpòtman an nan pase nan yon pyebwa nil. 684 00:53:12,650 --> 00:53:15,490 Mwen ta panse ke si w pase nan yon pyebwa nil, 685 00:53:15,490 --> 00:53:17,520 Lè sa a, yo mete valè a nan yon pyebwa nil 686 00:53:17,520 --> 00:53:23,030 ta dwe jis retounen yon pye bwa kote valè a sèlman se ke ne sèl. 687 00:53:23,030 --> 00:53:25,830 moun dakò ak sa? Ou te kapab, si ou te vle, 688 00:53:25,830 --> 00:53:28,050 si ou pase nan yon pyebwa nil 689 00:53:28,050 --> 00:53:31,320 , epi ou vle insert yon valè nan li, retounen fo. 690 00:53:31,320 --> 00:53:33,830 Li nan jiska ou defini sa. 691 00:53:33,830 --> 00:53:38,320 Pou w fè nan premye bagay mwen di ak Lè sa a, - 692 00:53:38,320 --> 00:53:40,720 byen, w ap ale nan gen pwoblèm pou fè sa, paske 693 00:53:40,720 --> 00:53:44,090 li ta pi fasil si nou te gen yon konsèy mondyal ak bagay an, 694 00:53:44,090 --> 00:53:48,570 men nou pa, kidonk si pyebwa se nil, pa gen anyen nou ka fè sou sa. 695 00:53:48,570 --> 00:53:50,960 Nou ka jis retounen fo. 696 00:53:50,960 --> 00:53:52,840 Se konsa, mwen pral chanje insert. 697 00:53:52,840 --> 00:53:56,540 Nou teknikman te kapab jis chanje dwa sa a isit la, 698 00:53:56,540 --> 00:53:58,400 li montre kouman li a iteration sou bagay sa yo, 699 00:53:58,400 --> 00:54:04,530 men mwen m 'pral chanje insert pran yon ne ** pyebwa. 700 00:54:04,530 --> 00:54:07,510 Endikasyon doub. 701 00:54:07,510 --> 00:54:09,710 Ki sa sa vle di? 702 00:54:09,710 --> 00:54:12,330 Olye pou yo fè fas ak endikasyon nœuds, 703 00:54:12,330 --> 00:54:16,690 bagay la mwen pral yo dwe manipile se sa a konsèy. 704 00:54:16,690 --> 00:54:18,790 Mwen pral yo dwe manipile sa a konsèy. 705 00:54:18,790 --> 00:54:21,770 Mwen pral yo dwe manipile endikasyon dirèkteman. 706 00:54:21,770 --> 00:54:25,760 Sa a fè sans depi, panse sou desann - 707 00:54:25,760 --> 00:54:33,340 byen, kounye a sa a pwen nil. 708 00:54:33,340 --> 00:54:38,130 Ki sa mwen vle fè se manipile sa a konsèy nan pwen pa nil. 709 00:54:38,130 --> 00:54:40,970 Mwen vle li nan lonje dwèt sou ne nouvo mwen an. 710 00:54:40,970 --> 00:54:44,870 Si m 'jis kenbe tras nan pwent bagèt m' yo, 711 00:54:44,870 --> 00:54:47,840 Lè sa a, mwen pa bezwen nan kenbe tras nan yon konsèy paran yo. 712 00:54:47,840 --> 00:54:52,640 Mwen ka jis kenbe tras yo wè si konsèy la ap lonje dwèt nil, 713 00:54:52,640 --> 00:54:54,580 epi si konsèy la ap lonje dwèt nil, 714 00:54:54,580 --> 00:54:57,370 chanje li nan pwen ne la mwen vle yo. 715 00:54:57,370 --> 00:55:00,070 Apre sa, mwen kapab chanje li depi mwen gen yon konsèy konsèy la. 716 00:55:00,070 --> 00:55:02,040 Ann wè sa a kounye a. 717 00:55:02,040 --> 00:55:05,470 Ou ka aktyèlman fè li recursive trè fasil. 718 00:55:05,470 --> 00:55:08,080 nou vle fè sa? 719 00:55:08,080 --> 00:55:10,980 Wi, nou fè. 720 00:55:10,980 --> 00:55:16,790 >> Ann gade pou wè li recursive. 721 00:55:16,790 --> 00:55:24,070 Premyèman, ki sa ki ka baz nou an pral fè? 722 00:55:24,070 --> 00:55:29,140 Prèske toujou ka baz nou yo; men aktyèlman, sa a se kalite difisil. 723 00:55:29,140 --> 00:55:34,370 Bagay sa yo premye premye, si (pyebwa == nil) 724 00:55:34,370 --> 00:55:37,550 Mwen devine nou ap jis pral retounen fo. 725 00:55:37,550 --> 00:55:40,460 Sa a se diferan de nil pyebwa ou ke yo te. 726 00:55:40,460 --> 00:55:44,510 Sa a se konsèy nan konsèy rasin ou yo te nil 727 00:55:44,510 --> 00:55:48,360 ki vle di ke konsèy rasin ou a pa egziste. 728 00:55:48,360 --> 00:55:52,390 Se konsa, desann isit la, si mwen fè 729 00:55:52,390 --> 00:55:55,760 * ne - kite yo jis jam itilize sa a. 730 00:55:55,760 --> 00:55:58,960 Ne * rasin = nil, 731 00:55:58,960 --> 00:56:00,730 ak Lè sa a, mwen pral rele insert nan fè yon bagay tankou, 732 00:56:00,730 --> 00:56:04,540 insert 4 nan & rasin. 733 00:56:04,540 --> 00:56:06,560 Se konsa, & rasin, si rasin se yon * ne 734 00:56:06,560 --> 00:56:11,170 Lè sa a, & rasin a pwal yon ** ne. 735 00:56:11,170 --> 00:56:15,120 Sa a se valid. Nan ka sa a, pye bwa, moute isit la, 736 00:56:15,120 --> 00:56:20,120 pyebwa a pa nil - oswa insert. 737 00:56:20,120 --> 00:56:24,630 Isit la. Tree se pa nil; * pyebwa se nil, ki se amann 738 00:56:24,630 --> 00:56:26,680 paske si pyebwa * se nil, lè sa a mwen ka manipile li 739 00:56:26,680 --> 00:56:29,210 kounye a lonje dwèt sou sa m 'vle li nan pwen yo. 740 00:56:29,210 --> 00:56:34,750 Men, si pye bwa se nil, sa vle di mwen jis te desann isit la, li di nil. 741 00:56:34,750 --> 00:56:42,710 Sa pa fè sans. Mwen pa ka fè anyen ak sa. 742 00:56:42,710 --> 00:56:45,540 Si pye bwa a se nil, retounen fo. 743 00:56:45,540 --> 00:56:48,220 Se konsa, mwen fondamantalman deja di sa ki ka baz reyèl nou an se. 744 00:56:48,220 --> 00:56:50,580 Ak sa ki se ke pral fè? 745 00:56:50,580 --> 00:56:55,030 [Elèv yo, enkonpreansibl] 746 00:56:55,030 --> 00:57:00,000 [Bowden] Wi. Se konsa, si (* pyebwa == nil). 747 00:57:00,000 --> 00:57:04,520 Sa a gen rapò ak ka a sou isit la 748 00:57:04,520 --> 00:57:09,640 kote si konsèy wouj mwen, se yon konsèy la mwen konsantre sou, 749 00:57:09,640 --> 00:57:12,960 konsa tankou mwen konsantre sou sa a konsèy, kounye a mwen konsantre sou sa a konsèy. 750 00:57:12,960 --> 00:57:15,150 Koulye a, mwen konsantre sou sa a konsèy. 751 00:57:15,150 --> 00:57:18,160 Se konsa, si konsèy wouj m 'yo, ki se ** ne m' yo, 752 00:57:18,160 --> 00:57:22,880 se tout tan - si *, konsèy wouj m 'yo, se tout tan nil, 753 00:57:22,880 --> 00:57:28,470 sa vle di se mwen menm ki nan ka a kote mwen konsantre sou yon konsèy ki pwen - 754 00:57:28,470 --> 00:57:32,530 sa a se yon konsèy sa ki nan yon fèy. 755 00:57:32,530 --> 00:57:41,090 Mwen vle chanje sa a konsèy nan pwen ne nouvo mwen an. 756 00:57:41,090 --> 00:57:45,230 Vini non tounen sou isit la. 757 00:57:45,230 --> 00:57:56,490 Newnode m 'yo va jis pou ne * n = build_node (valè) 758 00:57:56,490 --> 00:58:07,300 Lè sa a, n, si n nil =, retounen fo. 759 00:58:07,300 --> 00:58:12,600 Lòt Bagay nou vle chanje sa konsèy la se kounye a lonje dwèt 760 00:58:12,600 --> 00:58:17,830 kounye a lonje dwèt sou fèk bati ne nou an. 761 00:58:17,830 --> 00:58:20,280 Nou ka aktyèlman fè sa isit la. 762 00:58:20,280 --> 00:58:30,660 Olye pou yo di n, nou di * pyebwa = si * pyebwa. 763 00:58:30,660 --> 00:58:35,450 Tout moun konprann sa? Sa pa fè fas ak endikasyon endikasyon, 764 00:58:35,450 --> 00:58:40,750 nou kapab chanje endikasyon nil nan pwen yo ak bagay nou vle yo lonje dwèt sou. 765 00:58:40,750 --> 00:58:42,820 Sa a ka baz nou an. 766 00:58:42,820 --> 00:58:45,740 >> Koulye a, ankò nou an, oswa rkursyon nou an, 767 00:58:45,740 --> 00:58:51,430 a pwal trè menm jan ak tout lòt recursions nou te toujou ap fè. 768 00:58:51,430 --> 00:58:55,830 Nou pwal vle insert valè, 769 00:58:55,830 --> 00:58:59,040 e kounye a, mwen pral sèvi ak tèrsyèr ankò, men ki sa ki kondisyon nou an pral fè? 770 00:58:59,040 --> 00:59:05,180 Ki sa ki li nou ap chèche pou deside si nou vle ale agoch ​​oswa adwat? 771 00:59:05,180 --> 00:59:07,760 Se pou nou fè l 'nan etap apa. 772 00:59:07,760 --> 00:59:18,850 Si (valè <) ki sa? 773 00:59:18,850 --> 00:59:23,200 [Elèv] valè pyebwa a? 774 00:59:23,200 --> 00:59:27,490 [Bowden] Se konsa, sonje ke mwen kounye a - 775 00:59:27,490 --> 00:59:31,260 [Elèv yo, enkonpreansibl] 776 00:59:31,260 --> 00:59:34,140 [Bowden] Yeah, se konsa isit la, se pou yo di ke sa a flèch vèt 777 00:59:34,140 --> 00:59:39,050 ki se yon egzanp ki sa pyebwa kounye a se, se yon konsèy sa a konsèy. 778 00:59:39,050 --> 00:59:46,610 Se konsa, sa vle di mwen se yon konsèy nan yon konsèy nan 3. 779 00:59:46,610 --> 00:59:48,800 Dèreferans la de fwa kònen klewon bon. 780 00:59:48,800 --> 00:59:51,010 Ki sa mwen - ki jan mwen fè sa? 781 00:59:51,010 --> 00:59:53,210 [Elèv] dèreferans yon fwa, ak Lè sa a, fè flèch ki fason? 782 00:59:53,210 --> 00:59:58,420 [Bowden] Se konsa, (* pyebwa) se dèreferans a yon fwa, -> valè 783 00:59:58,420 --> 01:00:05,960 ki pral ban m 'valè a nan ne an ke mwen endirèkteman lonje dwèt yo. 784 01:00:05,960 --> 01:00:11,980 Se konsa, mwen kapab tou ekri li ** tree.value si ou prefere sa. 785 01:00:11,980 --> 01:00:18,490 Swa travay. 786 01:00:18,490 --> 01:00:26,190 Si se ka a, Lè sa a, mwen vle rele insert ak valè. 787 01:00:26,190 --> 01:00:32,590 Ak ki sa ki ne mete ajou mwen ** pral fè? 788 01:00:32,590 --> 01:00:39,440 Mwen vle pou yo ale nan bò gòch la, se konsa ** tree.left a pwal bò gòch mwen an. 789 01:00:39,440 --> 01:00:41,900 Apre sa, mwen vle konsèy la ak sa yo ki bagay 790 01:00:41,900 --> 01:00:44,930 pou ke si bò gòch la fini moute yo te konsèy la nil, 791 01:00:44,930 --> 01:00:48,360 Mwen ka chanje li nan pwen ne nouvo mwen an. 792 01:00:48,360 --> 01:00:51,460 >> Epi ka-a lòt ka trè sanblab. 793 01:00:51,460 --> 01:00:55,600 Se pou nou aktyèlman fè ki tèrsyèr mwen kounye a. 794 01:00:55,600 --> 01:01:04,480 Antre valè si valè <(** pyebwa). Valè. 795 01:01:04,480 --> 01:01:11,040 Lè sa a, nou vle mete ajou ** nou yo bò gòch la, 796 01:01:11,040 --> 01:01:17,030 lòt bagay nou vle mete ajou ** nou a dwat la. 797 01:01:17,030 --> 01:01:22,540 [Elèv] ki resevwa konsèy nan konsèy la? 798 01:01:22,540 --> 01:01:30,940 [Bowden] Sonje ke - ** tree.right se yon etwal ne. 799 01:01:30,940 --> 01:01:35,040 [Elèv yo, enkonpreansibl] >> Yeah. 800 01:01:35,040 --> 01:01:41,140 ** Tree.right, se tankou sa a konsèy oswa yon bagay. 801 01:01:41,140 --> 01:01:45,140 Se konsa, lè yo pran yon konsèy ak sa yo ki, ki ban m 'sa m' vle 802 01:01:45,140 --> 01:01:50,090 nan konsèy la ke nèg. 803 01:01:50,090 --> 01:01:54,260 [Elèv] t 'kapab n' al jwenn lòt peyi sou ankò poutèt sa nou lè l sèvi avèk pwent yo de? 804 01:01:54,260 --> 01:01:58,220 [Bowden] Yeah. Se konsa, - pa gen, ou ka, ak solisyon ke anvan 805 01:01:58,220 --> 01:02:04,540 se te yon fason pou fè li san yo pa fè de pwent. 806 01:02:04,540 --> 01:02:08,740 Ou bezwen pou kapab konprann lè l sèvi avèk de pwent, 807 01:02:08,740 --> 01:02:11,660 ak sa a se yon solisyon cleaner. 808 01:02:11,660 --> 01:02:16,090 Epitou, remake ke, ki sa ki pral rive si pyebwa mwen - 809 01:02:16,090 --> 01:02:24,480 ki sa k ap pase si rasin mwen te nil? Kisa k ap pase si mwen fè ka sa a dwa isit la? 810 01:02:24,480 --> 01:02:30,540 Se konsa, ne * rasin = nil, insert 4 nan & rasin. 811 01:02:30,540 --> 01:02:35,110 Ki sa ki rasin pral fè apre sa a? 812 01:02:35,110 --> 01:02:37,470 [Elèv yo, enkonpreansibl] >> Yeah. 813 01:02:37,470 --> 01:02:41,710 Valè rasin a pwal 4. 814 01:02:41,710 --> 01:02:45,510 Gòch rasin a pwal nil, dwa rasin a pwal nil. 815 01:02:45,510 --> 01:02:49,490 Nan ka kote nou pa t 'pase rasin pa adrès li, 816 01:02:49,490 --> 01:02:52,490 nou pa t 'kapab modifye rasin. 817 01:02:52,490 --> 01:02:56,020 Nan ka kote pye bwa a - kote rasin te nil, 818 01:02:56,020 --> 01:02:58,410 nou jis te gen retounen fo. Pa gen anyen nou te ka fè. 819 01:02:58,410 --> 01:03:01,520 Nou pa ka insert yon ne nan yon pyebwa vid. 820 01:03:01,520 --> 01:03:06,810 Men koulye a, nou kapab; nou jis fè yon pyebwa vid nan yon pyebwa yon sèl-ne. 821 01:03:06,810 --> 01:03:13,400 Ki se nòmalman wout la prévu ke li nan sipoze nan travay. 822 01:03:13,400 --> 01:03:21,610 >> Anplis de sa, sa a se siyifikativman pi kout pase 823 01:03:21,610 --> 01:03:26,240 tou kenbe tras de paran an, ak pou ou répétèr desann tout wout la. 824 01:03:26,240 --> 01:03:30,140 Koulye a, mwen gen paran mwen, mwen menm jis gen konsèy paran dwat mwen mèt fè tout sa a. 825 01:03:30,140 --> 01:03:35,640 Olye de sa, si nou te fè sa iterativman, li ka d 'lide a menm ki gen yon riban pandan y ap. 826 01:03:35,640 --> 01:03:38,100 Men, olye pou yo gen fè fas ak konsèy paran m 'yo, 827 01:03:38,100 --> 01:03:40,600 olye konsèy mwen ye kounye a ta dwe bagay la 828 01:03:40,600 --> 01:03:43,790 ke mwen dirèkteman modifye nan pwen ne nouvo mwen an. 829 01:03:43,790 --> 01:03:46,090 Mwen pa gen fè fas ak si wi ou non li nan lonje dwèt sou bò goch la. 830 01:03:46,090 --> 01:03:48,810 Mwen pa gen fè fas ak si wi ou non li nan lonje dwèt a dwat la. 831 01:03:48,810 --> 01:04:00,860 Se jis nan tou sa sa a konsèy la, mwen pral mete l 'nan pwen ne nouvo mwen an. 832 01:04:00,860 --> 01:04:05,740 Tout moun konprann ki jan li fonksyone? 833 01:04:05,740 --> 01:04:09,460 Si ou pa rezon sa a nou vle fè l 'fason sa a, 834 01:04:09,460 --> 01:04:14,920 men omwen ke sa a travay kòm yon solisyon? 835 01:04:14,920 --> 01:04:17,110 [Elèv] Ki kote nou retounen vre? 836 01:04:17,110 --> 01:04:21,550 [Bowden] Sa a pwobableman dwa isit la. 837 01:04:21,550 --> 01:04:26,690 Si nou kòrèkteman insert li, retounen vre. 838 01:04:26,690 --> 01:04:32,010 Lòt Bagay, desann isit la nou ap ale nan vle retounen tou sa retounen insert. 839 01:04:32,010 --> 01:04:35,950 >> Ak sa ki nan espesyal sou sa a fonksyon repetitif? 840 01:04:35,950 --> 01:04:43,010 Li nan ke repetitif, se konsa osi lontan ke nou konpile ak kèk Optimization, 841 01:04:43,010 --> 01:04:48,060 li pral rekonèt ke epi ou pa janm ap jwenn yon debòde chemine de sa a, 842 01:04:48,060 --> 01:04:53,230 menm si pyebwa nou an ki gen yon wotè ki 10,000 oswa 10 milyon dola. 843 01:04:53,230 --> 01:04:55,630 [Elèv yo, enkonpreansibl] 844 01:04:55,630 --> 01:05:00,310 [Bowden] Mwen panse ke li fè li nan Dash - nan ki nivo Optimization 845 01:05:00,310 --> 01:05:03,820 sa yo mande pou yon rkursyon ke yo dwe rekonèt. 846 01:05:03,820 --> 01:05:09,350 Mwen panse ke li rekonèt - GCC ak rezone 847 01:05:09,350 --> 01:05:12,610 yo te genyen tou siyifikasyon diferan pou nivo Optimization yo. 848 01:05:12,610 --> 01:05:17,870 Mwen vle di li nan, 2 DashO pou asire w ke li pral rekonèt ke rkursyon. 849 01:05:17,870 --> 01:05:27,880 Men, nou - ou ta ka konstwi tankou yon egzanp Fibonocci oswa yon bagay. 850 01:05:27,880 --> 01:05:30,030 Li pa fasil li teste ak sa-a, paske li difisil yo konstwi 851 01:05:30,030 --> 01:05:32,600 yon pye bwa binè sa a, se konsa gwo. 852 01:05:32,600 --> 01:05:37,140 Men, yeah, mwen panse ke li la, 2 DashO ki 853 01:05:37,140 --> 01:05:40,580 si ou konpile ak DashO 2, li pral gade pou rkursyon ke 854 01:05:40,580 --> 01:05:54,030 ak optimalize ki deyò. 855 01:05:54,030 --> 01:05:58,190 Se pou nou tounen nan - insert nan literalman bagay la pase li bezwen. 856 01:05:58,190 --> 01:06:04,900 Se pou nou tounen nan sipleman ki an plis pase isit la 857 01:06:04,900 --> 01:06:07,840 kote n ap pral fè lide a menm. 858 01:06:07,840 --> 01:06:14,340 Li pral toujou gen defo nan pa te kapab antyèman okipe 859 01:06:14,340 --> 01:06:17,940 lè rasin nan tèt li se nil, oswa antre ki sot pase a se nil, 860 01:06:17,940 --> 01:06:20,060 men olye pou yo fè fas ak yon konsèy paran, 861 01:06:20,060 --> 01:06:27,430 kite a aplike lojik la menm pou kenbe endikasyon endikasyon. 862 01:06:27,430 --> 01:06:35,580 Si isit la nou kenbe ne nou ** akt, 863 01:06:35,580 --> 01:06:37,860 epi nou pa bezwen kenbe tras nan dwa ankò, 864 01:06:37,860 --> 01:06:47,190 men ne ** akt = & pyebwa. 865 01:06:47,190 --> 01:06:54,800 Epi, koulye a riban pandan y ap nou an a pwal pandan y ap akt * pa nil egal. 866 01:06:54,800 --> 01:07:00,270 pa bezwen nan kenbe tras nan paran yo ankò. 867 01:07:00,270 --> 01:07:04,180 pa bezwen nan kenbe tras nan kite la ak dwa. 868 01:07:04,180 --> 01:07:10,190 Apre sa, m'a rele l 'tanporèr, paske n ap deja lè l sèvi avèk tanporèr. 869 01:07:10,190 --> 01:07:17,200 Oke. Se konsa, si (valè> * tanporèr), 870 01:07:17,200 --> 01:07:24,010 Lè sa a, & (* tanporèr) -> dwa 871 01:07:24,010 --> 01:07:29,250 lòt tanporèr = & (* tanporèr) -> kite. 872 01:07:29,250 --> 01:07:32,730 Epi, koulye a, nan pwen sa a, apre yo fin sa a pandan y ap riban, 873 01:07:32,730 --> 01:07:36,380 Mwen sèlman fè sa paske petèt li pi fasil panse osijè de iterativman pase recursive, 874 01:07:36,380 --> 01:07:39,010 men apre sa a pandan y ap riban, 875 01:07:39,010 --> 01:07:43,820 * Tanporèr se konsèy nan nou vle chanje. 876 01:07:43,820 --> 01:07:48,960 >> Anvan nou te gen paran yo, epi nou te vle chanje swa bò gòch paran oswa paran dwat, 877 01:07:48,960 --> 01:07:51,310 men si nou vle chanje dwa paran yo, 878 01:07:51,310 --> 01:07:54,550 Lè sa a, * tanporèr se dwa paran yo, epi nou kapab chanje li dirèkteman. 879 01:07:54,550 --> 01:08:05,860 Se konsa, desann isit la, nou ka fè * tanporèr = newnode, ak sa a, se li. 880 01:08:05,860 --> 01:08:09,540 Se konsa, avi, tout sa nou te fè nan sa a te pran liy nan kòd. 881 01:08:09,540 --> 01:08:14,770 Yo nan lòd yo kenbe tras nan paran an nan tout sa se efò anplis. 882 01:08:14,770 --> 01:08:18,689 Isit la, si nou jis kenbe tras nan konsèy la konsèy la, 883 01:08:18,689 --> 01:08:22,990 e menm si nou te vle debarase m de tout bagay sa yo aparèy òtopedik Curly kounye a, 884 01:08:22,990 --> 01:08:27,170 fè li parèt pi kout. 885 01:08:27,170 --> 01:08:32,529 Sa a kounye a se solisyon an egzak menm, 886 01:08:32,529 --> 01:08:38,210 men mwens liy nan kòd. 887 01:08:38,210 --> 01:08:41,229 Yon fwa ou kòmanse rekonèt sa a kòm yon solisyon ki valab, 888 01:08:41,229 --> 01:08:43,529 li la tou pi fasil rezon sou pase tankou, oke, 889 01:08:43,529 --> 01:08:45,779 poutèt sa mwen gen sa a drapo nan dwa int? 890 01:08:45,779 --> 01:08:49,290 Kisa sa vle di? Oh, li nan tapral ki 891 01:08:49,290 --> 01:08:51,370 chak fwa mwen ale dwat, mwen bezwen mete l ', 892 01:08:51,370 --> 01:08:53,819 lòt bagay si mwen ale kite mwen bezwen mete l 'a zewo. 893 01:08:53,819 --> 01:09:04,060 Isit la, mwen pa oblije rezon sou sa; li nan jis pi fasil yo reflechi sou. 894 01:09:04,060 --> 01:09:06,710 Kesyon? 895 01:09:06,710 --> 01:09:16,290 [Elèv yo, enkonpreansibl] >> Yeah. 896 01:09:16,290 --> 01:09:23,359 Oke, kidonk nan ti jan nan dènye - 897 01:09:23,359 --> 01:09:28,080 Mwen devine yon fonksyon rapid ak pi fasil nou ka fè se, 898 01:09:28,080 --> 01:09:34,910 let's - ansanm, mwen devine, eseye epi ekri yon fonksyon gen 899 01:09:34,910 --> 01:09:38,899 ki pa pran swen si li se yon pye bwa rechèch binè. 900 01:09:38,899 --> 01:09:43,770 Sa a gen fonksyon yo ta dwe retounen vre 901 01:09:43,770 --> 01:09:58,330 si nenpòt kote nan pye bwa sa a binè jeneral se valè a nou ap chèche pou. 902 01:09:58,330 --> 01:10:02,520 Se konsa, kite a premye fè li recursive ak Lè sa a, nou pwal fè li iterativman. 903 01:10:02,520 --> 01:10:07,300 Nou ka aktyèlman jis fè li ansanm, paske sa a a pwal vrèman kout. 904 01:10:07,300 --> 01:10:11,510 >> Ki sa ki ka baz mwen yo pral? 905 01:10:11,510 --> 01:10:13,890 [Elèv yo, enkonpreansibl] 906 01:10:13,890 --> 01:10:18,230 [Bowden] Se konsa, si (pyebwa == nil), Lè sa a, ki sa? 907 01:10:18,230 --> 01:10:22,740 [Elèv] Retounen fo. 908 01:10:22,740 --> 01:10:26,160 [Bowden] Lòt Bagay, byen, mwen pa bezwen lòt bagay la. 909 01:10:26,160 --> 01:10:30,250 Si te ka lòt baz m 'yo. 910 01:10:30,250 --> 01:10:32,450 Valè [Elèv] Tree an? >> Yeah. 911 01:10:32,450 --> 01:10:36,430 Se konsa, si (pyebwa-> valè == valè. 912 01:10:36,430 --> 01:10:39,920 Avi nou ap tounen nan * ne, pa ne ** s? 913 01:10:39,920 --> 01:10:42,990 Konprann pa janm ap bezwen sèvi ak yon ** ne, 914 01:10:42,990 --> 01:10:45,480 depi nou pa yo modifye endikasyon. 915 01:10:45,480 --> 01:10:50,540 Nou jis ap travèse yo. 916 01:10:50,540 --> 01:10:53,830 Si sa rive, lè sa a nou vle tounen vre. 917 01:10:53,830 --> 01:10:58,270 Lòt Bagay nou vle Traverse timoun yo. 918 01:10:58,270 --> 01:11:02,620 Se konsa, nou pa ka lojik sou si tout bagay sa yo bò gòch la ki pi piti a 919 01:11:02,620 --> 01:11:05,390 ak tout bagay sa yo dwa a se pi plis la. 920 01:11:05,390 --> 01:11:09,590 Se konsa, sa ki kondisyon nou an pral fè isit la - oswa, ki sa ki nou pral? 921 01:11:09,590 --> 01:11:11,840 [Elèv yo, enkonpreansibl] >> Yeah. 922 01:11:11,840 --> 01:11:17,400 Tounen gen (valè, pyebwa-> agoch) 923 01:11:17,400 --> 01:11:26,860 oswa gen (valè, pyebwa-> dwa). Epi sa a, li. 924 01:11:26,860 --> 01:11:29,080 Ak Avi a gen kèk evalyasyon kout-sikwi, 925 01:11:29,080 --> 01:11:32,520 kote si nou rive jwenn valè a nan pye bwa a gòch, 926 01:11:32,520 --> 01:11:36,820 nou pa janm bezwen gade pye bwa a dwat. 927 01:11:36,820 --> 01:11:40,430 Sa a fonksyon a tout antye. 928 01:11:40,430 --> 01:11:43,690 Koulye a, kite a fè l 'iterativman, 929 01:11:43,690 --> 01:11:48,060 ki a pwal mwens bèl. 930 01:11:48,060 --> 01:11:54,750 Nou pral pran nan kòmansman an abityèl yo akt ne * = pyebwa. 931 01:11:54,750 --> 01:12:03,250 Pandan ke (akt! = Nil). 932 01:12:03,250 --> 01:12:08,600 Byen vit pral wè yon pwoblèm. 933 01:12:08,600 --> 01:12:12,250 Si akt - soti isit la, si nou janm kase soti nan sa a, 934 01:12:12,250 --> 01:12:16,020 Lè sa a, nou te kouri soti nan bagay sa yo fè yon gade nan, se konsa retounen fo. 935 01:12:16,020 --> 01:12:24,810 Si (akt-> valè == valè), retounen vre. 936 01:12:24,810 --> 01:12:32,910 Se konsa, kounye a, nou se nan yon kote ki - 937 01:12:32,910 --> 01:12:36,250 nou pa konnen si nou vle ale agoch ​​oswa adwat. 938 01:12:36,250 --> 01:12:44,590 Se konsa, abitrèman, kite la jis ale kite. 939 01:12:44,590 --> 01:12:47,910 Mwen te evidamman kouri antre nan yon pwoblèm kote mwen te konplètman abandone tout bagay - 940 01:12:47,910 --> 01:12:50,760 Mwen pral sèlman janm tcheke bò gòch la nan yon pyebwa. 941 01:12:50,760 --> 01:12:56,050 Mwen pa janm pral tcheke pou wè anyen ki se yon pitit dwat Bondye ki gen anyen. 942 01:12:56,050 --> 01:13:00,910 Kouman pou mwen ranje sa a? 943 01:13:00,910 --> 01:13:05,260 [Elèv] Ou gen nan kenbe tras nan bò gòch la ak dwa nan yon pil. 944 01:13:05,260 --> 01:13:13,710 [Bowden] Yeah. Se konsa, kite a fè l ' 945 01:13:13,710 --> 01:13:32,360 struct lis, ne * n, ak Lè sa a, ne ** vin apre a? 946 01:13:32,360 --> 01:13:40,240 Mwen panse ke ap travay amann. 947 01:13:40,240 --> 01:13:45,940 Nou vle ale sou bò gòch la, oswa let's - moute isit la. 948 01:13:45,940 --> 01:13:54,350 = Struct lis lis, sa ap kòmanse 949 01:13:54,350 --> 01:13:58,170 soti nan lis sa a struct. 950 01:13:58,170 --> 01:14:04,040 * Lis = nil. Se konsa, ki k ap pase yo dwe lis lye nou 951 01:14:04,040 --> 01:14:08,430 nan subtrees ke nou te sote sou. 952 01:14:08,430 --> 01:14:13,800 Nou pral Traverse kite kounye a, 953 01:14:13,800 --> 01:14:17,870 men depi nou inevitableman bezwen tounen vin jwenn dwa a, 954 01:14:17,870 --> 01:14:26,140 Nou pwal kenbe bò dwat la andedan nan lis struct nou an. 955 01:14:26,140 --> 01:14:32,620 Lè sa a, n ap gen new_list oswa struct, 956 01:14:32,620 --> 01:14:41,080 struct lis *, new_list = malok (sizof (lis)). 957 01:14:41,080 --> 01:14:44,920 Mwen pral inyore erè-tcheke sa, men ou ta dwe tcheke yo wè nil si li la. 958 01:14:44,920 --> 01:14:50,540 New_list ne a li pral lonje dwèt sou - 959 01:14:50,540 --> 01:14:56,890 oh, sa se poutèt sa mwen te vle l 'kanpe isit la. Li k ap pase nan pwen nan yon lis struct dezyèm fwa. 960 01:14:56,890 --> 01:15:02,380 Sa a se jis ki jan lye lis travay. 961 01:15:02,380 --> 01:15:04,810 Sa a se menm bagay la tou kòm yon lis int lye 962 01:15:04,810 --> 01:15:06,960 eksepte nou ap jis ranplase int ak * ne. 963 01:15:06,960 --> 01:15:11,040 Li nan ekzakteman menm bagay la. 964 01:15:11,040 --> 01:15:15,100 Se konsa, new_list, valè ne new_list nou an, 965 01:15:15,100 --> 01:15:19,120 a pwal akt-> dwat. 966 01:15:19,120 --> 01:15:24,280 Valè a nan nou new_list-> pwochen a pwal lis orijinal nou an, 967 01:15:24,280 --> 01:15:30,760 ak Lè sa a, nou pral mete ajou lis nou an nan pwen new_list. 968 01:15:30,760 --> 01:15:33,650 >> Koulye a, nou bezwen kèk sòt de fason pou rale bagay sa yo, 969 01:15:33,650 --> 01:15:37,020 tankou nou te travèse tout bò gòch subtree la. 970 01:15:37,020 --> 01:15:40,480 Koulye a, nou bezwen rale bagay soti nan li, 971 01:15:40,480 --> 01:15:43,850 tankou akt se nil; nou pa vle jis retounen fo. 972 01:15:43,850 --> 01:15:50,370 Nou vle kounye a rale deyò nan lis nouvo nou an. 973 01:15:50,370 --> 01:15:53,690 Yon fason pratik pou fè sa - byen, aktyèlman, gen nan fason miltip nan fè sa. 974 01:15:53,690 --> 01:15:56,680 Nenpòt moun ki gen yon sijesyon? 975 01:15:56,680 --> 01:15:58,790 Ki kote pou mwen ta dwe fè sa a oswa ki jan mwen ta dwe fè sa? 976 01:15:58,790 --> 01:16:08,010 Nou sèlman gen yon minit koup, men nenpòt sijesyon? 977 01:16:08,010 --> 01:16:14,750 Olye pou yo - yon fason, olye pou yo kondisyon nou an ke yo te pandan y ap, 978 01:16:14,750 --> 01:16:17,090 sa n ap kounye a kap nan se pa nil, 979 01:16:17,090 --> 01:16:22,340 olye nou pwal pou l kontinye ale jouk lis nou an li menm se nil. 980 01:16:22,340 --> 01:16:25,680 Se konsa, si lis nou an fini moute yo te nil, 981 01:16:25,680 --> 01:16:30,680 Lè sa a, nou te kouri soti nan bagay sa yo nan gade pou li a, nan rechèch sou. 982 01:16:30,680 --> 01:16:39,860 Men, sa vle di ke bagay la an premye nan lis nou an se jis pwal ne la an premye. 983 01:16:39,860 --> 01:16:49,730 Bagay la trè premye yo pral - nou pa bezwen wè sa. 984 01:16:49,730 --> 01:16:58,710 Se konsa, lis-> n ap gen pye bwa nou yo. 985 01:16:58,710 --> 01:17:02,860 lis-> pwochen a pwal nil. 986 01:17:02,860 --> 01:17:07,580 Epi, koulye a pandan y ap lis pa nil egal. 987 01:17:07,580 --> 01:17:11,610 Akt ki pral rale yon bagay nan lis nou an. 988 01:17:11,610 --> 01:17:13,500 Se konsa, akt ki pral egal lis-> n. 989 01:17:13,500 --> 01:17:20,850 Lè sa a, lis ki pral egal lis-> n, oswa lis-> kap vini an. 990 01:17:20,850 --> 01:17:23,480 Se konsa, si valè akt egal valè. 991 01:17:23,480 --> 01:17:28,790 Koulye a, nou ka ajoute tou de konsèy dwa nou yo ak konsèy gòch nou an 992 01:17:28,790 --> 01:17:32,900 osi lontan ke yo ap pa nil. 993 01:17:32,900 --> 01:17:36,390 Desann isit la, mwen devine nou ta dwe te fè sa nan plas an premye. 994 01:17:36,390 --> 01:17:44,080 Si (akt-> dwat! = Nil) 995 01:17:44,080 --> 01:17:56,380 Lè sa a, nou pral insert ki ne nan lis nou an. 996 01:17:56,380 --> 01:17:59,290 Si (akt-> agòch), sa a se yon ti kras nan travay siplemantè, men li la amann. 997 01:17:59,290 --> 01:18:02,690 Si (akt-> goch! = Nil), 998 01:18:02,690 --> 01:18:14,310 epi nou ap ale nan insert gòch la nan lye lis nou an, 999 01:18:14,310 --> 01:18:19,700 e ke yo ta dwe li. 1000 01:18:19,700 --> 01:18:22,670 Nou répétèr - osi lontan ke nou gen yon bagay nan lis nou an, 1001 01:18:22,670 --> 01:18:26,640 nou gen yon lòt ne fè yon gade nan. 1002 01:18:26,640 --> 01:18:28,920 Se konsa, nou gade nan ki ne, 1003 01:18:28,920 --> 01:18:31,390 nou avanse lis nou an nan yon sèl kap vini an. 1004 01:18:31,390 --> 01:18:34,060 Si se sa ki ne se valè a nou ap chèche pou yo, nou ka retounen vre. 1005 01:18:34,060 --> 01:18:37,640 Lòt Bagay insert tou de subtrees kite la ak dwa nou an, 1006 01:18:37,640 --> 01:18:40,510 osi lontan ke yo ap pa nil, nan lis nou an 1007 01:18:40,510 --> 01:18:43,120 pou nou inevitableman ale sou yo. 1008 01:18:43,120 --> 01:18:45,160 Se konsa, si yo pa t 'nil, 1009 01:18:45,160 --> 01:18:47,950 si konsèy rasin nou pwente nan de bagay sa yo, 1010 01:18:47,950 --> 01:18:51,670 Lè sa a, an premye nou rale yon bagay ki soti pou lis nou an fini moute yo te nil. 1011 01:18:51,670 --> 01:18:56,890 Lè sa a, nou mete de bagay sa yo tounen nan sa, koulye a lis nou an, se nan gwosè 2. 1012 01:18:56,890 --> 01:19:00,030 Lè sa a, nou pral riban tounen moute ak nou ap jis pral rale, 1013 01:19:00,030 --> 01:19:04,250 kite a di, konsèy gòch nan ne rasin nou an. 1014 01:19:04,250 --> 01:19:07,730 E ke pral jis kenbe pase, nou pral fini loupin sou tout bagay. 1015 01:19:07,730 --> 01:19:11,280 >> Remake sa a te siyifikativman pi konplike 1016 01:19:11,280 --> 01:19:14,160 nan solisyon an repetitif. 1017 01:19:14,160 --> 01:19:17,260 Apre sa, mwen te di ke plizyè fwa 1018 01:19:17,260 --> 01:19:25,120 ki solisyon an repetitif anjeneral gen anpil nan komen avèk repete nan solisyon an. 1019 01:19:25,120 --> 01:19:30,820 Isit la sa a se egzakteman sa solisyon an repetitif ap fè. 1020 01:19:30,820 --> 01:19:36,740 Chanjman nan sèlman se ke olye pou yo lè l sèvi avèk chal chemine a, chemine a pwogram lan, 1021 01:19:36,740 --> 01:19:40,840 kòm fason ou nan kenbe tras de sa ki nœuds ou toujou bezwen pou vizite, pou 1022 01:19:40,840 --> 01:19:45,430 kounye a ou gen klèman sèvi ak yon lis lye. 1023 01:19:45,430 --> 01:19:49,070 Nan de ka nou ap swiv sa ki ne toujou bezwen yo dwe vizite. 1024 01:19:49,070 --> 01:19:51,790 Nan ka repetitif li nan jis pi fasil paske yon pil 1025 01:19:51,790 --> 01:19:57,100 se aplike pou ou tankou chemine pwogram lan. 1026 01:19:57,100 --> 01:19:59,550 Remake lis sa a lye, li se yon pil. 1027 01:19:59,550 --> 01:20:01,580 Kèlkeswa sa nou jis mete yo sou chemine a 1028 01:20:01,580 --> 01:20:09,960 se imedyatman ki sa nou ap ale nan rale desann chemine a ale nan pwochen. 1029 01:20:09,960 --> 01:20:14,380 Nou se soti nan tan, men nenpòt kesyon? 1030 01:20:14,380 --> 01:20:23,530 [Elèv yo, enkonpreansibl] 1031 01:20:23,530 --> 01:20:27,790 [Bowden] Yeah. Se konsa, si nou gen lis lye nou an, 1032 01:20:27,790 --> 01:20:30,150 aktyèl ki pral lonje dwèt sou sa a Guy, 1033 01:20:30,150 --> 01:20:34,690 e kounye a, nou ap jis avanse lis lye nou yo konsantre sou sa a Guy. 1034 01:20:34,690 --> 01:20:44,200 Nou ap travèse sou lis la lye nan ki liy. 1035 01:20:44,200 --> 01:20:51,200 Lè sa a, mwen devine nou ta dwe libere lis lye nou ak lòt bagay 1036 01:20:51,200 --> 01:20:53,880 yon fwa anvan yo tounen vre oubyen fo, nou bezwen 1037 01:20:53,880 --> 01:20:57,360 repekte sou lye lis nou an epi toujou desann isit la, mwen devine, 1038 01:20:57,360 --> 01:21:03,900 si nou akt dwa se pa egal a, ajoute li, pou kounye a nou vle libere 1039 01:21:03,900 --> 01:21:09,600 akt paske, byen, nou te konplètman bliye sou lis la? Yeah. 1040 01:21:09,600 --> 01:21:12,880 Se konsa, sa a, se sa nou vle fè isit la. 1041 01:21:12,880 --> 01:21:16,730 Ki kote nan konsèy la? 1042 01:21:16,730 --> 01:21:23,320 Akt te Lè sa a, - nou vle yon lis struct * 10 egal lis kap vini an. 1043 01:21:23,320 --> 01:21:29,240 Gratis lis, lis = tanporèr. 1044 01:21:29,240 --> 01:21:32,820 Ak nan ka a kote nou retounen vre, nou bezwen répétèr 1045 01:21:32,820 --> 01:21:37,050 sou rès lis lye nou libere bagay sa yo. 1046 01:21:37,050 --> 01:21:39,700 Bagay nan bon sou solisyon an repetitif la libere bagay sa yo 1047 01:21:39,700 --> 01:21:44,930 jis vle di eklate factorings koupe chemine a ki pral rive pou ou. 1048 01:21:44,930 --> 01:21:50,720 Se konsa, nou te ale soti nan yon bagay ki tankou 3 liy nan difisil-a-panse-sou kòd 1049 01:21:50,720 --> 01:21:57,520 yon bagay ki se siyifikativman anpil plis difisil-a-panse-sou liy nan kòd. 1050 01:21:57,520 --> 01:22:00,620 Nenpòt piplis kesyon? 1051 01:22:00,620 --> 01:22:08,760 Tout dwa. Nou se bon. Bye! 1052 01:22:08,760 --> 01:22:11,760 [CS50.TV]