1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:11,137 [Tónlist spila] 3 00:00:11,137 --> 00:00:12,220 DAVID J. MALAN: Allt í lagi. 4 00:00:12,220 --> 00:00:13,950 Þetta er CS50. 5 00:00:13,950 --> 00:00:18,560 Þetta er vika fimm áfram, og við hafa góðar fréttir og slæmar fréttir. 6 00:00:18,560 --> 00:00:21,140 Svo er góð fregn að CS50 kynnir föstudaginn. 7 00:00:21,140 --> 00:00:24,430 Ef þú vildi eins og til að tengja okkur, höfuð við venjulega slóðina hér. 8 00:00:24,430 --> 00:00:28,670 Jafnvel betri fréttir, ekki fyrirlestur þetta kemur mánudagur 13.. 9 00:00:28,670 --> 00:00:31,970 Nokkuð minna betri fréttir, quiz núll er næsta miðvikudag. 10 00:00:31,970 --> 00:00:33,840 Fleiri upplýsingar má finna á þessari vefslóð hér. 11 00:00:33,840 --> 00:00:36,340 Og á næstu dögum Við munum vera að fylla í eyðurnar 12 00:00:36,340 --> 00:00:39,234 með tilliti til herbergjunum að við munum hafa pantað. 13 00:00:39,234 --> 00:00:41,400 Betri fréttir er að það munt vera námskeið-breiður endurskoðun 14 00:00:41,400 --> 00:00:43,570 fundur þetta koma Mánudagur í kvöld. 15 00:00:43,570 --> 00:00:46,270 Fylgstu námskeiðið er heimasíðu fyrir staðsetningu og upplýsingar. 16 00:00:46,270 --> 00:00:49,290 Köflum jafnvel þó að það er frí, mun einnig mæta eins og heilbrigður. 17 00:00:49,290 --> 00:00:50,490 18 00:00:50,490 --> 00:00:52,940 Besta fréttir, fyrirlestur næsta föstudag. 19 00:00:52,940 --> 00:00:56,220 Þannig að þetta er hefð sem við hafa, eins og á kennsluáætlun. 20 00:00:56,220 --> 00:00:58,100 Just-- það er að fara að vera ótrúlegt. 21 00:00:58,100 --> 00:01:02,510 Þú munt sjá hlutina eins fasti tími gögn uppbygging 22 00:01:02,510 --> 00:01:04,730 og kjötkássa borð og tré og reynir. 23 00:01:04,730 --> 00:01:07,150 Og við munum tala um afmæli vandamál. 24 00:01:07,150 --> 00:01:09,440 A heild búnt af efni bíður næsta föstudag. 25 00:01:09,440 --> 00:01:11,212 26 00:01:11,212 --> 00:01:12,200 OK. 27 00:01:12,200 --> 00:01:13,190 Einhvern veginn. 28 00:01:13,190 --> 00:01:17,080 >> Svo muna að við höfum verið áherslu á þessa mynd af því sem er 29 00:01:17,080 --> 00:01:18,980 inni minni tölvunnar okkar. 30 00:01:18,980 --> 00:01:22,875 Svo minni eða RAM er þar forrit til á meðan þú ert að keyra þá. 31 00:01:22,875 --> 00:01:25,215 Ef þú tvöfaldur-smellur sem táknið til að keyra eitthvað forrit 32 00:01:25,215 --> 00:01:27,520 eða tvöfaldur-smellur sem táknið til að opna einhverja skrá, 33 00:01:27,520 --> 00:01:30,430 það er hlaðinn úr harður aka eða storkuhamur ökuferð 34 00:01:30,430 --> 00:01:34,190 í RAM, Random Access Memory, þar það býr til vald fer í burtu, 35 00:01:34,190 --> 00:01:36,700 laptop loki lokast, eða þú hætta forritið. 36 00:01:36,700 --> 00:01:38,960 >> Nú þegar minni, að sem þú hefur sennilega 37 00:01:38,960 --> 00:01:41,950 1 gígabæti þessa dagana, 2 gígabæta, eða jafnvel miklu meira, 38 00:01:41,950 --> 00:01:44,420 er almennt sett fram fyrir tiltekið program 39 00:01:44,420 --> 00:01:47,170 í þessari tegund af rétthyrningslaga hugmyndafræðilegs líkan 40 00:01:47,170 --> 00:01:50,860 þar sem við höfum stafla neðst og fullt af öðrum hlutum efst. 41 00:01:50,860 --> 00:01:53,140 Málið á mjög toppur við höfum séð á þessari mynd 42 00:01:53,140 --> 00:01:55,670 áður en aldrei talað um er svokölluð texta hluti. 43 00:01:55,670 --> 00:01:58,419 Texti hluti er bara fínt leið að segja þeim núll og sjálfur að 44 00:01:58,419 --> 00:02:01,150 semja raunverulegan unnin program. 45 00:02:01,150 --> 00:02:03,910 >> Svo þegar þú tvöfaldur-smellur Microsoft Word á Mac eða PC, 46 00:02:03,910 --> 00:02:08,030 eða þegar þú keyrir punktur rista Mario á a Linux tölva á flugstöðinni glugga, 47 00:02:08,030 --> 00:02:12,460 núllin og þau sem mynda Orð eða Mario eru geymd tímabundið 48 00:02:12,460 --> 00:02:16,610 í RAM tölvunnar í svokölluðum texta hluti fyrir tiltekna program. 49 00:02:16,610 --> 00:02:19,080 Hér að neðan sem fer frumstilla og forsniðinn gögn. 50 00:02:19,080 --> 00:02:22,655 Þetta er efni eins og alþjóðlegum breytur, að við höfum ekki notað mörg, 51 00:02:22,655 --> 00:02:24,910 en stundum höfum við hafði alheims breytur 52 00:02:24,910 --> 00:02:28,819 eða statically skilgreind strengi sem er harður á dulmáli orð eins og "halló" 53 00:02:28,819 --> 00:02:31,860 sem eru ekki tekin frá notanda sem eru harður-dulmáli í forritinu. 54 00:02:31,860 --> 00:02:34,230 >> Nú, niður á botn og við hafa svokallaða stafla. 55 00:02:34,230 --> 00:02:37,665 Og stafla, svona langt, við höfum verið nota fyrir hvers konar tilgangi? 56 00:02:37,665 --> 00:02:39,706 57 00:02:39,706 --> 00:02:40,997 Hvað er að stafla verið notað? 58 00:02:40,997 --> 00:02:41,160 Já? 59 00:02:41,160 --> 00:02:42,070 >> Áhorfendur: Aðgerðir. 60 00:02:42,070 --> 00:02:43,320 >> DAVID J. MALAN: Fyrir aðgerðir? 61 00:02:43,320 --> 00:02:44,980 Í hvaða skilningi á störfum? 62 00:02:44,980 --> 00:02:48,660 >> Áhorfendur: Þegar hringt er virka, rök eru afrituð á stafla. 63 00:02:48,660 --> 00:02:49,660 >> DAVID J. MALAN: Einmitt. 64 00:02:49,660 --> 00:02:52,650 Þegar hringt er aðgerð, þess rök eru afrituð á stafla. 65 00:02:52,650 --> 00:02:56,330 Svo allir X eða Y er eða A eða B er að þú ert að fara frá aðgerð 66 00:02:56,330 --> 00:02:58,680 eru tímabundið sett á svokallaða stafla, 67 00:02:58,680 --> 00:03:02,000 bara eins og einn af the Annenberg Borðstofan stæði, og einnig hluti 68 00:03:02,000 --> 00:03:03,190 eins staðbundnar breytur. 69 00:03:03,190 --> 00:03:06,290 Ef foo virka eða skipti þinn virka hafa staðværar breytur, 70 00:03:06,290 --> 00:03:08,602 eins afleysingamanneskja, þessir tveir endað á mánudaginn. 71 00:03:08,602 --> 00:03:11,560 Nú munum við ekki tala of mikið um þá, en þessir umhverfi breytur 72 00:03:11,560 --> 00:03:15,690 neðst sáum á meðan síðan þegar Ég var futzing á lyklaborðinu einn dag 73 00:03:15,690 --> 00:03:20,050 og ég byrjaði að fá aðgang hlutina eins argv 100 eða argv 1000, 74 00:03:20,050 --> 00:03:22,320 bara elements-- ég gleymi að Numbers en 75 00:03:22,320 --> 00:03:24,330 áttu ekki að vera skoðuð af mér. 76 00:03:24,330 --> 00:03:26,581 Við byrjuðum að sjá sum angurvær tákn á skjánum. 77 00:03:26,581 --> 00:03:28,330 Þeir voru svo-kölluð Breytur 78 00:03:28,330 --> 00:03:32,390 eins alþjóðlegum stillingar fyrir minn forrit eða fyrir tölvuna mína, ekki 79 00:03:32,390 --> 00:03:37,090 óskyld nýleg galla sem við ræddum, 80 00:03:37,090 --> 00:03:39,670 ShellShock, sem hefur verið plága alveg nokkrar tölvur. 81 00:03:39,670 --> 00:03:42,960 >> Nú loksins, í fókus í dag Við munum að lokum vera á hrúga. 82 00:03:42,960 --> 00:03:44,864 Þetta er annar klumpur af minni. 83 00:03:44,864 --> 00:03:47,030 Og í grundvallaratriðum allt þetta minni er sama efni. 84 00:03:47,030 --> 00:03:48,040 Það er sama vélbúnaði. 85 00:03:48,040 --> 00:03:49,956 Það nægir að taka svoleiðis meðhöndla mismunandi klasa 86 00:03:49,956 --> 00:03:51,460 bæti fyrir mismunandi tilgangi. 87 00:03:51,460 --> 00:03:56,540 The hrúga er einnig að fara að vera þar sem breytur og minni að þú biður 88 00:03:56,540 --> 00:03:58,810 frá stýrikerfi er tímabundið geymdur. 89 00:03:58,810 --> 00:04:01,890 >> En það er góður af vandamál hér, eins og myndin gefur til kynna. 90 00:04:01,890 --> 00:04:05,261 Við svoleiðis hafa tvo skipum um að rekast. 91 00:04:05,261 --> 00:04:08,010 Því eins og þú nota meira og meira á mánudaginn, og eins og við sjáum í dag 92 00:04:08,010 --> 00:04:11,800 áfram, eins og þú nota meira og meira af því hrúga, vafalaust slæmir hlutir gætu gerst. 93 00:04:11,800 --> 00:04:15,054 Og reyndar, við getum valdið að viljandi eða óviljandi. 94 00:04:15,054 --> 00:04:16,970 Þannig að cliffhanger síðasta tíma var þetta forrit, 95 00:04:16,970 --> 00:04:20,570 sem ekki þjóna allir hagnýtur tilgangur annar en að sýna 96 00:04:20,570 --> 00:04:24,750 hvernig þér eins slæmur strákur getur raunverulega taka Kosturinn við galla í forriti einhvers 97 00:04:24,750 --> 00:04:28,460 og taka yfir forrit eða jafnvel allt kerfið tölva eða miðlara. 98 00:04:28,460 --> 00:04:31,660 Svo bara til að sýn í stuttu máli, þér taka að helsta neðst 99 00:04:31,660 --> 00:04:34,510 tekur í skipanalínu rök, eins og á argv. 100 00:04:34,510 --> 00:04:38,480 Og það hefur hringja í fallinu f, fyrst og fremst á nafnlaus aðgerð sem heitir 101 00:04:38,480 --> 00:04:40,250 m, og það er farið í argv [1]. 102 00:04:40,250 --> 00:04:43,960 >> Svo hvað sem orð sem notandinn slær í á að hvetja eftir nafni þessari áætlun er, 103 00:04:43,960 --> 00:04:49,310 og þá er þetta handahófskennt virka upp efst, f, tekur í streng, AKA char *, 104 00:04:49,310 --> 00:04:51,720 eins og við höfum byrjað að ræða, og það kallar bara "bar." 105 00:04:51,720 --> 00:04:53,310 En við gætum kalla það hvað sem er. 106 00:04:53,310 --> 00:04:57,470 Og þá segir hún, inni f, fjölda af stöfum 107 00:04:57,470 --> 00:04:59,930 kallað c-- 12 slíkum stöfum. 108 00:04:59,930 --> 00:05:03,580 >> Nú, af sögunni sem ég var að segja áðan, þar sem í minni 109 00:05:03,580 --> 00:05:06,720 er c, eða eru slíkar 12 stafir að fara að enda? 110 00:05:06,720 --> 00:05:07,570 Bara til að vera skýr. 111 00:05:07,570 --> 00:05:08,070 Já? 112 00:05:08,070 --> 00:05:08,590 >> Áhorfendur: Á mánudaginn. 113 00:05:08,590 --> 00:05:09,420 >> DAVID J. MALAN: Á mánudaginn. 114 00:05:09,420 --> 00:05:10,720 Svo er c heimamaður breytu. 115 00:05:10,720 --> 00:05:14,079 Við erum að biðja fyrir 12 stafir eða 12 bæti. 116 00:05:14,079 --> 00:05:16,120 Þeir eru að fara að enda á svokölluðu stafla. 117 00:05:16,120 --> 00:05:18,530 Nú er loksins þetta önnur aðgerð það er reyndar mjög gagnlegur, 118 00:05:18,530 --> 00:05:20,571 en við höfum í raun ekki notað það sjálf, strncopy. 119 00:05:20,571 --> 00:05:21,550 120 00:05:21,550 --> 00:05:25,200 Það þýðir band eintak, en aðeins n bréf, n stafi. 121 00:05:25,200 --> 00:05:31,990 Svo n stafir verða afrita af bar í c. 122 00:05:31,990 --> 00:05:32,980 Og hversu margir? 123 00:05:32,980 --> 00:05:34,110 Lengd bar. 124 00:05:34,110 --> 00:05:36,330 Svo í öðrum orðum að ein lína, strncopy, 125 00:05:36,330 --> 00:05:39,500 er að fara að afrita raun bar inn í c. 126 00:05:39,500 --> 00:05:42,340 >> Nú, bara til að svona sjá Boðskapur þessarar sögu, 127 00:05:42,340 --> 00:05:44,750 hvað er hugsanlega erfitt hér? 128 00:05:44,750 --> 00:05:49,710 Jafnvel þó að við erum að athuga lengd af bar og liggur það í strncopy, 129 00:05:49,710 --> 00:05:53,145 hvað er magi þinn segja þér er enn brotinn um þetta forrit? 130 00:05:53,145 --> 00:05:54,410 131 00:05:54,410 --> 00:05:55,220 Já? 132 00:05:55,220 --> 00:05:57,491 >> Áhorfendur: Er ekki fela í Herbergi til núll staf. 133 00:05:57,491 --> 00:05:59,990 DAVID J. MALAN: Felur ekki í sér Herbergi til núll staf. 134 00:05:59,990 --> 00:06:02,073 Hugsanlega, ólíkt í framhjá æfa við gerum ekki einu sinni 135 00:06:02,073 --> 00:06:04,810 hafa svo mikið sem plús 1 til móts að núll staf. 136 00:06:04,810 --> 00:06:06,649 En það er jafnvel enn verra en það. 137 00:06:06,649 --> 00:06:07,940 Hvað annað eigum við ekki að gera? 138 00:06:07,940 --> 00:06:08,432 Já? 139 00:06:08,432 --> 00:06:09,307 >> Áhorfendur: [inaudible] 140 00:06:09,307 --> 00:06:15,440 141 00:06:15,440 --> 00:06:16,440 DAVID J. MALAN: Perfect. 142 00:06:16,440 --> 00:06:18,490 Við höfum harður á dulmáli 12 ansi geðþótta. 143 00:06:18,490 --> 00:06:19,497 144 00:06:19,497 --> 00:06:21,330 Það er ekki svo mikið vandamál, en staðreyndin 145 00:06:21,330 --> 00:06:25,630 að við erum ekki einu sinni að athuga hvort lengd bar er minna en 12, 146 00:06:25,630 --> 00:06:28,530 í þeim tilvikum er að fara að vera óhætt að setja það inn í minni 147 00:06:28,530 --> 00:06:30,260 heitir c sem við höfum úthlutað. 148 00:06:30,260 --> 00:06:32,960 Reyndar, ef bar er eins 20 stafir að lengd, 149 00:06:32,960 --> 00:06:39,010 þessi aðgerð virðist vera afritun 20 stafir úr bar í c, þar með 150 00:06:39,010 --> 00:06:41,310 taka að minnsta kosti 8 bæti að það ætti ekki að vera. 151 00:06:41,310 --> 00:06:42,690 Það er vísbendingu hér. 152 00:06:42,690 --> 00:06:44,347 >> Svo í stuttu máli, brotinn program. 153 00:06:44,347 --> 00:06:45,180 Ekki svo stór samningur. 154 00:06:45,180 --> 00:06:46,360 Kannski þú færð skiptingu kenna. 155 00:06:46,360 --> 00:06:47,651 Við höfum öll haft galla í forritum. 156 00:06:47,651 --> 00:06:50,196 Við öll gæti hafa galla í áætlunum núna. 157 00:06:50,196 --> 00:06:51,320 En hvað er vísbendingu? 158 00:06:51,320 --> 00:06:54,390 Jæja, hér er aðdregna-í útgáfu þessi mynd af minni tölvu minnar. 159 00:06:54,390 --> 00:06:56,230 Þetta er neðst á stafla minni. 160 00:06:56,230 --> 00:06:59,644 Og reyndar, nema alveg við botn er það sem er kallast foreldri venja stakkur, ímynda sér vegur 161 00:06:59,644 --> 00:07:00,560 að segja það er aðal. 162 00:07:00,560 --> 00:07:03,772 Svo að hver sá sem kallast virka m að við erum að tala um. 163 00:07:03,772 --> 00:07:05,230 Þannig að þetta er neðst á stafla. 164 00:07:05,230 --> 00:07:06,640 Aftur heimilisfang er eitthvað nýtt. 165 00:07:06,640 --> 00:07:08,810 Það er alltaf verið þarna, alltaf verið í myndinni. 166 00:07:08,810 --> 00:07:10,440 Við kölluð bara aldrei athygli á því. 167 00:07:10,440 --> 00:07:15,290 Vegna þess að það kemur í ljós hvernig c virkar að þegar eitt virka símtöl annan, 168 00:07:15,290 --> 00:07:18,780 ekki bara rök til að virka fá ýtt á stafla, 169 00:07:18,780 --> 00:07:22,470 ekki aðeins staðbundin fallið er breytur fá ýtt á stafla, 170 00:07:22,470 --> 00:07:26,820 eitthvað sem kallast aftur heimilisfang Einnig fær setja á mánudaginn. 171 00:07:26,820 --> 00:07:33,330 Sérstaklega ef helstu símtöl Foo, helstu er eigin heimilisfang í minni, ekki uxa eitthvað, 172 00:07:33,330 --> 00:07:38,240 raun fær setja á mánudaginn þannig að þegar m er gert framkvæmd það 173 00:07:38,240 --> 00:07:43,630 veit hvar á að hoppa aftur í texta hluti í því skyni að halda áfram að framkvæma. 174 00:07:43,630 --> 00:07:47,760 >> Þannig að ef við erum hér hugtök, í helstu, þá m fær kallað. 175 00:07:47,760 --> 00:07:50,200 Hvernig virkar m vita hver að hönd stjórn aftur? 176 00:07:50,200 --> 00:07:52,020 Jæja, þetta litla breadcrumb í rauðu hér, 177 00:07:52,020 --> 00:07:54,978 kallað aftur heimilisfang, það bara eftirlit, hvað er það aftur heimilisfang? 178 00:07:54,978 --> 00:07:57,039 Ó, láttu mig hoppa til baka í helstu hér. 179 00:07:57,039 --> 00:07:59,080 Og það er svolítið af einföldun, 180 00:07:59,080 --> 00:08:00,750 vegna þess að núllum og sjálfur fyrir helstu eru tæknilega 181 00:08:00,750 --> 00:08:01,967 upp hér í tækni hluti. 182 00:08:01,967 --> 00:08:03,800 En það er hugmynd. m bara þarf að vita hvað 183 00:08:03,800 --> 00:08:06,680 að þar stjórna að lokum fer aftur. 184 00:08:06,680 --> 00:08:09,790 >> En hvernig tölvur hafa lengi lagt út hlutina 185 00:08:09,790 --> 00:08:12,320 eins staðbundnar breytur og rök er eins og þetta. 186 00:08:12,320 --> 00:08:17,180 Svo í ofan á mynd í blár er stafla ramma fyrir f, þannig að allir 187 00:08:17,180 --> 00:08:19,630 af minni að f sérstaklega er að nota. 188 00:08:19,630 --> 00:08:22,990 Svo samkvæmt því, eftir að bar er á þessari mynd. 189 00:08:22,990 --> 00:08:23,980 Bar var rök hennar. 190 00:08:23,980 --> 00:08:27,240 Og við haldið fram að rök að aðgerðir fá ýtt á stafla. 191 00:08:27,240 --> 00:08:29,910 Og C, að sjálfsögðu, er Einnig í þessari mynd. 192 00:08:29,910 --> 00:08:33,520 >> Og bara fyrir notational tilgangi, taka efst í vinstra horni 193 00:08:33,520 --> 00:08:37,020 er hvað væri c krappi 0 og þá örlítið niður til hægri 194 00:08:37,020 --> 00:08:38,220 er c krappi 11. 195 00:08:38,220 --> 00:08:41,240 Svo í öðrum orðum, getur þú ímyndað þér að það er rist bæti 196 00:08:41,240 --> 00:08:44,380 þar, fyrst af, sem er Efst til vinstri, neðst sem 197 00:08:44,380 --> 00:08:48,360 er síðasta af þeim 12 bæti. 198 00:08:48,360 --> 00:08:49,930 >> En nú reyna að spóla áfram. 199 00:08:49,930 --> 00:08:55,580 Hvað er að gerast ef við framhjá í streng súlu sem er lengri en c? 200 00:08:55,580 --> 00:08:59,130 Og við erum ekki að stöðva ef það er örugglega lengur en 12. 201 00:08:59,130 --> 00:09:03,146 Hvaða hluti af þessari mynd er að fara að fá skrifuð yfir bæti 0, 1, 2, 3, 202 00:09:03,146 --> 00:09:07,890 punktur punktur punktur, 11, og þá slæmt, 12, 13 í 19? 203 00:09:07,890 --> 00:09:11,820 Hvað er að fara að gerast hér, ef þú álykta frá röðun 204 00:09:11,820 --> 00:09:14,790 að c krappi 0 er efst og c krappi 11 er tegund af niður 205 00:09:14,790 --> 00:09:15,812 til hægri? 206 00:09:15,812 --> 00:09:16,796 Já? 207 00:09:16,796 --> 00:09:19,260 >> Áhorfendur: Jæja, það er að fara að skrifa yfir char * bar. 208 00:09:19,260 --> 00:09:22,260 >> DAVID J. MALAN: Já, það lítur út eins og þú ert að fara að skrifa char * bar. 209 00:09:22,260 --> 00:09:26,245 Og verri, ef þú sendir í mjög langan band, þú gætir jafnvel skrifa það? 210 00:09:26,245 --> 00:09:27,460 211 00:09:27,460 --> 00:09:28,570 The aftur heimilisfang. 212 00:09:28,570 --> 00:09:31,380 Sem aftur, er bara eins og breadcrumb að segja program þar 213 00:09:31,380 --> 00:09:34,060 að fara til baka þegar m er gert að vera kölluð. 214 00:09:34,060 --> 00:09:37,140 >> Svo hvað slæmur krakkar yfirleitt gert er ef þeir rekast a program 215 00:09:37,140 --> 00:09:41,290 að þeir ert forvitinn hvort er virkjanlegur, þrjótur á þann hátt 216 00:09:41,290 --> 00:09:43,550 að hann eða hún getur tekið Kosturinn við þessa galla, 217 00:09:43,550 --> 00:09:45,720 yfirleitt gera þeir fá ekki þetta rétt í fyrsta skipti. 218 00:09:45,720 --> 00:09:48,590 Þeir byrja bara að senda, til dæmis, handahófi strengir í forritinu, 219 00:09:48,590 --> 00:09:50,260 hvort sem er á lyklaborðinu, eða hreinskilnislega þeir sennilega 220 00:09:50,260 --> 00:09:52,740 skrifa smá forrit til bara sjálfkrafa mynda strengir, 221 00:09:52,740 --> 00:09:55,430 og byrja að lemja á forritinu með senda í fullt af mismunandi aðföngum 222 00:09:55,430 --> 00:09:56,340 á mismunandi lengdum. 223 00:09:56,340 --> 00:09:58,990 >> Um leið og áætlun hrun þinn, það er furðulegur hlutur. 224 00:09:58,990 --> 00:10:01,020 Vegna þess að það þýðir að hann eða hún hefur uppgötvað 225 00:10:01,020 --> 00:10:02,660 hvað er líklega örugglega galla. 226 00:10:02,660 --> 00:10:05,830 Og þá geta þeir fengið fleiri snjall og byrja að einbeita meira þröngt 227 00:10:05,830 --> 00:10:07,420 um hvernig á að nýta þessi villu. 228 00:10:07,420 --> 00:10:11,480 Einkum það sem hann eða hún gæti gera er að senda, í besta tilfelli, halló. 229 00:10:11,480 --> 00:10:12,210 Ekkert stórmál. 230 00:10:12,210 --> 00:10:14,750 Það er band sem er nægilega stutt. 231 00:10:14,750 --> 00:10:18,100 En hvað ef hann eða hún sendir, og við munum alhæfa það sem, 232 00:10:18,100 --> 00:10:20,890 árás code-- svo núllum og þau sem gera það 233 00:10:20,890 --> 00:10:25,150 eins RM-rf, sem fjarlægja allt frá disknum eða senda ruslpóst 234 00:10:25,150 --> 00:10:27,000 eða einhvern veginn að ráðast á vélina? 235 00:10:27,000 --> 00:10:29,570 >> Þannig að ef hvert þessara Stafirnir A táknar bara, 236 00:10:29,570 --> 00:10:32,380 hugtök, árás, árás, árás, árás, slæmar kóða 237 00:10:32,380 --> 00:10:36,410 að einhver annar skrifaði, en ef þessi manneskja er sviði nógur 238 00:10:36,410 --> 00:10:40,790 að ekki aðeins eru allar af þeim RM-lifunar án endurkomu sjúkdóms, en einnig 239 00:10:40,790 --> 00:10:46,100 hafa undanfarna bæti sín vera tala sem samsvarar 240 00:10:46,100 --> 00:10:50,540 á heimilisfang hans eða hennar eigin árás númer 241 00:10:50,540 --> 00:10:53,820 að hann eða hún fór í bara með því að veita það á að hvetja, 242 00:10:53,820 --> 00:10:58,760 þú getur í raun bragð tölvuna í að taka eftir þegar f er gert framkvæmd, 243 00:10:58,760 --> 00:11:02,400 ó, það er kominn tími fyrir mig að stökkva aftur til rauðu aftur heimilisfang. 244 00:11:02,400 --> 00:11:06,070 En vegna þess að hann eða hún hefur á einhvern hátt skarast að skila tölu 245 00:11:06,070 --> 00:11:09,602 með eigin númer þeirra, og þeir ert sviði nógur 246 00:11:09,602 --> 00:11:11,560 að hafa stillt að númer til að vísa, eins og þú 247 00:11:11,560 --> 00:11:13,740 sjá í ofur efst vinstri-hönd horn þar, 248 00:11:13,740 --> 00:11:18,020 raunverulegt heimilisfang í the tölva ' minni sum árás númer þeirra, 249 00:11:18,020 --> 00:11:21,740 slæmur strákur getur bragð tölva í framkvæmd hans eða hennar eigin kóða. 250 00:11:21,740 --> 00:11:23,700 >> Og það númer aftur, getur verið hvað sem er. 251 00:11:23,700 --> 00:11:26,120 Það er almennt kallað skel kóða, sem er bara 252 00:11:26,120 --> 00:11:29,030 leið til að segja að það er ekki almennt eitthvað eins einfalt og RM-rf. 253 00:11:29,030 --> 00:11:32,340 Það er í raun eitthvað eins Bash, eða í raun forrit sem gefur honum 254 00:11:32,340 --> 00:11:37,230 eða forritanlegur stjórn hennar til að framkvæma eitthvað annað sem þeir vilja. 255 00:11:37,230 --> 00:11:40,210 Svo í stuttu máli, þetta allt stafar af þeirri einföldu staðreynd 256 00:11:40,210 --> 00:11:44,490 að þessi padda þátt ekki stöðva mörk array þínu. 257 00:11:44,490 --> 00:11:47,250 Og vegna þess að á leiðinni tölvur vinna er að þeir 258 00:11:47,250 --> 00:11:49,430 nota stafla af á áhrifaríkan hátt, eðli, 259 00:11:49,430 --> 00:11:54,830 botn á upp, en þá þætti þú ýta á stafla vaxa topp niður, 260 00:11:54,830 --> 00:11:56,624 þetta er ótrúlega erfitt. 261 00:11:56,624 --> 00:11:58,290 Nú, það eru leiðir til að vinna í kringum þetta. 262 00:11:58,290 --> 00:12:00,800 Og hreinskilnislega, það eru tungumál sem að vinna í kringum þetta. 263 00:12:00,800 --> 00:12:03,100 Java er ónæmur, til dæmis, þessum tiltekna mál. 264 00:12:03,100 --> 00:12:04,110 Vegna þess að þeir gefa þér ekki ábendingum. 265 00:12:04,110 --> 00:12:05,943 Þeir gefa þér ekki bein netföng minni. 266 00:12:05,943 --> 00:12:08,560 Svo með þetta vald sem við höfum að snerta neitt í minni 267 00:12:08,560 --> 00:12:11,580 Við viljum koma að vísu mikil áhætta. 268 00:12:11,580 --> 00:12:12,430 >> Svo að hafa auga út. 269 00:12:12,430 --> 00:12:14,596 Ef hreinskilnislega, á næstu mánuðum eða ár að koma, hvenær sem 270 00:12:14,596 --> 00:12:17,740 þú lesið um einhvern nýtingu af a program eða miðlara, 271 00:12:17,740 --> 00:12:22,370 ef þú alltaf að sjá vott um eitthvað eins biðminni flæða árás, 272 00:12:22,370 --> 00:12:25,390 eða stakkur flæða er annar tegund árás, svipað í anda, 273 00:12:25,390 --> 00:12:28,770 mikið og hvetur vefsíða er nafn, ef þú veist það, 274 00:12:28,770 --> 00:12:33,170 það er allt að tala um bara barmafullur stærð einhverjum staf 275 00:12:33,170 --> 00:12:36,200 fylki eða sumir array almennt. 276 00:12:36,200 --> 00:12:38,822 Einhverjar spurningar, þá á þetta? 277 00:12:38,822 --> 00:12:39,780 Ekki reyna þetta heima. 278 00:12:39,780 --> 00:12:41,620 279 00:12:41,620 --> 00:12:42,300 >> Allt í lagi. 280 00:12:42,300 --> 00:12:47,270 Svo malloc hingað til hefur verið ný okkar vinur í að við getum tekið frá minni 281 00:12:47,270 --> 00:12:50,540 að við gerum ekki endilega vita fyrirfram að við viljum svo við þurfum ekki 282 00:12:50,540 --> 00:12:52,920 á harða kóða inn í okkar program tölur eins 12. 283 00:12:52,920 --> 00:12:55,550 Þegar notandi segir okkur hversu mikið gögn sem hann eða hún vill inntak, 284 00:12:55,550 --> 00:12:58,000 getum við malloc það mikið minni. 285 00:12:58,000 --> 00:13:01,484 >> Svo malloc það kemur í ljós, að því marki sem við höfum verið að nota það, 286 00:13:01,484 --> 00:13:03,900 sérstaklega síðasta sinn, og þá þið hafið verið að nota það 287 00:13:03,900 --> 00:13:08,160 fyrir getstring óafvitandi fyrir nokkrar vikur, allt að minni malloc er 288 00:13:08,160 --> 00:13:09,820 kemur frá svokölluðum hrúga. 289 00:13:09,820 --> 00:13:13,852 Og þetta er ástæðan getstring, til dæmis, getur tekið frá minni virk 290 00:13:13,852 --> 00:13:16,060 án þess að vita hvað þú ert að fara að slá í fyrirfram, 291 00:13:16,060 --> 00:13:21,520 hönd þér aftur bendi til þess minni, og að minni er enn þinn til að halda, 292 00:13:21,520 --> 00:13:24,080 jafnvel eftir getstring ávöxtun. 293 00:13:24,080 --> 00:13:27,450 Vegna muna eftir allt að stakkur er stöðugt að fara upp og niður, 294 00:13:27,450 --> 00:13:27,950 upp og niður. 295 00:13:27,950 --> 00:13:30,230 Og um leið og það fer niður, sem merkir minni 296 00:13:30,230 --> 00:13:33,030 þessi aðgerð er notað ætti ekki að nota með neinum öðrum. 297 00:13:33,030 --> 00:13:34,570 Það er sorp gildi núna. 298 00:13:34,570 --> 00:13:36,120 >> En hrúga er upp hér. 299 00:13:36,120 --> 00:13:39,360 Og hvað er gott um malloc er að þegar malloc úthlutar minni hér, 300 00:13:39,360 --> 00:13:42,070 það er ekki fyrir áhrifum fyrir mestu, með stafla. 301 00:13:42,070 --> 00:13:46,000 Og svo allir virka geta nálgast minni sem hefur verið malloc'd, 302 00:13:46,000 --> 00:13:49,120 jafnvel eftir fall eins getstring, jafnvel eftir að það er skilað. 303 00:13:49,120 --> 00:13:51,700 >> Nú er spjallað um malloc er ókeypis. 304 00:13:51,700 --> 00:13:53,900 Og reyndar, reglan þér þarf að byrja að taka 305 00:13:53,900 --> 00:13:58,950 er einhver, einhver, hvenær þú notar malloc þú verður sjálfur að nota ókeypis, að lokum, 306 00:13:58,950 --> 00:14:00,280 á sama músina. 307 00:14:00,280 --> 00:14:03,289 Allan þennan tíma sem við höfum verið að skrifa þrjótur, þrjótur kóða, af mörgum ástæðum. 308 00:14:03,289 --> 00:14:05,580 En einn sem hefur verið nota CS50 bókasafn, sem 309 00:14:05,580 --> 00:14:09,010 sjálft er vísvitandi þrjótur, lekur hún minni. 310 00:14:09,010 --> 00:14:11,410 Í hvert sinn sem þú hefur kallað getstring á undanförnum vikum 311 00:14:11,410 --> 00:14:13,870 við erum að spyrja rekstri kerfi, Linux, fyrir minni. 312 00:14:13,870 --> 00:14:15,780 Og þú hefur aldrei einu sinni gefið það aftur. 313 00:14:15,780 --> 00:14:17,730 Og þetta er ekki í æfa, gott. 314 00:14:17,730 --> 00:14:20,330 >> Og Valgrind, einn af þeim verkfæri kynnt í Pset 4, 315 00:14:20,330 --> 00:14:22,900 er allt um að hjálpa þér nú finna galla eins og þessi. 316 00:14:22,900 --> 00:14:27,060 En sem betur fer fyrir Pset 4 þú þarft ekki að nota CS50 bókasafn eða getstring. 317 00:14:27,060 --> 00:14:31,220 Svo einhverjar villur sem tengjast minni eru lokum að fara til vera þinn eigin. 318 00:14:31,220 --> 00:14:34,060 >> Svo er malloc meira en bara þægilegt í þessum tilgangi. 319 00:14:34,060 --> 00:14:37,420 Við getum í raun nú leyst grundvallaratriðum mismunandi vandamál, 320 00:14:37,420 --> 00:14:41,640 og grundvallaratriðum að leysa vandamál meira raun eins og á viku núll er loforð. 321 00:14:41,640 --> 00:14:44,720 Hingað er þetta kynjamisrétti gagnagrind sem við höfum haft. 322 00:14:44,720 --> 00:14:47,804 Og með því að gögn uppbygging ég meina bara leið conceptualizing minni 323 00:14:47,804 --> 00:14:50,720 á þann hátt sem fer út bara að segja, þetta er int, þetta er char. 324 00:14:50,720 --> 00:14:52,930 Við getum byrjað á að þyrping hluti saman. 325 00:14:52,930 --> 00:14:54,460 >> Svo fylki leit út eins og þetta. 326 00:14:54,460 --> 00:14:57,270 Og hvað var inni í um array er að það gefur þér 327 00:14:57,270 --> 00:14:59,724 bak-til-bak klumpur af minni, sem hver um sig 328 00:14:59,724 --> 00:15:02,765 er að fara að vera af sömu gerð, int, int, int, int, eða bleikju, bleikju, bleikju, 329 00:15:02,765 --> 00:15:03,330 bleikju. 330 00:15:03,330 --> 00:15:04,496 En það er nokkur downsides. 331 00:15:04,496 --> 00:15:06,570 Þetta til dæmis, er fylki í stærð sex. 332 00:15:06,570 --> 00:15:10,650 Segjum að þú fyllir þetta array með sex tölur og þá fyrir hvað ástæðum, 333 00:15:10,650 --> 00:15:13,187 þinn notandi vill gefa þú sjöund tala. 334 00:15:13,187 --> 00:15:14,020 Hvar þú setur það? 335 00:15:14,020 --> 00:15:15,490 336 00:15:15,490 --> 00:15:18,990 >> Hver er lausnin ef þú ert búið til fylki á mánudaginn, 337 00:15:18,990 --> 00:15:22,030 til dæmis, bara með viku tveir ritháttur sem við kynnt, 338 00:15:22,030 --> 00:15:23,730 af hornklofum við fjölda inni? 339 00:15:23,730 --> 00:15:25,160 340 00:15:25,160 --> 00:15:27,260 Jæja, hefur þú fengið sex tölur í þessum kassa. 341 00:15:27,260 --> 00:15:28,530 Hvað myndi eðlishvöt þín að vera? 342 00:15:28,530 --> 00:15:29,973 Hvar myndir þú vilja að setja það? 343 00:15:29,973 --> 00:15:30,860 >> Áhorfendur: [inaudible] 344 00:15:30,860 --> 00:15:31,315 >> DAVID J. MALAN: Fyrirgefðu? 345 00:15:31,315 --> 00:15:32,380 >> Áhorfendur: Settu það á endanum. 346 00:15:32,380 --> 00:15:33,796 >> DAVID J. MALAN: Settu það á endanum. 347 00:15:33,796 --> 00:15:35,880 Svo bara yfir til hægri, utan þennan reit. 348 00:15:35,880 --> 00:15:38,710 Sem væri gott, en það snýr út að þú getur ekki gert það. 349 00:15:38,710 --> 00:15:41,350 Vegna þess að ef þú hefur ekki spurt fyrir þessa klumpur af minni, 350 00:15:41,350 --> 00:15:44,490 það gæti verið af tilviljun að þessi er notað af einhverjum öðrum breytu 351 00:15:44,490 --> 00:15:45,030 að öllu leyti. 352 00:15:45,030 --> 00:15:49,210 Hugsaðu til baka í viku eða svo þegar við lagði út nöfn Zamyla og Davin og Gabe er 353 00:15:49,210 --> 00:15:49,930 í minni. 354 00:15:49,930 --> 00:15:51,638 Þeir voru bókstaflega aftur til baka til baka. 355 00:15:51,638 --> 00:15:53,550 Svo við getum ekki endilega treysta því að hvað sem er 356 00:15:53,550 --> 00:15:55,800 hérna er í boði fyrir mig að nota. 357 00:15:55,800 --> 00:15:56,990 >> Svo hvað annað gætir þú gert? 358 00:15:56,990 --> 00:16:00,282 Jæja, einu sinni að átta sig á þig þarf fjölda af stærð sjö, 359 00:16:00,282 --> 00:16:02,490 þú gætir bara búið að array stærð sjö þá nota 360 00:16:02,490 --> 00:16:05,950 for lykkju eða meðan lykkja, afrita það inn í nýja fylking, 361 00:16:05,950 --> 00:16:09,680 og þá einhvern veginn bara að losna við þetta fylki eða bara hætta að nota það. 362 00:16:09,680 --> 00:16:12,130 En það er ekki sérstaklega duglegur. 363 00:16:12,130 --> 00:16:15,340 Í stuttu máli, ekki fylki láta þú búa virk. 364 00:16:15,340 --> 00:16:17,900 >> Svo annars vegar að fá handahófi aðgangur, sem er ótrúlegt. 365 00:16:17,900 --> 00:16:20,108 Vegna þess að það leyfir okkur að gera hlutina eins skipta og sigra, 366 00:16:20,108 --> 00:16:23,100 tvöfaldur leit, allt sem við höfum talaði um á skjánum hér. 367 00:16:23,100 --> 00:16:24,950 En þú mála þig út í horn. 368 00:16:24,950 --> 00:16:27,810 Um leið og þú högg enda fylking þinni, 369 00:16:27,810 --> 00:16:29,980 þú þarft að gera mjög dýr aðgerð 370 00:16:29,980 --> 00:16:33,910 eða skrifa a heild búnt af kóða að nú takast á við þessi vandamál. 371 00:16:33,910 --> 00:16:36,680 >> Svo hvað ef í staðinn höfðum við eitthvað sem kallast lista, 372 00:16:36,680 --> 00:16:38,820 eða tengdur lista sérstaklega? 373 00:16:38,820 --> 00:16:41,930 Hvað ef í stað þess að hafa ferhyrninga baka til baka til baka, 374 00:16:41,930 --> 00:16:45,730 Við höfum ferhyrninga sem yfirgefa smá hluti af wiggle herbergi í milli þeirra? 375 00:16:45,730 --> 00:16:49,670 Og jafnvel þó að ég hef dregið þetta mynd eða lagað þessa mynd 376 00:16:49,670 --> 00:16:54,696 frá einum af texta hér að vera kominn aftur til aftur til baka mjög reglusamur, í raun, 377 00:16:54,696 --> 00:16:56,820 einn af þeim ferhyrninga gæti verið hér í minni. 378 00:16:56,820 --> 00:16:58,028 Einn af þeim gæti verið allt hér. 379 00:16:58,028 --> 00:17:00,420 Einn af þeim gæti verið upp hér, hérna, og svo framvegis. 380 00:17:00,420 --> 00:17:02,910 >> En hvað ef við brá, í þessu tilfelli, örvar 381 00:17:02,910 --> 00:17:05,650 sem á einhvern hátt tengjast þessum rétthyrninga saman? 382 00:17:05,650 --> 00:17:08,170 Reyndar höfum við séð tæknilega holdgun ör. 383 00:17:08,170 --> 00:17:09,839 384 00:17:09,839 --> 00:17:13,710 Hvað höfum við notað í nýlegri daga að undir hetta, 385 00:17:13,710 --> 00:17:15,210 er dæmigert ör? 386 00:17:15,210 --> 00:17:16,290 387 00:17:16,290 --> 00:17:17,349 A músina, ekki satt? 388 00:17:17,349 --> 00:17:19,780 >> Svo hvað ef, í stað þess að bara að geyma tölur, 389 00:17:19,780 --> 00:17:23,130 eins og 9, 17, 22, 26, 34, hvað ef við geymd ekki 390 00:17:23,130 --> 00:17:27,079 bara tala en bendi við hliðina á öllum þeim fjölda? 391 00:17:27,079 --> 00:17:30,690 Svo að mikið eins og þú vilt þræði a nálinni í gegnum a heild búnt af efni, 392 00:17:30,690 --> 00:17:32,950 einhvern veginn binda hlutir saman, á sama hátt getur 393 00:17:32,950 --> 00:17:35,550 við með ábendingum, sem incarnated með örvum hér, 394 00:17:35,550 --> 00:17:38,550 konar fléttast saman þessi einstaklingur ferhyrninga 395 00:17:38,550 --> 00:17:41,780 með raun að nota músina við hliðina á hvert númer sem 396 00:17:41,780 --> 00:17:46,065 bendir að einhverju næstu tala, sem bendir til, aftur á móti, sumir næsta tala? 397 00:17:46,065 --> 00:17:47,940 Svo í öðrum orðum, hvað ef við vildum í raun 398 00:17:47,940 --> 00:17:49,820 að innleiða eitthvað eins og þetta? 399 00:17:49,820 --> 00:17:53,610 Jæja því miður, þessi ferhyrninga, að minnsta kosti einn með 9, 17, 22, 400 00:17:53,610 --> 00:17:57,040 og svo framvegis, eru þessar ekki lengur ágætur ferningar með stakar tölur. 401 00:17:57,040 --> 00:17:59,960 The botn, rétthyrningur hér að neðan 9, til dæmis, 402 00:17:59,960 --> 00:18:04,330 táknar það ætti vera músina, 32 bita. 403 00:18:04,330 --> 00:18:09,460 Nú, ég er ekki enn kunnugt um hvaða gögn gerð í C sem gefur þér ekki aðeins við int 404 00:18:09,460 --> 00:18:11,630 en bendillinn að öllu leyti. 405 00:18:11,630 --> 00:18:15,020 >> Svo er það lausnin ef við viljum að finna eigin svar okkar við þetta? 406 00:18:15,020 --> 00:18:15,760 Já? 407 00:18:15,760 --> 00:18:16,640 >> Áhorfendur: [inaudible] 408 00:18:16,640 --> 00:18:17,360 >> DAVID J. MALAN: Hvað er það? 409 00:18:17,360 --> 00:18:17,880 >> Áhorfendur: Nýtt skipulag. 410 00:18:17,880 --> 00:18:19,590 >> DAVID J. MALAN: Já, svo hvers vegna eigum við ekki að búa til nýtt skipulag, 411 00:18:19,590 --> 00:18:20,920 eða í C, a strúktúrinn? 412 00:18:20,920 --> 00:18:25,990 Við höfum séð structs áður, ef stuttlega, þar sem við fjallað nemandi uppbyggingu 413 00:18:25,990 --> 00:18:27,780 eins og þetta, sem hafði nafn og hús. 414 00:18:27,780 --> 00:18:31,980 Í Pset 3 Brot þú notaðir í heild fullt af structs-- GRect og GOvals 415 00:18:31,980 --> 00:18:34,810 að Stanford búin til þyrping upplýsingar saman. 416 00:18:34,810 --> 00:18:38,580 Svo hvað ef við tökum þessa sömu hugmynd leitarorð "typedef" og "strúktúr", 417 00:18:38,580 --> 00:18:42,890 og þá sumir nemandi sérstakar efni, og þróast þetta í eftirfarandi: 418 00:18:42,890 --> 00:18:46,210 typedef strúktúr node-- og hnúturinn er bara mjög almenn tölvunarfræði 419 00:18:46,210 --> 00:18:49,980 tíma fyrir eitthvað í gögn uppbygging, ílát í gögnum byggingu. 420 00:18:49,980 --> 00:18:53,900 Hnútur ég kröfu er að fara að hafa int n, algerlega augljóst, 421 00:18:53,900 --> 00:18:58,810 og þá aðeins meira cryptically, þessi seinni lína, struct hnút * næst. 422 00:18:58,810 --> 00:19:01,300 En í minna tæknilegur skilmálar, hvað er það annað lína 423 00:19:01,300 --> 00:19:02,980 af kóða inni í hrokkið axlabönd? 424 00:19:02,980 --> 00:19:03,737 Já? 425 00:19:03,737 --> 00:19:04,851 >> Áhorfendur: [inaudible] 426 00:19:04,851 --> 00:19:06,600 DAVID J. MALAN: A músina til annars hnút. 427 00:19:06,600 --> 00:19:09,910 Svo að vísu, setningafræði svolítið dulinn. 428 00:19:09,910 --> 00:19:13,250 En ef þú lest það bókstaflega, Næsta er nafn á breytu. 429 00:19:13,250 --> 00:19:14,410 Hvað er gögn tegund þess? 430 00:19:14,410 --> 00:19:18,206 Það er lítið fjölorður í þetta sinn, en það er af gerðinni struct hnút *. 431 00:19:18,206 --> 00:19:22,960 Í hvert sinn sem við höfum séð eitthvað stjörnu, sem þýðir að það er bendi til þess gögn tegund. 432 00:19:22,960 --> 00:19:26,810 Svo er næsta víst að músina til struct hnút. 433 00:19:26,810 --> 00:19:28,310 >> Nú, hvað er struct hnút? 434 00:19:28,310 --> 00:19:31,044 Jæja, eftir að sjá þá sömu orð á efst til hægri. 435 00:19:31,044 --> 00:19:33,960 Og reyndar, þú sérð líka orðið "Hnút" niður hér neðst til vinstri. 436 00:19:33,960 --> 00:19:35,640 Og þetta er í raun bara þægindi. 437 00:19:35,640 --> 00:19:39,930 Takið eftir að í skilgreiningu nemenda okkar það er orðið "nemandi" aðeins einu sinni. 438 00:19:39,930 --> 00:19:42,510 Og það er vegna þess að nemandi hlut var ekki sjálf-vísun. 439 00:19:42,510 --> 00:19:45,340 Það er ekkert inni á nemanda sem þarf að benda á aðra nemanda, 440 00:19:45,340 --> 00:19:45,610 persay. 441 00:19:45,610 --> 00:19:47,630 Það væri eins konar undarlegt í hinum raunverulega heimi. 442 00:19:47,630 --> 00:19:50,880 >> En með hnút í tengdur lista, gera við viljum hnút 443 00:19:50,880 --> 00:19:53,970 til að vera referential til á svipaðan hlut. 444 00:19:53,970 --> 00:19:57,900 Og svo eftir breytingu hér er ekki bara er það inni í hrokkið axlabönd. 445 00:19:57,900 --> 00:20:00,800 En við bætum við orðinu "hnútur" efst sem og 446 00:20:00,800 --> 00:20:02,930 bæta því við botn í stað "nemandi". 447 00:20:02,930 --> 00:20:06,000 Og þetta er aðeins tæknileg smáatriði svo að, aftur, gögn uppbygging 448 00:20:06,000 --> 00:20:11,380 getur verið sjálf-vísun, þannig að hnút getur bent til annars slíks hnút. 449 00:20:11,380 --> 00:20:13,840 >> Svo er það þetta að lokum að fara að þýða fyrir okkur? 450 00:20:13,840 --> 00:20:17,560 Jæja, einn, þetta dót inni er innihald hnút okkar. 451 00:20:17,560 --> 00:20:19,360 Þessi hlutur hér, efst til hægri, er bara svo 452 00:20:19,360 --> 00:20:20,860 sem, aftur, getum við átt að okkur. 453 00:20:20,860 --> 00:20:23,401 Og þá ysta efni, jafnvel þótt hnútur er nýtt hugtak, 454 00:20:23,401 --> 00:20:25,500 kannski er það enn sama og nemanda og hvað 455 00:20:25,500 --> 00:20:27,520 var undir hetta í SPL. 456 00:20:27,520 --> 00:20:31,095 >> Þannig að ef við vildum nú til að byrja framkvæmd þessarar tengdan lista, 457 00:20:31,095 --> 00:20:33,220 hvernig gætum við þýða eitthvað eins og þetta til að kóða? 458 00:20:33,220 --> 00:20:35,350 Jæja, við skulum sjá bara Dæmi um forrit sem 459 00:20:35,350 --> 00:20:36,840 reyndar notar tengda lista. 460 00:20:36,840 --> 00:20:40,870 Meðal dreifingu kóða dag er forrit sem heitir Listi Zero. 461 00:20:40,870 --> 00:20:44,980 Og ef ég keyra þetta ég bjó til frábær einföld GUI, Myndræn User Interface, 462 00:20:44,980 --> 00:20:46,460 en það er í raun bara printf. 463 00:20:46,460 --> 00:20:50,930 Og nú hef ég gefið mér nokkur matseðill options-- Eyða, Bæta í, leit, 464 00:20:50,930 --> 00:20:51,750 og Traverse. 465 00:20:51,750 --> 00:20:52,630 Og hætta. 466 00:20:52,630 --> 00:20:55,970 Þetta eru bara algengar aðgerðir á a gagnagrind þekktur eins og a hlekkur lista. 467 00:20:55,970 --> 00:20:58,409 >> Nú, Eyða er að fara til eyða númeri af listanum. 468 00:20:58,409 --> 00:21:00,200 Innskotið er að fara að bæta við fjölda á listann. 469 00:21:00,200 --> 00:21:02,181 Leit er að fara að horfa fyrir númer í listanum. 470 00:21:02,181 --> 00:21:04,930 Og Traverse er bara fínt leið að segja, ganga í gegnum listann, 471 00:21:04,930 --> 00:21:06,245 prenta það út, en það er það. 472 00:21:06,245 --> 00:21:07,720 Ekki breyta því ekki á nokkurn hátt. 473 00:21:07,720 --> 00:21:08,570 >> Svo skulum reyna þetta. 474 00:21:08,570 --> 00:21:10,160 Við skulum fara á undan og sláðu inn 2. 475 00:21:10,160 --> 00:21:12,710 Og þá er ég að fara að settu númerið segja 9. 476 00:21:12,710 --> 00:21:13,620 Enter. 477 00:21:13,620 --> 00:21:17,480 Og nú er áætlun mín bara forrita til að segja, listi er nú 9. 478 00:21:17,480 --> 00:21:20,190 Nú, ef ég fer á undan og Setjið aftur, láta 479 00:21:20,190 --> 00:21:23,680 mér að fara á undan og þysja út og slá í 17. 480 00:21:23,680 --> 00:21:25,770 Nú er minn listi 9, þá 17. 481 00:21:25,770 --> 00:21:27,750 Ef ég setja aftur skulum sleppa einn. 482 00:21:27,750 --> 00:21:32,400 Í stað þess að 22, eins og á myndinni sem við höfum verið að horfa á hér, láta mig hoppa á undan 483 00:21:32,400 --> 00:21:34,630 og setja 26 næst. 484 00:21:34,630 --> 00:21:36,230 Þannig að ég ætla að fara að slá 26. 485 00:21:36,230 --> 00:21:37,755 Listinn er sem eg ætla. 486 00:21:37,755 --> 00:21:40,630 En nú, bara til að sjá hvort þessum kóða er að fara að vera sveigjanlegur, láta mig nú 487 00:21:40,630 --> 00:21:43,520 tegund 22, þar sem að minnsta kosti eðli, ef við erum 488 00:21:43,520 --> 00:21:46,520 halda þessu raðað, sem er örugglega að fara að vera annar markmið núna, 489 00:21:46,520 --> 00:21:48,690 ætti að fara í á milli 17 og 26. 490 00:21:48,690 --> 00:21:50,270 Svo ég högg á Enter. 491 00:21:50,270 --> 00:21:51,380 Reyndar, það virkar. 492 00:21:51,380 --> 00:21:54,950 Og svo nú láta mig settu síðast, á myndinni, 34. 493 00:21:54,950 --> 00:21:55,450 >> Allt í lagi. 494 00:21:55,450 --> 00:21:58,980 Svo nú láta mig kveða á um að Eyða og Traverse og Leita gera, 495 00:21:58,980 --> 00:21:59,760 í raun, vinna. 496 00:21:59,760 --> 00:22:04,180 Í staðreynd, ef ég keyri Search, við skulum leita að númer 22, Enter. 497 00:22:04,180 --> 00:22:05,010 Það fundust 22. 498 00:22:05,010 --> 00:22:07,580 Svo er það það sem þetta Forritið Listi Zero gerir. 499 00:22:07,580 --> 00:22:10,230 >> En hvað er í raun að fara á sem útfærir þetta? 500 00:22:10,230 --> 00:22:14,530 Jæja, fyrst ég gæti hafa, og raunar Ég hef, að skrá sem heitir list0.h. 501 00:22:14,530 --> 00:22:16,540 502 00:22:16,540 --> 00:22:20,690 Og einhvers staðar er þetta lína, typedef, struct hnút, 503 00:22:20,690 --> 00:22:24,850 þá hef ég hrokkið axlabönd mínum, int n og þá struct-- hvað var skilgreining? 504 00:22:24,850 --> 00:22:26,530 505 00:22:26,530 --> 00:22:28,545 Struct hnút næst. 506 00:22:28,545 --> 00:22:29,920 507 00:22:29,920 --> 00:22:31,045 Þannig að við þurfum stjörnuna. 508 00:22:31,045 --> 00:22:33,420 Nú tæknilega fáum við í að venja af að teikna það hér. 509 00:22:33,420 --> 00:22:35,670 Þú gætir séð kennslubækur og online tilvísanir gera það þar. 510 00:22:35,670 --> 00:22:36,660 Það er virkni jafngildir. 511 00:22:36,660 --> 00:22:37,980 Í raun er þetta lítið meira dæmigerður. 512 00:22:37,980 --> 00:22:40,563 En ég ætla að vera í samræmi við það sem við gerðum síðasta tíma og gera þetta. 513 00:22:40,563 --> 00:22:42,350 Og svo loks, ég ætla að gera þetta. 514 00:22:42,350 --> 00:22:45,550 >> Svo í haus skrá einhvers staðar, í list0.h 515 00:22:45,550 --> 00:22:49,200 í dag er þetta struct skilgreining, og kannski einhver önnur efni. 516 00:22:49,200 --> 00:22:52,580 Á sama tíma í list0c það er að fara að vera nokkur atriði. 517 00:22:52,580 --> 00:22:54,740 En við erum að fara að bara byrja og ekki klára þetta. 518 00:22:54,740 --> 00:22:59,690 List0.h er skrá sem ég vil að fela í C skrá minn. 519 00:22:59,690 --> 00:23:03,910 Og þá á einhverjum tímapunkti sem ég er fara að hafa int, helstu, ógilt. 520 00:23:03,910 --> 00:23:06,530 Og þá er ég að fara að hafa sumir að-gera er hér. 521 00:23:06,530 --> 00:23:10,620 Ég er líka að fara að hafa frumgerð, eins ógilt, leit, int, 522 00:23:10,620 --> 00:23:13,610 n, en tilgangur í lífinu er til að leita að frumefni. 523 00:23:13,610 --> 00:23:18,310 Og þá hérna ég kröfu á númer í dag, tóm, leit, int, n, 524 00:23:18,310 --> 00:23:21,020 engin semíkommu en opna hrokkið axlabönd. 525 00:23:21,020 --> 00:23:25,049 Og nú vil ég að einhvern veginn leita fyrir í framhaldi þennan lista. 526 00:23:25,049 --> 00:23:27,340 En við höfum ekki nóg Upplýsingar á skjánum enn. 527 00:23:27,340 --> 00:23:29,800 Ég hef í raun ekki fulltrúa lista sjálft. 528 00:23:29,800 --> 00:23:33,070 Svo ein leið að við gætum framkvæma tengdur listi í forriti 529 00:23:33,070 --> 00:23:37,520 er ég vil konar að gera eitthvað eins lýsi tengd lista upp hér. 530 00:23:37,520 --> 00:23:40,520 Fyrir einfaldleiki, ég ætla að gera þetta alheims, þótt almennt vér 531 00:23:40,520 --> 00:23:41,645 ætti ekki að gera þetta of mikið. 532 00:23:41,645 --> 00:23:43,260 En það mun einfalda þetta dæmi. 533 00:23:43,260 --> 00:23:45,890 Þannig að ég vil lýsa því yfir tengdur listi hér. 534 00:23:45,890 --> 00:23:47,010 Nú, hvernig gæti ég það? 535 00:23:47,010 --> 00:23:48,810 536 00:23:48,810 --> 00:23:50,750 >> Hér er mynd af tengdum lista. 537 00:23:50,750 --> 00:23:53,030 Og ég í raun ekki veit í augnablikinu hvernig 538 00:23:53,030 --> 00:23:56,710 Ég ætla að fara um hönd svo margt með bara einn 539 00:23:56,710 --> 00:23:58,040 breyta í minni. 540 00:23:58,040 --> 00:23:59,160 En hugsa aftur í smá stund. 541 00:23:59,160 --> 00:24:00,830 Allan þennan tíma sem við höfum haft strengir, sem vér þá 542 00:24:00,830 --> 00:24:02,913 ljós að fylki af stafir, sem vér þá 543 00:24:02,913 --> 00:24:05,740 ljós að bara vera bendillinn að fyrsta staf 544 00:24:05,740 --> 00:24:08,890 í fjölmörgum stöfum það er null slitið. 545 00:24:08,890 --> 00:24:13,530 Svo eftir að rökfræði, og með þetta mynd konar sáningu hugsanir þínar, 546 00:24:13,530 --> 00:24:17,964 hvað þurfum við að skrifa í raun í okkar kóða til að tákna tengdan lista? 547 00:24:17,964 --> 00:24:21,130 Hversu mikið af þessum upplýsingum þurfum að fanga í C kóða, myndir þú segja? 548 00:24:21,130 --> 00:24:22,654 549 00:24:22,654 --> 00:24:23,154 Já? 550 00:24:23,154 --> 00:24:24,738 >> Áhorfendur: Við þurfum bendi til hnút. 551 00:24:24,738 --> 00:24:26,237 DAVID J. MALAN: A bendi til hnút. 552 00:24:26,237 --> 00:24:29,320 Einkum, sem tengipunktur myndi þína eðlishvöt vera að halda bendi á? 553 00:24:29,320 --> 00:24:30,026 >> Áhorfendur: Fyrsta hnút. 554 00:24:30,026 --> 00:24:31,942 >> DAVID J. MALAN: Já, sennilega bara það fyrsta. 555 00:24:31,942 --> 00:24:34,030 Og eftir, fyrsta tengipunktur er mismunandi lögun. 556 00:24:34,030 --> 00:24:37,690 Það er aðeins helmingur the stærð af the strúktúr, vegna þess að það er örugglega bara músina. 557 00:24:37,690 --> 00:24:44,650 Svo það sem þú getur örugglega gera er að lýsa tengdur listi að vera af gerðinni hnút *. 558 00:24:44,650 --> 00:24:47,780 Og við skulum bara kalla það fyrst og frumstilla hana til núll. 559 00:24:47,780 --> 00:24:49,910 Svo null, aftur, er að koma inn í myndina hér. 560 00:24:49,910 --> 00:24:53,620 Ekki aðeins er null notað sem eins sérstakt skilagildi fyrir hluti eins getstring 561 00:24:53,620 --> 00:24:57,770 og malloc, null er einnig núll músina, skortur á músina, 562 00:24:57,770 --> 00:24:58,430 ef þú vilt. 563 00:24:58,430 --> 00:25:00,309 Það þýðir bara ekkert er enn hér. 564 00:25:00,309 --> 00:25:02,100 Nú fyrst, ég hefði getað kallað þetta hvað sem er. 565 00:25:02,100 --> 00:25:04,200 Ég hefði getað kallað það "lista" eða allir tala af öðrum hlutum. 566 00:25:04,200 --> 00:25:06,960 En ég ætla að kalla það "fyrsta" þannig að það línur upp með þessa mynd. 567 00:25:06,960 --> 00:25:10,280 Svo bara eins og band er hægt að fulltrúa með heimilisfang fyrstu bæti þess, 568 00:25:10,280 --> 00:25:11,280 svo getur tengdur listi. 569 00:25:11,280 --> 00:25:13,480 Og við munum sjá önnur gögn mannvirki að fulltrúa 570 00:25:13,480 --> 00:25:16,700 með aðeins eitt músina, 32-bita ör sem bendir 571 00:25:16,700 --> 00:25:18,740 á fyrstu hnút í uppbyggingu. 572 00:25:18,740 --> 00:25:20,340 >> En nú skulum sjá vandamál. 573 00:25:20,340 --> 00:25:23,230 Ef ég er bara að muna í áætlun mína að tölu 574 00:25:23,230 --> 00:25:27,220 af fyrsta hnút, fyrsta rétthyrnings í þessum gögnum uppbyggingu, 575 00:25:27,220 --> 00:25:31,760 hvað hafði betur að vera málið um að framkvæmd af the hvíla af listanum mínum? 576 00:25:31,760 --> 00:25:35,820 Hvað er lykillinn smáatriði sem er að gerast til að tryggja þetta í raun virkar? 577 00:25:35,820 --> 00:25:39,250 Og með því að "í raun virkar" Ég meina, eins og band, 578 00:25:39,250 --> 00:25:42,180 leyfir okkur að fara úr fyrsta staf í nafni Davin er til annað, 579 00:25:42,180 --> 00:25:44,755 í þriðja, til að fjórða, allt til enda, 580 00:25:44,755 --> 00:25:47,880 hvernig vitum við þegar við erum í lok af tengdum lista sem lítur svona út? 581 00:25:47,880 --> 00:25:50,035 582 00:25:50,035 --> 00:25:50,660 Þegar það er null. 583 00:25:50,660 --> 00:25:53,640 Og ég hef fulltrúa svona eins eins og rafmagns verkfræðingur gæti, 584 00:25:53,640 --> 00:25:56,420 með litla jarðtengingu tákn, nokkurs konar. 585 00:25:56,420 --> 00:25:58,246 En það bara þýðir null í þessu tilfelli. 586 00:25:58,246 --> 00:26:00,370 Þú getur teiknað það allir tala um leiðir, en þessi höfundur 587 00:26:00,370 --> 00:26:02,800 varð að nota þetta tákn hér. 588 00:26:02,800 --> 00:26:06,260 >> Svo lengi sem við erum að stringing öll þessi tengipunkta saman, 589 00:26:06,260 --> 00:26:08,600 Aðeins muna hvar sá fyrsti er, svo lengi 590 00:26:08,600 --> 00:26:11,760 eins og við leggja sérstaka tákn á mjög síðasta hnút á listanum, 591 00:26:11,760 --> 00:26:15,130 og við munum nota null, því það er það sem við höfum í boði fyrir okkur, 592 00:26:15,130 --> 00:26:16,480 þessi listi er lokið. 593 00:26:16,480 --> 00:26:20,190 Og jafnvel ef ég bara gefa þér bendi til fyrsta frumefni, þú, sem forritari, 594 00:26:20,190 --> 00:26:22,486 getur vissulega fá aðgang að henni. 595 00:26:22,486 --> 00:26:24,360 En við skulum láta huga þinn reika svolítið, 596 00:26:24,360 --> 00:26:26,140 ef þeir eru ekki nú þegar alveg wandered-- hvað er 597 00:26:26,140 --> 00:26:28,723 að fara að vera í gangi tími finna neitt í þessum lista? 598 00:26:28,723 --> 00:26:30,450 599 00:26:30,450 --> 00:26:33,470 Fjandinn það, er það stór O n, sem er ekki slæmt, í sanngirni. 600 00:26:33,470 --> 00:26:34,800 En það er línulegt. 601 00:26:34,800 --> 00:26:37,980 Við höfum gefið upp hvaða lögun af fylki með því að færa meira 602 00:26:37,980 --> 00:26:43,130 til þessa mynd af virk ofið saman eða tengd hnúður? 603 00:26:43,130 --> 00:26:44,970 604 00:26:44,970 --> 00:26:46,687 Við höfum gefið upp handahófi aðgang. 605 00:26:46,687 --> 00:26:48,770 An array er gott vegna þess að stærðfræðilega allt 606 00:26:48,770 --> 00:26:50,340 er aftur til baka til baka til baka. 607 00:26:50,340 --> 00:26:52,370 Jafnvel þótt þessari mynd lítur falleg, og jafnvel 608 00:26:52,370 --> 00:26:55,830 þó það lítur út eins og þessi hnúður eru vel aðskildar, í raun 609 00:26:55,830 --> 00:26:56,830 þeir gætu verið hvar sem er. 610 00:26:56,830 --> 00:27:01,590 OX1, Ox50, Ox123, Ox99, þessir hnúður gæti verið hvar sem er. 611 00:27:01,590 --> 00:27:05,960 Vegna malloc er tekið frá minni frá hrúga, en hvar í hrúga. 612 00:27:05,960 --> 00:27:09,080 Þú þarft ekki endilega að vita að það er að fara að vera aftur til baka til baka. 613 00:27:09,080 --> 00:27:12,460 Og svo þessi mynd í veruleika er ekki að fara að vera alveg þetta nokkuð. 614 00:27:12,460 --> 00:27:16,140 >> Svo það er að fara að taka a hluti af vinna til að framkvæma þessa aðgerð. 615 00:27:16,140 --> 00:27:17,880 Svo skulum framkvæma leit nú. 616 00:27:17,880 --> 00:27:20,250 Og við munum sjá hvers konar a sniðug leið til að gera þetta. 617 00:27:20,250 --> 00:27:24,660 Svo ef ég er að leita virka og Ég gefa breytilega, heiltala n 618 00:27:24,660 --> 00:27:28,490 að leita að, ég þarf að vita Ný setningafræði fyrir að leita inni 619 00:27:28,490 --> 00:27:32,400 af byggingu sem er benti til, að finna n. 620 00:27:32,400 --> 00:27:33,210 Svo skulum gera þetta. 621 00:27:33,210 --> 00:27:36,030 >> Svo fyrst ég er að fara að fara undan og lýsa hnút *. 622 00:27:36,030 --> 00:27:39,400 Og ég ætla að kalla það músina, bara með því að venju. 623 00:27:39,400 --> 00:27:41,710 Og ég ætla að frumstilla hana fyrst. 624 00:27:41,710 --> 00:27:43,770 Og nú get ég gert þetta í fjölda vegu. 625 00:27:43,770 --> 00:27:45,436 En ég ætla að taka sameiginlega nálgun. 626 00:27:45,436 --> 00:27:50,180 Þó að bendi er ekki jafnt null, og það er gild setningafræði. 627 00:27:50,180 --> 00:27:54,550 Og það þýðir bara að gera eftirfarandi, svo lengi sem þú ert ekki að benda á neitt. 628 00:27:54,550 --> 00:27:55,800 Hvað vil ég að gera? 629 00:27:55,800 --> 00:28:01,939 >> Ef bendillinn punktur n, láttu mig aftur til að equals-- jafnt hvað? 630 00:28:01,939 --> 00:28:03,105 Hvaða gildi á ég að leita að? 631 00:28:03,105 --> 00:28:04,920 632 00:28:04,920 --> 00:28:06,590 Raunveruleg n sem var samþykkt í. 633 00:28:06,590 --> 00:28:09,020 Svo er hér annar þáttur C og mörgum tungumálum. 634 00:28:09,020 --> 00:28:13,705 Jafnvel þótt uppbyggingu kallast hnút hefur gildi n, algerlega lögmæta 635 00:28:13,705 --> 00:28:17,530 einnig hafa a heimamaður rök eða breytu sem heitir n. 636 00:28:17,530 --> 00:28:20,085 Því jafnvel við, með manna augum, geta greint 637 00:28:20,085 --> 00:28:22,087 að þessi n er væntanlega frábrugðið þessu n. 638 00:28:22,087 --> 00:28:23,420 Þar sem setningafræði er öðruvísi. 639 00:28:23,420 --> 00:28:26,211 Þú hefur fengið punkt og bendi, en this einn hefur ekkert sem heitir. 640 00:28:26,211 --> 00:28:27,290 Svo er þetta í lagi. 641 00:28:27,290 --> 00:28:29,120 Það er í lagi að kalla þá sömu hlutina. 642 00:28:29,120 --> 00:28:32,380 >> Ef ég að þú finnur þetta, ég er að fara að vilja til að gera eitthvað 643 00:28:32,380 --> 00:28:35,000 eins tilkynna að við fundum n. 644 00:28:35,000 --> 00:28:37,930 Og við munum fara að sem comment eða sauðakóðanum kóða. 645 00:28:37,930 --> 00:28:40,190 Annars, og hér er áhugaverður hluti, hvað 646 00:28:40,190 --> 00:28:47,320 ég vil gera ef núverandi hnút er ekki með n sem ég þykir vænt um? 647 00:28:47,320 --> 00:28:50,700 Hvernig get ég ná eftirfarandi? 648 00:28:50,700 --> 00:28:53,710 Ef fingur minn á að augnablik er PTR, og það er 649 00:28:53,710 --> 00:28:55,920 benda á hvað Fyrsta er að benda á, 650 00:28:55,920 --> 00:28:59,290 hvernig færi ég fingur minn að næsta hnút í númerið? 651 00:28:59,290 --> 00:29:01,915 Jæja, hvað er að breadcrumb við erum að fara að fylgja í þessu tilviki? 652 00:29:01,915 --> 00:29:03,464 653 00:29:03,464 --> 00:29:04,380 Áhorfendur: [inaudible]. 654 00:29:04,380 --> 00:29:05,630 DAVID J. MALAN: Já, svo næst. 655 00:29:05,630 --> 00:29:06,640 656 00:29:06,640 --> 00:29:09,824 Svo ef ég fer aftur til mín númer hérna, reyndar er ég 657 00:29:09,824 --> 00:29:12,990 að fara á undan og segja músina, sem er bara tímabundin variable-- það 658 00:29:12,990 --> 00:29:15,320 skrýtið nafn, PTR, en það er bara eins og temp-- 659 00:29:15,320 --> 00:29:19,234 Ég ætla að setja músina jafnt hvað bendillinn is-- 660 00:29:19,234 --> 00:29:22,150 og aftur, þetta er að fara til vera a litla þrjótur fyrir moment-- punkt næsta. 661 00:29:22,150 --> 00:29:23,551 662 00:29:23,551 --> 00:29:26,550 Í öðrum orðum, ég er að fara að taka minn fingur sem er að benda á þetta hnút 663 00:29:26,550 --> 00:29:31,247 hér og ég ætla að segja, þú veist hvað, taka a líta á næsta sviði 664 00:29:31,247 --> 00:29:33,330 og færa fingurinn til hvað sem það er að benda á. 665 00:29:33,330 --> 00:29:35,163 Og þetta er að fara til endurtaka, endurtaka, endurtaka. 666 00:29:35,163 --> 00:29:37,630 En þegar er fingur minn hætta að gera neitt á öllum? 667 00:29:37,630 --> 00:29:40,095 Eins fljótt og hvaða línu af kóða ánægja í? 668 00:29:40,095 --> 00:29:40,970 Áhorfendur: [inaudible] 669 00:29:40,970 --> 00:29:43,060 DAVID J. MALAN: Ef lið á meðan bendillinn er ekki jafn null. 670 00:29:43,060 --> 00:29:44,900 Á einhverjum tímapunkti fingur er mitt að fara að benda á null 671 00:29:44,900 --> 00:29:47,070 og ég ætla að gera sér grein fyrir það er í lok þessa lista. 672 00:29:47,070 --> 00:29:48,910 Nú, þetta er svolítið hvítur lygi fyrir einfaldleika. 673 00:29:48,910 --> 00:29:51,580 Það kemur í ljós að jafnvel þótt við bara lært þetta punktur tákn 674 00:29:51,580 --> 00:29:55,220 fyrir mannvirki, bendillinn er ekki strúktúr. 675 00:29:55,220 --> 00:29:56,580 PTR er hvað? 676 00:29:56,580 --> 00:29:58,350 Bara til að vera meira nitpicky. 677 00:29:58,350 --> 00:29:59,720 678 00:29:59,720 --> 00:30:01,360 Það er bendi á hnút. 679 00:30:01,360 --> 00:30:03,120 Það er ekki hnút sig. 680 00:30:03,120 --> 00:30:06,650 Ef ég hefði ekkert stjörnu hérna, bendi absolutely-- það er hnútur. 681 00:30:06,650 --> 00:30:08,650 Þetta er eins og viku einum yfirlýsing um breytu, 682 00:30:08,650 --> 00:30:10,120 jafnvel þótt orðið "hnútur" er nýr. 683 00:30:10,120 --> 00:30:13,860 >> En um leið og við kynna a stjörnu, það er nú bendi til hnút. 684 00:30:13,860 --> 00:30:17,960 Og því miður er ekki hægt að nota punktur ritháttur fyrir bendi. 685 00:30:17,960 --> 00:30:21,070 Þú þarft að nota örina ritháttur, sem sláandi, 686 00:30:21,070 --> 00:30:23,470 er í fyrsta sinn allir stykki af setningafræði lítur innsæi. 687 00:30:23,470 --> 00:30:25,245 Þetta lítur bókstaflega eins og ör. 688 00:30:25,245 --> 00:30:26,370 Og svo er það gott. 689 00:30:26,370 --> 00:30:28,995 Og hérna bókstaflega lítur út eins og ör. 690 00:30:28,995 --> 00:30:31,870 Þannig að ég held að það er að la-- ég ekki held ég yfir-fremja here-- ég 691 00:30:31,870 --> 00:30:34,120 held það er síðasta nýja stykki af setningafræði sem við erum að fara að sjá. 692 00:30:34,120 --> 00:30:36,500 Og sem betur fer, það er örugglega svolítið meira innsæi. 693 00:30:36,500 --> 00:30:40,090 >> Nú, fyrir þá sem gæti verið gott gamla leiðin, 694 00:30:40,090 --> 00:30:42,550 þú getur samt notað punktur tákn. 695 00:30:42,550 --> 00:30:45,380 En eins og á Mánudagur samtal, við fyrst 696 00:30:45,380 --> 00:30:50,530 þarf að fara þangað, fara til að takast, og þá opna reitinn. 697 00:30:50,530 --> 00:30:51,897 Svo er þetta líka rétt. 698 00:30:51,897 --> 00:30:53,730 Og hreinskilnislega, þetta er lítið meira smámunasamur. 699 00:30:53,730 --> 00:30:56,530 Þú ert bókstaflega að segja, dereference bendillinn og fara þangað. 700 00:30:56,530 --> 00:30:59,320 Þá grípa .n, á sviði sem kallast n. 701 00:30:59,320 --> 00:31:01,370 En hreinskilnislega, enginn vill að slá eða lesa þetta. 702 00:31:01,370 --> 00:31:03,620 Og svo að heimurinn fundin örin ritháttur, sem 703 00:31:03,620 --> 00:31:06,980 jafngildir, eins, það er bara nokkur dæmi um setningarleg sykur. 704 00:31:06,980 --> 00:31:10,570 Svo fínt leið til að segja þetta lítur betur, eða lítur einfaldara. 705 00:31:10,570 --> 00:31:12,296 >> Svo nú er ég að fara að gera eitt annað hlutur. 706 00:31:12,296 --> 00:31:15,420 Ég ætla að segja "hlé" þegar ég hef fann það svo að ég halda ekki útlit fyrir það. 707 00:31:15,420 --> 00:31:17,620 En þetta er GIST af a leita virka. 708 00:31:17,620 --> 00:31:21,710 En það er mun auðveldara, í endir, ekki að ganga í gegnum kóðann. 709 00:31:21,710 --> 00:31:25,570 Þetta er örugglega formleg framkvæmd af leit í dreifingu kóða dag. 710 00:31:25,570 --> 00:31:30,530 Ég þori að segja að innskotið er ekki sérstaklega gaman að ganga í gegnum 711 00:31:30,530 --> 00:31:33,180 sjónrænt, né er eytt, jafnvel þó í lok dags 712 00:31:33,180 --> 00:31:35,460 þeir sjóða niður í nokkuð einföld leitandi. 713 00:31:35,460 --> 00:31:36,330 >> Svo skulum gera þetta. 714 00:31:36,330 --> 00:31:39,250 Ef þú munt húmor mig hingað, gerði ég koma fullt af streitu kúlur. 715 00:31:39,250 --> 00:31:40,620 Ég kom með fullt af tölum. 716 00:31:40,620 --> 00:31:46,562 Og gætum við fengið bara nokkra sjálfboðaliða að tákna 9, 17, 20, 22, 29, og 34? 717 00:31:46,562 --> 00:31:48,270 Svo í raun allir sem er hér í dag. 718 00:31:48,270 --> 00:31:50,170 719 00:31:50,170 --> 00:31:52,760 Það var einn, tveir, þrír, fjórir, fimm, sex manns. 720 00:31:52,760 --> 00:31:55,740 Og ég hef verið beðin um að go-- sjá, nei einn í bak vekur hendur. 721 00:31:55,740 --> 00:32:01,910 OK, einn, tveir, þrír, fjórir, five-- láta mig hlaða balance-- sex. 722 00:32:01,910 --> 00:32:03,051 OK, þú sex koma upp. 723 00:32:03,051 --> 00:32:04,050 Við þurfum aðra. 724 00:32:04,050 --> 00:32:05,460 Við tókum auka streitu kúlur. 725 00:32:05,460 --> 00:32:08,200 Og ef þú gætir, að bara smá stund, lína 726 00:32:08,200 --> 00:32:10,490 ykkur upp bara svona mynd hér. 727 00:32:10,490 --> 00:32:15,200 728 00:32:15,200 --> 00:32:15,959 >> Allt í lagi. 729 00:32:15,959 --> 00:32:17,125 Við skulum sjá, hvað er nafnið þitt? 730 00:32:17,125 --> 00:32:17,550 >> Áhorfendur: Andrew. 731 00:32:17,550 --> 00:32:18,800 >> DAVID J. MALAN: Andrew, þú ert númer 9. 732 00:32:18,800 --> 00:32:19,540 Gaman að hitta þig. 733 00:32:19,540 --> 00:32:20,400 Hér þú fara. 734 00:32:20,400 --> 00:32:21,593 735 00:32:21,593 --> 00:32:22,176 Áhorfendur: Jen. 736 00:32:22,176 --> 00:32:22,662 DAVID J. MALAN: Jen. 737 00:32:22,662 --> 00:32:23,162 David. 738 00:32:23,162 --> 00:32:23,765 Númer 17. 739 00:32:23,765 --> 00:32:24,950 740 00:32:24,950 --> 00:32:25,450 Já? 741 00:32:25,450 --> 00:32:26,400 >> Áhorfendur: Ég er Julia. 742 00:32:26,400 --> 00:32:26,980 >> DAVID J. MALAN: Julia, David. 743 00:32:26,980 --> 00:32:27,545 Númer 20. 744 00:32:27,545 --> 00:32:28,507 745 00:32:28,507 --> 00:32:29,340 Áhorfendur: Christian. 746 00:32:29,340 --> 00:32:30,715 DAVID J. MALAN: Christian, David. 747 00:32:30,715 --> 00:32:31,541 Númer 22. 748 00:32:31,541 --> 00:32:32,040 Og? 749 00:32:32,040 --> 00:32:32,649 >> Áhorfendur: JP. 750 00:32:32,649 --> 00:32:33,440 DAVID J. MALAN: JP. 751 00:32:33,440 --> 00:32:34,880 Númer 29. 752 00:32:34,880 --> 00:32:37,080 Svo fara á undan og fá in-- Uh oh. 753 00:32:37,080 --> 00:32:38,486 754 00:32:38,486 --> 00:32:38,985 Uh oh. 755 00:32:38,985 --> 00:32:39,650 756 00:32:39,650 --> 00:32:40,150 Biðstaða. 757 00:32:40,150 --> 00:32:41,360 758 00:32:41,360 --> 00:32:42,390 20. 759 00:32:42,390 --> 00:32:43,682 Hefur einhver hafa a merkið? 760 00:32:43,682 --> 00:32:44,890 Áhorfendur: Ég hef fengið Sharpie. 761 00:32:44,890 --> 00:32:45,660 DAVID J. MALAN: Áttu Sharpie? 762 00:32:45,660 --> 00:32:46,159 OK. 763 00:32:46,159 --> 00:32:47,577 764 00:32:47,577 --> 00:32:49,160 Og er einhver hafa a stykki af pappír? 765 00:32:49,160 --> 00:32:51,562 766 00:32:51,562 --> 00:32:52,270 Vistaðu fyrirlestur. 767 00:32:52,270 --> 00:32:53,810 768 00:32:53,810 --> 00:32:55,362 Komdu á. 769 00:32:55,362 --> 00:32:56,320 Áhorfendur: Við höfum það. 770 00:32:56,320 --> 00:32:57,600 DAVID J. MALAN: Við fengum það? 771 00:32:57,600 --> 00:32:58,577 Allt í lagi, þakka þér. 772 00:32:58,577 --> 00:33:01,380 773 00:33:01,380 --> 00:33:02,520 Hér förum. 774 00:33:02,520 --> 00:33:03,582 Var þetta frá þér? 775 00:33:03,582 --> 00:33:04,540 Þú spara bara daginn. 776 00:33:04,540 --> 00:33:05,670 777 00:33:05,670 --> 00:33:07,220 Svo 29. 778 00:33:07,220 --> 00:33:10,510 779 00:33:10,510 --> 00:33:11,110 Allt í lagi. 780 00:33:11,110 --> 00:33:13,360 781 00:33:13,360 --> 00:33:14,890 Ég rétt stafað 29, ​​en allt í lagi. 782 00:33:14,890 --> 00:33:15,720 Fara á undan. 783 00:33:15,720 --> 00:33:18,114 Allt í lagi, ég skal gefa þér pennann aftur eftir augnablik. 784 00:33:18,114 --> 00:33:19,280 Þannig að við höfum þessar fólkinu hér. 785 00:33:19,280 --> 00:33:20,330 Við skulum hafa eitt annað. 786 00:33:20,330 --> 00:33:23,750 Gabe, viltu leika fyrsta þáttur hér? 787 00:33:23,750 --> 00:33:25,705 Við þurfum þig til að benda á þessum fínu fólkinu. 788 00:33:25,705 --> 00:33:26,930 789 00:33:26,930 --> 00:33:31,030 Svo 9, 17, 20, 22, flokka af 29, og þá 34. 790 00:33:31,030 --> 00:33:32,160 791 00:33:32,160 --> 00:33:33,325 Did við missa einhvern? 792 00:33:33,325 --> 00:33:33,950 Ég lendi í 34. 793 00:33:33,950 --> 00:33:36,730 Hvar did-- lagi, sem vill vera 34? 794 00:33:36,730 --> 00:33:37,605 OK, komdu upp, 34. 795 00:33:37,605 --> 00:33:39,280 796 00:33:39,280 --> 00:33:41,220 Allt í lagi, þetta verður vel þess virði að hápunktur. 797 00:33:41,220 --> 00:33:41,550 Hvað er nafn þitt? 798 00:33:41,550 --> 00:33:42,040 >> Áhorfendur: Pétur. 799 00:33:42,040 --> 00:33:43,456 >> DAVID J. MALAN: Pétur, komdu upp. 800 00:33:43,456 --> 00:33:46,810 Allt í lagi, þannig að hér er allt fullt af hnúður. 801 00:33:46,810 --> 00:33:49,060 Hvert ykkur táknar einn af þessum ferhyrnda. 802 00:33:49,060 --> 00:33:51,930 Og Gabe, pínu skrýtið maður út, táknar fyrst. 803 00:33:51,930 --> 00:33:54,850 Svo er bendillinn hans lítið minni á skjánum en allir aðrir. 804 00:33:54,850 --> 00:33:58,120 Og í þessu tilfelli, hver vinstri Hendur er að fara að annaðhvort benda niður, 805 00:33:58,120 --> 00:34:01,085 þannig fulltrúi null, svo bara skortur á bendi, 806 00:34:01,085 --> 00:34:03,210 eða það er að fara að vera að benda á hnút við hliðina á þér. 807 00:34:03,210 --> 00:34:05,440 >> Svo núna ef þú adorn yður eins og á myndinni 808 00:34:05,440 --> 00:34:07,585 hér fara á undan og benda hvert á annað, með Gabe 809 00:34:07,585 --> 00:34:11,030 einkum benda á númer 9 til að tákna listann. 810 00:34:11,030 --> 00:34:14,050 OK, og fjölda 34, vinstri hönd þín ætti bara að vera að benda á gólfið. 811 00:34:14,050 --> 00:34:15,750 >> Allt í lagi, svo þetta er tengda listanum. 812 00:34:15,750 --> 00:34:17,580 Þannig að þetta er atburðarás sem um ræðir. 813 00:34:17,580 --> 00:34:20,210 Og reyndar, þetta er dæmigert á bekknum á vandamálum 814 00:34:20,210 --> 00:34:21,929 að þú gætir reynt að leysa með kóða. 815 00:34:21,929 --> 00:34:25,020 Þú vilt að lokum að setja ný þáttur í listanum. 816 00:34:25,020 --> 00:34:27,494 Í þessu tilfelli erum við að fara að reyna að setja númer 55. 817 00:34:27,494 --> 00:34:28,500 818 00:34:28,500 --> 00:34:30,860 En það er að fara að vera mismunandi tilvik í huga. 819 00:34:30,860 --> 00:34:34,409 Og reyndar, þetta er að fara að vera einn af stór-mynd Takeaways hér, er, 820 00:34:34,409 --> 00:34:35,659 hvað eru mismunandi tilvikum. 821 00:34:35,659 --> 00:34:39,120 Hvað eru mismunandi ef aðstæður eða útibú að kerfið þitt gæti hafa? 822 00:34:39,120 --> 00:34:42,024 >> Jæja, númerið sem þú ert að reyna að settu, sem við vitum nú að vera 55, 823 00:34:42,024 --> 00:34:44,650 en ef þú did ekki vita fyrirfram, eflaust allt 824 00:34:44,650 --> 00:34:47,840 fellur inn í að minnsta kosti þremur mögulegar aðstæður. 825 00:34:47,840 --> 00:34:49,717 Hvar gæti nýtt frumefni að vera? 826 00:34:49,717 --> 00:34:51,050 Áhorfendur: Og enda eða miðju. 827 00:34:51,050 --> 00:34:54,150 DAVID J. MALAN: Í lokin á miðju, eða í upphafi. 828 00:34:54,150 --> 00:34:56,650 Svo ég kröfu að það er að minnsta kosti þrjú vandamál sem við þurfum að leysa. 829 00:34:56,650 --> 00:34:58,691 Við skulum velja það sem er kannski að öllum líkindum einfaldasta 830 00:34:58,691 --> 00:35:01,090 einn, þar sem nýja þáttur tilheyrir í upphafi. 831 00:35:01,090 --> 00:35:04,040 Þannig að ég ætla að hafa kóðann alveg eins leita, sem ég skrifaði bara. 832 00:35:04,040 --> 00:35:07,670 Og ég ætla að hafa PTR, sem Ég tákna hér með fingri mínum, 833 00:35:07,670 --> 00:35:08,370 eins og venjulega. 834 00:35:08,370 --> 00:35:12,430 >> Og muna, hvaða gildi gerði við frumstilla PTR að? 835 00:35:12,430 --> 00:35:15,300 Þannig að við frumstilla hana til núll í upphafi. 836 00:35:15,300 --> 00:35:16,410 837 00:35:16,410 --> 00:35:19,770 En þá hvað gerði við gerum þegar við voru inni leita virka okkar? 838 00:35:19,770 --> 00:35:20,940 839 00:35:20,940 --> 00:35:24,870 Við setjum það jafn fyrst, sem þýðir ekki að gera þetta. 840 00:35:24,870 --> 00:35:25,890 841 00:35:25,890 --> 00:35:30,570 Ef ég sett PTR jafnan fyrst, hvað ætti hönd mín raunverulega vera að benda á? 842 00:35:30,570 --> 00:35:31,070 Rétt. 843 00:35:31,070 --> 00:35:33,290 Svo ef Gabe og ég erum að fara að vera jafnir gildi hér, 844 00:35:33,290 --> 00:35:34,760 við þurfum bæði að benda á númer 9. 845 00:35:34,760 --> 00:35:36,420 >> Svo var þetta upphafið af sögu okkar. 846 00:35:36,420 --> 00:35:38,700 Og nú er þetta bara einfalt, jafnvel þótt setningafræði er nýtt. 847 00:35:38,700 --> 00:35:40,580 Hugmyndalega er þetta bara línuleg leit. 848 00:35:40,580 --> 00:35:42,750 Er 55 jafnt 9? 849 00:35:42,750 --> 00:35:45,559 Eða frekar, segjum minna en 9. 850 00:35:45,559 --> 00:35:47,600 Þar sem ég er að reyna að reikna út hvar á að setja 55. 851 00:35:47,600 --> 00:35:51,270 Minna en 9, minna en 17, minna en 20, færri en 22, færri en 29, 852 00:35:51,270 --> 00:35:52,510 minna en 34, nr. 853 00:35:52,510 --> 00:35:55,080 Svo nú erum við í tilfelli einn af amk þremur. 854 00:35:55,080 --> 00:35:59,910 >> Ef ég vil að setja 55 yfir hér, hvað línur af kóða þarf að fá fram? 855 00:35:59,910 --> 00:36:01,890 Hvernig virkar þetta mynd af menn þurfa að breyta? 856 00:36:01,890 --> 00:36:03,181 Hvað á ég að gera með vinstri hendi minni? 857 00:36:03,181 --> 00:36:04,530 858 00:36:04,530 --> 00:36:07,360 Þetta ætti að vera núll í upphafi, vegna þess að ég er í lok listanum. 859 00:36:07,360 --> 00:36:09,318 Og hvað ætti að gerast hér með Pétri, var það? 860 00:36:09,318 --> 00:36:10,520 861 00:36:10,520 --> 00:36:12,430 Hann er augljóslega að fara að benda á mig. 862 00:36:12,430 --> 00:36:15,580 Svo ég kröfu að það er að minnsta kosti tvær línur af kóða í dæmi um kóða frá í dag 863 00:36:15,580 --> 00:36:18,570 það er að fara að framkvæma þetta atburðarás bæta 55 við sporðinn. 864 00:36:18,570 --> 00:36:20,950 Og gæti ég hafa einhver hop upp og bara tákna 55? 865 00:36:20,950 --> 00:36:22,200 Allt í lagi, þú ert nýja 55. 866 00:36:22,200 --> 00:36:23,580 867 00:36:23,580 --> 00:36:27,054 >> Svo nú hvað ef næsta atburðarás kemur með, 868 00:36:27,054 --> 00:36:29,720 og við viljum að setja að minnsta hefst eða yfirmaður þessum lista? 869 00:36:29,720 --> 00:36:31,100 Og hvað er nafnið þitt, númer 55? 870 00:36:31,100 --> 00:36:31,420 >> Áhorfendur: Jack. 871 00:36:31,420 --> 00:36:32,295 >> DAVID J. MALAN: Jack? 872 00:36:32,295 --> 00:36:33,585 Allt í lagi, gaman að hitta þig. 873 00:36:33,585 --> 00:36:34,210 Velkomin um borð. 874 00:36:34,210 --> 00:36:36,640 Svo nú erum við að fara að setja, segjum talan 5. 875 00:36:36,640 --> 00:36:39,840 Hér er annað mál af þrír við komum upp með áður. 876 00:36:39,840 --> 00:36:43,050 Þannig að ef 5 tilheyrir í upphafi, við skulum sjá hvernig við að finna það út. 877 00:36:43,050 --> 00:36:46,310 Ég frumstilla PTR minn bendillinn til fjölda 9 aftur. 878 00:36:46,310 --> 00:36:49,140 Og ég ljóst, ó, 5 er minna en 9. 879 00:36:49,140 --> 00:36:50,880 Svo festa þessa mynd fyrir okkur. 880 00:36:50,880 --> 00:36:54,820 Hvers hendur, Gabe er eða David or-- hvað er númer 9 er nafn? 881 00:36:54,820 --> 00:36:55,740 >> Áhorfendur: Jen. 882 00:36:55,740 --> 00:36:58,406 >> DAVID J. MALAN: hands-- Jen er sem höndum okkar þarf að breyta? 883 00:36:58,406 --> 00:36:58,905 884 00:36:58,905 --> 00:37:00,970 Allt í lagi, svo Gabe bendir á hvað nú? 885 00:37:00,970 --> 00:37:01,640 Á mig. 886 00:37:01,640 --> 00:37:02,750 Ég er nýr hnút. 887 00:37:02,750 --> 00:37:04,870 Svo ég ætla bara svona færa hér til að sjá það sjónrænt. 888 00:37:04,870 --> 00:37:06,435 Og á meðan hvað ég benda það? 889 00:37:06,435 --> 00:37:07,910 890 00:37:07,910 --> 00:37:09,020 Enn þar sem ég er að benda. 891 00:37:09,020 --> 00:37:10,000 Svo er það það. 892 00:37:10,000 --> 00:37:13,717 Svo bara virkilega ein lína af kóða fastur þetta tiltekna mál, það virðist. 893 00:37:13,717 --> 00:37:14,800 Allt í lagi, svo það er gott. 894 00:37:14,800 --> 00:37:17,580 Og getur einhver verið staðgengill fyrir 5? 895 00:37:17,580 --> 00:37:18,080 Komdu upp. 896 00:37:18,080 --> 00:37:20,270 897 00:37:20,270 --> 00:37:21,320 Við munum fá þér næst. 898 00:37:21,320 --> 00:37:24,280 >> Allt í lagi, svo now-- og Sem innskot, nöfn 899 00:37:24,280 --> 00:37:28,510 Ég ætla ekki að gera skýr minnst á hægri nú, pred músina, forvera músina 900 00:37:28,510 --> 00:37:31,260 og ný músina, það er bara nöfn gefin 901 00:37:31,260 --> 00:37:35,280 í dæmi um kóða til ábendingum eða hendur mínar sem er eins konar vísa í kring. 902 00:37:35,280 --> 00:37:36,060 Hvað er nafn þitt? 903 00:37:36,060 --> 00:37:36,700 >> Áhorfendur: Christine. 904 00:37:36,700 --> 00:37:37,100 >> DAVID J. MALAN: Christine. 905 00:37:37,100 --> 00:37:38,090 Velkomin um borð. 906 00:37:38,090 --> 00:37:42,180 Allt í lagi, þannig að við skulum nú íhuga örlítið meira pirrandi atburðarás, 907 00:37:42,180 --> 00:37:46,350 þar sem ég vil setja inn eitthvað eins og 26 í þessu. 908 00:37:46,350 --> 00:37:47,090 20? 909 00:37:47,090 --> 00:37:47,590 Hvað? 910 00:37:47,590 --> 00:37:50,510 Þetta are-- gott við höfum pennann. 911 00:37:50,510 --> 00:37:51,955 Allt í lagi, 20. 912 00:37:51,955 --> 00:37:53,640 913 00:37:53,640 --> 00:37:57,570 Ef einhver gæti fengið annað stykki af pappír tilbúinn, bara í case-- allt í lagi. 914 00:37:57,570 --> 00:37:58,370 Ó, áhugavert. 915 00:37:58,370 --> 00:37:59,760 916 00:37:59,760 --> 00:38:02,390 Jæja þetta er dæmi af fyrirlestri galla. 917 00:38:02,390 --> 00:38:03,894 Allt í lagi svo er það nafnið þitt aftur? 918 00:38:03,894 --> 00:38:04,560 Áhorfendur: Julia. 919 00:38:04,560 --> 00:38:07,559 DAVID J. MALAN: Julia, getur þú skjóta út og láta sem þú varst aldrei þarna? 920 00:38:07,559 --> 00:38:09,040 OK, þetta gerðist aldrei. 921 00:38:09,040 --> 00:38:09,680 Þakka þér. 922 00:38:09,680 --> 00:38:12,180 Svo býst við viljum setja Julia í þessu tengda listanum. 923 00:38:12,180 --> 00:38:13,780 Hún er fjöldi 20. 924 00:38:13,780 --> 00:38:15,530 Og auðvitað er hún að fara að tilheyra að minnsta 925 00:38:15,530 --> 00:38:17,521 begin-- ekki benda á neitt ennþá. 926 00:38:17,521 --> 00:38:20,020 Svo hönd þín getur konar vera niður null eða einhver sorp gildi. 927 00:38:20,020 --> 00:38:21,210 Skulum segja fljótleg saga. 928 00:38:21,210 --> 00:38:22,980 Ég benti á númer 5 í þetta sinn. 929 00:38:22,980 --> 00:38:23,880 Þá er ég að athuga 9. 930 00:38:23,880 --> 00:38:25,130 Þá er ég að athuga 17. 931 00:38:25,130 --> 00:38:26,247 Þá er ég að athuga 22. 932 00:38:26,247 --> 00:38:27,650 933 00:38:27,650 --> 00:38:32,485 Og átta sig á, ooh, Julia þarf að fara áður en 22. 934 00:38:32,485 --> 00:38:33,580 935 00:38:33,580 --> 00:38:34,660 Svo þarf það að gerast? 936 00:38:34,660 --> 00:38:35,786 937 00:38:35,786 --> 00:38:36,910 Hvers hendur þarf að breyta? 938 00:38:36,910 --> 00:38:38,360 Julia er, minn, or-- hvað er nafnið þitt aftur? 939 00:38:38,360 --> 00:38:39,230 >> Áhorfendur: Christian. 940 00:38:39,230 --> 00:38:40,060 >> DAVID J. MALAN: Christian eða? 941 00:38:40,060 --> 00:38:40,560 >> Áhorfendur: Andy. 942 00:38:40,560 --> 00:38:40,905 >> DAVID J. MALAN: Andy. 943 00:38:40,905 --> 00:38:41,654 Christian eða Andy? 944 00:38:41,654 --> 00:38:44,280 945 00:38:44,280 --> 00:38:45,690 Andy þarf að benda á? 946 00:38:45,690 --> 00:38:46,780 947 00:38:46,780 --> 00:38:47,341 Julia. 948 00:38:47,341 --> 00:38:47,840 Allt í lagi. 949 00:38:47,840 --> 00:38:48,960 Svo Andy, viltu benda á Julia? 950 00:38:48,960 --> 00:38:50,120 En bíddu í eina mínútu. 951 00:38:50,120 --> 00:38:53,260 Í sögunni svona langt, Ég er the tegund af einn 952 00:38:53,260 --> 00:38:56,800 í forsvari, í þeim skilningi að bendillinn er hlutur sem er 953 00:38:56,800 --> 00:38:57,850 flytja í gegnum listann. 954 00:38:57,850 --> 00:39:00,800 Við gætum hafa nafn fyrir Andy, en það er engin breytu sem heitir Andy. 955 00:39:00,800 --> 00:39:04,320 Eina önnur breytan sem við höfum er fyrst, sem er táknað með Gabe. 956 00:39:04,320 --> 00:39:07,690 >> Svo er þetta í raun hvers vegna því langt að við höfum ekki þörf á þessu. 957 00:39:07,690 --> 00:39:10,846 En nú á skjánum er nefna aftur að pred músina. 958 00:39:10,846 --> 00:39:11,970 Svo láta mig vera skýrari. 959 00:39:11,970 --> 00:39:14,820 Ef þetta er bendillinn, ég hafði betur fá smá meira greindur 960 00:39:14,820 --> 00:39:15,950 um endurtekning mína. 961 00:39:15,950 --> 00:39:19,580 Ef þú dont 'hugur ekki að fara minn hérna aftur, sem bendir hér, bendir hér. 962 00:39:19,580 --> 00:39:22,500 En láta mig hafa pred músina, forvera músina, það er 963 00:39:22,500 --> 00:39:24,740 konar benda á að þáttur sem ég var bara á. 964 00:39:24,740 --> 00:39:27,330 Svo þegar ég fer hér, nú vinstri hönd mína uppfærslur. 965 00:39:27,330 --> 00:39:29,370 Þegar ég fer hér vinstri hönd mína uppfærslur. 966 00:39:29,370 --> 00:39:33,090 Og nú hef ég ekki aðeins bendi til þáttur sem fer eftir Julia, 967 00:39:33,090 --> 00:39:36,300 Ég er enn með músina til Andy, þátturinn áður. 968 00:39:36,300 --> 00:39:39,430 Svo þú hefur aðgang, í meginatriðum, breadcrumbs, ef þú vilt, 969 00:39:39,430 --> 00:39:41,500 að öllum tilskildum ábendingum. 970 00:39:41,500 --> 00:39:43,710 >> Þannig að ef ég er að benda á Andy og ég er líka að benda 971 00:39:43,710 --> 00:39:47,105 á Christian, sem hendur ætti nú að benda annars staðar? 972 00:39:47,105 --> 00:39:48,770 973 00:39:48,770 --> 00:39:51,960 Svo Andy getur nú benda á Julia. 974 00:39:51,960 --> 00:39:54,460 Julia geta nú benda á Christian. 975 00:39:54,460 --> 00:39:56,950 Vegna þess að hún er að afrita minn hægri hönd er bendi. 976 00:39:56,950 --> 00:40:00,044 Og það í raun setur þig aftur inn í þennan stað hér. 977 00:40:00,044 --> 00:40:02,460 Svo í stuttu máli, jafnvel þótt það er að taka okkur svona að eilífu 978 00:40:02,460 --> 00:40:04,510 að í raun og veru að uppfæra a tengd lista, átta sig 979 00:40:04,510 --> 00:40:06,580 að rekstri eru tiltölulega einföld. 980 00:40:06,580 --> 00:40:10,030 Það er einn, tveir, þrír línur af kóða á endanum. 981 00:40:10,030 --> 00:40:12,780 En vafinn í kringum þá línur af kóða væntanlega 982 00:40:12,780 --> 00:40:16,350 er hluti af rökfræði sem í raun spyr hvar eru við spurningunni? 983 00:40:16,350 --> 00:40:18,970 Erum við í upphafi, miðju eða hætta? 984 00:40:18,970 --> 00:40:21,890 >> Nú, það eru vissulega nokkrar aðrar Rekstur gætum framkvæma. 985 00:40:21,890 --> 00:40:24,880 Og þessar myndir hér bara sýna það sem við gerðum rétt með mönnum. 986 00:40:24,880 --> 00:40:26,080 Hvað um að fjarlægja? 987 00:40:26,080 --> 00:40:30,650 Ef ég vil, til dæmis, fjarlægja númer 34 eða 55, 988 00:40:30,650 --> 00:40:34,680 Ég gæti hafa sams konar kóða, en ég ætla að fara að þurfa einn eða tvo skref. 989 00:40:34,680 --> 00:40:36,110 Vegna þess að það er nýtt? 990 00:40:36,110 --> 00:40:40,460 Ef ég fjarlægja einhvern á endanum, eins og fjölda 55 og síðan 34, 991 00:40:40,460 --> 00:40:42,995 hvað hefur einnig að breytast þar sem ég gera það? 992 00:40:42,995 --> 00:40:44,870 Ég verð að ekki evict-- hvað er nafnið þitt aftur? 993 00:40:44,870 --> 00:40:45,380 >> Áhorfendur: Jack. 994 00:40:45,380 --> 00:40:46,255 >> DAVID J. MALAN: Jack. 995 00:40:46,255 --> 00:40:49,770 Ég verð að ekki aðeins evict-- frjáls Jack, svo bókstaflega að hringja ókeypis Jack, eða að minnsta kosti 996 00:40:49,770 --> 00:40:53,530 bendillinn þar líka, en nú hvað þarf að breyta með Pétri? 997 00:40:53,530 --> 00:40:55,510 Hönd hans betra að byrja að benda niður. 998 00:40:55,510 --> 00:40:59,300 Því eins fljótt og ég kalla frjáls á Jack, ef Peter er enn benda á Jack 999 00:40:59,300 --> 00:41:02,530 og ég að halda því að fara yfir lista og aðgangur þessu músina, 1000 00:41:02,530 --> 00:41:05,650 það er þegar okkar gamli vinur skiptingu kenna gæti raunverulega sparka í. 1001 00:41:05,650 --> 00:41:07,860 Vegna þess að við höfum gefið minni aftur til Jack. 1002 00:41:07,860 --> 00:41:10,760 >> Þú getur dvöl þar vandræðalega fyrir aðeins augnablik. 1003 00:41:10,760 --> 00:41:13,410 Vegna þess að við höfum bara nokkra endanlegar aðgerðir til að íhuga. 1004 00:41:13,410 --> 00:41:15,600 Fjarlægi höfuð listanum, eða beginning-- og þetta er 1005 00:41:15,600 --> 00:41:16,349 smá pirrandi. 1006 00:41:16,349 --> 00:41:19,640 Þar sem við verðum að vita að Gabe er eins konar sérstakt í þessari áætlun. 1007 00:41:19,640 --> 00:41:21,440 Vegna reyndar hefur hann eigin bendi hans. 1008 00:41:21,440 --> 00:41:24,860 Hann er ekki bara verið að benda á, sem er næstum allir aðrir hér. 1009 00:41:24,860 --> 00:41:28,112 >> Svo þegar höfuð á listanum er fjarlægð, sem hendur þarf að breyta núna? 1010 00:41:28,112 --> 00:41:29,070 Hvað er nafn þitt aftur? 1011 00:41:29,070 --> 00:41:29,450 >> Áhorfendur: Christine. 1012 00:41:29,450 --> 00:41:31,408 >> DAVID J. MALAN: Ég er hræðilegt á nöfn, greinilega. 1013 00:41:31,408 --> 00:41:34,011 Svo Christine og Gabe, sem hendur þarf til að breyta 1014 00:41:34,011 --> 00:41:36,510 þegar við reynum að fjarlægja Christine, númer 5, á myndinni? 1015 00:41:36,510 --> 00:41:37,550 1016 00:41:37,550 --> 00:41:38,820 Allt í lagi, þannig að við skulum gera Gabe. 1017 00:41:38,820 --> 00:41:40,950 Gabe er að fara að benda á, væntanlega, á númer 9. 1018 00:41:40,950 --> 00:41:42,230 1019 00:41:42,230 --> 00:41:44,642 En hvað næsta ætti að gerast? 1020 00:41:44,642 --> 00:41:46,600 Áhorfendur: Christine ætti vera núll [inaudible]. 1021 00:41:46,600 --> 00:41:50,244 DAVID J. MALAN: OK, eigum við líklega make-- Ég heyrði "null" einhvers staðar. 1022 00:41:50,244 --> 00:41:51,410 Áhorfendur: Null og frjáls hana. 1023 00:41:51,410 --> 00:41:51,855 DAVID J. MALAN: Null hvað? 1024 00:41:51,855 --> 00:41:53,074 Áhorfendur: Null og frjáls hana. 1025 00:41:53,074 --> 00:41:54,490 DAVID J. MALAN: Null og frjáls hana. 1026 00:41:54,490 --> 00:41:55,422 Svo er þetta mjög auðvelt. 1027 00:41:55,422 --> 00:41:58,380 Og það er fullkomin að þú ert nú að raða að standa þarna, ekki tilheyra. 1028 00:41:58,380 --> 00:42:00,430 Þar sem þú hefur verið aftengdir frá listanum. 1029 00:42:00,430 --> 00:42:02,820 Þú hefur í raun verið munaðarlaus úr listanum. 1030 00:42:02,820 --> 00:42:07,770 Og svo við höfðum betur að hringja frítt nú á Christine að gefa sem minni aftur. 1031 00:42:07,770 --> 00:42:10,240 Annars hvert skipti sem við eyða hnút úr listanum 1032 00:42:10,240 --> 00:42:14,230 við gætum verið að gera lista styttri, en í raun ekki minnkandi 1033 00:42:14,230 --> 00:42:15,096 stærð í minni. 1034 00:42:15,096 --> 00:42:17,720 Og svo ef við höldum að bæta og bæta, bæta hluti á listann, 1035 00:42:17,720 --> 00:42:19,280 tölvan mín gæti fengið hægar og hægari og hægari, 1036 00:42:19,280 --> 00:42:21,740 vegna þess að ég er að keyra út af minni, jafnvel ef ég er ekki í raun 1037 00:42:21,740 --> 00:42:25,580 nota bæti Christine er af minni lengur. 1038 00:42:25,580 --> 00:42:28,500 >> Svo í lok eru aðrar atburðarás, sem course-- flutningur 1039 00:42:28,500 --> 00:42:30,640 í miðju, flutningur í lok, eins og við sáum. 1040 00:42:30,640 --> 00:42:32,348 En meira áhugavert Áskorunin er nú 1041 00:42:32,348 --> 00:42:34,770 að fara að vera að íhuga nákvæmlega hvað gangi tíminn er kominn. 1042 00:42:34,770 --> 00:42:36,640 Svo ekki bara hægt að halda þinn stykki af pappír, ef Gabe, 1043 00:42:36,640 --> 00:42:38,640 þú myndi ekki huga að gefa allir streitu boltanum. 1044 00:42:38,640 --> 00:42:42,100 Þakka þér svo mikið að tengda listanum okkar sjálfboðaliða hér, ef þú gætir. 1045 00:42:42,100 --> 00:42:45,320 >> [Applause] 1046 00:42:45,320 --> 00:42:46,700 >> DAVID J. MALAN: Allt í lagi. 1047 00:42:46,700 --> 00:42:51,110 Svo a par af greiningar spurningar þá, ef ég gæti. 1048 00:42:51,110 --> 00:42:59,670 Við höfum séð þetta tákn áður, stór O og ómega, efri mörk 1049 00:42:59,670 --> 00:43:02,520 og lægri mörk á því hlaupandi tími sumra reiknirit. 1050 00:43:02,520 --> 00:43:04,950 Svo skulum íhuga bara a par af spurningum. 1051 00:43:04,950 --> 00:43:07,090 >> Eitt, og við sögðum henni áður, hvað er í gangi 1052 00:43:07,090 --> 00:43:10,647 tími leit er listi í skilmálar af stór O? 1053 00:43:10,647 --> 00:43:13,480 Hvað er efri á gangi tími leita tengda lista 1054 00:43:13,480 --> 00:43:16,340 eins framkvæmd af sjálfboðaliðum okkar hér? 1055 00:43:16,340 --> 00:43:17,820 Það er stór O n, línuleg. 1056 00:43:17,820 --> 00:43:20,630 Vegna þess að í versta tilfelli, þátturinn, eins 55, 1057 00:43:20,630 --> 00:43:23,830 við gætum verið að leita gæti verið þar Jack var, alla leið á enda. 1058 00:43:23,830 --> 00:43:28,250 Og því miður, ólíkt array við getum ekki fengið ímynda þessu sinni. 1059 00:43:28,250 --> 00:43:31,820 Jafnvel þótt öllum mönnum okkar voru raðað frá litlum þætti, 5, 1060 00:43:31,820 --> 00:43:35,900 alla leið upp að stærri frumefni, 55, það er yfirleitt gott. 1061 00:43:35,900 --> 00:43:38,815 En hvað þýðir það forsendu ekki lengur leyfa okkur að gera? 1062 00:43:38,815 --> 00:43:39,775 1063 00:43:39,775 --> 00:43:40,650 Áhorfendur: [inaudible] 1064 00:43:40,650 --> 00:43:40,920 DAVID J. MALAN: Segja aftur? 1065 00:43:40,920 --> 00:43:41,800 Áhorfendur: Random aðgangur. 1066 00:43:41,800 --> 00:43:43,049 DAVID J. MALAN: Random aðgangur. 1067 00:43:43,049 --> 00:43:46,330 Og síðan sem þýðir að við getum ekki lengur notað veikburða núll, innsæi, 1068 00:43:46,330 --> 00:43:49,365 og Sjálfsagðar að nota tvöfaldur leita og skipta og sigra. 1069 00:43:49,365 --> 00:43:51,240 Því jafnvel þótt við menn gátu vitanlega 1070 00:43:51,240 --> 00:43:54,610 sjá að Andy eða Christian voru u.þ.b. í miðjum listanum, 1071 00:43:54,610 --> 00:43:57,670 við vitum bara að sem tölva með ofanfleytingu lista 1072 00:43:57,670 --> 00:43:59,029 frá upphafi. 1073 00:43:59,029 --> 00:44:00,570 Þannig að við höfum gefist upp að handahófi aðgangur. 1074 00:44:00,570 --> 00:44:04,380 >> Svo stór O n er nú efri bundið á leit okkar tíma. 1075 00:44:04,380 --> 00:44:07,920 Hvað um omega af leit okkar? 1076 00:44:07,920 --> 00:44:11,535 Hvað er lægra bundið á að leita fyrir sumir tala í þessum lista? 1077 00:44:11,535 --> 00:44:12,410 Áhorfendur: [inaudible] 1078 00:44:12,410 --> 00:44:13,040 DAVID J. MALAN: Segja aftur? 1079 00:44:13,040 --> 00:44:13,420 Áhorfendur: Einn. 1080 00:44:13,420 --> 00:44:13,800 DAVID J. MALAN: Einn. 1081 00:44:13,800 --> 00:44:14,760 Svo stöðug skipti. 1082 00:44:14,760 --> 00:44:17,020 Í besta tilfelli, Christine er örugglega í upphafi listanum. 1083 00:44:17,020 --> 00:44:19,020 Og við erum að leita að númer 5, þannig að við fundum hana. 1084 00:44:19,020 --> 00:44:19,787 Svo ekki máli. 1085 00:44:19,787 --> 00:44:22,370 En hún fékk að vera á hefst í skránni í þessu tilfelli. 1086 00:44:22,370 --> 00:44:23,745 Hvað um eitthvað eins og Eyða? 1087 00:44:23,745 --> 00:44:24,717 1088 00:44:24,717 --> 00:44:26,300 Hvað ef þú vilt eyða stak? 1089 00:44:26,300 --> 00:44:29,200 Hvað er efri og neðri á að eyða eitthvað af tengdur 1090 00:44:29,200 --> 00:44:29,699 lista? 1091 00:44:29,699 --> 00:44:35,195 1092 00:44:35,195 --> 00:44:36,070 Áhorfendur: [inaudible] 1093 00:44:36,070 --> 00:44:36,420 DAVID J. MALAN: Segja aftur? 1094 00:44:36,420 --> 00:44:37,067 Áhorfendur: n. 1095 00:44:37,067 --> 00:44:38,900 DAVID J. MALAN: n er örugglega efri. 1096 00:44:38,900 --> 00:44:41,700 Vegna þess að í versta tilfelli við reynum að eyða Jack, eins og við gerðum bara. 1097 00:44:41,700 --> 00:44:43,050 Hann er alla leið á enda. 1098 00:44:43,050 --> 00:44:45,419 Tekur okkur að eilífu, eða n skref til að finna hann. 1099 00:44:45,419 --> 00:44:46,460 Svo er að efri. 1100 00:44:46,460 --> 00:44:47,430 Það er línulegt, viss. 1101 00:44:47,430 --> 00:44:50,970 Og það besta mál að keyra tíma, eða lægri mörk í besta tilfelli 1102 00:44:50,970 --> 00:44:51,975 væri stöðug skipti. 1103 00:44:51,975 --> 00:44:54,600 Vegna þess að þá reynum við að eyða Christine, og við fáum bara heppin 1104 00:44:54,600 --> 00:44:55,558 hún er í upphafi. 1105 00:44:55,558 --> 00:44:56,350 Nú bíddu í eina mínútu. 1106 00:44:56,350 --> 00:44:59,370 Gabe var einnig í upphafi, og við þurftum líka að uppfæra Gabe. 1107 00:44:59,370 --> 00:45:01,150 Svo það var ekki bara eitt skref. 1108 00:45:01,150 --> 00:45:04,210 Svo er það örugglega stöðug tíma, í besta tilfelli, 1109 00:45:04,210 --> 00:45:06,345 að fjarlægja minnstu frumefni? 1110 00:45:06,345 --> 00:45:07,360 1111 00:45:07,360 --> 00:45:10,960 Það er, jafnvel þó það gæti verið tvær, þrjú, eða jafnvel 100 línur af kóða, 1112 00:45:10,960 --> 00:45:14,000 ef það er sama fjölda línur, ekki í einhverju lykkju, 1113 00:45:14,000 --> 00:45:16,577 og óháð stærð á listanum, algerlega. 1114 00:45:16,577 --> 00:45:18,660 Eyða þáttur í upphaf listanum, 1115 00:45:18,660 --> 00:45:21,940 jafnvel þótt við þurfum að takast á við Gabe, er enn fasti tími. 1116 00:45:21,940 --> 00:45:24,220 >> Svo virðist þetta eins og gegnheill skref aftur á bak. 1117 00:45:24,220 --> 00:45:27,000 Og hvað er tímasóun ef í viku eitt og viku 1118 00:45:27,000 --> 00:45:30,250 núll við höfðum ekki aðeins sauðakóðanum kóða en raunverulegt númer 1119 00:45:30,250 --> 00:45:35,780 að innleiða eitthvað sem er Log stöð n, eða log, frekar, í eru N, stöð 2, 1120 00:45:35,780 --> 00:45:37,150 í skilmálar af hlaupandi tími til þess. 1121 00:45:37,150 --> 00:45:40,710 Svo hvers vegna Heck myndum við vilja til að byrja nota eitthvað eins og tengda listanum? 1122 00:45:40,710 --> 00:45:41,517 Já. 1123 00:45:41,517 --> 00:45:44,022 >> Áhorfendur: Svo er hægt að bæta við þættir til fylkisins. 1124 00:45:44,022 --> 00:45:46,230 DAVID J. MALAN: Svo þú getur bæta þætti til fylkisins. 1125 00:45:46,230 --> 00:45:47,550 Og þetta er líka þema. 1126 00:45:47,550 --> 00:45:49,740 Og við munum halda áfram að sjá þetta, þetta málamiðlun, mikið 1127 00:45:49,740 --> 00:45:51,573 eins og við höfum séð málamiðlun með sameiningu tagi. 1128 00:45:51,573 --> 00:45:54,606 Við gætum í raun flýta leita eða flokka, heldur, 1129 00:45:54,606 --> 00:45:57,480 ef við eyða aðeins meira pláss og hafa frekari klumpur af minni 1130 00:45:57,480 --> 00:45:58,760 eða fylki til að sameiningu tagi. 1131 00:45:58,760 --> 00:46:01,270 En við eyðum meira rúm, en við að spara tíma. 1132 00:46:01,270 --> 00:46:04,820 Í þessu tilviki, við erum gefa upp tíma, en við erum 1133 00:46:04,820 --> 00:46:08,170 öðlast sveigjanleika, kraftur ef þú vilt, 1134 00:46:08,170 --> 00:46:10,280 sem er að öllum líkindum jákvæð lögun. 1135 00:46:10,280 --> 00:46:11,520 >> Við erum einnig að eyða pláss. 1136 00:46:11,520 --> 00:46:13,710 Í hvaða skilningi er tengdur lista dýrari 1137 00:46:13,710 --> 00:46:15,700 hvað varðar pláss en fjölda? 1138 00:46:15,700 --> 00:46:18,379 1139 00:46:18,379 --> 00:46:19,920 Hvar er auka pláss koma frá? 1140 00:46:19,920 --> 00:46:20,460 Já? 1141 00:46:20,460 --> 00:46:21,800 >> Áhorfendur: [inaudible] músina. 1142 00:46:21,800 --> 00:46:23,310 >> DAVID J. MALAN: Já, við Einnig hafa músina. 1143 00:46:23,310 --> 00:46:25,560 Svo er þetta minorly pirrandi í að ekki lengur am 1144 00:46:25,560 --> 00:46:27,780 Ég geyma bara á int til að tákna int. 1145 00:46:27,780 --> 00:46:30,990 Ég geyma við int og a músina, sem er einnig 32 bita. 1146 00:46:30,990 --> 00:46:33,470 Þannig að ég ætla bókstaflega tvöföldun pláss að ræða. 1147 00:46:33,470 --> 00:46:36,040 Svo er það málamiðlun, en það er um er að ræða Int. 1148 00:46:36,040 --> 00:46:39,580 Segjum sem svo að þú sért ekki að geyma int, En geri ráð fyrir hvert þessara rétthyrninga 1149 00:46:39,580 --> 00:46:43,290 eða hver af þessum mönnum var fulltrúi orð, ensku orð sem 1150 00:46:43,290 --> 00:46:46,430 gæti verið fimm stafir, 10 stafir, kannski jafnvel meira. 1151 00:46:46,430 --> 00:46:49,940 Þá bæta bara 32 fleiri bita gæti verið minna af a stór samningur. 1152 00:46:49,940 --> 00:46:52,160 >> Hvað ef hver af þeim nemendum í mótmælum 1153 00:46:52,160 --> 00:46:55,107 voru bókstaflega nemandi structs sem hafa nöfn og hús og kannski 1154 00:46:55,107 --> 00:46:57,065 símanúmer og Twitter handföng og þess háttar. 1155 00:46:57,065 --> 00:46:59,564 Svo öllum sviðum við byrjuðum að tala um um daginn, 1156 00:46:59,564 --> 00:47:02,410 miklu minna af a stór samningur sem hnúður okkar fá meira áhugavert 1157 00:47:02,410 --> 00:47:05,972 og stór til að eyða, ha, til viðbótar bendi bara á að tengja þá saman. 1158 00:47:05,972 --> 00:47:07,180 En reyndar er það málamiðlun. 1159 00:47:07,180 --> 00:47:09,560 Og reyndar, kóðinn er flóknari, eins og þú munt 1160 00:47:09,560 --> 00:47:11,770 sjá með ofanfleytingu gegnum sem einkum dæmi. 1161 00:47:11,770 --> 00:47:14,302 En hvað ef það voru sumir Gral hér. 1162 00:47:14,302 --> 00:47:17,010 Hvað ef við ekki að taka skref aftur á bak en gegnheill skref fram 1163 00:47:17,010 --> 00:47:19,180 og innleiða gögn uppbygging í gegnum sem við 1164 00:47:19,180 --> 00:47:22,870 getur fundið þætti eins Jack eða Christine eða önnur atriði 1165 00:47:22,870 --> 00:47:25,870 í þessu fylki í sanna föstu tíma? 1166 00:47:25,870 --> 00:47:26,920 Leit er fasti. 1167 00:47:26,920 --> 00:47:28,320 Eyða er fasti. 1168 00:47:28,320 --> 00:47:29,570 Setja er fasti. 1169 00:47:29,570 --> 00:47:32,260 Öll þessi starfsemi er fasti. 1170 00:47:32,260 --> 00:47:33,750 Það væri okkar gral. 1171 00:47:33,750 --> 00:47:36,690 Og það er þar sem við vilja ná upp næst. 1172 00:47:36,690 --> 00:47:38,600 Sjáumst þá. 1173 00:47:38,600 --> 00:47:39,371