1 00:00:00,000 --> 00:00:08,250 2 00:00:08,250 --> 00:00:12,680 >> JASON HIRSCHHORN: Tervetuloa kaikille to jakso Seven. 3 00:00:12,680 --> 00:00:15,040 Olemme viikolla seitsemän kurssin. 4 00:00:15,040 --> 00:00:18,440 Ja tämän tulevan torstai on Halloween joten olen 5 00:00:18,440 --> 00:00:21,420 pukeutui kuin kurpitsa. 6 00:00:21,420 --> 00:00:23,460 En voinut kumartua ja laittaa kenkäni, joten siksi olen 7 00:00:23,460 --> 00:00:25,660 vain yllään sukat. 8 00:00:25,660 --> 00:00:29,220 En myöskään ole päällään mitään alle Tämän, joten en voi ottaa sen pois, jos se on 9 00:00:29,220 --> 00:00:29,950 häiritsevät sinua. 10 00:00:29,950 --> 00:00:31,860 Pahoittelen jo etukäteen, että. 11 00:00:31,860 --> 00:00:33,170 Sinun ei tarvitse kuvitella mitä on tekeillä. 12 00:00:33,170 --> 00:00:34,240 Olen pukeutunut nyrkkeilijät. 13 00:00:34,240 --> 00:00:36,170 Niin se kaikki hyvä. 14 00:00:36,170 --> 00:00:41,120 >> Minulla on enää tarinan siitä, miksi olen pukeutunut kurpitsa, mutta aion 15 00:00:41,120 --> 00:00:45,110 paitsi että myöhemmin tässä jaksossa koska en halua päästä alkuun. 16 00:00:45,110 --> 00:00:47,720 Meillä on paljon jännittäviä asioita mennä yli tällä viikolla. 17 00:00:47,720 --> 00:00:51,810 Useimmat niistä liittyvät suoraan tähän viikon ongelma asettaa, kirjoitusvirheet. 18 00:00:51,810 --> 00:00:54,680 Aiomme olla menossa yli sidoksissa luettelot ja hash taulukoita 19 00:00:54,680 --> 00:00:57,160 koko jakso. 20 00:00:57,160 --> 00:01:02,490 Laitoin tämän luettelon jopa viikoittain, luettelo resursseja voit auttaa sinua 21 00:01:02,490 --> 00:01:04,120 materiaali tällä kurssilla. 22 00:01:04,120 --> 00:01:07,600 Jos tappiolla tai jos etsit jotain Lisätietoja tarkistaa yksi 23 00:01:07,600 --> 00:01:09,930 näitä resursseja. 24 00:01:09,930 --> 00:01:14,530 >> Jälleen pset6 on kirjoitusvirheet, tämän viikon PSET. 25 00:01:14,530 --> 00:01:17,690 Ja se myös kannustaa sinua, ja minä rohkaista teitä, käyttää jotain muuta 26 00:01:17,690 --> 00:01:20,320 resursseja nimenomaan tätä PSET. 27 00:01:20,320 --> 00:01:23,390 Erityisesti kolme olen listattu ruudulla - 28 00:01:23,390 --> 00:01:27,160 GDB, jotka olemme olleet tuttuja ja käyttänyt jo jonkin aikaa, on 29 00:01:27,160 --> 00:01:29,270 tulee olemaan erittäin hyödyllistä tällä viikolla. 30 00:01:29,270 --> 00:01:30,190 Joten laitoin tämän tänne. 31 00:01:30,190 --> 00:01:32,910 Mutta kun olet työskennellyt C, sinun tulisi aina käyttää gdb 32 00:01:32,910 --> 00:01:34,430 debug-ohjelmia. 33 00:01:34,430 --> 00:01:36,660 Tällä viikolla myös Valgrind. 34 00:01:36,660 --> 00:01:38,535 Tietääkö kukaan, mitä valgrind tekee? 35 00:01:38,535 --> 00:01:42,184 36 00:01:42,184 --> 00:01:43,890 >> Yleisö: Se tarkistaa muistivuodot? 37 00:01:43,890 --> 00:01:45,950 >> JASON HIRSCHHORN: Valgrind tarkastukset muistivuodot. 38 00:01:45,950 --> 00:01:49,970 Joten jos malloc jotain teidän ohjelma, pyydät muistia. 39 00:01:49,970 --> 00:01:52,920 Lopussa oman ohjelman, olet kirjoittaa vapaa kaikesta olet 40 00:01:52,920 --> 00:01:54,800 malloced antaa muistin takaisin. 41 00:01:54,800 --> 00:01:58,420 Jos et kirjoita vapaa lopussa ja ohjelma tulee johtopäätökseen, 42 00:01:58,420 --> 00:02:00,000 kaiken automaattisesti vapautetaan. 43 00:02:00,000 --> 00:02:02,340 Ja pieniä ohjelmia, se on ei niin iso juttu. 44 00:02:02,340 --> 00:02:05,250 Mutta jos olet kirjoittamassa enää käynnissä ohjelma, joka ei lopeta, 45 00:02:05,250 --> 00:02:09,180 väistämättä, pari minuuttia tai Muutaman sekunnin jälkeen muistivuotoja 46 00:02:09,180 --> 00:02:10,710 voi tulla valtavan paljon. 47 00:02:10,710 --> 00:02:14,940 >> Joten pset6, odotus on, että sinulla on nolla muistivuotokuvioista kanssa 48 00:02:14,940 --> 00:02:15,910 ohjelma. 49 00:02:15,910 --> 00:02:18,690 Voit tarkistaa muistivuodot, suorita valgrind ja sillä saat muutamia kivoja 50 00:02:18,690 --> 00:02:21,190 tuotos voit tietää, onko tai ei kaikki oli ilmaista. 51 00:02:21,190 --> 00:02:23,940 Me harjoitella sitä myöhemmin tänään, toivottavasti. 52 00:02:23,940 --> 00:02:25,790 >> Lopuksi Vertaa-komennon. 53 00:02:25,790 --> 00:02:28,900 Käytit jotain vastaavaa se vuonna pset5 kanssa kurkistaa työkalu. 54 00:02:28,900 --> 00:02:30,780 Ansiosta voit katsoa sisälle. 55 00:02:30,780 --> 00:02:33,400 Voit myös käyttää JM Myös per Harjoitus spec. 56 00:02:33,400 --> 00:02:35,950 Mutta salli sinun vertailla kaksi tiedostoa. 57 00:02:35,950 --> 00:02:39,180 Voisit verrata bittikarttatiedoston ja info otsikot henkilöstön ratkaisun ja 58 00:02:39,180 --> 00:02:42,200 teidän ratkaisu pset5 jos päätitte käyttää sitä. 59 00:02:42,200 --> 00:02:44,030 Ero avulla voit tehdä samoin. 60 00:02:44,030 --> 00:02:48,620 Voit vertailla oikea vastaus tämän viikon ongelma asetettu vastauksesi 61 00:02:48,620 --> 00:02:52,210 ja katso jos se on linjassa tai katso missä virheet ovat. 62 00:02:52,210 --> 00:02:55,870 >> Joten ne ovat kolme hyvää työkaluja, sinun tulisi käyttää tällä viikolla, ja 63 00:02:55,870 --> 00:02:58,130 ehdottomasti tarkistaa oman ohjelman nämä kolme työkalua 64 00:02:58,130 --> 00:03:00,520 ennen kuin laitat sen sisään 65 00:03:00,520 --> 00:03:04,650 Jälleen, kuten olen maininnut joka viikko, jos sinulla on palautetta minulle - sekä 66 00:03:04,650 --> 00:03:06,470 myönteistä ja rakentavaa - 67 00:03:06,470 --> 00:03:09,930 vapaasti suunnata verkkosivuilla alareunassa tämän dian 68 00:03:09,930 --> 00:03:11,270 ja syöttää sen sinne. 69 00:03:11,270 --> 00:03:13,440 Olen todella kiitollinen kaikista ja kaikki palaute. 70 00:03:13,440 --> 00:03:17,360 Ja jos annat minulle tiettyjä asioita, joita En voi tehdä parantaakseen tai että olen 71 00:03:17,360 --> 00:03:21,350 menee hyvin, että haluat minut jatkaa, otan että sydän-ja 72 00:03:21,350 --> 00:03:24,040 todella yrittää kovasti kuunnella palautteeseen. 73 00:03:24,040 --> 00:03:27,720 En voi luvata aion tehdä kaiken, vaikka, kuten yllään 74 00:03:27,720 --> 00:03:30,700 kurpitsa puku joka viikko. 75 00:03:30,700 --> 00:03:34,020 >> Joten aiomme viettää suurimman osan jakso, kuten mainitsin, puhumme 76 00:03:34,020 --> 00:03:37,240 liittyvät luettelot ja hash taulukoita, jotka on suoraan sovellettavissa 77 00:03:37,240 --> 00:03:38,780 Harjoitus tällä viikolla. 78 00:03:38,780 --> 00:03:42,580 Linkitetyt menemme yli suhteellisen nopeasti, koska olemme käyttäneet melkoisesti 79 00:03:42,580 --> 00:03:44,930 aikaa menee yli sen osassa. 80 00:03:44,930 --> 00:03:48,680 Ja niin me saamme suoraan koodaus ongelmia linkitettyjä listoja. 81 00:03:48,680 --> 00:03:52,740 Ja sitten lopussa me puhumme hash taulukoita ja miten niitä sovelletaan tälle 82 00:03:52,740 --> 00:03:55,280 viikon ongelma asetettu. 83 00:03:55,280 --> 00:03:57,560 >> Olet nähnyt tämän koodin ennen. 84 00:03:57,560 --> 00:04:02,730 Tämä on struct, ja se määritellään jotain uutta kutsutaan solmu. 85 00:04:02,730 --> 00:04:10,660 Ja sisällä solmu on kokonaisluku täällä ja siellä on osoitin 86 00:04:10,660 --> 00:04:11,830 toisen solmun. 87 00:04:11,830 --> 00:04:12,790 Olemme nähneet tämän ennenkin. 88 00:04:12,790 --> 00:04:14,830 Tämä on tulossa varten parin viikon ajan. 89 00:04:14,830 --> 00:04:18,680 Siinä yhdistyvät osoittimia, jotka olemme olleet kanssa, ja structs, joiden avulla 90 00:04:18,680 --> 00:04:22,079 meitä yhdistää kaksi eri asiat yhdeksi tietotyyppi. 91 00:04:22,079 --> 00:04:24,830 92 00:04:24,830 --> 00:04:26,490 >> Siellä on paljon meneillään ruudulla. 93 00:04:26,490 --> 00:04:30,220 Mutta kaikki se olisi suhteellisen tuttu sinulle. 94 00:04:30,220 --> 00:04:33,810 Ensimmäisellä rivillä, me julistaa uuden solmun. 95 00:04:33,810 --> 00:04:41,650 Ja sitten sisällä että uusi solmu, otan kokonaisluvun, että solmu yhteen. 96 00:04:41,650 --> 00:04:44,950 Näemme seuraavalla rivillä teen printf-komento, mutta olen harmaana 97 00:04:44,950 --> 00:04:48,080 printf-komento, koska todella Tärkeä osa on tätä linjaa täällä - 98 00:04:48,080 --> 00:04:50,020 new_node.n. 99 00:04:50,020 --> 00:04:51,270 Mitä piste tarkoittaa? 100 00:04:51,270 --> 00:04:53,810 101 00:04:53,810 --> 00:04:57,240 >> Yleisö: Mene solmu ja arvioitava n arvoa sille. 102 00:04:57,240 --> 00:04:58,370 >> JASON HIRSCHHORN: Tuo Aivan oikein. 103 00:04:58,370 --> 00:05:03,300 Piste tarkoittaa pääsyn n osa Tämän uuden solmun. 104 00:05:03,300 --> 00:05:05,690 Tämä seuraava rivi tekee mitä? 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 >> Yleisö: Se luo toisen solmun , jotka viittaavat siihen, että uusi solmu. 108 00:05:21,910 --> 00:05:24,870 >> JASON HIRSCHHORN: niin se ei luoda uusi solmu. 109 00:05:24,870 --> 00:05:26,120 Se luo mitä? 110 00:05:26,120 --> 00:05:28,300 111 00:05:28,300 --> 00:05:29,300 >> Yleisö: osoitin. 112 00:05:29,300 --> 00:05:33,460 >> JASON HIRSCHHORN: osoitin solmuun, kuten tämän solmun * täällä. 113 00:05:33,460 --> 00:05:34,800 Niin se luo osoitin solmuun. 114 00:05:34,800 --> 00:05:37,490 Ja mikä solmu on se osoittaa to, Michael? 115 00:05:37,490 --> 00:05:38,440 >> Yleisö: Uusi solmu? 116 00:05:38,440 --> 00:05:39,240 >> JASON HIRSCHHORN: Uusi solmu. 117 00:05:39,240 --> 00:05:43,020 Ja se on suunnattu siellä, koska olemme antanut sen osoitteen uuteen solmuun. 118 00:05:43,020 --> 00:05:45,820 Ja nyt tätä linjaa näemme kaksi erilaista tapaa 119 00:05:45,820 --> 00:05:46,910 saman asian ilmaisemiseksi. 120 00:05:46,910 --> 00:05:49,650 Ja halusin osoittaa, miten nämä kaksi asiaa ovat samat. 121 00:05:49,650 --> 00:05:54,740 Ensimmäisellä rivillä, me dereference osoitin. 122 00:05:54,740 --> 00:05:55,830 Joten menemme solmuun. 123 00:05:55,830 --> 00:05:56,830 Sitähän tämä tähti merkitsee. 124 00:05:56,830 --> 00:05:57,930 Olemme nähneet, että ennen osoittimet. 125 00:05:57,930 --> 00:05:59,280 Mene, että solmu. 126 00:05:59,280 --> 00:06:00,370 Se on suluissa. 127 00:06:00,370 --> 00:06:04,610 Ja sitten käyttää kautta dot operaattorin n elementti, että solmu. 128 00:06:04,610 --> 00:06:08,430 >> Niin, että kun syntaksin näimme tässä ja nyt 129 00:06:08,430 --> 00:06:09,670 käytät sitä osoitin. 130 00:06:09,670 --> 00:06:13,730 Tietenkin se saa aika kiireinen, jos olet kirjoittamassa nämä suluissa - 131 00:06:13,730 --> 00:06:14,940 että tähti ja piste. 132 00:06:14,940 --> 00:06:16,220 Se saa hieman kiireinen. 133 00:06:16,220 --> 00:06:18,500 Joten meillä on joitakin syntaktisia sokeria. 134 00:06:18,500 --> 00:06:19,920 Ja tämä linja täällä - 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 Joka tekee täsmälleen sama asia. 138 00:06:28,000 --> 00:06:30,840 Joten nämä kaksi riviä koodia ovat vastaava ja tekee 139 00:06:30,840 --> 00:06:31,650 täsmälleen sama asia. 140 00:06:31,650 --> 00:06:34,210 >> Mutta halusin tuoda ne pois ennen menemme eteenpäin niin ymmärrät 141 00:06:34,210 --> 00:06:39,000 että todella tämä asia täällä on vain syntaktista sokeria dereferencing 142 00:06:39,000 --> 00:06:44,200 osoitinta ja sitten menee n osa tätä struct. 143 00:06:44,200 --> 00:06:45,525 Kysyttävää 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 >> Joten aiomme käydä läpi pari Toiminnan että voit tehdä 147 00:06:58,510 --> 00:06:59,730 linkitettyjä listoja. 148 00:06:59,730 --> 00:07:05,770 Linkitetty lista, muistaa, on sarja solmuja, jotka viittaavat toisiinsa. 149 00:07:05,770 --> 00:07:12,470 Ja me yleensä alkavat osoitin kutsutaan pää, yleensä, joka osoittaa 150 00:07:12,470 --> 00:07:14,040 ensimmäinen asia luetteloon. 151 00:07:14,040 --> 00:07:18,900 Niin ensimmäisellä rivillä täällä, me on meidän alkuperäinen L ensin. 152 00:07:18,900 --> 00:07:21,370 Niin, että mitä voit ajatella - tämä tekstiä täällä voit ajatella niin 153 00:07:21,370 --> 00:07:23,560 vain osoitin olemme tallennettu jostain, että pisteitä 154 00:07:23,560 --> 00:07:24,670 sen ensimmäiseen osaan. 155 00:07:24,670 --> 00:07:27,500 Ja tässä linkitetty lista meillä on neljä solmua. 156 00:07:27,500 --> 00:07:29,530 Jokainen solmu on iso laatikko. 157 00:07:29,530 --> 00:07:33,430 Suurempi laatikko sisällä iso laatikko on kokonaisluku osa. 158 00:07:33,430 --> 00:07:37,400 Ja sitten meillä on osoitin osa. 159 00:07:37,400 --> 00:07:39,630 >> Nämä laatikot eivät vetoa mittakaavassa sillä kuinka suuri on 160 00:07:39,630 --> 00:07:42,320 kokonaisluku tavuina? 161 00:07:42,320 --> 00:07:43,290 Kuinka suuri nyt? 162 00:07:43,290 --> 00:07:43,710 Neljä. 163 00:07:43,710 --> 00:07:45,470 Ja kuinka suuri on osoitin? 164 00:07:45,470 --> 00:07:45,940 Neljä. 165 00:07:45,940 --> 00:07:48,180 Siis todella, jos me piirtää Tässä mittakaavassa sekä laatikot 166 00:07:48,180 --> 00:07:49,690 olisi sama koko. 167 00:07:49,690 --> 00:07:52,870 Tässä tapauksessa haluamme lisätä jotain osaksi linkitetty lista. 168 00:07:52,870 --> 00:07:57,190 Voit siis nähdä täällä olemme asetat viisi Ajamme läpi 169 00:07:57,190 --> 00:08:01,310 linkitetty lista, löytää jossa viisi menee, ja aseta se. 170 00:08:01,310 --> 00:08:03,560 >> Katsotaanpa katkaisseen alas ja mennä hieman hitaammin. 171 00:08:03,560 --> 00:08:05,510 Aion osoittaa aluksella. 172 00:08:05,510 --> 00:08:09,930 Joten meillä on solmu viisi, että olemme luotu mallocs. 173 00:08:09,930 --> 00:08:11,190 Miksi kaikki nauraa? 174 00:08:11,190 --> 00:08:12,130 Vain leikkiä. 175 00:08:12,130 --> 00:08:13,310 OK. 176 00:08:13,310 --> 00:08:14,820 Joten olemme malloced viisi. 177 00:08:14,820 --> 00:08:16,310 Olemme luoneet tämän solmun jossain muualla. 178 00:08:16,310 --> 00:08:17,740 Meillä on valmis menemään. 179 00:08:17,740 --> 00:08:20,130 Aloitamme edessä lista, jossa on kaksi. 180 00:08:20,130 --> 00:08:22,380 Ja haluamme lisätä vuonna lajitellun tavalla. 181 00:08:22,380 --> 00:08:27,550 >> Joten jos näemme kaksi ja haluamme laittaa viidessä, mitä teemme kun näemme 182 00:08:27,550 --> 00:08:28,800 jotain vähemmän kuin me? 183 00:08:28,800 --> 00:08:31,850 184 00:08:31,850 --> 00:08:33,520 Mitä? 185 00:08:33,520 --> 00:08:36,750 Haluamme lisätä viisi tähän linkitetty lista, pitää se lajitellaan. 186 00:08:36,750 --> 00:08:37,520 Näemme numero kaksi. 187 00:08:37,520 --> 00:08:38,769 Joten mitä me teemme? 188 00:08:38,769 --> 00:08:39,179 Marcus? 189 00:08:39,179 --> 00:08:40,679 >> Yleisö: Soita osoitin seuraavalle solmulle. 190 00:08:40,679 --> 00:08:42,530 >> JASON HIRSCHHORN: Ja miksi menemme seuraavaan? 191 00:08:42,530 --> 00:08:45,970 >> Yleisö: Koska se on Seuraavan solmun luettelosta. 192 00:08:45,970 --> 00:08:48,310 Ja tiedämme vain, että muuhun paikkaan. 193 00:08:48,310 --> 00:08:50,410 >> JASON HIRSCHHORN: Ja viisi on suurempi kuin kaksi, erityisesti. 194 00:08:50,410 --> 00:08:51,600 Koska haluamme pitää sen lajiteltua. 195 00:08:51,600 --> 00:08:52,730 Joten viisi on suurempi kuin kaksi. 196 00:08:52,730 --> 00:08:54,460 Joten siirrymme seuraavaan. 197 00:08:54,460 --> 00:08:55,240 Ja nyt pääsemme neljä. 198 00:08:55,240 --> 00:08:56,490 Ja mitä tapahtuu, kun pääsemme neljä? 199 00:08:56,490 --> 00:08:58,920 200 00:08:58,920 --> 00:09:00,310 >> Viisi on enemmän kuin neljä. 201 00:09:00,310 --> 00:09:01,460 Joten meidän pitää käynnissä. 202 00:09:01,460 --> 00:09:03,110 Ja nyt olemme kuusi. 203 00:09:03,110 --> 00:09:04,360 Ja mitä näemme kuusi? 204 00:09:04,360 --> 00:09:08,672 205 00:09:08,672 --> 00:09:09,608 Kyllä, Carlos? 206 00:09:09,608 --> 00:09:10,544 >> Yleisö: Kuusi on suurempi kuin viisi. 207 00:09:10,544 --> 00:09:11,480 >> JASON HIRSCHHORN: Kuusi on on suurempi kuin viisi. 208 00:09:11,480 --> 00:09:13,660 Niin, että jos haluamme lisätä viisi. 209 00:09:13,660 --> 00:09:17,320 Kuitenkin pitää muistaa, että jos me vain yksi osoitin täällä - 210 00:09:17,320 --> 00:09:19,840 tämä on meidän ylimääräinen osoitin, joka on liikkumisesta listan läpi. 211 00:09:19,840 --> 00:09:21,860 Ja me osoittaa kuuteen. 212 00:09:21,860 --> 00:09:25,010 Olemme menettäneet tuntuman siihen, mitä tulee ennen kuutta. 213 00:09:25,010 --> 00:09:29,130 Joten jos haluamme lisätä jotain osaksi Tämän luettelon pitämällä se lajitellaan, me 214 00:09:29,130 --> 00:09:31,630 luultavasti kuinka monta viitteitä? 215 00:09:31,630 --> 00:09:32,280 >> Yleisö: Kaksi. 216 00:09:32,280 --> 00:09:32,920 >> JASON HIRSCHORN: Two. 217 00:09:32,920 --> 00:09:35,720 Yksi seurata nykyisen yhden ja seurata 218 00:09:35,720 --> 00:09:37,050 edellinen. 219 00:09:37,050 --> 00:09:38,450 Tämä on vain yksin linkitetty lista. 220 00:09:38,450 --> 00:09:39,670 Se vain menee yhteen suuntaan. 221 00:09:39,670 --> 00:09:43,220 Jos meillä olisi kaksin verroin linkitetty lista, jossa kaikki oli osoittaa asia 222 00:09:43,220 --> 00:09:46,240 sen jälkeen ja asia ennen sitä, niin meidän ei tarvitse tehdä sitä. 223 00:09:46,240 --> 00:09:49,350 Mutta tässä tapauksessa emme halua menettää Seuraa mitä tuli ennen meitä, jos 224 00:09:49,350 --> 00:09:53,350 meidän täytyy lisätä viisi jonnekin keskellä. 225 00:09:53,350 --> 00:09:55,610 Sano olimme lisäämällä yhdeksän. 226 00:09:55,610 --> 00:09:57,260 Mitä tapahtuisi, jos saimme kahdeksan? 227 00:09:57,260 --> 00:10:01,860 228 00:10:01,860 --> 00:10:04,880 >> Yleisö: Sinun täytyy saada, että nollakohta. 229 00:10:04,880 --> 00:10:07,820 Sen sijaan, että nollakohta sinun on lisätä osa ja sitten on 230 00:10:07,820 --> 00:10:09,216 se kohta yhdeksän. 231 00:10:09,216 --> 00:10:09,700 >> JASON HIRSCHORN: Aivan. 232 00:10:09,700 --> 00:10:10,600 Joten saamme kahdeksan. 233 00:10:10,600 --> 00:10:13,140 Pääsemme listan loppuun, koska tämä osoittaa nollaamaan. 234 00:10:13,140 --> 00:10:16,330 Ja nyt, sen sijaan, että se osoittaa null meillä on kohta meidän uuteen solmuun. 235 00:10:16,330 --> 00:10:19,870 Ja asetamme osoittimen Meidän uusi solmu nollaamaan. 236 00:10:19,870 --> 00:10:21,445 Onko kellään mitään kysyttävää noin lisäämällä? 237 00:10:21,445 --> 00:10:25,620 238 00:10:25,620 --> 00:10:28,100 Mitä jos en välitä pitämään luetteloa järjestetty? 239 00:10:28,100 --> 00:10:31,701 240 00:10:31,701 --> 00:10:34,350 >> Yleisö: Kiinni se alussa tai lopussa. 241 00:10:34,350 --> 00:10:35,510 >> JASON HIRSCHORN: Stick sitä alkuun tai loppuun. 242 00:10:35,510 --> 00:10:37,276 Kumpi meidän pitäisi tehdä? 243 00:10:37,276 --> 00:10:38,770 Bobby? 244 00:10:38,770 --> 00:10:41,020 Miksi loppuun? 245 00:10:41,020 --> 00:10:43,250 >> Yleisö: Koska alku on jo täynnä. 246 00:10:43,250 --> 00:10:43,575 >> JASON HIRSCHORN: OK. 247 00:10:43,575 --> 00:10:44,360 Alussa on jo täynnä. 248 00:10:44,360 --> 00:10:46,090 Kuka haluaa väittää vastaan ​​Bobby. 249 00:10:46,090 --> 00:10:47,290 Marcus. 250 00:10:47,290 --> 00:10:48,910 >> Yleisö: No varmaan haluat laitan sen alussa, koska 251 00:10:48,910 --> 00:10:50,140 muuten jos laitat sen Lopulta sinun täytyisi 252 00:10:50,140 --> 00:10:51,835 kulkea koko luettelo. 253 00:10:51,835 --> 00:10:52,990 >> JASON HIRSCHORN: Aivan. 254 00:10:52,990 --> 00:10:57,970 Jos siis olet ajatellut runtime, runtime lisäämällä lopussa 255 00:10:57,970 --> 00:11:00,110 Olisi n, koko. 256 00:11:00,110 --> 00:11:03,080 Mikä on iso O runtime lisäämällä alussa? 257 00:11:03,080 --> 00:11:04,170 Vakioaikaisia. 258 00:11:04,170 --> 00:11:07,075 Joten jos et välitä pitää jotain lajiteltu, paljon parempi vain 259 00:11:07,075 --> 00:11:08,420 aseta alussa tästä luettelosta. 260 00:11:08,420 --> 00:11:10,320 Ja että voidaan tehdä vakioaikaisia. 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 Seuraava toimenpide on löytää, mitkä muut - olemme muotoiltu tätä hakua. 264 00:11:18,870 --> 00:11:22,470 Mutta aiomme käydä läpi linkitetty lista joillekin esine. 265 00:11:22,470 --> 00:11:26,000 Olette nähneet koodi etsi ennen luentosalissa. 266 00:11:26,000 --> 00:11:29,490 Mutta me tavallaan vain teki sen lisätä, tai ainakin lisäämällä 267 00:11:29,490 --> 00:11:30,580 jotain lajiteltu. 268 00:11:30,580 --> 00:11:36,350 Näytät läpi, menee solmuun solmu, kunnes löydät numeron, että olet 269 00:11:36,350 --> 00:11:37,780 etsivät. 270 00:11:37,780 --> 00:11:39,670 Mitä tapahtuu, jos tulet listan loppuun? 271 00:11:39,670 --> 00:11:43,020 Sano Etsin yhdeksän ja minä päästä listan loppuun. 272 00:11:43,020 --> 00:11:44,270 Mitä teemme? 273 00:11:44,270 --> 00:11:47,147 274 00:11:47,147 --> 00:11:48,110 >> Yleisö: Return väärä? 275 00:11:48,110 --> 00:11:48,690 >> JASON HIRSCHORN: return false. 276 00:11:48,690 --> 00:11:49,960 Emme löytäneet sitä. 277 00:11:49,960 --> 00:11:52,010 Jos saavutat listan loppuun ja et löytänyt numeron olet 278 00:11:52,010 --> 00:11:54,170 etsii, se ei ole siellä. 279 00:11:54,170 --> 00:11:55,420 Kysyttävää löytää? 280 00:11:55,420 --> 00:11:59,530 281 00:11:59,530 --> 00:12:04,615 Jos tämä oli lajitellun listan, mitä olisi olla erilainen meidän etsimistä? 282 00:12:04,615 --> 00:12:07,370 283 00:12:07,370 --> 00:12:08,103 Joo. 284 00:12:08,103 --> 00:12:10,600 >> Yleisö: Se löytäisi ensimmäinen arvo joka on suurempi kuin yksi 285 00:12:10,600 --> 00:12:12,390 etsit ja palaa sitten vääriä. 286 00:12:12,390 --> 00:12:13,190 >> JASON HIRSCHORN: Aivan. 287 00:12:13,190 --> 00:12:17,310 Joten jos se lajitellun luettelon, jos saamme jotain, joka on suurempi kuin mitä 288 00:12:17,310 --> 00:12:20,180 etsimme, emme tarvitse jatkakaa listan loppuun. 289 00:12:20,180 --> 00:12:24,060 Voimme tässä vaiheessa return false koska emme tule löytämään sitä. 290 00:12:24,060 --> 00:12:27,340 Kysymys kuuluu nyt, olemme puhuneet pitäminen liittyvät luettelot lajitellaan, 291 00:12:27,340 --> 00:12:28,180 pitää ne lajittelemattoman. 292 00:12:28,180 --> 00:12:30,050 Se tulee olemaan jotain et luultavasti täytyy miettiä 293 00:12:30,050 --> 00:12:34,240 kun koodaus ongelma asettaa viisi, jos Valitse tiiviste erillisellä 294 00:12:34,240 --> 00:12:36,360 ketjuttamalla lähestymistapaa, joka me puhumme myöhemmin. 295 00:12:36,360 --> 00:12:41,400 >> Mutta onko se sen arvoista pitää luetteloa lajitellaan ja sitten voi ehkä olla 296 00:12:41,400 --> 00:12:42,310 nopeammin hakuja? 297 00:12:42,310 --> 00:12:47,220 Vai onko parempi lisäämään nopeasti jotain jatkuvassa runtime mutta sitten 298 00:12:47,220 --> 00:12:48,430 on enää etsimistä? 299 00:12:48,430 --> 00:12:52,250 Se on kompromissi oikeassa, että olet saat päättää, mikä on sopivampi 300 00:12:52,250 --> 00:12:53,590 teidän erityinen ongelma. 301 00:12:53,590 --> 00:12:56,680 Ja siellä ei ole välttämättä yhtä aivan oikea vastaus. 302 00:12:56,680 --> 00:12:59,520 Mutta se on varmasti päätöstä saat tehdä, ja luultavasti hyvä puolustamaan 303 00:12:59,520 --> 00:13:05,270 että vaikkapa kommentin tai kaksi miksi valitsit yksi yli muiden. 304 00:13:05,270 --> 00:13:06,490 >> Lopuksi, poistaminen. 305 00:13:06,490 --> 00:13:08,100 Olemme nähneet poistamalla. 306 00:13:08,100 --> 00:13:09,180 Se muistuttaa hakemisen. 307 00:13:09,180 --> 00:13:11,020 Etsimme elementin. 308 00:13:11,020 --> 00:13:12,390 Sano yritämme poistaa kuusi. 309 00:13:12,390 --> 00:13:14,450 Joten löydämme kuusi täällä. 310 00:13:14,450 --> 00:13:18,860 Asia, että meidän täytyy varmistaa, että meillä tehdä, on, että mitä tahansa osoittaa 311 00:13:18,860 --> 00:13:21,220 kuusi - kuten näemme vaiheessa kaksi tänne - 312 00:13:21,220 --> 00:13:26,500 mitä on osoittaa kuusi tarpeet skip kuusi nyt ja muutettava 313 00:13:26,500 --> 00:13:28,160 mitä kuusi viittaa. 314 00:13:28,160 --> 00:13:31,410 Emme halua koskaan orpo muualla lista unohtamalla asettaa, että 315 00:13:31,410 --> 00:13:32,960 edellinen osoitin. 316 00:13:32,960 --> 00:13:35,960 Ja sitten joskus riippuen ohjelmasta, he vain 317 00:13:35,960 --> 00:13:37,380 poistaa tämän solmun kokonaan. 318 00:13:37,380 --> 00:13:40,135 Joskus sinun kannattaa palata arvo, joka on tässä solmussa. 319 00:13:40,135 --> 00:13:42,490 Niin, että miten poistaa toimii. 320 00:13:42,490 --> 00:13:44,610 Kysyttävää poistaa? 321 00:13:44,610 --> 00:13:51,280 322 00:13:51,280 --> 00:13:53,850 >> Yleisö: Joten jos aiot poistaa se, voisitteko käyttää ilmaiseksi, koska 323 00:13:53,850 --> 00:13:55,655 oletettavasti se on malloced? 324 00:13:55,655 --> 00:13:57,976 >> JASON HIRSCHORN: Jos haluat vapauttaa jotain, joka on täsmälleen oikeassa ja sinä 325 00:13:57,976 --> 00:13:58,540 malloced se. 326 00:13:58,540 --> 00:14:00,410 Sano halusimme palata tähän arvoon. 327 00:14:00,410 --> 00:14:04,010 Voisimme palata kuusi ja sitten vapaasti tämän solmun ja puhelu ilmaiseksi sitä. 328 00:14:04,010 --> 00:14:06,180 Tai olisimme luultavasti soita ilmaiseksi ensin ja palata sitten kuusi. 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 Joten siirtyä harjoitella koodausta. 332 00:14:14,010 --> 00:14:16,090 Aiomme koodin kolme toimintoja. 333 00:14:16,090 --> 00:14:18,260 Ensimmäinen on nimeltään insert_node. 334 00:14:18,260 --> 00:14:22,170 Joten sinulla on koodi, että olen lähettänyt sinulle, ja jos olet katsomassa tätä myöhemmin 335 00:14:22,170 --> 00:14:28,020 voit käyttää koodin linked.c on CS50 verkkosivuilla. 336 00:14:28,020 --> 00:14:30,880 Mutta linked.c, on joitakin luuranko koodia, joka on jo 337 00:14:30,880 --> 00:14:32,280 on kirjoitettu sinulle. 338 00:14:32,280 --> 00:14:34,560 Ja sitten on pari toimintoja sinun täytyy kirjoittaa. 339 00:14:34,560 --> 00:14:36,380 >> Ensimmäinen aiomme kirjoittaa insert_node. 340 00:14:36,380 --> 00:14:39,800 Ja mitä insert_node tekee IS lisää kokonaisluku. 341 00:14:39,800 --> 00:14:42,440 Ja annat kokonaisluku osaksi linkitetty lista. 342 00:14:42,440 --> 00:14:45,470 Ja erityisesti, tarvitset pitää luetteloa järjestetty 343 00:14:45,470 --> 00:14:47,650 pienimmästä suurimpaan. 344 00:14:47,650 --> 00:14:51,360 Lisäksi et halua laita mitään kaksoiskappaleet. 345 00:14:51,360 --> 00:14:54,600 Lopuksi, kuten näette insert_node palauttaa bool. 346 00:14:54,600 --> 00:14:57,140 Joten sinun pitäisi antaa käyttäjä tietää vai ei insertti oli 347 00:14:57,140 --> 00:15:00,800 onnistunut palauttamalla tosi tai epätosi. 348 00:15:00,800 --> 00:15:02,580 Lopussa tämän ohjelman - 349 00:15:02,580 --> 00:15:05,750 ja tässä vaiheessa et tarvitse huolehtia vapauttaa mitään. 350 00:15:05,750 --> 00:15:11,790 Joten kaikki mitä teet on ottaen kokonaisluku ja asettamalla sen luetteloon. 351 00:15:11,790 --> 00:15:13,890 >> Tämä on mitä pyydän sinua tekemään nyt. 352 00:15:13,890 --> 00:15:17,620 Jälleen linked.c, johon kaikilla on, on luuranko koodi. 353 00:15:17,620 --> 00:15:20,980 Ja sinun pitäisi nähdä pohjaa kohti mallifunktio ilmoituksen. 354 00:15:20,980 --> 00:15:27,390 Kuitenkin ennen kuin menee koodausta se C, olen erittäin rohkaista teitä menemään 355 00:15:27,390 --> 00:15:29,330 läpi vaiheet olemme olleet harjoitellaan viikoittain. 356 00:15:29,330 --> 00:15:31,100 Olemme jo käyneet läpi kuva tästä. 357 00:15:31,100 --> 00:15:33,380 Joten sinulla pitäisi olla jonkinlainen käsitys miten tämä toimii. 358 00:15:33,380 --> 00:15:36,590 Mutta haluan kannustaa sinua kirjoittamaan Joissakin pseudokoodina ennen sukellusta sisään 359 00:15:36,590 --> 00:15:38,640 Ja me aiomme mennä yli pseudokoodina ryhmänä. 360 00:15:38,640 --> 00:15:41,470 Ja sitten kun olet kirjoittanut pseudokoodina, ja kun olemme kirjoitettu meidän 361 00:15:41,470 --> 00:15:45,850 pseudokoodina ryhmänä, voit mennä koodaus se C. 362 00:15:45,850 --> 00:15:49,980 >> Koska heads up, insert_node toiminto on luultavasti hankalin ja 363 00:15:49,980 --> 00:15:53,550 kolme aiomme kirjoittaa, koska olen lisätty joitakin uusia rajoituksia 364 00:15:53,550 --> 00:15:57,190 ohjelmointi, erityisesti et aio lisätä mitään 365 00:15:57,190 --> 00:15:59,880 toistoja ja että luettelon pitäisi pysyä lajitellut. 366 00:15:59,880 --> 00:16:02,660 Joten tämä on ei-triviaali ohjelma että tarvitset koodin. 367 00:16:02,660 --> 00:16:06,470 Ja miksi et ota viisi vaille seitsemän minuuttia vain saada työtä 368 00:16:06,470 --> 00:16:07,640 pseudokoodina ja koodin. 369 00:16:07,640 --> 00:16:09,460 Ja sitten alamme menossa ryhmänä. 370 00:16:09,460 --> 00:16:11,680 Jälleen, jos sinulla on kysyttävää, nostamaan käden ja tulen ympärille. 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 >> Olemme myös yleensä tehdä näitä - 375 00:18:30,120 --> 00:18:32,070 tai en nimenomaisesti sano voi työskennellä ihmisten kanssa. 376 00:18:32,070 --> 00:18:36,500 Mutta ilmeisesti olen erittäin rohkaista teitä, jos sinulla on kysymyksiä, kysyä 377 00:18:36,500 --> 00:18:39,840 naapuri istuu vieressäsi tai jopa työskennellä jonkun kanssa 378 00:18:39,840 --> 00:18:40,510 muuta, jos haluat. 379 00:18:40,510 --> 00:18:42,600 Tämä ei tarvitse olla yksittäisiä hiljainen toiminta. 380 00:18:42,600 --> 00:20:11,770 381 00:20:11,770 --> 00:20:16,330 >> Aloitetaan kirjallisesti joitakin pseudokoodina taululle. 382 00:20:16,330 --> 00:20:19,395 Kuka voi antaa minulle ensimmäinen rivi pseudokoodi tätä ohjelmaa? 383 00:20:19,395 --> 00:20:22,240 384 00:20:22,240 --> 00:20:23,640 Tätä toimintoa varten pikemminkin - 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 >> Yleisö: Joten ensimmäinen asia tein oli luoda uuden osoittimen solmuun ja minä 388 00:20:36,560 --> 00:20:41,320 alustetaan se osoittaa samaan asia, että lista on osoittaa. 389 00:20:41,320 --> 00:20:41,550 >> JASON HIRSCHORN: OK. 390 00:20:41,550 --> 00:20:45,190 Joten luot uuden osoittimen luetteloon, ei solmuun. 391 00:20:45,190 --> 00:20:45,420 >> Yleisö: Oikea. 392 00:20:45,420 --> 00:20:46,150 Joo. 393 00:20:46,150 --> 00:20:46,540 >> JASON HIRSCHORN: OK. 394 00:20:46,540 --> 00:20:48,221 Ja sitten mitä haluamme tehdä? 395 00:20:48,221 --> 00:20:49,163 Mitä sen jälkeen? 396 00:20:49,163 --> 00:20:50,105 Entä solmu? 397 00:20:50,105 --> 00:20:51,050 Meillä ei ole solmu. 398 00:20:51,050 --> 00:20:52,300 Meillä on vain arvo. 399 00:20:52,300 --> 00:20:55,918 400 00:20:55,918 --> 00:20:58,890 Jos haluamme lisätä solmuun, mitä me täytyy tehdä ensin ennen kuin voimme edes 401 00:20:58,890 --> 00:20:59,980 mieti asetat sen? 402 00:20:59,980 --> 00:21:00,820 >> Yleisö: Anteeksi. 403 00:21:00,820 --> 00:21:02,160 meidän täytyy malloc tilaa solmulle. 404 00:21:02,160 --> 00:21:02,455 >> JASON HIRSCHORN: Erinomainen. 405 00:21:02,455 --> 00:21:03,210 Tehdään - 406 00:21:03,210 --> 00:21:04,628 OK. 407 00:21:04,628 --> 00:21:06,065 Ei pääse, että korkea. 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 Aiomme mennä alas, ja sitten käytämme kaksi saraketta. 411 00:21:13,236 --> 00:21:13,732 En voi mennä, että - 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 Luo uusi solmu. 415 00:21:25,130 --> 00:21:29,380 Voit luoda toisen osoitin listaan tai voit käyttää valikosta, sillä se on olemassa. 416 00:21:29,380 --> 00:21:30,720 Sinun ei todellakaan tarvitse tehdä. 417 00:21:30,720 --> 00:21:31,750 >> Joten luomme uuden solmun. 418 00:21:31,750 --> 00:21:32,010 Suuri. 419 00:21:32,010 --> 00:21:32,840 Sitähän me teemme ensin. 420 00:21:32,840 --> 00:21:34,870 Mitä seuraavaksi? 421 00:21:34,870 --> 00:21:35,080 >> Yleisö: Odota. 422 00:21:35,080 --> 00:21:38,330 Pitäisikö meidän luoda uusi solmu nyt tai odotammeko varmistaa, että 423 00:21:38,330 --> 00:21:42,260 ei ole kopioita solmun luetteloon ennen luomme sen? 424 00:21:42,260 --> 00:21:43,100 >> JASON HIRSCHORN: Hyvä kysymys. 425 00:21:43,100 --> 00:21:47,770 Katsotaanpa pidä, että myöhemmin, koska Suurimman osan ajasta luomme 426 00:21:47,770 --> 00:21:48,220 uusi solmu. 427 00:21:48,220 --> 00:21:49,110 Joten me jatkamme että täällä. 428 00:21:49,110 --> 00:21:51,006 Mutta se on hyvä kysymys. 429 00:21:51,006 --> 00:21:53,250 Jos luomme sen ja löydämme kaksoiskappale, mitä pitäisi 430 00:21:53,250 --> 00:21:54,490 teemme ennen paluutaan? 431 00:21:54,490 --> 00:21:55,190 >> Yleisö: Vapauta se. 432 00:21:55,190 --> 00:21:55,470 >> JASON HIRSCHORN: Joo. 433 00:21:55,470 --> 00:21:56,500 Luultavasti vapauttaa sitä. 434 00:21:56,500 --> 00:21:56,760 OK. 435 00:21:56,760 --> 00:21:59,850 Mitä teemme, kun olemme luoda uuden solmun? 436 00:21:59,850 --> 00:22:02,260 Annie? 437 00:22:02,260 --> 00:22:04,780 >> Yleisö: Laitoimme numero solmussa? 438 00:22:04,780 --> 00:22:05,140 >> JASON HIRSCHORN: Aivan. 439 00:22:05,140 --> 00:22:07,190 Laitoimme numero - me malloc tilaa. 440 00:22:07,190 --> 00:22:08,160 Aion lähteä, että kaikki yhdellä rivillä. 441 00:22:08,160 --> 00:22:08,720 Mutta olet oikeassa. 442 00:22:08,720 --> 00:22:10,305 Me malloc tilaa, ja sitten laitamme numero tuumaa 443 00:22:10,305 --> 00:22:12,585 Voimme jopa asettaa osoittimen osa sitä nollaksi. 444 00:22:12,585 --> 00:22:13,720 Se on aivan oikein. 445 00:22:13,720 --> 00:22:17,400 Ja sitten entä sen jälkeen? 446 00:22:17,400 --> 00:22:18,490 Laadimme tätä kuvaa taululle. 447 00:22:18,490 --> 00:22:21,190 Joten mitä me teemme? 448 00:22:21,190 --> 00:22:22,680 >> Yleisö: Käymme läpi listan. 449 00:22:22,680 --> 00:22:23,930 >> JASON HIRSCHORN: Käy läpi listan. 450 00:22:23,930 --> 00:22:30,620 451 00:22:30,620 --> 00:22:31,100 OK. 452 00:22:31,100 --> 00:22:34,280 Ja mitä me tarkistaa kussakin solmussa. 453 00:22:34,280 --> 00:22:35,955 Kurt, mitä me tarkistaa varten kussakin solmussa? 454 00:22:35,955 --> 00:22:41,640 >> Yleisö: Katso onko n arvo , että solmu on suurempi kuin n-arvo 455 00:22:41,640 --> 00:22:43,070 meidän solmun. 456 00:22:43,070 --> 00:22:43,340 >> JASON HIRSCHORN: OK. 457 00:22:43,340 --> 00:22:44,280 Aion tehdä - 458 00:22:44,280 --> 00:22:45,855 joo, OK. 459 00:22:45,855 --> 00:22:48,160 Joten se on n - 460 00:22:48,160 --> 00:22:59,040 Aion sanoa, jos arvo on suurempi kuin tämän solmun, niin mitä me teemme? 461 00:22:59,040 --> 00:23:07,290 >> Yleisö: No, sitten lisätään asia juuri ennen sitä. 462 00:23:07,290 --> 00:23:07,970 >> JASON HIRSCHORN: OK. 463 00:23:07,970 --> 00:23:09,410 Joten jos se on suurempi kuin tämä, Sitten haluamme lisätä. 464 00:23:09,410 --> 00:23:14,010 Mutta haluamme lisää se juuri ennen koska meillä on myös olisi oltava 465 00:23:14,010 --> 00:23:16,070 pitää kirjaa sitten mitä oli ennen. 466 00:23:16,070 --> 00:23:22,690 Niin laita ennen. 467 00:23:22,690 --> 00:23:25,120 Joten meillä on todennäköisesti jäänyt jotain aiemmin. 468 00:23:25,120 --> 00:23:27,770 Emme todennäköisesti tarvitse pitää seurata, mitä on tekeillä. 469 00:23:27,770 --> 00:23:28,460 Mutta me palaamme sinne. 470 00:23:28,460 --> 00:23:30,160 Joten mikä arvo on pienempi kuin? 471 00:23:30,160 --> 00:23:38,030 472 00:23:38,030 --> 00:23:39,710 Kurt, mitä teemme, jos -arvo on pienempi kuin? 473 00:23:39,710 --> 00:23:43,000 >> Yleisö: Sitten vain pitää käynnissä ellei se viimeinen. 474 00:23:43,000 --> 00:23:43,550 >> JASON HIRSCHORN: Pidän siitä. 475 00:23:43,550 --> 00:23:44,800 Niin mene seuraavaan solmuun. 476 00:23:44,800 --> 00:23:47,410 477 00:23:47,410 --> 00:23:48,930 Ellei se viimeinen - 478 00:23:48,930 --> 00:23:51,100 me varmaan tarkistaa, että in kannalta kunnossa. 479 00:23:51,100 --> 00:23:54,870 Mutta joo, seuraavaan solmuun. 480 00:23:54,870 --> 00:23:58,680 Ja se on tulossa liian alhainen, joten jatkamme matkaa tänne. 481 00:23:58,680 --> 00:24:02,030 Mutta jos - 482 00:24:02,030 --> 00:24:03,280 Voivatko kaikki nähdä tämän? 483 00:24:03,280 --> 00:24:07,230 484 00:24:07,230 --> 00:24:11,610 Jos olemme yhtä, mitä teemme? 485 00:24:11,610 --> 00:24:15,740 Jos arvo yritämme lisätä on yhtä suuri kuin tämä solmun arvo? 486 00:24:15,740 --> 00:24:16,320 Joo? 487 00:24:16,320 --> 00:24:18,400 >> Yleisö: [kuultavissa]. 488 00:24:18,400 --> 00:24:18,850 >> JASON HIRSCHORN: Joo. 489 00:24:18,850 --> 00:24:19,290 Ottaen huomioon tämän - 490 00:24:19,290 --> 00:24:20,090 Marcus on oikeassa. 491 00:24:20,090 --> 00:24:21,330 Olisimme voineet ehkä tehdä jotain erilaista. 492 00:24:21,330 --> 00:24:25,360 Mutta koska olemme luoneet sitä, tässä meidän pitäisi vapauttaa ja palata sitten. 493 00:24:25,360 --> 00:24:26,774 Oh boy. 494 00:24:26,774 --> 00:24:30,080 Onko nyt parempi? 495 00:24:30,080 --> 00:24:31,850 Kuinka niin? 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 Ilmainen ja mitä sitten me palata, [äänetön]? 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 Puuttuuko jotain? 502 00:24:45,360 --> 00:24:53,500 503 00:24:53,500 --> 00:24:59,650 Missä siis olemme pitää kirjaa Tekniikan solmun? 504 00:24:59,650 --> 00:25:02,370 >> Yleisö: Minusta se menisi jälkeen luodaan uusi solmu. 505 00:25:02,370 --> 00:25:02,600 >> JASON HIRSCHORN: OK. 506 00:25:02,600 --> 00:25:03,940 Joten alussa me luultavasti - 507 00:25:03,940 --> 00:25:07,175 joo, voimme luoda osoittimen uuteen solmu, kuten edellisen solmun osoitin ja 508 00:25:07,175 --> 00:25:09,600 nykyinen solmu osoitin. 509 00:25:09,600 --> 00:25:12,640 Joten lisätä että täällä. 510 00:25:12,640 --> 00:25:15,610 511 00:25:15,610 --> 00:25:26,900 Luo nykyisen ja edellisen osoittimet solmuihin. 512 00:25:26,900 --> 00:25:28,955 Mutta kun me muuttaa niitä viitteitä? 513 00:25:28,955 --> 00:25:30,205 Mistä me tehdä sen koodin? 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 >> Yleisö: - arvo olosuhteissa? 517 00:25:35,170 --> 00:25:36,420 >> JASON HIRSCHORN: Mikä erityisesti yksi? 518 00:25:36,420 --> 00:25:39,862 519 00:25:39,862 --> 00:25:40,720 >> Yleisö: Olen vain hämmentynyt. 520 00:25:40,720 --> 00:25:44,200 Jos arvo on suurempi kuin tämän solmun, ei se tarkoita, että haluat mennä 521 00:25:44,200 --> 00:25:45,320 seuraavalle solmulle? 522 00:25:45,320 --> 00:25:49,515 >> JASON HIRSCHHORN: Joten jos meidän arvo on suurempi kuin arvo tämän solmun. 523 00:25:49,515 --> 00:25:52,130 >> Yleisö: Joo, niin sinun haluaisi pidemmälle ruodussa, eikö? 524 00:25:52,130 --> 00:25:52,590 >> JASON HIRSCHHORN: Oikea. 525 00:25:52,590 --> 00:25:53,840 Joten emme aseta se täällä. 526 00:25:53,840 --> 00:25:58,430 527 00:25:58,430 --> 00:26:03,240 Jos arvo on pienempi kuin tämä solmu, niin menemme seuraavaan solmuun - tai sitten 528 00:26:03,240 --> 00:26:03,835 aseta ennen. 529 00:26:03,835 --> 00:26:05,966 >> Yleisö: Odota, joka on tämä solmu ja mikä on arvo? 530 00:26:05,966 --> 00:26:08,510 531 00:26:08,510 --> 00:26:09,280 >> JASON HIRSCHHORN: Hyvä kysymys. 532 00:26:09,280 --> 00:26:13,260 Arvo per tätä toimintoa määritelmä on mitä meille on annettu. 533 00:26:13,260 --> 00:26:16,910 Joten arvo on numero meille annetaan. 534 00:26:16,910 --> 00:26:21,120 Joten, jos arvo on pienempi kuin tämä solmu, me tarvitsemme aikaa lisätä. 535 00:26:21,120 --> 00:26:24,575 Jos arvo on suurempi kuin tämän solmun, menemme seuraavaan solmuun. 536 00:26:24,575 --> 00:26:26,790 Ja takaisin alkuperäiseen kysymykseen, kuitenkin silloin, kun - 537 00:26:26,790 --> 00:26:29,060 >> Yleisö: Jos arvo on suurempi kuin tähän solmuun. 538 00:26:29,060 --> 00:26:30,310 >> JASON HIRSCHHORN: Ja niin mitä me teemme täällä? 539 00:26:30,310 --> 00:26:36,790 540 00:26:36,790 --> 00:26:38,160 Makea. 541 00:26:38,160 --> 00:26:38,860 Se on totta. 542 00:26:38,860 --> 00:26:41,370 Olen juuri menossa kirjoittaa päivitys viitteitä. 543 00:26:41,370 --> 00:26:44,010 Mutta kyllä, jossa nykyinen voisitte päivittää sen 544 00:26:44,010 --> 00:26:46,080 viittaavat seuraavaan. 545 00:26:46,080 --> 00:26:47,330 Jotain muuta puuttuu? 546 00:26:47,330 --> 00:26:52,710 547 00:26:52,710 --> 00:26:54,940 Joten aion kirjoittaa tämän koodi gedit. 548 00:26:54,940 --> 00:26:58,375 Ja vaikka en tee tätä, voit olla pari minuuttia työskennellä koodaus 549 00:26:58,375 --> 00:28:19,240 Tämän C. 550 00:28:19,240 --> 00:28:20,940 >> Joten minulla on tulo pseudokoodina. 551 00:28:20,940 --> 00:28:22,940 Nopea huomautus ennen kuin aloitamme. 552 00:28:22,940 --> 00:28:25,560 Meillä ei ehkä pysty täysin lopettaa tämän kaikissa 553 00:28:25,560 --> 00:28:27,300 kolme näistä toiminnoista. 554 00:28:27,300 --> 00:28:30,630 On oikein niihin ratkaisuja että aion lähettää ulos te 555 00:28:30,630 --> 00:28:33,730 jakson jälkeen, ja se julkaistaan ​​CS50.net. 556 00:28:33,730 --> 00:28:35,640 Joten en rohkaista teitä mennä katsomaan kohdat. 557 00:28:35,640 --> 00:28:40,550 Kehotan sinua kokeilemaan näitä teidän omistaa, ja sitten käyttää käytäntö 558 00:28:40,550 --> 00:28:41,760 ongelmia tarkistaa vastauksesi. 559 00:28:41,760 --> 00:28:47,070 Nämä ovat kaikki suunniteltu tarkasti liittyvät ja noudattaa mitä 560 00:28:47,070 --> 00:28:48,400 sinun täytyy tehdä ongelman asetettu. 561 00:28:48,400 --> 00:28:53,820 Joten en rohkaista voit harjoitella tätä oman ja sitten käyttää koodia 562 00:28:53,820 --> 00:28:54,660 tarkistaa vastauksesi. 563 00:28:54,660 --> 00:28:57,060 Koska en halua siirtyä hash pöydät jossain vaiheessa osiossa. 564 00:28:57,060 --> 00:28:58,150 Joten emme ehkä saa läpi kaiken. 565 00:28:58,150 --> 00:28:59,960 Mutta me teemme niin paljon voimme nyt. 566 00:28:59,960 --> 00:29:00,370 >> OK. 567 00:29:00,370 --> 00:29:01,960 Aloitetaanpa. 568 00:29:01,960 --> 00:29:04,770 Asam, miten luomme uuden solmun? 569 00:29:04,770 --> 00:29:06,810 >> Yleisö: Sinun suunnittelijan mahdollista *. 570 00:29:06,810 --> 00:29:09,640 >> JASON HIRSCHHORN: Joten me on, että täällä. 571 00:29:09,640 --> 00:29:10,040 Anteeksi. 572 00:29:10,040 --> 00:29:13,530 Sanoitte struct *. 573 00:29:13,530 --> 00:29:17,260 >> Yleisö: Ja sitten [? kind?] solmu-tai c-solmuun. 574 00:29:17,260 --> 00:29:17,780 >> JASON HIRSCHHORN: OK. 575 00:29:17,780 --> 00:29:19,740 Aion kutsua sitä new_node jotta voimme pysyä johdonmukaisesti. 576 00:29:19,740 --> 00:29:22,646 577 00:29:22,646 --> 00:29:33,180 >> Yleisö: Ja haluat määrittää, että pään, ensimmäinen solmu. 578 00:29:33,180 --> 00:29:33,580 >> JASON HIRSCHHORN: OK. 579 00:29:33,580 --> 00:29:37,290 Joten nyt tämä osoittaa - joten tämä ei ole luonut uuden solmun vielä. 580 00:29:37,290 --> 00:29:41,380 Tämä on vain osoittaa ensimmäinen solmu listassa. 581 00:29:41,380 --> 00:29:42,630 Miten luon uuden solmun? 582 00:29:42,630 --> 00:29:45,490 583 00:29:45,490 --> 00:29:48,070 Jos tarvitsen tilaa luoda uuden solmun. 584 00:29:48,070 --> 00:29:49,230 Malloc. 585 00:29:49,230 --> 00:29:51,710 Ja kuinka iso? 586 00:29:51,710 --> 00:30:00,390 >> Yleisö: koko struct. 587 00:30:00,390 --> 00:30:01,150 >> JASON HIRSCHHORN: koko struct. 588 00:30:01,150 --> 00:30:02,400 Ja mitä struct kutsutaan? 589 00:30:02,400 --> 00:30:09,670 590 00:30:09,670 --> 00:30:09,840 >> Yleisö: Node? 591 00:30:09,840 --> 00:30:11,640 >> JASON HIRSCHHORN: Node. 592 00:30:11,640 --> 00:30:17,640 Joten malloc (sizeof (solmu)); antaa meille tilaa. 593 00:30:17,640 --> 00:30:19,740 Ja on tämän linjan - 594 00:30:19,740 --> 00:30:21,740 yksi asia on väärä tällä linjalla. 595 00:30:21,740 --> 00:30:24,430 Onko new_node osoitin struct? 596 00:30:24,430 --> 00:30:25,650 Se on yleisnimi. 597 00:30:25,650 --> 00:30:26,520 Mikä se on - 598 00:30:26,520 --> 00:30:27,450 solmu, tarkalleen. 599 00:30:27,450 --> 00:30:29,340 Se solmu *. 600 00:30:29,340 --> 00:30:33,010 Ja mitä me teemme heti me malloc jotain, Asan? 601 00:30:33,010 --> 00:30:34,476 Mikä on ensimmäinen asia, mitä teemme? 602 00:30:34,476 --> 00:30:38,850 603 00:30:38,850 --> 00:30:40,320 Mitä jos se ei toimi? 604 00:30:40,320 --> 00:30:42,430 >> Yleisö: Voi, tarkista, onko se viittaa solmuun? 605 00:30:42,430 --> 00:30:43,310 >> JASON HIRSCHHORN: Aivan. 606 00:30:43,310 --> 00:30:46,750 Joten jos new_node vastaa tasavertaisina null, mitä me teemme? 607 00:30:46,750 --> 00:30:51,650 608 00:30:51,650 --> 00:30:54,820 Tämä palauttaa bool, tätä toimintoa. 609 00:30:54,820 --> 00:30:57,760 Täsmälleen. 610 00:30:57,760 --> 00:30:58,450 Näyttää hyvältä. 611 00:30:58,450 --> 00:30:59,680 Jotain lisättävää siellä? 612 00:30:59,680 --> 00:31:00,670 Me lisäämme asioita lopussa. 613 00:31:00,670 --> 00:31:03,160 Mutta toistaiseksi näyttää hyvältä. 614 00:31:03,160 --> 00:31:06,170 Luo nykyisiä ja aikaisempia viitteitä. 615 00:31:06,170 --> 00:31:08,650 Michael, miten voin tehdä tämän? 616 00:31:08,650 --> 00:31:12,810 >> Yleisö: Olisitte tehdä solmu *. 617 00:31:12,810 --> 00:31:21,800 618 00:31:21,800 --> 00:31:25,502 Sinun täytyy tehdä yksi ei varten new_node mutta 619 00:31:25,502 --> 00:31:26,905 solmut meillä jo on. 620 00:31:26,905 --> 00:31:27,230 >> JASON HIRSCHHORN: OK. 621 00:31:27,230 --> 00:31:29,255 Joten nykyinen solmu olemme. 622 00:31:29,255 --> 00:31:30,505 Soitan että As. 623 00:31:30,505 --> 00:31:39,650 624 00:31:39,650 --> 00:31:39,770 Selvä. 625 00:31:39,770 --> 00:31:41,620 Olemme päättäneet haluamme pitää kaksi, koska meidän täytyy tietää 626 00:31:41,620 --> 00:31:42,870 mitä ennen sitä. 627 00:31:42,870 --> 00:31:45,770 628 00:31:45,770 --> 00:31:47,020 Mitä he saavat alustetaan? 629 00:31:47,020 --> 00:31:49,874 630 00:31:49,874 --> 00:31:54,180 >> Yleisö: Niiden arvo listallamme. 631 00:31:54,180 --> 00:31:58,090 >> JASON HIRSCHHORN: Joten mikä on Ensimmäinen asia listallamme? 632 00:31:58,090 --> 00:32:04,050 Vai mistä me tiedämme, missä alussa lista on? 633 00:32:04,050 --> 00:32:08,015 >> Yleisö: Eikö ole läpäissyt osaksi toiminto? 634 00:32:08,015 --> 00:32:08,466 >> JASON HIRSCHHORN: Oikea. 635 00:32:08,466 --> 00:32:09,716 Se hyväksyttiin täällä. 636 00:32:09,716 --> 00:32:15,910 637 00:32:15,910 --> 00:32:18,980 Joten jos se siirtyi toiminto, aloittaa listan, mitä meidän pitäisi 638 00:32:18,980 --> 00:32:21,270 set on yhtä suuri? 639 00:32:21,270 --> 00:32:22,110 >> Yleisö: List. 640 00:32:22,110 --> 00:32:22,900 >> JASON HIRSCHHORN: List. 641 00:32:22,900 --> 00:32:24,090 Se on aivan oikein. 642 00:32:24,090 --> 00:32:26,290 Nyt se on osoite alussa listalta. 643 00:32:26,290 --> 00:32:28,450 Entä edellinen? 644 00:32:28,450 --> 00:32:31,920 >> Yleisö: List miinus yksi? 645 00:32:31,920 --> 00:32:32,690 >> JASON HIRSCHHORN: Ei mitään ennen sitä. 646 00:32:32,690 --> 00:32:34,580 Mitä siis voimme tehdä merkitsevän mitään? 647 00:32:34,580 --> 00:32:35,050 >> Yleisö: Null. 648 00:32:35,050 --> 00:32:35,450 >> JASON HIRSCHHORN: Joo. 649 00:32:35,450 --> 00:32:37,950 Kuulostaa hyvä idea. 650 00:32:37,950 --> 00:32:38,360 Täydellinen. 651 00:32:38,360 --> 00:32:39,630 Kiitos. 652 00:32:39,630 --> 00:32:42,850 Käydä listan läpi. 653 00:32:42,850 --> 00:32:45,490 Constantine, kuinka kauan aiomme käydä läpi listan? 654 00:32:45,490 --> 00:32:49,010 >> Yleisö: kunnes pääsemme null. 655 00:32:49,010 --> 00:32:49,390 >> JASON HIRSCHHORN: OK. 656 00:32:49,390 --> 00:32:50,430 Joten jos, vaikka, silmukka. 657 00:32:50,430 --> 00:32:52,200 Mitä me teemme? 658 00:32:52,200 --> 00:32:53,320 >> Yleisö: Ehkä silmukka? 659 00:32:53,320 --> 00:32:53,910 >> JASON HIRSCHHORN: Tehdään silmukka. 660 00:32:53,910 --> 00:32:55,870 OK. 661 00:32:55,870 --> 00:33:02,465 >> Yleisö: Ja me sanoa - 662 00:33:02,465 --> 00:33:09,764 663 00:33:09,764 --> 00:33:13,390 kunnes osoittimen ei ole yhtä kuin nolla. 664 00:33:13,390 --> 00:33:19,160 >> JASON HIRSCHHORN: Eli jos tiedämme ehto, miten voimme kirjoittaa silmukka 665 00:33:19,160 --> 00:33:21,740 perustuu pois tämän edellytyksen. 666 00:33:21,740 --> 00:33:24,380 Millainen silmukan meidän pitäisi käyttää? 667 00:33:24,380 --> 00:33:25,260 >> Yleisö: Vaikka. 668 00:33:25,260 --> 00:33:25,590 >> JASON HIRSCHHORN: Joo. 669 00:33:25,590 --> 00:33:27,130 Että on järkevämpää perustuu pois mitä sanoit. 670 00:33:27,130 --> 00:33:29,430 Jos me vain haluamme mennä meidän se olisi vain tietää, että asia, se tekisi 671 00:33:29,430 --> 00:33:31,680 järkevää tehdä samalla silmukka. 672 00:33:31,680 --> 00:33:39,880 Vaikka nykyinen ei ole yhtä null, Jos arvo on pienempi kuin tähän solmuun. 673 00:33:39,880 --> 00:33:41,650 Akshar, anna minulle tätä linjaa. 674 00:33:41,650 --> 00:33:48,810 675 00:33:48,810 --> 00:33:56,955 >> Yleisö: Jos nykyinen-> n n alle arvon. 676 00:33:56,955 --> 00:34:00,170 677 00:34:00,170 --> 00:34:03,260 Tai kumota tämä. 678 00:34:03,260 --> 00:34:06,140 Kytke tässä haarukassa. 679 00:34:06,140 --> 00:34:06,620 >> JASON HIRSCHHORN: Anteeksi. 680 00:34:06,620 --> 00:34:08,760 >> Yleisö: Muuta kiinnike. 681 00:34:08,760 --> 00:34:10,914 >> JASON HIRSCHHORN: Joten jos se on on suurempi kuin arvo. 682 00:34:10,914 --> 00:34:18,719 683 00:34:18,719 --> 00:34:22,120 Koska se on hämmentävää kommentti edellä, aion tehdä sen. 684 00:34:22,120 --> 00:34:22,480 Mutta kyllä. 685 00:34:22,480 --> 00:34:25,125 Jos meidän arvo on pienempi kuin tämän solmu, mitä me teemme? 686 00:34:25,125 --> 00:34:25,540 Oh. 687 00:34:25,540 --> 00:34:26,710 Minulla on se täällä. 688 00:34:26,710 --> 00:34:27,960 Aseta ennen. 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 Miten me sen teemme? 692 00:34:33,933 --> 00:34:34,900 >> Yleisö: Onko se vielä minut? 693 00:34:34,900 --> 00:34:36,150 >> JASON HIRSCHHORN: Joo. 694 00:34:36,150 --> 00:34:38,520 695 00:34:38,520 --> 00:34:39,770 >> Yleisö: You - 696 00:34:39,770 --> 00:34:42,909 697 00:34:42,909 --> 00:34:44,159 new_node-> seuraava. 698 00:34:44,159 --> 00:34:46,770 699 00:34:46,770 --> 00:34:50,163 >> JASON HIRSCHHORN: Mikä siis että menossa tasa-arvoisia? 700 00:34:50,163 --> 00:34:52,070 >> Yleisö: Se tulee samansuuruinen virta. 701 00:34:52,070 --> 00:34:53,889 >> JASON HIRSCHHORN: Aivan. 702 00:34:53,889 --> 00:34:55,730 Ja niin muut - 703 00:34:55,730 --> 00:34:56,730 mitä muuta meidän täytyy päivittää? 704 00:34:56,730 --> 00:34:59,982 >> Yleisö: Tarkista jos aiemmat vastaa null. 705 00:34:59,982 --> 00:35:01,870 >> JASON HIRSCHHORN: Jos aiemmat - 706 00:35:01,870 --> 00:35:03,730 joten jos aiemmat vastaa null. 707 00:35:03,730 --> 00:35:05,990 >> Yleisö: Se tarkoittaa se menee tulla päähän. 708 00:35:05,990 --> 00:35:06,780 >> JASON HIRSCHHORN: Tämä tarkoittaa se on tullut pää. 709 00:35:06,780 --> 00:35:07,620 Joten mitä sitten teemme? 710 00:35:07,620 --> 00:35:12,510 >> Yleisö: Emme pää vastaa new_node. 711 00:35:12,510 --> 00:35:16,690 >> JASON HIRSCHHORN: Head vastaa new_node. 712 00:35:16,690 --> 00:35:20,540 Ja miksi pää täällä, ei luetella? 713 00:35:20,540 --> 00:35:24,940 >> Yleisö: Koska pää on maailmanlaajuinen muuttuja, joka on lähtö-paikka. 714 00:35:24,940 --> 00:35:26,190 >> JASON HIRSCHHORN: Makea. 715 00:35:26,190 --> 00:35:33,750 716 00:35:33,750 --> 00:35:34,170 OK. 717 00:35:34,170 --> 00:35:36,150 Ja - 718 00:35:36,150 --> 00:35:53,796 >> Yleisö: Sitten et muuta prev-> Seuraavan vastaa new_node. 719 00:35:53,796 --> 00:35:55,080 Ja sitten palaat totta. 720 00:35:55,080 --> 00:35:59,560 721 00:35:59,560 --> 00:36:02,700 >> JASON HIRSCHHORN: Minne asetamme new_node lopussa? 722 00:36:02,700 --> 00:36:04,850 >> Yleisö: Haluaisin - 723 00:36:04,850 --> 00:36:06,180 Asetin että alussa. 724 00:36:06,180 --> 00:36:07,430 >> JASON HIRSCHHORN: Mikä linja? 725 00:36:07,430 --> 00:36:10,000 726 00:36:10,000 --> 00:36:12,598 >> Yleisö: Kun jos ilmoitus tarkistaa, jos se on tiedossa. 727 00:36:12,598 --> 00:36:13,057 >> JASON HIRSCHHORN: Juuri täällä? 728 00:36:13,057 --> 00:36:18,335 >> Yleisö: Tekisin new_node-> n vastaa arvoa. 729 00:36:18,335 --> 00:36:19,585 >> JASON HIRSCHHORN: Kuulostaa hyvältä. 730 00:36:19,585 --> 00:36:21,740 731 00:36:21,740 --> 00:36:25,090 Luultavasti se on järkevää - emme täytyy tietää, mitä luetteloon olemme 732 00:36:25,090 --> 00:36:26,280 koska olemme ainoastaan ​​kauppaa yksi lista. 733 00:36:26,280 --> 00:36:29,560 Joten parempi toiminta ilmoitus tämä on vain päästä eroon tästä 734 00:36:29,560 --> 00:36:34,360 kokonaan ja vain lisätä arvo osaksi päähän. 735 00:36:34,360 --> 00:36:35,930 Emme edes tarvitse tietää mitä lista olemme tuumaa 736 00:36:35,930 --> 00:36:39,140 Mutta aion pitää sen nyt ja vaihda se heti päivittää 737 00:36:39,140 --> 00:36:42,590 dioja ja koodin. 738 00:36:42,590 --> 00:36:44,980 Niin että näyttää hyvältä nyt. 739 00:36:44,980 --> 00:36:46,560 Jos arvo - kuka voi tehdä tätä linjaa? 740 00:36:46,560 --> 00:36:47,810 Jos - 741 00:36:47,810 --> 00:36:52,240 742 00:36:52,240 --> 00:36:53,840 mitä me teemme täällä, Noah. 743 00:36:53,840 --> 00:36:57,890 744 00:36:57,890 --> 00:37:07,100 >> Yleisö: Jos arvo on suurempi kuin As-> n - 745 00:37:07,100 --> 00:37:16,830 746 00:37:16,830 --> 00:37:18,240 >> JASON HIRSCHHORN: Miten menemme seuraavaan solmuun? 747 00:37:18,240 --> 00:37:27,760 748 00:37:27,760 --> 00:37:30,530 >> Yleisö: Curr-> n on yhtä new_node. 749 00:37:30,530 --> 00:37:37,630 750 00:37:37,630 --> 00:37:39,195 >> JASON HIRSCHHORN: So n on mikä osa struct? 751 00:37:39,195 --> 00:37:43,065 752 00:37:43,065 --> 00:37:46,020 Kokonaisluku. 753 00:37:46,020 --> 00:37:50,420 Ja new_node on osoitin solmuun. 754 00:37:50,420 --> 00:37:51,880 Joten mikä osa As meidän pitäisi päivittää? 755 00:37:51,880 --> 00:38:03,900 756 00:38:03,900 --> 00:38:05,400 Jos ei n, niin mitä muuta osaa? 757 00:38:05,400 --> 00:38:21,680 758 00:38:21,680 --> 00:38:22,810 Nooa, mitä toinen osa. 759 00:38:22,810 --> 00:38:23,570 >> Yleisö: Voi, seuraavaksi. 760 00:38:23,570 --> 00:38:25,645 >> JASON HIRSCHHORN: Seuraava, tarkalleen. 761 00:38:25,645 --> 00:38:26,410 Täsmälleen. 762 00:38:26,410 --> 00:38:28,770 Seuraava on oikea. 763 00:38:28,770 --> 00:38:31,540 Ja mitä muuta me tarvitsemme päivittää, Noah? 764 00:38:31,540 --> 00:38:32,840 >> Yleisö: viitteitä. 765 00:38:32,840 --> 00:38:34,840 >> JASON HIRSCHHORN: So uusimme nykyinen. 766 00:38:34,840 --> 00:38:36,090 >> Yleisö: Ed-> seuraava. 767 00:38:36,090 --> 00:38:48,160 768 00:38:48,160 --> 00:38:49,410 >> JASON HIRSCHHORN: Joo. 769 00:38:49,410 --> 00:38:57,465 770 00:38:57,465 --> 00:38:58,370 OK, me tauko. 771 00:38:58,370 --> 00:39:02,200 Kuka voi auttaa meitä tässä? 772 00:39:02,200 --> 00:39:03,385 Manu, mitä meidän pitäisi tehdä? 773 00:39:03,385 --> 00:39:05,615 >> Yleisö: Sinun täytyy asettaa se sama As-> seuraava. 774 00:39:05,615 --> 00:39:09,110 775 00:39:09,110 --> 00:39:11,630 Mutta tehdä se ennen edellisen rivin. 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 Mitään muuta? 779 00:39:18,260 --> 00:39:19,170 Akshar. 780 00:39:19,170 --> 00:39:22,680 >> Yleisö: En usko, että olet tarkoitus muuttaa As-> seuraava. 781 00:39:22,680 --> 00:39:29,270 Taidat tarkoitus tehdä As tasavertaisina As-> vieressä siirtyä seuraavaan solmuun. 782 00:39:29,270 --> 00:39:30,500 >> JASON HIRSCHHORN: Anteeksi, missä? 783 00:39:30,500 --> 00:39:32,680 Millä line? 784 00:39:32,680 --> 00:39:33,420 Tämä linja? 785 00:39:33,420 --> 00:39:33,750 >> Yleisö: Joo. 786 00:39:33,750 --> 00:39:35,745 Tee As vastaa As-> seuraava. 787 00:39:35,745 --> 00:39:39,690 788 00:39:39,690 --> 00:39:43,360 >> JASON HIRSCHHORN: Niin, että oikein koska nykyinen on 789 00:39:43,360 --> 00:39:45,220 osoitin solmuun. 790 00:39:45,220 --> 00:39:48,550 Ja haluamme sen osoittamaan seuraavaan solmu, mitä on tulossa tällä hetkellä 791 00:39:48,550 --> 00:39:49,930 huomautti. 792 00:39:49,930 --> 00:39:54,410 As itse on seuraava. 793 00:39:54,410 --> 00:39:58,620 Mutta jos me päivittää curr.next, me olisi päivittää todellinen huomautuksen 794 00:39:58,620 --> 00:40:01,430 itse, ei silloin, kun se osoitin oli osoittaa. 795 00:40:01,430 --> 00:40:02,680 Entä tämän linjan, vaikka. 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 >> Yleisö: Ed-> seuraava vastaa As. 799 00:40:09,590 --> 00:40:12,500 800 00:40:12,500 --> 00:40:19,440 >> JASON HIRSCHHORN: Joten jälleen, jos edell on osoitin solmuun, prev-> seuraava on 801 00:40:19,440 --> 00:40:23,020 Varsinainen osoitin solmuun. 802 00:40:23,020 --> 00:40:27,190 Joten tämä olisi päivittää osoitin solmun As. 803 00:40:27,190 --> 00:40:28,570 Emme halua päivittää osoitin solmuun. 804 00:40:28,570 --> 00:40:30,570 Haluamme päivittää edelliseen. 805 00:40:30,570 --> 00:40:31,850 Joten miten me sen teemme? 806 00:40:31,850 --> 00:40:34,250 >> Yleisö: Se olisi vain aiemmat. 807 00:40:34,250 --> 00:40:34,565 >> JASON HIRSCHHORN: Oikea. 808 00:40:34,565 --> 00:40:35,560 Edeltävä on osoitin solmuun. 809 00:40:35,560 --> 00:40:38,750 Nyt me muutumme sen uuden osoittimen solmuun. 810 00:40:38,750 --> 00:40:40,830 OK Siirtykäämme alas. 811 00:40:40,830 --> 00:40:41,940 Lopuksi, tämä viimeinen ehto. 812 00:40:41,940 --> 00:40:44,896 Jeff, mitä me teemme täällä? 813 00:40:44,896 --> 00:40:47,515 >> Yleisö: Jos arvo on yhtä As-> n. 814 00:40:47,515 --> 00:40:51,030 815 00:40:51,030 --> 00:40:51,300 >> JASON HIRSCHHORN: Anteeksi. 816 00:40:51,300 --> 00:40:52,372 Hyvänen aika. 817 00:40:52,372 --> 00:40:54,330 Mitä? 818 00:40:54,330 --> 00:40:55,580 Arvo == As-> n. 819 00:40:55,580 --> 00:41:01,050 820 00:41:01,050 --> 00:41:02,300 Mitä teemme? 821 00:41:02,300 --> 00:41:04,760 822 00:41:04,760 --> 00:41:10,950 >> Yleisö: Sinun vapauttavat new_node, ja silloin kyllä ​​return false. 823 00:41:10,950 --> 00:41:21,410 824 00:41:21,410 --> 00:41:23,460 >> JASON HIRSCHHORN: Tämä on mitä olemme kirjoittaneet toistaiseksi. 825 00:41:23,460 --> 00:41:25,710 Onko kellään mitään lisätä ennen kuin teemme? 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 Kokeillaan. 829 00:41:36,960 --> 00:41:44,180 830 00:41:44,180 --> 00:41:46,110 Määräysvalta voi päästä loppuun ei-mitätön toiminto. 831 00:41:46,110 --> 00:41:48,310 Avi, mitä on tekeillä? 832 00:41:48,310 --> 00:41:51,380 >> Yleisö: Oletko tarkoitus panna paluun totta ulkopuolella kun silmukka? 833 00:41:51,380 --> 00:41:53,900 834 00:41:53,900 --> 00:41:54,400 >> JASON HIRSCHHORN: En tiedä. 835 00:41:54,400 --> 00:41:54,780 Haluatko minun? 836 00:41:54,780 --> 00:41:55,520 >> Yleisö: Älä välitä. 837 00:41:55,520 --> 00:41:56,350 Ei. 838 00:41:56,350 --> 00:41:57,180 >> JASON HIRSCHHORN: Akshar? 839 00:41:57,180 --> 00:41:59,460 >> Yleisö: mielestäni sinun tarkoitus laittaa paluu false lopussa 840 00:41:59,460 --> 00:42:02,230 ja samalla silmukka. 841 00:42:02,230 --> 00:42:03,270 >> JASON HIRSCHHORN: Missä haluat sen mennä? 842 00:42:03,270 --> 00:42:05,270 >> Yleisö: Like ulkopuolella kun silmukka. 843 00:42:05,270 --> 00:42:08,800 Joten jos poistut samalla silmukka, joka avulla kun olet saavuttanut loppuun ja 844 00:42:08,800 --> 00:42:09,980 mitään ei tapahtunut. 845 00:42:09,980 --> 00:42:10,410 >> JASON HIRSCHHORN: OK. 846 00:42:10,410 --> 00:42:12,340 Joten mitä me teemme täällä? 847 00:42:12,340 --> 00:42:13,702 >> Yleisö: You return false siellä hyvin. 848 00:42:13,702 --> 00:42:15,040 >> JASON HIRSCHHORN: Voi, me tee se molemmissa paikoissa? 849 00:42:15,040 --> 00:42:15,650 >> Yleisö: Joo. 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 Pitäisikö meidän mennä? 853 00:42:26,160 --> 00:42:26,980 Hyvänen aika. 854 00:42:26,980 --> 00:42:27,290 Olen pahoillani. 855 00:42:27,290 --> 00:42:28,480 Pahoittelen näytön. 856 00:42:28,480 --> 00:42:30,530 Se on tavallaan ihan sekaisin meitä. 857 00:42:30,530 --> 00:42:31,520 Joten valitse vaihtoehto. 858 00:42:31,520 --> 00:42:35,260 Nolla, per koodi, sulkeutuu ohjelma. 859 00:42:35,260 --> 00:42:36,700 Yksi lisää jotain. 860 00:42:36,700 --> 00:42:37,990 Katsotaanpa aseta kolme. 861 00:42:37,990 --> 00:42:42,900 862 00:42:42,900 --> 00:42:45,380 Insertti ei onnistunut. 863 00:42:45,380 --> 00:42:46,500 Aion tulostaa. 864 00:42:46,500 --> 00:42:48,050 Minulla ei ole mitään. 865 00:42:48,050 --> 00:42:48,450 OK. 866 00:42:48,450 --> 00:42:50,250 Ehkä se oli vain onnenpotku. 867 00:42:50,250 --> 00:42:52,810 Aseta yksi. 868 00:42:52,810 --> 00:42:55,770 Ei onnistunut. 869 00:42:55,770 --> 00:42:57,470 OK. 870 00:42:57,470 --> 00:43:02,400 Katsotaan läpi GDB todella nopeasti tarkistaa, mitä on tekeillä. 871 00:43:02,400 --> 00:43:06,055 >> Muista GDB. / Nimi ohjelma saa meidät GDB. 872 00:43:06,055 --> 00:43:07,610 Onko se paljon käsitellä? 873 00:43:07,610 --> 00:43:08,560 Vilkkuu? 874 00:43:08,560 --> 00:43:10,400 Luultavasti. 875 00:43:10,400 --> 00:43:12,760 Sulje silmäsi ja kestää jonkin syvään Hengitä jos väsyt 876 00:43:12,760 --> 00:43:13,580 tarkastella sitä. 877 00:43:13,580 --> 00:43:14,200 Olen GDB. 878 00:43:14,200 --> 00:43:15,830 Mikä on ensimmäinen asia, joka minun tehdä GDB? 879 00:43:15,830 --> 00:43:17,050 Meidän täytyy selvittää mitä täällä tapahtuu. 880 00:43:17,050 --> 00:43:17,310 Katsotaanpa. 881 00:43:17,310 --> 00:43:21,650 Meillä on kuusi minuuttia luku mitä on tekeillä. 882 00:43:21,650 --> 00:43:22,900 Rikkoa tärkein. 883 00:43:22,900 --> 00:43:25,950 884 00:43:25,950 --> 00:43:28,130 Ja mitä sitten teen? 885 00:43:28,130 --> 00:43:29,180 Carlos? 886 00:43:29,180 --> 00:43:31,060 Suorita. 887 00:43:31,060 --> 00:43:32,250 OK. 888 00:43:32,250 --> 00:43:34,160 Valitaan vaihtoehto. 889 00:43:34,160 --> 00:43:36,330 Ja mitä N tehdä? 890 00:43:36,330 --> 00:43:38,480 Seuraava. 891 00:43:38,480 --> 00:43:38,950 Joo. 892 00:43:38,950 --> 00:43:39,740 >> Yleisö: Etkö mainitse - 893 00:43:39,740 --> 00:43:45,230 et sanonut, että pää, se oli alustetaan nolla alussa. 894 00:43:45,230 --> 00:43:47,140 Mutta Sanoit että oli OK. 895 00:43:47,140 --> 00:43:50,040 896 00:43:50,040 --> 00:43:52,640 >> JASON HIRSCHHORN: Mennään - Katsotaanpa vuonna GDB, ja sitten menemme takaisin. 897 00:43:52,640 --> 00:43:54,910 Mutta se kuulostaa sinulla on jo joitakin ajatuksia siitä, mitä on tekeillä. 898 00:43:54,910 --> 00:43:58,340 Joten haluamme lisätä jotain. 899 00:43:58,340 --> 00:43:59,390 OK. 900 00:43:59,390 --> 00:44:00,150 Olemme lisätä. 901 00:44:00,150 --> 00:44:00,770 Kirjoita int. 902 00:44:00,770 --> 00:44:01,990 Laitamme kolme. 903 00:44:01,990 --> 00:44:03,000 Ja sitten olen tällä linjalla. 904 00:44:03,000 --> 00:44:07,030 Miten voin mennä aloittaa virheenkorjaus insertti tunnettu toiminto? 905 00:44:07,030 --> 00:44:08,280 Hyvänen aika. 906 00:44:08,280 --> 00:44:10,990 907 00:44:10,990 --> 00:44:12,240 Se on paljon. 908 00:44:12,240 --> 00:44:14,372 909 00:44:14,372 --> 00:44:16,445 On, että sekosin paljon? 910 00:44:16,445 --> 00:44:19,696 911 00:44:19,696 --> 00:44:21,680 >> Yleisö: Voi, se kuoli. 912 00:44:21,680 --> 00:44:22,930 >> JASON HIRSCHHORN: Kuvittelin veti sen ulos. 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 >> Yleisö: Ehkä se on toinen pää lanka. 916 00:44:29,560 --> 00:44:37,000 917 00:44:37,000 --> 00:44:39,470 >> JASON HIRSCHHORN: Vau. 918 00:44:39,470 --> 00:44:42,330 Joten bottom line - 919 00:44:42,330 --> 00:44:43,470 mitä sanoit? 920 00:44:43,470 --> 00:44:46,040 >> Yleisö: Sanoin ironia teknisten vaikeuksia tässä luokassa. 921 00:44:46,040 --> 00:44:46,410 >> JASON HIRSCHHORN: Tiedän. 922 00:44:46,410 --> 00:44:48,660 Jos vain minulla oli valvoa, että osa. 923 00:44:48,660 --> 00:44:49,910 [Äänetön] 924 00:44:49,910 --> 00:44:54,430 925 00:44:54,430 --> 00:44:55,400 Kuulostaa hyvältä. 926 00:44:55,400 --> 00:44:58,680 Miksi et kaverit alkaa miettiä mitä olisimme voineet tehdä väärin, 927 00:44:58,680 --> 00:45:01,140 ja tulemme takaisin 90 sekunnissa. 928 00:45:01,140 --> 00:46:18,160 929 00:46:18,160 --> 00:46:23,010 >> Avica, aion kysyä, miten mennä sisällä insert_node debug sitä. 930 00:46:23,010 --> 00:46:28,940 931 00:46:28,940 --> 00:46:31,460 Joten tämä on silloin, kun viimeksi jäi. 932 00:46:31,460 --> 00:46:35,110 Miten voin mennä sisälle insert_node, Avica, tutkia, mitä on tekeillä? 933 00:46:35,110 --> 00:46:36,360 Mitä GDB komento? 934 00:46:36,360 --> 00:46:41,050 935 00:46:41,050 --> 00:46:42,390 Tauko ei ottaisi minut sisälle. 936 00:46:42,390 --> 00:46:46,200 937 00:46:46,200 --> 00:46:47,130 Onko Marquise tietää? 938 00:46:47,130 --> 00:46:48,240 >> Yleisö: Mitä? 939 00:46:48,240 --> 00:46:51,780 >> JASON HIRSCHHORN: Mitä GDB komento Käytän mennä sisälle tätä toimintoa? 940 00:46:51,780 --> 00:46:52,070 >> Yleisö: Step? 941 00:46:52,070 --> 00:46:55,140 >> JASON HIRSCHHORN: Step kautta S. Se vie minut sisälle. 942 00:46:55,140 --> 00:46:55,476 OK. 943 00:46:55,476 --> 00:46:58,040 New_node mallocing tilaa. 944 00:46:58,040 --> 00:46:59,120 Että kaikki näyttää sen menossa. 945 00:46:59,120 --> 00:47:00,370 Tutkitaanpa new_node. 946 00:47:00,370 --> 00:47:03,270 947 00:47:03,270 --> 00:47:05,410 Se sai muistia osoite. 948 00:47:05,410 --> 00:47:07,440 Katsotaan tarkistaa - 949 00:47:07,440 --> 00:47:08,500 että on kaikki oikein. 950 00:47:08,500 --> 00:47:12,220 Joten kaikki täällä tuntuu toimivan oikein. 951 00:47:12,220 --> 00:47:14,530 >> Yleisö: Mitä eroa välillä P ja näyttö? 952 00:47:14,530 --> 00:47:16,160 >> JASON HIRSCHHORN: P tarkoittaa tulosta. 953 00:47:16,160 --> 00:47:19,310 Ja niin kysyt mitä erosta ja tämä? 954 00:47:19,310 --> 00:47:22,330 Tässä tapauksessa mitään. 955 00:47:22,330 --> 00:47:26,960 Mutta yleensä on olemassa joitakin eroja. 956 00:47:26,960 --> 00:47:28,220 Ja sinun pitäisi katsoa GDB käsikirja. 957 00:47:28,220 --> 00:47:29,560 Mutta tässä tapauksessa, ei mitään. 958 00:47:29,560 --> 00:47:31,460 Meillä on tapana käyttää tulosta, mutta koska meidän ei tarvitse tehdä paljon enemmän kuin 959 00:47:31,460 --> 00:47:33,960 tulostaa yksi arvo. 960 00:47:33,960 --> 00:47:34,640 >> OK. 961 00:47:34,640 --> 00:47:40,300 Joten olemme verkossa 80 meidän koodia, jossa solmu * As yhtä listaan. 962 00:47:40,300 --> 00:47:42,500 Olkaamme tulostaa As. 963 00:47:42,500 --> 00:47:45,260 964 00:47:45,260 --> 00:47:46,840 Se on yhtä kuin lista. 965 00:47:46,840 --> 00:47:48,850 Makea. 966 00:47:48,850 --> 00:47:49,340 Odota. 967 00:47:49,340 --> 00:47:50,590 Se vastaa jotain. 968 00:47:50,590 --> 00:47:53,680 969 00:47:53,680 --> 00:47:56,190 Tämä ei tunnu oikealta. 970 00:47:56,190 --> 00:47:56,840 Siellä mennään. 971 00:47:56,840 --> 00:47:59,470 Se johtuu vuonna GDB, oikealle, jos se viiva olet sitä 972 00:47:59,470 --> 00:48:00,330 ei ole toteutettu vielä. 973 00:48:00,330 --> 00:48:03,100 Joten sinun täytyy itse kirjoittaa vieressä suorittaa linja 974 00:48:03,100 --> 00:48:05,230 ennen nähdä sen tulokset. 975 00:48:05,230 --> 00:48:06,680 Joten tässä me olemme. 976 00:48:06,680 --> 00:48:09,490 Olemme juuri suoritettua tätä linjaa, edellinen vastaa null. 977 00:48:09,490 --> 00:48:13,590 Joten taas, jos me painamme edellinen emme tule näkemään mitään outoa. 978 00:48:13,590 --> 00:48:18,680 Mutta jos me todella toimeksiannosta sen line, niin näemme 979 00:48:18,680 --> 00:48:20,380 että linja toimi. 980 00:48:20,380 --> 00:48:21,060 >> Joten meillä on As. 981 00:48:21,060 --> 00:48:23,180 Nuo ovat molemmat hyviä. 982 00:48:23,180 --> 00:48:24,010 Oikea? 983 00:48:24,010 --> 00:48:28,130 Nyt olemme tätä linjaa täällä. 984 00:48:28,130 --> 00:48:29,310 Vaikka As ei ole sama null. 985 00:48:29,310 --> 00:48:31,110 No, mitä As tasa-arvoisia? 986 00:48:31,110 --> 00:48:32,450 Me vain näki sen sivunnut null. 987 00:48:32,450 --> 00:48:33,210 Me painettu sitä. 988 00:48:33,210 --> 00:48:35,110 Minä tulostaa sen uudelleen. 989 00:48:35,110 --> 00:48:36,720 Niin on, että kun silmukka menossa toteuttaa? 990 00:48:36,720 --> 00:48:37,270 >> Yleisö: Ei. 991 00:48:37,270 --> 00:48:39,790 >> JASON HIRSCHHORN: Eli kun olen kirjoittanut, että line, näet hyppäsimme koko matkan 992 00:48:39,790 --> 00:48:41,390 pohjaan, return false. 993 00:48:41,390 --> 00:48:44,520 Ja sitten me aiomme palauttaa false ja mene takaisin meidän ohjelmaan ja 994 00:48:44,520 --> 00:48:48,020 lopulta tulostaa, kuten näimme, insertti ei onnistunut. 995 00:48:48,020 --> 00:48:51,010 Joten, kellään mitään ideoita siitä, mitä meidän täytyy tehdä asian korjaamiseksi? 996 00:48:51,010 --> 00:48:54,200 997 00:48:54,200 --> 00:48:57,570 Aion odottaa kunnes näen pari kädet nousevat. 998 00:48:57,570 --> 00:48:58,830 Emme suorita tämä. 999 00:48:58,830 --> 00:49:01,660 Pidä mielessä, tämä oli ensimmäinen asia olimme tekemässä. 1000 00:49:01,660 --> 00:49:02,430 En aio tehdä pari. 1001 00:49:02,430 --> 00:49:03,670 Aion tehdä muutamia. 1002 00:49:03,670 --> 00:49:04,830 Koska pari tarkoittaa kahta. 1003 00:49:04,830 --> 00:49:07,620 Odotan enemmän kuin kaksi. 1004 00:49:07,620 --> 00:49:10,690 >> Ensimmäinen lisäys, As, oletuksena on yhtä kuin nolla. 1005 00:49:10,690 --> 00:49:14,050 Ja tämä silmukka pannaan täytäntöön ainoastaan jos As ei ole nolla. 1006 00:49:14,050 --> 00:49:18,740 Joten miten saan kiertää tämän? 1007 00:49:18,740 --> 00:49:19,990 Näen kolme kättä. 1008 00:49:19,990 --> 00:49:28,490 1009 00:49:28,490 --> 00:49:29,780 Odotan enemmän kuin kolme. 1010 00:49:29,780 --> 00:49:33,460 1011 00:49:33,460 --> 00:49:35,940 Marcus, mitä luulet? 1012 00:49:35,940 --> 00:49:37,730 >> Yleisö: No, jos tarvitset sitä suorittaa useammin kuin kerran, juuri 1013 00:49:37,730 --> 00:49:39,948 muuttaa sen do-while-silmukka. 1014 00:49:39,948 --> 00:49:41,250 >> JASON HIRSCHHORN: OK. 1015 00:49:41,250 --> 00:49:44,240 Onko tämä ratkaista ongelmamme, vaikka? 1016 00:49:44,240 --> 00:49:47,750 >> Yleisö: Tässä tapauksessa ei, koska että lista on tyhjä. 1017 00:49:47,750 --> 00:49:52,150 Joten sinulla todennäköisesti tarvitsee vain lisätä maininta siitä, että jos silmukka uloskäynnit 1018 00:49:52,150 --> 00:49:55,312 Sitten sinun täytyy olla lopussa luettelossa, jolloin sinun 1019 00:49:55,312 --> 00:49:56,562 voi vain lisätä sitä. 1020 00:49:56,562 --> 00:49:58,920 1021 00:49:58,920 --> 00:49:59,680 >> JASON HIRSCHHORN: Pidän siitä. 1022 00:49:59,680 --> 00:50:00,500 Siinä on järkeä. 1023 00:50:00,500 --> 00:50:03,390 Jos silmukka poistuu - 1024 00:50:03,390 --> 00:50:04,800 koska se tulee palauttaa false täällä. 1025 00:50:04,800 --> 00:50:08,220 Joten jos silmukka poistuu, niin me olemme listan loppuun, tai ehkä 1026 00:50:08,220 --> 00:50:10,690 alkuun lista, jos ei ole mitään, se, mikä on sama kuin lopussa. 1027 00:50:10,690 --> 00:50:12,770 Joten nyt haluamme lisätä jotain. 1028 00:50:12,770 --> 00:50:17,380 Joten miten se koodi näyttää, Marcus? 1029 00:50:17,380 --> 00:50:21,600 >> Yleisö: Jos olet jo saanut solmun malloced, voit vain sanoa 1030 00:50:21,600 --> 00:50:25,400 new_node-> seuraava vastaa null koska sen täytyy olla lopussa. 1031 00:50:25,400 --> 00:50:27,510 Tai new_node-> seuraava vastaa null. 1032 00:50:27,510 --> 00:50:27,765 >> JASON HIRSCHHORN: OK. 1033 00:50:27,765 --> 00:50:28,190 Anteeksi. 1034 00:50:28,190 --> 00:50:35,760 New_node-> next vastaa null koska olemme lopussa. 1035 00:50:35,760 --> 00:50:36,460 Tämä ei laita se sisään 1036 00:50:36,460 --> 00:50:37,710 Miten me laittaa sen listan? 1037 00:50:37,710 --> 00:50:46,130 1038 00:50:46,130 --> 00:50:46,460 Oikea. 1039 00:50:46,460 --> 00:50:47,750 Se on vain asettamalla se sama. 1040 00:50:47,750 --> 00:50:50,940 Ei miten me oikeastaan laita se lista? 1041 00:50:50,940 --> 00:50:54,170 Mitä osoittaa listan loppuun? 1042 00:50:54,170 --> 00:50:56,090 >> Yleisö: Head. 1043 00:50:56,090 --> 00:50:57,566 >> JASON HIRSCHHORN: Anteeksi? 1044 00:50:57,566 --> 00:50:59,440 >> Yleisö: Head osoittaa loppuun luettelon. 1045 00:50:59,440 --> 00:51:01,480 >> JASON HIRSCHHORN: Jos ei mitään lista, pää on osoittaa 1046 00:51:01,480 --> 00:51:04,170 luettelon loppuun. 1047 00:51:04,170 --> 00:51:06,920 Niin että saat työtä ensin paikoilleen. 1048 00:51:06,920 --> 00:51:09,810 Entä jos on pari asioita luettelossa? 1049 00:51:09,810 --> 00:51:12,470 Kuin emme halua asettaa suunnata yhtä new_node. 1050 00:51:12,470 --> 00:51:13,790 Mitä haluamme tehdä siellä? 1051 00:51:13,790 --> 00:51:15,610 Joo? 1052 00:51:15,610 --> 00:51:16,860 Luultavasti edellinen. 1053 00:51:16,860 --> 00:51:23,560 1054 00:51:23,560 --> 00:51:24,810 Onko tämä toimii? 1055 00:51:24,810 --> 00:51:28,950 1056 00:51:28,950 --> 00:51:33,050 Muista, että edellinen on vain osoitin solmuun. 1057 00:51:33,050 --> 00:51:34,770 Ja edellinen on paikallinen muuttuja. 1058 00:51:34,770 --> 00:51:38,080 Joten tämä linja asettaa paikallinen muuttuja, edellinen, yhtä suuri tai 1059 00:51:38,080 --> 00:51:39,380 osoittavat tähän uuteen solmuun. 1060 00:51:39,380 --> 00:51:41,500 Se ei oikeastaan ​​laittaa sen listallamme, vaikka. 1061 00:51:41,500 --> 00:51:44,330 Miten me laittaa se lista? 1062 00:51:44,330 --> 00:51:45,620 Akchar? 1063 00:51:45,620 --> 00:51:46,870 >> Yleisö: Mielestäni sinun do nykyinen-> seuraava. 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 As-> seuraava. 1067 00:51:54,010 --> 00:51:58,768 Joten jälleen, ainoa syy olemme alas tässä on, mitä nykyinen tasa-arvoisia? 1068 00:51:58,768 --> 00:51:59,760 >> Yleisö: Yhtä null. 1069 00:51:59,760 --> 00:52:01,790 >> JASON HIRSCHHORN: Ja niin mitä tapahtuu, jos teemme null-> seuraavaksi? 1070 00:52:01,790 --> 00:52:02,810 Mitä menossa? 1071 00:52:02,810 --> 00:52:04,060 Saamme segmentointi vika. 1072 00:52:04,060 --> 00:52:06,600 1073 00:52:06,600 --> 00:52:08,880 >> Yleisö: Do As vastaa null. 1074 00:52:08,880 --> 00:52:10,760 >> JASON HIRSCHHORN: Se on sama asia kuten edell, vaikka, koska siellä on 1075 00:52:10,760 --> 00:52:12,820 paikallinen muuttuja olemme arvostelemassa yhtä suuri kuin tämä uusi solmu. 1076 00:52:12,820 --> 00:52:16,680 1077 00:52:16,680 --> 00:52:20,920 Mennään takaisin meidän kuva lisäämällä jotain. 1078 00:52:20,920 --> 00:52:25,500 Sano olemme työntämällä lopussa luettelon, niin täällä. 1079 00:52:25,500 --> 00:52:30,010 Meillä on osoittimen, joka on osoittaa null ja edelliseen kohtaan 1080 00:52:30,010 --> 00:52:32,800 joka osoittaa 8. 1081 00:52:32,800 --> 00:52:35,330 Joten mitä meidän täytyy päivittää, Avi? 1082 00:52:35,330 --> 00:52:36,680 >> Yleisö: Edellinen-> seuraavaksi? 1083 00:52:36,680 --> 00:52:41,980 >> JASON HIRSCHHORN: Edellinen-> seuraava on mitä haluamme päivittää koska 1084 00:52:41,980 --> 00:52:44,960 todella aseta se luettelon loppuun. 1085 00:52:44,960 --> 00:52:47,220 Meillä on vielä yksi vika, vaikka, että aiomme törmätä. 1086 00:52:47,220 --> 00:52:50,090 Mikä tämä bugi? 1087 00:52:50,090 --> 00:52:50,790 Joo? 1088 00:52:50,790 --> 00:52:53,860 >> Yleisö: Se tulee palauttaa false tässä tapauksessa? 1089 00:52:53,860 --> 00:52:56,380 >> JASON HIRSCHHORN: Voi, on on aio palata vääriä. 1090 00:52:56,380 --> 00:52:57,430 Mutta on toinenkin bugi. 1091 00:52:57,430 --> 00:52:58,930 Joten meidän täytyy laittaa vastineeksi totta. 1092 00:52:58,930 --> 00:53:01,370 >> Yleisö: Onko edellinen edelleen samanlaiset nollamuotoja listan kärjessä? 1093 00:53:01,370 --> 00:53:03,645 >> JASON HIRSCHHORN: So edellinen vielä vastaa null aivan alussa. 1094 00:53:03,645 --> 00:53:07,480 1095 00:53:07,480 --> 00:53:10,440 Joten kuinka voimme päästä yli siitä? 1096 00:53:10,440 --> 00:53:10,950 Joo? 1097 00:53:10,950 --> 00:53:15,280 >> Yleisö: Mielestäni voit tehdä tarkastus ennen kun silmukka nähdä, jos se on 1098 00:53:15,280 --> 00:53:16,610 tyhjä lista. 1099 00:53:16,610 --> 00:53:17,000 >> JASON HIRSCHHORN: OK. 1100 00:53:17,000 --> 00:53:17,710 Joten mennään täällä. 1101 00:53:17,710 --> 00:53:18,530 Tehdä tarkastus. 1102 00:53:18,530 --> 00:53:19,380 Jos - 1103 00:53:19,380 --> 00:53:20,770 >> Yleisö: Joten jos pää vastaa yhtä kuin nolla. 1104 00:53:20,770 --> 00:53:24,300 1105 00:53:24,300 --> 00:53:26,320 >> JASON HIRSCHHORN: Jos pää vastaa yhtä kuin nolla - 1106 00:53:26,320 --> 00:53:27,790 että saat kertoa meille, jos se on tyhjä lista. 1107 00:53:27,790 --> 00:53:31,090 >> Yleisö: Ja sitten tehdä pää vastaa uutta. 1108 00:53:31,090 --> 00:53:34,740 >> JASON HIRSCHHORN: Head vastaa new_node? 1109 00:53:34,740 --> 00:53:35,730 Ja mitä muuta meidän täytyy tehdä? 1110 00:53:35,730 --> 00:53:37,020 >> Yleisö: Ja sitten palaat totta. 1111 00:53:37,020 --> 00:53:37,535 >> JASON HIRSCHHORN: Ei aivan. 1112 00:53:37,535 --> 00:53:38,785 Puuttuu yksi askel. 1113 00:53:38,785 --> 00:53:41,590 1114 00:53:41,590 --> 00:53:43,710 >> Yleisö: New_node seuraava on viitata null. 1115 00:53:43,710 --> 00:53:44,570 >> JASON HIRSCHHORN: Aivan, Alden. 1116 00:53:44,570 --> 00:53:46,600 Ja sitten voimme palata totta. 1117 00:53:46,600 --> 00:53:47,560 OK. 1118 00:53:47,560 --> 00:53:51,630 Mutta se on silti hyvä idea tehdä asioita lopussa listan, eikö? 1119 00:53:51,630 --> 00:53:51,950 Selvä. 1120 00:53:51,950 --> 00:53:54,450 Meillä on vielä ehkä itse saada loppuun luettelon. 1121 00:53:54,450 --> 00:53:57,870 Joten tämä koodi hienoa, jos me olemme luettelon loppuun ja joitakin 1122 00:53:57,870 --> 00:53:59,120 asioita luettelossa? 1123 00:53:59,120 --> 00:54:01,830 1124 00:54:01,830 --> 00:54:02,040 Oikea? 1125 00:54:02,040 --> 00:54:03,540 Koska meillä on vielä Marcus idea. 1126 00:54:03,540 --> 00:54:06,870 Voisimme poistua tämän silmukan, koska me olemme listan loppuun. 1127 00:54:06,870 --> 00:54:09,308 Joten me silti halua tätä koodin tänne? 1128 00:54:09,308 --> 00:54:10,520 >> Yleisö: Kyllä. 1129 00:54:10,520 --> 00:54:11,000 >> JASON HIRSCHHORN: Joo. 1130 00:54:11,000 --> 00:54:14,190 Ja mitä meidän täytyy muuttaa tätä? 1131 00:54:14,190 --> 00:54:15,440 Totta. 1132 00:54:15,440 --> 00:54:19,580 1133 00:54:19,580 --> 00:54:21,640 Kuulostaako hyvältä kaikille tähän mennessä? 1134 00:54:21,640 --> 00:54:22,420 Kellään mitään - 1135 00:54:22,420 --> 00:54:23,480 Avi, onko sinulla jotain lisättävää? 1136 00:54:23,480 --> 00:54:23,920 >> Yleisö: Ei. 1137 00:54:23,920 --> 00:54:25,276 >> JASON HIRSCHHORN: OK. 1138 00:54:25,276 --> 00:54:27,010 Joten olemme tehneet pari muutoksia. 1139 00:54:27,010 --> 00:54:29,540 Olemme tehneet tämän valintaruudun ennen kuin mentiin tyhjän listan. 1140 00:54:29,540 --> 00:54:31,790 Niinpä olemme ottaneet huolta tyhjän listan. 1141 00:54:31,790 --> 00:54:35,500 Ja tässä me hoiti lisäämällä jotain listan loppuun. 1142 00:54:35,500 --> 00:54:38,930 Joten näyttää siltä että kun silmukka ottaen hoitaa asioita välillä, 1143 00:54:38,930 --> 00:54:41,920 jossain luetteloon, jos ovat asioita luettelossa. 1144 00:54:41,920 --> 00:54:42,280 >> OK. 1145 00:54:42,280 --> 00:54:44,310 Olkaamme suorittaa tämän ohjelman uudelleen. 1146 00:54:44,310 --> 00:54:50,170 1147 00:54:50,170 --> 00:54:50,755 Ei onnistunut. 1148 00:54:50,755 --> 00:54:52,190 >> Yleisö: Et tehnyt sitä. 1149 00:54:52,190 --> 00:54:53,940 >> JASON HIRSCHHORN: Oh, En tehnyt sitä. 1150 00:54:53,940 --> 00:54:56,250 Hyvä pointti, Michael. 1151 00:54:56,250 --> 00:54:57,500 Katsotaanpa lisätä make toisiinsa. 1152 00:54:57,500 --> 00:55:01,590 1153 00:55:01,590 --> 00:55:04,830 Linja 87 on virhe. 1154 00:55:04,830 --> 00:55:05,420 Linja 87. 1155 00:55:05,420 --> 00:55:06,600 Alden, tämä oli linjan annoit minulle. 1156 00:55:06,600 --> 00:55:08,962 Mikä hätänä? 1157 00:55:08,962 --> 00:55:10,710 >> Yleisö: Sen täytyy olla null. 1158 00:55:10,710 --> 00:55:11,000 >> JASON HIRSCHHORN: Erinomainen. 1159 00:55:11,000 --> 00:55:11,630 Aivan oikein. 1160 00:55:11,630 --> 00:55:13,290 Sen pitäisi olla tyhjä. 1161 00:55:13,290 --> 00:55:15,210 Tehdään uudestaan. 1162 00:55:15,210 --> 00:55:17,220 Koota. 1163 00:55:17,220 --> 00:55:17,890 OK. 1164 00:55:17,890 --> 00:55:19,400 Katsotaanpa aseta kolme. 1165 00:55:19,400 --> 00:55:20,570 Insertti oli onnistunut. 1166 00:55:20,570 --> 00:55:21,660 Katsotaanpa tulostaa sen. 1167 00:55:21,660 --> 00:55:23,590 Voi, kunpa voisimme tarkistaa. 1168 00:55:23,590 --> 00:55:25,500 Mutta emme ole tehneet tulostaa toiminto vielä. 1169 00:55:25,500 --> 00:55:27,840 Katsotaanpa tulla jotain muuta. 1170 00:55:27,840 --> 00:55:29,090 Mitä meidän pitäisi tehdä? 1171 00:55:29,090 --> 00:55:31,120 1172 00:55:31,120 --> 00:55:31,940 >> Yleisö: Seitsemän. 1173 00:55:31,940 --> 00:55:33,340 >> JASON HIRSCHHORN: Seven? 1174 00:55:33,340 --> 00:55:34,590 >> Yleisö: Kyllä. 1175 00:55:34,590 --> 00:55:38,680 1176 00:55:38,680 --> 00:55:39,780 >> JASON HIRSCHHORN: Meillä on seg vika. 1177 00:55:39,780 --> 00:55:43,760 Joten saimme yhden, mutta olemme selvästi ei voi saada kaksi. 1178 00:55:43,760 --> 00:55:45,690 Se on 05:07. 1179 00:55:45,690 --> 00:55:48,370 Jotta voisimme debug kolme minuuttia. 1180 00:55:48,370 --> 00:55:51,240 Mutta aion jättää meidät täällä ja siirtyä hash taulukoita. 1181 00:55:51,240 --> 00:55:54,290 Mutta jälleen kerran, vastauksia tämän koodin Aion lähettää sen sinulle vähän. 1182 00:55:54,290 --> 00:55:55,440 Olemme hyvin lähellä sitä. 1183 00:55:55,440 --> 00:55:58,300 Olen erittäin rohkaista teitä selvittää mitä täällä tapahtuu ja korjata sen. 1184 00:55:58,300 --> 00:56:02,400 Joten saat sähköpostiviestin, tämän koodin hyvin plus ratkaisu - 1185 00:56:02,400 --> 00:56:03,670 luultavasti ratkaisu myöhemmin. 1186 00:56:03,670 --> 00:56:05,110 Aluksi tämä koodi. 1187 00:56:05,110 --> 00:56:08,290 >> Toiseksi haluan tehdä ennen kuin Viimeistely on emme ole vapautettu mitään. 1188 00:56:08,290 --> 00:56:10,370 Joten haluan näyttää mitä valgrind näyttää. 1189 00:56:10,370 --> 00:56:14,310 Jos otamme valgrind rajoja ohjelmastamme,. / linkitetty. 1190 00:56:14,310 --> 00:56:22,540 Jälleen mukaan tämän dian, me pitäisi ajaa valgrind jonkinlaisella 1191 00:56:22,540 --> 00:56:26,410 vaihtoehto, tässä tapauksessa - Vuoto-check = täynnä. 1192 00:56:26,410 --> 00:56:27,660 Joten kirjoittaa valgrind - Vuoto-check = täynnä. 1193 00:56:27,660 --> 00:56:31,910 1194 00:56:31,910 --> 00:56:35,080 Joten tämä jatkuu valgrind ohjelmastamme. 1195 00:56:35,080 --> 00:56:37,000 Ja nyt ohjelma todella toimii. 1196 00:56:37,000 --> 00:56:40,190 Joten aiomme käyttää sitä aivan kuten ennen, laittaa jotain sisään 1197 00:56:40,190 --> 00:56:40,830 Aion laittaa kolme. 1198 00:56:40,830 --> 00:56:41,790 Joka toimii. 1199 00:56:41,790 --> 00:56:43,202 En aio yrittää laittaa jotain muu, koska aiomme 1200 00:56:43,202 --> 00:56:44,710 saada seg väärä tässä tapauksessa. 1201 00:56:44,710 --> 00:56:46,700 Joten olen juuri menossa lopettaa. 1202 00:56:46,700 --> 00:56:50,160 >> Ja nyt näet täällä vuotaa ja läjä yhteenveto. 1203 00:56:50,160 --> 00:56:52,310 Nämä ovat hyviä asioita, joita haluat tarkistaa. 1204 00:56:52,310 --> 00:56:56,780 Joten kasaan yhteenveto - sanotaan, käytössä Exit - kahdeksan tavua yhdessä lohkossa. 1205 00:56:56,780 --> 00:56:58,370 Että yksi lohko on solmu me malloced. 1206 00:56:58,370 --> 00:57:02,230 Michael, sanoit ennen solmu on kahdeksan puremat, koska se on kokonaisluku 1207 00:57:02,230 --> 00:57:02,680 ja osoitin. 1208 00:57:02,680 --> 00:57:04,550 Niin, että meidän solmu. 1209 00:57:04,550 --> 00:57:08,170 Ja sitten se sanoo käytimme malloc seitsemän kertaa ja me vapautti 1210 00:57:08,170 --> 00:57:08,940 jotain kuusi kertaa. 1211 00:57:08,940 --> 00:57:13,680 Mutta emme koskaan kutsutaan vapaaksi, joten minulla ei ole aavistustakaan, mitä tämä puhuu. 1212 00:57:13,680 --> 00:57:18,490 >> Mutta riittää kun sanon, että kun Ohjelma toimii, malloc on kutsuttu 1213 00:57:18,490 --> 00:57:20,330 Joissakin muissa paikoissa, että me ei tarvitse murehtia. 1214 00:57:20,330 --> 00:57:22,460 Joten malloc oli luultavasti nimeltään paikoin. 1215 00:57:22,460 --> 00:57:24,480 Meidän ei tarvitse huolehtia, jos. 1216 00:57:24,480 --> 00:57:26,240 Mutta tämä on todella meille. 1217 00:57:26,240 --> 00:57:27,380 Tämä ensimmäinen rivi on meille. 1218 00:57:27,380 --> 00:57:28,320 Jätimme että lohko. 1219 00:57:28,320 --> 00:57:30,330 Ja voit nähdä, että täällä Vuotoalttiiseen yhteenveto. 1220 00:57:30,330 --> 00:57:31,950 Edelleen tavoitettavissa - 1221 00:57:31,950 --> 00:57:32,930 kahdeksan tavua yhdessä lohkossa. 1222 00:57:32,930 --> 00:57:34,100 Tämä tarkoittaa, että muisti - 1223 00:57:34,100 --> 00:57:35,730 olemme vuotanut että muisti. 1224 00:57:35,730 --> 00:57:37,570 Menettänyt lopullisesti - 1225 00:57:37,570 --> 00:57:38,770 jotain on menetetty lopullisesti. 1226 00:57:38,770 --> 00:57:40,590 Yleensä, et nähdä mitään siellä. 1227 00:57:40,590 --> 00:57:44,780 Silti tavoitettavissa on yleensä silloin näet asioita, missä sinun kannattaa 1228 00:57:44,780 --> 00:57:48,900 katsomme, mitä koodia sinun pitäisi vapauttanut mutta unohdit vapauttaa. 1229 00:57:48,900 --> 00:57:53,170 >> Ja sitten jos tämä ei pidä paikkaansa, jos teimme ilmaiseksi kaiken, 1230 00:57:53,170 --> 00:57:54,360 voimme tarkistaa, että. 1231 00:57:54,360 --> 00:57:57,330 Katsotaanpa vain ajaa ohjelman ei hoida mitään. 1232 00:57:57,330 --> 00:57:59,800 Näet täällä käytössä exit - 1233 00:57:59,800 --> 00:58:01,310 nolla tavua nolla lohkot. 1234 00:58:01,310 --> 00:58:06,310 Se tarkoittaa, että ei ollut mitään jäljellä kun tämä ohjelma lähtenyt. 1235 00:58:06,310 --> 00:58:12,090 Joten ennen kääntymistä pset6, ajaa valgrind ja varmista, että sinulla ei ole 1236 00:58:12,090 --> 00:58:15,310 mitään muistivuotoja omassa ohjelmassa. 1237 00:58:15,310 --> 00:58:17,910 Jos sinulla on kysyttävää kanssa valgrind, rohkeasti tavoittaa. 1238 00:58:17,910 --> 00:58:18,700 Mutta tämä on, miten käytät sitä. 1239 00:58:18,700 --> 00:58:20,890 Hyvin yksinkertainen - katso jos on käytössä exit - 1240 00:58:20,890 --> 00:58:22,270 mitään bytes missään lohkoja. 1241 00:58:22,270 --> 00:58:27,890 1242 00:58:27,890 --> 00:58:29,580 >> Joten me työskentelimme insert solmuun. 1243 00:58:29,580 --> 00:58:33,840 Minulla oli kaksi muita toimintoja täällä - tulostaa solmut ja vapaa solmut. 1244 00:58:33,840 --> 00:58:37,780 Jälleen, nämä ovat toimintoja, jotka ovat olemaan hyvä voit harjoitella 1245 00:58:37,780 --> 00:58:40,990 koska ne auttavat sinua ei vain Näiden näyte harjoituksia, mutta myös 1246 00:58:40,990 --> 00:58:42,180 ongelmasta asetettu. 1247 00:58:42,180 --> 00:58:44,230 He kartta melko tiiviisti asioita olet menossa täytyy tehdä 1248 00:58:44,230 --> 00:58:45,010 Harjoitus. 1249 00:58:45,010 --> 00:58:47,640 Mutta haluan olla varma kosketamme kaikesta. 1250 00:58:47,640 --> 00:58:50,400 Ja hash taulukot ovat myös ratkaisevia mitä teemme osassa tässä 1251 00:58:50,400 --> 00:58:51,980 viikko - tai ongelman asetettu. 1252 00:58:51,980 --> 00:58:55,200 >> Joten aiomme lopettaa osio puhumme hash taulukoita. 1253 00:58:55,200 --> 00:58:58,140 Jos huomaat tein pikku tiiviste. 1254 00:58:58,140 --> 00:59:00,020 Se ei ole sitä mitä me puhumme noin kuitenkin. 1255 00:59:00,020 --> 00:59:03,540 Puhumme eri tyyppi hash taulukoita. 1256 00:59:03,540 --> 00:59:07,300 Ja sen ytimessä, tiiviste ei ole mitään muuta kuin 1257 00:59:07,300 --> 00:59:08,860 array plus hajautusfunktio. 1258 00:59:08,860 --> 00:59:11,150 Aiomme puhua vähän vain Varmista jokainen ymmärtää, mitä 1259 00:59:11,150 --> 00:59:12,110 hash funktio on. 1260 00:59:12,110 --> 00:59:15,420 Ja minä kerron teille nyt, että se on mitään muuta kuin kaksi asiaa - 1261 00:59:15,420 --> 00:59:18,590 array ja hajautusfunktio. 1262 00:59:18,590 --> 00:59:20,716 Ja tässä ovat vaiheet läpi jota tämä toimii. 1263 00:59:20,716 --> 00:59:31,560 1264 00:59:31,560 --> 00:59:32,810 >> On meidän array. 1265 00:59:32,810 --> 00:59:38,460 1266 00:59:38,460 --> 00:59:39,460 On meidän tehtävämme. 1267 00:59:39,460 --> 00:59:43,180 Erityisesti hash-toimintoja on tehdä pari asiaa tähän. 1268 00:59:43,180 --> 00:59:45,040 Aion puhua erityisesti tästä ongelmasta asetettu. 1269 00:59:45,040 --> 00:59:46,450 Se on luultavasti menossa toteuttaa merkkijono. 1270 00:59:46,450 --> 00:59:50,570 1271 00:59:50,570 --> 00:59:51,770 Ja mitä se aio palata? 1272 00:59:51,770 --> 00:59:52,640 Mitä tietoja tyyppi? 1273 00:59:52,640 --> 00:59:54,260 Alden? 1274 00:59:54,260 --> 00:59:55,760 Sinun hajautusfunktio palata? 1275 00:59:55,760 --> 00:59:58,760 Kokonaisluku. 1276 00:59:58,760 --> 01:00:01,700 Joten tämä on mitä hash Taulukko koostuu - 1277 01:00:01,700 --> 01:00:05,430 taulukon muodossa array ja hash-funktiota. 1278 01:00:05,430 --> 01:00:06,010 Miten se toimii? 1279 01:00:06,010 --> 01:00:07,300 Se toimii kolmessa vaiheessa. 1280 01:00:07,300 --> 01:00:08,740 Annamme sille avaimen. 1281 01:00:08,740 --> 01:00:11,470 Tässä tapauksessa annamme sen merkkijono. 1282 01:00:11,470 --> 01:00:18,140 Vaadimme hajautusfunktio askelta kohti yksi keskeisistä ja saamme arvon. 1283 01:00:18,140 --> 01:00:20,310 >> Erityisesti me sanomme saamme kokonaisluku. 1284 01:00:20,310 --> 01:00:25,630 Että kokonaisluku, on erittäin konkreettisia rajansa, että kokonaisluku voi olla. 1285 01:00:25,630 --> 01:00:28,880 Tässä esimerkissä meidän array on kooltaan kolme. 1286 01:00:28,880 --> 01:00:32,330 Niin mitä numeroita voi että kokonaisluku olla. 1287 01:00:32,330 --> 01:00:35,970 Mikä on monia päteviä arvoja että kokonaisluku, palautuva tämän 1288 01:00:35,970 --> 01:00:37,220 hajautusfunktio? 1289 01:00:37,220 --> 01:00:40,440 1290 01:00:40,440 --> 01:00:42,110 Nolla, yksi ja kaksi. 1291 01:00:42,110 --> 01:00:46,060 Piste hash tehtävänä on selvittää paikka array 1292 01:00:46,060 --> 01:00:47,790 missä avain on menossa. 1293 01:00:47,790 --> 01:00:51,290 On vain kolme mahdollista paikkoja täällä - 1294 01:00:51,290 --> 01:00:52,130 nolla, yksi tai kaksi. 1295 01:00:52,130 --> 01:00:55,360 Joten tämä toiminto paremman tuoton nolla, yksi tai kaksi. 1296 01:00:55,360 --> 01:00:58,740 Jotkut voimassa Indice tässä array. 1297 01:00:58,740 --> 01:01:02,770 >> Ja sitten riippuen siitä, missä se palaa, näette array auki 1298 01:01:02,770 --> 01:01:03,730 teline arvo. 1299 01:01:03,730 --> 01:01:05,800 Se kun laitoimme näppäintä. 1300 01:01:05,800 --> 01:01:11,280 Joten me heittää kurpitsa, pääsemme pois nolla. 1301 01:01:11,280 --> 01:01:15,540 Klo array kiinnike 0, laitamme kurpitsa. 1302 01:01:15,540 --> 01:01:21,070 Heitämme kissoilla, saamme yhden. 1303 01:01:21,070 --> 01:01:24,110 Laitoimme kissan yhdessä. 1304 01:01:24,110 --> 01:01:25,480 Laitamme hämähäkki. 1305 01:01:25,480 --> 01:01:26,710 Saamme kaksi. 1306 01:01:26,710 --> 01:01:30,200 Laitoimme hämähäkki array kiinnike kaksi. 1307 01:01:30,200 --> 01:01:32,300 Olisi niin mukavaa, jos se toimi niin. 1308 01:01:32,300 --> 01:01:35,570 Mutta valitettavasti, kuten tulemme näkemään, se on hieman monimutkaisempi. 1309 01:01:35,570 --> 01:01:37,570 >> Ennen kuin pääsemme sinne, kysyttävää tästä perus 1310 01:01:37,570 --> 01:01:38,820 set-up of hajautustaulun? 1311 01:01:38,820 --> 01:01:49,050 1312 01:01:49,050 --> 01:01:51,940 Tämä kuva on täsmälleen mitä me kiinnitti taululle. 1313 01:01:51,940 --> 01:01:55,420 Mutta koska me veti sen hallituksessa, I aio mennä sitä pidemmälle. 1314 01:01:55,420 --> 01:02:00,430 Pohjimmiltaan avaimet, magiaa musta laatikko - tai tässä tapauksessa, turkoosi laatikko - of 1315 01:02:00,430 --> 01:02:02,410 hajautusfunktio laittaa ne kauhat. 1316 01:02:02,410 --> 01:02:04,690 Ja tässä esimerkissä olemme ei hoida nimeä. 1317 01:02:04,690 --> 01:02:07,880 Laitamme liittyy puhelimen määrä nimen ämpäri. 1318 01:02:07,880 --> 01:02:10,430 Mutta voit hyvin juuri laita nimi ämpäri. 1319 01:02:10,430 --> 01:02:12,950 >> Tämä on vain kuva siitä, mitä me veti taululle. 1320 01:02:12,950 --> 01:02:14,460 Meillä on karikot, vaikka. 1321 01:02:14,460 --> 01:02:17,470 Ja siellä on kaksi erityisesti liukuu, että haluan mennä yli. 1322 01:02:17,470 --> 01:02:20,230 Ensimmäinen on noin hash-funktio. 1323 01:02:20,230 --> 01:02:22,620 Kysyin kysymyksen, mitä tekee hyvän hajautusfunktio? 1324 01:02:22,620 --> 01:02:24,220 Annan kaksi vastausta. 1325 01:02:24,220 --> 01:02:26,630 Ensimmäinen on se, että se on deterministinen. 1326 01:02:26,630 --> 01:02:29,660 Yhteydessä hash toimintoja, Mitä tämä tarkoittaa? 1327 01:02:29,660 --> 01:02:37,840 1328 01:02:37,840 --> 01:02:39,282 Kyllä? 1329 01:02:39,282 --> 01:02:42,850 >> Yleisö: Se voi löytää index jatkuvassa aikaa? 1330 01:02:42,850 --> 01:02:43,810 >> JASON HIRSCHHORN: Tämä ei ole sitä mitä se tarkoittaa. 1331 01:02:43,810 --> 01:02:44,725 Mutta se on hyvä arvaus. 1332 01:02:44,725 --> 01:02:46,100 Kukaan muu ole arvaus mitä tämä tarkoittaa? 1333 01:02:46,100 --> 01:02:47,780 Että hyvä hajautusfunktio on deterministinen? 1334 01:02:47,780 --> 01:02:48,280 Annie? 1335 01:02:48,280 --> 01:02:51,680 >> Yleisö: Tuo avain voidaan kartoittaa yhteen paikkaan tiiviste. 1336 01:02:51,680 --> 01:02:53,070 >> JASON HIRSCHHORN: Tuo Aivan oikein. 1337 01:02:53,070 --> 01:02:57,430 Joka kerta kun laittaa kurpitsa, se palauttaa aina nolla. 1338 01:02:57,430 --> 01:03:01,660 Jos laitat kurpitsan ja hash funktio palauttaa nolla, mutta on 1339 01:03:01,660 --> 01:03:06,060 todennäköisyys palata jotain muu suurempi kuin nolla - 1340 01:03:06,060 --> 01:03:09,280 joten ehkä se voi palauttaa yhden joskus tai kaksi muuta kertaa - 1341 01:03:09,280 --> 01:03:11,100 joka ei ole hyvä hash-funktio. 1342 01:03:11,100 --> 01:03:11,800 Olet aivan oikeassa. 1343 01:03:11,800 --> 01:03:15,680 Sinun hash funktio palauttaa täsmälleen sama kokonaisluku, tässä tapauksessa, sillä 1344 01:03:15,680 --> 01:03:17,780 täsmälleen sama merkkijono. 1345 01:03:17,780 --> 01:03:22,210 >> Ehkä se palaa täsmälleen sama kokonaisluku varten täsmälleen sama merkkijono 1346 01:03:22,210 --> 01:03:24,430 riippumatta arvo. 1347 01:03:24,430 --> 01:03:27,980 Mutta tässä tapauksessa se on edelleen deterministinen koska useita asioita 1348 01:03:27,980 --> 01:03:29,350 mapataan sama arvo. 1349 01:03:29,350 --> 01:03:30,170 Se on hyvä. 1350 01:03:30,170 --> 01:03:32,615 Niin kauan kuin on vain yksi lähtö annetulle tulolle. 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 Toinen asia on, että se palauttaa voimassa indeksit. 1354 01:03:38,340 --> 01:03:40,220 Me esille, että aikaisemmin. 1355 01:03:40,220 --> 01:03:41,860 Tämä hajautusfunktio - 1356 01:03:41,860 --> 01:03:43,710 oh boy - 1357 01:03:43,710 --> 01:03:46,840 hajautusfunktio olisi palata voimassa indeksit. 1358 01:03:46,840 --> 01:03:47,740 Sano - 1359 01:03:47,740 --> 01:03:48,990 mennään takaisin tähän esimerkkiin. 1360 01:03:48,990 --> 01:03:52,580 1361 01:03:52,580 --> 01:03:57,540 Oma hajautusfunktio laskee ylös kirjaimet sana. 1362 01:03:57,540 --> 01:03:58,380 Se hajautusfunktio. 1363 01:03:58,380 --> 01:03:59,740 Ja kannattavuus kokonaisluku. 1364 01:03:59,740 --> 01:04:04,280 Joten jos minulla on sana, se on aio palata yhteen. 1365 01:04:04,280 --> 01:04:06,900 Ja se tulee laittaa täällä. 1366 01:04:06,900 --> 01:04:09,430 Mitä jos laitan sanan lepakko? 1367 01:04:09,430 --> 01:04:11,310 Se tulee palauttaa kolme. 1368 01:04:11,310 --> 01:04:12,560 Mistä bat mennä? 1369 01:04:12,560 --> 01:04:18,730 1370 01:04:18,730 --> 01:04:19,750 >> Se ei sovi. 1371 01:04:19,750 --> 01:04:21,000 Mutta se on mentävä jonnekin. 1372 01:04:21,000 --> 01:04:23,340 Tämä on minun hajautustaulun kun kaikki, ja kaiken pitää mennä jonnekin. 1373 01:04:23,340 --> 01:04:24,590 Joten missä pitäisi bat mennä? 1374 01:04:24,590 --> 01:04:28,020 1375 01:04:28,020 --> 01:04:28,710 Mitään ajatuksia? 1376 01:04:28,710 --> 01:04:29,450 Arvauksia? 1377 01:04:29,450 --> 01:04:30,280 Hyvä arvauksia? 1378 01:04:30,280 --> 01:04:31,220 >> Yleisö: Zero. 1379 01:04:31,220 --> 01:04:32,120 >> JASON HIRSCHHORN: Miksi nolla? 1380 01:04:32,120 --> 01:04:35,990 >> Yleisö: Koska kolme modulo kolme on nolla? 1381 01:04:35,990 --> 01:04:38,620 >> JASON HIRSCHHORN: Three modulo kolme on nolla. 1382 01:04:38,620 --> 01:04:40,810 Se on suuri arvaus, ja se on oikein. 1383 01:04:40,810 --> 01:04:43,870 Joten tässä tapauksessa se olisi luultavasti mennä nolla. 1384 01:04:43,870 --> 01:04:51,080 Joten hyvä tapa varmistaa, että tämä hash funktio palauttaa vain voimassa indeksien 1385 01:04:51,080 --> 01:04:54,580 modulo sen pöydän koko. 1386 01:04:54,580 --> 01:04:57,360 Jos modulo mitä tämän tuottoa kolme, olet aina menossa 1387 01:04:57,360 --> 01:05:00,930 jotain välillä nolla, yksi ja kaksi. 1388 01:05:00,930 --> 01:05:05,160 Ja jos tämä palaa aina seitsemän, ja aina modulo kolme, olet 1389 01:05:05,160 --> 01:05:06,030 aina menossa sama asia. 1390 01:05:06,030 --> 01:05:09,270 >> Joten se on vielä deterministinen jos modulo. 1391 01:05:09,270 --> 01:05:11,420 Mutta se varmistaa, että sinulla koskaan saada jotain - 1392 01:05:11,420 --> 01:05:12,940 kelpaa teollisuudelle. 1393 01:05:12,940 --> 01:05:16,840 Yleensä että modulo pitäisi tapahtua sisällä hajautusfunktio. 1394 01:05:16,840 --> 01:05:18,240 Joten sinun ei tarvitse huolestua. 1395 01:05:18,240 --> 01:05:20,555 Et vain voi varmistaa, että tämä on voimassa Indice. 1396 01:05:20,555 --> 01:05:23,700 1397 01:05:23,700 --> 01:05:26,700 Kysyttävää tästä potentiaali sudenkuoppa? 1398 01:05:26,700 --> 01:05:36,590 1399 01:05:36,590 --> 01:05:39,060 >> OK. 1400 01:05:39,060 --> 01:05:40,290 Ja siellä mennään. 1401 01:05:40,290 --> 01:05:42,890 Seuraava potentiaalinen sudenkuoppa, ja tämä on iso. 1402 01:05:42,890 --> 01:05:46,880 Mitä jos kaksi avainta kartta sama arvo? 1403 01:05:46,880 --> 01:05:49,350 Joten on olemassa kaksi tapaa käsitellä tätä. 1404 01:05:49,350 --> 01:05:53,140 1405 01:05:53,140 --> 01:05:56,020 Ensimmäinen on nimeltään lineaarinen hyvää, jonka minä olen 1406 01:05:56,020 --> 01:05:57,300 ei mennä yli. 1407 01:05:57,300 --> 01:06:01,120 Mutta sinun pitäisi olla perehtynyt miten joka toimii ja mitä se on. 1408 01:06:01,120 --> 01:06:05,610 >> Toinen aion mennä yli koska se on yksi että monet 1409 01:06:05,610 --> 01:06:08,290 ihmiset luultavasti lopulta päättää käyttää heidän ongelmansa asetettu. 1410 01:06:08,290 --> 01:06:09,820 Tietenkin, sinun ei tarvitse. 1411 01:06:09,820 --> 01:06:15,280 Mutta ongelma asetettu, monet ihmiset valitsevat yleensä luoda tiiviste 1412 01:06:15,280 --> 01:06:17,950 erillisellä ketjutus toteuttaa heidän sanakirja. 1413 01:06:17,950 --> 01:06:21,390 Joten aiomme mennä yli, mitä se tarkoittaa luoda hash taulukon 1414 01:06:21,390 --> 01:06:23,890 erillinen ketjutus. 1415 01:06:23,890 --> 01:06:26,260 >> Joten laitoin kurpitsa. 1416 01:06:26,260 --> 01:06:29,560 Se palauttaa nolla. 1417 01:06:29,560 --> 01:06:31,410 Ja laitoin kurpitsan täällä. 1418 01:06:31,410 --> 01:06:35,880 1419 01:06:35,880 --> 01:06:37,930 Sitten laitoin - 1420 01:06:37,930 --> 01:06:39,922 mitä toinen Halloween-teemalla juttu? 1421 01:06:39,922 --> 01:06:42,200 >> Yleisö: Candy. 1422 01:06:42,200 --> 01:06:42,770 >> JASON HIRSCHHORN: Candy! 1423 01:06:42,770 --> 01:06:43,910 Se on suuri. 1424 01:06:43,910 --> 01:06:47,760 Laitoin karkkia ja karkkia antaa minulle myös nolla. 1425 01:06:47,760 --> 01:06:49,350 Mitä teen? 1426 01:06:49,350 --> 01:06:51,940 Onko ideoita? 1427 01:06:51,940 --> 01:06:53,940 Koska te kaikki tavallaan tietävät mitä erillinen ketjutus on. 1428 01:06:53,940 --> 01:06:55,190 Joten mitään ideoita mitä tehdä? 1429 01:06:55,190 --> 01:06:58,170 1430 01:06:58,170 --> 01:06:59,110 Joo. 1431 01:06:59,110 --> 01:07:03,810 >> Yleisö: Putting merkkijono todella tiiviste. 1432 01:07:03,810 --> 01:07:08,910 >> JASON HIRSCHHORN: Niin aiomme piirtää hyvä idea tänne. 1433 01:07:08,910 --> 01:07:09,340 OK. 1434 01:07:09,340 --> 01:07:12,290 >> Yleisö: Onko hashtable [Äänetön] 1435 01:07:12,290 --> 01:07:16,640 osoitin, joka osoittaa alussa lista. 1436 01:07:16,640 --> 01:07:20,930 Ja sitten on kurpitsa olla ensimmäinen arvo että linkitetty lista ja karkkia olla 1437 01:07:20,930 --> 01:07:22,800 toinen arvo kyseisessä linkitetty lista. 1438 01:07:22,800 --> 01:07:23,420 >> JASON HIRSCHHORN: OK. 1439 01:07:23,420 --> 01:07:24,670 Marcus, joka oli erinomainen. 1440 01:07:24,670 --> 01:07:26,160 Aion rikkoa että alas. 1441 01:07:26,160 --> 01:07:28,890 Marcus sanoo ei korvata kurpitsan. 1442 01:07:28,890 --> 01:07:30,660 Se olisi huono. 1443 01:07:30,660 --> 01:07:33,640 Älä laita karkkia jossain muualla. 1444 01:07:33,640 --> 01:07:35,390 Aiomme laittaa ne molemmat nollassa. 1445 01:07:35,390 --> 01:07:37,770 Mutta aiomme käsitellä tekee heidät nolla 1446 01:07:37,770 --> 01:07:39,395 laatimalla luettelo nolla. 1447 01:07:39,395 --> 01:07:42,430 Ja aiomme luoda luettelon kaiken, kartoitettu nollaan. 1448 01:07:42,430 --> 01:07:47,960 Ja paras tapa opimme luoda lista, joka voi kasvaa ja kutistua 1449 01:07:47,960 --> 01:07:49,840 dynaamisesti ei kuulu toinen array. 1450 01:07:49,840 --> 01:07:51,510 Joten ei moniulotteinen array. 1451 01:07:51,510 --> 01:07:54,080 Mutta vain luoda linkitetyn listan. 1452 01:07:54,080 --> 01:07:55,330 >> Joten mitä hän ehdotti - 1453 01:07:55,330 --> 01:07:57,950 1454 01:07:57,950 --> 01:07:59,200 Aion saada uusi - 1455 01:07:59,200 --> 01:08:15,380 1456 01:08:15,380 --> 01:08:19,689 on luoda array osoittimia, joukko osoittimia. 1457 01:08:19,689 --> 01:08:20,580 OK. 1458 01:08:20,580 --> 01:08:24,180 Idea tai vihje, mitä tyyppiä Tämän viitteitä pitäisi olla? 1459 01:08:24,180 --> 01:08:26,290 Marcus? 1460 01:08:26,290 --> 01:08:27,250 >> Yleisö: Osoittimet - 1461 01:08:27,250 --> 01:08:28,609 >> JASON HIRSCHHORN: Koska sinä sanoi linkitetty lista, joten - 1462 01:08:28,609 --> 01:08:29,520 >> Yleisö: Node viitteitä? 1463 01:08:29,520 --> 01:08:30,670 >> JASON HIRSCHHORN: Node viitteitä. 1464 01:08:30,670 --> 01:08:32,830 Jos asiat meidän sidoksissa luettelossa ovat solmut sitten he 1465 01:08:32,830 --> 01:08:34,370 pitäisi olla solmu viitteitä. 1466 01:08:34,370 --> 01:08:35,939 Ja mitä he equal aluksi? 1467 01:08:35,939 --> 01:08:36,990 >> Yleisö: 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 Joten ei meidän tyhjä juttu. 1471 01:08:46,080 --> 01:08:47,170 Kurpitsa palaa nolla. 1472 01:08:47,170 --> 01:08:48,569 Mitä teemme? 1473 01:08:48,569 --> 01:08:49,609 Kävellä minua läpi? 1474 01:08:49,609 --> 01:08:50,810 Oikeastaan, Marcus jo antoi minulle. 1475 01:08:50,810 --> 01:08:52,439 Joku muu kävellä minua läpi. 1476 01:08:52,439 --> 01:08:54,760 Mitä me teemme, kun me - 1477 01:08:54,760 --> 01:08:56,609 tämä näyttää hyvin samankaltainen mitä olimme juuri tekemässä. 1478 01:08:56,609 --> 01:08:57,396 Avi. 1479 01:08:57,396 --> 01:08:59,090 >> Yleisö: Aion arvata. 1480 01:08:59,090 --> 01:09:01,250 Joten kun saat karkkia. 1481 01:09:01,250 --> 01:09:01,640 >> JASON HIRSCHHORN: Joo. 1482 01:09:01,640 --> 01:09:03,120 No, saimme kurpitsa. 1483 01:09:03,120 --> 01:09:03,870 Mennään meidän ensimmäinen. 1484 01:09:03,870 --> 01:09:04,324 Saimme kurpitsa. 1485 01:09:04,324 --> 01:09:04,779 >> Yleisö: OK. 1486 01:09:04,779 --> 01:09:05,880 Kurpitsa palaa nolla. 1487 01:09:05,880 --> 01:09:08,770 Niin laitat sen siihen. 1488 01:09:08,770 --> 01:09:10,810 Tai oikeastaan, laitat sen vuonna linkitetty lista. 1489 01:09:10,810 --> 01:09:13,550 >> JASON HIRSCHHORN: Miten me laita se linkitetty lista? 1490 01:09:13,550 --> 01:09:15,479 >> Yleisö: Voi, todellinen syntaksi? 1491 01:09:15,479 --> 01:09:16,240 >> JASON HIRSCHHORN: Vain kävellä - 1492 01:09:16,240 --> 01:09:16,740 sanoa enemmän. 1493 01:09:16,740 --> 01:09:19,310 Mitä teemme? 1494 01:09:19,310 --> 01:09:22,100 >> Yleisö: Sinä vain lisätä että se on ensimmäinen solmu. 1495 01:09:22,100 --> 01:09:22,675 >> JASON HIRSCHHORN: OK. 1496 01:09:22,675 --> 01:09:29,069 Joten meillä on solmu, kurpitsa. 1497 01:09:29,069 --> 01:09:31,560 Ja nyt, miten voin asettaa sen? 1498 01:09:31,560 --> 01:09:34,590 1499 01:09:34,590 --> 01:09:37,090 >> Yleisö: Voit määrittää sen osoittimen. 1500 01:09:37,090 --> 01:09:37,970 >> JASON HIRSCHHORN: Mikä osoitin? 1501 01:09:37,970 --> 01:09:39,620 >> Yleisö: osoitin nollaan. 1502 01:09:39,620 --> 01:09:41,420 >> JASON HIRSCHHORN: Missä ei tässä vaiheessa? 1503 01:09:41,420 --> 01:09:42,810 >> Yleisö: nollaamaan juuri nyt. 1504 01:09:42,810 --> 01:09:43,529 >> JASON HIRSCHHORN: No, se osoittaa null. 1505 01:09:43,529 --> 01:09:44,499 Mutta olen ottamassa kurpitsa. 1506 01:09:44,499 --> 01:09:46,053 Joten missä on se kohta? 1507 01:09:46,053 --> 01:09:46,880 >> Yleisö: kurpitsan. 1508 01:09:46,880 --> 01:09:47,399 >> JASON HIRSCHHORN: To kurpitsa. 1509 01:09:47,399 --> 01:09:48,760 Täsmälleen. 1510 01:09:48,760 --> 01:09:50,010 Joten tämä viittaa kurpitsan. 1511 01:09:50,010 --> 01:09:52,500 1512 01:09:52,500 --> 01:09:54,250 Ja jos tämä osoitin kurpitsa vaiheessa? 1513 01:09:54,250 --> 01:09:57,986 1514 01:09:57,986 --> 01:09:58,340 Jos haluat 1515 01:09:58,340 --> 01:09:58,590 >> Yleisö: Null. 1516 01:09:58,590 --> 01:09:59,210 >> JASON HIRSCHHORN: NULL. 1517 01:09:59,210 --> 01:10:00,460 Täsmälleen. 1518 01:10:00,460 --> 01:10:03,570 1519 01:10:03,570 --> 01:10:05,140 Joten me vain lisätään jotain osaksi linkitetty lista. 1520 01:10:05,140 --> 01:10:07,210 Me vain kirjoitti tämän koodin tehdä tämän. 1521 01:10:07,210 --> 01:10:09,520 Lähes me melkein sain sen täysin säröillä. 1522 01:10:09,520 --> 01:10:10,790 Nyt lisäämme karkkia. 1523 01:10:10,790 --> 01:10:13,480 Meidän karkkia myös menee nollaan. 1524 01:10:13,480 --> 01:10:16,100 Joten mitä teemme karkkia? 1525 01:10:16,100 --> 01:10:18,790 >> Yleisö: Se riippuu siitä, onko ei me yritetään järjestää sitä. 1526 01:10:18,790 --> 01:10:19,640 >> JASON HIRSCHHORN: Tuo Aivan oikein. 1527 01:10:19,640 --> 01:10:21,070 Se riippuu siitä, onko vai ei Yritämme järjestää sen. 1528 01:10:21,070 --> 01:10:22,660 Oletetaan, emme ole menossa lajitella. 1529 01:10:22,660 --> 01:10:24,880 >> Yleisö: No sitten, kun me keskustelimme ennen, se on yksinkertaisin vain laittaa se 1530 01:10:24,880 --> 01:10:28,590 heti alussa niin osoitin nollasta pistettä karkkia. 1531 01:10:28,590 --> 01:10:29,020 >> JASON HIRSCHHORN: OK. 1532 01:10:29,020 --> 01:10:29,380 Pidä kiinni. 1533 01:10:29,380 --> 01:10:30,630 Saanen luoda karkkia täällä. 1534 01:10:30,630 --> 01:10:34,030 1535 01:10:34,030 --> 01:10:35,150 Joten tämä osoitin - 1536 01:10:35,150 --> 01:10:37,590 >> Yleisö: Joo, pitäisi nyt osoittavan karkkia. 1537 01:10:37,590 --> 01:10:40,580 Sitten osoitinta karkkia kohta kurpitsa. 1538 01:10:40,580 --> 01:10:43,140 1539 01:10:43,140 --> 01:10:44,560 >> JASON HIRSCHHORN: Näinkö? 1540 01:10:44,560 --> 01:10:47,380 Ja sanoa saimme toisen asia kartta nollaan? 1541 01:10:47,380 --> 01:10:48,660 >> Yleisö: No, sinä vain tehdä sama asia? 1542 01:10:48,660 --> 01:10:50,290 >> JASON HIRSCHHORN: Tee sama asia. 1543 01:10:50,290 --> 01:10:53,700 Joten tässä tapauksessa, jos emme haluamme pitää sen lajitellaan se 1544 01:10:53,700 --> 01:10:55,270 kuulostaa melko yksinkertainen. 1545 01:10:55,270 --> 01:10:59,920 Otamme osoitin Indice antama meidän hajautusfunktio. 1546 01:10:59,920 --> 01:11:03,830 Meillä on tältä osin meidän uuteen solmuun. 1547 01:11:03,830 --> 01:11:07,830 Ja sitten mitä se oli suunnattu aiemmin - 1548 01:11:07,830 --> 01:11:10,620 Tässä tapauksessa null, vuonna Toisessa tapauksessa kurpitsa - 1549 01:11:10,620 --> 01:11:15,310 että, mikä sen osoittaa aiemmin, lisäämme seuraavaan ja 1550 01:11:15,310 --> 01:11:17,810 meidän uusi solmu. 1551 01:11:17,810 --> 01:11:19,650 Olemme laittamalla jotain alussa. 1552 01:11:19,650 --> 01:11:22,900 Itse asiassa tämä on paljon yksinkertaisempi kuin yrittää pitää luetteloa järjestetty. 1553 01:11:22,900 --> 01:11:25,340 Mutta jälleen kerran, haku on monimutkaisempia täällä. 1554 01:11:25,340 --> 01:11:28,300 Me aina mennä loppuun. 1555 01:11:28,300 --> 01:11:29,650 >> OK. 1556 01:11:29,650 --> 01:11:32,750 Kysyttävää erillinen ketjutus? 1557 01:11:32,750 --> 01:11:34,690 Miten se toimii? 1558 01:11:34,690 --> 01:11:35,820 Pyydä heitä nyt. 1559 01:11:35,820 --> 01:11:39,260 En todellakaan halua varmista, että kaikki ymmärtää tämä ennen kuin pää pois. 1560 01:11:39,260 --> 01:11:48,410 1561 01:11:48,410 --> 01:11:52,060 >> Yleisö: Miksi laitat kurpitsan ja karkkia samaan 1562 01:11:52,060 --> 01:11:54,108 osa tiiviste? 1563 01:11:54,108 --> 01:11:55,860 >> JASON HIRSCHHORN: Hyvä kysymys. 1564 01:11:55,860 --> 01:11:59,140 Miksi me panemme ne samaan osa tiiviste? 1565 01:11:59,140 --> 01:12:03,200 No, tässä tapauksessa meidän hajautusfunktio palaa nolla molemmille. 1566 01:12:03,200 --> 01:12:05,310 Joten ne täytyy mennä Indice nolla koska sinne olemme menossa 1567 01:12:05,310 --> 01:12:07,420 etsiä niitä, jos me koskaan halua etsiä niitä. 1568 01:12:07,420 --> 01:12:11,750 Jälleen kerran lineaarinen luotaa lähestymistapa emme laita ne molemmat nollassa. 1569 01:12:11,750 --> 01:12:13,900 Mutta erillisessä lähestymistavan ohella aiomme laittaa ne molemmat nollassa 1570 01:12:13,900 --> 01:12:16,620 ja sitten luoda listan pois nolla. 1571 01:12:16,620 --> 01:12:20,140 >> Emmekä halua korvata kurpitsan yksinkertaisesti, että koska sitten me 1572 01:12:20,140 --> 01:12:21,860 olettaa, että kurpitsa oli koskaan lisätä. 1573 01:12:21,860 --> 01:12:25,230 Jos me vain pitää yksi asia paikkaan, joka olisi huono. 1574 01:12:25,230 --> 01:12:28,590 Sitten ei olisi mahdollisuus meistä koskaan - 1575 01:12:28,590 --> 01:12:31,660 jos meillä koskaan ollut kahtena sitten olisi vain pyyhkiä alkuperäisestä arvosta. 1576 01:12:31,660 --> 01:12:34,090 Joten siksi me teemme tätä lähestymistapaa. 1577 01:12:34,090 --> 01:12:36,580 Tai siksi valitsimme - mutta jälleen kerran, me valitsi erillinen ketjutus lähestymistapaa, 1578 01:12:36,580 --> 01:12:39,670 joka on olemassa monia muita lähestymistapoja voisi valita. 1579 01:12:39,670 --> 01:12:41,185 Vastaako tuo kysymykseesi? 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 Lineaarinen luotaa kuuluisi - 1584 01:12:47,720 --> 01:12:51,913 jos löysimme törmäys nolla, me näyttäisi seuraavan paikka nähdä, jos 1585 01:12:51,913 --> 01:12:54,310 se oli auki ja laittaa sen sinne. 1586 01:12:54,310 --> 01:12:57,320 Ja sitten katsomme ensi urheilun ja katso jos se oli auki ja laittaa sen sinne. 1587 01:12:57,320 --> 01:12:59,780 Joten löydämme seuraavan käytettävissä avoin paikka ja laittaa sen sinne. 1588 01:12:59,780 --> 01:13:02,580 1589 01:13:02,580 --> 01:13:03,890 Muuta kysyttävää? 1590 01:13:03,890 --> 01:13:05,370 Joo, Avi. 1591 01:13:05,370 --> 01:13:07,490 >> Yleisö: Koska jatkoa, että mitä tarkoitat ensi paikalla? 1592 01:13:07,490 --> 01:13:10,250 Hash taulukon tai linkitetyn listan. 1593 01:13:10,250 --> 01:13:12,100 >> JASON HIRSCHHORN: For lineaarinen ohjelmointia, ei liity luetteloita. 1594 01:13:12,100 --> 01:13:13,400 Seuraavan paikalla tiiviste. 1595 01:13:13,400 --> 01:13:13,820 >> Yleisö: OK. 1596 01:13:13,820 --> 01:13:17,570 Joten tiiviste olisi alustetaan koko - 1597 01:13:17,570 --> 01:13:19,560 kuten määrä jouset että olit lisäämällä? 1598 01:13:19,560 --> 01:13:22,170 >> JASON HIRSCHHORN: Olisitte haluat sen olevan todella iso. 1599 01:13:22,170 --> 01:13:23,910 Kyllä. 1600 01:13:23,910 --> 01:13:27,900 Tässä on kuva siitä, mitä me vain piirsi taululle. 1601 01:13:27,900 --> 01:13:29,470 Jälleen meillä törmäyksen täällä. 1602 01:13:29,470 --> 01:13:30,710 klo 152. 1603 01:13:30,710 --> 01:13:33,570 Ja näet loimme linkitetty lista pois siitä. 1604 01:13:33,570 --> 01:13:38,200 1605 01:13:38,200 --> 01:13:41,850 Jälleen tiiviste erillinen ketjutus lähestymistapa ei ole yksi sinun 1606 01:13:41,850 --> 01:13:45,590 on otettava ongelmiin asetettu kuusi, mutta on yksi, joka on paljon 1607 01:13:45,590 --> 01:13:47,100 opiskelijat taipumus ottaa. 1608 01:13:47,100 --> 01:13:51,140 Joten muistiossa Puhutaanpa lyhyesti ennen kuin pää pois noin ongelma kuusi, 1609 01:13:51,140 --> 01:13:52,160 ja sitten Jaan teille tarinan. 1610 01:13:52,160 --> 01:13:55,120 Meillä on kolme minuuttia. 1611 01:13:55,120 --> 01:13:55,750 >> Harjoitus kuusi. 1612 01:13:55,750 --> 01:13:57,790 Sinulla on neljä toimintoa - 1613 01:13:57,790 --> 01:14:02,430 kuormitus, tarkista, koko ja purkaa. 1614 01:14:02,430 --> 01:14:03,380 Kuormitus - 1615 01:14:03,380 --> 01:14:07,120 No, olemme menossa Ylikuormitus juuri nyt. 1616 01:14:07,120 --> 01:14:09,330 Me kiinnitti kuormitus aluksella. 1617 01:14:09,330 --> 01:14:13,230 Ja me edes aloitettu koodaus paljon lisäämällä osaksi linkitetty lista. 1618 01:14:13,230 --> 01:14:18,020 Joten kuormitus ei ole paljon enemmän kuin mitä olemme juuri tehneet. 1619 01:14:18,020 --> 01:14:21,070 >> Check on kun olet jotain ladattu. 1620 01:14:21,070 --> 01:14:22,580 Se on sama prosessi kuin tämä. 1621 01:14:22,580 --> 01:14:26,845 Sama kaksi ensimmäistä osaa, jossa heität jotain osaksi hajautusfunktio 1622 01:14:26,845 --> 01:14:29,190 ja saada sen arvo. 1623 01:14:29,190 --> 01:14:30,700 Mutta nyt emme asetat sen. 1624 01:14:30,700 --> 01:14:33,350 Nyt etsimme sitä. 1625 01:14:33,350 --> 01:14:37,130 Olen mallikoodi kirjoitettu löytämiseen jotain linkitetty lista. 1626 01:14:37,130 --> 01:14:38,250 Kannustan teitä harjoitella sitä. 1627 01:14:38,250 --> 01:14:43,000 Mutta intuitiivisesti löytää jotain melko samanlainen kuin lisäämällä jotain. 1628 01:14:43,000 --> 01:14:46,540 Todellakin, me piirsi kuvan löytää jotain linkitetty lista, liikkuvat 1629 01:14:46,540 --> 01:14:48,910 kautta, kunnes pääsi loppuun. 1630 01:14:48,910 --> 01:14:52,430 Ja jos sinulla loppuun eikä voinut löytää sen, niin se ei ole siellä. 1631 01:14:52,430 --> 01:14:55,400 Niin, että tarkastus, lähinnä. 1632 01:14:55,400 --> 01:14:57,030 >> Seuraava on koko. 1633 01:14:57,030 --> 01:14:57,910 Hypätään koko. 1634 01:14:57,910 --> 01:15:00,040 Lopulta olet purkaa. 1635 01:15:00,040 --> 01:15:02,890 Kevennys on yksi emme ole laadittu taululle tai koodattu vielä. 1636 01:15:02,890 --> 01:15:05,990 Mutta kehotan teitä kokeilemaan koodaus sitä meidän näyte linkitetty lista esimerkki. 1637 01:15:05,990 --> 01:15:11,440 Mutta purkaa intuitiivisesti on samanlainen kuin vapaa - 1638 01:15:11,440 --> 01:15:14,010 tai Tarkoitan on samanlainen tarkistaa. 1639 01:15:14,010 --> 01:15:17,350 Paitsi nyt joka kerta olet menossa kautta, et ole vain tarkkailun 1640 01:15:17,350 --> 01:15:19,090 katso jos sinulla on arvoa siellä. 1641 01:15:19,090 --> 01:15:22,490 Mutta olet ottaen, että solmu ja vapauttaa se lähinnä. 1642 01:15:22,490 --> 01:15:23,610 Sitähän purkaa pyytää sinua tekemään. 1643 01:15:23,610 --> 01:15:24,670 Vapaa kaiken, mitä olet malloced. 1644 01:15:24,670 --> 01:15:27,480 Joten olet menossa läpi koko lista jälleen läpi koko hash 1645 01:15:27,480 --> 01:15:27,760 taulukko uudelleen. 1646 01:15:27,760 --> 01:15:29,240 Tällä kertaa eivät tarkista nähdä mitä siellä. 1647 01:15:29,240 --> 01:15:31,080 Vain vapauttaa mitä siellä. 1648 01:15:31,080 --> 01:15:33,260 >> Ja lopuksi koko. 1649 01:15:33,260 --> 01:15:34,350 Koko olisi pantava täytäntöön. 1650 01:15:34,350 --> 01:15:35,590 Jos et toteuttaa koko - 1651 01:15:35,590 --> 01:15:36,250 Sanon sen näin. 1652 01:15:36,250 --> 01:15:39,740 Jos et toteuttaa koko täsmälleen yhtä riviä koodia lukien 1653 01:15:39,740 --> 01:15:43,760 palata selvitys, olet tekee koko väärin. 1654 01:15:43,760 --> 01:15:47,170 Joten varmista koko, täydellinen suunnittelu pistettä, teet sen tasan 1655 01:15:47,170 --> 01:15:49,970 rivi koodia, mukaan lukien return-lausetta. 1656 01:15:49,970 --> 01:15:52,450 >> Ja älä pakata vielä, 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 Halusin sanoa kiitos kaverit tulit osassa. 1660 01:16:01,300 --> 01:16:02,550 On Happy Halloween. 1661 01:16:02,550 --> 01:16:05,300 1662 01:16:05,300 --> 01:16:05,960 Tämä on minun puku. 1663 01:16:05,960 --> 01:16:08,850 Tulen päällään tämä torstaina jos näen sinut virka. 1664 01:16:08,850 --> 01:16:14,640 Ja jos olet utelias lisää pohjalla kuin tähän puku, tuntuu 1665 01:16:14,640 --> 01:16:19,135 vapaasti tarkistaa 2011 osiossa varten tarina miksi olen 1666 01:16:19,135 --> 01:16:20,900 yllään kurpitsa puku. 1667 01:16:20,900 --> 01:16:23,680 Ja se on surullinen tarina. 1668 01:16:23,680 --> 01:16:27,050 Joten varmista, että sinulla on nenäliinoja lähistöllä. 1669 01:16:27,050 --> 01:16:28,680 Mutta että, jos sinulla on kysymykset Jään 1670 01:16:28,680 --> 01:16:29,960 ulkopuolella jakson jälkeen. 1671 01:16:29,960 --> 01:16:31,510 Onnea ongelma asetettu kuusi. 1672 01:16:31,510 --> 01:16:33,540 Ja kuten aina, jos sinulla on kysymyksiä, haluaisin tietää. 1673 01:16:33,540 --> 01:16:35,584