1 00:00:00,000 --> 00:00:08,250 2 00:00:08,250 --> 00:00:12,680 >> ЈАСОН Хирсцххорн: Велцоме свима на Одсеку Севен. 3 00:00:12,680 --> 00:00:15,040 Ми смо у недељу седам курса. 4 00:00:15,040 --> 00:00:18,440 И овај предстојећи четвртак Ноћ вештица је тако сам ја 5 00:00:18,440 --> 00:00:21,420 обучена као бундева. 6 00:00:21,420 --> 00:00:23,460 Нисам могао да се савије преко и ставити на моје ципеле, тако да је то разлог зашто сам 7 00:00:23,460 --> 00:00:25,660 само носи чарапе. 8 00:00:25,660 --> 00:00:29,220 Ја такође не носи ништа испод ово, па не могу да је скинем, ако је то 9 00:00:29,220 --> 00:00:29,950 ометајуће за вас. 10 00:00:29,950 --> 00:00:31,860 Извињавам се унапред због тога. 11 00:00:31,860 --> 00:00:33,170 Не морате да се замислите шта се дешава. 12 00:00:33,170 --> 00:00:34,240 Ја носим боксерице. 13 00:00:34,240 --> 00:00:36,170 Тако да је све добро. 14 00:00:36,170 --> 00:00:41,120 >> Имам дужу причу о томе зашто сам обучен као бундеву, али ја ћу да 15 00:00:41,120 --> 00:00:45,110 сачувате за касније у овој секцији јер ја желим да почнете. 16 00:00:45,110 --> 00:00:47,720 Имамо много узбудљивих ствари да иде преко ове недеље. 17 00:00:47,720 --> 00:00:51,810 Већина њих се директно односе на ово Проблем скуп недеље, правописне грешке. 18 00:00:51,810 --> 00:00:54,680 Идемо да се иде преко повезан листе и хасх табеле 19 00:00:54,680 --> 00:00:57,160 за целу одељак. 20 00:00:57,160 --> 00:01:02,490 Ставио сам ову листу горе сваке недеље, списак средства за вас да вам помогне са 21 00:01:02,490 --> 00:01:04,120 материјал на овом курсу. 22 00:01:04,120 --> 00:01:07,600 Ако на губитку или ако тражите нешто више информација, погледајте један од 23 00:01:07,600 --> 00:01:09,930 ова средства. 24 00:01:09,930 --> 00:01:14,530 >> Опет, псет6 је погрешно написане речи, овонедељна псет. 25 00:01:14,530 --> 00:01:17,690 А такође вас подстиче, а ја охрабрити вас, да користите неки други 26 00:01:17,690 --> 00:01:20,320 средства специјално за ову псет. 27 00:01:20,320 --> 00:01:23,390 Посебно, три Имам наведена на екрану - 28 00:01:23,390 --> 00:01:27,160 гдб, који смо били упознати са и користио за неко време сада, је 29 00:01:27,160 --> 00:01:29,270 ће бити веома корисно ове недеље. 30 00:01:29,270 --> 00:01:30,190 Тако сам ставио да се овде. 31 00:01:30,190 --> 00:01:32,910 Али кад год радите са Ц, Ви треба увек да се користи за гдб 32 00:01:32,910 --> 00:01:34,430 отклањања грешака у програмима. 33 00:01:34,430 --> 00:01:36,660 Ове недеље такође валгринд. 34 00:01:36,660 --> 00:01:38,535 Да ли ико зна шта ради валгринд? 35 00:01:38,535 --> 00:01:42,184 36 00:01:42,184 --> 00:01:43,890 >> ПУБЛИКА: Проверава за меморијске цурења? 37 00:01:43,890 --> 00:01:45,950 >> ЈАСОН Хирсцххорн: Валгринд чекови за меморијске цурења. 38 00:01:45,950 --> 00:01:49,970 Дакле, ако сте маллоц нешто у вашем Програм, питате за меморију. 39 00:01:49,970 --> 00:01:52,920 На крају свог програма, имате да пишу слободно о свему што сте 40 00:01:52,920 --> 00:01:54,800 маллоцед да дају памћење. 41 00:01:54,800 --> 00:01:58,420 Ако не пишете бесплатно на крају и ваш програм долази до закључка, 42 00:01:58,420 --> 00:02:00,000 Све ће се аутоматски бити ослобођен. 43 00:02:00,000 --> 00:02:02,340 А за мале програме, то је није тако велика ствар. 44 00:02:02,340 --> 00:02:05,250 Али, ако пишете дуже ради програм који не отказ, 45 00:02:05,250 --> 00:02:09,180 нужно, у неколико минута или А пар секунди, онда мемори леакс 46 00:02:09,180 --> 00:02:10,710 може да постане велика ствар. 47 00:02:10,710 --> 00:02:14,940 >> Дакле, за псет6, очекивање је да имаћете нула меморије цурења са 48 00:02:14,940 --> 00:02:15,910 ваш програм. 49 00:02:15,910 --> 00:02:18,690 Да бисте проверили за меморијске цури, покрените валгринд и то ће вам дати неке лепо 50 00:02:18,690 --> 00:02:21,190 излаз омогућавајући вам да знате да ли или не све је било бесплатно. 51 00:02:21,190 --> 00:02:23,940 Ми ћемо вежбати са њим касније данас, надам се. 52 00:02:23,940 --> 00:02:25,790 >> Коначно, команда диф. 53 00:02:25,790 --> 00:02:28,900 Некада си нешто слично томе у псет5 са Пеек алатом. 54 00:02:28,900 --> 00:02:30,780 Дозвољено вам да погледате унутра. 55 00:02:30,780 --> 00:02:33,400 Такође се користи дифф, такође, по Проблем сет спец. 56 00:02:33,400 --> 00:02:35,950 Али ви у дозвољено да упоредите два фајла. 57 00:02:35,950 --> 00:02:39,180 Ти би могао упоредити битмап фајл и инфо заглавља раствора особља и 58 00:02:39,180 --> 00:02:42,200 ваше решење у псет5 ако сте изабрали да га користите. 59 00:02:42,200 --> 00:02:44,030 Разлика ће вам омогућити да урадите то, као добро. 60 00:02:44,030 --> 00:02:48,620 Можете да упоредите тачан одговор за Проблем ове недеље постављен на вашем одговору 61 00:02:48,620 --> 00:02:52,210 и види да ли га виде линије или где су грешке. 62 00:02:52,210 --> 00:02:55,870 >> Дакле, то су три добре алатке да требало би да користите за ову недељу, и 63 00:02:55,870 --> 00:02:58,130 дефинитивно проверите свој програм са ова три алата 64 00:02:58,130 --> 00:03:00,520 пре него што га унутра 65 00:03:00,520 --> 00:03:04,650 Опет, као што сам поменуо сваке недеље, ако имате било какву повратну информацију за мене - како 66 00:03:04,650 --> 00:03:06,470 позитиван и конструктиван - 67 00:03:06,470 --> 00:03:09,930 слободно да главу на сајту на дну овог слајда 68 00:03:09,930 --> 00:03:11,270 а улаз је тамо. 69 00:03:11,270 --> 00:03:13,440 Ценим сваки и све повратне информације. 70 00:03:13,440 --> 00:03:17,360 А ако ми дате конкретне ствари које Ја могу да урадим да се побољша или да сам 71 00:03:17,360 --> 00:03:21,350 добро да би ме волео да наставити, ја претпостављам да да срце и 72 00:03:21,350 --> 00:03:24,040 стварно труде да слушају на повратним информацијама. 73 00:03:24,040 --> 00:03:27,720 Ја не могу да обећам да ћу да урадим све, мада, као што је ношење 74 00:03:27,720 --> 00:03:30,700 пумпкин костим сваке недеље. 75 00:03:30,700 --> 00:03:34,020 >> Тако ћемо провести највећи део секција, као што сам поменуо, говори о 76 00:03:34,020 --> 00:03:37,240 повезане листе и хасх табеле, који ће бити директно примењив на 77 00:03:37,240 --> 00:03:38,780 Проблем сет ове недеље. 78 00:03:38,780 --> 00:03:42,580 Повезане листе ћемо ићи преко релативно брзо јер смо провели фер мало 79 00:03:42,580 --> 00:03:44,930 времена иде преко њега у секцији. 80 00:03:44,930 --> 00:03:48,680 И тако ћемо добити право на кодирање проблеме повезане листе. 81 00:03:48,680 --> 00:03:52,740 И онда на крају ћемо говорити о хасх табеле и како се примењују на ово 82 00:03:52,740 --> 00:03:55,280 Проблем недеље сет. 83 00:03:55,280 --> 00:03:57,560 >> Видели сте овај код раније. 84 00:03:57,560 --> 00:04:02,730 Ово је струцт, и то је дефинисање нешто ново назива чвор. 85 00:04:02,730 --> 00:04:10,660 И унутар чвор постоји цео број овде и тамо је показивач на 86 00:04:10,660 --> 00:04:11,830 други чвор. 87 00:04:11,830 --> 00:04:12,790 Видели смо то раније. 88 00:04:12,790 --> 00:04:14,830 Ово је долази за неколико седмица. 89 00:04:14,830 --> 00:04:18,680 Он комбинује показиваче, који смо били рад са, и Структуре, које омогућавају 90 00:04:18,680 --> 00:04:22,079 нас да комбинују два различита ствари у један тип података. 91 00:04:22,079 --> 00:04:24,830 92 00:04:24,830 --> 00:04:26,490 >> Постоји много дешава на екрану. 93 00:04:26,490 --> 00:04:30,220 Али све то треба да буде релативно упознати са вама. 94 00:04:30,220 --> 00:04:33,810 На првој линији, прогласи нови чвор. 95 00:04:33,810 --> 00:04:41,650 И онда у том новом чвору, ја поставити цео број у тој чвор један. 96 00:04:41,650 --> 00:04:44,950 Ми видимо у следећем реду радим иф команда, али ја сам недоступна 97 00:04:44,950 --> 00:04:48,080 команда иф јер стварно Важан део је ова линија овде - 98 00:04:48,080 --> 00:04:50,020 нев_ноде.н. 99 00:04:50,020 --> 00:04:51,270 Шта значи тачка? 100 00:04:51,270 --> 00:04:53,810 101 00:04:53,810 --> 00:04:57,240 >> ПУБЛИКА: Иди на чвор и проценити н вредност за то. 102 00:04:57,240 --> 00:04:58,370 >> ЈАСОН Хирсцххорн: То је потпуно тачно. 103 00:04:58,370 --> 00:05:03,300 Дот значи приступити Тхе Н Део овог новог чвора. 104 00:05:03,300 --> 00:05:05,690 Ова линија поред шта ради? 105 00:05:05,690 --> 00:05:16,140 106 00:05:16,140 --> 00:05:17,050 Мајкл. 107 00:05:17,050 --> 00:05:21,910 >> ПУБЛИКА: То ствара још један чвор који ће указати на нови чвор. 108 00:05:21,910 --> 00:05:24,870 >> ЈАСОН Хирсцххорн: Дакле, то није случај креирате нови чвор. 109 00:05:24,870 --> 00:05:26,120 То ствара шта? 110 00:05:26,120 --> 00:05:28,300 111 00:05:28,300 --> 00:05:29,300 >> ПУБЛИКА: показивач. 112 00:05:29,300 --> 00:05:33,460 >> ЈАСОН Хирсцххорн: показивач на чвор, као што је назначено у овом чвор * овде. 113 00:05:33,460 --> 00:05:34,800 Тако се ствара показивач на чвор. 114 00:05:34,800 --> 00:05:37,490 А који је то чвор показује да, Мајкл? 115 00:05:37,490 --> 00:05:38,440 >> ПУБЛИКА: Нови чвор? 116 00:05:38,440 --> 00:05:39,240 >> ЈАСОН Хирсцххорн: Нови чвор. 117 00:05:39,240 --> 00:05:43,020 И то је било зато што показује ми смо дато му адресу новог чвора. 118 00:05:43,020 --> 00:05:45,820 И сада у овој линији видимо два различита начина 119 00:05:45,820 --> 00:05:46,910 изражавајући исту ствар. 120 00:05:46,910 --> 00:05:49,650 И желео сам да истакнем како ови Две ствари су исте. 121 00:05:49,650 --> 00:05:54,740 У првом реду, ми дереференце показивач. 122 00:05:54,740 --> 00:05:55,830 Дакле, идемо на чвору. 123 00:05:55,830 --> 00:05:56,830 То је оно што ово значи звезда. 124 00:05:56,830 --> 00:05:57,930 Видели смо да је раније са показивачима. 125 00:05:57,930 --> 00:05:59,280 Иди на том чвору. 126 00:05:59,280 --> 00:06:00,370 То је у загради. 127 00:06:00,370 --> 00:06:04,610 А онда приступити преко оператора дот Н елемент тог чвора. 128 00:06:04,610 --> 00:06:08,430 >> Дакле, то је узимање синтаксу смо видели овде и сада 129 00:06:08,430 --> 00:06:09,670 да га користите са показивачем. 130 00:06:09,670 --> 00:06:13,730 Наравно, она добија заузет, ако пишеш те заграде - 131 00:06:13,730 --> 00:06:14,940 да звезда и то тачка. 132 00:06:14,940 --> 00:06:16,220 Она добија мало заузет. 133 00:06:16,220 --> 00:06:18,500 Дакле, имамо неку синтаксичку шећера. 134 00:06:18,500 --> 00:06:19,920 И ова линија овде - 135 00:06:19,920 --> 00:06:21,170 птр_ноде-> н. 136 00:06:21,170 --> 00:06:25,400 137 00:06:25,400 --> 00:06:28,000 То ради исти ствар. 138 00:06:28,000 --> 00:06:30,840 Дакле, те две линије кода су еквивалент и да ће учинити 139 00:06:30,840 --> 00:06:31,650 тачан иста ствар. 140 00:06:31,650 --> 00:06:34,210 >> Али сам хтео да укажем онима пре него идемо даље тако да разумете 141 00:06:34,210 --> 00:06:39,000 да заиста ова ствар овде је само синтаксичка шећер за дереференцинг 142 00:06:39,000 --> 00:06:44,200 показивач, а затим ће се Н део тог струцт. 143 00:06:44,200 --> 00:06:45,525 Сва питања у вези овог слајда? 144 00:06:45,525 --> 00:06:53,020 145 00:06:53,020 --> 00:06:54,390 У реду. 146 00:06:54,390 --> 00:06:58,510 >> Тако ћемо да прођемо кроз неколико операција које можете да урадите на 147 00:06:58,510 --> 00:06:59,730 повезане листе. 148 00:06:59,730 --> 00:07:05,770 Повезана листа, опозив, је серија чворови који указују на један други. 149 00:07:05,770 --> 00:07:12,470 И ми смо генерално почети са показивачем зове глава, генерално, то указује на 150 00:07:12,470 --> 00:07:14,040 прва ствар на листи. 151 00:07:14,040 --> 00:07:18,900 Дакле, на првој линији овде, имају први наш оригинални Л. 152 00:07:18,900 --> 00:07:21,370 Тако да ствар коју могу да се сетим - ово текст овде можете мислити као 153 00:07:21,370 --> 00:07:23,560 само показивач смо складиште негде да тачке 154 00:07:23,560 --> 00:07:24,670 на првом елементу. 155 00:07:24,670 --> 00:07:27,500 И у овој повезаној листи имамо четири чворова. 156 00:07:27,500 --> 00:07:29,530 Сваки чвор је велика кутија. 157 00:07:29,530 --> 00:07:33,430 Већа кутија унутра велики кутија је цео део. 158 00:07:33,430 --> 00:07:37,400 И онда имамо показивача део. 159 00:07:37,400 --> 00:07:39,630 >> Ове кутије су не привлаче скала јер колики је 160 00:07:39,630 --> 00:07:42,320 цео број бајтова у? 161 00:07:42,320 --> 00:07:43,290 Колика сада? 162 00:07:43,290 --> 00:07:43,710 Четири. 163 00:07:43,710 --> 00:07:45,470 А колики је показивач? 164 00:07:45,470 --> 00:07:45,940 Четири. 165 00:07:45,940 --> 00:07:48,180 Па стварно, ако смо били да се скрене ово да скала оба поља 166 00:07:48,180 --> 00:07:49,690 би исте величине. 167 00:07:49,690 --> 00:07:52,870 У овом случају, желимо да убаците нешто у повезаној листи. 168 00:07:52,870 --> 00:07:57,190 Дакле, можете видети овде смо убацивањем Ми пролазе кроз пет 169 00:07:57,190 --> 00:08:01,310 повезане листе, наћи где пет иде, а затим га убаците. 170 00:08:01,310 --> 00:08:03,560 >> Хајде да разбијемо то и иди мало спорије. 171 00:08:03,560 --> 00:08:05,510 Ја ћу указати на табли. 172 00:08:05,510 --> 00:08:09,930 Дакле, ми имамо пет чвор који смо створили у маллоцс. 173 00:08:09,930 --> 00:08:11,190 Зашто се сви смејали? 174 00:08:11,190 --> 00:08:12,130 Само се шалим. 175 00:08:12,130 --> 00:08:13,310 У реду. 176 00:08:13,310 --> 00:08:14,820 Дакле, ми смо маллоцед пет. 177 00:08:14,820 --> 00:08:16,310 Ми смо створили ову чвор негде другде. 178 00:08:16,310 --> 00:08:17,740 Морамо то спреман да иде. 179 00:08:17,740 --> 00:08:20,130 Почињемо на предњој наша листа са два. 180 00:08:20,130 --> 00:08:22,380 И ми желимо да убаците у сортирани начин. 181 00:08:22,380 --> 00:08:27,550 >> Дакле, ако видимо два и желимо да се стави у пет, шта да радимо када видимо 182 00:08:27,550 --> 00:08:28,800 нешто мање од нас? 183 00:08:28,800 --> 00:08:31,850 184 00:08:31,850 --> 00:08:33,520 Шта? 185 00:08:33,520 --> 00:08:36,750 Желимо да убаците пет у ово повезана листа, држећи је сортирана. 186 00:08:36,750 --> 00:08:37,520 Ми видимо број два. 187 00:08:37,520 --> 00:08:38,769 Па шта да радимо? 188 00:08:38,769 --> 00:08:39,179 Маркус? 189 00:08:39,179 --> 00:08:40,679 >> ПУБЛИКА: Цалл показивача на следећи чвор. 190 00:08:40,679 --> 00:08:42,530 >> ЈАСОН Хирсцххорн: А зашто идемо на следећу? 191 00:08:42,530 --> 00:08:45,970 >> ПУБЛИКА: Зато што је то следећи чвор у листи. 192 00:08:45,970 --> 00:08:48,310 А ми само знамо да је друго место. 193 00:08:48,310 --> 00:08:50,410 >> ЈАСОН Хирсцххорн: И пет већа од два, посебно. 194 00:08:50,410 --> 00:08:51,600 Зато што желимо да га задржи сортиран. 195 00:08:51,600 --> 00:08:52,730 Дакле, пет је већи од два. 196 00:08:52,730 --> 00:08:54,460 Тако смо прешли на следећу. 197 00:08:54,460 --> 00:08:55,240 И сада долазимо до четири. 198 00:08:55,240 --> 00:08:56,490 А шта се дешава када стигнемо четири? 199 00:08:56,490 --> 00:08:58,920 200 00:08:58,920 --> 00:09:00,310 >> Пет је већи од четири. 201 00:09:00,310 --> 00:09:01,460 Тако ћемо да наставимо. 202 00:09:01,460 --> 00:09:03,110 И сада смо на шест. 203 00:09:03,110 --> 00:09:04,360 И шта видимо у шест? 204 00:09:04,360 --> 00:09:08,672 205 00:09:08,672 --> 00:09:09,608 Да, Карлос? 206 00:09:09,608 --> 00:09:10,544 >> ПУБЛИКА: Шест је већи од пет. 207 00:09:10,544 --> 00:09:11,480 >> ЈАСОН Хирсцххорн: Шест је већи од пет. 208 00:09:11,480 --> 00:09:13,660 Дакле, то је тамо где желимо да убаците пет. 209 00:09:13,660 --> 00:09:17,320 Међутим, имајте на уму да, ако се само један показивач овде - 210 00:09:17,320 --> 00:09:19,840 ово је наша екстра показивач који је попречно кроз листу. 211 00:09:19,840 --> 00:09:21,860 И ми указује на шест. 212 00:09:21,860 --> 00:09:25,010 Изгубили смо траг од чега долази пре шест. 213 00:09:25,010 --> 00:09:29,130 Дакле, ако желимо да убаците нешто у ова листа држећи га сортирају, ми 214 00:09:29,130 --> 00:09:31,630 вероватно је потребно како многе савете? 215 00:09:31,630 --> 00:09:32,280 >> ПУБЛИКА: Два. 216 00:09:32,280 --> 00:09:32,920 >> ЈАСОН ХИРСЦХОРН: Два. 217 00:09:32,920 --> 00:09:35,720 Један пратити струје један и један да пратите 218 00:09:35,720 --> 00:09:37,050 претходни. 219 00:09:37,050 --> 00:09:38,450 Ово је само појединачно повезана листа. 220 00:09:38,450 --> 00:09:39,670 То само иде у једном смеру. 221 00:09:39,670 --> 00:09:43,220 Ако смо имали двоструко повезану листу, где чинило се да је ствар 222 00:09:43,220 --> 00:09:46,240 након тога и ствари пред њим, затим не би требало да се уради. 223 00:09:46,240 --> 00:09:49,350 Али у овом случају не желимо да изгубимо колосек што је пре нас у случају 224 00:09:49,350 --> 00:09:53,350 морамо да убаците пет негде у средини. 225 00:09:53,350 --> 00:09:55,610 Реци ми смо убацивањем девет. 226 00:09:55,610 --> 00:09:57,260 Шта би се десило када имамо осам? 227 00:09:57,260 --> 00:10:01,860 228 00:10:01,860 --> 00:10:04,880 >> ПУБЛИКА: Морао би добити ту нулл тачку. 229 00:10:04,880 --> 00:10:07,820 Уместо нулл тачку коју би имао да додате елемент и онда имају 230 00:10:07,820 --> 00:10:09,216 она указује на девет. 231 00:10:09,216 --> 00:10:09,700 >> ЈАСОН ХИРСЦХОРН: Управо тако. 232 00:10:09,700 --> 00:10:10,600 Тако смо добили осам. 233 00:10:10,600 --> 00:10:13,140 Ми до краја листе, јер ово указује на нулл. 234 00:10:13,140 --> 00:10:16,330 И сада, уместо да се укаже на нулл морамо то истаћи да наш нови чвор. 235 00:10:16,330 --> 00:10:19,870 И ми смо поставили показивач у наш нови чвор на нулл. 236 00:10:19,870 --> 00:10:21,445 Да ли неко има било каква питања о убацивању? 237 00:10:21,445 --> 00:10:25,620 238 00:10:25,620 --> 00:10:28,100 Шта ако ја не брига за ажурирању листе сортиране? 239 00:10:28,100 --> 00:10:31,701 240 00:10:31,701 --> 00:10:34,350 >> ПУБЛИКА: Стицк га у почетак или крај. 241 00:10:34,350 --> 00:10:35,510 >> ЈАСОН ХИРСЦХОРН: да штап у почетак или крај. 242 00:10:35,510 --> 00:10:37,276 Која треба да радимо? 243 00:10:37,276 --> 00:10:38,770 Боби? 244 00:10:38,770 --> 00:10:41,020 Зашто крај? 245 00:10:41,020 --> 00:10:43,250 >> ПУБЛИКА: Пошто почетак је већ испуњен. 246 00:10:43,250 --> 00:10:43,575 >> ЈАСОН ХИРСЦХОРН: У реду. 247 00:10:43,575 --> 00:10:44,360 Почетак је већ попуњена. 248 00:10:44,360 --> 00:10:46,090 Ко жели да се расправљају против Бобија. 249 00:10:46,090 --> 00:10:47,290 Маркус. 250 00:10:47,290 --> 00:10:48,910 >> ПУБЛИКА: Па вероватно желите да држимо га на почетку, јер 251 00:10:48,910 --> 00:10:50,140 иначе ако га ставите у крај ти ћеш морати да 252 00:10:50,140 --> 00:10:51,835 пролазе целу листу. 253 00:10:51,835 --> 00:10:52,990 >> ЈАСОН ХИРСЦХОРН: Управо тако. 254 00:10:52,990 --> 00:10:57,970 Дакле, ако размишљамо о рунтиме, рунтиме убацивања на крају 255 00:10:57,970 --> 00:11:00,110 би н, величина овога. 256 00:11:00,110 --> 00:11:03,080 Шта је Биг О рунтиме од убацивања на почетку? 257 00:11:03,080 --> 00:11:04,170 Константна време. 258 00:11:04,170 --> 00:11:07,075 Дакле, ако вам није стало до чувања нешто поредани, много боље да само 259 00:11:07,075 --> 00:11:08,420 убаците на почетку ове листе. 260 00:11:08,420 --> 00:11:10,320 А то може да се уради у сталном времену. 261 00:11:10,320 --> 00:11:13,900 262 00:11:13,900 --> 00:11:14,690 >> У реду. 263 00:11:14,690 --> 00:11:18,870 Следећа операција је наћи, који други - смо формулисано ово као претрази. 264 00:11:18,870 --> 00:11:22,470 Али, ми ћемо да погледамо кроз повезана листа за неког објекта. 265 00:11:22,470 --> 00:11:26,000 Ви сте видели код за тражи пре у предавању. 266 00:11:26,000 --> 00:11:29,490 Али некако смо управо то урадио са убаците, или барем уметања 267 00:11:29,490 --> 00:11:30,580 нешто поредани. 268 00:11:30,580 --> 00:11:36,350 Можете погледати кроз, иде чвор по чвор, док не пронађете број да сте 269 00:11:36,350 --> 00:11:37,780 тражите. 270 00:11:37,780 --> 00:11:39,670 Шта се дешава ако стигнете крај листе? 271 00:11:39,670 --> 00:11:43,020 Рецимо ја сам у потрази за девет и ја до краја листе. 272 00:11:43,020 --> 00:11:44,270 Шта да радимо? 273 00:11:44,270 --> 00:11:47,147 274 00:11:47,147 --> 00:11:48,110 >> ПУБЛИКА: Повратак лажан? 275 00:11:48,110 --> 00:11:48,690 >> ЈАСОН ХИРСЦХОРН: Повратак лажна. 276 00:11:48,690 --> 00:11:49,960 Нисмо га пронашли. 277 00:11:49,960 --> 00:11:52,010 Ако до краја листе и нисте пронашли број који сте 278 00:11:52,010 --> 00:11:54,170 тражи, она није тамо. 279 00:11:54,170 --> 00:11:55,420 Сва питања у вези наћи? 280 00:11:55,420 --> 00:11:59,530 281 00:11:59,530 --> 00:12:04,615 Ако је ово био сортиран списак, шта би бити различит за наш претраживање? 282 00:12:04,615 --> 00:12:07,370 283 00:12:07,370 --> 00:12:08,103 Да. 284 00:12:08,103 --> 00:12:10,600 >> ПУБЛИКА: Било би пронашли прву вредност то је већи од оног 285 00:12:10,600 --> 00:12:12,390 тражите и затим ретурн фалсе. 286 00:12:12,390 --> 00:12:13,190 >> ЈАСОН ХИРСЦХОРН: Управо тако. 287 00:12:13,190 --> 00:12:17,310 Дакле, ако је сортирана листа, ако дођемо до нешто што је веће од онога 288 00:12:17,310 --> 00:12:20,180 тражимо, ми не треба да се настави до краја листе. 289 00:12:20,180 --> 00:12:24,060 Можемо у том тренутку врати труе јер нећемо да га пронађе. 290 00:12:24,060 --> 00:12:27,340 Питање је сада, ми смо разговарали о задржавање повезане листе сортирају, 291 00:12:27,340 --> 00:12:28,180 држећи их мусиц. 292 00:12:28,180 --> 00:12:30,050 То ће бити нешто што си Вероватно ће морати да размишљају о 293 00:12:30,050 --> 00:12:34,240 када кодирање проблема сет пет ако изабрати хеш табели са одвојеним 294 00:12:34,240 --> 00:12:36,360 цхаининг приступ, који ћемо говорити о касније. 295 00:12:36,360 --> 00:12:41,400 >> Али вреди да задржи листу сортиран и затим бити у могућности да можда имају 296 00:12:41,400 --> 00:12:42,310 брзе претраге? 297 00:12:42,310 --> 00:12:47,220 Или је боље да се брзо уметање нешто у сталном току рада, али онда 298 00:12:47,220 --> 00:12:48,430 имају дуже тражи? 299 00:12:48,430 --> 00:12:52,250 То је компромис тамо да вам добити да одлучи шта је прикладније 300 00:12:52,250 --> 00:12:53,590 за ваш специфичан проблем. 301 00:12:53,590 --> 00:12:56,680 И не постоји нужно један апсолутно исправан одговор. 302 00:12:56,680 --> 00:12:59,520 Али то свакако одлука добијате да, и вероватно добро да се брани 303 00:12:59,520 --> 00:13:05,270 да у, рецимо, коментар или два зашто сте изабрали један преко другог. 304 00:13:05,270 --> 00:13:06,490 >> Најзад, брисање. 305 00:13:06,490 --> 00:13:08,100 Видели смо брисања. 306 00:13:08,100 --> 00:13:09,180 То је слично потрази. 307 00:13:09,180 --> 00:13:11,020 Ми тражимо за елемент. 308 00:13:11,020 --> 00:13:12,390 Реци ми покушавамо да избришете шест. 309 00:13:12,390 --> 00:13:14,450 Тако смо пронашли шест овде. 310 00:13:14,450 --> 00:13:18,860 Оно што морамо да будемо сигурни да урадите је да све указује на 311 00:13:18,860 --> 00:13:21,220 шест - као што видимо у кораку два овде доле - 312 00:13:21,220 --> 00:13:26,500 год је указујући на шест до потребе прескочите шест сада и да се промени у 313 00:13:26,500 --> 00:13:28,160 год шест указује на. 314 00:13:28,160 --> 00:13:31,410 Ми не желимо да се икада сироче остатак наша листа заборављајући да подесите да 315 00:13:31,410 --> 00:13:32,960 претходна показивач. 316 00:13:32,960 --> 00:13:35,960 И онда понекад, зависно на програму, они само цу 317 00:13:35,960 --> 00:13:37,380 избришете овај чвор у потпуности. 318 00:13:37,380 --> 00:13:40,135 Понекад ћете желети да се вратите вредност која је у овом чвору. 319 00:13:40,135 --> 00:13:42,490 Дакле, то је начин брисања дела. 320 00:13:42,490 --> 00:13:44,610 Има ли питања на делете? 321 00:13:44,610 --> 00:13:51,280 322 00:13:51,280 --> 00:13:53,850 >> ПУБЛИКА: Дакле, ако идете да избришете то, да ли би само користити бесплатно, јер 323 00:13:53,850 --> 00:13:55,655 вероватно је маллоцед? 324 00:13:55,655 --> 00:13:57,976 >> ЈАСОН ХИРСЦХОРН: Ако желите да ослободите нешто што је потпуно тачно и ви 325 00:13:57,976 --> 00:13:58,540 маллоцед га. 326 00:13:58,540 --> 00:14:00,410 Реци ми желели да се врате ову вредност. 327 00:14:00,410 --> 00:14:04,010 Могли бисмо се вратити шест и онда бесплатно овај чвор и позив бесплатно на њему. 328 00:14:04,010 --> 00:14:06,180 Или вероватно бисмо назвати бесплатно прво а затим се врати шест. 329 00:14:06,180 --> 00:14:11,210 330 00:14:11,210 --> 00:14:11,580 >> У реду. 331 00:14:11,580 --> 00:14:14,010 Дакле, хајде да пређемо на праксу кодирања. 332 00:14:14,010 --> 00:14:16,090 Идемо да код три функције. 333 00:14:16,090 --> 00:14:18,260 Први се зове инсерт_ноде. 334 00:14:18,260 --> 00:14:22,170 Дакле, имате код који сам вам е-поштом, а ако гледаш ово касније 335 00:14:22,170 --> 00:14:28,020 можете да приступите код у линкед.ц на сајту ЦС50. 336 00:14:28,020 --> 00:14:30,880 Али у линкед.ц, постоји неки скелет код који је већ 337 00:14:30,880 --> 00:14:32,280 је писано за тебе. 338 00:14:32,280 --> 00:14:34,560 А ту је и пар функције морате да напишете. 339 00:14:34,560 --> 00:14:36,380 >> Прво ћемо да писати инсерт_ноде. 340 00:14:36,380 --> 00:14:39,800 А шта ради инсерт_ноде јест умеће цео број. 341 00:14:39,800 --> 00:14:42,440 И ви дајете цео број у повезаној листи. 342 00:14:42,440 --> 00:14:45,470 И посебно, потребно је да задржи листу сортирани 343 00:14:45,470 --> 00:14:47,650 од најмањег до највећег. 344 00:14:47,650 --> 00:14:51,360 Такође, не желите да убаците било какве дупликате. 345 00:14:51,360 --> 00:14:54,600 На крају, као што можете видети инсерт_ноде враћа боол. 346 00:14:54,600 --> 00:14:57,140 Дакле, ти би требало да пусти корисник зна да ли или не инсерт је 347 00:14:57,140 --> 00:15:00,800 успешан враћањем истинито или лажно. 348 00:15:00,800 --> 00:15:02,580 На крају овог програма - 349 00:15:02,580 --> 00:15:05,750 и за ову фазу не треба да брине о ослобађању ништа. 350 00:15:05,750 --> 00:15:11,790 Дакле, све што радите је узимање цео број и то убаците у листу. 351 00:15:11,790 --> 00:15:13,890 >> То је оно што ја тражим од вас да урадите сада. 352 00:15:13,890 --> 00:15:17,620 Опет, у линкед.ц, ви који сви имају, је скелет код. 353 00:15:17,620 --> 00:15:20,980 И требало би да видите при дну функција декларација узорак. 354 00:15:20,980 --> 00:15:27,390 Међутим, пре одласка у то кодирање у Ц, ја високо вам и да одем 355 00:15:27,390 --> 00:15:29,330 кроз кораке смо били практиковање сваке недеље. 356 00:15:29,330 --> 00:15:31,100 Већ смо прошли кроз слика ово. 357 00:15:31,100 --> 00:15:33,380 Дакле, требало би да имају неке разумевање како то функционише. 358 00:15:33,380 --> 00:15:36,590 Али ја бих вам и да пишу неки Псеудокод пре роњења ин 359 00:15:36,590 --> 00:15:38,640 И ми ћемо ићи преко Псеудокод као група. 360 00:15:38,640 --> 00:15:41,470 А онда када сте написали ваш Псеудокод, а када смо написали наше 361 00:15:41,470 --> 00:15:45,850 Псеудокод као група, можете иду у кодирање је у Ц. 362 00:15:45,850 --> 00:15:49,980 >> Као а главе горе, инсерт_ноде функција је вероватно најтежи од 363 00:15:49,980 --> 00:15:53,550 три ћемо писати, јер сам додао неке додатне препреке за 364 00:15:53,550 --> 00:15:57,190 Ваша програмирање, посебно да Ви не идете да убаците било који 365 00:15:57,190 --> 00:15:59,880 дупликати и да листа треба да остане сортирана. 366 00:15:59,880 --> 00:16:02,660 Дакле, ово је не-тривијалан програм које вам је потребно да код. 367 00:16:02,660 --> 00:16:06,470 А зашто не узмеш пет до седам минута само да се ради о 368 00:16:06,470 --> 00:16:07,640 Псеудокод и код. 369 00:16:07,640 --> 00:16:09,460 И онда ћемо почети иде као група. 370 00:16:09,460 --> 00:16:11,680 Опет, ако имате било каквих питања само подигне руку и ја ћу доћи око. 371 00:16:11,680 --> 00:16:15,258 372 00:16:15,258 --> 00:16:16,508 . 373 00:16:16,508 --> 00:18:28,370 374 00:18:28,370 --> 00:18:30,120 >> Ми такође генерално уради ово - 375 00:18:30,120 --> 00:18:32,070 или ја не експлицитно вам кажем могу да раде са људима. 376 00:18:32,070 --> 00:18:36,500 Али, очигледно, ја вам и високо, ако имате питања, да питам 377 00:18:36,500 --> 00:18:39,840 комшија седи поред тебе или чак раде са неким 378 00:18:39,840 --> 00:18:40,510 иначе, ако желите да. 379 00:18:40,510 --> 00:18:42,600 То не мора да буде индивидуална ћути активност. 380 00:18:42,600 --> 00:20:11,770 381 00:20:11,770 --> 00:20:16,330 >> Почнимо са писањем неке Псеудокод на табли. 382 00:20:16,330 --> 00:20:19,395 Ко може да ми да прву линију Псеудокод за овај програм? 383 00:20:19,395 --> 00:20:22,240 384 00:20:22,240 --> 00:20:23,640 За ову функцију, а - инсерт_ноде. 385 00:20:23,640 --> 00:20:29,960 386 00:20:29,960 --> 00:20:31,830 Алден? 387 00:20:31,830 --> 00:20:36,560 >> ПУБЛИКА: Дакле, прва ствар коју сам урадио је креирате нови показивач на чвор и ја 388 00:20:36,560 --> 00:20:41,320 инитиализед то указује на исти Оно што је листа указује на. 389 00:20:41,320 --> 00:20:41,550 >> ЈАСОН ХИРСЦХОРН: У реду. 390 00:20:41,550 --> 00:20:45,190 Дакле, правите нову показивач на листи, не на чвору. 391 00:20:45,190 --> 00:20:45,420 >> ПУБЛИКА: Тачно. 392 00:20:45,420 --> 00:20:46,150 Да. 393 00:20:46,150 --> 00:20:46,540 >> ЈАСОН ХИРСЦХОРН: У реду. 394 00:20:46,540 --> 00:20:48,221 И онда шта желимо да урадимо? 395 00:20:48,221 --> 00:20:49,163 Шта је после тога? 396 00:20:49,163 --> 00:20:50,105 Шта је чвор? 397 00:20:50,105 --> 00:20:51,050 Ми немамо чвор. 398 00:20:51,050 --> 00:20:52,300 Ми само имамо вредност. 399 00:20:52,300 --> 00:20:55,918 400 00:20:55,918 --> 00:20:58,890 Ако желимо да убаците чвор, шта радимо Потребно је да прво урадите пре него што чак може 401 00:20:58,890 --> 00:20:59,980 мислите о га убаците? 402 00:20:59,980 --> 00:21:00,820 >> ПУБЛИКА: Ох, извините. 403 00:21:00,820 --> 00:21:02,160 морамо да маллоц простор за чвор. 404 00:21:02,160 --> 00:21:02,455 >> ЈАСОН ХИРСЦХОРН: Одлично. 405 00:21:02,455 --> 00:21:03,210 Хајде да урадимо - 406 00:21:03,210 --> 00:21:04,628 У реду. 407 00:21:04,628 --> 00:21:06,065 Не могу да постигну толико високо. 408 00:21:06,065 --> 00:21:08,939 409 00:21:08,939 --> 00:21:09,897 У реду. 410 00:21:09,897 --> 00:21:13,236 Идемо да иде доле, а затим ми користимо две колоне. 411 00:21:13,236 --> 00:21:13,732 Ја не могу да идем да - 412 00:21:13,732 --> 00:21:14,982 У реду. 413 00:21:14,982 --> 00:21:23,660 414 00:21:23,660 --> 00:21:25,130 Креирајте нови чвор. 415 00:21:25,130 --> 00:21:29,380 Можете да креирате други показивач на листу или можете једноставно да користите листу као што постоји. 416 00:21:29,380 --> 00:21:30,720 Ти стварно не треба да урадите то. 417 00:21:30,720 --> 00:21:31,750 >> Зато смо креирали нову чвор. 418 00:21:31,750 --> 00:21:32,010 Сјајно. 419 00:21:32,010 --> 00:21:32,840 То је оно што ми прво урадити. 420 00:21:32,840 --> 00:21:34,870 Шта је следеће? 421 00:21:34,870 --> 00:21:35,080 >> ПУБЛИКА: Чекајте. 422 00:21:35,080 --> 00:21:38,330 Да ли треба да креирате нову чвор сада или треба да чекамо да се уверите да 423 00:21:38,330 --> 00:21:42,260 да нема дупликати чвора на листи пре него што га створити? 424 00:21:42,260 --> 00:21:43,100 >> ЈАСОН ХИРСЦХОРН: Добро питање. 425 00:21:43,100 --> 00:21:47,770 Хајде да задржите то за касније, јер већину времена ми ћемо бити стварање 426 00:21:47,770 --> 00:21:48,220 нови чвор. 427 00:21:48,220 --> 00:21:49,110 Тако ћемо задржати тај овде. 428 00:21:49,110 --> 00:21:51,006 Али то је добро питање. 429 00:21:51,006 --> 00:21:53,250 Ако га створити и ми нађемо дупликат, шта треба 430 00:21:53,250 --> 00:21:54,490 радимо пре повратка? 431 00:21:54,490 --> 00:21:55,190 >> ПУБЛИКА: Ослободи га. 432 00:21:55,190 --> 00:21:55,470 >> ЈАСОН ХИРСЦХОРН: Да. 433 00:21:55,470 --> 00:21:56,500 Вероватно га ослободи. 434 00:21:56,500 --> 00:21:56,760 У реду. 435 00:21:56,760 --> 00:21:59,850 Шта да радимо након што креирате нови чвор? 436 00:21:59,850 --> 00:22:02,260 Ени? 437 00:22:02,260 --> 00:22:04,780 >> ПУБЛИКА: Ми смо ставили број у чвор? 438 00:22:04,780 --> 00:22:05,140 >> ЈАСОН ХИРСЦХОРН: Управо тако. 439 00:22:05,140 --> 00:22:07,190 Ставили смо број - ми маллоц простор. 440 00:22:07,190 --> 00:22:08,160 Ја ћу да оставим да сви као једна линија. 441 00:22:08,160 --> 00:22:08,720 Али у праву си. 442 00:22:08,720 --> 00:22:10,305 Маллоц смо простор, а затим ставимо број унутра 443 00:22:10,305 --> 00:22:12,585 Ми чак да подесите показивач део тога на нулл. 444 00:22:12,585 --> 00:22:13,720 То је потпуно тачно. 445 00:22:13,720 --> 00:22:17,400 И онда шта после тога? 446 00:22:17,400 --> 00:22:18,490 Ми нацртао ову слику на табли. 447 00:22:18,490 --> 00:22:21,190 Па шта да радимо? 448 00:22:21,190 --> 00:22:22,680 >> ПУБЛИКА: Ми идемо кроз листу. 449 00:22:22,680 --> 00:22:23,930 >> ЈАСОН ХИРСЦХОРН: Идите кроз листу. 450 00:22:23,930 --> 00:22:30,620 451 00:22:30,620 --> 00:22:31,100 У реду. 452 00:22:31,100 --> 00:22:34,280 А шта ћемо проверити за сваки чвор. 453 00:22:34,280 --> 00:22:35,955 Курт, шта ћемо проверити за сваки чвор? 454 00:22:35,955 --> 00:22:41,640 >> ПУБЛИКА: Погледајте да ли Н вредност да је чвор је већа од вредности н 455 00:22:41,640 --> 00:22:43,070 наше чвора. 456 00:22:43,070 --> 00:22:43,340 >> ЈАСОН ХИРСЦХОРН: У реду. 457 00:22:43,340 --> 00:22:44,280 Ја ћу да урадим - 458 00:22:44,280 --> 00:22:45,855 Да, у реду. 459 00:22:45,855 --> 00:22:48,160 Дакле, то је н - 460 00:22:48,160 --> 00:22:59,040 Ја ћу рећи ако је вредност већа од овог чвора, онда шта да радимо? 461 00:22:59,040 --> 00:23:07,290 >> ПУБЛИКА: Па, онда ћемо убацити ствар у праву пре тога. 462 00:23:07,290 --> 00:23:07,970 >> ЈАСОН ХИРСЦХОРН: У реду. 463 00:23:07,970 --> 00:23:09,410 Дакле, ако је већа од ове, онда желимо да убаците. 464 00:23:09,410 --> 00:23:14,010 Али ми желимо да га убаците непосредно пре јер ми такође би требало да буде 465 00:23:14,010 --> 00:23:16,070 праћење, а затим, онога што је било раније. 466 00:23:16,070 --> 00:23:22,690 Дакле, пре него што убаците. 467 00:23:22,690 --> 00:23:25,120 Дакле, ми смо вероватно пропустили нешто раније. 468 00:23:25,120 --> 00:23:27,770 Вероватно Морамо да се чување колосек шта се дешава. 469 00:23:27,770 --> 00:23:28,460 Али, ми ћемо се вратити тамо. 470 00:23:28,460 --> 00:23:30,160 Дакле, шта је вредност мања од? 471 00:23:30,160 --> 00:23:38,030 472 00:23:38,030 --> 00:23:39,710 Курт, шта ћемо да радимо ако вредност је мања од? 473 00:23:39,710 --> 00:23:43,000 >> ПУБЛИКА: Онда само настави осим ако је то последњи. 474 00:23:43,000 --> 00:23:43,550 >> ЈАСОН ХИРСЦХОРН: Свиђа ми се. 475 00:23:43,550 --> 00:23:44,800 Дакле, идите на следећи чвор. 476 00:23:44,800 --> 00:23:47,410 477 00:23:47,410 --> 00:23:48,930 Осим ако је то последњи - 478 00:23:48,930 --> 00:23:51,100 вероватно Проверавамо за то у смислу стања. 479 00:23:51,100 --> 00:23:54,870 Али да, следећи чвор. 480 00:23:54,870 --> 00:23:58,680 И то је превише низак, па ћемо да пређемо овде. 481 00:23:58,680 --> 00:24:02,030 Али ако - 482 00:24:02,030 --> 00:24:03,280 могу сви да виде ово? 483 00:24:03,280 --> 00:24:07,230 484 00:24:07,230 --> 00:24:11,610 Ако смо једнаки шта да радимо? 485 00:24:11,610 --> 00:24:15,740 Ако вредност покушавамо да убаците једнака је вредности овог нода? 486 00:24:15,740 --> 00:24:16,320 Да? 487 00:24:16,320 --> 00:24:18,400 >> ПУБЛИКА: [ИНАУДИБЛЕ]. 488 00:24:18,400 --> 00:24:18,850 >> ЈАСОН ХИРСЦХОРН: Да. 489 00:24:18,850 --> 00:24:19,290 С обзиром на то - 490 00:24:19,290 --> 00:24:20,090 Маркус је у праву. 491 00:24:20,090 --> 00:24:21,330 Могли смо можда урадили нешто другачије. 492 00:24:21,330 --> 00:24:25,360 Али, с обзиром да смо га створили, овде ми треба ослободити и потом се врати. 493 00:24:25,360 --> 00:24:26,774 О дечко. 494 00:24:26,774 --> 00:24:30,080 Да ли је то боље? 495 00:24:30,080 --> 00:24:31,850 Како то? 496 00:24:31,850 --> 00:24:33,100 У реду. 497 00:24:33,100 --> 00:24:35,360 498 00:24:35,360 --> 00:24:37,640 Бесплатно а онда шта ми радимо врати, [ИНАУДИБЛЕ]? 499 00:24:37,640 --> 00:24:41,330 500 00:24:41,330 --> 00:24:44,110 У реду. 501 00:24:44,110 --> 00:24:45,360 Да ли ми недостаје нешто? 502 00:24:45,360 --> 00:24:53,500 503 00:24:53,500 --> 00:24:59,650 Па где смо праћење од претходног чвора? 504 00:24:59,650 --> 00:25:02,370 >> ПУБЛИКА: Мислим да бих ишао након креирате нови чвор. 505 00:25:02,370 --> 00:25:02,600 >> ЈАСОН ХИРСЦХОРН: У реду. 506 00:25:02,600 --> 00:25:03,940 Дакле, на почетку ћемо вероватно - 507 00:25:03,940 --> 00:25:07,175 Да, можемо створити показивач на ново чвор, као претходног чвора показивача и 508 00:25:07,175 --> 00:25:09,600 струја чвор показивач. 509 00:25:09,600 --> 00:25:12,640 Дакле, хајде да убаците то овде. 510 00:25:12,640 --> 00:25:15,610 511 00:25:15,610 --> 00:25:26,900 Креирање струја и претходна показивачи на чворова. 512 00:25:26,900 --> 00:25:28,955 Али када ми подесити те тројке? 513 00:25:28,955 --> 00:25:30,205 Где ћемо урадити у коду? 514 00:25:30,205 --> 00:25:33,830 515 00:25:33,830 --> 00:25:34,160 Џеф? 516 00:25:34,160 --> 00:25:35,170 >> ПУБЛИКА: - услови вредност? 517 00:25:35,170 --> 00:25:36,420 >> ЈАСОН ХИРСЦХОРН: Која један у посебно? 518 00:25:36,420 --> 00:25:39,862 519 00:25:39,862 --> 00:25:40,720 >> ПУБЛИКА: Само сам збуњена. 520 00:25:40,720 --> 00:25:44,200 Ако је вредност већа од овог чвора, не значи да желите да одете 521 00:25:44,200 --> 00:25:45,320 на следећи чвор? 522 00:25:45,320 --> 00:25:49,515 >> ЈАСОН Хирсцххорн: Дакле, ако је наша вредност већа од вредности овог чвора. 523 00:25:49,515 --> 00:25:52,130 >> ПУБЛИКА: Да, онда би хтео да ићи даље низ линију, зар не? 524 00:25:52,130 --> 00:25:52,590 >> ЈАСОН Хирсцххорн: Тачно. 525 00:25:52,590 --> 00:25:53,840 Дакле, ми не убаците овде. 526 00:25:53,840 --> 00:25:58,430 527 00:25:58,430 --> 00:26:03,240 Ако је вредност мања од овог чвора, затим идемо на следећи чвор - или онда 528 00:26:03,240 --> 00:26:03,835 убаците пре. 529 00:26:03,835 --> 00:26:05,966 >> ПУБЛИКА: Чекај, који је овај чвор и који је вредност? 530 00:26:05,966 --> 00:26:08,510 531 00:26:08,510 --> 00:26:09,280 >> ЈАСОН Хирсцххорн: Добро питање. 532 00:26:09,280 --> 00:26:13,260 Вредност по овој дефиницији функције је оно што смо дали. 533 00:26:13,260 --> 00:26:16,910 Дакле, вредност је број смо дали. 534 00:26:16,910 --> 00:26:21,120 Дакле, ако је вредност мања од ове чвор, треба ми времена да убаците. 535 00:26:21,120 --> 00:26:24,575 Ако је вредност већа од овог чвора, идемо на следећи чвор. 536 00:26:24,575 --> 00:26:26,790 И вратимо на оригинално питање, ипак, где - 537 00:26:26,790 --> 00:26:29,060 >> ПУБЛИКА: Ако је вредност већа од овог чвора. 538 00:26:29,060 --> 00:26:30,310 >> ЈАСОН Хирсцххорн: И тако шта ми овде радимо? 539 00:26:30,310 --> 00:26:36,790 540 00:26:36,790 --> 00:26:38,160 Слатко. 541 00:26:38,160 --> 00:26:38,860 То је тачно. 542 00:26:38,860 --> 00:26:41,370 Само ћу да пишем упдате показивачи. 543 00:26:41,370 --> 00:26:44,010 Али да, уз тренутне ти би га ажурирати на 544 00:26:44,010 --> 00:26:46,080 указују на следећи. 545 00:26:46,080 --> 00:26:47,330 Све остало ми недостаје? 546 00:26:47,330 --> 00:26:52,710 547 00:26:52,710 --> 00:26:54,940 Зато ћу да куцате ово код у гедит. 548 00:26:54,940 --> 00:26:58,375 И док ја радим ово, можете имати пар минута да више раде на кодирање 549 00:26:58,375 --> 00:28:19,240 ово у Ц. 550 00:28:19,240 --> 00:28:20,940 >> Дакле, имам Унесите Псеудокод. 551 00:28:20,940 --> 00:28:22,940 Брзо напомена пре него што почнемо. 552 00:28:22,940 --> 00:28:25,560 Ми можда неће бити у стању да потпуно завршити ово све 553 00:28:25,560 --> 00:28:27,300 три од ових функција. 554 00:28:27,300 --> 00:28:30,630 Постоји коректни решења за њих да ћу се пошаљи с вама 555 00:28:30,630 --> 00:28:33,730 након одељка, и то ће бити постављен на ЦС50.нет. 556 00:28:33,730 --> 00:28:35,640 Тако да не ви да иди погледате секцијама. 557 00:28:35,640 --> 00:28:40,550 Позивам вас да покушате ово на ваше Поседујемо, а затим користите праксу 558 00:28:40,550 --> 00:28:41,760 Проблеми Провери одговоре. 559 00:28:41,760 --> 00:28:47,070 Они су сви били дизајнирани да блиско и односе се придржавају шта 560 00:28:47,070 --> 00:28:48,400 морате да урадите на проблем сету. 561 00:28:48,400 --> 00:28:53,820 Па ја вам и да вежбају ово на сопствену и затим користити код за 562 00:28:53,820 --> 00:28:54,660 проверите своје одговоре. 563 00:28:54,660 --> 00:28:57,060 Зато што желим да пређем на хасх столови у неком тренутку у одељку. 564 00:28:57,060 --> 00:28:58,150 Тако да не могу добити кроз све то. 565 00:28:58,150 --> 00:28:59,960 Али, ми ћемо учинити колико можемо сада. 566 00:28:59,960 --> 00:29:00,370 >> У реду. 567 00:29:00,370 --> 00:29:01,960 Почнимо. 568 00:29:01,960 --> 00:29:04,770 Асам, како да направите нову чвор? 569 00:29:04,770 --> 00:29:06,810 >> ПУБЛИКА: Ти ну *. 570 00:29:06,810 --> 00:29:09,640 >> ЈАСОН Хирсцххорн: Тако ми има да се овде. 571 00:29:09,640 --> 00:29:10,040 Ох, извините. 572 00:29:10,040 --> 00:29:13,530 Говорио си струцт *. 573 00:29:13,530 --> 00:29:17,260 >> ПУБЛИКА: А онда [? врста?] чвор или ц чвор. 574 00:29:17,260 --> 00:29:17,780 >> ЈАСОН Хирсцххорн: У реду. 575 00:29:17,780 --> 00:29:19,740 Ја ћу да га зовем нев_ноде тако да можемо да останемо доследни. 576 00:29:19,740 --> 00:29:22,646 577 00:29:22,646 --> 00:29:33,180 >> ПУБЛИКА: И ви желите да подесите да на челу, први чвор. 578 00:29:33,180 --> 00:29:33,580 >> ЈАСОН Хирсцххорн: У реду. 579 00:29:33,580 --> 00:29:37,290 Дакле, сада ово показивање да - па ово још увек није направио нови чвор. 580 00:29:37,290 --> 00:29:41,380 Ово је само указује на Први чвор у листи. 581 00:29:41,380 --> 00:29:42,630 Како да направим нови чвор? 582 00:29:42,630 --> 00:29:45,490 583 00:29:45,490 --> 00:29:48,070 Ако треба простор да креирате нови чвор. 584 00:29:48,070 --> 00:29:49,230 Маллоц. 585 00:29:49,230 --> 00:29:51,710 А колики? 586 00:29:51,710 --> 00:30:00,390 >> ПУБЛИКА: Величина струцт. 587 00:30:00,390 --> 00:30:01,150 >> ЈАСОН Хирсцххорн: величина Струцт. 588 00:30:01,150 --> 00:30:02,400 А шта струцт зове? 589 00:30:02,400 --> 00:30:09,670 590 00:30:09,670 --> 00:30:09,840 >> ПУБЛИКА: Ноде? 591 00:30:09,840 --> 00:30:11,640 >> ЈАСОН Хирсцххорн: чвор. 592 00:30:11,640 --> 00:30:17,640 Дакле маллоц (сизеоф (чвор)); даје нам простор. 593 00:30:17,640 --> 00:30:19,740 И да ли је то линија - 594 00:30:19,740 --> 00:30:21,740 једна ствар је нетачно на овој линији. 595 00:30:21,740 --> 00:30:24,430 Да ли нев_ноде показивач на структуру? 596 00:30:24,430 --> 00:30:25,650 То је генеричко име. 597 00:30:25,650 --> 00:30:26,520 Шта је то - 598 00:30:26,520 --> 00:30:27,450 чвор, тачно. 599 00:30:27,450 --> 00:30:29,340 То је чвор *. 600 00:30:29,340 --> 00:30:33,010 А шта да радимо после ми маллоц нешто, Асан? 601 00:30:33,010 --> 00:30:34,476 Шта је прва ствар коју радимо? 602 00:30:34,476 --> 00:30:38,850 603 00:30:38,850 --> 00:30:40,320 Шта ако не ради? 604 00:30:40,320 --> 00:30:42,430 >> ПУБЛИКА: О, проверите да ли указује на чвору? 605 00:30:42,430 --> 00:30:43,310 >> ЈАСОН Хирсцххорн: Управо тако. 606 00:30:43,310 --> 00:30:46,750 Дакле, ако сте нев_ноде једнака екуалс нулл, шта да радимо? 607 00:30:46,750 --> 00:30:51,650 608 00:30:51,650 --> 00:30:54,820 То враћа боол, ову функцију. 609 00:30:54,820 --> 00:30:57,760 Тачно. 610 00:30:57,760 --> 00:30:58,450 Изгледа добро. 611 00:30:58,450 --> 00:30:59,680 Све додати тамо? 612 00:30:59,680 --> 00:31:00,670 Ми ћемо додати ствари на крају. 613 00:31:00,670 --> 00:31:03,160 Али то сада изгледа добро. 614 00:31:03,160 --> 00:31:06,170 Креирање актуелне и претходне показиваче. 615 00:31:06,170 --> 00:31:08,650 Мајкл, како да то урадим? 616 00:31:08,650 --> 00:31:12,810 >> ПУБЛИКА: Ти би имати да урадите чвор *. 617 00:31:12,810 --> 00:31:21,800 618 00:31:21,800 --> 00:31:25,502 Морао би направити једну не за нев_ноде али за 619 00:31:25,502 --> 00:31:26,905 чворови већ имамо. 620 00:31:26,905 --> 00:31:27,230 >> ЈАСОН Хирсцххорн: У реду. 621 00:31:27,230 --> 00:31:29,255 Дакле, тренутни чвор смо. 622 00:31:29,255 --> 00:31:30,505 Зваћу те Цурр. 623 00:31:30,505 --> 00:31:39,650 624 00:31:39,650 --> 00:31:39,770 У реду. 625 00:31:39,770 --> 00:31:41,620 Ми смо одлучили да желе да задрже два јер морамо да знамо 626 00:31:41,620 --> 00:31:42,870 шта је пре њега. 627 00:31:42,870 --> 00:31:45,770 628 00:31:45,770 --> 00:31:47,020 Шта они се иницијализује на? 629 00:31:47,020 --> 00:31:49,874 630 00:31:49,874 --> 00:31:54,180 >> ПУБЛИКА: Њихова вредност у нашем листу. 631 00:31:54,180 --> 00:31:58,090 >> ЈАСОН Хирсцххорн: Па шта је Прва ствар на нашем списку? 632 00:31:58,090 --> 00:32:04,050 Или како да знамо где почетак наше листе је? 633 00:32:04,050 --> 00:32:08,015 >> ПУБЛИКА: Зар није прошао у функцију? 634 00:32:08,015 --> 00:32:08,466 >> ЈАСОН Хирсцххорн: Тачно. 635 00:32:08,466 --> 00:32:09,716 Донет је у праву овде. 636 00:32:09,716 --> 00:32:15,910 637 00:32:15,910 --> 00:32:18,980 Дакле, ако је то прошло у функцију, почетак листе, што би требало да 638 00:32:18,980 --> 00:32:21,270 сет струја једнака? 639 00:32:21,270 --> 00:32:22,110 >> ПУБЛИКА: Листа. 640 00:32:22,110 --> 00:32:22,900 >> ЈАСОН Хирсцххорн: Листа. 641 00:32:22,900 --> 00:32:24,090 То је потпуно тачно. 642 00:32:24,090 --> 00:32:26,290 Сада има адресу почетак наше листе. 643 00:32:26,290 --> 00:32:28,450 А шта је претходна? 644 00:32:28,450 --> 00:32:31,920 >> ПУБЛИКА: Листа минус један? 645 00:32:31,920 --> 00:32:32,690 >> ЈАСОН Хирсцххорн: Нема ништа пре тога. 646 00:32:32,690 --> 00:32:34,580 Дакле, шта можемо да урадимо да означи ништа? 647 00:32:34,580 --> 00:32:35,050 >> ПУБЛИКА: Нулл. 648 00:32:35,050 --> 00:32:35,450 >> ЈАСОН Хирсцххорн: Да. 649 00:32:35,450 --> 00:32:37,950 То звучи као добра идеја. 650 00:32:37,950 --> 00:32:38,360 Савршено. 651 00:32:38,360 --> 00:32:39,630 Хвала. 652 00:32:39,630 --> 00:32:42,850 Идите кроз листу. 653 00:32:42,850 --> 00:32:45,490 Константин, колико дуго ћемо да иде кроз листу? 654 00:32:45,490 --> 00:32:49,010 >> ПУБЛИКА: док не стигнемо до нула. 655 00:32:49,010 --> 00:32:49,390 >> ЈАСОН Хирсцххорн: У реду. 656 00:32:49,390 --> 00:32:50,430 Дакле, ако, док, за петљу. 657 00:32:50,430 --> 00:32:52,200 Шта ми радимо? 658 00:32:52,200 --> 00:32:53,320 >> ПУБЛИКА: Можда за петљу? 659 00:32:53,320 --> 00:32:53,910 >> ЈАСОН Хирсцххорн: Хајде да урадимо за петљу. 660 00:32:53,910 --> 00:32:55,870 У реду. 661 00:32:55,870 --> 00:33:02,465 >> ПУБЛИКА: И ми кажемо за - 662 00:33:02,465 --> 00:33:09,764 663 00:33:09,764 --> 00:33:13,390 док текућа показивача није једнако нулл. 664 00:33:13,390 --> 00:33:19,160 >> ЈАСОН Хирсцххорн: Дакле, ако знамо стање, како можемо написати петљу 665 00:33:19,160 --> 00:33:21,740 заснован на том стању. 666 00:33:21,740 --> 00:33:24,380 Какав петље треба да користимо? 667 00:33:24,380 --> 00:33:25,260 >> ПУБЛИКА: Док. 668 00:33:25,260 --> 00:33:25,590 >> ЈАСОН Хирсцххорн: Да. 669 00:33:25,590 --> 00:33:27,130 То има више смисла засновану офф оно што сте рекли. 670 00:33:27,130 --> 00:33:29,430 Ако ми само желимо да идемо у смо да би само знам ту ствар, то би 671 00:33:29,430 --> 00:33:31,680 смисла да урадите вхиле. 672 00:33:31,680 --> 00:33:39,880 Док струја не једнак нулл, ако је вредност мања од овог чвора. 673 00:33:39,880 --> 00:33:41,650 Аксхар, дај ми ову линију. 674 00:33:41,650 --> 00:33:48,810 675 00:33:48,810 --> 00:33:56,955 >> ПУБЛИКА: Ако струја-> н н мање од вредности. 676 00:33:56,955 --> 00:34:00,170 677 00:34:00,170 --> 00:34:03,260 Или да преокрене. 678 00:34:03,260 --> 00:34:06,140 Свитцх то носач. 679 00:34:06,140 --> 00:34:06,620 >> ЈАСОН Хирсцххорн: Извини. 680 00:34:06,620 --> 00:34:08,760 >> ПУБЛИКА: Промените држач. 681 00:34:08,760 --> 00:34:10,914 >> ЈАСОН Хирсцххорн: Дакле, ако је то већа од вредности. 682 00:34:10,914 --> 00:34:18,719 683 00:34:18,719 --> 00:34:22,120 Зато што је то збуњујуће са цоммент горе, ја ћу то да урадим. 684 00:34:22,120 --> 00:34:22,480 Али да. 685 00:34:22,480 --> 00:34:25,125 Ако је наша вредност је мања од ове чвор, шта да радимо? 686 00:34:25,125 --> 00:34:25,540 О. 687 00:34:25,540 --> 00:34:26,710 Ја га имам овде. 688 00:34:26,710 --> 00:34:27,960 Убаците пре. 689 00:34:27,960 --> 00:34:32,080 690 00:34:32,080 --> 00:34:32,370 У реду. 691 00:34:32,370 --> 00:34:33,933 Како то да урадимо? 692 00:34:33,933 --> 00:34:34,900 >> ПУБЛИКА: Да ли је то још увек ја? 693 00:34:34,900 --> 00:34:36,150 >> ЈАСОН Хирсцххорн: Да. 694 00:34:36,150 --> 00:34:38,520 695 00:34:38,520 --> 00:34:39,770 >> ПУБЛИКА: Ви - 696 00:34:39,770 --> 00:34:42,909 697 00:34:42,909 --> 00:34:44,159 нев_ноде-> следећи. 698 00:34:44,159 --> 00:34:46,770 699 00:34:46,770 --> 00:34:50,163 >> ЈАСОН Хирсцххорн: Па шта је који ће износити? 700 00:34:50,163 --> 00:34:52,070 >> ПУБЛИКА: То ће једнаку струју. 701 00:34:52,070 --> 00:34:53,889 >> ЈАСОН Хирсцххорн: Управо тако. 702 00:34:53,889 --> 00:34:55,730 И тако други - 703 00:34:55,730 --> 00:34:56,730 Шта још треба да ажурирате? 704 00:34:56,730 --> 00:34:59,982 >> ПУБЛИКА: Проверите да ли прошлост једнако нула. 705 00:34:59,982 --> 00:35:01,870 >> ЈАСОН Хирсцххорн: Ако прев - 706 00:35:01,870 --> 00:35:03,730 па ако предходна једнако нула. 707 00:35:03,730 --> 00:35:05,990 >> ПУБЛИКА: То значи да ће да постане глава. 708 00:35:05,990 --> 00:35:06,780 >> ЈАСОН Хирсцххорн: То значи то је постало глава. 709 00:35:06,780 --> 00:35:07,620 Па шта онда да радимо? 710 00:35:07,620 --> 00:35:12,510 >> ПУБЛИКА: Ми радимо главом једнако нев_ноде. 711 00:35:12,510 --> 00:35:16,690 >> ЈАСОН Хирсцххорн: Шеф једнако нев_ноде. 712 00:35:16,690 --> 00:35:20,540 А зашто глава овде, не наводе? 713 00:35:20,540 --> 00:35:24,940 >> ПУБЛИКА: Јер глава је глобална променљива, што је почетни место. 714 00:35:24,940 --> 00:35:26,190 >> ЈАСОН Хирсцххорн: Слатко. 715 00:35:26,190 --> 00:35:33,750 716 00:35:33,750 --> 00:35:34,170 У реду. 717 00:35:34,170 --> 00:35:36,150 И - 718 00:35:36,150 --> 00:35:53,796 >> ПУБЛИКА: Онда ти још прев-> следећи једнако нев_ноде. 719 00:35:53,796 --> 00:35:55,080 А онда се вратите тачно. 720 00:35:55,080 --> 00:35:59,560 721 00:35:59,560 --> 00:36:02,700 >> ЈАСОН Хирсцххорн: Где смо поставили нев_ноде крај? 722 00:36:02,700 --> 00:36:04,850 >> ПУБЛИКА: Ја бих - 723 00:36:04,850 --> 00:36:06,180 Кренуо сам да на почетку. 724 00:36:06,180 --> 00:36:07,430 >> ЈАСОН Хирсцххорн: Па шта линија? 725 00:36:07,430 --> 00:36:10,000 726 00:36:10,000 --> 00:36:12,598 >> ПУБЛИКА: Након ако изјава проверу да ли се зна. 727 00:36:12,598 --> 00:36:13,057 >> ЈАСОН Хирсцххорн: Овде? 728 00:36:13,057 --> 00:36:18,335 >> ПУБЛИКА: Ја бих нев_ноде-> н једнака вредности. 729 00:36:18,335 --> 00:36:19,585 >> ЈАСОН Хирсцххорн: Звучи добро. 730 00:36:19,585 --> 00:36:21,740 731 00:36:21,740 --> 00:36:25,090 Вероватно то има смисла - ми не знамо треба да знају шта смо списак на 732 00:36:25,090 --> 00:36:26,280 јер ми само имамо посла са једне листе. 733 00:36:26,280 --> 00:36:29,560 Дакле, боље функција декларација за ово је само да се отараси овог 734 00:36:29,560 --> 00:36:34,360 потпуно и само убаците вредност у главу. 735 00:36:34,360 --> 00:36:35,930 Ми чак ни не треба да зна шта листа смо унутра 736 00:36:35,930 --> 00:36:39,140 Али ја ћу га задржати за сада и онда га промените на ажурирање 737 00:36:39,140 --> 00:36:42,590 слајдове и код. 738 00:36:42,590 --> 00:36:44,980 Тако да изгледа добро за сада. 739 00:36:44,980 --> 00:36:46,560 Ако вредност - ко може да уради ову линију? 740 00:36:46,560 --> 00:36:47,810 Ако - 741 00:36:47,810 --> 00:36:52,240 742 00:36:52,240 --> 00:36:53,840 шта ми овде радимо, Ноа. 743 00:36:53,840 --> 00:36:57,890 744 00:36:57,890 --> 00:37:07,100 >> ПУБЛИКА: Ако је вредност већа него Цурр-> н - 745 00:37:07,100 --> 00:37:16,830 746 00:37:16,830 --> 00:37:18,240 >> ЈАСОН Хирсцххорн: Како идемо на следећи чвор? 747 00:37:18,240 --> 00:37:27,760 748 00:37:27,760 --> 00:37:30,530 >> ПУБЛИКА: Цурр-> н једнак нев_ноде. 749 00:37:30,530 --> 00:37:37,630 750 00:37:37,630 --> 00:37:39,195 >> ЈАСОН Хирсцххорн: Тако је н шта део струцт? 751 00:37:39,195 --> 00:37:43,065 752 00:37:43,065 --> 00:37:46,020 Цео број. 753 00:37:46,020 --> 00:37:50,420 И нев_ноде је показивач на чвор. 754 00:37:50,420 --> 00:37:51,880 Дакле, шта део Цурр треба да ажурирате? 755 00:37:51,880 --> 00:38:03,900 756 00:38:03,900 --> 00:38:05,400 Ако не н, онда шта је други део? 757 00:38:05,400 --> 00:38:21,680 758 00:38:21,680 --> 00:38:22,810 Ноа, шта је други део. 759 00:38:22,810 --> 00:38:23,570 >> ПУБЛИКА: О, следећи. 760 00:38:23,570 --> 00:38:25,645 >> ЈАСОН Хирсцххорн: Даље, тачно. 761 00:38:25,645 --> 00:38:26,410 Тачно. 762 00:38:26,410 --> 00:38:28,770 Даље је у праву један. 763 00:38:28,770 --> 00:38:31,540 И шта још морамо ажурирати, Ноах? 764 00:38:31,540 --> 00:38:32,840 >> ПУБЛИКА: Тхе показивачи. 765 00:38:32,840 --> 00:38:34,840 >> ЈАСОН Хирсцххорн: Па ми ажуриран струје. 766 00:38:34,840 --> 00:38:36,090 >> ПУБЛИКА: Претходна-> следећи. 767 00:38:36,090 --> 00:38:48,160 768 00:38:48,160 --> 00:38:49,410 >> ЈАСОН Хирсцххорн: Да. 769 00:38:49,410 --> 00:38:57,465 770 00:38:57,465 --> 00:38:58,370 У реду, ми ћемо паузирати. 771 00:38:58,370 --> 00:39:02,200 Ко може да нам помогне овде? 772 00:39:02,200 --> 00:39:03,385 Ману, шта да радимо? 773 00:39:03,385 --> 00:39:05,615 >> ПУБЛИКА: Мораш да подесите је једнак Цурр-> Нект. 774 00:39:05,615 --> 00:39:09,110 775 00:39:09,110 --> 00:39:11,630 Али да ли то пре претходне линије. 776 00:39:11,630 --> 00:39:12,880 >> ЈАСОН Хирсцххорн: У реду. 777 00:39:12,880 --> 00:39:16,590 778 00:39:16,590 --> 00:39:18,260 Још нешто? 779 00:39:18,260 --> 00:39:19,170 Аксхар. 780 00:39:19,170 --> 00:39:22,680 >> ПУБЛИКА: Не мислим да си значило да промените Цурр-> Нект. 781 00:39:22,680 --> 00:39:29,270 Мислим да треба да урадимо Цурр екуалс Цурр-> поред идите на следећи чвор. 782 00:39:29,270 --> 00:39:30,500 >> ЈАСОН Хирсцххорн: Жао ми је, где? 783 00:39:30,500 --> 00:39:32,680 На шта линија? 784 00:39:32,680 --> 00:39:33,420 Ова линија? 785 00:39:33,420 --> 00:39:33,750 >> ПУБЛИКА: Да. 786 00:39:33,750 --> 00:39:35,745 Направите Цурр једнако Цурр-> следећи. 787 00:39:35,745 --> 00:39:39,690 788 00:39:39,690 --> 00:39:43,360 >> ЈАСОН Хирсцххорн: Дакле, то је тачно јер је струја 789 00:39:43,360 --> 00:39:45,220 показивач на чвор. 790 00:39:45,220 --> 00:39:48,550 И желимо да укажемо на следећа чвор онога Постаје тренутно 791 00:39:48,550 --> 00:39:49,930 указао на. 792 00:39:49,930 --> 00:39:54,410 Сама Цурр има следећи. 793 00:39:54,410 --> 00:39:58,620 Али, ако смо били да ажурирате цурр.нект, ми би се ажурирање стварног напомену 794 00:39:58,620 --> 00:40:01,430 Сама, не где је овај Показивач је показујући. 795 00:40:01,430 --> 00:40:02,680 Шта о овој линији, мада. 796 00:40:02,680 --> 00:40:05,160 797 00:40:05,160 --> 00:40:07,330 Ави? 798 00:40:07,330 --> 00:40:09,590 >> ПУБЛИКА: Претходна-> поред једнако Цурр. 799 00:40:09,590 --> 00:40:12,500 800 00:40:12,500 --> 00:40:19,440 >> ЈАСОН Хирсцххорн: Па опет, ако је претходни показивач на чвор, пред-> следећи је 801 00:40:19,440 --> 00:40:23,020 Стварна показивач у чвору. 802 00:40:23,020 --> 00:40:27,190 Дакле, ово би се ажурирање поинтер на чвор на Пост. 803 00:40:27,190 --> 00:40:28,570 Ми не желимо да ажурирате показивач у чвору. 804 00:40:28,570 --> 00:40:30,570 Желимо да ажурирате претходну. 805 00:40:30,570 --> 00:40:31,850 Па како то да урадимо? 806 00:40:31,850 --> 00:40:34,250 >> ПУБЛИКА: баш би то бити прев. 807 00:40:34,250 --> 00:40:34,565 >> ЈАСОН Хирсцххорн: Тачно. 808 00:40:34,565 --> 00:40:35,560 Претходна је показивач на чвор. 809 00:40:35,560 --> 00:40:38,750 Сада смо га мењају на нови показивач на чвор. 810 00:40:38,750 --> 00:40:40,830 ОК Идемо даље доле. 811 00:40:40,830 --> 00:40:41,940 Коначно, овај последњи услов. 812 00:40:41,940 --> 00:40:44,896 Џеф, шта ми овде радимо? 813 00:40:44,896 --> 00:40:47,515 >> ПУБЛИКА: Ако је вредност једнак Цурр-> н. 814 00:40:47,515 --> 00:40:51,030 815 00:40:51,030 --> 00:40:51,300 >> ЈАСОН Хирсцххорн: Извини. 816 00:40:51,300 --> 00:40:52,372 О мој боже. 817 00:40:52,372 --> 00:40:54,330 Шта? 818 00:40:54,330 --> 00:40:55,580 Вредност == Цурр-> н. 819 00:40:55,580 --> 00:41:01,050 820 00:41:01,050 --> 00:41:02,300 Шта да радимо? 821 00:41:02,300 --> 00:41:04,760 822 00:41:04,760 --> 00:41:10,950 >> ПУБЛИКА: Ти би ослободили нашу нев_ноде, а онда ћеш се вратити фалсе. 823 00:41:10,950 --> 00:41:21,410 824 00:41:21,410 --> 00:41:23,460 >> ЈАСОН Хирсцххорн: То је оно што смо до сада написао. 825 00:41:23,460 --> 00:41:25,710 Да ли неко има нешто да додате пре него што направите? 826 00:41:25,710 --> 00:41:35,460 827 00:41:35,460 --> 00:41:35,710 У реду. 828 00:41:35,710 --> 00:41:36,960 Хајде да покушамо. 829 00:41:36,960 --> 00:41:44,180 830 00:41:44,180 --> 00:41:46,110 Контрола може до краја о не-воид функцију. 831 00:41:46,110 --> 00:41:48,310 Ави, шта се дешава? 832 00:41:48,310 --> 00:41:51,380 >> ПУБЛИКА: Да ли би требало да се стави повратак истина ван вхиле петље? 833 00:41:51,380 --> 00:41:53,900 834 00:41:53,900 --> 00:41:54,400 >> ЈАСОН Хирсцххорн: Ја не знам. 835 00:41:54,400 --> 00:41:54,780 Да ли ме желиш? 836 00:41:54,780 --> 00:41:55,520 >> ПУБЛИКА: Нема везе. 837 00:41:55,520 --> 00:41:56,350 Не. 838 00:41:56,350 --> 00:41:57,180 >> ЈАСОН Хирсцххорн: Аксхар? 839 00:41:57,180 --> 00:41:59,460 >> ПУБЛИКА: Мислим да треба да ставити ретурн на крају 840 00:41:59,460 --> 00:42:02,230 од вхиле петље. 841 00:42:02,230 --> 00:42:03,270 >> ЈАСОН Хирсцххорн: Па где да ли желиш да одем? 842 00:42:03,270 --> 00:42:05,270 >> ПУБЛИКА: Као ван вхиле петље. 843 00:42:05,270 --> 00:42:08,800 Дакле, ако сте изашли из вхиле то значи да сте стигли до краја и 844 00:42:08,800 --> 00:42:09,980 ништа није десило. 845 00:42:09,980 --> 00:42:10,410 >> ЈАСОН Хирсцххорн: У реду. 846 00:42:10,410 --> 00:42:12,340 Па шта да радимо овде? 847 00:42:12,340 --> 00:42:13,702 >> ПУБЛИКА: Ви ретурн ту као добро. 848 00:42:13,702 --> 00:42:15,040 >> ЈАСОН Хирсцххорн: О, ми урадите то на оба места? 849 00:42:15,040 --> 00:42:15,650 >> ПУБЛИКА: Да. 850 00:42:15,650 --> 00:42:16,900 >> ЈАСОН Хирсцххорн: У реду. 851 00:42:16,900 --> 00:42:24,840 852 00:42:24,840 --> 00:42:26,160 Хоћемо ли? 853 00:42:26,160 --> 00:42:26,980 О мој боже. 854 00:42:26,980 --> 00:42:27,290 Жао ми је. 855 00:42:27,290 --> 00:42:28,480 Извињавам се на екрану. 856 00:42:28,480 --> 00:42:30,530 То је врста одлепио на нас. 857 00:42:30,530 --> 00:42:31,520 Дакле, изабрати опцију. 858 00:42:31,520 --> 00:42:35,260 Нула, по коду, затвара програм. 859 00:42:35,260 --> 00:42:36,700 Један убацује нешто. 860 00:42:36,700 --> 00:42:37,990 Хајде да убаците три. 861 00:42:37,990 --> 00:42:42,900 862 00:42:42,900 --> 00:42:45,380 Уметак није била успешна. 863 00:42:45,380 --> 00:42:46,500 Идем да одштампате. 864 00:42:46,500 --> 00:42:48,050 Немам ништа. 865 00:42:48,050 --> 00:42:48,450 У реду. 866 00:42:48,450 --> 00:42:50,250 Можда је то била само случајност. 867 00:42:50,250 --> 00:42:52,810 Убаците једну. 868 00:42:52,810 --> 00:42:55,770 Не успе. 869 00:42:55,770 --> 00:42:57,470 У реду. 870 00:42:57,470 --> 00:43:02,400 Хајде да пролазе кроз ГДБ стварно брзо да проверите шта се дешава. 871 00:43:02,400 --> 00:43:06,055 >> Запамтите гдб. / Име вашег Програм нас добија у ГДБ. 872 00:43:06,055 --> 00:43:07,610 Да ли је то много за руковање? 873 00:43:07,610 --> 00:43:08,560 Трепери? 874 00:43:08,560 --> 00:43:10,400 Вероватно. 875 00:43:10,400 --> 00:43:12,760 Затворите очи и узети неки дубоко дише ако се уморите 876 00:43:12,760 --> 00:43:13,580 гледања на то. 877 00:43:13,580 --> 00:43:14,200 Ја сам ГДБ. 878 00:43:14,200 --> 00:43:15,830 Шта је прва ствар коју урадим ГДБ? 879 00:43:15,830 --> 00:43:17,050 Морамо да смислимо шта се овде дешава. 880 00:43:17,050 --> 00:43:17,310 Хајде да видимо. 881 00:43:17,310 --> 00:43:21,650 Имамо шест минута да схвати шта се дешава. 882 00:43:21,650 --> 00:43:22,900 Бреак главни. 883 00:43:22,900 --> 00:43:25,950 884 00:43:25,950 --> 00:43:28,130 И онда, шта да радим? 885 00:43:28,130 --> 00:43:29,180 Карлос? 886 00:43:29,180 --> 00:43:31,060 Покрени. 887 00:43:31,060 --> 00:43:32,250 У реду. 888 00:43:32,250 --> 00:43:34,160 Хајде да одаберете опцију. 889 00:43:34,160 --> 00:43:36,330 И шта Н радим? 890 00:43:36,330 --> 00:43:38,480 Даље. 891 00:43:38,480 --> 00:43:38,950 Да. 892 00:43:38,950 --> 00:43:39,740 >> ПУБЛИКА: Зар нисте поменули - 893 00:43:39,740 --> 00:43:45,230 нисте рекли да глава, било је иницијализована на нулл на почетку. 894 00:43:45,230 --> 00:43:47,140 Али мислио сам да си рекао да је то у реду. 895 00:43:47,140 --> 00:43:50,040 896 00:43:50,040 --> 00:43:52,640 >> ЈАСОН Хирсцххорн: Идемо - хајде да погледамо ГДБ, а онда ћемо се вратити. 897 00:43:52,640 --> 00:43:54,910 Али то звучи као већ имате неке идеје о томе шта се дешава. 898 00:43:54,910 --> 00:43:58,340 Зато желимо да убаците нешто. 899 00:43:58,340 --> 00:43:59,390 У реду. 900 00:43:59,390 --> 00:44:00,150 Ми смо убацили. 901 00:44:00,150 --> 00:44:00,770 Унесите инт. 902 00:44:00,770 --> 00:44:01,990 Ми ћемо убацити три. 903 00:44:01,990 --> 00:44:03,000 А онда сам на овој линији. 904 00:44:03,000 --> 00:44:07,030 Како да идем почети отклањање грешака убаци познати функцију? 905 00:44:07,030 --> 00:44:08,280 О мој боже. 906 00:44:08,280 --> 00:44:10,990 907 00:44:10,990 --> 00:44:12,240 То је много. 908 00:44:12,240 --> 00:44:14,372 909 00:44:14,372 --> 00:44:16,445 Да ли је то излуђује много? 910 00:44:16,445 --> 00:44:19,696 911 00:44:19,696 --> 00:44:21,680 >> ПУБЛИКА: Ох, умро. 912 00:44:21,680 --> 00:44:22,930 >> ЈАСОН Хирсцххорн: Ја само извукао га напоље. 913 00:44:22,930 --> 00:44:27,364 914 00:44:27,364 --> 00:44:28,310 У реду. 915 00:44:28,310 --> 00:44:29,560 >> ПУБЛИКА: Можда је Други крај жице. 916 00:44:29,560 --> 00:44:37,000 917 00:44:37,000 --> 00:44:39,470 >> ЈАСОН Хирсцххорн: Вау. 918 00:44:39,470 --> 00:44:42,330 Дакле, доња линија - 919 00:44:42,330 --> 00:44:43,470 шта си рекао? 920 00:44:43,470 --> 00:44:46,040 >> ПУБЛИКА: Рекао сам иронија техничке тешкоће у овој класи. 921 00:44:46,040 --> 00:44:46,410 >> ЈАСОН Хирсцххорн: Знам. 922 00:44:46,410 --> 00:44:48,660 Ако само ја имао контролу над тим делом. 923 00:44:48,660 --> 00:44:49,910 [ИНАУДИБЛЕ] 924 00:44:49,910 --> 00:44:54,430 925 00:44:54,430 --> 00:44:55,400 То звучи сјајно. 926 00:44:55,400 --> 00:44:58,680 Зашто ви не почнете да размишљате о шта смо могли урадити лоше, 927 00:44:58,680 --> 00:45:01,140 и ми ћемо се вратити у 90 секунди. 928 00:45:01,140 --> 00:46:18,160 929 00:46:18,160 --> 00:46:23,010 >> Авица, ја ћу да вас питам како то иде унутра инсерт_ноде да га дебуг. 930 00:46:23,010 --> 00:46:28,940 931 00:46:28,940 --> 00:46:31,460 Дакле, ово је место где смо стали прошле. 932 00:46:31,460 --> 00:46:35,110 Како да идем унутра инсерт_ноде, Авица, да испита шта се дешава? 933 00:46:35,110 --> 00:46:36,360 Шта ГДБ команда? 934 00:46:36,360 --> 00:46:41,050 935 00:46:41,050 --> 00:46:42,390 Пауза не би ме унутра. 936 00:46:42,390 --> 00:46:46,200 937 00:46:46,200 --> 00:46:47,130 Да ли Маркиза зна? 938 00:46:47,130 --> 00:46:48,240 >> ПУБЛИКА: Шта? 939 00:46:48,240 --> 00:46:51,780 >> ЈАСОН Хирсцххорн: Шта команда ГДБ Ја користим да одем у ову функцију? 940 00:46:51,780 --> 00:46:52,070 >> ПУБЛИКА: Степ? 941 00:46:52,070 --> 00:46:55,140 >> ЈАСОН Хирсцххорн: Корак преко С То ме води унутра. 942 00:46:55,140 --> 00:46:55,476 У реду. 943 00:46:55,476 --> 00:46:58,040 Нев_ноде маллоцинг мало простора. 944 00:46:58,040 --> 00:46:59,120 То све изгледа као да је одлазак. 945 00:46:59,120 --> 00:47:00,370 Хајде да испитамо нев_ноде. 946 00:47:00,370 --> 00:47:03,270 947 00:47:03,270 --> 00:47:05,410 Он је добио неку меморијску адресу. 948 00:47:05,410 --> 00:47:07,440 Хајде да проверимо - 949 00:47:07,440 --> 00:47:08,500 то је све тачно. 950 00:47:08,500 --> 00:47:12,220 Дакле, све овде изгледа бити исправно ради. 951 00:47:12,220 --> 00:47:14,530 >> ПУБЛИКА: Која је разлика између П и екрана? 952 00:47:14,530 --> 00:47:16,160 >> ЈАСОН Хирсцххорн: П стоји за штампање. 953 00:47:16,160 --> 00:47:19,310 И тако питате шта је разлика између тога и ово? 954 00:47:19,310 --> 00:47:22,330 У овом случају, ништа. 955 00:47:22,330 --> 00:47:26,960 Али генерално постоје неке разлике. 956 00:47:26,960 --> 00:47:28,220 И ви би требало да изгледа у ГДБ приручнику. 957 00:47:28,220 --> 00:47:29,560 Али у овом случају, ништа. 958 00:47:29,560 --> 00:47:31,460 Ми смо склони да користе отисак, ипак, јер ми не треба да се уради много више него 959 00:47:31,460 --> 00:47:33,960 принт једну вредност. 960 00:47:33,960 --> 00:47:34,640 >> У реду. 961 00:47:34,640 --> 00:47:40,300 Дакле, ми смо на линији 80 нашег кода, постављање чвора * Цурр једнако листи. 962 00:47:40,300 --> 00:47:42,500 Дозволите нам да одштампате Цурр. 963 00:47:42,500 --> 00:47:45,260 964 00:47:45,260 --> 00:47:46,840 То једнако листу. 965 00:47:46,840 --> 00:47:48,850 Слатко. 966 00:47:48,850 --> 00:47:49,340 Чекај. 967 00:47:49,340 --> 00:47:50,590 То једнако нешто. 968 00:47:50,590 --> 00:47:53,680 969 00:47:53,680 --> 00:47:56,190 То није у реду не. 970 00:47:56,190 --> 00:47:56,840 Тамо идемо. 971 00:47:56,840 --> 00:47:59,470 То је зато што у ГДБ, десно, ако то је линија сте на њему 972 00:47:59,470 --> 00:48:00,330 још није извршена. 973 00:48:00,330 --> 00:48:03,100 Тако да је потребно да се заправо куцате поред изврши линију 974 00:48:03,100 --> 00:48:05,230 пре виде своје резултате. 975 00:48:05,230 --> 00:48:06,680 Дакле, ту смо. 976 00:48:06,680 --> 00:48:09,490 Управо смо погубили ову линију, претходна једнако нула. 977 00:48:09,490 --> 00:48:13,590 Па опет, ако штампате претходна нећемо видети ништа чудно. 978 00:48:13,590 --> 00:48:18,680 Али ако заиста извршити да линија, онда ћемо видети 979 00:48:18,680 --> 00:48:20,380 да та линија радила. 980 00:48:20,380 --> 00:48:21,060 >> Дакле, имамо Цурр. 981 00:48:21,060 --> 00:48:23,180 Они су обоје добро. 982 00:48:23,180 --> 00:48:24,010 Зар не? 983 00:48:24,010 --> 00:48:28,130 Сада смо на овој линији овде. 984 00:48:28,130 --> 00:48:29,310 Иако Цурр не једнак нулл. 985 00:48:29,310 --> 00:48:31,110 Па, шта то Цурр једнаки? 986 00:48:31,110 --> 00:48:32,450 Управо смо видели да изнесува нула. 987 00:48:32,450 --> 00:48:33,210 Штампан смо га. 988 00:48:33,210 --> 00:48:35,110 Ја ћу га поново одштампати. 989 00:48:35,110 --> 00:48:36,720 Тако да, док је петља ће да изврши? 990 00:48:36,720 --> 00:48:37,270 >> ПУБЛИКА: Не 991 00:48:37,270 --> 00:48:39,790 >> ЈАСОН Хирсцххорн: Дакле, када сам откуцао да линија, видиш смо скочили скроз 992 00:48:39,790 --> 00:48:41,390 доле до дна, вратити фалсе. 993 00:48:41,390 --> 00:48:44,520 А онда ћемо да се врати фалсе и врати се у нашем програму и 994 00:48:44,520 --> 00:48:48,020 на крају одштампати, као што смо видели, уметак није била успешна. 995 00:48:48,020 --> 00:48:51,010 Дакле, неко има неке идеје о томе шта морамо да урадимо да поправи ово? 996 00:48:51,010 --> 00:48:54,200 997 00:48:54,200 --> 00:48:57,570 Идем да сачекам док не видим пар руку иду горе. 998 00:48:57,570 --> 00:48:58,830 Нисмо изврши ово. 999 00:48:58,830 --> 00:49:01,660 Имајте на уму, ово је био први што смо радили. 1000 00:49:01,660 --> 00:49:02,430 Нећу да урадим пар. 1001 00:49:02,430 --> 00:49:03,670 Ја ћу да урадим неколико. 1002 00:49:03,670 --> 00:49:04,830 Због пар значи двоје. 1003 00:49:04,830 --> 00:49:07,620 Ја ћу чекати више од два. 1004 00:49:07,620 --> 00:49:10,690 >> Први уметање, Цурр, по дефаулт једнако нула. 1005 00:49:10,690 --> 00:49:14,050 И то само петља извршава ако Цурр није нула. 1006 00:49:14,050 --> 00:49:18,740 Па како могу да добијем око овога? 1007 00:49:18,740 --> 00:49:19,990 Видим три руке. 1008 00:49:19,990 --> 00:49:28,490 1009 00:49:28,490 --> 00:49:29,780 Ја ћу чекати више од три. 1010 00:49:29,780 --> 00:49:33,460 1011 00:49:33,460 --> 00:49:35,940 Маркус, шта ти мислиш? 1012 00:49:35,940 --> 00:49:37,730 >> ПУБЛИКА: Па, ако је потребно да изврши више пута, само 1013 00:49:37,730 --> 00:49:39,948 промените га у до-вхиле петље. 1014 00:49:39,948 --> 00:49:41,250 >> ЈАСОН Хирсцххорн: У реду. 1015 00:49:41,250 --> 00:49:44,240 Хоће да реши наш проблем, иако? 1016 00:49:44,240 --> 00:49:47,750 >> ПУБЛИКА: У овом случају не ради чињеница да је листа празна. 1017 00:49:47,750 --> 00:49:52,150 Па онда вероватно само треба да додате изјава да ако петље излазе 1018 00:49:52,150 --> 00:49:55,312 онда морате да будете на крају листа, у којој вам тачка 1019 00:49:55,312 --> 00:49:56,562 могу само да убаците. 1020 00:49:56,562 --> 00:49:58,920 1021 00:49:58,920 --> 00:49:59,680 >> ЈАСОН Хирсцххорн: Свиђа ми се. 1022 00:49:59,680 --> 00:50:00,500 То има смисла. 1023 00:50:00,500 --> 00:50:03,390 Ако петља излази - 1024 00:50:03,390 --> 00:50:04,800 јер ћу вратити фалсе овде. 1025 00:50:04,800 --> 00:50:08,220 Дакле, ако су петље излаза, онда смо на крај листе, или можда 1026 00:50:08,220 --> 00:50:10,690 почетак листе ако нема ништа у то, што је исто као на крају. 1027 00:50:10,690 --> 00:50:12,770 Дакле, сада желимо да убаците нешто овде. 1028 00:50:12,770 --> 00:50:17,380 Дакле, како се то код изгледају, Марцус? 1029 00:50:17,380 --> 00:50:21,600 >> ПУБЛИКА: Ако сте већ добили чвор маллоцед, можете само да кажете 1030 00:50:21,600 --> 00:50:25,400 нев_ноде-> поред једнако нула јер она мора да буде на крају. 1031 00:50:25,400 --> 00:50:27,510 Или нев_ноде-> поред једнако нула. 1032 00:50:27,510 --> 00:50:27,765 >> ЈАСОН Хирсцххорн: У реду. 1033 00:50:27,765 --> 00:50:28,190 Извините. 1034 00:50:28,190 --> 00:50:35,760 Нев_ноде-> следећи једнако нула јер смо на крају. 1035 00:50:35,760 --> 00:50:36,460 То не га ставите унутра 1036 00:50:36,460 --> 00:50:37,710 Како ћемо то ставити на листу? 1037 00:50:37,710 --> 00:50:46,130 1038 00:50:46,130 --> 00:50:46,460 Право. 1039 00:50:46,460 --> 00:50:47,750 То је само постављање једнака. 1040 00:50:47,750 --> 00:50:50,940 Не како радимо ствари стави га на листи? 1041 00:50:50,940 --> 00:50:54,170 Шта указује на крај листе? 1042 00:50:54,170 --> 00:50:56,090 >> ПУБЛИКА: Глава. 1043 00:50:56,090 --> 00:50:57,566 >> ЈАСОН Хирсцххорн: Извините? 1044 00:50:57,566 --> 00:50:59,440 >> ПУБЛИКА: Шеф указује до краја листе. 1045 00:50:59,440 --> 00:51:01,480 >> ЈАСОН Хирсцххорн: Ако нема ништа у листа, глава се указује на 1046 00:51:01,480 --> 00:51:04,170 крај листе. 1047 00:51:04,170 --> 00:51:06,920 Тако да ћу радити за Прво уметање. 1048 00:51:06,920 --> 00:51:09,810 Шта ако постоји пар ствари на листи? 1049 00:51:09,810 --> 00:51:12,470 Него ми не желимо да подесите главу једнака нев_ноде. 1050 00:51:12,470 --> 00:51:13,790 Шта желимо да тамо радим? 1051 00:51:13,790 --> 00:51:15,610 Да? 1052 00:51:15,610 --> 00:51:16,860 Вероватно претходни. 1053 00:51:16,860 --> 00:51:23,560 1054 00:51:23,560 --> 00:51:24,810 Хоће да раде? 1055 00:51:24,810 --> 00:51:28,950 1056 00:51:28,950 --> 00:51:33,050 Подсетимо се да је само претходни показивач на чвор. 1057 00:51:33,050 --> 00:51:34,770 И претходни је локална променљива. 1058 00:51:34,770 --> 00:51:38,080 Дакле, ова линија ће поставити локалне променљиве, претходни, једнака или 1059 00:51:38,080 --> 00:51:39,380 указујући на овом новом чвору. 1060 00:51:39,380 --> 00:51:41,500 То неће заправо га ставите у нашем листу, мада. 1061 00:51:41,500 --> 00:51:44,330 Како ћемо то ставити на нашем списку? 1062 00:51:44,330 --> 00:51:45,620 Акцхар? 1063 00:51:45,620 --> 00:51:46,870 >> ПУБЛИКА: Мислим да би ти урадите тренутни-> Нект. 1064 00:51:46,870 --> 00:51:50,186 1065 00:51:50,186 --> 00:51:52,550 >> ЈАСОН Хирсцххорн: У реду. 1066 00:51:52,550 --> 00:51:54,010 Цурр-> следећи. 1067 00:51:54,010 --> 00:51:58,768 Дакле, опет, једини разлог смо доле Овде је, шта ради струја једнаки? 1068 00:51:58,768 --> 00:51:59,760 >> ПУБЛИКА: Једнако нулл. 1069 00:51:59,760 --> 00:52:01,790 >> ЈАСОН Хирсцххорн: И шта дешава ако радимо нулл-> следеци? 1070 00:52:01,790 --> 00:52:02,810 Шта ћемо добити? 1071 00:52:02,810 --> 00:52:04,060 Ми ћемо добити сегментације грешку. 1072 00:52:04,060 --> 00:52:06,600 1073 00:52:06,600 --> 00:52:08,880 >> ПУБЛИКА: До Цурр једнако нула. 1074 00:52:08,880 --> 00:52:10,760 >> ЈАСОН Хирсцххорн: То је иста ствар као прев, мада, јер ту је 1075 00:52:10,760 --> 00:52:12,820 локална променљива смо постављање једнак на овај нови чвор. 1076 00:52:12,820 --> 00:52:16,680 1077 00:52:16,680 --> 00:52:20,920 Хајде да се вратимо на нашу слику убацивања нешто. 1078 00:52:20,920 --> 00:52:25,500 Реци ми убацивање на крају листе, па овде. 1079 00:52:25,500 --> 00:52:30,010 Имамо тренутну показивач који је указујући на нулте и претходна тачка 1080 00:52:30,010 --> 00:52:32,800 који је указујући на 8. 1081 00:52:32,800 --> 00:52:35,330 Дакле, шта нам је потребно да ажурирате, Ави? 1082 00:52:35,330 --> 00:52:36,680 >> ПУБЛИКА: Претходни-> следећи? 1083 00:52:36,680 --> 00:52:41,980 >> ЈАСОН Хирсцххорн: Претходни-> следећи је оно желимо да ажурирате, јер то 1084 00:52:41,980 --> 00:52:44,960 ће заправо га убаците у крај листе. 1085 00:52:44,960 --> 00:52:47,220 Ми још увек имамо једну грешку, мада, да ћемо наићи на. 1086 00:52:47,220 --> 00:52:50,090 Шта је то буба? 1087 00:52:50,090 --> 00:52:50,790 Да? 1088 00:52:50,790 --> 00:52:53,860 >> ПУБЛИКА: То ће вратити лажно у овом случају? 1089 00:52:53,860 --> 00:52:56,380 >> ЈАСОН Хирсцххорн: О, је је ће вратити фалсе. 1090 00:52:56,380 --> 00:52:57,430 Али постоји још једна буба. 1091 00:52:57,430 --> 00:52:58,930 Зато ћемо морати да се стави у повратку истинском. 1092 00:52:58,930 --> 00:53:01,370 >> ПУБЛИКА: Да ли још увек претходни једнаки нулл на врху листе? 1093 00:53:01,370 --> 00:53:03,645 >> ЈАСОН Хирсцххорн: Па претходна даље једнако нула на самом почетку. 1094 00:53:03,645 --> 00:53:07,480 1095 00:53:07,480 --> 00:53:10,440 Дакле, како можемо добити преко тога? 1096 00:53:10,440 --> 00:53:10,950 Да? 1097 00:53:10,950 --> 00:53:15,280 >> ПУБЛИКА: Мислим да можете да урадите проверу пре док петља да види да ли је то 1098 00:53:15,280 --> 00:53:16,610 празна листа. 1099 00:53:16,610 --> 00:53:17,000 >> ЈАСОН Хирсцххорн: У реду. 1100 00:53:17,000 --> 00:53:17,710 Дакле, идемо одавде. 1101 00:53:17,710 --> 00:53:18,530 Да ли чек. 1102 00:53:18,530 --> 00:53:19,380 Ако - 1103 00:53:19,380 --> 00:53:20,770 >> ПУБЛИКА: Дакле, ако глава једнако једнако нулл. 1104 00:53:20,770 --> 00:53:24,300 1105 00:53:24,300 --> 00:53:26,320 >> ЈАСОН Хирсцххорн: Ако глава једнако једнако нулл - 1106 00:53:26,320 --> 00:53:27,790 који ће нам рећи да ли је празна листа. 1107 00:53:27,790 --> 00:53:31,090 >> ПУБЛИКА: И онда сте уради глава једнака ново. 1108 00:53:31,090 --> 00:53:34,740 >> ЈАСОН Хирсцххорн: Шеф једнако нев_ноде? 1109 00:53:34,740 --> 00:53:35,730 И шта још треба да урадимо? 1110 00:53:35,730 --> 00:53:37,020 >> ПУБЛИКА: И онда се вратите тачно. 1111 00:53:37,020 --> 00:53:37,535 >> ЈАСОН Хирсцххорн: Не баш. 1112 00:53:37,535 --> 00:53:38,785 Недостаје нам један корак. 1113 00:53:38,785 --> 00:53:41,590 1114 00:53:41,590 --> 00:53:43,710 >> ПУБЛИКА: Нев_ноде следећа мора да укаже на нулл. 1115 00:53:43,710 --> 00:53:44,570 >> ЈАСОН Хирсцххорн: Управо тако, Алден. 1116 00:53:44,570 --> 00:53:46,600 И онда можемо вратити истина. 1117 00:53:46,600 --> 00:53:47,560 У реду. 1118 00:53:47,560 --> 00:53:51,630 Али то је још увек добра идеја да се ствари ураде на крају листе, зар не? 1119 00:53:51,630 --> 00:53:51,950 У реду. 1120 00:53:51,950 --> 00:53:54,450 Ми још увек може заправо добити до краја листе. 1121 00:53:54,450 --> 00:53:57,870 Тако је то код реду ако смо на крај листе и постоје неки 1122 00:53:57,870 --> 00:53:59,120 ствари на листи? 1123 00:53:59,120 --> 00:54:01,830 1124 00:54:01,830 --> 00:54:02,040 Зар не? 1125 00:54:02,040 --> 00:54:03,540 Зато што још увек имамо Марцус идеју. 1126 00:54:03,540 --> 00:54:06,870 Могли бисмо изашли из овог петљу јер ми смо на крају листе. 1127 00:54:06,870 --> 00:54:09,308 Дакле, ми увек желимо ово код овде доле? 1128 00:54:09,308 --> 00:54:10,520 >> ПУБЛИКА: Да. 1129 00:54:10,520 --> 00:54:11,000 >> ЈАСОН Хирсцххорн: Да. 1130 00:54:11,000 --> 00:54:14,190 И шта нам је потребно да се то промени на? 1131 00:54:14,190 --> 00:54:15,440 Истина. 1132 00:54:15,440 --> 00:54:19,580 1133 00:54:19,580 --> 00:54:21,640 Да ли то звучи добро свима до сада? 1134 00:54:21,640 --> 00:54:22,420 Има ли било који - 1135 00:54:22,420 --> 00:54:23,480 Ави, да ли имате нешто да додате? 1136 00:54:23,480 --> 00:54:23,920 >> ПУБЛИКА: Не 1137 00:54:23,920 --> 00:54:25,276 >> ЈАСОН Хирсцххорн: У реду. 1138 00:54:25,276 --> 00:54:27,010 Тако смо направили неколико промена. 1139 00:54:27,010 --> 00:54:29,540 Направили смо ову проверу пре ми отишао у за празну листу. 1140 00:54:29,540 --> 00:54:31,790 Тако смо збринути празан листе. 1141 00:54:31,790 --> 00:54:35,500 И ту смо се побринуо за убацивање нешто на крају листе. 1142 00:54:35,500 --> 00:54:38,930 Тако да изгледа као овај док петље узимање брига о стварима између, 1143 00:54:38,930 --> 00:54:41,920 негде на листи ако постоји су ствари на листи. 1144 00:54:41,920 --> 00:54:42,280 >> У реду. 1145 00:54:42,280 --> 00:54:44,310 Хајде да покренете овај програм поново. 1146 00:54:44,310 --> 00:54:50,170 1147 00:54:50,170 --> 00:54:50,755 Не успе. 1148 00:54:50,755 --> 00:54:52,190 >> ПУБЛИКА: Ниси га направи. 1149 00:54:52,190 --> 00:54:53,940 >> ЈАСОН Хирсцххорн: О, Нисам га направити. 1150 00:54:53,940 --> 00:54:56,250 Добра поента, Мајкл. 1151 00:54:56,250 --> 00:54:57,500 Хајде да додате марка везана. 1152 00:54:57,500 --> 00:55:01,590 1153 00:55:01,590 --> 00:55:04,830 Линија 87 има грешка. 1154 00:55:04,830 --> 00:55:05,420 Линија 87. 1155 00:55:05,420 --> 00:55:06,600 Алден, ово је линија коју си ми дала. 1156 00:55:06,600 --> 00:55:08,962 Шта није у реду? 1157 00:55:08,962 --> 00:55:10,710 >> ПУБЛИКА: То мора да буде на нулл. 1158 00:55:10,710 --> 00:55:11,000 >> ЈАСОН Хирсцххорн: Одлично. 1159 00:55:11,000 --> 00:55:11,630 Тачно у праву. 1160 00:55:11,630 --> 00:55:13,290 То би требало да буде нула. 1161 00:55:13,290 --> 00:55:15,210 Идемо поново направити. 1162 00:55:15,210 --> 00:55:17,220 Цомпиле. 1163 00:55:17,220 --> 00:55:17,890 У реду. 1164 00:55:17,890 --> 00:55:19,400 Хајде да убаците три. 1165 00:55:19,400 --> 00:55:20,570 Уметак је био успешан. 1166 00:55:20,570 --> 00:55:21,660 Хајде да га одштампате. 1167 00:55:21,660 --> 00:55:23,590 О, ако само можемо да проверимо. 1168 00:55:23,590 --> 00:55:25,500 Али нисмо урадили принт још функцију. 1169 00:55:25,500 --> 00:55:27,840 Хајде да унесете нешто друго. 1170 00:55:27,840 --> 00:55:29,090 Шта би требало да улазимо? 1171 00:55:29,090 --> 00:55:31,120 1172 00:55:31,120 --> 00:55:31,940 >> ПУБЛИКА: Седам. 1173 00:55:31,940 --> 00:55:33,340 >> ЈАСОН Хирсцххорн: Седам? 1174 00:55:33,340 --> 00:55:34,590 >> ПУБЛИКА: Да. 1175 00:55:34,590 --> 00:55:38,680 1176 00:55:38,680 --> 00:55:39,780 >> ЈАСОН Хирсцххорн: Имамо СЕГ грешку. 1177 00:55:39,780 --> 00:55:43,760 Тако смо добили једну, али ми је јасно не могу да добију две. 1178 00:55:43,760 --> 00:55:45,690 То је 5:07. 1179 00:55:45,690 --> 00:55:48,370 Тако смо могли да дебуг ово за три минута. 1180 00:55:48,370 --> 00:55:51,240 Али ја ћу да нас оставити овде и прешли на хасх табеле. 1181 00:55:51,240 --> 00:55:54,290 Али опет, одговори за овај код Ја ћу га пошаљи на вас у мало. 1182 00:55:54,290 --> 00:55:55,440 Веома смо близу тога. 1183 00:55:55,440 --> 00:55:58,300 Ја високо вам и да схватим шта се овде дешава и то поправити. 1184 00:55:58,300 --> 00:56:02,400 Па ја ћу вам пошаљи овај код као добро, плус решење - 1185 00:56:02,400 --> 00:56:03,670 вероватно решење касније. 1186 00:56:03,670 --> 00:56:05,110 Прво овај код. 1187 00:56:05,110 --> 00:56:08,290 >> Друга ствар желим да урадим пре него што смо ми финиш је нисмо ослободили ништа. 1188 00:56:08,290 --> 00:56:10,370 Дакле, желим да вам покажем шта валгринд изгледа. 1189 00:56:10,370 --> 00:56:14,310 Ако покренете валгринд границе на нашем програму,. / повезани. 1190 00:56:14,310 --> 00:56:22,540 Опет, према овом слајд, ми треба валгринд покренути са неком врстом 1191 00:56:22,540 --> 00:56:26,410 опција, у овом случају - Цурење-провера = пун. 1192 00:56:26,410 --> 00:56:27,660 Дакле, хајде да напишем валгринд - Цурење-провера = пун. 1193 00:56:27,660 --> 00:56:31,910 1194 00:56:31,910 --> 00:56:35,080 Тако ће ово покренути валгринд на нашем програму. 1195 00:56:35,080 --> 00:56:37,000 И сада се програм заправо ради. 1196 00:56:37,000 --> 00:56:40,190 Зато ћемо га покренете као пре, ставити нешто унутра 1197 00:56:40,190 --> 00:56:40,830 Идем да ставим у три. 1198 00:56:40,830 --> 00:56:41,790 То функционише. 1199 00:56:41,790 --> 00:56:43,202 Нећу покушати да стави у нечему друго, јер ћемо 1200 00:56:43,202 --> 00:56:44,710 добити СЕГ лажно у том случају. 1201 00:56:44,710 --> 00:56:46,700 Зато ћу само да престанем. 1202 00:56:46,700 --> 00:56:50,160 >> И сад ви видите овде процуре и резиме гомила. 1203 00:56:50,160 --> 00:56:52,310 То су добре ствари које желите да проверите. 1204 00:56:52,310 --> 00:56:56,780 Дакле, резиме гомила - каже, у употреби на излазу - осам бајтова у једном блоку. 1205 00:56:56,780 --> 00:56:58,370 Тај блок је чвор смо маллоцед. 1206 00:56:58,370 --> 00:57:02,230 Мајкл, рекао си раније чвор је осам уједа јер има цео број 1207 00:57:02,230 --> 00:57:02,680 и показивач. 1208 00:57:02,680 --> 00:57:04,550 Дакле, то је наш чвор. 1209 00:57:04,550 --> 00:57:08,170 И онда се каже да користи маллоц седам пута и ми ослобођени 1210 00:57:08,170 --> 00:57:08,940 нешто шест пута. 1211 00:57:08,940 --> 00:57:13,680 Али ми никада звали бесплатно, па немам Идеја о чему говори. 1212 00:57:13,680 --> 00:57:18,490 >> Али довољно је рећи да када ваш Покренуће се програм, маллоц се зове 1213 00:57:18,490 --> 00:57:20,330 у неким другим местима које смо Не треба да бринете о томе. 1214 00:57:20,330 --> 00:57:22,460 Дакле маллоц је вероватно звао у неким местима. 1215 00:57:22,460 --> 00:57:24,480 Ми не треба да се бринете где. 1216 00:57:24,480 --> 00:57:26,240 Али ово је стварно нас. 1217 00:57:26,240 --> 00:57:27,380 Ова прва линија нам је. 1218 00:57:27,380 --> 00:57:28,320 Оставили смо тај блок. 1219 00:57:28,320 --> 00:57:30,330 И можете да видите да је овде у сажетку цурења. 1220 00:57:30,330 --> 00:57:31,950 Ипак доступни - 1221 00:57:31,950 --> 00:57:32,930 осам бајтова у једном блоку. 1222 00:57:32,930 --> 00:57:34,100 То значи да је меморија - 1223 00:57:34,100 --> 00:57:35,730 ми смо ту процурила меморију. 1224 00:57:35,730 --> 00:57:37,570 Дефинитивно је изгубио - 1225 00:57:37,570 --> 00:57:38,770 нешто је изгубљено заувек. 1226 00:57:38,770 --> 00:57:40,590 Генерално, нећете види ништа тамо. 1227 00:57:40,590 --> 00:57:44,780 Још доступна је генерално где видећете ствари, где ћете желети 1228 00:57:44,780 --> 00:57:48,900 да изгледају да видим шта код који треба су ослобођени, али сте заборавили да ослободите. 1229 00:57:48,900 --> 00:57:53,170 >> А онда, ако то није био случај, ако смо урадили све бесплатан, 1230 00:57:53,170 --> 00:57:54,360 можемо проверити да. 1231 00:57:54,360 --> 00:57:57,330 Хајде само покрените програм не доводећи у шта. 1232 00:57:57,330 --> 00:57:59,800 Видећете овде у употреби на излазу - 1233 00:57:59,800 --> 00:58:01,310 нула нула бајта у блоковима. 1234 00:58:01,310 --> 00:58:06,310 То значи да смо имали ништа преостало када је овај програм изашао. 1235 00:58:06,310 --> 00:58:12,090 Дакле, пре него што у псет6, покрените валгринд и уверите се да немате 1236 00:58:12,090 --> 00:58:15,310 свака меморија цури у вашем програму. 1237 00:58:15,310 --> 00:58:17,910 Ако имате било каквих питања са валгринд, слободно да допре. 1238 00:58:17,910 --> 00:58:18,700 Али ово је како га користите. 1239 00:58:18,700 --> 00:58:20,890 Врло једноставно - видим да ли имати у употреби на излазу - 1240 00:58:20,890 --> 00:58:22,270 било бајта у икаквих блокова. 1241 00:58:22,270 --> 00:58:27,890 1242 00:58:27,890 --> 00:58:29,580 >> Тако смо радили на инсерт чвору. 1243 00:58:29,580 --> 00:58:33,840 Имао сам две друге функције овде - принт чворови и бесплатне чворова. 1244 00:58:33,840 --> 00:58:37,780 Опет, то су функције које су ће бити добро за вас да вежбате 1245 00:58:37,780 --> 00:58:40,990 јер они ће вам помоћи не само са Ове једноставне вежбе, али и 1246 00:58:40,990 --> 00:58:42,180 о проблему сет. 1247 00:58:42,180 --> 00:58:44,230 Они мап на прилично тесно у ствари ћеш морати да уради у 1248 00:58:44,230 --> 00:58:45,010 Проблем сет. 1249 00:58:45,010 --> 00:58:47,640 Али ја желим да се уверите ве тоуцх на свему. 1250 00:58:47,640 --> 00:58:50,400 И хасх табеле су такође од кључног значаја за шта ми радимо у овом одељку 1251 00:58:50,400 --> 00:58:51,980 недеља - или у сету проблема. 1252 00:58:51,980 --> 00:58:55,200 >> Тако ћемо завршити одељак говорим о хеш табеле. 1253 00:58:55,200 --> 00:58:58,140 Ако приметите да се мало хасх табела. 1254 00:58:58,140 --> 00:59:00,020 То није оно што ми говоримо око, међутим. 1255 00:59:00,020 --> 00:59:03,540 Ми говоримо о другачији врста хеш табеле. 1256 00:59:03,540 --> 00:59:07,300 И у својој сржи, хеш табели није ништа више него 1257 00:59:07,300 --> 00:59:08,860 низ плус хасх функција. 1258 00:59:08,860 --> 00:59:11,150 Идемо да разговарамо за мало само да уверите се да сви разумеју шта је 1259 00:59:11,150 --> 00:59:12,110 хасх функција је. 1260 00:59:12,110 --> 00:59:15,420 А ја вам кажем да је сада ништа више од две ствари - 1261 00:59:15,420 --> 00:59:18,590 низ и хасх функција. 1262 00:59:18,590 --> 00:59:20,716 И овде су кораци кроз који то ради. 1263 00:59:20,716 --> 00:59:31,560 1264 00:59:31,560 --> 00:59:32,810 >> Ту је наш низ. 1265 00:59:32,810 --> 00:59:38,460 1266 00:59:38,460 --> 00:59:39,460 Ту је наша функција. 1267 00:59:39,460 --> 00:59:43,180 Посебно, хеш функције треба да урадите пар ствари са овим. 1268 00:59:43,180 --> 00:59:45,040 Идем да разговарамо конкретно о овом проблему сет. 1269 00:59:45,040 --> 00:59:46,450 Вероватно ће узети у низу. 1270 00:59:46,450 --> 00:59:50,570 1271 00:59:50,570 --> 00:59:51,770 И шта ће да се врати? 1272 00:59:51,770 --> 00:59:52,640 Који тип података? 1273 00:59:52,640 --> 00:59:54,260 Алден? 1274 00:59:54,260 --> 00:59:55,760 Ваш хасх функција вратити? 1275 00:59:55,760 --> 00:59:58,760 Цео број. 1276 00:59:58,760 --> 01:00:01,700 Дакле, то је оно што тараба табела се састоји од - 1277 01:00:01,700 --> 01:00:05,430 табела у облику низа и хасх функција. 1278 01:00:05,430 --> 01:00:06,010 Како то ради? 1279 01:00:06,010 --> 01:00:07,300 Она ради у три корака. 1280 01:00:07,300 --> 01:00:08,740 Ми му дати кључ. 1281 01:00:08,740 --> 01:00:11,470 У овом случају, ми ћемо му дати стринг. 1282 01:00:11,470 --> 01:00:18,140 Позивамо тараба функцију по коефицијенту један на тастеру и добијамо вредност. 1283 01:00:18,140 --> 01:00:20,310 >> Конкретно, ми ћемо рећи добијамо цео број. 1284 01:00:20,310 --> 01:00:25,630 То цео број, постоје врло специфична границе онога што је цео број може бити. 1285 01:00:25,630 --> 01:00:28,880 У овом примеру, наш арраи је величине три. 1286 01:00:28,880 --> 01:00:32,330 Дакле, шта може да бројеви цео број бити. 1287 01:00:32,330 --> 01:00:35,970 Шта је опсег валидних вредности за да цео, тип овај повратак 1288 01:00:35,970 --> 01:00:37,220 хасх функцију? 1289 01:00:37,220 --> 01:00:40,440 1290 01:00:40,440 --> 01:00:42,110 Нула, један и два. 1291 01:00:42,110 --> 01:00:46,060 Тачка хеш функције је да се схватим место у низу 1292 01:00:46,060 --> 01:00:47,790 где је наш кључ иде. 1293 01:00:47,790 --> 01:00:51,290 Постоје само три могућа места овде - 1294 01:00:51,290 --> 01:00:52,130 нула, један или два. 1295 01:00:52,130 --> 01:00:55,360 Дакле, ова функција боље повратак нула, један или два. 1296 01:00:55,360 --> 01:00:58,740 Неки важи индице у овом низу. 1297 01:00:58,740 --> 01:01:02,770 >> А онда у зависности од тога где се враћа, можете видети стићи низ отворен 1298 01:01:02,770 --> 01:01:03,730 изједначи вредност. 1299 01:01:03,730 --> 01:01:05,800 Ту смо ставили кључ. 1300 01:01:05,800 --> 01:01:11,280 Тако смо бацити у бундеву, изађемо нула. 1301 01:01:11,280 --> 01:01:15,540 На низа носач 0, ставили смо бундеву. 1302 01:01:15,540 --> 01:01:21,070 Ми баци у мачака, изађемо један. 1303 01:01:21,070 --> 01:01:24,110 Ставили смо мачку у једном. 1304 01:01:24,110 --> 01:01:25,480 Ми смо ставили у паука. 1305 01:01:25,480 --> 01:01:26,710 Ми изаћи два. 1306 01:01:26,710 --> 01:01:30,200 Ставили смо паука у низу носач два. 1307 01:01:30,200 --> 01:01:32,300 Било би тако лепо када упалило је тако. 1308 01:01:32,300 --> 01:01:35,570 Али, нажалост, као што ћемо видети, то је мало компликованије. 1309 01:01:35,570 --> 01:01:37,570 >> Пре него што стигнемо тамо, било каква питања о овоме основна 1310 01:01:37,570 --> 01:01:38,820 сет-уп хеш табели? 1311 01:01:38,820 --> 01:01:49,050 1312 01:01:49,050 --> 01:01:51,940 Ово је слика од тачно оно што нацртао на табли. 1313 01:01:51,940 --> 01:01:55,420 Али пошто ми је нацртао на табли, ја нећу даље ићи у њу. 1314 01:01:55,420 --> 01:02:00,430 У суштини тастери, магија црна кутија - или у овом случају, тиркизна кутија - од 1315 01:02:00,430 --> 01:02:02,410 хасх функција их ставља у кантама. 1316 01:02:02,410 --> 01:02:04,690 И у овом примеру смо не стављајући име. 1317 01:02:04,690 --> 01:02:07,880 Ми смо стављањем у вези телефона број имена у кофу. 1318 01:02:07,880 --> 01:02:10,430 Али си могао врло добро само ставите име у кофу. 1319 01:02:10,430 --> 01:02:12,950 >> Ово је само слика онога ми нацртао на табли. 1320 01:02:12,950 --> 01:02:14,460 Ми имамо потенцијалне замке, мада. 1321 01:02:14,460 --> 01:02:17,470 А ту су и два посебно слајдове да желим да идем преко. 1322 01:02:17,470 --> 01:02:20,230 Први је око хасх функција. 1323 01:02:20,230 --> 01:02:22,620 Зато сам поставио питање, шта чини добар хасх функција? 1324 01:02:22,620 --> 01:02:24,220 Дајем два одговора. 1325 01:02:24,220 --> 01:02:26,630 Први је да је детерминистички. 1326 01:02:26,630 --> 01:02:29,660 У контексту хеш функција, шта то значи? 1327 01:02:29,660 --> 01:02:37,840 1328 01:02:37,840 --> 01:02:39,282 Да? 1329 01:02:39,282 --> 01:02:42,850 >> ПУБЛИКА: То може наћи индекс у сталном времену? 1330 01:02:42,850 --> 01:02:43,810 >> ЈАСОН Хирсцххорн: То није шта то значи. 1331 01:02:43,810 --> 01:02:44,725 Али то је добра претпоставка. 1332 01:02:44,725 --> 01:02:46,100 Још неко има претпоставку шта то значи? 1333 01:02:46,100 --> 01:02:47,780 То је добра хасх функција је детерминистички? 1334 01:02:47,780 --> 01:02:48,280 Ени? 1335 01:02:48,280 --> 01:02:51,680 >> ПУБЛИКА: То кључ може да се мапира само на једном месту у хасх табели. 1336 01:02:51,680 --> 01:02:53,070 >> ЈАСОН Хирсцххорн: То је потпуно тачно. 1337 01:02:53,070 --> 01:02:57,430 Сваки пут када ставите у бундеву, увек враћа нулу. 1338 01:02:57,430 --> 01:03:01,660 Ако сте ставили у вашем бундевом и хашиш Функција враћа нулу, али има 1339 01:03:01,660 --> 01:03:06,060 вероватноћа повратка нешто друго већа од нуле - 1340 01:03:06,060 --> 01:03:09,280 па можда може да се врати један понекад или два пута - 1341 01:03:09,280 --> 01:03:11,100 да није добар хасх функција. 1342 01:03:11,100 --> 01:03:11,800 Тотално си у праву. 1343 01:03:11,800 --> 01:03:15,680 Ваш хасх функција треба да врати исти прецизан цео број, у овом случају, за 1344 01:03:15,680 --> 01:03:17,780 исти тачан низ. 1345 01:03:17,780 --> 01:03:22,210 >> Можда враћа исту тачан цео број за исти тачан стринг 1346 01:03:22,210 --> 01:03:24,430 без обзира на капитализације. 1347 01:03:24,430 --> 01:03:27,980 Али у том случају то је још увек детерминистички јер више ствари 1348 01:03:27,980 --> 01:03:29,350 су мапирана на исту вредност. 1349 01:03:29,350 --> 01:03:30,170 То је у реду. 1350 01:03:30,170 --> 01:03:32,615 Докле год постоји само један излаз за дату унос. 1351 01:03:32,615 --> 01:03:35,630 1352 01:03:35,630 --> 01:03:36,350 >> У реду. 1353 01:03:36,350 --> 01:03:38,340 Друга ствар је да је враћа валидне индексе. 1354 01:03:38,340 --> 01:03:40,220 Донели смо се да раније. 1355 01:03:40,220 --> 01:03:41,860 Ова хасх функција - 1356 01:03:41,860 --> 01:03:43,710 Ох бои - 1357 01:03:43,710 --> 01:03:46,840 хасх функција треба врати валидне индексе. 1358 01:03:46,840 --> 01:03:47,740 Тако кажу - 1359 01:03:47,740 --> 01:03:48,990 хајде да се вратимо на овом примеру. 1360 01:03:48,990 --> 01:03:52,580 1361 01:03:52,580 --> 01:03:57,540 Мој хасх функција пребројава горе слова у речи. 1362 01:03:57,540 --> 01:03:58,380 То је хасх функција. 1363 01:03:58,380 --> 01:03:59,740 И то враћа цео број. 1364 01:03:59,740 --> 01:04:04,280 Дакле, ако ја имам реч А, то је ће да се врати један. 1365 01:04:04,280 --> 01:04:06,900 И то ће да стави овде. 1366 01:04:06,900 --> 01:04:09,430 Шта ако сам ставио у речи палицом? 1367 01:04:09,430 --> 01:04:11,310 То ће да се врати три. 1368 01:04:11,310 --> 01:04:12,560 Где ићи палицом? 1369 01:04:12,560 --> 01:04:18,730 1370 01:04:18,730 --> 01:04:19,750 >> То се не уклапа. 1371 01:04:19,750 --> 01:04:21,000 Али то мора да иде негде. 1372 01:04:21,000 --> 01:04:23,340 Ово је мој хеш табела после свега, и све мора да иде негде. 1373 01:04:23,340 --> 01:04:24,590 Па где би требало да иду палицом? 1374 01:04:24,590 --> 01:04:28,020 1375 01:04:28,020 --> 01:04:28,710 Било која мисли? 1376 01:04:28,710 --> 01:04:29,450 Нагађања? 1377 01:04:29,450 --> 01:04:30,280 Добри нагађања? 1378 01:04:30,280 --> 01:04:31,220 >> ПУБЛИКА: Нула. 1379 01:04:31,220 --> 01:04:32,120 >> ЈАСОН Хирсцххорн: Зашто нула? 1380 01:04:32,120 --> 01:04:35,990 >> ПУБЛИКА: Због три модулу три је нула? 1381 01:04:35,990 --> 01:04:38,620 >> ЈАСОН Хирсцххорн: Три модулу три је нула. 1382 01:04:38,620 --> 01:04:40,810 То је велика претпоставка, и то је тачно. 1383 01:04:40,810 --> 01:04:43,870 Дакле, у овом случају то би требало вероватно ићи на нулу. 1384 01:04:43,870 --> 01:04:51,080 Дакле, добар начин да се осигура да ова тараба Функција враћа само валидне индекса се 1385 01:04:51,080 --> 01:04:54,580 да је модулу величином табеле. 1386 01:04:54,580 --> 01:04:57,360 Ако по модулу шта год то враћа по три, увек ћете добити 1387 01:04:57,360 --> 01:05:00,930 нешто између нуле, један, и два. 1388 01:05:00,930 --> 01:05:05,160 А ако то увек враћа седам, а увек по модулу по три, ти си 1389 01:05:05,160 --> 01:05:06,030 увек ће добити исту ствар. 1390 01:05:06,030 --> 01:05:09,270 >> Дакле, то је још увек детерминистички ако по модулу. 1391 01:05:09,270 --> 01:05:11,420 Али то ће обезбедити да вам никад добити нешто - 1392 01:05:11,420 --> 01:05:12,940 неважећи индустрија. 1393 01:05:12,940 --> 01:05:16,840 Генерално, треба да се деси да по модулу унутар вашег хеш функције. 1394 01:05:16,840 --> 01:05:18,240 Дакле, не морате да бринете о томе. 1395 01:05:18,240 --> 01:05:20,555 Можете само да обезбеди да ово је валидан индице. 1396 01:05:20,555 --> 01:05:23,700 1397 01:05:23,700 --> 01:05:26,700 Имате питања о овоме потенцијал замка? 1398 01:05:26,700 --> 01:05:36,590 1399 01:05:36,590 --> 01:05:39,060 >> У реду. 1400 01:05:39,060 --> 01:05:40,290 И тамо идемо. 1401 01:05:40,290 --> 01:05:42,890 Даље потенцијал замка, и ово је велика. 1402 01:05:42,890 --> 01:05:46,880 Шта ако два тастера карта на истој вредности? 1403 01:05:46,880 --> 01:05:49,350 Дакле, постоје два начина да се то опслужи. 1404 01:05:49,350 --> 01:05:53,140 1405 01:05:53,140 --> 01:05:56,020 Први се зове линеарни прескок, који сам 1406 01:05:56,020 --> 01:05:57,300 неће ићи преко. 1407 01:05:57,300 --> 01:06:01,120 Али треба да буду упознати са тиме како да ради и шта је то. 1408 01:06:01,120 --> 01:06:05,610 >> Други ћу да идем преко јер да је онај који многи 1409 01:06:05,610 --> 01:06:08,290 људи ће вероватно завршити одлучивању да користе у свом сету проблема. 1410 01:06:08,290 --> 01:06:09,820 Наравно, не морате да. 1411 01:06:09,820 --> 01:06:15,280 Али за проблем скуп, многи људи имају тенденцију да бирају да створи хеш табелу 1412 01:06:15,280 --> 01:06:17,950 са посебном цхаининг спровођења њихов речник. 1413 01:06:17,950 --> 01:06:21,390 Тако ћемо ићи преко онога што то значи да створи хеш табелу са 1414 01:06:21,390 --> 01:06:23,890 одвојена Уланчавање. 1415 01:06:23,890 --> 01:06:26,260 >> Тако сам ставио у бундеву. 1416 01:06:26,260 --> 01:06:29,560 То враћа нулу. 1417 01:06:29,560 --> 01:06:31,410 И ја ставио овде бундеву. 1418 01:06:31,410 --> 01:06:35,880 1419 01:06:35,880 --> 01:06:37,930 Онда сам ставио на - 1420 01:06:37,930 --> 01:06:39,922 шта је још једна Ноћ вештица тематске-ствар? 1421 01:06:39,922 --> 01:06:42,200 >> ПУБЛИКА: Цанди. 1422 01:06:42,200 --> 01:06:42,770 >> ЈАСОН Хирсцххорн: Цанди! 1423 01:06:42,770 --> 01:06:43,910 То је велики један. 1424 01:06:43,910 --> 01:06:47,760 Ставио сам у слаткиша, бомбона и такође ми даје нулу. 1425 01:06:47,760 --> 01:06:49,350 Шта да радим? 1426 01:06:49,350 --> 01:06:51,940 Нека идеја? 1427 01:06:51,940 --> 01:06:53,940 Зато што сте сви некако знају шта је одвојено Уланчавање. 1428 01:06:53,940 --> 01:06:55,190 Дакле, никакве идеје шта да радим? 1429 01:06:55,190 --> 01:06:58,170 1430 01:06:58,170 --> 01:06:59,110 Да. 1431 01:06:59,110 --> 01:07:03,810 >> ПУБЛИКА: Стављање тетиве заправо у хасх табели. 1432 01:07:03,810 --> 01:07:08,910 >> ЈАСОН Хирсцххорн: Значи идемо у извући добру идеју овде. 1433 01:07:08,910 --> 01:07:09,340 У реду. 1434 01:07:09,340 --> 01:07:12,290 >> ПУБЛИКА: Да ли су Хасхтабле [ИНАУДИБЛЕ] 1435 01:07:12,290 --> 01:07:16,640 показивач који указује на почетак листе. 1436 01:07:16,640 --> 01:07:20,930 А онда су бундева бити прва вредност у тој повезаној листи и слаткиша бити 1437 01:07:20,930 --> 01:07:22,800 друга вредност у тој повезаној листи. 1438 01:07:22,800 --> 01:07:23,420 >> ЈАСОН Хирсцххорн: У реду. 1439 01:07:23,420 --> 01:07:24,670 Марко, који је био изузетан. 1440 01:07:24,670 --> 01:07:26,160 Идем да се пробије тај доле. 1441 01:07:26,160 --> 01:07:28,890 Маркус каже не препишете бундеву. 1442 01:07:28,890 --> 01:07:30,660 То би било лоше. 1443 01:07:30,660 --> 01:07:33,640 Не стављајте слаткише негде другде. 1444 01:07:33,640 --> 01:07:35,390 Идемо да их обоје на нулу. 1445 01:07:35,390 --> 01:07:37,770 Али, ми ћемо да се баве стављајући их на нулу 1446 01:07:37,770 --> 01:07:39,395 креирање листе на нули. 1447 01:07:39,395 --> 01:07:42,430 И ми ћемо направити листу све што мапиране на нулу. 1448 01:07:42,430 --> 01:07:47,960 А најбољи начин смо научили да се створи листа која може да расте и скупља 1449 01:07:47,960 --> 01:07:49,840 динамички није у други низ. 1450 01:07:49,840 --> 01:07:51,510 Дакле, не вишедимензионални низ. 1451 01:07:51,510 --> 01:07:54,080 Али управо креирали повезану листу. 1452 01:07:54,080 --> 01:07:55,330 >> Дакле, оно што је он предложио - 1453 01:07:55,330 --> 01:07:57,950 1454 01:07:57,950 --> 01:07:59,200 Идем да се нови - 1455 01:07:59,200 --> 01:08:15,380 1456 01:08:15,380 --> 01:08:19,689 је створити низ са показивача, низ показивача. 1457 01:08:19,689 --> 01:08:20,580 У реду. 1458 01:08:20,580 --> 01:08:24,180 Свака идеја или наговештај шта тип овог показивача треба да буде? 1459 01:08:24,180 --> 01:08:26,290 Маркус? 1460 01:08:26,290 --> 01:08:27,250 >> ПУБЛИКА: показивачи на - 1461 01:08:27,250 --> 01:08:28,609 >> ЈАСОН Хирсцххорн: Зато што вам рекао је повезана листа, тако - 1462 01:08:28,609 --> 01:08:29,520 >> ПУБЛИКА: Чвор показивачи? 1463 01:08:29,520 --> 01:08:30,670 >> ЈАСОН Хирсцххорн: Чвор показивачи. 1464 01:08:30,670 --> 01:08:32,830 Ако се ствари у наш повезан листа су чворови онда они 1465 01:08:32,830 --> 01:08:34,370 би требало да буде чворова показивачи. 1466 01:08:34,370 --> 01:08:35,939 А шта су они у почетку равно? 1467 01:08:35,939 --> 01:08:36,990 >> ПУБЛИКА: Нулл. 1468 01:08:36,990 --> 01:08:38,240 >> ЈАСОН Хирсцххорн: Нула. 1469 01:08:38,240 --> 01:08:44,540 1470 01:08:44,540 --> 01:08:46,080 Дакле, ту је наша ствар празна. 1471 01:08:46,080 --> 01:08:47,170 Бундева враћа нулу. 1472 01:08:47,170 --> 01:08:48,569 Шта да радимо? 1473 01:08:48,569 --> 01:08:49,609 Шетња ми кроз њега? 1474 01:08:49,609 --> 01:08:50,810 Заправо, Маркус већ ми је дао. 1475 01:08:50,810 --> 01:08:52,439 Неко други ме је ходати кроз њу. 1476 01:08:52,439 --> 01:08:54,760 Шта радимо када смо - 1477 01:08:54,760 --> 01:08:56,609 ово изгледа веома слично оно што смо управо радили. 1478 01:08:56,609 --> 01:08:57,396 Ави. 1479 01:08:57,396 --> 01:08:59,090 >> ПУБЛИКА: Идем да нагађамо. 1480 01:08:59,090 --> 01:09:01,250 Дакле, када се бомбона. 1481 01:09:01,250 --> 01:09:01,640 >> ЈАСОН Хирсцххорн: Да. 1482 01:09:01,640 --> 01:09:03,120 Па, имамо бундевице. 1483 01:09:03,120 --> 01:09:03,870 Хајде да наш први. 1484 01:09:03,870 --> 01:09:04,324 Имамо бундеву. 1485 01:09:04,324 --> 01:09:04,779 >> ПУБЛИКА: У реду. 1486 01:09:04,779 --> 01:09:05,880 Бундева враћа нулу. 1487 01:09:05,880 --> 01:09:08,770 Дакле, ви га ставите у то. 1488 01:09:08,770 --> 01:09:10,810 Или заправо, ви га ставите у повезаној листи. 1489 01:09:10,810 --> 01:09:13,550 >> ЈАСОН Хирсцххорн: Како ми радимо стави га у повезаној листи? 1490 01:09:13,550 --> 01:09:15,479 >> ПУБЛИКА: О, стварна синтакса? 1491 01:09:15,479 --> 01:09:16,240 >> ЈАСОН Хирсцххорн: Само ходај - 1492 01:09:16,240 --> 01:09:16,740 кажу више. 1493 01:09:16,740 --> 01:09:19,310 Шта да радимо? 1494 01:09:19,310 --> 01:09:22,100 >> ПУБЛИКА: Само убаците она као први чвор. 1495 01:09:22,100 --> 01:09:22,675 >> ЈАСОН Хирсцххорн: У реду. 1496 01:09:22,675 --> 01:09:29,069 Дакле, имамо чвор, бундеву. 1497 01:09:29,069 --> 01:09:31,560 И сад како да га убаците? 1498 01:09:31,560 --> 01:09:34,590 1499 01:09:34,590 --> 01:09:37,090 >> ПУБЛИКА: Можете доделити је на показивачу. 1500 01:09:37,090 --> 01:09:37,970 >> ЈАСОН Хирсцххорн: Које показивач? 1501 01:09:37,970 --> 01:09:39,620 >> ПУБЛИКА: показивач на нули. 1502 01:09:39,620 --> 01:09:41,420 >> ЈАСОН Хирсцххорн: Па где зар ово ствар? 1503 01:09:41,420 --> 01:09:42,810 >> ПУБЛИКА: За сада нулл. 1504 01:09:42,810 --> 01:09:43,529 >> ЈАСОН Хирсцххорн: Па, то указује на нулл. 1505 01:09:43,529 --> 01:09:44,499 Али ја стављам у бундеву. 1506 01:09:44,499 --> 01:09:46,053 Па где би требало да укаже? 1507 01:09:46,053 --> 01:09:46,880 >> ПУБЛИКА: За пумпкин. 1508 01:09:46,880 --> 01:09:47,399 >> ЈАСОН Хирсцххорн: За бундеву. 1509 01:09:47,399 --> 01:09:48,760 Тачно. 1510 01:09:48,760 --> 01:09:50,010 Дакле, ово указује на бундеву. 1511 01:09:50,010 --> 01:09:52,500 1512 01:09:52,500 --> 01:09:54,250 А где то ради показивач у тачки бундеве? 1513 01:09:54,250 --> 01:09:57,986 1514 01:09:57,986 --> 01:09:58,340 До 1515 01:09:58,340 --> 01:09:58,590 >> ПУБЛИКА: Нулл. 1516 01:09:58,590 --> 01:09:59,210 >> ЈАСОН Хирсцххорн: За нулл. 1517 01:09:59,210 --> 01:10:00,460 Тачно. 1518 01:10:00,460 --> 01:10:03,570 1519 01:10:03,570 --> 01:10:05,140 Дакле, ми смо само убаци нешто у повезаној листи. 1520 01:10:05,140 --> 01:10:07,210 Ми само написао овај код да се то уради. 1521 01:10:07,210 --> 01:10:09,520 Скоро смо га скоро добили потпуно испуцала. 1522 01:10:09,520 --> 01:10:10,790 Сада смо убацили слаткише. 1523 01:10:10,790 --> 01:10:13,480 Наш бомбона такође иде на нулу. 1524 01:10:13,480 --> 01:10:16,100 Па шта да радимо са бомбона? 1525 01:10:16,100 --> 01:10:18,790 >> ПУБЛИКА: То зависи од тога да ли или не покушавамо да га сортирају. 1526 01:10:18,790 --> 01:10:19,640 >> ЈАСОН Хирсцххорн: То је потпуно тачно. 1527 01:10:19,640 --> 01:10:21,070 То зависи од тога да ли или не ми покушавамо да га сортирају. 1528 01:10:21,070 --> 01:10:22,660 Претпоставимо да нисмо ће то средити. 1529 01:10:22,660 --> 01:10:24,880 >> ПУБЛИКА: Па онда, као што смо разговарали пре, то је најједноставније само да га стави 1530 01:10:24,880 --> 01:10:28,590 одмах на почетку, тако да се показивач од нула поена до слаткиша. 1531 01:10:28,590 --> 01:10:29,020 >> ЈАСОН Хирсцххорн: У реду. 1532 01:10:29,020 --> 01:10:29,380 Држи се. 1533 01:10:29,380 --> 01:10:30,630 Дозволите ми да створи слаткише овде. 1534 01:10:30,630 --> 01:10:34,030 1535 01:10:34,030 --> 01:10:35,150 Дакле, ово показивач - 1536 01:10:35,150 --> 01:10:37,590 >> ПУБЛИКА: Да, требало би сада се указује на бомбоне. 1537 01:10:37,590 --> 01:10:40,580 Затим имамо показивач из бомбона тачка на бундеву. 1538 01:10:40,580 --> 01:10:43,140 1539 01:10:43,140 --> 01:10:44,560 >> ЈАСОН Хирсцххорн: Овако? 1540 01:10:44,560 --> 01:10:47,380 И кажу да имамо још један ствар да мапира на нулу? 1541 01:10:47,380 --> 01:10:48,660 >> ПУБЛИКА: Па, ви само раде исту ствар? 1542 01:10:48,660 --> 01:10:50,290 >> ЈАСОН Хирсцххорн: Да ли исту ствар. 1543 01:10:50,290 --> 01:10:53,700 Дакле, у овом случају, ако ми не урадимо желе да га се сортирају 1544 01:10:53,700 --> 01:10:55,270 Звучи прилично једноставно. 1545 01:10:55,270 --> 01:10:59,920 Ми се показивач у индице дато од стране наших хеш функције. 1546 01:10:59,920 --> 01:11:03,830 Ми имамо ту тачку на наш нови чвор. 1547 01:11:03,830 --> 01:11:07,830 И онда шта год да је указујући да раније - 1548 01:11:07,830 --> 01:11:10,620 у овом случају, у нулл Други случај бундева - 1549 01:11:10,620 --> 01:11:15,310 да, шта год то указује на раније, додамо у најближи 1550 01:11:15,310 --> 01:11:17,810 наш нови чвор. 1551 01:11:17,810 --> 01:11:19,650 Ми убацивање нешто у почетку. 1552 01:11:19,650 --> 01:11:22,900 У ствари, то је много једноставније него покушава да задржи листу сортиран. 1553 01:11:22,900 --> 01:11:25,340 Али опет, претраживање ће бити више компликује овде. 1554 01:11:25,340 --> 01:11:28,300 Увек ћемо морати да иду до краја. 1555 01:11:28,300 --> 01:11:29,650 >> У реду. 1556 01:11:29,650 --> 01:11:32,750 Сва питања у вези посебном цхаининг? 1557 01:11:32,750 --> 01:11:34,690 Како то функционише? 1558 01:11:34,690 --> 01:11:35,820 Молимо питајте их сада. 1559 01:11:35,820 --> 01:11:39,260 Ја стварно желим да се уверим да сви разумети пре него што кренемо. 1560 01:11:39,260 --> 01:11:48,410 1561 01:11:48,410 --> 01:11:52,060 >> ПУБЛИКА: Зашто сте ставили бундеве и бомбона у исти 1562 01:11:52,060 --> 01:11:54,108 део хасх табеле? 1563 01:11:54,108 --> 01:11:55,860 >> ЈАСОН Хирсцххорн: Добро питање. 1564 01:11:55,860 --> 01:11:59,140 Зашто смо их ставили у исти део хасх табеле? 1565 01:11:59,140 --> 01:12:03,200 Па, у овом случају наш хасх функција враћа нулу за обоје. 1566 01:12:03,200 --> 01:12:05,310 Дакле, они треба да иду на нулу индице јер то је место где ћемо 1567 01:12:05,310 --> 01:12:07,420 погледајте их ако ми икад Желим да их погледаш. 1568 01:12:07,420 --> 01:12:11,750 Опет, са линеарним пробинг приступа ми не би их ставио и на нулу. 1569 01:12:11,750 --> 01:12:13,900 Али у посебном приступу ланца, ћемо их ставити и на нули 1570 01:12:13,900 --> 01:12:16,620 а затим направите листу искључивање нуле. 1571 01:12:16,620 --> 01:12:20,140 >> А ми не желимо да препишете бундеве једноставно за то, јер тада ћемо 1572 01:12:20,140 --> 01:12:21,860 претпостављају да је бундева никад убачена. 1573 01:12:21,860 --> 01:12:25,230 Ако само држати једну ствар у локација да би било лоше. 1574 01:12:25,230 --> 01:12:28,590 Онда не би било Могуће нас икада - 1575 01:12:28,590 --> 01:12:31,660 ако смо икада имали дупликат, онда смо би само избрисати нашу почетну вредност. 1576 01:12:31,660 --> 01:12:34,090 Зато радимо овај приступ. 1577 01:12:34,090 --> 01:12:36,580 Или зато смо изабрали - али опет, ми изабрао посебан вез приступ, 1578 01:12:36,580 --> 01:12:39,670 који постоје многи други приступи могло изабрати. 1579 01:12:39,670 --> 01:12:41,185 Да ли то одговор на твоје питање? 1580 01:12:41,185 --> 01:12:41,660 >> У реду. 1581 01:12:41,660 --> 01:12:42,910 Карлос. 1582 01:12:42,910 --> 01:12:46,130 1583 01:12:46,130 --> 01:12:47,720 Линеарни прескок би подразумевало - 1584 01:12:47,720 --> 01:12:51,913 ако смо судар на нули, ми ће изгледати у следећем месту да види да ли 1585 01:12:51,913 --> 01:12:54,310 било је отворено и стави га тамо. 1586 01:12:54,310 --> 01:12:57,320 И онда гледамо у наредном спорту и види да ли је то било отворено и стави га тамо. 1587 01:12:57,320 --> 01:12:59,780 Дакле, налазимо следећи доступан отворено место и стави га тамо. 1588 01:12:59,780 --> 01:13:02,580 1589 01:13:02,580 --> 01:13:03,890 Има ли још питања? 1590 01:13:03,890 --> 01:13:05,370 Да, Ави. 1591 01:13:05,370 --> 01:13:07,490 >> ПУБЛИКА: Као наставак тога, шта мислите до следећег спот? 1592 01:13:07,490 --> 01:13:10,250 У хасх табеле или у повезаној листи. 1593 01:13:10,250 --> 01:13:12,100 >> ЈАСОН Хирсцххорн: За линеарне програмирање, но повезане листе. 1594 01:13:12,100 --> 01:13:13,400 Следећи место на хасх табеле. 1595 01:13:13,400 --> 01:13:13,820 >> ПУБЛИКА: У реду. 1596 01:13:13,820 --> 01:13:17,570 Дакле хасх табела ће бити иницијализована величини - 1597 01:13:17,570 --> 01:13:19,560 као што је број стрингова да сте уметања? 1598 01:13:19,560 --> 01:13:22,170 >> ЈАСОН Хирсцххорн: Би Желим да то буде заиста велики. 1599 01:13:22,170 --> 01:13:23,910 Да. 1600 01:13:23,910 --> 01:13:27,900 Овде је слика онога што смо само нацртао на табли. 1601 01:13:27,900 --> 01:13:29,470 Опет, имамо судар овде. 1602 01:13:29,470 --> 01:13:30,710 на 152. 1603 01:13:30,710 --> 01:13:33,570 И видећете смо креирали повезана листа ван ње. 1604 01:13:33,570 --> 01:13:38,200 1605 01:13:38,200 --> 01:13:41,850 Опет, хеш табела одвојена Уланчавање приступ није она коју 1606 01:13:41,850 --> 01:13:45,590 морати да подесите за проблеме шест али је онај који много 1607 01:13:45,590 --> 01:13:47,100 студенти имају тенденцију да преузме. 1608 01:13:47,100 --> 01:13:51,140 Дакле, у том смислу, нека нам укратко разговарамо пре него што кренете о проблему шест, 1609 01:13:51,140 --> 01:13:52,160 а онда ћу поделити са вама причу. 1610 01:13:52,160 --> 01:13:55,120 Имамо три минута. 1611 01:13:55,120 --> 01:13:55,750 >> Проблем сет шест. 1612 01:13:55,750 --> 01:13:57,790 Имате четири функције - 1613 01:13:57,790 --> 01:14:02,430 оптерећење, проверите, величина, и истовар. 1614 01:14:02,430 --> 01:14:03,380 Лоад - 1615 01:14:03,380 --> 01:14:07,120 добро, били смо преко оптерећења управо сада. 1616 01:14:07,120 --> 01:14:09,330 Ми нацртао оптерећење на табли. 1617 01:14:09,330 --> 01:14:13,230 И ми смо чак почели кодирање доста убацивање у повезаној листи. 1618 01:14:13,230 --> 01:14:18,020 Дакле оптерећење није много више од оно што смо управо радили. 1619 01:14:18,020 --> 01:14:21,070 >> Долазак је када имате нешто лоадед. 1620 01:14:21,070 --> 01:14:22,580 То је исти процес као ово. 1621 01:14:22,580 --> 01:14:26,845 Исти Прва два дела где бацају нешто у хеш функцију 1622 01:14:26,845 --> 01:14:29,190 и добити своју вредност. 1623 01:14:29,190 --> 01:14:30,700 Али сада нисмо га убаците. 1624 01:14:30,700 --> 01:14:33,350 Сада смо у потрази за њега. 1625 01:14:33,350 --> 01:14:37,130 Ја сам код узорак написан за проналажење нешто у повезаној листи. 1626 01:14:37,130 --> 01:14:38,250 Позивам вас да вежбам да. 1627 01:14:38,250 --> 01:14:43,000 Али интуитивно проналажење нешто је прилично сличан убацивању нешто. 1628 01:14:43,000 --> 01:14:46,540 Заиста, ми нацртао слику проналажења нешто у повезаној листи, креће 1629 01:14:46,540 --> 01:14:48,910 кроз све док имаш до краја. 1630 01:14:48,910 --> 01:14:52,430 А ако сте дошли до краја и не могу наћи га, онда га нема. 1631 01:14:52,430 --> 01:14:55,400 Дакле, то је провера, у суштини. 1632 01:14:55,400 --> 01:14:57,030 >> Следеће је величина. 1633 01:14:57,030 --> 01:14:57,910 Хајде да прескочите величину. 1634 01:14:57,910 --> 01:15:00,040 Коначно сте истовара. 1635 01:15:00,040 --> 01:15:02,890 Унлоад је један нисмо нацртана на табли или кодирани још. 1636 01:15:02,890 --> 01:15:05,990 Али ја Вам саветујемо да пробате кодирање у нашем узорку повезаној листи пример. 1637 01:15:05,990 --> 01:15:11,440 Али истовари интуитивно је сличан бесплатно - 1638 01:15:11,440 --> 01:15:14,010 Мислим или је сличан провери. 1639 01:15:14,010 --> 01:15:17,350 Осим за сада сваки пут идете кроз, ви не само проверу да 1640 01:15:17,350 --> 01:15:19,090 видите да ли имате ту своју вредност. 1641 01:15:19,090 --> 01:15:22,490 Али ви узимате тај чвор и ослобађајући га, у суштини. 1642 01:15:22,490 --> 01:15:23,610 То је оно што истовар пита да уради. 1643 01:15:23,610 --> 01:15:24,670 Бесплатно је све што сте маллоцед. 1644 01:15:24,670 --> 01:15:27,480 Дакле, идете кроз целу листу опет, иде кроз цео хасх 1645 01:15:27,480 --> 01:15:27,760 сто опет. 1646 01:15:27,760 --> 01:15:29,240 Овај пут не чекајте да видимо шта је тамо. 1647 01:15:29,240 --> 01:15:31,080 Само слободан шта је тамо. 1648 01:15:31,080 --> 01:15:33,260 >> И коначно величина. 1649 01:15:33,260 --> 01:15:34,350 Величина треба спровести. 1650 01:15:34,350 --> 01:15:35,590 Ако не спроведе величину - 1651 01:15:35,590 --> 01:15:36,250 Ја ћу то рећи овако. 1652 01:15:36,250 --> 01:15:39,740 Ако не спроведе величину у тачно једна линија кода, укључујући 1653 01:15:39,740 --> 01:15:43,760 врати изјаву, ви сте ради величину погрешно. 1654 01:15:43,760 --> 01:15:47,170 Тако да проверите величину, за пуну дизајн поена, то радите у тачно један 1655 01:15:47,170 --> 01:15:49,970 линија кода, укључујући повратак изјава. 1656 01:15:49,970 --> 01:15:52,450 >> И не спаковати још, Акцхар. 1657 01:15:52,450 --> 01:15:53,700 Еагер Беавер. 1658 01:15:53,700 --> 01:15:55,820 1659 01:15:55,820 --> 01:16:01,300 Хтео сам да кажем хвала момци за долазак на секцији. 1660 01:16:01,300 --> 01:16:02,550 Имају Хаппи Халловеен. 1661 01:16:02,550 --> 01:16:05,300 1662 01:16:05,300 --> 01:16:05,960 Ово је мој костим. 1663 01:16:05,960 --> 01:16:08,850 Ја ћу носити ово у четвртак ако те видим у радног времена. 1664 01:16:08,850 --> 01:16:14,640 А ако сте радознали о неким више позадина као на овом костиму, осећају 1665 01:16:14,640 --> 01:16:19,135 слободно да проверите секцију 2011 за причу о томе зашто сам 1666 01:16:19,135 --> 01:16:20,900 носио костим бундеве. 1667 01:16:20,900 --> 01:16:23,680 И то је тужна прича. 1668 01:16:23,680 --> 01:16:27,050 Дакле, проверите да ли имате неки ткива у близини. 1669 01:16:27,050 --> 01:16:28,680 Али на то, ако имате било питања ћу остати 1670 01:16:28,680 --> 01:16:29,960 напољу после секцији. 1671 01:16:29,960 --> 01:16:31,510 Срећно на проблему сет шест. 1672 01:16:31,510 --> 01:16:33,540 И као и увек, ако имате било питања, јавите ми. 1673 01:16:33,540 --> 01:16:35,584