1 00:00:00,000 --> 00:00:02,520 [Powered by Google Translate] [Ġimgħa 6, Ikompli] 2 00:00:02,520 --> 00:00:04,160 [David J. Malan] [Università ta 'Harvard] 3 00:00:04,160 --> 00:00:08,720 [Dan huwa CS50.] [CS50.TV] 4 00:00:08,720 --> 00:00:12,970 Dan huwa CS50 u dan huwa l-aħħar ta 'ġimgħa 6. 5 00:00:12,970 --> 00:00:17,970 Allura CS50x, wieħed mill-korsijiet 1 Harvard li huma involuti fl-inizjattiva EDX 6 00:00:17,970 --> 00:00:20,590 tabilħaqq debuted din it-tnejn fil-passat. 7 00:00:20,590 --> 00:00:23,460 Jekk inti tixtieq li tikseb idea ta 'dak oħrajn fuq l-Internet 8 00:00:23,460 --> 00:00:27,180 issa huma wara flimkien ma ', inti tista' ras biex x.cs50.net. 9 00:00:27,180 --> 00:00:30,350 Li se tieħu direzzjoni ġdida lill-post xieraq fuq edx.org, 10 00:00:30,350 --> 00:00:34,160 li kien meta dan u korsijiet oħra mill-MIT u Berkeley issa jgħixu. 11 00:00:34,160 --> 00:00:38,140 Int ser ikollok biex jiffirmaw għal kont, inti ser issib li l-materjal huwa l-aktar l-istess 12 00:00:38,140 --> 00:00:42,170 kif inti kellna dan is-semestru, għalkemm ftit ġimgħat mdewma, kif aħna tikseb kollox lest. 13 00:00:42,170 --> 00:00:46,930 Imma dak istudenti CS50x issa se tara huwa interface pjuttost bħal dan wieħed. 14 00:00:46,930 --> 00:00:50,040 Dan, per eżempju, huwa Zamyla li jwasslu l-walkthrough għal sett problema 0. 15 00:00:50,040 --> 00:00:54,230 Malli idħol fil-edx.org, student CS50x jara l-xorta ta 'affarijiet 16 00:00:54,230 --> 00:00:57,170 tista 'tistenna li tara fil-kors: il-lecture għall-Tnejn, 17 00:00:57,170 --> 00:01:01,650 lecture għal L-Erbgħa, xorts varji, il-settijiet problema, il walkthroughs, PDFs. 18 00:01:01,650 --> 00:01:04,459 Barra minn hekk, kif tara hawn traduzzjonijiet awtomatiċi, 19 00:01:04,459 --> 00:01:08,390 ta 'transkripts Ingliż fis Ċiniż, Ġappuniż, Spanjol, Taljan, 20 00:01:08,390 --> 00:01:12,810 u mazz sħiħ ta 'lingwi oħrajn li żgur se tkun imperfetta 21 00:01:12,810 --> 00:01:15,840 kif aħna roll out programmatically jużaw xi ħaġa imsejħa API, 22 00:01:15,840 --> 00:01:18,360 jew l-applikazzjoni ta 'programmazzjoni interface, mill-Google 23 00:01:18,360 --> 00:01:21,360 li jippermetti li jikkonvertu Ingliż biex dawn il-lingwi l-oħra. 24 00:01:21,360 --> 00:01:24,100 Iżda grazzi għall-ispirtu mill-isbaħ ta 'xi voluntiera 100-plus, 25 00:01:24,100 --> 00:01:26,940 nies bl-addoċċ fuq l-Internet li ġentilment offruti biex jinvolvu ruħhom 26 00:01:26,940 --> 00:01:30,180 f'dan il-proġett, aħna ser gradwalment itejbu l-kwalità ta 'dawk it-traduzzjonijiet 27 00:01:30,180 --> 00:01:35,790 billi jkollu bnedmin jikkoreġu l-iżbalji li l-kompjuters tagħna għamlu. 28 00:01:35,790 --> 00:01:42,330 >> Għalhekk jirriżulta li kellna l-istudenti ftit aktar juru up fuq it-tnejn milli aħna inizjalment mistennija. 29 00:01:42,330 --> 00:01:48,980 Fil-fatt, issa CS50x għandha 100,000 persuna wara tul fid-dar. 30 00:01:48,980 --> 00:01:54,430 Allura jirrealizzaw li inti huma kollha parti ta 'dan il-klassi inawgurali ta' teħid dan il-kors fix-xjenza tal-kompjuter 31 00:01:54,430 --> 00:01:57,370 edukazzjoni b'mod aktar ġenerali, b'mod aktar wiesa ', aċċessibbli. 32 00:01:57,370 --> 00:02:00,130 U r-realtà hija issa, ma 'wħud minn dawn il-korsijiet online massiva, 33 00:02:00,130 --> 00:02:04,070 dawn kollha jibdew ma 'dawn in-numri kbar ħafna, kif aħna jidhru li għamlu hawn. 34 00:02:04,070 --> 00:02:08,759 Iżda l-għan, finalment, għal CS50x huwa verament sabiex in-nies kif ħafna għall-finitura linja possibbli. 35 00:02:08,759 --> 00:02:12,000 Permezz tad-disinn, CS50x se jiġu offruti minn din it-tnejn passat 36 00:02:12,000 --> 00:02:17,430 it-triq kollha permezz April 15, 2013, b'tali mod li folks li għandhom impenji iskola band'oħra, 37 00:02:17,430 --> 00:02:20,990 xogħol, familja, kunflitti oħra u simili, li jkollhom flessibilità ftit aktar 38 00:02:20,990 --> 00:02:23,640 li biex adsa fis dan il-kors, li, huwa biżżejjed li jingħad, 39 00:02:23,640 --> 00:02:30,540 huwa pjuttost ambizzjuż isir jekk biss matul il-kors ta 'ftit tliet xhur matul semestru tas-soltu. 40 00:02:30,540 --> 00:02:34,190 Iżda dawn l-istudenti se jkunu ttrattati l-settijiet problema istess, viewing-istess kontenut, 41 00:02:34,190 --> 00:02:36,350 jkollhom aċċess għall-xorts istess u affarijiet simili. 42 00:02:36,350 --> 00:02:38,990 Allura tirrealizza li aħna lkoll verament f'dan flimkien. 43 00:02:38,990 --> 00:02:42,360 U wieħed mill-għanijiet aħħarija ta 'CS50x huwa mhux biss li tikseb folks kif ħafna 44 00:02:42,360 --> 00:02:45,720 għall-finitura linja u jagħtuhom dan il-fehim newfound tax-xjenza tal-kompjuter 45 00:02:45,720 --> 00:02:49,000 u l-ipprogrammar, iżda wkoll li jkollhom magħhom ikollhom din l-esperjenza kondiviża. 46 00:02:49,000 --> 00:02:52,010 Waħda mill-karatteristiċi li jiddefinixxu ta '50 fuq il-kampus, nittamaw, 47 00:02:52,010 --> 00:02:56,260 kien dan it-tip ta 'esperjenza komunali, għall-aħjar jew għall-agħar, xi kultant, 48 00:02:56,260 --> 00:02:59,480 iżda li dawn in-nies li jduru għas lejn ix-xellug u lejn il-lemin, 49 00:02:59,480 --> 00:03:01,830 u ħinijiet tal-uffiċċju u l-hackathon u l-fiera. 50 00:03:01,830 --> 00:03:04,560 Huwa ftit diffiċli biex tagħmel dan fil-persuna ma folks online, 51 00:03:04,560 --> 00:03:10,580 iżda CS50x se tikkonkludi f'April ma 'l-ewwel darba CS50 Expo, 52 00:03:10,580 --> 00:03:13,630 li se jkun adattament online ta 'idea tagħna ta' l-fiera 53 00:03:13,630 --> 00:03:18,250 fejn dawn l-eluf ta 'studenti kollha se jiġu mistiedna jissottomettu 1 - sa 2 minuti fil-video, 54 00:03:18,250 --> 00:03:22,480 jew screencast tal-proġett finali tagħhom jew video minnhom waving bonjour 55 00:03:22,480 --> 00:03:24,490 u jitkellem dwar il-proġett tagħhom u demoing dan, 56 00:03:24,490 --> 00:03:27,610 ħafna bħal predeċessuri tiegħek għamlu hawn fuq il-kampus fil-fiera, 57 00:03:27,610 --> 00:03:31,400 hekk li sal-aħħar semestru, l-tama hi li jkun hemm wirja globali 58 00:03:31,400 --> 00:03:37,080 tal-proġetti finali l-istudenti CS50x, simili għal dik li jistenna inti dan ta 'Diċembru hawn fuq il-kampus. 59 00:03:37,080 --> 00:03:39,680 Allura aktar fuq li fix-xhur li ġejjin. 60 00:03:39,680 --> 00:03:43,640 >> Bil 100.000 istudenti, għalkemm, taqa 'ħtieġa għal CAs ftit aktar. 61 00:03:43,640 --> 00:03:47,590 Minħabba li inti guys huma tisreġ-traċċa hawn u tieħu CS50 62 00:03:47,590 --> 00:03:51,630 diversi ġimgħat qabel tar-rilaxx dan il-materjal għall-folks fuq EDX, 63 00:03:51,630 --> 00:03:55,330 tirrealizza aħna imħabba li tinvolvi kif ħafna mill-istudenti tagħna stess fis possibbli f'din l-inizjattiva, 64 00:03:55,330 --> 00:03:58,720 kemm matul is-semestru, kif ukoll dan xitwa u din ir-rebbiegħa li ġejjin. 65 00:03:58,720 --> 00:04:01,620 Mela jekk inti tixtieq li jinvolvu ruħhom fl-CS50x, 66 00:04:01,620 --> 00:04:07,450 partikolarment tgħaqqad fil dwar CS50x Iddiskuti, il-verżjoni EDX ta CS50 Iddiskuti, 67 00:04:07,450 --> 00:04:10,140 li ħafna minnkom bdew jużaw fuq il-kampus, il-bulletin board online, 68 00:04:10,140 --> 00:04:13,040 jekk jogħġbok do ras għal dak URL, jgħidilna min int, 69 00:04:13,040 --> 00:04:16,450 għaliex aħna imħabba biex jibnu tim ta 'studenti u l-persunal u l-fakultà kif ukoll 70 00:04:16,450 --> 00:04:19,630 fuq il-kampus li huma sempliċiment jilagħbu flimkien u biex jagħtu daqqa t'id. 71 00:04:19,630 --> 00:04:21,720 U meta jaraw mistoqsija li l-familjari magħhom, 72 00:04:21,720 --> 00:04:25,320 inti tisma student tirrapporta xi bug x'imkien hemmhekk f'xi pajjiż fuq l-Internet, 73 00:04:25,320 --> 00:04:27,450 u li l-ċrieki qanpiena għaliex inti wisq kellhom l-istess kwistjoni 74 00:04:27,450 --> 00:04:32,620 fil tiegħek d-sala xi żmien ilu, nisperaw allura inti tista Chime fi u jaqsmu l-esperjenza tiegħek. 75 00:04:32,620 --> 00:04:37,300 Allura jekk jogħġbok jieħdu sehem jekk inti tixtieq. 76 00:04:37,300 --> 00:04:39,360 >> Xjenza Korsijiet tal-kompjuter fil-Harvard jkollhom daqsxejn ta 'tradizzjoni, 77 00:04:39,360 --> 00:04:44,730 CS50 fosthom, ta 'wara xi lbies, xi ħwejjeġ, li inti tista jilbsu kburi 78 00:04:44,730 --> 00:04:49,090 fl-aħħar semestru, il qal pjuttost kburi li inti lest CS50 79 00:04:49,090 --> 00:04:51,830 u ħa CS50 u simili, u aħna dejjem jippruvaw li jinvolvu studenti 80 00:04:51,830 --> 00:04:54,540 f'dan il-proċess kemm jista 'jkun, li biha nistiednu, 81 00:04:54,540 --> 00:04:56,900 madwar dan iż-żmien tas-semestru, l-istudenti biex jissottomettu disinji 82 00:04:56,900 --> 00:04:59,330 jużaw Photoshop, jew kwalunkwe għodda ta 'għażla li tixtieq tuża 83 00:04:59,330 --> 00:05:02,330 jekk int disinjatur, biex jissottomettu disinji għal T-shirts u sweat 84 00:05:02,330 --> 00:05:06,100 u umbrelel u bandanas ftit għall-klieb issa għandna u simili. 85 00:05:06,100 --> 00:05:09,370 U kollox huwa mbagħad - ir-rebbieħa ta 'kull sena huma mbagħad esebiti 86 00:05:09,370 --> 00:05:12,700 fuq il-websajt tal-kors fiż store.cs50.net. 87 00:05:12,700 --> 00:05:15,790 Kollox huwa mibjugħ bi prezz hemmhekk, iżda l-websajt biss runs innifsu 88 00:05:15,790 --> 00:05:18,330 u tippermetti lin-nies biex jagħżlu l-kuluri u disinji li huma simili. 89 00:05:18,330 --> 00:05:20,420 So I ħsibt aħna'd biss jaqsmu xi ta 'disinji sena li għaddiet 90 00:05:20,420 --> 00:05:25,130 li kienu fuq il-websajt minbarra dan wieħed hawn, li hija tradizzjoni annwali. 91 00:05:25,130 --> 00:05:29,410 "Kull Jum jien seq Faultn" kienet waħda mis-sottomissjonijiet sena li għaddiet, 92 00:05:29,410 --> 00:05:32,290 li għadu disponibbli hemmhekk għall alumni. 93 00:05:32,290 --> 00:05:35,820 Kellna dan wieħed, "CS50, Imwaqqfa 1989." 94 00:05:35,820 --> 00:05:39,010 Waħda mill Bowdens tagħna, Rob, kienet popolari ħafna aħħar sena. 95 00:05:39,010 --> 00:05:43,480 "Tim Bowden" twieled, dan id-disinn ġie ppreżentat, fost il-bejjiegħa top. 96 00:05:43,480 --> 00:05:49,040 Kif kien dan wieħed hawn. Ħafna nies kellhom "Deni Bowden" skond il-zkuk tal-bejgħ. 97 00:05:49,040 --> 00:05:52,650 Jirrealizzaw li dan jista 'issa jkun disinn tiegħek hemm, fuq l-Internet. 98 00:05:52,650 --> 00:05:57,510 Aktar dettalji fuq dan fid-problema li jmiss settijiet li ġejjin. 99 00:05:57,510 --> 00:06:00,330 >> Wieħed aktar għodda: inti kellna xi espożizzjoni u nisperaw issa 100 00:06:00,330 --> 00:06:02,350 xi esperjenza hands-on ma 'GDB, 101 00:06:02,350 --> 00:06:04,570 li huwa, ovvjament, ta 'debugger u tippermetti li inti jimmanipulaw 102 00:06:04,570 --> 00:06:09,500 programm tiegħek fuq livell pjuttost baxx, tagħmel dak tipi ta 'affarijiet? 103 00:06:09,500 --> 00:06:13,030 Xi jfisser GDB let you do? 104 00:06:13,030 --> 00:06:15,030 Yeah? Agħti me xi ħaġa. [Tweġiba Student, mhux intelliġibbli] 105 00:06:15,030 --> 00:06:18,120 Tajba. Pass fil-funzjoni, sabiex inti ma sempliċiment għandek tip run 106 00:06:18,120 --> 00:06:22,310 u jkollhom l-daqqa programm permezz intier tiegħu, l-istampar l-affarijiet għall-produzzjoni standard. 107 00:06:22,310 --> 00:06:25,190 Pjuttost, inti tista pass permezz ta 'dan linja b'linja, jew ittajpjar jmiss 108 00:06:25,190 --> 00:06:30,300 li jmorru linja minn linja b'linja jew pass li adsa fis funzjoni, tipikament wieħed li inti kiteb. 109 00:06:30,300 --> 00:06:35,240 X'iktar ma GDB let you do? Yeah? [Tweġiba Student, mhux intelliġibbli] 110 00:06:35,240 --> 00:06:38,100 Stampa varjabbli. Mela jekk inti tixtieq li tagħmel introspection ftit ġewwa tal-programm tiegħek 111 00:06:38,100 --> 00:06:41,500 mingħajr ma jkollhom jirrikorru għall-kitba dikjarazzjonijiet printf kollha fuq il-post, 112 00:06:41,500 --> 00:06:44,600 inti tista 'biss print varjabbli jew juru varjabbli. 113 00:06:44,600 --> 00:06:46,710 X'tista 'tagħmel ma' debugger bħal GDB? 114 00:06:46,710 --> 00:06:49,170 [Tweġiba Student, mhux intelliġibbli] 115 00:06:49,170 --> 00:06:52,080 Eżattament. Tista 'tissettja breakpoints, inti tista' tgħid l-eżekuzzjoni waqfa 116 00:06:52,080 --> 00:06:54,020 fil-funzjoni ewlenija jew il-funzjoni foo. 117 00:06:54,020 --> 00:06:56,800 Tista 'tgħid eżekuzzjoni waqfa fil-linja 123. 118 00:06:56,800 --> 00:06:58,950 U breakpoints huma teknika verament b'saħħtu 119 00:06:58,950 --> 00:07:01,110 għaliex jekk ikollok sens ġenerali ta 'fejn il-problema tiegħek 120 00:07:01,110 --> 00:07:05,360 probabbilment huwa, inti ma jkollhom l-iskart ħin titjib permezz intier tal-programm. 121 00:07:05,360 --> 00:07:08,250 Inti tista 'essenzjalment jaqbżu hemm dritt u mbagħad tibda ittajpjar - 122 00:07:08,250 --> 00:07:10,970 titjib permezz ta 'dan il-pass li jmiss jew jew affarijiet simili. 123 00:07:10,970 --> 00:07:14,340 Iżda l-qabda ma 'xi ħaġa bħal GDB huwa li jgħin inti, il-bniedem, 124 00:07:14,340 --> 00:07:16,940 isibu problemi tiegħek u jsibu bugs tiegħek. 125 00:07:16,940 --> 00:07:19,470 Dan ma jfissirx neċessarjament issib minnhom tant għalik. 126 00:07:19,470 --> 00:07:23,070 >> Allura aħna introduċiet il-style50 oħra jum, li hija għodda qasir linja ta 'kmand 127 00:07:23,070 --> 00:07:27,500 li tipprova stylize kodiċi tiegħek ftit aktar nadif milli suppost, il-bniedem, jista 'jkollok jsir. 128 00:07:27,500 --> 00:07:29,530 Iżda dan, wisq, huwa verament biss ħaġa estetika. 129 00:07:29,530 --> 00:07:34,110 Iżda jirriżulta hemm din l-għodda oħra msejħa Valgrind li huwa xi ftit aktar arcane għall-użu. 130 00:07:34,110 --> 00:07:36,860 Produzzjoni tiegħu huwa atrociously cryptic ewwel daqqa t'għajn. 131 00:07:36,860 --> 00:07:39,420 Imma hija wonderfully utli, speċjalment issa li aħna qed fil-parti tat-terminu 132 00:07:39,420 --> 00:07:43,080 fejn int tibda tuża malloc u l-allokazzjoni memorja dinamika. 133 00:07:43,080 --> 00:07:45,420 Affarijiet jistgħu imorru tassew, tassew ħażin malajr. 134 00:07:45,420 --> 00:07:49,320 Għaliex jekk tinsa biex ħielsa memorja tiegħek, jew inti dereference xi pointer NULL, 135 00:07:49,320 --> 00:07:55,770 jew inti dereference xi pointer żibel, dak li huwa tipikament l-sintomu li r-riżultati? 136 00:07:55,770 --> 00:07:59,470 Seg tort. U ikollok dan il-fajl qalba ta 'xi numru ta' kilobytes jew megabytes 137 00:07:59,470 --> 00:08:02,990 li jirrappreżenta l-istat ta 'memorja programm tiegħek meta ġġarraf, 138 00:08:02,990 --> 00:08:05,730 iżda programm tiegħek finalment seg difetti, tort segmentazzjoni, 139 00:08:05,730 --> 00:08:08,450 li jfisser xi ħaġa ħażina ġara kważi dejjem marbuta 140 00:08:08,450 --> 00:08:11,750 għal żball memorja relatati li inti ssir x'imkien. 141 00:08:11,750 --> 00:08:14,100 Allura Valgrind jgħinek issib affarijiet bħal dan. 142 00:08:14,100 --> 00:08:17,720 Huwa għodda li inti tmexxi, bħall GDB, wara li tkun ħadthom miġbura program tiegħek, 143 00:08:17,720 --> 00:08:20,330 iżda pjuttost milli tmexxi programm tiegħek direttament, inti tmexxi Valgrind 144 00:08:20,330 --> 00:08:23,960 u inti tgħaddi lilu program tiegħek, bħad inti tagħmel mal GDB. 145 00:08:23,960 --> 00:08:26,220 Issa, l-użu, biex tikseb l-aħjar it-tip ta 'produzzjoni, 146 00:08:26,220 --> 00:08:30,410 huwa ftit twil, hekk hemm dritt atop ta 'l-iskrin inti ser tara Valgrind-v. 147 00:08:30,410 --> 00:08:35,350 "-V" kważi universalment ifisser verbose meta inti qed tuża programmi fuq il-kompjuter Linux. 148 00:08:35,350 --> 00:08:38,770 Allura dan ifisser bżiq out data aktar milli inti tista 'awtomatikament. 149 00:08:38,770 --> 00:08:45,510 "- Leak-kontroll = sħiħa." Dan huwa biss qal kontroll għal kull tnixxijiet memorja possibbli, 150 00:08:45,510 --> 00:08:49,430 żbalji li I jista għamlu. Dan, ukoll, hija paradigma komuni ma 'programmi Linux. 151 00:08:49,430 --> 00:08:52,710 Ġeneralment, jekk għandek argument linja tal-kmand thats "switch", 152 00:08:52,710 --> 00:08:55,830 li suppost li tibdel l-imġiba tal-programm, u huwa ittra waħdanija, 153 00:08:55,830 --> 00:09:00,310 huwa-v, imma jekk thats qalbu, biss mid-disinn ta 'l-programmer, 154 00:09:00,310 --> 00:09:05,150 huwa kelma sħiħa jew serje ta 'kliem, l-argument linja tal-kmand tibda bil -. 155 00:09:05,150 --> 00:09:08,190 Dawn huma biss konvenzjonijiet tal-bniedem, iżda inti ser tara minnhom dejjem. 156 00:09:08,190 --> 00:09:12,410 U mbagħad, finalment, "a.out" huwa l-isem arbitrarja għall-programm f'dan l-eżempju partikolari. 157 00:09:12,410 --> 00:09:14,640 U hawnhekk xi output rappreżentattiv. 158 00:09:14,640 --> 00:09:22,890 >> Qabel ma nħarsu lejn dak li jista 'jfisser, let me go fuq l snippet ta' kodiċi hawn fuq. 159 00:09:22,890 --> 00:09:26,390 U let me jimxu dan barra mill-mod, coming soon, 160 00:09:26,390 --> 00:09:32,120 u ejja tagħti ħarsa lejn memory.c, li huwa dan l-eżempju qasira hawn. 161 00:09:32,120 --> 00:09:36,290 Allura f'dan il-programm, let me zoom fl fuq il-funzjonijiet u l-mistoqsijiet. 162 00:09:36,290 --> 00:09:39,430 Għandna funzjoni prinċipali li jitlob funzjoni, f, 163 00:09:39,430 --> 00:09:45,590 u mbagħad dak ma f tipproċedi biex tagħmel, bl-Ingliż ftit tekniku? 164 00:09:45,590 --> 00:09:49,760 Xi jfisser f tipproċedi biex tagħmel? 165 00:09:49,760 --> 00:09:53,680 Kif dwar I ser tibda bil-linja 20, u l-lokazzjoni l-istilla tal-ma jimpurtax, 166 00:09:53,680 --> 00:09:56,720 imma jien ser biss ikunu konsistenti hawn lecture aħħar. 167 00:09:56,720 --> 00:09:59,910 X'hemm linja 20 do għalina? Fuq in-naħa tax-xellug. Aħna ser din tinqasam ulterjuri. 168 00:09:59,910 --> 00:10:02,410 Int * x: dak li ma tagħmel? 169 00:10:02,410 --> 00:10:04,940 Okay. Huwa jiddikjara pointer, u issa ejja tkun saħansitra aktar tekniku. 170 00:10:04,940 --> 00:10:10,230 Xi jfisser, ħafna konkret, li jiddikjara pointer? Xi ħadd ieħor? 171 00:10:10,230 --> 00:10:15,050 Yeah? [Tweġiba Student, mhux intelliġibbli] Wisq ħafna. 172 00:10:15,050 --> 00:10:17,060 Allura inti qed taqra fuq il-ġenb tal-lemin tal-sinjal ugwali. 173 00:10:17,060 --> 00:10:20,290 Ejja niffukaw biss fuq ix-xellug biss fuq int * x. 174 00:10:20,290 --> 00:10:24,700 Dan ma "tiddikjara" pointer, iżda issa ejja adsa aktar profonda għal dik id-definizzjoni. 175 00:10:24,700 --> 00:10:28,330 Xi jfisser li konkret, teknikament jfisser? Yeah? 176 00:10:28,330 --> 00:10:31,940 [Tweġiba Student, mhux intelliġibbli] 177 00:10:31,940 --> 00:10:35,090 Okay. Huwa jippreparaw biex isalva l-indirizz fil-memorja. 178 00:10:35,090 --> 00:10:40,680 Tajba. U ejja jieħdu dan il-pass wieħed ulterjuri; huwa li tiddikjara varjabbli, x, li l-32 bits. 179 00:10:40,680 --> 00:10:44,440 U naf huwa 32 bits għaliex -? 180 00:10:44,440 --> 00:10:47,390 Mhuwiex għaliex dan huwa int, għaliex dan huwa pointer f'dan il-każ. 181 00:10:47,390 --> 00:10:49,650 Koinċidenza li huwa l-istess ma 'int, 182 00:10:49,650 --> 00:10:51,970 iżda l-fatt li hemm l-istilla hemm mezzi li din hija indikatur 183 00:10:51,970 --> 00:10:57,300 u fl-appliance, kif ma 'ħafna kompjuters, iżda mhux kollha, pointers huma 32 bits. 184 00:10:57,300 --> 00:11:01,850 Fuq hardware aktar moderni bħall-MACs aktar tard, il-kompjuters aktar tard, inti jista 'jkollok 64-bit pointers, 185 00:11:01,850 --> 00:11:04,160 iżda fil-appliance, dawn l-affarijiet huma 32 bits. 186 00:11:04,160 --> 00:11:08,380 Allura aħna ser standardizzati fuq dan. B'mod aktar konkret, l-istorja tmur kif ġej: 187 00:11:08,380 --> 00:11:10,820 We "tiddikjara" pointer; xi jfisser? 188 00:11:10,820 --> 00:11:12,810 Aħna jipprepara biex jaħżnu l-indirizz tal-memorja. 189 00:11:12,810 --> 00:11:15,530 X'ifisser dan? 190 00:11:15,530 --> 00:11:19,810 Aħna joħolqu x imsejħa varjabbli li jieħu 32 bits 191 00:11:19,810 --> 00:11:23,810 li dalwaqt se taħżen l-indirizz ta 'numru sħiħ. 192 00:11:23,810 --> 00:11:26,470 U li probabbilment madwar preċiża kemm nistgħu nibdew. 193 00:11:26,470 --> 00:11:31,810 Huwa multa miexja 'l quddiem biex jissimplifikaw id-dinja u biss jgħidu tiddikjara pointer imsejjaħ x. 194 00:11:31,810 --> 00:11:35,380 Tiddikjara pointer, imma tirrealizza u jifhmu x'inhu attwalment għaddejjin 195 00:11:35,380 --> 00:11:38,490 anki fil-ftit dawk il-karattri ftit. 196 00:11:38,490 --> 00:11:42,040 >> Issa, dan wieħed kważi ftit aktar faċli, anki jekk din hija espressjoni itwal. 197 00:11:42,040 --> 00:11:48,160 Allura dak li huwa dan isir, li l-enfasizzati issa: "malloc (10 * sizeof (int));" Yeah? 198 00:11:48,160 --> 00:11:52,350 [Tweġiba Student, mhux intelliġibbli] 199 00:11:52,350 --> 00:11:58,250 Tajba. U jien ser tieħu hemmhekk. Huwa allokazzjoni ta 'blokki ta' memorja għal għaxar interi. 200 00:11:58,250 --> 00:12:02,190 U issa ejja adsa ftit aktar profonda; huwa allokazzjoni ta 'blokki ta' memorja għal għaxar interi. 201 00:12:02,190 --> 00:12:05,390 X'inhu malloc mbagħad jirritornaw? 202 00:12:05,390 --> 00:12:10,390 L-indirizz ta 'dak blokki, jew, b'mod aktar konkret, l-indirizz ta' l-ewwel byte ta 'dik blokki. 203 00:12:10,390 --> 00:12:14,080 Kif allura jien, il-programmer, li tkun taf fejn dik blokki ta 'truf tal-memorja? 204 00:12:14,080 --> 00:12:18,340 Naf li huwa kontigwu. Malloc, b'definizzjoni, se jtik blokki kontigwi ta 'memorja. 205 00:12:18,340 --> 00:12:21,240 L-ebda lakuni fiha. Għandek aċċess għal kull byte f'dak blokki, 206 00:12:21,240 --> 00:12:26,760 lura lura lura, imma kif inkun naf fejn l-aħħar ta 'dan blokki ta' memorja huwa? 207 00:12:26,760 --> 00:12:28,850 Meta tuża malloc? [Tweġiba Student, mhux intelliġibbli]. Tajba 208 00:12:28,850 --> 00:12:30,670 Inti ma. Int għandek tiftakar. 209 00:12:30,670 --> 00:12:35,960 Għandi tiftakar I li jintużaw l-valur 10, u jien ma anki jidhru li għamlu dak hawn. 210 00:12:35,960 --> 00:12:41,000 Iżda l-oneru huwa kompletament fuqi. Strlen, li aħna stajt jsiru ftit dipendenti fuq għall kordi, 211 00:12:41,000 --> 00:12:45,860 xogħlijiet biss minħabba din il-konvenzjoni ta 'wara \ 0 212 00:12:45,860 --> 00:12:48,840 jew dan karattru NUL speċjali, NUL, fl-aħħar ta 'sekwenza. 213 00:12:48,840 --> 00:12:51,740 Dan ma jkollhiex għal ftit biċċiet arbitrarji ta 'memorja. 214 00:12:51,740 --> 00:12:58,590 Huwa sa inti. Allura linja 20, imbagħad, jalloka blokki ta 'memorja 215 00:12:58,590 --> 00:13:02,590 li jista 'jaħżen 10 interi, u huwa jaħżen l-indirizz ta' l-ewwel byte 216 00:13:02,590 --> 00:13:05,610 ta 'dik blokki ta' memorja fil-varjabbli x imsejħa. 217 00:13:05,610 --> 00:13:11,140 Ergo, li huwa pointer. Allura linja 21, sfortunatament, kien żball. 218 00:13:11,140 --> 00:13:16,110 Iżda l-ewwel, dak li huwa dan isir? Huwa qal maħżen fil-post 10, 0 indiċjati, 219 00:13:16,110 --> 00:13:19,480 tal-blokki ta 'memorja imsejħa x-0-valur. 220 00:13:19,480 --> 00:13:21,510 >> Allura avviż ftit affarijiet huma għaddejjin. 221 00:13:21,510 --> 00:13:25,420 Anke jekk x huwa pointer, jiġbor lura mingħand ftit ġimgħat ilu 222 00:13:25,420 --> 00:13:29,440 li inti xorta tista 'tuża l-firxa stil notazzjoni parentesi kwadri. 223 00:13:29,440 --> 00:13:36,180 Minħabba li l-fatt qasir idejn notazzjoni għall-aritmetika pointer aktar cryptic li tħares. 224 00:13:36,180 --> 00:13:40,320 fejn aħna se nagħmlu xi ħaġa bħal din: Ħu l-indirizz x, jimxu 10 spots fuq, 225 00:13:40,320 --> 00:13:44,550 allura jmorru hemm għal dak kollu indirizz huwa maħżun f'dak il-post. 226 00:13:44,550 --> 00:13:48,090 Iżda franchement, dan huwa biss atroċi li taqra u jiksbu komdi. 227 00:13:48,090 --> 00:13:52,900 Allura l-dinja tipikament juża l-parentesi kwadri sempliċement għaliex dan huwa tant aktar umana għall-utent biex jinqara. 228 00:13:52,900 --> 00:13:55,140 Imma dak li dak li verament għaddejjin taħt il-barnuża; 229 00:13:55,140 --> 00:13:58,190 x huwa indirizz, mhux firxa, per se. 230 00:13:58,190 --> 00:14:02,410 Allura dan huwa ħażna 0 fil-post 10 fil x. 231 00:14:02,410 --> 00:14:06,120 Għaliex dan huwa ħażin? Yeah? 232 00:14:06,120 --> 00:14:17,370 [Tweġiba Student, mhux intelliġibbli] Eżattament. 233 00:14:17,370 --> 00:14:21,100 Aħna biss allokat 10 ints, imma aħna għadd minn 0 meta jipprogrammaw fis-C, 234 00:14:21,100 --> 00:14:25,690 hekk ikollok aċċess għal 0 10 1 2 3 4 5 6 7 8 9, iżda mhux. 235 00:14:25,690 --> 00:14:30,270 Allura kemm il-programm ser tort seq jew mhuwiex. 236 00:14:30,270 --> 00:14:32,900 Iżda aħna ma verament jafu, dan huwa tip ta 'mġiba nondeterministic. 237 00:14:32,900 --> 00:14:35,600 Hija verament jiddependi fuq jekk irridu jiksbu xxurtjati. 238 00:14:35,600 --> 00:14:40,650 Jekk jirriżulta li s-sistema operattiva ma mind jekk I użu li byte żejda, 239 00:14:40,650 --> 00:14:43,360 anki jekk ma tatx lill lili, programm tiegħi ma jista crash. 240 00:14:43,360 --> 00:14:46,780 Huwa prima, huwa Buggy, imma inti ma tista 'tara li sintomu, 241 00:14:46,780 --> 00:14:48,960 jew inti tista 'tara biss darba fil-waqt. 242 00:14:48,960 --> 00:14:51,230 Iżda r-realtà hija li l-bug hija, fil-fatt, hemm. 243 00:14:51,230 --> 00:14:54,320 U huwa verament problematiku jekk inti stajt bil-miktub programm li inti tixtieq li tkun korretta, 244 00:14:54,320 --> 00:14:58,840 li ħadthom mibjugħa l-programm li n-nies qed jużaw li kull darba fil-waqt ġġarrfu 245 00:14:58,840 --> 00:15:02,450 minħabba li, naturalment, dan mhuwiex tajjeb. Fil-fatt, jekk għandek telefon Android jew iPhone 246 00:15:02,450 --> 00:15:05,550 u inti tniżżel apps dawn il-ġranet, jekk inti stajt qatt kellu app biss nieqaf, 247 00:15:05,550 --> 00:15:10,040 kollha f'daqqa dan jispiċċa, li kważi dejjem ir-riżultat ta 'xi kwistjoni memorja relatati, 248 00:15:10,040 --> 00:15:12,830 fejn il-programmer invitat up u dereferenced pointer 249 00:15:12,830 --> 00:15:18,670 li hu jew hi ma għandhomx ikollhom, u r-riżultat ta 'IOS jew Android huwa li joqtlu biss l-programm għal kollox 250 00:15:18,670 --> 00:15:23,080 aktar milli l-imġiba mhux definiti riskju jew xi tip ta 'kompromess tas-sigurtà. 251 00:15:23,080 --> 00:15:25,950 >> Hemm wieħed bug ieħor f'dan il-programm minbarra dan wieħed. 252 00:15:25,950 --> 00:15:30,180 X'iktar jiena invitat up f'dan il-programm? 253 00:15:30,180 --> 00:15:32,740 Stajt mhux prattikat dak li stajt preached. Yeah? 254 00:15:32,740 --> 00:15:34,760 [Tweġiba Student, mhux intelliġibbli]. Tajba 255 00:15:34,760 --> 00:15:36,880 I ma ħelset l-memorja. Allura l-istat tad-thumb issa 256 00:15:36,880 --> 00:15:43,150 għandu jkun ghaċ inti sejħa malloc, inti trid sejħa ħielsa meta inti qed isir bl-użu li l-memorja. 257 00:15:43,150 --> 00:15:45,610 Issa, meta kieku nixtieq biex ħielsa din il-memorja? 258 00:15:45,610 --> 00:15:49,780 Probabbilment, jekk wieħed jassumi din il-linja 1 kienet korretta, nixtieq li tagħmel dan hawnhekk. 259 00:15:49,780 --> 00:15:55,710 Minħabba I ma setgħux, per eżempju, jagħmlu dan stabbiliti hawn. Għaliex? 260 00:15:55,710 --> 00:15:57,860 Just barra mill-ambitu. Allura anke jekk aħna qed jitkellem dwar pointers, 261 00:15:57,860 --> 00:16:04,830 din hija ġimgħa 2 jew 3 ħruġ, fejn x huwa biss fl-ambitu ta 'ġewwa tal-ċingi kaboċċi fejn kien iddikjarat. 262 00:16:04,830 --> 00:16:11,000 Allura inti żgur ma tistax ħielsa hemmhekk. Uniku ċans tiegħi biex ħielsa hija bejn wieħed u ieħor wara linja 21. 263 00:16:11,000 --> 00:16:15,170 Dan huwa programm pjuttost sempliċi; kien pjuttost faċli ladarba inti tip ta mgeżwra moħħok 264 00:16:15,170 --> 00:16:17,870 madwar dak il-programm qed jagħmel, fejn l-iżbalji kienu. 265 00:16:17,870 --> 00:16:20,500 U anki jekk inti ma tara dan fl-ewwel, wieħed jittama huwa ftit ovvju issa 266 00:16:20,500 --> 00:16:23,870 li dawn l-iżbalji huma pjuttost faċilment solvuti u faċilment magħmula. 267 00:16:23,870 --> 00:16:28,720 Iżda meta l-programm ikun aktar minn 12 linji twal, huwa 50 linji twal, 100 linji twal, 268 00:16:28,720 --> 00:16:31,150 mixi permezz tal-linja kodiċi tiegħek mill-linja, il-ħsieb permezz ta 'dan loġikament, 269 00:16:31,150 --> 00:16:35,110 huwa possibbli iżda mhux partikolarment gost li tagħmel, kontinwament ifittxu bugs, 270 00:16:35,110 --> 00:16:38,340 u huwa wkoll diffiċli li tagħmel, u hu għalhekk li 'għodda bħal Valgrind jeżisti. 271 00:16:38,340 --> 00:16:40,900 Let me imorru quddiem u tagħmel dan: let me miftuħa tieqa terminal tiegħi, 272 00:16:40,900 --> 00:16:45,400 u let me mhux biss run-memorja, għaliex memorja jidher li jkun multa. 273 00:16:45,400 --> 00:16:49,180 Jien jkollna xxurtjati. Going għal dak byte addizzjonali fl-aħħar tal-firxa 274 00:16:49,180 --> 00:16:51,060 ma jidhirx li jkunu wisq problematiku. 275 00:16:51,060 --> 00:16:56,370 Iżda let me, madankollu, tagħmel verifika sanità, li sempliċiment ifisser li tivverifika 276 00:16:56,370 --> 00:16:58,320 jekk dan huwa effettivament korrett. 277 00:16:58,320 --> 00:17:04,690 >> Mela ejja do valgrind-v - leak-verifika = sħiħa, 278 00:17:04,690 --> 00:17:07,520 u allura l-isem tal-programm f'dan il-każ hija memorja, mhux a.out. 279 00:17:07,520 --> 00:17:10,760 So let me imorru quddiem u jagħmlu dan. Hit Ikteb. 280 00:17:10,760 --> 00:17:14,109 Għażiż Alla. Dan huwa l-output tagħha, u dan huwa dak I allużjoni għall preċedenti. 281 00:17:14,109 --> 00:17:17,550 Iżda, jekk inti titgħallem biex taqra kollha permezz ta 'l-nonsense hawn, 282 00:17:17,550 --> 00:17:20,760 aktar ta 'dan huwa biss l-output dijanjostiċi li mhux dak interessanti. 283 00:17:20,760 --> 00:17:24,829 Dak għajnejn tiegħek verament jixtieq li tkun tfittex xi tismija ta 'żball jew invalidi. 284 00:17:24,829 --> 00:17:26,800 Kliem li jissuġġerixxu problemi. 285 00:17:26,800 --> 00:17:29,340 U fil-fatt, ejja ara x'inhu għaddej ħażin stabbiliti hawn. 286 00:17:29,340 --> 00:17:35,230 I jkollhom sommarju ta 'xi tip, "fl-użu fil-ħruġ:. 40 bytes fir 1 blokki" 287 00:17:35,230 --> 00:17:38,750 Jien ma verament ċert liema blokk hu għadu, imma 40 bytes 288 00:17:38,750 --> 00:17:41,260 attwalment iħoss bħal I jistgħu figura fejn thats ġejjin minn. 289 00:17:41,260 --> 00:17:45,030 40 bytes. Għaliex huma 40 bytes fl-użu fil-ħruġ? 290 00:17:45,030 --> 00:17:48,780 U aktar speċifiku, jekk irridu iscroll hawn, 291 00:17:48,780 --> 00:17:54,520 għaliex jiena definittivament mitlufa 40 bytes? Yeah? 292 00:17:54,520 --> 00:17:59,520 [Tweġiba Student, mhux intelliġibbli] Perfect. Yeah, eżattament. 293 00:17:59,520 --> 00:18:03,540 Kien hemm 10 interi, u kull wieħed minn dawn huwa daqs ta '4, jew 32 bits, 294 00:18:03,540 --> 00:18:08,300 so I tilfu preċiżament 40 bytes għaliex, kif inti propost, I ma imsejħa ħielsa. 295 00:18:08,300 --> 00:18:13,460 Din kienet waħda bug, u issa ejja tfittex l isfel ftit aktar u ara li jmiss għal dan, 296 00:18:13,460 --> 00:18:16,900 "Invalidi tikteb 'daqs 4." Issa dak li huwa dan? 297 00:18:16,900 --> 00:18:21,150 Dan l-indirizz huwa espress notazzjoni bażi liema, apparentement? 298 00:18:21,150 --> 00:18:23,640 Dan huwa hexadeċimali, u kwalunkwe ħin li inti tara numru li jibda bl 0x, 299 00:18:23,640 --> 00:18:29,410 dan ifisser hexadeċimali, li għamilna mod lura fl, I think, taqsima pset 0 ta 'mistoqsijiet, 300 00:18:29,410 --> 00:18:34,090 li kien biss biex jagħmlu eżerċizzju warmup, li jikkonverti deċimali lill hex li binarja u ibqa 'sejjer hekk. 301 00:18:34,090 --> 00:18:39,220 Hexadeċimali, biss billi konvenzjoni tal-bniedem, huwa normalment użat biex jirrappreżentaw pointers 302 00:18:39,220 --> 00:18:41,570 jew, b'mod aktar ġenerali, jindirizza. Huwa biss konvenzjoni, 303 00:18:41,570 --> 00:18:45,340 għaliex dan huwa ftit aktar faċli biex jinqraw, huwa ftit aktar kompatt minn xi ħaġa bħal deċimali, 304 00:18:45,340 --> 00:18:47,720 u binarji hija inutli għall-bnedmin l-aktar għall-użu. 305 00:18:47,720 --> 00:18:50,840 Allura issa dak li jfisser dan? Ukoll, jidher qisu hemm xi write invalidu 306 00:18:50,840 --> 00:18:54,480 ta 'daqs 4 fuq il-linja 21 tat memory.c. 307 00:18:54,480 --> 00:18:59,180 Mela ejja mmorru lura għal-linja 21, u fil-fatt, hawnhekk hija li jiktbu invalidu. 308 00:18:59,180 --> 00:19:02,640 Allura Valgrind mhux se kompletament jżommu naħa tiegħi u tell me dak l-jiffissaw huwa, 309 00:19:02,640 --> 00:19:05,520 iżda huwa iskoperta li jien wieħed jagħmel write invalidu. 310 00:19:05,520 --> 00:19:08,800 Jien jmissu 4 bytes li jien ma għandhom ikunu, u apparentement dan għaliex, 311 00:19:08,800 --> 00:19:13,960 kif inti enfasizzat, li qed nagħmel [10] minflok [9] maximally 312 00:19:13,960 --> 00:19:16,660 jew [0] jew xi ħaġa bejniethom. 313 00:19:16,660 --> 00:19:19,690 Bil Valgrind, tirrealizza kwalunkwe ħin int issa kitba ta 'programm 314 00:19:19,690 --> 00:19:24,190 li tuża indikaturi u l-użi memorja, u malloc aktar speċifiku, 315 00:19:24,190 --> 00:19:27,080 definittivament tikseb fis-drawwa ta 'tmexxija dan twil 316 00:19:27,080 --> 00:19:30,890 iżda faċilment kkupjati u pasted kmand tal Valgrind 317 00:19:30,890 --> 00:19:32,650 biex tara jekk hemm xi żbalji fil hemmhekk. 318 00:19:32,650 --> 00:19:34,820 U dan ser ikun kbir kull darba li inti tara l-output, 319 00:19:34,820 --> 00:19:39,430 iżda biss parse permezz viżwalment kollha tal-produzzjoni u ara jekk inti tara isemmi ta 'żbalji 320 00:19:39,430 --> 00:19:43,190 jew twissijiet jew invalida jew mitlufa. 321 00:19:43,190 --> 00:19:46,200 Kwalunkwe kliem li ħoss bħal inti invitat up x'imkien. 322 00:19:46,200 --> 00:19:48,580 Allura jirrealizzaw li l-għodda ġdida fil-toolkit tiegħek. 323 00:19:48,580 --> 00:19:51,270 >> Issa nhar it-Tnejn, kellna mazz sħiħ ta 'folks toħroġ hawn 324 00:19:51,270 --> 00:19:53,150 u jirrappreżentaw il-kunċett ta 'lista marbuta. 325 00:19:53,150 --> 00:20:00,970 U aħna introduċiet il-lista marbuta bħala soluzzjoni biex dak il-problema? 326 00:20:00,970 --> 00:20:04,590 Yeah? [Tweġiba Student, mhux intelliġibbli]. Tajba 327 00:20:04,590 --> 00:20:06,530 Arrays ma jistax ikollhom memorja miżjuda magħhom. 328 00:20:06,530 --> 00:20:09,440 Jekk inti jallokaw firxa ta 'daqs 10, li kollox ikollok. 329 00:20:09,440 --> 00:20:13,690 Tista 'sejħa funzjoni simili realloc jekk inti inizjalment imsejħa malloc, 330 00:20:13,690 --> 00:20:17,580 u li tista 'tipprova li jikbru l-firxa jekk hemm spazju lejn it-tmiem ta' dan 331 00:20:17,580 --> 00:20:21,610 li ħadd ikun qiegħed juża, u jekk ma jkunx hemm, se ssib biss inti chunk akbar x'imkien ieħor. 332 00:20:21,610 --> 00:20:25,040 Imma allura se kopja kollha ta 'dawk bytes fil-firxa ġdida. 333 00:20:25,040 --> 00:20:28,310 Dan ħsejjes bħal soluzzjoni ħafna korretta. 334 00:20:28,310 --> 00:20:34,790 Għaliex dan huwa attraenti? 335 00:20:34,790 --> 00:20:36,940 I jfissirx li taħdem, il-bnedmin solvejna din il-problema. 336 00:20:36,940 --> 00:20:40,710 Għaliex ma għandna bżonn biex isolvu din nhar it-Tnejn ma 'listi marbuta? Yeah? 337 00:20:40,710 --> 00:20:44,060 [Tweġiba Student, mhux intelliġibbli] Dan jista 'jieħu żmien twil. 338 00:20:44,060 --> 00:20:49,260 Fil-fatt, kull darba li inti qed titlob malloc jew realloc jew calloc, li huwa pass ieħor wieħed, 339 00:20:49,260 --> 00:20:52,470 kwalunkwe ħin li inti, il-programm, qed nitkellmu mas-sistema operattiva, 340 00:20:52,470 --> 00:20:54,310 inti għandek tendenza li bil-mod il-programm isfel. 341 00:20:54,310 --> 00:20:57,470 U jekk inti qed tagħmel dawn it-tipi ta 'affarijiet fil-linji, int verament jonqos affarijiet isfel. 342 00:20:57,470 --> 00:21:00,740 Int mhux se Avviż dan għall-aktar sempliċi ta '"bonjour dinja" programmi tat-tip, 343 00:21:00,740 --> 00:21:04,300 iżda fil-programmi ferm akbar, li titlob is-sistema operattiva għal darb'oħra u għal darb'oħra għall-memorja 344 00:21:04,300 --> 00:21:07,520 jew tagħti lura mill-ġdid u għal darb'oħra tendenza li ma tkun ħaġa tajba. 345 00:21:07,520 --> 00:21:11,210 Plus, huwa biss tip ta 'intellettwalment - huwa skart sħiħa ta' żmien. 346 00:21:11,210 --> 00:21:16,490 Għaliex jallokaw memorja aktar u aktar, riskju ikkupjar kollox fil-firxa ġdida, 347 00:21:16,490 --> 00:21:21,980 jekk għandek alternattiva li ihallik jallokaw memorja biss kemm inti fil-fatt bżonn? 348 00:21:21,980 --> 00:21:24,130 Allura hemm pluses u minuses fil hawn. 349 00:21:24,130 --> 00:21:26,730 Waħda mill-pluses issa hija li għandna dinamiżmu. 350 00:21:26,730 --> 00:21:29,100 Ma jimpurtax fejn l-biċċiet ta 'memorja huma li huma ħielsa, 351 00:21:29,100 --> 00:21:32,070 I jistgħu biss tip ta 'joħolqu dawn frak tal-ħobż permezz pointers 352 00:21:32,070 --> 00:21:34,470 li string lista sħiħa tiegħi marbuta flimkien. 353 00:21:34,470 --> 00:21:36,470 Imma I jħallsu għall-inqas prezz wieħed. 354 00:21:36,470 --> 00:21:40,060 >> What do I għandhom jieqfu fil-kisba listi marbuta? 355 00:21:40,060 --> 00:21:42,470 Yeah? [Tweġiba Student, mhux intelliġibbli]. Tajba 356 00:21:42,470 --> 00:21:45,650 Ikollok bżonn memorja aktar. Issa I bżonn l-ispazju għal dawn pointers, 357 00:21:45,650 --> 00:21:47,900 u fil-każ ta 'din il-lista super marbuta sempliċi 358 00:21:47,900 --> 00:21:51,410 li huwa biss tipprova li jaħżen interi, li huma 4 bytes, inżommu qal 359 00:21:51,410 --> 00:21:54,240 ukoll, pointer huwa ta '4 bytes, hekk issa stajt litteralment rdoppja 360 00:21:54,240 --> 00:21:57,290 l-ammont tal-memorja li għandi bżonn biss li taħżen din il-lista. 361 00:21:57,290 --> 00:21:59,680 Iżda għal darb'oħra, dan huwa tradeoff kostanti fix-xjenza tal-kompjuter 362 00:21:59,680 --> 00:22:03,440 bejn il-ħin u l-ispazju u l-iżvilupp, sforzi u riżorsi oħra. 363 00:22:03,440 --> 00:22:06,630 X'hemm ieħor tnaqqis ta 'użu ta' lista marbuta? Yeah? 364 00:22:06,630 --> 00:22:10,150 [Tweġiba Student, mhux intelliġibbli] 365 00:22:10,150 --> 00:22:12,600 Tajba. Mhux faċli għall-aċċess. Aħna ma jistax aktar lieva 366 00:22:12,600 --> 00:22:15,530 ġimgħa 0 prinċipji bħall firda u conquer. 367 00:22:15,530 --> 00:22:18,220 U aktar speċifiku, tfittxija binarja. Għaliex anki jekk aħna bnedmin 368 00:22:18,220 --> 00:22:20,400 tista 'tara bejn wieħed u ieħor meta l-nofs ta' din il-lista hija, 369 00:22:20,400 --> 00:22:25,840 il-kompjuter biss jaf li din il-lista marbuta tibda fl-indirizz imsejħa ewwel. 370 00:22:25,840 --> 00:22:28,250 U li 0x123 jew xi ħaġa bħal dik. 371 00:22:28,250 --> 00:22:30,990 U l-uniku mod il-programm jista 'jsib l-element tan-nofs 372 00:22:30,990 --> 00:22:33,350 huwa li attwalment tfittex l-lista kollha. 373 00:22:33,350 --> 00:22:35,500 U anke dakinhar, litteralment trid tfittex l-lista sħiħa għaliex 374 00:22:35,500 --> 00:22:38,950 anke ladarba inti tilħaq l-element tan-nofs minn wara l-pointers, 375 00:22:38,950 --> 00:22:42,380 inti, il-programm, l-ebda idea kemm din il-lista hija, potenzjalment, 376 00:22:42,380 --> 00:22:45,250 sakemm inti hit l-aħħar ta 'dan, u kif tkun taf programmatically 377 00:22:45,250 --> 00:22:48,600 li int fl-aħħar ta 'lista marbuta? 378 00:22:48,600 --> 00:22:51,120 Hemm pointer NULL speċjali, hekk darb'oħra, konvenzjoni. 379 00:22:51,120 --> 00:22:53,870 Pjuttost milli jużaw dan il-werrej, aħna żgur ma jixtiequ li din tkun xi valur żibel 380 00:22:53,870 --> 00:22:57,750 tipponta off-istadju x'imkien; irridu li jkun idejn isfel, NULL, 381 00:22:57,750 --> 00:23:01,530 b'tali mod li għandna dan terminus f'din l-istruttura tad-data hekk nafu fejn tispiċċa. 382 00:23:01,530 --> 00:23:03,410 >> X'jiġri jekk irridu li jimmanipulaw dan? 383 00:23:03,410 --> 00:23:05,980 Għamilna aktar ta 'dan viżwalment, u mal-bnedmin, 384 00:23:05,980 --> 00:23:07,630 imma dak jekk irridu nagħmlu xi inserzjoni? 385 00:23:07,630 --> 00:23:12,360 Allura l-lista oriġinali kienet 9, 17, 20, 22, 29, 34. 386 00:23:12,360 --> 00:23:16,730 X'jiġri jekk aħna mbagħad riedu spazju malloc għal numru 55, node għal dan, 387 00:23:16,730 --> 00:23:20,730 u mbagħad aħna tixtieq li daħħal 55 fil-lista hekk kif għamilna nhar it-Tnejn? 388 00:23:20,730 --> 00:23:23,690 Kif nistgħu nagħmlu dan? Ukoll, Anita ħarāu u hi essenzjalment mixi il-lista. 389 00:23:23,690 --> 00:23:27,500 Hija bdiet fl-ewwel element, allura l-li jmiss, li jmiss, li jmiss, li jmiss, il-li jmiss. 390 00:23:27,500 --> 00:23:29,500 Fl-aħħarnett hit-naħa tax-xellug it-triq kollha 391 00:23:29,500 --> 00:23:34,480 u realizzati oh, dan huwa NULL. Allura manipulazzjoni pointer dak meħtieġ li jsir? 392 00:23:34,480 --> 00:23:37,980 Il-persuna li kienet fuq l-aħħar, numru 34, meħtieġa naħa tax-xellug tiegħu mqajma 393 00:23:37,980 --> 00:23:46,220 għall-punt fi 55, 55 meħtieġa driegħ tax-xellug tagħhom tipponta 'l isfel li jkun il-terminatur NULL ġdid. Magħmul. 394 00:23:46,220 --> 00:23:49,540 Pretty faċli li ddaħħal 55 fil-lista magħżula. 395 00:23:49,540 --> 00:23:51,800 U kif tista 'din tfittex? 396 00:23:51,800 --> 00:23:55,690 >> Let me imorru quddiem u tiftaħ xi eżempju kodiċi hawn. 397 00:23:55,690 --> 00:23:58,120 I ser jiftħu gedit, u let me tiftaħ żewġ fajls 1. 398 00:23:58,120 --> 00:24:02,050 Wieħed huwa list1.h, u let me biss infakkarkom li dan kien il-blokki tal-kodiċi 399 00:24:02,050 --> 00:24:04,920 li aħna użati biex jirrappreżentaw node. 400 00:24:04,920 --> 00:24:13,040 A node għandu kemm int imsejħa n u werrej imsejjaħ jmiss li biss il-punti li l-ħaġa li jmiss fil-lista. 401 00:24:13,040 --> 00:24:15,450 Dan huwa issa fil-fajl h.. Għaliex? 402 00:24:15,450 --> 00:24:19,090 Hemm din il-konvenzjoni, u aħna ma ħadu vantaġġ ta 'dan l-ammont kbir nfusna, 403 00:24:19,090 --> 00:24:22,220 iżda l-persuna li kiteb il-funzjonijiet printf u oħrajn 404 00:24:22,220 --> 00:24:27,150 taw bħala rigal għad-dinja kollha ta 'dawk il-funzjonijiet billi tikteb fajl imsejjaħ stdio.h. 405 00:24:27,150 --> 00:24:30,950 U allura hemm string.h, u allura hemm map.h, u hemm dawn il-fajls h 406 00:24:30,950 --> 00:24:34,410 li inti tista raw jew użata matul it-terminu bil-miktub minn nies oħra. 407 00:24:34,410 --> 00:24:38,470 Tipikament f'dawk. ​​Fajls h huma affarijiet biss simili typedefs 408 00:24:38,470 --> 00:24:42,310 jew dikjarazzjonijiet ta 'tipi użanza jew dikjarazzjonijiet ta' kostanti. 409 00:24:42,310 --> 00:24:47,890 Inti ma tpoġġi implimentazzjonijiet funzjonijiet "fil-fajls header. 410 00:24:47,890 --> 00:24:50,570 Inti tpoġġi, minflok, biss prototipi tagħhom. 411 00:24:50,570 --> 00:24:53,050 Inti tpoġġi affarijiet li inti tixtieq li jaqsmu mal-dinja dak li għandhom bżonn 412 00:24:53,050 --> 00:24:55,640 sabiex jikkompilaw kodiċi tagħhom. Hekk biss li jsibu rwieħhom dan il-vizzju, 413 00:24:55,640 --> 00:24:59,110 aħna ddeċidew li jagħmlu l-istess ħaġa. Hemm Ma tantx fil list1.h, 414 00:24:59,110 --> 00:25:02,070 imma aħna stajt tpoġġi xi ħaġa li tista 'tkun ta' interess għall-persuni fid-dinja 415 00:25:02,070 --> 00:25:05,030 li jixtiequ jużaw implimentazzjoni tagħna lista linked. 416 00:25:05,030 --> 00:25:08,040 Issa, fil list1.c, jien mhux se jmorru permezz ta 'dan ħaġa sħiħa 417 00:25:08,040 --> 00:25:11,390 għaliex dan huwa daqsxejn twil, dan il-programm, imma ejja run reali malajr fil-pront. 418 00:25:11,390 --> 00:25:15,720 Let me jikkompilaw lista1, let me imbagħad run lista1, u dak li inti ser tara hija 419 00:25:15,720 --> 00:25:18,070 konna simulata programm ftit sempliċi hawn 420 00:25:18,070 --> 00:25:20,990 li għaddej biex ippermettuli li żżid u neħħi n-numri għal lista. 421 00:25:20,990 --> 00:25:24,310 So let me go l quddiem u t-tip 3 għall-3 għażla menu. 422 00:25:24,310 --> 00:25:27,880 Irrid li daħħal in-numru - ejja jagħmlu l-ewwel numru, li kien 9, 423 00:25:27,880 --> 00:25:30,550 u issa jien told-lista hija issa 9. 424 00:25:30,550 --> 00:25:33,760 Let me imorru quddiem u tagħmel ieħor inserzjoni, so I hit menu option 3. 425 00:25:33,760 --> 00:25:36,760 X'inhu n-numru ma nixtieq li daħħal? 17. 426 00:25:36,760 --> 00:25:39,220 Ikteb. U jien ser tagħmel biss waħda aktar. 427 00:25:39,220 --> 00:25:41,720 Let me daħħal in-numru 22. 428 00:25:41,720 --> 00:25:45,850 Allura aħna għandna l-bidu tal-lista marbuta li kellna fil-forma slide mument ilu. 429 00:25:45,850 --> 00:25:48,740 Kif huwa dan inseriment verament jiġri? 430 00:25:48,740 --> 00:25:52,000 Tabilħaqq, 22 issa hija fl-aħħar tal-lista. 431 00:25:52,000 --> 00:25:55,050 Allura l-istorja aħna told fuq il-palk tat-Tnejn u recapped heure 432 00:25:55,050 --> 00:25:57,460 għandu jiġi effettivament jiġri fil-kodiċi. 433 00:25:57,460 --> 00:25:59,700 Ejja tagħti ħarsa. Let me iscroll f'dan il-fajl. 434 00:25:59,700 --> 00:26:01,720 Aħna ser tleqqija fuq xi wħud mill-funzjonijiet, 435 00:26:01,720 --> 00:26:05,630 iżda aħna ser jinżlu għal, per eżempju, il-funzjoni daħħal. 436 00:26:05,630 --> 00:26:11,720 >> Ejja naraw kif immorru dwar ddaħħal node ġdid fis din il-lista marbuta. 437 00:26:11,720 --> 00:26:14,550 Fejn hi l-lista ddikjarata? Ukoll, ejja iscroll-triq kollha fil-quċċata, 438 00:26:14,550 --> 00:26:19,970 u tinnota li lista marbuta tiegħi huwa essenzjalment iddikjarat bħala pointer waħda li l-bidu NULL. 439 00:26:19,970 --> 00:26:23,180 Allura jien jużaw varjabbli globali hawn, li ġeneralment konna preached kontra 440 00:26:23,180 --> 00:26:25,280 għaliex dan jagħmilha kodiċi tiegħek messy ftit li żżomm, 441 00:26:25,280 --> 00:26:29,080 huwa tip ta 'għażżien, normalment, iżda mhux għażżien u mhuwiex ħażin u mhuwiex ħażin 442 00:26:29,080 --> 00:26:33,660 jekk l-iskop waħdieni programm tiegħek fil-ħajja huwa li jkun jixbah lista waħda linked. 443 00:26:33,660 --> 00:26:35,460 Liema huwa eżattament dak li aħna qed tagħmel. 444 00:26:35,460 --> 00:26:39,100 Allura minflok jiddikjara dan b'mod prinċipali u mbagħad ikollhom jgħaddu lill kull funzjoni 445 00:26:39,100 --> 00:26:42,640 konna bil-miktub f'dan il-programm, aħna minflok realizzata oh, ejja biss jagħmluha globali 446 00:26:42,640 --> 00:26:47,060 minħabba li l-għan sħiħ ta 'dan il-programm huwa li turi wieħed u wieħed biss lista marbuta. 447 00:26:47,060 --> 00:26:50,700 Allura li jħoss okay. Hawnhekk huma prototipi tiegħi, u aħna mhux se jmorru kollha permezz ta 'dawn, 448 00:26:50,700 --> 00:26:55,800 imma I kiteb funzjoni ħassar, funzjoni ssib, funzjoni daħħal, u funzjoni travers. 449 00:26:55,800 --> 00:26:59,080 Imma ejja issa jmorru lura għall-funzjoni daħħal 450 00:26:59,080 --> 00:27:01,490 u tara kif dan wieħed jaħdem hawn. 451 00:27:01,490 --> 00:27:09,940 Daħħal huwa fuq il-linja - here we go. 452 00:27:09,940 --> 00:27:12,850 Daħħal. Allura dan ma jieħux ebda argument, għaliex aħna qed tmur biex titlob 453 00:27:12,850 --> 00:27:15,930 ġewwa utent ta 'din il-funzjoni għall-numru li tixtieq li daħħal. 454 00:27:15,930 --> 00:27:19,410 Iżda l-ewwel, aħna qed inħejju biex jagħtuhom xi spazju. 455 00:27:19,410 --> 00:27:22,050 Dan huwa tip ta 'kopja u paste mill-eżempju ieħor. 456 00:27:22,050 --> 00:27:25,110 F'dak il-każ, konna jalloka int; dan iż-żmien aħna qed jalloka node. 457 00:27:25,110 --> 00:27:27,910 I ma verament tiftakar kif ħafna bytes node huwa, iżda li l-multa. 458 00:27:27,910 --> 00:27:30,460 Sizeof tista 'figura li out għalija. 459 00:27:30,460 --> 00:27:33,340 U għaliex jien iċċekkjar għall NULL f'konformità 120? 460 00:27:33,340 --> 00:27:37,530 Liema jista 'tmur ħażin fil-linja 119? Yeah? 461 00:27:37,530 --> 00:27:40,530 [Tweġiba Student, mhux intelliġibbli] 462 00:27:40,530 --> 00:27:43,440 Tajba. Just jista 'jkun il-każ li stajt talab għall-memorja wisq 463 00:27:43,440 --> 00:27:47,020 jew xi ħaġa ħażina u s-sistema operattiva ma jkollhom bytes biżżejjed biex jagħtu lili, 464 00:27:47,020 --> 00:27:50,640 għalhekk sinjali kemm billi jirritorna NULL, u jekk jien ma jiċċekkja għal dak 465 00:27:50,640 --> 00:27:54,710 u I biss bl-addoċċ jipproċedi biex jużaw l-indirizz lura, jista 'jkun NULL. 466 00:27:54,710 --> 00:27:58,400 Dan jista 'jkun xi valur magħrufa; mhix ħaġa tajba jekk I - 467 00:27:58,400 --> 00:28:00,590 fil-fatt mhux se jkun il-valur mhux magħruf. Dan jista 'jkun NULL, so I ma jridux 468 00:28:00,590 --> 00:28:02,550 li jsir abbuż minnha u riskju dereferencing dan. 469 00:28:02,550 --> 00:28:07,410 Jekk dan iseħħ, I biss ritorn u aħna ser nippretendu simili I ma jiksbu lura kwalunkwe memorja fil-livelli kollha. 470 00:28:07,410 --> 00:28:12,270 >> Inkella, I tell-utent tagħti me numru li daħħal, I call GetInt tagħna ħabib antik, 471 00:28:12,270 --> 00:28:15,530 u allura dan kien il-sintassi ġdida aħna introdotti nhar it-Tnejn. 472 00:28:15,530 --> 00:28:20,320 "Newptr-> n" tfisser jieħu l-indirizz li inti kienu mogħtija mill malloc 473 00:28:20,320 --> 00:28:23,490 li jirrappreżenta l-ewwel byte ta 'oġġett node ġdid, 474 00:28:23,490 --> 00:28:26,860 u mbagħad mur għall-qasam imsejħa n. 475 00:28:26,860 --> 00:28:35,270 A kwistjoni trivia ftit: Dan huwa ekwivalenti għal dak linja aktar cryptic tal-kodiċi? 476 00:28:35,270 --> 00:28:38,110 Kif inkella tista Ktibtu dan? Trid tieħu stab? 477 00:28:38,110 --> 00:28:41,480 [Tweġiba Student, mhux intelliġibbli] 478 00:28:41,480 --> 00:28:44,870 Tajba. Bl-użu n., Iżda mhux daqshekk sempliċi bħal dan. 479 00:28:44,870 --> 00:28:47,090 What do I l-ewwel bżonn tagħmel? [Tweġiba Student, mhux intelliġibbli] 480 00:28:47,090 --> 00:28:52,730 Tajba. I bżonn tagħmel * newptr.n. 481 00:28:52,730 --> 00:28:55,610 Allura dan huwa qal pointer ġdida ovvjament l-indirizz. Għaliex? 482 00:28:55,610 --> 00:28:59,520 Minħabba li kien lura mill malloc. Il newptr * qal "jmorru hemm," 483 00:28:59,520 --> 00:29:02,970 u mbagħad darba int hemm, allura inti tista 'tuża l-aktar familjari. n, 484 00:29:02,970 --> 00:29:05,730 iżda dan biss jistenna ftit ikrah, speċjalment jekk aħna bnedmin huma ser 485 00:29:05,730 --> 00:29:10,360 jiġbed pointers ma vleġeġ il-ħin kollu;-dinja għandha standardizzat fuq dan notazzjoni vleġġa, 486 00:29:10,360 --> 00:29:12,320 li ma eżattament l-istess ħaġa. 487 00:29:12,320 --> 00:29:16,070 Allura inti tuża biss il--> notazzjoni meta l-ħaġa fuq ix-xellug huwa pointer. 488 00:29:16,070 --> 00:29:18,790 Inkella, jekk huwa ta 'Struct attwali, uża l-n.. 489 00:29:18,790 --> 00:29:25,800 U allura dan: Għaliex għandi initialize newptr-> jmiss null? 490 00:29:25,800 --> 00:29:28,610 Aħna ma tridx naħa tax-xellug dangling off tal-aħħar tas-istadju. 491 00:29:28,610 --> 00:29:31,630 Irridu li tipponta straight isfel, li jfisser it-tmiem ta 'din il-lista 492 00:29:31,630 --> 00:29:34,980 potenzjalment jista 'jkun ta' dan għoqda, hekk aħna aħjar biex tiżgura li hi NULL. 493 00:29:34,980 --> 00:29:38,460 U, b'mod ġenerali, initializing varjabbli tiegħek jew membri tad-data tiegħek u l-structs 494 00:29:38,460 --> 00:29:40,470 għal xi ħaġa huwa biss prattika tajba. 495 00:29:40,470 --> 00:29:45,170 Just kiri żibel jeżistu u jkomplu jeżistu ġeneralment gets inti fl-inkwiet 496 00:29:45,170 --> 00:29:48,650 jekk tinsa li tagħmel xi ħaġa aktar tard. 497 00:29:48,650 --> 00:29:51,590 >> Hawn ftit każijiet. Dan, għal darb'oħra, hija l-funzjoni daħħal, 498 00:29:51,590 --> 00:29:54,930 u l-ewwel ħaġa I kontroll għall hija jekk il-varjabbli imsejħa ewwel, 499 00:29:54,930 --> 00:29:58,240 dak il-varjabbli globali hija NULL, li jfisser li m'hemm l-ebda lista marbuta. 500 00:29:58,240 --> 00:30:02,460 Aħna ma jiddaħħal kull numri, hekk huwa trivjali li daħħal dan in-numru attwali 501 00:30:02,460 --> 00:30:05,240 fil-lista, għaliex hija biss jappartjeni fil-bidu tal-lista. 502 00:30:05,240 --> 00:30:08,100 Allura dan kien meta Anita kien biss bil-wieqfa hawn waħdu, feint 503 00:30:08,100 --> 00:30:11,390 ebda wieħed inkella kien up here fuq il-palk sakemm aħna allokat node, 504 00:30:11,390 --> 00:30:13,940 allura hi tista 'tqajjem naħa tagħha għall-ewwel darba, 505 00:30:13,940 --> 00:30:17,420 jekk kulħadd kienet toħroġ fuq l-istadju wara tagħha nhar it-Tnejn. 506 00:30:17,420 --> 00:30:22,900 Issa hawnhekk, dan huwa kontroll ftit fejn jien ngħid jekk il-valur tal-node ġdid ta 'n 507 00:30:22,900 --> 00:30:27,370 huwa 00:30:29,930 li jfisser li hemm lista marbut li l-beda. 509 00:30:29,930 --> 00:30:32,330 Hemm mill-inqas wieħed node fil-lista, iżda dan Guy ġdida 510 00:30:32,330 --> 00:30:37,230 jappartjeni quddiemha, għalhekk għandna bżonn biex jimxu madwar l-affarijiet. 511 00:30:37,230 --> 00:30:43,450 Fi kliem ieħor, jekk il-lista bdiet bi ftit, ejja ngħidu, 512 00:30:43,450 --> 00:30:48,100 biss in-numru 17, dak l-- fil-fatt, nistgħu nagħmlu dan b'mod aktar ċar. 513 00:30:48,100 --> 00:30:56,010 Jekk nibdew istorja tagħna ma 'pointer hawn imsejjaħ l-ewwel, 514 00:30:56,010 --> 00:30:59,870 u inizjalment huwa NULL, u aħna daħħal in-numru 9, 515 00:30:59,870 --> 00:31:02,510 in-numru 9 ċar jappartjeni fil-bidu tal-lista. 516 00:31:02,510 --> 00:31:07,400 Mela ejja nippretendu aħna biss malloced l-indirizz jew in-numru 9 u poġġih hawn. 517 00:31:07,400 --> 00:31:13,170 Jekk l-ewwel hija 9-kontumaċja, l-ewwel xenarju aħna diskussi biss ifisser punt ejja dan Guy hawn, 518 00:31:13,170 --> 00:31:15,790 jħallu dan bħala NULL; issa għandna l-numru 9. 519 00:31:15,790 --> 00:31:18,280 In-numru li jmiss irridu li daħħal hija 17. 520 00:31:18,280 --> 00:31:22,420 17 jappartjeni hawn fuq, hekk aħna qed tmur biex jkollhom jagħmlu xi titjib loġiku permezz ta 'dan. 521 00:31:22,420 --> 00:31:26,060 Mela ejja minflok, qabel we jagħmlu dan, ejja nippretendu li ridna li daħħal in-numru 8. 522 00:31:26,060 --> 00:31:28,650 >> Hekk biss għal raġunijiet ta 'konvenjenza, l-jien ser tiġbed hawn. 523 00:31:28,650 --> 00:31:30,760 Imma ftakar, malloc tista 'tpoġġi l-aktar kullimkien. 524 00:31:30,760 --> 00:31:33,460 Iżda għall-finijiet tpinġija, jiena ser poġġih hawn. 525 00:31:33,460 --> 00:31:38,440 Allura nippretendu Stajt biss allokat node għall-numru 8; dan huwa NULL-kontumaċja. 526 00:31:38,440 --> 00:31:42,800 Dak issa għandu jiġri? Koppja ta 'affarijiet. 527 00:31:42,800 --> 00:31:47,090 Għamilna dan l-iżball fuq il-palk tat-Tnejn fejn aħna aġġornati pointer bħal dan, 528 00:31:47,090 --> 00:31:51,890 allura ma dan, u allura aħna qal - aħna orfni kulħadd fuq il-palk. 529 00:31:51,890 --> 00:31:54,350 Għaliex inti can't - l-ordni ta 'operazzjonijiet hawn huwa importanti, 530 00:31:54,350 --> 00:31:58,760 għaliex issa għandna tilfu dan 9 node li huwa biss it-tip ta f'wiċċ l-ilma fl-ispazju. 531 00:31:58,760 --> 00:32:01,150 Allura dan ma kienx l-approċċ dritt nhar it-Tnejn. 532 00:32:01,150 --> 00:32:03,330 Aħna l-ewwel għandek tagħmel xi ħaġa oħra. 533 00:32:03,330 --> 00:32:06,280 L-istat tad-dinja tidher bħal dan. Inizjalment, 8 tkun ġiet allokata. 534 00:32:06,280 --> 00:32:10,550 Liema jkun l-aħjar mod ta 'ddaħħal 8? 535 00:32:10,550 --> 00:32:14,720 Minflok aġġornament dan il-werrej ewwel, biss taġġorna dan wieħed hawn minflok. 536 00:32:14,720 --> 00:32:17,720 Allura għandna bżonn ta 'linja tal-kodiċi li għaddej biex inbiddlu dan il-karattru NULL 537 00:32:17,720 --> 00:32:22,020 fi pointer attwali li l-tipponta lejn node 9, 538 00:32:22,020 --> 00:32:27,970 u allura nistgħu sikur bidla ewwel punt fuq dan Guy hawn. 539 00:32:27,970 --> 00:32:31,330 Issa għandna lista, lista marbuta, minn żewġ elementi. 540 00:32:31,330 --> 00:32:33,580 U dak ma dan fil-fatt look like hawn? 541 00:32:33,580 --> 00:32:36,900 Jekk inħarsu lejn il-kodiċi, avviż li jien ghamilt eżattament dan. 542 00:32:36,900 --> 00:32:41,970 Stajt qal newptr, u din l-istorja, newptr kien tipponta lejn dan Guy. 543 00:32:41,970 --> 00:32:45,520 >> So let me tiġbed ħaġ'oħra, u I għandhom ħallew spazju ftit aktar għal dan. 544 00:32:45,520 --> 00:32:48,540 Allura nahfru-tpinġija ftit żgħira. 545 00:32:48,540 --> 00:32:52,140 Dan Guy huwa msejjaħ newptr. 546 00:32:52,140 --> 00:32:57,940 Dan huwa l-varjabbli li aħna ddikjarat ftit linji qabel, fil-linja - eżatt fuq 25. 547 00:32:57,940 --> 00:33:03,430 U huwa tipponta sa 8. Allura meta I say newptr-> jmiss, li tfisser mur l-Struct 548 00:33:03,430 --> 00:33:07,910 li l-jiġu mfakkar fil permezz newptr, hekk aħna qegħdin hawn, jmorru hemm. 549 00:33:07,910 --> 00:33:13,990 Imbagħad il-vleġġa qiegħda tgħid tikseb l-qasam li jmiss, u allura l-= huwa qal jitqiegħed liema valur hemmhekk? 550 00:33:13,990 --> 00:33:17,280 Il-valur li kien fl-ewwel; liema valur kien fl-ewwel? 551 00:33:17,280 --> 00:33:21,930 L-ewwel kien li tipponta lejn dan għoqda, sabiex ifisser li dan għandu issa jiġi f'dan node. 552 00:33:21,930 --> 00:33:25,660 Fi kliem ieħor, dak li jistenna għalkemm mess redikoli ma kalligrafija tiegħi, 553 00:33:25,660 --> 00:33:28,620 x'hemm idea sempliċi ta 'ftit li jiċċaqalqu dawn vleġeġ madwar 554 00:33:28,620 --> 00:33:31,560 jittraduċi għal kodiċi ma biss dan liner waħda. 555 00:33:31,560 --> 00:33:38,110 Aħżen dak li huwa fl-ewwel fil-qasam li jmiss u mbagħad taġġorna dak 1-fatt hu. 556 00:33:38,110 --> 00:33:40,900 Ejja imorru quddiem u fast-quddiem permezz ta 'xi ta' dan, 557 00:33:40,900 --> 00:33:44,220 u ħarsa biss f'dan inserzjoni denb għal issa. 558 00:33:44,220 --> 00:33:51,210 Ejja ngħidu I jasal sal-punt fejn I isibu li l-qasam li jmiss ta 'xi node huwa NULL. 559 00:33:51,210 --> 00:33:53,410 U f'dan il-punt fl-istorja, dettall li jien jitwarrbu l 560 00:33:53,410 --> 00:33:58,170 hija li stajt introduċa ieħor pointer up hawn fil-linja 142, pointer predeċessur. 561 00:33:58,170 --> 00:34:01,320 Essenzjalment, f'dan il-punt fl-istorja, ladarba l-lista gets twila, 562 00:34:01,320 --> 00:34:04,800 I tip ta 'bżonn li jimxu ma' żewġ swaba għaliex jekk immur wisq, 563 00:34:04,800 --> 00:34:08,219 ftakar f'lista waħda tul, inti ma tistax tmur lura. 564 00:34:08,219 --> 00:34:13,659 Allura din l-idea ta 'predptr huwa finger xellug tiegħi, u newptr - mhux newptr. 565 00:34:13,659 --> 00:34:17,199 Ieħor pointer li l-hawn huwa finger tiegħi oħra, u jien biss tip ta 'mixi il-lista. 566 00:34:17,199 --> 00:34:22,179 C'est pourquoi li jeżisti. Imma ejja jikkunsidraw biss wieħed mill-każijiet sempliċi hawn. 567 00:34:22,179 --> 00:34:26,620 Jekk il-qasam li jmiss li pointer huwa NULL, x'inhu l-implikazzjoni loġika? 568 00:34:26,620 --> 00:34:30,840 Jekk inti qed jaqsmu din il-lista u inti hit pointer NULL? 569 00:34:30,840 --> 00:34:35,780 Inti fl-aħħar tal-lista, u għalhekk il-kodiċi li mbagħad tehmeż dan l-element addizzjonali wieħed 570 00:34:35,780 --> 00:34:41,230 huwa tip ta 'l-intuwittivi se jieħdu dik node li jmiss pointer huwa NULL, 571 00:34:41,230 --> 00:34:46,120 għalhekk dan huwa attwalment NULL, u l-bidla, għalkemm, li tkun l-indirizz tat-node ġdid. 572 00:34:46,120 --> 00:34:52,260 Allura aħna qed biss tpinġija fil-kodiċi tal-vleġġa li fassalna fuq il-palk billi tgħolli naħa tax-xellug ta 'xi ħadd. 573 00:34:52,260 --> 00:34:54,070 >> U l-każ li jien ser mewġa idejn tiegħi fuq għal issa, 574 00:34:54,070 --> 00:34:58,020 sempliċement minħabba Naħseb li huwa faċli li tintilef meta nagħmlu dan fil dan it-tip ta 'l-ambjent, 575 00:34:58,020 --> 00:35:00,600 qed jiċċekkja għal inserzjoni fuq tan-nofs tal-lista. 576 00:35:00,600 --> 00:35:03,220 Iżda biss intuwittivament, dak li jeħtieġ li jiġri jekk inti tixtieq li insemmu 577 00:35:03,220 --> 00:35:06,600 fejn xi numru jappartjeni fin-nofs huwa inti jkollhom jimxu dan 578 00:35:06,600 --> 00:35:09,510 ma 'aktar minn wieħed tas-swaba', aktar minn wieħed pointer, 579 00:35:09,510 --> 00:35:12,920 ċifra barra fejn jappartjeni mill-ikkontrollar kollu huwa l-element 00:35:15,450 > L-waħda kurrenti, u ladarba inti ssib li post, 581 00:35:15,450 --> 00:35:20,400 imbagħad inti għandek tagħmel dan it-tip ta 'logħba qoxra fejn inti tmur l-pointers madwar b'attenzjoni kbira. 582 00:35:20,400 --> 00:35:23,850 U din ir-risposta, jekk inti tixtieq raġuni permezz ta 'dan fid-dar fuq tiegħek, 583 00:35:23,850 --> 00:35:28,340 jeħodna biss għal dawn iż-żewġ linji ta 'kodiċi, iżda l-ordni ta' dawk il-linji hija super importanti. 584 00:35:28,340 --> 00:35:31,390 Għaliex jekk inti qatra idejn ta 'xi ħadd u tqajjem xi ħadd ieħor fl-ordni żbaljata, 585 00:35:31,390 --> 00:35:34,580 għal darb'oħra, inti tista 'tispiċċa orphaning-lista. 586 00:35:34,580 --> 00:35:39,500 Fil-qosor aktar kunċettwali, l-inserzjoni fil-denb huwa relattivament sempliċi. 587 00:35:39,500 --> 00:35:42,940 L-inserzjoni fir-ras hija wkoll relattivament sempliċi, 588 00:35:42,940 --> 00:35:45,580 iżda inti għandek bżonn jaġġornaw pointer addizzjonali f'dan il-ħin 589 00:35:45,580 --> 00:35:47,930 li jingħafsu numru 5 fil-lista hawn, 590 00:35:47,930 --> 00:35:51,560 u mbagħad inserzjoni fin-nofs tinvolvi sforz akbar, 591 00:35:51,560 --> 00:35:56,130 li b'attenzjoni kbira daħħal in-numru 20 fil-post korretta tagħha, 592 00:35:56,130 --> 00:35:58,350 li huwa bejn 17 u 22. 593 00:35:58,350 --> 00:36:02,700 Allura inti għandek bżonn tagħmel xi ħaġa simili għandhom l-ġdid node punt 20 sa 22, 594 00:36:02,700 --> 00:36:08,470 u mbagħad, werrej li node teħtieġ li tiġi aġġornata l-aħħar? 595 00:36:08,470 --> 00:36:10,630 Huwa 17, li attwalment daħħalha. 596 00:36:10,630 --> 00:36:14,080 Għalhekk għal darb'oħra, jien ser tipposponi l-kodiċi attwali għal dik l-implimentazzjoni partikolari. 597 00:36:14,080 --> 00:36:17,280 >> Ewwel daqqa t'għajn, huwa ftit kbira, imma huwa verament biss loop infinita 598 00:36:17,280 --> 00:36:21,770 li l-looping, looping, looping, looping, u li jiksru hekk kif inti hit-pointer NULL, 599 00:36:21,770 --> 00:36:24,590 f'liema punt inti tista 'tagħmel l-inserzjoni meħtieġa. 600 00:36:24,590 --> 00:36:30,960 Dan, imbagħad, huwa rappreżentattiv marbut kodiċi inserzjoni lista. 601 00:36:30,960 --> 00:36:34,590 Dan kien it-tip ta 'lott, u jħoss simili aħna ve solvuti problema waħda, 602 00:36:34,590 --> 00:36:36,940 imma konna introdotti waħda oħra kollha. Franchement, aħna ħadthom jintefqu dan il-ħin 603 00:36:36,940 --> 00:36:40,540 fuq big O u Ω u running time, jippruvaw isolvu l-problemi aktar malajr, 604 00:36:40,540 --> 00:36:43,270 u hawn aħna qed tieħu pass kbir lura, iħoss. 605 00:36:43,270 --> 00:36:45,380 And yet, jekk l-għan huwa li taħżen data, 606 00:36:45,380 --> 00:36:48,010 iħoss bħall-Grail s-Santu, kif għidna nhar it-Tnejn, ikun verament tkun 607 00:36:48,010 --> 00:36:50,470 biex jaħżnu l-affarijiet istantanjament. 608 00:36:50,470 --> 00:36:53,930 >> Fil-fatt, ejja ngħidu li għamilna tpoġġi lista imwarrba marbuta għal mument 609 00:36:53,930 --> 00:36:56,000 u aħna minflok introduċa l-kunċett ta 'tabella. 610 00:36:56,000 --> 00:36:59,110 U ejja jaħsbu biss ta 'tabella għal mument bħala firxa. 611 00:36:59,110 --> 00:37:03,790 Dan firxa u f'dan il-każ hawnhekk għandha xi 26 elementi, 0 sa 25, 612 00:37:03,790 --> 00:37:07,940 u jissoponi li inti meħtieġa xi blokki ta 'ħażna għall-ismijiet: 613 00:37:07,940 --> 00:37:10,350 Alice u Bob u Charlie u simili. 614 00:37:10,350 --> 00:37:12,880 U inti għandek bżonn xi struttura data li jaħżen dawk l-ismijiet. 615 00:37:12,880 --> 00:37:15,000 Ukoll, inti tista 'tuża xi ħaġa bħal lista marbuta 616 00:37:15,000 --> 00:37:20,260 u inti tista 'timxi l-lista li jdaħħal Alice qabel Bob u Charlie wara Bob u oħrajn. 617 00:37:20,260 --> 00:37:23,850 U, fil-fatt, jekk inti tixtieq li tara kodiċi bħal dik bħala twarrib, 618 00:37:23,850 --> 00:37:27,230 nafu li fil list2.h, nagħmlu eżattament dan. 619 00:37:27,230 --> 00:37:30,610 Aħna mhux se jmorru permezz ta 'dan il-kodiċi, iżda dan huwa varjant tal-ewwel eżempju 620 00:37:30,610 --> 00:37:34,640 li jintroduċi 1 Struct oħra konna rajna qabel student imsejħa, 621 00:37:34,640 --> 00:37:40,330 u mbagħad dak li attwalment ħwienet fil-lista marbuta huwa pointer ma 'struttura student 622 00:37:40,330 --> 00:37:44,520 minflok numru sħiħ ftit sempliċi, n. 623 00:37:44,520 --> 00:37:46,900 Allura jirrealizzaw hemm kodiċi hemmhekk li jinvolvi kordi attwali, 624 00:37:46,900 --> 00:37:49,940 iżda jekk l-għan fil-idejn verament issa huwa li tindirizza l-problema effiċjenza, 625 00:37:49,940 --> 00:37:53,380 ma kienx ikun sbieħ jekk aħna qed jingħataw oġġett imsejħa Alice, 626 00:37:53,380 --> 00:37:56,020 irridu li tqiegħed lilha fil-post dritt fi struttura tad-data, 627 00:37:56,020 --> 00:37:58,860 iħoss simili huwa d jkun tassew sbieħ li biss jitqiegħed Alice, 628 00:37:58,860 --> 00:38:01,180 li ismu jibda A, fl-ewwel post. 629 00:38:01,180 --> 00:38:05,270 U Bob, li ismu jibda B, fil-post tat-tieni. 630 00:38:05,270 --> 00:38:09,580 Ma 'firxa, jew Nibdew ssejjaħ dan tabella, tabella hash fuq li, 631 00:38:09,580 --> 00:38:13,650 nistgħu nagħmlu eżattament dan. Jekk aħna huma mogħtija isem bħall Alice, 632 00:38:13,650 --> 00:38:16,700 string bħall Alice, fejn do inti tpoġġi A-l-i-c-e? 633 00:38:16,700 --> 00:38:20,540 Għandna bżonn ta 'hueristic. Għandna bżonn ta 'funzjoni li jieħdu xi input bħall Alice 634 00:38:20,540 --> 00:38:24,610 u r-ritorn risposta, "Put Alice fil dan il-post." 635 00:38:24,610 --> 00:38:28,720 U din il-funzjoni, din il-kaxxa s-sewda, se jiġu msejħa funzjoni hash. 636 00:38:28,720 --> 00:38:32,330 >> A funzjoni hash hija xi ħaġa li jieħu input, bħal "Alice", 637 00:38:32,330 --> 00:38:38,080 u prospetti lilek, tipikament, il-post numeriku f'xi struttura tad-data fejn Alice jappartjeni. 638 00:38:38,080 --> 00:38:40,830 F'dan il-każ, il-funzjoni hash tagħna għandu jkun relattivament sempliċi. 639 00:38:40,830 --> 00:38:47,510 Funzjoni hash tagħna għandha tgħid, jekk inti tingħata "Alice", li karattru għandi jimpurtahom? 640 00:38:47,510 --> 00:38:55,660 L-ewwel waħda. So I ħarsa lejn [0], u mbagħad I say jekk [0] karattru huwa A, jirritorna l-għadd 0. 641 00:38:55,660 --> 00:39:01,130 Jekk huwa B, ritorn 1. Jekk C huwa, jirritorna 2, u ibqa 'sejjer hekk. 642 00:39:01,130 --> 00:39:05,940 Kollha indiċi 0, u li tippermetti lili li tiddaħħal Alice u mbagħad Bob u mbagħad Charlie u oħrajn 643 00:39:05,940 --> 00:39:10,960 fis din l-istruttura tad-data. Imma hemm problema. 644 00:39:10,960 --> 00:39:13,060 X'jiġri jekk Anita tidħol flimkien mill-ġdid? 645 00:39:13,060 --> 00:39:17,510 Fejn npoġġux Anita? Isimha, wisq, jibda bl-ittra A, 646 00:39:17,510 --> 00:39:20,330 u jħoss simili aħna ħadna mess saħansitra akbar ta 'din il-problema. 647 00:39:20,330 --> 00:39:24,380 Issa għandna inserzjoni immedjat, inserzjoni ħin kostanti, fi struttura tad-data 648 00:39:24,380 --> 00:39:27,100 minflok agħar każ lineari, 649 00:39:27,100 --> 00:39:29,510 imma x'nistgħu nagħmlu ma 'Anita f'dan il-każ? 650 00:39:29,510 --> 00:39:34,110 X'inhuma l-għażliet 2, tassew? Yeah? 651 00:39:34,110 --> 00:39:37,410 [Tweġiba Student, mhux intelliġibbli] Okay, hekk aħna jista 'jkollhom dimensjoni oħra. 652 00:39:37,410 --> 00:39:42,320 Li tajjeb. Allura nistgħu nibnu l-affarijiet fil 3D bħal tkellimna dwar verbalment nhar it-Tnejn. 653 00:39:42,320 --> 00:39:46,700 Nistgħu żid ieħor aċċess hawnhekk, imma ejja ngħidu li l-ebda, jien jippruvaw iżommu dan sempliċi. 654 00:39:46,700 --> 00:39:50,160 L-għan kollu hawnhekk huwa li jkun immedjat kostanti ta 'żmien aċċess, 655 00:39:50,160 --> 00:39:52,170 b'tali mod li s żżid il-kumplessità wisq. 656 00:39:52,170 --> 00:39:55,970 X'inhuma l-għażliet l-oħra meta jippruvaw daħħal Anita fis din l-istruttura tad-data? Yeah? 657 00:39:55,970 --> 00:39:58,610 [Tweġiba Student, mhux intelliġibbli]. Tajba Allura nistgħu jimxu kulħadd isfel, 658 00:39:58,610 --> 00:40:03,040 bħal Charlie nudges isfel Bob u Alice, u allura aħna tpoġġi Anita fejn hi verament jixtieq li jkun. 659 00:40:03,040 --> 00:40:05,660 >> Of course, issa, hemm effett sekondarju ta 'dan. 660 00:40:05,660 --> 00:40:09,000 Din l-istruttura tad-data hija probabbilment utli mhux għaliex irridu li daħħal in-nies darba 661 00:40:09,000 --> 00:40:11,250 imma għaliex irridu li jiċċekkjaw jekk dawn qed hemmhekk wara 662 00:40:11,250 --> 00:40:13,600 jekk irridu li jistampa kollha ta 'l-ismijiet fl-istruttura tad-data. 663 00:40:13,600 --> 00:40:15,850 Aħna qed tmur biex tagħmel xi ħaġa ma din id-data eventwalment. 664 00:40:15,850 --> 00:40:20,810 Allura issa konna tip ta 'invitat fuq Alice, li ma jibqax fejn hi suppost tkun. 665 00:40:20,810 --> 00:40:23,880 Lanqas Bob, u lanqas Charlie. 666 00:40:23,880 --> 00:40:26,060 Allura forsi dan mhuwiex tali idea tajba. 667 00:40:26,060 --> 00:40:28,830 Iżda fil-fatt, din hija għażla waħda. Nistgħu bidla kulħadd isfel, 668 00:40:28,830 --> 00:40:32,240 jew Heck, Anita waslet tard wisq biex il-logħba, għaliex ma we biss jitqiegħed Anita 669 00:40:32,240 --> 00:40:35,870 mhux hawn, mhux hawn, mhux hawn, ejja biss jitqiegħed tagħha ftit aktar baxx fil-lista. 670 00:40:35,870 --> 00:40:38,680 Iżda mbagħad din il-problema tibda biex tittrasferixxi mill-ġdid. 671 00:40:38,680 --> 00:40:41,630 Inti jista 'jkun kapaċi li jsibu Alice istantanjament, ibbażata fuq l-ewwel isem tagħha. 672 00:40:41,630 --> 00:40:44,320 U Bob istantanjament, u Charlie. Imma allura inti tfittex Anita, 673 00:40:44,320 --> 00:40:46,360 u tara, HMM, Alice huwa fil-mod. 674 00:40:46,360 --> 00:40:48,770 Well, let me check hawn taħt Alice. Bob mhuwiex Anita. 675 00:40:48,770 --> 00:40:51,850 Charlie mhux Anita. Oh, hemm Anita. 676 00:40:51,850 --> 00:40:54,720 U jekk inti tkompli dan ferrovija tal-loġika it-triq kollha, 677 00:40:54,720 --> 00:41:00,690 x'inhu l-ħin agħar każ tmexxija ta 'sejba jew idaħħal Anita fis din l-istruttura tad-data l-ġdida? 678 00:41:00,690 --> 00:41:03,280 Huwa O (n), id-dritt? 679 00:41:03,280 --> 00:41:06,280 Minħabba li fl-agħar każ, hemm Alice, Bob, Charlie. . . 680 00:41:06,280 --> 00:41:10,150 it-triq kollha li xi ħadd imsejjaħ "Y", sabiex hemm wieħed biss fuq il-post tax-xellug. 681 00:41:10,150 --> 00:41:13,950 B'xorti tajba, aħna għandna l-ebda wieħed imsejjaħ "Z", hekk aħna tpoġġi Anita fil-qiegħ nett. 682 00:41:13,950 --> 00:41:16,040 >> Aħna ma verament tissolva din il-problema. 683 00:41:16,040 --> 00:41:19,890 Allura forsi nagħmlu bżonn li tiġi introdotta din tielet dimensjoni. 684 00:41:19,890 --> 00:41:22,230 U jirriżulta, jekk aħna nintroduċu din id-dimensjoni terza, 685 00:41:22,230 --> 00:41:25,240 aħna ma tistax tagħmel dan perfettament, iżda l-Grail s-Santu se tkun jkollna 686 00:41:25,240 --> 00:41:28,370 kostanti ta 'żmien inserzjoni u inserzjonijiet dinamiċi sabiex 687 00:41:28,370 --> 00:41:30,960 aħna ma jkollhomx biex hard-kodiċi firxa ta 'daqs 26. 688 00:41:30,960 --> 00:41:34,400 Nistgħu daħħal kemm-ismijiet kemm irridu, imma ejja tieħu 5-minuta break tagħna hawn 689 00:41:34,400 --> 00:41:38,790 u mbagħad tagħmel dan b'mod xieraq. 690 00:41:38,790 --> 00:41:46,020 Kull dritt. I stabbilit l-istorja up pretty artifiċjalment hemm 691 00:41:46,020 --> 00:41:48,670 billi jagħżlu Alice u mbagħad Bob u mbagħad Charlie u mbagħad Anita, 692 00:41:48,670 --> 00:41:51,000 li isimha kien ovvjament se jikkonfliġġu ma 'Alice. 693 00:41:51,000 --> 00:41:54,120 Iżda l-kwistjoni aħna spiċċajna nhar it-Tnejn ma huwa kemm probabbli huwa 694 00:41:54,120 --> 00:41:56,370 li inti se tikseb dawn it-tipi ta 'ħabtiet? Fi kliem ieħor, 695 00:41:56,370 --> 00:42:00,490 jekk nibdew biex jużaw din l-istruttura ta 'tabella, li huwa verament ftit array, 696 00:42:00,490 --> 00:42:02,460 f'dan il-każ ta '26 postijiet, 697 00:42:02,460 --> 00:42:05,740 jekk dak inputs tagħna huma minflok mqassma b'mod uniformi? 698 00:42:05,740 --> 00:42:09,620 Mhuwiex artifiċjalment Alice u Bob u Charlie u David u oħrajn alfabetikament, 699 00:42:09,620 --> 00:42:12,380 huwa mqassma b'mod uniformi fuq A permezz Z. 700 00:42:12,380 --> 00:42:15,220 >> Forsi aħna ser biss tikseb xortik tajba u aħna mhux se jkollhom 2 A jew 2 tal-B 701 00:42:15,220 --> 00:42:17,640 bi probabbiltà għolja ħafna, iżda bħala xi ħadd rrilevat, 702 00:42:17,640 --> 00:42:20,730 jekk aħna ġeneralizzata din il-problema u ma tagħmel 0-25 703 00:42:20,730 --> 00:42:26,060 iżda, jgħidu, 0 permezz 364 jew 65, ta 'spiss in-numru ta' ġranet f'sena tipiku, 704 00:42:26,060 --> 00:42:31,170 u staqsa l-mistoqsija, "X'hemm-probabbiltà li żewġ minna f'din il-kamra jkollha l-birthday istess?" 705 00:42:31,170 --> 00:42:34,600 Fi kliem ieħor, x'inhu l-probabbiltà li żewġ minna jkollu isem li jibda bl A? 706 00:42:34,600 --> 00:42:37,190 It-tip ta 'mistoqsija hija l-istess, iżda dan l-ispazju l-indirizz, 707 00:42:37,190 --> 00:42:39,940 dan l-ispazju tfittxija, huwa akbar fil-każ ta 'għeluq ta' snin, 708 00:42:39,940 --> 00:42:42,820 għaliex għandna ġranet tant aktar fis-sena minn ittri fil-alfabett. 709 00:42:42,820 --> 00:42:44,910 X'inhu l-probabbiltà ta 'ħabta? 710 00:42:44,910 --> 00:42:48,410 Well, nistgħu naħsbu ta 'dan billi jidhru l-matematika id-direzzjoni opposta. 711 00:42:48,410 --> 00:42:50,580 X'inhu l-probabbiltà ta 'l-ebda ħabtiet? 712 00:42:50,580 --> 00:42:53,970 Ukoll, din l-espressjoni hawnhekk jgħid li dak l-probabbiltà 713 00:42:53,970 --> 00:42:58,770 jekk hemm biss persuna waħda f'din il-kamra, li huma jkollhom birthday uniku? 714 00:42:58,770 --> 00:43:01,190 Huwa 100%. Għaliex jekk hemm biss persuna waħda fil-kamra, 715 00:43:01,190 --> 00:43:03,940 għeluq tiegħu jew tagħha jista 'jkun kwalunkwe mill-365 jum mill-sena. 716 00:43:03,940 --> 00:43:08,650 Allura għażliet 365/365 tagħti me valur ta '1. 717 00:43:08,650 --> 00:43:11,250 Għalhekk il-probabbiltà in kwistjoni fil-mument huwa biss 1. 718 00:43:11,250 --> 00:43:13,270 Imma jekk hemm it-tieni persuna fil-kamra, 719 00:43:13,270 --> 00:43:16,490 x'inhu l-probabbiltà li birthday tagħhom huwa differenti? 720 00:43:16,490 --> 00:43:20,680 Hemm biss 364 jum possibbli, snin biżestili jinjora, 721 00:43:20,680 --> 00:43:23,580 għall-għeluq tagħhom ma jikkonfliġġu mal-persuni l-oħra. 722 00:43:23,580 --> 00:43:31,920 Allura 364/365. Jekk terza persuna tidħol fi, huwa 363/365, u oħrajn. 723 00:43:31,920 --> 00:43:35,790 Allura aħna iżommu multiplikazzjoni flimkien dawn il-frazzjonijiet, li huma jkollna iżgħar, 724 00:43:35,790 --> 00:43:40,720 ċifra barra dak li huwa l-probabilità li lkoll għeluq is-snin uniċi? 725 00:43:40,720 --> 00:43:43,570 Imma allura aħna tista ', naturalment, ħu din ir-risposta u flip madwar 726 00:43:43,570 --> 00:43:47,210 u jagħmlu 1 nieqes kollha ta 'dak, l-espressjoni aħna ser eventwalment tikseb 727 00:43:47,210 --> 00:43:51,250 jekk tiftakar id-dahar ta 'kotba matematika tiegħek, jidher ftit xi ħaġa bħal din, 728 00:43:51,250 --> 00:43:54,590 li hija ferm aktar faċilment interpretata b'mod grafiku. 729 00:43:54,590 --> 00:43:57,820 U dan grafika hawn għandha fuq l-assi x l-għadd ta 'għeluq is-snin, 730 00:43:57,820 --> 00:44:02,030 jew in-numru ta 'persuni għeluq is-snin, u fuq l-assi y hija l-probabilità ta' taqbila. 731 00:44:02,030 --> 00:44:06,060 U dak li dan qed tgħid huwa li jekk ikollok, ejja ngħidu, anke, 732 00:44:06,060 --> 00:44:10,860 ejja jagħżlu xi ħaġa simili 22, 23. 733 00:44:10,860 --> 00:44:13,160 Jekk hemm 22 jew 23 nies fil-kamra, 734 00:44:13,160 --> 00:44:17,100 il-probabbiltà li tnejn minn dawn ftit nies huma se jkollhom l-birthday istess 735 00:44:17,100 --> 00:44:19,560 huwa attwalment għolja super, combinatorially. 736 00:44:19,560 --> 00:44:23,450 Odds 50% li fi klassi ta 'ftit 22-nies, ta' seminar, prattikament, 737 00:44:23,450 --> 00:44:25,790 2 ta 'dawk in-nies huma se jkollhom l-birthday istess. 738 00:44:25,790 --> 00:44:28,520 Għaliex hemm hekk f'ħafna modi li bihom tista 'jkollhom l-birthday istess. 739 00:44:28,520 --> 00:44:31,110 Saħansitra agħar, jekk inti tħares lejn in-naħa tal-lemin tal-grafika, 740 00:44:31,110 --> 00:44:34,040 mill-ħin li inti jkollhom klassi bi 58 studenti fiha, 741 00:44:34,040 --> 00:44:39,270 il-probabbiltà ta '2 persuni li jkollhom birthday huwa super, għoli super, kważi 100%. 742 00:44:39,270 --> 00:44:41,880 Issa, li tip ta 'fatt gost dwar il-ħajja reali. 743 00:44:41,880 --> 00:44:45,850 >> Iżda l-implikazzjonijiet, issa, għal strutturi ta 'dejta u l-ħażna ta' informazzjoni 744 00:44:45,850 --> 00:44:51,100 ifisser biss li jekk wieħed jassumi għandek, sbieħ nadif, distribuzzjoni uniformi tad-dejta 745 00:44:51,100 --> 00:44:53,650 u inti għandek firxa kbir biżżejjed biex jitwaħħal mazz ta 'affarijiet 746 00:44:53,650 --> 00:44:59,360 ma jfissirx li inti qed tmur biex tikseb in-nies fil-postijiet uniku. 747 00:44:59,360 --> 00:45:03,810 Int ser ikollhom ħabtiet. Allura dan il-kunċett ta 'hashing, kif huwa msejjaħ, 748 00:45:03,810 --> 00:45:07,450 teħid input bħal "Alice" u timmassaġġja b'xi mod 749 00:45:07,450 --> 00:45:10,190 u allura jkollna lura tweġiba bħal 0 jew 1 jew 2. 750 00:45:10,190 --> 00:45:17,500 Jkollna lura xi output minn dik il-funzjoni hu qed ibati minn din il-probabbiltà ta 'kolliżjoni. 751 00:45:17,500 --> 00:45:19,530 Allura kif nistgħu jimmaniġġaw dawk ħabtiet? 752 00:45:19,530 --> 00:45:21,940 Ukoll, dwar il-każ waħda, nistgħu nieħdu l-idea li kien issuġġerit. 753 00:45:21,940 --> 00:45:25,100 Nistgħu biss ċċaqlaq kulħadd isfel, jew forsi, ftit aktar sempliċi, 754 00:45:25,100 --> 00:45:29,870 minflok kulħadd mossa oħra, ejja biss jiċċaqalqu Anita għall-qiegħ tal-post disponibbli. 755 00:45:29,870 --> 00:45:32,810 Mela jekk Alice huwa fil-0, Bob huwa fl-1, Charlie huwa 2, 756 00:45:32,810 --> 00:45:35,260 aħna ser biss jitqiegħed Anita fil-post 3. 757 00:45:35,260 --> 00:45:38,860 U din hija teknika fl-istrutturi tad-data msejħa lineari probing. 758 00:45:38,860 --> 00:45:41,310 Lineari għaliex int biss mixi din il-linja, u int xorta ta 'probing 759 00:45:41,310 --> 00:45:43,640 għal spots disponibbli fl-istruttura tad-data. 760 00:45:43,640 --> 00:45:46,210 Naturalment, dan jaqa 'fil O (n). 761 00:45:46,210 --> 00:45:49,590 Jekk l-istruttura tad-data tassew sħiħa, hemm 25 persuna fiha diġà, 762 00:45:49,590 --> 00:45:54,120 u mbagħad Anita tidħol flimkien, hi jispiċċa fuq dak ikun lokazzjoni Z, u li l-multa. 763 00:45:54,120 --> 00:45:56,540 Hija xorta taqbel, u nistgħu nsibu tagħha aktar tard. 764 00:45:56,540 --> 00:46:00,100 >> Iżda dan kien imur kontra l-għan ta 'tħaffif affarijiet up. 765 00:46:00,100 --> 00:46:02,530 Allura dak jekk aħna minflok introduċa din id-dimensjoni terz? 766 00:46:02,530 --> 00:46:06,400 Dan teknika huwa ġeneralment imsejjaħ ikkatenar separata, jew li ktajjen. 767 00:46:06,400 --> 00:46:10,030 U liema tabella hash issa huwa, din l-istruttura ta 'tabella, 768 00:46:10,030 --> 00:46:13,450 mejda tiegħek hija biss firxa ta 'indikaturi. 769 00:46:13,450 --> 00:46:18,230 Imma x'inhuma dawn pointers punt li huwa raden liema? 770 00:46:18,230 --> 00:46:21,970 A marbut lista. Allura dak li jekk nieħdu l-aħjar ta 'dawn iż-żewġ dinjiet? 771 00:46:21,970 --> 00:46:26,500 Aħna nużaw arrays għall-indiċijiet tal-bidu 772 00:46:26,500 --> 00:46:32,070 fl-istruttura tad-data hekk nistgħu istantanjament tmur [0] [1], [30] jew oħrajn, 773 00:46:32,070 --> 00:46:36,480 imma hekk li għandna xi flessibbiltà u nistgħu tajbin Anita u Alice u Adam 774 00:46:36,480 --> 00:46:38,630 u kwalunkwe A isem, 775 00:46:38,630 --> 00:46:43,470 aħna minflok tikri l-assi l-oħra jikbru b'mod arbitrarju. 776 00:46:43,470 --> 00:46:47,340 U aħna finalment, mill-Tnejn, jkollhom dik kapaċità espressiva ma 'lista linked. 777 00:46:47,340 --> 00:46:49,530 Aħna jistgħu jikbru struttura tad-data arbitrarju. 778 00:46:49,530 --> 00:46:52,450 Alternattivament, nistgħu biss tagħmel enormi 2-dimensjonali firxa, 779 00:46:52,450 --> 00:46:57,190 iżda li għaddej biex tkun f'sitwazzjoni orribbli jekk waħda mill-fillieri fil-firxa 2-dimensjonali 780 00:46:57,190 --> 00:47:01,280 mhuwiex kbir biżżejjed għall-persuna addizzjonali li isimha jiġri li tibda bil A. 781 00:47:01,280 --> 00:47:04,200 Alla jipprojbixxu għandna biex talloka mill-ġdid enormi 2-dimensjonali istruttura 782 00:47:04,200 --> 00:47:06,600 sempliċiment għaliex hemm daqstant nies jismu A, 783 00:47:06,600 --> 00:47:09,480 speċjalment meta jkun hemm in-nies hekk ftit jismu xi ħaġa Z. 784 00:47:09,480 --> 00:47:12,170 Huwa biss se tkun struttura tad-data ħafna skarsa. 785 00:47:12,170 --> 00:47:15,400 Għalhekk mhuwiex perfett bi kwalunkwe mezz, iżda issa għandna mill-anqas ikollhom l-abbiltà 786 00:47:15,400 --> 00:47:19,090 biex istantanjament issib fejn Alice jew Anita jappartjeni, 787 00:47:19,090 --> 00:47:21,090 għall-inqas f'termini tal-assi vertikali, 788 00:47:21,090 --> 00:47:25,850 u allura aħna biss għandhom jiddeċiedu fejn jitqiegħdu Anita jew Alice f'din il-lista marbuta. 789 00:47:25,850 --> 00:47:32,480 Jekk aħna ma jimpurtahom dwar issortjar l-affarijiet, kif malajr nistgħu daħħal Alice fi struttura bħal din? 790 00:47:32,480 --> 00:47:35,370 Wasal iż-żmien kostanti. Aħna indiċi fis [0], u jekk hemm l-ebda wieħed, 791 00:47:35,370 --> 00:47:37,550 Alice tmur fil-bidu ta din il-lista marbuta. 792 00:47:37,550 --> 00:47:40,000 Iżda li mhux jittrattaw enormi. Għaliex jekk Anita imbagħad ġejja flimkien 793 00:47:40,000 --> 00:47:42,160 xi numru ta 'passi ulterjuri, fejn ma Anita jappartjenu? 794 00:47:42,160 --> 00:47:45,140 Ukoll, [0]. OOP. Alice huwa diġà f'dik il-lista marbuta. 795 00:47:45,140 --> 00:47:47,760 >> Imma jekk aħna ma jimpurtahom dwar issortjar dawn l-ismijiet, 796 00:47:47,760 --> 00:47:53,580 nistgħu biss jiċċaqalqu Alice fuq, daħħal Anita, iżda anke li huwa żmien kostanti. 797 00:47:53,580 --> 00:47:57,010 Anki jekk hemm Alice u Adam u dawn kollha l-oħra l-ismijiet A, 798 00:47:57,010 --> 00:47:59,410 mhuwiex verament trasferit fiżikament. Għaliex? 799 00:47:59,410 --> 00:48:04,090 Għaliex aħna biss ma hawn ma 'lista marbuta, li jaf kienu dawn in-nodi huma xorta? 800 00:48:04,090 --> 00:48:06,550 Kulma għandek tagħmel huwa jimxu l-frak tal-ħobż. 801 00:48:06,550 --> 00:48:10,930 Mexxi l-vleġeġ madwar; inti ma għandekx fiżikament jiċċaqalqu kwalunkwe data madwar. 802 00:48:10,930 --> 00:48:14,610 Allura nistgħu daħħal Anita, f'dak il-każ, istantanjament. Kostanti tal-ħin. 803 00:48:14,610 --> 00:48:20,250 Allura aħna għandna kostanti ta 'żmien Lookup, u kostanti fil-ħin inserzjoni ta' xi ħadd bħal Anita. 804 00:48:20,250 --> 00:48:22,740 Iżda tip ta 'oversimplifying-dinja. 805 00:48:22,740 --> 00:48:28,510 X'jiġri jekk aħna aktar tard tixtieq li ssib Alice? 806 00:48:28,510 --> 00:48:31,050 X'jiġri jekk aħna aktar tard tixtieq li ssib Alice? 807 00:48:31,050 --> 00:48:35,690 Kemm passi huwa li se jieħu? 808 00:48:35,690 --> 00:48:37,850 [Tweġiba Student, mhux intelliġibbli] 809 00:48:37,850 --> 00:48:40,950 Eżattament. In-numru ta 'nies qabel Alice fil-lista marbuta. 810 00:48:40,950 --> 00:48:45,420 Allura huwa pjuttost mhux perfett, minħabba l-istruttura tad-data tagħna, għal darb'oħra, għandha dan l-aċċess vertikali 811 00:48:45,420 --> 00:48:50,240 u allura għandha dawn il-listi marbuta jiddendlu - fil-fatt, ejja ma tiġbed firxa ta '. 812 00:48:50,240 --> 00:48:56,020 Hija dawn il-listi relatati mdendlin off ta 'dan li jistenna ftit xi ħaġa bħal din. 813 00:48:56,020 --> 00:48:59,110 Iżda l-problema hija jekk Alice u Adam u dawn kollha l-oħra l-ismijiet A 814 00:48:59,110 --> 00:49:01,720 jispiċċaw aktar u aktar hemmhekk, 815 00:49:01,720 --> 00:49:04,810 konstatazzjoni xi ħadd jista 'jispiċċa tieħu mazz ta' passi, 816 00:49:04,810 --> 00:49:06,670 bcause ikollok biex travers il-lista marbuta, 817 00:49:06,670 --> 00:49:08,090 li hija operazzjoni lineari. 818 00:49:08,090 --> 00:49:14,270 Allura verament, allura, il-ħin inserzjoni, finalment, huwa O (n), fejn n huwa n-numru ta 'elementi fil-lista. 819 00:49:14,270 --> 00:49:21,780 Maqsuma minn, ejja arbitrarju sejħa hija meta m huwa n-numru ta 'listi marbuta 820 00:49:21,780 --> 00:49:24,500 li għandna f'dan il-assi vertikali. 821 00:49:24,500 --> 00:49:27,180 Fi kliem ieħor, jekk irridu verament tassumi distribuzzjoni uniformi tal-ismijiet, 822 00:49:27,180 --> 00:49:30,150 totalment mhux realistika. Hemm ovvjament aktar ta 'xi ittri minn oħrajn. 823 00:49:30,150 --> 00:49:32,580 >> Imma jekk aħna nassumu għall-mument distribuzzjoni uniformi, 824 00:49:32,580 --> 00:49:37,350 u għandna n-nies kollha, u l-ktajjen totali m 825 00:49:37,350 --> 00:49:40,630 disponibbli lilna, allura it-tul ta 'kull wieħed minn dawn katini 826 00:49:40,630 --> 00:49:44,380 pjuttost sempliċiment se tkun it-total, n diviż bin-numru ta 'ktajjen. 827 00:49:44,380 --> 00:49:48,900 Allura n / m. Imma hawn fejn aħna nistgħu nkunu kollha matematikament għaqlija. 828 00:49:48,900 --> 00:49:53,030 m hija kostanti, għaliex hemm numru fiss ta 'dawn. 829 00:49:53,030 --> 00:49:54,620 Int ser tiddikjara firxa tiegħek fil-bidu, 830 00:49:54,620 --> 00:49:58,450 u aħna mhux qed resizing-assi vertikali. Bħala definizzjoni, dak soġġorni fiss. 831 00:49:58,450 --> 00:50:01,220 Huwa biss l-assi orizzontali, biex ngħidu hekk, li l-bdil. 832 00:50:01,220 --> 00:50:04,760 Allura teknikament, dan huwa kostanti. Allura issa, il-ħin inserzjoni 833 00:50:04,760 --> 00:50:09,700 hija O pretty ħafna (n). 834 00:50:09,700 --> 00:50:12,410 Allura li ma jħossx kollha li ħafna aħjar. 835 00:50:12,410 --> 00:50:14,940 Imma x'inhu l-verità hawn? Ukoll, dan il-ħin, għal ġimgħat, 836 00:50:14,940 --> 00:50:20,640 aħna kont qed tgħid O (n ²). O (n), 2 x n ², - n, diviż bi 2. . . ech. 837 00:50:20,640 --> 00:50:23,580 Huwa biss ² n. Imma issa, f'din il-parti tas-semestru, 838 00:50:23,580 --> 00:50:25,560 nistgħu jibda jitkellem dwar id-dinja reali mill-ġdid. 839 00:50:25,560 --> 00:50:31,520 U n / m huwa assolutament aktar mgħaġġel milli sempliċement n waħdu. 840 00:50:31,520 --> 00:50:35,170 Jekk għandek ismijiet elf, u inti taqsamhom up fis bramel multipli 841 00:50:35,170 --> 00:50:37,820 sabiex inti għandek biss 10 ismijiet f'kull wieħed minn dawn ktajjen, 842 00:50:37,820 --> 00:50:41,670 assolutament tiftix għaxar affarijiet se tkun aktar mgħaġġla minn affarijiet elf. 843 00:50:41,670 --> 00:50:43,740 U għalhekk wieħed mis-settijiet problema li jmiss se isfida inti 844 00:50:43,740 --> 00:50:46,100 biex jaħsbu dwar eżattament li, anki jekk, yeah, 845 00:50:46,100 --> 00:50:49,520 asimptotikalment u matematikament, dan għadu biss lineari, 846 00:50:49,520 --> 00:50:51,700 li sucks b'mod ġenerali meta jippruvaw isibu affarijiet. 847 00:50:51,700 --> 00:50:54,530 Fir-realtà, li għaddej biex tkun aktar mgħaġġla minn dik 848 00:50:54,530 --> 00:50:56,520 minħabba dan divisor. 849 00:50:56,520 --> 00:50:58,310 U hekk theres għal darb'oħra se jkun dan il-kummerċ ta 'darba 850 00:50:58,310 --> 00:51:01,390 u dan il-kunflitt bejn it-teorija u r-realtà, 851 00:51:01,390 --> 00:51:03,550 u waħda mill-pumi se jibdew iduru f'dan il-punt fil-semestru 852 00:51:03,550 --> 00:51:07,510 hija aktar ta 'l-realtà wieħed kif aħna tip ta' jippreparaw għal tmiem semster tal- 853 00:51:07,510 --> 00:51:09,280 kif aħna nintroduċu d-dinja ta 'programmazzjoni tal-web, 854 00:51:09,280 --> 00:51:11,530 fejn verament, il-prestazzjoni se jgħodd minħabba l-utenti tiegħek ser 855 00:51:11,530 --> 00:51:14,880 tibda tħossok u japprezzaw deċiżjonijiet tad-disinn foqra. 856 00:51:14,880 --> 00:51:19,950 >> Allura kif do you go dwar l-implimentazzjoni ta linked - tabella hash ma '31 elementi? 857 00:51:19,950 --> 00:51:22,600 U l-eżempju preċedenti kien ta 'madwar arbitrarju għeluq ta' snin. 858 00:51:22,600 --> 00:51:26,190 Jekk xi ħadd ikollu birthday ta 'Jannar 1 jew 1 Frar, aħna ser jpoġġuhom f'din barmil. 859 00:51:26,190 --> 00:51:28,960 Jekk huwa Jannar 2, 2 Frar, Marzu 2, aħna ser jpoġġuhom f'din barmil. 860 00:51:28,960 --> 00:51:32,220 C'est pourquoi kien 31. Kif inti tiddikjara tabella hash? 861 00:51:32,220 --> 00:51:37,480 Jista 'jkun pjuttost sempliċi, tabella * node huwa l-isem arbitrarja tiegħi għaliha, [31]. 862 00:51:37,480 --> 00:51:42,400 Dan jagħti me 31 pointers għal lymph, 863 00:51:42,400 --> 00:51:45,370 u li tippermetti lili li jkollhom 31 pointers fil-listi relatati 864 00:51:45,370 --> 00:51:48,800 anki jekk dawk il-ktajjen huma inizjalment NULL. 865 00:51:48,800 --> 00:51:54,860 What do Irrid li jpoġġu jekk jien tixtieq li taħżen "Alice," "Bob," "Charlie"? 866 00:51:54,860 --> 00:51:57,010 Ukoll, għandna bżonn biex nagħlaq dawk l-affarijiet fi struttura 867 00:51:57,010 --> 00:52:00,530 għaliex għandna bżonn Alice għall-punt li Bob, għall-punt li Charlie, u oħrajn. 868 00:52:00,530 --> 00:52:04,940 Ma nistgħux biss ikollhom l-ismijiet waħdu, so I tista 'tinħoloq struttura ġdida msejħa node hawn. 869 00:52:04,940 --> 00:52:08,310 >> X'inhu node attwali? X'inhu node f'din il-lista l-ġdida marbuta? 870 00:52:08,310 --> 00:52:11,840 L-ewwel ħaġa, imsejħa kelma, huwa għall-isem tal-persuna. 871 00:52:11,840 --> 00:52:14,340 TUL, preżumibbilment, tirrigwarda t-tul massimu ta 'l-isem ta' bniedem, 872 00:52:14,340 --> 00:52:18,210 tkun xi tkun li tkun, 20, 30, 40 karattru f'każijiet kantuniera crazy, 873 00:52:18,210 --> 00:52:22,680 u 1 huwa għal liema? Huwa biss il-karattru NULL żejda, \ 0. 874 00:52:22,680 --> 00:52:27,410 Allura dan node huwa tgeżwir "xi ħaġa" ġewwa fih innifsu, 875 00:52:27,410 --> 00:52:29,640 iżda wkoll tiddikjara pointer imsejjaħ jmiss 876 00:52:29,640 --> 00:52:32,580 sabiex inkunu nistgħu katina Alice biex Bob li Charlie u oħrajn. 877 00:52:32,580 --> 00:52:36,700 Jista 'jkun NULL imma mhux bilfors għandhom ikunu. 878 00:52:36,700 --> 00:52:40,110 Kwalunkwe mistoqsijiet dwar dawn it-tabelli hash? Yeah? 879 00:52:40,110 --> 00:52:46,190 [Student tistaqsi mistoqsija, mhux intelliġibbli] Firxa - mistoqsija tajba. 880 00:52:46,190 --> 00:52:50,120 Għaliex din il-kelma char fil-firxa milli biss * char? 881 00:52:50,120 --> 00:52:53,830 F'dan l-eżempju kemmxejn arbitrarja, I ma jridux ikollhom jirrikorru 882 00:52:53,830 --> 00:52:56,190 li malloc għal kull wieħed mill-ismijiet oriġinali. 883 00:52:56,190 --> 00:52:59,530 Jien ridt li tiddikjara l-ammont massimu ta 'memorja għall-sekwenza 884 00:52:59,530 --> 00:53:06,020 I hekk li jista 'kopja fl-istruttura Alice \ 0 u ma jkollhomx għalfejn jinnegozjaw ma' malloc u ħielsa u simili. 885 00:53:06,020 --> 00:53:11,710 Imma I tista 'tagħmel li jekk jien ridt li jkunu aktar konxji ta' l-użu l-ispazju. Good kwistjoni. 886 00:53:11,710 --> 00:53:14,780 Mela ejja jippruvaw li tiġġeneralizza l bogħod minn din 887 00:53:14,780 --> 00:53:18,350 u tiffoka l-bqija tal-lum fuq l-istrutturi tad-data b'mod aktar ġenerali 888 00:53:18,350 --> 00:53:21,170 u problemi oħra li nistgħu ssolvi tuża l-elementi fundamentali istess 889 00:53:21,170 --> 00:53:24,590 anki jekk l-istrutturi tad-data nfushom jistgħu jvarjaw fil-partikolaritajiet tagħhom. 890 00:53:24,590 --> 00:53:27,910 >> Għalhekk jirriżulta fix-xjenza tal-kompjuter, siġar huma komuni ħafna. 891 00:53:27,910 --> 00:53:29,760 U inti tista 'taħseb ta' tip siġra simili ta 'siġra tal-familja, 892 00:53:29,760 --> 00:53:31,830 fejn hemm xi għeruq, xi matriarch jew Patrijarka, 893 00:53:31,830 --> 00:53:34,540 nannu jew nanniet jew qabel lura, 894 00:53:34,540 --> 00:53:38,880 taħt li huma mom u dad jew aħwa diversi jew simili. 895 00:53:38,880 --> 00:53:42,500 Allura struttura ta 'siġra tkun lymph u għandu t-tfal, 896 00:53:42,500 --> 00:53:45,260 normalment 0 itfal jew aktar għal kull node. 897 00:53:45,260 --> 00:53:47,320 U xi wħud mill-jargon li tara fil din l-istampa hawn 898 00:53:47,320 --> 00:53:50,630 huwa xi wieħed mill-gidjien ftit jew grandkids fuq it-truf 899 00:53:50,630 --> 00:53:52,330 li jkollhom l-ebda vleġeġ li joħorġu minnhom, 900 00:53:52,330 --> 00:53:55,070 dawk huma l-weraq hekk imsejħa, u xi ħadd fuq il-ġewwa 901 00:53:55,070 --> 00:53:58,790 huwa node ġewwa, inti tista 'sejħa hija xi ħaġa flimkien dawk il-linji. 902 00:53:58,790 --> 00:54:01,430 Iżda din l-istruttura hija pjuttost komuni. Dan wieħed ftit arbitrarju. 903 00:54:01,430 --> 00:54:04,930 Aħna għandna waħda tat-tfal fuq ix-xellug, għandna tliet tfal fuq il-lemin, 904 00:54:04,930 --> 00:54:06,830 żewġt itfal fuq il-qiegħ tax-xellug. 905 00:54:06,830 --> 00:54:10,740 Allura jista 'jkollna differenti ta' daqs siġar, imma jekk nibdew jiġu standardizzati l-affarijiet, 906 00:54:10,740 --> 00:54:15,330 u inti tista 'recall dan mill-video Patrick fuq tfittxija binarju minn qasir qabel 907 00:54:15,330 --> 00:54:19,490 online, tfittxija binarja ma għandhom ikunu implimentati mal-firxa 908 00:54:19,490 --> 00:54:21,410 jew biċċiet tal-karti fuq blackboard. 909 00:54:21,410 --> 00:54:25,490 Ejja ngħidu li inti ridt li taħżen numri tiegħek fi struttura data aktar sofistikati. 910 00:54:25,490 --> 00:54:27,680 Inti tista 'toħloq siġra bħal dan. 911 00:54:27,680 --> 00:54:35,290 Jista 'jkollok node ddikjarat fis-C, u li node jista' jkollhom mill-inqas żewġ elementi ġewwa ta 'dan. 912 00:54:35,290 --> 00:54:39,470 Wieħed huwa n-numru inti tixtieq li taħżen, u l-oħra - ukoll, għandna bżonn waħda aktar. 913 00:54:39,470 --> 00:54:41,540 L-ieħor huwa t-tfal tagħha. 914 00:54:41,540 --> 00:54:45,150 Allura hawnhekk ieħor istruttura tad-data. Din id-darba, l-node huwa definit bħala ħażna numru n 915 00:54:45,150 --> 00:54:49,060 u allura żewġ indikaturi; tfal xellug u tfal dritt. 916 00:54:49,060 --> 00:54:52,100 U dawn mhux qed arbitrarja. X'hemm interessanti dwar din is-siġra? 917 00:54:52,100 --> 00:55:00,550 >> X'hemm l-mudell fil-mod kif konna stabbiliti f'dan barra jew kif Patrick stabbiliti out fil-video tiegħu? 918 00:55:00,550 --> 00:55:02,790 Huwa tip ta 'ovvju li hemm xi issortjar jiġri hawn, 919 00:55:02,790 --> 00:55:04,460 imma x'inhu l-istat sempliċi? Yeah? 920 00:55:04,460 --> 00:55:08,350 [Tweġiba Student, mhux intelliġibbli] 921 00:55:08,350 --> 00:55:12,040 Perfect. Jekk inti t'għajn fil dan, inti tara n-numri żgħar fuq ix-xellug, 922 00:55:12,040 --> 00:55:14,690 numri kbar fuq ix-xellug, iżda li veru għal kull node. 923 00:55:14,690 --> 00:55:20,370 Għal kull node, tifel xellug tagħha inqas milli, u tat-tfal id-dritt tagħha akbar minn dan. 924 00:55:20,370 --> 00:55:25,210 X'inhu dan ifisser issa huwa jekk irrid biex tfittex din l-istruttura tad-data għal, ngħidu aħna, in-numru 44, 925 00:55:25,210 --> 00:55:29,320 I għandhom jibdew fil-għerq, minħabba li, kif kollha ta 'dawn l-istrutturi tad-data aktar kumplessi issa, 926 00:55:29,320 --> 00:55:31,910 aħna biss ikollhom pointer għal ħaġa waħda, il-bidu. 927 00:55:31,910 --> 00:55:35,010 U f'dan il-każ, il-bidu hija l-għerq. Huwa mhuwiex it-tmiem tax-xellug, 928 00:55:35,010 --> 00:55:39,530 huwa l-għerq ta 'din l-istruttura. So I ara hawn 55, u jien infittxu 44. 929 00:55:39,530 --> 00:55:41,430 Liema direzzjoni do Irrid immur? 930 00:55:41,430 --> 00:55:45,680 Well, I jridu jmorru lejn ix-xellug, għax ovvjament, għad-dritt se tkun kbira wisq. 931 00:55:45,680 --> 00:55:49,050 Allura avviż hawn, int tip ta 'kunċettwali tqattiegħ-siġra fil nofs 932 00:55:49,050 --> 00:55:51,700 għax int qatt ma jinżel 'l isfel għall-naħa tal-lemin. 933 00:55:51,700 --> 00:55:55,410 Allura issa mmur mill-55 sa l-33. Huwa żgħir wisq ta 'numru. 934 00:55:55,410 --> 00:56:01,590 Qed infittex għal 44, imma issa naf jekk 44 Huwa f'dan il-siġra, I tista 'tmur ovvjament għad-dritt. 935 00:56:01,590 --> 00:56:04,460 Għalhekk għal darb'oħra, jien żbir l-siġra fil nofs. 936 00:56:04,460 --> 00:56:06,780 Huwa pretty ħafna identiċi kunċettwalment mal-ktieb tat-telefon. 937 00:56:06,780 --> 00:56:09,510 Huwa identiku għal dak li għamilna mal-karti fuq il-blackboard, 938 00:56:09,510 --> 00:56:13,940 imma hija struttura aktar sofistikata li tippermetti magħna biex fil-fatt jagħmlu 939 00:56:13,940 --> 00:56:16,880 dan jaqsam u jirbħu bl disinn ta 'l-algoritmu, 940 00:56:16,880 --> 00:56:19,420 u fil-fatt, jaqsmu struttura bħal dan - Whoops. 941 00:56:19,420 --> 00:56:22,870 Traversat struttura bħal din, fejn huwa biss "go dan il-mod jew mur il-mod," 942 00:56:22,870 --> 00:56:26,870 ifisser dak kollu li kodiċi li bent moħħok fl-ewwel meta tiġi implimentata fis-sezzjoni 943 00:56:26,870 --> 00:56:31,270 jew il-mixi permezz ta 'dan fid-dar, għal tfittxija binarja, bl-użu recursion jew iterazzjoni, 944 00:56:31,270 --> 00:56:35,060 huwa uġigħ fl-għonq. Sib l-element tan-nofs, imbagħad tagħmel arrotondament tiegħek jew 'l isfel. 945 00:56:35,060 --> 00:56:39,230 >> Hemm sbuħija għal dan għaliex aħna issa jistgħu jużaw recursion darb'oħra, 946 00:56:39,230 --> 00:56:43,760 iżda ħafna aktar nadif. Tabilħaqq, jekk int fil-numru 55 u tixtieq issib 44, 947 00:56:43,760 --> 00:56:48,450 inti tmur xellug f'dan il-każ, allura dak do you do? Inti tmexxi l-algoritmu istess eżatt. 948 00:56:48,450 --> 00:56:51,560 Inti tiċċekkja l-valur tal-node, allura inti tmur lemin jew xellug. 949 00:56:51,560 --> 00:56:53,670 Imbagħad inti tiċċekkja l-valur tal-node, mur lemin jew xellug. 950 00:56:53,670 --> 00:56:56,710 Dan huwa adattati perfettament għal recursion. 951 00:56:56,710 --> 00:57:00,920 Għalhekk anki jekk fil-passat aħna ghamilt xi eżempji pjuttost arbitrarja li jinvolvu recursion 952 00:57:00,920 --> 00:57:03,430 li ma kellhomx bżonn jiġu rikursivi, bil STUCTURES tad-data, 953 00:57:03,430 --> 00:57:07,820 speċjalment siġar, huwa applikazzjoni perfetta ta 'din l-idea ta' teħid ta 'problema, 954 00:57:07,820 --> 00:57:12,920 qed jiċkien, u mbagħad issolvi l-istess tip ta ', iżda iżgħar, il-programm. 955 00:57:12,920 --> 00:57:14,590 >> Allura hemm ieħor istruttura tad-data li nistgħu jintroduċu. 956 00:57:14,590 --> 00:57:18,760 Dan wieħed huwa ddisinjat ewwel daqqa t'għajn li tħares cryptic, iżda dan wieħed aqwa. 957 00:57:18,760 --> 00:57:25,090 Allura dan huwa struttura tad-data msejħa trie, trie, li huwa wiret mill-irkupru kelma, 958 00:57:25,090 --> 00:57:30,210 li mhijiex ippronunzjata mill-ġdid jipprova-val, iżda dan huwa dak id-dinja sejħiet dawn l-affarijiet. Tipprova. T-r-i e. 959 00:57:30,210 --> 00:57:35,190 Hija struttura ta 'siġra ta' xi tip, iżda kull wieħed mill-lymph fil-trie 960 00:57:35,190 --> 00:57:41,280 jidher li dak li? U dan huwa daqsxejn qarrieqa, għaliex dan huwa tip ta 'mqassra. 961 00:57:41,280 --> 00:57:45,960 Iżda jidher qisu kull node f'dan trie huwa attwalment firxa. 962 00:57:45,960 --> 00:57:48,840 U anki jekk l-awtur ta 'dan dijagramma ma wrietx li, 963 00:57:48,840 --> 00:57:54,130 f'dan il-każ, dan trie hija struttura tad-data li l-għan fil-ħajja huwa li taħżen kliem 964 00:57:54,130 --> 00:57:57,330 bħall A-l-i-c-e jew B-o-b. 965 00:57:57,330 --> 00:58:02,480 U l-mod li bih dan Alice ħwienet data u Bob u Charlie u Anita u oħrajn 966 00:58:02,480 --> 00:58:06,970 huwa li juża l-firxa li biha biex jaħżnu Alice fil trie, 967 00:58:06,970 --> 00:58:09,820 nibdew fil-node għerq li tidher bħal firxa, 968 00:58:09,820 --> 00:58:12,080 u huwa kien miktub fl-notazzjoni shorthand. 969 00:58:12,080 --> 00:58:15,070 L-awtur barra abcdefg għaliex ma kienx hemm ismijiet ma 'dak. 970 00:58:15,070 --> 00:58:19,150 Huma biss wera M u P u T, iżda f'dan il-każ, 971 00:58:19,150 --> 00:58:22,780 ejja jimxu lil hinn mill Alice u Bob u Charlie għal xi ismijiet li huma hawnhekk. 972 00:58:22,780 --> 00:58:25,670 Maxwell huwa attwalment f'din l-istampa. 973 00:58:25,670 --> 00:58:29,570 Allura kif għamlet il-maħżen awtur M-a-x-w-e-l-l? 974 00:58:29,570 --> 00:58:36,990 Hu jew hi bdiet fil-node għerq, u marru [M], hekk bejn wieħed u ieħor 13, il-post 13 fil-firxa. 975 00:58:36,990 --> 00:58:40,750 Imbagħad minn hemm, hemm pointer. 976 00:58:40,750 --> 00:58:42,760 A pointer li jwassal għall-ieħor array. 977 00:58:42,760 --> 00:58:47,880 Minn hemm l-awtur indiċjati f'dak firxa fil-post A, kif muri hemm fil quċċata xellug, 978 00:58:47,880 --> 00:58:52,250 u allura hu jew hi tkun segwiet dik pointer għall-ieħor array, 979 00:58:52,250 --> 00:58:55,460 u marru għall-pointer fil-lokalità X. 980 00:58:55,460 --> 00:58:59,840 Imbagħad fil-li jmiss post array W, E, L, L, u oħrajn, 981 00:58:59,840 --> 00:59:03,090 u finalment, ejja fil-fatt tipprova tpoġġi stampa għal dan. 982 00:59:03,090 --> 00:59:05,380 X'jagħmel ħarsa node simili fil-kodiċi? 983 00:59:05,380 --> 00:59:11,820 A node fil-trie fih firxa ta 'indikaturi għall-lymph aktar. 984 00:59:11,820 --> 00:59:16,090 Iżda hemm wkoll ltqajna biex jkun hemm xi tip ta 'valur Boolean, għall-inqas din l-implimentazzjoni. 985 00:59:16,090 --> 00:59:18,770 I jiġri li hija sejħa is_word. Għaliex? 986 00:59:18,770 --> 00:59:22,670 Għaliex meta inti qed tiddaħħal Maxwell, int ma ddaħħal 987 00:59:22,670 --> 00:59:25,300 xejn f'din l-istruttura tad-data. 988 00:59:25,300 --> 00:59:27,480 Int mhux kitba M. Int mhux kitba X. 989 00:59:27,480 --> 00:59:30,240 Kollha qed tagħmel huwa wara pointers. 990 00:59:30,240 --> 00:59:33,360 Il-werrej li tirrappreżenta M, allura l-pointer li tirrappreżenta A, 991 00:59:33,360 --> 00:59:36,310 allura l-pointer li tirrappreżenta X, allura W, E, L, L, 992 00:59:36,310 --> 00:59:41,950 imma dak li għandek bżonn tagħmel fl-aħħar huwa tip ta 'go, kontroll, wasalt dan il-post. 993 00:59:41,950 --> 00:59:45,560 Kien hemm kelma li tispiċċa hawnhekk fl-istruttura tad-data. 994 00:59:45,560 --> 00:59:48,190 >> Allura dak li trie huwa verament mimli bl u l-awtur għażel li jirrappreżentaw 995 00:59:48,190 --> 00:59:51,880 dawn terminuses ma triangoli ftit. 996 00:59:51,880 --> 00:59:56,470 Dan ifisser biss li l-fatt dan il-trijanglu huwa hawn, dan il-valur Boolean ta veru 997 00:59:56,470 --> 00:59:59,200 ifisser li jekk inti tmur lura fil-siġra, 998 00:59:59,200 --> 01:00:02,420 li tfisser kelma jismu Maxwell huwa f'dan. 999 01:00:02,420 --> 01:00:04,870 Imma l-kelma foo, per eżempju, 1000 01:00:04,870 --> 01:00:07,970 ma tkunx fil-siġra, għaliex jekk jien tibda fil-node għerq up hawn fuq quċċata, 1001 01:00:07,970 --> 01:00:14,030 M'hemm l-ebda pointer f, l-ebda pointer o, l-ebda pointer o. Foo mhuwiex isem f'din dizzjunarju. 1002 01:00:14,030 --> 01:00:22,460 Iżda għall-kuntrarju, ristrutturar, t-u-r-i-n-g. Għal darb'oħra, I ma taħżen t jew u jew r jew i jew n jew g. 1003 01:00:22,460 --> 01:00:29,820 Imma jien ma maħżen f'din l-istruttura tad-data ta 'valur tal-mod veru stabbiliti hawn f'dan node - fil-siġra 1004 01:00:29,820 --> 01:00:33,030 billi dan il-valur Boolean ta is_word li veru. 1005 01:00:33,030 --> 01:00:35,740 Allura trie huwa tip ta 'din l-istruttura meta interessanti ħafna, 1006 01:00:35,740 --> 01:00:39,810 fejn int ma verament ħażna tal-kliem stess ta 'dan it-tip ta' dizzjunarju. 1007 01:00:39,810 --> 01:00:45,100 Biex ikunu ċari, int biss ħażna iva jew le, hemm kelma li tispiċċa hawnhekk. 1008 01:00:45,100 --> 01:00:46,430 >> Issa x'inhu l-implikazzjoni? 1009 01:00:46,430 --> 01:00:51,120 Jekk għandek 150.000 kliem fil-dizzjunarju li inti qed tipprova li jaħżen fil-memorja 1010 01:00:51,120 --> 01:00:53,400 użu xi ħaġa bħal lista marbuta, 1011 01:00:53,400 --> 01:00:56,870 inti se jkollhom 150.000 lymph fil-lista marbuta tiegħek. 1012 01:00:56,870 --> 01:01:00,250 U ssib wieħed minn dawn il-kliem alfabetikament tista 'tieħu O (n) iż-żmien. 1013 01:01:00,250 --> 01:01:04,370 Linear ħin. Iżda fil-każ hawnhekk ta 'trie, 1014 01:01:04,370 --> 01:01:09,210 x'inhu l-running time ta 'sejba kelma? 1015 01:01:09,210 --> 01:01:17,390 Jirriżulta l-sbuħija hawnhekk hija li anke jekk ikollok 149,999 kliem diġà f'dan dizzjunarju, 1016 01:01:17,390 --> 01:01:20,170 kif implimentata ma 'din l-istruttura tad-data, 1017 01:01:20,170 --> 01:01:25,560 kemm żmien ma jieħdu biex tinstab jew daħħal persuna waħda aktar fis li, bħal Alice, Alice? 1018 01:01:25,560 --> 01:01:30,640 Ukoll, huwa biss 5, forsi 6 passi għall-karattru batuta. 1019 01:01:30,640 --> 01:01:32,880 Minħabba li l-presense 'ismijiet oħra fl-istruttura 1020 01:01:32,880 --> 01:01:35,340 ma jiksbu fil-mod ta 'ddaħħal Alice. 1021 01:01:35,340 --> 01:01:39,640 Barra minn hekk, il-konstatazzjoni Alice ladarba hemm 150.000 kliem f'dan il-dizzjunarju 1022 01:01:39,640 --> 01:01:41,960 ma jiksbu fil-mod tiegħek ta 'konstatazzjoni Alice fil-livelli kollha, 1023 01:01:41,960 --> 01:01:46,880 minħabba Alice huwa. . . . . hawnhekk, minħabba I sabet valur Boolean. 1024 01:01:46,880 --> 01:01:50,920 U jekk ma jkunx hemm Boolean vera, allura Alice ma jkunx f'din l-istruttura tad-data ta 'kliem. 1025 01:01:50,920 --> 01:01:56,220 Fi kliem ieħor, il-ħin tmexxija ta 'l-iskoperta u ddaħħal l-affarijiet fis dan il-ġdid 1026 01:01:56,220 --> 01:02:01,920 struttura tad-data ta 'trie hija O tal - mhuwiex n. 1027 01:02:01,920 --> 01:02:05,730 Minħabba li l-presense ta '150.000 nies m'għandha l-ebda effett fuq Alice, jidher. 1028 01:02:05,730 --> 01:02:11,560 Mela ejja sejħa hija k, fejn k huwa t-tul massimu ta 'kelma bl-Ingliż 1029 01:02:11,560 --> 01:02:14,050 li huwa tipikament mhux aktar minn 20-xi ħaġa karattri. 1030 01:02:14,050 --> 01:02:17,940 Allura k huwa kostanti. Allura l-Grail s-Santu aħna jidhru li sabu issa 1031 01:02:17,940 --> 01:02:26,000 huwa dak ta 'trie, ħin kostanti għal inserzjonijiet, għall lookups, għal tħassir. 1032 01:02:26,000 --> 01:02:29,170 Minħabba l-għadd ta 'affarijiet li diġà fl-istruttura, 1033 01:02:29,170 --> 01:02:32,600 li lanqas biss huma fiżikament hemm. Għal darb'oħra, dawn qed biss tip ta 'ċċekkjati off, iva jew le, 1034 01:02:32,600 --> 01:02:35,050 m'għandha l-ebda impatt fuq il-ħin għat-tmexxija tagħha fil-futur. 1035 01:02:35,050 --> 01:02:37,940 >> Iżda hemm ltqajna biex tkun qabda, inkella aħna ma kienx moħlija tant żmien 1036 01:02:37,940 --> 01:02:41,460 fuq dawn l-istrutturi data l-oħra biss li finalment jasal sal-1 sigriet li l-aqwa. 1037 01:02:41,460 --> 01:02:46,410 Allura b'liema prezz aħna tħallas biex jinkiseb dan greatness hawn? Ispazju. 1038 01:02:46,410 --> 01:02:49,010 Din hija ħaġa kbira. U r-raġuni li l-awtur 1039 01:02:49,010 --> 01:02:52,400 ma ppreżentawx hawnhekk, avviż li kollha ta 'dawn l-affarijiet li jixbhu matriċi, 1040 01:02:52,400 --> 01:02:55,400 huwa ma tiġbed il-bqija tas-siġra, il-bqija tal-trie, 1041 01:02:55,400 --> 01:02:58,060 għaliex dawn qed biss mhumiex rilevanti għall-istorja. 1042 01:02:58,060 --> 01:03:01,870 Imma kollha ta 'dawn in-nodi huma super wiesgħa, u kull node fil-siġra tibda 1043 01:03:01,870 --> 01:03:07,780 26 jew fil-fatt, jista 'jkun 27 karattri għaliex f'dan il-każ I kien inkluż l-ispazju għall-apostrophe 1044 01:03:07,780 --> 01:03:09,980 hekk li jista 'jkollna kliem apostrophized. 1045 01:03:09,980 --> 01:03:14,450 F'dan il-każ, dawn huma arrays wiesgħa. Allura anke jekk dawn mhux qed picutured, 1046 01:03:14,450 --> 01:03:18,190 dan jieħu ammont massiv ta 'RAM. 1047 01:03:18,190 --> 01:03:20,670 Liema jista 'jkun multa, especilly fil-hardware moderna, 1048 01:03:20,670 --> 01:03:25,650 iżda li l-tradeoff. Nikbru inqas ħin mill-infiq aktar spazju. 1049 01:03:25,650 --> 01:03:28,580 Għalhekk, fejn huwa dan kollu se? 1050 01:03:28,580 --> 01:03:32,640 Ukoll, ejja tagħmel - ejja ara hawn. 1051 01:03:32,640 --> 01:03:39,510 Ejja nagħmlu qabża li dan Guy hawn. 1052 01:03:39,510 --> 01:03:43,450 >> Jemmnu jew le, gost kemm Ċ ilha għal xi żmien issa, 1053 01:03:43,450 --> 01:03:48,130 aħna qed jilħaq il-punt fil-semestru fejn wasal iż-żmien biex jgħaddi għal affarijiet aktar moderni. 1054 01:03:48,130 --> 01:03:50,950 Things fuq livell ogħla. U anki jekk għall-koppja li jmiss ta 'ġimgħat 1055 01:03:50,950 --> 01:03:54,580 aħna ser xorta jkomplu tgħaddas ruħna fil-dinja tal-pointers u l-ġestjoni tal-memorja 1056 01:03:54,580 --> 01:03:57,210 biex tikseb dak kumdità li magħhom nistgħu mbagħad jibnu fuq, 1057 01:03:57,210 --> 01:04:01,270 l-logħba aħħari huwa finalment li jiġu introdotti, Ironikament, mhux din il-lingwa. 1058 01:04:01,270 --> 01:04:03,330 Aħna ser jonfqu, bħall 10 minuta jitkellem dwar HTML. 1059 01:04:03,330 --> 01:04:05,950 Kollha HTML huwa hija lingwa markup, u liema lingwa markup hija 1060 01:04:05,950 --> 01:04:10,220 huwa dawn is-serje ta 'parentesi miftuħa u brazzi magħluqa li jgħidu "tagħmel dan kuraġġużi" 1061 01:04:10,220 --> 01:04:12,000 "Tagħmel dan bil-korsiv" "tagħmel dan ċċentrata." 1062 01:04:12,000 --> 01:04:14,250 Huwa mhux kollha li intellettwalment interessanti, iżda huwa super utli. 1063 01:04:14,250 --> 01:04:16,650 U huwa ċertament omnipreżenti dawn il-jiem. 1064 01:04:16,650 --> 01:04:19,450 Imma x'hemm qawwija dwar id-dinja ta HTML, u l-programmazzjoni tal-web aktar ġenerali, 1065 01:04:19,450 --> 01:04:25,910 qed tibni affarijiet dinamiċi; miktub kodiċi fil-lingwi bħal PHP jew Python jew Ruby jew Java jew C #. 1066 01:04:25,910 --> 01:04:30,360 Really, tkun xi tkun il-lingwa tiegħek ta 'għażla hija, u jiġġeneraw HTML dinamiku. 1067 01:04:30,360 --> 01:04:32,960 Jiġġeneraw xi ħaġa imsejħa CSS dinamiku. 1068 01:04:32,960 --> 01:04:35,810 Folji cascading stil, li huwa wkoll dwar l-estetika. 1069 01:04:35,810 --> 01:04:41,360 U għalhekk anki jekk, illum, jekk immur xi websajt bħall-Google.com familjari, 1070 01:04:41,360 --> 01:04:46,100 u mmur biex tara, iżviluppatur, sors fehma, li forsi inti ghamilt qabel, 1071 01:04:46,100 --> 01:04:49,800 imma jmorru biex tara sors, dan il-għalf probabbilment jistenna pretty cryptic. 1072 01:04:49,800 --> 01:04:55,320 Iżda dan huwa l-kodiċi sottostanti li timplimenta Google.com. 1073 01:04:55,320 --> 01:04:57,940 Fuq il-tarf ta 'quddiem. U fil-fatt dan kollu huwa fluffy estetika Jittieħed. 1074 01:04:57,940 --> 01:05:01,740 Dan huwa CSS up here. Jekk I iżommu scrolling isfel aħna ser nikseb xi għalf color-coded. 1075 01:05:01,740 --> 01:05:06,890 Dan huwa HTML. Kodiċi Google qisu mess, imma jekk I attwalment jiftaħ tieqa differenti, 1076 01:05:06,890 --> 01:05:09,380 nistgħu naraw xi struttura għal dan. 1077 01:05:09,380 --> 01:05:12,640 Jekk I miftuħa dan up, avviż hawn, huwa ftit aktar leġġibbli. 1078 01:05:12,640 --> 01:05:16,850 Aħna qed tmur biex tara qabel twil dan il-tikketta, [kelma] hija tikketta, 1079 01:05:16,850 --> 01:05:23,520 HTML, ras, korp, div, b'kitba, żona test, span, ċċentrata, div. 1080 01:05:23,520 --> 01:05:26,770 U dan huwa wkoll sort ta cryptic li tħares ewwel daqqa t'għajn, 1081 01:05:26,770 --> 01:05:30,890 iżda kollha ta 'dan mess ġej ċerti xejriet, u l-mudelli repetuti, 1082 01:05:30,890 --> 01:05:33,850 b'tali mod li ladarba irridu jiksbu l-affarijiet bażiċi stabbiliti, inti ser tkun tista 'tikteb kodiċi bħal dan 1083 01:05:33,850 --> 01:05:37,550 u mbagħad timmanipula kodiċi bħal dan permezz énième lingwa, jissejjaħ JavaScript. 1084 01:05:37,550 --> 01:05:40,440 U JavaScript huwa lingwa li timxi ġewwa ta 'browser 1085 01:05:40,440 --> 01:05:44,380 illum li nużaw fuq korsijiet Harvard, għall-għodda tax-xiri kors li Google mapep tuża 1086 01:05:44,380 --> 01:05:48,660 li jtik mazz sħiħ ta 'dinamiżmu, Facebook jagħtik turi aġġornamenti istatus instant, 1087 01:05:48,660 --> 01:05:51,430 Twitter użi li turi li inti tweets istantanjament. 1088 01:05:51,430 --> 01:05:53,820 Kollha ta 'dan aħna se tibda għaddas ruħna pulzieri 1089 01:05:53,820 --> 01:05:57,190 Iżda biex naslu s'hemm, irridu nifhmu ftit xi ħaġa dwar l-Internet. 1090 01:05:57,190 --> 01:06:01,130 Dan clip hawn huwa biss minuta fit-tul, u ejja nassumu għal issa dan huwa, fil-fatt, 1091 01:06:01,130 --> 01:06:08,380 kif l-Internet xogħlijiet bħala teaser għal dak dwar li ġejjin. I jagħtuk "Warriors ta 'l-Net." 1092 01:06:08,380 --> 01:06:14,720 >> [♫ Slow kor mużika ♫] 1093 01:06:14,720 --> 01:06:20,450 [Rakkont Male] Huwa daħal bil-messaġġ. 1094 01:06:20,450 --> 01:06:23,770 Bil-protokoll kollha tiegħu stess. 1095 01:06:23,770 --> 01:06:37,270 [♫ mużika Faster elettroniku ♫] 1096 01:06:37,270 --> 01:06:41,330 Huwa daħal għal dinja ta 'firewalls jibred, uncaring routers, 1097 01:06:41,330 --> 01:06:45,690 u perikli ferm agħar minn mewt. 1098 01:06:45,690 --> 01:06:55,400 Huwa tal mgħaġġel. Huwa tal b'saħħitha. Huwa tal TCP / IP, u hu ltqajna l-indirizz tiegħek. 1099 01:06:55,400 --> 01:06:59,250 Warriors tal-Net. 1100 01:06:59,250 --> 01:07:05,290 [Malan] ġimgħa d-dieħla, imbagħad. L-Internet. Programmazzjoni Web. Dan huwa CS50. 1101 01:07:05,290 --> 01:07:08,290 [CS50.TV]