1 00:00:00,000 --> 00:00:08,250 2 00:00:08,250 --> 00:00:12,680 >> JASON Hirschhorn: Tere kõigile sektsioonile Seven. 3 00:00:12,680 --> 00:00:15,040 Oleme nädalal seitse muidugi. 4 00:00:15,040 --> 00:00:18,440 Ja selle nädala neljapäev on Halloween, et ma olen 5 00:00:18,440 --> 00:00:21,420 ehitud nagu kõrvits. 6 00:00:21,420 --> 00:00:23,460 Ma ei saanud kõigest väest ja panna minu kingad, nii et miks ma olen 7 00:00:23,460 --> 00:00:25,660 lihtsalt seljas sokid. 8 00:00:25,660 --> 00:00:29,220 Ma ka ei kanna midagi alla see, et ma ei suuda seda välja, kui see on 9 00:00:29,220 --> 00:00:29,950 häirivad sind. 10 00:00:29,950 --> 00:00:31,860 Vabandan juba ette, et. 11 00:00:31,860 --> 00:00:33,170 Sul ei ole vaja ette kujutada, mis toimub. 12 00:00:33,170 --> 00:00:34,240 Ma kannan poksijad. 13 00:00:34,240 --> 00:00:36,170 Nii et see on kõik hea. 14 00:00:36,170 --> 00:00:41,120 >> Mul on pikem lugu, miks ma olen riides nagu kõrvits, aga ma lähen 15 00:00:41,120 --> 00:00:45,110 salvestada, et selles lõigus hiljem sest ma ei taha, et alustada. 16 00:00:45,110 --> 00:00:47,720 Meil on palju põnevat minna üle sel nädalal. 17 00:00:47,720 --> 00:00:51,810 Enamik neist otseselt seotud käesoleva nädala probleem komplekt, õigekirjavead. 18 00:00:51,810 --> 00:00:54,680 Me läheb üle, mis on seotud nimekirjad ja hash tabeleid 19 00:00:54,680 --> 00:00:57,160 kogu lõik. 20 00:00:57,160 --> 00:01:02,490 Panin selle nimekirja iga nädal nimekirja vahendeid, et aidata teil koos 21 00:01:02,490 --> 00:01:04,120 Materjali sellel muidugi. 22 00:01:04,120 --> 00:01:07,600 Kui kahjumiga või kui otsite mõnda Lisainformatsiooni kontrollida üks 23 00:01:07,600 --> 00:01:09,930 neid vahendeid. 24 00:01:09,930 --> 00:01:14,530 >> Jällegi pset6 on õigekirjavead Selle nädala pset. 25 00:01:14,530 --> 00:01:17,690 Ja see julgustab ka sind, ja ma kutsun teid, et kasutada mõnda muud 26 00:01:17,690 --> 00:01:20,320 vahendid spetsiaalselt selle pset. 27 00:01:20,320 --> 00:01:23,390 Eelkõige kolm Olen loetletud ekraanile - 28 00:01:23,390 --> 00:01:27,160 gdb, mis me oleme tuttavad ja kasutanud juba mõnda aega, on 29 00:01:27,160 --> 00:01:29,270 saab olema väga kasulik sel nädalal. 30 00:01:29,270 --> 00:01:30,190 Nii et ma panen selle siia üles. 31 00:01:30,190 --> 00:01:32,910 Aga kui te töötate C, sa peaksid alati kasutama gdb 32 00:01:32,910 --> 00:01:34,430 programmide silumiseks. 33 00:01:34,430 --> 00:01:36,660 See nädal ka valgrind. 34 00:01:36,660 --> 00:01:38,535 Kas keegi teab, mida valgrind teeb? 35 00:01:38,535 --> 00:01:42,184 36 00:01:42,184 --> 00:01:43,890 >> Publik: See kontrollib mälu lekkeid? 37 00:01:43,890 --> 00:01:45,950 >> JASON Hirschhorn: Valgrind kontrollib mälu lekkeid. 38 00:01:45,950 --> 00:01:49,970 Nii et kui sa malloc midagi oma programmi, siis palud mälu. 39 00:01:49,970 --> 00:01:52,920 Lõpus oma programmi, siis on kirjutada tasuta kõik olete 40 00:01:52,920 --> 00:01:54,800 malloced anda mälu tagasi. 41 00:01:54,800 --> 00:01:58,420 Kui te ei kirjuta tasuta lõpus ja teie programm jõuab järeldusele, 42 00:01:58,420 --> 00:02:00,000 kõik automaatselt vabastada. 43 00:02:00,000 --> 00:02:02,340 Ja väikesed programmid, see on ei ole nii suur asi. 44 00:02:02,340 --> 00:02:05,250 Aga kui sa oled kirjalikult pikem jooks programmi, mis ei sulguda, 45 00:02:05,250 --> 00:02:09,180 tingimata, et paar minutit või paar sekundit ja seejärel mälu lekib 46 00:02:09,180 --> 00:02:10,710 võib saada suur asi. 47 00:02:10,710 --> 00:02:14,940 >> Nii pset6, ootus on, et siis on null mälu lekkeid 48 00:02:14,940 --> 00:02:15,910 oma programmi. 49 00:02:15,910 --> 00:02:18,690 Kontrollida mälu lekib, joosta valgrind ja see annab sulle mõned kena 50 00:02:18,690 --> 00:02:21,190 väljund üürile te teate, kas või ei kõik oli tasuta. 51 00:02:21,190 --> 00:02:23,940 Me harjutame seda hiljem täna, loodetavasti. 52 00:02:23,940 --> 00:02:25,790 >> Lõpuks käsu diff. 53 00:02:25,790 --> 00:02:28,900 Sa kasutasid midagi sarnast see aastal pset5 koos Peek vahend. 54 00:02:28,900 --> 00:02:30,780 Lubatud sa sisse vaadata. 55 00:02:30,780 --> 00:02:33,400 Sul on ka kasutada diff ka ühe lahendamist spec. 56 00:02:33,400 --> 00:02:35,950 Aga lubatud teil võrrelda kahte faile. 57 00:02:35,950 --> 00:02:39,180 Võiksite võrrelda bitmap faili ja info päised personal lahendus ja 58 00:02:39,180 --> 00:02:42,200 teie lahendus pset5 kui valisid seda kasutada. 59 00:02:42,200 --> 00:02:44,030 Diff võimaldab teil seda teha, samuti. 60 00:02:44,030 --> 00:02:48,620 Võite võrrelda õige vastus Selle nädala lahendamist oma vastus 61 00:02:48,620 --> 00:02:52,210 ja vaata, kas see rida üles või vaadake kui vead on. 62 00:02:52,210 --> 00:02:55,870 >> Nii et need on kolm head vahendid, et peate kasutama sel nädalal, ja 63 00:02:55,870 --> 00:02:58,130 Kindlasti kontrollige oma programmi Nende kolme tööriistad 64 00:02:58,130 --> 00:03:00,520 enne kui selle sisse 65 00:03:00,520 --> 00:03:04,650 Jällegi, nagu ma juba mainisin iga nädal, Kui teil on mingeid tagasiside minu jaoks - nii 66 00:03:04,650 --> 00:03:06,470 positiivne ja konstruktiivne - 67 00:03:06,470 --> 00:03:09,930 julgelt suunduda veebilehel allosas käesoleva slaidile 68 00:03:09,930 --> 00:03:11,270 ja sisend seal. 69 00:03:11,270 --> 00:03:13,440 Ma tõesti hindan iga ja kõik tagasiside. 70 00:03:13,440 --> 00:03:17,360 Ja kui sa ei anna mulle konkreetsed asjad, mis Ma võin teha, et parandada või et ma olen 71 00:03:17,360 --> 00:03:21,350 läheb hästi, et sa tahaksid mind jätkata, ma võtan selle oma südameasjaks ja 72 00:03:21,350 --> 00:03:24,040 tegelikult üritan kuulata teie tagasisidet. 73 00:03:24,040 --> 00:03:27,720 Ma ei saa lubada, et ma teen kõik, aga nagu seljas 74 00:03:27,720 --> 00:03:30,700 kõrvitsa kostüüm iga nädal. 75 00:03:30,700 --> 00:03:34,020 >> Nii et me ei kavatse kulutada suurema osa jagu, nagu ma mainisin, räägime 76 00:03:34,020 --> 00:03:37,240 ahelloendid ja hash tabeleid, mis on vahetult kohaldatavad 77 00:03:37,240 --> 00:03:38,780 lahendamist sel nädalal. 78 00:03:38,780 --> 00:03:42,580 Ahelloendid läheme üle suhteliselt kiiresti, sest oleme kulutanud päris bit 79 00:03:42,580 --> 00:03:44,930 aega läheb üle see osa. 80 00:03:44,930 --> 00:03:48,680 Ja nii me jõuame otse kodeerimise probleemid seotud nimekirju. 81 00:03:48,680 --> 00:03:52,740 Ja siis lõpuks me räägime räsitabeli ja kuidas need kehtivad käesoleva 82 00:03:52,740 --> 00:03:55,280 nädala lahendamist. 83 00:03:55,280 --> 00:03:57,560 >> Olete näinud seda koodi enne. 84 00:03:57,560 --> 00:04:02,730 See on struktuure ning seda määratletakse midagi uut nimetatakse sõlme. 85 00:04:02,730 --> 00:04:10,660 Ja sees sõlm on täisarv siin ja seal on viit 86 00:04:10,660 --> 00:04:11,830 teise sõlme. 87 00:04:11,830 --> 00:04:12,790 Me oleme näinud seda enne. 88 00:04:12,790 --> 00:04:14,830 See on tulemas paar nädalat nüüd. 89 00:04:14,830 --> 00:04:18,680 See ühendab suunanäitajaks, mis me oleme töötamisel ja structs, mis võimaldavad 90 00:04:18,680 --> 00:04:22,079 meil ühendada kaks erinevat asjad ühte andmetüüpi. 91 00:04:22,079 --> 00:04:24,830 92 00:04:24,830 --> 00:04:26,490 >> Seal on palju toimub ekraanil. 93 00:04:26,490 --> 00:04:30,220 Kuid kõik see peaks olema suhteliselt tuttav teile. 94 00:04:30,220 --> 00:04:33,810 Esimesel real, me kuulutada uus sõlm. 95 00:04:33,810 --> 00:04:41,650 Ja siis sees, et uus sõlm, seadsin täisarv, et sõlme üks. 96 00:04:41,650 --> 00:04:44,950 Näeme järgmisel real ma teen printf käsku, aga ma pole tuhm 97 00:04:44,950 --> 00:04:48,080 printf käsk, sest tegelikult Oluline osa on siin kandis - 98 00:04:48,080 --> 00:04:50,020 new_node.n. 99 00:04:50,020 --> 00:04:51,270 Mis dot tähendab? 100 00:04:51,270 --> 00:04:53,810 101 00:04:53,810 --> 00:04:57,240 >> Publik: Mine sõlm ja hindab n väärtust ta. 102 00:04:57,240 --> 00:04:58,370 >> JASON Hirschhorn: See on täpselt õige. 103 00:04:58,370 --> 00:05:03,300 Dot tähendab juurdepääsu n osa Uue sõlme. 104 00:05:03,300 --> 00:05:05,690 See reale mida teeb? 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 >> Publik: See loob teise sõlme mis toob välja uue sõlme. 108 00:05:21,910 --> 00:05:24,870 >> JASON Hirschhorn: nii et see ei Uue sõlme. 109 00:05:24,870 --> 00:05:26,120 See tekitab mida? 110 00:05:26,120 --> 00:05:28,300 111 00:05:28,300 --> 00:05:29,300 >> Publik: pointer. 112 00:05:29,300 --> 00:05:33,460 >> JASON Hirschhorn: kursor sõlme, nagu näidatud käesoleva sõlme * siin. 113 00:05:33,460 --> 00:05:34,800 Seega loob kursor sõlme. 114 00:05:34,800 --> 00:05:37,490 Ja mis sõlm see osutab et, Michael? 115 00:05:37,490 --> 00:05:38,440 >> Publik: uus sõlm? 116 00:05:38,440 --> 00:05:39,240 >> JASON Hirschhorn: uus sõlm. 117 00:05:39,240 --> 00:05:43,020 Ja see on suunaga sinna, sest me oleme arvestades seda aadressi uus sõlm. 118 00:05:43,020 --> 00:05:45,820 Ja nüüd seda joont näeme kaks eri viise 119 00:05:45,820 --> 00:05:46,910 väljendades sama. 120 00:05:46,910 --> 00:05:49,650 Ja ma tahtsin juhtida tähelepanu sellele, kuidas need kaks asja on samad. 121 00:05:49,650 --> 00:05:54,740 Esimeses reas me endid pointer. 122 00:05:54,740 --> 00:05:55,830 Läksime sõlme. 123 00:05:55,830 --> 00:05:56,830 Seda see täht tähendab. 124 00:05:56,830 --> 00:05:57,930 Me oleme näinud, et enne näidikumehhanism. 125 00:05:57,930 --> 00:05:59,280 Mine, et sõlme. 126 00:05:59,280 --> 00:06:00,370 See on sulgudes. 127 00:06:00,370 --> 00:06:04,610 Ja siis ligi kaudu dot operaator n elementi, et sõlme. 128 00:06:04,610 --> 00:06:08,430 >> Nii et vőtab süntaks nägime siin ja praegu 129 00:06:08,430 --> 00:06:09,670 kasutades seda pointer. 130 00:06:09,670 --> 00:06:13,730 Muidugi, see läheb omamoodi hõivatud kui sa oled kirjalikult need sulgudesse - 131 00:06:13,730 --> 00:06:14,940 et täht ja punkt. 132 00:06:14,940 --> 00:06:16,220 Läheb veidi hõivatud. 133 00:06:16,220 --> 00:06:18,500 Nii et meil on mõned süntaktiline suhkur. 134 00:06:18,500 --> 00:06:19,920 Ja see joon siin - 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 See täpselt sama asi. 138 00:06:28,000 --> 00:06:30,840 Nii et need kaks rida koodi on samaväärne ja teeme 139 00:06:30,840 --> 00:06:31,650 täpselt sama asi. 140 00:06:31,650 --> 00:06:34,210 >> Aga ma tahtsin juhtida need läbi enne kui me minna kaugemale, et te mõistate, 141 00:06:34,210 --> 00:06:39,000 et tegelikult see asi siin on lihtsalt süntaktiline suhkru viite mahavõtmine 142 00:06:39,000 --> 00:06:44,200 kursor ja siis läheb n osa sellest struktuure. 143 00:06:44,200 --> 00:06:45,525 Küsimusi selle slaidi? 144 00:06:45,525 --> 00:06:53,020 145 00:06:53,020 --> 00:06:54,390 OK. 146 00:06:54,390 --> 00:06:58,510 >> Nii et me läheme läbi paar toiminguid, mida saate teha on 147 00:06:58,510 --> 00:06:59,730 ahelloendid. 148 00:06:59,730 --> 00:07:05,770 Seotud nimekirja, mäletate, on rida sõlmed, mis viitavad ühele teisele. 149 00:07:05,770 --> 00:07:12,470 Ja me algavad tavaliselt pointer kutsutud pea üldiselt, mis osutab 150 00:07:12,470 --> 00:07:14,040 Esimene asi nimekirjas. 151 00:07:14,040 --> 00:07:18,900 Nii esimesel real siin, me on meie algne L esimene. 152 00:07:18,900 --> 00:07:21,370 Nii et asi, mida sa ei mõtle - see tekst siin võite mõelda nagu 153 00:07:21,370 --> 00:07:23,560 lihtsalt kursor oleme salvestatud kusagilt, et punkte 154 00:07:23,560 --> 00:07:24,670 Lisa esimese osaga. 155 00:07:24,670 --> 00:07:27,500 Ja see on seotud nimekirja meil on neli sõlme. 156 00:07:27,500 --> 00:07:29,530 Iga sõlm on suur kast. 157 00:07:29,530 --> 00:07:33,430 Mida suurem kast sees suur kast on täisarv. 158 00:07:33,430 --> 00:07:37,400 Ja siis on meil pointer osa. 159 00:07:37,400 --> 00:07:39,630 >> Need lahtrid ei pöörata skaala, sest kui suur on 160 00:07:39,630 --> 00:07:42,320 täisarv baiti? 161 00:07:42,320 --> 00:07:43,290 Kui suur on? 162 00:07:43,290 --> 00:07:43,710 Neli. 163 00:07:43,710 --> 00:07:45,470 Ja kui suur on pointer? 164 00:07:45,470 --> 00:07:45,940 Neli. 165 00:07:45,940 --> 00:07:48,180 Nii et tõesti, kui me joonistaks see, et skaala mõlemad kastid 166 00:07:48,180 --> 00:07:49,690 oleks sama suurusega. 167 00:07:49,690 --> 00:07:52,870 Sellisel juhul me tahame lisada midagi arvesse seotud nimekirja. 168 00:07:52,870 --> 00:07:57,190 Nii et näete, siin me lisades viis Me läbida kaudu 169 00:07:57,190 --> 00:08:01,310 seotud nimekirja, leida, kui viis läheb ja seejärel lisada see. 170 00:08:01,310 --> 00:08:03,560 >> Olgem murda see maha ja mine natuke aeglasemalt. 171 00:08:03,560 --> 00:08:05,510 Ma viitavad pardal. 172 00:08:05,510 --> 00:08:09,930 Nii et meil on meie sõlme viis, et oleme loodud mallocs. 173 00:08:09,930 --> 00:08:11,190 Miks on kõik naeravad? 174 00:08:11,190 --> 00:08:12,130 Lihtsalt nalja. 175 00:08:12,130 --> 00:08:13,310 OK. 176 00:08:13,310 --> 00:08:14,820 Nii oleme malloced viis. 177 00:08:14,820 --> 00:08:16,310 Lõime selle sõlme kusagil mujal. 178 00:08:16,310 --> 00:08:17,740 Meil on see valmis. 179 00:08:17,740 --> 00:08:20,130 Alustame ees meie nimekirjas kaks. 180 00:08:20,130 --> 00:08:22,380 Ja me tahame, et sisestada aastal sorteeritud mood. 181 00:08:22,380 --> 00:08:27,550 >> Nii et kui me näeme, kaks ja me tahame panna viis, mida me teeme, kui me näeme 182 00:08:27,550 --> 00:08:28,800 midagi alla meie juures? 183 00:08:28,800 --> 00:08:31,850 184 00:08:31,850 --> 00:08:33,520 Mida? 185 00:08:33,520 --> 00:08:36,750 Me tahame lisada viis sellesse seotud nimekirja, hoides seda sorteerida. 186 00:08:36,750 --> 00:08:37,520 Näeme number kaks. 187 00:08:37,520 --> 00:08:38,769 Mida me siis teeme? 188 00:08:38,769 --> 00:08:39,179 Marcus? 189 00:08:39,179 --> 00:08:40,679 >> Publik: Call pointer Järgmise sõlme. 190 00:08:40,679 --> 00:08:42,530 >> JASON Hirschhorn: ja miks läheme järgmine? 191 00:08:42,530 --> 00:08:45,970 >> Publik: Sest see on Järgmine sõlme nimekirja. 192 00:08:45,970 --> 00:08:48,310 Ja me teame ainult, et muud asukohta. 193 00:08:48,310 --> 00:08:50,410 >> JASON Hirschhorn Ja viis on suurem kui kaks, eelkõige. 194 00:08:50,410 --> 00:08:51,600 Kuna me tahame hoida seda sorteerida. 195 00:08:51,600 --> 00:08:52,730 Nii viis on suurem kui kaks. 196 00:08:52,730 --> 00:08:54,460 Nii liigume edasi järgmise üks. 197 00:08:54,460 --> 00:08:55,240 Ja nüüd jõuame neli. 198 00:08:55,240 --> 00:08:56,490 Ja mis juhtub, kui me jõuame neli? 199 00:08:56,490 --> 00:08:58,920 200 00:08:58,920 --> 00:09:00,310 >> Viis on suurem kui neli. 201 00:09:00,310 --> 00:09:01,460 Nii et me jätkame. 202 00:09:01,460 --> 00:09:03,110 Ja nüüd me oleme kuus. 203 00:09:03,110 --> 00:09:04,360 Ja mida me näeme kell kuus? 204 00:09:04,360 --> 00:09:08,672 205 00:09:08,672 --> 00:09:09,608 Jah, Carlos? 206 00:09:09,608 --> 00:09:10,544 >> Publik: Kuus on suurem kui viis. 207 00:09:10,544 --> 00:09:11,480 >> JASON Hirschhorn: Kuus on üle viie. 208 00:09:11,480 --> 00:09:13,660 Nii et kui me tahame lisada viis. 209 00:09:13,660 --> 00:09:17,320 Kuid pidage meeles, et kui me ainult üks pointer siin - 210 00:09:17,320 --> 00:09:19,840 see on meie pildi pointer, mis on liiklevad läbi nimekirja. 211 00:09:19,840 --> 00:09:21,860 Ja me osutades kuus. 212 00:09:21,860 --> 00:09:25,010 Me oleme kaotanud jälgida, mida tuleb enne kuus. 213 00:09:25,010 --> 00:09:29,130 Nii et kui me tahame, et lisada midagi arvesse see nimekiri hoides seda järjestatud oleme 214 00:09:29,130 --> 00:09:31,630 tõenäoliselt vaja, kui palju viiteid? 215 00:09:31,630 --> 00:09:32,280 >> Publik: Kaks. 216 00:09:32,280 --> 00:09:32,920 >> JASON Hirschhorn: Kaks. 217 00:09:32,920 --> 00:09:35,720 Üks jälgida praegust üks ja üks, et jälgida 218 00:09:35,720 --> 00:09:37,050 eelmine. 219 00:09:37,050 --> 00:09:38,450 See on ainult üksikult seotud nimekirja. 220 00:09:38,450 --> 00:09:39,670 See ainult läheb ühes suunas. 221 00:09:39,670 --> 00:09:43,220 Kui meil oleks kahekordselt seotud nimekirja, kus kõik oli osutades asi 222 00:09:43,220 --> 00:09:46,240 pärast seda ja asi enne seda, siis me ei pea seda tegema. 223 00:09:46,240 --> 00:09:49,350 Aga sel juhul me ei taha kaotada jälgida, mida tuli enne meid korral 224 00:09:49,350 --> 00:09:53,350 meil vaja lisada viis kuhugi aasta keskel. 225 00:09:53,350 --> 00:09:55,610 Ütle, et me lisades üheksa. 226 00:09:55,610 --> 00:09:57,260 Mis juhtuks, kui saime kaheksa? 227 00:09:57,260 --> 00:10:01,860 228 00:10:01,860 --> 00:10:04,880 >> Publik: Sa pead saada, et null punkti. 229 00:10:04,880 --> 00:10:07,820 Selle asemel, et null punkti on teil lisada element ja siis on 230 00:10:07,820 --> 00:10:09,216 see viidata üheksa. 231 00:10:09,216 --> 00:10:09,700 >> JASON Hirschhorn: Täpselt. 232 00:10:09,700 --> 00:10:10,600 Nii saame kaheksa. 233 00:10:10,600 --> 00:10:13,140 Jõuame lõpuks nimekirja, sest see on suunatud tühjaks. 234 00:10:13,140 --> 00:10:16,330 Ja nüüd, selle asemel, et viidata null meil on see punkt, et meie uus sõlm. 235 00:10:16,330 --> 00:10:19,870 Ja seadsime kursorit meie uus sõlm tühjaks. 236 00:10:19,870 --> 00:10:21,445 Kas kellelgi on küsimusi kuidas lisada? 237 00:10:21,445 --> 00:10:25,620 238 00:10:25,620 --> 00:10:28,100 Mida teha, kui ma ei hooli loetelu pidamise järjestatud? 239 00:10:28,100 --> 00:10:31,701 240 00:10:31,701 --> 00:10:34,350 >> Publik: liialdama alguses või lõpus. 241 00:10:34,350 --> 00:10:35,510 >> JASON Hirschhorn: liialdama alguses või lõpus. 242 00:10:35,510 --> 00:10:37,276 Kumba me peaksime tegema? 243 00:10:37,276 --> 00:10:38,770 Bobby? 244 00:10:38,770 --> 00:10:41,020 Miks lõpetada? 245 00:10:41,020 --> 00:10:43,250 >> Publik: Kuna algusest on juba täidetud. 246 00:10:43,250 --> 00:10:43,575 >> JASON Hirschhorn: OK. 247 00:10:43,575 --> 00:10:44,360 Alguses on juba täidetud. 248 00:10:44,360 --> 00:10:46,090 Kes tahab vastu vaielda Bobby. 249 00:10:46,090 --> 00:10:47,290 Marcus. 250 00:10:47,290 --> 00:10:48,910 >> Publik: Noh sa ilmselt tahad liialdama alguses, sest 251 00:10:48,910 --> 00:10:50,140 muidu kui sa paned seda aasta lõpuks on teil 252 00:10:50,140 --> 00:10:51,835 läbida kogu nimekirja. 253 00:10:51,835 --> 00:10:52,990 >> JASON Hirschhorn: Täpselt. 254 00:10:52,990 --> 00:10:57,970 Seega, kui me mõtleme, runtime, runtime sisestades lõpus 255 00:10:57,970 --> 00:11:00,110 oleks n, suurus selles. 256 00:11:00,110 --> 00:11:03,080 Mis on suur O runtime sisestades alguses? 257 00:11:03,080 --> 00:11:04,170 Pidev aeg. 258 00:11:04,170 --> 00:11:07,075 Nii et kui te ei hooli hoides midagi sorteerida, palju parem lihtsalt 259 00:11:07,075 --> 00:11:08,420 sisestada alguses seda nimekirja. 260 00:11:08,420 --> 00:11:10,320 Ja et on võimalik teha pidevalt aega. 261 00:11:10,320 --> 00:11:13,900 262 00:11:13,900 --> 00:11:14,690 >> OK. 263 00:11:14,690 --> 00:11:18,870 Järgmine toiming on leida, mis muu - oleme sõnastanud seda otsida. 264 00:11:18,870 --> 00:11:22,470 Aga me ei kavatse vaadata läbi seotud nimekirja mõnda objekti. 265 00:11:22,470 --> 00:11:26,000 Te olete näinud kood otsi varem loeng. 266 00:11:26,000 --> 00:11:29,490 Aga me justkui lihtsalt tegi seda sisestada või vähemalt sisestamist 267 00:11:29,490 --> 00:11:30,580 midagi sorteerida. 268 00:11:30,580 --> 00:11:36,350 Sa vaatad läbi, läheb sõlme poolt sõlme, kuni leiad number, et sa oled 269 00:11:36,350 --> 00:11:37,780 otsin. 270 00:11:37,780 --> 00:11:39,670 Mis juhtub, kui sa jõuad lõpuks nimekirja? 271 00:11:39,670 --> 00:11:43,020 Ütle Otsin üheksa ja ma jõuda lõpuks nimekirja. 272 00:11:43,020 --> 00:11:44,270 Mida me siis teeme? 273 00:11:44,270 --> 00:11:47,147 274 00:11:47,147 --> 00:11:48,110 >> Publik: Tagasi vale? 275 00:11:48,110 --> 00:11:48,690 >> JASON Hirschhorn: tagasi false. 276 00:11:48,690 --> 00:11:49,960 Me ei leia seda. 277 00:11:49,960 --> 00:11:52,010 Kui jõuate nimekirja lõppu ja sa ei leia number sa oled 278 00:11:52,010 --> 00:11:54,170 otsin, see ei ole seal. 279 00:11:54,170 --> 00:11:55,420 Kõik küsimused leiavad? 280 00:11:55,420 --> 00:11:59,530 281 00:11:59,530 --> 00:12:04,615 Kui see oli sorteeritud nimekirja, mis oleks olla erinev meie otsimine? 282 00:12:04,615 --> 00:12:07,370 283 00:12:07,370 --> 00:12:08,103 Jah. 284 00:12:08,103 --> 00:12:10,600 >> Publik: Oleks leida esimene väärtus see on suurem kui üks 285 00:12:10,600 --> 00:12:12,390 otsite ja siis tagasi vale. 286 00:12:12,390 --> 00:12:13,190 >> JASON Hirschhorn: Täpselt. 287 00:12:13,190 --> 00:12:17,310 Nii et kui see on sorteeritud nimekirja, kui saame midagi, mis on suurem kui see, mida 288 00:12:17,310 --> 00:12:20,180 me otsime, me ei pea jätkame nimekirja lõppu. 289 00:12:20,180 --> 00:12:24,060 Me saame sel hetkel tagasi false sest me ei kavatse seda leida. 290 00:12:24,060 --> 00:12:27,340 Küsimus on nüüd, oleme rääkinud hoides ahelloendid sorteeritud, 291 00:12:27,340 --> 00:12:28,180 hoides neid sortimata. 292 00:12:28,180 --> 00:12:30,050 See saab olema midagi, mida sa oled ilmselt läheb mõtlema 293 00:12:30,050 --> 00:12:34,240 kui kodeerimine lahendamist viis, kui te vali hash tabelis eraldi 294 00:12:34,240 --> 00:12:36,360 Aheldamise meetod, mis me räägime hiljem. 295 00:12:36,360 --> 00:12:41,400 >> Aga see on seda väärt, et hoida nimekiri sorteeritud ja siis saaks võib-olla 296 00:12:41,400 --> 00:12:42,310 kiiremini otsinguid? 297 00:12:42,310 --> 00:12:47,220 Või on parem kiiresti sisestada midagi pidevas runtime kuid siis 298 00:12:47,220 --> 00:12:48,430 on enam otsima? 299 00:12:48,430 --> 00:12:52,250 See on kompromiss seal, et sa saad otsustada, milline on kõige sobivam 300 00:12:52,250 --> 00:12:53,590 oma konkreetse probleemiga. 301 00:12:53,590 --> 00:12:56,680 Ja seal ei ole tingimata üks täiesti õige vastus. 302 00:12:56,680 --> 00:12:59,520 Aga see on kindlasti otsus saad teha, ja ilmselt hea kaitsta 303 00:12:59,520 --> 00:13:05,270 et, ütleme, kommentaar või kaks, miks valisite üks teiste üle. 304 00:13:05,270 --> 00:13:06,490 >> Lõpuks kustutada. 305 00:13:06,490 --> 00:13:08,100 Me oleme näinud kustutamine. 306 00:13:08,100 --> 00:13:09,180 See on sarnane otsides. 307 00:13:09,180 --> 00:13:11,020 Otsime element. 308 00:13:11,020 --> 00:13:12,390 Ütle, me üritame kustutada kuus. 309 00:13:12,390 --> 00:13:14,450 Nii leiame kuus siin. 310 00:13:14,450 --> 00:13:18,860 Asi, mida me peame tegema, et me teha on see, et mis iganes on suunaga 311 00:13:18,860 --> 00:13:21,220 kuus - nagu me näeme samm kaks siin - 312 00:13:21,220 --> 00:13:26,500 mis iganes osutades kuus vaja vahele kuus nüüd ja muuta, et 313 00:13:26,500 --> 00:13:28,160 olenemata kuus osutab. 314 00:13:28,160 --> 00:13:31,410 Me ei taha kunagi harva mujal meie nimekirjas, unustades, et seada see 315 00:13:31,410 --> 00:13:32,960 eelmine pointer. 316 00:13:32,960 --> 00:13:35,960 Ja siis mõnikord, olenevalt programmi, siis nad lihtsalt 317 00:13:35,960 --> 00:13:37,380 kustutada sõlme täielikult. 318 00:13:37,380 --> 00:13:40,135 Mõnikord sa tahad tagasi väärtus, mis on selles sõlme. 319 00:13:40,135 --> 00:13:42,490 Nii see on, kuidas kustutada töid. 320 00:13:42,490 --> 00:13:44,610 Kõik küsimused kustutada? 321 00:13:44,610 --> 00:13:51,280 322 00:13:51,280 --> 00:13:53,850 >> Publik: Nii et kui sa tahad, et kustutada see, kas sa lihtsalt kasutada tasuta, sest 323 00:13:53,850 --> 00:13:55,655 arvatavasti oli see malloced? 324 00:13:55,655 --> 00:13:57,976 >> JASON Hirschhorn: Kui soovite tasuta midagi, mis on täpselt õige ja te 325 00:13:57,976 --> 00:13:58,540 malloced ta. 326 00:13:58,540 --> 00:14:00,410 Ütle tahtsime tagastab väärtuse. 327 00:14:00,410 --> 00:14:04,010 Võiksime tagasi kuus ja siis tasuta Selle sõlme ja kõne tasuta ta. 328 00:14:04,010 --> 00:14:06,180 Või me tahaks ilmselt helistada tasuta esimene ja siis tagasi kuus. 329 00:14:06,180 --> 00:14:11,210 330 00:14:11,210 --> 00:14:11,580 >> OK. 331 00:14:11,580 --> 00:14:14,010 Nii liigume edasi harjutada kodeerimine. 332 00:14:14,010 --> 00:14:16,090 Me läheme koodi kolm ülesannet. 333 00:14:16,090 --> 00:14:18,260 Esimest nimetatakse insert_node. 334 00:14:18,260 --> 00:14:22,170 Nii et teil on kood, et ma saatsin teid ja kui sa vaatad seda hiljem 335 00:14:22,170 --> 00:14:28,020 pääsete koodi linked.c edasi CS50 veebisaidil. 336 00:14:28,020 --> 00:14:30,880 Aga linked.c, seal on mõned skelett kood, mis on juba 337 00:14:30,880 --> 00:14:32,280 kirjutatud teile. 338 00:14:32,280 --> 00:14:34,560 Ja siis on paar funktsiooni teil on vaja kirjutada. 339 00:14:34,560 --> 00:14:36,380 >> Esiteks me läheme kirjuta insert_node. 340 00:14:36,380 --> 00:14:39,800 Ja mis insert_node ei tähendab lisab täisarv. 341 00:14:39,800 --> 00:14:42,440 Ja sa oled andes täisarv arvesse seotud nimekirja. 342 00:14:42,440 --> 00:14:45,470 Ja eriti, peate hoida nimekirja sorteeritakse 343 00:14:45,470 --> 00:14:47,650 alates väiksemast ja lõpetades suuremaga. 344 00:14:47,650 --> 00:14:51,360 Ka te ei taha pange duplikaadid. 345 00:14:51,360 --> 00:14:54,600 Lõpuks, nagu te näete insert_node naaseb bool. 346 00:14:54,600 --> 00:14:57,140 Nii et sa peaksid lasta kasutaja teadma kas insert oli 347 00:14:57,140 --> 00:15:00,800 edukas tagastades õige või vale. 348 00:15:00,800 --> 00:15:02,580 Lõpus see programm - 349 00:15:02,580 --> 00:15:05,750 ja selles etapis ei pea te muretsema vabastades midagi. 350 00:15:05,750 --> 00:15:11,790 Nii et kõik, mida sa teed on võttes täisarv ja sisestamist nimekirja. 351 00:15:11,790 --> 00:15:13,890 >> See on see, mida ma palun teil teha nüüd. 352 00:15:13,890 --> 00:15:17,620 Jällegi linked.c, mida kõik on, on skelett kood. 353 00:15:17,620 --> 00:15:20,980 Ja sa näed põhja poole proovi funktsiooni deklaratsiooni. 354 00:15:20,980 --> 00:15:27,390 Kuid enne laskumist kodeerimine see C, ma väga soovitame teil minna 355 00:15:27,390 --> 00:15:29,330 läbi samme me oleme praktiseerivad iga nädal. 356 00:15:29,330 --> 00:15:31,100 Me oleme juba läbi käinud sellest pilti. 357 00:15:31,100 --> 00:15:33,380 Nii et sa peaksid olema mingi ettekujutus kuidas see toimib. 358 00:15:33,380 --> 00:15:36,590 Aga ma kutsun teid üles kirjutama mõned pseudokoodi enne sukeldumise sisse 359 00:15:36,590 --> 00:15:38,640 Ja me läheme üle pseudokoodi rühmana. 360 00:15:38,640 --> 00:15:41,470 Ja siis, kui olete kirjutanud oma pseudokoodi ja kui oleme kirjutanud meie 361 00:15:41,470 --> 00:15:45,850 pseudokoodi rühmana, saate minna kodeerimine see C. 362 00:15:45,850 --> 00:15:49,980 >> Nagu heads up, insert_node funktsioon Tõenäoliselt on kõige keerulisem ja 363 00:15:49,980 --> 00:15:53,550 kolm me kirjutada, sest ma lisatud mõned täiendavad piirangud 364 00:15:53,550 --> 00:15:57,190 oma programmi, eelkõige sa ei kavatse lisada iga 365 00:15:57,190 --> 00:15:59,880 duplikaadid ja et nimekiri peaks jääma sorteerida. 366 00:15:59,880 --> 00:16:02,660 Nii et see on mitte-triviaalne programm et teil on vaja koodi. 367 00:16:02,660 --> 00:16:06,470 Ja miks sa ei võta 06:55 minutit lihtsalt saada tööd 368 00:16:06,470 --> 00:16:07,640 pseudokoodi ja kood. 369 00:16:07,640 --> 00:16:09,460 Ja siis algab läheb rühmana. 370 00:16:09,460 --> 00:16:11,680 Jällegi, kui teil on küsimusi, siis tõsta oma käsi ja ma tulen umbes. 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 >> Meil on ka tavaliselt teeme need - 375 00:18:30,120 --> 00:18:32,070 või ma ei ole selgesõnaliselt öelda, et sa võib töötada inimestega. 376 00:18:32,070 --> 00:18:36,500 Aga loomulikult, ma väga soovitame teil, Kui teil on küsimusi, paluda 377 00:18:36,500 --> 00:18:39,840 naaber istub sinu kõrval või isegi töö kellegagi 378 00:18:39,840 --> 00:18:40,510 muidu, kui soovite. 379 00:18:40,510 --> 00:18:42,600 See ei pea olema individuaalne vaikne tegevus. 380 00:18:42,600 --> 00:20:11,770 381 00:20:11,770 --> 00:20:16,330 >> Alustame kirjalikult mõned pseudokoodi laual. 382 00:20:16,330 --> 00:20:19,395 Kes saab mulle esimene rida pseudokoodi selle programmiga? 383 00:20:19,395 --> 00:20:22,240 384 00:20:22,240 --> 00:20:23,640 Funktsiooni pigem - 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 >> Publik: Nii et esimene asi, mida ma tegin, oli Uue kursor sõlme ja ma 388 00:20:36,560 --> 00:20:41,320 käivitatud, siis osutab sama asi, et nimekirjas on suunaga. 389 00:20:41,320 --> 00:20:41,550 >> JASON Hirschhorn: OK. 390 00:20:41,550 --> 00:20:45,190 Nii loote uue pointer nimekirja, mitte sõlme. 391 00:20:45,190 --> 00:20:45,420 >> Publik: Õigus. 392 00:20:45,420 --> 00:20:46,150 Jah. 393 00:20:46,150 --> 00:20:46,540 >> JASON Hirschhorn: OK. 394 00:20:46,540 --> 00:20:48,221 Ja siis me tahame seda teha? 395 00:20:48,221 --> 00:20:49,163 Mis on pärast seda? 396 00:20:49,163 --> 00:20:50,105 Aga sõlm? 397 00:20:50,105 --> 00:20:51,050 Meil ei ole sõlme. 398 00:20:51,050 --> 00:20:52,300 Meil on lihtsalt raha. 399 00:20:52,300 --> 00:20:55,918 400 00:20:55,918 --> 00:20:58,890 Kui me tahame lisada sõlme, mida me pead tegema, enne saame isegi 401 00:20:58,890 --> 00:20:59,980 mõtle sisestamist? 402 00:20:59,980 --> 00:21:00,820 >> Publik: Oh, vabandust. 403 00:21:00,820 --> 00:21:02,160 peame malloc ruumi sõlme. 404 00:21:02,160 --> 00:21:02,455 >> JASON Hirschhorn: Suurepärane. 405 00:21:02,455 --> 00:21:03,210 Teeme - 406 00:21:03,210 --> 00:21:04,628 OK. 407 00:21:04,628 --> 00:21:06,065 Ei jõua, et kõrge. 408 00:21:06,065 --> 00:21:08,939 409 00:21:08,939 --> 00:21:09,897 OK. 410 00:21:09,897 --> 00:21:13,236 Me läheme alla ja seejärel me kasutame kaks veergu. 411 00:21:13,236 --> 00:21:13,732 Ma ei saa minna, et - 412 00:21:13,732 --> 00:21:14,982 OK. 413 00:21:14,982 --> 00:21:23,660 414 00:21:23,660 --> 00:21:25,130 Loo uus sõlm. 415 00:21:25,130 --> 00:21:29,380 Võite luua uue pointer nimekirja või saate lihtsalt kasutada nimekirja, kuna see on olemas. 416 00:21:29,380 --> 00:21:30,720 Sa tõesti ei pea seda tegema. 417 00:21:30,720 --> 00:21:31,750 >> Nii loome uue tipu. 418 00:21:31,750 --> 00:21:32,010 Suur. 419 00:21:32,010 --> 00:21:32,840 See, mida me teha esimene. 420 00:21:32,840 --> 00:21:34,870 Mis edasi? 421 00:21:34,870 --> 00:21:35,080 >> Publik: Oota. 422 00:21:35,080 --> 00:21:38,330 Kas peaksime looma uue sõlme nüüd või me peaksime ootama, et veenduda, et 423 00:21:38,330 --> 00:21:42,260 pole duplikaadid sõlme nimekirja enne, kui me luua? 424 00:21:42,260 --> 00:21:43,100 >> JASON Hirschhorn: Hea küsimus. 425 00:21:43,100 --> 00:21:47,770 Teeme seda hoida hiljem, sest Enamuse ajast oleme me luua 426 00:21:47,770 --> 00:21:48,220 uus sõlm. 427 00:21:48,220 --> 00:21:49,110 Nii et me hoiame seda siin. 428 00:21:49,110 --> 00:21:51,006 Aga see on hea küsimus. 429 00:21:51,006 --> 00:21:53,250 Kui me loome seda ja leiame eksemplaris, mis peaks 430 00:21:53,250 --> 00:21:54,490 teeme naasid? 431 00:21:54,490 --> 00:21:55,190 >> Publik: Vabastage ta. 432 00:21:55,190 --> 00:21:55,470 >> JASON Hirschhorn: Jah. 433 00:21:55,470 --> 00:21:56,500 Tõenäoliselt vaba ta. 434 00:21:56,500 --> 00:21:56,760 OK. 435 00:21:56,760 --> 00:21:59,850 Mida me teeme, kui me luua uus sõlm? 436 00:21:59,850 --> 00:22:02,260 Annie? 437 00:22:02,260 --> 00:22:04,780 >> Publik: Asetame number sõlme? 438 00:22:04,780 --> 00:22:05,140 >> JASON Hirschhorn: Täpselt. 439 00:22:05,140 --> 00:22:07,190 Panime number - me malloc ruumi. 440 00:22:07,190 --> 00:22:08,160 Ma jätan selle kõik ühe reana. 441 00:22:08,160 --> 00:22:08,720 Aga sul on õigus. 442 00:22:08,720 --> 00:22:10,305 Me malloc ruumi ja seejärel paneme number sisse 443 00:22:10,305 --> 00:22:12,585 Me saame isegi määrata pointer osa tühjaks. 444 00:22:12,585 --> 00:22:13,720 See on täpselt õige. 445 00:22:13,720 --> 00:22:17,400 Ja siis umbes pärast seda? 446 00:22:17,400 --> 00:22:18,490 Jälle see pilt laual. 447 00:22:18,490 --> 00:22:21,190 Mida me siis teeme? 448 00:22:21,190 --> 00:22:22,680 >> Publik: Me läheme läbi nimekirja. 449 00:22:22,680 --> 00:22:23,930 >> JASON Hirschhorn: Mine läbi nimekirja. 450 00:22:23,930 --> 00:22:30,620 451 00:22:30,620 --> 00:22:31,100 OK. 452 00:22:31,100 --> 00:22:34,280 Ja mida me kontrollida iga sõlme. 453 00:22:34,280 --> 00:22:35,955 Kurt, mida me vaadata võtta iga sõlme? 454 00:22:35,955 --> 00:22:41,640 >> Publik: Vaata, kas n väärtus et sõlm on suurem kui n väärtus 455 00:22:41,640 --> 00:22:43,070 meie sõlme. 456 00:22:43,070 --> 00:22:43,340 >> JASON Hirschhorn: OK. 457 00:22:43,340 --> 00:22:44,280 Ma lähen tegema - 458 00:22:44,280 --> 00:22:45,855 Jah, OK. 459 00:22:45,855 --> 00:22:48,160 Nii et see on n - 460 00:22:48,160 --> 00:22:59,040 Ma ütlen, kui väärtus on suurem kui see sõlm, siis mida me teeme? 461 00:22:59,040 --> 00:23:07,290 >> Publik: Noh, siis me lisada asi õige enne seda. 462 00:23:07,290 --> 00:23:07,970 >> JASON Hirschhorn: OK. 463 00:23:07,970 --> 00:23:09,410 Nii et kui see on suurem kui see, siis me tahame lisada. 464 00:23:09,410 --> 00:23:14,010 Aga me tahame lisada see vahetult enne sest me ka ei pea olema 465 00:23:14,010 --> 00:23:16,070 jälgida, siis mis oli enne. 466 00:23:16,070 --> 00:23:22,690 Nii sisestada enne. 467 00:23:22,690 --> 00:23:25,120 Nii et me ilmselt jäi midagi varem. 468 00:23:25,120 --> 00:23:27,770 Ilmselt tuleb hoida jälgida, mis toimub. 469 00:23:27,770 --> 00:23:28,460 Aga me jõuame tagasi sinna. 470 00:23:28,460 --> 00:23:30,160 Niisiis, milline väärtus on väiksem kui? 471 00:23:30,160 --> 00:23:38,030 472 00:23:38,030 --> 00:23:39,710 Kurt, mida me teeme, kui väärtus on väiksem? 473 00:23:39,710 --> 00:23:43,000 >> Publik: Siis muudkui läheb kui see on viimane. 474 00:23:43,000 --> 00:23:43,550 >> JASON Hirschhorn: mulle meeldib. 475 00:23:43,550 --> 00:23:44,800 Nii minna järgmisele sõlme. 476 00:23:44,800 --> 00:23:47,410 477 00:23:47,410 --> 00:23:48,930 Kui see pole viimane - 478 00:23:48,930 --> 00:23:51,100 me ilmselt kontrollides, et aastal tingimuste seisukorras. 479 00:23:51,100 --> 00:23:54,870 Aga jah, järgmine sõlme. 480 00:23:54,870 --> 00:23:58,680 Ja see muutub liiga väike, nii me liikuda siin. 481 00:23:58,680 --> 00:24:02,030 Aga kui - 482 00:24:02,030 --> 00:24:03,280 võib igaüks näha seda? 483 00:24:03,280 --> 00:24:07,230 484 00:24:07,230 --> 00:24:11,610 Kui me oleme võrdsed, mida me teeme? 485 00:24:11,610 --> 00:24:15,740 Kui raha me üritame lisada on võrdne selle sõlme väärtus? 486 00:24:15,740 --> 00:24:16,320 Jah? 487 00:24:16,320 --> 00:24:18,400 >> Publik: [kuuldamatu]. 488 00:24:18,400 --> 00:24:18,850 >> JASON Hirschhorn: Jah. 489 00:24:18,850 --> 00:24:19,290 Arvestades seda - 490 00:24:19,290 --> 00:24:20,090 Marcus on õige. 491 00:24:20,090 --> 00:24:21,330 Meil oleks võinud olla tehtud midagi erinevat. 492 00:24:21,330 --> 00:24:25,360 Kuid arvestades, et oleme loonud siin me peaks vaba ja siis tagasi. 493 00:24:25,360 --> 00:24:26,774 Oh boy. 494 00:24:26,774 --> 00:24:30,080 Kas see on parem? 495 00:24:30,080 --> 00:24:31,850 Kuidas nii? 496 00:24:31,850 --> 00:24:33,100 OK. 497 00:24:33,100 --> 00:24:35,360 498 00:24:35,360 --> 00:24:37,640 Vaba ja siis mida me tagasi, [kuuldamatu]? 499 00:24:37,640 --> 00:24:41,330 500 00:24:41,330 --> 00:24:44,110 OK. 501 00:24:44,110 --> 00:24:45,360 Kas me puudu midagi? 502 00:24:45,360 --> 00:24:53,500 503 00:24:53,500 --> 00:24:59,650 Nii et kui me jälgida eelneva sõlm? 504 00:24:59,650 --> 00:25:02,370 >> Publik: Ma arvan, et see läheks pärast luua uus sõlm. 505 00:25:02,370 --> 00:25:02,600 >> JASON Hirschhorn: OK. 506 00:25:02,600 --> 00:25:03,940 Nii alguses me ilmselt - 507 00:25:03,940 --> 00:25:07,175 Jah, me saame luua kursori uus sõlme, nagu eelmine sõlm pointer ja 508 00:25:07,175 --> 00:25:09,600 aktiivse sõlme pointer. 509 00:25:09,600 --> 00:25:12,640 Niisiis olgem lisada, et siin. 510 00:25:12,640 --> 00:25:15,610 511 00:25:15,610 --> 00:25:26,900 Loo praegune ja eelmine vihjeid sõlmed. 512 00:25:26,900 --> 00:25:28,955 Aga kui me kohandada neid vihjeid? 513 00:25:28,955 --> 00:25:30,205 Kui me seda teeme, et kood on? 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 >> Publik: - väärtus tingimustel? 517 00:25:35,170 --> 00:25:36,420 >> JASON Hirschhorn: Milline üks eriti? 518 00:25:36,420 --> 00:25:39,862 519 00:25:39,862 --> 00:25:40,720 >> Publik: Ma lihtsalt segaduses. 520 00:25:40,720 --> 00:25:44,200 Kui väärtus on suurem kui see sõlm, ei see tähendab, et sa tahad minna 521 00:25:44,200 --> 00:25:45,320 Järgmise sõlm? 522 00:25:45,320 --> 00:25:49,515 >> JASON Hirschhorn: Nii et kui meie raha on suurem väärtus see sõlm. 523 00:25:49,515 --> 00:25:52,130 >> Publik: Jah, siis sa tahad minna veelgi kaugemale line, eks? 524 00:25:52,130 --> 00:25:52,590 >> JASON Hirschhorn: Õigus. 525 00:25:52,590 --> 00:25:53,840 Nii et me ei sisesta see siia. 526 00:25:53,840 --> 00:25:58,430 527 00:25:58,430 --> 00:26:03,240 Kui väärtus on väiksem kui käesoleva sõlm, siis me minna järgmisele sõlme - või siis 528 00:26:03,240 --> 00:26:03,835 sisestada enne. 529 00:26:03,835 --> 00:26:05,966 >> Publik: Oota, mis see on sõlm ja mis on väärtus? 530 00:26:05,966 --> 00:26:08,510 531 00:26:08,510 --> 00:26:09,280 >> JASON Hirschhorn: Hea küsimus. 532 00:26:09,280 --> 00:26:13,260 Väärtus kohta seda funktsiooni definitsioon on see, mida me oleme andnud. 533 00:26:13,260 --> 00:26:16,910 Seega väärtus on number, et me antud. 534 00:26:16,910 --> 00:26:21,120 Nii et kui väärtus on väiksem kui selle sõlm, me vajame aega, et sisestada. 535 00:26:21,120 --> 00:26:24,575 Kui väärtus on suurem kui see sõlm, me minna järgmisele sõlme. 536 00:26:24,575 --> 00:26:26,790 Ja tagasi algse küsimuse, aga kus - 537 00:26:26,790 --> 00:26:29,060 >> Publik: Kui väärtus on suurem kui seda sõlme. 538 00:26:29,060 --> 00:26:30,310 >> JASON Hirschhorn: Ja nii Mida me siin teeme? 539 00:26:30,310 --> 00:26:36,790 540 00:26:36,790 --> 00:26:38,160 Sweet. 541 00:26:38,160 --> 00:26:38,860 See on õige. 542 00:26:38,860 --> 00:26:41,370 Ma lihtsalt kirjutada uuendada viiteid. 543 00:26:41,370 --> 00:26:44,010 Aga jah, koos praeguse siis oleks seda uuendada 544 00:26:44,010 --> 00:26:46,080 punkt järgmise üks. 545 00:26:46,080 --> 00:26:47,330 Midagi muud meil puuduvad? 546 00:26:47,330 --> 00:26:52,710 547 00:26:52,710 --> 00:26:54,940 Nii et ma lähen kirjuta see kood gedit. 548 00:26:54,940 --> 00:26:58,375 Ja kui ma seda teen, siis võib olla Paar minutit veel tööd kodeerimine 549 00:26:58,375 --> 00:28:19,240 Seda C. 550 00:28:19,240 --> 00:28:20,940 >> Nii et mul on sisend pseudokoodi. 551 00:28:20,940 --> 00:28:22,940 Kiire märkus enne kui me alustame. 552 00:28:22,940 --> 00:28:25,560 Me ei pruugi olla võimalik täiesti Lõpetame selle kõigis 553 00:28:25,560 --> 00:28:27,300 need kolm ülesannet. 554 00:28:27,300 --> 00:28:30,630 On õige lahendusi neile et ma e-kirju, et teid 555 00:28:30,630 --> 00:28:33,730 Pärast punkti ja see postitati CS50.net. 556 00:28:33,730 --> 00:28:35,640 Nii et ma ei soovita teil mine vaata lõigud. 557 00:28:35,640 --> 00:28:40,550 Ma kutsun teid, et proovida neid oma omada, ja siis kasuta tava 558 00:28:40,550 --> 00:28:41,760 probleeme oma vastuste kontrollimiseks. 559 00:28:41,760 --> 00:28:47,070 Need kõik on mõeldud tihedalt seotud ja järgima mis 560 00:28:47,070 --> 00:28:48,400 sa pead tegema, on probleem komplekti. 561 00:28:48,400 --> 00:28:53,820 Nii et ma kutsun teid harjutada seda oma ja siis kasuta koodi 562 00:28:53,820 --> 00:28:54,660 kontrollida oma vastuseid. 563 00:28:54,660 --> 00:28:57,060 Sest ma ei taha, et liikuda edasi hash lauad mingil hetkel osa. 564 00:28:57,060 --> 00:28:58,150 Nii et me ei pruugi saada läbi kõik. 565 00:28:58,150 --> 00:28:59,960 Aga me teeme nii palju saame nüüd. 566 00:28:59,960 --> 00:29:00,370 >> OK. 567 00:29:00,370 --> 00:29:01,960 Alustagem. 568 00:29:01,960 --> 00:29:04,770 Asam, kuidas me loome uue tipu? 569 00:29:04,770 --> 00:29:06,810 >> Publik: Sa konstrueerib *. 570 00:29:06,810 --> 00:29:09,640 >> JASON Hirschhorn: Nii et me on see siin. 571 00:29:09,640 --> 00:29:10,040 Oh, vabandust. 572 00:29:10,040 --> 00:29:13,530 Sa ütlesid struct *. 573 00:29:13,530 --> 00:29:17,260 >> Publik: Ja siis [? lahke?] sõlme või c sõlme. 574 00:29:17,260 --> 00:29:17,780 >> JASON Hirschhorn: OK. 575 00:29:17,780 --> 00:29:19,740 Ma kutsun seda new_node et saaksime jääda järjekindel. 576 00:29:19,740 --> 00:29:22,646 577 00:29:22,646 --> 00:29:33,180 >> Publik: Ja sa tahad, et seada see pea esimese sõlme. 578 00:29:33,180 --> 00:29:33,580 >> JASON Hirschhorn: OK. 579 00:29:33,580 --> 00:29:37,290 Nüüd see osutab - nii et see ei loonud uue sõlme veel. 580 00:29:37,290 --> 00:29:41,380 See on lihtsalt osutades esimese sõlme nimekirja. 581 00:29:41,380 --> 00:29:42,630 Kuidas luua uus sõlm? 582 00:29:42,630 --> 00:29:45,490 583 00:29:45,490 --> 00:29:48,070 Kui mul on vaja ruumi, et luua uus sõlm. 584 00:29:48,070 --> 00:29:49,230 Malloc. 585 00:29:49,230 --> 00:29:51,710 Ja kui suur? 586 00:29:51,710 --> 00:30:00,390 >> Publik: suurus struktuure. 587 00:30:00,390 --> 00:30:01,150 >> JASON Hirschhorn: suurus struct. 588 00:30:01,150 --> 00:30:02,400 Ja mis struct nimetatakse? 589 00:30:02,400 --> 00:30:09,670 590 00:30:09,670 --> 00:30:09,840 >> Publik: Sõlme? 591 00:30:09,840 --> 00:30:11,640 >> JASON Hirschhorn: sõlme. 592 00:30:11,640 --> 00:30:17,640 Nii malloc (sizeof (node)); annab meile ruumi. 593 00:30:17,640 --> 00:30:19,740 Ja on seda joont - 594 00:30:19,740 --> 00:30:21,740 üks asi on vale sellel liinil. 595 00:30:21,740 --> 00:30:24,430 Kas new_node kursor struct? 596 00:30:24,430 --> 00:30:25,650 See on üldnimetus. 597 00:30:25,650 --> 00:30:26,520 Mis see on - 598 00:30:26,520 --> 00:30:27,450 sõlme täpselt. 599 00:30:27,450 --> 00:30:29,340 See sõlm *. 600 00:30:29,340 --> 00:30:33,010 Ja mida me teha kohe pärast me malloc midagi, Asan? 601 00:30:33,010 --> 00:30:34,476 Mis on esimene asi, mida me saame teha? 602 00:30:34,476 --> 00:30:38,850 603 00:30:38,850 --> 00:30:40,320 Mis siis, kui see ei tööta? 604 00:30:40,320 --> 00:30:42,430 >> Publik: Oh, vaadake, kui see märgib, et sõlm? 605 00:30:42,430 --> 00:30:43,310 >> JASON Hirschhorn: Täpselt. 606 00:30:43,310 --> 00:30:46,750 Nii et kui sa new_node võrdne võrdsete null, mida me teeme? 607 00:30:46,750 --> 00:30:51,650 608 00:30:51,650 --> 00:30:54,820 See tagastab bool see funktsioon. 609 00:30:54,820 --> 00:30:57,760 Täpselt. 610 00:30:57,760 --> 00:30:58,450 Näeb hea välja. 611 00:30:58,450 --> 00:30:59,680 Midagi lisada sinna? 612 00:30:59,680 --> 00:31:00,670 Lisame asjad lõpus. 613 00:31:00,670 --> 00:31:03,160 Aga siiani tundub hea. 614 00:31:03,160 --> 00:31:06,170 Loo praegune ja eelmine suunanäitajaks. 615 00:31:06,170 --> 00:31:08,650 Michael, kuidas ma seda teen? 616 00:31:08,650 --> 00:31:12,810 >> Publik: Sa oleks pidanud teha sõlme *. 617 00:31:12,810 --> 00:31:21,800 618 00:31:21,800 --> 00:31:25,502 Sa pead tegema üks ei jaoks new_node kuid 619 00:31:25,502 --> 00:31:26,905 sõlmede meil juba on. 620 00:31:26,905 --> 00:31:27,230 >> JASON Hirschhorn: OK. 621 00:31:27,230 --> 00:31:29,255 Nii aktiivse sõlme me oleme. 622 00:31:29,255 --> 00:31:30,505 Ma helistan, et Val. 623 00:31:30,505 --> 00:31:39,650 624 00:31:39,650 --> 00:31:39,770 Hea küll. 625 00:31:39,770 --> 00:31:41,620 Oleme otsustanud me tahame hoida kaks, sest meil on vaja teada, 626 00:31:41,620 --> 00:31:42,870 mis enne seda. 627 00:31:42,870 --> 00:31:45,770 628 00:31:45,770 --> 00:31:47,020 Mida nad saavad initsialiseerida? 629 00:31:47,020 --> 00:31:49,874 630 00:31:49,874 --> 00:31:54,180 >> Publik: nende väärtus meie nimekirjas. 631 00:31:54,180 --> 00:31:58,090 >> JASON Hirschhorn: Mis on Esimene asi, mida meie nimekirjas? 632 00:31:58,090 --> 00:32:04,050 Või kuidas me teame, kus Alguses meie nimekiri on? 633 00:32:04,050 --> 00:32:08,015 >> Publik: Kas pole möödas arvesse funktsioon? 634 00:32:08,015 --> 00:32:08,466 >> JASON Hirschhorn: Õigus. 635 00:32:08,466 --> 00:32:09,716 See oli möödunud aastal siin. 636 00:32:09,716 --> 00:32:15,910 637 00:32:15,910 --> 00:32:18,980 Nii et kui see on vastu võetud, funktsioon, alustada nimekirja, mida me 638 00:32:18,980 --> 00:32:21,270 kehtestatud praegune võrdne? 639 00:32:21,270 --> 00:32:22,110 >> Publik: List. 640 00:32:22,110 --> 00:32:22,900 >> JASON Hirschhorn: List. 641 00:32:22,900 --> 00:32:24,090 See on täpselt õige. 642 00:32:24,090 --> 00:32:26,290 Nüüd on aadress algusest meie nimekirjas. 643 00:32:26,290 --> 00:32:28,450 Ja mis eelmine? 644 00:32:28,450 --> 00:32:31,920 >> Publik: List miinus üks? 645 00:32:31,920 --> 00:32:32,690 >> JASON Hirschhorn: Ei midagi enne seda. 646 00:32:32,690 --> 00:32:34,580 Mida me saame teha, et tähenda midagi? 647 00:32:34,580 --> 00:32:35,050 >> Publik: Null. 648 00:32:35,050 --> 00:32:35,450 >> JASON Hirschhorn: Jah. 649 00:32:35,450 --> 00:32:37,950 See kõlab nagu hea mõte. 650 00:32:37,950 --> 00:32:38,360 Perfect. 651 00:32:38,360 --> 00:32:39,630 Aitäh. 652 00:32:39,630 --> 00:32:42,850 Läbida nimekirja. 653 00:32:42,850 --> 00:32:45,490 Constantine, kui kaua me läbida nimekirja? 654 00:32:45,490 --> 00:32:49,010 >> Publik: kuni jõuame null. 655 00:32:49,010 --> 00:32:49,390 >> JASON Hirschhorn: OK. 656 00:32:49,390 --> 00:32:50,430 Niisiis, kui selle jaoks silmus. 657 00:32:50,430 --> 00:32:52,200 Mida me teeme? 658 00:32:52,200 --> 00:32:53,320 >> Publik: Võib-olla loop? 659 00:32:53,320 --> 00:32:53,910 >> JASON Hirschhorn: Teeme silmus. 660 00:32:53,910 --> 00:32:55,870 OK. 661 00:32:55,870 --> 00:33:02,465 >> Publik: Ja me ütleme - 662 00:33:02,465 --> 00:33:09,764 663 00:33:09,764 --> 00:33:13,390 kuni praegune pointer ei ole võrdne null. 664 00:33:13,390 --> 00:33:19,160 >> JASON Hirschhorn: Nii et kui me teame, tingimus, kuidas me saame kirjutada loop 665 00:33:19,160 --> 00:33:21,740 põhineb off see tingimus. 666 00:33:21,740 --> 00:33:24,380 Milline loop me peaksime kasutama? 667 00:33:24,380 --> 00:33:25,260 >> Publik: Kuigi. 668 00:33:25,260 --> 00:33:25,590 >> JASON Hirschhorn: Jah. 669 00:33:25,590 --> 00:33:27,130 See on mõttekam põhineb off, mis sa ütlesid. 670 00:33:27,130 --> 00:33:29,430 Kui me tahame minna me seda teeks lihtsalt tean, et asi, oleks 671 00:33:29,430 --> 00:33:31,680 mõtet teha samas silmus. 672 00:33:31,680 --> 00:33:39,880 Kuigi praegune ei võrdu null, kui väärtus on väiksem kui käesoleva sõlme. 673 00:33:39,880 --> 00:33:41,650 Akshar, anna mulle seda joont. 674 00:33:41,650 --> 00:33:48,810 675 00:33:48,810 --> 00:33:56,955 >> Publik: Kui praegused-> n n väiksem väärtus. 676 00:33:56,955 --> 00:34:00,170 677 00:34:00,170 --> 00:34:03,260 Või ei pööra seda. 678 00:34:03,260 --> 00:34:06,140 Lülitage et sulg. 679 00:34:06,140 --> 00:34:06,620 >> JASON Hirschhorn: Vabandust. 680 00:34:06,620 --> 00:34:08,760 >> Publik: Muuda sulg. 681 00:34:08,760 --> 00:34:10,914 >> JASON Hirschhorn: Nii et kui see on suurem väärtus. 682 00:34:10,914 --> 00:34:18,719 683 00:34:18,719 --> 00:34:22,120 Sest see tekitab segadust comment eespool, ma teen seda. 684 00:34:22,120 --> 00:34:22,480 Aga jah. 685 00:34:22,480 --> 00:34:25,125 Kui meie väärtus on väiksem kui selle sõlme, mida me teeme? 686 00:34:25,125 --> 00:34:25,540 Oh. 687 00:34:25,540 --> 00:34:26,710 Mul on see siin. 688 00:34:26,710 --> 00:34:27,960 Sisesta enne. 689 00:34:27,960 --> 00:34:32,080 690 00:34:32,080 --> 00:34:32,370 OK. 691 00:34:32,370 --> 00:34:33,933 Kuidas me seda teeme? 692 00:34:33,933 --> 00:34:34,900 >> Publik: Kas see on ikka minuga? 693 00:34:34,900 --> 00:34:36,150 >> JASON Hirschhorn: Jah. 694 00:34:36,150 --> 00:34:38,520 695 00:34:38,520 --> 00:34:39,770 >> Ideid: - 696 00:34:39,770 --> 00:34:42,909 697 00:34:42,909 --> 00:34:44,159 new_node-> kõrval. 698 00:34:44,159 --> 00:34:46,770 699 00:34:46,770 --> 00:34:50,163 >> JASON Hirschhorn: Mis siis et läheb võrdsed? 700 00:34:50,163 --> 00:34:52,070 >> Publik: See läheb võrdne praegune. 701 00:34:52,070 --> 00:34:53,889 >> JASON Hirschhorn: Täpselt. 702 00:34:53,889 --> 00:34:55,730 Ja teine ​​- 703 00:34:55,730 --> 00:34:56,730 Mis meil veel on vaja uuendada? 704 00:34:56,730 --> 00:34:59,982 >> Publik: Kontrollige, kas viimase võrdub null. 705 00:34:59,982 --> 00:35:01,870 >> JASON Hirschhorn: kui eelmine - 706 00:35:01,870 --> 00:35:03,730 nii et kui eelmine võrdub null. 707 00:35:03,730 --> 00:35:05,990 >> Publik: See tähendab, et see saab saada pea. 708 00:35:05,990 --> 00:35:06,780 >> JASON Hirschhorn: See tähendab see on muutunud pea. 709 00:35:06,780 --> 00:35:07,620 Niisiis, mida me teeme? 710 00:35:07,620 --> 00:35:12,510 >> Publik: Teeme head võrdub new_node. 711 00:35:12,510 --> 00:35:16,690 >> JASON Hirschhorn: Head võrdub new_node. 712 00:35:16,690 --> 00:35:20,540 Ja miks pea siin ei loetle? 713 00:35:20,540 --> 00:35:24,940 >> Publik: Sest pea on ülemaailmne muutuja, mis on lähtepunkt. 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 OK. 717 00:35:34,170 --> 00:35:36,150 Ja - 718 00:35:36,150 --> 00:35:53,796 >> Publik: Siis sa muidu eelmine-> Järgmise võrdub new_node. 719 00:35:53,796 --> 00:35:55,080 Ja siis tagasi tõsi. 720 00:35:55,080 --> 00:35:59,560 721 00:35:59,560 --> 00:36:02,700 >> JASON Hirschhorn: Kust seadsime new_node end? 722 00:36:02,700 --> 00:36:04,850 >> Publik: oleksin - 723 00:36:04,850 --> 00:36:06,180 Ma seda alguses. 724 00:36:06,180 --> 00:36:07,430 >> JASON Hirschhorn: Mis liin? 725 00:36:07,430 --> 00:36:10,000 726 00:36:10,000 --> 00:36:12,598 >> Publik: Pärast kui avaldus kontrollimine, kui see on teada. 727 00:36:12,598 --> 00:36:13,057 >> JASON Hirschhorn: Right here? 728 00:36:13,057 --> 00:36:18,335 >> Publik: Teeksin new_node-> n võrdub raha. 729 00:36:18,335 --> 00:36:19,585 >> JASON Hirschhorn: Kõlab hästi. 730 00:36:19,585 --> 00:36:21,740 731 00:36:21,740 --> 00:36:25,090 Ilmselt on mõistlik - me ei pead teadma, mida nimekirjas me oleme 732 00:36:25,090 --> 00:36:26,280 sest me oleme ainult tegelevad ühe nimekirja. 733 00:36:26,280 --> 00:36:29,560 Nii parem funktsioon deklaratsioon see on lihtsalt vabaneda käesoleva 734 00:36:29,560 --> 00:36:34,360 täielikult ja lihtsalt sisestada väärtuse pea. 735 00:36:34,360 --> 00:36:35,930 Me ei peagi teadma mida nimekirjas oleme sees 736 00:36:35,930 --> 00:36:39,140 Aga ma hoida seda praegu ja siis muutus see pärast ajakohastamist 737 00:36:39,140 --> 00:36:42,590 slaidid ja kood. 738 00:36:42,590 --> 00:36:44,980 Nii et tundub hea nüüd. 739 00:36:44,980 --> 00:36:46,560 Kui väärtus - kes saab teha seda joont? 740 00:36:46,560 --> 00:36:47,810 Kui - 741 00:36:47,810 --> 00:36:52,240 742 00:36:52,240 --> 00:36:53,840 Mida me teeme siin, Noah. 743 00:36:53,840 --> 00:36:57,890 744 00:36:57,890 --> 00:37:07,100 >> Publik: Kui väärtus on suurem kui Val-> n - 745 00:37:07,100 --> 00:37:16,830 746 00:37:16,830 --> 00:37:18,240 >> JASON Hirschhorn: Kuidas teha me minna järgmisele sõlm? 747 00:37:18,240 --> 00:37:27,760 748 00:37:27,760 --> 00:37:30,530 >> Publik: Val-> n võrdne new_node. 749 00:37:30,530 --> 00:37:37,630 750 00:37:37,630 --> 00:37:39,195 >> JASON Hirschhorn: Nii n on milline osa struct? 751 00:37:39,195 --> 00:37:43,065 752 00:37:43,065 --> 00:37:46,020 Täisarv. 753 00:37:46,020 --> 00:37:50,420 Ja new_node on viit tipu. 754 00:37:50,420 --> 00:37:51,880 Millisest Val peaksime uuendada? 755 00:37:51,880 --> 00:38:03,900 756 00:38:03,900 --> 00:38:05,400 Kui ei ole n, siis mida see teine ​​osa? 757 00:38:05,400 --> 00:38:21,680 758 00:38:21,680 --> 00:38:22,810 Noah, mis on teine ​​osa. 759 00:38:22,810 --> 00:38:23,570 >> Publik: Oh, järgmine. 760 00:38:23,570 --> 00:38:25,645 >> JASON Hirschhorn: Järgmine, täpselt. 761 00:38:25,645 --> 00:38:26,410 Täpselt. 762 00:38:26,410 --> 00:38:28,770 Järgmine on õige. 763 00:38:28,770 --> 00:38:31,540 Ja mis meil veel vaja on uuendada, Noah? 764 00:38:31,540 --> 00:38:32,840 >> Publik: suunanäitajaks. 765 00:38:32,840 --> 00:38:34,840 >> JASON Hirschhorn: So me ajakohastada praegust. 766 00:38:34,840 --> 00:38:36,090 >> Publik: Eelmised-> kõrval. 767 00:38:36,090 --> 00:38:48,160 768 00:38:48,160 --> 00:38:49,410 >> JASON Hirschhorn: Jah. 769 00:38:49,410 --> 00:38:57,465 770 00:38:57,465 --> 00:38:58,370 OK, me pausi. 771 00:38:58,370 --> 00:39:02,200 Kes saab meid siin aidata? 772 00:39:02,200 --> 00:39:03,385 Manu, mida me peaksime tegema? 773 00:39:03,385 --> 00:39:05,615 >> Publik: Sul seada see võrdub Val-> kõrval. 774 00:39:05,615 --> 00:39:09,110 775 00:39:09,110 --> 00:39:11,630 Aga seda, et enne eelmise rea. 776 00:39:11,630 --> 00:39:12,880 >> JASON Hirschhorn: OK. 777 00:39:12,880 --> 00:39:16,590 778 00:39:16,590 --> 00:39:18,260 Midagi veel? 779 00:39:18,260 --> 00:39:19,170 Akshar. 780 00:39:19,170 --> 00:39:22,680 >> Publik: ma ei arva, et oled tähendas, et muuta Val-> Next. 781 00:39:22,680 --> 00:39:29,270 Ma arvan, et sa oled selleks loodud Val võrdsete Val-> kõrval minna järgmisele sõlme. 782 00:39:29,270 --> 00:39:30,500 >> JASON Hirschhorn: Vabandust, kus? 783 00:39:30,500 --> 00:39:32,680 On mida joon? 784 00:39:32,680 --> 00:39:33,420 See rida? 785 00:39:33,420 --> 00:39:33,750 >> Publik: Jah. 786 00:39:33,750 --> 00:39:35,745 Tee Val võrdub Val-> kõrval. 787 00:39:35,745 --> 00:39:39,690 788 00:39:39,690 --> 00:39:43,360 >> JASON Hirschhorn: Nii et õige sest praegune on 789 00:39:43,360 --> 00:39:45,220 kursor sõlme. 790 00:39:45,220 --> 00:39:48,550 Ja me tahame seda juhtida järgmisele sõlm, mis su praegu 791 00:39:48,550 --> 00:39:49,930 osutas. 792 00:39:49,930 --> 00:39:54,410 Val ise on järgmine. 793 00:39:54,410 --> 00:39:58,620 Aga kui me uuendada curr.next oleme oleks ajakohastamine tegelik märkus 794 00:39:58,620 --> 00:40:01,430 ise, mitte siis, kui see pointer oli suunatud. 795 00:40:01,430 --> 00:40:02,680 Aga see rida, kuigi. 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 >> Publik: Eelmised-> järgmine võrdub Val. 799 00:40:09,590 --> 00:40:12,500 800 00:40:12,500 --> 00:40:19,440 >> JASON Hirschhorn: Nii et taas, kui eelmine on kursor sõlme, eel-> kõrval on 801 00:40:19,440 --> 00:40:23,020 tegelik pointer sõlme. 802 00:40:23,020 --> 00:40:27,190 Nii et see oleks ajakohastamine kursor sõlme Val. 803 00:40:27,190 --> 00:40:28,570 Me ei taha, et ajakohastada kursor sõlme. 804 00:40:28,570 --> 00:40:30,570 Me tahame, et uuendada eelmine. 805 00:40:30,570 --> 00:40:31,850 Niisiis, kuidas me seda teeme? 806 00:40:31,850 --> 00:40:34,250 >> Publik: See oleks lihtsalt eelmine. 807 00:40:34,250 --> 00:40:34,565 >> JASON Hirschhorn: Õigus. 808 00:40:34,565 --> 00:40:35,560 Eelmised on viit tipu. 809 00:40:35,560 --> 00:40:38,750 Nüüd oleme selle muutmist uus kursor sõlme. 810 00:40:38,750 --> 00:40:40,830 OK Siirtykäämme alla. 811 00:40:40,830 --> 00:40:41,940 Lõpuks see viimane tingimus. 812 00:40:41,940 --> 00:40:44,896 Jeff, mida me teeme siin? 813 00:40:44,896 --> 00:40:47,515 >> Publik: Kui raha on võrdne Val-> n. 814 00:40:47,515 --> 00:40:51,030 815 00:40:51,030 --> 00:40:51,300 >> JASON Hirschhorn: Vabandust. 816 00:40:51,300 --> 00:40:52,372 Oh mu jumal. 817 00:40:52,372 --> 00:40:54,330 Mida? 818 00:40:54,330 --> 00:40:55,580 Väärtus == Val-> n. 819 00:40:55,580 --> 00:41:01,050 820 00:41:01,050 --> 00:41:02,300 Mida me siis teeme? 821 00:41:02,300 --> 00:41:04,760 822 00:41:04,760 --> 00:41:10,950 >> Publik: Sa tasuta meie new_node, ja siis sa tagasi false. 823 00:41:10,950 --> 00:41:21,410 824 00:41:21,410 --> 00:41:23,460 >> JASON Hirschhorn: See on see, mida me oleme kirjutanud siiani. 825 00:41:23,460 --> 00:41:25,710 Kas kellelgi on midagi lisada enne teeme? 826 00:41:25,710 --> 00:41:35,460 827 00:41:35,460 --> 00:41:35,710 OK. 828 00:41:35,710 --> 00:41:36,960 Proovime seda. 829 00:41:36,960 --> 00:41:44,180 830 00:41:44,180 --> 00:41:46,110 Kontroll võib jõuda lõpuni mitte-tühine funktsioon. 831 00:41:46,110 --> 00:41:48,310 Avi, mis toimub? 832 00:41:48,310 --> 00:41:51,380 >> Publik: sa peaksid panna tagastamine tõsi väljaspool samas loop? 833 00:41:51,380 --> 00:41:53,900 834 00:41:53,900 --> 00:41:54,400 >> JASON Hirschhorn: Ma ei tea. 835 00:41:54,400 --> 00:41:54,780 Kas sa tahad, et? 836 00:41:54,780 --> 00:41:55,520 >> Publik: Vahet pole. 837 00:41:55,520 --> 00:41:56,350 Ei. 838 00:41:56,350 --> 00:41:57,180 >> JASON Hirschhorn: Akshar? 839 00:41:57,180 --> 00:41:59,460 >> Publik: Ma arvan, et sa mõtlesid, et panna tagasi false lõpus 840 00:41:59,460 --> 00:42:02,230 on samas silmus. 841 00:42:02,230 --> 00:42:03,270 >> JASON Hirschhorn: Nii et kui sa tahad seda teha? 842 00:42:03,270 --> 00:42:05,270 >> Publik: Nagu väljaspool samas silmus. 843 00:42:05,270 --> 00:42:08,800 Nii et kui te väljute samas loop et vahendid , kui olete jõudnud lõpuks ja 844 00:42:08,800 --> 00:42:09,980 pole midagi juhtunud. 845 00:42:09,980 --> 00:42:10,410 >> JASON Hirschhorn: OK. 846 00:42:10,410 --> 00:42:12,340 Mida me siin teeme? 847 00:42:12,340 --> 00:42:13,702 >> Publik: Sa tagasi false seal hästi. 848 00:42:13,702 --> 00:42:15,040 >> JASON Hirschhorn: Oh, me seda mõlemas kohas? 849 00:42:15,040 --> 00:42:15,650 >> Publik: Jah. 850 00:42:15,650 --> 00:42:16,900 >> JASON Hirschhorn: OK. 851 00:42:16,900 --> 00:42:24,840 852 00:42:24,840 --> 00:42:26,160 Kas me peaksime minema? 853 00:42:26,160 --> 00:42:26,980 Oh mu jumal. 854 00:42:26,980 --> 00:42:27,290 Vabandust. 855 00:42:27,290 --> 00:42:28,480 Vabandan ekraanil. 856 00:42:28,480 --> 00:42:30,530 See on omamoodi hullumas meist. 857 00:42:30,530 --> 00:42:31,520 Nii et valida valik. 858 00:42:31,520 --> 00:42:35,260 Zero kohta kood, sulgub programm. 859 00:42:35,260 --> 00:42:36,700 Üks lisab midagi. 860 00:42:36,700 --> 00:42:37,990 Lisame kolm. 861 00:42:37,990 --> 00:42:42,900 862 00:42:42,900 --> 00:42:45,380 Insert ei õnnestunud. 863 00:42:45,380 --> 00:42:46,500 Ma lähen välja printida. 864 00:42:46,500 --> 00:42:48,050 Mul ei ole midagi. 865 00:42:48,050 --> 00:42:48,450 OK. 866 00:42:48,450 --> 00:42:50,250 Võib-olla see oli lihtsalt õnnelik juhus. 867 00:42:50,250 --> 00:42:52,810 Pange üks. 868 00:42:52,810 --> 00:42:55,770 Ei õnnestunud. 869 00:42:55,770 --> 00:42:57,470 OK. 870 00:42:57,470 --> 00:43:02,400 Olgem joosta GDB tõesti kiiresti vaata, mis toimub. 871 00:43:02,400 --> 00:43:06,055 >> Mäleta gdb. / Nime oma Programmi saab meid GDB. 872 00:43:06,055 --> 00:43:07,610 On seda palju, et käepide? 873 00:43:07,610 --> 00:43:08,560 Vilgub? 874 00:43:08,560 --> 00:43:10,400 Tõenäoliselt. 875 00:43:10,400 --> 00:43:12,760 Sule silmad ja võtta mõned sügavad hingetõmmetega kui te väsi 876 00:43:12,760 --> 00:43:13,580 vaadates seda. 877 00:43:13,580 --> 00:43:14,200 Olen GDB. 878 00:43:14,200 --> 00:43:15,830 Mis on esimene asi, mida ma teha GDB? 879 00:43:15,830 --> 00:43:17,050 Me peame välja mõtlema, mis siin toimub. 880 00:43:17,050 --> 00:43:17,310 Vaatame. 881 00:43:17,310 --> 00:43:21,650 Meil on kuus minutit näitaja saada, mis toimub. 882 00:43:21,650 --> 00:43:22,900 Break peamine. 883 00:43:22,900 --> 00:43:25,950 884 00:43:25,950 --> 00:43:28,130 Ja mis ma siis teen? 885 00:43:28,130 --> 00:43:29,180 Carlos? 886 00:43:29,180 --> 00:43:31,060 Käivita. 887 00:43:31,060 --> 00:43:32,250 OK. 888 00:43:32,250 --> 00:43:34,160 Valime valik. 889 00:43:34,160 --> 00:43:36,330 Ja mida see N teha? 890 00:43:36,330 --> 00:43:38,480 Next. 891 00:43:38,480 --> 00:43:38,950 Jah. 892 00:43:38,950 --> 00:43:39,740 >> Publik: Kas sa ei maininud - 893 00:43:39,740 --> 00:43:45,230 sa ei öelnud, et pea oli algväärtustatud null alguses. 894 00:43:45,230 --> 00:43:47,140 Aga ma arvasin, et sa ütlesid, et see oli OK. 895 00:43:47,140 --> 00:43:50,040 896 00:43:50,040 --> 00:43:52,640 >> JASON Hirschhorn: Lähme - vaatame GDB ja siis lähen tagasi. 897 00:43:52,640 --> 00:43:54,910 Aga see kõlab nagu teil on juba mõned mõtted selle kohta, mis toimub. 898 00:43:54,910 --> 00:43:58,340 Nii et me tahame lisada midagi. 899 00:43:58,340 --> 00:43:59,390 OK. 900 00:43:59,390 --> 00:44:00,150 Oleme sisestada. 901 00:44:00,150 --> 00:44:00,770 Palun sisestage int. 902 00:44:00,770 --> 00:44:01,990 Me sisestada kolm. 903 00:44:01,990 --> 00:44:03,000 Ja siis ma olen sellel liinil. 904 00:44:03,000 --> 00:44:07,030 Kuidas minna alustada silumine insert tuntud funktsioon? 905 00:44:07,030 --> 00:44:08,280 Oh mu jumal. 906 00:44:08,280 --> 00:44:10,990 907 00:44:10,990 --> 00:44:12,240 Seda on palju. 908 00:44:12,240 --> 00:44:14,372 909 00:44:14,372 --> 00:44:16,445 Kas see hullumas palju? 910 00:44:16,445 --> 00:44:19,696 911 00:44:19,696 --> 00:44:21,680 >> Publik: Oh, see on surnud. 912 00:44:21,680 --> 00:44:22,930 >> JASON Hirschhorn: Ma tõmbas ta välja. 913 00:44:22,930 --> 00:44:27,364 914 00:44:27,364 --> 00:44:28,310 OK. 915 00:44:28,310 --> 00:44:29,560 >> Publik: Võib-olla see on teine ​​ots traati. 916 00:44:29,560 --> 00:44:37,000 917 00:44:37,000 --> 00:44:39,470 >> JASON Hirschhorn: Wow. 918 00:44:39,470 --> 00:44:42,330 Nii et alumine rida - 919 00:44:42,330 --> 00:44:43,470 mida sa ütlesid? 920 00:44:43,470 --> 00:44:46,040 >> Publik: ütlesin iroonia tehniliste raskusi sellesse klassi. 921 00:44:46,040 --> 00:44:46,410 >> JASON Hirschhorn: Ma tean. 922 00:44:46,410 --> 00:44:48,660 Kui mul oleks vaid kontrolli üle, et osa. 923 00:44:48,660 --> 00:44:49,910 [Kuuldamatu] 924 00:44:49,910 --> 00:44:54,430 925 00:44:54,430 --> 00:44:55,400 See kõlab hästi. 926 00:44:55,400 --> 00:44:58,680 Miks sa ei poisid hakata mõtlema mida me oleks teinud valesti, 927 00:44:58,680 --> 00:45:01,140 ja me tagasi 90 sekundit. 928 00:45:01,140 --> 00:46:18,160 929 00:46:18,160 --> 00:46:23,010 >> Avica, ma küsin teilt, kuidas edasi minna sees insert_node siluda ta. 930 00:46:23,010 --> 00:46:28,940 931 00:46:28,940 --> 00:46:31,460 Nii et see on koht, kus me viimati pooleli jäi. 932 00:46:31,460 --> 00:46:35,110 Kuidas ma sisse minna insert_node, Avica, uurida, mis toimub? 933 00:46:35,110 --> 00:46:36,360 Mida GDB käsk? 934 00:46:36,360 --> 00:46:41,050 935 00:46:41,050 --> 00:46:42,390 Break ei võtaks mind seest. 936 00:46:42,390 --> 00:46:46,200 937 00:46:46,200 --> 00:46:47,130 Kas Marquise tead? 938 00:46:47,130 --> 00:46:48,240 >> Publik: Mis on? 939 00:46:48,240 --> 00:46:51,780 >> JASON Hirschhorn: Mis GDB käsk Ma kasutan minna sees seda funktsiooni? 940 00:46:51,780 --> 00:46:52,070 >> Publik: samm? 941 00:46:52,070 --> 00:46:55,140 >> JASON Hirschhorn: Samm kaudu S. See viib mu sees. 942 00:46:55,140 --> 00:46:55,476 OK. 943 00:46:55,476 --> 00:46:58,040 New_node mallocing ruumi. 944 00:46:58,040 --> 00:46:59,120 See kõik tundub tema läheb. 945 00:46:59,120 --> 00:47:00,370 Uurime new_node. 946 00:47:00,370 --> 00:47:03,270 947 00:47:03,270 --> 00:47:05,410 Ta sai mõned mälu aadressi. 948 00:47:05,410 --> 00:47:07,440 Vaatame - 949 00:47:07,440 --> 00:47:08,500 see on kõik õige. 950 00:47:08,500 --> 00:47:12,220 Seega kõik siin tundub töötavad korralikult. 951 00:47:12,220 --> 00:47:14,530 >> Publik: Mis vahet vahel P ja ekraan? 952 00:47:14,530 --> 00:47:16,160 >> JASON Hirschhorn: P seisab kirjas. 953 00:47:16,160 --> 00:47:19,310 Ja nii sa küsid mis Vahe selle ja see? 954 00:47:19,310 --> 00:47:22,330 Sel juhul midagi. 955 00:47:22,330 --> 00:47:26,960 Aga üldiselt on mõningaid erinevusi. 956 00:47:26,960 --> 00:47:28,220 Ja siis tuleb vaadata GDB kasutusjuhend. 957 00:47:28,220 --> 00:47:29,560 Kuid sel juhul midagi. 958 00:47:29,560 --> 00:47:31,460 Me kipume kasutada print, kuigi, sest meil ei ole vaja teha palju rohkem, kui 959 00:47:31,460 --> 00:47:33,960 printida ühe väärtuse. 960 00:47:33,960 --> 00:47:34,640 >> OK. 961 00:47:34,640 --> 00:47:40,300 Seega on meil on line 80 meie kood, millega sõlme * Val võrdne nimekirja. 962 00:47:40,300 --> 00:47:42,500 Olgem välja printida Val. 963 00:47:42,500 --> 00:47:45,260 964 00:47:45,260 --> 00:47:46,840 See võrdub nimekirja. 965 00:47:46,840 --> 00:47:48,850 Sweet. 966 00:47:48,850 --> 00:47:49,340 Oota. 967 00:47:49,340 --> 00:47:50,590 See võrdub midagi. 968 00:47:50,590 --> 00:47:53,680 969 00:47:53,680 --> 00:47:56,190 See ei tundu õige. 970 00:47:56,190 --> 00:47:56,840 Niimoodi. 971 00:47:56,840 --> 00:47:59,470 See on sellepärast, GDB, parem, kui see joon oled see 972 00:47:59,470 --> 00:48:00,330 ei ole täidetud veel. 973 00:48:00,330 --> 00:48:03,100 Nii et sa pead tegelikult tüüp kõrval täita rida 974 00:48:03,100 --> 00:48:05,230 enne näeme selle tulemusi. 975 00:48:05,230 --> 00:48:06,680 Nii et siin me oleme. 976 00:48:06,680 --> 00:48:09,490 Me lihtsalt täide seda joont, eelmine võrdub null. 977 00:48:09,490 --> 00:48:13,590 Nii et taas, kui me printida eelmine me ei näe midagi imelikku. 978 00:48:13,590 --> 00:48:18,680 Aga kui me tegelikult täita, et line, siis näeme 979 00:48:18,680 --> 00:48:20,380 et see liin töötas. 980 00:48:20,380 --> 00:48:21,060 >> Nii et meil on Val. 981 00:48:21,060 --> 00:48:23,180 Need on nii hea. 982 00:48:23,180 --> 00:48:24,010 Eks ole? 983 00:48:24,010 --> 00:48:28,130 Nüüd oleme sellel joonel siin. 984 00:48:28,130 --> 00:48:29,310 Kuigi Val ei võrdu null. 985 00:48:29,310 --> 00:48:31,110 Noh, mis teeb Val võrdne? 986 00:48:31,110 --> 00:48:32,450 Me nägime seda korranud null. 987 00:48:32,450 --> 00:48:33,210 Me trükitud välja. 988 00:48:33,210 --> 00:48:35,110 Ma välja trükkida uuesti. 989 00:48:35,110 --> 00:48:36,720 Nii on, et kuigi loop läheb täide? 990 00:48:36,720 --> 00:48:37,270 >> Publik: Ei. 991 00:48:37,270 --> 00:48:39,790 >> JASON Hirschhorn: Nii et kui ma kirjutada, et line, näed me hüppas kogu tee 992 00:48:39,790 --> 00:48:41,390 alaserva, tagastab false. 993 00:48:41,390 --> 00:48:44,520 Ja siis me lähme tagasi false ja minna tagasi meie programmi ja 994 00:48:44,520 --> 00:48:48,020 lõpuks välja printida, nagu me nägime, insert ei õnnestunud. 995 00:48:48,020 --> 00:48:51,010 Niisiis, keegi on mingeid ideid selle kohta, mida meil on vaja teha, et seda parandada? 996 00:48:51,010 --> 00:48:54,200 997 00:48:54,200 --> 00:48:57,570 Ma ootama kuni ma näen paar käed tõusevad. 998 00:48:57,570 --> 00:48:58,830 Me ei saa täita seda. 999 00:48:58,830 --> 00:49:01,660 Pidage meeles, et see oli esimene asi, mida me tegime. 1000 00:49:01,660 --> 00:49:02,430 Ma ei kavatse seda teha paari. 1001 00:49:02,430 --> 00:49:03,670 Ma teen mõned. 1002 00:49:03,670 --> 00:49:04,830 Kuna paar tähendab kahte. 1003 00:49:04,830 --> 00:49:07,620 Ma ootan rohkem kui kaks. 1004 00:49:07,620 --> 00:49:10,690 >> Esimene sisestamise Val, vaikimisi võrdub null. 1005 00:49:10,690 --> 00:49:14,050 Ja see loop täidab üksnes kui Val pole null. 1006 00:49:14,050 --> 00:49:18,740 Niisiis, kuidas ma saan selle ümber? 1007 00:49:18,740 --> 00:49:19,990 Ma näen kolme kätte. 1008 00:49:19,990 --> 00:49:28,490 1009 00:49:28,490 --> 00:49:29,780 Ma ootan rohkem kui kolm. 1010 00:49:29,780 --> 00:49:33,460 1011 00:49:33,460 --> 00:49:35,940 Marcus, mida sa arvad? 1012 00:49:35,940 --> 00:49:37,730 >> Publik: Noh, kui teil on vaja täita rohkem kui üks kord, siis lihtsalt 1013 00:49:37,730 --> 00:49:39,948 muuda see do-kui ahela. 1014 00:49:39,948 --> 00:49:41,250 >> JASON Hirschhorn: OK. 1015 00:49:41,250 --> 00:49:44,240 Kas see lahendada meie probleem, kuigi? 1016 00:49:44,240 --> 00:49:47,750 >> Publik: Sel juhul ei ole, sest Asjaolu, et nimekiri on tühi. 1017 00:49:47,750 --> 00:49:52,150 Nii siis ilmselt lihtsalt vaja lisada kinnitus, et kui silmus väljapääsu 1018 00:49:52,150 --> 00:49:55,312 siis sa pead olema lõpus nimekirja, mille juures te 1019 00:49:55,312 --> 00:49:56,562 lihtsalt sisestage see. 1020 00:49:56,562 --> 00:49:58,920 1021 00:49:58,920 --> 00:49:59,680 >> JASON Hirschhorn: mulle meeldib. 1022 00:49:59,680 --> 00:50:00,500 See on loogiline. 1023 00:50:00,500 --> 00:50:03,390 Kui loop väljub - 1024 00:50:03,390 --> 00:50:04,800 kuna naasen vale siin. 1025 00:50:04,800 --> 00:50:08,220 Nii et kui silmus väljapääsu, siis me oleme nimekirja lõppu, või äkki 1026 00:50:08,220 --> 00:50:10,690 alustada nimekirja, kui seal on midagi, see, mis on sama kui lõpus. 1027 00:50:10,690 --> 00:50:12,770 Nüüd me tahame lisada midagi. 1028 00:50:12,770 --> 00:50:17,380 Niisiis, kuidas see kood vaata, Marcus? 1029 00:50:17,380 --> 00:50:21,600 >> Publik: Kui juba sai sõlme malloced, siis võiks lihtsalt öelda, 1030 00:50:21,600 --> 00:50:25,400 new_node-> järgmine võrdub null, sest see peab olema lõpus. 1031 00:50:25,400 --> 00:50:27,510 Või new_node-> järgmine võrdub null. 1032 00:50:27,510 --> 00:50:27,765 >> JASON Hirschhorn: OK. 1033 00:50:27,765 --> 00:50:28,190 Vabandust. 1034 00:50:28,190 --> 00:50:35,760 New_node-> järgmine võrdub null sest me oleme lõpuks. 1035 00:50:35,760 --> 00:50:36,460 See ei pane see sisse 1036 00:50:36,460 --> 00:50:37,710 Kuidas me paneme selle nimekirja? 1037 00:50:37,710 --> 00:50:46,130 1038 00:50:46,130 --> 00:50:46,460 Õige. 1039 00:50:46,460 --> 00:50:47,750 See on lihtsalt, millega see võrdne. 1040 00:50:47,750 --> 00:50:50,940 No kuidas me tegelikult pane see nimekiri? 1041 00:50:50,940 --> 00:50:54,170 Mis osutades nimekirja lõppu? 1042 00:50:54,170 --> 00:50:56,090 >> Publik: Head. 1043 00:50:56,090 --> 00:50:57,566 >> JASON Hirschhorn: Vabandust? 1044 00:50:57,566 --> 00:50:59,440 >> Publik: Head osutab Lisa lõpuks nimekirja. 1045 00:50:59,440 --> 00:51:01,480 >> JASON Hirschhorn: Kui seal on midagi, nimekiri, pea on suunaga 1046 00:51:01,480 --> 00:51:04,170 nimekirja lõppu. 1047 00:51:04,170 --> 00:51:06,920 Nii et ma töötan Esimene sisestamist. 1048 00:51:06,920 --> 00:51:09,810 Aga kui seal on paar asjad nimekirjas? 1049 00:51:09,810 --> 00:51:12,470 Kui me ei taha seada pea võrdne new_node. 1050 00:51:12,470 --> 00:51:13,790 Mida me tahame teha on? 1051 00:51:13,790 --> 00:51:15,610 Jah? 1052 00:51:15,610 --> 00:51:16,860 Arvatavasti eelmine. 1053 00:51:16,860 --> 00:51:23,560 1054 00:51:23,560 --> 00:51:24,810 Kas see toimib? 1055 00:51:24,810 --> 00:51:28,950 1056 00:51:28,950 --> 00:51:33,050 Tuletame meelde, et eelmine on lihtsalt kursor sõlme. 1057 00:51:33,050 --> 00:51:34,770 Ja eelmine on kohaliku muutuja. 1058 00:51:34,770 --> 00:51:38,080 Nii et see rida loob kohaliku muutuja, eelmine, mis on võrdne või 1059 00:51:38,080 --> 00:51:39,380 osutades sellele uus sõlm. 1060 00:51:39,380 --> 00:51:41,500 See ei ole tegelikult panna meie nimekirjas, kuigi. 1061 00:51:41,500 --> 00:51:44,330 Kuidas me paneme ta meie nimekirjas? 1062 00:51:44,330 --> 00:51:45,620 Akchar? 1063 00:51:45,620 --> 00:51:46,870 >> Publik: Ma arvan, et sa teha praeguse-> Next. 1064 00:51:46,870 --> 00:51:50,186 1065 00:51:50,186 --> 00:51:52,550 >> JASON Hirschhorn: OK. 1066 00:51:52,550 --> 00:51:54,010 Val-> kõrval. 1067 00:51:54,010 --> 00:51:58,768 Nii et taas, ainus põhjus, miks me oleme alla siin on, mida teeb praegune võrdne? 1068 00:51:58,768 --> 00:51:59,760 >> Publik: Vastus null. 1069 00:51:59,760 --> 00:52:01,790 >> JASON Hirschhorn: Ja mis juhtub, kui me teeme null-> järgmine? 1070 00:52:01,790 --> 00:52:02,810 Mida me saame? 1071 00:52:02,810 --> 00:52:04,060 Me saame killustatust süü. 1072 00:52:04,060 --> 00:52:06,600 1073 00:52:06,600 --> 00:52:08,880 >> Publik: Do Val võrdub null. 1074 00:52:08,880 --> 00:52:10,760 >> JASON Hirschhorn: See on sama asi nagu eelmine, aga kuna seal on 1075 00:52:10,760 --> 00:52:12,820 kohaliku muutuja me seame võrdub see uus sõlm. 1076 00:52:12,820 --> 00:52:16,680 1077 00:52:16,680 --> 00:52:20,920 Lähme tagasi meie pilt sisestades midagi. 1078 00:52:20,920 --> 00:52:25,500 Ütle, et me lisades lõpus nimekirja, nii et siin. 1079 00:52:25,500 --> 00:52:30,010 Meil on praegune pointer, mis on osutades tühjaks ja eelmises punktis 1080 00:52:30,010 --> 00:52:32,800 mis sihib 8. 1081 00:52:32,800 --> 00:52:35,330 Niisiis, mida me vajame, et ajakohastada, Avi? 1082 00:52:35,330 --> 00:52:36,680 >> Publik: Eelmine-> järgmine? 1083 00:52:36,680 --> 00:52:41,980 >> JASON Hirschhorn Eelmised-> kõrval on see, mida me tahame uuendada, sest see 1084 00:52:41,980 --> 00:52:44,960 tegelikult lisab selle lõpuks nimekirja. 1085 00:52:44,960 --> 00:52:47,220 Meil on veel üks viga, kuigi et me ei kavatse joosta. 1086 00:52:47,220 --> 00:52:50,090 Mis see on viga? 1087 00:52:50,090 --> 00:52:50,790 Jah? 1088 00:52:50,790 --> 00:52:53,860 >> Publik: See läheb tagasi vale sel juhul? 1089 00:52:53,860 --> 00:52:56,380 >> JASON Hirschhorn: Oh, ei ei läheb tagasi false. 1090 00:52:56,380 --> 00:52:57,430 Aga on veel üks viga. 1091 00:52:57,430 --> 00:52:58,930 Nii me vaja panna return true. 1092 00:52:58,930 --> 00:53:01,370 >> Publik: Kas eelmine ikka võrdsed null ülaosas nimekirja? 1093 00:53:01,370 --> 00:53:03,645 >> JASON Hirschhorn: Nii eelmine veel võrdub null alguses. 1094 00:53:03,645 --> 00:53:07,480 1095 00:53:07,480 --> 00:53:10,440 Niisiis, kuidas me sellega hakkama saame? 1096 00:53:10,440 --> 00:53:10,950 Jah? 1097 00:53:10,950 --> 00:53:15,280 >> Publik: Ma arvan, et sa saad teha check enne kui loop, kas see on 1098 00:53:15,280 --> 00:53:16,610 tühja nimekirja. 1099 00:53:16,610 --> 00:53:17,000 >> JASON Hirschhorn: OK. 1100 00:53:17,000 --> 00:53:17,710 Lähme siit. 1101 00:53:17,710 --> 00:53:18,530 Kas kontroll. 1102 00:53:18,530 --> 00:53:19,380 Kui - 1103 00:53:19,380 --> 00:53:20,770 >> Publik: Nii et kui pea võrdub võrdub null. 1104 00:53:20,770 --> 00:53:24,300 1105 00:53:24,300 --> 00:53:26,320 >> JASON Hirschhorn: Kui juht võrdub võrdub null - 1106 00:53:26,320 --> 00:53:27,790 mis sa meile öelda, kas see on tühi nimekirja. 1107 00:53:27,790 --> 00:53:31,090 >> Publik: Ja siis teha head võrdub uus. 1108 00:53:31,090 --> 00:53:34,740 >> JASON Hirschhorn: Head võrdub new_node? 1109 00:53:34,740 --> 00:53:35,730 Ja mis meil veel vaja teha? 1110 00:53:35,730 --> 00:53:37,020 >> Publik: Ja siis tagasi tõsi. 1111 00:53:37,020 --> 00:53:37,535 >> JASON Hirschhorn: Mitte päris. 1112 00:53:37,535 --> 00:53:38,785 Meil puuduvad üks samm. 1113 00:53:38,785 --> 00:53:41,590 1114 00:53:41,590 --> 00:53:43,710 >> Publik: New_node järgmine on juhtida tühjaks. 1115 00:53:43,710 --> 00:53:44,570 >> JASON Hirschhorn: Täpselt, Alden. 1116 00:53:44,570 --> 00:53:46,600 Ja siis me saame naasta tõsi. 1117 00:53:46,600 --> 00:53:47,560 OK. 1118 00:53:47,560 --> 00:53:51,630 Aga see on ikka hea mõte teha asju aasta lõpus nimekiri, eks? 1119 00:53:51,630 --> 00:53:51,950 Hea küll. 1120 00:53:51,950 --> 00:53:54,450 Me ikka võiks tegelikult saada Lisa lõpuks nimekirja. 1121 00:53:54,450 --> 00:53:57,870 Nii on see kood trahvi, kui me oleme loendi lõppu ja seal on mõned 1122 00:53:57,870 --> 00:53:59,120 asjad nimekirjas? 1123 00:53:59,120 --> 00:54:01,830 1124 00:54:01,830 --> 00:54:02,040 Eks ole? 1125 00:54:02,040 --> 00:54:03,540 Kuna meil on veel Marcus idee. 1126 00:54:03,540 --> 00:54:06,870 Võiksime väljumiseks loop sest me aasta lõpus nimekirja. 1127 00:54:06,870 --> 00:54:09,308 Nii et me ikka tahame seda koodi siia alla? 1128 00:54:09,308 --> 00:54:10,520 >> Publik: Jah. 1129 00:54:10,520 --> 00:54:11,000 >> JASON Hirschhorn: Jah. 1130 00:54:11,000 --> 00:54:14,190 Ja mida me vajame seda muuta? 1131 00:54:14,190 --> 00:54:15,440 True. 1132 00:54:15,440 --> 00:54:19,580 1133 00:54:19,580 --> 00:54:21,640 Kas see hea hea kõigile nii palju? 1134 00:54:21,640 --> 00:54:22,420 Keegi on - 1135 00:54:22,420 --> 00:54:23,480 Avi, sa pead midagi lisada? 1136 00:54:23,480 --> 00:54:23,920 >> Publik: Ei. 1137 00:54:23,920 --> 00:54:25,276 >> JASON Hirschhorn: OK. 1138 00:54:25,276 --> 00:54:27,010 Nii et me oleme teinud paar muutused. 1139 00:54:27,010 --> 00:54:29,540 Me oleme teinud seda kontrolli, enne kui me läks tühja nimekirja. 1140 00:54:29,540 --> 00:54:31,790 Nii oleme hoolitsenud tühja nimekirja. 1141 00:54:31,790 --> 00:54:35,500 Ja siin me hoolitses sisestamist millegi lõppu nimekirja. 1142 00:54:35,500 --> 00:54:38,930 Nii tundub, et see samas loop võtmine hoolt asjad vahel, 1143 00:54:38,930 --> 00:54:41,920 kusagil nimekiri kui On asju, mida nimekirjas. 1144 00:54:41,920 --> 00:54:42,280 >> OK. 1145 00:54:42,280 --> 00:54:44,310 Olgem käivitada see programm uuesti. 1146 00:54:44,310 --> 00:54:50,170 1147 00:54:50,170 --> 00:54:50,755 Ei õnnestunud. 1148 00:54:50,755 --> 00:54:52,190 >> Publik: Sa ei teinud seda. 1149 00:54:52,190 --> 00:54:53,940 >> JASON Hirschhorn: Oh, Ma ei teinud seda. 1150 00:54:53,940 --> 00:54:56,250 Hea mõte, Michael. 1151 00:54:56,250 --> 00:54:57,500 Lisame make seotud. 1152 00:54:57,500 --> 00:55:01,590 1153 00:55:01,590 --> 00:55:04,830 Line 87 seal on viga. 1154 00:55:04,830 --> 00:55:05,420 Line 87. 1155 00:55:05,420 --> 00:55:06,600 Alden oli see liin sa mulle andsid. 1156 00:55:06,600 --> 00:55:08,962 Mis viga? 1157 00:55:08,962 --> 00:55:10,710 >> Publik: See peab olema tühjaks. 1158 00:55:10,710 --> 00:55:11,000 >> JASON Hirschhorn: Suurepärane. 1159 00:55:11,000 --> 00:55:11,630 Täpselt nii. 1160 00:55:11,630 --> 00:55:13,290 See peaks olema null. 1161 00:55:13,290 --> 00:55:15,210 Teeme uuesti. 1162 00:55:15,210 --> 00:55:17,220 Koostage. 1163 00:55:17,220 --> 00:55:17,890 OK. 1164 00:55:17,890 --> 00:55:19,400 Lisame kolm. 1165 00:55:19,400 --> 00:55:20,570 Insert oli edukas. 1166 00:55:20,570 --> 00:55:21,660 Lähme välja trükkida. 1167 00:55:21,660 --> 00:55:23,590 Oh, kui ainult me ​​võiks vaadata. 1168 00:55:23,590 --> 00:55:25,500 Aga me ei ole teinud väljatrükki veel. 1169 00:55:25,500 --> 00:55:27,840 Olgem sisestage midagi muud. 1170 00:55:27,840 --> 00:55:29,090 Mida me peaksime sisenema? 1171 00:55:29,090 --> 00:55:31,120 1172 00:55:31,120 --> 00:55:31,940 >> Publik: Seven. 1173 00:55:31,940 --> 00:55:33,340 >> JASON Hirschhorn: Seven? 1174 00:55:33,340 --> 00:55:34,590 >> Publik: Jah. 1175 00:55:34,590 --> 00:55:38,680 1176 00:55:38,680 --> 00:55:39,780 >> JASON Hirschhorn: Meil ​​seg süü. 1177 00:55:39,780 --> 00:55:43,760 Nii saime ühe, kuid me selgelt ei saa kahte. 1178 00:55:43,760 --> 00:55:45,690 See on 05:07. 1179 00:55:45,690 --> 00:55:48,370 Nii võiksime siluda seda kolm minutit. 1180 00:55:48,370 --> 00:55:51,240 Aga ma lähen jäta meid siin ja liikuda edasi räsitabeli. 1181 00:55:51,240 --> 00:55:54,290 Aga jälle, vastused selle koodi Ma saatke see teile natuke. 1182 00:55:54,290 --> 00:55:55,440 Me oleme väga lähedal. 1183 00:55:55,440 --> 00:55:58,300 Ma väga soovitame teil aru saada, mis siin toimub ja seda parandada. 1184 00:55:58,300 --> 00:56:02,400 Nii et ma meilis selle koodiga hästi plus lahendus - 1185 00:56:02,400 --> 00:56:03,670 ilmselt lahus hiljem. 1186 00:56:03,670 --> 00:56:05,110 Esiteks on see kood. 1187 00:56:05,110 --> 00:56:08,290 >> Teine asi, mida ma tahan teha, enne kui me viimistlus me pole vabanenud midagi. 1188 00:56:08,290 --> 00:56:10,370 Nii et ma tahan teile näidata, mida valgrind välja näeb. 1189 00:56:10,370 --> 00:56:14,310 Kui võtame valgrind piirid meie programmi. / seotud. 1190 00:56:14,310 --> 00:56:22,540 Jällegi, vastavalt sellele slaidile me peaks kulgema valgrind teatud tüüpi 1191 00:56:22,540 --> 00:56:26,410 variant, käesoleval juhul - Lekke-check = täis. 1192 00:56:26,410 --> 00:56:27,660 Nii et kirjutame valgrind - Lekke-check = täis. 1193 00:56:27,660 --> 00:56:31,910 1194 00:56:31,910 --> 00:56:35,080 Nii et see kestab valgrind meie programm. 1195 00:56:35,080 --> 00:56:37,000 Ja nüüd programm tegelikult töötab. 1196 00:56:37,000 --> 00:56:40,190 Nii et me ei kavatse kasutada seda nagu enne, pane midagi sisse 1197 00:56:40,190 --> 00:56:40,830 Ma panen kolme. 1198 00:56:40,830 --> 00:56:41,790 See toimib. 1199 00:56:41,790 --> 00:56:43,202 Ma ei üritagi luua midagi muud, sest me ei kavatse 1200 00:56:43,202 --> 00:56:44,710 saada seg vale sellisel juhul. 1201 00:56:44,710 --> 00:56:46,700 Nii et ma olen lihtsalt kavatse loobuda. 1202 00:56:46,700 --> 00:56:50,160 >> Ja nüüd te näete siin lekkida ja hunnik kokkuvõte. 1203 00:56:50,160 --> 00:56:52,310 Need on head asjad, soovite kontrollida. 1204 00:56:52,310 --> 00:56:56,780 Nii hunnik kokkuvõte - ta ütleb, kasutusel väljumisel - kaheksa baiti üks plokk. 1205 00:56:56,780 --> 00:56:58,370 See üks plokk on sõlme me malloced. 1206 00:56:58,370 --> 00:57:02,230 Michael, sa ütlesid enne sõlm on kaheksa hammustused, sest see on täisarv 1207 00:57:02,230 --> 00:57:02,680 ja kursor. 1208 00:57:02,680 --> 00:57:04,550 Nii et meie sõlme. 1209 00:57:04,550 --> 00:57:08,170 Ja siis ta ütles, et me kasutada malloc seitse korda ja me vabanenud 1210 00:57:08,170 --> 00:57:08,940 midagi kuus korda. 1211 00:57:08,940 --> 00:57:13,680 Aga me ei helistanud tasuta, nii et ma ei ole tea, mida see räägib. 1212 00:57:13,680 --> 00:57:18,490 >> Aga piisab, kui öelda, et kui Programm jookseb, malloc on kutsutud 1213 00:57:18,490 --> 00:57:20,330 mõnedes teistes kohtades, et me ei ole vaja muretseda. 1214 00:57:20,330 --> 00:57:22,460 Nii malloc ilmselt nimetatakse mõnes kohas. 1215 00:57:22,460 --> 00:57:24,480 Me ei pea muretsema, kus. 1216 00:57:24,480 --> 00:57:26,240 Aga see on tõesti meile. 1217 00:57:26,240 --> 00:57:27,380 Esimene rida on meile. 1218 00:57:27,380 --> 00:57:28,320 Me jätsime selle blokeerida. 1219 00:57:28,320 --> 00:57:30,330 Ja te näete, et siin aastal leke kokkuvõte. 1220 00:57:30,330 --> 00:57:31,950 Ikka leia - 1221 00:57:31,950 --> 00:57:32,930 kaheksa baiti üks plokk. 1222 00:57:32,930 --> 00:57:34,100 See tähendab, et mälu - 1223 00:57:34,100 --> 00:57:35,730 oleme lekkinud, et mälu. 1224 00:57:35,730 --> 00:57:37,570 Kindlasti kadunud - 1225 00:57:37,570 --> 00:57:38,770 midagi on kadunud igaveseks. 1226 00:57:38,770 --> 00:57:40,590 Üldiselt sa ei näe midagi seal. 1227 00:57:40,590 --> 00:57:44,780 Veel kättesaadav on tavaliselt kus näete asju, kus tahad 1228 00:57:44,780 --> 00:57:48,900 vaatame, mis koodi peaks teile on vabastatud, kuid sa unustasid tasuta. 1229 00:57:48,900 --> 00:57:53,170 >> Ja siis, kui see nii ei olnud, kui me tegime tasuta kõik, 1230 00:57:53,170 --> 00:57:54,360 saame näha, et. 1231 00:57:54,360 --> 00:57:57,330 Lihtsalt käivitage programm ei lase midagi. 1232 00:57:57,330 --> 00:57:59,800 Näete siin kasutusel exit - 1233 00:57:59,800 --> 00:58:01,310 null baiti null plokke. 1234 00:58:01,310 --> 00:58:06,310 See tähendab, et meil oli midagi jäänud kui see programm lahkutakse. 1235 00:58:06,310 --> 00:58:12,090 Nii et enne keerates pset6 käivitage valgrind ja veenduge, et teil ei ole 1236 00:58:12,090 --> 00:58:15,310 iga mälulekked oma programmi. 1237 00:58:15,310 --> 00:58:17,910 Kui teil on küsimusi valgrind, julgelt jõuda. 1238 00:58:17,910 --> 00:58:18,700 Aga see, kuidas sa seda kasutada. 1239 00:58:18,700 --> 00:58:20,890 Väga lihtne - vaata, kui sa on kasutusel exit - 1240 00:58:20,890 --> 00:58:22,270 iga baiti igal plokke. 1241 00:58:22,270 --> 00:58:27,890 1242 00:58:27,890 --> 00:58:29,580 >> Nii et me töötasime sisestada sõlme. 1243 00:58:29,580 --> 00:58:33,840 Mul oli kaks muid funktsioone siin - prindi sõlmede ja vaba sõlmed. 1244 00:58:33,840 --> 00:58:37,780 Jällegi on need funktsioonid, mis on saab olema hea teie jaoks harjutada 1245 00:58:37,780 --> 00:58:40,990 sest nad aitavad teil mitte ainult Nende proovi harjutusi, vaid ka 1246 00:58:40,990 --> 00:58:42,180 probleemile kehtestada. 1247 00:58:42,180 --> 00:58:44,230 Nad kaart üsna tihedalt asju sa lähed pead tegema 1248 00:58:44,230 --> 00:58:45,010 lahendamist. 1249 00:58:45,010 --> 00:58:47,640 Aga ma ei taha, et veenduda me puudutada kõike. 1250 00:58:47,640 --> 00:58:50,400 Ja hash tabeleid on ka oluline mida me teeme jaos see 1251 00:58:50,400 --> 00:58:51,980 nädal - või probleem komplekti. 1252 00:58:51,980 --> 00:58:55,200 >> Nii et me ei kavatse lõpetada jagu räägime hash tabeleid. 1253 00:58:55,200 --> 00:58:58,140 Kui märkate tegin vähe hash tabel. 1254 00:58:58,140 --> 00:59:00,020 See ei ole see, mida me räägime kohta siiski. 1255 00:59:00,020 --> 00:59:03,540 Me räägime eri tüüpi hash tabeleid. 1256 00:59:03,540 --> 00:59:07,300 Ja selle keskmes, hash tabel on midagi enamat kui 1257 00:59:07,300 --> 00:59:08,860 array pluss hash funktsiooni. 1258 00:59:08,860 --> 00:59:11,150 Me räägime natuke lihtsalt veenduda igaüks saab aru, mida 1259 00:59:11,150 --> 00:59:12,110 hash funktsiooni. 1260 00:59:12,110 --> 00:59:15,420 Ja ma ütlen teile nüüd, et ta on midagi enamat kui kahte asja - 1261 00:59:15,420 --> 00:59:18,590 massiivi ja hash funktsiooni. 1262 00:59:18,590 --> 00:59:20,716 Ja siin on sammud läbi mis see toimib. 1263 00:59:20,716 --> 00:59:31,560 1264 00:59:31,560 --> 00:59:32,810 >> Seal on meie massiivi. 1265 00:59:32,810 --> 00:59:38,460 1266 00:59:38,460 --> 00:59:39,460 See on meie ülesanne. 1267 00:59:39,460 --> 00:59:43,180 Eelkõige räsifunktsioonid vaja teha paar asja sellega. 1268 00:59:43,180 --> 00:59:45,040 Ma lähen rääkida konkreetselt selle lahendamist. 1269 00:59:45,040 --> 00:59:46,450 See on ilmselt läheb võtta string. 1270 00:59:46,450 --> 00:59:50,570 1271 00:59:50,570 --> 00:59:51,770 Ja mis läheb tagasi? 1272 00:59:51,770 --> 00:59:52,640 Mis andmed tüüp? 1273 00:59:52,640 --> 00:59:54,260 Alden? 1274 00:59:54,260 --> 00:59:55,760 Teie räsifunktsiooni tagasi? 1275 00:59:55,760 --> 00:59:58,760 Täisarv. 1276 00:59:58,760 --> 01:00:01,700 Nii et see on see, mida hash tabel koosneb - 1277 01:00:01,700 --> 01:00:05,430 tabeli kujul array ja hash funktsiooni. 1278 01:00:05,430 --> 01:00:06,010 Kuidas see töötab? 1279 01:00:06,010 --> 01:00:07,300 See töötab kolmes etapis. 1280 01:00:07,300 --> 01:00:08,740 Anname see võti. 1281 01:00:08,740 --> 01:00:11,470 Sel juhul me anname seda string. 1282 01:00:11,470 --> 01:00:18,140 Kutsume räsifunktsiooni per etapp võtme ja saame raha. 1283 01:00:18,140 --> 01:00:20,310 >> Täpsemalt, me öelda saame täisarv. 1284 01:00:20,310 --> 01:00:25,630 See täisarv, on väga spetsiifiline piirid, mida see täisarv võib olla. 1285 01:00:25,630 --> 01:00:28,880 Selles näites meie massiivi on suurus kolm. 1286 01:00:28,880 --> 01:00:32,330 Mis siis numbrid on, et täisarv olema. 1287 01:00:32,330 --> 01:00:35,970 Mis on vahemikus kehtivad väärtused et täisarv, tagastab tüüpi see 1288 01:00:35,970 --> 01:00:37,220 räsifunktsiooni? 1289 01:00:37,220 --> 01:00:40,440 1290 01:00:40,440 --> 01:00:42,110 Null, üks ja kaks. 1291 01:00:42,110 --> 01:00:46,060 Koht hash funktsioon on nuputada koht massiivi 1292 01:00:46,060 --> 01:00:47,790 kus meie peamiste läheb. 1293 01:00:47,790 --> 01:00:51,290 On ainult kolm võimalikku kohad siin - 1294 01:00:51,290 --> 01:00:52,130 null, üks või kaks. 1295 01:00:52,130 --> 01:00:55,360 Nii et see ülesanne suuremat tulu null, üks või kaks. 1296 01:00:55,360 --> 01:00:58,740 Mõned kehtivad indice selle massiivi. 1297 01:00:58,740 --> 01:01:02,770 >> Ja siis sõltuvalt sellest, kuhu ta naaseb, näete array avatud 1298 01:01:02,770 --> 01:01:03,730 ümbritsevad väärtus. 1299 01:01:03,730 --> 01:01:05,800 See, kui me paneme võtme. 1300 01:01:05,800 --> 01:01:11,280 Nii et me visata kõrvits, saame välja nulli. 1301 01:01:11,280 --> 01:01:15,540 At array sulg 0 panime kõrvits. 1302 01:01:15,540 --> 01:01:21,070 Me visata kassid, saame välja üks. 1303 01:01:21,070 --> 01:01:24,110 Panime kassile üks. 1304 01:01:24,110 --> 01:01:25,480 Panime ämblik. 1305 01:01:25,480 --> 01:01:26,710 Saame välja kaks. 1306 01:01:26,710 --> 01:01:30,200 Panime ämblik array sulg kaks. 1307 01:01:30,200 --> 01:01:32,300 Oleks tore, kui see töötas nii. 1308 01:01:32,300 --> 01:01:35,570 Kuid kahjuks, nagu me näeme, see on natuke keerulisem. 1309 01:01:35,570 --> 01:01:37,570 >> Enne kui sinna jõuame küsimusi selle põhi 1310 01:01:37,570 --> 01:01:38,820 ülesseadmine hash tabel? 1311 01:01:38,820 --> 01:01:49,050 1312 01:01:49,050 --> 01:01:51,940 See on pilt täpselt Mida me juhtis laual. 1313 01:01:51,940 --> 01:01:55,420 Aga kuna me juhtis ta laual, I ma ei lähe see kaugemale. 1314 01:01:55,420 --> 01:02:00,430 Sisuliselt võtmed, magic black box - või antud juhul, teal box - on 1315 01:02:00,430 --> 01:02:02,410 räsifunktsiooni paneb neid ämbrid. 1316 01:02:02,410 --> 01:02:04,690 Ja selles näites me oleme ei pane nimi. 1317 01:02:04,690 --> 01:02:07,880 Me paneme seotud telefoni number nime ämbrisse. 1318 01:02:07,880 --> 01:02:10,430 Aga sa võiksid väga hästi lihtsalt pane nimi ämbrisse. 1319 01:02:10,430 --> 01:02:12,950 >> See on lihtsalt pilt, mida me juhtis laual. 1320 01:02:12,950 --> 01:02:14,460 Meil on võimalikud tagasilöögid, kuigi. 1321 01:02:14,460 --> 01:02:17,470 Ja seal on kaks eriti slaidid, et ma tahan minna üle. 1322 01:02:17,470 --> 01:02:20,230 Esimene on umbes hash funktsiooni. 1323 01:02:20,230 --> 01:02:22,620 Nii ma küsisin küsimuse, mis teeb hea hash funktsioon? 1324 01:02:22,620 --> 01:02:24,220 Annan kaks vastust. 1325 01:02:24,220 --> 01:02:26,630 Esimene on see, et see on determineeritud. 1326 01:02:26,630 --> 01:02:29,660 In kontekstis räsifunktsiooni, Mida see tähendab? 1327 01:02:29,660 --> 01:02:37,840 1328 01:02:37,840 --> 01:02:39,282 Jah? 1329 01:02:39,282 --> 01:02:42,850 >> Publik: See võib leida indeks pidevalt aega? 1330 01:02:42,850 --> 01:02:43,810 >> JASON Hirschhorn: See ei ole, mida see tähendab. 1331 01:02:43,810 --> 01:02:44,725 Aga see on hea oletus. 1332 01:02:44,725 --> 01:02:46,100 Kas keegi on vist et mida see tähendab? 1333 01:02:46,100 --> 01:02:47,780 See hea räsifunktsiooni on determineeritud? 1334 01:02:47,780 --> 01:02:48,280 Annie? 1335 01:02:48,280 --> 01:02:51,680 >> Publik: See võti saab kaardistada ühe koha hash tabel. 1336 01:02:51,680 --> 01:02:53,070 >> JASON Hirschhorn: See on täpselt õige. 1337 01:02:53,070 --> 01:02:57,430 Iga kord, kui paned kõrvits, ta naaseb alati null. 1338 01:02:57,430 --> 01:03:01,660 Kui paned kõrvits ja oma hash funktsioon tagastab null, kuid on 1339 01:03:01,660 --> 01:03:06,060 naasmise tõenäosus midagi veel suurem kui null - 1340 01:03:06,060 --> 01:03:09,280 et äkki ta saab tagasi ühe mõnikord või kaks korda - 1341 01:03:09,280 --> 01:03:11,100 see ei ole hea räsifunktsiooni. 1342 01:03:11,100 --> 01:03:11,800 Sa oled täpselt õige. 1343 01:03:11,800 --> 01:03:15,680 Teie räsifunktsiooni peaks tagasi sama täpne täisarv, käesoleval juhul võtta 1344 01:03:15,680 --> 01:03:17,780 täpselt sama string. 1345 01:03:17,780 --> 01:03:22,210 >> Võib-olla ta naaseb sama täpne täisarv sama täpne string 1346 01:03:22,210 --> 01:03:24,430 olenemata kapitaliseeritust. 1347 01:03:24,430 --> 01:03:27,980 Aga sel juhul on ikka determineeritud, sest mitu asja 1348 01:03:27,980 --> 01:03:29,350 kaardistatakse peale sama väärtusega. 1349 01:03:29,350 --> 01:03:30,170 See on hea. 1350 01:03:30,170 --> 01:03:32,615 Niikaua kui on olemas ainult üks väljund antud sisendi. 1351 01:03:32,615 --> 01:03:35,630 1352 01:03:35,630 --> 01:03:36,350 >> OK. 1353 01:03:36,350 --> 01:03:38,340 Teine asi on see, et tagastab kehtiv indeksid. 1354 01:03:38,340 --> 01:03:40,220 Tõime välja, et varem. 1355 01:03:40,220 --> 01:03:41,860 See räsifunktsiooni - 1356 01:03:41,860 --> 01:03:43,710 oh boy - 1357 01:03:43,710 --> 01:03:46,840 räsifunktsiooni peaks tagasi kehtiv indeksid. 1358 01:03:46,840 --> 01:03:47,740 Nii öelda - 1359 01:03:47,740 --> 01:03:48,990 lähme tagasi selle näite. 1360 01:03:48,990 --> 01:03:52,580 1361 01:03:52,580 --> 01:03:57,540 Minu räsifunktsiooni loeb üles tähed sõna. 1362 01:03:57,540 --> 01:03:58,380 See on hash funktsiooni. 1363 01:03:58,380 --> 01:03:59,740 Ja tootlus täisarv. 1364 01:03:59,740 --> 01:04:04,280 Nii et kui mul on sõna, see on läheb tagasi ühe. 1365 01:04:04,280 --> 01:04:06,900 Ja see saab panna siin. 1366 01:04:06,900 --> 01:04:09,430 Mis siis, kui panin sõna nahkhiir? 1367 01:04:09,430 --> 01:04:11,310 Ta läheb tagasi kolm. 1368 01:04:11,310 --> 01:04:12,560 Kus nahkhiir minna? 1369 01:04:12,560 --> 01:04:18,730 1370 01:04:18,730 --> 01:04:19,750 >> See ei sobi. 1371 01:04:19,750 --> 01:04:21,000 Aga ta peab minema kuhugi. 1372 01:04:21,000 --> 01:04:23,340 See on minu hash tabel ju ja kõik peab minema kuhugi. 1373 01:04:23,340 --> 01:04:24,590 Nii et kui peaks nahkhiir minna? 1374 01:04:24,590 --> 01:04:28,020 1375 01:04:28,020 --> 01:04:28,710 Kõik mõtted? 1376 01:04:28,710 --> 01:04:29,450 Oletused? 1377 01:04:29,450 --> 01:04:30,280 Hea oletused? 1378 01:04:30,280 --> 01:04:31,220 >> Publik: Zero. 1379 01:04:31,220 --> 01:04:32,120 >> JASON Hirschhorn: Miks null? 1380 01:04:32,120 --> 01:04:35,990 >> Publik: Sest kolm mooduli kolm on null? 1381 01:04:35,990 --> 01:04:38,620 >> JASON Hirschhorn: Kolm mooduli kolm on null. 1382 01:04:38,620 --> 01:04:40,810 See on suur oletus, ja see on õige. 1383 01:04:40,810 --> 01:04:43,870 Nii et kui see peaks Tõenäoliselt lähevad nulli. 1384 01:04:43,870 --> 01:04:51,080 Nii hea viis tagada, et see hash funktsioon annab ainult kehtiva indeksi 1385 01:04:51,080 --> 01:04:54,580 Lisa modulo seda suurus tabelis. 1386 01:04:54,580 --> 01:04:57,360 Kui te moodul iganes seda kasumit, kolm, sa oled alati hakka 1387 01:04:57,360 --> 01:05:00,930 midagi vahel null, üks, kaks. 1388 01:05:00,930 --> 01:05:05,160 Ja kui see ikka tagasi seitse ja sa alati moodul kolm, sa oled 1389 01:05:05,160 --> 01:05:06,030 alati hakka sama asja. 1390 01:05:06,030 --> 01:05:09,270 >> Nii et see on ikka determineeritud kui sa moodul. 1391 01:05:09,270 --> 01:05:11,420 Aga see, et sa ei saa kunagi midagi - 1392 01:05:11,420 --> 01:05:12,940 kehtetu tööstusele. 1393 01:05:12,940 --> 01:05:16,840 Üldiselt see moodul peaks juhtuma sees hash funktsiooni. 1394 01:05:16,840 --> 01:05:18,240 Nii et sa ei pea muretsema selle. 1395 01:05:18,240 --> 01:05:20,555 Sa lihtsalt võimalik tagada, et see on kehtiv indice. 1396 01:05:20,555 --> 01:05:23,700 1397 01:05:23,700 --> 01:05:26,700 Kõik küsimused selle potentsiaal lõksu? 1398 01:05:26,700 --> 01:05:36,590 1399 01:05:36,590 --> 01:05:39,060 >> OK. 1400 01:05:39,060 --> 01:05:40,290 Ja seal me läheme. 1401 01:05:40,290 --> 01:05:42,890 Järgmine potentsiaal lõksu ja see on suur. 1402 01:05:42,890 --> 01:05:46,880 Mida teha, kui kaks võtit kaart sama väärtus? 1403 01:05:46,880 --> 01:05:49,350 Seega on kaks võimalust, et tegelen sellega. 1404 01:05:49,350 --> 01:05:53,140 1405 01:05:53,140 --> 01:05:56,020 Esimest nimetatakse lineaarse katsetamine, mis ma olen 1406 01:05:56,020 --> 01:05:57,300 ei lähe üle. 1407 01:05:57,300 --> 01:06:01,120 Aga sa peaksid olema kursis, kuidas mis töötab ja mis see on. 1408 01:06:01,120 --> 01:06:05,610 >> Teine ma lähen üle sest see on üks, et paljud 1409 01:06:05,610 --> 01:06:08,290 inimesed ilmselt lõpuks otsustada kasutada oma probleem komplekti. 1410 01:06:08,290 --> 01:06:09,820 Muidugi, te ei pea seda tegema. 1411 01:06:09,820 --> 01:06:15,280 Aga probleem kogum, paljud inimesed kipuvad valima luua hash tabel 1412 01:06:15,280 --> 01:06:17,950 eraldi Aheldamise rakendada oma sõnastikku. 1413 01:06:17,950 --> 01:06:21,390 Nii et me läheme selle üle, mida see tähendab, luua hash tabel 1414 01:06:21,390 --> 01:06:23,890 eraldi ühendamine. 1415 01:06:23,890 --> 01:06:26,260 >> Nii panin kõrvits. 1416 01:06:26,260 --> 01:06:29,560 Ta naaseb null. 1417 01:06:29,560 --> 01:06:31,410 Ja panin kõrvitsa siin. 1418 01:06:31,410 --> 01:06:35,880 1419 01:06:35,880 --> 01:06:37,930 Siis panin - 1420 01:06:37,930 --> 01:06:39,922 Mis on veel Halloween-teemastatud asi? 1421 01:06:39,922 --> 01:06:42,200 >> Publik: Candy. 1422 01:06:42,200 --> 01:06:42,770 >> JASON Hirschhorn: Candy! 1423 01:06:42,770 --> 01:06:43,910 See on suur. 1424 01:06:43,910 --> 01:06:47,760 Panin kommi ja kommi Samuti annab mulle null. 1425 01:06:47,760 --> 01:06:49,350 Mida ma pean tegema? 1426 01:06:49,350 --> 01:06:51,940 Iga ideid? 1427 01:06:51,940 --> 01:06:53,940 Kuna te kõik justkui mida eraldi ühendamine toimub. 1428 01:06:53,940 --> 01:06:55,190 Nii tahes ideid, mida teha? 1429 01:06:55,190 --> 01:06:58,170 1430 01:06:58,170 --> 01:06:59,110 Jah. 1431 01:06:59,110 --> 01:07:03,810 >> Publik: Haara string tegelikult hash tabel. 1432 01:07:03,810 --> 01:07:08,910 >> JASON Hirschhorn: Nii et me läheme juhtida hea mõte siin. 1433 01:07:08,910 --> 01:07:09,340 OK. 1434 01:07:09,340 --> 01:07:12,290 >> Publik: Kas Hashtable [Kuuldamatu] 1435 01:07:12,290 --> 01:07:16,640 pointer, mis osutab alguses nimekirja. 1436 01:07:16,640 --> 01:07:20,930 Ja siis on kõrvits esimene väärtus et seotud nimekirja ja kommi olema 1437 01:07:20,930 --> 01:07:22,800 teine ​​väärtus, mis on seotud nimekirja. 1438 01:07:22,800 --> 01:07:23,420 >> JASON Hirschhorn: OK. 1439 01:07:23,420 --> 01:07:24,670 Marcus, see oli suurepärane. 1440 01:07:24,670 --> 01:07:26,160 Ma lähen, et murda see maha. 1441 01:07:26,160 --> 01:07:28,890 Marcus ütleb ei kirjutada kõrvits. 1442 01:07:28,890 --> 01:07:30,660 See oleks halb. 1443 01:07:30,660 --> 01:07:33,640 Ärge pange kommid kusagil mujal. 1444 01:07:33,640 --> 01:07:35,390 Me paneme nad mõlemad nullis. 1445 01:07:35,390 --> 01:07:37,770 Aga me ei kavatse tegeleda seades nulli 1446 01:07:37,770 --> 01:07:39,395 luua nimekiri null. 1447 01:07:39,395 --> 01:07:42,430 Ja me ei kavatse luua nimekirja kõik, mis kaardistatakse null. 1448 01:07:42,430 --> 01:07:47,960 Ja parim viis, kuidas me õppinud, et luua nimekirja, mis võib kasvada ja kahaneb 1449 01:07:47,960 --> 01:07:49,840 dünaamiliselt ei kuulu teise massiivi. 1450 01:07:49,840 --> 01:07:51,510 Nii ei mitmemõõtmeline massiiv. 1451 01:07:51,510 --> 01:07:54,080 Aga lihtsalt luua seotud nimekirja. 1452 01:07:54,080 --> 01:07:55,330 >> Mis siis tegi ta ettepaneku - 1453 01:07:55,330 --> 01:07:57,950 1454 01:07:57,950 --> 01:07:59,200 Ma lähen, et saada uus - 1455 01:07:59,200 --> 01:08:15,380 1456 01:08:15,380 --> 01:08:19,689 on luua massiivi osuti, massiivi osuti. 1457 01:08:19,689 --> 01:08:20,580 OK. 1458 01:08:20,580 --> 01:08:24,180 Iga mõte või vihje, mis laadi Selle osuti olema? 1459 01:08:24,180 --> 01:08:26,290 Marcus? 1460 01:08:26,290 --> 01:08:27,250 >> Publik: Näiturid - 1461 01:08:27,250 --> 01:08:28,609 >> JASON Hirschhorn: Sest sa ütles seotud nimekirjas, siis - 1462 01:08:28,609 --> 01:08:29,520 >> Publik: Sõlme vihjeid? 1463 01:08:29,520 --> 01:08:30,670 >> JASON Hirschhorn: Sõlme suunanäitajaks. 1464 01:08:30,670 --> 01:08:32,830 Kui asjad meie seotud nimekiri on sõlmed, siis nad 1465 01:08:32,830 --> 01:08:34,370 peaks olema node suunanäitajaks. 1466 01:08:34,370 --> 01:08:35,939 Ja mida nad võrdsed esialgu? 1467 01:08:35,939 --> 01:08:36,990 >> Publik: 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 Nii et meie tühi asi. 1471 01:08:46,080 --> 01:08:47,170 Pumpkin tagastab null. 1472 01:08:47,170 --> 01:08:48,569 Mida me siis teeme? 1473 01:08:48,569 --> 01:08:49,609 Kõnni mind läbi? 1474 01:08:49,609 --> 01:08:50,810 Tegelikult Marcus juba andsid mulle. 1475 01:08:50,810 --> 01:08:52,439 Keegi teine ​​kõndida mind läbi. 1476 01:08:52,439 --> 01:08:54,760 Mida me teeme, kui me - 1477 01:08:54,760 --> 01:08:56,609 see näeb välja väga sarnane mida me lihtsalt teeme. 1478 01:08:56,609 --> 01:08:57,396 Avi. 1479 01:08:57,396 --> 01:08:59,090 >> Publik: ma lähen vist. 1480 01:08:59,090 --> 01:09:01,250 Nii et kui sa saad kommi. 1481 01:09:01,250 --> 01:09:01,640 >> JASON Hirschhorn: Jah. 1482 01:09:01,640 --> 01:09:03,120 Noh, meil on kõrvits. 1483 01:09:03,120 --> 01:09:03,870 Lähme meie esimene. 1484 01:09:03,870 --> 01:09:04,324 Meil on kõrvits. 1485 01:09:04,324 --> 01:09:04,779 >> Publik: OK. 1486 01:09:04,779 --> 01:09:05,880 Pumpkin tagastab null. 1487 01:09:05,880 --> 01:09:08,770 Nii et sa pane see, et. 1488 01:09:08,770 --> 01:09:10,810 Või tegelikult, siis pane see aastal seotud nimekirja. 1489 01:09:10,810 --> 01:09:13,550 >> JASON Hirschhorn: Kuidas me pane see seotud nimekirja? 1490 01:09:13,550 --> 01:09:15,479 >> Publik: Oh, tegelik süntaks? 1491 01:09:15,479 --> 01:09:16,240 >> JASON Hirschhorn: Just kõndida - 1492 01:09:16,240 --> 01:09:16,740 rohkem öelda. 1493 01:09:16,740 --> 01:09:19,310 Mida me siis teeme? 1494 01:09:19,310 --> 01:09:22,100 >> Publik: Sa lihtsalt sisestada see esimene sõlm. 1495 01:09:22,100 --> 01:09:22,675 >> JASON Hirschhorn: OK. 1496 01:09:22,675 --> 01:09:29,069 Nii et meil on meie sõlme, kõrvits. 1497 01:09:29,069 --> 01:09:31,560 Ja nüüd, kui ma lisada seda? 1498 01:09:31,560 --> 01:09:34,590 1499 01:09:34,590 --> 01:09:37,090 >> Publik: määrake see osuti. 1500 01:09:37,090 --> 01:09:37,970 >> JASON Hirschhorn: Milline pointer? 1501 01:09:37,970 --> 01:09:39,620 >> Publik: pointer null. 1502 01:09:39,620 --> 01:09:41,420 >> JASON Hirschhorn: Nii et kui kas selles küsimuses? 1503 01:09:41,420 --> 01:09:42,810 >> Publik: Null kohe. 1504 01:09:42,810 --> 01:09:43,529 >> JASON Hirschhorn: Noh, see osutavad tühjaks. 1505 01:09:43,529 --> 01:09:44,499 Aga ma panen kõrvits. 1506 01:09:44,499 --> 01:09:46,053 Nii et kust see mõte? 1507 01:09:46,053 --> 01:09:46,880 >> Publik: Pumpkin. 1508 01:09:46,880 --> 01:09:47,399 >> JASON Hirschhorn: Et kõrvits. 1509 01:09:47,399 --> 01:09:48,760 Täpselt. 1510 01:09:48,760 --> 01:09:50,010 Seega viitab see kõrvits. 1511 01:09:50,010 --> 01:09:52,500 1512 01:09:52,500 --> 01:09:54,250 Ja kui ei, see pointer kõrvits punkt? 1513 01:09:54,250 --> 01:09:57,986 1514 01:09:57,986 --> 01:09:58,340 Kuni 1515 01:09:58,340 --> 01:09:58,590 >> Publik: Null. 1516 01:09:58,590 --> 01:09:59,210 >> JASON Hirschhorn: Null. 1517 01:09:59,210 --> 01:10:00,460 Täpselt. 1518 01:10:00,460 --> 01:10:03,570 1519 01:10:03,570 --> 01:10:05,140 Nii et me lihtsalt lisada midagi arvesse seotud nimekirja. 1520 01:10:05,140 --> 01:10:07,210 Me lihtsalt kirjutasin selle koodi seda teha. 1521 01:10:07,210 --> 01:10:09,520 Peaaegu me peaaegu sain selle täiesti katki. 1522 01:10:09,520 --> 01:10:10,790 Nüüd sisesta kommi. 1523 01:10:10,790 --> 01:10:13,480 Meie candy läheb ka nulli. 1524 01:10:13,480 --> 01:10:16,100 Niisiis, mida me teeme koos kommi? 1525 01:10:16,100 --> 01:10:18,790 >> Publik: See sõltub sellest, kas ei me üritame sorteerida. 1526 01:10:18,790 --> 01:10:19,640 >> JASON Hirschhorn: See on täpselt õige. 1527 01:10:19,640 --> 01:10:21,070 See sõltub sellest, kas me üritame sorteerida. 1528 01:10:21,070 --> 01:10:22,660 Oletame, et me ei ole läheb sortida. 1529 01:10:22,660 --> 01:10:24,880 >> Publik: Noh, siis, kui me arutasime enne, see on lihtsaim lihtsalt panna see 1530 01:10:24,880 --> 01:10:28,590 kohe alguses nii pointer nullist võrra kommi. 1531 01:10:28,590 --> 01:10:29,020 >> JASON Hirschhorn: OK. 1532 01:10:29,020 --> 01:10:29,380 Oota. 1533 01:10:29,380 --> 01:10:30,630 Lubage mul luua kommi siin. 1534 01:10:30,630 --> 01:10:34,030 1535 01:10:34,030 --> 01:10:35,150 Nii et see pointer - 1536 01:10:35,150 --> 01:10:37,590 >> Publik: Jah, peaks nüüd osutades kommi. 1537 01:10:37,590 --> 01:10:40,580 Siis on pointer candy käsk kõrvits. 1538 01:10:40,580 --> 01:10:43,140 1539 01:10:43,140 --> 01:10:44,560 >> JASON Hirschhorn: Niimoodi? 1540 01:10:44,560 --> 01:10:47,380 Ja ütleme, et meil on veel üks asi kaardistada nulli? 1541 01:10:47,380 --> 01:10:48,660 >> Publik: Noh, sa lihtsalt teha sama asi? 1542 01:10:48,660 --> 01:10:50,290 >> JASON Hirschhorn: Kas sama asi. 1543 01:10:50,290 --> 01:10:53,700 Nii et sel juhul, kui me ei tahad hoida järjestatud see 1544 01:10:53,700 --> 01:10:55,270 Kõlab üsna lihtne. 1545 01:10:55,270 --> 01:10:59,920 Võtame kursorit indice andnud meie hash funktsiooni. 1546 01:10:59,920 --> 01:11:03,830 Meil on selles küsimuses meie uus sõlm. 1547 01:11:03,830 --> 01:11:07,830 Ja siis mis see oli suunaga varem - 1548 01:11:07,830 --> 01:11:10,620 sel juhul null, in Teisel juhul kõrvits - 1549 01:11:10,620 --> 01:11:15,310 mis iganes see osutab varem, lisame järgmisesse kohta 1550 01:11:15,310 --> 01:11:17,810 meie uus sõlm. 1551 01:11:17,810 --> 01:11:19,650 Me lisades midagi aasta alguses. 1552 01:11:19,650 --> 01:11:22,900 Tegelikult on see palju lihtsam kui püüame hoida nimekirja sorteerida. 1553 01:11:22,900 --> 01:11:25,340 Aga jälle, otsides saab keerulisem on siin. 1554 01:11:25,340 --> 01:11:28,300 Meil on alati minna lõpuni. 1555 01:11:28,300 --> 01:11:29,650 >> OK. 1556 01:11:29,650 --> 01:11:32,750 Küsimusi eraldi ühendamine? 1557 01:11:32,750 --> 01:11:34,690 Kuidas see toimib? 1558 01:11:34,690 --> 01:11:35,820 Palun paluge nüüd. 1559 01:11:35,820 --> 01:11:39,260 Ma tõesti tahan, veendumaks, et kõik mõista seda enne kui me suundume. 1560 01:11:39,260 --> 01:11:48,410 1561 01:11:48,410 --> 01:11:52,060 >> Publik: Miks sa paned kõrvits ja kommi samasse 1562 01:11:52,060 --> 01:11:54,108 osa hash tabel? 1563 01:11:54,108 --> 01:11:55,860 >> JASON Hirschhorn: Hea küsimus. 1564 01:11:55,860 --> 01:11:59,140 Miks me panna neid sama osa hash tabel? 1565 01:11:59,140 --> 01:12:03,200 Noh, sel juhul meie räsifunktsiooni tagasi nulli mõlemad. 1566 01:12:03,200 --> 01:12:05,310 Nii et nad peavad minema kell indice null sest see on kui me ei kavatse 1567 01:12:05,310 --> 01:12:07,420 otsima neid, kui me kunagi tahan vaadata neid. 1568 01:12:07,420 --> 01:12:11,750 Jällegi, kusjuures lineaarne sondeerimise lähenemisviisi me ei pane neid nii nullis. 1569 01:12:11,750 --> 01:12:13,900 Kuid eraldi hõlmav lähenemisviis, me panna neid nii nullis 1570 01:12:13,900 --> 01:12:16,620 ja seejärel luua nimekirja ära nullis. 1571 01:12:16,620 --> 01:12:20,140 >> Ja me ei taha kirjutada kõrvits lihtsalt selle eest, sest siis me 1572 01:12:20,140 --> 01:12:21,860 eeldada, et kõrvits oli kunagi sisestatud. 1573 01:12:21,860 --> 01:12:25,230 Kui me lihtsalt hoida ühte asja asukoht, mis oleks halb. 1574 01:12:25,230 --> 01:12:28,590 Siis ei oleks Vihma meile kunagi - 1575 01:12:28,590 --> 01:12:31,660 kui me kunagi eksemplaris, siis me oleks lihtsalt kustutada meie esialgsest väärtusest. 1576 01:12:31,660 --> 01:12:34,090 Nii et miks me seda lähenemist. 1577 01:12:34,090 --> 01:12:36,580 Või sellepärast valisime - kuid jällegi, me Valisin eraldi Aheldamise meetod, 1578 01:12:36,580 --> 01:12:39,670 mis on palju muid lähenemisviise keegi võiks valida. 1579 01:12:39,670 --> 01:12:41,185 Kas see vastab su küsimusele? 1580 01:12:41,185 --> 01:12:41,660 >> OK. 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 Linear katsetamine tähendaks - 1584 01:12:47,720 --> 01:12:51,913 kui me leidsime kokkupõrge nullis me näeks järgmises kohapeal näha, kui 1585 01:12:51,913 --> 01:12:54,310 see oli lahti ja pane see sinna. 1586 01:12:54,310 --> 01:12:57,320 Ja siis me vaatame järgmise sport ja kas see oli lahti ja pane see sinna. 1587 01:12:57,320 --> 01:12:59,780 Nii leiame järgmise saadaval avatud kohapeal ja pani selle sinna. 1588 01:12:59,780 --> 01:13:02,580 1589 01:13:02,580 --> 01:13:03,890 Muid küsimusi? 1590 01:13:03,890 --> 01:13:05,370 Jah, Avi. 1591 01:13:05,370 --> 01:13:07,490 >> Publik: Nagu järelmeetmena, et mida sa mõtled järgmine koht? 1592 01:13:07,490 --> 01:13:10,250 In hash tabel või seotud nimekirja. 1593 01:13:10,250 --> 01:13:12,100 >> JASON Hirschhorn: Lineaarsete programmeerimine, ei ahelloendid. 1594 01:13:12,100 --> 01:13:13,400 Järgmine kohapeal hash tabel. 1595 01:13:13,400 --> 01:13:13,820 >> Publik: OK. 1596 01:13:13,820 --> 01:13:17,570 Nii hash tabel oleks initsialiseeritud suurus - 1597 01:13:17,570 --> 01:13:19,560 nagu Sõnesid et sa olid sisestamist? 1598 01:13:19,560 --> 01:13:22,170 >> JASON Hirschhorn: Sa ei teeks tahan, et see oleks tõesti suur. 1599 01:13:22,170 --> 01:13:23,910 Jah. 1600 01:13:23,910 --> 01:13:27,900 Siin on pilt, mida me lihtsalt juhtis laual. 1601 01:13:27,900 --> 01:13:29,470 Jällegi, meil on kokkupõrge siin. 1602 01:13:29,470 --> 01:13:30,710 juures 152. 1603 01:13:30,710 --> 01:13:33,570 Ja te näete, oleme loonud seotud nimekirja välja sellest. 1604 01:13:33,570 --> 01:13:38,200 1605 01:13:38,200 --> 01:13:41,850 Jällegi, hash tabelis eraldi Aheldamise lähenemine on vale 1606 01:13:41,850 --> 01:13:45,590 võtma ette püstitatud probleeme Kuue kuid on üks, mis palju 1607 01:13:45,590 --> 01:13:47,100 üliõpilased kipuvad võtma. 1608 01:13:47,100 --> 01:13:51,140 Seega on see teatis rääkigem lühidalt enne kui me suundume katkisest kuus, 1609 01:13:51,140 --> 01:13:52,160 ja siis ma jagan lugu teiega. 1610 01:13:52,160 --> 01:13:55,120 Meil on kolm minutit. 1611 01:13:55,120 --> 01:13:55,750 >> Ülesanded kuus. 1612 01:13:55,750 --> 01:13:57,790 Sul on neli funktsiooni - 1613 01:13:57,790 --> 01:14:02,430 koormus, kontrollige, suurus, peale-ja mahalaadimist. 1614 01:14:02,430 --> 01:14:03,380 Load - 1615 01:14:03,380 --> 01:14:07,120 Noh, me oleme käinud üle koormus lihtsalt nüüd. 1616 01:14:07,120 --> 01:14:09,330 Jälle koormus laual. 1617 01:14:09,330 --> 01:14:13,230 Ja me isegi alustanud kodeerimine palju sisestamist seotud nimekirja. 1618 01:14:13,230 --> 01:14:18,020 Nii juures on palju rohkem kui mida me oleme lihtsalt teinud. 1619 01:14:18,020 --> 01:14:21,070 >> Check on, kui sul on midagi laadida. 1620 01:14:21,070 --> 01:14:22,580 On sama protsessi nagu seda. 1621 01:14:22,580 --> 01:14:26,845 Samal kaks esimest osa, kus sa visata midagi sisse räsifunktsiooni 1622 01:14:26,845 --> 01:14:29,190 ja saada oma raha. 1623 01:14:29,190 --> 01:14:30,700 Aga nüüd me ei sisestamist. 1624 01:14:30,700 --> 01:14:33,350 Nüüd me otsime seda. 1625 01:14:33,350 --> 01:14:37,130 Olen proovi kood kirjutatud leidmiseks midagi, mis on seotud nimekirja. 1626 01:14:37,130 --> 01:14:38,250 Ma kutsun teid üles harjutama seda. 1627 01:14:38,250 --> 01:14:43,000 Aga intuitiivselt leida midagi üsna sarnane, lisades midagi. 1628 01:14:43,000 --> 01:14:46,540 Tõepoolest, me joonistasin pildi leidmine midagi, mis on seotud nimekirja, liikudes 1629 01:14:46,540 --> 01:14:48,910 läbi kuni sul lõpuks. 1630 01:14:48,910 --> 01:14:52,430 Ja kui sul lõpuni ja ei suutnud leia seda, siis see ei ole seal. 1631 01:14:52,430 --> 01:14:55,400 Nii et vaatame, sisuliselt. 1632 01:14:55,400 --> 01:14:57,030 >> Järgmine on suurus. 1633 01:14:57,030 --> 01:14:57,910 Jätame suurus. 1634 01:14:57,910 --> 01:15:00,040 Lõpuks olete maha laadida. 1635 01:15:00,040 --> 01:15:02,890 Sulgeda on üks me ei ole koostatud lauale või kodeeritud veel. 1636 01:15:02,890 --> 01:15:05,990 Aga ma kutsun teid proovida kodeerimine see meie proovi seotud nimekirja näide. 1637 01:15:05,990 --> 01:15:11,440 Aga lossimiseks intuitiivselt sarnaneb tasuta - 1638 01:15:11,440 --> 01:15:14,010 või ma mõtlen on sarnane kontrollida. 1639 01:15:14,010 --> 01:15:17,350 Välja arvatud nüüd iga kord, kui sa lähed läbi, sa ei lihtsalt kontrollisin, 1640 01:15:17,350 --> 01:15:19,090 kas teil on oma raha sinna. 1641 01:15:19,090 --> 01:15:22,490 Aga te võtate, et sõlm ja vabastades ta sisuliselt. 1642 01:15:22,490 --> 01:15:23,610 Seda unload sul teha palub. 1643 01:15:23,610 --> 01:15:24,670 Vaba kõik olete malloced. 1644 01:15:24,670 --> 01:15:27,480 Nii et sa lähed läbi kogu nimekiri jälle läbimas kogu hash 1645 01:15:27,480 --> 01:15:27,760 laua uuesti. 1646 01:15:27,760 --> 01:15:29,240 Seekord ei vaadata näha, mis seal on. 1647 01:15:29,240 --> 01:15:31,080 Just vaba, mis seal on. 1648 01:15:31,080 --> 01:15:33,260 >> Ja lõpuks suurus. 1649 01:15:33,260 --> 01:15:34,350 Suurus tuleks rakendada. 1650 01:15:34,350 --> 01:15:35,590 Kui sul ei ole ellu suurus - 1651 01:15:35,590 --> 01:15:36,250 Ma ütlen seda niimoodi. 1652 01:15:36,250 --> 01:15:39,740 Kui sul ei ole ellu suurus täpselt üks rida koodi ka 1653 01:15:39,740 --> 01:15:43,760 tagasi avalduse, siis on teeme suurus valesti. 1654 01:15:43,760 --> 01:15:47,170 Seega veenduge, et suurus, täielik disain punkte, et sa teed seda täpselt üks 1655 01:15:47,170 --> 01:15:49,970 koodirida, sealhulgas tagastamise avalduse. 1656 01:15:49,970 --> 01:15:52,450 >> Ja ärge pakkige veel Akchar. 1657 01:15:52,450 --> 01:15:53,700 Työhullu. 1658 01:15:53,700 --> 01:15:55,820 1659 01:15:55,820 --> 01:16:01,300 Ma tahtsin öelda, tänan teid tulite osa. 1660 01:16:01,300 --> 01:16:02,550 Kas Happy Halloween. 1661 01:16:02,550 --> 01:16:05,300 1662 01:16:05,300 --> 01:16:05,960 See on minu kostüüm. 1663 01:16:05,960 --> 01:16:08,850 Ma kannan seda neljapäeval kui ma näen sind tööajal. 1664 01:16:08,850 --> 01:16:14,640 Ja kui sa oled uudishimulik veel tausta, et see kostüüm, tunda 1665 01:16:14,640 --> 01:16:19,135 tasuta kontrollida 2011 jagu jaoks lugu sellest, miks ma olen 1666 01:16:19,135 --> 01:16:20,900 seljas kõrvitsa kostüümi. 1667 01:16:20,900 --> 01:16:23,680 Ja see on kurb lugu. 1668 01:16:23,680 --> 01:16:27,050 Seega veenduge, et teil on teatud kudede lähedal. 1669 01:16:27,050 --> 01:16:28,680 Aga see, kui teil on küsimused Pistan ümber 1670 01:16:28,680 --> 01:16:29,960 väljaspool pärast jagu. 1671 01:16:29,960 --> 01:16:31,510 Õnn lahendamist kuus. 1672 01:16:31,510 --> 01:16:33,540 Ja nagu alati, kui teil on küsimusi, andke mulle teada. 1673 01:16:33,540 --> 01:16:35,584