1 00:00:00,000 --> 00:00:08,250 2 00:00:08,250 --> 00:00:12,680 >> JASON HIRSCHHORN: Üdvözlünk mindenkit A fejezet hét. 3 00:00:12,680 --> 00:00:15,040 Mi vagyunk a hét hét a kurzus. 4 00:00:15,040 --> 00:00:18,440 És ez a következő csütörtök Halloween ezért vagyok 5 00:00:18,440 --> 00:00:21,420 öltözött fel, mint a tök. 6 00:00:21,420 --> 00:00:23,460 Nem tudtam lehajolni, és tegye a cipőmet, úgyhogy ezért vagyok 7 00:00:23,460 --> 00:00:25,660 csak visel zoknit. 8 00:00:25,660 --> 00:00:29,220 Én is nem visel semmit alá ezt, így nem tudom levenni, ha ez 9 00:00:29,220 --> 00:00:29,950 zavaró az Ön számára. 10 00:00:29,950 --> 00:00:31,860 Előre is elnézést ezért. 11 00:00:31,860 --> 00:00:33,170 Önnek nem kell elképzelni, mi folyik itt. 12 00:00:33,170 --> 00:00:34,240 Rajtam bokszolók. 13 00:00:34,240 --> 00:00:36,170 Szóval minden rendben. 14 00:00:36,170 --> 00:00:41,120 >> Van egy hosszabb történet arról, hogy miért vagyok öltözött, mint egy tök, de fogok 15 00:00:41,120 --> 00:00:45,110 kivéve, hogy később ebben a fejezetben mert én szeretnék elkezdeni. 16 00:00:45,110 --> 00:00:47,720 Van egy csomó izgalmas dolgot hogy menjen át ezen a héten. 17 00:00:47,720 --> 00:00:51,810 Legtöbbjük közvetlenül kapcsolódik ehhez a heti probléma meg, helyesírási hibák. 18 00:00:51,810 --> 00:00:54,680 Mi lesz megy át kapcsolódik listák és hash táblák 19 00:00:54,680 --> 00:00:57,160 A teljes szakaszt. 20 00:00:57,160 --> 00:01:02,490 Tettem ezt a listát minden héten, a lista forrásokat, hogy segítsen 21 00:01:02,490 --> 00:01:04,120 az anyag ezt a folyamatot. 22 00:01:04,120 --> 00:01:07,600 Ha veszteséges, vagy ha keres egy További információkért nézd meg az egyik 23 00:01:07,600 --> 00:01:09,930 ezeket a forrásokat. 24 00:01:09,930 --> 00:01:14,530 >> Ismét pset6 a helyesírási hibák, e heti Pset. 25 00:01:14,530 --> 00:01:17,690 És ez azt is ösztönzi, és én javasoljuk, hogy egy más 26 00:01:17,690 --> 00:01:20,320 forrásokat kifejezetten erre Pset. 27 00:01:20,320 --> 00:01:23,390 Különösen a három I ve szerepel a képernyőn - 28 00:01:23,390 --> 00:01:27,160 gdb, amit már ismerik és már használja egy ideje, az 29 00:01:27,160 --> 00:01:29,270 lesz nagyon hasznos ezen a héten. 30 00:01:29,270 --> 00:01:30,190 Így tettem, hogy akár itt. 31 00:01:30,190 --> 00:01:32,910 De amikor éppen dolgozik C, akkor mindig használni gdb 32 00:01:32,910 --> 00:01:34,430 programok hibakereséséhez. 33 00:01:34,430 --> 00:01:36,660 Ezen a héten is Valgrind. 34 00:01:36,660 --> 00:01:38,535 Tudja valaki, hogy mit valgrind csinál? 35 00:01:38,535 --> 00:01:42,184 36 00:01:42,184 --> 00:01:43,890 >> Közönség: Ellenőrzi a memória szivárgás? 37 00:01:43,890 --> 00:01:45,950 >> JASON HIRSCHHORN: Valgrind ellenőrzi a memóriavesztés. 38 00:01:45,950 --> 00:01:49,970 Tehát, ha malloc valami a programot, akkor kér memóriát. 39 00:01:49,970 --> 00:01:52,920 Végén a program, akkor írni, ingyenes mindent, amit 40 00:01:52,920 --> 00:01:54,800 malloced, hogy a memóriát vissza. 41 00:01:54,800 --> 00:01:58,420 Ha nem írok szabad a végén, és A program csak arra a következtetésre, 42 00:01:58,420 --> 00:02:00,000 Mindent automatikusan kell szabadítani. 43 00:02:00,000 --> 00:02:02,340 És a kis program, ez nem olyan nagy dolog. 44 00:02:02,340 --> 00:02:05,250 De ha írsz egy hosszabb futó program nem áll le, 45 00:02:05,250 --> 00:02:09,180 szükségképpen, egy pár percig, vagy a Pár másodpercig, majd memóriavesztés 46 00:02:09,180 --> 00:02:10,710 válhat egy hatalmas üzlet. 47 00:02:10,710 --> 00:02:14,940 >> Így pset6, az elvárás, hogy akkor nulla memória szivárgást 48 00:02:14,940 --> 00:02:15,910 a program. 49 00:02:15,910 --> 00:02:18,690 Ellenőrzéséhez memóriavesztés, fuss valgrind és kapsz néhány szép 50 00:02:18,690 --> 00:02:21,190 output hogy tudd, hogy a vagy nem minden szabad volt. 51 00:02:21,190 --> 00:02:23,940 Majd gyakorolsz később ma, remélhetőleg. 52 00:02:23,940 --> 00:02:25,790 >> Végül a diff parancs. 53 00:02:25,790 --> 00:02:28,900 Régebben valami ahhoz hasonló a pset5 a Peek eszközzel. 54 00:02:28,900 --> 00:02:30,780 Lehetővé tette, hogy belenézel. 55 00:02:30,780 --> 00:02:33,400 Azt is használják diff is, egy A probléma meg spec. 56 00:02:33,400 --> 00:02:35,950 De lehetővé tette, hogy összehasonlítani két fájlt. 57 00:02:35,950 --> 00:02:39,180 Lehet összehasonlítani a bitmap fájlt, és Dátum fejlécek a személyzet megoldást, és 58 00:02:39,180 --> 00:02:42,200 A megoldás pset5 ha úgy döntött, hogy használja azt. 59 00:02:42,200 --> 00:02:44,030 Diff lehetővé teszi, hogy csinálni, valamint. 60 00:02:44,030 --> 00:02:48,620 Össze lehet hasonlítani a helyes választ e heti probléma meg a választ 61 00:02:48,620 --> 00:02:52,210 és nézd meg, hogy vonalban vagy látni hol a hiba. 62 00:02:52,210 --> 00:02:55,870 >> Tehát ezek három jó eszközök akkor érdemes használni ezen a héten, és a 63 00:02:55,870 --> 00:02:58,130 feltétlenül nézd meg a program ezekkel a három eszköz 64 00:02:58,130 --> 00:03:00,520 mielőtt be! 65 00:03:00,520 --> 00:03:04,650 Ismét, mint már említettem, minden héten, ha bármilyen visszajelzést a számomra - mindkét 66 00:03:04,650 --> 00:03:06,470 pozitív és építő - 67 00:03:06,470 --> 00:03:09,930 nyugodtan a fejét, hogy a honlapon alján a dia 68 00:03:09,930 --> 00:03:11,270 és a bemeneti ott. 69 00:03:11,270 --> 00:03:13,440 Igazán hálás vagyok minden és az összes visszajelzést. 70 00:03:13,440 --> 00:03:17,360 És ha adsz nekem bizonyos dolgokat, hogy Meg tudom csinálni, hogy javítsa, vagy, hogy én vagyok 71 00:03:17,360 --> 00:03:21,350 jól, hogy szeretné, hogy továbbra is azt venni, hogy a szív-és 72 00:03:21,350 --> 00:03:24,040 Nagyon igyekszünk hallgatni a visszajelzéseket. 73 00:03:24,040 --> 00:03:27,720 Nem ígérhetek fogok csinálni mindent, bár, mint visel 74 00:03:27,720 --> 00:03:30,700 tök jelmez minden héten. 75 00:03:30,700 --> 00:03:34,020 >> Így fogunk költeni a nagy részét rész, mint már említettem, beszélek 76 00:03:34,020 --> 00:03:37,240 kapcsolt listák és hash táblák, melyek közvetlenül alkalmazandó, az 77 00:03:37,240 --> 00:03:38,780 probléma meg ezen a héten. 78 00:03:38,780 --> 00:03:42,580 Csatolt listák megyünk át viszonylag gyorsan, mert már töltöttem egy tisztességes darab 79 00:03:42,580 --> 00:03:44,930 Az idő megy át azt a részt. 80 00:03:44,930 --> 00:03:48,680 És hogy mi lesz egyenesen a kódolási problémák láncolt listák. 81 00:03:48,680 --> 00:03:52,740 És akkor a végén fogunk beszélni, hash táblák és hogyan kell alkalmazni erre 82 00:03:52,740 --> 00:03:55,280 heti probléma meg. 83 00:03:55,280 --> 00:03:57,560 >> Láttad ezt a kódot korábban. 84 00:03:57,560 --> 00:04:02,730 Ez egy olyan struktúra, és ez meghatározó valami új, úgynevezett csomópontot. 85 00:04:02,730 --> 00:04:10,660 És belsejében egy csomópont van egy egész szám itt és van egy mutató 86 00:04:10,660 --> 00:04:11,830 másik csomópont. 87 00:04:11,830 --> 00:04:12,790 Már láttam ilyet. 88 00:04:12,790 --> 00:04:14,830 Ezt már jön fel Egy pár hete. 89 00:04:14,830 --> 00:04:18,680 Egyesíti a mutató, amit már dolgozik, és struktúrákat, amelyek lehetővé teszik 90 00:04:18,680 --> 00:04:22,079 számunkra, hogy összekapcsolják a két különböző a dolgok egy adat típusát. 91 00:04:22,079 --> 00:04:24,830 92 00:04:24,830 --> 00:04:26,490 >> Van egy csomó folyik a képernyőn. 93 00:04:26,490 --> 00:04:30,220 De minden meg kell viszonylag ismerik meg. 94 00:04:30,220 --> 00:04:33,810 Az első sorban, akkor kijelentik, egy új csomópont. 95 00:04:33,810 --> 00:04:41,650 És akkor benne, hogy az új csomópont, én meg az egész, hogy a csomópont egy. 96 00:04:41,650 --> 00:04:44,950 Látjuk a következő sorban csinálok egy printf parancsot, de én szürkítve 97 00:04:44,950 --> 00:04:48,080 A printf parancsot, mert az igazán Fontos része ez a vonal itt - 98 00:04:48,080 --> 00:04:50,020 new_node.n. 99 00:04:50,020 --> 00:04:51,270 Mit jelent a dot jelent? 100 00:04:51,270 --> 00:04:53,810 101 00:04:53,810 --> 00:04:57,240 >> Közönség: Menj a csomópont és értékeli az n értéket is. 102 00:04:57,240 --> 00:04:58,370 >> JASON HIRSCHHORN: Ez pontosan így van. 103 00:04:58,370 --> 00:05:03,300 Pont azt jelenti, elérheti a n részt Ennek az új csomópontot. 104 00:05:03,300 --> 00:05:05,690 Ez a következő sor mit csinál? 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 >> Közönség: teremt egy másik csomópont hogy fog mutatni az új csomópontot. 108 00:05:21,910 --> 00:05:24,870 >> JASON HIRSCHHORN: így nem hozzon létre egy új csomópontot. 109 00:05:24,870 --> 00:05:26,120 Ez létrehoz egy mi? 110 00:05:26,120 --> 00:05:28,300 111 00:05:28,300 --> 00:05:29,300 >> Közönség: A mutató. 112 00:05:29,300 --> 00:05:33,460 >> JASON HIRSCHHORN: A mutató egy csomópont, amint az a csomópont * itt. 113 00:05:33,460 --> 00:05:34,800 Tehát ez létrehoz egy mutatót egy csomóponthoz. 114 00:05:34,800 --> 00:05:37,490 És melyik csomópont azt mutat az, Michael? 115 00:05:37,490 --> 00:05:38,440 >> Közönség: Új csomópont? 116 00:05:38,440 --> 00:05:39,240 >> JASON HIRSCHHORN: új csomópontot. 117 00:05:39,240 --> 00:05:43,020 És ez mutat ott, mert mi már adta azt a címet az új csomópont. 118 00:05:43,020 --> 00:05:45,820 És most ebben a sorban látjuk két különböző módon 119 00:05:45,820 --> 00:05:46,910 kifejező ugyanezt. 120 00:05:46,910 --> 00:05:49,650 És szerettem volna rámutatni, hogy ezek a két dolog ugyanaz. 121 00:05:49,650 --> 00:05:54,740 Az első sorban, mi feloldási a mutatót. 122 00:05:54,740 --> 00:05:55,830 Szóval, megyünk a csomópontot. 123 00:05:55,830 --> 00:05:56,830 Ez az, amit ez a csillag jelent. 124 00:05:56,830 --> 00:05:57,930 Láttuk, hogy a korábban a mutató. 125 00:05:57,930 --> 00:05:59,280 Megy, hogy a csomópont. 126 00:05:59,280 --> 00:06:00,370 Ez zárójelben. 127 00:06:00,370 --> 00:06:04,610 És akkor hozzáférhet keresztül dot üzemeltető n eleme a csomópont. 128 00:06:04,610 --> 00:06:08,430 >> Tehát, hogy a vevő a szintaxis láttuk, itt és most 129 00:06:08,430 --> 00:06:09,670 használja a mutató. 130 00:06:09,670 --> 00:06:13,730 Persze, hogy lesz olyan elfoglalt, ha írsz ezek a zárójelek - 131 00:06:13,730 --> 00:06:14,940 hogy a csillag és a dot. 132 00:06:14,940 --> 00:06:16,220 Ez lesz egy kicsit zsúfolt. 133 00:06:16,220 --> 00:06:18,500 Tehát van egy kis szintaktikai cukor. 134 00:06:18,500 --> 00:06:19,920 És ezt a sort itt - 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 Hogy nem pontosan ugyanolyan dolog. 138 00:06:28,000 --> 00:06:30,840 Tehát a két sornyi kódot egyenértékű és fog tenni 139 00:06:30,840 --> 00:06:31,650 pontosan ugyanaz a dolog. 140 00:06:31,650 --> 00:06:34,210 >> De azt akartam, hogy pont azokat, mielőtt mennénk tovább, így érthető 141 00:06:34,210 --> 00:06:39,000 Tényleg ez a dolog itt a csak szintaktikai cukor dereferencing 142 00:06:39,000 --> 00:06:44,200 a mutató, majd megy n része, hogy a struktúra. 143 00:06:44,200 --> 00:06:45,525 Bármilyen kérdése erről a slide? 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 >> Így fogunk átmenni egy pár A művelet, amit tehetünk a 147 00:06:58,510 --> 00:06:59,730 kapcsolt listák. 148 00:06:59,730 --> 00:07:05,770 A láncolt lista, emlékszem, egy sor csomópontok, hogy pont az egymással. 149 00:07:05,770 --> 00:07:12,470 És általában kezdeni a mutató úgynevezett fej, általában, hogy pont 150 00:07:12,470 --> 00:07:14,040 Az első dolog a listán. 151 00:07:14,040 --> 00:07:18,900 Tehát az első sorban itt, megvan az eredeti L először. 152 00:07:18,900 --> 00:07:21,370 Tehát azt, amit gondol - ez szöveg itt tud gondolni, mint 153 00:07:21,370 --> 00:07:23,560 csak a mutató már tárolt valahol, hogy pontokat 154 00:07:23,560 --> 00:07:24,670 az első elem. 155 00:07:24,670 --> 00:07:27,500 És ebben a láncolt lista már négy csomópont. 156 00:07:27,500 --> 00:07:29,530 Minden csomópont egy nagy doboz. 157 00:07:29,530 --> 00:07:33,430 A nagyobb doboz belsejében nagy doboz az egész része. 158 00:07:33,430 --> 00:07:37,400 És akkor van egy mutató része. 159 00:07:37,400 --> 00:07:39,630 >> Ezek a dobozok nem állítják, hogy skála, mert mekkora 160 00:07:39,630 --> 00:07:42,320 egy egész byte? 161 00:07:42,320 --> 00:07:43,290 Mekkora most? 162 00:07:43,290 --> 00:07:43,710 Four. 163 00:07:43,710 --> 00:07:45,470 És milyen nagy ez a mutató? 164 00:07:45,470 --> 00:07:45,940 Four. 165 00:07:45,940 --> 00:07:48,180 Szóval tényleg, ha mi voltunk, hogy dolgozzon ez a skála mindkét dobozok 166 00:07:48,180 --> 00:07:49,690 lenne az azonos méretű. 167 00:07:49,690 --> 00:07:52,870 Ebben az esetben azt a beszúrni kívánt valamit a láncolt lista. 168 00:07:52,870 --> 00:07:57,190 Tehát látható, itt vagyunk behelyezése Öt Mi áthalad a 169 00:07:57,190 --> 00:08:01,310 láncolt lista, megtalálni, ahol az öt megy, majd helyezze. 170 00:08:01,310 --> 00:08:03,560 >> Nézzük, hogy le, és menj egy kicsit lassabban. 171 00:08:03,560 --> 00:08:05,510 Fogom mutatni, hogy a fórumon. 172 00:08:05,510 --> 00:08:09,930 Tehát a node öt, hogy általunk létrehozott mallocs. 173 00:08:09,930 --> 00:08:11,190 Miért mindenki nevetett? 174 00:08:11,190 --> 00:08:12,130 Csak vicceltem. 175 00:08:12,130 --> 00:08:13,310 OK. 176 00:08:13,310 --> 00:08:14,820 Így már malloced öt. 177 00:08:14,820 --> 00:08:16,310 Már létre ezt a csomópontot valahol máshol. 178 00:08:16,310 --> 00:08:17,740 Van, hogy kész. 179 00:08:17,740 --> 00:08:20,130 Kezdjük az elején a listát a kettő. 180 00:08:20,130 --> 00:08:22,380 És szeretnénk beszúrni egy rendezett módon. 181 00:08:22,380 --> 00:08:27,550 >> Tehát, ha azt látjuk, a két, és azt akarjuk, hogy öt, mit teszünk, ha látni 182 00:08:27,550 --> 00:08:28,800 valamivel kevesebb, mint mi? 183 00:08:28,800 --> 00:08:31,850 184 00:08:31,850 --> 00:08:33,520 Mi az? 185 00:08:33,520 --> 00:08:36,750 Azt szeretné szúrni öt ebbe láncolt lista, tartása sorrendje. 186 00:08:36,750 --> 00:08:37,520 Látjuk a kettes számú. 187 00:08:37,520 --> 00:08:38,769 Szóval, mit tegyünk? 188 00:08:38,769 --> 00:08:39,179 Marcus? 189 00:08:39,179 --> 00:08:40,679 >> Közönség: Hívja a mutató a következő csomópontot. 190 00:08:40,679 --> 00:08:42,530 >> JASON HIRSCHHORN: És miért megyünk a következő? 191 00:08:42,530 --> 00:08:45,970 >> Közönség: Mert ez az következő csomópont a listán. 192 00:08:45,970 --> 00:08:48,310 És csak annyit tudunk, hogy a másik helyen. 193 00:08:48,310 --> 00:08:50,410 >> JASON HIRSCHHORN: Öt nagyobb mint két, különösen. 194 00:08:50,410 --> 00:08:51,600 Mert azt akarjuk tartani rendezve. 195 00:08:51,600 --> 00:08:52,730 Tehát öt nagyobb, mint kettő. 196 00:08:52,730 --> 00:08:54,460 Tehát lépni a következőre. 197 00:08:54,460 --> 00:08:55,240 És most érünk négy. 198 00:08:55,240 --> 00:08:56,490 És mi történik, ha eléri a négy? 199 00:08:56,490 --> 00:08:58,920 200 00:08:58,920 --> 00:09:00,310 >> Öt nagyobb, mint négy. 201 00:09:00,310 --> 00:09:01,460 Így folyamatosan megy. 202 00:09:01,460 --> 00:09:03,110 És most itt vagyunk hat. 203 00:09:03,110 --> 00:09:04,360 És mit látunk hat? 204 00:09:04,360 --> 00:09:08,672 205 00:09:08,672 --> 00:09:09,608 Igen, Carlos? 206 00:09:09,608 --> 00:09:10,544 >> KÖZÖNSÉG: Hat nagyobb, mint öt. 207 00:09:10,544 --> 00:09:11,480 >> JASON HIRSCHHORN: Six nagyobb, mint öt. 208 00:09:11,480 --> 00:09:13,660 Szóval, ez az, ahol szeretnénk beszúrni öt. 209 00:09:13,660 --> 00:09:17,320 Azonban ne feledje, hogy ha csak egy mutató itt - 210 00:09:17,320 --> 00:09:19,840 ez a mi külön mutató, ami áthaladó végig a listát. 211 00:09:19,840 --> 00:09:21,860 És mi mutat hat. 212 00:09:21,860 --> 00:09:25,010 Elvesztettük követni, mi előbb hat. 213 00:09:25,010 --> 00:09:29,130 Tehát ha azt akarjuk beszúrni valamit ezen a listán tartása sorrendje, akkor 214 00:09:29,130 --> 00:09:31,630 valószínűleg szükség van, hogy sok mutató? 215 00:09:31,630 --> 00:09:32,280 >> Közönség: Kettő. 216 00:09:32,280 --> 00:09:32,920 >> JASON HIRSCHORN: Two. 217 00:09:32,920 --> 00:09:35,720 Egy nyomon követni az aktuális egy és nyomon követni a 218 00:09:35,720 --> 00:09:37,050 az előzőt. 219 00:09:37,050 --> 00:09:38,450 Ez csak egy egyszeresen láncolt lista. 220 00:09:38,450 --> 00:09:39,670 Ez csak az egyik irányban megy. 221 00:09:39,670 --> 00:09:43,220 Ha volt egy kétszeresen láncolt lista, ahol a mindent rámutatva, hogy a dolog 222 00:09:43,220 --> 00:09:46,240 után és a dolog előtt, majd akkor nem kell csinálni. 223 00:09:46,240 --> 00:09:49,350 De ebben az esetben nem akarjuk elveszíteni követni, mi jött elénk esetén 224 00:09:49,350 --> 00:09:53,350 kell beszúrni öt valahol a közepén. 225 00:09:53,350 --> 00:09:55,610 Mondjuk mi behelyezése kilenc. 226 00:09:55,610 --> 00:09:57,260 Mi történne, ha a kaptunk nyolc? 227 00:09:57,260 --> 00:10:01,860 228 00:10:01,860 --> 00:10:04,880 >> Közönség: Meg kéne kap, hogy a null pontot. 229 00:10:04,880 --> 00:10:07,820 Ahelyett, hogy null pont akkor volna hozzá egy elemet és utána 230 00:10:07,820 --> 00:10:09,216 ez pont kilenc. 231 00:10:09,216 --> 00:10:09,700 >> JASON HIRSCHORN: Pontosan. 232 00:10:09,700 --> 00:10:10,600 Így kap nyolc. 233 00:10:10,600 --> 00:10:13,140 Elérjük a végét a listán, mert ez mutat null. 234 00:10:13,140 --> 00:10:16,330 És most, ahelyett, hogy pont null van ez pont a mi új csomópontot. 235 00:10:16,330 --> 00:10:19,870 És mi meg a mutatót Az új csomópont null. 236 00:10:19,870 --> 00:10:21,445 Van valakinek kérdése behelyezésével? 237 00:10:21,445 --> 00:10:25,620 238 00:10:25,620 --> 00:10:28,100 Mi van, ha nem érdekel tartva a rendezett lista? 239 00:10:28,100 --> 00:10:31,701 240 00:10:31,701 --> 00:10:34,350 >> Közönség: Dobd a elején vagy végén. 241 00:10:34,350 --> 00:10:35,510 >> JASON HIRSCHORN: Stick azt az elején vagy a végén. 242 00:10:35,510 --> 00:10:37,276 Melyiket kellene tennünk? 243 00:10:37,276 --> 00:10:38,770 Bobby? 244 00:10:38,770 --> 00:10:41,020 Miért a végén? 245 00:10:41,020 --> 00:10:43,250 >> Közönség: mert az elején már ki van töltve. 246 00:10:43,250 --> 00:10:43,575 >> JASON HIRSCHORN: OK. 247 00:10:43,575 --> 00:10:44,360 Az elején már ki van töltve. 248 00:10:44,360 --> 00:10:46,090 Ki akar vitatkozni ellen Bobby. 249 00:10:46,090 --> 00:10:47,290 Marcus. 250 00:10:47,290 --> 00:10:48,910 >> Közönség: Nos, akkor érdemes kibír az elején, mert 251 00:10:48,910 --> 00:10:50,140 Különben, ha ez az érték A végén azt kell 252 00:10:50,140 --> 00:10:51,835 áthalad a teljes lista. 253 00:10:51,835 --> 00:10:52,990 >> JASON HIRSCHORN: Pontosan. 254 00:10:52,990 --> 00:10:57,970 Tehát, ha gondolkodik runtime, a runtime behelyezése a végén 255 00:10:57,970 --> 00:11:00,110 n lenne, a mérete. 256 00:11:00,110 --> 00:11:03,080 Mi ez a nagy O futási behelyezése az elején? 257 00:11:03,080 --> 00:11:04,170 Állandó időben. 258 00:11:04,170 --> 00:11:07,075 Tehát, ha nem érdekel vezetése valami sorrendje, sokkal jobb, hogy csak 259 00:11:07,075 --> 00:11:08,420 helyezze elején a lista. 260 00:11:08,420 --> 00:11:10,320 És, hogy lehet tenni konstans id. 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 Következő művelet megtalálni, ami a többi - már megfogalmazott ezt a keresést. 264 00:11:18,870 --> 00:11:22,470 De megyünk, hogy nézze át a láncolt lista néhány tárgyat. 265 00:11:22,470 --> 00:11:26,000 Srácok, láttam kódot keresés előtt előadás. 266 00:11:26,000 --> 00:11:29,490 De mi a fajta, csak tette a be, vagy legalábbis behelyezése 267 00:11:29,490 --> 00:11:30,580 valami rendezve. 268 00:11:30,580 --> 00:11:36,350 Akkor nézd át, majd csomópont a csomópont, amíg meg nem találja a számot, hogy te 269 00:11:36,350 --> 00:11:37,780 keres. 270 00:11:37,780 --> 00:11:39,670 Mi történik, ha eléri a végén a lista? 271 00:11:39,670 --> 00:11:43,020 Mondd keresek kilenc és elérjük a végét a lista. 272 00:11:43,020 --> 00:11:44,270 Mit csináljunk? 273 00:11:44,270 --> 00:11:47,147 274 00:11:47,147 --> 00:11:48,110 >> Közönség: return false? 275 00:11:48,110 --> 00:11:48,690 >> JASON HIRSCHORN: return false. 276 00:11:48,690 --> 00:11:49,960 Nem találom. 277 00:11:49,960 --> 00:11:52,010 Ha elérjük a végét, a lista és a nem találja a számot, amit 278 00:11:52,010 --> 00:11:54,170 keres, nincs benne. 279 00:11:54,170 --> 00:11:55,420 Minden kérdést meg? 280 00:11:55,420 --> 00:11:59,530 281 00:11:59,530 --> 00:12:04,615 Ha ez egy rendezett lista, mi lenne eltérő lehet a keresést? 282 00:12:04,615 --> 00:12:07,370 283 00:12:07,370 --> 00:12:08,103 Igen. 284 00:12:08,103 --> 00:12:10,600 >> Közönség: Ez meg az első érték ez nagyobb, mint az egy 285 00:12:10,600 --> 00:12:12,390 keres és majd vissza hamis. 286 00:12:12,390 --> 00:12:13,190 >> JASON HIRSCHORN: Pontosan. 287 00:12:13,190 --> 00:12:17,310 Tehát ha ez egy rendezett lista, ha eljutunk valamit, ami nagyobb, mint amit 288 00:12:17,310 --> 00:12:20,180 keresünk, nem kell, hogy menj a lista végére. 289 00:12:20,180 --> 00:12:24,060 Mi is ezen a ponton return false mert nem fogjuk megtalálni. 290 00:12:24,060 --> 00:12:27,340 A kérdés most, beszéltünk tartva kapcsolt listák sorrendje, 291 00:12:27,340 --> 00:12:28,180 tartása rendezetlen. 292 00:12:28,180 --> 00:12:30,050 Az lesz, amit te valószínűleg meg kell gondolni, 293 00:12:30,050 --> 00:12:34,240 amikor a kódolási probléma meg öt, ha válasszon egy hash tábla külön 294 00:12:34,240 --> 00:12:36,360 láncolás megközelítést, amely fogunk beszélni később. 295 00:12:36,360 --> 00:12:41,400 >> De megéri, hogy a lista rendezett és így képes lesz, hogy talán még 296 00:12:41,400 --> 00:12:42,310 gyorsabb keresést? 297 00:12:42,310 --> 00:12:47,220 Vagy jobb, ha gyorsan be valami állandó runtime, de aztán 298 00:12:47,220 --> 00:12:48,430 hosszabb keres? 299 00:12:48,430 --> 00:12:52,250 Ez egy üzlet, ott, amit kap eldönteni, hogy mi a megfelelőbb 300 00:12:52,250 --> 00:12:53,590 az adott problémát. 301 00:12:53,590 --> 00:12:56,680 És ez nem feltétlenül egy teljesen helyes választ. 302 00:12:56,680 --> 00:12:59,520 De ez persze egy döntés, amit kap tenni, és valószínűleg jó, hogy megvédje 303 00:12:59,520 --> 00:13:05,270 hogy, mondjuk, egy-két megjegyzést, hogy miért úgy döntött, az egyik vagy a másik. 304 00:13:05,270 --> 00:13:06,490 >> Végül, törlése. 305 00:13:06,490 --> 00:13:08,100 Láttuk törlését. 306 00:13:08,100 --> 00:13:09,180 Ez hasonló a keresést. 307 00:13:09,180 --> 00:13:11,020 Keresünk az elem. 308 00:13:11,020 --> 00:13:12,390 Mondjuk próbálunk törölni hat. 309 00:13:12,390 --> 00:13:14,450 Úgy találjuk, hat itt. 310 00:13:14,450 --> 00:13:18,860 A dolog, hogy van, hogy megbizonyosodjon arról, hogy nem az, hogy bármit is mutat 311 00:13:18,860 --> 00:13:21,220 hat - mint látjuk lépésben két ide - 312 00:13:21,220 --> 00:13:26,500 bármi is mutat, hogy hat igényeket hagyja hat most és változtatható 313 00:13:26,500 --> 00:13:28,160 amit hat mutat. 314 00:13:28,160 --> 00:13:31,410 Nem akarjuk, hogy valaha is árva a többi a listát elfelejti beállítani, hogy 315 00:13:31,410 --> 00:13:32,960 előző mutató. 316 00:13:32,960 --> 00:13:35,960 Aztán néha, attól A program akkor majd csak 317 00:13:35,960 --> 00:13:37,380 törölni ezt a csomópont teljesen. 318 00:13:37,380 --> 00:13:40,135 Néha akkor akar visszatérni az érték, hogy van ebben a csomópontban. 319 00:13:40,135 --> 00:13:42,490 Szóval így törli működik. 320 00:13:42,490 --> 00:13:44,610 Bármilyen kérdése a törölni? 321 00:13:44,610 --> 00:13:51,280 322 00:13:51,280 --> 00:13:53,850 >> Közönség: Tehát, ha akarsz törölni akkor lenne csak használja szabad, mert 323 00:13:53,850 --> 00:13:55,655 feltehetően ez volt malloced? 324 00:13:55,655 --> 00:13:57,976 >> JASON HIRSCHORN: Ha azt szeretné, hogy szabad valamit, ami pontosan így van, és 325 00:13:57,976 --> 00:13:58,540 malloced azt. 326 00:13:58,540 --> 00:14:00,410 Mondjuk volna vissza ezt az értéket. 327 00:14:00,410 --> 00:14:04,010 Lehet, hogy vissza hat majd a szabad ez a csomópont és a hívás ingyenes rajta. 328 00:14:04,010 --> 00:14:06,180 Vagy mi lenne talán hívás ingyenes első majd vissza hat. 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 Akkor térjünk rá a gyakorlatban kódolás. 332 00:14:14,010 --> 00:14:16,090 Fogunk kódot három funkció. 333 00:14:16,090 --> 00:14:18,260 Az első az úgynevezett insert_node. 334 00:14:18,260 --> 00:14:22,170 Szóval kódot, amit e-mailben neked, és ha nézed ezt később 335 00:14:22,170 --> 00:14:28,020 el tudja érni a kódot linked.c A CS50 honlapján. 336 00:14:28,020 --> 00:14:30,880 De linked.c, van egy kis csontváz kód, ami már 337 00:14:30,880 --> 00:14:32,280 írtak az Ön számára. 338 00:14:32,280 --> 00:14:34,560 És akkor ott van egy-két funkció meg kell írni. 339 00:14:34,560 --> 00:14:36,380 >> Először megyünk levelet insert_node. 340 00:14:36,380 --> 00:14:39,800 És mi insert_node csinál IS beszúr egy egész szám. 341 00:14:39,800 --> 00:14:42,440 És te, hogy a egész egy láncolt lista. 342 00:14:42,440 --> 00:14:45,470 És főleg, meg kell , hogy a rendezett lista 343 00:14:45,470 --> 00:14:47,650 a legkisebbtől a legnagyobbig. 344 00:14:47,650 --> 00:14:51,360 Továbbá, ha nem akar helyezzen be ismétli. 345 00:14:51,360 --> 00:14:54,600 Végül, mint látod insert_node vissza bool. 346 00:14:54,600 --> 00:14:57,140 Szóval kéne, hogy a felhasználó tudja, e vagy sem a betét volt 347 00:14:57,140 --> 00:15:00,800 sikeres visszaküldésével igaz vagy hamis. 348 00:15:00,800 --> 00:15:02,580 Végén a program - 349 00:15:02,580 --> 00:15:05,750 , és ebben a szakaszban nem szükséges aggódni felszabadítása semmit. 350 00:15:05,750 --> 00:15:11,790 Tehát minden, amit tesz, vesz egy egész szám és helyezze be a listát. 351 00:15:11,790 --> 00:15:13,890 >> Ez az, amit kérek, hogy nem most. 352 00:15:13,890 --> 00:15:17,620 Ismét a linked.c, amit mind, a csontváz kódot. 353 00:15:17,620 --> 00:15:20,980 És látnod kell alja felé A minta függvény deklaráció. 354 00:15:20,980 --> 00:15:27,390 Azonban mielőtt a kódolás is C, én nagyon javasoljuk, hogy menjen 355 00:15:27,390 --> 00:15:29,330 azokon a lépéseken voltunk gyakorló minden héten. 356 00:15:29,330 --> 00:15:31,100 Már ment keresztül ennek egy képet. 357 00:15:31,100 --> 00:15:33,380 Így kell egy kis megértést Az, hogy ez hogyan működik. 358 00:15:33,380 --> 00:15:36,590 De azt javasoljuk, hogy írni Néhány pszeudokódját merülés előtt be 359 00:15:36,590 --> 00:15:38,640 És fogunk menni át pszeudokódját mint egy csoport. 360 00:15:38,640 --> 00:15:41,470 És ha egyszer megírtad a pszeudokódját, és ha egyszer már írt a 361 00:15:41,470 --> 00:15:45,850 pszeudokódját mint egy csoport, akkor bemegy kódolás azt C. 362 00:15:45,850 --> 00:15:49,980 >> A heads-up, a insert_node funkció talán a legnehezebb a 363 00:15:49,980 --> 00:15:53,550 A három fogunk írni, mert én hozzá néhány további korlátok 364 00:15:53,550 --> 00:15:57,190 a programozás, különösen azt, hogy akkor nem fog helyezzen 365 00:15:57,190 --> 00:15:59,880 ismétlődések és a lista továbbra is rendezett. 366 00:15:59,880 --> 00:16:02,660 Tehát ez egy nem triviális programban hogy meg kell kódot. 367 00:16:02,660 --> 00:16:06,470 És miért nem veszi 06:55 percig csak, hogy dolgozik a 368 00:16:06,470 --> 00:16:07,640 pszeudokódja és a kódot. 369 00:16:07,640 --> 00:16:09,460 És akkor kezdjük megy, mint egy csoport. 370 00:16:09,460 --> 00:16:11,680 Ismét, ha bármilyen kérdése van csak emeld fel a kezed, és én majd magához tér. 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 >> Azt is, ezt általában - 375 00:18:30,120 --> 00:18:32,070 vagy én nem kifejezetten mondja, tud dolgozni az emberek. 376 00:18:32,070 --> 00:18:36,500 De természetesen, én nagyon javasoljuk, Ha kérdése van, hogy kérje fel a 377 00:18:36,500 --> 00:18:39,840 szomszéd ül melletted vagy akár dolgozni valakivel 378 00:18:39,840 --> 00:18:40,510 mást, ha akarsz. 379 00:18:40,510 --> 00:18:42,600 Ez nem kell, hogy az egyén csendes tevékenység. 380 00:18:42,600 --> 00:20:11,770 381 00:20:11,770 --> 00:20:16,330 >> Kezdjük írásban néhány pszeudokódja a táblán. 382 00:20:16,330 --> 00:20:19,395 Ki tud adni nekem az első sorban a pszeudokódját a program? 383 00:20:19,395 --> 00:20:22,240 384 00:20:22,240 --> 00:20:23,640 Ehhez a funkcióhoz, hanem - 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 >> Közönség: Tehát az első dolgom az volt, hozzon létre egy új mutatót a csomópontot, és én 388 00:20:36,560 --> 00:20:41,320 inicializálja azt mutat az azonos dolog, hogy a lista mutat. 389 00:20:41,320 --> 00:20:41,550 >> JASON HIRSCHORN: OK. 390 00:20:41,550 --> 00:20:45,190 Szóval egy új mutatót a listához, hogy ne a csomópontot. 391 00:20:45,190 --> 00:20:45,420 >> Közönség: Rendben. 392 00:20:45,420 --> 00:20:46,150 Igen. 393 00:20:46,150 --> 00:20:46,540 >> JASON HIRSCHORN: OK. 394 00:20:46,540 --> 00:20:48,221 És akkor mit akarunk csinálni? 395 00:20:48,221 --> 00:20:49,163 Mi után? 396 00:20:49,163 --> 00:20:50,105 Mi a helyzet a csomópont? 397 00:20:50,105 --> 00:20:51,050 Jelenleg nincs egy csomópont. 398 00:20:51,050 --> 00:20:52,300 Mi csak egy értéket. 399 00:20:52,300 --> 00:20:55,918 400 00:20:55,918 --> 00:20:58,890 Ha azt szeretné szúrni egy csomópont, mit is kell tennie, mielőtt mi is 401 00:20:58,890 --> 00:20:59,980 gondolj helyezze? 402 00:20:59,980 --> 00:21:00,820 >> KÖZÖNSÉG Ó, sajnálom. 403 00:21:00,820 --> 00:21:02,160 kell malloc helyet egy csomópont. 404 00:21:02,160 --> 00:21:02,455 >> JASON HIRSCHORN: Kiváló. 405 00:21:02,455 --> 00:21:03,210 Csináljuk - 406 00:21:03,210 --> 00:21:04,628 OK. 407 00:21:04,628 --> 00:21:06,065 Nem tudja elérni, hogy a magas. 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 Fogunk lemenni, majd a mi két oszlopban. 411 00:21:13,236 --> 00:21:13,732 Nem tudok menni, hogy - 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 Hozzon létre egy új csomópontot. 415 00:21:25,130 --> 00:21:29,380 Tudod teremt egy másik mutató a listára vagy ha csak használni lista létezik. 416 00:21:29,380 --> 00:21:30,720 Te tényleg nem kell csinálni. 417 00:21:30,720 --> 00:21:31,750 >> Tehát egy új csomópontot. 418 00:21:31,750 --> 00:21:32,010 Remek. 419 00:21:32,010 --> 00:21:32,840 Ez az, amit nem először. 420 00:21:32,840 --> 00:21:34,870 Mi a következő lépés? 421 00:21:34,870 --> 00:21:35,080 >> Közönség: Várjon. 422 00:21:35,080 --> 00:21:38,330 Ha létrehozunk egy új csomópontot most vagy kellene várni, hogy megbizonyosodjon arról, hogy az 423 00:21:38,330 --> 00:21:42,260 ott nem lehet azonos a csomópont a listán, mielőtt létrehozni? 424 00:21:42,260 --> 00:21:43,100 >> JASON HIRSCHORN: Jó kérdés. 425 00:21:43,100 --> 00:21:47,770 Nézzük meg, hogy később, mert a legtöbb időt fogunk létrehozni 426 00:21:47,770 --> 00:21:48,220 egy új csomópont. 427 00:21:48,220 --> 00:21:49,110 Így fogjuk tartani, hogy itt van. 428 00:21:49,110 --> 00:21:51,006 De ez egy jó kérdés. 429 00:21:51,006 --> 00:21:53,250 Ha létre, és találunk egy másolatot, mit kell 430 00:21:53,250 --> 00:21:54,490 mi, mielőtt visszatér? 431 00:21:54,490 --> 00:21:55,190 >> Közönség: kiszabadítani. 432 00:21:55,190 --> 00:21:55,470 >> JASON HIRSCHORN: Igen. 433 00:21:55,470 --> 00:21:56,500 Valószínűleg kiszabadítani. 434 00:21:56,500 --> 00:21:56,760 OK. 435 00:21:56,760 --> 00:21:59,850 Mit tegyünk, miután hozzon létre egy új csomópont? 436 00:21:59,850 --> 00:22:02,260 Annie? 437 00:22:02,260 --> 00:22:04,780 >> Közönség: Azt hogy a szám a csomópont? 438 00:22:04,780 --> 00:22:05,140 >> JASON HIRSCHORN: Pontosan. 439 00:22:05,140 --> 00:22:07,190 Azt hogy a szám - mi malloc helyet. 440 00:22:07,190 --> 00:22:08,160 Fogom hagyni, hogy minden egy sorba. 441 00:22:08,160 --> 00:22:08,720 De igazad van. 442 00:22:08,720 --> 00:22:10,305 Mi malloc tér, majd a tesszük be a számot 443 00:22:10,305 --> 00:22:12,585 Azt is meg a mutatót része null. 444 00:22:12,585 --> 00:22:13,720 Ez pontosan így van. 445 00:22:13,720 --> 00:22:17,400 És akkor mi van utána? 446 00:22:17,400 --> 00:22:18,490 Felhívtuk ezt a képet a táblán. 447 00:22:18,490 --> 00:22:21,190 Szóval, mit tegyünk? 448 00:22:21,190 --> 00:22:22,680 >> Közönség: megyünk végig a listát. 449 00:22:22,680 --> 00:22:23,930 >> JASON HIRSCHORN: Menj át a listát. 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 És mit ellenőrizni minden csomópontban. 453 00:22:34,280 --> 00:22:35,955 Kurt mit ellenőrizni az egyes csomópont? 454 00:22:35,955 --> 00:22:41,640 >> Közönség: Lásd, hogy az n értékét amely csomópont nagyobb, mint az n értékhez 455 00:22:41,640 --> 00:22:43,070 mi csomópont. 456 00:22:43,070 --> 00:22:43,340 >> JASON HIRSCHORN: OK. 457 00:22:43,340 --> 00:22:44,280 Azt fogom tenni - 458 00:22:44,280 --> 00:22:45,855 igen, az OK gombra. 459 00:22:45,855 --> 00:22:48,160 Tehát n - 460 00:22:48,160 --> 00:22:59,040 Azt fogom mondani, ha az érték nagyobb, mint ez a csomópont, akkor mit csinálunk? 461 00:22:59,040 --> 00:23:07,290 >> Közönség: Nos, akkor be A dolog van előtte. 462 00:23:07,290 --> 00:23:07,970 >> JASON HIRSCHORN: OK. 463 00:23:07,970 --> 00:23:09,410 Tehát, ha ez nagyobb, mint ez, akkor szeretnénk beszúrni. 464 00:23:09,410 --> 00:23:14,010 De azt akarjuk, hogy helyezze mielőtt mert mi is lenne szükség 465 00:23:14,010 --> 00:23:16,070 követi nyomon, majd, mi volt korábban. 466 00:23:16,070 --> 00:23:22,690 Így be korábban. 467 00:23:22,690 --> 00:23:25,120 Tehát valószínűleg valami elkerülte korábban. 468 00:23:25,120 --> 00:23:27,770 Valószínűleg meg kell tartani követni, hogy mi folyik itt. 469 00:23:27,770 --> 00:23:28,460 De mi lesz vissza. 470 00:23:28,460 --> 00:23:30,160 Tehát mi értéke kevesebb, mint? 471 00:23:30,160 --> 00:23:38,030 472 00:23:38,030 --> 00:23:39,710 Kurt, mit tegyünk, ha értéke kisebb, mint a? 473 00:23:39,710 --> 00:23:43,000 >> Közönség: Akkor csak menj kivéve, ha ez az utolsó. 474 00:23:43,000 --> 00:23:43,550 >> JASON HIRSCHORN: Ez tetszik. 475 00:23:43,550 --> 00:23:44,800 Így megy a következő csomópontot. 476 00:23:44,800 --> 00:23:47,410 477 00:23:47,410 --> 00:23:48,930 Hacsak nem az utolsó - 478 00:23:48,930 --> 00:23:51,100 mi valószínűleg ellenőrzése, hogy a szempontból egy állapot. 479 00:23:51,100 --> 00:23:54,870 De igen, a következő csomópont. 480 00:23:54,870 --> 00:23:58,680 És ez kezd túl alacsony, így fogunk áttérni itt. 481 00:23:58,680 --> 00:24:02,030 De ha - 482 00:24:02,030 --> 00:24:03,280 is mindenki látja ezt? 483 00:24:03,280 --> 00:24:07,230 484 00:24:07,230 --> 00:24:11,610 Ha nem vagyunk egyenlő mit csináljunk? 485 00:24:11,610 --> 00:24:15,740 Ha az érték próbálunk beszúrni egyenlő ez a csomópont értékét? 486 00:24:15,740 --> 00:24:16,320 Igen? 487 00:24:16,320 --> 00:24:18,400 >> Közönség: [hallható]. 488 00:24:18,400 --> 00:24:18,850 >> JASON HIRSCHORN: Igen. 489 00:24:18,850 --> 00:24:19,290 Mivel ez a - 490 00:24:19,290 --> 00:24:20,090 Marcus igaza van. 491 00:24:20,090 --> 00:24:21,330 Mi volna, talán kész valami más. 492 00:24:21,330 --> 00:24:25,360 De tekintettel arra, hogy amit létrehoztunk, itt meg kell szabadítani, majd vissza. 493 00:24:25,360 --> 00:24:26,774 Oh boy. 494 00:24:26,774 --> 00:24:30,080 Ez jobb? 495 00:24:30,080 --> 00:24:31,850 Hogy-hogy? 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 Szabad és akkor mi teszünk vissza, [nem hallható]? 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 Vajon hiányzik valami? 502 00:24:45,360 --> 00:24:53,500 503 00:24:53,500 --> 00:24:59,650 Szóval hol vagyunk nyomon követése Az előzetes csomópont? 504 00:24:59,650 --> 00:25:02,370 >> Közönség: Azt hiszem, ez menni után hozzon létre egy új csomópontot. 505 00:25:02,370 --> 00:25:02,600 >> JASON HIRSCHORN: OK. 506 00:25:02,600 --> 00:25:03,940 Így az elején akkor valószínűleg - 507 00:25:03,940 --> 00:25:07,175 Igen, mi is létrehozhatunk egy mutatót az új csomópont, mint az előző csomópont mutatót, és 508 00:25:07,175 --> 00:25:09,600 a jelenlegi csomópont mutatót. 509 00:25:09,600 --> 00:25:12,640 Úgyhogy be itt. 510 00:25:12,640 --> 00:25:15,610 511 00:25:15,610 --> 00:25:26,900 Létrehozása a jelenlegi és az előző mutatókat a csomópontokat. 512 00:25:26,900 --> 00:25:28,955 De amikor nem állítjuk be azokat mutatók? 513 00:25:28,955 --> 00:25:30,205 Hol ezt, hogy a kódot? 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 >> Közönség: - érték körülmények között? 517 00:25:35,170 --> 00:25:36,420 >> JASON HIRSCHORN: Melyik egy különös? 518 00:25:36,420 --> 00:25:39,862 519 00:25:39,862 --> 00:25:40,720 >> Közönség: Én csak összezavarodott. 520 00:25:40,720 --> 00:25:44,200 Ha az érték nagyobb, mint ez a csomópont, nem azt jelenti, hogy szeretne menni 521 00:25:44,200 --> 00:25:45,320 a következő csomópont? 522 00:25:45,320 --> 00:25:49,515 >> JASON HIRSCHHORN: Tehát, ha az érték nagyobb, mint az érték a csomópont. 523 00:25:49,515 --> 00:25:52,130 >> Közönség: Igen, akkor azt szeretné, hogy megy tovább le a pályáról, igaz? 524 00:25:52,130 --> 00:25:52,590 >> JASON HIRSCHHORN: Így van. 525 00:25:52,590 --> 00:25:53,840 Tehát ne helyezze be itt. 526 00:25:53,840 --> 00:25:58,430 527 00:25:58,430 --> 00:26:03,240 Ha az érték kisebb, mint a csomóponton, majd megyünk a következő csomópont - vagy akkor 528 00:26:03,240 --> 00:26:03,835 be korábban. 529 00:26:03,835 --> 00:26:05,966 >> Közönség: Várj, amely ezt a csomópont, és amely érték? 530 00:26:05,966 --> 00:26:08,510 531 00:26:08,510 --> 00:26:09,280 >> JASON HIRSCHHORN: Jó kérdés. 532 00:26:09,280 --> 00:26:13,260 Érték jutó ezt a funkciót definíció az, amit mi adni. 533 00:26:13,260 --> 00:26:16,910 Így érték az a szám vagyunk adni. 534 00:26:16,910 --> 00:26:21,120 Tehát, ha az érték kisebb, mint ez node, időre van szükségünk, hogy helyezze. 535 00:26:21,120 --> 00:26:24,575 Ha az érték nagyobb, mint ez a csomópont, megyünk a következő csomópontot. 536 00:26:24,575 --> 00:26:26,790 És vissza az eredeti kérdésre, azonban, ahol - 537 00:26:26,790 --> 00:26:29,060 >> Közönség: Ha az érték nagyobb, mint ez a csomópont. 538 00:26:29,060 --> 00:26:30,310 >> JASON HIRSCHHORN: És így mit csinálunk itt? 539 00:26:30,310 --> 00:26:36,790 540 00:26:36,790 --> 00:26:38,160 Édes. 541 00:26:38,160 --> 00:26:38,860 Így van. 542 00:26:38,860 --> 00:26:41,370 Meg fogom írni frissítést mutatók. 543 00:26:41,370 --> 00:26:44,010 De igen, a jelenlegi akkor frissíti a 544 00:26:44,010 --> 00:26:46,080 pont a következő. 545 00:26:46,080 --> 00:26:47,330 Van még mi hiányzik? 546 00:26:47,330 --> 00:26:52,710 547 00:26:52,710 --> 00:26:54,940 Így fogom írja ezt kódot gedit. 548 00:26:54,940 --> 00:26:58,375 És ha már ezt, akkor egy pár percig dolgozni kódolás 549 00:26:58,375 --> 00:28:19,240 Ezt C. 550 00:28:19,240 --> 00:28:20,940 >> Szóval be a pszeudokód. 551 00:28:20,940 --> 00:28:22,940 Egy gyors megjegyzés, mielőtt elkezdjük. 552 00:28:22,940 --> 00:28:25,560 Azt nem lehet tudni, hogy teljesen befejezni ezt a minden 553 00:28:25,560 --> 00:28:27,300 három, ezeket a funkciókat. 554 00:28:27,300 --> 00:28:30,630 Van jó megoldás a számukra hogy én is e-mailt, hogy titeket 555 00:28:30,630 --> 00:28:33,730 szakasz után, és ez lesz felkerül CS50.net. 556 00:28:33,730 --> 00:28:35,640 Szóval nem javasoljuk, hogy menj nézd meg a szakaszok. 557 00:28:35,640 --> 00:28:40,550 Azt javasoljuk, hogy próbálja meg ezeket a a saját, majd a gyakorlatban 558 00:28:40,550 --> 00:28:41,760 probléma, hogy ellenőrizze a válaszokat. 559 00:28:41,760 --> 00:28:47,070 Ezek mind úgy tervezték, hogy szorosan kapcsolódnak, és tartsák be, amit 560 00:28:47,070 --> 00:28:48,400 meg kell tennie a probléma meg. 561 00:28:48,400 --> 00:28:53,820 Szóval nem javasoljuk, hogy gyakorlatban ez a saját, majd a kód 562 00:28:53,820 --> 00:28:54,660 ellenőrizze a válaszokat. 563 00:28:54,660 --> 00:28:57,060 Mert akarok lépni a hash asztalok valamikor a szakaszban. 564 00:28:57,060 --> 00:28:58,150 Tehát lehet, hogy nem jut át ​​az egészet. 565 00:28:58,150 --> 00:28:59,960 De megteszem, amennyire csak lehet most. 566 00:28:59,960 --> 00:29:00,370 >> OK. 567 00:29:00,370 --> 00:29:01,960 Kezdjük. 568 00:29:01,960 --> 00:29:04,770 Asam, hogyan hozzon létre egy új csomópont? 569 00:29:04,770 --> 00:29:06,810 >> Közönség: Ugye struct *. 570 00:29:06,810 --> 00:29:09,640 >> JASON HIRSCHHORN: Tehát van, hogy akár itt. 571 00:29:09,640 --> 00:29:10,040 Ó, bocsánat. 572 00:29:10,040 --> 00:29:13,530 Azt mondtad struct *. 573 00:29:13,530 --> 00:29:17,260 >> Közönség: majd a [? fajta?] csomópont vagy c csomópont. 574 00:29:17,260 --> 00:29:17,780 >> JASON HIRSCHHORN: OK. 575 00:29:17,780 --> 00:29:19,740 Fogom nevezni new_node így maradhat következetes. 576 00:29:19,740 --> 00:29:22,646 577 00:29:22,646 --> 00:29:33,180 >> Közönség: És azt akarod beállítani, hogy élére, az első csomópont. 578 00:29:33,180 --> 00:29:33,580 >> JASON HIRSCHHORN: OK. 579 00:29:33,580 --> 00:29:37,290 Tehát most ez a mutató - így ez a nem teremtett új csomópontot még. 580 00:29:37,290 --> 00:29:41,380 Ez csak mutat a első csomópont a listában. 581 00:29:41,380 --> 00:29:42,630 Hogyan készíthetek egy új csomópont? 582 00:29:42,630 --> 00:29:45,490 583 00:29:45,490 --> 00:29:48,070 Ha kell hely, hogy hozzon létre egy új csomópontot. 584 00:29:48,070 --> 00:29:49,230 Malloc. 585 00:29:49,230 --> 00:29:51,710 És milyen nagy? 586 00:29:51,710 --> 00:30:00,390 >> Közönség: A méret a struktúra. 587 00:30:00,390 --> 00:30:01,150 >> JASON HIRSCHHORN: A méretét a struct. 588 00:30:01,150 --> 00:30:02,400 És mi a struct hívják? 589 00:30:02,400 --> 00:30:09,670 590 00:30:09,670 --> 00:30:09,840 >> Közönség: Node? 591 00:30:09,840 --> 00:30:11,640 >> JASON HIRSCHHORN: Node. 592 00:30:11,640 --> 00:30:17,640 Tehát malloc (sizeof (node)); ad helyet. 593 00:30:17,640 --> 00:30:19,740 És ezt a sort - 594 00:30:19,740 --> 00:30:21,740 egy dolog hibás ezen a vonalon. 595 00:30:21,740 --> 00:30:24,430 Van new_node egy pointert a struktúra? 596 00:30:24,430 --> 00:30:25,650 Ez egy generikus név. 597 00:30:25,650 --> 00:30:26,520 Mi ez - 598 00:30:26,520 --> 00:30:27,450 node, pontosan. 599 00:30:27,450 --> 00:30:29,340 Ez egy csomópont *. 600 00:30:29,340 --> 00:30:33,010 És mit tegyünk után mi malloc valamit, Asan? 601 00:30:33,010 --> 00:30:34,476 Mi az első dolog, amit csinálni? 602 00:30:34,476 --> 00:30:38,850 603 00:30:38,850 --> 00:30:40,320 Mi van, ha ez nem működik? 604 00:30:40,320 --> 00:30:42,430 >> KÖZÖNSÉG Ó, ellenőrizze, hogy rámutat, hogy a csomópont? 605 00:30:42,430 --> 00:30:43,310 >> JASON HIRSCHHORN: Pontosan. 606 00:30:43,310 --> 00:30:46,750 Tehát, ha new_node egyenlő az egyenlők null, mit tegyünk? 607 00:30:46,750 --> 00:30:51,650 608 00:30:51,650 --> 00:30:54,820 Ez visszaad egy bool, ezt a funkciót. 609 00:30:54,820 --> 00:30:57,760 Pontosan. 610 00:30:57,760 --> 00:30:58,450 Jól néz ki. 611 00:30:58,450 --> 00:30:59,680 Bármit, hozzá van? 612 00:30:59,680 --> 00:31:00,670 Majd add a dolgokat a végén. 613 00:31:00,670 --> 00:31:03,160 De eddig jól néz ki. 614 00:31:03,160 --> 00:31:06,170 Létrehozása a jelenlegi és a korábbi mutatók. 615 00:31:06,170 --> 00:31:08,650 Michael, hogyan tudom ezt megtenni? 616 00:31:08,650 --> 00:31:12,810 >> Közönség: Meg kellett volna hogy csinál egy node *. 617 00:31:12,810 --> 00:31:21,800 618 00:31:21,800 --> 00:31:25,502 Meg kéne, hogy egy nem a new_node hanem a 619 00:31:25,502 --> 00:31:26,905 csomópontok már van. 620 00:31:26,905 --> 00:31:27,230 >> JASON HIRSCHHORN: OK. 621 00:31:27,230 --> 00:31:29,255 Tehát a jelenlegi csomópont vagyunk. 622 00:31:29,255 --> 00:31:30,505 Hívom, hogy Pn. 623 00:31:30,505 --> 00:31:39,650 624 00:31:39,650 --> 00:31:39,770 Rendben van. 625 00:31:39,770 --> 00:31:41,620 Úgy döntöttünk, meg akarjuk tartani két, mert tudnunk kell, hogy 626 00:31:41,620 --> 00:31:42,870 mi van előtte. 627 00:31:42,870 --> 00:31:45,770 628 00:31:45,770 --> 00:31:47,020 Mit kapnak kezdeti értéke? 629 00:31:47,020 --> 00:31:49,874 630 00:31:49,874 --> 00:31:54,180 >> Közönség: Értékük a listánkon. 631 00:31:54,180 --> 00:31:58,090 >> JASON HIRSCHHORN: Tehát mi a az első dolog a listán? 632 00:31:58,090 --> 00:32:04,050 Vagy honnan tudjuk, ahol a elején a lista? 633 00:32:04,050 --> 00:32:08,015 >> Közönség: Hát nem telt el a funkciót? 634 00:32:08,015 --> 00:32:08,466 >> JASON HIRSCHHORN: Így van. 635 00:32:08,466 --> 00:32:09,716 Úgy telt el itt. 636 00:32:09,716 --> 00:32:15,910 637 00:32:15,910 --> 00:32:18,980 Tehát ha ez átment a funkciót, a indítsa el a lista, mit is 638 00:32:18,980 --> 00:32:21,270 beállított áram egyenlő? 639 00:32:21,270 --> 00:32:22,110 >> Közönség: Lista. 640 00:32:22,110 --> 00:32:22,900 >> JASON HIRSCHHORN: Lista. 641 00:32:22,900 --> 00:32:24,090 Ez pontosan így van. 642 00:32:24,090 --> 00:32:26,290 Most azt a címét kezdete listánkon. 643 00:32:26,290 --> 00:32:28,450 És mi a helyzet az előző? 644 00:32:28,450 --> 00:32:31,920 >> Közönség: lista mínusz egyet? 645 00:32:31,920 --> 00:32:32,690 >> JASON HIRSCHHORN: Van sem előtte. 646 00:32:32,690 --> 00:32:34,580 Tehát mit tehetünk, hogy jelent semmit? 647 00:32:34,580 --> 00:32:35,050 >> Közönség: Null. 648 00:32:35,050 --> 00:32:35,450 >> JASON HIRSCHHORN: Igen. 649 00:32:35,450 --> 00:32:37,950 Ez úgy hangzik, mint egy jó ötlet. 650 00:32:37,950 --> 00:32:38,360 Tökéletes. 651 00:32:38,360 --> 00:32:39,630 Köszönöm. 652 00:32:39,630 --> 00:32:42,850 Menj át a listát. 653 00:32:42,850 --> 00:32:45,490 Constantine, hogy meddig megyünk hogy menjen végig a listán? 654 00:32:45,490 --> 00:32:49,010 >> Közönség: amíg el nem érjük null. 655 00:32:49,010 --> 00:32:49,390 >> JASON HIRSCHHORN: OK. 656 00:32:49,390 --> 00:32:50,430 Tehát, ha, míg a ciklus. 657 00:32:50,430 --> 00:32:52,200 Mit csinálunk? 658 00:32:52,200 --> 00:32:53,320 >> Közönség: Lehet, hogy a for ciklus? 659 00:32:53,320 --> 00:32:53,910 >> JASON HIRSCHHORN: Csináljunk egy for ciklus. 660 00:32:53,910 --> 00:32:55,870 OK. 661 00:32:55,870 --> 00:33:02,465 >> Közönség: És mi mondjuk - 662 00:33:02,465 --> 00:33:09,764 663 00:33:09,764 --> 00:33:13,390 amíg a jelenlegi mutató nem egyenlő null. 664 00:33:13,390 --> 00:33:19,160 >> JASON HIRSCHHORN: Tehát, ha tudjuk, hogy a állapot, hogyan lehet írni egy hurkot 665 00:33:19,160 --> 00:33:21,740 alapján le ezt a feltételt. 666 00:33:21,740 --> 00:33:24,380 Milyen hurok használjunk? 667 00:33:24,380 --> 00:33:25,260 >> Közönség: Bár a. 668 00:33:25,260 --> 00:33:25,590 >> JASON HIRSCHHORN: Igen. 669 00:33:25,590 --> 00:33:27,130 Ennek már több értelme alapján le, hogy mit mondott. 670 00:33:27,130 --> 00:33:29,430 Ha csak akar belemenni mi lenne Csak azt tudom, hogy a dolog, akkor lenne 671 00:33:29,430 --> 00:33:31,680 értelme csinálni a while ciklus. 672 00:33:31,680 --> 00:33:39,880 Bár a jelenlegi nem egyenlő nulla, ha az érték kisebb, mint a csomópont. 673 00:33:39,880 --> 00:33:41,650 Akshar, add nekem ezt a sort. 674 00:33:41,650 --> 00:33:48,810 675 00:33:48,810 --> 00:33:56,955 >> Közönség: Ha a jelenlegi-> n n-nél kisebb érték. 676 00:33:56,955 --> 00:34:00,170 677 00:34:00,170 --> 00:34:03,260 Vagy fordított ezt. 678 00:34:03,260 --> 00:34:06,140 Kapcsoló konzol. 679 00:34:06,140 --> 00:34:06,620 >> JASON HIRSCHHORN: Elnézést. 680 00:34:06,620 --> 00:34:08,760 >> Közönség: Változtassuk meg a konzol. 681 00:34:08,760 --> 00:34:10,914 >> JASON HIRSCHHORN: Tehát ha ez nagyobb, mint értéket. 682 00:34:10,914 --> 00:34:18,719 683 00:34:18,719 --> 00:34:22,120 Mert ez zavaró a véleményét a fenti, fogom csinálni. 684 00:34:22,120 --> 00:34:22,480 De igen. 685 00:34:22,480 --> 00:34:25,125 Ha az érték kisebb, mint ez node, mit tegyünk? 686 00:34:25,125 --> 00:34:25,540 Oh. 687 00:34:25,540 --> 00:34:26,710 Megvan itt. 688 00:34:26,710 --> 00:34:27,960 Helyezze előtt. 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 Hogyan csináljuk ezt? 692 00:34:33,933 --> 00:34:34,900 >> Közönség: Még mindig én? 693 00:34:34,900 --> 00:34:36,150 >> JASON HIRSCHHORN: Igen. 694 00:34:36,150 --> 00:34:38,520 695 00:34:38,520 --> 00:34:39,770 >> Közönség: You - 696 00:34:39,770 --> 00:34:42,909 697 00:34:42,909 --> 00:34:44,159 new_node-> kov. 698 00:34:44,159 --> 00:34:46,770 699 00:34:46,770 --> 00:34:50,163 >> JASON HIRSCHHORN: Akkor mi hogy lesz egyenlő? 700 00:34:50,163 --> 00:34:52,070 >> Közönség: Ez lesz azonos a jelenlegi. 701 00:34:52,070 --> 00:34:53,889 >> JASON HIRSCHHORN: Pontosan. 702 00:34:53,889 --> 00:34:55,730 És így a másik - 703 00:34:55,730 --> 00:34:56,730 mi mást is kell frissíteni? 704 00:34:56,730 --> 00:34:59,982 >> Közönség: Ellenőrizze, hogy a múlt egyenlő null. 705 00:34:59,982 --> 00:35:01,870 >> JASON HIRSCHHORN: Ha az előző - 706 00:35:01,870 --> 00:35:03,730 Tehát, ha előző értéke null. 707 00:35:03,730 --> 00:35:05,990 >> Közönség: Ez azt jelenti, hogy megy lesz a fejét. 708 00:35:05,990 --> 00:35:06,780 >> JASON HIRSCHHORN: Ez azt jelenti ez lesz a feje. 709 00:35:06,780 --> 00:35:07,620 Szóval, akkor mit csinálunk? 710 00:35:07,620 --> 00:35:12,510 >> Közönség: Mi fej egyenlő new_node. 711 00:35:12,510 --> 00:35:16,690 >> JASON HIRSCHHORN: Head egyenlő new_node. 712 00:35:16,690 --> 00:35:20,540 És miért fej van, nem sorolja fel? 713 00:35:20,540 --> 00:35:24,940 >> Közönség: Mivel a feje a globális változó, amely nem a kiindulási helyre. 714 00:35:24,940 --> 00:35:26,190 >> JASON HIRSCHHORN: Édes. 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 És - 718 00:35:36,150 --> 00:35:53,796 >> KÖZÖNSÉG: Akkor te még prev-> következő egyenlő new_node. 719 00:35:53,796 --> 00:35:55,080 És akkor vissza igaz. 720 00:35:55,080 --> 00:35:59,560 721 00:35:59,560 --> 00:36:02,700 >> JASON HIRSCHHORN: Hol mi meg new_node végén? 722 00:36:02,700 --> 00:36:04,850 >> Közönség: Szeretném - 723 00:36:04,850 --> 00:36:06,180 Én meg, hogy az elején. 724 00:36:06,180 --> 00:36:07,430 >> JASON HIRSCHHORN: Akkor mi sorban? 725 00:36:07,430 --> 00:36:10,000 726 00:36:10,000 --> 00:36:12,598 >> Közönség: Miután az if ellenőrzésére, ha ez ismert. 727 00:36:12,598 --> 00:36:13,057 >> JASON HIRSCHHORN: Itt? 728 00:36:13,057 --> 00:36:18,335 >> Közönség: Én megtenném new_node-> n egyenlő értéket. 729 00:36:18,335 --> 00:36:19,585 >> JASON HIRSCHHORN: Jól hangzik. 730 00:36:19,585 --> 00:36:21,740 731 00:36:21,740 --> 00:36:25,090 Talán van értelme - mi nem tudniuk kell, mi lista vagyunk 732 00:36:25,090 --> 00:36:26,280 mert mi csak szó egy lista. 733 00:36:26,280 --> 00:36:29,560 Tehát jobb funkciót nyilatkozat ez csak azért, hogy megszabaduljon a 734 00:36:29,560 --> 00:36:34,360 teljesen, és csak helyezze egy értéket a fejét. 735 00:36:34,360 --> 00:36:35,930 Azt nem is kell tudni, hogy amit lista bent vagyunk 736 00:36:35,930 --> 00:36:39,140 De én tartsa meg most, és akkor változtassa meg upon frissítése 737 00:36:39,140 --> 00:36:42,590 A diák és a kód. 738 00:36:42,590 --> 00:36:44,980 Annak érdekében, hogy jól néz ki most. 739 00:36:44,980 --> 00:36:46,560 Ha az érték -, aki képes ezt a vonalat? 740 00:36:46,560 --> 00:36:47,810 Ha - 741 00:36:47,810 --> 00:36:52,240 742 00:36:52,240 --> 00:36:53,840 mit csinálunk itt, Noah. 743 00:36:53,840 --> 00:36:57,890 744 00:36:57,890 --> 00:37:07,100 >> Közönség: Ha az érték nagyobb, mint akt-> N - 745 00:37:07,100 --> 00:37:16,830 746 00:37:16,830 --> 00:37:18,240 >> JASON HIRSCHHORN: Hogyan megyünk a következő csomópont? 747 00:37:18,240 --> 00:37:27,760 748 00:37:27,760 --> 00:37:30,530 >> Közönség: Curr-> n egyenlő new_node. 749 00:37:30,530 --> 00:37:37,630 750 00:37:37,630 --> 00:37:39,195 >> JASON HIRSCHHORN: Tehát n mely része a struktúra? 751 00:37:39,195 --> 00:37:43,065 752 00:37:43,065 --> 00:37:46,020 Az egész. 753 00:37:46,020 --> 00:37:50,420 És new_node egy mutató egy csomópont. 754 00:37:50,420 --> 00:37:51,880 Tehát mi része curr kellene frissíteni? 755 00:37:51,880 --> 00:38:03,900 756 00:38:03,900 --> 00:38:05,400 Ha nem, n, akkor mi a másik része? 757 00:38:05,400 --> 00:38:21,680 758 00:38:21,680 --> 00:38:22,810 Noah, mi a másik része. 759 00:38:22,810 --> 00:38:23,570 >> Közönség: Ó, legközelebb. 760 00:38:23,570 --> 00:38:25,645 >> JASON HIRSCHHORN: Next, pontosan. 761 00:38:25,645 --> 00:38:26,410 Pontosan. 762 00:38:26,410 --> 00:38:28,770 A következő a helyes. 763 00:38:28,770 --> 00:38:31,540 És mit kell nekünk frissíteni, Noah? 764 00:38:31,540 --> 00:38:32,840 >> Közönség: a mutatók. 765 00:38:32,840 --> 00:38:34,840 >> JASON HIRSCHHORN: Tehát frissítettük áram. 766 00:38:34,840 --> 00:38:36,090 >> Közönség: Előző-> kov. 767 00:38:36,090 --> 00:38:48,160 768 00:38:48,160 --> 00:38:49,410 >> JASON HIRSCHHORN: Igen. 769 00:38:49,410 --> 00:38:57,465 770 00:38:57,465 --> 00:38:58,370 OK, akkor szünet. 771 00:38:58,370 --> 00:39:02,200 Ki segíthet itt? 772 00:39:02,200 --> 00:39:03,385 Manu, mit tegyünk? 773 00:39:03,385 --> 00:39:05,615 >> Közönség: Meg kell állítani ez egyenlő akt-> kov. 774 00:39:05,615 --> 00:39:09,110 775 00:39:09,110 --> 00:39:11,630 De vajon, hogy mielőtt az előző sor. 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 Van még valami? 779 00:39:18,260 --> 00:39:19,170 Akshar. 780 00:39:19,170 --> 00:39:22,680 >> Közönség: Én nem hiszem, hogy célja, hogy változtatni akt-> kov. 781 00:39:22,680 --> 00:39:29,270 Azt hiszem, azt jelentette, hogy nem akt egyenlő akt-> kov menni a következő csomópontot. 782 00:39:29,270 --> 00:39:30,500 >> JASON HIRSCHHORN: Nagyon sajnálom, hol? 783 00:39:30,500 --> 00:39:32,680 Milyen sorban? 784 00:39:32,680 --> 00:39:33,420 Ez a vonal? 785 00:39:33,420 --> 00:39:33,750 >> Közönség: Igen. 786 00:39:33,750 --> 00:39:35,745 Legyen curr egyenlő akt-> kov. 787 00:39:35,745 --> 00:39:39,690 788 00:39:39,690 --> 00:39:43,360 >> JASON HIRSCHHORN: Szóval ez a helyes mivel a jelenlegi egy 789 00:39:43,360 --> 00:39:45,220 mutató egy csomópont. 790 00:39:45,220 --> 00:39:48,550 És azt akarjuk, hogy pont a következő node, hogy mi kap jelenleg 791 00:39:48,550 --> 00:39:49,930 mutatott. 792 00:39:49,930 --> 00:39:54,410 Curr maga is a következő. 793 00:39:54,410 --> 00:39:58,620 De ha mi voltunk, hogy frissíteni curr.next, akkor lenne frissítése az aktuális megjegyzés 794 00:39:58,620 --> 00:40:01,430 önmagában, nem ott, ahol ez a pointer mutatott. 795 00:40:01,430 --> 00:40:02,680 Mi a helyzet ezen a vonalon, mégis. 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 >> Közönség: Előző-> kov egyenlő Pn. 799 00:40:09,590 --> 00:40:12,500 800 00:40:12,500 --> 00:40:19,440 >> JASON HIRSCHHORN: Tehát újra, ha előző egy mutató egy node, prev-> next a 801 00:40:19,440 --> 00:40:23,020 tényleges mutatót a csomópontot. 802 00:40:23,020 --> 00:40:27,190 Szóval ez lenne frissítésekor mutatót egy csomópont a Pn. 803 00:40:27,190 --> 00:40:28,570 Nem akarjuk frissíteni a mutatót egy csomóponthoz. 804 00:40:28,570 --> 00:40:30,570 Azt akarjuk, hogy frissíteni a korábbi. 805 00:40:30,570 --> 00:40:31,850 Szóval hogyan lehet csinálni? 806 00:40:31,850 --> 00:40:34,250 >> Közönség: Ez csak a prev. 807 00:40:34,250 --> 00:40:34,565 >> JASON HIRSCHHORN: Így van. 808 00:40:34,565 --> 00:40:35,560 Előző egy mutató egy csomópont. 809 00:40:35,560 --> 00:40:38,750 Most már változó, hogy egy új mutató a csomópont. 810 00:40:38,750 --> 00:40:40,830 OK Lépjünk le. 811 00:40:40,830 --> 00:40:41,940 Végül ez utóbbi feltétel. 812 00:40:41,940 --> 00:40:44,896 Jeff, mit csinálunk itt? 813 00:40:44,896 --> 00:40:47,515 >> Közönség: Ha az érték egyenlő akt-> n. 814 00:40:47,515 --> 00:40:51,030 815 00:40:51,030 --> 00:40:51,300 >> JASON HIRSCHHORN: Elnézést. 816 00:40:51,300 --> 00:40:52,372 Te jó ég. 817 00:40:52,372 --> 00:40:54,330 Mi az? 818 00:40:54,330 --> 00:40:55,580 Érték == akt-> n. 819 00:40:55,580 --> 00:41:01,050 820 00:41:01,050 --> 00:41:02,300 Mit csináljunk? 821 00:41:02,300 --> 00:41:04,760 822 00:41:04,760 --> 00:41:10,950 >> Közönség: Az ember szabad a new_node, és akkor azt vissza hamis. 823 00:41:10,950 --> 00:41:21,410 824 00:41:21,410 --> 00:41:23,460 >> JASON HIRSCHHORN: Ez az, amit írtunk eddig. 825 00:41:23,460 --> 00:41:25,710 Van valakinek valami hozzá, mielőtt teszünk? 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 Próbáljuk meg. 829 00:41:36,960 --> 00:41:44,180 830 00:41:44,180 --> 00:41:46,110 Az ellenőrzés elérjük a végét egy nem void funkciót. 831 00:41:46,110 --> 00:41:48,310 Avi, mi folyik itt? 832 00:41:48,310 --> 00:41:51,380 >> Közönség: kéne, hogy cserébe igaz kívül a while ciklus? 833 00:41:51,380 --> 00:41:53,900 834 00:41:53,900 --> 00:41:54,400 >> JASON HIRSCHHORN: Nem tudom. 835 00:41:54,400 --> 00:41:54,780 Akarod, hogy? 836 00:41:54,780 --> 00:41:55,520 >> Közönség: Nem baj. 837 00:41:55,520 --> 00:41:56,350 Nem. 838 00:41:56,350 --> 00:41:57,180 >> JASON HIRSCHHORN: Akshar? 839 00:41:57,180 --> 00:41:59,460 >> Közönség: Azt hiszem, azt jelentette, hogy fel return false végén 840 00:41:59,460 --> 00:42:02,230 A while ciklus. 841 00:42:02,230 --> 00:42:03,270 >> JASON HIRSCHHORN: Hol akarod, hogy menjen? 842 00:42:03,270 --> 00:42:05,270 >> Közönség: Mint kívül a while ciklus. 843 00:42:05,270 --> 00:42:08,800 Tehát, ha kilép a while ciklus, hogy az eszköz hogy elérte a végén, és 844 00:42:08,800 --> 00:42:09,980 semmi sem történt volna. 845 00:42:09,980 --> 00:42:10,410 >> JASON HIRSCHHORN: OK. 846 00:42:10,410 --> 00:42:12,340 Szóval, mit csinálunk itt? 847 00:42:12,340 --> 00:42:13,702 >> Közönség: A return false ott is. 848 00:42:13,702 --> 00:42:15,040 >> JASON HIRSCHHORN: Ó, csinálni mindkét helyen? 849 00:42:15,040 --> 00:42:15,650 >> Közönség: Igen. 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 Menjünk? 853 00:42:26,160 --> 00:42:26,980 Te jó ég. 854 00:42:26,980 --> 00:42:27,290 Sajnálom. 855 00:42:27,290 --> 00:42:28,480 Elnézést kérek a képernyőn. 856 00:42:28,480 --> 00:42:30,530 Ez a fajta akadva ránk. 857 00:42:30,530 --> 00:42:31,520 Tehát válasszon egy lehetőséget. 858 00:42:31,520 --> 00:42:35,260 Zero, egy a kódot, kilép a program. 859 00:42:35,260 --> 00:42:36,700 Egy lapkák valamit. 860 00:42:36,700 --> 00:42:37,990 Nézzünk be a három. 861 00:42:37,990 --> 00:42:42,900 862 00:42:42,900 --> 00:42:45,380 A betét nem volt sikeres. 863 00:42:45,380 --> 00:42:46,500 Megyek kinyomtatni. 864 00:42:46,500 --> 00:42:48,050 Nem semmi. 865 00:42:48,050 --> 00:42:48,450 OK. 866 00:42:48,450 --> 00:42:50,250 Lehet, hogy ez csak a véletlen műve. 867 00:42:50,250 --> 00:42:52,810 Helyezze be az egyik. 868 00:42:52,810 --> 00:42:55,770 Nem sikerült. 869 00:42:55,770 --> 00:42:57,470 OK. 870 00:42:57,470 --> 00:43:02,400 Fussunk át GDB nagyon gyorsan hogy nézd meg, mi folyik itt. 871 00:43:02,400 --> 00:43:06,055 >> Emlékezz gdb. / A nevét a program kerül minket GDB. 872 00:43:06,055 --> 00:43:07,610 Ez sokat kezelni? 873 00:43:07,610 --> 00:43:08,560 A villogó? 874 00:43:08,560 --> 00:43:10,400 Valószínűleg. 875 00:43:10,400 --> 00:43:12,760 Csukd be a szemed, és vegyen egy mély lélegzik ha elfárad 876 00:43:12,760 --> 00:43:13,580 néztem. 877 00:43:13,580 --> 00:43:14,200 Vagyok GDB. 878 00:43:14,200 --> 00:43:15,830 Mi az első dolog, amit csinálni GDB? 879 00:43:15,830 --> 00:43:17,050 Van, hogy kitaláljuk, mi folyik itt. 880 00:43:17,050 --> 00:43:17,310 Lássuk csak. 881 00:43:17,310 --> 00:43:21,650 Jelenleg hat percig szám , hogy mi folyik itt. 882 00:43:21,650 --> 00:43:22,900 Szünet fő. 883 00:43:22,900 --> 00:43:25,950 884 00:43:25,950 --> 00:43:28,130 És akkor mit tegyek? 885 00:43:28,130 --> 00:43:29,180 Carlos? 886 00:43:29,180 --> 00:43:31,060 Run. 887 00:43:31,060 --> 00:43:32,250 OK. 888 00:43:32,250 --> 00:43:34,160 Nézzünk válasszon egy lehetőséget. 889 00:43:34,160 --> 00:43:36,330 És mit N csinálni? 890 00:43:36,330 --> 00:43:38,480 Tovább. 891 00:43:38,480 --> 00:43:38,950 Igen. 892 00:43:38,950 --> 00:43:39,740 >> Közönség: Nem mondod - 893 00:43:39,740 --> 00:43:45,230 Nem azt mondják, hogy a fej volt kezdeti értéke null az elején. 894 00:43:45,230 --> 00:43:47,140 De azt hittem, azt mondta, hogy minden rendben volt. 895 00:43:47,140 --> 00:43:50,040 896 00:43:50,040 --> 00:43:52,640 >> JASON HIRSCHHORN: Menjünk - nézzük A GDB, aztán megyünk vissza. 897 00:43:52,640 --> 00:43:54,910 De ez úgy hangzik, mintha már néhány ötlet, hogy mi folyik itt. 898 00:43:54,910 --> 00:43:58,340 Tehát szeretné szúrni valamit. 899 00:43:58,340 --> 00:43:59,390 OK. 900 00:43:59,390 --> 00:44:00,150 Mi be. 901 00:44:00,150 --> 00:44:00,770 Adjon meg egy int. 902 00:44:00,770 --> 00:44:01,990 Majd be három. 903 00:44:01,990 --> 00:44:03,000 És akkor én vagyok ezen a vonalon. 904 00:44:03,000 --> 00:44:07,030 Hogyan nyissunk hibakeresés A betét ismert funkciót? 905 00:44:07,030 --> 00:44:08,280 Te jó ég. 906 00:44:08,280 --> 00:44:10,990 907 00:44:10,990 --> 00:44:12,240 Ez nagyon sok. 908 00:44:12,240 --> 00:44:14,372 909 00:44:14,372 --> 00:44:16,445 Az, hogy kiborult a sok? 910 00:44:16,445 --> 00:44:19,696 911 00:44:19,696 --> 00:44:21,680 >> Közönség: Ó, meghalt. 912 00:44:21,680 --> 00:44:22,930 >> JASON HIRSCHHORN: Én csak húzta ki. 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 >> Közönség: Lehet, hogy a másik végét a drót. 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 Tehát a lényeg - 919 00:44:42,330 --> 00:44:43,470 mit mondtál? 920 00:44:43,470 --> 00:44:46,040 >> Közönség: Azt mondtam, az iróniát a technikai nehézségek ebben az osztályban. 921 00:44:46,040 --> 00:44:46,410 >> JASON HIRSCHHORN: Tudom. 922 00:44:46,410 --> 00:44:48,660 Bárcsak felett azt a részét. 923 00:44:48,660 --> 00:44:49,910 [Nem hallható] 924 00:44:49,910 --> 00:44:54,430 925 00:44:54,430 --> 00:44:55,400 Ez jól hangzik. 926 00:44:55,400 --> 00:44:58,680 Miért nem vagytok kezdeni gondolkodni mit tehettünk volna rossz, 927 00:44:58,680 --> 00:45:01,140 és mi lesz hát a 90 másodperc. 928 00:45:01,140 --> 00:46:18,160 929 00:46:18,160 --> 00:46:23,010 >> Avica, fogom kérni, hogy hogyan megy belső insert_node debug azt. 930 00:46:23,010 --> 00:46:28,940 931 00:46:28,940 --> 00:46:31,460 Szóval, ez az, ahol utoljára abbahagytuk. 932 00:46:31,460 --> 00:46:35,110 Hogyan tudok bemenni insert_node, Avica, hogy vizsgálja meg, mi folyik itt? 933 00:46:35,110 --> 00:46:36,360 Mi GDB parancs? 934 00:46:36,360 --> 00:46:41,050 935 00:46:41,050 --> 00:46:42,390 Szünet nem vigyél be. 936 00:46:42,390 --> 00:46:46,200 937 00:46:46,200 --> 00:46:47,130 Nem Marquise tudja? 938 00:46:47,130 --> 00:46:48,240 >> Közönség: Mi van? 939 00:46:48,240 --> 00:46:51,780 >> JASON HIRSCHHORN Mi GDB parancs ÉN használ bemenni ezt a funkciót? 940 00:46:51,780 --> 00:46:52,070 >> Közönség: lépés? 941 00:46:52,070 --> 00:46:55,140 >> JASON HIRSCHHORN: Step keresztül S. Ez visz benne. 942 00:46:55,140 --> 00:46:55,476 OK. 943 00:46:55,476 --> 00:46:58,040 New_node mallocing néhány helyet. 944 00:46:58,040 --> 00:46:59,120 Az egész úgy néz ki, mint a fog. 945 00:46:59,120 --> 00:47:00,370 Vizsgáljuk meg new_node. 946 00:47:00,370 --> 00:47:03,270 947 00:47:03,270 --> 00:47:05,410 Meg van egy kis memória cím. 948 00:47:05,410 --> 00:47:07,440 Nézzük - 949 00:47:07,440 --> 00:47:08,500 ez mind helyes. 950 00:47:08,500 --> 00:47:12,220 Tehát itt minden úgy tűnik, hogy működik megfelelően. 951 00:47:12,220 --> 00:47:14,530 >> Közönség: Mi a különbség a P és a kijelző? 952 00:47:14,530 --> 00:47:16,160 >> JASON HIRSCHHORN: P jelentése nyomtatás. 953 00:47:16,160 --> 00:47:19,310 És azt kérdezi, mi a különbség az, hogy ez? 954 00:47:19,310 --> 00:47:22,330 Ebben az esetben semmi. 955 00:47:22,330 --> 00:47:26,960 De általában vannak bizonyos különbségek. 956 00:47:26,960 --> 00:47:28,220 És meg kell nézni a GDB kézikönyvben. 957 00:47:28,220 --> 00:47:29,560 De ebben az esetben, semmi. 958 00:47:29,560 --> 00:47:31,460 Hajlamosak vagyunk arra, hogy használja a nyomtatási, mégis, mert nem kell, hogy sokkal többre 959 00:47:31,460 --> 00:47:33,960 nyomtat egyetlen érték. 960 00:47:33,960 --> 00:47:34,640 >> OK. 961 00:47:34,640 --> 00:47:40,300 Tehát mi on line 80 kódunkat, beállítás node * curr egyenlő a listához. 962 00:47:40,300 --> 00:47:42,500 Engedje meg, nyomtassa ki Pn. 963 00:47:42,500 --> 00:47:45,260 964 00:47:45,260 --> 00:47:46,840 Ez egyenlő lista. 965 00:47:46,840 --> 00:47:48,850 Édes. 966 00:47:48,850 --> 00:47:49,340 Várjon. 967 00:47:49,340 --> 00:47:50,590 Ez egyenlő valamit. 968 00:47:50,590 --> 00:47:53,680 969 00:47:53,680 --> 00:47:56,190 Ez nem tűnik helyesnek. 970 00:47:56,190 --> 00:47:56,840 Ott vagyunk. 971 00:47:56,840 --> 00:47:59,470 Ez azért van, mert a GDB, jobb, ha a ez a vonal akkor rajta 972 00:47:59,470 --> 00:48:00,330 nem hajtotta végre még. 973 00:48:00,330 --> 00:48:03,100 Így meg kell, hogy ténylegesen típus mellett végre a vonal 974 00:48:03,100 --> 00:48:05,230 előtt látta az eredményeket. 975 00:48:05,230 --> 00:48:06,680 Tehát itt vagyunk. 976 00:48:06,680 --> 00:48:09,490 Most végre ezt a sort, előző értéke null. 977 00:48:09,490 --> 00:48:13,590 Tehát újra, ha kinyomtatni előző nem fogjuk látni valami furcsát. 978 00:48:13,590 --> 00:48:18,680 De ha tényleg végre, hogy vonal, akkor látni fogjuk, 979 00:48:18,680 --> 00:48:20,380 hogy a vonal működött. 980 00:48:20,380 --> 00:48:21,060 >> Tehát Pn. 981 00:48:21,060 --> 00:48:23,180 Ezek a jó. 982 00:48:23,180 --> 00:48:24,010 Nem igaz? 983 00:48:24,010 --> 00:48:28,130 Most már ezen a vonalon itt. 984 00:48:28,130 --> 00:48:29,310 Bár a curr nem egyenlő null. 985 00:48:29,310 --> 00:48:31,110 Nos, mit akt egyenlő? 986 00:48:31,110 --> 00:48:32,450 Most látta, hogy párja null. 987 00:48:32,450 --> 00:48:33,210 Mi kinyomtatta. 988 00:48:33,210 --> 00:48:35,110 Majd nyomtassa ki újra. 989 00:48:35,110 --> 00:48:36,720 Tehát az, hogy míg a hurok fog végre? 990 00:48:36,720 --> 00:48:37,270 >> Közönség: Nem. 991 00:48:37,270 --> 00:48:39,790 >> JASON HIRSCHHORN: Tehát amikor beírtam, hogy vonal, látod, mi ugrott egészen 992 00:48:39,790 --> 00:48:41,390 aljára, return false. 993 00:48:41,390 --> 00:48:44,520 Aztán megyünk return false és menj vissza a programot, és 994 00:48:44,520 --> 00:48:48,020 végül nyomtassa ki, mint láttuk, A betét nem volt sikeres. 995 00:48:48,020 --> 00:48:51,010 Tehát bárki bármilyen ötletet, hogy mit meg kell tennie, hogy erősít ez? 996 00:48:51,010 --> 00:48:54,200 997 00:48:54,200 --> 00:48:57,570 Fogok várni, amíg nem látom pár kéz megy fel. 998 00:48:57,570 --> 00:48:58,830 Nem végrehajtani ezt. 999 00:48:58,830 --> 00:49:01,660 Ne feledje, ez volt az első dolog, amit csinálunk. 1000 00:49:01,660 --> 00:49:02,430 Nem fogok csinálni egy pár. 1001 00:49:02,430 --> 00:49:03,670 Fogok csinálni egy pár. 1002 00:49:03,670 --> 00:49:04,830 Mert egy pár olyan két. 1003 00:49:04,830 --> 00:49:07,620 Megvárom több, mint kettő. 1004 00:49:07,620 --> 00:49:10,690 >> Az első behelyezés, akt, alapértelmezés szerint egyenlő null. 1005 00:49:10,690 --> 00:49:14,050 És ez a ciklus csak végrehajt ha curr nem null. 1006 00:49:14,050 --> 00:49:18,740 Akkor hogyan lehet megkerülni ezt? 1007 00:49:18,740 --> 00:49:19,990 Látom három kéz. 1008 00:49:19,990 --> 00:49:28,490 1009 00:49:28,490 --> 00:49:29,780 Megvárom több mint három. 1010 00:49:29,780 --> 00:49:33,460 1011 00:49:33,460 --> 00:49:35,940 Marcus, mit gondolsz? 1012 00:49:35,940 --> 00:49:37,730 >> Közönség: Nos, ha szükség van rá, hogy végre többször, csak 1013 00:49:37,730 --> 00:49:39,948 változás, hogy a do-while ciklus. 1014 00:49:39,948 --> 00:49:41,250 >> JASON HIRSCHHORN: OK. 1015 00:49:41,250 --> 00:49:44,240 Vajon, hogy oldja meg a problémát, igaz? 1016 00:49:44,240 --> 00:49:47,750 >> Közönség: Ebben az esetben nem, mert az az a tény, hogy a lista üres. 1017 00:49:47,750 --> 00:49:52,150 Szóval, akkor valószínűleg csak kell hozzá nyilatkozat arról, hogy ha a ciklus kilép 1018 00:49:52,150 --> 00:49:55,312 akkor van, hogy a végén A lista, ahol pont akkor 1019 00:49:55,312 --> 00:49:56,562 csak helyezze. 1020 00:49:56,562 --> 00:49:58,920 1021 00:49:58,920 --> 00:49:59,680 >> JASON HIRSCHHORN: Ez tetszik. 1022 00:49:59,680 --> 00:50:00,500 Ennek van értelme. 1023 00:50:00,500 --> 00:50:03,390 Ha a hurok kilép - 1024 00:50:03,390 --> 00:50:04,800 mert akkor return false itt. 1025 00:50:04,800 --> 00:50:08,220 Tehát, ha a ciklus kilép, akkor már itt tartunk Az a lista végére, vagy talán a 1026 00:50:08,220 --> 00:50:10,690 indul a lista, ha nincs semmi azt, ami ugyanaz, mint a végén. 1027 00:50:10,690 --> 00:50:12,770 Tehát most szeretnénk beszúrni itt valami. 1028 00:50:12,770 --> 00:50:17,380 Tehát hogyan, hogy a kódot nézd, Marcus? 1029 00:50:17,380 --> 00:50:21,600 >> Közönség: Ha már megvan a csomópontot malloced, akkor csak annyit, 1030 00:50:21,600 --> 00:50:25,400 new_node-> kov egyenlő nulla, mivel azt, hogy a végén. 1031 00:50:25,400 --> 00:50:27,510 Vagy new_node-> kov egyenlő null. 1032 00:50:27,510 --> 00:50:27,765 >> JASON HIRSCHHORN: OK. 1033 00:50:27,765 --> 00:50:28,190 Bocsánat. 1034 00:50:28,190 --> 00:50:35,760 New_node-> kov egyenlő null mert mi vagyunk a végén. 1035 00:50:35,760 --> 00:50:36,460 Ez nem tesz be! 1036 00:50:36,460 --> 00:50:37,710 Hogyan rakjuk a listán? 1037 00:50:37,710 --> 00:50:46,130 1038 00:50:46,130 --> 00:50:46,460 Rendben. 1039 00:50:46,460 --> 00:50:47,750 Ez csak a beállítás, egyenlő. 1040 00:50:47,750 --> 00:50:50,940 Nem, hogy mi is valójában tedd a listán? 1041 00:50:50,940 --> 00:50:54,170 Mit mutat a a lista végén? 1042 00:50:54,170 --> 00:50:56,090 >> Közönség: Head. 1043 00:50:56,090 --> 00:50:57,566 >> JASON HIRSCHHORN: Tessék? 1044 00:50:57,566 --> 00:50:59,440 >> Közönség: Head mutat az a lista végére. 1045 00:50:59,440 --> 00:51:01,480 >> JASON HIRSCHHORN: Ha nincs semmi A lista, fej rámutatva, hogy a 1046 00:51:01,480 --> 00:51:04,170 a lista végén. 1047 00:51:04,170 --> 00:51:06,920 Annak érdekében, hogy jó lesz a első behelyezése. 1048 00:51:06,920 --> 00:51:09,810 Mi a helyzet, ha van egy pár a dolgok a listán? 1049 00:51:09,810 --> 00:51:12,470 Mint nem akarjuk beállítani fej egyenlő new_node. 1050 00:51:12,470 --> 00:51:13,790 Mit akarsz itt? 1051 00:51:13,790 --> 00:51:15,610 Igen? 1052 00:51:15,610 --> 00:51:16,860 Valószínűleg a korábbi. 1053 00:51:16,860 --> 00:51:23,560 1054 00:51:23,560 --> 00:51:24,810 Fog, hogy a munka? 1055 00:51:24,810 --> 00:51:28,950 1056 00:51:28,950 --> 00:51:33,050 Emlékezzünk vissza, hogy az előző csak a mutatót egy csomóponthoz. 1057 00:51:33,050 --> 00:51:34,770 És az előző egy helyi változót. 1058 00:51:34,770 --> 00:51:38,080 Tehát ez a sor meg egy helyi változó, korábbi, azonos, vagy 1059 00:51:38,080 --> 00:51:39,380 mutat az új csomópont. 1060 00:51:39,380 --> 00:51:41,500 Ez valójában nem tette a listánkon, mégis. 1061 00:51:41,500 --> 00:51:44,330 Hogyan tedd a listán? 1062 00:51:44,330 --> 00:51:45,620 Akchar? 1063 00:51:45,620 --> 00:51:46,870 >> Közönség: Azt hiszem, do áram-> kov. 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 akt-> kov. 1067 00:51:54,010 --> 00:51:58,768 Tehát újra, csak azért vagyunk lent Itt van, mit jelent a jelenlegi egyenlő? 1068 00:51:58,768 --> 00:51:59,760 >> Közönség: Egyenlő null. 1069 00:51:59,760 --> 00:52:01,790 >> JASON HIRSCHHORN: És mi történik, ha mi null-> kov? 1070 00:52:01,790 --> 00:52:02,810 Mit fog kapni? 1071 00:52:02,810 --> 00:52:04,060 Majd kap egy szegmentációs hiba. 1072 00:52:04,060 --> 00:52:06,600 1073 00:52:06,600 --> 00:52:08,880 >> Közönség: Do akt egyenlő null. 1074 00:52:08,880 --> 00:52:10,760 >> JASON HIRSCHHORN: Ez ugyanaz a dolog az előző, mégis, mert ott van 1075 00:52:10,760 --> 00:52:12,820 lokális változót vagyunk beállítás egyenlő az új csomópontot. 1076 00:52:12,820 --> 00:52:16,680 1077 00:52:16,680 --> 00:52:20,920 Menjünk vissza a kép behelyezése valamit. 1078 00:52:20,920 --> 00:52:25,500 Mondjuk mi behelyezése a végén a lista, így itt. 1079 00:52:25,500 --> 00:52:30,010 Van egy érvényes mutató, ami mutat null és egy korábbi pont 1080 00:52:30,010 --> 00:52:32,800 ami mutat 8. 1081 00:52:32,800 --> 00:52:35,330 Szóval mit is kell frissíteni, Avi? 1082 00:52:35,330 --> 00:52:36,680 >> Közönség: Előző-> a következő? 1083 00:52:36,680 --> 00:52:41,980 >> JASON HIRSCHHORN: Előző-> következő az, ami szeretnénk frissíteni, mert a 1084 00:52:41,980 --> 00:52:44,960 valóban be azt a végén a listán. 1085 00:52:44,960 --> 00:52:47,220 Még mindig van egy hiba, mégis, hogy fogunk befut. 1086 00:52:47,220 --> 00:52:50,090 Mi ez bug? 1087 00:52:50,090 --> 00:52:50,790 Igen? 1088 00:52:50,790 --> 00:52:53,860 >> Közönség: Ez lesz, hogy visszatérjen hamis ebben az esetben? 1089 00:52:53,860 --> 00:52:56,380 >> JASON HIRSCHHORN: Ó, nem majd vissza hamis. 1090 00:52:56,380 --> 00:52:57,430 De van egy másik hiba. 1091 00:52:57,430 --> 00:52:58,930 Tehát mi kell tenni cserébe igaz. 1092 00:52:58,930 --> 00:53:01,370 >> Közönség: Vajon az előző is egyenlő null tetején a lista? 1093 00:53:01,370 --> 00:53:03,645 >> JASON HIRSCHHORN: Tehát az előző még egyenlő null a legelején. 1094 00:53:03,645 --> 00:53:07,480 1095 00:53:07,480 --> 00:53:10,440 Szóval hogyan lehet túljutni, hogy? 1096 00:53:10,440 --> 00:53:10,950 Igen? 1097 00:53:10,950 --> 00:53:15,280 >> Közönség: Azt hiszem, meg tudod csinálni egy csekket mielőtt a while ciklus, hogy ha ez 1098 00:53:15,280 --> 00:53:16,610 egy üres lista. 1099 00:53:16,610 --> 00:53:17,000 >> JASON HIRSCHHORN: OK. 1100 00:53:17,000 --> 00:53:17,710 Szóval menjünk innen. 1101 00:53:17,710 --> 00:53:18,530 Van egy csekket. 1102 00:53:18,530 --> 00:53:19,380 Ha - 1103 00:53:19,380 --> 00:53:20,770 >> Közönség: Tehát, ha fej egyenlő értéke null. 1104 00:53:20,770 --> 00:53:24,300 1105 00:53:24,300 --> 00:53:26,320 >> JASON HIRSCHHORN: Ha a fej egyenlő egyenlő null - 1106 00:53:26,320 --> 00:53:27,790 hogy elmondja, ha ez egy üres lista. 1107 00:53:27,790 --> 00:53:31,090 >> Közönség: És akkor do fej egyenlő az új. 1108 00:53:31,090 --> 00:53:34,740 >> JASON HIRSCHHORN: Head egyenlő new_node? 1109 00:53:34,740 --> 00:53:35,730 És mi mást kell tennünk? 1110 00:53:35,730 --> 00:53:37,020 >> Közönség: És akkor vissza igaz. 1111 00:53:37,020 --> 00:53:37,535 >> JASON HIRSCHHORN: Nem egészen. 1112 00:53:37,535 --> 00:53:38,785 Mi hiányzik egy lépéssel. 1113 00:53:38,785 --> 00:53:41,590 1114 00:53:41,590 --> 00:53:43,710 >> Közönség: New_node következő van, hogy pont a null. 1115 00:53:43,710 --> 00:53:44,570 >> JASON HIRSCHHORN: Pontosan, Alden. 1116 00:53:44,570 --> 00:53:46,600 És akkor mi is vissza igaz. 1117 00:53:46,600 --> 00:53:47,560 OK. 1118 00:53:47,560 --> 00:53:51,630 De ez még mindig egy jó ötlet, hogy a dolgokat végén a lista, nem igaz? 1119 00:53:51,630 --> 00:53:51,950 Rendben van. 1120 00:53:51,950 --> 00:53:54,450 Még mindig lehet, hogy tényleg kap az a lista végére. 1121 00:53:54,450 --> 00:53:57,870 Tehát ez a kód rendben van, ha mi vagyunk a a lista végére, és van néhány 1122 00:53:57,870 --> 00:53:59,120 a dolgok a listán? 1123 00:53:59,120 --> 00:54:01,830 1124 00:54:01,830 --> 00:54:02,040 Nem igaz? 1125 00:54:02,040 --> 00:54:03,540 Mert még mindig Marcus ötlete. 1126 00:54:03,540 --> 00:54:06,870 Lehet, hogy lépjen ki a hurok, mert mi vagyunk az a lista végén. 1127 00:54:06,870 --> 00:54:09,308 Tehát még mindig akarjuk, hogy ez kódot itt? 1128 00:54:09,308 --> 00:54:10,520 >> Közönség: Igen. 1129 00:54:10,520 --> 00:54:11,000 >> JASON HIRSCHHORN: Igen. 1130 00:54:11,000 --> 00:54:14,190 És mit kell változtatni ezt? 1131 00:54:14,190 --> 00:54:15,440 Igaz. 1132 00:54:15,440 --> 00:54:19,580 1133 00:54:19,580 --> 00:54:21,640 Jól hangzik mindenkinek eddig? 1134 00:54:21,640 --> 00:54:22,420 Van valakinek - 1135 00:54:22,420 --> 00:54:23,480 Avi, van valami hozzá? 1136 00:54:23,480 --> 00:54:23,920 >> Közönség: Nem. 1137 00:54:23,920 --> 00:54:25,276 >> JASON HIRSCHHORN: OK. 1138 00:54:25,276 --> 00:54:27,010 Így tettünk egy pár változás. 1139 00:54:27,010 --> 00:54:29,540 Tettük ezt a csekket, mielőtt bement egy üres lista. 1140 00:54:29,540 --> 00:54:31,790 Így már gondoskodott egy üres lista. 1141 00:54:31,790 --> 00:54:35,500 És itt gondját behelyezése valamit a végén a lista. 1142 00:54:35,500 --> 00:54:38,930 Így úgy tűnik, mintha ez a while ciklus figyelembe ellátás a dolgok között, 1143 00:54:38,930 --> 00:54:41,920 valahol a listában, ha olyan dolgok a listán. 1144 00:54:41,920 --> 00:54:42,280 >> OK. 1145 00:54:42,280 --> 00:54:44,310 Fussunk ezt a programot. 1146 00:54:44,310 --> 00:54:50,170 1147 00:54:50,170 --> 00:54:50,755 Nem sikerült. 1148 00:54:50,755 --> 00:54:52,190 >> Közönség: Nem sikerült. 1149 00:54:52,190 --> 00:54:53,940 >> JASON HIRSCHHORN: Ó, Nem sikerült. 1150 00:54:53,940 --> 00:54:56,250 Jó pont, Michael. 1151 00:54:56,250 --> 00:54:57,500 Adjuk hozzá a make kapcsolt. 1152 00:54:57,500 --> 00:55:01,590 1153 00:55:01,590 --> 00:55:04,830 87. sorban van egy hiba. 1154 00:55:04,830 --> 00:55:05,420 87. sorban. 1155 00:55:05,420 --> 00:55:06,600 Alden, ez volt az a vonal, amit adtál. 1156 00:55:06,600 --> 00:55:08,962 Mi a baj? 1157 00:55:08,962 --> 00:55:10,710 >> Közönség: Meg kell, hogy null. 1158 00:55:10,710 --> 00:55:11,000 >> JASON HIRSCHHORN: Kiváló. 1159 00:55:11,000 --> 00:55:11,630 Pontosan így van. 1160 00:55:11,630 --> 00:55:13,290 Meg kell null. 1161 00:55:13,290 --> 00:55:15,210 Legyen újra. 1162 00:55:15,210 --> 00:55:17,220 Fordítsuk le. 1163 00:55:17,220 --> 00:55:17,890 OK. 1164 00:55:17,890 --> 00:55:19,400 Nézzünk be a három. 1165 00:55:19,400 --> 00:55:20,570 A lapka sikeres volt. 1166 00:55:20,570 --> 00:55:21,660 Nézzük nyomtassa ki. 1167 00:55:21,660 --> 00:55:23,590 Ó, bárcsak tudnánk ellenőrizni. 1168 00:55:23,590 --> 00:55:25,500 De még nem történt meg a nyomtat funkció még. 1169 00:55:25,500 --> 00:55:27,840 Nézzük meg valami mást. 1170 00:55:27,840 --> 00:55:29,090 Mit kell belépünk? 1171 00:55:29,090 --> 00:55:31,120 1172 00:55:31,120 --> 00:55:31,940 >> Közönség: Hét. 1173 00:55:31,940 --> 00:55:33,340 >> JASON HIRSCHHORN: Hét? 1174 00:55:33,340 --> 00:55:34,590 >> Közönség: Igen. 1175 00:55:34,590 --> 00:55:38,680 1176 00:55:38,680 --> 00:55:39,780 >> JASON HIRSCHHORN: Van egy szegmens hibája. 1177 00:55:39,780 --> 00:55:43,760 Tehát van egy, de világosan nem tud két. 1178 00:55:43,760 --> 00:55:45,690 Ez 05:07. 1179 00:55:45,690 --> 00:55:48,370 Így lehet hibakeresést ezt három percig. 1180 00:55:48,370 --> 00:55:51,240 De fogom hagyni minket és lépni a hash táblák. 1181 00:55:51,240 --> 00:55:54,290 De ismétlem, a választ ez a kód Én e-mailben neked egy kicsit. 1182 00:55:54,290 --> 00:55:55,440 Nagyon közel vagyunk hozzá. 1183 00:55:55,440 --> 00:55:58,300 Én nagyon javasoljuk, hogy kitaláljuk, mi folyik itt, és javítsd ki. 1184 00:55:58,300 --> 00:56:02,400 Szóval majd e-mailben ezt a kódot jól valamint a megoldás - 1185 00:56:02,400 --> 00:56:03,670 talán a megoldás később. 1186 00:56:03,670 --> 00:56:05,110 Először is ezt a kódot. 1187 00:56:05,110 --> 00:56:08,290 >> A másik dolog, amit szeretnék csinálni, mielőtt borítás még nem szabadult semmit. 1188 00:56:08,290 --> 00:56:10,370 Szóval azt akarom mutatni, hogy mi Valgrind néz ki. 1189 00:56:10,370 --> 00:56:14,310 Ha fut valgrind határokat A programunk,. / kötött. 1190 00:56:14,310 --> 00:56:22,540 Ismét szerint ez a dia, akkor kell futtatni Valgrind bizonyos típusú 1191 00:56:22,540 --> 00:56:26,410 lehetőség, ebben az esetben - Szivárgás-ellenőrzés = teljes. 1192 00:56:26,410 --> 00:56:27,660 Szóval írni valgrind - Szivárgás-ellenőrzés = teljes. 1193 00:56:27,660 --> 00:56:31,910 1194 00:56:31,910 --> 00:56:35,080 Tehát ez fog futni valgrind A programunk. 1195 00:56:35,080 --> 00:56:37,000 És most a program valóban fut. 1196 00:56:37,000 --> 00:56:40,190 Így fogjuk futtatni, mint előtt, hogy valamit be 1197 00:56:40,190 --> 00:56:40,830 Azt fogom tenni, három. 1198 00:56:40,830 --> 00:56:41,790 Ez működik. 1199 00:56:41,790 --> 00:56:43,202 Nem fogom próbálni tenni valamit mást, mert fogunk 1200 00:56:43,202 --> 00:56:44,710 kap egy seg hamis ebben az esetben. 1201 00:56:44,710 --> 00:56:46,700 Szóval csak úgy, hogy kilép. 1202 00:56:46,700 --> 00:56:50,160 >> És most látod itt szivárgás és a kupac összefoglaló. 1203 00:56:50,160 --> 00:56:52,310 Ezek azok a jó dolog, hogy szeretné, hogy nézd meg. 1204 00:56:52,310 --> 00:56:56,780 Tehát a halom összefoglaló - azt mondja, a használat at exit - nyolc bájt egyben. 1205 00:56:56,780 --> 00:56:58,370 Ez egyben a node mi malloced. 1206 00:56:58,370 --> 00:57:02,230 Michael azt mondta, mielőtt a csomópont nyolc falatok mert az egész 1207 00:57:02,230 --> 00:57:02,680 és a mutató. 1208 00:57:02,680 --> 00:57:04,550 Szóval ez a csomópont. 1209 00:57:04,550 --> 00:57:08,170 És akkor azt mondja, hogy használni malloc hétszer és felszabadította 1210 00:57:08,170 --> 00:57:08,940 valami hatszor. 1211 00:57:08,940 --> 00:57:13,680 De soha nem úgynevezett szabad, úgyhogy nincs ez mit beszél. 1212 00:57:13,680 --> 00:57:18,490 >> De legyen elég annyi, hogy amikor a a program fut, malloc kerül meghívásra 1213 00:57:18,490 --> 00:57:20,330 néhány más helyen, hogy mi Nem kell aggódni. 1214 00:57:20,330 --> 00:57:22,460 Tehát malloc valószínűleg az úgynevezett néhány helyen. 1215 00:57:22,460 --> 00:57:24,480 Nem kell aggódni, hogy hol. 1216 00:57:24,480 --> 00:57:26,240 De ez tényleg minket. 1217 00:57:26,240 --> 00:57:27,380 Ez első sorban a számunkra. 1218 00:57:27,380 --> 00:57:28,320 Elhagytuk a blokk. 1219 00:57:28,320 --> 00:57:30,330 És láthatjuk, hogy itt A szivárgás összefoglaló. 1220 00:57:30,330 --> 00:57:31,950 Still elérhető - 1221 00:57:31,950 --> 00:57:32,930 nyolc bájt egyben. 1222 00:57:32,930 --> 00:57:34,100 Ez azt jelenti, hogy a memória - 1223 00:57:34,100 --> 00:57:35,730 már kiszivárgott, hogy az emlékezet. 1224 00:57:35,730 --> 00:57:37,570 Határozottan elveszett - 1225 00:57:37,570 --> 00:57:38,770 valami elveszett a jó. 1226 00:57:38,770 --> 00:57:40,590 Általában, akkor nem látni semmit ott. 1227 00:57:40,590 --> 00:57:44,780 Még elérhető általában, ahol a fogod látni a dolgokat, ahol akkor akar 1228 00:57:44,780 --> 00:57:48,900 hogy vizsgálja meg, hogy milyen kódot kéne már felszabadult, de elfelejtette, hogy szabad. 1229 00:57:48,900 --> 00:57:53,170 >> És aztán, ha nem ez volt a helyzet, ha nem szabad mindent, 1230 00:57:53,170 --> 00:57:54,360 akkor ellenőrizze, hogy. 1231 00:57:54,360 --> 00:57:57,330 Nézzük csak futtatni a programot nem hozta meg semmit. 1232 00:57:57,330 --> 00:57:59,800 Látni fogod itt használatban exit - 1233 00:57:59,800 --> 00:58:01,310 nulla byte nulla blokkokat. 1234 00:58:01,310 --> 00:58:06,310 Ez azt jelenti, hogy már semmi sem maradt Ha ez a program kilép. 1235 00:58:06,310 --> 00:58:12,090 Tehát mielőtt a pset6, fuss valgrind és győződjön meg róla, hogy nincs 1236 00:58:12,090 --> 00:58:15,310 minden memóriavesztés a programban. 1237 00:58:15,310 --> 00:58:17,910 Ha bármilyen kérdése van a valgrind, nyugodtan, hogy elérje. 1238 00:58:17,910 --> 00:58:18,700 De ez, hogyan használja azt. 1239 00:58:18,700 --> 00:58:20,890 Nagyon egyszerű - nézd meg, van használatban exit - 1240 00:58:20,890 --> 00:58:22,270 minden bájt minden blokk. 1241 00:58:22,270 --> 00:58:27,890 1242 00:58:27,890 --> 00:58:29,580 >> Ezért dolgoztunk a betét csomóponton. 1243 00:58:29,580 --> 00:58:33,840 Volt két másik funkció itt - nyomtat csomópontok és ingyenes csomópontok. 1244 00:58:33,840 --> 00:58:37,780 Ismét, ezek a funkciók, amelyek lesz jó, hogy a gyakorlatban 1245 00:58:37,780 --> 00:58:40,990 mert segít, hogy ne csak a ezeket a minta a gyakorlatok, hanem 1246 00:58:40,990 --> 00:58:42,180 A probléma meg. 1247 00:58:42,180 --> 00:58:44,230 A térkép a szép szorosan a dolgokat fogsz kell tennie a 1248 00:58:44,230 --> 00:58:45,010 probléma meg. 1249 00:58:45,010 --> 00:58:47,640 De azt szeretnénk, hogy győződjön meg arról, megérintjük mindent. 1250 00:58:47,640 --> 00:58:50,400 És hash táblázatok is fontos, hogy mit csinálunk részben ebben a 1251 00:58:50,400 --> 00:58:51,980 hét - és a probléma meg. 1252 00:58:51,980 --> 00:58:55,200 >> Így fogjuk befejezni a szakaszt beszél hash táblákat. 1253 00:58:55,200 --> 00:58:58,140 Ha azt észleli, csináltam egy kis hash tábla. 1254 00:58:58,140 --> 00:59:00,020 Ez nem az, amit mi beszélünk körülbelül, de. 1255 00:59:00,020 --> 00:59:03,540 Beszélünk a másik típusú hash táblák. 1256 00:59:03,540 --> 00:59:07,300 És a fő, a hash tábla nem más, mint egy 1257 00:59:07,300 --> 00:59:08,860 tömb és egy hash függvényt. 1258 00:59:08,860 --> 00:59:11,150 Fogunk beszélni egy kicsit, csak hogy győződjön meg róla, mindenki érti, mi a 1259 00:59:11,150 --> 00:59:12,110 hash függvény. 1260 00:59:12,110 --> 00:59:15,420 És én most mondom, hogy ez nem más, mint két dolog - 1261 00:59:15,420 --> 00:59:18,590 tömb és a hash függvényt. 1262 00:59:18,590 --> 00:59:20,716 És itt vannak a lépések segítségével amelyre ez működik. 1263 00:59:20,716 --> 00:59:31,560 1264 00:59:31,560 --> 00:59:32,810 >> Ott a tömb. 1265 00:59:32,810 --> 00:59:38,460 1266 00:59:38,460 --> 00:59:39,460 Ott a funkciót. 1267 00:59:39,460 --> 00:59:43,180 Különösen a hash funkciókat kell nem egy pár dolgot ezzel. 1268 00:59:43,180 --> 00:59:45,040 Fogok beszélni konkrétan erről a probléma meg. 1269 00:59:45,040 --> 00:59:46,450 Ez valószínűleg meg is hogy egy szövegben. 1270 00:59:46,450 --> 00:59:50,570 1271 00:59:50,570 --> 00:59:51,770 És mi a helyzet, hogy visszatérjen? 1272 00:59:51,770 --> 00:59:52,640 Milyen adattípus? 1273 00:59:52,640 --> 00:59:54,260 Alden? 1274 00:59:54,260 --> 00:59:55,760 A hash függvény visszatérési? 1275 00:59:55,760 --> 00:59:58,760 Egy egész szám. 1276 00:59:58,760 --> 01:00:01,700 Tehát ez az, amit a hash asztal áll - 1277 01:00:01,700 --> 01:00:05,430 a tábla formájában tömb és a hash függvényt. 1278 01:00:05,430 --> 01:00:06,010 Hogyan működik? 1279 01:00:06,010 --> 01:00:07,300 Úgy működik, három lépésben. 1280 01:00:07,300 --> 01:00:08,740 Azt, hogy ez a kulcs. 1281 01:00:08,740 --> 01:00:11,470 Ebben az esetben, akkor, hogy ez a szöveg. 1282 01:00:11,470 --> 01:00:18,140 Hívjuk a hash függvényt egy lépés A legfontosabb, és kapunk egy értéket. 1283 01:00:18,140 --> 01:00:20,310 >> Pontosabban, azt fogja mondani, kapunk egy egész szám. 1284 01:00:20,310 --> 01:00:25,630 Ez az egész szám, vannak nagyon specifikus határok, hogy mit, hogy egész lehet. 1285 01:00:25,630 --> 01:00:28,880 Ebben a példában, a mi tömb a mérete a három. 1286 01:00:28,880 --> 01:00:32,330 Tehát mi a számok, hogy egész legyen. 1287 01:00:32,330 --> 01:00:35,970 Milyen tartományban érvényes értékei hogy egész, a visszatérési típus ennek 1288 01:00:35,970 --> 01:00:37,220 hash függvény? 1289 01:00:37,220 --> 01:00:40,440 1290 01:00:40,440 --> 01:00:42,110 Nulla, egy és kettő. 1291 01:00:42,110 --> 01:00:46,060 A lényeg a hash függvény, hogy kitalálni a helyét a tömbben 1292 01:00:46,060 --> 01:00:47,790 ahol a kulcs megy. 1293 01:00:47,790 --> 01:00:51,290 Már csak három lehetséges helyen van - 1294 01:00:51,290 --> 01:00:52,130 nulla, egy vagy kettő. 1295 01:00:52,130 --> 01:00:55,360 Tehát ez a funkció jobb megtérülést nulla, egy vagy kettő. 1296 01:00:55,360 --> 01:00:58,740 Egyes érvényes Index ebben a tömbben. 1297 01:00:58,740 --> 01:01:02,770 >> És akkor attól függően, hol visszatér, látható, van array nyitva 1298 01:01:02,770 --> 01:01:03,730 zárójelbe az értéket. 1299 01:01:03,730 --> 01:01:05,800 Ez az, ahol a kulcsot. 1300 01:01:05,800 --> 01:01:11,280 Így dobja a sütőtök, kikerülünk nulla. 1301 01:01:11,280 --> 01:01:15,540 A tömb konzol 0 tesszük sütőtök. 1302 01:01:15,540 --> 01:01:21,070 Mi dobja macskák jutunk ki az egyik. 1303 01:01:21,070 --> 01:01:24,110 Azt hogy a macska az egyik. 1304 01:01:24,110 --> 01:01:25,480 Azt hogy a pók. 1305 01:01:25,480 --> 01:01:26,710 Kapunk ki kettő. 1306 01:01:26,710 --> 01:01:30,200 Azt hogy pók tömb tartó kettő. 1307 01:01:30,200 --> 01:01:32,300 Nem lenne olyan rossz, ha úgy működött, mint ezt. 1308 01:01:32,300 --> 01:01:35,570 De sajnos, mint látni fogjuk, ez egy kicsit bonyolultabb. 1309 01:01:35,570 --> 01:01:37,570 >> Mielőtt odaérünk, bármilyen kérdése erről az alapvető 1310 01:01:37,570 --> 01:01:38,820 set-up egy hash tábla? 1311 01:01:38,820 --> 01:01:49,050 1312 01:01:49,050 --> 01:01:51,940 Ez a kép pontosan mi felhívtuk a táblán. 1313 01:01:51,940 --> 01:01:55,420 De mivel felhívtuk azt a fórumon, azt most nem megyek bele tovább. 1314 01:01:55,420 --> 01:02:00,430 Lényegében gombok, a mágikus fekete doboz - vagy ebben az esetben, kékeszöld doboz - egy 1315 01:02:00,430 --> 01:02:02,410 hash funkció teszi őket vödörben. 1316 01:02:02,410 --> 01:02:04,690 És ebben a példában vagyunk nem hozta a nevét. 1317 01:02:04,690 --> 01:02:07,880 Mi amivel a kapcsolódó telefon száma a nevet a vödör. 1318 01:02:07,880 --> 01:02:10,430 De akkor is nagyon jól, csak fel a nevét a tengerben. 1319 01:02:10,430 --> 01:02:12,950 >> Ez csak egy képet, amit felhívtuk a táblán. 1320 01:02:12,950 --> 01:02:14,460 Van lehetséges buktatókat, mégis. 1321 01:02:14,460 --> 01:02:17,470 És van két különösen diák, hogy én akarok menni. 1322 01:02:17,470 --> 01:02:20,230 Az első arról szól, a hash függvényt. 1323 01:02:20,230 --> 01:02:22,620 Szóval a kérdést, hogy mi tesz egy jó hash függvény? 1324 01:02:22,620 --> 01:02:24,220 Adok két válasz. 1325 01:02:24,220 --> 01:02:26,630 Az első az, hogy ez a determinisztikus. 1326 01:02:26,630 --> 01:02:29,660 Összefüggésében a hash függvények, mit jelent ez? 1327 01:02:29,660 --> 01:02:37,840 1328 01:02:37,840 --> 01:02:39,282 Igen? 1329 01:02:39,282 --> 01:02:42,850 >> Közönség: Ez meg az index konstans id? 1330 01:02:42,850 --> 01:02:43,810 >> JASON HIRSCHHORN: Az nem, hogy mit jelent. 1331 01:02:43,810 --> 01:02:44,725 De ez egy jó tipp. 1332 01:02:44,725 --> 01:02:46,100 Bárki más egy becslés hogy ez mit jelent? 1333 01:02:46,100 --> 01:02:47,780 Ez egy jó hash függvény determinisztikus? 1334 01:02:47,780 --> 01:02:48,280 Annie? 1335 01:02:48,280 --> 01:02:51,680 >> Közönség: Ez a kulcs csak akkor lehet térképezni hogy egy helyen a hash tábla. 1336 01:02:51,680 --> 01:02:53,070 >> JASON HIRSCHHORN: Ez pontosan így van. 1337 01:02:53,070 --> 01:02:57,430 Minden alkalommal, amikor fel sütőtök, mindig visszatér nulla. 1338 01:02:57,430 --> 01:03:01,660 Ha fel a sütőtök és a hash függvény nulla, de a 1339 01:03:01,660 --> 01:03:06,060 valószínűsége visszatérő valamit mást nullánál nagyobb - 1340 01:03:06,060 --> 01:03:09,280 így talán visszatérhet az egyik néha vagy két alkalommal - 1341 01:03:09,280 --> 01:03:11,100 hogy ez nem egy jó hash függvény. 1342 01:03:11,100 --> 01:03:11,800 Teljesen igazad van. 1343 01:03:11,800 --> 01:03:15,680 A hash függvény, vissza kell adnia a egész pontosan ugyanolyan, ebben az esetben, a 1344 01:03:15,680 --> 01:03:17,780 pontosan ugyanolyan húr. 1345 01:03:17,780 --> 01:03:22,210 >> Lehet, hogy vissza pontosan ugyanolyan egész a pontosan ugyanolyan húr 1346 01:03:22,210 --> 01:03:24,430 függetlenül attól, kapitalizáció. 1347 01:03:24,430 --> 01:03:27,980 De ebben az esetben még mindig mérvadó, hiszen több dolgot 1348 01:03:27,980 --> 01:03:29,350 vannak leképezve ugyanazt az értéket. 1349 01:03:29,350 --> 01:03:30,170 Ez rendben van. 1350 01:03:30,170 --> 01:03:32,615 Mindaddig, amíg csak egy van output egy adott bemenet. 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 A másik dolog az, hogy visszatér érvényes indexeket. 1354 01:03:38,340 --> 01:03:40,220 Azt hozta fel, hogy a korábbi. 1355 01:03:40,220 --> 01:03:41,860 Ez a hash funkció - 1356 01:03:41,860 --> 01:03:43,710 oh boy - 1357 01:03:43,710 --> 01:03:46,840 a hash függvény vissza érvényes indexeket. 1358 01:03:46,840 --> 01:03:47,740 Tehát mondjuk - 1359 01:03:47,740 --> 01:03:48,990 térjünk vissza erre a példára. 1360 01:03:48,990 --> 01:03:52,580 1361 01:03:52,580 --> 01:03:57,540 A hash függvény számol fel A betűk a szó. 1362 01:03:57,540 --> 01:03:58,380 Ez a hash függvényt. 1363 01:03:58,380 --> 01:03:59,740 , És visszaadja az egész. 1364 01:03:59,740 --> 01:04:04,280 Tehát, ha van a szó A, ez majd vissza egy. 1365 01:04:04,280 --> 01:04:06,900 És ez megy, hogy egy itt. 1366 01:04:06,900 --> 01:04:09,430 Mi történik, ha tettem a szó denevér? 1367 01:04:09,430 --> 01:04:11,310 Ez lesz, hogy visszatérjen a három. 1368 01:04:11,310 --> 01:04:12,560 Hol bat menni? 1369 01:04:12,560 --> 01:04:18,730 1370 01:04:18,730 --> 01:04:19,750 >> Ez nem illik. 1371 01:04:19,750 --> 01:04:21,000 De kell menni valahova. 1372 01:04:21,000 --> 01:04:23,340 Ez a hash tábla után, és mindent kell menni valahova. 1373 01:04:23,340 --> 01:04:24,590 Szóval, hol bat menni? 1374 01:04:24,590 --> 01:04:28,020 1375 01:04:28,020 --> 01:04:28,710 Minden gondolat? 1376 01:04:28,710 --> 01:04:29,450 Találgatások? 1377 01:04:29,450 --> 01:04:30,280 Jó találgatások? 1378 01:04:30,280 --> 01:04:31,220 >> Közönség: Zero. 1379 01:04:31,220 --> 01:04:32,120 >> JASON HIRSCHHORN: miért nulla? 1380 01:04:32,120 --> 01:04:35,990 >> Közönség: Mivel a három modulo három nulla? 1381 01:04:35,990 --> 01:04:38,620 >> JASON HIRSCHHORN: három modulo három nulla. 1382 01:04:38,620 --> 01:04:40,810 Ez egy nagy találgatás, és ez a helyes. 1383 01:04:40,810 --> 01:04:43,870 Tehát ebben az esetben kell valószínűleg menni nulla. 1384 01:04:43,870 --> 01:04:51,080 Tehát egy jó módja annak, hogy ezt a hash funkció csak akkor ad vissza érvényes indexek 1385 01:04:51,080 --> 01:04:54,580 a modulo ez a méret az asztal. 1386 01:04:54,580 --> 01:04:57,360 Ha modulo amit ez a bevallásokat három, te mindig fog kapni 1387 01:04:57,360 --> 01:05:00,930 valami között nulla, egy, és két. 1388 01:05:00,930 --> 01:05:05,160 És ha ez mindig visszatér a hét, és a mindig modulo három, akkor 1389 01:05:05,160 --> 01:05:06,030 mindig lesz, hogy ugyanazt a dolgot. 1390 01:05:06,030 --> 01:05:09,270 >> Tehát még mindig determinisztikus ha modulo. 1391 01:05:09,270 --> 01:05:11,420 De ez biztosítja, hogy soha nem kap valamit - 1392 01:05:11,420 --> 01:05:12,940 Érvénytelen az ipar. 1393 01:05:12,940 --> 01:05:16,840 Általában, hogy a modulo történjen belül a hash függvényt. 1394 01:05:16,840 --> 01:05:18,240 Szóval nem kell aggódni emiatt. 1395 01:05:18,240 --> 01:05:20,555 Csak tudja biztosítani, hogy ez egy érvényes Index. 1396 01:05:20,555 --> 01:05:23,700 1397 01:05:23,700 --> 01:05:26,700 Bármilyen kérdése ezen lehetséges buktató? 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 És ott vagyunk. 1401 01:05:40,290 --> 01:05:42,890 Ezután a lehetséges buktató, és ez az a nagy dobás. 1402 01:05:42,890 --> 01:05:46,880 Mi történik, ha két kulcs megjelenítése ugyanazt az értéket? 1403 01:05:46,880 --> 01:05:49,350 Tehát két módon kezelni ezt. 1404 01:05:49,350 --> 01:05:53,140 1405 01:05:53,140 --> 01:05:56,020 Az első az úgynevezett lineáris szondázás, ami vagyok 1406 01:05:56,020 --> 01:05:57,300 nem megyek át. 1407 01:05:57,300 --> 01:06:01,120 De meg kell ismernie, hogyan ami működik, és mi az. 1408 01:06:01,120 --> 01:06:05,610 >> A második én megyek át mert ez az egyik, hogy sok 1409 01:06:05,610 --> 01:06:08,290 az emberek valószínűleg a végén úgy döntött, használni a problémát meg. 1410 01:06:08,290 --> 01:06:09,820 Persze, nem kell. 1411 01:06:09,820 --> 01:06:15,280 De a probléma meg, sokan inkább úgy dönt, hogy hozzon létre egy hash tábla 1412 01:06:15,280 --> 01:06:17,950 külön láncolási végrehajtására a szótárban. 1413 01:06:17,950 --> 01:06:21,390 Szóval megyek át, hogy mit jelent hogy hozzon létre egy hash táblát 1414 01:06:21,390 --> 01:06:23,890 külön láncolás. 1415 01:06:23,890 --> 01:06:26,260 >> Így tettem a sütőtök. 1416 01:06:26,260 --> 01:06:29,560 Visszatér nulla. 1417 01:06:29,560 --> 01:06:31,410 És tettem sütőtök itt. 1418 01:06:31,410 --> 01:06:35,880 1419 01:06:35,880 --> 01:06:37,930 Aztán hozott - 1420 01:06:37,930 --> 01:06:39,922 mi egy Halloween-témájú dolog? 1421 01:06:39,922 --> 01:06:42,200 >> Közönség: Candy. 1422 01:06:42,200 --> 01:06:42,770 >> JASON HIRSCHHORN: Candy! 1423 01:06:42,770 --> 01:06:43,910 Ez egy nagy ember. 1424 01:06:43,910 --> 01:06:47,760 Tettem a cukorka, és a cukorka is ad nekem nulla. 1425 01:06:47,760 --> 01:06:49,350 Mit tegyek? 1426 01:06:49,350 --> 01:06:51,940 Valami ötlet? 1427 01:06:51,940 --> 01:06:53,940 Mert minden fajta tudják mi külön-láncolatok. 1428 01:06:53,940 --> 01:06:55,190 Tehát valami ötleted, mit tegyek? 1429 01:06:55,190 --> 01:06:58,170 1430 01:06:58,170 --> 01:06:59,110 Igen. 1431 01:06:59,110 --> 01:07:03,810 >> Közönség: Elhelyezés a húr valójában a hash tábla. 1432 01:07:03,810 --> 01:07:08,910 >> JASON HIRSCHHORN Szóval megyünk felhívni a jó ötlet itt. 1433 01:07:08,910 --> 01:07:09,340 OK. 1434 01:07:09,340 --> 01:07:12,290 >> Közönség: Legyen a hash tábla [Nem hallható] 1435 01:07:12,290 --> 01:07:16,640 a mutató, amely rámutat, hogy az elején egy listát. 1436 01:07:16,640 --> 01:07:20,930 És akkor már tök az első érték abban a láncolt lista és édesség is 1437 01:07:20,930 --> 01:07:22,800 a második érték, hogy láncolt lista. 1438 01:07:22,800 --> 01:07:23,420 >> JASON HIRSCHHORN: OK. 1439 01:07:23,420 --> 01:07:24,670 Marcus, hogy kiemelkedő volt. 1440 01:07:24,670 --> 01:07:26,160 Fogom törni azt le. 1441 01:07:26,160 --> 01:07:28,890 Marcus azt mondja, nem felülírja sütőtök. 1442 01:07:28,890 --> 01:07:30,660 Az rossz lenne. 1443 01:07:30,660 --> 01:07:33,640 Ne tegye cukorkát valahol máshol. 1444 01:07:33,640 --> 01:07:35,390 Meg fogjuk őket mind nulla. 1445 01:07:35,390 --> 01:07:37,770 De fogunk foglalkozni helyezzük el őket nullára 1446 01:07:37,770 --> 01:07:39,395 ami egy lista nulla. 1447 01:07:39,395 --> 01:07:42,430 És mi lesz, hogy hozzon létre egy listát a leképezett mindent, ami a nullához. 1448 01:07:42,430 --> 01:07:47,960 És a legjobb módja annak, megtanultuk, hogy hozzon létre a lista, amely képes növekedni, és csökken 1449 01:07:47,960 --> 01:07:49,840 dinamikusan nem tartozik másik tömböt. 1450 01:07:49,840 --> 01:07:51,510 Tehát nem egy több dimenziós tömb. 1451 01:07:51,510 --> 01:07:54,080 De ahhoz, hogy csak hozzon létre egy láncolt lista. 1452 01:07:54,080 --> 01:07:55,330 >> Tehát mi azt javasolta - 1453 01:07:55,330 --> 01:07:57,950 1454 01:07:57,950 --> 01:07:59,200 Megyek, hogy egy új - 1455 01:07:59,200 --> 01:08:15,380 1456 01:08:15,380 --> 01:08:19,689 , hogy hozzon létre egy tömb mutató, egy sor mutató. 1457 01:08:19,689 --> 01:08:20,580 OK. 1458 01:08:20,580 --> 01:08:24,180 Valami ötlet, vagy tipp, milyen típusú Ezen mutatók kellene? 1459 01:08:24,180 --> 01:08:26,290 Marcus? 1460 01:08:26,290 --> 01:08:27,250 >> Közönség: Mutatók - 1461 01:08:27,250 --> 01:08:28,609 >> JASON HIRSCHHORN: Mert mondta egy láncolt lista, így - 1462 01:08:28,609 --> 01:08:29,520 >> Közönség: Node mutatók? 1463 01:08:29,520 --> 01:08:30,670 >> JASON HIRSCHHORN: Node mutatók. 1464 01:08:30,670 --> 01:08:32,830 Ha a dolgok a mi kötött listán csomópontok akkor 1465 01:08:32,830 --> 01:08:34,370 legyen node mutatók. 1466 01:08:34,370 --> 01:08:35,939 És mit egyenlő először? 1467 01:08:35,939 --> 01:08:36,990 >> Közönség: 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 Tehát itt van az üres dolog. 1471 01:08:46,080 --> 01:08:47,170 Tök visszatér nulla. 1472 01:08:47,170 --> 01:08:48,569 Mit csináljunk? 1473 01:08:48,569 --> 01:08:49,609 Séta velem ez? 1474 01:08:49,609 --> 01:08:50,810 Valójában, Marcus már kaptam. 1475 01:08:50,810 --> 01:08:52,439 Valaki más kísérjen át rajta. 1476 01:08:52,439 --> 01:08:54,760 Mit teszünk, ha - 1477 01:08:54,760 --> 01:08:56,609 ez úgy néz ki, nagyon hasonlít a , amit éppen csinál. 1478 01:08:56,609 --> 01:08:57,396 Avi. 1479 01:08:57,396 --> 01:08:59,090 >> Közönség: fogok egy kitalálni. 1480 01:08:59,090 --> 01:09:01,250 Tehát, amikor már cukorkát. 1481 01:09:01,250 --> 01:09:01,640 >> JASON HIRSCHHORN: Igen. 1482 01:09:01,640 --> 01:09:03,120 Nos, van tök. 1483 01:09:03,120 --> 01:09:03,870 Menjünk az első. 1484 01:09:03,870 --> 01:09:04,324 Megvan sütőtök. 1485 01:09:04,324 --> 01:09:04,779 >> Közönség: OK. 1486 01:09:04,779 --> 01:09:05,880 Tök visszatér nulla. 1487 01:09:05,880 --> 01:09:08,770 Szóval tedd ezt. 1488 01:09:08,770 --> 01:09:10,810 Vagy valóban, akkor tedd A láncolt lista. 1489 01:09:10,810 --> 01:09:13,550 >> JASON HIRSCHHORN: Hogyan tedd a láncolt lista? 1490 01:09:13,550 --> 01:09:15,479 >> Közönség: Ó, az aktuális szintaxis? 1491 01:09:15,479 --> 01:09:16,240 >> JASON HIRSCHHORN: Csak sétáljon - 1492 01:09:16,240 --> 01:09:16,740 többet mondani. 1493 01:09:16,740 --> 01:09:19,310 Mit csináljunk? 1494 01:09:19,310 --> 01:09:22,100 >> Közönség: Csak be úgy, mint az első csomóponthoz vezet. 1495 01:09:22,100 --> 01:09:22,675 >> JASON HIRSCHHORN: OK. 1496 01:09:22,675 --> 01:09:29,069 Tehát a node, sütőtök. 1497 01:09:29,069 --> 01:09:31,560 És most hogyan helyezze? 1498 01:09:31,560 --> 01:09:34,590 1499 01:09:34,590 --> 01:09:37,090 >> Közönség: Ön hozzá ez a mutató. 1500 01:09:37,090 --> 01:09:37,970 >> JASON HIRSCHHORN: Melyik mutató? 1501 01:09:37,970 --> 01:09:39,620 >> Közönség: A mutató nulla. 1502 01:09:39,620 --> 01:09:41,420 >> JASON HIRSCHHORN: Hol nem ezen a ponton? 1503 01:09:41,420 --> 01:09:42,810 >> Közönség: NULL most. 1504 01:09:42,810 --> 01:09:43,529 >> JASON HIRSCHHORN: Nos, ez mutat null. 1505 01:09:43,529 --> 01:09:44,499 De én üzembe sütőtök. 1506 01:09:44,499 --> 01:09:46,053 Szóval, hol kell mutatni? 1507 01:09:46,053 --> 01:09:46,880 >> Közönség: A sütőtök. 1508 01:09:46,880 --> 01:09:47,399 >> JASON HIRSCHHORN: A sütőtök. 1509 01:09:47,399 --> 01:09:48,760 Pontosan. 1510 01:09:48,760 --> 01:09:50,010 Tehát ez arra utal, hogy tök. 1511 01:09:50,010 --> 01:09:52,500 1512 01:09:52,500 --> 01:09:54,250 És honnan származik ez a mutató sütőtök pont? 1513 01:09:54,250 --> 01:09:57,986 1514 01:09:57,986 --> 01:09:58,340 Az 1515 01:09:58,340 --> 01:09:58,590 >> Közönség: Null. 1516 01:09:58,590 --> 01:09:59,210 >> JASON HIRSCHHORN: NULL. 1517 01:09:59,210 --> 01:10:00,460 Pontosan. 1518 01:10:00,460 --> 01:10:03,570 1519 01:10:03,570 --> 01:10:05,140 Szóval csak be valamit a láncolt lista. 1520 01:10:05,140 --> 01:10:07,210 Mi csak azt írta ezt a kódot erre. 1521 01:10:07,210 --> 01:10:09,520 Szinte majdnem megvan teljesen repedt. 1522 01:10:09,520 --> 01:10:10,790 Most be cukorkát. 1523 01:10:10,790 --> 01:10:13,480 A cukorkát is nullára. 1524 01:10:13,480 --> 01:10:16,100 Szóval, mit csináljunk cukorka? 1525 01:10:16,100 --> 01:10:18,790 >> Közönség: Ez attól függ, hogy Nem akarunk rendezni azt. 1526 01:10:18,790 --> 01:10:19,640 >> JASON HIRSCHHORN: Ez pontosan így van. 1527 01:10:19,640 --> 01:10:21,070 Ez attól függ-e vagy sem próbáljuk rendezni azt. 1528 01:10:21,070 --> 01:10:22,660 Tegyük fel, hogy nem vagyunk fogja rendezni azt. 1529 01:10:22,660 --> 01:10:24,880 >> Közönség: Hát akkor, ahogy megbeszéltük előtt, ez a legegyszerűbb, csak tedd 1530 01:10:24,880 --> 01:10:28,590 rögtön az elején, így a mutató A nulla pontot a cukorkát. 1531 01:10:28,590 --> 01:10:29,020 >> JASON HIRSCHHORN: OK. 1532 01:10:29,020 --> 01:10:29,380 Várj. 1533 01:10:29,380 --> 01:10:30,630 Hadd létre cukorkát itt. 1534 01:10:30,630 --> 01:10:34,030 1535 01:10:34,030 --> 01:10:35,150 Tehát ez a mutató - 1536 01:10:35,150 --> 01:10:37,590 >> Közönség: Igen, most lehet mutatva cukorkát. 1537 01:10:37,590 --> 01:10:40,580 Akkor a mutatót candy pont sütőtök. 1538 01:10:40,580 --> 01:10:43,140 1539 01:10:43,140 --> 01:10:44,560 >> JASON HIRSCHHORN: Tetszik ez? 1540 01:10:44,560 --> 01:10:47,380 És azt mondom, van egy másik dolog, hogy térkép nulla? 1541 01:10:47,380 --> 01:10:48,660 >> Közönség: Nos, csak nem ugyanaz a dolog? 1542 01:10:48,660 --> 01:10:50,290 >> JASON HIRSCHHORN: Nem ugyanaz a dolog. 1543 01:10:50,290 --> 01:10:53,700 Tehát ebben az esetben, ha nem akarja tartani sorrendje is 1544 01:10:53,700 --> 01:10:55,270 hangzik meglehetősen egyszerű. 1545 01:10:55,270 --> 01:10:59,920 Vesszük a mutatót az Index által a hash függvény. 1546 01:10:59,920 --> 01:11:03,830 Meg kell, hogy pont az új csomópontot. 1547 01:11:03,830 --> 01:11:07,830 És akkor bármi is mutatott korábban - 1548 01:11:07,830 --> 01:11:10,620 ebben az esetben nulla, a második esetben sütőtök - 1549 01:11:10,620 --> 01:11:15,310 hogy bármilyen ez mutat korábban, hozzáadjuk a legközelebbi 1550 01:11:15,310 --> 01:11:17,810 az új csomópontot. 1551 01:11:17,810 --> 01:11:19,650 Mi behelyezése valamit az elején. 1552 01:11:19,650 --> 01:11:22,900 Valójában ez sokkal egyszerűbb, mint próbálják tartani a rendezett lista. 1553 01:11:22,900 --> 01:11:25,340 De ismétlem, a keresés lesz bonyolultabb itt. 1554 01:11:25,340 --> 01:11:28,300 Majd mindig megy a végére. 1555 01:11:28,300 --> 01:11:29,650 >> OK. 1556 01:11:29,650 --> 01:11:32,750 Minden kérdést külön láncolást? 1557 01:11:32,750 --> 01:11:34,690 Hogyan működik? 1558 01:11:34,690 --> 01:11:35,820 Kérdezze meg őket. 1559 01:11:35,820 --> 01:11:39,260 Nagyon szeretnénk, hogy győződjön meg arról, hogy az összes érti ezt, mielőtt távozik. 1560 01:11:39,260 --> 01:11:48,410 1561 01:11:48,410 --> 01:11:52,060 >> Közönség: Miért teszed sütőtök és cukorka az azonos 1562 01:11:52,060 --> 01:11:54,108 része a hash tábla? 1563 01:11:54,108 --> 01:11:55,860 >> JASON HIRSCHHORN: Jó kérdés. 1564 01:11:55,860 --> 01:11:59,140 Miért őket ugyanabban a része a hash tábla? 1565 01:11:59,140 --> 01:12:03,200 Nos, ebben az esetben a hash függvény visszatér nulla mindkettőjüknek. 1566 01:12:03,200 --> 01:12:05,310 Így kell menni az Index-nulla mert ott fogunk 1567 01:12:05,310 --> 01:12:07,420 keresni őket, ha valaha is meg akarom nézni őket. 1568 01:12:07,420 --> 01:12:11,750 Ismét, lineáris megközelítéssel tapintási akkor nem őket mind nulla. 1569 01:12:11,750 --> 01:12:13,900 De az egyedi lánc megközelítést, fogjuk őket mind nulla 1570 01:12:13,900 --> 01:12:16,620 majd hozzon létre egy listát le nullára. 1571 01:12:16,620 --> 01:12:20,140 >> És mi nem akarjuk felülírni sütőtök egyszerűen, mert aztán 1572 01:12:20,140 --> 01:12:21,860 Feltételezem, hogy tök volt soha be. 1573 01:12:21,860 --> 01:12:25,230 Ha csak egy dolog tartja a helyen, hogy rossz lenne. 1574 01:12:25,230 --> 01:12:28,590 Akkor nem lenne esélye, hogy mi valaha - 1575 01:12:28,590 --> 01:12:31,660 ha valaha is volt egy példányban, akkor akkor csak törli a kezdeti érték. 1576 01:12:31,660 --> 01:12:34,090 Szóval ezért tesszük ezt a megközelítést. 1577 01:12:34,090 --> 01:12:36,580 Vagy ezért választottuk - de a lényeg, hogy választotta külön láncolás megközelítés 1578 01:12:36,580 --> 01:12:39,670 amely sok más megközelítés lehetett választani. 1579 01:12:39,670 --> 01:12:41,185 Van, hogy a kérdésére? 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 Lineáris szondázás járna - 1584 01:12:47,720 --> 01:12:51,913 Ha találtunk egy ütközés nulla, akkor nézne a következő helyszínen, hogy ha 1585 01:12:51,913 --> 01:12:54,310 nyitva volt, és tedd oda. 1586 01:12:54,310 --> 01:12:57,320 És akkor nézzük a következő sport-és nézd meg, hogy nyitva volt, és tedd oda. 1587 01:12:57,320 --> 01:12:59,780 Így megtalálja a következő szabad a nyílt helyszínen, és tedd oda. 1588 01:12:59,780 --> 01:13:02,580 1589 01:13:02,580 --> 01:13:03,890 Van még kérdés? 1590 01:13:03,890 --> 01:13:05,370 Ja, Avi. 1591 01:13:05,370 --> 01:13:07,490 >> Közönség: A nyomon követése, hogy, hogy a mit értesz azon, hogy a következő helyszínen? 1592 01:13:07,490 --> 01:13:10,250 A hash tábla vagy egy láncolt lista. 1593 01:13:10,250 --> 01:13:12,100 >> JASON HIRSCHHORN: A lineáris programozás, nem kapcsolt listák. 1594 01:13:12,100 --> 01:13:13,400 A következő helyszínen a hash tábla. 1595 01:13:13,400 --> 01:13:13,820 >> Közönség: OK. 1596 01:13:13,820 --> 01:13:17,570 Így a hash tábla lenne inicializálni, hogy a méret - 1597 01:13:17,570 --> 01:13:19,560 mint a több húrok hogy te behelyezése? 1598 01:13:19,560 --> 01:13:22,170 >> JASON HIRSCHHORN: Azt akarom, hogy igazán nagy. 1599 01:13:22,170 --> 01:13:23,910 Igen. 1600 01:13:23,910 --> 01:13:27,900 Itt van egy kép, amit csak felhívta a táblán. 1601 01:13:27,900 --> 01:13:29,470 Ismét van egy ütközés itt. 1602 01:13:29,470 --> 01:13:30,710 152. 1603 01:13:30,710 --> 01:13:33,570 És látni fogod, amit létre A láncolt lista le róla. 1604 01:13:33,570 --> 01:13:38,200 1605 01:13:38,200 --> 01:13:41,850 Ismét a hash tábla külön láncolást megközelítés nem az, amit 1606 01:13:41,850 --> 01:13:45,590 kell, hogy a problémák beállított hat, de az egyik, hogy egy csomó 1607 01:13:45,590 --> 01:13:47,100 diákok inkább, hogy. 1608 01:13:47,100 --> 01:13:51,140 Szóval a figyelmét, hogy beszéljünk röviden mielőtt útnak indulunk, a probléma a hat, 1609 01:13:51,140 --> 01:13:52,160 aztán majd megosztani egy történetet veled. 1610 01:13:52,160 --> 01:13:55,120 Van három percet. 1611 01:13:55,120 --> 01:13:55,750 >> Probléma meg hat. 1612 01:13:55,750 --> 01:13:57,790 Van négy funkció - 1613 01:13:57,790 --> 01:14:02,430 terhelés, ellenőrizze, méret és kirak. 1614 01:14:02,430 --> 01:14:03,380 Load - 1615 01:14:03,380 --> 01:14:07,120 Nos, mi már megy túlterhelés most. 1616 01:14:07,120 --> 01:14:09,330 Felhívtuk a terhelést a fedélzeten. 1617 01:14:09,330 --> 01:14:13,230 És mi is kezdett kódolási sok behelyezése egy láncolt lista. 1618 01:14:13,230 --> 01:14:18,020 Tehát terhelés nem sokkal több, mint mi most voltunk csinál. 1619 01:14:18,020 --> 01:14:21,070 >> Check, ha van valami betöltve. 1620 01:14:21,070 --> 01:14:22,580 Ez ugyanaz a folyamat, mint ez. 1621 01:14:22,580 --> 01:14:26,845 Ugyanez első két része, ahol dobja valamit a hash függvény 1622 01:14:26,845 --> 01:14:29,190 és kap az értékét. 1623 01:14:29,190 --> 01:14:30,700 De most mi nem behelyezni. 1624 01:14:30,700 --> 01:14:33,350 Most már keresi. 1625 01:14:33,350 --> 01:14:37,130 Én minta kódot írt találni valamit egy láncolt lista. 1626 01:14:37,130 --> 01:14:38,250 Azt javasoljuk, hogy a gyakorlatban ezt. 1627 01:14:38,250 --> 01:14:43,000 De ösztönösen találni valami nagyon hasonlít behelyezése valamit. 1628 01:14:43,000 --> 01:14:46,540 Sőt, lerajzolta találni valamit egy láncolt lista, mozgó 1629 01:14:46,540 --> 01:14:48,910 keresztül, amíg van a végén. 1630 01:14:48,910 --> 01:14:52,430 És ha van, hogy a végén, és nem tudott találja meg, akkor nincs ott. 1631 01:14:52,430 --> 01:14:55,400 Szóval ez az ellenőrzés lényegében. 1632 01:14:55,400 --> 01:14:57,030 >> Tovább a méret. 1633 01:14:57,030 --> 01:14:57,910 Hagyjuk méretét. 1634 01:14:57,910 --> 01:15:00,040 Végül meg kell kipakolni. 1635 01:15:00,040 --> 01:15:02,890 Unload az egyik még nem készült a fedélzeten vagy a kódolt még. 1636 01:15:02,890 --> 01:15:05,990 De azt javasoljuk, hogy próbálja kódolás is A mintánkban láncolt lista példa. 1637 01:15:05,990 --> 01:15:11,440 De kirak ösztönösen hasonló ingyenes - 1638 01:15:11,440 --> 01:15:14,010 vagy én értem hasonló ellenőrizni. 1639 01:15:14,010 --> 01:15:17,350 Kivéve most már minden egyes alkalommal, amikor mész keresztül, akkor nem bejelöli a 1640 01:15:17,350 --> 01:15:19,090 hogy ha az érték is. 1641 01:15:19,090 --> 01:15:22,490 De te figyelembe, hogy a csomópont és a felszabadítva azt lényegében. 1642 01:15:22,490 --> 01:15:23,610 Ez az, amit kirak kér, hogy nem. 1643 01:15:23,610 --> 01:15:24,670 Ingyenes mindent, amit malloced. 1644 01:15:24,670 --> 01:15:27,480 Szóval megy keresztül, a teljes lista ismét megy át az egész hash 1645 01:15:27,480 --> 01:15:27,760 tábla újra. 1646 01:15:27,760 --> 01:15:29,240 Ez alkalommal nem ellenőrzi hogy mi van ott. 1647 01:15:29,240 --> 01:15:31,080 Csak szabad, mi van ott. 1648 01:15:31,080 --> 01:15:33,260 >> És végül méretét. 1649 01:15:33,260 --> 01:15:34,350 Méret végre kell hajtani. 1650 01:15:34,350 --> 01:15:35,590 Ha nem hajtják végre méret - 1651 01:15:35,590 --> 01:15:36,250 Azt mondom, mint ez. 1652 01:15:36,250 --> 01:15:39,740 Ha nem hajtják végre mérete pontosan egy sor kódot, beleértve a 1653 01:15:39,740 --> 01:15:43,760 vissza nyilatkozatot, akkor a Ennek mérete nem megfelelő. 1654 01:15:43,760 --> 01:15:47,170 Ügyeljen arra, méretét, a teljes tervezési pontokat, csinálod pontosan egy 1655 01:15:47,170 --> 01:15:49,970 kódsor, beleértve a a return. 1656 01:15:49,970 --> 01:15:52,450 >> És ne pakol még Akchar. 1657 01:15:52,450 --> 01:15:53,700 Eager Beaver. 1658 01:15:53,700 --> 01:15:55,820 1659 01:15:55,820 --> 01:16:01,300 Azt akartam mondani, köszönöm srácok a következő fejezetben. 1660 01:16:01,300 --> 01:16:02,550 Van egy Happy Halloween. 1661 01:16:02,550 --> 01:16:05,300 1662 01:16:05,300 --> 01:16:05,960 Ez a ruha. 1663 01:16:05,960 --> 01:16:08,850 Fogom viselni ezt csütörtök ha találkozunk munkaidőben. 1664 01:16:08,850 --> 01:16:14,640 Ha kíváncsi vagy még több háttér, hogy ezt a jelmezt, érezni 1665 01:16:14,640 --> 01:16:19,135 szabad, hogy nézd meg 2011 rész a történet, hogy miért vagyok 1666 01:16:19,135 --> 01:16:20,900 visel a sütőtök ruha. 1667 01:16:20,900 --> 01:16:23,680 És ez egy szomorú történet. 1668 01:16:23,680 --> 01:16:27,050 Ügyeljen arra, hogy van bizonyos szövetek a közelben. 1669 01:16:27,050 --> 01:16:28,680 De, hogy, ha bármilyen kérdés maradok 1670 01:16:28,680 --> 01:16:29,960 külső szakasz után. 1671 01:16:29,960 --> 01:16:31,510 Sok szerencsét a probléma meg hat. 1672 01:16:31,510 --> 01:16:33,540 És mint mindig, ha bármilyen kérdése, tudassa velem. 1673 01:16:33,540 --> 01:16:35,584