1 00:00:00,000 --> 00:00:11,860 2 00:00:11,860 --> 00:00:13,120 >> Ræðumaður 1: Allt í lagi, þannig að við erum aftur. 3 00:00:13,120 --> 00:00:14,480 Velkomin CS50. 4 00:00:14,480 --> 00:00:16,510 Þetta er endir viku sjö. 5 00:00:16,510 --> 00:00:20,200 Svo muna að síðasta sinn, við byrjuðum horfa á örlítið flóknari 6 00:00:20,200 --> 00:00:21,100 gögn uppbygging. 7 00:00:21,100 --> 00:00:25,110 Þar allt þar til nú, allt sem við höfðum í raun að ráða okkar var þetta fylki. 8 00:00:25,110 --> 00:00:29,340 >> En áður en við henda array sem ekki allt sem áhugavert, sem vissulega það 9 00:00:29,340 --> 00:00:33,570 reyndar er, hvað sumir af the plús af þessari einföldu gögn 10 00:00:33,570 --> 00:00:34,560 uppbygging svona langt? 11 00:00:34,560 --> 00:00:36,110 Hvað það er gott að? 12 00:00:36,110 --> 00:00:39,450 Svo langt eins og við höfum séð? 13 00:00:39,450 --> 00:00:42,540 Hvað ertu með? 14 00:00:42,540 --> 00:00:44,028 Ekkert. 15 00:00:44,028 --> 00:00:45,020 >> STUDENT: [inaudible]. 16 00:00:45,020 --> 00:00:45,395 >> Ræðumaður 1: Hvað er það? 17 00:00:45,395 --> 00:00:46,410 >> STUDENT: [inaudible]. 18 00:00:46,410 --> 00:00:47,000 >> Ræðumaður 1: Föst stærð. 19 00:00:47,000 --> 00:00:51,260 OK, svo hvers vegna er fastur stærð góð þó? 20 00:00:51,260 --> 00:00:53,180 >> STUDENT: [inaudible]. 21 00:00:53,180 --> 00:00:56,240 >> Ræðumaður 1: í lagi, svo það er duglegur í þeim skilningi að þú getur tekið að 22 00:00:56,240 --> 00:01:00,070 fast pláss, sem vonandi er einmitt eins mikið 23 00:01:00,070 --> 00:01:01,180 rúm eins og þú vilt. 24 00:01:01,180 --> 00:01:02,720 Svo það gæti verið alveg a auk. 25 00:01:02,720 --> 00:01:06,530 >> Hvað er annað upp hlið fylki? 26 00:01:06,530 --> 00:01:07,610 Já? 27 00:01:07,610 --> 00:01:08,750 >> STUDENT: [inaudible]. 28 00:01:08,750 --> 00:01:09,550 >> Ræðumaður 1: All the - Fyrirgefðu? 29 00:01:09,550 --> 00:01:11,270 >> STUDENT: [inaudible]. 30 00:01:11,270 --> 00:01:13,620 >> Ræðumaður 1: Öll kassa í minni eða við hliðina á hvort öðru. 31 00:01:13,620 --> 00:01:15,220 Og það er gagnlegt - af hverju? 32 00:01:15,220 --> 00:01:15,970 Það er alveg satt. 33 00:01:15,970 --> 00:01:18,611 En hvernig getum við nýta þann sannleika? 34 00:01:18,611 --> 00:01:21,500 >> STUDENT: [inaudible]. 35 00:01:21,500 --> 00:01:24,490 >> Ræðumaður 1: Einmitt, við getum haldið utan um þar sem allt er bara með því að þekkja 36 00:01:24,490 --> 00:01:28,560 eitt netfang, þ.e. heimilisfang Fyrsta bæti þeim klumpur af minni. 37 00:01:28,560 --> 00:01:30,420 Eða í tilfelli af the band, veffang fyrstu 38 00:01:30,420 --> 00:01:31,460 bleikju í þeim streng. 39 00:01:31,460 --> 00:01:33,330 Og þaðan, getum við fundið enda strengsins. 40 00:01:33,330 --> 00:01:35,710 Við getum fundið annað frumefni, Þriðji þátturinn, og svo framvegis. 41 00:01:35,710 --> 00:01:38,740 >> Og svo ímynda leið til að lýsa því eiginleiki er að fylki gefa okkur 42 00:01:38,740 --> 00:01:40,020 handahófi aðgangur. 43 00:01:40,020 --> 00:01:44,330 Bara með því að nota veldi krappi ritháttur og fjölda, getur þú hoppa til 44 00:01:44,330 --> 00:01:48,070 ákveðin þáttur í array í föstu tíma, stór O 45 00:01:48,070 --> 00:01:49,810 einn, svo að segja. 46 00:01:49,810 --> 00:01:51,080 >> En það er verið nokkur downsides. 47 00:01:51,080 --> 00:01:53,110 Hvað fylki ekki mjög auðveldlega? 48 00:01:53,110 --> 00:01:55,810 49 00:01:55,810 --> 00:01:57,170 Hvað er það ekki góður í? 50 00:01:57,170 --> 00:01:58,810 >> STUDENT: [inaudible]. 51 00:01:58,810 --> 00:01:59,860 >> Ræðumaður 1: Hvað er það? 52 00:01:59,860 --> 00:02:00,530 >> STUDENT: [inaudible]. 53 00:02:00,530 --> 00:02:01,460 >> Ræðumaður 1: Útvíkkun í stærð. 54 00:02:01,460 --> 00:02:04,800 Svo downsides í fylkinu eru einmitt hið gagnstæða á því hvað er 55 00:02:04,800 --> 00:02:05,540 upsides eru. 56 00:02:05,540 --> 00:02:07,610 Svo er einn af downsides að það er fastur stærð. 57 00:02:07,610 --> 00:02:09,400 Svo þú getur í raun ekki vaxa það. 58 00:02:09,400 --> 00:02:13,510 Þú getur endurúthluta stærri klumpur af minni, og þá færa gamla þætti 59 00:02:13,510 --> 00:02:14,460 inn í nýja array. 60 00:02:14,460 --> 00:02:18,060 Og þá frjáls gamla array, fyrir ma með því malloc eða svipað 61 00:02:18,060 --> 00:02:21,180 fall sem kallast realloc, sem reallocates minni. 62 00:02:21,180 --> 00:02:25,490 >> Realloc, sem innskot, reynir að gefa þér minni sem er við hliðina á fjölda 63 00:02:25,490 --> 00:02:26,610 sem þú hefur nú þegar. 64 00:02:26,610 --> 00:02:28,740 En það gæti færa hlutina um að öllu leyti. 65 00:02:28,740 --> 00:02:30,710 En í stuttu máli, það er dýrt, ekki satt? 66 00:02:30,710 --> 00:02:33,440 Vegna þess að ef þú hafa a klumpur af minni þessari stærð, en þú vilt í raun einn 67 00:02:33,440 --> 00:02:36,710 af þessari stærð, og þú vilt að varðveita upprunalega frumefni, þú 68 00:02:36,710 --> 00:02:40,510 u.þ.b. línulegt tími afritun ferli sem þarf að gerast á 69 00:02:40,510 --> 00:02:41,900 gamla array að nýju. 70 00:02:41,900 --> 00:02:44,630 Og raunin er að spyrja starfa kerfi aftur og aftur og 71 00:02:44,630 --> 00:02:48,340 aftur fyrir stór klumpur af minni getur byrjað til kostnaður þér tíma og vel. 72 00:02:48,340 --> 00:02:52,250 Svo það er bæði blessun og bölvun í dulbúið, þá staðreynd að þessi fylki 73 00:02:52,250 --> 00:02:53,860 eru fasta stærð. 74 00:02:53,860 --> 00:02:56,790 En ef við kynna staðinn eitthvað eins og þetta, sem við kallað tengt 75 00:02:56,790 --> 00:03:00,580 lista, fáum við nokkrar upsides og nokkrar downsides hér eins og heilbrigður. 76 00:03:00,580 --> 00:03:05,780 >> Svo tengist listi er einfaldlega gögn uppbygging samanstendur af C structs í þessu 77 00:03:05,780 --> 00:03:09,850 ræða, þar sem strúktúr, muna, er bara gámur fyrir einn eða fleiri tiltekin 78 00:03:09,850 --> 00:03:11,100 tegundir af breytum. 79 00:03:11,100 --> 00:03:16,110 Í þessu tilfelli, hvað þau gögn tegundir virðast vera inni í strúktúr sem 80 00:03:16,110 --> 00:03:17,600 Síðast þegar við kallast hnút? 81 00:03:17,600 --> 00:03:19,380 Hver af þessum ferhyrninga er hnút. 82 00:03:19,380 --> 00:03:22,660 Og hver af smærri rétthyrninga innan þess er gögn tegund. 83 00:03:22,660 --> 00:03:25,300 Hvaða gerðir gerði við segjum þeir voru á mánudag? 84 00:03:25,300 --> 00:03:26,478 Já? 85 00:03:26,478 --> 00:03:27,870 >> STUDENT: [inaudible]. 86 00:03:27,870 --> 00:03:30,721 >> Ræðumaður 1: breytu og músina, eða nánar tiltekið, int, og fyrir N, 87 00:03:30,721 --> 00:03:32,180 og bendi neðst. 88 00:03:32,180 --> 00:03:35,360 Bæði af þeim verður að vera 32 bita, á kosti á tölvu eins og þessa CS50 89 00:03:35,360 --> 00:03:37,980 Tæki, og svo þeir eru dregin jafn að stærð. 90 00:03:37,980 --> 00:03:42,260 >> Svo hvað ertu að nota músina þó fyrir víst? 91 00:03:42,260 --> 00:03:47,690 Hvers vegna að bæta þessum ör nú þegar fylki voru svo ágætur og hreinn og einfaldur? 92 00:03:47,690 --> 00:03:50,460 Hvað er bendillinn að gera fyrir okkur í öllum þessum hnúta? 93 00:03:50,460 --> 00:03:52,160 >> STUDENT: [inaudible]. 94 00:03:52,160 --> 00:03:52,465 >> Ræðumaður 1: Einmitt. 95 00:03:52,465 --> 00:03:54,120 Það er að segja þér hvar sá næsti er. 96 00:03:54,120 --> 00:03:57,350 Svo ég nota svoleiðis líkingar af með þráð til að raða í 97 00:03:57,350 --> 00:03:59,180 þræði þessa hnúta saman. 98 00:03:59,180 --> 00:04:01,760 Og það er einmitt það sem við erum að gera með ábendingum því að hver þessara 99 00:04:01,760 --> 00:04:06,360 klumpur af minni mega eða mega ekki vera samliggjandi, aftur til baka til baka 100 00:04:06,360 --> 00:04:09,500 inni RAM, því í hvert sinn sem þú kalla malloc segja, gefa mér nóg 101 00:04:09,500 --> 00:04:12,510 bæti fyrir nýjan hnút, gæti það vera hér eða það gæti verið hér. 102 00:04:12,510 --> 00:04:13,120 Það gæti verið hér. 103 00:04:13,120 --> 00:04:13,730 Það gæti verið hér. 104 00:04:13,730 --> 00:04:14,640 Þú bara veit ekki. 105 00:04:14,640 --> 00:04:17,880 >> En með ábendingum í heimilisföng þessir hnútar, getur þú sauma þá 106 00:04:17,880 --> 00:04:22,370 saman á þann hátt sem lítur sjónrænt eins og lista jafnvel ef þessir hlutir eru 107 00:04:22,370 --> 00:04:26,770 allt breiða út um einn eða tveir þínar eða fjórum gígabæta þinn af RAM 108 00:04:26,770 --> 00:04:28,760 inni í tölvunni þinni. 109 00:04:28,760 --> 00:04:33,230 >> Svo hæðir, þá að tengda lista er það? 110 00:04:33,230 --> 00:04:34,670 Hvað er verðið sem við erum virðist borga? 111 00:04:34,670 --> 00:04:36,010 >> STUDENT: [inaudible]. 112 00:04:36,010 --> 00:04:36,920 >> Ræðumaður 1: Meira pláss, ekki satt? 113 00:04:36,920 --> 00:04:39,340 Við höfum, í þessu tilfelli, tvöfaldast magn pláss vegna þess að við höfum farið 114 00:04:39,340 --> 00:04:43,500 frá 32 bita fyrir hvern hnút, fyrir hvern int, svo nú 64 bita vegna þess að við verðum að 115 00:04:43,500 --> 00:04:45,050 að halda í kring a músina eins vel. 116 00:04:45,050 --> 00:04:48,860 Þú færð meiri skilvirkni ef strúktúr þín er stærri en þetta einfaldur hlutur. 117 00:04:48,860 --> 00:04:52,020 Ef þú ert í raun að nemandi inni sem er a par af strengjum fyrir 118 00:04:52,020 --> 00:04:55,430 nafn og hús, kannski kennitala, kannski einhverjum öðrum sviðum að öllu leyti. 119 00:04:55,430 --> 00:04:59,000 >> Svo ef þú ert með nógu stór strúktúr, þá kannski er kostnaður við músina 120 00:04:59,000 --> 00:05:00,010 ekki svo stór samningur. 121 00:05:00,010 --> 00:05:03,570 Þetta er hluti af horninu að ræða í því við erum að geyma svo einfalt frumstæðar 122 00:05:03,570 --> 00:05:04,760 inni í tengda listanum. 123 00:05:04,760 --> 00:05:05,790 En punkturinn er sá sami. 124 00:05:05,790 --> 00:05:08,230 Þú ert örugglega að eyða meira minni, en þú ert að fá 125 00:05:08,230 --> 00:05:08,990 sveigjanleika. 126 00:05:08,990 --> 00:05:12,280 Því nú ef ég vil bæta þáttur í upphafi þessa lista, 127 00:05:12,280 --> 00:05:14,340 Ég verð að úthluta nýjan hnút. 128 00:05:14,340 --> 00:05:17,180 Og ég verð að bara uppfæra þá örvar einhvern veginn eftir bara að færa 129 00:05:17,180 --> 00:05:17,980 nokkrar ábendingar um. 130 00:05:17,980 --> 00:05:20,580 >> Ef ég vil setja eitthvað inn í miðjum listanum, ég er ekki að 131 00:05:20,580 --> 00:05:24,410 ýta öllum til hliðar eins og við gerðum í vikna fortíð með sjálfboðaliðum okkar sem 132 00:05:24,410 --> 00:05:25,700 fulltrúa fylki. 133 00:05:25,700 --> 00:05:29,470 Ég get bara tekið nýjan hnút og þá bara benda örvarnar á 134 00:05:29,470 --> 00:05:32,290 mismunandi áttir því það er ekki að vera í raun 135 00:05:32,290 --> 00:05:35,670 minni sannur lína eins og ég hef dregið það hér á skjánum. 136 00:05:35,670 --> 00:05:38,400 >> Og svo loks, ef þú vilt setja eitthvað í lok listanum, það er 137 00:05:38,400 --> 00:05:39,210 jafnvel auðveldara. 138 00:05:39,210 --> 00:05:43,320 Þetta er tegund af handahófi merki, en bendillinn 34, taka giska. 139 00:05:43,320 --> 00:05:46,710 Hvað er gildi músina hennar mest líklega dregið tegund af eins gamalt 140 00:05:46,710 --> 00:05:47,700 skóla loftnet þarna? 141 00:05:47,700 --> 00:05:48,920 >> STUDENT: [inaudible]. 142 00:05:48,920 --> 00:05:49,900 >> Ræðumaður 1: Það er líklega null. 143 00:05:49,900 --> 00:05:52,710 Og reyndar er það einn höfundar framsetning null. 144 00:05:52,710 --> 00:05:56,310 Og það er null vegna þú algerlega þarf að vita hvar lok tengt 145 00:05:56,310 --> 00:06:00,050 Listinn er, svo þú geymir eftirfarandi og fylgja og fylgja þessum örvarnar 146 00:06:00,050 --> 00:06:01,170 að einhverju sorp gildi. 147 00:06:01,170 --> 00:06:06,230 Svo null mun þar með að það er engin fleiri hnúta til hægri númer 34, 148 00:06:06,230 --> 00:06:07,200 í þessu tilfelli. 149 00:06:07,200 --> 00:06:10,270 >> Þannig að við leggjum til að við getum innleiða þetta hnút í kóða. 150 00:06:10,270 --> 00:06:12,130 Og við höfum séð svona af setningafræði áður. 151 00:06:12,130 --> 00:06:15,090 Typedef skilgreinir bara nýja tegund fyrir okkur, gefur okkur samheiti eins 152 00:06:15,090 --> 00:06:17,100 strengur var fyrir char *. 153 00:06:17,100 --> 00:06:21,030 Í þessu tilfelli, það er að fara að gefa okkur shorthand sýndur þannig að strúktúr hnút 154 00:06:21,030 --> 00:06:24,010 getur í staðinn bara að skrifa eins og hnút, sem er mikið hreinni. 155 00:06:24,010 --> 00:06:25,360 Það er mikið minna fjölorður. 156 00:06:25,360 --> 00:06:30,080 >> Inni í hnút er greinilega int kallað n, og þá struct tengipunktur * 157 00:06:30,080 --> 00:06:34,670 sem þýðir nákvæmlega það sem við vildum að örvarnar til að meina, bendi til annars 158 00:06:34,670 --> 00:06:36,940 hnút á nákvæmlega sömu gögn tegund. 159 00:06:36,940 --> 00:06:40,300 Og ég leggja til að við gætum innleiða leita virka eins og þetta, sem á 160 00:06:40,300 --> 00:06:41,890 fyrstu sýn kann að virðast smá flókið. 161 00:06:41,890 --> 00:06:43,330 En við skulum sjá það í samhengi. 162 00:06:43,330 --> 00:06:45,480 >> Leyfðu mér að fara yfir á tækið hér. 163 00:06:45,480 --> 00:06:48,460 Leyfðu mér að opna skrá sem heitir listi núll punktur klst. 164 00:06:48,460 --> 00:06:53,950 Og það inniheldur aðeins skilgreining vér bara sá smá stund síðan að þessum gögnum 165 00:06:53,950 --> 00:06:55,390 tegund kallast hnút. 166 00:06:55,390 --> 00:06:57,350 Þannig að við höfum sett það inn í a punktur h skrá. 167 00:06:57,350 --> 00:07:01,430 >> Og eins og til hliðar, jafnvel þótt það forrit sem þú ert að fara að sjá er 168 00:07:01,430 --> 00:07:05,410 ekki allt sem flókið, það er örugglega venju þegar þú skrifar forrit til 169 00:07:05,410 --> 00:07:10,270 setja hlutina eins konar gögn, til að draga Fastar stundum, inni af þinn 170 00:07:10,270 --> 00:07:13,210 hausaskrár og ekki endilega í C skrá, vissulega þegar þinn 171 00:07:13,210 --> 00:07:17,370 forrit fá stærri og stærri, þannig að þú veist hvar á að líta bæði til 172 00:07:17,370 --> 00:07:20,840 gögn í sumum tilvikum, eða fyrir grunnatriði eins og þetta, 173 00:07:20,840 --> 00:07:22,360 skilgreiningu einhvers konar. 174 00:07:22,360 --> 00:07:25,680 >> Ef ég opna nú upp lista núll punkt c, taka nokkra hluti. 175 00:07:25,680 --> 00:07:29,090 Það inniheldur nokkrar skrár haus, flest sem við höfum séð áður. 176 00:07:29,090 --> 00:07:31,980 Það felur eigin haus skrá þess. 177 00:07:31,980 --> 00:07:35,200 >> Og eins og til hliðar, hvers vegna það er tvöfaldur vitna hér, öfugt við hornið 178 00:07:35,200 --> 00:07:38,340 sviga á línu sem Ég hef bent þarna? 179 00:07:38,340 --> 00:07:39,180 >> STUDENT: [inaudible]. 180 00:07:39,180 --> 00:07:40,460 >> Ræðumaður 1: Já svo það er staðbundin skrá. 181 00:07:40,460 --> 00:07:44,300 Þannig að ef það er staðbundin skrá af þinn eiga hér á línu 15, til dæmis, þú nota 182 00:07:44,300 --> 00:07:46,570 tvöfaldur vitna í staðinn á horn sviga. 183 00:07:46,570 --> 00:07:48,270 >> Nú er svona áhugavert. 184 00:07:48,270 --> 00:07:51,830 Takið eftir að ég hef lýst alþjóðlegt breytu í þessari áætlun á línu 18. 185 00:07:51,830 --> 00:07:55,910 kallaði fyrst, hugmyndin að þessu er fara til vera a bendi til fyrsta 186 00:07:55,910 --> 00:07:59,190 hnút í tengda listanum mínum, og ég hef frumstilla það að núll, vegna þess að ég hef 187 00:07:59,190 --> 00:08:02,310 ekki úthlutað allir raunverulegur hnúður bara ennþá. 188 00:08:02,310 --> 00:08:07,570 >> Svo táknar þetta, pictorially, hvað við sá smá stund síðan í myndinni sem 189 00:08:07,570 --> 00:08:10,090 sem bendillinn á langt vinstri hönd. 190 00:08:10,090 --> 00:08:12,260 Svo núna, það bendi er ekki með ör. 191 00:08:12,260 --> 00:08:14,590 Það er í staðinn bara null. 192 00:08:14,590 --> 00:08:17,880 En það sýnir hvað verður veffang fyrstu raun 193 00:08:17,880 --> 00:08:19,480 hnút á þessum lista. 194 00:08:19,480 --> 00:08:22,120 Þannig að ég hef innleitt það er alþjóðlegt vegna þess, eins og þú munt sjá, allt þetta 195 00:08:22,120 --> 00:08:25,310 program hjartarskinn í lífinu er að innleiða tengda lista fyrir mig. 196 00:08:25,310 --> 00:08:27,050 >> Nú hef ég fengið nokkrar frumútgáfur hér. 197 00:08:27,050 --> 00:08:31,190 Ég ákvað að innleiða aðgerðir eins eyðingu, innsetning, rannsakandi, og 198 00:08:31,190 --> 00:08:31,740 traversal - 199 00:08:31,740 --> 00:08:35,210 síðasta bara að vera ganga yfir lista, prentun út þætti sína. 200 00:08:35,210 --> 00:08:36,750 Og nú er hér aðal venja minn. 201 00:08:36,750 --> 00:08:39,890 Og við munum ekki eyða of miklum tíma í þetta þar sem þetta er tegund af, vonandi 202 00:08:39,890 --> 00:08:41,780 gamall hattur núna. 203 00:08:41,780 --> 00:08:45,370 >> Ég ætla að gera eftirfarandi, meðan notandinn vinnur. 204 00:08:45,370 --> 00:08:47,300 Svo einn, ég ætla að prenta út þessari valmynd. 205 00:08:47,300 --> 00:08:49,420 Og ég hef sniðinn það sem eðlilega og ég gat. 206 00:08:49,420 --> 00:08:52,240 Ef notandinn slær í einu, sem þýðir þeir vilja til að eyða eitthvað. 207 00:08:52,240 --> 00:08:54,560 Ef notandinn slær í tvennt, sem þýðir þeir vilja til að setja eitthvað. 208 00:08:54,560 --> 00:08:55,930 Og svo framvegis. 209 00:08:55,930 --> 00:08:58,270 Ég ætla að þá hvetja þá fyrir stjórn. 210 00:08:58,270 --> 00:08:59,300 Og þá er ég að fara að nota GetInt. 211 00:08:59,300 --> 00:09:02,790 >> Þannig að þetta er mjög einfalt menuing tengi þar sem þú þarft bara að slá 212 00:09:02,790 --> 00:09:05,270 fjölda kortlagning til einn af þeim skipunum. 213 00:09:05,270 --> 00:09:08,730 Og nú hef ég fallegu hreinu skipta yfirlýsingu sem er að fara að kveikja á 214 00:09:08,730 --> 00:09:10,090 hvað notandinn slegið inn 215 00:09:10,090 --> 00:09:12,180 Og ef þeir slegið einn, ég kalla eyða og brjóta. 216 00:09:12,180 --> 00:09:14,380 Ef þeir slegið tvær, ég kalla setja og brjóta. 217 00:09:14,380 --> 00:09:16,490 >> Og nú eftir ég hef sett hver af þessum á sömu línu. 218 00:09:16,490 --> 00:09:18,360 Þetta er bara stylistic ákvörðun. 219 00:09:18,360 --> 00:09:20,210 Venjulega höfum við séð eitthvað svona. 220 00:09:20,210 --> 00:09:23,260 En ég ákvað bara, hreinskilnislega, program minn horfði meira læsileg vegna 221 00:09:23,260 --> 00:09:25,980 það var aðeins fjórum tilfellum til bara lista þetta svona. 222 00:09:25,980 --> 00:09:28,360 Algerlega lögmæta notkun stíl. 223 00:09:28,360 --> 00:09:31,480 Og ég ætla að gera þetta svo lengi sem notandi hefur ekki slegið núll, sem ég 224 00:09:31,480 --> 00:09:33,910 ákveðið vilja meina að þeir vilja til að hætta. 225 00:09:33,910 --> 00:09:36,630 >> Svo nú taka það sem ég er að fara að gera hér. 226 00:09:36,630 --> 00:09:38,650 Ég ætla að losa listann greinilega. 227 00:09:38,650 --> 00:09:40,230 En meira um það í aðeins augnablik. 228 00:09:40,230 --> 00:09:41,640 Skulum fyrst að keyra þetta forrit. 229 00:09:41,640 --> 00:09:45,250 Svo láta mig gera stærri flugstöðinni glugga, punktur rista lista 0. 230 00:09:45,250 --> 00:09:49,510 Ég ætla að fara á undan og setja af slá tvær, a tala eins 50, og nú 231 00:09:49,510 --> 00:09:51,590 þú munt sjá á listanum er nú 50. 232 00:09:51,590 --> 00:09:53,380 Og texti minn skrunað bara upp a hluti. 233 00:09:53,380 --> 00:09:55,940 Svo nú taka listinn inniheldur fjöldi 50. 234 00:09:55,940 --> 00:09:58,220 >> Skulum gera annað innskot með því að taka tvö. 235 00:09:58,220 --> 00:10:01,630 Skulum tegund í fjölda eins og einn. 236 00:10:01,630 --> 00:10:03,940 Listi er nú einn, fylgt eftir með 50. 237 00:10:03,940 --> 00:10:06,020 Þannig að þetta er bara texta framsetning af listanum. 238 00:10:06,020 --> 00:10:10,550 Og við skulum setja eitt auknum fjölda eins fjölda 42, sem er vonandi 239 00:10:10,550 --> 00:10:14,620 að fara að enda upp í the miðja, vegna Þetta forrit einkum konar það 240 00:10:14,620 --> 00:10:16,320 atriði sem það setur inn þá. 241 00:10:16,320 --> 00:10:17,220 Þannig að það að við höfum það. 242 00:10:17,220 --> 00:10:20,730 Super einfalt forrit sem gæti algerlega hafa notað array, en ég 243 00:10:20,730 --> 00:10:23,280 skyldir vera með tengda lista bara svo ég geti virk 244 00:10:23,280 --> 00:10:24,610 vaxa og minnka hana. 245 00:10:24,610 --> 00:10:28,470 >> Þannig að við skulum kíkja á leit, ef ég hlaupa stjórn þriggja, ég vil leita 246 00:10:28,470 --> 00:10:31,040 fyrir, segja, fjölda 43. 247 00:10:31,040 --> 00:10:34,190 Og ekkert var greinilega fann, vegna þess að ég fékk aftur ekkert svar. 248 00:10:34,190 --> 00:10:35,010 Svo skulum gera þetta aftur. 249 00:10:35,010 --> 00:10:35,690 Leita. 250 00:10:35,690 --> 00:10:39,520 Skulum leita að 50, eða öllu heldur að leita fyrir 42, sem hefur a ágætur 251 00:10:39,520 --> 00:10:40,850 lítið lúmskur merkingu. 252 00:10:40,850 --> 00:10:42,610 Og ég fann tilgang lífsins þar. 253 00:10:42,610 --> 00:10:44,990 Númer 42, ef þú veist ekki tilvísun, Google það. 254 00:10:44,990 --> 00:10:45,350 Allt í lagi. 255 00:10:45,350 --> 00:10:47,130 Svo hvað hefur þetta forrit gert fyrir mig? 256 00:10:47,130 --> 00:10:50,660 Það er bara leyft mér að setja svona langt og leita fyrir þætti. 257 00:10:50,660 --> 00:10:53,650 >> Skulum hratt áfram, þá til sem virka við leit á 258 00:10:53,650 --> 00:10:55,360 á mánudaginn sem beitu. 259 00:10:55,360 --> 00:10:59,620 Svo þessari aðgerð, halda ég, leitar liður í listanum með því að fyrst 260 00:10:59,620 --> 00:11:03,830 einn, vekur notanda og þá kalla GetInt að fá raunverulegt int 261 00:11:03,830 --> 00:11:05,060 sem þú vilt leita að. 262 00:11:05,060 --> 00:11:06,460 >> Þá taka þetta. 263 00:11:06,460 --> 00:11:10,690 Ég ætla að búa til tímabundinn breytu í samræmi 188 heitir bendiprik - 264 00:11:10,690 --> 00:11:11,270 PTR - 265 00:11:11,270 --> 00:11:12,440 hefði kallað það neitt. 266 00:11:12,440 --> 00:11:16,140 Og það er bendi hnút vegna þess að ég sagði hnút * þar. 267 00:11:16,140 --> 00:11:19,900 Og ég er að virkja það til að vera jafn fyrst svo að ég hef í raun minn 268 00:11:19,900 --> 00:11:22,860 fingur, svo að segja, á mjög Fyrsta þáttur af listanum. 269 00:11:22,860 --> 00:11:27,460 Þannig að ef hægri hönd mín hér er PTR Ég er benda á það sama sem fyrst 270 00:11:27,460 --> 00:11:28,670 bendir á. 271 00:11:28,670 --> 00:11:31,430 >> Svo nú aftur í númerið, hvað gerist næst - 272 00:11:31,430 --> 00:11:35,070 þetta er algengt mynstur þegar iterating yfir uppbyggingu eins 273 00:11:35,070 --> 00:11:35,970 tengda listanum. 274 00:11:35,970 --> 00:11:40,410 Ég ætla að gera eftirfarandi þegar bendillinn er ekki jafn núll Svo á meðan 275 00:11:40,410 --> 00:11:47,530 fingur minn er ekki að benda á einhvern null gildi, ef bendillinn arrow n jafnt n. 276 00:11:47,530 --> 00:11:52,290 Við munum taka fyrsta sem n er það sem notandinn slegið í á GetInts kalla hér. 277 00:11:52,290 --> 00:11:54,280 >> Og bendi arrow n þýðir hvað? 278 00:11:54,280 --> 00:11:59,020 Jæja ef við förum aftur til myndina hér, ef ég hef fingur sem bendir á 279 00:11:59,020 --> 00:12:02,960 sem fyrst hnút inniheldur níu, á arrow þýðir í raun að fara til að 280 00:12:02,960 --> 00:12:08,860 hnút og grípa gildi á staðsetningu n, í þessu tilfelli, the gögn svæðið merkt n. 281 00:12:08,860 --> 00:12:14,120 >> Sem innskot - og við sáum þetta nokkrum vikum síðan þegar einhver spurði - 282 00:12:14,120 --> 00:12:18,840 þetta setningafræði er ný, en það er ekki gefa okkur völd sem við 283 00:12:18,840 --> 00:12:20,040 ekki þegar hafa. 284 00:12:20,040 --> 00:12:25,325 Hvað var þetta orðasamband jafngildir nota punktur sýndur og stjörnu par 285 00:12:25,325 --> 00:12:29,490 vikum síðan þegar við skrældar aftur þetta lag svolítið snemma? 286 00:12:29,490 --> 00:12:31,780 >> STUDENT: [inaudible]. 287 00:12:31,780 --> 00:12:38,880 >> Ræðumaður 1: Nákvæmlega, það var stjörnu, og þá var það stjörnu punktur n, með 288 00:12:38,880 --> 00:12:41,930 sviga hér, sem lítur, hreinskilnislega, held ég mikið 289 00:12:41,930 --> 00:12:43,320 meira dulinn að lesa. 290 00:12:43,320 --> 00:12:46,270 En stjörnu músina, eins og alltaf, þýðir fara þangað. 291 00:12:46,270 --> 00:12:49,090 Og þegar þú ert þarna, hvaða gögn sviði viltu aðgang? 292 00:12:49,090 --> 00:12:52,730 Jæja þú notað punktur tákn til aðgang A structs gögn sviði, og ég 293 00:12:52,730 --> 00:12:54,140 sérstaklega vil n. 294 00:12:54,140 --> 00:12:56,240 >> Frankly, myndi ég halda því fram þetta er bara erfiðara að lesa. 295 00:12:56,240 --> 00:12:58,080 Það er erfiðara að muna þar gera sviga fara, 296 00:12:58,080 --> 00:12:59,030 stjörnu og allt það. 297 00:12:59,030 --> 00:13:02,150 Svo að heimurinn samþykkt nokkrar nokkur dæmi um setningarleg sykur, svo að segja. 298 00:13:02,150 --> 00:13:04,740 Bara kynþokkafullur leið til að segja, þetta jafngildir, og 299 00:13:04,740 --> 00:13:05,970 kannski meira innsæi. 300 00:13:05,970 --> 00:13:09,600 Ef bendillinn er örugglega músina, arrow auðkennisstillingar þýðir fara þangað og finna 301 00:13:09,600 --> 00:13:11,890 svæðið í þessu tilfelli kallast n. 302 00:13:11,890 --> 00:13:13,660 >> Svo ef ég finn það, taka það sem ég geri. 303 00:13:13,660 --> 00:13:17,430 Ég prenta bara út, ég fann prósent i, tengja í gildi fyrir þessi int. 304 00:13:17,430 --> 00:13:20,730 Ég kalla sofa í eina sekúndu bara að góður af hlutum að gera hlé á skjánum til 305 00:13:20,730 --> 00:13:22,900 gefa notandanum annað að gleypa hvað bara gerðist. 306 00:13:22,900 --> 00:13:24,290 Og svo ég brjóta. 307 00:13:24,290 --> 00:13:26,330 Annars, hvað geri ég? 308 00:13:26,330 --> 00:13:30,960 Ég uppfæri bendi til jafn bendillinn arrow næst. 309 00:13:30,960 --> 00:13:35,840 >> Svo bara að vera skýr, þetta þýðir fara þar með gamla skólann tákn mín. 310 00:13:35,840 --> 00:13:39,580 Þannig að þetta þýðir bara að fara whatever þú ert að benda á, sem í mjög 311 00:13:39,580 --> 00:13:43,660 Fyrsta mál er ég að benda á The strúktúr með níu í það. 312 00:13:43,660 --> 00:13:44,510 Þannig að ég hef farið þangað. 313 00:13:44,510 --> 00:13:47,880 Og þá þýðir punktur merki, fá verðmæti á næst. 314 00:13:47,880 --> 00:13:50,470 >> En verðmæti, jafnvel þó að það er dregið Sem þröngt, er bara tala. 315 00:13:50,470 --> 00:13:51,720 Það er tölugildi heimilisfang. 316 00:13:51,720 --> 00:13:55,670 Þannig að þetta einni línu af kóða, hvort skrifað svona, því meira dulinn 317 00:13:55,670 --> 00:14:00,190 hátt, eða eins og þetta, örlítið meira leiðandi leið, þýðir bara hreyfa hönd mína 318 00:14:00,190 --> 00:14:03,460 frá fyrsta hnút til næstu einn, og svo næsta einn, og þá 319 00:14:03,460 --> 00:14:05,320 næsta einn, og svo framvegis. 320 00:14:05,320 --> 00:14:09,920 >> Þannig að við munum ekki búa á hinn útfærslur af setja inn og eyða 321 00:14:09,920 --> 00:14:14,030 og traversal, fyrstu tveir af sem eru nokkuð við sögu. 322 00:14:14,030 --> 00:14:17,010 Og ég held að það er auðvelt að fá glataður þegar að gera það munnlega. 323 00:14:17,010 --> 00:14:19,890 En hvað getum við gert hér er reyna að ákvarða hvernig 324 00:14:19,890 --> 00:14:21,640 best að gera þetta sjónrænt. 325 00:14:21,640 --> 00:14:24,800 Þar sem ég myndi leggja til að ef við langar að setja þætti inn á þetta 326 00:14:24,800 --> 00:14:26,680 núverandi lista, sem hefur fimm þætti - 327 00:14:26,680 --> 00:14:29,530 9, 17, 22, 26, og 33 - 328 00:14:29,530 --> 00:14:33,300 ef ég væri að fara að framkvæma þetta í kóða, ég þarf að íhuga hvernig á að fara 329 00:14:33,300 --> 00:14:34,160 um að gera þetta. 330 00:14:34,160 --> 00:14:37,720 >> Og ég myndi leggja að taka barn stíga þar, í þessu tilfelli ég meina, hvað eru 331 00:14:37,720 --> 00:14:41,090 mögulegar sviðsmyndir sem við gætir fundur í almennt? 332 00:14:41,090 --> 00:14:44,120 Við framkvæmd innskoti fyrir tengt listi, þetta gerist bara að vera 333 00:14:44,120 --> 00:14:46,090 sérstakur dæmi um stærð fimm. 334 00:14:46,090 --> 00:14:50,420 Jæja, ef þú vilt setja inn númerið, eins og segir töluna einn, og 335 00:14:50,420 --> 00:14:53,380 viðhalda raðað röð, þar augljóslega er númer eitt að 336 00:14:53,380 --> 00:14:55,686 fara í þetta tiltekna dæmi? 337 00:14:55,686 --> 00:14:56,840 Eins og í upphafi. 338 00:14:56,840 --> 00:15:00,030 >> En hvað er áhugavert er að ef þú vilt setja inn einn í þessu 339 00:15:00,030 --> 00:15:04,100 lista, hvað sérstakt bendillinn þarf að uppfæra virðist? 340 00:15:04,100 --> 00:15:04,610 Fyrst. 341 00:15:04,610 --> 00:15:07,830 Þannig að ég myndi halda því fram, þetta er fyrsta málið að við might vilja til íhuga, að 342 00:15:07,830 --> 00:15:11,140 atburðarás þar innsetning á upphaf listanum. 343 00:15:11,140 --> 00:15:15,400 >> Skulum ríf burt kannski eins auðvelt eða jafnvel auðveldara mál, tiltölulega séð. 344 00:15:15,400 --> 00:15:18,110 Segjum Ég vil setja á númer 35 í raðað röð. 345 00:15:18,110 --> 00:15:20,600 Það tilheyrir augljóslega þarna. 346 00:15:20,600 --> 00:15:25,320 Svo hvað músina augljóslega er að fara að verða að vera uppfærðar í þeirri atburðarás? 347 00:15:25,320 --> 00:15:30,060 Bendillinn 34 er að verða ekki null en heimilisfang strúktúr 348 00:15:30,060 --> 00:15:31,800 inniheldur fjölda 35. 349 00:15:31,800 --> 00:15:32,750 Svo er það málið tveir. 350 00:15:32,750 --> 00:15:36,190 Svo þegar, ég konar quantizing hversu mikil vinna ég þarf að gera hér. 351 00:15:36,190 --> 00:15:39,880 >> Og að lokum, hið augljósa miðja málið er reyndar í miðju, ef ég vil 352 00:15:39,880 --> 00:15:45,870 setja eitthvað eins og segir 23. sem fer milli 23 og 26, en 353 00:15:45,870 --> 00:15:48,680 nú hlutirnir fá smá meira þátt því hvað 354 00:15:48,680 --> 00:15:52,800 ábendingum þarf að breyta? 355 00:15:52,800 --> 00:15:56,680 Svo 22 þarf augljóslega að breyta vegna þess að hann getur ekki bent á 26 lengur. 356 00:15:56,680 --> 00:16:00,320 Hann þarf að benda á nýja hnút sem Ég ætla að úthluta því að hringja 357 00:16:00,320 --> 00:16:01,770 malloc eða einhver samsvarandi. 358 00:16:01,770 --> 00:16:05,990 >> En þá þarf ég líka að nýja hnút, 23 í þessu tilfelli, til að hafa músina sína 359 00:16:05,990 --> 00:16:07,870 bendir á hverjum? 360 00:16:07,870 --> 00:16:08,560 26. 361 00:16:08,560 --> 00:16:10,380 Og það er að fara að vera Röð aðgerða hér. 362 00:16:10,380 --> 00:16:13,410 Vegna þess að ef ég geri þetta heimskulega og ég til að byrja dæmis í upphafi 363 00:16:13,410 --> 00:16:16,040 lista, og markmið mitt er að setja 23. 364 00:16:16,040 --> 00:16:18,610 Og ég athuga, er það tilheyri hér, nálægt níu? 365 00:16:18,610 --> 00:16:18,950 Nei 366 00:16:18,950 --> 00:16:20,670 Er það tilheyri hér, við hliðina á 17? 367 00:16:20,670 --> 00:16:20,940 Nei 368 00:16:20,940 --> 00:16:22,530 Er það tilheyrir hér við hliðina á 22? 369 00:16:22,530 --> 00:16:23,300 Já. 370 00:16:23,300 --> 00:16:26,400 >> Nú ef ég er heimskur hér, og ekki hugsa þetta í gegnum, gæti ég 371 00:16:26,400 --> 00:16:28,320 úthluta nýjum hnút mín fyrir 23.. 372 00:16:28,320 --> 00:16:32,080 Ég gæti uppfæra músina frá hnúturinn heitir 22, bendir 373 00:16:32,080 --> 00:16:33,080 það á nýja hnút. 374 00:16:33,080 --> 00:16:36,140 Og þá hvað þarf ég að uppfæra bendillinn nýju Hnútur til að vera? 375 00:16:36,140 --> 00:16:38,120 >> STUDENT: [inaudible]. 376 00:16:38,120 --> 00:16:38,385 >> Ræðumaður 1: Einmitt. 377 00:16:38,385 --> 00:16:39,710 Benda á 26.. 378 00:16:39,710 --> 00:16:45,590 En dammit ef ég vissi ekki þegar uppfæra Bendillinn 22 er að benda á þetta strákur, og 379 00:16:45,590 --> 00:16:48,260 nú hef ég munaðarlaus, en afgangurinn á listanum, svo að segja. 380 00:16:48,260 --> 00:16:52,140 Svo til starfsemi hér er að fara að vera mikilvægur. 381 00:16:52,140 --> 00:16:55,100 >> Til að gera þetta gæti ég stela, segja, sex sjálfboðaliðum. 382 00:16:55,100 --> 00:16:57,650 Og við skulum sjá hvort við getum ekki gert þetta sjónrænt í stað kóða-vitur. 383 00:16:57,650 --> 00:16:59,330 Og við höfum sumir yndislega streitu kúlur fyrir þig í dag. 384 00:16:59,330 --> 00:17:02,510 OK, hvernig væri einn, tveir, í aftur - á endanum. 385 00:17:02,510 --> 00:17:04,530 þrír, fjórir, bæði af þér krakkar á enda. 386 00:17:04,530 --> 00:17:05,579 Og fimm, sex. 387 00:17:05,579 --> 00:17:05,839 Jú. 388 00:17:05,839 --> 00:17:06,450 Fimm og sex. 389 00:17:06,450 --> 00:17:08,390 Allt í lagi og við munum koma að ykkur næst. 390 00:17:08,390 --> 00:17:09,640 Allt í lagi, komdu upp. 391 00:17:09,640 --> 00:17:12,010 392 00:17:12,010 --> 00:17:14,819 >> Allt í lagi, þar sem þú ert upp hér fyrst, viltu vera einn vandræðalega 393 00:17:14,819 --> 00:17:16,119 í Google Glass hér? 394 00:17:16,119 --> 00:17:19,075 Allt í lagi, svo, OK, Gler, taka upp myndskeið. 395 00:17:19,075 --> 00:17:22,720 396 00:17:22,720 --> 00:17:24,589 OK, þú ert góður til fara. 397 00:17:24,589 --> 00:17:27,950 >> Allt í lagi, svo ef þú krakkar geta komið yfir hér, ég hef undirbúið fyrirfram 398 00:17:27,950 --> 00:17:30,110 nokkrar tölur. 399 00:17:30,110 --> 00:17:31,240 Allt í lagi, komdu hérna. 400 00:17:31,240 --> 00:17:33,440 Og hvers vegna ertu ekki að fara svolítið frekar þannig. 401 00:17:33,440 --> 00:17:35,520 Og við skulum sjá, hvað er nafn þitt, með Google Glass? 402 00:17:35,520 --> 00:17:35,910 >> STUDENT: Ben. 403 00:17:35,910 --> 00:17:36,230 >> Ræðumaður 1: Ben? 404 00:17:36,230 --> 00:17:38,380 OK, Ben, verður þú að vera fyrstur, bókstaflega. 405 00:17:38,380 --> 00:17:40,580 Þannig að við erum að fara að senda þér til loka stigi. 406 00:17:40,580 --> 00:17:41,670 Allt í lagi, og nafn þitt? 407 00:17:41,670 --> 00:17:41,990 >> STUDENT: Jason. 408 00:17:41,990 --> 00:17:44,530 >> Ræðumaður 1: Jason, OK þú munt vera númer níu. 409 00:17:44,530 --> 00:17:46,700 Svo ef þú vilt að fylgja Ben þannig. 410 00:17:46,700 --> 00:17:47,010 >> STUDENT: Jill. 411 00:17:47,010 --> 00:17:49,630 >> Ræðumaður 1: Jill, þú ert að fara að vera 17, sem ef ég hefði gert þetta meira 412 00:17:49,630 --> 00:17:51,260 greindur, hefði ég byrjaði á hinum endanum. 413 00:17:51,260 --> 00:17:52,370 Þú ferð þessa leið. 414 00:17:52,370 --> 00:17:53,030 22. 415 00:17:53,030 --> 00:17:53,670 Og þú ert? 416 00:17:53,670 --> 00:17:53,980 >> STUDENT: Mary. 417 00:17:53,980 --> 00:17:56,130 >> Ræðumaður 1: María, munt þú vera 22.. 418 00:17:56,130 --> 00:17:58,420 Og nafn þitt er? 419 00:17:58,420 --> 00:17:58,810 >> STUDENT: Chris. 420 00:17:58,810 --> 00:18:00,100 >> Ræðumaður 1: Chris, munt þú vera 26.. 421 00:18:00,100 --> 00:18:00,740 Og þá loks. 422 00:18:00,740 --> 00:18:01,400 >> STUDENT: Diana. 423 00:18:01,400 --> 00:18:02,670 >> Ræðumaður 1: Diana, munt þú vera 34.. 424 00:18:02,670 --> 00:18:03,920 Svo þú kemur á hérna. 425 00:18:03,920 --> 00:18:06,360 >> Allt í lagi, svo fullkominn raðað panta nú þegar. 426 00:18:06,360 --> 00:18:09,600 Og við skulum fara á undan og gera þetta svo að við getum í raun - 427 00:18:09,600 --> 00:18:11,720 Ben þú ert bara svona að leita út í hvergi þar. 428 00:18:11,720 --> 00:18:15,670 OK, þannig að við skulum fara á undan og lýsa þessu nota vopn, mikið eins og ég var, einmitt, 429 00:18:15,670 --> 00:18:16,250 hvað er að gerast. 430 00:18:16,250 --> 00:18:19,540 Svo fara á undan og gefa ykkur sem fótur eða tveir á milli handa. 431 00:18:19,540 --> 00:18:22,900 Og fara á undan og benda með einni hendi til hver sem þú ættir að vera að benda á 432 00:18:22,900 --> 00:18:23,470 byggt á þessu. 433 00:18:23,470 --> 00:18:25,890 Og ef þú ert null bara benda beint niður á gólf. 434 00:18:25,890 --> 00:18:27,690 OK, svo góður. 435 00:18:27,690 --> 00:18:32,290 >> Svo nú höfum við tengda lista, og láta mig leggja til að ég spila hlutverk 436 00:18:32,290 --> 00:18:35,110 PTR, svo ég mun ekki nenna vopnaður þessu í kring. 437 00:18:35,110 --> 00:18:37,830 Og þá - einhver heimskur samningur - þú getur hringt í þetta allt sem þú vilt - 438 00:18:37,830 --> 00:18:39,800 forvera músina, pred bendiprik - 439 00:18:39,800 --> 00:18:43,930 það er bara gælunafn við gáfum í dæmi um kóða okkar til vinstri handar. 440 00:18:43,930 --> 00:18:47,240 Hins vegar að fara að halda utan um hver er hver í 441 00:18:47,240 --> 00:18:48,400 eftir atburðarás. 442 00:18:48,400 --> 00:18:52,390 >> Svo ráð, fyrst ég vil reyta burt sem fyrst dæmi um innsetning, segja 443 00:18:52,390 --> 00:18:54,330 20, inn á listann. 444 00:18:54,330 --> 00:18:57,160 Þannig að ég ætla að fara að þurfa einhvern til að staðfest fjölda 20 fyrir okkur. 445 00:18:57,160 --> 00:18:58,950 Þannig að ég þarf að malloc einhvern frá áhorfendum. 446 00:18:58,950 --> 00:18:59,380 Komdu upp. 447 00:18:59,380 --> 00:19:00,340 Hvað er nafn þitt? 448 00:19:00,340 --> 00:19:01,300 >> STUDENT: Brian. 449 00:19:01,300 --> 00:19:05,270 >> Ræðumaður 1: Brian, allt í lagi, þannig að þú skal hnúturinn inniheldur 20. 450 00:19:05,270 --> 00:19:06,810 Allt í lagi, komdu hérna. 451 00:19:06,810 --> 00:19:10,025 Og vitanlega, þar er Brian tilheyra? 452 00:19:10,025 --> 00:19:12,190 Svo, í the miðja af - í raun, Bíddu. 453 00:19:12,190 --> 00:19:13,420 Við erum að gera þetta út af röð. 454 00:19:13,420 --> 00:19:17,170 Við erum að gera þetta mikið erfiðara en það þarf að vera í fyrstu. 455 00:19:17,170 --> 00:19:21,210 OK, við erum að fara að losa Brian og realloc Brian eins fimm. 456 00:19:21,210 --> 00:19:23,680 >> OK, svo nú viljum við setja Brian eins fimm. 457 00:19:23,680 --> 00:19:25,960 Svo koma á hérna við hliðina á Ben fyrir réttlátur a augnablik. 458 00:19:25,960 --> 00:19:28,250 Og þú getur væntanlega sagt þar sem þessi saga er að fara. 459 00:19:28,250 --> 00:19:30,500 En við skulum hugsa vel um röð aðgerða. 460 00:19:30,500 --> 00:19:32,880 Og það er einmitt þetta sjón það er að fara að stilla upp 461 00:19:32,880 --> 00:19:34,080 með því dæmi um kóða. 462 00:19:34,080 --> 00:19:40,120 Svo hér er ég hef PTR bendir upphaflega ekki Ben, í sjálfu sér, en hvað 463 00:19:40,120 --> 00:19:43,245 gildi sem hann inniheldur, sem í þessu tilfelli er - hvað er nafnið þitt aftur? 464 00:19:43,245 --> 00:19:43,670 >> STUDENT: Jason. 465 00:19:43,670 --> 00:19:47,350 >> Ræðumaður 1: Jason, svo bæði Ben og ég er benda á Jason á þessari stundu. 466 00:19:47,350 --> 00:19:49,700 Svo nú þarf ég að ákveða, hvar Brian tilheyra? 467 00:19:49,700 --> 00:19:53,500 Svo það eina sem ég hef aðgang að núna er hann n gögn atriði. 468 00:19:53,500 --> 00:19:58,280 Þannig að ég ætla að athuga, er Brian minna en Jason? 469 00:19:58,280 --> 00:19:59,770 Svarið er satt. 470 00:19:59,770 --> 00:20:03,680 >> Svo þarf það nú að gerast, í réttri röð? 471 00:20:03,680 --> 00:20:07,120 Ég þarf að uppfæra hversu margar ábendingar samtals í þessari sögu? 472 00:20:07,120 --> 00:20:10,720 Þar hönd mín er enn að benda á Jason, og hönd þín - ef þú vilt 473 00:20:10,720 --> 00:20:12,930 legg hönd þína eins, konar, ég veit ekki, spurningarmerki. 474 00:20:12,930 --> 00:20:14,070 OK, gott. 475 00:20:14,070 --> 00:20:15,670 >> Allt í lagi, svo þú hefur nokkrar frambjóðendur. 476 00:20:15,670 --> 00:20:20,500 Annaðhvort Ben eða ég eða Brian eða Jason eða allir aðrir, sem 477 00:20:20,500 --> 00:20:21,370 ábendingum þarf að breyta? 478 00:20:21,370 --> 00:20:23,260 Hversu margir samtals? 479 00:20:23,260 --> 00:20:24,080 >> OK, svo tveir. 480 00:20:24,080 --> 00:20:27,090 Bendillinn minn skiptir ekki máli lengur því ég er bara tímabundið. 481 00:20:27,090 --> 00:20:31,370 Svo er það þessir tveir gaurar, væntanlega, bæði Ben og Brian. 482 00:20:31,370 --> 00:20:34,410 Svo láta mig leggja til að við uppfærum Ben, þar sem hann er fyrst. 483 00:20:34,410 --> 00:20:36,350 Fyrsti þátturinn af þessum lista er nú að fara að vera Brian. 484 00:20:36,350 --> 00:20:38,070 Svo Ben benda á Brian. 485 00:20:38,070 --> 00:20:39,320 OK, nú hvað? 486 00:20:39,320 --> 00:20:41,950 487 00:20:41,950 --> 00:20:43,460 >> Sem fær bent á hvern? 488 00:20:43,460 --> 00:20:44,710 >> STUDENT: [inaudible]. 489 00:20:44,710 --> 00:20:46,180 >> Ræðumaður 1: OK svo hefur Brian að benda á Jason. 490 00:20:46,180 --> 00:20:48,360 En ég hef misst utan um þessi músina? 491 00:20:48,360 --> 00:20:49,980 Ég veit hvar Jason er? 492 00:20:49,980 --> 00:20:50,790 >> STUDENT: [inaudible]. 493 00:20:50,790 --> 00:20:52,620 >> Ræðumaður 1: Ég, þar sem ég er tímabundið músina. 494 00:20:52,620 --> 00:20:55,110 Og væntanlega hef ég ekki breytt að benda á nýja hnút. 495 00:20:55,110 --> 00:20:58,300 Svo við getum einfaldlega hafa Brian punkt á hver ég er að benda á. 496 00:20:58,300 --> 00:20:59,000 Og við erum að gera. 497 00:20:59,000 --> 00:21:01,890 Svo málið einn, innsetningu á að upphafið af listanum. 498 00:21:01,890 --> 00:21:02,950 Það voru tveir helstu skref. 499 00:21:02,950 --> 00:21:06,750 Eitt verðum við að uppfæra Ben, og þá við verðum einnig að uppfæra Brján. 500 00:21:06,750 --> 00:21:09,230 Og svo ég þarf ekki að standa traipsing gegnum the hvíla af the 501 00:21:09,230 --> 00:21:12,680 lista, því við fundum þegar hann staðsetningu, því að hann átti að 502 00:21:12,680 --> 00:21:14,080 vinstri á fyrstu frumefni. 503 00:21:14,080 --> 00:21:15,400 >> Allt í lagi, svo laglegur einfaldur. 504 00:21:15,400 --> 00:21:18,110 Í raun finnst eins og við erum næstum gera þetta of flókið. 505 00:21:18,110 --> 00:21:20,240 Svo skulum nú ríf burt enda af listanum og sjá hvar 506 00:21:20,240 --> 00:21:21,380 flókið byrjar. 507 00:21:21,380 --> 00:21:24,560 Þannig að ef nú, Alloc ég frá áhorfendum. 508 00:21:24,560 --> 00:21:25,540 Einhver vilja til að spila 55? 509 00:21:25,540 --> 00:21:26,700 Allt í lagi, sá ég hönd þína fyrst. 510 00:21:26,700 --> 00:21:29,620 Komdu upp. 511 00:21:29,620 --> 00:21:30,030 Já. 512 00:21:30,030 --> 00:21:31,177 Hvað er nafn þitt? 513 00:21:31,177 --> 00:21:32,310 >> STUDENT: [inaudible]. 514 00:21:32,310 --> 00:21:33,240 >> Ræðumaður 1: Habata. 515 00:21:33,240 --> 00:21:33,890 OK, komdu upp. 516 00:21:33,890 --> 00:21:35,730 Þú munt vera númer 55.. 517 00:21:35,730 --> 00:21:37,820 Svo er, að sjálfsögðu, tilheyra í lok listanum. 518 00:21:37,820 --> 00:21:41,850 Svo skulum spila á uppgerð með mér vera PTR fyrir réttlátur a augnablik. 519 00:21:41,850 --> 00:21:44,050 Þannig að ég ætla fyrst að fara að benda á hvað Ben er að benda á. 520 00:21:44,050 --> 00:21:45,900 Við erum bæði bendir nú Brian. 521 00:21:45,900 --> 00:21:48,420 Svo 55 er ekki minna en fimm. 522 00:21:48,420 --> 00:21:52,510 Þannig að ég ætla að uppfæra sjálfur með bendir til næsta músina Brian er, sem 523 00:21:52,510 --> 00:21:54,450 nú er auðvitað Jason. 524 00:21:54,450 --> 00:21:57,310 55 er ekki minna en níu, svo Ég ætla að uppfæra PTR. 525 00:21:57,310 --> 00:21:58,890 Ég ætla að uppfæra PTR. 526 00:21:58,890 --> 00:22:02,290 Ég ætla að uppfæra PTR Ég ætla að uppfæra PTR. 527 00:22:02,290 --> 00:22:05,060 Og ég ætla að - Hmm, hvað er nafnið þitt aftur? 528 00:22:05,060 --> 00:22:05,560 >> STUDENT: Diana. 529 00:22:05,560 --> 00:22:09,190 >> Ræðumaður 1: Diana er að benda, að sjálfsögðu, á núll með vinstri hendi hennar. 530 00:22:09,190 --> 00:22:13,030 Svo hvar Habata raun tilheyra greinilega? 531 00:22:13,030 --> 00:22:15,050 Til vinstri, hér. 532 00:22:15,050 --> 00:22:19,460 Svo hvernig veit ég að setja hana hér Ég held að ég hef ruglaður upp. 533 00:22:19,460 --> 00:22:22,420 Því það er PTR list þetta augnablik í tíma? 534 00:22:22,420 --> 00:22:23,240 Null. 535 00:22:23,240 --> 00:22:25,580 Svo jafnvel þó sjónrænt, getum við augljóslega sjá allar þessar 536 00:22:25,580 --> 00:22:26,610 krakkar hér á sviðinu. 537 00:22:26,610 --> 00:22:29,680 Ég hef ekki haldið utan um fyrri maður á listanum. 538 00:22:29,680 --> 00:22:33,210 Ég hef ekki fingur benda, í þessu tilfelli, hnúturinn númer 34. 539 00:22:33,210 --> 00:22:34,760 >> Þannig að við skulum í raun að byrja þetta aftur. 540 00:22:34,760 --> 00:22:37,560 Svo nú er ég í raun ekki þörf annað staðbundin breytu. 541 00:22:37,560 --> 00:22:40,980 Og þetta er það sem þú munt sjá í Raunveruleg dæmi C kóða, þar sem ég fer, 542 00:22:40,980 --> 00:22:45,860 þegar ég uppfæri hægri hönd mína að benda Jason, þannig að fara Brian bak, ég 543 00:22:45,860 --> 00:22:51,440 betra að byrja að nota vinstri hendina mína uppfæra þar sem ég var, svo að þegar ég fer 544 00:22:51,440 --> 00:22:52,700 í gegnum þennan lista - 545 00:22:52,700 --> 00:22:55,040 meira vandræðalega en ég ætlaði nú hér sjónrænt - 546 00:22:55,040 --> 00:22:56,740 Ég ætla að komast að því endir á listanum. 547 00:22:56,740 --> 00:23:00,020 >> Þessi hönd er enn null, sem er nokkuð gagnslaus, annað en að gefa til kynna 548 00:23:00,020 --> 00:23:02,980 Ég er greinilega í lok listanum, en nú að minnsta kosti ég hef þetta 549 00:23:02,980 --> 00:23:08,270 forvera bendillinn bendir hér, svo nú hvað hendur og hvað vísbendingar þurfa 550 00:23:08,270 --> 00:23:10,150 að uppfæra? 551 00:23:10,150 --> 00:23:13,214 Hvers hönd viltu að endurstilla fyrst? 552 00:23:13,214 --> 00:23:15,190 >> STUDENT: [inaudible]. 553 00:23:15,190 --> 00:23:16,220 >> Ræðumaður 1: Allt í lagi, svo er Diana. 554 00:23:16,220 --> 00:23:21,110 Hvar viltu að benda Vinstri Diana er bendi á? 555 00:23:21,110 --> 00:23:23,620 At 55, væntanlega, þannig að við höfum sett þarna. 556 00:23:23,620 --> 00:23:25,560 Og hvar ætti 55 bendi fara? 557 00:23:25,560 --> 00:23:27,000 Down, fulltrúi null. 558 00:23:27,000 --> 00:23:28,890 Og hendurnar, á þessum tímapunkti, ekki máli vegna þess að þeir voru bara 559 00:23:28,890 --> 00:23:30,070 tímabundnar breytur. 560 00:23:30,070 --> 00:23:31,030 Svo nú erum við búin. 561 00:23:31,030 --> 00:23:34,650 >> Svo til viðbótar flókið þarna - og það er ekki það erfitt að framkvæma, 562 00:23:34,650 --> 00:23:38,660 en við þurfum öðru breytu til að gera viss um að áður en ég flyt rétt minn 563 00:23:38,660 --> 00:23:42,140 vegar uppfæri ég verðmæti vinstri handar vegar pred músina í þessu tilfelli, þannig að 564 00:23:42,140 --> 00:23:45,860 sem ég hef kom heimamönnum músina að halda utan um hvar ég var. 565 00:23:45,860 --> 00:23:49,360 Nú sem innskot, ef þú ert að hugsa þetta gegnum, þetta er eins og það er 566 00:23:49,360 --> 00:23:51,490 lítið pirrandi að þurfa að halda utan um þessa vinstri hendi. 567 00:23:51,490 --> 00:23:54,015 >> Hvað myndi annar lausn að þetta vandamál hafa verið? 568 00:23:54,015 --> 00:23:56,500 Ef þú got að endurhönnun gögn uppbyggingu við erum að tala 569 00:23:56,500 --> 00:23:59,630 gegnum núna? 570 00:23:59,630 --> 00:24:02,690 Ef þetta bara svona líður svolítið pirrandi að hafa, eins og, tvo punkta 571 00:24:02,690 --> 00:24:08,430 fara í gegnum listann, sem annars gæti hafa, í fullkomnum heimi, haldið 572 00:24:08,430 --> 00:24:10,160 upplýsingar sem við þurfum? 573 00:24:10,160 --> 00:24:11,360 Já? 574 00:24:11,360 --> 00:24:12,610 >> STUDENT: [inaudible]. 575 00:24:12,610 --> 00:24:15,160 576 00:24:15,160 --> 00:24:16,150 >> Ræðumaður 1: Einmitt. 577 00:24:16,150 --> 00:24:19,130 Rétt svo að það er í raun áhugavert sýkill um hugmynd. 578 00:24:19,130 --> 00:24:22,470 Og þessi hugmynd um fyrri músina, bendir á fyrri frumefni. 579 00:24:22,470 --> 00:24:25,580 Hvað ef ég felst bara að inni á listanum sig? 580 00:24:25,580 --> 00:24:27,810 Og það er að fara að vera erfitt að sjón þetta án allra pappír 581 00:24:27,810 --> 00:24:28,830 falla á gólfið. 582 00:24:28,830 --> 00:24:31,860 En geri ráð fyrir að þessir krakkar nota bæði höndum þeirra að hafa fyrri 583 00:24:31,860 --> 00:24:35,950 músina, og næsta músina, þar með innleiða það sem við munum kalla tvöfalt 584 00:24:35,950 --> 00:24:36,830 tengda listanum. 585 00:24:36,830 --> 00:24:41,090 Sem myndi leyfa mér að raða á baka, miklu auðveldara án mín, að 586 00:24:41,090 --> 00:24:43,800 forritari, að þurfa að halda fylgjast handvirkt - 587 00:24:43,800 --> 00:24:44,980 sannarlega höndunum - 588 00:24:44,980 --> 00:24:47,280 um þar sem ég hafði verið áður í listanum. 589 00:24:47,280 --> 00:24:48,110 Þannig að við munum ekki gera það. 590 00:24:48,110 --> 00:24:50,950 Við munum halda það einfalt því það er fara að koma í verð, tvöfalt 591 00:24:50,950 --> 00:24:53,450 mikið pláss fyrir ábendingum, ef þú vilt seinni. 592 00:24:53,450 --> 00:24:55,760 En það er örugglega algengt gögn uppbygging þekktur sem 593 00:24:55,760 --> 00:24:57,410 tvöfalt tengd lista. 594 00:24:57,410 --> 00:25:01,310 >> Skulum gera endanlega dæmi hér og setja þessir krakkar út af eymd þeirra. 595 00:25:01,310 --> 00:25:03,270 Svo malloc 20. 596 00:25:03,270 --> 00:25:05,320 Komdu upp úr hillu þar. 597 00:25:05,320 --> 00:25:06,280 Allt í lagi, hvað er nafnið þitt? 598 00:25:06,280 --> 00:25:07,440 >> STUDENT: [inaudible]. 599 00:25:07,440 --> 00:25:07,855 >> Ræðumaður 1: Fyrirgefðu? 600 00:25:07,855 --> 00:25:08,480 >> STUDENT: [inaudible]. 601 00:25:08,480 --> 00:25:09,410 >> Ræðumaður 1: Demeron? 602 00:25:09,410 --> 00:25:10,230 OK komið upp. 603 00:25:10,230 --> 00:25:11,910 Þú skalt vera 20. 604 00:25:11,910 --> 00:25:14,720 Þú augljóslega ert að fara að tilheyra milli 17 og 22. 605 00:25:14,720 --> 00:25:16,150 Svo láta mig læra lexíu mína. 606 00:25:16,150 --> 00:25:18,150 Ég ætla að byrja músina benda á Brian. 607 00:25:18,150 --> 00:25:21,190 Og ég ætla að hafa vinstri hendina á mér aðeins endurnýja til Brian og ég flyt til 608 00:25:21,190 --> 00:25:23,600 Jason, stöðva er 20 minna en níu? 609 00:25:23,600 --> 00:25:24,060 Nei 610 00:25:24,060 --> 00:25:25,430 Er 20 minna en 17? 611 00:25:25,430 --> 00:25:25,880 Nei 612 00:25:25,880 --> 00:25:27,450 Er 20 minna en 22? 613 00:25:27,450 --> 00:25:28,440 Já. 614 00:25:28,440 --> 00:25:34,070 Svo ábendingum hvað eða hendur þarf að breyta þar sem þeir eru að benda núna? 615 00:25:34,070 --> 00:25:37,070 >> Svo við getum gert 17 benda á 20.. 616 00:25:37,070 --> 00:25:37,860 Svo það er allt í lagi. 617 00:25:37,860 --> 00:25:40,080 Hvar viljum við benda bendillinn þinn núna? 618 00:25:40,080 --> 00:25:41,330 Á 22.. 619 00:25:41,330 --> 00:25:45,410 Og við vitum hvar 22 er, aftur takk til tímabundinnar músina mína. 620 00:25:45,410 --> 00:25:46,760 Þannig að við erum í lagi þarna. 621 00:25:46,760 --> 00:25:49,440 Svo vegna þessa tímabundna geymslu Ég hef haldið utan um hvar allir eru. 622 00:25:49,440 --> 00:25:55,055 Og nú þú getur sjónrænt farið inn þar sem þú tilheyrir, og nú þurfum við 1, 2, 3, 623 00:25:55,055 --> 00:25:58,410 4, 5, 6, 7, 8, 9 streitu boltar, og a umferð af lófaklapp fyrir 624 00:25:58,410 --> 00:25:59,770 þessir krakkar, ef við gátum. 625 00:25:59,770 --> 00:26:00,410 Fallega gert. 626 00:26:00,410 --> 00:26:05,320 >> [Applause] 627 00:26:05,320 --> 00:26:06,330 >> Ræðumaður 1: Allt í lagi. 628 00:26:06,330 --> 00:26:09,860 Og þú getur haldið stykki af pappír sem mementos. 629 00:26:09,860 --> 00:26:15,930 >> Allt í lagi, svo, treystu mér það er mikið auðveldara að ganga í gegnum það með 630 00:26:15,930 --> 00:26:17,680 menn en það er með raunverulegum kóða. 631 00:26:17,680 --> 00:26:22,690 En hvað sem þú munt finna í bara smá stund nú er, að sami - ó, þakka þér. 632 00:26:22,690 --> 00:26:23,630 Þakka þér - 633 00:26:23,630 --> 00:26:29,360 er að þú munt komast að því að sömu gögn uppbyggingu, tengda lista, getur raunverulega 634 00:26:29,360 --> 00:26:33,200 að nota sem byggja blokk til jafnvel meira háþróuð gögn uppbygging. 635 00:26:33,200 --> 00:26:37,620 >> Og átta sig of þemað hér er að við höfum alveg kynnt meira 636 00:26:37,620 --> 00:26:40,060 flókið í framkvæmd þessarar reiknirit. 637 00:26:40,060 --> 00:26:43,940 Innsetning, og ef við fórum í gegnum það, Eyðingaskrá og rannsakandi, er lítið 638 00:26:43,940 --> 00:26:46,660 flóknara en það var með fjölda. 639 00:26:46,660 --> 00:26:48,040 En við öðlast kraft. 640 00:26:48,040 --> 00:26:50,180 Við fáum aðlagandi gögn uppbygging. 641 00:26:50,180 --> 00:26:54,010 >> En aftur, borga við verð um að hafa sumir viðbótar flókið, bæði í 642 00:26:54,010 --> 00:26:54,910 útfæra hana. 643 00:26:54,910 --> 00:26:56,750 Og við erum gefið upp handahófi aðgang. 644 00:26:56,750 --> 00:27:00,450 Og til að vera heiðarlegur, það er ekki nokkur ágætur hreinsa renna ég get gefið þér að 645 00:27:00,450 --> 00:27:03,120 segir hér er ástæðan tengda lista er betra en fylki. 646 00:27:03,120 --> 00:27:04,100 Og láta það á því. 647 00:27:04,100 --> 00:27:07,520 Þar sem þema reoccurring nú, jafnvel meira svo á næstu vikum, er 648 00:27:07,520 --> 00:27:10,200 að það er ekki endilega A rétt svar. 649 00:27:10,200 --> 00:27:13,830 >> Þetta er ástæða þess að við höfum sérstakan ás af hönnun fyrir setur vandamál. 650 00:27:13,830 --> 00:27:17,700 Það verður mjög samhengi næmur hvort sem þú vilt nota þessi gögn 651 00:27:17,700 --> 00:27:21,750 byggingu eða að einn, og það mun ráðast á það sem skiptir máli til þín í skilmálar 652 00:27:21,750 --> 00:27:24,620 auðlinda og margbreytileika. 653 00:27:24,620 --> 00:27:28,830 >> En láta mig leggja til að hugsjón gögn uppbyggingu, Gral, væri 654 00:27:28,830 --> 00:27:32,200 eitthvað sem er stöðugt tíma, óháð því hversu mikið efni er 655 00:27:32,200 --> 00:27:36,940 inni það, myndi það ekki vera ótrúlegt ef gögn uppbygging skilað svör í 656 00:27:36,940 --> 00:27:37,920 föstu tíma. 657 00:27:37,920 --> 00:27:38,330 Já. 658 00:27:38,330 --> 00:27:40,110 Þetta orð er í gríðarstór orðabókinni. 659 00:27:40,110 --> 00:27:41,550 Eða nei, þetta orð er ekki. 660 00:27:41,550 --> 00:27:43,270 Eða einhver slík vandamál þar. 661 00:27:43,270 --> 00:27:46,360 Jæja við skulum sjá hvort við getum ekki að minnsta kosti taka skref í átt að. 662 00:27:46,360 --> 00:27:50,190 >> Leyfðu mér að leggja ný gögn uppbygging sem er hægt að nota fyrir mismunandi hluti, 663 00:27:50,190 --> 00:27:52,260 í þessu tilfelli kallast tæti töflu. 664 00:27:52,260 --> 00:27:55,590 Og svo við erum í raun aftur að glancing á fjölda, í þessu tilfelli, og 665 00:27:55,590 --> 00:28:00,550 nokkuð geðþótta, hef ég dregið þetta kjötkássa borð eins fjölda við konar 666 00:28:00,550 --> 00:28:02,810 tvívíð fylki - 667 00:28:02,810 --> 00:28:05,410 eða öllu heldur það er lýst hér sem tveir víddar array - en þetta er bara 668 00:28:05,410 --> 00:28:10,770 fylki af stærð 26, þannig að ef við kalla array borð, borð krappi 669 00:28:10,770 --> 00:28:12,440 núll er rétthyrningur efst. 670 00:28:12,440 --> 00:28:15,090 Tafla krappi 25 er rétthyrningur neðst. 671 00:28:15,090 --> 00:28:18,620 Og þetta er hvernig ég gæti teikna gögn uppbygging sem ég vil geyma 672 00:28:18,620 --> 00:28:19,790 fólks nöfn. 673 00:28:19,790 --> 00:28:24,370 >> Svo til dæmis, og ég mun ekki draga heild hlutur hér á höfuðið, ef ég 674 00:28:24,370 --> 00:28:29,160 hafði þetta fylki, sem ég ætla nú að fara að hringja í kjötkássa borð, og þetta er aftur 675 00:28:29,160 --> 00:28:31,360 Staðsetning núll. 676 00:28:31,360 --> 00:28:34,840 Þetta er hér staðsetning einn, og svo framvegis. 677 00:28:34,840 --> 00:28:37,880 Ég halda því fram að ég vil nota þessi gögn uppbygging, fyrir sakir umræðu, 678 00:28:37,880 --> 00:28:42,600 að geyma nöfn fólks, Alice og Bob og Charlie og öðrum slíkum nöfnum. 679 00:28:42,600 --> 00:28:46,110 Svo hugsa um þetta núna og upphaf á, segja, orðabók 680 00:28:46,110 --> 00:28:47,520 með fullt af orðum. 681 00:28:47,520 --> 00:28:49,435 Þeir koma til að vera nöfn í dæmi okkar hér. 682 00:28:49,435 --> 00:28:52,560 Og þetta er allt of germane, kannski, að innleiða stafa afgreiðslumaður, eins og við 683 00:28:52,560 --> 00:28:54,400 gæti til Heimadæmi sex. 684 00:28:54,400 --> 00:28:59,300 >> Þannig að ef við höfum fjölda heildarstærð 26 þannig að þetta er 25th staðsetning 685 00:28:59,300 --> 00:29:03,390 neðst, og ég halda því fram að Alice er fyrsta orðið í orðabók 686 00:29:03,390 --> 00:29:07,260 nöfn sem ég vil setja inn RAM, í þessum gögnum uppbyggingu, eru þar 687 00:29:07,260 --> 00:29:12,480 eðlishvöt að segja þér að Alice er nafn ætti að fara í þessu fylki? 688 00:29:12,480 --> 00:29:13,510 >> Við höfum 26 valkosti. 689 00:29:13,510 --> 00:29:14,990 Þar sem við viljum setja hana? 690 00:29:14,990 --> 00:29:16,200 Við viljum hana í krappi núll, ekki satt? 691 00:29:16,200 --> 00:29:18,280 A fyrir Alice, við skulum kalla það núll. 692 00:29:18,280 --> 00:29:20,110 Og B mun vera einn, og C verða tveir. 693 00:29:20,110 --> 00:29:22,600 Þannig að við erum að fara að skrifa Alice nafn upp hér. 694 00:29:22,600 --> 00:29:24,890 Ef við setja þá Bob, hans nafn mun fara hér. 695 00:29:24,890 --> 00:29:27,280 Charlie mun fara hér. 696 00:29:27,280 --> 00:29:30,500 Og svo framvegis niður í gegnum þessi gögn uppbygging. 697 00:29:30,500 --> 00:29:32,090 >> This er a dásamlegur gögn uppbygging. 698 00:29:32,090 --> 00:29:32,730 Hvers vegna? 699 00:29:32,730 --> 00:29:37,460 Jæja hvað er í gangi tími setja nafn manna er í þessu 700 00:29:37,460 --> 00:29:39,850 gögn uppbygging núna? 701 00:29:39,850 --> 00:29:43,702 Í ljósi þess að þessi tafla er hrint í framkvæmd, sannarlega, sem fylki. 702 00:29:43,702 --> 00:29:44,940 Jæja það er stöðug skipti. 703 00:29:44,940 --> 00:29:45,800 Það er til einn. 704 00:29:45,800 --> 00:29:46,360 Hvers vegna? 705 00:29:46,360 --> 00:29:48,630 >> Jæja hvernig ákveða þig þar Alice tilheyrir? 706 00:29:48,630 --> 00:29:51,000 Þú lítur á sem bréf af hennar nafni? 707 00:29:51,000 --> 00:29:51,490 The fyrstur. 708 00:29:51,490 --> 00:29:54,350 Og þú getur fengið það, ef það er a band, því bara að horfa á band 709 00:29:54,350 --> 00:29:55,200 krappi núll. 710 00:29:55,200 --> 00:29:57,110 Svo 0 eðli band. 711 00:29:57,110 --> 00:29:57,610 Það er auðvelt. 712 00:29:57,610 --> 00:30:00,350 Við gerðum það í Grafhvelfing verkefnatíma vikum. 713 00:30:00,350 --> 00:30:05,310 Og síðan þegar þú veist það er Alice bréf er höfuðborg A, getum við draga 714 00:30:05,310 --> 00:30:08,160 burt 65 eða Capital sig, sem gefur okkur núll. 715 00:30:08,160 --> 00:30:10,940 Þannig að við vitum nú að Alice tilheyrir á stað núll. 716 00:30:10,940 --> 00:30:14,240 >> Og gefið bendi að þessum gögnum uppbyggingu, af einhverju tagi, hversu lengi er 717 00:30:14,240 --> 00:30:18,840 það tekur mig að finna stað núll í fylki? 718 00:30:18,840 --> 00:30:22,080 Bara eitt skref, rétt það er stöðug tími vegna þess að handahófi aðgang við 719 00:30:22,080 --> 00:30:23,780 Fyrirhugað var eiginleiki fylki. 720 00:30:23,780 --> 00:30:28,570 Svo í stuttu máli, vangaveltur út hvað vísitala af nafn Alice er, sem er í 721 00:30:28,570 --> 00:30:32,610 þetta mál, er A, eða við skulum bara leysa að til þess að núll, þar sem B er ein og C er 722 00:30:32,610 --> 00:30:34,900 tveir, vangaveltur það út er stöðug skipti. 723 00:30:34,900 --> 00:30:38,510 Ég er bara að horfa á fyrsta staf hennar, vangaveltur út hvar núll er 724 00:30:38,510 --> 00:30:40,460 array er einnig fasti skipti. 725 00:30:40,460 --> 00:30:42,140 Svo tæknilega það er eins og tvö skref núna. 726 00:30:42,140 --> 00:30:43,330 En það er samt stöðug. 727 00:30:43,330 --> 00:30:46,880 Svo við köllum að stór O einn, þannig að við höfum sett Lísa í þessari töflu í 728 00:30:46,880 --> 00:30:48,440 föstu tíma. 729 00:30:48,440 --> 00:30:50,960 >> En auðvitað, ég er að barnaleg hérna, ekki satt? 730 00:30:50,960 --> 00:30:53,240 Hvað ef það er Aron í bekknum? 731 00:30:53,240 --> 00:30:53,990 Eða Alicia? 732 00:30:53,990 --> 00:30:57,230 Eða einhver önnur nöfn byrja með A. Hvert erum við að fara að setja 733 00:30:57,230 --> 00:31:00,800 sem maður, ekki satt? 734 00:31:00,800 --> 00:31:03,420 Ég meina, núna það er bara þrjú fólk á töflunni, svo kannski við 735 00:31:03,420 --> 00:31:07,490 ætti að setja Aron á stað núll einn tveir þrír. 736 00:31:07,490 --> 00:31:09,480 >> Einmitt, ég gat sett hér. 737 00:31:09,480 --> 00:31:13,350 En þá, ef við reynum að setja Davíð inn þessi listi, hvar Davíð fara? 738 00:31:13,350 --> 00:31:15,170 Nú byrjar kerfið okkar brjóta niður, ekki satt? 739 00:31:15,170 --> 00:31:19,210 Því nú endar David upp hér ef Aron er í raun hér. 740 00:31:19,210 --> 00:31:23,060 Og svo nú þetta allt hugmynd af having a hreinn gögn uppbygging sem gefur okkur 741 00:31:23,060 --> 00:31:28,010 föstu ísetningar tími er ekki lengur föstu tíma, vegna þess að ég þarf að 742 00:31:28,010 --> 00:31:31,240 athuga, ó, Damnit, einhver er nú þegar á stað Lísa. 743 00:31:31,240 --> 00:31:35,320 >> Leyfðu mér að rannsaka restina af þessum gögnum uppbyggingu, útlit fyrir a blettur til að setja 744 00:31:35,320 --> 00:31:37,130 einhver eins og nafn Arons. 745 00:31:37,130 --> 00:31:39,390 Og svo að of er farin að taka línulega tíma. 746 00:31:39,390 --> 00:31:42,710 Þar að auki, ef þú vilt nú að finna Aron í þessum gögnum uppbyggingu, og þú 747 00:31:42,710 --> 00:31:45,430 stöðva, og nafn Arons er ekki hér. 748 00:31:45,430 --> 00:31:47,960 Best væri að þú bara segja Aron ekki í gögn uppbygging. 749 00:31:47,960 --> 00:31:51,530 En ef þú byrjar að gera pláss fyrir Aron þar sem það ætti að hafa verið D 750 00:31:51,530 --> 00:31:55,600 eða E, þú, versta tilfelli, verður að athuga allt gögn uppbygging, í 751 00:31:55,600 --> 00:31:59,480 þeim tilvikum devolves í eitthvað línuleg á stærð af the borð. 752 00:31:59,480 --> 00:32:00,920 >> Svo allt í lagi, ég laga þetta. 753 00:32:00,920 --> 00:32:04,200 Vandamálið hér er að ég hafði 26 þættir í þessu fylki. 754 00:32:04,200 --> 00:32:05,000 Leyfðu mér að breyta því. 755 00:32:05,000 --> 00:32:06,010 Úpps. 756 00:32:06,010 --> 00:32:10,600 Leyfðu mér að breyta því svo að frekar að vera á stærð 26 talsins, taka eftir the botn 757 00:32:10,600 --> 00:32:12,720 Vísitalan er að fara að breyta til n mínus 1. 758 00:32:12,720 --> 00:32:16,610 Ef 26 er greinilega of lítið fyrir 'mönnum nöfn, vegna þess að það er þúsundir af 759 00:32:16,610 --> 00:32:20,830 nöfn í heiminum, við skulum bara gera í 100 eða 1000 eða 10.000. 760 00:32:20,830 --> 00:32:22,960 Við skulum bara úthluta miklu meira pláss. 761 00:32:22,960 --> 00:32:27,230 >> Jæja það þýðir ekki endilega lækka líkurnar á því að við munum ekki hafa tvo 762 00:32:27,230 --> 00:32:31,510 fólk með nöfn byrja með A og svo, þú varst að fara að reyna að setja 763 00:32:31,510 --> 00:32:33,120 Nöfn á núll staðsetningu enn. 764 00:32:33,120 --> 00:32:36,850 Þeir eru enn að fara að rekast, sem þýðir að við þurfum enn að lausn til að setja 765 00:32:36,850 --> 00:32:41,020 Alice og Aron og Alicia og öðrum nöfn byrja með annars staðar. 766 00:32:41,020 --> 00:32:43,460 En hversu mikið vandamál er þetta? 767 00:32:43,460 --> 00:32:46,870 Hver er líkur á að þú hafa árekstra í gögnum 768 00:32:46,870 --> 00:32:48,240 uppbyggingu svona? 769 00:32:48,240 --> 00:32:52,570 >> Jæja, láttu mig - við munum koma aftur við þeirri spurningu hér. 770 00:32:52,570 --> 00:32:55,530 Og líta á hvernig við gætum leysa það fyrst. 771 00:32:55,530 --> 00:32:58,480 Leyfðu mér að draga upp þessa tillögu hér. 772 00:32:58,480 --> 00:33:02,020 Það sem við lýst bara er reiknirit, leitandi kallast línuleg 773 00:33:02,020 --> 00:33:05,030 leit þar, ef þú reyndir að setja eitthvað hér í þessum gögnum 774 00:33:05,030 --> 00:33:08,920 uppbyggingu, sem er kallað kjötkássa borð, og það er ekkert pláss þarna, þú 775 00:33:08,920 --> 00:33:12,000 sannarlega rannsaka gögn uppbygging stöðva, er þetta í boði? 776 00:33:12,000 --> 00:33:13,430 Er þetta í boði er þetta í boði? 777 00:33:13,430 --> 00:33:13,980 Er þetta í boði? 778 00:33:13,980 --> 00:33:17,550 Og þegar það er loksins, setja þér Nafnið sem þú ætlaðir upphaflega 779 00:33:17,550 --> 00:33:19,370 annars staðar á þeim stað. 780 00:33:19,370 --> 00:33:23,360 En í versta falli, eina staðnum gæti verið mjög botn af the gögn 781 00:33:23,360 --> 00:33:25,090 uppbyggingu, enda í fylkinu. 782 00:33:25,090 --> 00:33:30,130 >> Svo línuleg leit, í versta tilfelli, devolves í línulega reiknirit þar 783 00:33:30,130 --> 00:33:34,500 Aron, ef hann gerist að vera sett síðasta í þessum gögnum uppbyggingu, gæti hann 784 00:33:34,500 --> 00:33:39,540 rekast á við þessa fyrsta stað, en þá enda með óheppni á enda. 785 00:33:39,540 --> 00:33:43,940 Svo er þetta ekki fasti tími Gral fyrir okkur. 786 00:33:43,940 --> 00:33:47,650 Þessi nálgun innsetning þætti í senda gögn uppbygging kallast kjötkássa 787 00:33:47,650 --> 00:33:52,050 borð virðist ekki vera fasti skipti að minnsta kosti ekki í almennu máli. 788 00:33:52,050 --> 00:33:54,000 Það getur flytjast í eitthvað línuleg. 789 00:33:54,000 --> 00:33:56,970 >> Svo hvað ef við leysa árekstra nokkuð öðruvísi? 790 00:33:56,970 --> 00:34:00,740 Svo er hér flóknari nálgun að það er enn 791 00:34:00,740 --> 00:34:02,800 kallað kjötkássa borð. 792 00:34:02,800 --> 00:34:05,890 Og með kjötkássa, Sem innskot, hvað Ég meina er vísitala sem 793 00:34:05,890 --> 00:34:07,070 Ég nefndi áðan. 794 00:34:07,070 --> 00:34:09,810 Til kjötkássa eitthvað getur verið hugsað sem sögn. 795 00:34:09,810 --> 00:34:13,690 >> Svo ef þú kjötkássa Alice er nafn, kjötkássa virka, svo að segja, 796 00:34:13,690 --> 00:34:14,710 eiga að skila inn fjölda. 797 00:34:14,710 --> 00:34:18,199 Í þessu tilfelli er núll ef hún tilheyrir í Staðsetning núll, einn ef hún tilheyrir í 798 00:34:18,199 --> 00:34:20,000 staðsetning einn, og svo framvegis. 799 00:34:20,000 --> 00:34:24,360 Svo kjötkássa virka minn svona langt hefur verið frábær einfalt, bara að horfa á 800 00:34:24,360 --> 00:34:26,159 fyrsti stafurinn í nafni einhvers. 801 00:34:26,159 --> 00:34:29,090 En kjötkássa virka tekur sem inntak sumir stykki af gögnum, sem 802 00:34:29,090 --> 00:34:30,210 band, int, hvað sem er. 803 00:34:30,210 --> 00:34:32,239 Og það spits út yfirleitt númer. 804 00:34:32,239 --> 00:34:35,739 Og þessi tala er þar að gögn þáttur tilheyrir í gögn uppbygging 805 00:34:35,739 --> 00:34:37,800 þekkt hér sem kjötkássa borð. 806 00:34:37,800 --> 00:34:41,400 >> Svo bara innsæi, þetta er aðeins öðruvísi samhengi. 807 00:34:41,400 --> 00:34:44,170 Þetta reyndar er vísað til dæmi þátttöku afmæli, þar 808 00:34:44,170 --> 00:34:46,850 það gæti verið eins margir eins og 31 dagar í mánuðinum. 809 00:34:46,850 --> 00:34:52,239 En hvað gerði þessi manneskja ákveður að gera í árekstur? 810 00:34:52,239 --> 00:34:55,304 Samhengi vera nú, ekki árekstur nöfn, en árekstur á afmæli, 811 00:34:55,304 --> 00:35:00,760 ef tveir menn hafa sömu afmæli á 2. október, til dæmis. 812 00:35:00,760 --> 00:35:02,120 >> STUDENT: [inaudible]. 813 00:35:02,120 --> 00:35:05,010 >> Ræðumaður 1: Já, svo hér höfum við að fá meira af tengd listum. 814 00:35:05,010 --> 00:35:07,830 Svo lítur það svolítið öðruvísi en við brá það áðan. 815 00:35:07,830 --> 00:35:10,790 En við virðast hafa til fjölda á vinstri hönd. 816 00:35:10,790 --> 00:35:13,230 Það er ein vísitala, fyrir ekkert einkum ástæða. 817 00:35:13,230 --> 00:35:14,630 En það er samt fylki. 818 00:35:14,630 --> 00:35:16,160 Það er fylki af ábendingum. 819 00:35:16,160 --> 00:35:20,670 Og hver af þeim þáttum, sem hver um þessir hringir eða skástrik - The skástriki 820 00:35:20,670 --> 00:35:23,970 fulltrúi null - hvert þessara ábendingum er virðist benda til 821 00:35:23,970 --> 00:35:25,730 hvaða gögn uppbygging? 822 00:35:25,730 --> 00:35:26,890 A tengd lista. 823 00:35:26,890 --> 00:35:30,530 >> Svo nú höfum við getu til harður kóða inn í kerfi okkar 824 00:35:30,530 --> 00:35:32,010 the stærð af the borð. 825 00:35:32,010 --> 00:35:35,360 Í þessu tilviki, við vitum að það er aldrei meira en 31 daga í mánuði. 826 00:35:35,360 --> 00:35:38,480 Svo hart erfðaskrá gildi eins 31 er sanngjarn í því samhengi. 827 00:35:38,480 --> 00:35:42,700 Í tengslum við nöfn, harður erfðaskrá 26 er ekki óraunhæft það fólks 828 00:35:42,700 --> 00:35:46,340 nöfn byrja aðeins með, til dæmis, stafrófið þátttöku A í gegnum Z. 829 00:35:46,340 --> 00:35:50,180 >> Við getum troða þeim öllum í þessi gögn uppbygging svo lengi sem, þegar við fáum 830 00:35:50,180 --> 00:35:55,330 árekstur, við ekki setja nöfn hér, við höldum í stað þessara frumna 831 00:35:55,330 --> 00:36:00,270 ekki eins strengir sig, en eins og ábendingum til, til dæmis, Alice. 832 00:36:00,270 --> 00:36:03,660 Og þá Alice getur haft annað bendi á annað nafn byrja með 833 00:36:03,660 --> 00:36:06,150 A. Og Bob fer í raun hérna. 834 00:36:06,150 --> 00:36:10,850 >> Og ef það er annað nafn sem byrjar með B, endar hann upp hérna. 835 00:36:10,850 --> 00:36:15,070 Og svo hvert atriði af þessu Tafla tvö, ef við hannað þetta 836 00:36:15,070 --> 00:36:17,350 lítið meira snjall - 837 00:36:17,350 --> 00:36:18,125 koma á - 838 00:36:18,125 --> 00:36:22,950 ef við hannað þetta aðeins meira snjall, nú verður aðlagandi gögn 839 00:36:22,950 --> 00:36:27,720 uppbygging, þar er enginn harður takmörk hversu margir þættir sem þú getur sett inn 840 00:36:27,720 --> 00:36:30,700 inn í það vegna þess að ef þú þarft árekstur, það er fínt. 841 00:36:30,700 --> 00:36:34,690 Bara fara á undan og auka við það að hvað við sáum svolítið síðan var 842 00:36:34,690 --> 00:36:38,290 þekktur sem tengd lista. 843 00:36:38,290 --> 00:36:39,690 >> Jæja við skulum hlé fyrir réttlátur a augnablik. 844 00:36:39,690 --> 00:36:42,570 Hverjar eru líkurnar á árekstri í fyrsta lagi? 845 00:36:42,570 --> 00:36:45,480 Einmitt, kannski er ég yfir að hugsa, kannski Ég er yfir verkfræði þetta vandamál, 846 00:36:45,480 --> 00:36:46,370 vegna þess að þú veist hvað? 847 00:36:46,370 --> 00:36:49,070 Já, ég get komið upp með handahófskennt dæmi burt the toppur af minn höfuð eins 848 00:36:49,070 --> 00:36:52,870 Allison og Aron, en í raun, gefið samræmdu dreifingu 849 00:36:52,870 --> 00:36:56,990 inntak, sem er sumir af handahófi ísetningar í gögn uppbygging, hvað raunverulega er 850 00:36:56,990 --> 00:36:58,580 líkurnar á árekstri? 851 00:36:58,580 --> 00:37:01,670 Jæja kemur í ljós, það er í raun frábær hár. 852 00:37:01,670 --> 00:37:03,850 Leyfðu mér að alhæfa þetta Vandamálið er eins og þetta. 853 00:37:03,850 --> 00:37:08,890 >> Svo í herbergi á n CS50 nemendur, hvað er líkurnar á því að minnsta kosti 854 00:37:08,890 --> 00:37:11,010 tveir nemendur í herberginu hafa sama afmæli? 855 00:37:11,010 --> 00:37:13,346 Svo er það það. nokkrar Hund - 856 00:37:13,346 --> 00:37:16,790 200, 300 manns hér og nokkrir hundrað manns heima í dag. 857 00:37:16,790 --> 00:37:20,670 Svo ef þú vilja til spyrja okkur hvað er líkurnar á tveggja manna 858 00:37:20,670 --> 00:37:23,930 í þessu herbergi hafa sama afmæli, við getum reikna þetta út. 859 00:37:23,930 --> 00:37:26,250 Og ég kröfu í raun það eru tveir fólk með sama afmælisdaginn. 860 00:37:26,250 --> 00:37:29,560 >> Til dæmis, er einhver hafa afmæli í dag? 861 00:37:29,560 --> 00:37:31,340 Í gær? 862 00:37:31,340 --> 00:37:32,590 Á morgun? 863 00:37:32,590 --> 00:37:35,980 Allt í lagi, svo mér finnst eins og ég ætla að þurfa að gera þetta 363 eða svo meira 864 00:37:35,980 --> 00:37:39,500 sinnum til raunverulega reikna út Ef við höfum árekstur. 865 00:37:39,500 --> 00:37:42,350 Eða við gætum bara gert þetta stærðfræðilega frekar en tediously 866 00:37:42,350 --> 00:37:43,200 gera þetta. 867 00:37:43,200 --> 00:37:44,500 Og leggja eftirfarandi. 868 00:37:44,500 --> 00:37:48,740 >> Svo ég leggja til að við gætum fyrirmynd Líkur á tveggja manna hafa 869 00:37:48,740 --> 00:37:55,320 sama afmæli og líkurnar á 1 mínus líkurnar á enginn sem hefur 870 00:37:55,320 --> 00:37:56,290 sama afmæli. 871 00:37:56,290 --> 00:37:59,960 Svo til að fá þetta, og þetta er bara ímynda sér vegur af að skrifa þetta, fyrir 872 00:37:59,960 --> 00:38:03,090 fyrsta manneskjan í herberginu, hann eða hún getur haft hvaða einn af hugsanlegum 873 00:38:03,090 --> 00:38:07,370 Afmæli hrokafullur 365 daga á ári, með afsökunarbeiðni til einstaklinga með 874 00:38:07,370 --> 00:38:08,760 The 29 febrúar afmæli. 875 00:38:08,760 --> 00:38:13,470 >> Svo er fyrsta manneskjan í þessu herbergi frjáls hafa allir tala um afmæli 876 00:38:13,470 --> 00:38:18,280 út af 365 möguleika þannig að við munum gera það 365 deilt með 365, 877 00:38:18,280 --> 00:38:18,990 sem er eitt. 878 00:38:18,990 --> 00:38:22,700 Næsta manneskja í herberginu, ef markmiðið er að forðast árekstur, getur aðeins 879 00:38:22,700 --> 00:38:26,460 hafa hans eða afmæli hennar á hvernig margar mismunandi mögulegar daga? 880 00:38:26,460 --> 00:38:27,610 364. 881 00:38:27,610 --> 00:38:31,430 Svo er annað hugtak í þessari tjáningu raun að gera að stærðfræði fyrir okkur 882 00:38:31,430 --> 00:38:33,460 með því að draga burt ein hugsanleg dag. 883 00:38:33,460 --> 00:38:36,390 Og svo næsta dag, næsta dag, sem Næsta dag niður til heildarfjölda 884 00:38:36,390 --> 00:38:38,100 af fólki í herberginu. 885 00:38:38,100 --> 00:38:41,290 >> Og ef við teljum þá, hvað þá líkur ekki allir hafa 886 00:38:41,290 --> 00:38:45,265 einstakt afmæli, en aftur 1 mínus að það sem við fáum er tjáning 887 00:38:45,265 --> 00:38:47,810 sem hægt er mjög fancifully líta svona út. 888 00:38:47,810 --> 00:38:50,330 En það er meira áhugavert að líta á sjónrænt. 889 00:38:50,330 --> 00:38:55,120 This er graf þar á x-ásnum er fjölda fólks í herberginu, 890 00:38:55,120 --> 00:38:56,180 fjöldi afmælisdaga. 891 00:38:56,180 --> 00:38:59,840 On y-ás eru líkurnar af árekstri, tvær manneskjur 892 00:38:59,840 --> 00:39:01,230 hafa sama afmæli. 893 00:39:01,230 --> 00:39:05,020 >> Og takeaway frá þessum ferli er að um leið og þú færð að eins 40 894 00:39:05,020 --> 00:39:11,110 nemendur, þú ert upp á 90% líkur combinatorically tveggja 895 00:39:11,110 --> 00:39:13,550 fólk eða meira hafa sama afmæli. 896 00:39:13,550 --> 00:39:18,600 Og þegar þú færð að eins 58 manns og það er næstum 100% af tækifæri á tveggja 897 00:39:18,600 --> 00:39:21,310 fólk í herberginu eru að fara að hafa sama afmæli, jafnvel þó að það er 898 00:39:21,310 --> 00:39:26,650 365 eða 366 mögulegar fötunum, og aðeins 58 manns í herberginu. 899 00:39:26,650 --> 00:39:29,900 Bara tölfræðilega þú ert líkleg til að fá árekstra, sem í stuttu máli 900 00:39:29,900 --> 00:39:31,810 hvetur þessa umræðu. 901 00:39:31,810 --> 00:39:35,890 Að jafnvel þótt við fáum ímynda hér, og byrjar með þessum keðjur, erum við enn 902 00:39:35,890 --> 00:39:36,950 fara að hafa árekstra. 903 00:39:36,950 --> 00:39:42,710 >> Svo sem bidur spurningin, hvað er Kostnaður við að gera innskot og úrfellingum 904 00:39:42,710 --> 00:39:44,850 í gögn uppbygging eins og þetta? 905 00:39:44,850 --> 00:39:46,630 Jæja látið mig leggja - 906 00:39:46,630 --> 00:39:51,570 og láta mig fara aftur á skjáinn á hér - ef við höfum n þætti í 907 00:39:51,570 --> 00:39:56,330 lista, þannig að ef við erum að reyna að setja n atriði, og við höfum 908 00:39:56,330 --> 00:39:58,050 hversu margir samtals fötunum? 909 00:39:58,050 --> 00:40:03,450 Segjum 31 Samtals fötunum um er að ræða afmæli. 910 00:40:03,450 --> 00:40:09,240 Hvað er hámarkslengd eitt þessara keðjur hugsanlega? 911 00:40:09,240 --> 00:40:12,670 >> Ef aftur er það 31 mögulegt afmæli í hverjum mánuði. 912 00:40:12,670 --> 00:40:14,580 Og við erum bara clumping alla - 913 00:40:14,580 --> 00:40:15,580 Reyndar er það heimskulegt dæmi. 914 00:40:15,580 --> 00:40:16,960 Við skulum gera 26 í staðinn. 915 00:40:16,960 --> 00:40:20,890 Þannig að ef raunverulega hafa fólk sem nöfn Byrja með í gegnum Z, þannig að gefa 916 00:40:20,890 --> 00:40:22,780 okkur 26 möguleikar. 917 00:40:22,780 --> 00:40:25,920 Og við erum að nota gögn uppbygging eins sá sem við sáum bara, þar sem við höfum 918 00:40:25,920 --> 00:40:30,210 fylki af ábendingum, sem hver um sig bendir á tengda listanum þar sem 919 00:40:30,210 --> 00:40:32,360 Fyrsti listi er allir með nafni Alice. 920 00:40:32,360 --> 00:40:35,770 Seinni listinn er hvert með nafn sem byrjar á A, byrja 921 00:40:35,770 --> 00:40:36,980 með B, og svo framvegis. 922 00:40:36,980 --> 00:40:41,020 >> Hvað er líklegt lengd hvers þessir listar ef við gerum ráð fallegu hreinu 923 00:40:41,020 --> 00:40:45,410 dreifingu nöfn A í gegnum Z yfir allan gögn uppbygging? 924 00:40:45,410 --> 00:40:50,210 Það er n fólk í gögn uppbygging deilt með 26, ef þeir eru vel 925 00:40:50,210 --> 00:40:52,110 breiða út yfir allt gögn uppbygging. 926 00:40:52,110 --> 00:40:54,970 Svo lengd hvert þessara keðjur er n skipt um 26. 927 00:40:54,970 --> 00:40:57,380 En í stórum O merki, hvað er það? 928 00:40:57,380 --> 00:41:00,100 929 00:41:00,100 --> 00:41:02,440 Hvað er það raunverulega? 930 00:41:02,440 --> 00:41:04,150 Svo það er eiginlega bara n, ekki satt? 931 00:41:04,150 --> 00:41:06,620 Þar sem við höfum sagt í fortíðinni, sem ugh þú skiptir um 26. 932 00:41:06,620 --> 00:41:08,710 Já, í raun er það hraðar. 933 00:41:08,710 --> 00:41:12,720 En í orði, það er ekki í grundvallaratriðum allt sem hraðar. 934 00:41:12,720 --> 00:41:16,040 >> Svo við virðist ekki vera allt sem mikið nær þetta Gral. 935 00:41:16,040 --> 00:41:17,750 Í raun, þetta er bara línuleg tíma. 936 00:41:17,750 --> 00:41:20,790 Heck, á þessum tímapunkti, hví ekki við bara nota einn gríðarstór tengda lista? 937 00:41:20,790 --> 00:41:23,510 Hvers vegna eigum við ekki að nota bara einn stór array til að geyma nöfn 938 00:41:23,510 --> 00:41:25,010 allir í herberginu? 939 00:41:25,010 --> 00:41:28,280 Jæja er enn eitthvað sannfærandi um kjötkássa borð? 940 00:41:28,280 --> 00:41:30,810 Er það samt eitthvað sannfærandi um gögn uppbygging 941 00:41:30,810 --> 00:41:33,940 sem lítur svona út? 942 00:41:33,940 --> 00:41:35,182 Þetta. 943 00:41:35,182 --> 00:41:37,050 >> STUDENT: [inaudible]. 944 00:41:37,050 --> 00:41:39,840 >> Ræðumaður 1: Hægri, og aftur ef það er bara línulegt tíma algrím, og 945 00:41:39,840 --> 00:41:42,780 línuleg tími gögn uppbygging, hví ekki ég bara geyma nafn allra í stór 946 00:41:42,780 --> 00:41:44,210 array, eða í stórum tengda listanum? 947 00:41:44,210 --> 00:41:47,010 Og hætta að gera CS svo mikið erfiðara en það þarf að vera? 948 00:41:47,010 --> 00:41:49,600 949 00:41:49,600 --> 00:41:53,190 Hvað er sannfærandi um þetta, jafnvel þótt ég klóra það út? 950 00:41:53,190 --> 00:41:54,930 >> STUDENT: [inaudible]. 951 00:41:54,930 --> 00:41:57,040 >> Ræðumaður 1: Innsetningar eru ekki? 952 00:41:57,040 --> 00:41:58,140 Dýrt lengur. 953 00:41:58,140 --> 00:42:03,390 Svo ísetningar gæti hugsanlega enn vera stöðug tími, jafnvel þótt gögnin þín 954 00:42:03,390 --> 00:42:07,910 uppbygging lítur svona út, fjölda ábendingum, sem hver um sig er að benda á 955 00:42:07,910 --> 00:42:09,550 hugsanlega tengda lista. 956 00:42:09,550 --> 00:42:15,220 Hvernig gastu náð stöðugum tími innsetningu nöfn? 957 00:42:15,220 --> 00:42:16,280 Halda það í framan, ekki satt? 958 00:42:16,280 --> 00:42:19,290 >> Ef við fórna hönnun markmið frá áðan, þar sem við vildum að halda 959 00:42:19,290 --> 00:42:22,650 nafn allra, til dæmis, raðað, eða allar tölur á sviðinu raðað, 960 00:42:22,650 --> 00:42:25,020 Segjum að við höfum unsorted tengd lista. 961 00:42:25,020 --> 00:42:29,960 Það kostar okkur bara eitt eða tvö skref, eins og í tilviki Ben og Brian 962 00:42:29,960 --> 00:42:32,750 fyrr, að setja stak í upphaf listanum. 963 00:42:32,750 --> 00:42:36,090 Þannig að ef við gerum ekki sama um flokkun allt af nöfnum sem byrja á A eða öllum 964 00:42:36,090 --> 00:42:39,660 nöfn sem byrja á B, getum við enn ná föstu tíma innsetningu. 965 00:42:39,660 --> 00:42:43,900 Nú leita upp Lísa eða Bob eða hvaða nafn almennt er enn það? 966 00:42:43,900 --> 00:42:48,100 Það er stór O af n deilt með 26, í tilvalið tilfelli þar sem allir er undantekningarlaust 967 00:42:48,100 --> 00:42:51,190 dreift, þar sem það er eins og margir A er þar sem það eru er Z, sem er líklega 968 00:42:51,190 --> 00:42:52,220 óraunhæf. 969 00:42:52,220 --> 00:42:53,880 En það er samt línuleg. 970 00:42:53,880 --> 00:42:57,120 >> En hér komum við aftur að þeim punkti af aðfelluþrýstingi merki sé 971 00:42:57,120 --> 00:42:58,600 fræðilega satt. 972 00:42:58,600 --> 00:43:02,960 En í hinum raunverulega heimi, ef ég halda því fram að program minn getur gert eitthvað 26 sinnum 973 00:43:02,960 --> 00:43:06,210 hraðar en þinn, sem program ert þú að fara að vilja að nota? 974 00:43:06,210 --> 00:43:09,660 Kveðja eða mín, sem er 26 sinnum hraðar? 975 00:43:09,660 --> 00:43:14,320 Raunhæft, sá sem er 26 sinnum hraðar, jafnvel þótt fræðilega 976 00:43:14,320 --> 00:43:18,790 reiknirit okkar hlaupa í sama asymptotic hlaupandi tíma. 977 00:43:18,790 --> 00:43:20,940 >> Leyfðu mér að leggja mismunandi lausn að öllu leyti. 978 00:43:20,940 --> 00:43:24,380 Og ef þetta er ekki blása þinn hugur, við erum út af uppbyggingu gagna. 979 00:43:24,380 --> 00:43:27,420 Svo er þetta það Trie - 980 00:43:27,420 --> 00:43:28,520 konar heimskulegt nafn. 981 00:43:28,520 --> 00:43:32,880 Það kemur frá retrievals, og orðið er stafsett Trie, T-r-i-e, vegna 982 00:43:32,880 --> 00:43:34,450 Námskeiðið sókn hljómar eins Trie. 983 00:43:34,450 --> 00:43:36,580 En það er saga á orðinu Trie. 984 00:43:36,580 --> 00:43:40,980 >> Svo er Trie örugglega einhvers konar tré, og það er líka að spila á því orði. 985 00:43:40,980 --> 00:43:46,330 Og jafnvel þó að þú getur ekki alveg séð það með þessari visualization, sem Trie er 986 00:43:46,330 --> 00:43:50,790 tré uppbyggð, eins og fjölskyldu trénu með einn forfaðir efst og margt 987 00:43:50,790 --> 00:43:54,530 barnabörn og frábær barnabörn sem skilur á botn. 988 00:43:54,530 --> 00:43:58,100 En hver hnútur í Trie er fylki. 989 00:43:58,100 --> 00:44:00,680 Og það er í fylki - og við skulum einfalda málin um stund - það er 990 00:44:00,680 --> 00:44:04,600 array, í þessu tilfelli, af stærð 26, þar sem hver hnútur er aftur fylki af stærð 991 00:44:04,600 --> 00:44:09,000 26, þar sem 0 þáttur af því að array táknar A, og síðasti 992 00:44:09,000 --> 00:44:11,810 þáttur í hverju slík array táknar Z. 993 00:44:11,810 --> 00:44:15,520 >> Svo ég leggja til, þá, að þessi gögn uppbyggingu, þekktur sem Trie, er hægt að 994 00:44:15,520 --> 00:44:17,600 einnig notað til að geyma orð. 995 00:44:17,600 --> 00:44:21,740 Við sáum smá stund síðan hvernig við gætum geymt orð, eða í þessu tilfelli nöfn, og við 996 00:44:21,740 --> 00:44:25,440 sáum áðan hvernig við getum geymt tölur, en ef við einbeitum nöfn eða strengi 997 00:44:25,440 --> 00:44:27,460 hér, taka eftir hvað er áhugavert. 998 00:44:27,460 --> 00:44:32,210 Ég halda því fram að nafn Maxwell er inni þessum gögnum uppbyggingu. 999 00:44:32,210 --> 00:44:33,730 Hvar sérð þú Maxwell? 1000 00:44:33,730 --> 00:44:35,140 >> STUDENT: [inaudible]. 1001 00:44:35,140 --> 00:44:36,240 >> Ræðumaður 1: Á vinstri. 1002 00:44:36,240 --> 00:44:39,910 Svo hvað er áhugavert við þessar upplýsingar uppbygging er frekar en geyma 1003 00:44:39,910 --> 00:44:46,200 band M-A-X-W-E-L-L sviga núll, allt contiguously, hvað þú gerir í staðinn 1004 00:44:46,200 --> 00:44:46,890 er eftir. 1005 00:44:46,890 --> 00:44:50,510 Ef þetta er Trie eins gögn uppbygging, hvert hnúður Hvers er aftur fylki, 1006 00:44:50,510 --> 00:44:54,650 og þú vilt geyma Maxwell, fyrst vísitölu og svo hnút rót, svo 1007 00:44:54,650 --> 00:44:57,810 að tala, sem hæstur hnút, á staðsetningu M, hægri, svo 1008 00:44:57,810 --> 00:44:59,160 u.þ.b. í miðjunni. 1009 00:44:59,160 --> 00:45:03,740 Og síðan þaðan, fylgja þér músina til barn hnúður, svo að segja. 1010 00:45:03,740 --> 00:45:06,150 Svo í ættartré skilningi, þú fylgja henni niður. 1011 00:45:06,150 --> 00:45:09,030 Og það leiða þig á annan hnút á vinstri þar, sem er 1012 00:45:09,030 --> 00:45:10,540 bara annað array. 1013 00:45:10,540 --> 00:45:14,710 >> Og þá ef þú vilt geyma Maxwell, þú finnur músina sem sýnir 1014 00:45:14,710 --> 00:45:16,430 A, sem er þetta einn hér. 1015 00:45:16,430 --> 00:45:17,840 Síðan sem þú ferð í næsta hnút. 1016 00:45:17,840 --> 00:45:20,100 Og tilkynning - þetta er hvers vegna myndin er smá blekkja - 1017 00:45:20,100 --> 00:45:21,990 þetta hnút líta frábær pínulítill. 1018 00:45:21,990 --> 00:45:26,050 En til hægri þetta er Y og Z. Það er höfundur bara hefur stytt í 1019 00:45:26,050 --> 00:45:27,630 mynd þannig að þú í raun og veru sjá hlutina. 1020 00:45:27,630 --> 00:45:30,400 Annars þessari mynd væri gríðarlega breiður. 1021 00:45:30,400 --> 00:45:36,180 Svo nú þú vísitölu í staðsetningu X, þá W, þá E, þá L, þá L. Þá hvað er 1022 00:45:36,180 --> 00:45:37,380 þetta forvitni? 1023 00:45:37,380 --> 00:45:41,250 >> Jæja, ef við erum að nota þessa tegund af nýju taka á hvernig á að geyma streng í 1024 00:45:41,250 --> 00:45:44,500 gögn uppbygging, þú þarft samt að meginatriðum sig burt í gögnum 1025 00:45:44,500 --> 00:45:47,250 mannvirki sem orð endar hér. 1026 00:45:47,250 --> 00:45:50,830 Með öðrum orðum, hver af þessum hnúður einhvern veginn þarf að muna að við 1027 00:45:50,830 --> 00:45:53,500 í raun og veru fylgt öllum þessum ábendingum og eru að fara svolítið 1028 00:45:53,500 --> 00:45:58,370 brauð Crumb neðst hér á þetta uppbygging til að gefa til kynna M-A-X-W-E-L-L er 1029 00:45:58,370 --> 00:46:00,230 örugglega í þessum gögnum uppbyggingu. 1030 00:46:00,230 --> 00:46:02,040 >> Svo við gætum gert þetta þannig. 1031 00:46:02,040 --> 00:46:06,810 Hver af hnúður í myndinni við bara sá er einn, fylki af stærð 27. 1032 00:46:06,810 --> 00:46:10,550 Og það er nú 27, þar á bls setja sex, við munum í raun að gefa þér úrfellingarmerki, 1033 00:46:10,550 --> 00:46:13,590 svo við getum hafa nöfn eins og O'Reilly og aðrir með úrfellingarmerki. 1034 00:46:13,590 --> 00:46:14,820 En sama hugmynd. 1035 00:46:14,820 --> 00:46:17,710 Hver þessara þátta í array bendir á strúktúr 1036 00:46:17,710 --> 00:46:19,320 hnút, svo bara hnút. 1037 00:46:19,320 --> 00:46:21,430 Svo er þetta mjög minnir af tengda listanum okkar. 1038 00:46:21,430 --> 00:46:24,550 >> Og þá hef ég Boolean, sem ég mun kalla orð, sem er bara að fara að vera 1039 00:46:24,550 --> 00:46:29,120 satt ef orð endar á þessu hnút í trénu. 1040 00:46:29,120 --> 00:46:32,870 Það táknar í raun litla þríhyrningur sáum fyrir augnabliki. 1041 00:46:32,870 --> 00:46:37,190 Þannig að ef orð endar á þeim hnút í tré, að orð reitur verður satt, 1042 00:46:37,190 --> 00:46:41,990 sem er eðli haka burt, eða við erum að teikna Þessi þríhyrningur, já það 1043 00:46:41,990 --> 00:46:44,080 er orð hér. 1044 00:46:44,080 --> 00:46:45,120 >> Þannig að þetta er Trie. 1045 00:46:45,120 --> 00:46:48,540 Og nú er spurningin, hvað er í gangi tíma? 1046 00:46:48,540 --> 00:46:49,930 Er það stór O í n? 1047 00:46:49,930 --> 00:46:51,410 Er það eitthvað annað? 1048 00:46:51,410 --> 00:46:57,330 Jæja, ef þú hefur n nöfn í þessum gögnum uppbyggingu, Maxwell vera bara einn af 1049 00:46:57,330 --> 00:47:02,330 þá, hvað er í gangi tími innsetning eða finna Maxwell? 1050 00:47:02,330 --> 00:47:06,230 1051 00:47:06,230 --> 00:47:09,050 Hvað er í gangi tími innsetning Maxwell? 1052 00:47:09,050 --> 00:47:11,740 Ef það er n önnur nöfn þegar í töflunni? 1053 00:47:11,740 --> 00:47:12,507 Já? 1054 00:47:12,507 --> 00:47:15,429 >> STUDENT: [inaudible]. 1055 00:47:15,429 --> 00:47:17,550 >> Ræðumaður 1: Já, það er lengd um nafn, ekki satt? 1056 00:47:17,550 --> 00:47:24,420 Sem M-a-x-W-e-L-L þannig að það er eins og þessi reiknirit er stór O sjö. 1057 00:47:24,420 --> 00:47:26,580 Nú, að sjálfsögðu, að nafn breytileg á lengd. 1058 00:47:26,580 --> 00:47:27,380 Kannski er það stutt nafn. 1059 00:47:27,380 --> 00:47:28,600 Kannski er það lengur nafn. 1060 00:47:28,600 --> 00:47:33,390 En hvað er lykillinn hér er að það er stöðug tala. 1061 00:47:33,390 --> 00:47:36,810 Og kannski er það ekki í raun fasti, en guð, ef raunhæft, í 1062 00:47:36,810 --> 00:47:41,570 orðabók, það er líklega einhver takmörk á fjölda bréfa í A 1063 00:47:41,570 --> 00:47:43,820 einstaklingsins nafn í viðkomandi landi. 1064 00:47:43,820 --> 00:47:46,940 >> Og svo við getum gert ráð fyrir að gildið er fasti. 1065 00:47:46,940 --> 00:47:47,750 Ég veit ekki hvað það er. 1066 00:47:47,750 --> 00:47:50,440 Það er sennilega stærri en við teljum það er. 1067 00:47:50,440 --> 00:47:52,720 Því það er alltaf einhver horn málið með brjálaður langa nafni. 1068 00:47:52,720 --> 00:47:56,360 Svo skulum kalla það k, en það er samt fasti væntanlega, vegna þess að hvert 1069 00:47:56,360 --> 00:48:00,190 nafn í heimi, að minnsta kosti í tilteknu landi, er að lengd eða 1070 00:48:00,190 --> 00:48:01,780 styttri, svo það er stöðug. 1071 00:48:01,780 --> 00:48:04,490 En þegar við höfum sagt eitthvað er stór O á föstu gengi, hvað er að 1072 00:48:04,490 --> 00:48:07,760 virkilega jafngildir? 1073 00:48:07,760 --> 00:48:10,420 Það er í raun það sama eins og að segja stöðugt tíma. 1074 00:48:10,420 --> 00:48:11,530 >> Nú erum við konar svindl, ekki satt? 1075 00:48:11,530 --> 00:48:15,340 Við erum eins konar meira sumir kenningar hér að segja að vel, til þess k er 1076 00:48:15,340 --> 00:48:17,450 raunverulega bara til eitt, og það er stöðug skipti. 1077 00:48:17,450 --> 00:48:18,200 En það er í raun. 1078 00:48:18,200 --> 00:48:22,550 Vegna þess að lykillinn innsýn hér er að ef við höfum n nöfn þegar í þessu 1079 00:48:22,550 --> 00:48:26,010 gögn uppbygging, og við setja Maxwell, er the magn af tími sem það tekur okkur að 1080 00:48:26,010 --> 00:48:29,530 setja Maxwell á öllum viðkomandi eftir því hversu margir aðrir 1081 00:48:29,530 --> 00:48:31,100 eru í gögn uppbygging? 1082 00:48:31,100 --> 00:48:31,670 Virðist ekki vera. 1083 00:48:31,670 --> 00:48:36,280 Ef ég hefði milljarð fleiri þætti til þessa Trie, og síðan að setja Maxwell, er 1084 00:48:36,280 --> 00:48:38,650 hann yfirleitt áhrif? 1085 00:48:38,650 --> 00:48:39,050 Nei 1086 00:48:39,050 --> 00:48:42,950 Og það er ólíkt einhverju daga gögnum mannvirki sem við höfum séð hingað til, þar sem 1087 00:48:42,950 --> 00:48:46,820 gangi tíma reiknirit er alveg óháð því hversu mikið 1088 00:48:46,820 --> 00:48:51,430 efni er eða er ekki þegar í þessi gögn uppbygging. 1089 00:48:51,430 --> 00:48:54,650 >> Og svo með þetta tryggir að þú er nú tækifæri fyrir p setja sex, sem munu 1090 00:48:54,650 --> 00:48:58,310 aftur falið að innleiða eigin stafa afgreiðslumaður, lesa í 150.000 1091 00:48:58,310 --> 00:49:01,050 orð, hvernig best sé að geyma það er ekki endilega augljós. 1092 00:49:01,050 --> 00:49:04,030 Og þó að ég hef sóst eftir að finna Gral, ég er ekki 1093 00:49:04,030 --> 00:49:05,330 hermir, að Trie er. 1094 00:49:05,330 --> 00:49:09,810 Í raun, tæti borð getur mjög vel reynst mun skilvirkari. 1095 00:49:09,810 --> 00:49:10,830 En þeir eru bara - 1096 00:49:10,830 --> 00:49:14,620 það er bara einn af the hönnun ákvarðanir þú verður að gera. 1097 00:49:14,620 --> 00:49:18,920 >> En að loka skulum taka 50 eða svo sekúndur til að taka gægjast á hvað liggur 1098 00:49:18,920 --> 00:49:22,190 undan í næstu viku og utan við umskipti frá þessari stjórn lína 1099 00:49:22,190 --> 00:49:26,220 heiminum ef C forrit til hlutur vefnum undirstaða og tungumál eins og PHP og 1100 00:49:26,220 --> 00:49:30,350 JavaScript og internetið sjálft, samskiptareglur eins og HTTP, sem þú hefur 1101 00:49:30,350 --> 00:49:32,870 tekið sem sjálfsögðum hlut í mörg ár nú, og tegund flesta 1102 00:49:32,870 --> 00:49:34,440 dag, ef til vill, eða séð. 1103 00:49:34,440 --> 00:49:37,420 Og við munum byrja að afhýða aftur lag af Hvað er á internetinu. 1104 00:49:37,420 --> 00:49:40,650 Og hvað er númer sem liggur verkfæri í dag. 1105 00:49:40,650 --> 00:49:43,230 Svo 50 sekúndur af þessu beitu hér. 1106 00:49:43,230 --> 00:49:46,570 Ég gef þér Warriors af Netinu. 1107 00:49:46,570 --> 00:49:51,370 >> [Vídeó spilun] 1108 00:49:51,370 --> 00:49:56,764 >> -Hann kom með skilaboð. 1109 00:49:56,764 --> 00:50:00,687 Með siðareglur allt eiga sína. 1110 00:50:00,687 --> 00:50:13,370 1111 00:50:13,370 --> 00:50:19,780 Hann kom til a veröld af grimmilegri eldveggir, uncaring leið, og hættum langt 1112 00:50:19,780 --> 00:50:22,600 verra en dauðinn. 1113 00:50:22,600 --> 00:50:23,590 Hann er fljótur. 1114 00:50:23,590 --> 00:50:25,300 Hann er sterkur. 1115 00:50:25,300 --> 00:50:27,700 Hann er TCPIP. 1116 00:50:27,700 --> 00:50:30,420 Og hann fékk netfangið þitt. 1117 00:50:30,420 --> 00:50:32,920 1118 00:50:32,920 --> 00:50:34,590 Warriors af Netinu. 1119 00:50:34,590 --> 00:50:35,290 >> [END vídeó spilun] 1120 00:50:35,290 --> 00:50:38,070 >> Ræðumaður 1: Það er hvernig internetið skal starfa frá næstu viku. 1121 00:50:38,070 --> 00:50:40,406