1 00:00:00,000 --> 00:00:03,423 >> [Мусиц плаиинг] 2 00:00:03,423 --> 00:00:05,380 3 00:00:05,380 --> 00:00:08,210 >> Анди Пенг: Добродошли у недељу 6. члана. 4 00:00:08,210 --> 00:00:11,620 Одступио смо од нашег стандарда секција време уторак 5 00:00:11,620 --> 00:00:14,130 дан ове дивне недељу ујутро. 6 00:00:14,130 --> 00:00:17,330 Хвала вам за све који придружио ме данас, али озбиљно, 7 00:00:17,330 --> 00:00:18,170 Велики аплауз. 8 00:00:18,170 --> 00:00:20,600 >> То је прилично велики напор. 9 00:00:20,600 --> 00:00:23,600 Скоро нисам ни успети у времену, али то је у реду. 10 00:00:23,600 --> 00:00:27,520 Дакле, знам да сви ви Управо сам стигао до квизу. 11 00:00:27,520 --> 00:00:30,370 Пре свега, добродошли у друга страна о томе. 12 00:00:30,370 --> 00:00:32,917 >> Друго, ми ћемо разговарати о томе. 13 00:00:32,917 --> 00:00:34,000 Причаћемо о квизу. 14 00:00:34,000 --> 00:00:35,700 Причаћемо о томе како радите у класи. 15 00:00:35,700 --> 00:00:36,550 Бићеш добро. 16 00:00:36,550 --> 00:00:39,080 Имам своје квизове за ви на крају овде, 17 00:00:39,080 --> 00:00:42,120 па ако хоћете да погледам, потпуно у реду. 18 00:00:42,120 --> 00:00:46,590 >> Тако брзо пре него што почнемо, Тхе програм за данас је следећи. 19 00:00:46,590 --> 00:00:48,430 Као што можете видети, ми смо у основи брз печења 20 00:00:48,430 --> 00:00:52,120 кроз гомила структуре података стварно, стварно, стварно брзо. 21 00:00:52,120 --> 00:00:54,380 Дакле, као што је, неће бити Супер интерактивни данас. 22 00:00:54,380 --> 00:00:59,620 То ће бити нека врста виче ми ствари које ви, и ако те збуни, 23 00:00:59,620 --> 00:01:02,680 ако идем пребрзо, јави ми. 24 00:01:02,680 --> 00:01:05,200 Они су само различите податке структуре, ау оквиру 25 00:01:05,200 --> 00:01:07,070 Ваше псет за ово Предстојећа недеља, ви ћете 26 00:01:07,070 --> 00:01:10,340 бити затражено да спроведе једну од њих, можда два њих-- две од њих 27 00:01:10,340 --> 00:01:12,319 у вашем псет. 28 00:01:12,319 --> 00:01:14,610 У реду, тако да ћу да почнем са неким најавама. 29 00:01:14,610 --> 00:01:19,070 Идемо преко гомиле и редовима више у Дубина него што смо радили пре квизу. 30 00:01:19,070 --> 00:01:20,990 Идемо преко повезан лист поново, поново, 31 00:01:20,990 --> 00:01:23,899 више у дубину него што смо имали пре квизу. 32 00:01:23,899 --> 00:01:26,440 А онда ћемо причати о хасх столови, дрвеће и покушава, који 33 00:01:26,440 --> 00:01:28,890 сви су прилично потребно за ваше псет. 34 00:01:28,890 --> 00:01:32,925 А онда ћемо ићи преко неке корисни савети о псет5. 35 00:01:32,925 --> 00:01:37,360 >> У реду, тако квиз 0. 36 00:01:37,360 --> 00:01:41,090 Просечна је био 58%. 37 00:01:41,090 --> 00:01:45,370 Било је врло ниска, па ви све јесте веома, веома добро у складу 38 00:01:45,370 --> 00:01:46,510 с тим. 39 00:01:46,510 --> 00:01:49,970 >> Прилично, правило је да ако сте унутар стандардна девијација средине 40 00:01:49,970 --> 00:01:52,990 нарочито јер смо у мање удобно секција, ти си потпуно у реду. 41 00:01:52,990 --> 00:01:54,120 Ви сте на правом путу. 42 00:01:54,120 --> 00:01:55,190 Живот је добар. 43 00:01:55,190 --> 00:01:58,952 >> Знам да је страшно мислити да Добио сам као 40% на овом квизу. 44 00:01:58,952 --> 00:02:00,160 Ја ћу успети овај предмет. 45 00:02:00,160 --> 00:02:02,243 Обећавам ти, ниси успети класу. 46 00:02:02,243 --> 00:02:03,680 Ти си потпуно у реду. 47 00:02:03,680 --> 00:02:06,850 >> За оне од вас који су добили преко средња, импресивна, импресивно, 48 00:02:06,850 --> 00:02:08,780 као, озбиљно добро урађено. 49 00:02:08,780 --> 00:02:09,689 Имам их са собом. 50 00:02:09,689 --> 00:02:11,730 Слободно доћи да их на крају одељку. 51 00:02:11,730 --> 00:02:14,520 Јавите ми ако имате било питања, питања са њима. 52 00:02:14,520 --> 00:02:17,204 Ако се томе дода свој резултат у праву, јавите нам. 53 00:02:17,204 --> 00:02:21,240 >> У реду, тако да псет5, ово је стварно чудно недеље за Иале у смислу 54 00:02:21,240 --> 00:02:24,240 да је наша псет је због Среда у подне, укључујући 55 00:02:24,240 --> 00:02:27,317 покојни дан, тако да заправо теоретски због уторак у подне. 56 00:02:27,317 --> 00:02:29,150 Вероватно нико завршен у уторак у подне. 57 00:02:29,150 --> 00:02:30,830 То је потпуно у реду. 58 00:02:30,830 --> 00:02:33,700 Ми ћемо имати радног времена вечерас као у понедељак увече. 59 00:02:33,700 --> 00:02:36,810 И све од секција ове недеље ће заправо бити претворена у радионицама, 60 00:02:36,810 --> 00:02:38,800 тако да слободно поп у свака секција желите, 61 00:02:38,800 --> 00:02:42,810 и они ће бити нека врста мини псет радионице за помоћ у вези са тим. 62 00:02:42,810 --> 00:02:45,620 Дакле, као што је, ово је једини део где смо наставни материјал. 63 00:02:45,620 --> 00:02:49,220 Сви други делови ће се усредсредити искључиво на помоћ за псет. 64 00:02:49,220 --> 00:02:50,146 Да? 65 00:02:50,146 --> 00:02:52,000 >> ПУБЛИКА: Где су радно време? 66 00:02:52,000 --> 00:02:56,120 >> Анди Пенг: Радно време вечерас Ох, добро питање. 67 00:02:56,120 --> 00:03:00,580 Мислим да је радно време вечерас су у Теал или на Цоммонс. 68 00:03:00,580 --> 00:03:02,984 Ако сте проверили онлајн ЦС50 а ви идите на радног времена, 69 00:03:02,984 --> 00:03:05,650 треба да постоји распоред који вам говори где су сви од њих су. 70 00:03:05,650 --> 00:03:07,954 >> Ја знам ни вечерас или сутра је тиркизна, 71 00:03:07,954 --> 00:03:10,120 и мислим да имамо Цоммонс за друге ноћи. 72 00:03:10,120 --> 00:03:11,020 Нисам сигуран. 73 00:03:11,020 --> 00:03:11,700 Добро питање. 74 00:03:11,700 --> 00:03:14,430 Проверите на ЦС50. 75 00:03:14,430 --> 00:03:18,780 >> Цоол, питања у вези са распоред за следећи слично три дана? 76 00:03:18,780 --> 00:03:21,690 Обећавам момци попут Давида рекао је, ово је врх брда. 77 00:03:21,690 --> 00:03:23,050 Ви сте готово тамо. 78 00:03:23,050 --> 00:03:24,644 Само још три дана. 79 00:03:24,644 --> 00:03:26,310 Иди тамо, и онда ћемо сви доћи. 80 00:03:26,310 --> 00:03:28,114 Имаћемо леп ЦС-фрее паузу. 81 00:03:28,114 --> 00:03:28,780 Добродошли назад. 82 00:03:28,780 --> 00:03:30,779 Ми ћемо зарони у веб програмирање и развој, 83 00:03:30,779 --> 00:03:35,150 ствари које су врло забавно поређењу на неке друге псетс. 84 00:03:35,150 --> 00:03:37,974 И то ће бити хладан и ћемо имати пуно забаве. 85 00:03:37,974 --> 00:03:38,890 Имаћемо више бомбона. 86 00:03:38,890 --> 00:03:39,730 Извините за слаткише. 87 00:03:39,730 --> 00:03:40,945 Заборавио сам слаткише. 88 00:03:40,945 --> 00:03:43,310 То је био тежак дан. 89 00:03:43,310 --> 00:03:46,340 Дакле, ви сте скоро тамо, и заиста сам поносан на вас. 90 00:03:46,340 --> 00:03:49,570 >> У реду, тако да гомила. 91 00:03:49,570 --> 00:03:53,331 Ко је волео питање о Јацк и његова одећа на квизу? 92 00:03:53,331 --> 00:03:53,830 Нико? 93 00:03:53,830 --> 00:03:56,500 У реду, то је у реду. 94 00:03:56,500 --> 00:04:00,200 >> Дакле, у суштини као што можете слика Џек, овај момак овде, 95 00:04:00,200 --> 00:04:03,350 воли да одећу из врха стека, 96 00:04:03,350 --> 00:04:05,750 и он га ставља назад на стек Након што је урађено. 97 00:04:05,750 --> 00:04:07,600 Дакле, на овај начин, никада није Изгледа да добити 98 00:04:07,600 --> 00:04:10,090 до дну стацк у својој одећи. 99 00:04:10,090 --> 00:04:12,600 Дакле, ова врста описује основна структура података 100 00:04:12,600 --> 00:04:16,610 како се имплементира стек. 101 00:04:16,610 --> 00:04:20,060 >> У суштини, мислим олуја са стацк као и сваки стек објеката 102 00:04:20,060 --> 00:04:24,900 где сте ставили ствари на врху, и онда их искочити из врха. 103 00:04:24,900 --> 00:04:28,600 Дакле, ЛИФО је акроним волимо да Користи, Ласт ин, фирст оут. 104 00:04:28,600 --> 00:04:32,480 И тако трајати у на врху стек је прва која излази. 105 00:04:32,480 --> 00:04:34,260 И тако два термина ми волимо да се друже 106 00:04:34,260 --> 00:04:36,190 са тим се зове гурај и поп. 107 00:04:36,190 --> 00:04:39,790 Када притиснете нешто на стацк, и ви то поп назад. 108 00:04:39,790 --> 00:04:43,422 >> И тако претпостављам да је ово нека врста апстрактан појам за оне од вас 109 00:04:43,422 --> 00:04:45,630 који желе да виде Лике Ан Имплементација ове 110 00:04:45,630 --> 00:04:46,740 у стварном свету. 111 00:04:46,740 --> 00:04:50,170 Колико сте написали есеј можда као сат пре него што је због, 112 00:04:50,170 --> 00:04:54,510 а ти случајно избрисане велики комад од тога, као случајно? 113 00:04:54,510 --> 00:04:58,560 А шта онда раде контрола користимо да га вратим? 114 00:04:58,560 --> 00:05:00,030 Контрола З, зар не? 115 00:05:00,030 --> 00:05:03,640 Цонтрол-З, тако да износ времена да контрола-З је спасао живот, 116 00:05:03,640 --> 00:05:08,820 је спасао дупе, сваки пут који је реализован кроз гомиле. 117 00:05:08,820 --> 00:05:13,020 >> У суштини све информације то је на Ворд документ, 118 00:05:13,020 --> 00:05:15,080 бива гура и убацио по вољи. 119 00:05:15,080 --> 00:05:19,460 И тако у суштини кад вас делете ништа, ти то поп назад. 120 00:05:19,460 --> 00:05:22,820 И онда ако вам је потребна вратио, хвала пусх ит, то је оно што контрола-Ц нема. 121 00:05:22,820 --> 00:05:26,770 И тако стварно функција свет како једноставне структуре података 122 00:05:26,770 --> 00:05:28,690 може да помогне у вашем свакодневном животу. 123 00:05:28,690 --> 00:05:31,710 124 00:05:31,710 --> 00:05:40,150 >> Дакле, струцт је начин на који Ми смо заправо створити гомилу. 125 00:05:40,150 --> 00:05:44,720 Ми дефинишемо тип градитеља, а затим зовемо се слажу на дну. 126 00:05:44,720 --> 00:05:47,440 И у стеку, имамо два параметра 127 00:05:47,440 --> 00:05:51,580 да смо у суштини може да манипулише, тако да имамо цхар стар стрингс капацитета. 128 00:05:51,580 --> 00:05:55,150 >> Све што се ради ствара низ 129 00:05:55,150 --> 00:05:58,835 да може да складишти шта год желиш које можемо одредити своје капацитете. 130 00:05:58,835 --> 00:06:01,990 Капацитет је само највећа количина ставке можемо ставити у овај низ. 131 00:06:01,990 --> 00:06:05,660 Инт величина је бројач који држи прати колико предмета су тренутно 132 00:06:05,660 --> 00:06:07,850 у стеку. 133 00:06:07,850 --> 00:06:11,860 Онда можемо пратити, А, и колика је стварна стек, 134 00:06:11,860 --> 00:06:14,850 и Б, колико те стека смо пунили јер не желимо 135 00:06:14,850 --> 00:06:18,800 да преплавити шта је наш капацитет је. 136 00:06:18,800 --> 00:06:24,340 >> Тако, на пример, овај диван питање је на квизу. 137 00:06:24,340 --> 00:06:28,160 У суштини како да наставимо на врху гомиле. 138 00:06:28,160 --> 00:06:28,830 Прилично једноставно. 139 00:06:28,830 --> 00:06:30,621 Ако погледате, ћемо проћи кроз ово. 140 00:06:30,621 --> 00:06:32,640 Ако [неразумљиво] сизе-- запамтите, кад год 141 00:06:32,640 --> 00:06:35,300 желите да приступите било параметар у оквиру струцт, 142 00:06:35,300 --> 00:06:40,320 ти име струцт.параметер. 143 00:06:40,320 --> 00:06:42,720 >> У овом случају, с је име нашег стека. 144 00:06:42,720 --> 00:06:46,230 Желимо да приступите величину о томе, тако да радимо с.сизе. 145 00:06:46,230 --> 00:06:50,280 Дакле, докле год величина није једнак капацитету или онолико дуго 146 00:06:50,280 --> 00:06:52,940 као што је мање од капацитета, или ће радити овде. 147 00:06:52,940 --> 00:06:57,180 >> Ви желите да приступите унутрашњости Ваше стека, тако с.стрингс, 148 00:06:57,180 --> 00:07:00,790 и ти ћеш да се тај нови број да желите да убаците у тамо. 149 00:07:00,790 --> 00:07:05,030 Рецимо да ће желети да убаците инт н на стек, 150 00:07:05,030 --> 00:07:08,905 можемо да урадимо с.стрингс, држачи, с.сизе једнако н. 151 00:07:08,905 --> 00:07:11,030 Пошто је величина где смо Тренутно су у стеку 152 00:07:11,030 --> 00:07:14,590 ако ћемо да гура да, ми само приступ 153 00:07:14,590 --> 00:07:17,370 где год величина је, тренутна пуноћа стека, 154 00:07:17,370 --> 00:07:21,729 а ми гурните инт н на њега. 155 00:07:21,729 --> 00:07:24,770 И онда желите да се уверите да Такође смо се увецава величину н, 156 00:07:24,770 --> 00:07:27,436 тако да можемо пратити имамо додао још један ствар стека. 157 00:07:27,436 --> 00:07:29,660 Сада имамо веће величине. 158 00:07:29,660 --> 00:07:33,196 Да ли ово овде смисла сви, како логички то ради? 159 00:07:33,196 --> 00:07:34,160 Било је брзо. 160 00:07:34,160 --> 00:07:39,535 161 00:07:39,535 --> 00:07:42,160 ПУБЛИКА: Да ли идете преко су с.стрингсс.стрингс [с.сизе] опет? 162 00:07:42,160 --> 00:07:45,808 Анди Пенг: Наравно, па шта с.сизе тренутно нам дати? 163 00:07:45,808 --> 00:07:47,440 ПУБЛИКА: То је тренутна величина. 164 00:07:47,440 --> 00:07:50,890 Анди Пенг: Тачно, тако да је тренутна индекс који наша величина је у, 165 00:07:50,890 --> 00:07:57,780 па желимо да стави нову цео да желимо да убаците у с.сизе. 166 00:07:57,780 --> 00:07:58,760 Да ли то има смисла? 167 00:07:58,760 --> 00:08:01,110 Зато што с.стрингс, све то је је име низа. 168 00:08:01,110 --> 00:08:03,510 Све што је је Приступање Арраи у нашем струцт, 169 00:08:03,510 --> 00:08:06,030 па ако желимо да поставите н у том индексу, 170 00:08:06,030 --> 00:08:09,651 можемо само да јој приступе користе заграде с.сизе. 171 00:08:09,651 --> 00:08:10,150 Кул. 172 00:08:10,150 --> 00:08:13,580 173 00:08:13,580 --> 00:08:18,916 >> У реду, поп га Псеудокод сам за вас, али сличан концепт. 174 00:08:18,916 --> 00:08:19,790 Да ли то има смисла? 175 00:08:19,790 --> 00:08:22,310 Ако је величина већа од нуле, онда сте 176 00:08:22,310 --> 00:08:25,350 знам да желите да нешто јер ако се величина није 177 00:08:25,350 --> 00:08:27,620 већи од нуле, онда Немам ништа у димњак. 178 00:08:27,620 --> 00:08:29,840 >> Дакле, желите само да извршите овај код, може само да 179 00:08:29,840 --> 00:08:32,320 поп ако постоји нешто да поп. 180 00:08:32,320 --> 00:08:35,830 Дакле, ако је величина већа од 0, што минус величина. 181 00:08:35,830 --> 00:08:40,020 Смањите смо величину и онда се вратити оно што је у њему, јер 182 00:08:40,020 --> 00:08:42,710 од поппинг, желимо да Приступ год се складишти 183 00:08:42,710 --> 00:08:45,694 у индексу на врху гомиле. 184 00:08:45,694 --> 00:08:46,610 Све смисла? 185 00:08:46,610 --> 00:08:49,693 Ако сам ви пишете ово, би момци моћи да га напишем? 186 00:08:49,693 --> 00:08:52,029 187 00:08:52,029 --> 00:08:53,570 У реду, ви можете да играте са њом. 188 00:08:53,570 --> 00:08:55,252 Без бриге ако не капирам. 189 00:08:55,252 --> 00:08:57,460 Немамо времена за индекс то се данас, јер смо 190 00:08:57,460 --> 00:08:59,959 Има пуно тих структура проћи кроз, али у суштини 191 00:08:59,959 --> 00:09:02,214 Псеудокод, веома, веома сличан гурати. 192 00:09:02,214 --> 00:09:03,380 Само пратите логику. 193 00:09:03,380 --> 00:09:06,092 Уверите се да приступате све Вашег струцт исправно. 194 00:09:06,092 --> 00:09:06,574 Да? 195 00:09:06,574 --> 00:09:09,282 >> ПУБЛИКА: Хоће ли ови слајдови и цела ова ствар бити до данас-иш? 196 00:09:09,282 --> 00:09:11,586 Анди Пенг: Увек, да. 197 00:09:11,586 --> 00:09:13,710 Ја ћу покушати да стави ово као сат после. 198 00:09:13,710 --> 00:09:16,626 Ја ћу емаил Давида, Давид ће покушати да стави га као сат после овога. 199 00:09:16,626 --> 00:09:20,040 200 00:09:20,040 --> 00:09:25,470 >> У реду, па онда можемо да пређемо на ово друго дивно структура података се зове ред. 201 00:09:25,470 --> 00:09:30,140 Као ви можете видети овде, а ред, за Британце међу нама, 202 00:09:30,140 --> 00:09:32,010 све што је је линија. 203 00:09:32,010 --> 00:09:34,680 Дакле, супротно ономе што мислиш да гомила је, 204 00:09:34,680 --> 00:09:37,750 Ред је управо то логично мислите да јесте. 205 00:09:37,750 --> 00:09:41,914 То је држали правила ФИФО, који је први у, први од. 206 00:09:41,914 --> 00:09:43,705 Ако сте први једна у низу, ти си 207 00:09:43,705 --> 00:09:46,230 први који је излази из линије. 208 00:09:46,230 --> 00:09:49,680 >> Дакле, оно што ми називамо ово је декуеуеинг и енкуеуеинг. 209 00:09:49,680 --> 00:09:52,380 Ако желимо нешто да дода у нашем реду, енкуеуе смо. 210 00:09:52,380 --> 00:09:55,690 Ако желимо да декуеуе, или да Нешто даље, декуеуе смо. 211 00:09:55,690 --> 00:10:03,350 >> Дакле, исти осећај да смо некако стварање фиксне величине елементе које смо 212 00:10:03,350 --> 00:10:06,500 може похранити сигурно ствари, али можемо 213 00:10:06,500 --> 00:10:10,100 промените где смо постављање параметри унутар њих 214 00:10:10,100 --> 00:10:13,140 На основу онога што врсти функционалност желимо. 215 00:10:13,140 --> 00:10:16,700 Тако гомиле, желели смо последњи један, Н да буде први напоље. 216 00:10:16,700 --> 00:10:19,800 Ред је да хоћемо да је прва ствар у да буде прва ствар напоље. 217 00:10:19,800 --> 00:10:22,510 218 00:10:22,510 --> 00:10:26,710 >> Тако је струцт типа дефинишу, као што видите, 219 00:10:26,710 --> 00:10:29,470 то је мало другачија од онога што је било стек 220 00:10:29,470 --> 00:10:33,120 јер не само да морамо наставити колосек где је величина је тренутно, 221 00:10:33,120 --> 00:10:37,420 Такође желимо да пратите главе као и где тренутно смо. 222 00:10:37,420 --> 00:10:39,580 Тако да мислим да је лакше ако сам нацртао горе. 223 00:10:39,580 --> 00:10:53,270 Дакле, хајде да замислимо да имамо ред, Рецимо глава је овде. 224 00:10:53,270 --> 00:10:55,811 225 00:10:55,811 --> 00:10:58,310 Шеф линије, хајдемо само да кажем да је тренутно тамо, 226 00:10:58,310 --> 00:11:01,809 и желимо да убаците нешто у реду. 227 00:11:01,809 --> 00:11:04,350 Ја ћу да зовем величину суштински је иста ствар као репа, 228 00:11:04,350 --> 00:11:06,314 крај где год ваш ред је. 229 00:11:06,314 --> 00:11:07,730 Рецимо да је величина је овде. 230 00:11:07,730 --> 00:11:14,380 231 00:11:14,380 --> 00:11:18,400 >> Дакле, како се један феасибли убаците нешто у реду за? 232 00:11:18,400 --> 00:11:21,000 233 00:11:21,000 --> 00:11:24,130 Оно индекс желимо да поставите где желимо да убаците у. 234 00:11:24,130 --> 00:11:29,320 Ако је ово на почетку свог куеуе и ово је крај 235 00:11:29,320 --> 00:11:31,860 или величини тога, где и ми желите да додате следећи објекат? 236 00:11:31,860 --> 00:11:32,920 >> ПУБЛИКА: [неразумљиво] 237 00:11:32,920 --> 00:11:35,920 Анди Пенг: Тачно, желите да додате то зависи од сте га написали. 238 00:11:35,920 --> 00:11:37,840 Или је ово празно, или да је празно. 239 00:11:37,840 --> 00:11:42,630 Дакле, желите да га додате вероватно Овде јер ако је величина је-- 240 00:11:42,630 --> 00:11:50,540 ако су сви пуни, хоћеш да га додате овде, зар не? 241 00:11:50,540 --> 00:11:57,150 >> И то је, док је веома, веома једноставно, не баш увијек тачно 242 00:11:57,150 --> 00:12:00,690 јер је главна разлика између ред и стацк 243 00:12:00,690 --> 00:12:04,350 је да је ред може заправо може манипулисати 244 00:12:04,350 --> 00:12:06,980 тако да су промене главе у зависности од тога где желите 245 00:12:06,980 --> 00:12:08,650 почетак вашег правом да почне. 246 00:12:08,650 --> 00:12:11,900 И као резултат тога, ваш реп такође ће се променити. 247 00:12:11,900 --> 00:12:14,770 И тако погледај ово сада код. 248 00:12:14,770 --> 00:12:18,620 Како ви је такође тражено да написати на квизу, енкуеуе. 249 00:12:18,620 --> 00:12:22,580 Можда ћемо причати кроз зашто одговор је био оно што је било. 250 00:12:22,580 --> 00:12:26,790 >> Нисам могао сасвим стане ову линију на једној, али у суштини овај део кода 251 00:12:26,790 --> 00:12:29,030 треба да буде на једној линији. 252 00:12:29,030 --> 00:12:30,140 Проведите као 30 секунди. 253 00:12:30,140 --> 00:12:33,000 Погледајте и уверите се зашто ово је начин на који је то. 254 00:12:33,000 --> 00:12:50,030 255 00:12:50,030 --> 00:12:55,420 >> Врло, врло слична струцт, веома, веома Слична структура као претходна 256 00:12:55,420 --> 00:12:58,090 стацк осим можда једна линија кода. 257 00:12:58,090 --> 00:13:01,190 И то једну линију кода одређује функционалност. 258 00:13:01,190 --> 00:13:03,900 И заиста разликује Ред је из гомиле. 259 00:13:03,900 --> 00:13:18,510 260 00:13:18,510 --> 00:13:22,010 >> Свако ко жели да се убод на објашњавајући зашто си 261 00:13:22,010 --> 00:13:24,980 Има ту компликовану ствар овде? 262 00:13:24,980 --> 00:13:27,845 Видимо повратак нашег диван пријатељ модул. 263 00:13:27,845 --> 00:13:31,020 Као што ви ће ускоро доћи препознати у програмирању, 264 00:13:31,020 --> 00:13:34,910 Скоро кад год треба нешто да заврши око било чега, 265 00:13:34,910 --> 00:13:36,850 модул ће бити начин да се то уради. 266 00:13:36,850 --> 00:13:40,510 Тако знајући да, да ли неко жели покушати објашњавајући ту линију кода? 267 00:13:40,510 --> 00:13:44,060 268 00:13:44,060 --> 00:13:47,507 Да, сви одговори су прихваћено и добродошло. 269 00:13:47,507 --> 00:13:48,840 ПУБЛИКА: Аре иоу талкинг то ме? 270 00:13:48,840 --> 00:13:49,506 Анди Пенг: Да. 271 00:13:49,506 --> 00:13:56,200 ПУБЛИКА: Ох, не извини. 272 00:13:56,200 --> 00:14:00,250 Анди Пенг: У реду, хајде да шетња кроз овај код. 273 00:14:00,250 --> 00:14:03,642 Дакле, када покушавате да додати нешто на реду за, 274 00:14:03,642 --> 00:14:08,510 у дивној случају да глава се дешава да будем овде, то је врло лако за нас 275 00:14:08,510 --> 00:14:10,960 да само идем до краја убаците нешто, зар не? 276 00:14:10,960 --> 00:14:14,690 Али поента је ред је да глава може заправо динамички 277 00:14:14,690 --> 00:14:17,280 мењати у зависности од тога где смо Желим почетак нашег к да буде, 278 00:14:17,280 --> 00:14:19,880 и као такав, репа такође ће се променити. 279 00:14:19,880 --> 00:14:31,100 >> И тако замислите да то није било куеуе, већ је то био ред. 280 00:14:31,100 --> 00:14:37,900 281 00:14:37,900 --> 00:14:39,330 Рецимо глава је овде. 282 00:14:39,330 --> 00:14:54,900 283 00:14:54,900 --> 00:14:56,980 Рецимо наш ред изгледао овако. 284 00:14:56,980 --> 00:15:00,190 Ако бисмо хтели да пребаце где почетак линије је, 285 00:15:00,190 --> 00:15:03,400 рецимо да помера главу на овај начин и величине овде. 286 00:15:03,400 --> 00:15:07,100 >> Сада желимо да додамо нешто ово ред, али ви можете видети, 287 00:15:07,100 --> 00:15:11,150 то није тако једноставно као да само додати све што је након величини 288 00:15:11,150 --> 00:15:13,630 јер онда понестало границе наше стварне низа. 289 00:15:13,630 --> 00:15:16,190 Где желимо да заиста додати овде. 290 00:15:16,190 --> 00:15:18,610 То је љепота реду је то да нам је визуелно 291 00:15:18,610 --> 00:15:22,380 Изгледа да је линија иде овако, али када чувају у структури података, 292 00:15:22,380 --> 00:15:29,370 они дати као као циклус. 293 00:15:29,370 --> 00:15:32,360 То некако обавија око на фронт на исти начин 294 00:15:32,360 --> 00:15:34,780 да линија може умотати око зависности где год вас 295 00:15:34,780 --> 00:15:36,279 Желим да поцетку линије да буде. 296 00:15:36,279 --> 00:15:38,630 И тако ако узмемо гледај доле, хајде да 297 00:15:38,630 --> 00:15:40,880 кажу желели смо да створимо функција названа енкуеуе. 298 00:15:40,880 --> 00:15:43,980 Желели смо да додамо инт н у тај к. 299 00:15:43,980 --> 00:15:49,250 Ако к.сизе к-- ћемо позвати да наше податке струцтуре-- ако наш куеуе.сизе не 300 00:15:49,250 --> 00:15:52,520 једнак капацитету или ако то је мање од капацитета, 301 00:15:52,520 --> 00:15:55,120 к.стрингс је низ у нашој к. 302 00:15:55,120 --> 00:15:58,380 Ми ћемо поставити да једнако к.хеадс, 303 00:15:58,380 --> 00:16:02,730 који је овде, плус к.сизе Модул од капацитета који 304 00:16:02,730 --> 00:16:04,290 врап нас поново овде. 305 00:16:04,290 --> 00:16:08,040 >> Дакле, у овом примеру, индекс главе је 1, зар не? 306 00:16:08,040 --> 00:16:11,480 Индекс величине је 0, 1, 2, 3, 4. 307 00:16:11,480 --> 00:16:19,500 Дакле, можемо да урадимо 1 плус 4 модул наш капацитет који је 5. 308 00:16:19,500 --> 00:16:20,920 Шта нам то даје? 309 00:16:20,920 --> 00:16:23,270 Шта је индекс који излази из овога? 310 00:16:23,270 --> 00:16:24,080 >> ПУБЛИКА: 0. 311 00:16:24,080 --> 00:16:27,870 >> Анди Пенг: 0, што случајно овде, 312 00:16:27,870 --> 00:16:30,640 па желимо да будемо у стању да убаците у овде. 313 00:16:30,640 --> 00:16:34,730 И тако ова једначина овде некако да само ради са свим бројевима 314 00:16:34,730 --> 00:16:36,750 у зависности од тога где је ваш глава и твоја величина су. 315 00:16:36,750 --> 00:16:38,541 Ако знате шта они ствари су, знате 316 00:16:38,541 --> 00:16:43,170 тачно тамо где желите да убаците шта год да је после чекања. 317 00:16:43,170 --> 00:16:44,640 Да ли то има смисла свима? 318 00:16:44,640 --> 00:16:48,560 >> Знам врсту мозга теасер поготово јер 319 00:16:48,560 --> 00:16:50,512 дошао као последица вашег квизу. 320 00:16:50,512 --> 00:16:52,220 Али, надамо се сви Сада може да разуме 321 00:16:52,220 --> 00:16:57,800 Зашто ово решење или ово Функција је начин на који је то. 322 00:16:57,800 --> 00:16:59,840 Свако мало нејасно о томе? 323 00:16:59,840 --> 00:17:03,471 324 00:17:03,471 --> 00:17:03,970 ОК. 325 00:17:03,970 --> 00:17:07,109 326 00:17:07,109 --> 00:17:09,970 >> И сада, ако вас желео да декуеуе, ово 327 00:17:09,970 --> 00:17:15,240 је место где би наша глава се помера јер ако бисмо декуеуе, 328 00:17:15,240 --> 00:17:17,030 не скинути крај к. 329 00:17:17,030 --> 00:17:19,130 Желимо да скинем главу, зар не? 330 00:17:19,130 --> 00:17:24,260 Дакле, као резултат, глава ће се променити, и то је разлог зашто када енкуеуе, 331 00:17:24,260 --> 00:17:26,800 мораш да пратиш где главу и величина 332 00:17:26,800 --> 00:17:29,450 треба да буду способни за уметање у исправан положај. 333 00:17:29,450 --> 00:17:32,740 >> И тако кад декуеуе, Такође је Псеудокод напоље. 334 00:17:32,740 --> 00:17:35,480 Слободно ако желите да покушамо кодирања ово. 335 00:17:35,480 --> 00:17:36,980 Желиш да померите главу, зар не? 336 00:17:36,980 --> 00:17:39,320 Да сам хтео да декуеуе, ја би померили главу изнад. 337 00:17:39,320 --> 00:17:40,800 То би био на челу. 338 00:17:40,800 --> 00:17:45,617 >> А наша тренутна величина би одузмите зато што више не 339 00:17:45,617 --> 00:17:46,950 има четири елемента у низу. 340 00:17:46,950 --> 00:17:51,370 Имамо само три, а онда желимо да се врати оно што је враћен у 341 00:17:51,370 --> 00:17:56,260 главе јер желимо да ово вредност од толико сличан стека. 342 00:17:56,260 --> 00:17:58,010 Само узимате из другог места, 343 00:17:58,010 --> 00:18:01,770 и морате да пренесете показивач да друго место као резултат. 344 00:18:01,770 --> 00:18:03,890 Логично, сви следе? 345 00:18:03,890 --> 00:18:05,690 Велики. 346 00:18:05,690 --> 00:18:10,156 >> У реду, тако да ћемо да причамо мало више у дубину око повезаних листи 347 00:18:10,156 --> 00:18:13,280 јер ће бити веома, веома драгоцен за вас у току ове седмице је 348 00:18:13,280 --> 00:18:14,964 псетс. 349 00:18:14,964 --> 00:18:17,130 Повезаних листи, као момци могу да се сетим, све су 350 00:18:17,130 --> 00:18:22,570 су чворови који су чворови сигурно вредности и као вредност и показивач 351 00:18:22,570 --> 00:18:26,290 који су међусобно повезани они показивачима. 352 00:18:26,290 --> 00:18:29,880 И тако Струцт како стварамо чвор овде је 353 00:18:29,880 --> 00:18:33,569 има инт н, што је год вредност у продавници или стринг н 354 00:18:33,569 --> 00:18:35,610 или шта год желите да зову, угљенисани звезда бр. 355 00:18:35,610 --> 00:18:41,482 Струцт ноде звезда, која је показивач да ли желите да имате у сваком чвору, 356 00:18:41,482 --> 00:18:43,690 ћеш имати да показивач тачка према следећи. 357 00:18:43,690 --> 00:18:48,207 358 00:18:48,207 --> 00:18:50,040 Имаћете главу од повезане листе који је 359 00:18:50,040 --> 00:18:53,140 да укаже на остатак вредности тако даље и тако даље 360 00:18:53,140 --> 00:18:55,290 све док не коначно до краја. 361 00:18:55,290 --> 00:18:58,040 И овај последњи чвор је само да нема показивач. 362 00:18:58,040 --> 00:18:59,952 То ће да укаже на ништаван, а то је кад 363 00:18:59,952 --> 00:19:01,910 знаш да си погодио крај твоје листе повезане 364 00:19:01,910 --> 00:19:04,076 је када ваш последњи показивач не указују ни на шта. 365 00:19:04,076 --> 00:19:06,670 366 00:19:06,670 --> 00:19:10,990 >> Тако ћемо да идемо мало више Дубина о томе како један евентуално би 367 00:19:10,990 --> 00:19:12,400 сеарцх повезану листу. 368 00:19:12,400 --> 00:19:15,460 Сетите се шта су неки од недостаци повезаних листи 369 00:19:15,460 --> 00:19:19,340 стихови низ претреса у вези. 370 00:19:19,340 --> 00:19:22,565 Низ можете бинарна претрага, али зашто не можеш да урадиш да је у повезане листе? 371 00:19:22,565 --> 00:19:26,834 372 00:19:26,834 --> 00:19:30,320 >> ПУБЛИКА: Зато што су сви они повезани, али не сасвим знам гдје 373 00:19:30,320 --> 00:19:31,330 [Неразумљиво]. 374 00:19:31,330 --> 00:19:34,600 >> Анди Пенг: Да, управо тако се сетим да је сјај на низ 375 00:19:34,600 --> 00:19:37,190 била је чињеница да смо имали меморија директног приступа где 376 00:19:37,190 --> 00:19:41,580 ако сам желео вредност од индекса шест, ја само могу рећи индекса шест, 377 00:19:41,580 --> 00:19:42,407 дај ми ту вредност. 378 00:19:42,407 --> 00:19:45,240 А то је зато што низови су поредани у сусједном простору меморије 379 00:19:45,240 --> 00:19:48,020 на једном месту, док је врста повезаних листи 380 00:19:48,020 --> 00:19:52,820 су насумице смењују свуда, а једини начин можете наћи један 381 00:19:52,820 --> 00:19:56,890 је кроз показивачем који вам говори адреса где је следећи чвор је. 382 00:19:56,890 --> 00:20:00,290 >> И тако као резултат тога, једини начин за претраживање преко повезане листе 383 00:20:00,290 --> 00:20:01,560 је линеарна претрага. 384 00:20:01,560 --> 00:20:05,890 Јер ја не знам где 12. вредност у повезане листи је, 385 00:20:05,890 --> 00:20:08,780 Морам да пролазе кроз целину те повезане листе један 386 00:20:08,780 --> 00:20:12,450 један од главе до првог чвора, у другу чвор, до трећег чвора, 387 00:20:12,450 --> 00:20:17,690 скроз доле док коначно добијем где је чвор тражим је. 388 00:20:17,690 --> 00:20:22,110 И тако у том смислу, претрага на повезане листе је увек бр. 389 00:20:22,110 --> 00:20:23,040 Увек је бр. 390 00:20:23,040 --> 00:20:25,690 Увек је у линеарном времену. 391 00:20:25,690 --> 00:20:28,470 >> И тако код у коме спроводимо ово и ово 392 00:20:28,470 --> 00:20:32,620 је мало ново за вас од када сте момци су стварно говорио о или никад 393 00:20:32,620 --> 00:20:35,000 сеен показивачи како да претраживати показивачима, 394 00:20:35,000 --> 00:20:37,670 тако да ћемо проћи кроз Ово је врло, врло споро. 395 00:20:37,670 --> 00:20:40,200 Тако инт претрага, зар не, замислимо желимо 396 00:20:40,200 --> 00:20:42,820 да створи функцију под називом претрага да врати истина 397 00:20:42,820 --> 00:20:46,820 Ако сте пронашли вредност унутар повезан лист, и враћа иначе фалсе. 398 00:20:46,820 --> 00:20:50,030 Чвор звезда листа тренутно само показивач 399 00:20:50,030 --> 00:20:52,960 на прву ставку на листи повезана. 400 00:20:52,960 --> 00:20:56,700 инт је вредност да сте у потрази за у тој листи. 401 00:20:56,700 --> 00:20:58,770 >> Дакле, чвор са показивач једнака листу. 402 00:20:58,770 --> 00:21:00,970 То значи да смо постављање и стварање показивач 403 00:21:00,970 --> 00:21:03,592 на први чвор унутар листе. 404 00:21:03,592 --> 00:21:04,300 Свако са мном? 405 00:21:04,300 --> 00:21:06,530 Дакле, ако смо да идемо овде, ја имам 406 00:21:06,530 --> 00:21:13,850 инитиализед показивач који указује на шеф год да листа. 407 00:21:13,850 --> 00:21:18,600 >> И онда када се овде, док је показивач није једнако нула, 408 00:21:18,600 --> 00:21:22,160 тако да је то петља у којем смо ће накнадно бити прелазећи 409 00:21:22,160 --> 00:21:25,940 остатак нашој листи јер оно што се дешава када показивач једнако нула? 410 00:21:25,940 --> 00:21:27,550 Знамо да смо бих-- 411 00:21:27,550 --> 00:21:28,450 >> ПУБЛИКА: [неразумљиво] 412 00:21:28,450 --> 00:21:31,491 >> Анди Пенг: Тачно, тако да знамо да смо стигли до краја листе, зар не? 413 00:21:31,491 --> 00:21:34,470 Ако се вратимо овде, сваки чвор треба указујући на други чвор 414 00:21:34,470 --> 00:21:36,550 и тако даље и тако даље док се на крају погодио 415 00:21:36,550 --> 00:21:41,589 реп на вашој листи повезане, која има показивач да само 416 00:21:41,589 --> 00:21:43,130 не указује нигде осим бр. 417 00:21:43,130 --> 00:21:47,510 И тако у суштини знате да васа листа је још увек тамо 418 00:21:47,510 --> 00:21:50,900 док показивач није једнако нула, јер кад се једнако нула, 419 00:21:50,900 --> 00:21:53,310 знаш да нема више ствари. 420 00:21:53,310 --> 00:21:56,930 >> Дакле, то је петља у којој смо ће имати стварну претрагу. 421 00:21:56,930 --> 00:22:01,690 А ако поинтер-- да ли видите такав стрелице функције тамо? 422 00:22:01,690 --> 00:22:06,930 Дакле, ако показивач указује на н, ако показивач на н једнако једнако Н, 423 00:22:06,930 --> 00:22:09,180 То значи да ако показивач да сте 424 00:22:09,180 --> 00:22:13,420 траже на крају сваког чвор је заправо једнак вредности 425 00:22:13,420 --> 00:22:15,990 тражиш, онда желите да се вратите истина. 426 00:22:15,990 --> 00:22:19,280 У основи, ако сте у чвор који има вредност коју тражите, 427 00:22:19,280 --> 00:22:23,550 знате да сте били у стању да успешно претрагу. 428 00:22:23,550 --> 00:22:27,150 >> У супротном, желите да поставите показивач на следећи чвор. 429 00:22:27,150 --> 00:22:28,850 То је оно што ради та линија овде. 430 00:22:28,850 --> 00:22:31,750 Показивач једнака показивач следећи. 431 00:22:31,750 --> 00:22:33,360 Свако види како се то ради? 432 00:22:33,360 --> 00:22:36,580 >> И у суштини ти ћеш само пролазе целину листе, 433 00:22:36,580 --> 00:22:41,920 ресетовање показивач сваки пут до ви на крају погодио крај листе. 434 00:22:41,920 --> 00:22:45,030 И знате да не постоје више чворова за претраживање преко, 435 00:22:45,030 --> 00:22:47,999 и онда можете ретурн фалсе јер ви знате да, ох, добро, 436 00:22:47,999 --> 00:22:50,540 ако сам био у могућности да претражујете кроз целини листе. 437 00:22:50,540 --> 00:22:54,530 Ако у овом примеру, ако сам желео да траже вредности од 10, 438 00:22:54,530 --> 00:22:57,250 и ја почети на челу, и Трагам скроз доле, 439 00:22:57,250 --> 00:23:00,550 и на крају сам добио ово, што показивач који указује на нулл, 440 00:23:00,550 --> 00:23:04,415 Знам то, срање, претпостављам 10 није у ова листа јер нисам могао да га нађем. 441 00:23:04,415 --> 00:23:06,520 И ја сам на крају листе. 442 00:23:06,520 --> 00:23:11,040 И у ком случају знаш Ја ћу да се вратим лажна. 443 00:23:11,040 --> 00:23:12,900 >> Нека то упије мало. 444 00:23:12,900 --> 00:23:17,350 Ово ће бити прилично важно за вашу псет. 445 00:23:17,350 --> 00:23:21,140 Логика Врло је једноставно, можда синтаксички само спроводи. 446 00:23:21,140 --> 00:23:23,365 Ви желите да се сигурни да сте разумели. 447 00:23:23,365 --> 00:23:25,870 448 00:23:25,870 --> 00:23:27,650 Кул. 449 00:23:27,650 --> 00:23:32,560 >> У реду, како бисмо били уметање чворова, зар не, 450 00:23:32,560 --> 00:23:35,380 у листу, јер се сетим шта су предности које оно 451 00:23:35,380 --> 00:23:39,230 да имају повезану листу односу читав низ у смислу меморије? 452 00:23:39,230 --> 00:23:41,110 >> ПУБЛИКА: То је динамичан, тако да је лакше да-- 453 00:23:41,110 --> 00:23:43,180 >> Анди Пенг: Тачно, тако да је динамична, која 454 00:23:43,180 --> 00:23:46,880 значи да може проширити и скупља у зависности од потреба корисника. 455 00:23:46,880 --> 00:23:56,570 И тако, у том смислу, ми не треба трошити непотребно меморија јер ја 456 00:23:56,570 --> 00:24:00,850 ако ја не знам колико вредности Желим да продавници, то нема смисла за мене 457 00:24:00,850 --> 00:24:04,310 да створи низ сљедећих разлога ако желите да сачувате 10 вредности 458 00:24:04,310 --> 00:24:08,380 и ја створити низ 1.000, то је много изгубљеног памћења, доделио. 459 00:24:08,380 --> 00:24:11,180 Зато желимо да користи повезани Листа да бисте могли да динамички 460 00:24:11,180 --> 00:24:13,860 промени или смањити нашу величину. 461 00:24:13,860 --> 00:24:17,040 >> И то чини убацивање мало компликованије. 462 00:24:17,040 --> 00:24:20,810 Пошто не можемо насумице приступити елементе начин на који бисмо низа. 463 00:24:20,810 --> 00:24:24,270 Ако желите да унесете елемент у седмом индекса, 464 00:24:24,270 --> 00:24:26,930 Могу само да га убаците у седмом индекса. 465 00:24:26,930 --> 00:24:30,020 На повезане листе, не значи доста раде тако лако, 466 00:24:30,020 --> 00:24:34,947 па ако смо хтели да убаците она овде у повезане листе, 467 00:24:34,947 --> 00:24:36,280 визуелно, врло је лако видети. 468 00:24:36,280 --> 00:24:39,363 Ми само желимо да га убаците тамо, одмах на почетку листе, 469 00:24:39,363 --> 00:24:40,840 одмах након глави. 470 00:24:40,840 --> 00:24:44,579 >> Али начин на који морамо да пренесете показивачи се мало замршена 471 00:24:44,579 --> 00:24:47,620 или, логично, има смисла, али желите да се уверите да сте га 472 00:24:47,620 --> 00:24:50,250 потпуно пао јер последња ствар коју желите 473 00:24:50,250 --> 00:24:52,990 је да пренесете показивач начин на који ми радимо овде. 474 00:24:52,990 --> 00:24:58,170 Ако вас дереференце поинтер од главе до 1, 475 00:24:58,170 --> 00:25:01,086 онда све изненада остатак листе повезане 476 00:25:01,086 --> 00:25:04,680 је изгубио зато што нису стварно створио привремену ништа. 477 00:25:04,680 --> 00:25:06,220 То је указао на 2. 478 00:25:06,220 --> 00:25:10,080 Ако пренесете показивач, затим Остатак вашој листи је потпуно изгубљена. 479 00:25:10,080 --> 00:25:13,310 Дакле, желите да будете врло, врло опрезан овде 480 00:25:13,310 --> 00:25:17,010 прво доделите показивач од Вхатевер Иоу 481 00:25:17,010 --> 00:25:20,150 желите да унесете у где год желите, а затим вас 482 00:25:20,150 --> 00:25:22,710 могу дереференце до краја листе. 483 00:25:22,710 --> 00:25:25,250 >> Дакле, ово важи и за где год покушавате да убаците у. 484 00:25:25,250 --> 00:25:27,520 Ако желите да убаците На глава, ако желите да одговорите овде, 485 00:25:27,520 --> 00:25:29,455 Ако желите да унесете у крај, добро, на крају сам 486 00:25:29,455 --> 00:25:30,910 Претпостављам да би само Немам показивач, али 487 00:25:30,910 --> 00:25:33,830 Желим да се уверите да сте не губе остатак листе. 488 00:25:33,830 --> 00:25:36,640 Увек желите да се уверите Ваш нови чвор се указује 489 00:25:36,640 --> 00:25:39,330 према све што желите да унесете у, 490 00:25:39,330 --> 00:25:42,170 а затим можете додати цхаининг на. 491 00:25:42,170 --> 00:25:43,330 Свако јасно? 492 00:25:43,330 --> 00:25:45,427 >> Ово ће бити један од правих проблема. 493 00:25:45,427 --> 00:25:48,010 Један од већине главних питања ти ћеш имати на псет 494 00:25:48,010 --> 00:25:51,340 је да ћемо покушати да створе повезане листе и убаците ствари 495 00:25:51,340 --> 00:25:53,340 али онда само изгуби остатак листе повезане. 496 00:25:53,340 --> 00:25:54,900 И ти ћеш бити као ја Не знам зашто се ово дешава? 497 00:25:54,900 --> 00:25:58,040 И то је бол проћи кроз и претражите све ваше показивача. 498 00:25:58,040 --> 00:26:02,100 >> И гарантујем ти на овом псет, писање и цртање те чворове од 499 00:26:02,100 --> 00:26:03,344 ће бити веома, веома корисно. 500 00:26:03,344 --> 00:26:06,010 Дакле, можете у потпуности да пратите где сви ваши показивачи су, 501 00:26:06,010 --> 00:26:08,540 шта није у реду, где сви ваши чворови су, 502 00:26:08,540 --> 00:26:12,660 оно што треба да урадите да бисте приступили или убаците или брисање или било ко од њих. 503 00:26:12,660 --> 00:26:14,550 Свако добро са тим? 504 00:26:14,550 --> 00:26:15,050 Кул. 505 00:26:15,050 --> 00:26:19,300 506 00:26:19,300 --> 00:26:22,600 >> Дакле, ако смо желели да погледамо код? 507 00:26:22,600 --> 00:26:24,470 Ох, не знам да ли смо можете видети који-- ОК, тако 508 00:26:24,470 --> 00:26:27,940 на врху све што је је функција по имену уметак где желимо 509 00:26:27,940 --> 00:26:31,365 да убаците инт н у повезане листе. 510 00:26:31,365 --> 00:26:32,740 Ми ћемо проћи кроз ово. 511 00:26:32,740 --> 00:26:34,770 То је много кода, много нових синтаксе. 512 00:26:34,770 --> 00:26:36,220 Ми ћемо бити у реду. 513 00:26:36,220 --> 00:26:39,120 >> Дакле, горе на врху, кад год желимо да створимо нешто 514 00:26:39,120 --> 00:26:42,380 шта треба да урадимо, поготово ако желимо да неће бити ускладиштен на стеку 515 00:26:42,380 --> 00:26:43,920 али у гомили? 516 00:26:43,920 --> 00:26:45,460 Идемо на маллоц, зар не? 517 00:26:45,460 --> 00:26:48,240 Тако ћемо створити показивач. 518 00:26:48,240 --> 00:26:52,074 Ноде, показивач, нове једнаки Маллоц величине чвора 519 00:26:52,074 --> 00:26:53,740 јер желимо да чвор да се направи. 520 00:26:53,740 --> 00:26:56,720 Желимо количину меморија која чвор заузима 521 00:26:56,720 --> 00:26:59,300 да се додељене за стварање новог чвора. 522 00:26:59,300 --> 00:27:02,270 >> А онда ћемо да проверимо да видим да нови равноправни једнако нула. 523 00:27:02,270 --> 00:27:03,370 Сећаш се шта смо рекли? 524 00:27:03,370 --> 00:27:06,470 Шта год вам маллоц, шта треба да увек? 525 00:27:06,470 --> 00:27:09,490 Увек морате да проверите да без обзира да ли је то нула. 526 00:27:09,490 --> 00:27:13,620 >> На пример, ако је ваш оперативни Систем је потпуно пуна, 527 00:27:13,620 --> 00:27:17,060 ако није имао више меморије на све и покушавате да маллоц, 528 00:27:17,060 --> 00:27:18,410 да ће се вратити нула за вас. 529 00:27:18,410 --> 00:27:21,094 И тако ако покушате да га користите када је указивање на нулл, 530 00:27:21,094 --> 00:27:23,260 нећеш моћи да да приступите ту информацију. 531 00:27:23,260 --> 00:27:27,010 И тако, као што су, желели смо да направимо сигуран да кад год сте маллоцинг, 532 00:27:27,010 --> 00:27:30,500 ви увек проверава да ли да је меморија које вам је нулл. 533 00:27:30,500 --> 00:27:33,670 А ако није, онда можемо да пређемо на са остатком нашег кода. 534 00:27:33,670 --> 00:27:36,140 >> Тако ћемо покрене нови чвор. 535 00:27:36,140 --> 00:27:39,050 Ми ћемо да урадимо нови н једнако н. 536 00:27:39,050 --> 00:27:42,390 А онда ћемо да радимо поставио нови показивач на ново 537 00:27:42,390 --> 00:27:46,900 да нулл јер сада не знамо желим ништа за то да укаже на. 538 00:27:46,900 --> 00:27:48,755 Немамо појма где то ће вас, 539 00:27:48,755 --> 00:27:50,630 а онда, ако желимо да убаците га у главу, 540 00:27:50,630 --> 00:27:53,820 онда можемо доделити показивач у главу. 541 00:27:53,820 --> 00:27:58,530 Да ли сви следе логику где она се дешава? 542 00:27:58,530 --> 00:28:02,502 >> Све што радимо је креирање нове чвор, постављање показивач на НУЛЛ, 543 00:28:02,502 --> 00:28:04,210 и онда пренамене је у главу ако ми 544 00:28:04,210 --> 00:28:06,320 знам желимо да га убаците у главу. 545 00:28:06,320 --> 00:28:09,420 А онда је глава ће указују тог новог чвора. 546 00:28:09,420 --> 00:28:11,060 Свако у реду са тим? 547 00:28:11,060 --> 00:28:12,380 >> Дакле, то је процес у два корака. 548 00:28:12,380 --> 00:28:14,760 Мораш да Прво доделите шта год да правите. 549 00:28:14,760 --> 00:28:18,260 Сет који показивач на референца, а затим вас 550 00:28:18,260 --> 00:28:21,400 могу некако Дереференце први поентер 551 00:28:21,400 --> 00:28:22,972 и усмерите га према новом чвору. 552 00:28:22,972 --> 00:28:25,680 Где год желите да га убаците, да логика иде да важи. 553 00:28:25,680 --> 00:28:27,530 >> То је нешто попут додељивања привремене променљиве. 554 00:28:27,530 --> 00:28:28,700 Запамтите, имаш да се уверите да вас 555 00:28:28,700 --> 00:28:30,346 не губи траг ако замене. 556 00:28:30,346 --> 00:28:33,470 Ви желите да се уверите да имате привремена варијабла која врста води 557 00:28:33,470 --> 00:28:35,620 колосек где је та ствар се чува тако да 558 00:28:35,620 --> 00:28:41,190 не губе никакву вредност у току Као зезали са њим. 559 00:28:41,190 --> 00:28:42,710 >> У реду, тако да код ће бити овде. 560 00:28:42,710 --> 00:28:45,020 Момци погледајте након делу. 561 00:28:45,020 --> 00:28:48,060 То ће бити тамо. 562 00:28:48,060 --> 00:28:50,280 >> Претпостављам како се ово се разликују ако желимо 563 00:28:50,280 --> 00:28:52,300 да убаците у средини или на крају? 564 00:28:52,300 --> 00:28:57,892 Да ли неко има идеју о томе шта је Псеудокод као логичан референце 565 00:28:57,892 --> 00:29:00,350 да узмемо ако желимо да га убаците у средини? 566 00:29:00,350 --> 00:29:03,391 Дакле, ако смо хтели да га убаците На глава, све што урадите је да направите нови чвор. 567 00:29:03,391 --> 00:29:06,311 Поставили смо показивач тога нови чвор на било глави, 568 00:29:06,311 --> 00:29:08,310 а онда смо поставили главу са новим чвор, зар не? 569 00:29:08,310 --> 00:29:11,560 Ако бисмо хтели да га убаците у средини листе, што би ми треба да урадимо? 570 00:29:11,560 --> 00:29:14,108 571 00:29:14,108 --> 00:29:16,110 >> ПУБЛИКА: И даље би бити сличан процес 572 00:29:16,110 --> 00:29:19,114 Као додељивања показивач и онда доделе тог показивач, 573 00:29:19,114 --> 00:29:20,530 али ми би морали да тамо лоцирају. 574 00:29:20,530 --> 00:29:23,560 >> Анди Пенг: Тачно, тако тачно исти процес, осим тебе 575 00:29:23,560 --> 00:29:27,820 треба да лоцира где сте тачно Желим да нова показивач да иду у, 576 00:29:27,820 --> 00:29:44,790 па ако желите да унесете у средина повезана лист-- реду, 577 00:29:44,790 --> 00:29:46,370 рецимо да је наш повезана листа. 578 00:29:46,370 --> 00:29:49,500 Ако желимо да га убаците овде, ћемо да створимо нови чвор. 579 00:29:49,500 --> 00:29:50,520 Идемо у маллоц. 580 00:29:50,520 --> 00:29:52,220 Идемо да креирате нови чвор. 581 00:29:52,220 --> 00:29:55,940 Идемо да доделите показивач овог чвора овде. 582 00:29:55,940 --> 00:29:58,335 >> Али проблем који се разликује одакле је глава 583 00:29:58,335 --> 00:30:00,490 је да смо тачно знао где је глава. 584 00:30:00,490 --> 00:30:01,930 То је било на први, зар не? 585 00:30:01,930 --> 00:30:04,870 Али овде морамо да пратимо где смо га убаците у. 586 00:30:04,870 --> 00:30:07,930 Ако стављате наше чвор овде, имамо 587 00:30:07,930 --> 00:30:12,270 да се уверите да је један претходни овом чвору 588 00:30:12,270 --> 00:30:14,172 је онај који распореди показивач. 589 00:30:14,172 --> 00:30:16,380 Па онда морате некако пратити две ствари. 590 00:30:16,380 --> 00:30:19,420 Ако сте пратили где је чвор тренутно је убацивање у. 591 00:30:19,420 --> 00:30:23,280 Такође морате да пратите где претходна чвор који гледате 592 00:30:23,280 --> 00:30:24,340 је такође био тамо. 593 00:30:24,340 --> 00:30:25,830 Свако добро са тим? 594 00:30:25,830 --> 00:30:26,500 ОК. 595 00:30:26,500 --> 00:30:28,000 >> Како убацивање у крају? 596 00:30:28,000 --> 00:30:34,220 Да сам хтео да га додате овдје-- ако сам желео да бисте додали нови чвор на крај листе, 597 00:30:34,220 --> 00:30:37,009 Како могу да то урадили? 598 00:30:37,009 --> 00:30:39,300 ПУБЛИКА: Па тренутно је последњи је указао на нулл. 599 00:30:39,300 --> 00:30:40,960 Анди Пенг: Да. 600 00:30:40,960 --> 00:30:43,560 Управо, тако да је ово један Тренутно је истакао да зна, 601 00:30:43,560 --> 00:30:46,720 па претпостављам, у том смислу, то је врло лако додати на крај листе. 602 00:30:46,720 --> 00:30:51,810 Све што треба да урадите је да га поставити једнак нулл, а онда бум. 603 00:30:51,810 --> 00:30:53,070 Тамо, веома лако. 604 00:30:53,070 --> 00:30:53,960 Врло једноставно. 605 00:30:53,960 --> 00:30:56,430 >> Врло сличан хеад, али логично вас 606 00:30:56,430 --> 00:30:59,690 желите да се уверите да су кораци узмете у правцу радите било шта од овога, 607 00:30:59,690 --> 00:31:01,500 ви после заједно. 608 00:31:01,500 --> 00:31:04,420 То је врло лако, у средини вашег кода, ухвате се на, 609 00:31:04,420 --> 00:31:05,671 Ох, имам толико савета. 610 00:31:05,671 --> 00:31:07,461 Ја не знам где шта је указујући на. 611 00:31:07,461 --> 00:31:09,170 Ја не знам ни који чвор Ја сам. 612 00:31:09,170 --> 00:31:11,490 Шта се дешава? 613 00:31:11,490 --> 00:31:13,620 >> Опусти се, смири се, удахни дубоко. 614 00:31:13,620 --> 00:31:15,530 Драв своју листу повезан. 615 00:31:15,530 --> 00:31:18,800 Ако кажете, ја знам где тачно Морам да убаците ово у 616 00:31:18,800 --> 00:31:22,970 и ја тачно знам како да пренесете моје показивачи, много, много лакше замислити 617 00:31:22,970 --> 00:31:27,200 оут-- много, много лакше да не изгубити се у бубе у вашем коду. 618 00:31:27,200 --> 00:31:29,410 Свако у реду са тим? 619 00:31:29,410 --> 00:31:31,380 ОК. 620 00:31:31,380 --> 00:31:35,120 >> Претпостављам концепт који нисмо Заиста је говорио о до сада, 621 00:31:35,120 --> 00:31:38,131 и ја вас претпостављам вероватно неће наићи на много иет-- 622 00:31:38,131 --> 00:31:40,880 то је нека врста напредног цонцепт-- је да ми заправо имамо податке 623 00:31:40,880 --> 00:31:43,900 Структура зове двоструко повезану листу. 624 00:31:43,900 --> 00:31:46,390 Дакле, као ви можете видети, све што радимо је креирање 625 00:31:46,390 --> 00:31:50,400 стварна вредност, екстра Показивач се сваки од наших чворишта 626 00:31:50,400 --> 00:31:52,660 који такође указује на претходни чвор. 627 00:31:52,660 --> 00:31:58,170 Дакле, не само да имамо своје чворови указују на следећу. 628 00:31:58,170 --> 00:32:01,430 Они такође указују на претходну годину. 629 00:32:01,430 --> 00:32:04,310 Идем одмах да игнорише ову двојицу. 630 00:32:04,310 --> 00:32:06,740 >> Дакле, онда имате ланац да може да се креће у оба смера, 631 00:32:06,740 --> 00:32:09,630 и онда је мало лакше логички пратите. 632 00:32:09,630 --> 00:32:11,896 Као овде, уместо праћење, ох, 633 00:32:11,896 --> 00:32:14,520 морају да знају да је ово чвор је онај који морам да пренесете, 634 00:32:14,520 --> 00:32:17,532 Могу да одем овде и само повуците претходни. 635 00:32:17,532 --> 00:32:19,490 Онда знам тачно где то јест, и онда те 636 00:32:19,490 --> 00:32:21,130 не морају да пролазе кроз Целина повезане листе. 637 00:32:21,130 --> 00:32:22,180 То је мало лакше. 638 00:32:22,180 --> 00:32:24,960 >> Међутим као таква, ви дупло имате износ показивача, 639 00:32:24,960 --> 00:32:26,960 То је двоструко више од количине меморије. 640 00:32:26,960 --> 00:32:28,950 То је много казаљки да пратите. 641 00:32:28,950 --> 00:32:32,140 То је мало сложенији, али је мало више усер фриендли зависности 642 00:32:32,140 --> 00:32:34,080 на оно што покушавате да постигнете. 643 00:32:34,080 --> 00:32:36,910 >> Дакле, овај тип података структура потпуно постоји, 644 00:32:36,910 --> 00:32:40,280 и структура за веома, веома једноставна осим све имаш је, 645 00:32:40,280 --> 00:32:43,850 уместо само показивач на следећи, имате и показивач на претходну. 646 00:32:43,850 --> 00:32:45,940 То је све разлика била. 647 00:32:45,940 --> 00:32:47,740 Свако добро са тим? 648 00:32:47,740 --> 00:32:48,240 Кул. 649 00:32:48,240 --> 00:32:50,940 650 00:32:50,940 --> 00:32:53,280 >> У реду, сад сам ја заиста потрошити вјероватно 651 00:32:53,280 --> 00:32:56,870 као 15 до 20 минута или булк остатка времена у одељку 652 00:32:56,870 --> 00:32:58,360 говоримо о хеш табеле. 653 00:32:58,360 --> 00:33:02,590 Колико вас Прочитао сам псет5 спец? 654 00:33:02,590 --> 00:33:03,620 Добро, добро. 655 00:33:03,620 --> 00:33:06,160 То је већи од 50% нормално. 656 00:33:06,160 --> 00:33:07,560 У реду је. 657 00:33:07,560 --> 00:33:10,345 >> Дакле, као што ви ћете видети, ви сте изазов у ​​псет5 658 00:33:10,345 --> 00:33:16,790 ће бити да спроведе речник где сте учитати преко 140.000 речи 659 00:33:16,790 --> 00:33:20,610 да вам дамо и Спелл Цхецк то против свих текста. 660 00:33:20,610 --> 00:33:22,580 Даћемо вам случајно комада литературе. 661 00:33:22,580 --> 00:33:23,520 Ми ћемо вам дати Одисеју. 662 00:33:23,520 --> 00:33:24,561 Ми ћемо вам дати Илијади. 663 00:33:24,561 --> 00:33:26,350 Ми ћемо вам дати Аустин Поверс. 664 00:33:26,350 --> 00:33:28,220 >> А твој изазов ће бити Спелл Цхецк 665 00:33:28,220 --> 00:33:31,760 Свака реч у свим тих речника 666 00:33:31,760 --> 00:33:34,960 у суштини са нашим правописа. 667 00:33:34,960 --> 00:33:38,620 И тако има неколико делова стварања овог псет, 668 00:33:38,620 --> 00:33:41,970 Први желите да будете у стању да заиста лоад 669 00:33:41,970 --> 00:33:43,970 све речи у ваше рјечник, а онда вас 670 00:33:43,970 --> 00:33:45,530 желе да буду у могућности да спелл ​​цхецк свима њима. 671 00:33:45,530 --> 00:33:48,780 И тако, као што је, идете да захтевају структура података који могу да урадим ово брзо 672 00:33:48,780 --> 00:33:50,790 и ефикасно и динамично. 673 00:33:50,790 --> 00:33:52,900 >> Претпостављам најлакше начин да се ово, хвала 674 00:33:52,900 --> 00:33:55,010 би вероватно створити низ, зар не? 675 00:33:55,010 --> 00:33:58,910 Најлакши начин складиштења те је може створити низ 140.000 речи 676 00:33:58,910 --> 00:34:03,400 и све их само поставимо тамо и а затим их пребаците до бинарном потрази 677 00:34:03,400 --> 00:34:06,780 или селекције или нисам-- жао што је сортирање. 678 00:34:06,780 --> 00:34:10,729 Можете их сортира и онда прећи их од бинарног претреса или само линеарно потрази 679 00:34:10,729 --> 00:34:13,730 и само завршни речи, али да узима огромну количину меморије, 680 00:34:13,730 --> 00:34:15,190 и то није врло ефикасан. 681 00:34:15,190 --> 00:34:18,350 >> И тако ћемо почети говоримо о начинима израде 682 00:34:18,350 --> 00:34:20,110 наше време ради ефикасније. 683 00:34:20,110 --> 00:34:23,190 А наш циљ је да се константа време где 684 00:34:23,190 --> 00:34:25,810 то је скоро као низова, где имате тренутни приступ. 685 00:34:25,810 --> 00:34:28,560 Да сам хтео да тражи било шта, Желим да будем у стању да само, 686 00:34:28,560 --> 00:34:30,810 бум, финд ит тачно, и извуците га. 687 00:34:30,810 --> 00:34:34,100 И тако структуру у којој ћемо постати веома близу 688 00:34:34,100 --> 00:34:37,569 да би могли да приступе константа време, овај свети грал 689 00:34:37,569 --> 00:34:41,370 у програмирање константа Време се зове хеш табеле. 690 00:34:41,370 --> 00:34:45,370 И тако Дејвид је раније споменуто [Неразумљиво] мало у предавању, 691 00:34:45,370 --> 00:34:49,100 али ћемо стварно роњење у дубоким ове недеље 692 00:34:49,100 --> 00:34:51,780 на комад који је у вези како хасх табела ради. 693 00:34:51,780 --> 00:34:53,949 >> Дакле, на начин на који хасх табле радови, на пример, 694 00:34:53,949 --> 00:35:00,230 ако сам хтео да сачувате гомилу речима, гомила речи у енглеском језику, 695 00:35:00,230 --> 00:35:02,940 Могао бих теоретски пут банана, јабука, киви, манго, пар, 696 00:35:02,940 --> 00:35:04,980 и диња све на само низ. 697 00:35:04,980 --> 00:35:07,044 Могли би сви стати у и да се пронађу. 698 00:35:07,044 --> 00:35:09,210 То би било некако бол у претраживати и приступа, 699 00:35:09,210 --> 00:35:12,920 али лакши начин да то урадите је да можемо заправо створити структура 700 00:35:12,920 --> 00:35:15,680 који се зове хеш табела у којој смо хасх. 701 00:35:15,680 --> 00:35:19,880 Ми смо покренули све наше тастера преко хасх функција, једначина, 702 00:35:19,880 --> 00:35:22,600 да их све претвара у нека врста вредности 703 00:35:22,600 --> 00:35:28,740 да онда може похранити на у суштини низ повезане листе. 704 00:35:28,740 --> 00:35:32,570 >> И ево, ако желимо да сачувате енглеске речи, 705 00:35:32,570 --> 00:35:37,250 можемо само потенцијално, не знам знам, окрените све прва слова 706 00:35:37,250 --> 00:35:39,630 у неку врсту великог броја. 707 00:35:39,630 --> 00:35:43,140 И тако, на пример, ако сам желео Да је синониман са аппле-- 708 00:35:43,140 --> 00:35:47,460 или са индексом од 0, и Б бити синоним са 1, 709 00:35:47,460 --> 00:35:51,030 можемо имати 26 ставке то само може да складишти 710 00:35:51,030 --> 00:35:53,610 све словима писмо да ћемо почети са. 711 00:35:53,610 --> 00:35:56,130 А онда можемо да имамо јабука на индекс 0. 712 00:35:56,130 --> 00:35:59,160 Можемо имати банану у индексу 1, диња на индекс 2, 713 00:35:59,160 --> 00:36:00,540 и тако даље и тако даље. 714 00:36:00,540 --> 00:36:04,460 И тако, ако сам хтео да претражујете мој хасх табела и приступ јабука, 715 00:36:04,460 --> 00:36:07,560 Знам јабука почиње са типа А, и ја тачно знам 716 00:36:07,560 --> 00:36:10,860 да то мора бити и тараба сто у индексу 0 јер 717 00:36:10,860 --> 00:36:13,620 функције претходно добио. 718 00:36:13,620 --> 00:36:16,572 >> Тако да ја не знам, ми смо корисник програм у коме 719 00:36:16,572 --> 00:36:18,780 ћете бити оптужен за арбитрарили-- не произвољно, 720 00:36:18,780 --> 00:36:22,530 са покушава да замишљено Мислим добрих једначина 721 00:36:22,530 --> 00:36:25,460 да би могли да шире од све своје вредности 722 00:36:25,460 --> 00:36:29,370 на начин на који лако да приступите је касније са једначине као 723 00:36:29,370 --> 00:36:31,130 Јеси ли то ти, сами, знам. 724 00:36:31,130 --> 00:36:35,210 Дакле, у смислу да ли желим да идем у Манго, знам, ох, почиње са м. 725 00:36:35,210 --> 00:36:37,134 То мора да буде на индекс 12. 726 00:36:37,134 --> 00:36:38,800 Немам тражити кроз било шта. 727 00:36:38,800 --> 00:36:42,080 Знам екацтли-- сам да одем у индекс 12 и извуците то. 728 00:36:42,080 --> 00:36:45,520 >> Свако јасно како хасх функција сто је ради? 729 00:36:45,520 --> 00:36:48,380 То је нека врста само сложеније низ. 730 00:36:48,380 --> 00:36:50,010 То је све што је. 731 00:36:50,010 --> 00:36:51,630 ОК. 732 00:36:51,630 --> 00:36:57,690 >> Претпостављам да налетимо ово питање шта 733 00:36:57,690 --> 00:37:06,390 ће се десити ако имате више ствари да вам дају исти индекс? 734 00:37:06,390 --> 00:37:10,570 Тако кажу нашу функцију, сви га да ли је то узети прво слово 735 00:37:10,570 --> 00:37:14,490 и да га у један одговарајућа 0 кроз 25 индекса. 736 00:37:14,490 --> 00:37:17,137 То је потпуно у реду ако имате само један од сваког. 737 00:37:17,137 --> 00:37:18,970 Али друга почнете има више, ти си 738 00:37:18,970 --> 00:37:20,910 ће имати оно што се зове судар. 739 00:37:20,910 --> 00:37:25,580 >> Дакле, ако покушам да убаците закопа у хасх Табела која већ има банану на њега, 740 00:37:25,580 --> 00:37:27,870 шта ће се догодити када покушате да убаците то? 741 00:37:27,870 --> 00:37:30,930 Лоше ствари јер банане већ постоји у индексу 742 00:37:30,930 --> 00:37:33,800 да желите да га сачувате у. 743 00:37:33,800 --> 00:37:35,560 Бери врста је као, Ах, шта да радим? 744 00:37:35,560 --> 00:37:37,080 Ја не знам где да идем. 745 00:37:37,080 --> 00:37:38,410 Како решити ово? 746 00:37:38,410 --> 00:37:41,150 >> И тако ви це некако Видим да урадимо ову ствар лукав 747 00:37:41,150 --> 00:37:44,810 где можемо некако стварно створити повезану листу у нашим низова. 748 00:37:44,810 --> 00:37:46,840 И тако је најлакше да размишљам о томе, 749 00:37:46,840 --> 00:37:50,830 све хасх табела је низ повезаних листама. 750 00:37:50,830 --> 00:37:55,670 И тако, у том смислу, имате овај прелепи низ показивача, 751 00:37:55,670 --> 00:37:58,740 и онда сваки показивач у та вредност, у том индексу, 752 00:37:58,740 --> 00:38:00,740 заправо може указати на друге ствари. 753 00:38:00,740 --> 00:38:05,720 И тако имате све ове одвојене ланци долазе са једног великог низа. 754 00:38:05,720 --> 00:38:07,960 >> И ево, ако ја желео да убаците берри, 755 00:38:07,960 --> 00:38:11,220 Знам, у реду, ја ћу да улаз је кроз моје хасх функцију. 756 00:38:11,220 --> 00:38:15,070 Ја ћу да завршим са индексом 1, а онда ћу моћи да 757 00:38:15,070 --> 00:38:20,410 само мањи део ове гигант 140.000 речи речник. 758 00:38:20,410 --> 00:38:24,220 А онда сам Можете погледати кроз 1/26 тога. 759 00:38:24,220 --> 00:38:27,910 >> И онда могу само да убаците Берри било пре или после банана 760 00:38:27,910 --> 00:38:28,820 у овом случају? 761 00:38:28,820 --> 00:38:29,700 После, зар не? 762 00:38:29,700 --> 00:38:33,920 И тако ћеш желети да убаците овај чвор после банана, 763 00:38:33,920 --> 00:38:36,667 па ћеш да убаците на репу те повезане листе. 764 00:38:36,667 --> 00:38:38,500 Идем да се вратим на овај претходни слајд, 765 00:38:38,500 --> 00:38:40,680 тако да ви можете видети како хасх функција ради. 766 00:38:40,680 --> 00:38:43,980 >> Тако хасх функција је ова једначина да сте покренули врсту ваш унос 767 00:38:43,980 --> 00:38:46,940 до добити све индекса желите да га доделите ка. 768 00:38:46,940 --> 00:38:51,130 И тако, у овом примеру, сви смо хтели да одведем прво писмо, 769 00:38:51,130 --> 00:38:55,890 претворити у индекс, онда може да складишти да у нашој хеш функције. 770 00:38:55,890 --> 00:39:00,160 Све што радимо овде је да смо претварање прво писмо. 771 00:39:00,160 --> 00:39:04,770 Дакле, кеикеи [0] је само прво слово од свега низ имамо, 772 00:39:04,770 --> 00:39:05,720 ми пролази. 773 00:39:05,720 --> 00:39:09,740 Ми смо претварање да се горњи и ми одузимамо од великим словима А, 774 00:39:09,740 --> 00:39:11,740 тако да све то ради нам даје низ 775 00:39:11,740 --> 00:39:13,670 у којима можемо хасх наше вредности на. 776 00:39:13,670 --> 00:39:16,550 >> А онда ћемо врати хасх МОДУЛУС величине. 777 00:39:16,550 --> 00:39:19,340 Будите врло, врло опрезни јер, теоретски, овде 778 00:39:19,340 --> 00:39:21,870 Ваш хасх вредност може бити бесконачна. 779 00:39:21,870 --> 00:39:23,660 Само да наставим да и даље и даље. 780 00:39:23,660 --> 00:39:26,080 То може бити неки стварно, заиста велике вредности, 781 00:39:26,080 --> 00:39:29,849 већ зато што иоур хасх табели која сте направили има само 26 индекса, 782 00:39:29,849 --> 00:39:31,890 желите да се уверите ваш модулусинг тако да 783 00:39:31,890 --> 00:39:33,848 не рун-- је то исто ствар као своју куеуе-- 784 00:39:33,848 --> 00:39:36,320 тако да не нестане из дну хеш функције. 785 00:39:36,320 --> 00:39:39,210 >> Желиш да прекине вратити око на исти начин у [неразумљиво] када 786 00:39:39,210 --> 00:39:41,750 Имао си веома, веома велико слово, ви 787 00:39:41,750 --> 00:39:43,740 није желео да да Само побегли крај. 788 00:39:43,740 --> 00:39:46,948 Иста ствар овде, желите да се уверите не побегне крај обавијањем 789 00:39:46,948 --> 00:39:48,330 около до врха табеле. 790 00:39:48,330 --> 00:39:50,530 Дакле, ово је само врло једноставна хасх функција. 791 00:39:50,530 --> 00:39:56,570 Све то урадила је узети први писмо било наше улаз био 792 00:39:56,570 --> 00:40:01,660 и да га у индекс који могли бисмо да ставимо у наш хасх табели. 793 00:40:01,660 --> 00:40:05,450 >> Да, па као што сам већ рекао, начин на који смо решили сударе 794 00:40:05,450 --> 00:40:09,330 у нашем хасх табеле имају, оно што ми зовемо, цхаининг. 795 00:40:09,330 --> 00:40:13,860 Дакле, ако покушате да унесете вишеструке речи које почињу са исте ствари, 796 00:40:13,860 --> 00:40:16,145 ћеш имати једну хасх вредност. 797 00:40:16,145 --> 00:40:18,770 Авокадо и јабука, ако сте покрените га кроз наше хеш функције, 798 00:40:18,770 --> 00:40:21,450 ће вам дати Исти број, број 0. 799 00:40:21,450 --> 00:40:24,550 И тако је начин на који смо решили да је да ми заправо можемо некако да их повеже 800 00:40:24,550 --> 00:40:27,010 заједно преко повезаних листи. 801 00:40:27,010 --> 00:40:29,600 >> И тако у том смислу, момци могу некако видим 802 00:40:29,600 --> 00:40:32,640 како структуре података које смо претходно подешавање 803 00:40:32,640 --> 00:40:35,870 А Раисин као повезана листу врсте од може доћи заједно у једну. 804 00:40:35,870 --> 00:40:38,860 А онда можете да креирате сада ефикасније структуре података 805 00:40:38,860 --> 00:40:43,350 који може да обави веће количине података, која динамично величину зависности 806 00:40:43,350 --> 00:40:44,870 о вашим потребама. 807 00:40:44,870 --> 00:40:45,620 Свако јасно? 808 00:40:45,620 --> 00:40:47,580 Свако нека врста јасно о томе шта се овде дешава? 809 00:40:47,580 --> 00:40:52,110 >> Да сам хтео да инсерт-- шта је воће које почиње са, не знам, 810 00:40:52,110 --> 00:40:54,726 Б осим бобице, банане. 811 00:40:54,726 --> 00:40:55,710 >> ПУБЛИКА Блацкберри. 812 00:40:55,710 --> 00:40:57,910 >> Анди Пенг: Купина, купина. 813 00:40:57,910 --> 00:41:00,530 Где купина иде овде? 814 00:41:00,530 --> 00:41:04,251 Па, ми у ствари не сортира ово још, али теоретски 815 00:41:04,251 --> 00:41:06,250 ако желимо да имамо ово по абецедном реду, 816 00:41:06,250 --> 00:41:07,944 где би блацкберри иде? 817 00:41:07,944 --> 00:41:09,210 >> ПУБЛИКА: [неразумљиво] 818 00:41:09,210 --> 00:41:11,100 >> Анди Пенг: Тачно, после овде, зар не? 819 00:41:11,100 --> 00:41:14,950 Али, пошто је веома тешко реордер-- Претпостављам да је до вас. 820 00:41:14,950 --> 00:41:17,920 Момци могу потпуно имплементирати шта год хоћеш. 821 00:41:17,920 --> 00:41:20,730 Ефикаснији начин да се то уради, можда 822 00:41:20,730 --> 00:41:24,570 био би да се сортирају ваш повезан лист у абецедном реду, 823 00:41:24,570 --> 00:41:26,520 па кад сте убацивања ствари, хоћеш 824 00:41:26,520 --> 00:41:28,632 да би били сигурни да их убаците у абецедном реду 825 00:41:28,632 --> 00:41:30,590 тако да онда када си покушавајући да их потражите, 826 00:41:30,590 --> 00:41:32,410 не морате да прођу све. 827 00:41:32,410 --> 00:41:35,290 Ви знате тачно где је, и то је лакше. 828 00:41:35,290 --> 00:41:39,100 >> Али ако имате мало ствари смењују случајно, 829 00:41:39,100 --> 00:41:41,420 и даље ћеш имати да је прелазак у сваком случају. 830 00:41:41,420 --> 00:41:44,990 И тако, ако сам хтео да само инсерт купина овде 831 00:41:44,990 --> 00:41:47,470 и ја сам хтјела да тражи да, знам, о, купина 832 00:41:47,470 --> 00:41:52,012 мора почети са индексом 1, тако да сам знам тренутно само тражи на 1. 833 00:41:52,012 --> 00:41:53,970 И онда ја могу некако пролазе кроз повезану листу 834 00:41:53,970 --> 00:41:56,120 док не дођете до блацкберри, И онда да? 835 00:41:56,120 --> 00:41:59,550 >> ПУБЛИКА: Ако покушавате да цреате-- Претпостављам да је ово веома једноставан хасх 836 00:41:59,550 --> 00:42:00,050 Функција. 837 00:42:00,050 --> 00:42:02,835 И ако смо хтели да урадимо вишеструки слојеви који воле, 838 00:42:02,835 --> 00:42:05,870 У реду, ми желимо да се одвоје у као и сви словима абецеде 839 00:42:05,870 --> 00:42:09,040 и онда поново да волим другу сет од словима абецеде у оквиру које, 840 00:42:09,040 --> 00:42:11,715 стављамо као хасх сто у хеш табели, 841 00:42:11,715 --> 00:42:13,256 или као функција у функцији? 842 00:42:13,256 --> 00:42:14,880 Или је то-- 843 00:42:14,880 --> 00:42:17,510 >> Анди Пенг: Дакле, ваша хасх фунцтион-- свој хасх табелу 844 00:42:17,510 --> 00:42:19,360 може бити велики као желите да. 845 00:42:19,360 --> 00:42:21,930 Дакле, у том смислу, мислио сам било је веома лако, веома 846 00:42:21,930 --> 00:42:25,320 једноставно за мене да некако заснива о словима прве речи. 847 00:42:25,320 --> 00:42:28,690 И тако је само 26 опција. 848 00:42:28,690 --> 00:42:32,650 Ја само могу добити 26 опције из 0 до 25, јер они само могу 849 00:42:32,650 --> 00:42:36,510 почети од А до З. Али Ако желиш да додам, можда, сложеност 850 00:42:36,510 --> 00:42:39,260 или брже покретање време у својој хеш табеле, апсолутно 851 00:42:39,260 --> 00:42:40,760 може да уради свашта. 852 00:42:40,760 --> 00:42:43,330 Можете направити свој једначина која вам даје 853 00:42:43,330 --> 00:42:48,000 више дистрибуција у вашем речи, онда када претражујете, 854 00:42:48,000 --> 00:42:49,300 то ће бити бржи. 855 00:42:49,300 --> 00:42:52,100 >> То је потпуно до вас како желите да то применимо. 856 00:42:52,100 --> 00:42:55,140 Мислите о томе као само кашикама. 857 00:42:55,140 --> 00:42:57,376 Да сам хтео да имам 26 кашике, идем 858 00:42:57,376 --> 00:42:59,420 да средим ствари у тим кашикама. 859 00:42:59,420 --> 00:43:02,980 Али ја ћу имати гомилу ствари у сваком кофу, 860 00:43:02,980 --> 00:43:05,890 Дакле, ако желите да се направи брже и ефикасније, 861 00:43:05,890 --> 00:43:07,190 дај ми сто кашике. 862 00:43:07,190 --> 00:43:09,290 >> Али онда морате да смисли начин да средим ствари тако да су 863 00:43:09,290 --> 00:43:11,040 у одговарајуће кофи би требало да буду унутра. 864 00:43:11,040 --> 00:43:13,331 Али онда стварно кад Желим да погледате ту канту, 865 00:43:13,331 --> 00:43:16,410 То је много брже, јер постоји мање ствари у сваком кофу. 866 00:43:16,410 --> 00:43:20,250 И тако, да, то је у ствари трик за вас у псет5 867 00:43:20,250 --> 00:43:22,360 је да ћете бити изазов да створи само 868 00:43:22,360 --> 00:43:26,170 оно што је најефикаснији Функција можете да замислите да буде 869 00:43:26,170 --> 00:43:28,520 у стању да сачувате и провери ове вредности. 870 00:43:28,520 --> 00:43:30,840 >> Тотално до вас како год хоћете да то уради, 871 00:43:30,840 --> 00:43:32,229 али то је стварно добра ствар. 872 00:43:32,229 --> 00:43:34,520 То је врста логике сте Желим да почнете да размишљате о 873 00:43:34,520 --> 00:43:37,236 је, добро, зашто не бих се више кофе. 874 00:43:37,236 --> 00:43:39,527 И онда морам тражити мање ствари, а онда можда и 875 00:43:39,527 --> 00:43:41,640 имају другачију функцију хасх. 876 00:43:41,640 --> 00:43:45,500 >> Да, постоји много начина да то урадите псет, неки су брже од других. 877 00:43:45,500 --> 00:43:50,630 Тотално сам да само видите како брзо је био најбржи момци ће 878 00:43:50,630 --> 00:43:55,170 бити у стању да се ваше функције на посао. 879 00:43:55,170 --> 00:43:58,176 ОК, сви добро на Ланчани и хасх табеле? 880 00:43:58,176 --> 00:44:00,800 То је заправо је као веома једноставан концепт, ако мислите о томе. 881 00:44:00,800 --> 00:44:05,160 Све што је је одвајање год Ваши улази у канте, 882 00:44:05,160 --> 00:44:10,670 их сортирање, а затим претресају наводи да је повезан са. 883 00:44:10,670 --> 00:44:11,852 >> Кул. 884 00:44:11,852 --> 00:44:18,160 У реду, сада имамо другачију врсту структуре података које се зове дрво. 885 00:44:18,160 --> 00:44:20,850 Идемо даље и разговарати о покушаја које су изразито различити, 886 00:44:20,850 --> 00:44:22,330 али у истој категорији. 887 00:44:22,330 --> 00:44:29,010 У суштини, све је дрво је уместо организовања података у линеарном путу 888 00:44:29,010 --> 00:44:32,560 да вас хасх табела доес-- Знате, то има топ и дно 889 00:44:32,560 --> 00:44:37,900 и онда некако повезати офф тога-- а дрво има врхунски које ви називате корен, 890 00:44:37,900 --> 00:44:40,220 а онда има листове све око њега. 891 00:44:40,220 --> 00:44:42,390 >> И тако све имате овде је само врх чвор 892 00:44:42,390 --> 00:44:45,980 који указује на друге чворова, који бодова на више чворова, и тако даље и тако даље. 893 00:44:45,980 --> 00:44:48,130 И тако да само треба резачи гране. 894 00:44:48,130 --> 00:44:53,255 То је само другачији начин организовања података, и зато што је дрво зову, 895 00:44:53,255 --> 00:44:56,270 ви само-- само по узору се да изгледам као дрво. 896 00:44:56,270 --> 00:44:57,670 Зато ми то зовемо дрвеће. 897 00:44:57,670 --> 00:44:59,370 >> Хасх табела изгледа као табеле. 898 00:44:59,370 --> 00:45:01,310 Дрво баш изгледа као дрво. 899 00:45:01,310 --> 00:45:03,300 Све то је одвојени начин организовања чворова 900 00:45:03,300 --> 00:45:06,020 зависно од тога шта су ваше потребе. 901 00:45:06,020 --> 00:45:11,810 >> Дакле, имате корен и онда имате лишћа. 902 00:45:11,810 --> 00:45:15,380 Начин на који смо посебно може мислим о томе је бинарно стабло, 903 00:45:15,380 --> 00:45:18,150 бинарни дрво је само специфична врста дрвета 904 00:45:18,150 --> 00:45:22,450 где сваки чвор само тачке да, при мак, друга два чворови. 905 00:45:22,450 --> 00:45:25,434 И тако овде имате посебан симетрија у вашем дрвету 906 00:45:25,434 --> 00:45:28,600 да олакшава врста гледати шта вредности си јер онда 907 00:45:28,600 --> 00:45:30,150 има увек лево или десно. 908 00:45:30,150 --> 00:45:33,150 Никада није је као леви трећине од лево или четврти са леве стране. 909 00:45:33,150 --> 00:45:36,358 То је само имате лево и десно и можете да потражите било који од њих двојице. 910 00:45:36,358 --> 00:45:38,980 А зашто је то корисно? 911 00:45:38,980 --> 00:45:40,980 Начин на који је ово корисно је ако гледате 912 00:45:40,980 --> 00:45:42,890 за претраживање преко вредности, зар не? 913 00:45:42,890 --> 00:45:45,640 Уместо спровођење бинарни претрага у низу грешака, 914 00:45:45,640 --> 00:45:49,260 ако желите да бисте могли да убаците чворова и одузети чворишта по вољи, као и 915 00:45:49,260 --> 00:45:52,185 сачувати претрагу капацитети бинарном претрагом. 916 00:45:52,185 --> 00:45:54,560 Дакле, на овај начин, ми смо некако трицкинг-- се кад смо 917 00:45:54,560 --> 00:45:56,530 рекао је повезана листе не могу бинарни претрагу? 918 00:45:56,530 --> 00:46:01,700 Некако смо стварање структуре података да трикове да у радни. 919 00:46:01,700 --> 00:46:05,034 >> И зато што повезани листе су линеарни, они само повезати једну за другом. 920 00:46:05,034 --> 00:46:06,950 Можемо врста има друга врста показивача 921 00:46:06,950 --> 00:46:09,408 које указују на различитим чворовима који могу да нам помогну у потрази. 922 00:46:09,408 --> 00:46:12,590 И ево, ако желим да имају бинарно стабло претраге, 923 00:46:12,590 --> 00:46:14,090 Знам да моје средње, ако 55. 924 00:46:14,090 --> 00:46:18,280 Ја ћу само да створи да као мој средини, као мој корен, 925 00:46:18,280 --> 00:46:20,770 а онда ћу имати Вредности спин офф од тога. 926 00:46:20,770 --> 00:46:25,610 >> Дакле, овде, ако ћу тражити вредност 66, могу да се крећу од 55. 927 00:46:25,610 --> 00:46:27,310 То је 66 више од 55? 928 00:46:27,310 --> 00:46:30,970 Да је то тако знам да мус претрагу И н право показивач овог дрвета. 929 00:46:30,970 --> 00:46:32,440 Идем до 77. 930 00:46:32,440 --> 00:46:35,367 У реду је 66 мање или веће од 77? 931 00:46:35,367 --> 00:46:37,950 То је мање него, да знате, о, то мора да буде лево чвор. 932 00:46:37,950 --> 00:46:41,410 >> И тако овде смо некако очувања све велике ствари у вези низова, 933 00:46:41,410 --> 00:46:44,420 па као динамичког промену величине објеката, као 934 00:46:44,420 --> 00:46:49,530 у стању да убаците и брисање по вољи, без бриге о фиксна 935 00:46:49,530 --> 00:46:50,370 Количина простора. 936 00:46:50,370 --> 00:46:52,820 Ми смо још увек чувају све те дивне ствари 937 00:46:52,820 --> 00:46:57,140 док су истовремено да сачувају лог и тражење време бинарне претраге 938 00:46:57,140 --> 00:47:00,450 да смо били само раније у могућности да фразу. 939 00:47:00,450 --> 00:47:06,310 >> Цоол структура података, врста комплексна за имплементацију, чвор. 940 00:47:06,310 --> 00:47:08,311 Као што можете видети, све што је струцт чвора 941 00:47:08,311 --> 00:47:10,143 је да имате лево и право показивач. 942 00:47:10,143 --> 00:47:11,044 То је све што је. 943 00:47:11,044 --> 00:47:12,960 Дакле, уместо да који има к или претходни. 944 00:47:12,960 --> 00:47:15,920 Имате лево или десно, а затим можете некако да их повезују 945 00:47:15,920 --> 00:47:16,836 Међутим тако изабрати. 946 00:47:16,836 --> 00:47:21,080 947 00:47:21,080 --> 00:47:24,270 >> У реду, ми заправо догађа само да потраје пар минута. 948 00:47:24,270 --> 00:47:25,790 Тако ћемо се вратити овде. 949 00:47:25,790 --> 00:47:28,270 Као што сам раније рекао, Некако сам објаснио 950 00:47:28,270 --> 00:47:31,520 логика Хов Ве би тражити кроз ово. 951 00:47:31,520 --> 00:47:33,860 Ми ћемо покушати псеудоцодинг ово да видим 952 00:47:33,860 --> 00:47:38,000 ако можемо некако применити Иста логика бинарног потрази 953 00:47:38,000 --> 00:47:40,055 на другачијој врсти структуре података. 954 00:47:40,055 --> 00:47:45,049 Ако ви желите да се као пар минута да размисли о томе. 955 00:47:45,049 --> 00:48:45,927 956 00:48:45,927 --> 00:48:46,925 ОК. 957 00:48:46,925 --> 00:48:51,407 У реду, ја ћу уствари само вам дати то-- не, 958 00:48:51,407 --> 00:48:52,990 ћемо говорити о псеудокоду први. 959 00:48:52,990 --> 00:48:56,580 Дакле, да ли неко жели да се добије убод шта 960 00:48:56,580 --> 00:49:02,100 Прва ствар коју желите да урадите када ви почињете претраживање је? 961 00:49:02,100 --> 00:49:04,460 Ако тражимо вредност 66, што је 962 00:49:04,460 --> 00:49:07,940 Прва ствар коју желимо да урадимо ако желимо да бинарних тражење ово дрво? 963 00:49:07,940 --> 00:49:10,760 >> ПУБЛИКА: Желите да изгледа добро и тражити лево и види [неразумљиво] 964 00:49:10,760 --> 00:49:11,230 већи број. 965 00:49:11,230 --> 00:49:12,271 >> Анди Пенг: Да, управо тако. 966 00:49:12,271 --> 00:49:15,350 Тако ћеш да погледате вашу корену. 967 00:49:15,350 --> 00:49:18,180 Постоји много начина можете позивати да, ваши људи родитељ чворова кажу. 968 00:49:18,180 --> 00:49:21,317 Ја волим да кажем, јер корен то је као корен дрвета. 969 00:49:21,317 --> 00:49:23,400 Идеш да погледате твој корен чвор, а ти си 970 00:49:23,400 --> 00:49:26,940 ћете видети већи је 66 од или мање од 55. 971 00:49:26,940 --> 00:49:30,360 И ако је већи од, па, то је већи од, где желимо да погледамо? 972 00:49:30,360 --> 00:49:32,000 Где желимо да сада претрагу, зар не? 973 00:49:32,000 --> 00:49:34,340 Желимо да сеарцх десна половина овог дрвета. 974 00:49:34,340 --> 00:49:38,390 >> Тако имамо, повољно, А показивач који указује на десно. 975 00:49:38,390 --> 00:49:44,325 И онда можемо поставити наш нови корен да буде 77. 976 00:49:44,325 --> 00:49:46,450 Можемо само отићи где год показивач показује. 977 00:49:46,450 --> 00:49:49,100 Па, ох, овде почињемо на 77, а ми једноставно не могу 978 00:49:49,100 --> 00:49:51,172 ово рекурзивно опет и опет. 979 00:49:51,172 --> 00:49:52,880 На овај начин, љубазан од имају функцију. 980 00:49:52,880 --> 00:49:57,430 Имате начин тражења то ти могу само да поновим изнова и изнова и изнова, 981 00:49:57,430 --> 00:50:02,720 у зависности од тога где желите да погледате док се на крају доћи до вредности 982 00:50:02,720 --> 00:50:04,730 да тражите. 983 00:50:04,730 --> 00:50:05,230 Има смисла? 984 00:50:05,230 --> 00:50:07,800 >> Ја ћу да ти покажем стварни број, и много је кода. 985 00:50:07,800 --> 00:50:08,674 Нема потребе да одлепим. 986 00:50:08,674 --> 00:50:09,910 Причаћемо кроз њега. 987 00:50:09,910 --> 00:50:13,410 988 00:50:13,410 --> 00:50:14,020 >> Заправо, не. 989 00:50:14,020 --> 00:50:15,061 То је био само Псеудокод. 990 00:50:15,061 --> 00:50:17,860 ОК, то је само Псеудокод, која је мало сложен, 991 00:50:17,860 --> 00:50:19,751 али то је потпуно у реду. 992 00:50:19,751 --> 00:50:21,000 Свако следеће заједно овде? 993 00:50:21,000 --> 00:50:24,260 Ако је корен нулл, повратак лажно јер то значи 994 00:50:24,260 --> 00:50:26,850 не чак ни тамо ништа. 995 00:50:26,850 --> 00:50:31,376 >> Ако корен н вредност, па ако је то деси да буде једна гледате, 996 00:50:31,376 --> 00:50:34,000 онда ћеш ретурн труе јер знаш да га нашао. 997 00:50:34,000 --> 00:50:36,250 Али, ако је вредност мања од корена н, ти си 998 00:50:36,250 --> 00:50:38,332 ће тражити лево дете или лево лист, 999 00:50:38,332 --> 00:50:39,540 год желите да га назовете. 1000 00:50:39,540 --> 00:50:41,750 А ако је вредност већа од корена, идете да потражите праву дрво, 1001 00:50:41,750 --> 00:50:44,610 онда само покрените функцију кроз претрагу поново. 1002 00:50:44,610 --> 00:50:48,037 >> А ако корен нулл, да је значи да сте стигли до краја? 1003 00:50:48,037 --> 00:50:50,120 То значи да немате више више листова за претрагу, 1004 00:50:50,120 --> 00:50:52,230 онда знате, ох, Претпостављам да није ту 1005 00:50:52,230 --> 00:50:55,063 јер после сам погледао кроз цела ствар и није овде, 1006 00:50:55,063 --> 00:50:56,930 само можда неће бити овде. 1007 00:50:56,930 --> 00:50:58,350 >> Да ли то има смисла свима? 1008 00:50:58,350 --> 00:51:03,230 Дакле, то је као бинарни потрази очувања Могућности повезаних листи. 1009 00:51:03,230 --> 00:51:09,200 Цоол, па други тип од вас структура података момака 1010 00:51:09,200 --> 00:51:13,180 можете покушати имплементацији на псет, имате само да изаберете једну методу. 1011 00:51:13,180 --> 00:51:19,430 Али, можда алтернатива начин да хасх табела је оно што ми зовемо трие. 1012 00:51:19,430 --> 00:51:24,080 >> Све што је трие је специфична врста дрвета који 1013 00:51:24,080 --> 00:51:28,600 има вредности који иду у друге вредности. 1014 00:51:28,600 --> 00:51:31,450 Дакле, уместо да бинарни дрво у смислу да само једна 1015 00:51:31,450 --> 00:51:35,940 што може да укаже на два, можете имати једна ствар тачка за многе, многе ствари. 1016 00:51:35,940 --> 00:51:39,450 Ви у основи имају низове унутар којих чувате 1017 00:51:39,450 --> 00:51:41,790 показивачи који указују на друге низова. 1018 00:51:41,790 --> 00:51:45,210 1019 00:51:45,210 --> 00:51:49,460 >> Дакле, чвор Хов Ве би дефинисали ТРИЕ 1020 00:51:49,460 --> 00:51:52,590 је желимо да имамо Булова ц реч, зар не? 1021 00:51:52,590 --> 00:51:54,920 Дакле, чвор је Булова као тачно или нетачно, 1022 00:51:54,920 --> 00:51:58,490 пре свега на челу да арраи је ово реч? 1023 00:51:58,490 --> 00:52:03,620 Друго, желите да имате савете да без обзира на остали су. 1024 00:52:03,620 --> 00:52:07,470 Мало комплекс, мало апстрактно, али Ја ћу објаснити шта то свим средствима. 1025 00:52:07,470 --> 00:52:13,800 >> Па ево, на врху, ако вас има низ прогласио је већ, 1026 00:52:13,800 --> 00:52:17,040 чвор где имате Боолеан Вредност складиштени на фронту 1027 00:52:17,040 --> 00:52:19,490 да каже да је ово реч? 1028 00:52:19,490 --> 00:52:20,520 Зар то није реч? 1029 00:52:20,520 --> 00:52:23,240 И онда имати остатак низа који 1030 00:52:23,240 --> 00:52:26,040 заправо чува све могућности шта би то могло бити. 1031 00:52:26,040 --> 00:52:28,660 Тако, на пример, као на врху имате 1032 00:52:28,660 --> 00:52:32,140 прва ствар која говори истина или лажна, да или не, ово је реч. 1033 00:52:32,140 --> 00:52:38,130 >> И онда имате 0 до 26 од писма које можете похранити. 1034 00:52:38,130 --> 00:52:42,790 Да сам хтео да овде тражење за палицом, идем на врх 1035 00:52:42,790 --> 00:52:49,200 и ја тражити Б. налазим Б у мом Арраи, па ја знам, у реду, јесте Б реч? 1036 00:52:49,200 --> 00:52:53,010 Б није реч, па стога Морам да настави да тражиш. 1037 00:52:53,010 --> 00:52:56,410 Идем из Б, а ја изгледам до показивач да Б указује на 1038 00:52:56,410 --> 00:53:00,900 и видим још један низ информација, иста структура која смо раније имали. 1039 00:53:00,900 --> 00:53:05,240 >> И овде-- Ох, следећи писмо у [неразумљиво] је А. 1040 00:53:05,240 --> 00:53:07,210 Дакле, гледамо у том низу. 1041 00:53:07,210 --> 00:53:10,860 Налазимо осми вредност, и онда тражимо да видимо, о, 1042 00:53:10,860 --> 00:53:12,840 Хеј, да ли је то реч, је Б-А, реч? 1043 00:53:12,840 --> 00:53:13,807 То није реч. 1044 00:53:13,807 --> 00:53:14,890 Морамо да настави да гледаш. 1045 00:53:14,890 --> 00:53:17,850 >> И онда гледамо гдје показивач на А поена, 1046 00:53:17,850 --> 00:53:21,130 и указује на други начин у што имамо више вредности чувају. 1047 00:53:21,130 --> 00:53:24,150 И на крају, долазимо до Б-А-Т, који је реч. 1048 00:53:24,150 --> 00:53:25,970 И тако се следећи пут изгледаш, идеш 1049 00:53:25,970 --> 00:53:30,850 да ту проверу, да, ово Булова функција је истина. 1050 00:53:30,850 --> 00:53:35,450 И тако у том смислу смо некако смо поседовања дрво са низовима. 1051 00:53:35,450 --> 00:53:39,890 >> Онда можете некако претрагу доле. 1052 00:53:39,890 --> 00:53:43,650 Уместо хасхинг функцију и додељивање вредности од повезане листе, 1053 00:53:43,650 --> 00:53:49,190 можете једноставно спровести трие да тражи довнвордс. 1054 00:53:49,190 --> 00:53:50,850 Заиста, заиста компликовано ствари. 1055 00:53:50,850 --> 00:53:54,060 Није лако размишљати о, јер сам као пљује толико структуре података од 1056 00:53:54,060 --> 00:53:58,710 на тебе, али се сви некако разумијем како логика ово ради? 1057 00:53:58,710 --> 00:54:01,920 >> OK kul. 1058 00:54:01,920 --> 00:54:05,600 Со Б-А-Т, а онда идете да потражите. 1059 00:54:05,600 --> 00:54:07,940 Следећи пут идете да видим, ох, хеј, то је истина, 1060 00:54:07,940 --> 00:54:09,273 тако знам да ово мора бити реч. 1061 00:54:09,273 --> 00:54:12,030 1062 00:54:12,030 --> 00:54:13,770 >> Иста ствар за зоолошки врт. 1063 00:54:13,770 --> 00:54:17,960 Дакле, овде је ствар сада, ако желео да тражи зоо, сада, 1064 00:54:17,960 --> 00:54:20,780 Тренутно зоолошки врт није реч у нашем речнику 1065 00:54:20,780 --> 00:54:25,300 јер, како ви можете да видите, Прво место да имамо Боолеан 1066 00:54:25,300 --> 00:54:28,590 ретурн труе је на крају зума. 1067 00:54:28,590 --> 00:54:30,430 Ми имамо З-О-О-м. 1068 00:54:30,430 --> 00:54:33,900 >> И ево, ми уствари не имате реч, зоолошки врт, у нашем речнику 1069 00:54:33,900 --> 00:54:36,070 јер то цхецк бок није проверио. 1070 00:54:36,070 --> 00:54:39,540 Дакле, рачунар не знам да је зоолошки врт је реч 1071 00:54:39,540 --> 00:54:42,430 јер начин на који имамо чувати га, само зум овде 1072 00:54:42,430 --> 00:54:44,920 заправо има Боолеан вредност која је била претворена истина. 1073 00:54:44,920 --> 00:54:49,380 Дакле, ако желимо да убаците Реч, зоолошки врт, у нашем речнику, 1074 00:54:49,380 --> 00:54:51,770 Како бисмо то урадили? 1075 00:54:51,770 --> 00:54:55,960 Шта треба да урадимо да се уверите наш Компјутер зна да З-О-О је реч 1076 00:54:55,960 --> 00:54:58,130 а не прва реч је З-О-О-м? 1077 00:54:58,130 --> 00:54:59,360 >> ПУБЛИКА: [неразумљиво] 1078 00:54:59,360 --> 00:55:01,450 >> Анди Пенг: Управо смо желите да се уверите да је ово 1079 00:55:01,450 --> 00:55:07,890 овде, да Булова вредност Проверио гола која је то истина. 1080 00:55:07,890 --> 00:55:13,297 З-о-о, онда ћемо да проверимо да, тако да знамо тачно, хеј, зоолошки врт је реч. 1081 00:55:13,297 --> 00:55:15,380 Ја ћу рећи рачунар који је реч тако 1082 00:55:15,380 --> 00:55:18,000 да када се рачунар провере, зна да зоолошки врт је реч. 1083 00:55:18,000 --> 00:55:21,269 >> Пошто се сетим свих ових података структуре, то је врло лако за нас 1084 00:55:21,269 --> 00:55:22,310 да кажем, ох, слепи миш је реч. 1085 00:55:22,310 --> 00:55:22,851 Зоолошки врт је реч. 1086 00:55:22,851 --> 00:55:23,611 Зум је реч. 1087 00:55:23,611 --> 00:55:25,860 Али кад га граде, рачунар нема појма. 1088 00:55:25,860 --> 00:55:28,619 >> Дакле, морате да га рећи тачно у ком тренутку је ово реч? 1089 00:55:28,619 --> 00:55:29,910 У ком тренутку није реч? 1090 00:55:29,910 --> 00:55:31,784 И у ком тренутку Да ли треба тражити ствари, 1091 00:55:31,784 --> 00:55:34,000 и на ком тренутку не морам да идем следећи? 1092 00:55:34,000 --> 00:55:37,010 Свако јасно тога? 1093 00:55:37,010 --> 00:55:39,540 Кул. 1094 00:55:39,540 --> 00:55:42,530 >> И онда долази Проблем како би 1095 00:55:42,530 --> 00:55:45,560 го о убацивању нешто То је заправо не постоји? 1096 00:55:45,560 --> 00:55:49,090 Дакле, рецимо да желите да унесете реч, купатило, у нашем Трие. 1097 00:55:49,090 --> 00:55:53,589 Као што људи могу видети као тренутно све што сада имамо је Б-А, Т, 1098 00:55:53,589 --> 00:55:55,630 и ова нова структура података тамо имали пиво да 1099 00:55:55,630 --> 00:55:59,740 указао на нулл, јер претпостављамо да, ох, ево нема речи након Б-А-Т, 1100 00:55:59,740 --> 00:56:02,530 Зашто морамо имати има ствари после тог Т. 1101 00:56:02,530 --> 00:56:06,581 >> Али проблем настаје ако и ти желе да имају реч која долази после 1102 00:56:06,581 --> 00:56:07,080 Т-а. 1103 00:56:07,080 --> 00:56:09,500 Ако имате каду, ти си да зелим Х право. 1104 00:56:09,500 --> 00:56:13,290 И тако начин на који ћемо да урадимо то је ћемо створити посебан чвор. 1105 00:56:13,290 --> 00:56:16,840 Нисмо додели било који износ меморије за ову нев Арраи, 1106 00:56:16,840 --> 00:56:20,720 а ми ћемо распоредити савете. 1107 00:56:20,720 --> 00:56:22,947 >> Идемо да доделите Х Пре свега, ово нулл 1108 00:56:22,947 --> 00:56:24,030 идемо да се отараси. 1109 00:56:24,030 --> 00:56:26,590 Ми ћемо имати Х окренут на доле. 1110 00:56:26,590 --> 00:56:30,600 Ако видимо Х, ми то желимо да иде негде другде. 1111 00:56:30,600 --> 00:56:33,910 >> Овде, онда можете да проверите са да. 1112 00:56:33,910 --> 00:56:38,170 Ако погодите Х после Т, О, онда знамо да је ово реч. 1113 00:56:38,170 --> 00:56:41,110 Логичка ће да се врати истина. 1114 00:56:41,110 --> 00:56:42,950 Свако јасно како се то догодило? 1115 00:56:42,950 --> 00:56:45,110 ОК. 1116 00:56:45,110 --> 00:56:47,214 >> У суштини, сви ове структуре података 1117 00:56:47,214 --> 00:56:50,130 да смо прешли данас, ја сам отишао преко њих стварно, стварно брзо 1118 00:56:50,130 --> 00:56:52,192 а не у много детаљ, а то је у реду. 1119 00:56:52,192 --> 00:56:53,900 Када почнете да петљају са њим, ти ћеш бити 1120 00:56:53,900 --> 00:56:55,733 праћење где сви показивачи су, 1121 00:56:55,733 --> 00:56:58,060 шта се дешава у вашем структуре података, и тако даље. 1122 00:56:58,060 --> 00:56:59,810 Они ће бити веома корисно, и то је на вама 1123 00:56:59,810 --> 00:57:03,890 момци потпуно схватити како желите да спроведе ствари. 1124 00:57:03,890 --> 00:57:07,650 >> И тако псет4, од 5-- ох, то је погрешно. 1125 00:57:07,650 --> 00:57:10,140 Псет5 је грешке. 1126 00:57:10,140 --> 00:57:13,710 Као што сам раније рекао, ти ћеш, једном Опет, преузмите изворни код од нас. 1127 00:57:13,710 --> 00:57:16,210 Ту ће бити три главна ствари које ће бити преузимање. 1128 00:57:16,210 --> 00:57:18,470 Ти ћеш преузети речнике, керс, и текстови. 1129 00:57:18,470 --> 00:57:21,660 >> Све те ствари су се или речници речи 1130 00:57:21,660 --> 00:57:25,190 да желимо да проверите или тест информација 1131 00:57:25,190 --> 00:57:26,930 да желимо да Спелл Цхецк. 1132 00:57:26,930 --> 00:57:29,670 И тако је речници дајемо ћеш 1133 00:57:29,670 --> 00:57:34,870 да вам дам стварне речи које желимо да некако чува на начин који је 1134 00:57:34,870 --> 00:57:36,530 ефикаснија од низа. 1135 00:57:36,530 --> 00:57:38,470 А онда су текстови Биће оно што смо 1136 00:57:38,470 --> 00:57:43,900 вас пита да правопис проверите да ли све речи постоје реалне речи. 1137 00:57:43,900 --> 00:57:47,970 >> И тако су три блока програми који даћемо вам 1138 00:57:47,970 --> 00:57:51,130 се зову дицтионари.ц, дицтионари.х, и спеллер.ц. 1139 00:57:51,130 --> 00:57:56,500 И тако све дицтионари.ц ради се оно што се од вас тражи да спроведе. 1140 00:57:56,500 --> 00:57:57,880 То учитава речи. 1141 00:57:57,880 --> 00:58:02,000 То спелл ​​проверава их и чини сигурно да је све правилно убачена. 1142 00:58:02,000 --> 00:58:05,180 >> дицтион.х је само библиотека фајл да објављује све те функције. 1143 00:58:05,180 --> 00:58:07,650 И спеллер.ц, идемо да ти дам. 1144 00:58:07,650 --> 00:58:09,290 Не морате да измените ништа од тога. 1145 00:58:09,290 --> 00:58:14,290 Све спеллер.ц чини јесте да је, оптерећења га, проверава брзину тога, 1146 00:58:14,290 --> 00:58:19,190 тестира мерило Свиђа ми се како брзо сте у стању да уради ствари. 1147 00:58:19,190 --> 00:58:20,410 >> То је спеловала. 1148 00:58:20,410 --> 00:58:23,920 Само се не зајебавај са њим, али да Сигурно сте разумели шта ради. 1149 00:58:23,920 --> 00:58:28,090 Ми користимо функцију која се зове гетрусаге да тестира перформансе вашег спелл 1150 00:58:28,090 --> 00:58:28,590 Цхецкер. 1151 00:58:28,590 --> 00:58:32,200 Све што ради је у основи тестирамо Време свега у вашем речнику, 1152 00:58:32,200 --> 00:58:33,680 тако проверите да ли сте схватити. 1153 00:58:33,680 --> 00:58:36,660 Будите опрезни да не неред са њим или елсе ствари неће радити исправно. 1154 00:58:36,660 --> 00:58:39,740 1155 00:58:39,740 --> 00:58:44,170 >> И највећи део овог изазова је за момци стварно измени дицтионари.ц. 1156 00:58:44,170 --> 00:58:48,526 Ми ћемо вам дати 140.000 речи у речнику. 1157 00:58:48,526 --> 00:58:50,900 Ми ћемо вам дати текст фајл који има те речи, 1158 00:58:50,900 --> 00:58:54,840 и желимо да будете у стању да организују их у хасх табелу или Трие 1159 00:58:54,840 --> 00:58:58,140 јер када смо вас да спелл цхецк-- замислите да сте правописа 1160 00:58:58,140 --> 00:59:00,690 проверу као Хомерове Одисеје. 1161 00:59:00,690 --> 00:59:03,010 То је као овај велики, огроман тест. 1162 00:59:03,010 --> 00:59:05,190 >> Замислите да сваки реч коју су били само неми 1163 00:59:05,190 --> 00:59:08,100 кроз низ 140.000 вредности. 1164 00:59:08,100 --> 00:59:10,350 То би трајати заувек за ваш уређај за покретање. 1165 00:59:10,350 --> 00:59:14,490 Зато желимо да организујемо наш података у ефикаснијих структура података 1166 00:59:14,490 --> 00:59:17,270 као што је хеш табели или Трие. 1167 00:59:17,270 --> 00:59:20,700 И онда ви можете некако од када тражите приступ 1168 00:59:20,700 --> 00:59:22,570 много лакше и брже ствари. 1169 00:59:22,570 --> 00:59:24,934 >> И зато будите пажљиви да реши судара. 1170 00:59:24,934 --> 00:59:27,350 Ти ћеш добити гомилу од речи које почињу са А. 1171 00:59:27,350 --> 00:59:29,957 Ти ћеш добити гомилу речи да почну са Б. На вама 1172 00:59:29,957 --> 00:59:31,290 момци како желите да се реши. 1173 00:59:31,290 --> 00:59:34,144 Можда има више ефикасан хасх функција 1174 00:59:34,144 --> 00:59:36,810 него само првог слова нешто, па то је на вама 1175 00:59:36,810 --> 00:59:38,190 момци да се некако ради шта год хоћеш. 1176 00:59:38,190 --> 00:59:40,148 >> Можда желите да додате сва писма заједно. 1177 00:59:40,148 --> 00:59:43,410 Можда желите да урадите воле чудне ствари на рачун број писама, 1178 00:59:43,410 --> 00:59:43,970 шта год. 1179 00:59:43,970 --> 00:59:45,386 До вама како желите да урадите. 1180 00:59:45,386 --> 00:59:49,262 Ако желите да урадите хасх табелу, ако вас Желим да покушам да трие, потпуно зависи од вас. 1181 00:59:49,262 --> 00:59:52,470 Ја ћу вас упозорити пре времена да је трие је обично мало теже 1182 00:59:52,470 --> 00:59:54,520 само зато што има много више показивачи да прате. 1183 00:59:54,520 --> 00:59:55,645 Али тотално до вас. 1184 00:59:55,645 --> 00:59:58,742 То је далеко ефикаснији у већини случајева. 1185 00:59:58,742 --> 01:00:01,450 Желиш да заиста бити у стању да задржи колосек све ваше показивача. 1186 01:00:01,450 --> 01:00:03,850 Као уради исту ствар да радим овде. 1187 01:00:03,850 --> 01:00:06,871 Када покушавате да убаците вредности у хеш табели или брисање, 1188 01:00:06,871 --> 01:00:08,620 уверите се да сте Стварно праћење 1189 01:00:08,620 --> 01:00:11,860 где је све због то је стварно лако ако сам 1190 01:00:11,860 --> 01:00:14,727 Покушавам да убаците као реч, Анди. 1191 01:00:14,727 --> 01:00:16,810 Рецимо да је то права реч, реч анди 1192 01:00:16,810 --> 01:00:19,640 у огромни списак А ​​речи. 1193 01:00:19,640 --> 01:00:22,450 >> Ако сам се деси да пренесете показивач погрешно, упс, 1194 01:00:22,450 --> 01:00:24,940 оде целину остатак мог повезане листе. 1195 01:00:24,940 --> 01:00:26,897 Сада је једина реч коју има је Енди, а сада 1196 01:00:26,897 --> 01:00:29,230 све друге речи у рјечник су изгубљени. 1197 01:00:29,230 --> 01:00:31,370 И тако желите да проверите да ли сте пратити све ваше показивача 1198 01:00:31,370 --> 01:00:33,661 иначе ћеш добити огромни проблеми у вашем коду. 1199 01:00:33,661 --> 01:00:35,840 Драв ствари пажљиво корак по корак. 1200 01:00:35,840 --> 01:00:37,870 То га чини много лакше замислити. 1201 01:00:37,870 --> 01:00:40,910 >> И на крају, желите да будете у стању да тестирате своје перформансе вашег програма 1202 01:00:40,910 --> 01:00:41,618 на великој табли. 1203 01:00:41,618 --> 01:00:43,710 Ако ви потрајати погледај ЦС50 сада, 1204 01:00:43,710 --> 01:00:45,210 имамо оно што се назива велика табла. 1205 01:00:45,210 --> 01:00:50,200 То је листица од најбржих спелл ​​цхецкинг пута целој ЦС50 1206 01:00:50,200 --> 01:00:55,720 сада, мислим да је врх као 10 Мислим пута осам од њих су запослени. 1207 01:00:55,720 --> 01:00:57,960 Ми заиста желимо да нам ви тукли. 1208 01:00:57,960 --> 01:01:00,870 >> Сви смо били покушава да спроведе најбрже кода могуће. 1209 01:01:00,870 --> 01:01:04,880 Желимо вас да покуша да оспори нас и спроводи брже од свих нас 1210 01:01:04,880 --> 01:01:05,550 могу. 1211 01:01:05,550 --> 01:01:07,970 И то је заиста први пут да смо 1212 01:01:07,970 --> 01:01:12,680 тражи се момци да урадимо да псет заиста можете урадити у било ком методу 1213 01:01:12,680 --> 01:01:13,760 желите. 1214 01:01:13,760 --> 01:01:17,730 >> Ја увек кажем, ово је сличније у стварном животу решење, зар не? 1215 01:01:17,730 --> 01:01:19,550 Ја кажем, хеј, морам да урадим ово. 1216 01:01:19,550 --> 01:01:21,380 Направите програм који је направио ово за мене. 1217 01:01:21,380 --> 01:01:22,630 Уради то како год желите. 1218 01:01:22,630 --> 01:01:24,271 Ја само знам да желим да посте. 1219 01:01:24,271 --> 01:01:25,770 То је твој изазов за ову недељу. 1220 01:01:25,770 --> 01:01:27,531 Ви, идемо да ти дам задатак. 1221 01:01:27,531 --> 01:01:29,030 Ми ћемо вам дати изазов. 1222 01:01:29,030 --> 01:01:31,559 А онда је до вас да се потпуно само схватим 1223 01:01:31,559 --> 01:01:34,100 Који је најбржи и најбољи ефикасан начин да се спроведе ова. 1224 01:01:34,100 --> 01:01:34,600 Да? 1225 01:01:34,600 --> 01:01:37,476 >> ПУБЛИКА: Да ли је дозвољено да ако вантед за истраживање брже начине 1226 01:01:37,476 --> 01:01:40,821 да урадите хасх табела на мрежи, можемо да урадимо да и наводе код туђи? 1227 01:01:40,821 --> 01:01:42,070 Анди Пенг: Да, потпуно у реду. 1228 01:01:42,070 --> 01:01:44,320 Дакле, ако сте прочитали спец постоји линија 1229 01:01:44,320 --> 01:01:48,310 у спец да каже момци су потпуно слободни да истражи хасх 1230 01:01:48,310 --> 01:01:51,070 Функције о томе шта су неки од најбржих хеш функције 1231 01:01:51,070 --> 01:01:54,720 да покренете ствари кроз што док наводе да код. 1232 01:01:54,720 --> 01:01:57,220 Дакле, неки људи су већ схватио брзе путеве 1233 01:01:57,220 --> 01:02:00,250 да ради правописа даме, брзог начина чувања података. 1234 01:02:00,250 --> 01:02:02,750 Тотално до вас, ако вас Желим да узми то, зар не? 1235 01:02:02,750 --> 01:02:04,045 Уверите се да сте позивајући се. 1236 01:02:04,045 --> 01:02:06,170 Заиста Изазов овде да покушавамо да тестирамо 1237 01:02:06,170 --> 01:02:09,750 чини сигурни да знате Ваш обрнуто показивачи. 1238 01:02:09,750 --> 01:02:12,700 Што се тиче приликом имплементације стварни хасх функција 1239 01:02:12,700 --> 01:02:15,070 и долази са сличним математика за то, 1240 01:02:15,070 --> 01:02:17,570 ви можете истражити шта год Методе мрежи хоћете. 1241 01:02:17,570 --> 01:02:17,996 Да? 1242 01:02:17,996 --> 01:02:19,700 >> ПУБЛИКА: Можемо ли навести помоћу [неразумљиво]? 1243 01:02:19,700 --> 01:02:20,120 >> Анди Пенг: Да. 1244 01:02:20,120 --> 01:02:22,328 Можете само, у вашем коментару, можете навести као, ох, 1245 01:02:22,328 --> 01:02:26,127 преузет из бла, бла, бла, хасх функција. 1246 01:02:26,127 --> 01:02:27,210 Свако има било каквих питања? 1247 01:02:27,210 --> 01:02:29,694 Ми смо заправо Бреезед через раздел данас. 1248 01:02:29,694 --> 01:02:31,610 Ја ћу бити овде да одговорити на питања као добро. 1249 01:02:31,610 --> 01:02:36,570 >> Такође, као што сам рекао, канцеларија сати вечерас и сутра. 1250 01:02:36,570 --> 01:02:40,307 Спец ове недеље је заправо супер лако и супер кратак да прочита. 1251 01:02:40,307 --> 01:02:43,140 Предложио бих узимање поглед, само прочитајте целини њега. 1252 01:02:43,140 --> 01:02:45,730 >> И Замила заправо вас води кроз сваки од функција 1253 01:02:45,730 --> 01:02:49,796 треба да спроведе, па је веома, веома јасно како се то све. 1254 01:02:49,796 --> 01:02:51,920 Само да се уверим да си праћење показивача. 1255 01:02:51,920 --> 01:02:53,650 Ово је веома изазовна псет. 1256 01:02:53,650 --> 01:02:56,744 >> То не оспоравам, јер као, Ох, концепти су много више 1257 01:02:56,744 --> 01:02:59,160 тешко, или морате да научите толико нова синтакса начин 1258 01:02:59,160 --> 01:03:00,650 да сте у последње псет. 1259 01:03:00,650 --> 01:03:03,320 Ово је тешко, јер псет има толико показивачи, 1260 01:03:03,320 --> 01:03:06,980 и онда је врло, врло лако једном имате грешку у коду неће моћи 1261 01:03:06,980 --> 01:03:08,315 да пронађу где је Буба је. 1262 01:03:08,315 --> 01:03:13,200 >> И тако потпуни вера у вама момци бити у стању да победи нашег [неразумљиво] 1263 01:03:13,200 --> 01:03:13,700 изговора. 1264 01:03:13,700 --> 01:03:16,640 Ја сам заправо немам никакав писмени мине још, али сам хтео да напишем моје. 1265 01:03:16,640 --> 01:03:19,070 Дакле, док пишеш твоје, ја ћу писати моје. 1266 01:03:19,070 --> 01:03:21,070 Ја ћу покушати да направи Рудник брже од твог. 1267 01:03:21,070 --> 01:03:23,940 Видећемо ко има најбржи један. 1268 01:03:23,940 --> 01:03:27,340 >> И да, ја ћу видети све момци овде у уторак. 1269 01:03:27,340 --> 01:03:29,510 Ја ћу покренути неку врсту попут псет радионице. 1270 01:03:29,510 --> 01:03:32,640 Све ово секција недеља су псет радионице, 1271 01:03:32,640 --> 01:03:36,690 па ви имате пуно прилика за помоћ, радно време као и увек, 1272 01:03:36,690 --> 01:03:41,330 и заиста се радујем читање сви код твојих момака. 1273 01:03:41,330 --> 01:03:44,160 Имам квизове овде ако вама момци желе да дођем по њих. 1274 01:03:44,160 --> 01:03:45,880 То је све. 1275 01:03:45,880 --> 01:03:48,180