1 00:00:00,000 --> 00:00:08,250 2 00:00:08,250 --> 00:00:12,680 >> JASON Hirschhorn: Sveiki visi į septintajame skirsnyje. 3 00:00:12,680 --> 00:00:15,040 Mes kurso septynių savaitę. 4 00:00:15,040 --> 00:00:18,440 Ir tai būsimi ketvirtadienis yra Helovinas, todėl esu 5 00:00:18,440 --> 00:00:21,420 apsirengęs kaip moliūgų. 6 00:00:21,420 --> 00:00:23,460 Aš negalėjau pasilenkti ir padėkite ant mano batai, tai štai kodėl aš 7 00:00:23,460 --> 00:00:25,660 tiesiog dėvėti kojines. 8 00:00:25,660 --> 00:00:29,220 Aš taip pat nedėvi nieko pagal tai, kad aš negaliu priimti jį išjungti, jei ji 9 00:00:29,220 --> 00:00:29,950 blaško jus. 10 00:00:29,950 --> 00:00:31,860 Atsiprašau iš anksto už tai. 11 00:00:31,860 --> 00:00:33,170 Jums nereikia įsivaizduoti kas vyksta. 12 00:00:33,170 --> 00:00:34,240 Aš dėvėti boksininkų. 13 00:00:34,240 --> 00:00:36,170 Taigi viskas gerai. 14 00:00:36,170 --> 00:00:41,120 >> Turiu ilgesnę istoriją apie tai, kodėl aš apsirengęs kaip moliūgų, bet aš ruošiuosi 15 00:00:41,120 --> 00:00:45,110 išsaugoti, kad vėliau šiame skyriuje nes aš noriu pradėti. 16 00:00:45,110 --> 00:00:47,720 Mes turime daug įdomių dalykų eiti per šią savaitę. 17 00:00:47,720 --> 00:00:51,810 Dauguma iš jų yra tiesiogiai susiję su šiuo savaitės problema rinkinys, rašybos. 18 00:00:51,810 --> 00:00:54,680 Mes ketiname būti vyksta per susijęs sąrašus ir maišos lenteles 19 00:00:54,680 --> 00:00:57,160 už visą skyrių. 20 00:00:57,160 --> 00:01:02,490 Aš įdėti šį sąrašą kiekvieną savaitę, iš sąrašo išteklių jums gali padėti jums su 21 00:01:02,490 --> 00:01:04,120 šio kurso medžiaga. 22 00:01:04,120 --> 00:01:07,600 Jei nuostolingai arba jei ieškote kai daugiau informacijos, patikrinkite vienas iš 23 00:01:07,600 --> 00:01:09,930 šie ištekliai. 24 00:01:09,930 --> 00:01:14,530 >> Vėlgi, pset6 yra rašybos klaidų, šią savaitę pset. 25 00:01:14,530 --> 00:01:17,690 Ir jis taip pat skatina jus, ir aš paskatinti jus, naudoti kai kurių kitų 26 00:01:17,690 --> 00:01:20,320 ištekliai specialiai šiam pset. 27 00:01:20,320 --> 00:01:23,390 Visų pirma, tris aš nurodyta ant ekrano - 28 00:01:23,390 --> 00:01:27,160 gdb, kurį mes buvome susipažinę su ir naudojo, o dabar, yra 29 00:01:27,160 --> 00:01:29,270 bus labai naudinga šią savaitę. 30 00:01:29,270 --> 00:01:30,190 Taigi, aš įdėti, kad čia. 31 00:01:30,190 --> 00:01:32,910 Tačiau, kai jūs dirbate su C, Jūs visada turėtumėte naudoti gdb į 32 00:01:32,910 --> 00:01:34,430 derinti savo programas. 33 00:01:34,430 --> 00:01:36,660 Šią savaitę taip pat Valgrind. 34 00:01:36,660 --> 00:01:38,535 Ar kas nors žino, kas Valgrind daro? 35 00:01:38,535 --> 00:01:42,184 36 00:01:42,184 --> 00:01:43,890 >> PUBLIKA: Jis tikrina, atminties nutekėjimas? 37 00:01:43,890 --> 00:01:45,950 >> JASON Hirschhorn: Valgrind tikrina atminties nutekėjimas. 38 00:01:45,950 --> 00:01:49,970 Taigi, jei jūs malloc kažką savo programa, jūs klausia atminties. 39 00:01:49,970 --> 00:01:52,920 Ne jūsų programos pabaigoje, jūs turite rašyti nemokamai viską, ką 40 00:01:52,920 --> 00:01:54,800 malloced duoti atmintį atgal. 41 00:01:54,800 --> 00:01:58,420 Jei nenorite rašyti be pabaigoje ir jūsų programa daro išvadą, 42 00:01:58,420 --> 00:02:00,000 viskas automatiškai būti išlaisvinti. 43 00:02:00,000 --> 00:02:02,340 Ir jau mažoms programoms, tai ne tai, kad didelis spręsti. 44 00:02:02,340 --> 00:02:05,250 Bet jei rašote nebeveikia programa, kuri neturi mesti, 45 00:02:05,250 --> 00:02:09,180 nebūtinai, per keletą minučių ar pora pora sekundžių, tada atminties nutekėjimas 46 00:02:09,180 --> 00:02:10,710 gali tapti didžiulis spręsti. 47 00:02:10,710 --> 00:02:14,940 >> Taigi pset6, tikimasi, kad turėsite nulis Atminties nutekėjimas su 48 00:02:14,940 --> 00:02:15,910 jūsų programa. 49 00:02:15,910 --> 00:02:18,690 Norėdami patikrinti, ar atminties nutekėjimas, paleisti Valgrind ir duosiu jums keletą gražus 50 00:02:18,690 --> 00:02:21,190 išėjimo leidžia jums žinoti, ar ar viskas buvo nemokamai. 51 00:02:21,190 --> 00:02:23,940 Mes praktiškai su juo vėliau šiandien, tikiuosi. 52 00:02:23,940 --> 00:02:25,790 >> Galiausiai, skirt komanda. 53 00:02:25,790 --> 00:02:28,900 Jūs naudojote kažką panašaus į jį į pset5 su žvilgtelėti įrankis. 54 00:02:28,900 --> 00:02:30,780 Leido jums pažvelgti į vidų. 55 00:02:30,780 --> 00:02:33,400 Taip pat naudojama skirt, taip pat už problema nustatyti spec. 56 00:02:33,400 --> 00:02:35,950 Bet leido jums palyginti du failus. 57 00:02:35,950 --> 00:02:39,180 Galima palyginti su bitmap failo ir info antraštes personalo tirpalu ir 58 00:02:39,180 --> 00:02:42,200 Jūsų sprendimas pset5 jei pasirinkote jį naudoti. 59 00:02:42,200 --> 00:02:44,030 Skirt leis jums tai padaryti, taip pat. 60 00:02:44,030 --> 00:02:48,620 Galite palyginti teisingą atsakymą dėl šios savaitės problema nustatyti jūsų atsakymą 61 00:02:48,620 --> 00:02:52,210 ir pamatyti, jei ji linijos aukštyn arba pamatyti kur klaidos. 62 00:02:52,210 --> 00:02:55,870 >> Taigi tie trys geri įrankiai, jums reikia naudoti šią savaitę, ir 63 00:02:55,870 --> 00:02:58,130 tikrai patikrinti savo programą su šiomis trimis priemonėmis 64 00:02:58,130 --> 00:03:00,520 Prieš įjungdami jį in 65 00:03:00,520 --> 00:03:04,650 Vėlgi, kaip jau minėjau kiekvieną savaitę, jei turite kokių nors atsiliepimų man - tiek 66 00:03:04,650 --> 00:03:06,470 pozityvus ir konstruktyvus - 67 00:03:06,470 --> 00:03:09,930 nedvejodami eikite į svetainę prie šios skaidrės apačioje 68 00:03:09,930 --> 00:03:11,270 ir įėjimo jis ten. 69 00:03:11,270 --> 00:03:13,440 Aš tikrai vertiname bet ir visi atsiliepimai. 70 00:03:13,440 --> 00:03:17,360 Ir jei galite man duoti konkrečius dalykus, Galiu padaryti, siekiant pagerinti arba, kad aš 71 00:03:17,360 --> 00:03:21,350 daro gerai, kad jūs norėtumėte mane toliau, manau, kad į širdį ir 72 00:03:21,350 --> 00:03:24,040 tikrai stengiuosi klausytis Jūsų atsiliepimai. 73 00:03:24,040 --> 00:03:27,720 Aš negaliu pažadėti aš ruošiuosi daryti viskas, nors, pavyzdžiui, dėvėti 74 00:03:27,720 --> 00:03:30,700 moliūgų kostiumas kiekvieną savaitę. 75 00:03:30,700 --> 00:03:34,020 >> Taigi, mes ketiname praleisti didžiąją skyriuje, kaip jau minėjau, kalbame apie 76 00:03:34,020 --> 00:03:37,240 susiję sąrašus ir maišos lenteles, kurios bus tiesiogiai taikomi 77 00:03:37,240 --> 00:03:38,780 problema nustatyti šią savaitę. 78 00:03:38,780 --> 00:03:42,580 Susiję sąrašai mes pereiti per palyginti greitai, nes mes praleido teisingą bitų 79 00:03:42,580 --> 00:03:44,930 laiko vyksta per jį skyriuje. 80 00:03:44,930 --> 00:03:48,680 Ir todėl mes gauti tiesiai į kodavimo problemų susijusių sąrašus. 81 00:03:48,680 --> 00:03:52,740 Ir tada gale mes kalbame apie maišos lenteles ir kaip jie taikomi šios 82 00:03:52,740 --> 00:03:55,280 savaitės problema nustatyti. 83 00:03:55,280 --> 00:03:57,560 >> Jūs matėte šį kodą prieš. 84 00:03:57,560 --> 00:04:02,730 Tai konstrukto, ir ji yra apibrėžti kažkas naujo vadinama mazgas. 85 00:04:02,730 --> 00:04:10,660 Ir viduje mazgas yra sveikasis skaičius čia ir yra rodyklė į 86 00:04:10,660 --> 00:04:11,830 kitas mazgas. 87 00:04:11,830 --> 00:04:12,790 Mes matėme anksčiau. 88 00:04:12,790 --> 00:04:14,830 Tai buvo artėja ir dabar porą savaičių. 89 00:04:14,830 --> 00:04:18,680 Ji sujungia patarimų, kurių mes dirbti su, ir structs, kurios leidžia 90 00:04:18,680 --> 00:04:22,079 mums derinti dviejų skirtingų viskas į vieną duomenų tipą. 91 00:04:22,079 --> 00:04:24,830 92 00:04:24,830 --> 00:04:26,490 >> Yra daug vyksta ekrane. 93 00:04:26,490 --> 00:04:30,220 Bet visa tai turėtų būti gana susipažinęs su Jumis. 94 00:04:30,220 --> 00:04:33,810 Pirmoje eilutėje, mes paskelbti naują mazgas. 95 00:04:33,810 --> 00:04:41,650 Ir tada viduje, kad naujas mazgas, aš nustatyti tame mazge sveikasis skaičius į vieną. 96 00:04:41,650 --> 00:04:44,950 Matome kitą eilutę darau printf komandą, bet aš papilkintas 97 00:04:44,950 --> 00:04:48,080 printf komandą, nes tikrai svarbi yra ši eilutė čia - 98 00:04:48,080 --> 00:04:50,020 new_node.n. 99 00:04:50,020 --> 00:04:51,270 Ką taškas reiškia? 100 00:04:51,270 --> 00:04:53,810 101 00:04:53,810 --> 00:04:57,240 >> PUBLIKA: Eiti į mazgą ir įvertinti n vertę už jį. 102 00:04:57,240 --> 00:04:58,370 >> JASON Hirschhorn: Štai visiškai teisus. 103 00:04:58,370 --> 00:05:03,300 Dot reiškia prieiti N daliai Šios naujos mazgas. 104 00:05:03,300 --> 00:05:05,690 Tai kitą eilutę ką daro? 105 00:05:05,690 --> 00:05:16,140 106 00:05:16,140 --> 00:05:17,050 Michael. 107 00:05:17,050 --> 00:05:21,910 >> PUBLIKA: Tai sukuria kitą mazgą kad bus atkreipti dėmesį į naujas mazgas. 108 00:05:21,910 --> 00:05:24,870 >> JASON Hirschhorn: Taigi jis nėra sukurti naują mazgą. 109 00:05:24,870 --> 00:05:26,120 Jis sukuria ką? 110 00:05:26,120 --> 00:05:28,300 111 00:05:28,300 --> 00:05:29,300 >> PUBLIKA: rodyklę. 112 00:05:29,300 --> 00:05:33,460 >> JASON Hirschhorn: rodyklė į mazgą, kaip nurodyta šio mazgo * čia. 113 00:05:33,460 --> 00:05:34,800 Taigi jis sukuria žymeklį į mazgą. 114 00:05:34,800 --> 00:05:37,490 Ir kuris mazgas ji nukreipta į Michael? 115 00:05:37,490 --> 00:05:38,440 >> PUBLIKA: Naujas mazgas? 116 00:05:38,440 --> 00:05:39,240 >> JASON Hirschhorn: Naujas mazgas. 117 00:05:39,240 --> 00:05:43,020 Ir tai nukreipta ten, nes mes kadangi tai, kad naujas mazgas adresą. 118 00:05:43,020 --> 00:05:45,820 Ir dabar šioje eilutėje matome du skirtingi būdai 119 00:05:45,820 --> 00:05:46,910 išreiškia tą patį. 120 00:05:46,910 --> 00:05:49,650 Ir aš norėjau atkreipti dėmesį, kaip jos du dalykai yra vienodi. 121 00:05:49,650 --> 00:05:54,740 Pirmoje eilutėje, mes dereference rodyklė. 122 00:05:54,740 --> 00:05:55,830 Taigi mes einame į mazgą. 123 00:05:55,830 --> 00:05:56,830 Štai ką ši žvaigždė reiškia. 124 00:05:56,830 --> 00:05:57,930 Mes matėme, kad anksčiau su rodyklėmis. 125 00:05:57,930 --> 00:05:59,280 Eiti į tą mazgą. 126 00:05:59,280 --> 00:06:00,370 Tai skliausteliuose. 127 00:06:00,370 --> 00:06:04,610 Ir tada prieigą per dot operatorius n elementu tame mazge. 128 00:06:04,610 --> 00:06:08,430 >> Taigi, kad manimi atsižvelgiant sintaksę matėme čia ir dabar 129 00:06:08,430 --> 00:06:09,670 naudojant jį su rodykle. 130 00:06:09,670 --> 00:06:13,730 Žinoma, jis gauna natūra užimtas, jei rašote tuos skliaustus - 131 00:06:13,730 --> 00:06:14,940 kad žvaigždė ir taškas. 132 00:06:14,940 --> 00:06:16,220 Ji gauna šiek tiek užimtas. 133 00:06:16,220 --> 00:06:18,500 Taigi, mes turime tam tikrą sintaksinę cukraus. 134 00:06:18,500 --> 00:06:19,920 Ir ši eilutė čia - 135 00:06:19,920 --> 00:06:21,170 ptr_node-> n. 136 00:06:21,170 --> 00:06:25,400 137 00:06:25,400 --> 00:06:28,000 Tai nėra tas pats dalykas. 138 00:06:28,000 --> 00:06:30,840 Taigi, šios dvi eilutes kodo yra lygiaverčiai ir darys 139 00:06:30,840 --> 00:06:31,650 tą patį dalyką. 140 00:06:31,650 --> 00:06:34,210 >> Bet aš norėjau atkreipti tiems, prieš eiti toliau, kad jūs suprantate, 141 00:06:34,210 --> 00:06:39,000 kad tikrai šis dalykas čia yra tiesiog sintaksinis cukrus dereferencing 142 00:06:39,000 --> 00:06:44,200 rodyklė ir tada vyksta n dalis, kad struct. 143 00:06:44,200 --> 00:06:45,525 Bet apie šią skaidrę klausimų? 144 00:06:45,525 --> 00:06:53,020 145 00:06:53,020 --> 00:06:54,390 Gerai. 146 00:06:54,390 --> 00:06:58,510 >> Taigi, mes ketiname eiti per pora veiklos, kad jūs galite padaryti 147 00:06:58,510 --> 00:06:59,730 susiję sąrašus. 148 00:06:59,730 --> 00:07:05,770 Susijęs sąrašas, priminti, yra iš serijos mazgai, kurie nurodo į vienas kitą. 149 00:07:05,770 --> 00:07:12,470 Ir mes paprastai prasideda su rodykle vadinama galva, apskritai, kad atkreipia dėmesį į 150 00:07:12,470 --> 00:07:14,040 pirmas dalykas, sąrašą. 151 00:07:14,040 --> 00:07:18,900 Taigi pirmoje eilutėje čia mes turime originalų L pirmas. 152 00:07:18,900 --> 00:07:21,370 Taigi, kad dalykas, jūs galite galvoti - tai tekstą čia jūs galite galvoti, kaip 153 00:07:21,370 --> 00:07:23,560 tiesiog rodyklė mes saugomi kažkur, kad taškai 154 00:07:23,560 --> 00:07:24,670 į pirmąjį elementą. 155 00:07:24,670 --> 00:07:27,500 Ir šioje susiję sąrašas mes turime keturis mazgus. 156 00:07:27,500 --> 00:07:29,530 Kiekvienas mazgas yra didelis langas. 157 00:07:29,530 --> 00:07:33,430 Didesnis langas viduje didelis laukas yra sveikoji dalis. 158 00:07:33,430 --> 00:07:37,400 Ir tada mes turime rodyklės dalį. 159 00:07:37,400 --> 00:07:39,630 >> Šie langeliai yra nubraižyta ne masto, nes, kaip didelis yra 160 00:07:39,630 --> 00:07:42,320 baitais sveikas? 161 00:07:42,320 --> 00:07:43,290 Kaip didelis dabar? 162 00:07:43,290 --> 00:07:43,710 Keturi. 163 00:07:43,710 --> 00:07:45,470 Ir koks didelis yra žymeklis? 164 00:07:45,470 --> 00:07:45,940 Keturi. 165 00:07:45,940 --> 00:07:48,180 Taigi tikrai, jei mes atkreipti tai masto abu langelius 166 00:07:48,180 --> 00:07:49,690 būtų vienodo dydžio. 167 00:07:49,690 --> 00:07:52,870 Tokiu atveju, mes norime įterpti kažkas į susijusį sąrašą. 168 00:07:52,870 --> 00:07:57,190 Taigi galite pamatyti žemyn čia mes įterpti penkių Mes ėjimas per 169 00:07:57,190 --> 00:08:01,310 susijęs sąrašas, surasti, kur yra penki eina, o tada įkiškite ją. 170 00:08:01,310 --> 00:08:03,560 >> Leiskite pertrauka, kad ir eiti šiek tiek lėčiau. 171 00:08:03,560 --> 00:08:05,510 Aš einu, kad rodytų į laivą. 172 00:08:05,510 --> 00:08:09,930 Taigi, mes turime mazgas penki kad mes sukūrėte mallocs. 173 00:08:09,930 --> 00:08:11,190 Kodėl visi juokiasi? 174 00:08:11,190 --> 00:08:12,130 Juokauju. 175 00:08:12,130 --> 00:08:13,310 Gerai. 176 00:08:13,310 --> 00:08:14,820 Taigi mes malloced penkių. 177 00:08:14,820 --> 00:08:16,310 Mes sukūrėme šį mazgą kažkur kitur. 178 00:08:16,310 --> 00:08:17,740 Mes turime tai pasiruošę eiti. 179 00:08:17,740 --> 00:08:20,130 Mes prasidės priekio mūsų sąraše su dviem. 180 00:08:20,130 --> 00:08:22,380 Ir mes norime įterpti į išrūšiuotų mados. 181 00:08:22,380 --> 00:08:27,550 >> Taigi, jei mes matome du ir mes norime įdėti iš penkių, ką mes darome, kai mes matome, 182 00:08:27,550 --> 00:08:28,800 kažkas mažiau už mus? 183 00:08:28,800 --> 00:08:31,850 184 00:08:31,850 --> 00:08:33,520 Ką? 185 00:08:33,520 --> 00:08:36,750 Mes norime įterpti penkis į šį susijęs sąrašas, laikant jį surūšiuoti. 186 00:08:36,750 --> 00:08:37,520 Matome numeris du. 187 00:08:37,520 --> 00:08:38,769 Taigi, ką mes galime padaryti? 188 00:08:38,769 --> 00:08:39,179 Marcus? 189 00:08:39,179 --> 00:08:40,679 >> PUBLIKA: Call žymiklį į kitą mazgą. 190 00:08:40,679 --> 00:08:42,530 >> JASON Hirschhorn: Ir kodėl mes einame į kitą? 191 00:08:42,530 --> 00:08:45,970 >> PUBLIKA: Kadangi tai kitas mazgas sąraše. 192 00:08:45,970 --> 00:08:48,310 Ir mes tik žinome, kad kitą vietą. 193 00:08:48,310 --> 00:08:50,410 >> JASON Hirschhorn: Penkiese yra didesnis nei du, ypač. 194 00:08:50,410 --> 00:08:51,600 Kadangi mes norime išlaikyti ją surūšiuoti. 195 00:08:51,600 --> 00:08:52,730 Taigi, penki yra didesnis nei du. 196 00:08:52,730 --> 00:08:54,460 Taigi, mes pereiti į kitą. 197 00:08:54,460 --> 00:08:55,240 Ir dabar mes pasiekti keturis. 198 00:08:55,240 --> 00:08:56,490 Ir kas atsitinka, kai mes pasiekti keturis? 199 00:08:56,490 --> 00:08:58,920 200 00:08:58,920 --> 00:09:00,310 >> Penki yra didesnis kaip keturi. 201 00:09:00,310 --> 00:09:01,460 Taigi mes nesustoti. 202 00:09:01,460 --> 00:09:03,110 Ir dabar mes bent šešių. 203 00:09:03,110 --> 00:09:04,360 Ir ką mes matome šeštą? 204 00:09:04,360 --> 00:09:08,672 205 00:09:08,672 --> 00:09:09,608 Taip, Carlos? 206 00:09:09,608 --> 00:09:10,544 >> PUBLIKA: Šeši yra didesnis negu penki. 207 00:09:10,544 --> 00:09:11,480 >> JASON Hirschhorn: Six didesnis negu penki. 208 00:09:11,480 --> 00:09:13,660 Štai kur mes norime įdėti penkių. 209 00:09:13,660 --> 00:09:17,320 Tačiau turėkite omenyje, kad jei mes tik vieną žymeklį čia - 210 00:09:17,320 --> 00:09:19,840 tai yra mūsų papildomas žymeklis, kad tai važiuojantiems per sąrašą. 211 00:09:19,840 --> 00:09:21,860 Ir mes nukreipta į šešių. 212 00:09:21,860 --> 00:09:25,010 Mes prarado sekti ką ateina iki šešių. 213 00:09:25,010 --> 00:09:29,130 Taigi, jei norime įterpti kažką į šis sąrašas laikant jį rūšiuojami, mes 214 00:09:29,130 --> 00:09:31,630 tikriausiai reikia kaip daug patarimų? 215 00:09:31,630 --> 00:09:32,280 >> PUBLIKA: Du. 216 00:09:32,280 --> 00:09:32,920 >> JASON HIRSCHORN: Du. 217 00:09:32,920 --> 00:09:35,720 Vienas sekti srovę vienas ir vienas sekti 218 00:09:35,720 --> 00:09:37,050 pirmesnis. 219 00:09:37,050 --> 00:09:38,450 Tai tik atskirai susiję sąrašas. 220 00:09:38,450 --> 00:09:39,670 Tai tik eina viena kryptimi. 221 00:09:39,670 --> 00:09:43,220 Jei mes turėjome dvigubai susijęs sąrašas, kur viskas buvo nukreipta į daiktą 222 00:09:43,220 --> 00:09:46,240 po jo ir prieš jį patį, tada mes ne reikia padaryti, kad. 223 00:09:46,240 --> 00:09:49,350 Tačiau šiuo atveju mes nenorime prarasti kelio, kas buvo prieš mus, jei 224 00:09:49,350 --> 00:09:53,350 mes turime įterpti penkis kažkur viduryje. 225 00:09:53,350 --> 00:09:55,610 Pasakykite mums buvo įterpti devynis. 226 00:09:55,610 --> 00:09:57,260 Kas nutiktų, jei mes gavome aštuonių? 227 00:09:57,260 --> 00:10:01,860 228 00:10:01,860 --> 00:10:04,880 >> Auditorija: Jūs turite su gauti, kad nulinį tašką. 229 00:10:04,880 --> 00:10:07,820 Užuot nulinį tašką jūs turite pridėti elementą ir tada 230 00:10:07,820 --> 00:10:09,216 tai rodo, kad devynių. 231 00:10:09,216 --> 00:10:09,700 >> JASON HIRSCHORN: Būtent. 232 00:10:09,700 --> 00:10:10,600 Taigi, mes gauname aštuoni. 233 00:10:10,600 --> 00:10:13,140 Mes pasiekiame sąrašo pabaigoje, nes tai yra nukreipta į null. 234 00:10:13,140 --> 00:10:16,330 Ir dabar, vietoj to, ji nurodo, kad null turime tai rodo, kad mūsų naujas mazgas. 235 00:10:16,330 --> 00:10:19,870 Ir mes nustatyti žymeklį Mūsų naujas mazgas null. 236 00:10:19,870 --> 00:10:21,445 Ar kas nors turi kokių nors klausimų, apie įterpiant? 237 00:10:21,445 --> 00:10:25,620 238 00:10:25,620 --> 00:10:28,100 Ką daryti, jei aš nerūpi išlaikyti surūšiuoti sąrašą? 239 00:10:28,100 --> 00:10:31,701 240 00:10:31,701 --> 00:10:34,350 >> PUBLIKA: Laikykis jį pradžioje arba pabaigoje. 241 00:10:34,350 --> 00:10:35,510 >> JASON HIRSCHORN: Laikykis jį pradžia arba pabaiga. 242 00:10:35,510 --> 00:10:37,276 Kuris iš turėtume daryti? 243 00:10:37,276 --> 00:10:38,770 Bobby? 244 00:10:38,770 --> 00:10:41,020 Kodėl pabaiga? 245 00:10:41,020 --> 00:10:43,250 >> PUBLIKA: Kadangi pradžia jau užpildyti. 246 00:10:43,250 --> 00:10:43,575 >> JASON HIRSCHORN: Gerai. 247 00:10:43,575 --> 00:10:44,360 Pradžioje jau užpildyti. 248 00:10:44,360 --> 00:10:46,090 Kas nori ginčytis su Bobby. 249 00:10:46,090 --> 00:10:47,290 Marcus. 250 00:10:47,290 --> 00:10:48,910 >> PUBLIKA: Na jūs tikriausiai norite klijuoti jį pradžioje, nes 251 00:10:48,910 --> 00:10:50,140 kitaip, jei jūs įtraukėte ją pabaigos jūs turite 252 00:10:50,140 --> 00:10:51,835 feed visą sąrašą. 253 00:10:51,835 --> 00:10:52,990 >> JASON HIRSCHORN: Būtent. 254 00:10:52,990 --> 00:10:57,970 Taigi, jei mes galvoti apie runtime, Runtime įterpti pabaigoje 255 00:10:57,970 --> 00:11:00,110 būtų n, tai dydis. 256 00:11:00,110 --> 00:11:03,080 Kas didelis O Runtime įterpti pradžioje? 257 00:11:03,080 --> 00:11:04,170 Pastovus laikas. 258 00:11:04,170 --> 00:11:07,075 Taigi, jei jums nerūpi išlaikyti kažkas rūšiuojami, daug geriau tiesiog 259 00:11:07,075 --> 00:11:08,420 įterpti šio sąrašo pradžioje. 260 00:11:08,420 --> 00:11:10,320 Ir tai galima padaryti nuolat laiko. 261 00:11:10,320 --> 00:11:13,900 262 00:11:13,900 --> 00:11:14,690 >> Gerai. 263 00:11:14,690 --> 00:11:18,870 Kitas operacija susirasti, kokią kitą - mes suformuluoti tai paieškoje. 264 00:11:18,870 --> 00:11:22,470 Bet mes ketiname ieškoti per susijęs sąrašas tikrą objektą. 265 00:11:22,470 --> 00:11:26,000 Vaikinai mačiau kodą ieškoti anksčiau paskaitoje. 266 00:11:26,000 --> 00:11:29,490 Bet mes tarsi ką tik padarė jį su įterpti, arba bent jau įterpiant 267 00:11:29,490 --> 00:11:30,580 kažkas rūšiuojami. 268 00:11:30,580 --> 00:11:36,350 Jūs pažiūrėkite pro vyksta mazgas pagal mazgas, kol rasite numerį, kad jūs 269 00:11:36,350 --> 00:11:37,780 ieško. 270 00:11:37,780 --> 00:11:39,670 Kas atsitiks, jei jūs pasieksite Sąrašo pabaigoje? 271 00:11:39,670 --> 00:11:43,020 Pasakykite Aš ieškau devynių ir I pasiekti sąrašo galą. 272 00:11:43,020 --> 00:11:44,270 Ką mes darome? 273 00:11:44,270 --> 00:11:47,147 274 00:11:47,147 --> 00:11:48,110 >> PUBLIKA: Grįžti klaidingas? 275 00:11:48,110 --> 00:11:48,690 >> JASON HIRSCHORN: Grįžti klaidinga. 276 00:11:48,690 --> 00:11:49,960 Mes ne jį rasti. 277 00:11:49,960 --> 00:11:52,010 Jei pasiekiate sąrašo galą ir tu negali rasti skaičių esate 278 00:11:52,010 --> 00:11:54,170 ieško, tai ne ten. 279 00:11:54,170 --> 00:11:55,420 Bet apie klausimus rasti? 280 00:11:55,420 --> 00:11:59,530 281 00:11:59,530 --> 00:12:04,615 Jei tai buvo surikiuota sąrašas, kas būtų skiriasi mūsų paieškos? 282 00:12:04,615 --> 00:12:07,370 283 00:12:07,370 --> 00:12:08,103 Taip. 284 00:12:08,103 --> 00:12:10,600 >> PUBLIKA: Tai būtų rasti pirmąjį vertę tai daugiau nei vienas 285 00:12:10,600 --> 00:12:12,390 jūs ieškote, ir tada grįžti klaidinga. 286 00:12:12,390 --> 00:12:13,190 >> JASON HIRSCHORN: Būtent. 287 00:12:13,190 --> 00:12:17,310 Taigi, jei tai rūšiuotų sąrašą, jei mes gauti kažkas, kad didesnis nei 288 00:12:17,310 --> 00:12:20,180 Mes ieškome, mes nereikia nuolat vyksta į sąrašo pabaigą. 289 00:12:20,180 --> 00:12:24,060 Mes galime tuo momentu return false nes mes neketiname jį rasti. 290 00:12:24,060 --> 00:12:27,340 Klausimas dabar yra, mes kalbėjome apie išlaikyti susijusius sąrašus rūšiuojami, 291 00:12:27,340 --> 00:12:28,180 išlaikyti juos pramaišiui. 292 00:12:28,180 --> 00:12:30,050 Tai bus kažkas esate turbūt teks galvoti apie 293 00:12:30,050 --> 00:12:34,240 kai kodavimo problema, jei jūs nustatote penkių pasirinkti maišos lentelę su atskira 294 00:12:34,240 --> 00:12:36,360 Grupavimo metodas, kuris mes kalbame apie vėliau. 295 00:12:36,360 --> 00:12:41,400 >> Bet tai verta laikyti sąrašą surūšiuoti ir tuomet galės gal turi 296 00:12:41,400 --> 00:12:42,310 sparčiau paieškos? 297 00:12:42,310 --> 00:12:47,220 Ar tai geriau greitai įterpti kažkas nuolat runtime bet tada 298 00:12:47,220 --> 00:12:48,430 Ilgiau ieškoti? 299 00:12:48,430 --> 00:12:52,250 Tai kompromisas tiesiai ten, kad jums gauti nuspręsti, kas yra labiau tinkama 300 00:12:52,250 --> 00:12:53,590 jūsų konkrečią problemą. 301 00:12:53,590 --> 00:12:56,680 Ir nebūtinai vienas visiškai teisingas atsakymas. 302 00:12:56,680 --> 00:12:59,520 Bet tai tikrai sprendimas jums padaryti, ir tikriausiai gerai gintis 303 00:12:59,520 --> 00:13:05,270 kad, tarkim, komentarą ar du, kodėl pasirinkote vieną virš kito. 304 00:13:05,270 --> 00:13:06,490 >> Galiausiai, naikinti. 305 00:13:06,490 --> 00:13:08,100 Mes matėme ištrinti. 306 00:13:08,100 --> 00:13:09,180 Tai panašu į paiešką. 307 00:13:09,180 --> 00:13:11,020 Ieškome elemento. 308 00:13:11,020 --> 00:13:12,390 Pasakykite, mes stengiamės išbraukti šešis. 309 00:13:12,390 --> 00:13:14,450 Taigi matome šešias čia. 310 00:13:14,450 --> 00:13:18,860 Dalykas, kad mes turime įsitikinti, kad mes padaryti, kad viskas, ką yra nukreipta į 311 00:13:18,860 --> 00:13:21,220 šešių - kaip matome žingsnio du žemyn čia - 312 00:13:21,220 --> 00:13:26,500 kokia manimi nukreipta į šešis turi praleisti šešis dabar ir būti pakeistas į 313 00:13:26,500 --> 00:13:28,160 kokia šešių nukreipta į. 314 00:13:28,160 --> 00:13:31,410 Mes nenorime, kad kada nors našlaičio ramybės mūsų sąraše, pamiršusi nustatyti, kad 315 00:13:31,410 --> 00:13:32,960 ankstesnis rodyklę. 316 00:13:32,960 --> 00:13:35,960 Ir tada kartais, priklausomai nuo apie programą, jie bus tiesiog 317 00:13:35,960 --> 00:13:37,380 visiškai ištrinti šį mazgą. 318 00:13:37,380 --> 00:13:40,135 Kartais jūs norite grįžti vertė tai šiame mazge. 319 00:13:40,135 --> 00:13:42,490 Štai kaip ištrinti darbus. 320 00:13:42,490 --> 00:13:44,610 Bet kokie klausimai ištrinti? 321 00:13:44,610 --> 00:13:51,280 322 00:13:51,280 --> 00:13:53,850 >> PUBLIKA: Taigi, jei jūs ketinate ištrinti tai, ar jūs tiesiog naudoti nemokamai, nes 323 00:13:53,850 --> 00:13:55,655 matyt buvo malloced? 324 00:13:55,655 --> 00:13:57,976 >> JASON HIRSCHORN: Jei norite atlaisvinti vietos kažkas, kad yra būtent tai teisinga ir jūs 325 00:13:57,976 --> 00:13:58,540 malloced jį. 326 00:13:58,540 --> 00:14:00,410 Pasakykite, norėjome grąžinti šią vertę. 327 00:14:00,410 --> 00:14:04,010 Mes galime grįžti šešių ir tada nemokamai šis mazgas ir kvietimas nemokamai jį. 328 00:14:04,010 --> 00:14:06,180 Arba mes tikriausiai skambinti nemokamai pirmas ir tada grįžti šešių. 329 00:14:06,180 --> 00:14:11,210 330 00:14:11,210 --> 00:14:11,580 >> Gerai. 331 00:14:11,580 --> 00:14:14,010 Taigi pereikime prie praktikos kodavimo. 332 00:14:14,010 --> 00:14:16,090 Mes ketiname kodą tris funkcijas. 333 00:14:16,090 --> 00:14:18,260 Pirmasis vadinasi insert_node. 334 00:14:18,260 --> 00:14:22,170 Taigi jūs turite kodą, kad aš Jums elektroniniu paštu ir jei jūs žiūrite tai vėliau 335 00:14:22,170 --> 00:14:28,020 galite prieiti prie kodo linked.c ant CS50 svetainėje. 336 00:14:28,020 --> 00:14:30,880 Bet linked.c, yra keletas skeletas kodas, kuris jau 337 00:14:30,880 --> 00:14:32,280 buvo parašyta jums. 338 00:14:32,280 --> 00:14:34,560 Ir tada ten pora funkcijas vykdantiems jums reikia parašyti. 339 00:14:34,560 --> 00:14:36,380 >> Pirmiausia mes ketiname rašyti insert_node. 340 00:14:36,380 --> 00:14:39,800 Ir kas insert_node nėra Is įterpia sveikasis skaičius. 341 00:14:39,800 --> 00:14:42,440 Ir jūs suteikiant sveikasis skaičius į susietą sąrašą. 342 00:14:42,440 --> 00:14:45,470 Ir visų pirma, jūs turite į tą sąrašą nuolat rūšiuoti 343 00:14:45,470 --> 00:14:47,650 nuo mažiausio iki didžiausio. 344 00:14:47,650 --> 00:14:51,360 Be to, jūs nenorite, kad įterpti jokių dublikatus. 345 00:14:51,360 --> 00:14:54,600 Galiausiai, jūs galite pamatyti insert_node grąžina bool. 346 00:14:54,600 --> 00:14:57,140 Taigi, jums turėtų leisti vartotojui žinoti ar įterpti buvo 347 00:14:57,140 --> 00:15:00,800 sėkmingas grąžinant true arba false. 348 00:15:00,800 --> 00:15:02,580 Šio programos pabaigoje - 349 00:15:02,580 --> 00:15:05,750 ir šiame etape nereikia nerimauti išlaisvinant nieko. 350 00:15:05,750 --> 00:15:11,790 Taigi, visi jūs darote, yra atsižvelgiant sveikasis skaičius ir įterpti jį į sąrašą. 351 00:15:11,790 --> 00:15:13,890 >> Štai ką aš prašau jūsų padaryti dabar. 352 00:15:13,890 --> 00:15:17,620 Vėlgi linked.c, kurį visi turime, yra skeletas kodas. 353 00:15:17,620 --> 00:15:20,980 Ir jūs turėtumėte pamatyti link apačios imties funkcija deklaracija. 354 00:15:20,980 --> 00:15:27,390 Tačiau prieš einant į kodavimo jį C, aš labai rekomenduojame jums eiti 355 00:15:27,390 --> 00:15:29,330 per veiksmus mes jau praktikuojančių kiekvieną savaitę. 356 00:15:29,330 --> 00:15:31,100 Mes jau išgyveno tai nuotrauka. 357 00:15:31,100 --> 00:15:33,380 Taigi, reikia turėti tam tikrą supratimą kaip tai veikia. 358 00:15:33,380 --> 00:15:36,590 Bet aš norėčiau paskatinti jus rašyti kai prieš pasinerdamas in Pseudocode 359 00:15:36,590 --> 00:15:38,640 Ir mes ketiname eiti per Pseudocode kaip grupė. 360 00:15:38,640 --> 00:15:41,470 Ir tada, kai parašiau savo Pseudocode, ir kai mes parašiau mūsų 361 00:15:41,470 --> 00:15:45,850 Pseudocode kaip grupę, galite eiti į kodavimo jį C 362 00:15:45,850 --> 00:15:49,980 >> Kaip heads up, insert_node funkcija turbūt sudėtingiausia iš 363 00:15:49,980 --> 00:15:53,550 trys mes ketiname rašyti, nes aš pridėjo keletą papildomų suvaržymų 364 00:15:53,550 --> 00:15:57,190 Jūsų programavimo, ypač jūs nesiruošia įterpti bet 365 00:15:57,190 --> 00:15:59,880 dublikatus ir kad sąrašas turėtų būti surūšiuoti. 366 00:15:59,880 --> 00:16:02,660 Taigi tai yra ne trivialus programa kad jums reikia koduoti. 367 00:16:02,660 --> 00:16:06,470 Ir kodėl gi ne jums imtis 06:55 minučių tiesiog gauti darbo 368 00:16:06,470 --> 00:16:07,640 Pseudocode ir kodas. 369 00:16:07,640 --> 00:16:09,460 Ir tada mes pradėsime vyksta kaip grupė. 370 00:16:09,460 --> 00:16:11,680 Vėlgi, jei turite kokių nors klausimų, tiesiog pakelti savo ranką ir aš ateiti aplink. 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 >> Mes taip pat paprastai padaryti tai - 375 00:18:30,120 --> 00:18:32,070 ar aš ne aiškiai pasakyti jums gali dirbti su žmonėmis. 376 00:18:32,070 --> 00:18:36,500 Tačiau akivaizdu, aš labai rekomenduojame jums, Jei turite klausimų, prašyti 377 00:18:36,500 --> 00:18:39,840 kaimynas sėdi šalia tavęs ar net dirbti su kuo nors 378 00:18:39,840 --> 00:18:40,510 kitur, jei norite. 379 00:18:40,510 --> 00:18:42,600 Tai nebūtinai turi būti individuali tylus veikla. 380 00:18:42,600 --> 00:20:11,770 381 00:20:11,770 --> 00:20:16,330 >> Pradėkime rašyti kai Pseudocode ant lentos. 382 00:20:16,330 --> 00:20:19,395 Kas gali duoti man pirmąją eilutę Pseudocode šią programą? 383 00:20:19,395 --> 00:20:22,240 384 00:20:22,240 --> 00:20:23,640 Dėl šios funkcijos, o - insert_node. 385 00:20:23,640 --> 00:20:29,960 386 00:20:29,960 --> 00:20:31,830 Alden? 387 00:20:31,830 --> 00:20:36,560 >> PUBLIKA: Taigi pirmas dalykas, kurį aš padariau buvo sukurti naują žymeklį į mazgą ir I 388 00:20:36,560 --> 00:20:41,320 inicializuoti ji nukreipta į tą patį dalykas, kad sąrašas yra nukreipta. 389 00:20:41,320 --> 00:20:41,550 >> JASON HIRSCHORN: Gerai. 390 00:20:41,550 --> 00:20:45,190 Taigi jūs kuriate naują žymeklį į sąrašą, o ne mazgas. 391 00:20:45,190 --> 00:20:45,420 >> PUBLIKA: Teisė. 392 00:20:45,420 --> 00:20:46,150 Taip. 393 00:20:46,150 --> 00:20:46,540 >> JASON HIRSCHORN: Gerai. 394 00:20:46,540 --> 00:20:48,221 Ir tada, ką mes norime padaryti? 395 00:20:48,221 --> 00:20:49,163 Kas po to? 396 00:20:49,163 --> 00:20:50,105 Ką apie mazgą? 397 00:20:50,105 --> 00:20:51,050 Mes neturime mazgas. 398 00:20:51,050 --> 00:20:52,300 Mes tiesiog turi vertę. 399 00:20:52,300 --> 00:20:55,918 400 00:20:55,918 --> 00:20:58,890 Jei norime įterpti viršūnę, ką mes reikia padaryti pirmiausia, kol mes netgi galite 401 00:20:58,890 --> 00:20:59,980 galvoti apie jį įdėsite? 402 00:20:59,980 --> 00:21:00,820 >> PUBLIKA: Oi, atsiprašau. 403 00:21:00,820 --> 00:21:02,160 turime malloc vietos mazgas. 404 00:21:02,160 --> 00:21:02,455 >> JASON HIRSCHORN: Puikus. 405 00:21:02,455 --> 00:21:03,210 Darom - 406 00:21:03,210 --> 00:21:04,628 Gerai. 407 00:21:04,628 --> 00:21:06,065 Negali pasiekti, kad didelis. 408 00:21:06,065 --> 00:21:08,939 409 00:21:08,939 --> 00:21:09,897 Gerai. 410 00:21:09,897 --> 00:21:13,236 Mes ketiname eiti, ir tada mes naudojame du stulpelius. 411 00:21:13,236 --> 00:21:13,732 Aš negaliu eiti, kad - 412 00:21:13,732 --> 00:21:14,982 Gerai. 413 00:21:14,982 --> 00:21:23,660 414 00:21:23,660 --> 00:21:25,130 Sukurti naują mazgas. 415 00:21:25,130 --> 00:21:29,380 Jūs galite sukurti kitą žymeklį į sąrašą arba galite tiesiog naudoti sąrašą, jis egzistuoja. 416 00:21:29,380 --> 00:21:30,720 Jūs tikrai nereikia daryti. 417 00:21:30,720 --> 00:21:31,750 >> Taigi, mes sukurti naują mazgą. 418 00:21:31,750 --> 00:21:32,010 Didysis. 419 00:21:32,010 --> 00:21:32,840 Štai ką mes darome pirmą kartą. 420 00:21:32,840 --> 00:21:34,870 Kas toliau? 421 00:21:34,870 --> 00:21:35,080 >> PUBLIKA: palaukti. 422 00:21:35,080 --> 00:21:38,330 Jei mes sukurti naują mazgą dabar arba turėtume laukti, kad įsitikinti, kad 423 00:21:38,330 --> 00:21:42,260 nėra jokių mazgo dublikatai sąraše, kol mes jį sukurti? 424 00:21:42,260 --> 00:21:43,100 >> JASON HIRSCHORN: Geras klausimas. 425 00:21:43,100 --> 00:21:47,770 Leiskite turėti, kad vėliau, nes Dauguma laiko mes kursite 426 00:21:47,770 --> 00:21:48,220 naujas mazgas. 427 00:21:48,220 --> 00:21:49,110 Taigi mes toliau, kad čia. 428 00:21:49,110 --> 00:21:51,006 Bet tai geras klausimas. 429 00:21:51,006 --> 00:21:53,250 Jei mes jį sukurti ir randame Dublikatas, kas turėtų 430 00:21:53,250 --> 00:21:54,490 mes prieš grįžtant? 431 00:21:54,490 --> 00:21:55,190 >> PUBLIKA: nemokamai jį. 432 00:21:55,190 --> 00:21:55,470 >> JASON HIRSCHORN: Taip. 433 00:21:55,470 --> 00:21:56,500 Tikriausiai išlaisvinti ją. 434 00:21:56,500 --> 00:21:56,760 Gerai. 435 00:21:56,760 --> 00:21:59,850 Ką daryti, kai mes sukurti naują mazgą? 436 00:21:59,850 --> 00:22:02,260 Annie? 437 00:22:02,260 --> 00:22:04,780 >> Auditorija: Mes atliekame skaičius mazgas? 438 00:22:04,780 --> 00:22:05,140 >> JASON HIRSCHORN: Būtent. 439 00:22:05,140 --> 00:22:07,190 Mes atliekame numerį - mes malloc erdvę. 440 00:22:07,190 --> 00:22:08,160 Aš ruošiuosi palikti, kad visi kaip viena eilutė. 441 00:22:08,160 --> 00:22:08,720 Bet tu teisus. 442 00:22:08,720 --> 00:22:10,305 Mes malloc erdvę, ir tada mes įdėti numeris in 443 00:22:10,305 --> 00:22:12,585 Mes netgi galite nustatyti pelės žymeklį jo dalis null. 444 00:22:12,585 --> 00:22:13,720 Būtent dešinėje. 445 00:22:13,720 --> 00:22:17,400 Ir tada ką apie po to? 446 00:22:17,400 --> 00:22:18,490 Mes parengė šį paveiksliuką ant lentos. 447 00:22:18,490 --> 00:22:21,190 Taigi, ką mes galime padaryti? 448 00:22:21,190 --> 00:22:22,680 >> Auditorija: Mes eiti per sąrašą. 449 00:22:22,680 --> 00:22:23,930 >> JASON HIRSCHORN: eiti per sąrašą. 450 00:22:23,930 --> 00:22:30,620 451 00:22:30,620 --> 00:22:31,100 Gerai. 452 00:22:31,100 --> 00:22:34,280 Ir ką mes patikrinti kiekvieno mazgo. 453 00:22:34,280 --> 00:22:35,955 Kurt, ką mes patikrinti ne kiekvieną mazgą? 454 00:22:35,955 --> 00:22:41,640 >> PUBLIKA: Patikrinkite, ar n vertė kad mazgas yra didesnis nei n vertę 455 00:22:41,640 --> 00:22:43,070 mūsų mazgas. 456 00:22:43,070 --> 00:22:43,340 >> JASON HIRSCHORN: Gerai. 457 00:22:43,340 --> 00:22:44,280 Aš ruošiuosi daryti - 458 00:22:44,280 --> 00:22:45,855 Taip, gerai. 459 00:22:45,855 --> 00:22:48,160 Taigi, tai n - 460 00:22:48,160 --> 00:22:59,040 Aš ruošiuosi pasakyti, ar vertė yra didesnė nei šis mazgas, tada ką mes darome? 461 00:22:59,040 --> 00:23:07,290 >> PUBLIKA: Na, tada mes įterpti tiesiai prieš, kad dalykas. 462 00:23:07,290 --> 00:23:07,970 >> JASON HIRSCHORN: Gerai. 463 00:23:07,970 --> 00:23:09,410 Taigi, jei jis didesnis nei tai, tai mes norime įterpti. 464 00:23:09,410 --> 00:23:14,010 Bet mes norime įterpti jį tiesiai prieš nes mes taip pat turėtų būti 465 00:23:14,010 --> 00:23:16,070 sekti, tada, kas buvo anksčiau. 466 00:23:16,070 --> 00:23:22,690 Taigi įterpti anksčiau. 467 00:23:22,690 --> 00:23:25,120 Taigi, mes tikriausiai kažką praleido anksčiau. 468 00:23:25,120 --> 00:23:27,770 Mes tikriausiai reikia išlaikyti kelio, kas vyksta. 469 00:23:27,770 --> 00:23:28,460 Bet mes grįžti ten. 470 00:23:28,460 --> 00:23:30,160 Taigi, kas vertė yra mažesnė kaip? 471 00:23:30,160 --> 00:23:38,030 472 00:23:38,030 --> 00:23:39,710 Kurt, ką mes darome, jei vertė yra mažesnė kaip? 473 00:23:39,710 --> 00:23:43,000 >> PUBLIKA: Tada tiesiog nesustoti nebent tai naujausia. 474 00:23:43,000 --> 00:23:43,550 >> JASON HIRSCHORN: Man patinka, kad. 475 00:23:43,550 --> 00:23:44,800 Taigi, eikite į kitą mazgą. 476 00:23:44,800 --> 00:23:47,410 477 00:23:47,410 --> 00:23:48,930 Nebent tai naujausia - 478 00:23:48,930 --> 00:23:51,100 mes tikriausiai tikrinti, kad bet kurios būklės sąlygas. 479 00:23:51,100 --> 00:23:54,870 Bet taip, kitą mazgas. 480 00:23:54,870 --> 00:23:58,680 Ir tai vis per mažas, todėl mes perkelti čia. 481 00:23:58,680 --> 00:24:02,030 Bet jei - 482 00:24:02,030 --> 00:24:03,280 nors mato tai? 483 00:24:03,280 --> 00:24:07,230 484 00:24:07,230 --> 00:24:11,610 Jei mes lygūs, ką mes galime padaryti? 485 00:24:11,610 --> 00:24:15,740 Jei vertė mes bandome įterpti yra lygi mazgo vertės? 486 00:24:15,740 --> 00:24:16,320 Taip? 487 00:24:16,320 --> 00:24:18,400 >> PUBLIKA: [nesigirdi]. 488 00:24:18,400 --> 00:24:18,850 >> JASON HIRSCHORN: Taip. 489 00:24:18,850 --> 00:24:19,290 Atsižvelgiant į tai - 490 00:24:19,290 --> 00:24:20,090 Markas yra teisus. 491 00:24:20,090 --> 00:24:21,330 Galėjome galbūt padaryta kažkas kita. 492 00:24:21,330 --> 00:24:25,360 Tačiau turint omenyje, kad mes sukūrėme jį čia turėtume išlaisvinti ir tada grįžti. 493 00:24:25,360 --> 00:24:26,774 O berniukas. 494 00:24:26,774 --> 00:24:30,080 Ar taip geriau? 495 00:24:30,080 --> 00:24:31,850 Kaip tai? 496 00:24:31,850 --> 00:24:33,100 Gerai. 497 00:24:33,100 --> 00:24:35,360 498 00:24:35,360 --> 00:24:37,640 Laisvas ir tada ką mes grįžti [nesigirdi]? 499 00:24:37,640 --> 00:24:41,330 500 00:24:41,330 --> 00:24:44,110 Gerai. 501 00:24:44,110 --> 00:24:45,360 Ar mes ko nors trūksta? 502 00:24:45,360 --> 00:24:53,500 503 00:24:53,500 --> 00:24:59,650 Taigi, kur mes sekti iš anksto mazgas? 504 00:24:59,650 --> 00:25:02,370 >> PUBLIKA: Aš manau, kad tai būtų eiti po sukurti naują mazgą. 505 00:25:02,370 --> 00:25:02,600 >> JASON HIRSCHORN: Gerai. 506 00:25:02,600 --> 00:25:03,940 Taigi pradžioje mes tikriausiai - 507 00:25:03,940 --> 00:25:07,175 Taip, mes galime sukurti žymeklį į naują mazgas, kaip ir ankstesniais mazgo rodyklė ir 508 00:25:07,175 --> 00:25:09,600 dabartinis mazgas rodyklę. 509 00:25:09,600 --> 00:25:12,640 Taigi galime įterpti, kad čia. 510 00:25:12,640 --> 00:25:15,610 511 00:25:15,610 --> 00:25:26,900 Sukurti dabartinė ir ankstesnė rodykles į mazgus. 512 00:25:26,900 --> 00:25:28,955 Bet kai mes pakoreguoti tas rodykles? 513 00:25:28,955 --> 00:25:30,205 Kur mes tai darome kodą? 514 00:25:30,205 --> 00:25:33,830 515 00:25:33,830 --> 00:25:34,160 Jeff? 516 00:25:34,160 --> 00:25:35,170 >> PUBLIKA: - vertė sąlygos? 517 00:25:35,170 --> 00:25:36,420 >> JASON HIRSCHORN: Kuri vienas pirma? 518 00:25:36,420 --> 00:25:39,862 519 00:25:39,862 --> 00:25:40,720 >> PUBLIKA: Aš tiesiog supainioti. 520 00:25:40,720 --> 00:25:44,200 Jei vertė yra didesnė nei ši mazgas, nėra tai reiškia, kad norite eiti 521 00:25:44,200 --> 00:25:45,320 į kitą mazgą? 522 00:25:45,320 --> 00:25:49,515 >> JASON Hirschhorn: Taigi, jei mūsų vertė yra didesnis nei šio mazgo vertę. 523 00:25:49,515 --> 00:25:52,130 >> PUBLIKA: Taip, tada jūs norėtumėte eiti toliau žemyn linija, tiesa? 524 00:25:52,130 --> 00:25:52,590 >> JASON Hirschhorn: Teisė. 525 00:25:52,590 --> 00:25:53,840 Taigi mes ne įterpti jį čia. 526 00:25:53,840 --> 00:25:58,430 527 00:25:58,430 --> 00:26:03,240 Jei vertė yra mažesnė nei šio mazgo, tada mes einame į kitą mazgą - ar tada mes 528 00:26:03,240 --> 00:26:03,835 įterpti anksčiau. 529 00:26:03,835 --> 00:26:05,966 >> PUBLIKA: Palaukite, kuris tai mazgas ir kuris vertė? 530 00:26:05,966 --> 00:26:08,510 531 00:26:08,510 --> 00:26:09,280 >> JASON Hirschhorn: Geras klausimas. 532 00:26:09,280 --> 00:26:13,260 Vertė už šią funkciją apibrėžimą yra tai, ką mes pateikta. 533 00:26:13,260 --> 00:26:16,910 Taigi vertė yra skaičius, mes suteikta. 534 00:26:16,910 --> 00:26:21,120 Taigi, jei reikšmė yra mažesnė, nei tai mazgas, mes turime laiko įterpti. 535 00:26:21,120 --> 00:26:24,575 Jei vertė yra didesnė nei ši mazgas, mes einame į kitą mazgą. 536 00:26:24,575 --> 00:26:26,790 Ir atgal prie pradinio klausimo, nors, kur - 537 00:26:26,790 --> 00:26:29,060 >> PUBLIKA: Jei vertė yra didesnė nei šis mazgas. 538 00:26:29,060 --> 00:26:30,310 >> JASON Hirschhorn: Ir taip ką mes darome čia? 539 00:26:30,310 --> 00:26:36,790 540 00:26:36,790 --> 00:26:38,160 Saldus. 541 00:26:38,160 --> 00:26:38,860 Tai yra teisinga. 542 00:26:38,860 --> 00:26:41,370 Aš tik ketina rašyti atnaujinti patarimų. 543 00:26:41,370 --> 00:26:44,010 Bet taip, su dabartine jūs ją atnaujinti 544 00:26:44,010 --> 00:26:46,080 atkreipia dėmesį į kitą. 545 00:26:46,080 --> 00:26:47,330 Kitoks mes trūkstamus? 546 00:26:47,330 --> 00:26:52,710 547 00:26:52,710 --> 00:26:54,940 Taigi, aš ruošiuosi rašykite kodą į gedit. 548 00:26:54,940 --> 00:26:58,375 Ir nors aš tai padaryti, jūs galite turėti pora daugiau minučių dirbti kodavimo 549 00:26:58,375 --> 00:28:19,240 tai C 550 00:28:19,240 --> 00:28:20,940 >> Taigi turiu įvesties Pseudocode. 551 00:28:20,940 --> 00:28:22,940 Greita Pastaba kol mes pradėti. 552 00:28:22,940 --> 00:28:25,560 Mes negalime visiškai baigti tai visi 553 00:28:25,560 --> 00:28:27,300 trys iš šių funkcijų. 554 00:28:27,300 --> 00:28:30,630 Yra teisingas jų sprendimo kad aš atsiųsime į tave vaikinai 555 00:28:30,630 --> 00:28:33,730 po skirsnio, ir ji bus būti paskelbtas CS50.net. 556 00:28:33,730 --> 00:28:35,640 Taigi aš ne rekomenduojame jums eiti pažvelgti į skirsnius. 557 00:28:35,640 --> 00:28:40,550 Raginu jus išbandyti juos ant savo savo, ir tada naudokite praktika 558 00:28:40,550 --> 00:28:41,760 problemos, kaip patikrinti savo atsakymus. 559 00:28:41,760 --> 00:28:47,070 Jie visi buvo sukurta glaudžiai susiję ir laikytis, ką 560 00:28:47,070 --> 00:28:48,400 jūs turite padaryti dėl problemų rinkinį. 561 00:28:48,400 --> 00:28:53,820 Taigi aš rekomenduojame jums praktiškai tai savo ir tada naudokite kodą 562 00:28:53,820 --> 00:28:54,660 patikrinti savo atsakymus. 563 00:28:54,660 --> 00:28:57,060 Nes aš noriu pereiti į maišos lentelės tam tikru skyriuje taško. 564 00:28:57,060 --> 00:28:58,150 Taigi, mes galime ne gauti per visa tai. 565 00:28:58,150 --> 00:28:59,960 Bet mes padarysime, kiek mes galime dabar. 566 00:28:59,960 --> 00:29:00,370 >> Gerai. 567 00:29:00,370 --> 00:29:01,960 Leiskite mums pradėti. 568 00:29:01,960 --> 00:29:04,770 Asam, kaip mes sukurti naują mazgą? 569 00:29:04,770 --> 00:29:06,810 >> Auditorija: Jūs struct *. 570 00:29:06,810 --> 00:29:09,640 >> JASON Hirschhorn: Taigi mes turėti, kad čia. 571 00:29:09,640 --> 00:29:10,040 Oi, atsiprašau. 572 00:29:10,040 --> 00:29:13,530 Jūs sakėte struct *. 573 00:29:13,530 --> 00:29:17,260 >> PUBLIKA: Ir tada [? natūra?] mazgas arba c mazgas. 574 00:29:17,260 --> 00:29:17,780 >> JASON Hirschhorn: Gerai. 575 00:29:17,780 --> 00:29:19,740 Aš ruošiuosi jį vadiname new_node todėl gali likti nuoseklūs. 576 00:29:19,740 --> 00:29:22,646 577 00:29:22,646 --> 00:29:33,180 >> PUBLIKA: Ir jūs norite nustatyti, kad į galvą, pirmasis mazgas. 578 00:29:33,180 --> 00:29:33,580 >> JASON Hirschhorn: Gerai. 579 00:29:33,580 --> 00:29:37,290 Taigi dabar tai nukreipta į - todėl šis nebuvo sukurta nauja mazgas dar. 580 00:29:37,290 --> 00:29:41,380 Tai yra tik nukreipta į Pirmasis mazgas sąraše. 581 00:29:41,380 --> 00:29:42,630 Kaip aš galiu sukurti naują mazgą? 582 00:29:42,630 --> 00:29:45,490 583 00:29:45,490 --> 00:29:48,070 Jei man reikia erdvės sukurti naują mazgą. 584 00:29:48,070 --> 00:29:49,230 Malloc. 585 00:29:49,230 --> 00:29:51,710 Ir kaip didelis? 586 00:29:51,710 --> 00:30:00,390 >> PUBLIKA: iš struct dydis. 587 00:30:00,390 --> 00:30:01,150 >> JASON Hirschhorn: dydis struct. 588 00:30:01,150 --> 00:30:02,400 Ir kas manimi struct vadinama? 589 00:30:02,400 --> 00:30:09,670 590 00:30:09,670 --> 00:30:09,840 >> PUBLIKA: Mazgas? 591 00:30:09,840 --> 00:30:11,640 >> JASON Hirschhorn: Mazgas. 592 00:30:11,640 --> 00:30:17,640 Taigi malloc (sizeof (mazgas)); suteikia mums vietos. 593 00:30:17,640 --> 00:30:19,740 Ir tai yra linija - 594 00:30:19,740 --> 00:30:21,740 vienas dalykas yra netikslus šioje eilutėje. 595 00:30:21,740 --> 00:30:24,430 Ar new_node Rodyklė į struct? 596 00:30:24,430 --> 00:30:25,650 Tai bendrinis pavadinimas. 597 00:30:25,650 --> 00:30:26,520 Kas tai yra - 598 00:30:26,520 --> 00:30:27,450 mazgas, tiksliai. 599 00:30:27,450 --> 00:30:29,340 Tai mazgas *. 600 00:30:29,340 --> 00:30:33,010 Ir ką mes darome iš karto po mes malloc kažką, Asanos? 601 00:30:33,010 --> 00:30:34,476 Kas pirmas dalykas, mes galime padaryti? 602 00:30:34,476 --> 00:30:38,850 603 00:30:38,850 --> 00:30:40,320 Ką daryti, jei jis neveikia? 604 00:30:40,320 --> 00:30:42,430 >> Auditorija: O, patikrinti, ar jis atkreipia dėmesį į mazgą? 605 00:30:42,430 --> 00:30:43,310 >> JASON Hirschhorn: Būtent. 606 00:30:43,310 --> 00:30:46,750 Taigi, jei jūs new_node lygu lygu null, ką mes darome? 607 00:30:46,750 --> 00:30:51,650 608 00:30:51,650 --> 00:30:54,820 Tai grąžina bool, šią funkciją. 609 00:30:54,820 --> 00:30:57,760 Būtent. 610 00:30:57,760 --> 00:30:58,450 Gerai atrodo. 611 00:30:58,450 --> 00:30:59,680 Viskas ten pridėti? 612 00:30:59,680 --> 00:31:00,670 Mes pridėti dalykų pabaigoje. 613 00:31:00,670 --> 00:31:03,160 Bet tai kol kas gerai atrodo. 614 00:31:03,160 --> 00:31:06,170 Sukurti dabartinius ir ankstesnius nurodymus. 615 00:31:06,170 --> 00:31:08,650 Mykolas, kaip man tai padaryti? 616 00:31:08,650 --> 00:31:12,810 >> PUBLIKA: Jums reikės padaryti mazgas *. 617 00:31:12,810 --> 00:31:21,800 618 00:31:21,800 --> 00:31:25,502 Jūs turite padaryti vieną ne už new_node bet 619 00:31:25,502 --> 00:31:26,905 mazgai jau turime. 620 00:31:26,905 --> 00:31:27,230 >> JASON Hirschhorn: Gerai. 621 00:31:27,230 --> 00:31:29,255 Taigi dabartinis mazgas mes apie. 622 00:31:29,255 --> 00:31:30,505 Aš vadinu Val. 623 00:31:30,505 --> 00:31:39,650 624 00:31:39,650 --> 00:31:39,770 Gerai. 625 00:31:39,770 --> 00:31:41,620 Mes nusprendėme, kad norime du, nes mums reikia žinoti 626 00:31:41,620 --> 00:31:42,870 kas prieš jį. 627 00:31:42,870 --> 00:31:45,770 628 00:31:45,770 --> 00:31:47,020 Ką jie gauti inicializuoti? 629 00:31:47,020 --> 00:31:49,874 630 00:31:49,874 --> 00:31:54,180 >> PUBLIKA: Jų vertė į mūsų sąrašą. 631 00:31:54,180 --> 00:31:58,090 >> JASON Hirschhorn: Taigi, kas yra pirmas dalykas, dėl savo sąrašą? 632 00:31:58,090 --> 00:32:04,050 Arba kaip mes žinome, kur pradžioje mūsų sąraše? 633 00:32:04,050 --> 00:32:08,015 >> Auditorija: Ar ne ji išlaikė į funkciją? 634 00:32:08,015 --> 00:32:08,466 >> JASON Hirschhorn: Teisė. 635 00:32:08,466 --> 00:32:09,716 Jis buvo priimtas čia. 636 00:32:09,716 --> 00:32:15,910 637 00:32:15,910 --> 00:32:18,980 Taigi, jei jis patenka į funkciją, pradėti sąrašo, ką turėtume 638 00:32:18,980 --> 00:32:21,270 nustatyta srovė lygi? 639 00:32:21,270 --> 00:32:22,110 >> PUBLIKA: Sąrašas. 640 00:32:22,110 --> 00:32:22,900 >> JASON Hirschhorn: Sąrašas. 641 00:32:22,900 --> 00:32:24,090 Būtent dešinėje. 642 00:32:24,090 --> 00:32:26,290 Dabar ji turi adresą mūsų sąrašo pradžia. 643 00:32:26,290 --> 00:32:28,450 O ką apie praėjusią? 644 00:32:28,450 --> 00:32:31,920 >> PUBLIKA: Sąrašas minus vienas? 645 00:32:31,920 --> 00:32:32,690 >> JASON Hirschhorn: Yra nieko prieš jį. 646 00:32:32,690 --> 00:32:34,580 Taigi, ką mes galime padaryti, nieko reikšti? 647 00:32:34,580 --> 00:32:35,050 >> PUBLIKA: NULL. 648 00:32:35,050 --> 00:32:35,450 >> JASON Hirschhorn: Taip. 649 00:32:35,450 --> 00:32:37,950 Tai skamba kaip gera idėja. 650 00:32:37,950 --> 00:32:38,360 Tobula. 651 00:32:38,360 --> 00:32:39,630 Ačiū. 652 00:32:39,630 --> 00:32:42,850 Eiti per sąrašą. 653 00:32:42,850 --> 00:32:45,490 Konstantinas, kaip ilgai mes einame eiti per sąrašą? 654 00:32:45,490 --> 00:32:49,010 >> PUBLIKA: Iki Pasiekiame null. 655 00:32:49,010 --> 00:32:49,390 >> JASON Hirschhorn: Gerai. 656 00:32:49,390 --> 00:32:50,430 Taigi, jei, nors, už linijos. 657 00:32:50,430 --> 00:32:52,200 Ką mes darome? 658 00:32:52,200 --> 00:32:53,320 >> PUBLIKA: Gal už linijos? 659 00:32:53,320 --> 00:32:53,910 >> JASON Hirschhorn: Darom už linijos. 660 00:32:53,910 --> 00:32:55,870 Gerai. 661 00:32:55,870 --> 00:33:02,465 >> PUBLIKA: Ir mes pasakyti - 662 00:33:02,465 --> 00:33:09,764 663 00:33:09,764 --> 00:33:13,390 iki dabartinio rodyklė nėra lygus nulis. 664 00:33:13,390 --> 00:33:19,160 >> JASON Hirschhorn: Taigi, jei mes žinome, sąlyga, kaip mes galime parašyti kilpa 665 00:33:19,160 --> 00:33:21,740 pagrįsta ne tokios būklės. 666 00:33:21,740 --> 00:33:24,380 Kokios kilpa turėtume naudoti? 667 00:33:24,380 --> 00:33:25,260 >> PUBLIKA: Nors. 668 00:33:25,260 --> 00:33:25,590 >> JASON Hirschhorn: Taip. 669 00:33:25,590 --> 00:33:27,130 Tai suteikia daugiau prasmės, pagrįstą nuo to, ką jūs pasakėte. 670 00:33:27,130 --> 00:33:29,430 Jei mes tiesiog norime eiti į mes jį būtų tiesiog žinau, kad dalykas, būtų 671 00:33:29,430 --> 00:33:31,680 jausmas daryti, o kilpą. 672 00:33:31,680 --> 00:33:39,880 Nors dabartinis nėra lygi nuliui, jei turto vertė yra mažesnė nei šio mazgo. 673 00:33:39,880 --> 00:33:41,650 Akshar, duok man šią eilutę. 674 00:33:41,650 --> 00:33:48,810 675 00:33:48,810 --> 00:33:56,955 >> PUBLIKA: Jei dabartinis-> n n mažesnis už vertę. 676 00:33:56,955 --> 00:34:00,170 677 00:34:00,170 --> 00:34:03,260 Arba pakeisti, kad. 678 00:34:03,260 --> 00:34:06,140 Perjungti šią laikiklį. 679 00:34:06,140 --> 00:34:06,620 >> JASON Hirschhorn: Atsiprašome. 680 00:34:06,620 --> 00:34:08,760 >> PUBLIKA: Pakeisti laikiklį. 681 00:34:08,760 --> 00:34:10,914 >> JASON Hirschhorn: Taigi, jei tai didesnė nei vertė. 682 00:34:10,914 --> 00:34:18,719 683 00:34:18,719 --> 00:34:22,120 Nes tai painu su komentarą aukščiau, aš ruošiuosi daryti. 684 00:34:22,120 --> 00:34:22,480 Bet taip. 685 00:34:22,480 --> 00:34:25,125 Jei mūsų vertė yra mažesnė negu ši mazgas, ką mes darome? 686 00:34:25,125 --> 00:34:25,540 Oh. 687 00:34:25,540 --> 00:34:26,710 Turiu jį čia. 688 00:34:26,710 --> 00:34:27,960 Įdėkite anksčiau. 689 00:34:27,960 --> 00:34:32,080 690 00:34:32,080 --> 00:34:32,370 Gerai. 691 00:34:32,370 --> 00:34:33,933 Kaip mes tai darome? 692 00:34:33,933 --> 00:34:34,900 >> Auditorija: Ar ji vis dar mane? 693 00:34:34,900 --> 00:34:36,150 >> JASON Hirschhorn: Taip. 694 00:34:36,150 --> 00:34:38,520 695 00:34:38,520 --> 00:34:39,770 >> Auditorija: Jūs - 696 00:34:39,770 --> 00:34:42,909 697 00:34:42,909 --> 00:34:44,159 new_node-> šalia. 698 00:34:44,159 --> 00:34:46,770 699 00:34:46,770 --> 00:34:50,163 >> JASON Hirschhorn: Taigi, kas yra kad ketina prilygti? 700 00:34:50,163 --> 00:34:52,070 >> PUBLIKA: Jis vyksta į vienodą srovę. 701 00:34:52,070 --> 00:34:53,889 >> JASON Hirschhorn: Būtent. 702 00:34:53,889 --> 00:34:55,730 Ir taip kita - 703 00:34:55,730 --> 00:34:56,730 ką dar reikia atnaujinti? 704 00:34:56,730 --> 00:34:59,982 >> PUBLIKA: Patikrinkite, ar pro Lygu null. 705 00:34:59,982 --> 00:35:01,870 >> JASON Hirschhorn: Jei ankstesnė - 706 00:35:01,870 --> 00:35:03,730 todėl, jei pask Lygu null. 707 00:35:03,730 --> 00:35:05,990 >> PUBLIKA: Tai reiškia, kad vyksta tapti vadovu. 708 00:35:05,990 --> 00:35:06,780 >> JASON Hirschhorn: Tai reiškia, kad jis tapo vadovu. 709 00:35:06,780 --> 00:35:07,620 Taigi, ką mes galime padaryti? 710 00:35:07,620 --> 00:35:12,510 >> Auditorija: Mes galva Lygu new_node. 711 00:35:12,510 --> 00:35:16,690 >> JASON Hirschhorn: vadovas Lygu new_node. 712 00:35:16,690 --> 00:35:20,540 Ir kodėl galva čia nėra sąraše? 713 00:35:20,540 --> 00:35:24,940 >> PUBLIKA: Kadangi galva yra pasaulinė kintamasis, kuris yra pradinė vieta. 714 00:35:24,940 --> 00:35:26,190 >> JASON Hirschhorn: Sweet. 715 00:35:26,190 --> 00:35:33,750 716 00:35:33,750 --> 00:35:34,170 Gerai. 717 00:35:34,170 --> 00:35:36,150 Ir - 718 00:35:36,150 --> 00:35:53,796 >> PUBLIKA: Tada jums dar ankstesnė-> Kitas Lygu new_node. 719 00:35:53,796 --> 00:35:55,080 Ir tada grąžina true. 720 00:35:55,080 --> 00:35:59,560 721 00:35:59,560 --> 00:36:02,700 >> JASON Hirschhorn: Kur daryti mes nustatome new_node pabaigoje? 722 00:36:02,700 --> 00:36:04,850 >> PUBLIKA: norėčiau - 723 00:36:04,850 --> 00:36:06,180 Aš nustačiau, kad pradžioje. 724 00:36:06,180 --> 00:36:07,430 >> JASON Hirschhorn: Taigi, kas eilutėje? 725 00:36:07,430 --> 00:36:10,000 726 00:36:10,000 --> 00:36:12,598 >> PUBLIKA: Po if tikrinti, ar jis žinomas. 727 00:36:12,598 --> 00:36:13,057 >> JASON Hirschhorn: Štai čia? 728 00:36:13,057 --> 00:36:18,335 >> PUBLIKA: aš padaryti new_node-> n Lygu vertę. 729 00:36:18,335 --> 00:36:19,585 >> JASON Hirschhorn: Skamba gerai. 730 00:36:19,585 --> 00:36:21,740 731 00:36:21,740 --> 00:36:25,090 Turbūt logiška - mes ne reikia žinoti, ką sąrašas mes apie 732 00:36:25,090 --> 00:36:26,280 nes mes tik sprendžiant vieną sąrašą. 733 00:36:26,280 --> 00:36:29,560 Taigi geriau funkcija deklaracija tai tik atsikratyti šio 734 00:36:29,560 --> 00:36:34,360 visiškai ir tiesiog įdėkite vertė į galvą. 735 00:36:34,360 --> 00:36:35,930 Mes net nereikia žinoti ką mes sąrašas viduj 736 00:36:35,930 --> 00:36:39,140 Bet aš nuolat jį dabar ir tada pakeisti jį į atnaujinimo 737 00:36:39,140 --> 00:36:42,590 Slides ir kodas. 738 00:36:42,590 --> 00:36:44,980 Taigi, kad gerai atrodo dabar. 739 00:36:44,980 --> 00:36:46,560 Jei vertė - kas gali padaryti šią eilutę? 740 00:36:46,560 --> 00:36:47,810 Jei - 741 00:36:47,810 --> 00:36:52,240 742 00:36:52,240 --> 00:36:53,840 ką mes darome čia, Nojus. 743 00:36:53,840 --> 00:36:57,890 744 00:36:57,890 --> 00:37:07,100 >> PUBLIKA: Jei vertė yra didesnė nei Pylimas-> n - 745 00:37:07,100 --> 00:37:16,830 746 00:37:16,830 --> 00:37:18,240 >> JASON Hirschhorn: Kaip padaryti mes einame į kitą mazgą? 747 00:37:18,240 --> 00:37:27,760 748 00:37:27,760 --> 00:37:30,530 >> PUBLIKA: Valiuta-> n lygi new_node. 749 00:37:30,530 --> 00:37:37,630 750 00:37:37,630 --> 00:37:39,195 >> JASON Hirschhorn: Taigi n kokia dalis struct? 751 00:37:39,195 --> 00:37:43,065 752 00:37:43,065 --> 00:37:46,020 Sveikasis skaičius. 753 00:37:46,020 --> 00:37:50,420 Ir new_node yra rodyklė į mazgą. 754 00:37:50,420 --> 00:37:51,880 Taigi, kokia dalis Valiuta turėtume atnaujinti? 755 00:37:51,880 --> 00:38:03,900 756 00:38:03,900 --> 00:38:05,400 Jei ne n, tada kas kita dalis? 757 00:38:05,400 --> 00:38:21,680 758 00:38:21,680 --> 00:38:22,810 Nojus, kas kitas dalis. 759 00:38:22,810 --> 00:38:23,570 >> Auditorija: O kitą. 760 00:38:23,570 --> 00:38:25,645 >> JASON Hirschhorn: Kitas, tiksliai. 761 00:38:25,645 --> 00:38:26,410 Būtent. 762 00:38:26,410 --> 00:38:28,770 Kitas yra teisingas. 763 00:38:28,770 --> 00:38:31,540 Ir ką dar turime atnaujinti, Nojų? 764 00:38:31,540 --> 00:38:32,840 >> PUBLIKA: The patarimų. 765 00:38:32,840 --> 00:38:34,840 >> JASON Hirschhorn: Taigi mes atnaujinti srovę. 766 00:38:34,840 --> 00:38:36,090 >> PUBLIKA: Ankstesnis-> šalia. 767 00:38:36,090 --> 00:38:48,160 768 00:38:48,160 --> 00:38:49,410 >> JASON Hirschhorn: Taip. 769 00:38:49,410 --> 00:38:57,465 770 00:38:57,465 --> 00:38:58,370 Gerai, mes sustabdyti. 771 00:38:58,370 --> 00:39:02,200 Kas gali padėti mums iš čia? 772 00:39:02,200 --> 00:39:03,385 Manu, ką mes turėtume daryti? 773 00:39:03,385 --> 00:39:05,615 >> Auditorija: Jūs turite nustatyti ji lygi Valiuta-> kito. 774 00:39:05,615 --> 00:39:09,110 775 00:39:09,110 --> 00:39:11,630 Bet tai, kad iki praėjusių linija. 776 00:39:11,630 --> 00:39:12,880 >> JASON Hirschhorn: Gerai. 777 00:39:12,880 --> 00:39:16,590 778 00:39:16,590 --> 00:39:18,260 Kitoks? 779 00:39:18,260 --> 00:39:19,170 Akshar. 780 00:39:19,170 --> 00:39:22,680 >> PUBLIKA: Aš nemanau, kad jūs esate skirtas pakeisti Val-> šalia. 781 00:39:22,680 --> 00:39:29,270 Manau, jūs reiškė daryti Valiuta lygu Pylimas-> šalia pereiti į kitą mazgą. 782 00:39:29,270 --> 00:39:30,500 >> JASON Hirschhorn: Taigi atsiprašau, kur? 783 00:39:30,500 --> 00:39:32,680 Apie tai, kas eilutėje? 784 00:39:32,680 --> 00:39:33,420 Ši eilutė? 785 00:39:33,420 --> 00:39:33,750 >> PUBLIKA: Taip. 786 00:39:33,750 --> 00:39:35,745 Padaryti Valiuta Lygu Valiuta-> šalia. 787 00:39:35,745 --> 00:39:39,690 788 00:39:39,690 --> 00:39:43,360 >> JASON Hirschhorn: Taigi, kad teisinga , nes dabartinė yra 789 00:39:43,360 --> 00:39:45,220 Rodyklė į mazgą. 790 00:39:45,220 --> 00:39:48,550 Ir mes norime, kad ji rodytų į kitą mazgas, kas darosi dabar 791 00:39:48,550 --> 00:39:49,930 nurodė. 792 00:39:49,930 --> 00:39:54,410 Pati Valiuta turi kitą. 793 00:39:54,410 --> 00:39:58,620 Bet jei mes atnaujinti curr.next, mes bus atnaujinti faktinę dėmesį 794 00:39:58,620 --> 00:40:01,430 pati ne ten, kur tai rodyklė rodė. 795 00:40:01,430 --> 00:40:02,680 Ką apie šią eilutę, nors. 796 00:40:02,680 --> 00:40:05,160 797 00:40:05,160 --> 00:40:07,330 Avi? 798 00:40:07,330 --> 00:40:09,590 >> PUBLIKA: Ankstesnis-> šalia Lygu Val. 799 00:40:09,590 --> 00:40:12,500 800 00:40:12,500 --> 00:40:19,440 >> JASON Hirschhorn: Taigi dar kartą, jei pask yra Rodyklė į mazgą, pask-> šalia yra 801 00:40:19,440 --> 00:40:23,020 Tikrasis žymiklį mazgas. 802 00:40:23,020 --> 00:40:27,190 Taigi, tai bus atnaujinti žymiklį į mazgas Val. 803 00:40:27,190 --> 00:40:28,570 Mes nenorime, kad atnaujinti į mazgo rodyklė. 804 00:40:28,570 --> 00:40:30,570 Mes norime, kad atnaujinti ankstesnę. 805 00:40:30,570 --> 00:40:31,850 Taigi, kaip mes tai darome? 806 00:40:31,850 --> 00:40:34,250 >> PUBLIKA: Tai tiesiog būti ankstesnė. 807 00:40:34,250 --> 00:40:34,565 >> JASON Hirschhorn: Teisė. 808 00:40:34,565 --> 00:40:35,560 Ankstesnis yra rodyklė į mazgą. 809 00:40:35,560 --> 00:40:38,750 Dabar mes jį pakeisti į nauja rodyklė į mazgą. 810 00:40:38,750 --> 00:40:40,830 Gerai Leiskite mums judėti žemyn. 811 00:40:40,830 --> 00:40:41,940 Galiausiai, ši paskutinė sąlyga. 812 00:40:41,940 --> 00:40:44,896 Jeffas, ką mes čia darome? 813 00:40:44,896 --> 00:40:47,515 >> PUBLIKA: Jei vertė yra lygi Valiuta-> n. 814 00:40:47,515 --> 00:40:51,030 815 00:40:51,030 --> 00:40:51,300 >> JASON Hirschhorn: Atsiprašome. 816 00:40:51,300 --> 00:40:52,372 Dieve mano. 817 00:40:52,372 --> 00:40:54,330 Ką? 818 00:40:54,330 --> 00:40:55,580 Reikšmė == Valiuta-> n. 819 00:40:55,580 --> 00:41:01,050 820 00:41:01,050 --> 00:41:02,300 Ką mes darome? 821 00:41:02,300 --> 00:41:04,760 822 00:41:04,760 --> 00:41:10,950 >> Auditorija: Jūs norite išlaisvinti mūsų new_node, ir tada jūs return false. 823 00:41:10,950 --> 00:41:21,410 824 00:41:21,410 --> 00:41:23,460 >> JASON Hirschhorn: Tai, ką mes parašėme šiol. 825 00:41:23,460 --> 00:41:25,710 Ar kas nors ką nors pridėti kol mes padaryti? 826 00:41:25,710 --> 00:41:35,460 827 00:41:35,460 --> 00:41:35,710 Gerai. 828 00:41:35,710 --> 00:41:36,960 Pabandykime ją. 829 00:41:36,960 --> 00:41:44,180 830 00:41:44,180 --> 00:41:46,110 Kontrolė gali pasiekti pabaigos iš ne void funkcija. 831 00:41:46,110 --> 00:41:48,310 Avi, kas vyksta? 832 00:41:48,310 --> 00:41:51,380 >> Auditorija: Ar turėjo įdėti grąžą tiesa ne iš while cikle? 833 00:41:51,380 --> 00:41:53,900 834 00:41:53,900 --> 00:41:54,400 >> JASON Hirschhorn: Aš nežinau. 835 00:41:54,400 --> 00:41:54,780 Ar norite mane? 836 00:41:54,780 --> 00:41:55,520 >> PUBLIKA: Never mind. 837 00:41:55,520 --> 00:41:56,350 Ne. 838 00:41:56,350 --> 00:41:57,180 >> JASON Hirschhorn: Akshar? 839 00:41:57,180 --> 00:41:59,460 >> PUBLIKA: Manau, kad jums skirtas įdėti return false pabaigoje 840 00:41:59,460 --> 00:42:02,230 iš while cikle. 841 00:42:02,230 --> 00:42:03,270 >> JASON Hirschhorn: Taigi, kur Jūs norite eiti? 842 00:42:03,270 --> 00:42:05,270 >> PUBLIKA: kaip ne while cikle. 843 00:42:05,270 --> 00:42:08,800 Taigi, jei išeisite iš while cikle, tai reiškia, kad jūs pasiekėte galą ir 844 00:42:08,800 --> 00:42:09,980 Nieko neatsitiko. 845 00:42:09,980 --> 00:42:10,410 >> JASON Hirschhorn: Gerai. 846 00:42:10,410 --> 00:42:12,340 Taigi, ką mes darome čia? 847 00:42:12,340 --> 00:42:13,702 >> Auditorija: Jūs return false ten taip pat. 848 00:42:13,702 --> 00:42:15,040 >> JASON Hirschhorn: O, mes daryti abiejose vietose? 849 00:42:15,040 --> 00:42:15,650 >> PUBLIKA: Taip. 850 00:42:15,650 --> 00:42:16,900 >> JASON Hirschhorn: Gerai. 851 00:42:16,900 --> 00:42:24,840 852 00:42:24,840 --> 00:42:26,160 Jei mes einame? 853 00:42:26,160 --> 00:42:26,980 Dieve mano. 854 00:42:26,980 --> 00:42:27,290 Aš atsiprašau. 855 00:42:27,290 --> 00:42:28,480 Atsiprašau už ekrano. 856 00:42:28,480 --> 00:42:30,530 Jis rūšies freaking mus. 857 00:42:30,530 --> 00:42:31,520 Taigi pasirinkite pasirinktį. 858 00:42:31,520 --> 00:42:35,260 Nulis, už kodą, meta programą. 859 00:42:35,260 --> 00:42:36,700 Vienas įdeda kažką. 860 00:42:36,700 --> 00:42:37,990 Leiskite įdėti tris. 861 00:42:37,990 --> 00:42:42,900 862 00:42:42,900 --> 00:42:45,380 Įterpti nebuvo sėkmingas. 863 00:42:45,380 --> 00:42:46,500 Aš ruošiuosi atsispausdinti. 864 00:42:46,500 --> 00:42:48,050 Aš neturiu nieko. 865 00:42:48,050 --> 00:42:48,450 Gerai. 866 00:42:48,450 --> 00:42:50,250 Gal tai buvo tik atsitiktinumas. 867 00:42:50,250 --> 00:42:52,810 Įdėkite vieną. 868 00:42:52,810 --> 00:42:55,770 Nėra sėkmingas. 869 00:42:55,770 --> 00:42:57,470 Gerai. 870 00:42:57,470 --> 00:43:02,400 Tegul eina per GDB tikrai greitai sužinoti, kas vyksta. 871 00:43:02,400 --> 00:43:06,055 >> Prisiminti gdb. / Pavadinimo savo programa bus mums į GDB. 872 00:43:06,055 --> 00:43:07,610 Yra tai, kad daug dirbti? 873 00:43:07,610 --> 00:43:08,560 Mirksi? 874 00:43:08,560 --> 00:43:10,400 Tikriausiai. 875 00:43:10,400 --> 00:43:12,760 Užmerkite akis ir šiek tiek giliai kvėpuoti, jei jums nusibodo 876 00:43:12,760 --> 00:43:13,580 žiūri jį. 877 00:43:13,580 --> 00:43:14,200 Aš GDB. 878 00:43:14,200 --> 00:43:15,830 Kas pirmas dalykas, kurį aš padaryti GDB? 879 00:43:15,830 --> 00:43:17,050 Mes turime išsiaiškinti, kas čia vyksta. 880 00:43:17,050 --> 00:43:17,310 Pažiūrėkime. 881 00:43:17,310 --> 00:43:21,650 Mes turime šešias minutes išsiaiškinti , kas vyksta. 882 00:43:21,650 --> 00:43:22,900 Break pagrindinis. 883 00:43:22,900 --> 00:43:25,950 884 00:43:25,950 --> 00:43:28,130 Ir tada ką daryti? 885 00:43:28,130 --> 00:43:29,180 Carlos? 886 00:43:29,180 --> 00:43:31,060 Pradėti. 887 00:43:31,060 --> 00:43:32,250 Gerai. 888 00:43:32,250 --> 00:43:34,160 Leiskite pasirinkti pasirinktį. 889 00:43:34,160 --> 00:43:36,330 Ir ką N daryti? 890 00:43:36,330 --> 00:43:38,480 Kitas. 891 00:43:38,480 --> 00:43:38,950 Taip. 892 00:43:38,950 --> 00:43:39,740 >> Auditorija: Ar ne jūs paminėti - 893 00:43:39,740 --> 00:43:45,230 tu negali sakyti, kad vadovas buvo inicializuoti nulis pradžioje. 894 00:43:45,230 --> 00:43:47,140 Bet aš maniau, jūs sakėte, kad buvo gerai. 895 00:43:47,140 --> 00:43:50,040 896 00:43:50,040 --> 00:43:52,640 >> JASON Hirschhorn: Vykime - pažvelkime į GDB, ir tada mes grįžti. 897 00:43:52,640 --> 00:43:54,910 Bet tai skamba kaip jūs jau turite kai apie tai, kas vyksta idėjos. 898 00:43:54,910 --> 00:43:58,340 Taigi norime įterpti kažką. 899 00:43:58,340 --> 00:43:59,390 Gerai. 900 00:43:59,390 --> 00:44:00,150 Mes įterpti. 901 00:44:00,150 --> 00:44:00,770 Įveskite int. 902 00:44:00,770 --> 00:44:01,990 Mes įterpti tris. 903 00:44:01,990 --> 00:44:03,000 Ir tada aš į šią eilutę. 904 00:44:03,000 --> 00:44:07,030 Kaip aš galiu eiti pradėti derinimo įterpti žinomas funkciją? 905 00:44:07,030 --> 00:44:08,280 Dieve mano. 906 00:44:08,280 --> 00:44:10,990 907 00:44:10,990 --> 00:44:12,240 Tai daug. 908 00:44:12,240 --> 00:44:14,372 909 00:44:14,372 --> 00:44:16,445 Ar tai freaking daug? 910 00:44:16,445 --> 00:44:19,696 911 00:44:19,696 --> 00:44:21,680 >> Auditorija: O, tai mirė. 912 00:44:21,680 --> 00:44:22,930 >> JASON Hirschhorn: Aš tiesiog iškedentas jį. 913 00:44:22,930 --> 00:44:27,364 914 00:44:27,364 --> 00:44:28,310 Gerai. 915 00:44:28,310 --> 00:44:29,560 >> PUBLIKA: Gal tai Kitame gale laido. 916 00:44:29,560 --> 00:44:37,000 917 00:44:37,000 --> 00:44:39,470 >> JASON Hirschhorn: Oho. 918 00:44:39,470 --> 00:44:42,330 Taigi Esmė - 919 00:44:42,330 --> 00:44:43,470 ką tu sakai? 920 00:44:43,470 --> 00:44:46,040 >> PUBLIKA: sakiau techninės ironija sunkumai šioje klasėje. 921 00:44:46,040 --> 00:44:46,410 >> JASON Hirschhorn: aš žinau. 922 00:44:46,410 --> 00:44:48,660 Jei tik aš turėjo kontroliuoti tos dalies. 923 00:44:48,660 --> 00:44:49,910 [Nesigirdi] 924 00:44:49,910 --> 00:44:54,430 925 00:44:54,430 --> 00:44:55,400 Tai skamba puikiai. 926 00:44:55,400 --> 00:44:58,680 Kodėl vaikinai pradėti galvoti apie ką mes galėjome padaryti neteisingai, 927 00:44:58,680 --> 00:45:01,140 ir mes dar 90 sekundžių. 928 00:45:01,140 --> 00:46:18,160 929 00:46:18,160 --> 00:46:23,010 >> Avica Aš ruošiuosi paprašyti jus, kaip eiti viduje insert_node derinti jį. 930 00:46:23,010 --> 00:46:28,940 931 00:46:28,940 --> 00:46:31,460 Taigi, tai yra, kai mes paskutinį kartą baigėte. 932 00:46:31,460 --> 00:46:35,110 Kaip aš galiu eiti į vidų insert_node, Avica, išnagrinėti, kas vyksta? 933 00:46:35,110 --> 00:46:36,360 Kas GDB komanda? 934 00:46:36,360 --> 00:46:41,050 935 00:46:41,050 --> 00:46:42,390 Pertrauka nebūtų priimti mane į vidų. 936 00:46:42,390 --> 00:46:46,200 937 00:46:46,200 --> 00:46:47,130 Ar Markizė žinoti? 938 00:46:47,130 --> 00:46:48,240 >> PUBLIKA: Kas? 939 00:46:48,240 --> 00:46:51,780 >> JASON Hirschhorn: Kas GDB komanda Aš naudoju vidun šią funkciją? 940 00:46:51,780 --> 00:46:52,070 >> PUBLIKA: žingsnis? 941 00:46:52,070 --> 00:46:55,140 >> JASON Hirschhorn: žingsnis per S. Tai užima man viduje. 942 00:46:55,140 --> 00:46:55,476 Gerai. 943 00:46:55,476 --> 00:46:58,040 New_node mallocing šiek tiek erdvės. 944 00:46:58,040 --> 00:46:59,120 Kad visi atrodo jos vyksta. 945 00:46:59,120 --> 00:47:00,370 Panagrinėkime new_node. 946 00:47:00,370 --> 00:47:03,270 947 00:47:03,270 --> 00:47:05,410 Jis gavo šiek tiek atminties adresą. 948 00:47:05,410 --> 00:47:07,440 Leiskite patikrinti - 949 00:47:07,440 --> 00:47:08,500 tai viskas teisinga. 950 00:47:08,500 --> 00:47:12,220 Taigi čia viskas atrodo dirbti teisingai. 951 00:47:12,220 --> 00:47:14,530 >> PUBLIKA: Koks skirtumas tarp P ir ekrano? 952 00:47:14,530 --> 00:47:16,160 >> JASON Hirschhorn: P reiškia spausdinti. 953 00:47:16,160 --> 00:47:19,310 Ir tokiu būdu jūs esate klausia, kas skirtumas tarp to, ir tai? 954 00:47:19,310 --> 00:47:22,330 Šiuo atveju, nieko. 955 00:47:22,330 --> 00:47:26,960 Bet apskritai yra tam tikrų skirtumų. 956 00:47:26,960 --> 00:47:28,220 Ir jūs turėtumėte pažvelgti į GDB vadove. 957 00:47:28,220 --> 00:47:29,560 Tačiau šiuo atveju, nieko. 958 00:47:29,560 --> 00:47:31,460 Mes linkę naudoti spausdinti, nors, nes mums nereikia daryti daug daugiau nei 959 00:47:31,460 --> 00:47:33,960 spausdinti vieną reikšmę. 960 00:47:33,960 --> 00:47:34,640 >> Gerai. 961 00:47:34,640 --> 00:47:40,300 Taigi mes esame mūsų kodas yra 80 eilutėje, nustatant mazgas * Val lygų sąrašą. 962 00:47:40,300 --> 00:47:42,500 Leiskite mums atsispausdinti Val. 963 00:47:42,500 --> 00:47:45,260 964 00:47:45,260 --> 00:47:46,840 Jis lygus sąrašą. 965 00:47:46,840 --> 00:47:48,850 Saldus. 966 00:47:48,850 --> 00:47:49,340 Palaukti. 967 00:47:49,340 --> 00:47:50,590 Jis lygus kažką. 968 00:47:50,590 --> 00:47:53,680 969 00:47:53,680 --> 00:47:56,190 Tai neatrodo teisinga. 970 00:47:56,190 --> 00:47:56,840 Čia mes eiti. 971 00:47:56,840 --> 00:47:59,470 Tai yra todėl, kad GDB, tiesa, jei tai linija jūs jį 972 00:47:59,470 --> 00:48:00,330 nebuvo įvykdyta dar. 973 00:48:00,330 --> 00:48:03,100 Taigi, tau reikia iš tikrųjų įvesti šalia vykdyti liniją 974 00:48:03,100 --> 00:48:05,230 prieš pamatyti savo rezultatus. 975 00:48:05,230 --> 00:48:06,680 Taigi čia mes esame. 976 00:48:06,680 --> 00:48:09,490 Mes tiesiog vykdomas šią eilutę, ankstesnis Lygu null. 977 00:48:09,490 --> 00:48:13,590 Taigi dar kartą, jei mes spausdinti Ankstesnis mes nematome nieko keista. 978 00:48:13,590 --> 00:48:18,680 Bet jei mes iš tikrųjų įvykdyti, kad linija, tada matysime 979 00:48:18,680 --> 00:48:20,380 kad linija dirbo. 980 00:48:20,380 --> 00:48:21,060 >> Taigi, mes turime Val. 981 00:48:21,060 --> 00:48:23,180 Tai yra tiek geras. 982 00:48:23,180 --> 00:48:24,010 Teisė? 983 00:48:24,010 --> 00:48:28,130 Dabar mes šioje eilutėje čia. 984 00:48:28,130 --> 00:48:29,310 Nors Pylimas nėra vienodas null. 985 00:48:29,310 --> 00:48:31,110 Na, ką Valiuta lygūs? 986 00:48:31,110 --> 00:48:32,450 Mes tik pamačiau tai prilygo null. 987 00:48:32,450 --> 00:48:33,210 Mes atspausdintas jį. 988 00:48:33,210 --> 00:48:35,110 Aš spausdinti iš naujo. 989 00:48:35,110 --> 00:48:36,720 Taigi, yra tai, kad kilpa ketina vykdyti? 990 00:48:36,720 --> 00:48:37,270 >> PUBLIKA: Ne 991 00:48:37,270 --> 00:48:39,790 >> JASON Hirschhorn: Taigi, kai įvedžiau, kad linija, matote mes šoktelėjo visą kelią 992 00:48:39,790 --> 00:48:41,390 žemyn į dugną, return false. 993 00:48:41,390 --> 00:48:44,520 Ir tada mes ketiname return false ir grįžti į mūsų programą ir 994 00:48:44,520 --> 00:48:48,020 galiausiai atsispausdinti, kaip matėme, įterpti nebuvo sėkmingas. 995 00:48:48,020 --> 00:48:51,010 Taigi, kas nors turi kokių nors idėjų, ką mes turime daryti, kad išspręsti šią problemą? 996 00:48:51,010 --> 00:48:54,200 997 00:48:54,200 --> 00:48:57,570 Aš laukti, kol matau Rankų pora eiti. 998 00:48:57,570 --> 00:48:58,830 Mes nevykdė tai. 999 00:48:58,830 --> 00:49:01,660 Turėkite omenyje, tai buvo pirmoji dalykas, mes darome. 1000 00:49:01,660 --> 00:49:02,430 Nesiruošiu daryti pora. 1001 00:49:02,430 --> 00:49:03,670 Aš ruošiuosi padaryti nedaug. 1002 00:49:03,670 --> 00:49:04,830 Kadangi pora tai du. 1003 00:49:04,830 --> 00:49:07,620 Lauksiu daugiau nei dviejų. 1004 00:49:07,620 --> 00:49:10,690 >> Pirmasis intarpas, Pylimas, pagal nutylėjimą lygu null. 1005 00:49:10,690 --> 00:49:14,050 Ir tai kilpa tik vykdo jei Pylimas nėra lygus nuliui. 1006 00:49:14,050 --> 00:49:18,740 Taigi, kaip aš galiu gauti apie tai? 1007 00:49:18,740 --> 00:49:19,990 Matau tris rankas. 1008 00:49:19,990 --> 00:49:28,490 1009 00:49:28,490 --> 00:49:29,780 Lauksiu daugiau nei tris. 1010 00:49:29,780 --> 00:49:33,460 1011 00:49:33,460 --> 00:49:35,940 Marcus, ką jūs manote? 1012 00:49:35,940 --> 00:49:37,730 >> PUBLIKA: Na, jei jūs turite jį vykdyti daugiau nei vieną kartą, jūs tiesiog 1013 00:49:37,730 --> 00:49:39,948 pakeisti jį į do-while cikle. 1014 00:49:39,948 --> 00:49:41,250 >> JASON Hirschhorn: Gerai. 1015 00:49:41,250 --> 00:49:44,240 Ar, kad išspręsti mūsų problemą, nors? 1016 00:49:44,240 --> 00:49:47,750 >> PUBLIKA: Šiuo atveju nėra, nes Faktas, kad sąrašas yra tuščias. 1017 00:49:47,750 --> 00:49:52,150 Taip, tada jūs tikriausiai tiesiog reikia pridėti pareiškimas, kad jei kilpos išėjimai 1018 00:49:52,150 --> 00:49:55,312 tada jūs turite būti pabaigoje sąrašas, kuriame jums atkreipti 1019 00:49:55,312 --> 00:49:56,562 gali tiesiog įdėkite jį. 1020 00:49:56,562 --> 00:49:58,920 1021 00:49:58,920 --> 00:49:59,680 >> JASON Hirschhorn: Man patinka, kad. 1022 00:49:59,680 --> 00:50:00,500 Tai turi prasmę. 1023 00:50:00,500 --> 00:50:03,390 Jei kilpa išeina - 1024 00:50:03,390 --> 00:50:04,800 nes jis bus return false čia. 1025 00:50:04,800 --> 00:50:08,220 Taigi, jei kilpos išėjimų, tada mes ne sąrašo pabaigoje, o gal 1026 00:50:08,220 --> 00:50:10,690 pradėti iš sąrašo, jei ten nieko nėra tai, kuris yra toks pat kaip pabaigoje. 1027 00:50:10,690 --> 00:50:12,770 Taigi, dabar mes norime įterpti kažkas čia. 1028 00:50:12,770 --> 00:50:17,380 Taigi, kaip veikia šis kodas atrodo, Markas? 1029 00:50:17,380 --> 00:50:21,600 >> PUBLIKA: Jei jau turite mazgas malloced, galima tiesiog pasakyti 1030 00:50:21,600 --> 00:50:25,400 new_node-> šalia Lygu null nes ji turi būti pabaigoje. 1031 00:50:25,400 --> 00:50:27,510 Arba new_node-> šalia Lygu null. 1032 00:50:27,510 --> 00:50:27,765 >> JASON Hirschhorn: Gerai. 1033 00:50:27,765 --> 00:50:28,190 Atsiprašau. 1034 00:50:28,190 --> 00:50:35,760 New_node-> šalia Lygu null nes mes pabaigoje. 1035 00:50:35,760 --> 00:50:36,460 Tai nereiškia jį in 1036 00:50:36,460 --> 00:50:37,710 Kaip mes įdėti ją į sąrašą? 1037 00:50:37,710 --> 00:50:46,130 1038 00:50:46,130 --> 00:50:46,460 Teisė. 1039 00:50:46,460 --> 00:50:47,750 Tai tiesiog nustatyti jį lygūs. 1040 00:50:47,750 --> 00:50:50,940 Ne kaip mes iš tikrųjų įdėti ją į sąrašą? 1041 00:50:50,940 --> 00:50:54,170 Kas nukreipta į galutinio sąrašo? 1042 00:50:54,170 --> 00:50:56,090 >> PUBLIKA: vadovas. 1043 00:50:56,090 --> 00:50:57,566 >> JASON Hirschhorn: Atsiprašome? 1044 00:50:57,566 --> 00:50:59,440 >> PUBLIKA: vadovas yra nukreipta į sąrašo pabaigą. 1045 00:50:59,440 --> 00:51:01,480 >> JASON Hirschhorn: Jei ten nieko sąrašas, galva nukreipta į 1046 00:51:01,480 --> 00:51:04,170 galutinio sąrašo. 1047 00:51:04,170 --> 00:51:06,920 Taigi, kad bus dirbti pirmą kartą įkišus. 1048 00:51:06,920 --> 00:51:09,810 Ką apie jei yra pora dalykų sąrašo? 1049 00:51:09,810 --> 00:51:12,470 Nei mes nenorime nustatyti galva lygi new_node. 1050 00:51:12,470 --> 00:51:13,790 Ką mes norime ten daryti? 1051 00:51:13,790 --> 00:51:15,610 Taip? 1052 00:51:15,610 --> 00:51:16,860 Tikriausiai ankstesnė. 1053 00:51:16,860 --> 00:51:23,560 1054 00:51:23,560 --> 00:51:24,810 Ar tai veikia? 1055 00:51:24,810 --> 00:51:28,950 1056 00:51:28,950 --> 00:51:33,050 Prisiminkite, kad praėjusią yra tik Rodyklė į mazgą. 1057 00:51:33,050 --> 00:51:34,770 Ir praėjusią yra vietos kintamąjį. 1058 00:51:34,770 --> 00:51:38,080 Taigi ši eilutė bus nustatyti kintamąjį, ankstesnės, yra lygi arba 1059 00:51:38,080 --> 00:51:39,380 nukreipta į šios naujos mazgas. 1060 00:51:39,380 --> 00:51:41,500 Tai bus ne iš tikrųjų jį mūsų sąraše, nors. 1061 00:51:41,500 --> 00:51:44,330 Kaip mes įdėti ją į mūsų sąraše? 1062 00:51:44,330 --> 00:51:45,620 Akchar? 1063 00:51:45,620 --> 00:51:46,870 >> PUBLIKA: Manau, kad jums padaryti dabartinę-> šalia. 1064 00:51:46,870 --> 00:51:50,186 1065 00:51:50,186 --> 00:51:52,550 >> JASON Hirschhorn: Gerai. 1066 00:51:52,550 --> 00:51:54,010 Pylimas-> šalia. 1067 00:51:54,010 --> 00:51:58,768 Taigi dar kartą, vienintelė priežastis, kodėl mes žemyn Štai, ką srovė lygi? 1068 00:51:58,768 --> 00:51:59,760 >> PUBLIKA: Lygu null. 1069 00:51:59,760 --> 00:52:01,790 >> JASON Hirschhorn: Ir taip, kas atsitiks, jei mes null-> kitas? 1070 00:52:01,790 --> 00:52:02,810 Ką mes ketiname gauti? 1071 00:52:02,810 --> 00:52:04,060 Mes susisieksime segmentavimo kaltės. 1072 00:52:04,060 --> 00:52:06,600 1073 00:52:06,600 --> 00:52:08,880 >> Auditorija: Ar Valiuta Lygu null. 1074 00:52:08,880 --> 00:52:10,760 >> JASON Hirschhorn: Tai tas pats kaip Ankstesnio, nors, nes ten 1075 00:52:10,760 --> 00:52:12,820 vietos kintamąjį mes kuriame lygios šios naujos mazgas. 1076 00:52:12,820 --> 00:52:16,680 1077 00:52:16,680 --> 00:52:20,920 Grįžkime į mūsų nuotrauką įterpti kažką. 1078 00:52:20,920 --> 00:52:25,500 Pasakykite, mes įterpti pabaigoje sąrašo, todėl čia. 1079 00:52:25,500 --> 00:52:30,010 Mes turime dabartinę žymeklį, kad yra nukreipta į niekinis ir ankstesniame punkte 1080 00:52:30,010 --> 00:52:32,800 tai nukreipta į 8. 1081 00:52:32,800 --> 00:52:35,330 Taigi, ką reikia atnaujinti, AVI? 1082 00:52:35,330 --> 00:52:36,680 >> PUBLIKA: Atgal-> kitas? 1083 00:52:36,680 --> 00:52:41,980 >> JASON Hirschhorn: Atgal-> šalia yra kas norime atnaujinti, nes tai 1084 00:52:41,980 --> 00:52:44,960 tikrai bus įterpti jį sąrašo pabaigoje. 1085 00:52:44,960 --> 00:52:47,220 Mes vis dar turime vieną klaidą, nors, kad mes ketiname paleisti į. 1086 00:52:47,220 --> 00:52:50,090 Kas tai klaida? 1087 00:52:50,090 --> 00:52:50,790 Taip? 1088 00:52:50,790 --> 00:52:53,860 >> PUBLIKA: Ji ketina grįžti klaidinga šiuo atveju? 1089 00:52:53,860 --> 00:52:56,380 >> JASON Hirschhorn: Oi, tai yra ketina grįžti klaidinga. 1090 00:52:56,380 --> 00:52:57,430 Bet yra ir kitas klaidas. 1091 00:52:57,430 --> 00:52:58,930 Taigi mums reikės įdėti mainais tiesa. 1092 00:52:58,930 --> 00:53:01,370 >> Auditorija: Ar praėjusią dar lygūs niekinis ne sąrašo viršuje? 1093 00:53:01,370 --> 00:53:03,645 >> JASON Hirschhorn: Taigi praėjusią dar Lygu null pačioje pradžioje. 1094 00:53:03,645 --> 00:53:07,480 1095 00:53:07,480 --> 00:53:10,440 Taigi, kaip mes galime gauti per tai? 1096 00:53:10,440 --> 00:53:10,950 Taip? 1097 00:53:10,950 --> 00:53:15,280 >> PUBLIKA: Aš manau, kad jūs galite padaryti čekį prieš while cikle pamatyti, jei ji yra 1098 00:53:15,280 --> 00:53:16,610 tuščias sąrašas. 1099 00:53:16,610 --> 00:53:17,000 >> JASON Hirschhorn: Gerai. 1100 00:53:17,000 --> 00:53:17,710 Taigi eikime čia. 1101 00:53:17,710 --> 00:53:18,530 Ar patikrinti. 1102 00:53:18,530 --> 00:53:19,380 Jei - 1103 00:53:19,380 --> 00:53:20,770 >> PUBLIKA: Taigi, jei galvos Lygu lygu null. 1104 00:53:20,770 --> 00:53:24,300 1105 00:53:24,300 --> 00:53:26,320 >> JASON Hirschhorn: Jei galva Lygu lygu null - 1106 00:53:26,320 --> 00:53:27,790 kad bus mums pasakyti, jei jis tuščias sąrašas. 1107 00:53:27,790 --> 00:53:31,090 >> PUBLIKA: Ir tada jūs padaryti galva Lygu naujas. 1108 00:53:31,090 --> 00:53:34,740 >> JASON Hirschhorn: vadovas Lygu new_node? 1109 00:53:34,740 --> 00:53:35,730 Ir ką dar turime padaryti? 1110 00:53:35,730 --> 00:53:37,020 >> PUBLIKA: Ir tada grąžina true. 1111 00:53:37,020 --> 00:53:37,535 >> JASON Hirschhorn: Ne visai. 1112 00:53:37,535 --> 00:53:38,785 Mes trūksta vieno žingsnio. 1113 00:53:38,785 --> 00:53:41,590 1114 00:53:41,590 --> 00:53:43,710 >> PUBLIKA: New_node kitą turi nurodyti null. 1115 00:53:43,710 --> 00:53:44,570 >> JASON Hirschhorn: Būtent, Alden. 1116 00:53:44,570 --> 00:53:46,600 Ir tada mes galime grįžti tiesa. 1117 00:53:46,600 --> 00:53:47,560 Gerai. 1118 00:53:47,560 --> 00:53:51,630 Bet tai vis dar gera idėja daryti dalykus prie sąrašo pabaigoje, tiesa? 1119 00:53:51,630 --> 00:53:51,950 Gerai. 1120 00:53:51,950 --> 00:53:54,450 Mes vis dar gali realiai gauti į sąrašo pabaigą. 1121 00:53:54,450 --> 00:53:57,870 Taigi tai kodas gerai, jei mes ne pabaigos sąrašą ir yra keletas 1122 00:53:57,870 --> 00:53:59,120 dalykų sąrašo? 1123 00:53:59,120 --> 00:54:01,830 1124 00:54:01,830 --> 00:54:02,040 Teisė? 1125 00:54:02,040 --> 00:54:03,540 Kadangi mes vis dar turime Marcus idėja. 1126 00:54:03,540 --> 00:54:06,870 Mes galime išeiti iš šio ciklo, nes mes ne iš sąrašo gale. 1127 00:54:06,870 --> 00:54:09,308 Taigi mes vis dar norime, kad tai kodą žemyn čia? 1128 00:54:09,308 --> 00:54:10,520 >> PUBLIKA: Taip. 1129 00:54:10,520 --> 00:54:11,000 >> JASON Hirschhorn: Taip. 1130 00:54:11,000 --> 00:54:14,190 Ir ką mes turime pakeisti tai? 1131 00:54:14,190 --> 00:54:15,440 Tiesa. 1132 00:54:15,440 --> 00:54:19,580 1133 00:54:19,580 --> 00:54:21,640 Ar tai garso gera visiems iki šiol? 1134 00:54:21,640 --> 00:54:22,420 Kas nors turi bet koks - 1135 00:54:22,420 --> 00:54:23,480 Avi, jūs turite ką nors pridėti? 1136 00:54:23,480 --> 00:54:23,920 >> PUBLIKA: Ne 1137 00:54:23,920 --> 00:54:25,276 >> JASON Hirschhorn: Gerai. 1138 00:54:25,276 --> 00:54:27,010 Taigi, mes padarėme keletą pakeitimų pora. 1139 00:54:27,010 --> 00:54:29,540 Mes padarėme šį patikrinimą, kol mes ėjo už tuščią sąrašą. 1140 00:54:29,540 --> 00:54:31,790 Taigi mes pasirūpinta tuščią sąrašą. 1141 00:54:31,790 --> 00:54:35,500 Ir čia mes rūpinosi įterpiant kažkas ne sąrašo gale. 1142 00:54:35,500 --> 00:54:38,930 Taigi atrodo, kad šio, o kilpos paėmimo priežiūros dalykų, tarp jų, 1143 00:54:38,930 --> 00:54:41,920 kažkur sąrašo, jei yra Yra dalykų sąraše. 1144 00:54:41,920 --> 00:54:42,280 >> Gerai. 1145 00:54:42,280 --> 00:54:44,310 Leiskite mums paleisti šią programą iš naujo. 1146 00:54:44,310 --> 00:54:50,170 1147 00:54:50,170 --> 00:54:50,755 Nėra sėkmingas. 1148 00:54:50,755 --> 00:54:52,190 >> Auditorija: Jūs neįskriejo. 1149 00:54:52,190 --> 00:54:53,940 >> JASON Hirschhorn: O Aš ne padaryti jį. 1150 00:54:53,940 --> 00:54:56,250 Gera vieta, Michael. 1151 00:54:56,250 --> 00:54:57,500 Leiskite pridėti markę susiję. 1152 00:54:57,500 --> 00:55:01,590 1153 00:55:01,590 --> 00:55:04,830 87 eilutė nėra klaida. 1154 00:55:04,830 --> 00:55:05,420 Line 87. 1155 00:55:05,420 --> 00:55:06,600 Alden, tai buvo linija jūs man davė. 1156 00:55:06,600 --> 00:55:08,962 Kas negerai? 1157 00:55:08,962 --> 00:55:10,710 >> PUBLIKA: Ji turi būti nulis. 1158 00:55:10,710 --> 00:55:11,000 >> JASON Hirschhorn: Puikus. 1159 00:55:11,000 --> 00:55:11,630 Visiškai teisus. 1160 00:55:11,630 --> 00:55:13,290 Ji turėtų būti niekinis. 1161 00:55:13,290 --> 00:55:15,210 Padarykime dar kartą. 1162 00:55:15,210 --> 00:55:17,220 Užpildykite. 1163 00:55:17,220 --> 00:55:17,890 Gerai. 1164 00:55:17,890 --> 00:55:19,400 Leiskite įdėti tris. 1165 00:55:19,400 --> 00:55:20,570 Įterpti buvo sėkmingas. 1166 00:55:20,570 --> 00:55:21,660 Leiskite ją išspausdinkite. 1167 00:55:21,660 --> 00:55:23,590 O, jei tik mes galėtume patikrinti. 1168 00:55:23,590 --> 00:55:25,500 Bet mes ne padaryti spausdinti funkciją dar. 1169 00:55:25,500 --> 00:55:27,840 Leiskite įvesti ką nors kita. 1170 00:55:27,840 --> 00:55:29,090 Ką mes turėtume dalyvauti? 1171 00:55:29,090 --> 00:55:31,120 1172 00:55:31,120 --> 00:55:31,940 >> PUBLIKA: Septyni. 1173 00:55:31,940 --> 00:55:33,340 >> JASON Hirschhorn: Septyni? 1174 00:55:33,340 --> 00:55:34,590 >> PUBLIKA: Taip. 1175 00:55:34,590 --> 00:55:38,680 1176 00:55:38,680 --> 00:55:39,780 >> JASON Hirschhorn: Mes turime seg kaltės. 1177 00:55:39,780 --> 00:55:43,760 Taigi, mes turime vieną, bet mes aiškiai negali gauti du. 1178 00:55:43,760 --> 00:55:45,690 Tai 05:07. 1179 00:55:45,690 --> 00:55:48,370 Taigi, mes galime derinti tai tris minutes. 1180 00:55:48,370 --> 00:55:51,240 Bet aš ruošiuosi palikti mums čia ir pereiti prie maišos lenteles. 1181 00:55:51,240 --> 00:55:54,290 Bet vėl, už šio kodekso atsakymai Aš atsiųsime jį jums šiek tiek. 1182 00:55:54,290 --> 00:55:55,440 Mes esame labai arti jos. 1183 00:55:55,440 --> 00:55:58,300 Aš labai rekomenduojame jums išsiaiškinti, tai, kas vyksta čia ir ją išspręsti. 1184 00:55:58,300 --> 00:56:02,400 Taigi, aš atsiųsime jums šį kodą gerai plius sprendimas - 1185 00:56:02,400 --> 00:56:03,670 tikriausiai sprendimas vėliau. 1186 00:56:03,670 --> 00:56:05,110 Pirmiausia šis kodas. 1187 00:56:05,110 --> 00:56:08,290 >> Kitas dalykas, kurį noriu padaryti, kol mes apdaila mes neišsilaisvino nieko. 1188 00:56:08,290 --> 00:56:10,370 Taigi, aš noriu parodyti jums, ką Valgrind atrodo. 1189 00:56:10,370 --> 00:56:14,310 Jei mes paleisti Valgrind ribas mūsų programą. / susijusios. 1190 00:56:14,310 --> 00:56:22,540 Vėlgi, atsižvelgiant į šios skaidrės, mes turėtų veikti Valgrind su kai tipo 1191 00:56:22,540 --> 00:56:26,410 galimybė, šiuo atveju - Nuotėkio patikrinimas = pilna. 1192 00:56:26,410 --> 00:56:27,660 Taigi galime rašyti Valgrind - Nuotėkio patikrinimas = pilna. 1193 00:56:27,660 --> 00:56:31,910 1194 00:56:31,910 --> 00:56:35,080 Taigi, tai bus paleisti Valgrind mūsų programą. 1195 00:56:35,080 --> 00:56:37,000 Ir dabar programa iš tikrųjų veikia. 1196 00:56:37,000 --> 00:56:40,190 Taigi, mes ketiname paleisti jį kaip anksčiau, įdėti ką nors į vidų 1197 00:56:40,190 --> 00:56:40,830 Aš ruošiuosi įdėti į trijų. 1198 00:56:40,830 --> 00:56:41,790 Tai veikia. 1199 00:56:41,790 --> 00:56:43,202 Aš nesiruošia bandyti įdėti į kažką kitur, nes mes ketiname 1200 00:56:43,202 --> 00:56:44,710 gauti SEG klaidinga atveju. 1201 00:56:44,710 --> 00:56:46,700 Taigi, aš tik ketina mesti. 1202 00:56:46,700 --> 00:56:50,160 >> Ir dabar jūs matote čia apačioje ištekėti ir krūvos santrauka. 1203 00:56:50,160 --> 00:56:52,310 Tai yra gerų dalykų, kad norite patikrinti. 1204 00:56:52,310 --> 00:56:56,780 Taigi krūva santrauka - ji sako, naudojimo at Exit - aštuonių baitų vieno bloko. 1205 00:56:56,780 --> 00:56:58,370 Tai vienas blokas mazgas mes malloced. 1206 00:56:58,370 --> 00:57:02,230 Maiklai, tu sakei, kol mazgas yra aštuoni kanda, nes ji sveikasis skaičius 1207 00:57:02,230 --> 00:57:02,680 ir rodyklę. 1208 00:57:02,680 --> 00:57:04,550 Štai mūsų mazgas. 1209 00:57:04,550 --> 00:57:08,170 Ir tada jis sako, kad mes naudojamas malloc septynis kartus ir mes išlaisvino 1210 00:57:08,170 --> 00:57:08,940 kažkas šešis kartus. 1211 00:57:08,940 --> 00:57:13,680 Bet mes niekada vadinama nemokama, todėl turiu ne idėja, ką tai kalbu. 1212 00:57:13,680 --> 00:57:18,490 >> Bet pakanka pasakyti, kad kai jūsų programa veikia, malloc yra vadinama 1213 00:57:18,490 --> 00:57:20,330 kai kuriose kitose vietose, kad mes nereikia jaudintis. 1214 00:57:20,330 --> 00:57:22,460 Taigi malloc tikriausiai buvo vadinama kai kuriose vietose. 1215 00:57:22,460 --> 00:57:24,480 Mums nereikia jaudintis, kur. 1216 00:57:24,480 --> 00:57:26,240 Bet tai tikrai mus. 1217 00:57:26,240 --> 00:57:27,380 Pirmoji eilutė yra mums. 1218 00:57:27,380 --> 00:57:28,320 Mes palikome šį bloką. 1219 00:57:28,320 --> 00:57:30,330 Ir jūs galite pamatyti, kad čia ir nuotėkio santrauka. 1220 00:57:30,330 --> 00:57:31,950 Vis dar pasiekiamas - 1221 00:57:31,950 --> 00:57:32,930 aštuonių baitų vieno bloko. 1222 00:57:32,930 --> 00:57:34,100 Tai reiškia, kad atminties - 1223 00:57:34,100 --> 00:57:35,730 mes nutekėjo, kad atmintyje. 1224 00:57:35,730 --> 00:57:37,570 Tikrai neteko - 1225 00:57:37,570 --> 00:57:38,770 kažkas prarandama gera. 1226 00:57:38,770 --> 00:57:40,590 Paprastai jums nebus nematau nieko ten. 1227 00:57:40,590 --> 00:57:44,780 Vis dar pasiekiamas paprastai yra kur pamatysite dalykų, kur jūs norite 1228 00:57:44,780 --> 00:57:48,900 pažiūrėkite, kokiu kodu jūs turėtumėte išlaisvinome tačiau pamiršote nemokamai. 1229 00:57:48,900 --> 00:57:53,170 >> Ir tada, jei tai buvo ne tas atvejis, jei mes padarėme viską, nemokama, 1230 00:57:53,170 --> 00:57:54,360 mes galime patikrinti, kad. 1231 00:57:54,360 --> 00:57:57,330 Leiskite tiesiog paleisti programą ne išleisti ką nors. 1232 00:57:57,330 --> 00:57:59,800 Pamatysite žemyn čia naudojimui išėjimo - 1233 00:57:59,800 --> 00:58:01,310 nulis baitų nulinės blokų. 1234 00:58:01,310 --> 00:58:06,310 Tai reiškia, kad mes turėjome nebelikę kai ši programa išėjo. 1235 00:58:06,310 --> 00:58:12,090 Taigi, prieš sukant pset6, paleisti Valgrind ir įsitikinkite, kad jūs neturite 1236 00:58:12,090 --> 00:58:15,310 bet atminties nutekėjimas į savo programą. 1237 00:58:15,310 --> 00:58:17,910 Jei turite kokių nors su Valgrind klausimų, jaustis laisvai pasiekti. 1238 00:58:17,910 --> 00:58:18,700 Bet tai, kaip jūs jį naudoti. 1239 00:58:18,700 --> 00:58:20,890 Labai paprasta - pamatyti, jei jūs turi naudoti bent išėjimo - 1240 00:58:20,890 --> 00:58:22,270 Bet kokia blokų baitai. 1241 00:58:22,270 --> 00:58:27,890 1242 00:58:27,890 --> 00:58:29,580 >> Taigi, mes dirbome įterpti mazgo. 1243 00:58:29,580 --> 00:58:33,840 Aš turėjau du kitas funkcijas čia - spausdinti mazgų ir nemokama mazgus. 1244 00:58:33,840 --> 00:58:37,780 Vėlgi, tai yra funkcijos, kurios yra bus geras jums patirties 1245 00:58:37,780 --> 00:58:40,990 nes jie padės jums ne tik šios imties pratimai, bet taip pat 1246 00:58:40,990 --> 00:58:42,180 į problemą nustatyti. 1247 00:58:42,180 --> 00:58:44,230 Jie map ant gana glaudžiai dalykų jūs ketinate daryti, 1248 00:58:44,230 --> 00:58:45,010 problema nustatyti. 1249 00:58:45,010 --> 00:58:47,640 Bet aš noriu įsitikinti, mes paliesti viską. 1250 00:58:47,640 --> 00:58:50,400 Ir maišos lentelės taip pat yra labai svarbus ką mes darome skyrių šį 1251 00:58:50,400 --> 00:58:51,980 savaitę - arba problemą, rinkinį. 1252 00:58:51,980 --> 00:58:55,200 >> Taigi, mes ketiname baigti skyrių kalbame apie maišos lenteles. 1253 00:58:55,200 --> 00:58:58,140 Jei pastebėjote aš padariau mažai maišos lentelė. 1254 00:58:58,140 --> 00:59:00,020 Tai ne tai, ką mes kalbame apie, tačiau. 1255 00:59:00,020 --> 00:59:03,540 Mes kalbame apie skirtingų tipas hash lenteles. 1256 00:59:03,540 --> 00:59:07,300 Ir savo esme, maišos lentelės yra ne daugiau kaip 1257 00:59:07,300 --> 00:59:08,860 masyvas plius maišos funkcija. 1258 00:59:08,860 --> 00:59:11,150 Mes ketiname kalbėti truputį tik įsitikinkite, kad visi supranta, ką 1259 00:59:11,150 --> 00:59:12,110 maišos funkcija. 1260 00:59:12,110 --> 00:59:15,420 Ir aš sakau, kad dabar ji yra nieko daugiau nei dviejų dalykų - 1261 00:59:15,420 --> 00:59:18,590 masyvas ir maišos funkcija. 1262 00:59:18,590 --> 00:59:20,716 Ir čia yra priemonių, per kuri tai veikia. 1263 00:59:20,716 --> 00:59:31,560 1264 00:59:31,560 --> 00:59:32,810 >> Yra mūsų masyvo. 1265 00:59:32,810 --> 00:59:38,460 1266 00:59:38,460 --> 00:59:39,460 Yra mūsų funkcija. 1267 00:59:39,460 --> 00:59:43,180 Visų pirma, maišos funkcijos turi padaryti keletą dalykų su šiuo klausimu. 1268 00:59:43,180 --> 00:59:45,040 Aš ruošiuosi kalbėti konkrečiai apie šią problemą nustatyti. 1269 00:59:45,040 --> 00:59:46,450 Tai tikriausiai bus imtis eilutę. 1270 00:59:46,450 --> 00:59:50,570 1271 00:59:50,570 --> 00:59:51,770 Ir kas jis ketina grįžti? 1272 00:59:51,770 --> 00:59:52,640 Kokių duomenų tipas? 1273 00:59:52,640 --> 00:59:54,260 Alden? 1274 00:59:54,260 --> 00:59:55,760 Jūsų maišos funkcija grįžti? 1275 00:59:55,760 --> 00:59:58,760 Sveikasis skaičius. 1276 00:59:58,760 --> 01:00:01,700 Taigi tai, ką maišos lentelė sudaryta iš - 1277 01:00:01,700 --> 01:00:05,430 į masyvo formos stalas ir maišos funkcija. 1278 01:00:05,430 --> 01:00:06,010 Kaip tai veikia? 1279 01:00:06,010 --> 01:00:07,300 Jis veikia trimis etapais. 1280 01:00:07,300 --> 01:00:08,740 Mes suteikti jai klavišą. 1281 01:00:08,740 --> 01:00:11,470 Tokiu atveju, mes suteiksime jai eilutę. 1282 01:00:11,470 --> 01:00:18,140 Mes vadiname maišos funkcijos per vieną žingsnį mygtuko ir mes gauname vertę. 1283 01:00:18,140 --> 01:00:20,310 >> Tiksliau, mes pasakyti mes gauname sveikąjį skaičių. 1284 01:00:20,310 --> 01:00:25,630 Tai sveikas, yra labai specifinė ribos, ką, kad sveikasis skaičius gali būti. 1285 01:00:25,630 --> 01:00:28,880 Šiame pavyzdyje, mūsų masyvas yra dydžio trijų. 1286 01:00:28,880 --> 01:00:32,330 Taigi, ką numerius galima, kad sveikas būtų. 1287 01:00:32,330 --> 01:00:35,970 Kas yra Galiojančių reikšmių diapazonas kad sveikasis skaičius, grįžimo tipo tai 1288 01:00:35,970 --> 01:00:37,220 maišos funkciją? 1289 01:00:37,220 --> 01:00:40,440 1290 01:00:40,440 --> 01:00:42,110 Nulis, vienas ir du. 1291 01:00:42,110 --> 01:00:46,060 Iš maišos funkcija yra ta, kad išsiaiškinti masyvo vietą 1292 01:00:46,060 --> 01:00:47,790 kur pagrindinis mūsų vyksta. 1293 01:00:47,790 --> 01:00:51,290 Yra tik trys įmanoma vietų čia - 1294 01:00:51,290 --> 01:00:52,130 nulis, vienas arba du. 1295 01:00:52,130 --> 01:00:55,360 Taigi, ši funkcija geriau grąžinimas nulis, vienas arba du. 1296 01:00:55,360 --> 01:00:58,740 Kai galioja Indice šiame masyve. 1297 01:00:58,740 --> 01:01:02,770 >> Ir tada priklausomai nuo to, kur jis grįžta, matote ten masyvas atvira 1298 01:01:02,770 --> 01:01:03,730 BRACKET vertę. 1299 01:01:03,730 --> 01:01:05,800 Štai kur mes įdėti raktą. 1300 01:01:05,800 --> 01:01:11,280 Taigi, mes mesti moliūgų, mes gauname iš nulio. 1301 01:01:11,280 --> 01:01:15,540 Tuo masyvo laikiklis 0, mes įdėti moliūgų. 1302 01:01:15,540 --> 01:01:21,070 Mes mesti katėms, kurią mes gauname iš vieno. 1303 01:01:21,070 --> 01:01:24,110 Mes įdėti katė viename. 1304 01:01:24,110 --> 01:01:25,480 Mes įdėti į vorą. 1305 01:01:25,480 --> 01:01:26,710 Mes gauname iš dviejų. 1306 01:01:26,710 --> 01:01:30,200 Mes atliekame voras masyvo laikiklis dvi. 1307 01:01:30,200 --> 01:01:32,300 Tai būtų taip malonu, jei jis dirbo, kaip kad. 1308 01:01:32,300 --> 01:01:35,570 Tačiau, deja, kaip matysime, tai šiek tiek sudėtingiau. 1309 01:01:35,570 --> 01:01:37,570 >> Prieš mes ten kokių nors klausimų, apie tai pagrindinė 1310 01:01:37,570 --> 01:01:38,820 steigti iš maišos lentelės? 1311 01:01:38,820 --> 01:01:49,050 1312 01:01:49,050 --> 01:01:51,940 Tai tiksliai, vaizdas ką mes patraukė ant lentos. 1313 01:01:51,940 --> 01:01:55,420 Bet kadangi mes išsitraukė jį ant lentos, aš neketinu eiti į jį toliau. 1314 01:01:55,420 --> 01:02:00,430 Iš esmės raktai, magija black box "- ar šiuo atveju, žalsvai mėlyna dėžutė - iš 1315 01:02:00,430 --> 01:02:02,410 maišos funkcija iškelia juos į kibirus. 1316 01:02:02,410 --> 01:02:04,690 Ir šiame pavyzdyje mes ne išleisti pavadinimą. 1317 01:02:04,690 --> 01:02:07,880 Mes dedame susietą telefoną numeris pavadinimo kibirą. 1318 01:02:07,880 --> 01:02:10,430 Bet tu gali labai gerai tiesiog įdėti pavadinimą į kibirą. 1319 01:02:10,430 --> 01:02:12,950 >> Tai tiesiog tai, ką paveikslėlį mes patraukė ant lentos. 1320 01:02:12,950 --> 01:02:14,460 Mes turime galimų sunkumų, nors. 1321 01:02:14,460 --> 01:02:17,470 Ir ten du yra ypač slides, kad aš noriu eiti per. 1322 01:02:17,470 --> 01:02:20,230 Pirmasis yra apie maišos funkcija. 1323 01:02:20,230 --> 01:02:22,620 Taigi, aš paklausiau klausimą, ką daro gera maišos funkciją? 1324 01:02:22,620 --> 01:02:24,220 Duodu du atsakymus. 1325 01:02:24,220 --> 01:02:26,630 Pirmasis yra tai, kad determinuota. 1326 01:02:26,630 --> 01:02:29,660 Atsižvelgiant į maišos funkcijų kontekste Ką tai reiškia? 1327 01:02:29,660 --> 01:02:37,840 1328 01:02:37,840 --> 01:02:39,282 Taip? 1329 01:02:39,282 --> 01:02:42,850 >> PUBLIKA: Tai galima rasti rodiklis nuolat laiko? 1330 01:02:42,850 --> 01:02:43,810 >> JASON Hirschhorn: Tai yra ne tai, ką jis reiškia. 1331 01:02:43,810 --> 01:02:44,725 Bet tai geras spėjimas. 1332 01:02:44,725 --> 01:02:46,100 Kas nors turi atspėti ką tai reiškia? 1333 01:02:46,100 --> 01:02:47,780 Tai gera maišos funkcija yra determinuota? 1334 01:02:47,780 --> 01:02:48,280 Annie? 1335 01:02:48,280 --> 01:02:51,680 >> PUBLIKA: Tai raktas gali būti priskiriamos tik į vieną vietą maišos lentelėje. 1336 01:02:51,680 --> 01:02:53,070 >> JASON Hirschhorn: Štai visiškai teisus. 1337 01:02:53,070 --> 01:02:57,430 Kiekvieną kartą, kai jūs įtraukėte į moliūgų, ji visada grąžina nulį. 1338 01:02:57,430 --> 01:03:01,660 Jeigu jūs įtraukėte į moliūgų ir jūsų maišos funkcija grąžina nulį, tačiau turi 1339 01:03:01,660 --> 01:03:06,060 tikimybė grįžti kažką dar didesnė už nulį - 1340 01:03:06,060 --> 01:03:09,280 tai gal jis gali grąžinti vieną, kartais arba kiti du kartus - 1341 01:03:09,280 --> 01:03:11,100 kad nėra gerai maišos funkcija. 1342 01:03:11,100 --> 01:03:11,800 Jūs esate visiškai teisus. 1343 01:03:11,800 --> 01:03:15,680 Jūsų maišos funkcija turi grąžinti lygiai tas pats sveikasis skaičius, šiuo atveju, 1344 01:03:15,680 --> 01:03:17,780 lygiai tas pats eilutę. 1345 01:03:17,780 --> 01:03:22,210 >> Gal ji grąžina tą patį tiksliai sveikasis skaičius už tą pačią tikslią eilutę 1346 01:03:22,210 --> 01:03:24,430 nepriklausomai kapitalizuoti. 1347 01:03:24,430 --> 01:03:27,980 Tačiau tokiu atveju jis vis dar determinuota, nes daug dalykų 1348 01:03:27,980 --> 01:03:29,350 atvaizduojami ant tos pačios vertės. 1349 01:03:29,350 --> 01:03:30,170 Tai gerai. 1350 01:03:30,170 --> 01:03:32,615 Tol, kol yra tik vienas produkcija tam tikru indėliu. 1351 01:03:32,615 --> 01:03:35,630 1352 01:03:35,630 --> 01:03:36,350 >> Gerai. 1353 01:03:36,350 --> 01:03:38,340 Antras dalykas yra tai, kad grąžina galiojančius indeksus. 1354 01:03:38,340 --> 01:03:40,220 Mes išvedė, kad anksčiau. 1355 01:03:40,220 --> 01:03:41,860 Tai maišos funkcija - 1356 01:03:41,860 --> 01:03:43,710 Oh boy - 1357 01:03:43,710 --> 01:03:46,840 maišos funkcija turėtų grįžti galiojančius indeksus. 1358 01:03:46,840 --> 01:03:47,740 Taigi sako - 1359 01:03:47,740 --> 01:03:48,990 grįžkime į šiame pavyzdyje. 1360 01:03:48,990 --> 01:03:52,580 1361 01:03:52,580 --> 01:03:57,540 Mano maišos funkcija skaičiuoja iki kad žodžio raidės. 1362 01:03:57,540 --> 01:03:58,380 Štai maišos funkcija. 1363 01:03:58,380 --> 01:03:59,740 Ir grąžina, kad sveikasis skaičius. 1364 01:03:59,740 --> 01:04:04,280 Taigi, jei aš turiu žodį A, tai ketina grąžinti vieną. 1365 01:04:04,280 --> 01:04:06,900 Ir tai vyksta įdėti čia. 1366 01:04:06,900 --> 01:04:09,430 Ką daryti, jei aš įdėti žodis bat? 1367 01:04:09,430 --> 01:04:11,310 Ji ketina grįžti tris. 1368 01:04:11,310 --> 01:04:12,560 Kur šikšnosparnių eiti? 1369 01:04:12,560 --> 01:04:18,730 1370 01:04:18,730 --> 01:04:19,750 >> Jis netelpa. 1371 01:04:19,750 --> 01:04:21,000 Bet reikia eiti kažkur. 1372 01:04:21,000 --> 01:04:23,340 Čia yra mano maišos lentelė juk ir viskas turi eiti kažkur. 1373 01:04:23,340 --> 01:04:24,590 Taigi, kur turėtų lazda eiti? 1374 01:04:24,590 --> 01:04:28,020 1375 01:04:28,020 --> 01:04:28,710 Bet mintis? 1376 01:04:28,710 --> 01:04:29,450 Spėlionės? 1377 01:04:29,450 --> 01:04:30,280 Geri spėlionės? 1378 01:04:30,280 --> 01:04:31,220 >> PUBLIKA: nulis. 1379 01:04:31,220 --> 01:04:32,120 >> JASON Hirschhorn: kodėl nulis? 1380 01:04:32,120 --> 01:04:35,990 >> PUBLIKA: Kadangi trys modulį trijų yra nulis? 1381 01:04:35,990 --> 01:04:38,620 >> JASON Hirschhorn: Trys modulį trijų yra nulis. 1382 01:04:38,620 --> 01:04:40,810 Tai yra puikus spėjimas, ir tai teisinga. 1383 01:04:40,810 --> 01:04:43,870 Taigi, šiuo atveju ji turėtų tikriausiai eiti iki nulio. 1384 01:04:43,870 --> 01:04:51,080 Taigi geras būdas užtikrinti, kad šis maišos Funkcija grąžina tik galiojančius indeksai yra 1385 01:04:51,080 --> 01:04:54,580 į modulį jį lentelės dydį. 1386 01:04:54,580 --> 01:04:57,360 Jei modulį viskas, ką šis grąžą trijų, jūs visada ketinate gauti 1387 01:04:57,360 --> 01:05:00,930 kažkas tarp nulis, vienas, o du. 1388 01:05:00,930 --> 01:05:05,160 Ir jei tai visada grįžta septyni, ir jūs visada modulį iš trijų, jūs 1389 01:05:05,160 --> 01:05:06,030 visada bus gauti tą patį. 1390 01:05:06,030 --> 01:05:09,270 >> Taigi, ji vis dar determinuota jei modulį. 1391 01:05:09,270 --> 01:05:11,420 Bet tai bus užtikrinta, kad jums niekada gauti kažką - 1392 01:05:11,420 --> 01:05:12,940 negalioja pramonė. 1393 01:05:12,940 --> 01:05:16,840 Apskritai, kad modulį turėtų atsitikti viduje jūsų maišos funkcija. 1394 01:05:16,840 --> 01:05:18,240 Taigi jums nereikia nerimauti apie tai. 1395 01:05:18,240 --> 01:05:20,555 Jūs tiesiog galite užtikrinti, kad tai galioja indeks. 1396 01:05:20,555 --> 01:05:23,700 1397 01:05:23,700 --> 01:05:26,700 Bet apie tai klausimai potencialas spąstai? 1398 01:05:26,700 --> 01:05:36,590 1399 01:05:36,590 --> 01:05:39,060 >> Gerai. 1400 01:05:39,060 --> 01:05:40,290 Ir mes einame. 1401 01:05:40,290 --> 01:05:42,890 Kitas potencialus spąstai, ir tai yra didelis vienas. 1402 01:05:42,890 --> 01:05:46,880 Ką daryti, jei du klavišai žemėlapis tos pačios vertės? 1403 01:05:46,880 --> 01:05:49,350 Taigi yra du būdai, kaip išspręsti šią. 1404 01:05:49,350 --> 01:05:53,140 1405 01:05:53,140 --> 01:05:56,020 Pirmasis yra vadinamas linijinis zondavimo, o aš tikiu, 1406 01:05:56,020 --> 01:05:57,300 nesiruošia eiti per. 1407 01:05:57,300 --> 01:06:01,120 Bet jūs turite būti susipažinę su, kaip kad veikia ir kas tai yra. 1408 01:06:01,120 --> 01:06:05,610 >> Antrasis ketinu eiti per nes tai yra vienas, kad daugelis 1409 01:06:05,610 --> 01:06:08,290 žmonių tikriausiai galų gale nuspręsti naudoti savo problemų rinkinį. 1410 01:06:08,290 --> 01:06:09,820 Žinoma, jūs neturite. 1411 01:06:09,820 --> 01:06:15,280 Bet problemos rinkinys, daug žmonių linkę rinktis sukurti maišos lentelę 1412 01:06:15,280 --> 01:06:17,950 su atskiru susiejami įgyvendinti jų žodynas. 1413 01:06:17,950 --> 01:06:21,390 Taigi, mes ketiname eiti per ką tai reiškia sukurti maišos lentelę 1414 01:06:21,390 --> 01:06:23,890 atskiras susiejami. 1415 01:06:23,890 --> 01:06:26,260 >> Taigi, aš įdėti į moliūgų. 1416 01:06:26,260 --> 01:06:29,560 Ji grąžina nulį. 1417 01:06:29,560 --> 01:06:31,410 Ir aš įdėti moliūgų čia. 1418 01:06:31,410 --> 01:06:35,880 1419 01:06:35,880 --> 01:06:37,930 Tada aš įdėti - 1420 01:06:37,930 --> 01:06:39,922 kas kita Helovinas teminius dalykas? 1421 01:06:39,922 --> 01:06:42,200 >> PUBLIKA: saldainiai. 1422 01:06:42,200 --> 01:06:42,770 >> JASON Hirschhorn: Saldainiai! 1423 01:06:42,770 --> 01:06:43,910 Tai puikus vienas. 1424 01:06:43,910 --> 01:06:47,760 Aš įdėti saldainiai ir saldainiai taip pat suteikia man nulis. 1425 01:06:47,760 --> 01:06:49,350 Ką man daryti? 1426 01:06:49,350 --> 01:06:51,940 Any ideas? 1427 01:06:51,940 --> 01:06:53,940 Kadangi jūs visi tarsi žinome, ką atskiras susiejami yra. 1428 01:06:53,940 --> 01:06:55,190 Taigi kokių nors idėjų, ką daryti? 1429 01:06:55,190 --> 01:06:58,170 1430 01:06:58,170 --> 01:06:59,110 Taip. 1431 01:06:59,110 --> 01:07:03,810 >> PUBLIKA: Eksploatacijos eilutę faktiškai maišos lentelėje. 1432 01:07:03,810 --> 01:07:08,910 >> JASON Hirschhorn: Taigi mes ketiname atkreipti gera idėja čia. 1433 01:07:08,910 --> 01:07:09,340 Gerai. 1434 01:07:09,340 --> 01:07:12,290 >> PUBLIKA: turi Hashtable [Nesigirdi] 1435 01:07:12,290 --> 01:07:16,640 žymeklis, kad atkreipia dėmesį į Sąrašo pradžioje. 1436 01:07:16,640 --> 01:07:20,930 Ir tada jau moliūgų būti pirmasis vertė toje susijęs sąrašą ir saldainiai būti 1437 01:07:20,930 --> 01:07:22,800 Antrasis vertė toje susijęs sąrašą. 1438 01:07:22,800 --> 01:07:23,420 >> JASON Hirschhorn: Gerai. 1439 01:07:23,420 --> 01:07:24,670 Marcus, kad buvo neįvykdyti. 1440 01:07:24,670 --> 01:07:26,160 Aš ruošiuosi nutraukti, kad žemyn. 1441 01:07:26,160 --> 01:07:28,890 Marcus sako ne perrašyti moliūgų. 1442 01:07:28,890 --> 01:07:30,660 Tai būtų blogai. 1443 01:07:30,660 --> 01:07:33,640 Nedėkite saldainiai kažkur kitur. 1444 01:07:33,640 --> 01:07:35,390 Mes ketiname juos tiek nulio. 1445 01:07:35,390 --> 01:07:37,770 Tačiau mes ketiname spręsti išleisti jas nulio 1446 01:07:37,770 --> 01:07:39,395 sukurti sąrašą nulio. 1447 01:07:39,395 --> 01:07:42,430 Ir mes ketiname sukurti sąrašą viskas, kas priskiriama prie nulio. 1448 01:07:42,430 --> 01:07:47,960 Ir geriausias būdas mes sužinojome, sukurti sąrašas, kuris gali plėstis ir trauktis 1449 01:07:47,960 --> 01:07:49,840 dinamiškai nėra per kitas masyvo. 1450 01:07:49,840 --> 01:07:51,510 Taigi, ne multi-dimensional array. 1451 01:07:51,510 --> 01:07:54,080 Bet tiesiog sukurti susietą sąrašą. 1452 01:07:54,080 --> 01:07:55,330 >> Taigi, ką jis pasiūlė - 1453 01:07:55,330 --> 01:07:57,950 1454 01:07:57,950 --> 01:07:59,200 Aš ruošiuosi gauti nauja - 1455 01:07:59,200 --> 01:08:15,380 1456 01:08:15,380 --> 01:08:19,689 yra sukurti su rodyklėmis masyvas, rodykles masyvo. 1457 01:08:19,689 --> 01:08:20,580 Gerai. 1458 01:08:20,580 --> 01:08:24,180 Bet idėja, ar užuomina, ką tipas Šio patarimų turėtų būti? 1459 01:08:24,180 --> 01:08:26,290 Marcus? 1460 01:08:26,290 --> 01:08:27,250 >> PUBLIKA: rodykles - 1461 01:08:27,250 --> 01:08:28,609 >> JASON Hirschhorn: Kadangi jums sakė susijęs sąrašas, taigi - 1462 01:08:28,609 --> 01:08:29,520 >> PUBLIKA: Mazgas patarimų? 1463 01:08:29,520 --> 01:08:30,670 >> JASON Hirschhorn: Mazgas patarimų. 1464 01:08:30,670 --> 01:08:32,830 Jei mūsų bendroje dalykai sąrašas yra mazgai, tada jie 1465 01:08:32,830 --> 01:08:34,370 turėtų būti mazgų rodyklės. 1466 01:08:34,370 --> 01:08:35,939 Ir ką jie atitiktų iš pradžių? 1467 01:08:35,939 --> 01:08:36,990 >> PUBLIKA: NULL. 1468 01:08:36,990 --> 01:08:38,240 >> JASON Hirschhorn: NULL. 1469 01:08:38,240 --> 01:08:44,540 1470 01:08:44,540 --> 01:08:46,080 Taigi mūsų tuščias dalykas. 1471 01:08:46,080 --> 01:08:47,170 Moliūgų grįžta nulio. 1472 01:08:47,170 --> 01:08:48,569 Ką mes darome? 1473 01:08:48,569 --> 01:08:49,609 Pasivaikščiojimas man per jį? 1474 01:08:49,609 --> 01:08:50,810 Tiesą sakant, Markas jau davė man. 1475 01:08:50,810 --> 01:08:52,439 Kažkas man vaikščioti per ją. 1476 01:08:52,439 --> 01:08:54,760 Ką mes darome, kai - 1477 01:08:54,760 --> 01:08:56,609 tai atrodo labai panašus į ką mes tik darome. 1478 01:08:56,609 --> 01:08:57,396 Avi. 1479 01:08:57,396 --> 01:08:59,090 >> PUBLIKA: Aš ruošiuosi atspėti. 1480 01:08:59,090 --> 01:09:01,250 Taigi, kai jūs gaunate saldainiai. 1481 01:09:01,250 --> 01:09:01,640 >> JASON Hirschhorn: Taip. 1482 01:09:01,640 --> 01:09:03,120 Na, mes turime moliūgų. 1483 01:09:03,120 --> 01:09:03,870 Leiskite gauti mūsų pirmasis. 1484 01:09:03,870 --> 01:09:04,324 Mes turime moliūgų. 1485 01:09:04,324 --> 01:09:04,779 >> PUBLIKA: Gerai. 1486 01:09:04,779 --> 01:09:05,880 Moliūgų grįžta nulio. 1487 01:09:05,880 --> 01:09:08,770 Taigi jūs įdėti ją, kad. 1488 01:09:08,770 --> 01:09:10,810 Arba iš tikrųjų, jūs jį susijusioje sąrašą. 1489 01:09:10,810 --> 01:09:13,550 >> JASON Hirschhorn: Kaip mes įdėti jį į susietą sąrašą? 1490 01:09:13,550 --> 01:09:15,479 >> Auditorija: O, faktinį sintaksė? 1491 01:09:15,479 --> 01:09:16,240 >> JASON Hirschhorn: Tiesiog vaikščioti - 1492 01:09:16,240 --> 01:09:16,740 pasakyti daugiau. 1493 01:09:16,740 --> 01:09:19,310 Ką mes darome? 1494 01:09:19,310 --> 01:09:22,100 >> Auditorija: Jūs tiesiog įdėkite tai kaip pirmą mazgas. 1495 01:09:22,100 --> 01:09:22,675 >> JASON Hirschhorn: Gerai. 1496 01:09:22,675 --> 01:09:29,069 Taigi, mes turime mazgas, moliūgų. 1497 01:09:29,069 --> 01:09:31,560 Ir dabar, kaip aš jį įterpti? 1498 01:09:31,560 --> 01:09:34,590 1499 01:09:34,590 --> 01:09:37,090 >> Auditorija: Jūs priskirti jį į rodyklę. 1500 01:09:37,090 --> 01:09:37,970 >> JASON Hirschhorn: Kuris žymeklis? 1501 01:09:37,970 --> 01:09:39,620 >> PUBLIKA: rodyklė ant nulio. 1502 01:09:39,620 --> 01:09:41,420 >> JASON Hirschhorn: Taigi, kur ar šis punktas? 1503 01:09:41,420 --> 01:09:42,810 >> PUBLIKA: nulis dabar. 1504 01:09:42,810 --> 01:09:43,529 >> JASON Hirschhorn: Na, ji nukreipta į null. 1505 01:09:43,529 --> 01:09:44,499 Bet aš išleisti į moliūgų. 1506 01:09:44,499 --> 01:09:46,053 Taigi, kur ji turėtų atkreipti? 1507 01:09:46,053 --> 01:09:46,880 >> Auditorija: Kad moliūgų. 1508 01:09:46,880 --> 01:09:47,399 >> JASON Hirschhorn: Norėdami moliūgų. 1509 01:09:47,399 --> 01:09:48,760 Būtent. 1510 01:09:48,760 --> 01:09:50,010 Taigi tai rodo, moliūgų. 1511 01:09:50,010 --> 01:09:52,500 1512 01:09:52,500 --> 01:09:54,250 Ir kur tai daro rodyklė moliūgų taškas? 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 >> PUBLIKA: NULL. 1516 01:09:58,590 --> 01:09:59,210 >> JASON Hirschhorn: nulis. 1517 01:09:59,210 --> 01:10:00,460 Būtent. 1518 01:10:00,460 --> 01:10:03,570 1519 01:10:03,570 --> 01:10:05,140 Taigi mes tiesiog įterpiamas kažką į susijusį sąrašą. 1520 01:10:05,140 --> 01:10:07,210 Mes tiesiog rašė šį kodą tai padaryti. 1521 01:10:07,210 --> 01:10:09,520 Beveik mes beveik turiu jį visiškai krekingo. 1522 01:10:09,520 --> 01:10:10,790 Dabar mes įterpti saldainiai. 1523 01:10:10,790 --> 01:10:13,480 Mūsų saldainiai taip pat eina į nulį. 1524 01:10:13,480 --> 01:10:16,100 Taigi, ką mes darome su saldainiais? 1525 01:10:16,100 --> 01:10:18,790 >> PUBLIKA: Tai priklauso nuo to, ar ne mes bandome rūšiuoti. 1526 01:10:18,790 --> 01:10:19,640 >> JASON Hirschhorn: Štai visiškai teisus. 1527 01:10:19,640 --> 01:10:21,070 Tai priklauso nuo to, ar mes bandome rūšiuoti. 1528 01:10:21,070 --> 01:10:22,660 Tarkime, mes nesame ketina rūšiuoti. 1529 01:10:22,660 --> 01:10:24,880 >> PUBLIKA: Na tada kaip aptarėme anksčiau, tai paprasčiausias tiesiog įdėti ją 1530 01:10:24,880 --> 01:10:28,590 pačioje pradžioje, todėl rodyklė nuo nulio kiekis iki saldainiai. 1531 01:10:28,590 --> 01:10:29,020 >> JASON Hirschhorn: Gerai. 1532 01:10:29,020 --> 01:10:29,380 Laikykis. 1533 01:10:29,380 --> 01:10:30,630 Leiskite sukurti saldainiai čia. 1534 01:10:30,630 --> 01:10:34,030 1535 01:10:34,030 --> 01:10:35,150 Taigi ši rodyklė - 1536 01:10:35,150 --> 01:10:37,590 >> PUBLIKA: Taip, dabar turėtų būti nukreipta į saldainių. 1537 01:10:37,590 --> 01:10:40,580 Tada iš žymiklį saldainiai taškas moliūgų. 1538 01:10:40,580 --> 01:10:43,140 1539 01:10:43,140 --> 01:10:44,560 >> JASON Hirschhorn: Kaip tai? 1540 01:10:44,560 --> 01:10:47,380 Ir sako, kad mes turime kitą dalykas map iki nulio? 1541 01:10:47,380 --> 01:10:48,660 >> PUBLIKA: Na, jūs tiesiog daryti tą patį? 1542 01:10:48,660 --> 01:10:50,290 >> JASON Hirschhorn: Ar tą patį. 1543 01:10:50,290 --> 01:10:53,700 Taigi šiuo atveju, jei mes ne nori, kad ji surūšiuoti 1544 01:10:53,700 --> 01:10:55,270 skamba gana paprasta. 1545 01:10:55,270 --> 01:10:59,920 Mes priimame žymiklį indeks pateiktas mūsų maišos funkcija. 1546 01:10:59,920 --> 01:11:03,830 Mes turime tą tašką į mūsų naują mazgas. 1547 01:11:03,830 --> 01:11:07,830 Ir tada kokia ji buvo nukreipta anksčiau - 1548 01:11:07,830 --> 01:11:10,620 šiuo atveju null, į Antruoju atveju moliūgų - 1549 01:11:10,620 --> 01:11:15,310 kad ir kokia ji nukreipta į anksčiau, mes pridėsime į kitą iš 1550 01:11:15,310 --> 01:11:17,810 Mūsų naujas mazgas. 1551 01:11:17,810 --> 01:11:19,650 Mes įterpti kažką pradžioje. 1552 01:11:19,650 --> 01:11:22,900 Iš tikrųjų tai yra daug paprasčiau, nei bando išlaikyti sąrašas, surūšiuotas. 1553 01:11:22,900 --> 01:11:25,340 Bet vėl, paieška bus daugiau sudėtinga čia. 1554 01:11:25,340 --> 01:11:28,300 Mes visada turime eiti iki galo. 1555 01:11:28,300 --> 01:11:29,650 >> Gerai. 1556 01:11:29,650 --> 01:11:32,750 Bet apie atskirą susiejami klausimų? 1557 01:11:32,750 --> 01:11:34,690 Kaip tai veikia? 1558 01:11:34,690 --> 01:11:35,820 Paprašykite juos dabar. 1559 01:11:35,820 --> 01:11:39,260 Aš tikrai noriu įsitikinti, kad jūs visi suprasti tai, kol mes galvą. 1560 01:11:39,260 --> 01:11:48,410 1561 01:11:48,410 --> 01:11:52,060 >> PUBLIKA: Kodėl jūs įdėti moliūgų ir saldainiai į patį 1562 01:11:52,060 --> 01:11:54,108 dalis maišos lentelės? 1563 01:11:54,108 --> 01:11:55,860 >> JASON Hirschhorn: Geras klausimas. 1564 01:11:55,860 --> 01:11:59,140 Kodėl mes juos į tą patį dalis maišos lentelės? 1565 01:11:59,140 --> 01:12:03,200 Na, šiuo atveju mūsų maišos funkcija grįžta nulio jiems abiems. 1566 01:12:03,200 --> 01:12:05,310 Taigi jie turi eiti Indice nulio nes tai, kur mes einame 1567 01:12:05,310 --> 01:12:07,420 jų ieškoti, jei mes kada nors norite ieškoti juos. 1568 01:12:07,420 --> 01:12:11,750 Vėlgi, su linijiniu zondavimo metodu mes ne įdėti juos abu iki nulio. 1569 01:12:11,750 --> 01:12:13,900 Tačiau atskiros grandinės principas, mes ketiname juos abu iki nulio 1570 01:12:13,900 --> 01:12:16,620 ir tada sukurti sąrašą nuo nulio. 1571 01:12:16,620 --> 01:12:20,140 >> Ir mes nenorime perrašyti moliūgų tiesiog, kad, nes tada mes 1572 01:12:20,140 --> 01:12:21,860 manyti, kad moliūgų buvo niekada įdėta. 1573 01:12:21,860 --> 01:12:25,230 Jei mes tiesiog laikyti vienas dalykas vieta, kad bus blogai. 1574 01:12:25,230 --> 01:12:28,590 Tada nebūtų galimybė iš mūsų kada nors - 1575 01:12:28,590 --> 01:12:31,660 jei mes kada nors turėjo dublikatą, tada mes tiesiog ištrinti savo pradinės vertės. 1576 01:12:31,660 --> 01:12:34,090 Štai kodėl mes darome šį požiūrį. 1577 01:12:34,090 --> 01:12:36,580 Arba tai, kodėl mes pasirinkome - bet vėlgi, mes pasirinko atskirą grupavimo metodą, 1578 01:12:36,580 --> 01:12:39,670 kuris yra daug kitų metodų galima pasirinkti. 1579 01:12:39,670 --> 01:12:41,185 Ar tai atsakymas į jūsų klausimą? 1580 01:12:41,185 --> 01:12:41,660 >> Gerai. 1581 01:12:41,660 --> 01:12:42,910 Carlos. 1582 01:12:42,910 --> 01:12:46,130 1583 01:12:46,130 --> 01:12:47,720 Linijinis zondavimo reikštų - 1584 01:12:47,720 --> 01:12:51,913 jei mes pastebėjome susidūrimo nuliniai, mes atrodytų kitame vietoje pamatyti, jei 1585 01:12:51,913 --> 01:12:54,310 ji buvo atvira ir padėkite jį ten. 1586 01:12:54,310 --> 01:12:57,320 Ir tada mes žiūrime į kitą sportą ir pamatyti, jei tai buvo atviras ir jį ten. 1587 01:12:57,320 --> 01:12:59,780 Taigi matome, šalia galima atvira vieta ir padėkite jį ten. 1588 01:12:59,780 --> 01:13:02,580 1589 01:13:02,580 --> 01:13:03,890 Visi kiti klausimai? 1590 01:13:03,890 --> 01:13:05,370 Taip, AVI. 1591 01:13:05,370 --> 01:13:07,490 >> PUBLIKA: Kaip sekti iki to, ką reiškia kito vietoje? 1592 01:13:07,490 --> 01:13:10,250 Maišos lentelės arba susietą sąrašą. 1593 01:13:10,250 --> 01:13:12,100 >> JASON Hirschhorn: Linijinių programavimas, nėra susiję sąrašai. 1594 01:13:12,100 --> 01:13:13,400 Šalia dėmė ant maišos lentelėje. 1595 01:13:13,400 --> 01:13:13,820 >> PUBLIKA: Gerai. 1596 01:13:13,820 --> 01:13:17,570 Taigi maišos lentelė būtų inicializuoti dydį - 1597 01:13:17,570 --> 01:13:19,560 kaip stygų skaičius kad jums buvo įterpti? 1598 01:13:19,560 --> 01:13:22,170 >> JASON Hirschhorn: Galima būtų noriu, kad ji būtų tikrai didelis. 1599 01:13:22,170 --> 01:13:23,910 Taip. 1600 01:13:23,910 --> 01:13:27,900 Čia yra tai, ką mes paveikslėlį tiesiog patraukė ant lentos. 1601 01:13:27,900 --> 01:13:29,470 Vėlgi, mes turime susidūrimo čia. 1602 01:13:29,470 --> 01:13:30,710 ne 152. 1603 01:13:30,710 --> 01:13:33,570 Ir pamatysite, mes sukūrėme susijęs sąrašas ne apie tai. 1604 01:13:33,570 --> 01:13:38,200 1605 01:13:38,200 --> 01:13:41,850 Vėlgi, maišos lentelė atskiras susiejami požiūris yra ne tas, kurį 1606 01:13:41,850 --> 01:13:45,590 turi imtis nustatyti problemos šešių, tačiau yra vienas, kad daug " 1607 01:13:45,590 --> 01:13:47,100 studentai linkę imtis. 1608 01:13:47,100 --> 01:13:51,140 Taigi dėl šio rašto, leiskite mums kalbėti trumpai kol mes galvą apie problemą šešių, 1609 01:13:51,140 --> 01:13:52,160 ir tada aš pasidalinti su jumis pasakojimu. 1610 01:13:52,160 --> 01:13:55,120 Mes turime tris minutes. 1611 01:13:55,120 --> 01:13:55,750 >> Problema nustatyti šešių. 1612 01:13:55,750 --> 01:13:57,790 Turite keturias funkcijas - 1613 01:13:57,790 --> 01:14:02,430 apkrova, patikrinkite, dydį, ir iškrauti. 1614 01:14:02,430 --> 01:14:03,380 Apkrova - 1615 01:14:03,380 --> 01:14:07,120 Na, mes jau vyksta perkrovos tik dabar. 1616 01:14:07,120 --> 01:14:09,330 Mes atkreipė apkrova ant lentos. 1617 01:14:09,330 --> 01:14:13,230 Ir mes net pradėjo kodavimo daug daug įterpiant į susietą sąrašą. 1618 01:14:13,230 --> 01:14:18,020 Taigi apkrovai, yra ne daugiau nei kas mes ką tik buvo daryti. 1619 01:14:18,020 --> 01:14:21,070 >> Patikrinimas, kai jūs turite kažkas pakrautas. 1620 01:14:21,070 --> 01:14:22,580 Tai tas pats procesas, kaip šis. 1621 01:14:22,580 --> 01:14:26,845 Tie patys pirmieji dviejų dalių, kur jūs mesti kažkas į maišos funkcija 1622 01:14:26,845 --> 01:14:29,190 ir gauti jo vertę. 1623 01:14:29,190 --> 01:14:30,700 Bet dabar mes ne įterpti jį. 1624 01:14:30,700 --> 01:14:33,350 Dabar mes ieškome už jį. 1625 01:14:33,350 --> 01:14:37,130 Aš pavyzdinis kodas parašyta rasti kažkas susietą sąrašą. 1626 01:14:37,130 --> 01:14:38,250 Raginu jus praktikuoti tai. 1627 01:14:38,250 --> 01:14:43,000 Bet intuityviai rasti kažką yra gana panašus į įterpti kažką. 1628 01:14:43,000 --> 01:14:46,540 Iš tiesų, mes patraukė rasti paveikslėlį kažkas susietą sąrašą, juda 1629 01:14:46,540 --> 01:14:48,910 per kol jūs turite iki galo. 1630 01:14:48,910 --> 01:14:52,430 Ir jei jūs turite iki galo ir negalėjo rasti, tada ji nėra. 1631 01:14:52,430 --> 01:14:55,400 Štai patikrinimas iš esmės. 1632 01:14:55,400 --> 01:14:57,030 >> Kitas dydis. 1633 01:14:57,030 --> 01:14:57,910 Praleiskime dydį. 1634 01:14:57,910 --> 01:15:00,040 Galiausiai jūs iškrauti. 1635 01:15:00,040 --> 01:15:02,890 Iškelti yra vienas mes negalime parengti ant lentos arba koduojami dar. 1636 01:15:02,890 --> 01:15:05,990 Bet raginu jus išbandyti kodavimo jį mūsų mėginio susijęs sąrašo pavyzdys. 1637 01:15:05,990 --> 01:15:11,440 Bet iškrauti intuityviai yra panašus į nemokamai - 1638 01:15:11,440 --> 01:15:14,010 ar aš turiu galvoje, yra panašus į patikrinti. 1639 01:15:14,010 --> 01:15:17,350 Išskyrus dabar kiekvieną kartą jūs ketinate per, jūs ne tik patikrinti, 1640 01:15:17,350 --> 01:15:19,090 pamatyti, jei jūs turite savo vertę ten. 1641 01:15:19,090 --> 01:15:22,490 Bet jūs vartojate šį mazgą ir išlaisvina jį iš esmės. 1642 01:15:22,490 --> 01:15:23,610 Štai ką iškrauti prašo jus padaryti. 1643 01:15:23,610 --> 01:15:24,670 Nemokama viskas jūs malloced. 1644 01:15:24,670 --> 01:15:27,480 Taigi, jūs ketinate per visą sąrašą vėl išgyvena visą maišos 1645 01:15:27,480 --> 01:15:27,760 stalo vėl. 1646 01:15:27,760 --> 01:15:29,240 Šį kartą ne patikrinti pamatyti, kas ten. 1647 01:15:29,240 --> 01:15:31,080 Tiesiog išlaisvinti, kas ten. 1648 01:15:31,080 --> 01:15:33,260 >> Ir pagaliau dydis. 1649 01:15:33,260 --> 01:15:34,350 Dydis turėtų būti įgyvendintos. 1650 01:15:34,350 --> 01:15:35,590 Jei neturite įgyvendinti dydį - 1651 01:15:35,590 --> 01:15:36,250 Aš pasakyti, kad tai, kaip šis. 1652 01:15:36,250 --> 01:15:39,740 Jei neturite įgyvendinti dydį tiksliai viena eilutė kodo įskaitant 1653 01:15:39,740 --> 01:15:43,760 grįžti pareiškimą, esate daro dydį neteisingai. 1654 01:15:43,760 --> 01:15:47,170 Taigi, įsitikinkite, kad dydis, visiškai dizainas taškų, darai tai lygiai vieną 1655 01:15:47,170 --> 01:15:49,970 linija kodu, įskaitant Grizimas. 1656 01:15:49,970 --> 01:15:52,450 >> Ir nereikia pakuoti dar Akchar. 1657 01:15:52,450 --> 01:15:53,700 Entuziastė. 1658 01:15:53,700 --> 01:15:55,820 1659 01:15:55,820 --> 01:16:01,300 Aš norėjau pasakyti, ačiū vaikinai Atvykimo į skyrių. 1660 01:16:01,300 --> 01:16:02,550 Ar Laimingas Helovinas. 1661 01:16:02,550 --> 01:16:05,300 1662 01:16:05,300 --> 01:16:05,960 Čia yra mano kostiumas. 1663 01:16:05,960 --> 01:16:08,850 Aš dėvėti šį ketvirtadienį jei matau jus darbo valandomis. 1664 01:16:08,850 --> 01:16:14,640 Ir jei jums įdomu, šiek tiek daugiau fonas, kad šio kostiumo, jausti 1665 01:16:14,640 --> 01:16:19,135 nemokamai patikrinti 2011 skyrių dėl sprendimo, kodėl aš istorija 1666 01:16:19,135 --> 01:16:20,900 dėvėti moliūgų kostiumas. 1667 01:16:20,900 --> 01:16:23,680 Ir tai liūdna istorija. 1668 01:16:23,680 --> 01:16:27,050 Taigi, įsitikinkite, kad turite netoliese keletas audinių. 1669 01:16:27,050 --> 01:16:28,680 Bet, kad jei turite kokių nors Klausimai aš klijuoti aplink 1670 01:16:28,680 --> 01:16:29,960 ne po skyriuje. 1671 01:16:29,960 --> 01:16:31,510 Sėkmės problema nustatyti šešių. 1672 01:16:31,510 --> 01:16:33,540 Ir kaip visada, jei turite kokių nors klausimai, leiskite man žinoti. 1673 01:16:33,540 --> 01:16:35,584