1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:11,137 [Daqq ta mużika] 3 00:00:11,137 --> 00:00:12,220 DAVID J. Malan: Kull dritt. 4 00:00:12,220 --> 00:00:13,950 Dan huwa CS50. 5 00:00:13,950 --> 00:00:18,560 Dan huwa ħamsa ġimgħa kontinwa, u aħna għandhom xi aħbar tajba u xi aħbar ħażina. 6 00:00:18,560 --> 00:00:21,140 Allura aħbar tajba hija li CS50 tniedi dan Ġimgħa. 7 00:00:21,140 --> 00:00:24,430 Jekk inti tixtieq li jingħaqdu magħna, ras għall-URL tas-soltu hawn. 8 00:00:24,430 --> 00:00:28,670 Aħbarijiet anki aħjar, ebda lecture dan ġejjin it-tnejn l-13. 9 00:00:28,670 --> 00:00:31,970 Ftit inqas aħbarijiet aħjar, kwizz żero hija l-Erbgħa li jmiss. 10 00:00:31,970 --> 00:00:33,840 Aktar dettalji jistgħu jkunu tinstab fuq dan il-URL hawn. 11 00:00:33,840 --> 00:00:36,340 U matul il-jiem koppja li jmiss aħna ser tkun timla l-vojt 12 00:00:36,340 --> 00:00:39,234 fir-rigward l-kmamar li aħna se jkunu riżervati. 13 00:00:39,234 --> 00:00:41,400 Aħbarijiet Aħjar hija li hemm ser tkun reviżjoni kors wiesgħa 14 00:00:41,400 --> 00:00:43,570 sessjoni din ġejjin It-tnejn fil-għaxija. 15 00:00:43,570 --> 00:00:46,270 Soġġorn sintonizzat għall-tal-kors websajt għal post u dettalji. 16 00:00:46,270 --> 00:00:49,290 Taqsimiet, anki jekk huwa vaganzi, se jiltaqa 'wkoll ukoll. 17 00:00:49,290 --> 00:00:50,490 18 00:00:50,490 --> 00:00:52,940 Best aħbarijiet, lecture il-ġimgħa d-dieħla. 19 00:00:52,940 --> 00:00:56,220 Allura dan huwa tradizzjoni aħna jkollhom, kif fis-sillabu. 20 00:00:56,220 --> 00:00:58,100 Just-- li għaddej biex tkun aqwa. 21 00:00:58,100 --> 00:01:02,510 Inti se tara affarijiet simili data strutturi ħin kostanti 22 00:01:02,510 --> 00:01:04,730 u tabelli hash u siġar u tipprova. 23 00:01:04,730 --> 00:01:07,150 U aħna ser nitkellmu dwar problemi birthday. 24 00:01:07,150 --> 00:01:09,440 A mazz sħiħ ta 'għalf jistenna il-ġimgħa li jmiss. 25 00:01:09,440 --> 00:01:11,212 26 00:01:11,212 --> 00:01:12,200 OK. 27 00:01:12,200 --> 00:01:13,190 Xorta. 28 00:01:13,190 --> 00:01:17,080 >> Allura jfakkru li aħna kont qed jiffoka fuq din l-istampa ta 'x'hemm 29 00:01:17,080 --> 00:01:18,980 ġewwa tal-memorja tal-kompjuter tagħna. 30 00:01:18,980 --> 00:01:22,875 Allura memorja jew RAM huwa fejn programmi jeżistu waqt li int taħdem magħhom. 31 00:01:22,875 --> 00:01:25,215 Jekk inti double-click ikona jiddekorri xi program 32 00:01:25,215 --> 00:01:27,520 jew double-click ikona biex tiftaħ xi fajl, 33 00:01:27,520 --> 00:01:30,430 huwa mgħobbija minn hard tiegħek issuq jew stat solidu drive 34 00:01:30,430 --> 00:01:34,190 fis RAM, Random Access Memory, fejn jgħix sakemm il-qawwa imur off, 35 00:01:34,190 --> 00:01:36,700 l-għatu laptop tagħlaq, jew inti nieqaf-programm. 36 00:01:36,700 --> 00:01:38,960 >> Issa li l-memorja, ta ' li inti probabilment jkollhom 37 00:01:38,960 --> 00:01:41,950 1 gigabyte dawn il-ġranet, 2 gigabytes, jew saħansitra ħafna aktar, 38 00:01:41,950 --> 00:01:44,420 huwa ġeneralment stabbiliti għal programm partikolari 39 00:01:44,420 --> 00:01:47,170 fil dan it-tip ta 'forma rettangolari mudell konċettwali 40 00:01:47,170 --> 00:01:50,860 li biha aħna għandna l-munzell fil-qiegħ u mazz ta 'għalf ieħor fil-quċċata. 41 00:01:50,860 --> 00:01:53,140 Il-ħaġa fil-quċċata ħafna Rajna fuq din l-istampa 42 00:01:53,140 --> 00:01:55,670 qabel imma qatt ma tkellem dwar huwa l-hekk imsejħa segment test. 43 00:01:55,670 --> 00:01:58,419 Segment Test huwa biss mod fancy ta 'tgħid l-żerijiet u dawk li 44 00:01:58,419 --> 00:02:01,150 compose program kkompilata tiegħek attwali. 45 00:02:01,150 --> 00:02:03,910 >> Allura meta inti double-click Microsoft Word fuq Mac tiegħek jew PC, 46 00:02:03,910 --> 00:02:08,030 jew meta inti tmexxi dot mmejla Mario fuq Linux kompjuter fid-tieqa terminal tiegħek, 47 00:02:08,030 --> 00:02:12,460 l-żerijiet u dawk li compose Word jew Mario huma maħżuna temporanjament 48 00:02:12,460 --> 00:02:16,610 fil RAM kompjuter tiegħek fl-hekk imsejħa segment test għal programm partikolari. 49 00:02:16,610 --> 00:02:19,080 Hawn taħt li tmur initialized u data uninitialized. 50 00:02:19,080 --> 00:02:22,655 Dan huwa Jittieħed simili varjabbli globali, li konna mhux użati ħafna, 51 00:02:22,655 --> 00:02:24,910 iżda fuq okkażjoni konna kellhom varjabbli globali 52 00:02:24,910 --> 00:02:28,819 jew kordi statikament definit li huwa diffiċli kliem bħal "bonjour" kodifikati 53 00:02:28,819 --> 00:02:31,860 li mhumiex jittieħdu mill-utent li huma hard-kodifikati fil-programm tiegħek. 54 00:02:31,860 --> 00:02:34,230 >> Issa, stabbiliti fil-qiegħ we jkollhom l-hekk imsejħa munzell. 55 00:02:34,230 --> 00:02:37,665 U l-munzell, s'issa, aħna kont qed jużaw għal liema tipi ta 'għanijiet? 56 00:02:37,665 --> 00:02:39,706 57 00:02:39,706 --> 00:02:40,997 X'hemm-munzell ġew użati għall? 58 00:02:40,997 --> 00:02:41,160 Yeah? 59 00:02:41,160 --> 00:02:42,070 >> Udjenza: Funzjonijiet. 60 00:02:42,070 --> 00:02:43,320 >> DAVID J. Malan: Għal funzjonijiet? 61 00:02:43,320 --> 00:02:44,980 F'liema sens għall-funzjonijiet? 62 00:02:44,980 --> 00:02:48,660 >> UDJENZA: Meta inti sejħa funzjoni, il- l-argumenti huma kkopjati fuq il-munzell. 63 00:02:48,660 --> 00:02:49,660 >> DAVID J. Malan: Eżattament. 64 00:02:49,660 --> 00:02:52,650 Meta inti sejħa funzjoni, tagħha l-argumenti huma kkopjati fuq il-munzell. 65 00:02:52,650 --> 00:02:56,330 Allura xi X ta jew tal Y jew A jew B tal- li int tgħaddi ġol funzjoni 66 00:02:56,330 --> 00:02:58,680 huma temporanjament jitqiegħdu fuq l-hekk imsejħa munzell, 67 00:02:58,680 --> 00:03:02,000 biss bħal wieħed mill-Annenberg trejs sala dining, u wkoll affarijiet 68 00:03:02,000 --> 00:03:03,190 bħal varjabbli lokali. 69 00:03:03,190 --> 00:03:06,290 Jekk il-funzjoni foo tiegħek jew swap tiegħek funzjoni jkollhom varjabbli lokali, 70 00:03:06,290 --> 00:03:08,602 bħal temperatura, dawn iż-żewġ jispiċċaw fuq il-munzell. 71 00:03:08,602 --> 00:03:11,560 Issa, aħna mhux se jitkellmu wisq dwar minnhom, iżda dawn il-varjabbli ambjent 72 00:03:11,560 --> 00:03:15,690 fil-qiegħ rajna filwaqt li ilu meta I kien futzing fuq il-keyboard jum wieħed 73 00:03:15,690 --> 00:03:20,050 u bdejt aċċess affarijiet bħall ARGV 100 jew ARGV 1,000, 74 00:03:20,050 --> 00:03:22,320 biss elements-- ninsa l numbers-- iżda li 75 00:03:22,320 --> 00:03:24,330 ma kellhomx jiġu aċċessati mill me. 76 00:03:24,330 --> 00:03:26,581 Aħna bdew jaraw xi simboli funky fuq l-iskrin. 77 00:03:26,581 --> 00:03:28,330 Dawk kienu l-hekk imsejħa varjabbli ambjent 78 00:03:28,330 --> 00:03:32,390 bħal settings globali għall tiegħi programm jew għall-kompjuter tiegħi, ma 79 00:03:32,390 --> 00:03:37,090 mhux relatati mal-riċenti bug li aħna diskussi, 80 00:03:37,090 --> 00:03:39,670 Shellshock, li kien plaguing pjuttost ftit kompjuters. 81 00:03:39,670 --> 00:03:42,960 >> Issa fl-aħħarnett, fil-fokus tal-lum aħna ser finalment tkun fuq il-borġ. 82 00:03:42,960 --> 00:03:44,864 Dan huwa chunk ieħor ta 'memorja. 83 00:03:44,864 --> 00:03:47,030 U fundamentalment dan kollu memorja huwa l-istess għalf. 84 00:03:47,030 --> 00:03:48,040 Hu l-istess ħardwer. 85 00:03:48,040 --> 00:03:49,956 Aħna biss tip ta ' trattament clusters differenti 86 00:03:49,956 --> 00:03:51,460 ta 'bytes għal skopijiet differenti. 87 00:03:51,460 --> 00:03:56,540 Il borġ huwa wkoll se jkun fejn varjabbli u l-memorja li inti titlob 88 00:03:56,540 --> 00:03:58,810 mis-sistema operattiva huwa maħżun temporanjament. 89 00:03:58,810 --> 00:04:01,890 >> Iżda hemm tip ta 'problema hawnhekk, bħala l-istampa jimplika. 90 00:04:01,890 --> 00:04:05,261 Aħna tip ta 'żewġ vapuri li waslu biex jikkonfliġġu. 91 00:04:05,261 --> 00:04:08,010 Għaliex kif inti tuża aktar u aktar tal-munzell, u kif naraw llum 92 00:04:08,010 --> 00:04:11,800 onward, kif tuża aktar u aktar ta 'l- borġ, żgur affarijiet ħżiena jista 'jiġri. 93 00:04:11,800 --> 00:04:15,054 U fil-fatt, nistgħu jinduċu li intenzjonalment jew mhux intenzjonalment. 94 00:04:15,054 --> 00:04:16,970 Allura l-cliffhanger aħħar iż-żmien kien dan il-programm, 95 00:04:16,970 --> 00:04:20,570 li ma sservi ebda funzjonali skop ieħor ħlief li juri 96 00:04:20,570 --> 00:04:24,750 kif inti bħala bad Guy tista 'attwalment tieħu vantaġġ ta 'bugs fil-programm ta' xi ħadd 97 00:04:24,750 --> 00:04:28,460 u tieħu f'idejha l-programm jew saħansitra sistema tal-kompjuter sħiħ jew server. 98 00:04:28,460 --> 00:04:31,660 Hekk biss li t'għajn fil-qosor, inti avviż li prinċipali fil-qiegħ 99 00:04:31,660 --> 00:04:34,510 jieħu fil-kmand linja argumenti, kif kull ARGV. 100 00:04:34,510 --> 00:04:38,480 U għandu sejħa għal funzjoni f, essenzjalment funzjoni nameless msejħa 101 00:04:38,480 --> 00:04:40,250 f, u huwa tgħaddi fis-ARGV [1]. 102 00:04:40,250 --> 00:04:43,960 >> Allura x'ikun kelma t-tipi utent f'mill fil-pront wara isem dan il-programm, 103 00:04:43,960 --> 00:04:49,310 u mbagħad din il-funzjoni arbitrarja up top, f, jieħu fil string, char AKA *, 104 00:04:49,310 --> 00:04:51,720 kif aħna ħadthom bdiet tiddiskuti, u hija biss jitlob li "bar." 105 00:04:51,720 --> 00:04:53,310 Iżda nistgħu sejħa hija xejn. 106 00:04:53,310 --> 00:04:57,470 U allura jiddikjara, ġewwa ta f, firxa ta 'karattri 107 00:04:57,470 --> 00:04:59,930 imsejħa c-- 12-il karattru bħal dawn. 108 00:04:59,930 --> 00:05:03,580 >> Issa, mill-istorja I kien javżak mument ilu, fejn fil-memorja 109 00:05:03,580 --> 00:05:06,720 huwa ċ, jew huma dawk 12 Chars ser jispiċċaw? 110 00:05:06,720 --> 00:05:07,570 Just biex tkun ċara. 111 00:05:07,570 --> 00:05:08,070 Yeah? 112 00:05:08,070 --> 00:05:08,590 >> UDJENZA: Fuq il-munzell. 113 00:05:08,590 --> 00:05:09,420 >> DAVID J. Malan: Fuq il-munzell. 114 00:05:09,420 --> 00:05:10,720 Allura c hija varjabbli lokali. 115 00:05:10,720 --> 00:05:14,079 Aħna qed jitolbu għal 12 Chars jew 12 bytes. 116 00:05:14,079 --> 00:05:16,120 Dawk huma ser jispiċċaw fuq l-hekk imsejħa munzell. 117 00:05:16,120 --> 00:05:18,530 Issa finalment hija din il-funzjoni l-oħra li attwalment pretty utli, 118 00:05:18,530 --> 00:05:20,571 imma aħna ħadthom mhux użati verament dan lilna nfusna, strncopy. 119 00:05:20,571 --> 00:05:21,550 120 00:05:21,550 --> 00:05:25,200 Dan ifisser kopja string, iżda biss N ittri, n-karattri. 121 00:05:25,200 --> 00:05:31,990 Allura n-karattri se jkunu kkupjati mill bar fis c. 122 00:05:31,990 --> 00:05:32,980 U kemm? 123 00:05:32,980 --> 00:05:34,110 It-tul ta 'bar. 124 00:05:34,110 --> 00:05:36,330 Allura fi kliem ieħor, li linja waħda, strncopy, 125 00:05:36,330 --> 00:05:39,500 se kopja effettiv bar fil sa c. 126 00:05:39,500 --> 00:05:42,340 >> Issa, just biex tip ta jantiċipaw l-morali ta 'din l-istorja, 127 00:05:42,340 --> 00:05:44,750 dak li huwa potenzjalment problematiku hawn? 128 00:05:44,750 --> 00:05:49,710 Anki jekk aħna qed iċċekkjar t-tul ta 'bar u li jgħaddi fis strncopy, 129 00:05:49,710 --> 00:05:53,145 dak li hu imsaren tiegħek tghidlek huwa xorta maqsuma dwar dan il-programm? 130 00:05:53,145 --> 00:05:54,410 131 00:05:54,410 --> 00:05:55,220 Yeah? 132 00:05:55,220 --> 00:05:57,491 >> UDJENZA: Ma tinkludix spazju għall-karattru null. 133 00:05:57,491 --> 00:05:59,990 DAVID J. Malan: Ma tinkludix spazju għall-karattru null. 134 00:05:59,990 --> 00:06:02,073 Potenzjalment, b'differenza prattika tal-passat aħna ma anki 135 00:06:02,073 --> 00:06:04,810 jkollhom daqshekk plus 1 sa jakkomodaw dan il-karattru null. 136 00:06:04,810 --> 00:06:06,649 Iżda huwa saħansitra agħar minn dik. 137 00:06:06,649 --> 00:06:07,940 X'iktar huma aħna naqset milli tagħmel? 138 00:06:07,940 --> 00:06:08,432 Yeah? 139 00:06:08,432 --> 00:06:09,307 >> UDJENZA: [inaudible] 140 00:06:09,307 --> 00:06:15,440 141 00:06:15,440 --> 00:06:16,440 DAVID J. Malan: Perfect. 142 00:06:16,440 --> 00:06:18,490 Imxejna hard-coded 12 pretty arbitrarju. 143 00:06:18,490 --> 00:06:19,497 144 00:06:19,497 --> 00:06:21,330 Dan mhuwiex tant l- problema, iżda l-fatt 145 00:06:21,330 --> 00:06:25,630 li aħna mhux qed anki iċċekkjar jekk it-tul ta 'bar huwa inqas minn 12, 146 00:06:25,630 --> 00:06:28,530 f'liema każ li għaddej biex tkun sikur biex tqiegħed lilha fil-memorja 147 00:06:28,530 --> 00:06:30,260 imsejħa c li konna allokati. 148 00:06:30,260 --> 00:06:32,960 Tabilħaqq, jekk bar huwa simili 20 karattru twal, 149 00:06:32,960 --> 00:06:39,010 din il-funzjoni tidher li ikkupjar 20 karattri mill bar fis c, u b'hekk 150 00:06:39,010 --> 00:06:41,310 tieħu mill-inqas 8 bytes li ma għandu jkun. 151 00:06:41,310 --> 00:06:42,690 Dik hija l-implikazzjoni hawnhekk. 152 00:06:42,690 --> 00:06:44,347 >> Għalhekk fil-qosor programm, imkisser. 153 00:06:44,347 --> 00:06:45,180 Mhux tali big deal. 154 00:06:45,180 --> 00:06:46,360 Forsi ikollok tort segmentazzjoni. 155 00:06:46,360 --> 00:06:47,651 Imxejna kollha kellhom bugs fil-programmi. 156 00:06:47,651 --> 00:06:50,196 Aħna lkoll jista 'jkollhom bugs fi programmi dritt issa. 157 00:06:50,196 --> 00:06:51,320 Imma x'inhu l-implikazzjoni? 158 00:06:51,320 --> 00:06:54,390 Well, Heres verżjoni żżomjati-in ta ' li stampa ta 'memorja tal-kompjuter tiegħi. 159 00:06:54,390 --> 00:06:56,230 Dan huwa l-qiegħ tal munzell tiegħi. 160 00:06:56,230 --> 00:06:59,644 U fil-fatt, fil-qiegħ ħafna huwa x'hemm imsejħa munzell ta 'rutina ġenitur, mod fancy 161 00:06:59,644 --> 00:07:00,560 ta 'tgħid li l-prinċipali. 162 00:07:00,560 --> 00:07:03,772 Allura li kull min jissejjaħ il-funzjoni f li aħna qed jitkellem dwar. 163 00:07:03,772 --> 00:07:05,230 Allura dan huwa l-qiegħ tal-munzell. 164 00:07:05,230 --> 00:07:06,640 Indirizz Ritorn hija xi ħaġa ġdida. 165 00:07:06,640 --> 00:07:08,810 Huwa dejjem kien hemm, dejjem kienet f'dak istampa. 166 00:07:08,810 --> 00:07:10,440 Aħna biss qatt ma imsejħa attenzjoni għalih. 167 00:07:10,440 --> 00:07:15,290 Minħabba jirriżulta l-mod c jaħdem huwa li meta funzjoni waħda sejħiet ieħor, 168 00:07:15,290 --> 00:07:18,780 mhux biss tagħmel l-argumenti li funzjoni nikseb imbuttat fuq il-munzell, 169 00:07:18,780 --> 00:07:22,470 mhux biss tagħmel lokali l-funzjoni tal- varjabbli tikseb imbuttat fuq il-munzell, 170 00:07:22,470 --> 00:07:26,820 xi ħaġa imsejħa indirizz ta 'ritorn wkoll gets tpoġġi fuq il-munzell. 171 00:07:26,820 --> 00:07:33,330 Speċifikament, jekk sejħiet ewlenin foo, tat ewlenin indirizz stess fil-memorja, xi ħaġa ox, 172 00:07:33,330 --> 00:07:38,240 effettivament gets tpoġġi fuq il-munzell b'tali mod li meta f isir eżekuzzjoni tagħha 173 00:07:38,240 --> 00:07:43,630 jaf fejn jaqbżu lura fit-test segment sabiex ikomplu eżekuzzjoni. 174 00:07:43,630 --> 00:07:47,760 >> Mela jekk aħna qed hawn kunċettwalment, fil prinċipali, allura f gets imsejħa. 175 00:07:47,760 --> 00:07:50,200 Kif ma f taf min għall-kontroll idejn lura? 176 00:07:50,200 --> 00:07:52,020 Ukoll, dan ftit Breadcrumb aħmar hawn, 177 00:07:52,020 --> 00:07:54,978 imsejjaħ il-indirizz ta 'ritorn, hija biss kontrolli, dak li huwa dak l-indirizz ta 'ritorn? 178 00:07:54,978 --> 00:07:57,039 Oh, let me jaqbżu lura lill prinċipali hawnhekk. 179 00:07:57,039 --> 00:07:59,080 U li ftit ta oversimplification, 180 00:07:59,080 --> 00:08:00,750 minħabba li l-żerijiet u dawk għall prinċipali huma teknikament 181 00:08:00,750 --> 00:08:01,967 up hawn fil-segment tech. 182 00:08:01,967 --> 00:08:03,800 Imma dak li l-idea. f biss irid ikun jaf liema 183 00:08:03,800 --> 00:08:06,680 li fejn il-kontroll finalment tmur lura. 184 00:08:06,680 --> 00:08:09,790 >> Iżda l-mod kompjuters ilhom stabbiliti affarijiet 185 00:08:09,790 --> 00:08:12,320 bħall varjabbli lokali u argumenti huwa bħal dan. 186 00:08:12,320 --> 00:08:17,180 Allura fil-quċċata ta 'din l-istampa fil- blu huwa l-qafas munzell għall f, sabiex kollha 187 00:08:17,180 --> 00:08:19,630 tal-memorja li f speċifikament qed tuża. 188 00:08:19,630 --> 00:08:22,990 Allura għaldaqstant, avviż li bar huwa fil din l-istampa. 189 00:08:22,990 --> 00:08:23,980 Bar kien argument tagħha. 190 00:08:23,980 --> 00:08:27,240 U aħna qal li l-argumenti li funzjonijiet tikseb imbuttat fuq il-munzell. 191 00:08:27,240 --> 00:08:29,910 U c, naturalment, huwa wkoll fil din l-istampa. 192 00:08:29,910 --> 00:08:33,520 >> U biss għal skopijiet ta 'notazzjoni, avviż fil-kantuniera tan-naħa tax-xellug 193 00:08:33,520 --> 00:08:37,020 huwa dak li jkun c bracket 0 u imbagħad ftit isfel lejn il-lemin 194 00:08:37,020 --> 00:08:38,220 huwa ċ bracket 11. 195 00:08:38,220 --> 00:08:41,240 Allura fi kliem ieħor, tista 'timmaġina li hemm grilja ta 'bytes 196 00:08:41,240 --> 00:08:44,380 hemm, l-ewwel minnhom hija top xellug, qiegħ tagħha 197 00:08:44,380 --> 00:08:48,360 hija l-aħħar waħda minn dawk 12 bytes. 198 00:08:48,360 --> 00:08:49,930 >> Imma issa jippruvaw fast quddiem. 199 00:08:49,930 --> 00:08:55,580 X'inhu dwar li jiġri jekk aħna jgħaddu fil-bar string li l-itwal minn c? 200 00:08:55,580 --> 00:08:59,130 U aħna mhux qed iċċekkjar jekk huwa tabilħaqq aktar minn 12. 201 00:08:59,130 --> 00:09:03,146 Liema parti ta 'din l-istampa se nikseb miktub fuq ieħor minn bytes 0, 1, 2, 3, 202 00:09:03,146 --> 00:09:07,890 dot dot dot, 11, u mbagħad bad, 12, 13 sa 19? 203 00:09:07,890 --> 00:09:11,820 X'hemm jiġri hawn, jekk inti jiddeduċu mill-ordni 204 00:09:11,820 --> 00:09:14,790 li ċ bracket 0 qegħda fil-quċċata u c bracket 11 huwa tip ta isfel 205 00:09:14,790 --> 00:09:15,812 lejn il-lemin? 206 00:09:15,812 --> 00:09:16,796 Yeah? 207 00:09:16,796 --> 00:09:19,260 >> UDJENZA: Well, li għaddej li jissostitwixxu l-bar char *. 208 00:09:19,260 --> 00:09:22,260 >> DAVID J. Malan: Yeah, jidher qisu int ser jissostitwixxu * bar char. 209 00:09:22,260 --> 00:09:26,245 U agħar, jekk inti tibgħat fil verament twila string, inti tista 'anki jissostitwixxu liema? 210 00:09:26,245 --> 00:09:27,460 211 00:09:27,460 --> 00:09:28,570 L-indirizz ta 'ritorn. 212 00:09:28,570 --> 00:09:31,380 Li għal darb'oħra, huwa biss bħal Breadcrumb li tgħid il-programm fejn 213 00:09:31,380 --> 00:09:34,060 li jmorru lura meta f isir qed jissejjaħ. 214 00:09:34,060 --> 00:09:37,140 >> Allura dak guys ħżiena tipikament do hija jekk dawn jiltaqgħu ma 'programm 215 00:09:37,140 --> 00:09:41,290 li dawn qed kurjuż jekk huwa sfruttat, Buggy b'tali mod 216 00:09:41,290 --> 00:09:43,550 li hu jew hi jista 'jieħu vantaġġ ta 'dan bug, 217 00:09:43,550 --> 00:09:45,720 ġeneralment dawn ma jsibux dan id-dritt l-ewwel darba. 218 00:09:45,720 --> 00:09:48,590 Huma biss tibda tibgħat, per eżempju, kordi każwali fis-program tiegħek, 219 00:09:48,590 --> 00:09:50,260 jekk fuq il-keyboard, jew franchement huma probabbilment 220 00:09:50,260 --> 00:09:52,740 jikteb programm ftit li biss awtomatikament jiġġeneraw kordi, 221 00:09:52,740 --> 00:09:55,430 u jibdew banging fuq il program tiegħek billi jibgħat fil-lottijiet ta 'inputs differenti 222 00:09:55,430 --> 00:09:56,340 fil tulijiet differenti. 223 00:09:56,340 --> 00:09:58,990 >> Hekk kif crashes programm tiegħek, li l-ħaġa aqwa. 224 00:09:58,990 --> 00:10:01,020 Għaliex dan ikun ifisser li hu jew hi skopra 225 00:10:01,020 --> 00:10:02,660 dak li huwa probabbilment tabilħaqq bug. 226 00:10:02,660 --> 00:10:05,830 U allura dawn jistgħu jiksbu aktar għaqlija u tibda tiffoka b'mod aktar restrittiv 227 00:10:05,830 --> 00:10:07,420 dwar kif jisfruttaw dak bug. 228 00:10:07,420 --> 00:10:11,480 B'mod partikolari, dak li hu jew hi jista ' tagħmel hu li tibgħat, fl-aħjar każ, bonjour. 229 00:10:11,480 --> 00:10:12,210 No big deal. 230 00:10:12,210 --> 00:10:14,750 Huwa string li l-qasir biżżejjed. 231 00:10:14,750 --> 00:10:18,100 Imma x'jiġri jekk hu jew hi jibgħat, u aħna ser tiġġeneralizza bħala, 232 00:10:18,100 --> 00:10:20,890 attakk code-- hekk żerijiet u dawk li jagħmlu l-affarijiet 233 00:10:20,890 --> 00:10:25,150 bħal rm-rf, li tneħħi kollox mill-hard drive jew jibgħat spam 234 00:10:25,150 --> 00:10:27,000 jew b'xi mod tattakka l-magna? 235 00:10:27,000 --> 00:10:29,570 >> Mela jekk kull wieħed minn dawn ittri A biss tirrappreżenta, 236 00:10:29,570 --> 00:10:32,380 kunċettwalment, attakk, attakk, attakk, attakk, xi kodiċi bad 237 00:10:32,380 --> 00:10:36,410 li xi ħadd ieħor kiteb, imma jekk dik il-persuna huwa intelliġenti biżżejjed 238 00:10:36,410 --> 00:10:40,790 li mhux biss jinkludi kollox għal dawk it-RFS RM, iżda wkoll 239 00:10:40,790 --> 00:10:46,100 jkollhom aħħar ftit bytes tiegħu jew tagħha jkun hemm numru li jikkorrispondi 240 00:10:46,100 --> 00:10:50,540 fl-indirizz ta 'dmirijietu jew kodiċi attakk tagħha stess 241 00:10:50,540 --> 00:10:53,820 li hu jew hi mgħoddija fil biss billi jipprovdulha fil-pront, 242 00:10:53,820 --> 00:10:58,760 inti tista 'effettivament trick l-kompjuter fis jinnota meta f isir eżekuzzjoni, 243 00:10:58,760 --> 00:11:02,400 oh, wasal iż-żmien għalija biex tiżdied lura għall-indirizz tar-ritorn aħmar. 244 00:11:02,400 --> 00:11:06,070 Iżda għaliex hu jew hi għandu b'xi mod jikkoinċidu dak l-indirizz ta 'ritorn 245 00:11:06,070 --> 00:11:09,602 bin-numru tagħhom stess, u dawn qed intelliġenti biżżejjed 246 00:11:09,602 --> 00:11:11,560 li konfigurati li numru li jirreferu, kif inti 247 00:11:11,560 --> 00:11:13,740 tara fil-quċċata super rokna tax-xellug hemm, 248 00:11:13,740 --> 00:11:18,020 l-indirizz attwali fil-tal-kompjuter memorja ta 'xi wħud mill-kodiċi attakk tagħhom, 249 00:11:18,020 --> 00:11:21,740 Guy ħażina tista trick l-kompjuter fis eżekuzzjoni kodiċi tiegħu jew tagħha stess. 250 00:11:21,740 --> 00:11:23,700 >> U dan il-kodiċi, għal darb'oħra, jistgħu jiġu xejn. 251 00:11:23,700 --> 00:11:26,120 Huwa ġeneralment sejjaħ kodiċi qoxra, li huwa biss 252 00:11:26,120 --> 00:11:29,030 mod ta 'tgħid li mhuwiex ġeneralment xi ħaġa sempliċi bħala rm-rf. 253 00:11:29,030 --> 00:11:32,340 Huwa fil-fatt xi ħaġa simili Bash, jew programm attwali li tagħtih 254 00:11:32,340 --> 00:11:37,230 jew kontroll programmatiku tagħha biex tesegwixxi kull ħaġa oħra li jkunu jridu. 255 00:11:37,230 --> 00:11:40,210 Allura fil-qosor, dan kollu joħroġ mill-fatt sempliċi 256 00:11:40,210 --> 00:11:44,490 li dan bug involut ma iċċekkjar il-konfini ta 'firxa tiegħek. 257 00:11:44,490 --> 00:11:47,250 U minħabba l-mod kompjuters xogħol huwa li dawn 258 00:11:47,250 --> 00:11:49,430 jużaw il-munzell minn b'mod effettiv, kunċettwalment, 259 00:11:49,430 --> 00:11:54,830 qiegħ fuq up, iżda mbagħad l-elementi timbotta fuq il-munzell jikber top down, 260 00:11:54,830 --> 00:11:56,624 dan huwa oerhört problematiku. 261 00:11:56,624 --> 00:11:58,290 Issa, hemm modi biex jaħdmu madwar dan. 262 00:11:58,290 --> 00:12:00,800 U franchement, hemm lingwi li biex jaħdmu madwar dan. 263 00:12:00,800 --> 00:12:03,100 Java huwa immuni, per eżempju, biex din il-kwistjoni partikolari. 264 00:12:03,100 --> 00:12:04,110 Minħabba li ma jagħtuk pointers. 265 00:12:04,110 --> 00:12:05,943 Huma ma jagħtuk indirizzi memorja diretti. 266 00:12:05,943 --> 00:12:08,560 Allura ma dan il-poter li għandna tmissx xejn fil-memorja 267 00:12:08,560 --> 00:12:11,580 Irridu taqa, ċertament, ir-riskju kbir. 268 00:12:11,580 --> 00:12:12,430 >> Allura żżomm għajnejk out. 269 00:12:12,430 --> 00:12:14,596 Jekk, franchement, fix-xhur jew snin li ġejjin, ghaċ 270 00:12:14,596 --> 00:12:17,740 inti taqra dwar xi wħud isfruttament ta 'programm jew ta' server, 271 00:12:17,740 --> 00:12:22,370 jekk inti qatt tara ħjiel ta 'xi ħaġa bħal attakk overflow buffer, 272 00:12:22,370 --> 00:12:25,390 jew overflow Munzell huwa tip ieħor ta 'attakk, simili fl-ispirtu, 273 00:12:25,390 --> 00:12:28,770 kemm tispira l-tal-websajt isem, jekk tkun taf, 274 00:12:28,770 --> 00:12:33,170 dan kollu jitkellem dwar biss overflowing-daqs ta 'xi karattru 275 00:12:33,170 --> 00:12:36,200 array jew xi array b'mod aktar ġenerali. 276 00:12:36,200 --> 00:12:38,822 Kwalunkwe mistoqsijiet, allura, fuq dan? 277 00:12:38,822 --> 00:12:39,780 Tippruvax din id-dar. 278 00:12:39,780 --> 00:12:41,620 279 00:12:41,620 --> 00:12:42,300 >> Kull dritt. 280 00:12:42,300 --> 00:12:47,270 Allura malloc s'issa kien ġdida tagħna ħabib f'dak nistgħu jallokaw memorja 281 00:12:47,270 --> 00:12:50,540 li aħna ma neċessarjament jaf fil javvanzaw li aħna rridu hekk aħna ma jkollhomx 282 00:12:50,540 --> 00:12:52,920 għall-kodiċi hard fis tagħna numri programm bħal 12. 283 00:12:52,920 --> 00:12:55,550 Ladarba l-utent jgħidilna kemm data hu jew hi trid input, 284 00:12:55,550 --> 00:12:58,000 nistgħu malloc li l-memorja ħafna. 285 00:12:58,000 --> 00:13:01,484 >> Allura malloc jirriżulta, għall- estent konna ilhom jużawha, 286 00:13:01,484 --> 00:13:03,900 espliċitament aħħar darba, u mbagħad inti guys ilhom jużawha 287 00:13:03,900 --> 00:13:08,160 għall getstring unknowingly għall diversi ġimgħat, kollha tal-memorja malloc ta 288 00:13:08,160 --> 00:13:09,820 ġej mill-borġ hekk imsejħa. 289 00:13:09,820 --> 00:13:13,852 U dan huwa għaliex getstring, per eżempju, jistgħu jallokaw memorja dinamiku 290 00:13:13,852 --> 00:13:16,060 mingħajr ma jkunu jafu dak li int ser tip bil-quddiem, 291 00:13:16,060 --> 00:13:21,520 inti idejn lura pointer għal dak memorja, u li l-memorja għadu tiegħek li żżomm, 292 00:13:21,520 --> 00:13:24,080 anki wara getstring prospetti. 293 00:13:24,080 --> 00:13:27,450 Minħabba irtirar wara kollox li l- munzell huwa kontinwament jitla 'u' l isfel, 294 00:13:27,450 --> 00:13:27,950 up u 'l isfel. 295 00:13:27,950 --> 00:13:30,230 U hekk kif din tmur isfel, li tfisser kull memorja 296 00:13:30,230 --> 00:13:33,030 din il-funzjoni użat għandu m'għandux jintuża minn ħaddieħor. 297 00:13:33,030 --> 00:13:34,570 Huwa valuri taż-żibel issa. 298 00:13:34,570 --> 00:13:36,120 >> Iżda l-borġ huwa up here. 299 00:13:36,120 --> 00:13:39,360 U x'hemm sbieħ dwar malloc hija li meta malloc jalloka memorja up here, 300 00:13:39,360 --> 00:13:42,070 mhuwiex impatt, għall- parti l-kbira, mill-munzell. 301 00:13:42,070 --> 00:13:46,000 U hekk kull funzjoni tista 'aċċess memorja li ġie malloc'd, 302 00:13:46,000 --> 00:13:49,120 anke permezz ta 'funzjoni bħal getstring, anki wara hu ritornat. 303 00:13:49,120 --> 00:13:51,700 >> Issa, il-maqlub ta 'malloc huwa b'xejn. 304 00:13:51,700 --> 00:13:53,900 U fil-fatt, ir-regola inti bżonn biex tibda tadotta 305 00:13:53,900 --> 00:13:58,950 huwa kwalunkwe, kwalunkwe, kwalunkwe ħin li inti tuża malloc inti trid yourself tuża ħielsa, eventwalment, 306 00:13:58,950 --> 00:14:00,280 fuq dik l-istess pointer. 307 00:14:00,280 --> 00:14:03,289 Dan il-ħin aħna ġew miktub Buggy, kodiċi buggy, għal ħafna raġunijiet. 308 00:14:03,289 --> 00:14:05,580 Iżda wieħed minnhom kien tuża l-librerija CS50, li 309 00:14:05,580 --> 00:14:09,010 nnifisha hija deliberatament Buggy, tnixxijiet memorja. 310 00:14:09,010 --> 00:14:11,410 Kwalunkwe ħin li inti stajt imsejħa getstring matul l-aħħar ftit ġimgħat 311 00:14:11,410 --> 00:14:13,870 aħna qed tistaqsi l operattiva sistema, Linux, għall-memorja. 312 00:14:13,870 --> 00:14:15,780 U inti qatt ma ladarba jingħata lura. 313 00:14:15,780 --> 00:14:17,730 U dan mhux, fil- prattika, ħaġa tajba. 314 00:14:17,730 --> 00:14:20,330 >> U Valgrind, wieħed mill- għodod introdotti fl Pset 4, 315 00:14:20,330 --> 00:14:22,900 hija kollha dwar tgħin inti issa jsibu bugs bħal dik. 316 00:14:22,900 --> 00:14:27,060 Iżda grazzi għat-tobba Pset 4 inti m'għandekx bżonn li tuża l-librerija CS50 jew getstring. 317 00:14:27,060 --> 00:14:31,220 Allura xi bugs relatati mal-memorja huma finalment se tkun tiegħek stess. 318 00:14:31,220 --> 00:14:34,060 >> Allura malloc hija aktar minn sempliċiment konvenjenti għal dan il-għan. 319 00:14:34,060 --> 00:14:37,420 Nistgħu attwalment issa ssolvi problemi fundamentalment differenti, 320 00:14:37,420 --> 00:14:41,640 u fundamentalment isolvu problemi aktar effettivament bħala kull wegħda ġimgħa żero tal. 321 00:14:41,640 --> 00:14:44,720 S'issa dan huwa l-sexiest struttura tad-data aħna kellna. 322 00:14:44,720 --> 00:14:47,804 U mill-istruttura tad-data I jfissirx biss mod ta 'conceptualizing memorja 323 00:14:47,804 --> 00:14:50,720 b'mod li jmur lil hinn minn sempliċiment tgħid, dan huwa int, dan huwa char. 324 00:14:50,720 --> 00:14:52,930 Nistgħu tibda affarijiet cluster flimkien. 325 00:14:52,930 --> 00:14:54,460 >> Allura firxa dehru qishom dan. 326 00:14:54,460 --> 00:14:57,270 U dak kien importanti f'madwar array huwa li jagħtik 327 00:14:57,270 --> 00:14:59,724 back-to-back biċċiet ta ' memorja, li kull wieħed minnhom 328 00:14:59,724 --> 00:15:02,765 se tkun tal-istess tip, int, int, int, int, jew char, char, char, 329 00:15:02,765 --> 00:15:03,330 char. 330 00:15:03,330 --> 00:15:04,496 Iżda hemm ftit negattivi. 331 00:15:04,496 --> 00:15:06,570 Dan per eżempju, huwa firxa ta 'daqs sitta. 332 00:15:06,570 --> 00:15:10,650 Ejja ngħidu li inti timla dan array b'sitt numri u mbagħad, għal xi raġuni, 333 00:15:10,650 --> 00:15:13,187 utent tiegħek trid li tagħti inti-seba 'numru. 334 00:15:13,187 --> 00:15:14,020 Fejn do inti tpoġġi dan? 335 00:15:14,020 --> 00:15:15,490 336 00:15:15,490 --> 00:15:18,990 >> X'hemm-soluzzjoni jekk għandek ħolqot firxa fuq il-munzell, 337 00:15:18,990 --> 00:15:22,030 per eżempju, biss bil-ġimgħa tnejn notazzjoni li aħna introdotti, 338 00:15:22,030 --> 00:15:23,730 ta 'parentesi kwadri ma' numru ġewwa? 339 00:15:23,730 --> 00:15:25,160 340 00:15:25,160 --> 00:15:27,260 Well, inti ħadthom ltqajna sitt numri fil dawn il-kaxxi. 341 00:15:27,260 --> 00:15:28,530 Liema jkun instincts tiegħek tkun? 342 00:15:28,530 --> 00:15:29,973 Fejn kieku inti tixtieq li tqiegħed lilha? 343 00:15:29,973 --> 00:15:30,860 >> UDJENZA: [inaudible] 344 00:15:30,860 --> 00:15:31,315 >> DAVID J. Malan: Jiddispjacini? 345 00:15:31,315 --> 00:15:32,380 >> UDJENZA: Poġġi fuq it-tmiem. 346 00:15:32,380 --> 00:15:33,796 >> DAVID J. Malan: Poġġi fuq it-tmiem. 347 00:15:33,796 --> 00:15:35,880 Hekk biss fuq il-lemin, barra ta 'din il-kaxxa. 348 00:15:35,880 --> 00:15:38,710 Liema ikun sbieħ, iżda jinstabx inti ma tistax tagħmel dan. 349 00:15:38,710 --> 00:15:41,350 Għaliex jekk inti ħadthom ma talabx għal dan blokki ta 'memorja, 350 00:15:41,350 --> 00:15:44,490 jista 'jkun minn koinċidenza li din qed tintuża minn xi varjabbli oħra 351 00:15:44,490 --> 00:15:45,030 għal kollox. 352 00:15:45,030 --> 00:15:49,210 Think lura ġimgħa jew hekk meta aħna stabbiliti out ismijiet Zamyla u Davin u Gabe tal 353 00:15:49,210 --> 00:15:49,930 fil-memorja. 354 00:15:49,930 --> 00:15:51,638 Huma kienu litteralment lura lura lura. 355 00:15:51,638 --> 00:15:53,550 Allura aħna ma tistax neċessarjament fiduċja li kwalunkwe ta 356 00:15:53,550 --> 00:15:55,800 minn hawn hija disponibbli għall nagħmel użu. 357 00:15:55,800 --> 00:15:56,990 >> Allura x'iktar jista inti tagħmel? 358 00:15:56,990 --> 00:16:00,282 Well, ladarba jirrealizzaw inti bżonn ta 'firxa ta' daqs seba, 359 00:16:00,282 --> 00:16:02,490 inti tista 'biss toħloq firxa ta 'daqs seba mbagħad jużaw 360 00:16:02,490 --> 00:16:05,950 a għal loop jew loop waqt, kopja hija fil-firxa ġdida, 361 00:16:05,950 --> 00:16:09,680 u mbagħad b'xi mod biss jeħles ta ' dan array jew biss tieqaf tuża din. 362 00:16:09,680 --> 00:16:12,130 Iżda li mhux partikolarment effiċjenti. 363 00:16:12,130 --> 00:16:15,340 Fil-qosor, arrays ma let inti dinamikament resize. 364 00:16:15,340 --> 00:16:17,900 >> Allura fuq naħa waħda ikollok aċċess bl-addoċċ, li huwa aqwa. 365 00:16:17,900 --> 00:16:20,108 Minħabba li tikri us do affarijiet bħall firda u conquer, 366 00:16:20,108 --> 00:16:23,100 tfittxija binarja, li kollha konna tkellem dwar fuq l-iskrin hawn. 367 00:16:23,100 --> 00:16:24,950 Imma inti żebgħa lilek innifsek fis-kantuniera. 368 00:16:24,950 --> 00:16:27,810 Hekk kif inti hit l-aħħar tal-firxa tiegħek, 369 00:16:27,810 --> 00:16:29,980 inti għandek tagħmel ħafna operazzjoni għaljin 370 00:16:29,980 --> 00:16:33,910 jew jikteb mazz sħiħ ta 'kodiċi li issa tittratta dik il-problema. 371 00:16:33,910 --> 00:16:36,680 >> Allura dak li jekk minflok kellna xi ħaġa imsejħa lista, 372 00:16:36,680 --> 00:16:38,820 jew lista marbuta b'mod partikolari? 373 00:16:38,820 --> 00:16:41,930 X'jiġri jekk minflok li rettangoli lura lura biex back, 374 00:16:41,930 --> 00:16:45,730 għandna rettangoli li jħallu ftit daqsxejn ta 'kamra wiggle bejniethom? 375 00:16:45,730 --> 00:16:49,670 U anki jekk stajt miġbuda dan stampa jew adattati din l-istampa 376 00:16:49,670 --> 00:16:54,696 minn wieħed mit-testi hawn biex tkun lura lejn lura lura ħafna ordnat, fir-realtà, 377 00:16:54,696 --> 00:16:56,820 wieħed minn dawk rettangoli jista 'jkun up hawn fil-memorja. 378 00:16:56,820 --> 00:16:58,028 Wieħed minnhom jista 'jkun up here. 379 00:16:58,028 --> 00:17:00,420 Wieħed minnhom jista 'jkun up here, hawn fuq, u ibqa 'sejjer hekk. 380 00:17:00,420 --> 00:17:02,910 >> Imma dak jekk aħna ġibdet, f'dan il-każ, vleġeġ 381 00:17:02,910 --> 00:17:05,650 li b'xi mod link dawn rettangoli flimkien? 382 00:17:05,650 --> 00:17:08,170 Tabilħaqq, Rajna tekniku Inkarnazzjoni ta vleġġa. 383 00:17:08,170 --> 00:17:09,839 384 00:17:09,839 --> 00:17:13,710 Dak li aħna użati fl-aħħar jiem li, taħt il-barnuża, 385 00:17:13,710 --> 00:17:15,210 huwa rappreżentattiv ta vleġġa? 386 00:17:15,210 --> 00:17:16,290 387 00:17:16,290 --> 00:17:17,349 A pointer, id-dritt? 388 00:17:17,349 --> 00:17:19,780 >> Allura dak li jekk, minflok biss ħażna tal-numri, 389 00:17:19,780 --> 00:17:23,130 bħall 9, 17, 22, 26, 34, dak jekk aħna maħżuna ma 390 00:17:23,130 --> 00:17:27,079 biss numru iżda pointer li jmiss għal kull tali numru? 391 00:17:27,079 --> 00:17:30,690 Allura li ferm simili inti Thread labra permezz mazz sħiħ ta 'drapp, 392 00:17:30,690 --> 00:17:32,950 affarijiet b'xi irbit flimkien, bl-istess mod jista 393 00:17:32,950 --> 00:17:35,550 aħna ma pointers, kif incarnated mill vleġeġ hawn, 394 00:17:35,550 --> 00:17:38,550 tip ta 'nisġa flimkien dawn rettangoli individwali 395 00:17:38,550 --> 00:17:41,780 billi effettivament jużaw pointer li jmiss għal kull numru li 396 00:17:41,780 --> 00:17:46,065 punti li xi numru li jmiss, li punti li, imbagħad, xi numru li jmiss? 397 00:17:46,065 --> 00:17:47,940 Allura fi kliem ieħor, liema jekk aħna fil-fatt riedu 398 00:17:47,940 --> 00:17:49,820 biex jimplimentaw xi ħaġa bħal din? 399 00:17:49,820 --> 00:17:53,610 Well sfortunatament, dawn rettangoli, inqas l-wieħed ma 9, 17, 22, 400 00:17:53,610 --> 00:17:57,040 u ibqa 'sejjer hekk, dawn m'għadhomx pjazez sbieħ ma 'numri singoli. 401 00:17:57,040 --> 00:17:59,960 Il-qiegħ, rettangolu hawn taħt 9, per eżempju, 402 00:17:59,960 --> 00:18:04,330 jirrappreżenta dak għandu tkun pointer, 32 bits. 403 00:18:04,330 --> 00:18:09,460 Issa, jien ma għadhom konxji ta 'kwalunkwe tip ta' dejta fis-C li jagħtik mhux biss int 404 00:18:09,460 --> 00:18:11,630 iżda pointer kollox. 405 00:18:11,630 --> 00:18:15,020 >> Allura x'inhu l-soluzzjoni jekk irridu jivvintaw tweġiba tagħna stess għal dan? 406 00:18:15,020 --> 00:18:15,760 Yeah? 407 00:18:15,760 --> 00:18:16,640 >> UDJENZA: [inaudible] 408 00:18:16,640 --> 00:18:17,360 >> DAVID J. Malan: X'hemm li? 409 00:18:17,360 --> 00:18:17,880 >> UDJENZA: Struttura ġdida. 410 00:18:17,880 --> 00:18:19,590 >> DAVID J. Malan: Yeah, hekk għaliex ma noħolqu struttura ġdida, 411 00:18:19,590 --> 00:18:20,920 jew Ċ, Struct? 412 00:18:20,920 --> 00:18:25,990 Imxejna structs rajna qabel, jekk fil-qosor, fejn aħna ttrattati bi struttura student 413 00:18:25,990 --> 00:18:27,780 bħal dan, li kellhom l-isem u dar. 414 00:18:27,780 --> 00:18:31,980 Fil Pset 3 tbegħid inti użati kollu mazz ta 'GRect structs-- u GOvals 415 00:18:31,980 --> 00:18:34,810 li Stanford maħluqa biex informazzjoni cluster flimkien. 416 00:18:34,810 --> 00:18:38,580 Allura dak li jekk nieħdu din l-istess idea ta ' l-keywords "typedef" u "Struct," 417 00:18:38,580 --> 00:18:42,890 u mbagħad xi għalf speċifiku student, u jevolvu dan fil-segwenti: 418 00:18:42,890 --> 00:18:46,210 typedef Struct node-- u node huwa biss xjenza tal-kompjuter ġeneriku ħafna 419 00:18:46,210 --> 00:18:49,980 tul għal xi ħaġa fi struttura tad-data, kontenitur fi struttura tad-data. 420 00:18:49,980 --> 00:18:53,900 A node nitlob huwa se jkollu l n int, totalment sempliċi, 421 00:18:53,900 --> 00:18:58,810 u mbagħad ftit aktar cryptically, din it-tieni linja, node Struct * jmiss. 422 00:18:58,810 --> 00:19:01,300 Iżda f'termini tekniċi inqas, dak li huwa dan it-tieni linja 423 00:19:01,300 --> 00:19:02,980 tal-kodiċi ġewwa l-braces kaboċċi? 424 00:19:02,980 --> 00:19:03,737 Yeah? 425 00:19:03,737 --> 00:19:04,851 >> UDJENZA: [inaudible] 426 00:19:04,851 --> 00:19:06,600 DAVID J. Malan: A pointer li node ieħor. 427 00:19:06,600 --> 00:19:09,910 Allura ċertament, sintattiku ftit cryptic. 428 00:19:09,910 --> 00:19:13,250 Imma jekk inti taqra dan litteralment, li jmiss huwa l-isem ta 'varjabbli. 429 00:19:13,250 --> 00:19:14,410 X'inhu tip ta 'dejta tagħha? 430 00:19:14,410 --> 00:19:18,206 Huwa verbose ftit dan iż-żmien, imma hija ta node Struct tip *. 431 00:19:18,206 --> 00:19:22,960 Kwalunkwe ħin Rajna star xi ħaġa, li ifisser huwa pointer għal dak it-tip data. 432 00:19:22,960 --> 00:19:26,810 Allura li jmiss hija apparentement a pointer li node Struct. 433 00:19:26,810 --> 00:19:28,310 >> Issa, dak li huwa node Struct? 434 00:19:28,310 --> 00:19:31,044 Well, Avviż inti tara dawk istess kliem fil kantuniera. 435 00:19:31,044 --> 00:19:33,960 U fil-fatt, inti wkoll tara l-kelma "Node" stabbiliti hawn fil-qiegħ tax-xellug. 436 00:19:33,960 --> 00:19:35,640 U dan huwa attwalment biss konvenjenza. 437 00:19:35,640 --> 00:19:39,930 Avviż li fid-definizzjoni student tagħna hemm il-kelma "student" darba biss. 438 00:19:39,930 --> 00:19:42,510 U dan għaliex student oġġett ma kienx awto-referenzjali. 439 00:19:42,510 --> 00:19:45,340 M'hemm xejn ġewwa ta 'student li jeħtieġ għall-punt li student ieħor, 440 00:19:45,340 --> 00:19:45,610 persay. 441 00:19:45,610 --> 00:19:47,630 Dan ikun tip ta ' stramb fid-dinja reali. 442 00:19:47,630 --> 00:19:50,880 >> Iżda ma 'node fil marbuta lista, nagħmlu rridu node 443 00:19:50,880 --> 00:19:53,970 li jkun referenzjali għal oġġett simili. 444 00:19:53,970 --> 00:19:57,900 U hekk avviż-bidla hawnhekk mhix biss x'hemm ġewwa l-braces kaboċċi. 445 00:19:57,900 --> 00:20:00,800 Iżda aħna żid il-kelma "node" fil-quċċata kif ukoll 446 00:20:00,800 --> 00:20:02,930 żżidu mal-qiegħ minflok "student." 447 00:20:02,930 --> 00:20:06,000 U dan huwa biss f'dettalji, b'tali mod li, għal darb'oħra, l-istruttura tad-data tiegħek 448 00:20:06,000 --> 00:20:11,380 jista 'jkun awto-referenzjali, b'tali mod li node jista 'jiġbed l node oħra bħal din. 449 00:20:11,380 --> 00:20:13,840 >> Allura dak li huwa dan finalment ser ifisser għalina? 450 00:20:13,840 --> 00:20:17,560 Ukoll, wieħed, dan il-għalf ġewwa huwa l-kontenut ta 'node tagħna. 451 00:20:17,560 --> 00:20:19,360 Din ħaġa up here, kantuniera, huwa biss hekk 452 00:20:19,360 --> 00:20:20,860 li, għal darb'oħra, nistgħu jirreferu għall nfusna. 453 00:20:20,860 --> 00:20:23,401 U allura l-għalf aktar imbiegħda, anki jekk node huwa terminu ġdid, 454 00:20:23,401 --> 00:20:25,500 forsi, huwa għadu l- istess bħal student u liema 455 00:20:25,500 --> 00:20:27,520 kien taħt il-barnuża fl SPL. 456 00:20:27,520 --> 00:20:31,095 >> Allura jekk aħna issa riedet tibda implimentazzjoni ta 'din il-lista marbuta, 457 00:20:31,095 --> 00:20:33,220 kif jista aħna tittraduċi xi ħaġa bħal din għall-kodiċi? 458 00:20:33,220 --> 00:20:35,350 Well, ejja biss tara Eżempju ta 'programm li 459 00:20:35,350 --> 00:20:36,840 effettivament juża lista marbuta. 460 00:20:36,840 --> 00:20:40,870 Fost kodiċi tad-distribuzzjoni tal-lum huwa programm imsejjaħ Lista Zero. 461 00:20:40,870 --> 00:20:44,980 U jekk I run dan I ħolqot super GUI sempliċi, grafiċi User Interface, 462 00:20:44,980 --> 00:20:46,460 iżda huwa verament ftit printf. 463 00:20:46,460 --> 00:20:50,930 U issa stajt mogħtija lili nnifsi menu ftit options-- Ħassar, Daħħal, Search, 464 00:20:50,930 --> 00:20:51,750 u travers. 465 00:20:51,750 --> 00:20:52,630 U Nieqaf. 466 00:20:52,630 --> 00:20:55,970 Dawn huma operazzjonijiet biss komuni fuq struttura tad-data magħrufa bħala lista link. 467 00:20:55,970 --> 00:20:58,409 >> Issa, Ħassar se jitħassru ċertu numru mil-lista. 468 00:20:58,409 --> 00:21:00,200 Daħħal għaddej biex iżżid numru għal-lista. 469 00:21:00,200 --> 00:21:02,181 Fittex ser tħares għall numru fil-lista. 470 00:21:02,181 --> 00:21:04,930 U travers huwa biss mod fancy ta 'tgħid, walk permezz tal-lista, 471 00:21:04,930 --> 00:21:06,245 ipprintjaha, imma thats it. 472 00:21:06,245 --> 00:21:07,720 Tbiddilx fi kwalunkwe mod. 473 00:21:07,720 --> 00:21:08,570 >> Mela ejja jippruvaw dan. 474 00:21:08,570 --> 00:21:10,160 Ejja imorru quddiem u tat-tip 2. 475 00:21:10,160 --> 00:21:12,710 U mbagħad jien ser daħħal in-numru, jgħidu 9. 476 00:21:12,710 --> 00:21:13,620 Ikteb. 477 00:21:13,620 --> 00:21:17,480 U issa program tiegħi huwa biss pprogrammata biex jgħidu, lista issa huwa 9. 478 00:21:17,480 --> 00:21:20,190 Issa, jekk I imorru quddiem u do Daħħal għal darb'oħra, let 479 00:21:20,190 --> 00:21:23,680 me imorru quddiem u zoom out u tip 17. 480 00:21:23,680 --> 00:21:25,770 Issa lista tiegħi huwa 9, allura 17. 481 00:21:25,770 --> 00:21:27,750 Jekk I do daħħal mill-ġdid, ejja skip wieħed. 482 00:21:27,750 --> 00:21:32,400 Minflok 22, kif kull l-istampa konna ġew tħares lejn hawnhekk, let me jaqbżu l quddiem 483 00:21:32,400 --> 00:21:34,630 u daħħal 26 li jmiss. 484 00:21:34,630 --> 00:21:36,230 So jien ser tip 26. 485 00:21:36,230 --> 00:21:37,755 Il-lista huwa kif I jistennew. 486 00:21:37,755 --> 00:21:40,630 Imma issa, biss biex tara jekk dan il-kodiċi se tkun flessibbli, let me issa 487 00:21:40,630 --> 00:21:43,520 tip 22, li mill-inqas kunċettwalment, jekk aħna qed 488 00:21:43,520 --> 00:21:46,520 Żamma dan magħżula, li huwa tabilħaqq se tkun gowl ieħor dritt issa, 489 00:21:46,520 --> 00:21:48,690 għandhom imorru fl bejn 17 u 26. 490 00:21:48,690 --> 00:21:50,270 So I hit Ikteb. 491 00:21:50,270 --> 00:21:51,380 Tabilħaqq, li x-xogħlijiet. 492 00:21:51,380 --> 00:21:54,950 U hekk issa let me daħħal il- aħħar, kull l-istampa, 34. 493 00:21:54,950 --> 00:21:55,450 >> Kull dritt. 494 00:21:55,450 --> 00:21:58,980 Allura għal issa let me jistipulaw li Ħassar u travers u Search tagħmel, 495 00:21:58,980 --> 00:21:59,760 fil-fatt, ix-xogħol. 496 00:21:59,760 --> 00:22:04,180 Fil-fatt, jekk I do run Fittex, ejja tfittxija għall-numru 22, Ikteb. 497 00:22:04,180 --> 00:22:05,010 Hija sabet 22. 498 00:22:05,010 --> 00:22:07,580 Allura dan huwa dak li din programm Lista Zero ma. 499 00:22:07,580 --> 00:22:10,230 >> Imma dak li huwa attwalment għaddejjin fuq li jimplimenta dan? 500 00:22:10,230 --> 00:22:14,530 Well, l-ewwel I jista 'jkollhom, u tabilħaqq I do jkollhom, fajl imsejjaħ list0.h. 501 00:22:14,530 --> 00:22:16,540 502 00:22:16,540 --> 00:22:20,690 U x'imkien fil hemm huwa dan linja, typedef, node Struct, 503 00:22:20,690 --> 00:22:24,850 imbagħad I jkollhom ċingi kaboċċi tiegħi, int n, u imbagħad struct-- dak li kien id-definizzjoni? 504 00:22:24,850 --> 00:22:26,530 505 00:22:26,530 --> 00:22:28,545 Node Struct jmiss. 506 00:22:28,545 --> 00:22:29,920 507 00:22:29,920 --> 00:22:31,045 Allura għandna bżonn l-istilla. 508 00:22:31,045 --> 00:22:33,420 Issa teknikament we jsibu rwieħhom l-vizzju tat-tfassil hawnhekk. 509 00:22:33,420 --> 00:22:35,670 Inti tista 'tara kotba u referenzi online do hemmhekk. 510 00:22:35,670 --> 00:22:36,660 Huwa funzjonalment ekwivalenti. 511 00:22:36,660 --> 00:22:37,980 Fil-fatt, dan huwa xi ftit aktar tipiku. 512 00:22:37,980 --> 00:22:40,563 Imma I ser tkun konsistenti ma 'dak għamilna aħħar darba u jagħmlu dan. 513 00:22:40,563 --> 00:22:42,350 U mbagħad fl-aħħar, jien ser jagħmlu dan. 514 00:22:42,350 --> 00:22:45,550 >> Allura fil-fajl tal-header x'imkien, fil list0.h 515 00:22:45,550 --> 00:22:49,200 llum hija din id-definizzjoni Struct, u forsi xi għalf ieħor. 516 00:22:49,200 --> 00:22:52,580 Sadanittant list0c hemm ser ikunu ftit affarijiet. 517 00:22:52,580 --> 00:22:54,740 Iżda aħna qed tmur biex ftit jibdew u mhux jintemm dan. 518 00:22:54,740 --> 00:22:59,690 List0.h huwa fajl irrid biex jinkludu fil-fajl C tiegħi. 519 00:22:59,690 --> 00:23:03,910 U mbagħad f'xi punt jien ser ikollhom int, prinċipali, null. 520 00:23:03,910 --> 00:23:06,530 U mbagħad jien ser għandhom xi to do hawnhekk. 521 00:23:06,530 --> 00:23:10,620 Jien ukoll se jkollhom prototip, bħal null, tfittxija, int, 522 00:23:10,620 --> 00:23:13,610 n, l-iskop tagħhom fil-ħajja huwa tiftix għal element. 523 00:23:13,610 --> 00:23:18,310 U mbagħad stabbiliti hawn nitlob fl kodiċi tal-lum, null, tfittxija, int, n, 524 00:23:18,310 --> 00:23:21,020 ebda virgola iżda braces kaboċċi miftuħa. 525 00:23:21,020 --> 00:23:25,049 U issa I trid tfittex b'xi mod għal element f'din il-lista. 526 00:23:25,049 --> 00:23:27,340 Iżda aħna ma jkollhomx biżżejjed informazzjoni fuq l-iskrin għadu. 527 00:23:27,340 --> 00:23:29,800 I jkollhom ma attwalment irrappreżentata lista nnifisha. 528 00:23:29,800 --> 00:23:33,070 Allura mod wieħed nistgħu jimplimentaw lista marbuta fi programm 529 00:23:33,070 --> 00:23:37,520 huwa I tip ta 'tixtieq li tagħmel xi ħaġa bħall tiddikjara marbuta lista up here. 530 00:23:37,520 --> 00:23:40,520 Għas-sempliċità, jien ser jagħmlu dan globali, anke jekk b'mod ġenerali aħna 531 00:23:40,520 --> 00:23:41,645 m'għandekx tagħmel dan wisq. 532 00:23:41,645 --> 00:23:43,260 Iżda se tissimplifika dan l-eżempju. 533 00:23:43,260 --> 00:23:45,890 So I jridu jiddikjaraw lista marbuta up here. 534 00:23:45,890 --> 00:23:47,010 Issa, kif jista 'nagħmel dan? 535 00:23:47,010 --> 00:23:48,810 536 00:23:48,810 --> 00:23:50,750 >> Hawn l-istampa ta 'lista marbuta. 537 00:23:50,750 --> 00:23:53,030 U jien ma verament taf fil-mument kif 538 00:23:53,030 --> 00:23:56,710 Jien ser tmur dwar jirrappreżentaw tant affarijiet b'sett wieħed biss 539 00:23:56,710 --> 00:23:58,040 varjabbli fil-memorja. 540 00:23:58,040 --> 00:23:59,160 Imma naħseb lura mument. 541 00:23:59,160 --> 00:24:00,830 Dan il-ħin aħna kellna kordi, li aħna mbagħad 542 00:24:00,830 --> 00:24:02,913 żvelat li jkun arrays ta ' karattri, li aħna mbagħad 543 00:24:02,913 --> 00:24:05,740 żvelat li jkun biss pointer l-ewwel karattru 544 00:24:05,740 --> 00:24:08,890 fil-firxa ta 'karattri thats null terminat. 545 00:24:08,890 --> 00:24:13,530 Allura billi li l-loġika, u ma 'dan stampa tip ta 'jinżera ħsibijiet tiegħek, 546 00:24:13,530 --> 00:24:17,964 dak li għandna attwalment bżonn jiktbu tagħna kodiċi jirrappreżentaw lista marbuta? 547 00:24:17,964 --> 00:24:21,130 Kemm ta 'din l-informazzjoni għandna bżonn biex jaqbdu fil-kodiċi C, would you say? 548 00:24:21,130 --> 00:24:22,654 549 00:24:22,654 --> 00:24:23,154 Yeah? 550 00:24:23,154 --> 00:24:24,738 >> UDJENZA: Għandna bżonn pointer għal node. 551 00:24:24,738 --> 00:24:26,237 DAVID J. Malan: A pointer għal node. 552 00:24:26,237 --> 00:24:29,320 B'mod partikolari, liema node kieku tiegħek instincts jkun li żżomm pointer li? 553 00:24:29,320 --> 00:24:30,026 >> UDJENZA: L-ewwel node. 554 00:24:30,026 --> 00:24:31,942 >> DAVID J. Malan: Yeah, probabbilment biss l-ewwel. 555 00:24:31,942 --> 00:24:34,030 U avviż, l-ewwel node hija forma differenti. 556 00:24:34,030 --> 00:24:37,690 Huwa biss nofs id-daqs ta 'l-Struct, għaliex dan huwa tabilħaqq biss pointer. 557 00:24:37,690 --> 00:24:44,650 Allura dak li inti tista 'tabilħaqq tagħmel huwa jiddikjara lista marbuta ma jkunu ta 'node tip *. 558 00:24:44,650 --> 00:24:47,780 U ejja biss sejħa hija l-ewwel u initialize lill null. 559 00:24:47,780 --> 00:24:49,910 Allura null, għal darb'oħra, huwa li ġejjin fis-istampa hawn. 560 00:24:49,910 --> 00:24:53,620 Mhux biss huwa null użat bħala bħal speċjali valur tar-ritorn għal affarijiet simili getstring 561 00:24:53,620 --> 00:24:57,770 u malloc, null hija wkoll l-żero pointer, in-nuqqas ta 'pointer, 562 00:24:57,770 --> 00:24:58,430 jekk inti se. 563 00:24:58,430 --> 00:25:00,309 Dan ifisser biss xejn għadu hawn. 564 00:25:00,309 --> 00:25:02,100 Issa l-ewwel, I jistgħu stajt sejjaħ dan xejn. 565 00:25:02,100 --> 00:25:04,200 I setgħet hija imsejħa "lista" jew kwalunkwe numru ta 'affarijiet oħra. 566 00:25:04,200 --> 00:25:06,960 Imma jien ssejjaħ dan "l-ewwel" b'tali mod li linji it up ma din l-istampa. 567 00:25:06,960 --> 00:25:10,280 Hekk biss bħal string jistax jiġi rappreżentat bl-indirizz ta 'l-ewwel byte tagħha, 568 00:25:10,280 --> 00:25:11,280 sabiex tista 'lista marbuta. 569 00:25:11,280 --> 00:25:13,480 U aħna ser tara informazzjoni oħra istrutturi jkunu rappreżentati 570 00:25:13,480 --> 00:25:16,700 b'sett wieħed biss pointer, vleġġa 32-bit, tipponta 571 00:25:16,700 --> 00:25:18,740 fl-ewwel node fl-istruttura. 572 00:25:18,740 --> 00:25:20,340 >> Imma issa ejja tantiċipa problema. 573 00:25:20,340 --> 00:25:23,230 Jekk jien biss ftakar fil-programm tiegħi l-indirizz 574 00:25:23,230 --> 00:25:27,220 ta 'l-ewwel node, l-ewwel rettangolu f'din l-istruttura tad-data, 575 00:25:27,220 --> 00:25:31,760 liema kellhom jkun aħjar il-każ dwar il- implimentazzjoni tal-bqija tal-lista tiegħi? 576 00:25:31,760 --> 00:25:35,820 X'hemm dettall ewlieni li għaddej biex tiżgura li dan attwalment xogħlijiet? 577 00:25:35,820 --> 00:25:39,250 U billi "attwalment xogħlijiet" I mean, ħafna bħal string, 578 00:25:39,250 --> 00:25:42,180 tikri us go mill-ewwel karattru fl-isem Davin għall-tieni, 579 00:25:42,180 --> 00:25:44,755 għat-tielet, għall- raba, sa l-aħħar ħafna, 580 00:25:44,755 --> 00:25:47,880 kif nafu meta nkunu fl-aħħar ta 'lista marbuta li tidher bħal dan? 581 00:25:47,880 --> 00:25:50,035 582 00:25:50,035 --> 00:25:50,660 Meta huwa null. 583 00:25:50,660 --> 00:25:53,640 U stajt rappreżentati dan it-tip ta 'bħala bħal-jista inġinier elettriku, 584 00:25:53,640 --> 00:25:56,420 mal-ert ftit simbolu, ta 'tip. 585 00:25:56,420 --> 00:25:58,246 Iżda dan ifisser biss null f'dan il-każ. 586 00:25:58,246 --> 00:26:00,370 Tista 'tiġbed kull numru ta 'modi, iżda dan awtur 587 00:26:00,370 --> 00:26:02,800 ġara biex jużaw dan is-simbolu hawn. 588 00:26:02,800 --> 00:26:06,260 >> Sakemm aħna qed stringing kollha ta 'dawn lymph flimkien, 589 00:26:06,260 --> 00:26:08,600 biss ftakar fejn l-ewwel waħda hija, sakemm 590 00:26:08,600 --> 00:26:11,760 kif aħna tpoġġi simbolu speċjali fil l-ħafna aħħar node fil-lista, 591 00:26:11,760 --> 00:26:15,130 u aħna ser tuża null, minħabba li l dak li għandna disponibbli lilna, 592 00:26:15,130 --> 00:26:16,480 din il-lista hija kompluta. 593 00:26:16,480 --> 00:26:20,190 U anki jekk I biss jagħtuk pointer biex l-ewwel element, inti, il-programmer, 594 00:26:20,190 --> 00:26:22,486 tista 'ċertament aċċess għall-bqija ta' dan. 595 00:26:22,486 --> 00:26:24,360 Imma ejja ejja imħuħ tiegħek wander ftit, 596 00:26:24,360 --> 00:26:26,140 jekk dawn mhux qed diġà pjuttost wandered-- x'hemm 597 00:26:26,140 --> 00:26:28,723 se jkun il-ħin qed taħdem ta ' konstatazzjoni xejn f'din il-lista? 598 00:26:28,723 --> 00:26:30,450 599 00:26:30,450 --> 00:26:33,470 Indanna dan, huwa O kbir ta 'n, li mhix ħażina, fl-ekwità. 600 00:26:33,470 --> 00:26:34,800 Iżda huwa lineari. 601 00:26:34,800 --> 00:26:37,980 Aħna taw up dak karatteristika ta arrays billi jersqu aktar 602 00:26:37,980 --> 00:26:43,130 lejn din l-istampa ta 'dinamikament minsuġa flimkien jew lymph marbuta? 603 00:26:43,130 --> 00:26:44,970 604 00:26:44,970 --> 00:26:46,687 Imxejna rrinunzjaw aċċess bl-addoċċ. 605 00:26:46,687 --> 00:26:48,770 Firxa huwa sbieħ għaliex kollox matematikament 606 00:26:48,770 --> 00:26:50,340 huwa lura lura lura biex lura. 607 00:26:50,340 --> 00:26:52,370 Anke jekk din l-istampa jistenna pretty, u anki 608 00:26:52,370 --> 00:26:55,830 għalkemm jidher qisu dawn lymph huma nicely spazjati, fir-realtà 609 00:26:55,830 --> 00:26:56,830 dawn jistgħu jkunu kullimkien. 610 00:26:56,830 --> 00:27:01,590 OX1, Ox50, Ox123, Ox99, dawn lymph jista 'jkun kullimkien. 611 00:27:01,590 --> 00:27:05,960 Minħabba malloc ma jalloka memorja mill-munzell, iżda kullimkien fid-borġ. 612 00:27:05,960 --> 00:27:09,080 Inti ma neċessarjament jaf li huwa se tkun lura lura lura. 613 00:27:09,080 --> 00:27:12,460 U hekk din l-istampa fil-proċess tat-realtà mhux se jkun pjuttost dan pretty. 614 00:27:12,460 --> 00:27:16,140 >> Allura li għaddej biex jieħu ftit tal- jaħdmu biex jimplimentaw din il-funzjoni. 615 00:27:16,140 --> 00:27:17,880 Mela ejja jimplimentaw search issa. 616 00:27:17,880 --> 00:27:20,250 U aħna ser tara tip ta ' mod għaqlija ta 'kif isir dan. 617 00:27:20,250 --> 00:27:24,660 Mela jekk I am a funzjoni ta 'tfittxija u Jien mogħti varjabbli, numru sħiħ n 618 00:27:24,660 --> 00:27:28,490 biex tfittex, I bżonn tkun taf l- sintassi ġdida għall tfittex ġewwa 619 00:27:28,490 --> 00:27:32,400 ta 'struttura li l- indikat, biex isibu n. 620 00:27:32,400 --> 00:27:33,210 Mela ejja tagħmel dan. 621 00:27:33,210 --> 00:27:36,030 >> Allura l-ewwel jien se jmorru quddiem u tiddikjara node *. 622 00:27:36,030 --> 00:27:39,400 U jien ser sejħa hija pointer, biss billi konvenzjoni. 623 00:27:39,400 --> 00:27:41,710 U jien ser initialize lill-ewwel. 624 00:27:41,710 --> 00:27:43,770 U issa I tista 'tagħmel dan f'numru ta 'modi. 625 00:27:43,770 --> 00:27:45,436 Imma jien ser tieħu approċċ komuni. 626 00:27:45,436 --> 00:27:50,180 Filwaqt pointer mhuwiex ugwali għal null, u li l-sintassi validu. 627 00:27:50,180 --> 00:27:54,550 U dan ifisser biss tagħmel dan li ġej, hekk Sakemm int ma tipponta lejn xejn. 628 00:27:54,550 --> 00:27:55,800 What do I trid tagħmel? 629 00:27:55,800 --> 00:28:01,939 >> Jekk pointer dot n, let me terga 'lura għal dan, equals-- ugwali liema? 630 00:28:01,939 --> 00:28:03,105 What am I valur tfittex? 631 00:28:03,105 --> 00:28:04,920 632 00:28:04,920 --> 00:28:06,590 Il n attwali li kienet għaddiet. 633 00:28:06,590 --> 00:28:09,020 Allura hawnhekk fattur ieħor ta 'C u ħafna lingwi. 634 00:28:09,020 --> 00:28:13,705 Anki jekk l-istruttura imsejħa node għandha n-valur, totalment leġittimu 635 00:28:13,705 --> 00:28:17,530 li jkollu wkoll argument lokali jew varjabbli imsejħa n. 636 00:28:17,530 --> 00:28:20,085 Minħabba anke aħna, ma ' għajnejn tal-bniedem, jista 'jiddistingwi 637 00:28:20,085 --> 00:28:22,087 li dan huwa n preżumibbilment differenti minn dan n. 638 00:28:22,087 --> 00:28:23,420 Minħabba li l-sintassi hija differenti. 639 00:28:23,420 --> 00:28:26,211 You ħadthom ltqajna dot u pointer, billi dan wieħed m'għandu l-ebda ħaġa bħal din. 640 00:28:26,211 --> 00:28:27,290 Allura dan huwa OK. 641 00:28:27,290 --> 00:28:29,120 C'est OK li jsejħu lilhom l-istess affarijiet. 642 00:28:29,120 --> 00:28:32,380 >> Jekk I do inti ssib dan, jien tmur trid tagħmel xi ħaġa 643 00:28:32,380 --> 00:28:35,000 bħal jħabbar li sibna n. 644 00:28:35,000 --> 00:28:37,930 U aħna ser tħalli li bħala jikkummenta jew kodiċi pseudocode. 645 00:28:37,930 --> 00:28:40,190 Else, u hawnhekk l- parti interessanti, liema 646 00:28:40,190 --> 00:28:47,320 do I trid tagħmel jekk il-node attwali ma fihx n li I care about? 647 00:28:47,320 --> 00:28:50,700 Kif nista jinkiseb dan li ġej? 648 00:28:50,700 --> 00:28:53,710 Jekk finger tiegħi fil- mument huwa PTR, u huwa 649 00:28:53,710 --> 00:28:55,920 tipponta fi kwalunkwe ewwel hija li tipponta lejn, 650 00:28:55,920 --> 00:28:59,290 kif nista jimxu finger tiegħi għall-node li jmiss fil-kodiċi? 651 00:28:59,290 --> 00:29:01,915 Ukoll, x'inhu l-Breadcrumb aħna qed sejra ssegwi f'dan il-każ? 652 00:29:01,915 --> 00:29:03,464 653 00:29:03,464 --> 00:29:04,380 UDJENZA: [inaudible]. 654 00:29:04,380 --> 00:29:05,630 DAVID J. Malan: Yeah, hekk li jmiss. 655 00:29:05,630 --> 00:29:06,640 656 00:29:06,640 --> 00:29:09,824 Mela jekk jien jmorru lura għall tiegħi kodiċi hawn, tabilħaqq, jien 657 00:29:09,824 --> 00:29:12,990 se jmorru 'l quddiem u jgħidu pointer, li huwa biss variable-- temporanju huwa 658 00:29:12,990 --> 00:29:15,320 isem stramb, PTR, iżda huwa biss bħal temp-- 659 00:29:15,320 --> 00:29:19,234 Jien ser jistabbilixxu pointer ugwali għal dak kollu is-- pointer 660 00:29:19,234 --> 00:29:22,150 u għal darb'oħra, dan se jkun ftit Buggy għal dot moment-- jmiss. 661 00:29:22,150 --> 00:29:23,551 662 00:29:23,551 --> 00:29:26,550 Fi kliem ieħor, jien ser tieħu tiegħi finger thats tipponta lejn dan node 663 00:29:26,550 --> 00:29:31,247 hawn u jien ser ngħid, inti taf dak, tagħti ħarsa lejn il-qasam li jmiss 664 00:29:31,247 --> 00:29:33,330 u jimxu saba biex x'ikun huwa tipponta lejn. 665 00:29:33,330 --> 00:29:35,163 U dan se irrepeti, irrepeti, irrepeti. 666 00:29:35,163 --> 00:29:37,630 Imma meta ma finger tiegħi tieqaf tagħmel xejn affattu? 667 00:29:37,630 --> 00:29:40,095 Hekk kif liema linja ta 'kicks kodifika fil? 668 00:29:40,095 --> 00:29:40,970 UDJENZA: [inaudible] 669 00:29:40,970 --> 00:29:43,060 DAVID J. Malan: Jekk il-punt waqt pointer mhuwiex ugwali għal nulla. 670 00:29:43,060 --> 00:29:44,900 F'xi punt finger tal tiegħi ser tkun tipponta lejn null 671 00:29:44,900 --> 00:29:47,070 u jien ser tirrealizza dak l-aħħar ta 'din il-lista. 672 00:29:47,070 --> 00:29:48,910 Issa, dan huwa ftit jimteddu abjad għas-sempliċità. 673 00:29:48,910 --> 00:29:51,580 Jirriżulta li anke jekk aħna biss tgħallmu dan dot notazzjoni 674 00:29:51,580 --> 00:29:55,220 għal strutturi, pointer mhix Struct. 675 00:29:55,220 --> 00:29:56,580 PTR huwa dak? 676 00:29:56,580 --> 00:29:58,350 Just biex tkun aktar nitpicky. 677 00:29:58,350 --> 00:29:59,720 678 00:29:59,720 --> 00:30:01,360 Huwa pointer għal node. 679 00:30:01,360 --> 00:30:03,120 Mhuwiex node innifsu. 680 00:30:03,120 --> 00:30:06,650 Jekk I kellu l-ebda stilla hawn, pointer absolutely-- huwa node. 681 00:30:06,650 --> 00:30:08,650 Dan huwa bħal wieħed ġimgħa dikjarazzjoni ta 'varjabbli, 682 00:30:08,650 --> 00:30:10,120 anke jekk il-kelma "node" huwa ġdid. 683 00:30:10,120 --> 00:30:13,860 >> Imma hekk kif aħna jintroduċu star, huwa issa pointer għal node. 684 00:30:13,860 --> 00:30:17,960 U sfortunatament inti ma tistax tuża l-dot notazzjoni għal pointer. 685 00:30:17,960 --> 00:30:21,070 Int għandek tuża l-vleġġa notazzjoni, li, impressjonanti, 686 00:30:21,070 --> 00:30:23,470 hija l-ewwel darba xi biċċa tal sintassi jistenna intuwittivi. 687 00:30:23,470 --> 00:30:25,245 Dan litteralment qisu vleġġa. 688 00:30:25,245 --> 00:30:26,370 U hekk li l-ħaġa tajba. 689 00:30:26,370 --> 00:30:28,995 U 'l isfel hawn litteralment Dehra vleġġa. 690 00:30:28,995 --> 00:30:31,870 So I think dak l-la-- I ma think jien over-tikkommetti here-- I 691 00:30:31,870 --> 00:30:34,120 jaħsbu li huwa l-aħħar biċċa ġdida tal sintassi aħna qed tmur biex tara. 692 00:30:34,120 --> 00:30:36,500 U Thankfully, huwa tabilħaqq ftit aktar intuwittivi. 693 00:30:36,500 --> 00:30:40,090 >> Issa, għal dawk minnkom li jista 'jippreferi l-mod qodma, 694 00:30:40,090 --> 00:30:42,550 inti xorta tista 'tuża l-dot notazzjoni. 695 00:30:42,550 --> 00:30:45,380 Imma kif kull nhar it-Tnejn konverżazzjoni, aħna l-ewwel 696 00:30:45,380 --> 00:30:50,530 bżonn li jmorru hemm, tmur f'dak jindirizzaw, u mbagħad ikollhom aċċess l-qasam. 697 00:30:50,530 --> 00:30:51,897 Allura dan huwa wkoll korrett. 698 00:30:51,897 --> 00:30:53,730 U franchement, dan huwa ftit aktar pedantic. 699 00:30:53,730 --> 00:30:56,530 Inti litteralment qal, dereference l-pointer u jmorru hemm. 700 00:30:56,530 --> 00:30:59,320 Imbagħad grab .n, il-qasam imsejħa n. 701 00:30:59,320 --> 00:31:01,370 Iżda franchement, ebda wieħed irid tip jew taqra dan. 702 00:31:01,370 --> 00:31:03,620 U hekk id-dinja ivvintat in-notazzjoni vleġġa, li 703 00:31:03,620 --> 00:31:06,980 hija ekwivalenti, identika, huwa biss zokkor sintattika. 704 00:31:06,980 --> 00:31:10,570 Allura mod fancy ta 'tgħid dan jistenna aħjar, jew jistenna aktar sempliċi. 705 00:31:10,570 --> 00:31:12,296 >> Allura issa jien ser tagħmel ħaġa waħda oħra. 706 00:31:12,296 --> 00:31:15,420 Jien se ngħid "break" darba stajt sabuha so I ma jżommux tfittex għaliha. 707 00:31:15,420 --> 00:31:17,620 Iżda dan huwa l-GIST ta 'funzjoni ta' tfittxija. 708 00:31:17,620 --> 00:31:21,710 Iżda huwa ħafna aktar faċli, fil- aħħar, ma jimxu permezz tal-kodiċi. 709 00:31:21,710 --> 00:31:25,570 Dan huwa tabilħaqq l-implimentazzjoni formali ta 'tfittxija fil-kodiċi ta' distribuzzjoni tal-lum. 710 00:31:25,570 --> 00:31:30,530 I DARE ngħid li daħħal mhix partikolarment gost li jimxu permezz 711 00:31:30,530 --> 00:31:33,180 viżwalment, u lanqas ma hija tħassar, anke għalkemm fl-aħħar tal-ġurnata 712 00:31:33,180 --> 00:31:35,460 huma jsarrafx biss fl pjuttost heuristics sempliċi. 713 00:31:35,460 --> 00:31:36,330 >> Mela ejja tagħmel dan. 714 00:31:36,330 --> 00:31:39,250 Jekk inti ser Humer lili hawn, jien ma ġġib mazz ta 'blalen istress. 715 00:31:39,250 --> 00:31:40,620 I miġjuba mazz ta 'numri. 716 00:31:40,620 --> 00:31:46,562 U nistgħu tikseb biss ftit voluntiera biex jirrappreżentaw 9, 17, 20, 22, 29, u 34? 717 00:31:46,562 --> 00:31:48,270 Allura essenzjalment kulħadd li hawnhekk illum. 718 00:31:48,270 --> 00:31:50,170 719 00:31:50,170 --> 00:31:52,760 Dan kien wieħed, tnejn, tlieta, erba ', ħames, sitt persuni. 720 00:31:52,760 --> 00:31:55,740 U stajt ġew mitluba biex go-- tara, l-ebda wieħed fil-dahar tqajjem idejn tagħhom. 721 00:31:55,740 --> 00:32:01,910 OK, wieħed, tnejn, tlieta, erba ', five-- let me tagħbija balance-- sitta. 722 00:32:01,910 --> 00:32:03,051 OK, inti sitta come fuq up. 723 00:32:03,051 --> 00:32:04,050 Aħna ser bżonn nies oħra. 724 00:32:04,050 --> 00:32:05,460 Aħna miġjuba blalen stress żejjed. 725 00:32:05,460 --> 00:32:08,200 U jekk inti tista ', għall- ftit mument, linja 726 00:32:08,200 --> 00:32:10,490 yourselves up biss bħal din l-istampa hawn. 727 00:32:10,490 --> 00:32:15,200 728 00:32:15,200 --> 00:32:15,959 >> Kull dritt. 729 00:32:15,959 --> 00:32:17,125 Ejja naraw, x'hemm isem tiegħek? 730 00:32:17,125 --> 00:32:17,550 >> UDJENZA: Andrew. 731 00:32:17,550 --> 00:32:18,800 >> DAVID J. Malan: Andrew, inti numru 9. 732 00:32:18,800 --> 00:32:19,540 Nizza li jissodisfaw inti. 733 00:32:19,540 --> 00:32:20,400 Hawnhekk inti tmur. 734 00:32:20,400 --> 00:32:21,593 735 00:32:21,593 --> 00:32:22,176 UDJENZA: Jen. 736 00:32:22,176 --> 00:32:22,662 DAVID J. Malan: Jen. 737 00:32:22,662 --> 00:32:23,162 David. 738 00:32:23,162 --> 00:32:23,765 Numru 17. 739 00:32:23,765 --> 00:32:24,950 740 00:32:24,950 --> 00:32:25,450 Iva? 741 00:32:25,450 --> 00:32:26,400 >> UDJENZA: Jien Julia. 742 00:32:26,400 --> 00:32:26,980 >> DAVID J. Malan: Julia, David. 743 00:32:26,980 --> 00:32:27,545 Numru 20. 744 00:32:27,545 --> 00:32:28,507 745 00:32:28,507 --> 00:32:29,340 UDJENZA: Christian. 746 00:32:29,340 --> 00:32:30,715 DAVID J. Malan: Christian, David. 747 00:32:30,715 --> 00:32:31,541 Numru 22. 748 00:32:31,541 --> 00:32:32,040 U? 749 00:32:32,040 --> 00:32:32,649 >> UDJENZA: JP. 750 00:32:32,649 --> 00:32:33,440 DAVID J. Malan: JP. 751 00:32:33,440 --> 00:32:34,880 Numru 29. 752 00:32:34,880 --> 00:32:37,080 Allura aqbad u jiksbu in-- Uh oh. 753 00:32:37,080 --> 00:32:38,486 754 00:32:38,486 --> 00:32:38,985 Uh oh. 755 00:32:38,985 --> 00:32:39,650 756 00:32:39,650 --> 00:32:40,150 Standby. 757 00:32:40,150 --> 00:32:41,360 758 00:32:41,360 --> 00:32:42,390 20. 759 00:32:42,390 --> 00:32:43,682 Ħadd ma jkollu markatur? 760 00:32:43,682 --> 00:32:44,890 UDJENZA: Stajt ltqajna Sharpie. 761 00:32:44,890 --> 00:32:45,660 DAVID J. Malan: You ltqajna Sharpie? 762 00:32:45,660 --> 00:32:46,159 OK. 763 00:32:46,159 --> 00:32:47,577 764 00:32:47,577 --> 00:32:49,160 U ħadd ma jkollu biċċa karta? 765 00:32:49,160 --> 00:32:51,562 766 00:32:51,562 --> 00:32:52,270 Salv l-lecture. 767 00:32:52,270 --> 00:32:53,810 768 00:32:53,810 --> 00:32:55,362 Come fuq. 769 00:32:55,362 --> 00:32:56,320 UDJENZA: Imxejna ltqajna. 770 00:32:56,320 --> 00:32:57,600 DAVID J. Malan: Aħna ltqajna? 771 00:32:57,600 --> 00:32:58,577 Kull dritt, grazie. 772 00:32:58,577 --> 00:33:01,380 773 00:33:01,380 --> 00:33:02,520 Here we go. 774 00:33:02,520 --> 00:33:03,582 Kien dan mill inti? 775 00:33:03,582 --> 00:33:04,540 Inti biss salvati l-ġurnata. 776 00:33:04,540 --> 00:33:05,670 777 00:33:05,670 --> 00:33:07,220 Allura 29. 778 00:33:07,220 --> 00:33:10,510 779 00:33:10,510 --> 00:33:11,110 Kull dritt. 780 00:33:11,110 --> 00:33:13,360 781 00:33:13,360 --> 00:33:14,890 I misspelled 29, iżda OK. 782 00:33:14,890 --> 00:33:15,720 Jimxi 'l quddiem. 783 00:33:15,720 --> 00:33:18,114 Kull dritt, I ser jagħtuk pinna tiegħek lura mumentarjament. 784 00:33:18,114 --> 00:33:19,280 Allura aħna għandna dawn folks hawn. 785 00:33:19,280 --> 00:33:20,330 Ejja jkollhom waħda oħra. 786 00:33:20,330 --> 00:33:23,750 Gabe, do inti tixtieq li jkollha l-ewwel element hawn? 787 00:33:23,750 --> 00:33:25,705 Aħna ser bżonn li inti punt lejn dawn folks multa. 788 00:33:25,705 --> 00:33:26,930 789 00:33:26,930 --> 00:33:31,030 Allura 9, 17, 20, 22, sort 29, u mbagħad 34. 790 00:33:31,030 --> 00:33:32,160 791 00:33:32,160 --> 00:33:33,325 Did we jitilfu xi ħadd? 792 00:33:33,325 --> 00:33:33,950 I do jkollhom 34. 793 00:33:33,950 --> 00:33:36,730 Fejn did-- OK, li jixtieq li jkun 34? 794 00:33:36,730 --> 00:33:37,605 OK, come fuq up, 34. 795 00:33:37,605 --> 00:33:39,280 796 00:33:39,280 --> 00:33:41,220 Kull dritt, dan se jkun ukoll jiswa l-quċċata. 797 00:33:41,220 --> 00:33:41,550 X'hemm isem tiegħek? 798 00:33:41,550 --> 00:33:42,040 >> UDJENZA: Peter. 799 00:33:42,040 --> 00:33:43,456 >> DAVID J. Malan: Peter, come fuq up. 800 00:33:43,456 --> 00:33:46,810 Kull dritt, hekk Heres mazz sħiħ ta 'nodes. 801 00:33:46,810 --> 00:33:49,060 Kull wieħed inti guys jirrappreżenta waħda minn dawn rettangoli. 802 00:33:49,060 --> 00:33:51,930 U Gabe, il-ftit fard bniedem out, tirrappreżenta l-ewwel. 803 00:33:51,930 --> 00:33:54,850 Allura pointer tiegħu hija ftit iżgħar fuq l-iskrin milli kulħadd. 804 00:33:54,850 --> 00:33:58,120 U f'dan il-każ, kull waħda minn tiegħek xellug idejn se jew punt isfel, 805 00:33:58,120 --> 00:34:01,085 li b'hekk jirrappreżentaw null, hekk biss l-assenza ta 'pointer, 806 00:34:01,085 --> 00:34:03,210 jew li għaddej biex jiġu tipponta fi node li jmiss lilek. 807 00:34:03,210 --> 00:34:05,440 >> Allura issa dritt jekk inti adorn yourselves bħall-istampa 808 00:34:05,440 --> 00:34:07,585 hawn, imorru quddiem u l-punt fuq xulxin, ma Gabe 809 00:34:07,585 --> 00:34:11,030 b'mod partikolari tipponta lejn numru 9 li jirrappreżentaw il-lista. 810 00:34:11,030 --> 00:34:14,050 OK, u n-numru 34, naħa tax-xellug tiegħek għandhom biss jiġu tipponta lejn l-art. 811 00:34:14,050 --> 00:34:15,750 >> OK, għalhekk dan huwa l-lista marbuta. 812 00:34:15,750 --> 00:34:17,580 Allura dan huwa l-xenarju in kwistjoni. 813 00:34:17,580 --> 00:34:20,210 U fil-fatt, dan huwa rappreżentattiv ta 'klassi ta' problemi 814 00:34:20,210 --> 00:34:21,929 li inti tista 'tipprova biex isolvu bil-kodiċi. 815 00:34:21,929 --> 00:34:25,020 Inti tixtieq li finalment daħħal element ġdid fil-lista. 816 00:34:25,020 --> 00:34:27,494 F'dan il-każ, aħna qed tmur biex ipprova ddaħħal in-numru 55. 817 00:34:27,494 --> 00:34:28,500 818 00:34:28,500 --> 00:34:30,860 Iżda hemm għaddej li jkun każijiet differenti li jikkunsidraw. 819 00:34:30,860 --> 00:34:34,409 U fil-fatt, dan se jkun wieħed tal-istampa kbar takeaways hawnhekk, hija, 820 00:34:34,409 --> 00:34:35,659 liema huma l-każijiet differenti. 821 00:34:35,659 --> 00:34:39,120 X'inhuma l-kundizzjonijiet differenti jekk jew fergħat dak il-programm tiegħek jista 'jkollhom? 822 00:34:39,120 --> 00:34:42,024 >> Ukoll, in-numru inti qed tipprova daħħal, li nafu issa li tkun 55, 823 00:34:42,024 --> 00:34:44,650 imma jekk inti ma taf bil-quddiem, I daresay 824 00:34:44,650 --> 00:34:47,840 taqa 'mill-inqas tliet sitwazzjonijiet possibbli. 825 00:34:47,840 --> 00:34:49,717 Fejn jista element ġdid tkun? 826 00:34:49,717 --> 00:34:51,050 UDJENZA: U l-aħħar jew nofs. 827 00:34:51,050 --> 00:34:54,150 DAVID J. Malan: Fl-aħħar, fil- nofs, jew fil-bidu. 828 00:34:54,150 --> 00:34:56,650 So I jallegaw hemm mill-inqas tliet problemi għandna bżonn biex isolvu. 829 00:34:56,650 --> 00:34:58,691 Ejja jagħżlu x'hemm forsi forsi l-aktar sempliċi 830 00:34:58,691 --> 00:35:01,090 wieħed, fejn l-element il-ġdid tappartjeni fil-bidu. 831 00:35:01,090 --> 00:35:04,040 So jien ser ikollhom kodiċi pjuttost bħal tiftix, li I biss kiteb. 832 00:35:04,040 --> 00:35:07,670 U jien ser ikollhom PTR, li I ser jirrappreżentaw hawn ma finger tiegħi, 833 00:35:07,670 --> 00:35:08,370 bħas-soltu. 834 00:35:08,370 --> 00:35:12,430 >> U ftakar, liema valur aħna ma initialize PTR li? 835 00:35:12,430 --> 00:35:15,300 Allura aħna initialized li nulla inizjalment. 836 00:35:15,300 --> 00:35:16,410 837 00:35:16,410 --> 00:35:19,770 Imma allura dak ma nagħmlu ladarba aħna kienu ġewwa funzjoni ta 'tfittxija tagħna? 838 00:35:19,770 --> 00:35:20,940 839 00:35:20,940 --> 00:35:24,870 Waqqafna din ugwali għal ewwel, li ma jfissirx tagħmel dan. 840 00:35:24,870 --> 00:35:25,890 841 00:35:25,890 --> 00:35:30,570 Jekk I sett PTR ugwali għal ewwel, liema Għandu naħa tiegħi verament tkun tipponta lejn? 842 00:35:30,570 --> 00:35:31,070 Dritt. 843 00:35:31,070 --> 00:35:33,290 Mela jekk Gabe u I huma għaddejjin li jkun valuri ugwali hawn, 844 00:35:33,290 --> 00:35:34,760 għandna bżonn li kemm punt numru 9. 845 00:35:34,760 --> 00:35:36,420 >> Allura dan kien il-bidu ta 'l-istorja tagħna. 846 00:35:36,420 --> 00:35:38,700 U issa dan huwa biss sempliċi, anki jekk l-sintassi huwa ġdid. 847 00:35:38,700 --> 00:35:40,580 Kunċettwalment dan huwa biss tfittxija lineari. 848 00:35:40,580 --> 00:35:42,750 Huwa 55 ugwali għal 9? 849 00:35:42,750 --> 00:35:45,559 Jew pjuttost, ejja ngħidu anqas minn 9. 850 00:35:45,559 --> 00:35:47,600 Minħabba jien tipprova insemmu fejn jitqiegħdu 55. 851 00:35:47,600 --> 00:35:51,270 Inqas minn 9, inqas minn 17, inqas minn 20, inqas minn 22, inqas minn 29, 852 00:35:51,270 --> 00:35:52,510 inqas minn 34, l-ebda. 853 00:35:52,510 --> 00:35:55,080 Allura issa aħna qed fil-każ wieħed ta 'mill-inqas tlieta. 854 00:35:55,080 --> 00:35:59,910 >> Jekk irrid daħħal 55 hawn fuq, liema linji ta 'kodiċi ħtieġa li tikseb esegwiti? 855 00:35:59,910 --> 00:36:01,890 Kif ma din l-istampa ta ' bnedmin bżonn għall-bidla? 856 00:36:01,890 --> 00:36:03,181 What do I do mal-xellug tiegħi? 857 00:36:03,181 --> 00:36:04,530 858 00:36:04,530 --> 00:36:07,360 Dan għandu jkun null inizjalment, għaliex jien fl-aħħar tal-lista. 859 00:36:07,360 --> 00:36:09,318 U dak li għandu jiġri hawn ma 'Peter, kien dan? 860 00:36:09,318 --> 00:36:10,520 861 00:36:10,520 --> 00:36:12,430 Hu ovvjament se punt lili. 862 00:36:12,430 --> 00:36:15,580 So I jallegaw hemm mill-inqas żewġ linji tal-kodiċi fil-kodiċi tal-kampjun mill-lum 863 00:36:15,580 --> 00:36:18,570 li għaddej biex jimplimentaw din xenarju ta 'żżid 55 fil-denb. 864 00:36:18,570 --> 00:36:20,950 U jista I jkollhom xi ħadd hop up u biss jirrappreżentaw 55? 865 00:36:20,950 --> 00:36:22,200 Kull dritt, inti l-ġdid 55. 866 00:36:22,200 --> 00:36:23,580 867 00:36:23,580 --> 00:36:27,054 >> Allura issa dak li jekk il-li jmiss xenarju tidħol flimkien, 868 00:36:27,054 --> 00:36:29,720 u rridu li daħħal fil- bidu jew il-kap ta 'din il-lista? 869 00:36:29,720 --> 00:36:31,100 U x'hemm isem tiegħek, numru 55? 870 00:36:31,100 --> 00:36:31,420 >> UDJENZA: Jack. 871 00:36:31,420 --> 00:36:32,295 >> DAVID J. Malan: Jack? 872 00:36:32,295 --> 00:36:33,585 OK, sbieħ li jissodisfaw inti. 873 00:36:33,585 --> 00:36:34,210 Merħba abbord. 874 00:36:34,210 --> 00:36:36,640 Allura issa aħna qed tmur biex daħħal, jiġifieri, in-numru 5. 875 00:36:36,640 --> 00:36:39,840 Hawn il-tieni każ ta 'l- tlieta aħna ħarāet bil qabel. 876 00:36:39,840 --> 00:36:43,050 Mela jekk 5 jappartjeni fil-bidu, ejja ara kif insibu li out. 877 00:36:43,050 --> 00:36:46,310 I initialize PTR tiegħi pointer li numru 9 darb'oħra. 878 00:36:46,310 --> 00:36:49,140 And I realizzati, oh, 5 hija anqas minn 9. 879 00:36:49,140 --> 00:36:50,880 Allura jiffissaw din l-istampa għalina. 880 00:36:50,880 --> 00:36:54,820 Li f'idejha, ​​tal Gabe jew David or-- x'hemm isem numru 9 tal-? 881 00:36:54,820 --> 00:36:55,740 >> UDJENZA: Jen. 882 00:36:55,740 --> 00:36:58,406 >> DAVID J. Malan: hands-- Jen tal liema minn idejn tagħna bżonn għall-bidla? 883 00:36:58,406 --> 00:36:58,905 884 00:36:58,905 --> 00:37:00,970 OK, hekk Gabe punti fuq dak li issa? 885 00:37:00,970 --> 00:37:01,640 Fuq me. 886 00:37:01,640 --> 00:37:02,750 I am l-node ġdid. 887 00:37:02,750 --> 00:37:04,870 So I ser biss tip ta 'mossa hawn biex tara viżwalment. 888 00:37:04,870 --> 00:37:06,435 U sadanittant liema do I punt li? 889 00:37:06,435 --> 00:37:07,910 890 00:37:07,910 --> 00:37:09,020 Still fejn jien tipponta. 891 00:37:09,020 --> 00:37:10,000 Allura thats it. 892 00:37:10,000 --> 00:37:13,717 Hekk biss verament linja waħda ta 'jiffissa kodiċi din il-kwistjoni partikolari, jidher. 893 00:37:13,717 --> 00:37:14,800 Kull dritt, hekk li tajjeb. 894 00:37:14,800 --> 00:37:17,580 U jista 'xi ħadd tkun placeholder għal 5? 895 00:37:17,580 --> 00:37:18,080 Come fuq up. 896 00:37:18,080 --> 00:37:20,270 897 00:37:20,270 --> 00:37:21,320 Aħna inti ser tingħata ħin li jmiss. 898 00:37:21,320 --> 00:37:24,280 >> Kull dritt, hekk now-- u Bħala twarrib, l-ismijiet 899 00:37:24,280 --> 00:37:28,510 Jien ma tagħmel referenza espliċita dritt issa, pointer pred, pointer predeċessur 900 00:37:28,510 --> 00:37:31,260 u pointer ġdida, li l- biss l-ismijiet mogħtija 901 00:37:31,260 --> 00:37:35,280 fil-kodiċi tal-kampjun għall-pointers jew idejn tiegħi thats it-tip ta tipponta madwar. 902 00:37:35,280 --> 00:37:36,060 X'hemm isem tiegħek? 903 00:37:36,060 --> 00:37:36,700 >> UDJENZA: Christine. 904 00:37:36,700 --> 00:37:37,100 >> DAVID J. Malan: Christine. 905 00:37:37,100 --> 00:37:38,090 Merħba abbord. 906 00:37:38,090 --> 00:37:42,180 Kull dritt, hekk ejja jikkunsidraw issa xenarju ftit aktar annoying, 907 00:37:42,180 --> 00:37:46,350 li biha Irrid li daħħal xi ħaġa bħal 26 fis dan. 908 00:37:46,350 --> 00:37:47,090 20? 909 00:37:47,090 --> 00:37:47,590 What? 910 00:37:47,590 --> 00:37:50,510 Dawn are-- ħaġa tajba li għandna dan pinna. 911 00:37:50,510 --> 00:37:51,955 Kull dritt, 20. 912 00:37:51,955 --> 00:37:53,640 913 00:37:53,640 --> 00:37:57,570 Jekk xi ħadd jistgħu jiksbu ieħor biċċa ta ' karta lesta, biss fil case-- kollha dritt. 914 00:37:57,570 --> 00:37:58,370 Oh, interessanti. 915 00:37:58,370 --> 00:37:59,760 916 00:37:59,760 --> 00:38:02,390 Ukoll dan huwa eżempju ta 'bug lecture. 917 00:38:02,390 --> 00:38:03,894 OK hekk x'hemm isem tiegħek mill-ġdid? 918 00:38:03,894 --> 00:38:04,560 UDJENZA: Julia. 919 00:38:04,560 --> 00:38:07,559 DAVID J. Malan: Julia, inti tista pop out u nippretendu inti kienu qatt hemmhekk? 920 00:38:07,559 --> 00:38:09,040 OK, dan qatt ma ġara. 921 00:38:09,040 --> 00:38:09,680 Grazzi. 922 00:38:09,680 --> 00:38:12,180 Allura jissoponi irridu daħħal Julia fis din il-lista marbuta. 923 00:38:12,180 --> 00:38:13,780 Hija huwa n-numru 20. 924 00:38:13,780 --> 00:38:15,530 U naturalment hi ser jappartjenu fil- 925 00:38:15,530 --> 00:38:17,521 begin-- ma jurux fil xejn s'issa. 926 00:38:17,521 --> 00:38:20,020 Allura naħa tiegħek jista 'tip ta' jkun isfel null jew xi valur żibel. 927 00:38:20,020 --> 00:38:21,210 Ejja tgħid l-istorja ta 'malajr. 928 00:38:21,210 --> 00:38:22,980 Jien tipponta lejn numru 5 f'dan il-ħin. 929 00:38:22,980 --> 00:38:23,880 Imbagħad I check 9. 930 00:38:23,880 --> 00:38:25,130 Imbagħad I check 17. 931 00:38:25,130 --> 00:38:26,247 Imbagħad I check 22. 932 00:38:26,247 --> 00:38:27,650 933 00:38:27,650 --> 00:38:32,485 And I realizzata, ooh, Julia jeħtieġ li tmur qabel it-22. 934 00:38:32,485 --> 00:38:33,580 935 00:38:33,580 --> 00:38:34,660 Allura dak li jeħtieġ li jiġri? 936 00:38:34,660 --> 00:38:35,786 937 00:38:35,786 --> 00:38:36,910 Li f'idejha bżonn għall-bidla? 938 00:38:36,910 --> 00:38:38,360 Tal Julia, mini, or-- x'hemm isem tiegħek mill-ġdid? 939 00:38:38,360 --> 00:38:39,230 >> UDJENZA: Christian. 940 00:38:39,230 --> 00:38:40,060 >> DAVID J. Malan: Christian jew? 941 00:38:40,060 --> 00:38:40,560 >> UDJENZA: Andy. 942 00:38:40,560 --> 00:38:40,905 >> DAVID J. Malan: Andy. 943 00:38:40,905 --> 00:38:41,654 Christian jew Andy? 944 00:38:41,654 --> 00:38:44,280 945 00:38:44,280 --> 00:38:45,690 Andy jeħtieġ li jiġi fi? 946 00:38:45,690 --> 00:38:46,780 947 00:38:46,780 --> 00:38:47,341 Julia. 948 00:38:47,341 --> 00:38:47,840 Kull dritt. 949 00:38:47,840 --> 00:38:48,960 Allura Andy, tridu punt fuq Julia? 950 00:38:48,960 --> 00:38:50,120 Iżda stenna minuta. 951 00:38:50,120 --> 00:38:53,260 Fl-istorja s'issa, Jien il-tip ta 'wieħed 952 00:38:53,260 --> 00:38:56,800 responsabbli, fis-sens li pointer huwa l-ħaġa li l- 953 00:38:56,800 --> 00:38:57,850 jiċċaqilqu permezz tal-lista. 954 00:38:57,850 --> 00:39:00,800 Aħna jista 'jkollhom isem għal Andy, iżda hemm ebda varjabbli imsejħa Andy. 955 00:39:00,800 --> 00:39:04,320 L-unika varjabbli oħra li għandna huwa ewwel, li s irrappreżentata minn Gabe. 956 00:39:04,320 --> 00:39:07,690 >> Allura dan huwa attwalment għaliex b'hekk S'issa aħna ve mhux meħtieġ dan. 957 00:39:07,690 --> 00:39:10,846 Imma issa fuq l-iskrin hemm isemmu għal darb'oħra ta 'pointer pred. 958 00:39:10,846 --> 00:39:11,970 So let me jkun aktar espliċitu. 959 00:39:11,970 --> 00:39:14,820 Jekk dan huwa pointer, kelli aħjar jiksbu ftit aktar intelliġenti 960 00:39:14,820 --> 00:39:15,950 dwar iterazzjoni tiegħi. 961 00:39:15,950 --> 00:39:19,580 Jekk inti ma mind għaddejjin tiegħi permezz ta 'hawn darb'oħra, tipponta hawn, tipponta hawn. 962 00:39:19,580 --> 00:39:22,500 Imma let me jkollhom pointer pred, predeċessur pointer, li l- 963 00:39:22,500 --> 00:39:24,740 tip ta tipponta lejn l- element I kien biss fil. 964 00:39:24,740 --> 00:39:27,330 Allura meta I go here, issa aġġornamenti naħa tax-xellug tiegħi. 965 00:39:27,330 --> 00:39:29,370 Meta mmur here aġġornamenti tiegħi tax-xellug. 966 00:39:29,370 --> 00:39:33,090 U issa għandi mhux biss pointer biex l-element li tmur wara Julia, 967 00:39:33,090 --> 00:39:36,300 I għad għandhom pointer biex Andy, l-element qabel. 968 00:39:36,300 --> 00:39:39,430 Allura inti għandek aċċess, essenzjalment, breadcrumbs, jekk inti se, 969 00:39:39,430 --> 00:39:41,500 kollha tal-pointers meħtieġa. 970 00:39:41,500 --> 00:39:43,710 >> Mela jekk jien tipponta lejn Andy u jien wkoll tipponta 971 00:39:43,710 --> 00:39:47,105 fil Christian, li f'idejha issa għandu jiġi osservat x'imkien ieħor? 972 00:39:47,105 --> 00:39:48,770 973 00:39:48,770 --> 00:39:51,960 Allura Andy issa jistgħu punt fuq Julia. 974 00:39:51,960 --> 00:39:54,460 Julia issa tista 'punt fuq Christian. 975 00:39:54,460 --> 00:39:56,950 Minħabba li hija tista 'kopja tiegħi pointer lemin tal. 976 00:39:56,950 --> 00:40:00,044 U li effettivament tpoġġik lura fis dan il-post hawn. 977 00:40:00,044 --> 00:40:02,460 Għalhekk fil-qosor, anke jekk dan qed tieħu us tip ta 'dejjem 978 00:40:02,460 --> 00:40:04,510 li attwalment jaġġorna marbuta lista, tirrealizza 979 00:40:04,510 --> 00:40:06,580 li l-operazzjonijiet huma relattivament sempliċi. 980 00:40:06,580 --> 00:40:10,030 Huwa ta 'wieħed, tnejn, tlieta linji ta 'kodiċi finalment. 981 00:40:10,030 --> 00:40:12,780 Iżda imgeżwer madwar dawk linji ta 'kodiċi preżumibilment 982 00:40:12,780 --> 00:40:16,350 huwa daqsxejn ta 'loġika li effettivament tqajjem il-mistoqsija, fejn aħna? 983 00:40:16,350 --> 00:40:18,970 Are we fil-bidu, l-nofs, jew l-aħħar? 984 00:40:18,970 --> 00:40:21,890 >> Issa, hemm ċertament xi oħra operazzjonijiet nistgħu jimplimentaw. 985 00:40:21,890 --> 00:40:24,880 U dawn l-istampi hawn biss juru dak li aħna biss għamlet mal-bnedmin. 986 00:40:24,880 --> 00:40:26,080 Xi ngħidu dwar it-tneħħija? 987 00:40:26,080 --> 00:40:30,650 Jekk irrid, per eżempju, neħħi l-għadd 34 jew 55, 988 00:40:30,650 --> 00:40:34,680 I jista 'jkollhom l-istess tip ta' kodiċi, imma jien ser bżonn waħda jew żewġ passi. 989 00:40:34,680 --> 00:40:36,110 Minħabba x'hemm ġdid? 990 00:40:36,110 --> 00:40:40,460 Jekk I neħħi xi ħadd fl-aħħar, bħal numru 55 u mbagħad 34, 991 00:40:40,460 --> 00:40:42,995 dak għandha wkoll tinbidel hekk kif nista 'nagħmlu? 992 00:40:42,995 --> 00:40:44,870 Għandi biex ma evict-- x'hemm isem tiegħek mill-ġdid? 993 00:40:44,870 --> 00:40:45,380 >> UDJENZA: Jack. 994 00:40:45,380 --> 00:40:46,255 >> DAVID J. Malan: Jack. 995 00:40:46,255 --> 00:40:49,770 Għandi biex mhux biss evict-- Jack ħielsa, hekk litteralment sejħa Jack b'xejn, jew għall-inqas 996 00:40:49,770 --> 00:40:53,530 l-pointer hemmhekk wisq, iżda issa x'għandu jinbidel ma 'Peter? 997 00:40:53,530 --> 00:40:55,510 Idejn Tiegħu aħjar tibda tipponta 'l isfel. 998 00:40:55,510 --> 00:40:59,300 Għaliex malli I call b'xejn fuq Jack, jekk Pietru għadu tipponta lejn Jack 999 00:40:59,300 --> 00:41:02,530 u jien għalhekk iżommu traversat il-lista u l-aċċess dan il-werrej, 1000 00:41:02,530 --> 00:41:05,650 li meta segmentazzjoni tagħna ħabib antik tort jista 'attwalment kick fil. 1001 00:41:05,650 --> 00:41:07,860 Għaliex aħna ħadthom tingħata l- memorja lura għall Jack. 1002 00:41:07,860 --> 00:41:10,760 >> Inti tista 'tissospendi hemm awkwardly għal ftit mument. 1003 00:41:10,760 --> 00:41:13,410 Għaliex għandna biss ftit operazzjonijiet finali li jikkunsidraw. 1004 00:41:13,410 --> 00:41:15,600 Tneħħi l-kap tal-lista, jew il-beginning-- u tal dan wieħed 1005 00:41:15,600 --> 00:41:16,349 ftit annoying. 1006 00:41:16,349 --> 00:41:19,640 Għaliex aħna għandek tkun taf li Gabe huwa tip ta 'speċjali f'dan il-programm. 1007 00:41:19,640 --> 00:41:21,440 Minħabba fil-fatt, huwa għandu pointer tiegħu stess. 1008 00:41:21,440 --> 00:41:24,860 Hu mhux biss qed mfakkar fil, kif huwa kważi kulħadd hawn. 1009 00:41:24,860 --> 00:41:28,112 >> Allura meta l-kap tal-lista hija jitneħħew, li f'idejha bżonn għall-bidla issa? 1010 00:41:28,112 --> 00:41:29,070 X'hemm isem tiegħek mill-ġdid? 1011 00:41:29,070 --> 00:41:29,450 >> UDJENZA: Christine. 1012 00:41:29,450 --> 00:41:31,408 >> DAVID J. Malan: Ninsab orribbli fil ismijiet, apparentament. 1013 00:41:31,408 --> 00:41:34,011 Allura Christine u Gabe, li f'idejha bżonn għall-bidla 1014 00:41:34,011 --> 00:41:36,510 meta aħna tipprova tneħħi Christine, numru 5, mill-istampa? 1015 00:41:36,510 --> 00:41:37,550 1016 00:41:37,550 --> 00:41:38,820 OK, so ejja do Gabe. 1017 00:41:38,820 --> 00:41:40,950 Gabe għaddej għall-punt, preżumibbilment, f'numru 9. 1018 00:41:40,950 --> 00:41:42,230 1019 00:41:42,230 --> 00:41:44,642 Imma dak li jmiss għandu jiġri? 1020 00:41:44,642 --> 00:41:46,600 UDJENZA: Christine għandhom jkun null [inaudible]. 1021 00:41:46,600 --> 00:41:50,244 DAVID J. Malan: OK, għandna probabbilment make-- Smajt "null" x'imkien. 1022 00:41:50,244 --> 00:41:51,410 UDJENZA: Null u liberu tagħha. 1023 00:41:51,410 --> 00:41:51,855 DAVID J. Malan: NULL liema? 1024 00:41:51,855 --> 00:41:53,074 UDJENZA: Null u liberu tagħha. 1025 00:41:53,074 --> 00:41:54,490 DAVID J. Malan: Null u liberu tagħha. 1026 00:41:54,490 --> 00:41:55,422 Allura dan huwa faċli ħafna. 1027 00:41:55,422 --> 00:41:58,380 U huwa perfett li int issa sort tal permanenti hemmhekk, ma jappartienux. 1028 00:41:58,380 --> 00:42:00,430 Għaliex inti kont qed diżakkoppjat mill-lista. 1029 00:42:00,430 --> 00:42:02,820 You ħadthom effettivament ġiet orfni mil-lista. 1030 00:42:02,820 --> 00:42:07,770 U hekk kellna aħjar sejħa b'xejn issa fuq Christine li jagħti l-memorja lura. 1031 00:42:07,770 --> 00:42:10,240 Inkella kull darba we tħassar node mil-lista 1032 00:42:10,240 --> 00:42:14,230 aħna jista 'jkun qed jagħmel il-lista iqsar, iżda mhux attwalment qed jonqos 1033 00:42:14,230 --> 00:42:15,096 id-daqs fil-memorja. 1034 00:42:15,096 --> 00:42:17,720 U hekk jekk inżommu żżid u żżid, żżid affarijiet mal-lista, 1035 00:42:17,720 --> 00:42:19,280 kompjuter tiegħi tista 'tikseb aktar bil-mod u bil-mod u bil-mod, 1036 00:42:19,280 --> 00:42:21,740 għaliex jien baqgħalna ta ' memorja, anki jekk jien ma attwalment 1037 00:42:21,740 --> 00:42:25,580 użu bytes Christine ta tal-memorja aktar. 1038 00:42:25,580 --> 00:42:28,500 >> Għalhekk fl-aħħar hemm oħrajn xenarji, ta 'tneħħija course-- 1039 00:42:28,500 --> 00:42:30,640 fin-nofs, it-tneħħija fl-aħħar, kif rajna. 1040 00:42:30,640 --> 00:42:32,348 Iżda l-aktar interessanti isfida issa hija 1041 00:42:32,348 --> 00:42:34,770 ser tkun li jikkunsidraw eżattament dak il-ħin tal-ġiri hu. 1042 00:42:34,770 --> 00:42:36,640 Allura mhux biss inti tista 'żżomm tiegħek biċċiet tal-karti, jekk, Gabe, 1043 00:42:36,640 --> 00:42:38,640 inti ma mind tagħti kulħadd ballun stress. 1044 00:42:38,640 --> 00:42:42,100 Grazzi tant għall-lista marbuta tagħna ta 'voluntiera hawn, jekk inti tista'. 1045 00:42:42,100 --> 00:42:45,320 >> [Applause] 1046 00:42:45,320 --> 00:42:46,700 >> DAVID J. Malan: Kull dritt. 1047 00:42:46,700 --> 00:42:51,110 Allura koppja ta analitika mistoqsijiet Imbagħad, jekk I jistgħu. 1048 00:42:51,110 --> 00:42:59,670 Rajna dan notazzjoni qabel, O kbar u omega, limiti ta 'fuq 1049 00:42:59,670 --> 00:43:02,520 u limiti aktar baxxi fuq il- żmien ta 'xi algoritmu running. 1050 00:43:02,520 --> 00:43:04,950 Mela ejja jikkunsidraw biss koppja ta 'mistoqsijiet. 1051 00:43:04,950 --> 00:43:07,090 >> Wieħed, u aħna qal li qabel, x'inhu l-running 1052 00:43:07,090 --> 00:43:10,647 ħin tat-tfittxija għal lista f'termini ta 'O big? 1053 00:43:10,647 --> 00:43:13,480 X'hemm marbuta massimu fuq it-tmexxija żmien ta tiftix lista marbuta 1054 00:43:13,480 --> 00:43:16,340 kif implimentati mill-voluntiera tagħna hawn? 1055 00:43:16,340 --> 00:43:17,820 Huwa O kbir ta 'n, lineari. 1056 00:43:17,820 --> 00:43:20,630 Minħabba li fl-agħar każ, l-element, bħal 55, 1057 00:43:20,630 --> 00:43:23,830 aħna tista 'tfittex għal jista' jkun fejn Jack kien, it-triq kollha fl-aħħar. 1058 00:43:23,830 --> 00:43:28,250 U sfortunatament, b'differenza firxa aħna ma tistax tikseb fancy dan iż-żmien. 1059 00:43:28,250 --> 00:43:31,820 Anke jekk kollha ta 'bnedmin tagħna kienu magħżula minn elementi żgħar, 5, 1060 00:43:31,820 --> 00:43:35,900 it-triq kollha sa l-element akbar, 55, li normalment ħaġa tajba. 1061 00:43:35,900 --> 00:43:38,815 Imma dak ma dik is-suppożizzjoni m'għadhomx inessu tagħmel? 1062 00:43:38,815 --> 00:43:39,775 1063 00:43:39,775 --> 00:43:40,650 UDJENZA: [inaudible] 1064 00:43:40,650 --> 00:43:40,920 DAVID J. Malan: Say mill-ġdid? 1065 00:43:40,920 --> 00:43:41,800 UDJENZA: aċċess Random. 1066 00:43:41,800 --> 00:43:43,049 DAVID J. Malan: aċċess Random. 1067 00:43:43,049 --> 00:43:46,330 U mbagħad dan ifisser nistgħu ebda jibqgħux jużaw żerijiet dgħajfa, intwizzjoni, 1068 00:43:46,330 --> 00:43:49,365 u obviousness ta 'użu binarja tfittxija u jaqsmu u conquer. 1069 00:43:49,365 --> 00:43:51,240 Minħabba li anke jekk aħna bnedmin jistgħu ovvjament 1070 00:43:51,240 --> 00:43:54,610 tara li Andy jew Christian kienu bejn wieħed u ieħor fin-nofs tal-lista, 1071 00:43:54,610 --> 00:43:57,670 aħna biss nafu li bħala kompjuter permezz ta 'xkumar tal-lista 1072 00:43:57,670 --> 00:43:59,029 mill-bidu nett. 1073 00:43:59,029 --> 00:44:00,570 Allura aħna ħadthom rrinunzjaw li l-aċċess bl-addoċċ. 1074 00:44:00,570 --> 00:44:04,380 >> O Allura kbira ta 'n issa Hija l-ikona marbuta fil-ħin tfittxija tagħna. 1075 00:44:04,380 --> 00:44:07,920 What about omega tat-tfittxija tagħna? 1076 00:44:07,920 --> 00:44:11,535 X'hemm-aktar baxx illegat dwar it-tiftix għal xi numru f'din il-lista? 1077 00:44:11,535 --> 00:44:12,410 UDJENZA: [inaudible] 1078 00:44:12,410 --> 00:44:13,040 DAVID J. Malan: Say mill-ġdid? 1079 00:44:13,040 --> 00:44:13,420 UDJENZA: One. 1080 00:44:13,420 --> 00:44:13,800 DAVID J. Malan: One. 1081 00:44:13,800 --> 00:44:14,760 Allura waqt li kostanti. 1082 00:44:14,760 --> 00:44:17,020 Fl-aħjar każ, Christine hija tabilħaqq fil-bidu tal-lista. 1083 00:44:17,020 --> 00:44:19,020 U aħna qed tfittex numru 5, hekk sibna tagħha. 1084 00:44:19,020 --> 00:44:19,787 Allura l-ebda big deal. 1085 00:44:19,787 --> 00:44:22,370 Iżda hi ltqajna biex tkun fil- bidu tal-lista f'dan il-każ. 1086 00:44:22,370 --> 00:44:23,745 What about xi ħaġa bħal Ħassar? 1087 00:44:23,745 --> 00:44:24,717 1088 00:44:24,717 --> 00:44:26,300 X'jiġri jekk inti tixtieq li tħassar element? 1089 00:44:26,300 --> 00:44:29,200 X'hemm-illegat fuq u inferjuri fuq tħassir xi ħaġa minn marbuta 1090 00:44:29,200 --> 00:44:29,699 lista? 1091 00:44:29,699 --> 00:44:35,195 1092 00:44:35,195 --> 00:44:36,070 UDJENZA: [inaudible] 1093 00:44:36,070 --> 00:44:36,420 DAVID J. Malan: Say mill-ġdid? 1094 00:44:36,420 --> 00:44:37,067 UDJENZA: n. 1095 00:44:37,067 --> 00:44:38,900 DAVID J. Malan: n huwa tabilħaqq l-ogħla marbuta. 1096 00:44:38,900 --> 00:44:41,700 Minħabba li fl-agħar każ nippruvaw li tħassar Jack, bħal aħna biss għamlet. 1097 00:44:41,700 --> 00:44:43,050 Huwa tal-triq kollha fl-aħħar. 1098 00:44:43,050 --> 00:44:45,419 Iqarribna għal dejjem, jew n passi biex issib lilu. 1099 00:44:45,419 --> 00:44:46,460 Allura dak rbit għoli. 1100 00:44:46,460 --> 00:44:47,430 C'est lineari, żgur. 1101 00:44:47,430 --> 00:44:50,970 U l-aħjar każ running time, jew il-limiti aktar baxxi fil-każ aħjar 1102 00:44:50,970 --> 00:44:51,975 Ikun ħin kostanti. 1103 00:44:51,975 --> 00:44:54,600 Minħabba forsi nippruvaw li tħassar Christine, u aħna biss jiksbu xxurtjati 1104 00:44:54,600 --> 00:44:55,558 hi tal fil-bidu. 1105 00:44:55,558 --> 00:44:56,350 Issa stenna minuta. 1106 00:44:56,350 --> 00:44:59,370 Gabe kien ukoll fil-bidu, u aħna wkoll kellhom taġġorna Gabe. 1107 00:44:59,370 --> 00:45:01,150 Allura li ma kienx biss pass wieħed. 1108 00:45:01,150 --> 00:45:04,210 Allura huwa tabilħaqq kostanti time, fl-aħjar każ, 1109 00:45:04,210 --> 00:45:06,345 biex tneħħi l-element iżgħar? 1110 00:45:06,345 --> 00:45:07,360 1111 00:45:07,360 --> 00:45:10,960 Huwa, anki jekk jista 'jkun tnejn, tliet, jew saħansitra 100 linji ta 'kodiċi, 1112 00:45:10,960 --> 00:45:14,000 jekk huwa l-istess numru ta ' linji, mhux f'xi loop, 1113 00:45:14,000 --> 00:45:16,577 u indipendenti mid-daqs tal-lista, assolutament. 1114 00:45:16,577 --> 00:45:18,660 Tħassar l-element fil- il-bidu tal-lista, 1115 00:45:18,660 --> 00:45:21,940 anke jekk aħna jkollhom jittrattaw Gabe, għadu żmien kostanti. 1116 00:45:21,940 --> 00:45:24,220 >> Allura din tidher qisha pass enormi lura. 1117 00:45:24,220 --> 00:45:27,000 U dak ħela ta 'ħin jekk, fil-ġimgħa u ġimgħa 1118 00:45:27,000 --> 00:45:30,250 żero kellna mhux biss kodiċi pseudocode imma kodiċi attwali 1119 00:45:30,250 --> 00:45:35,780 biex jimplimentaw xi ħaġa li log bażi n, jew log, pjuttost, ta 'n, bażi 2, 1120 00:45:35,780 --> 00:45:37,150 f'termini ta 'ħin għat-tmexxija tagħha. 1121 00:45:37,150 --> 00:45:40,710 Allura għaliex l-Heck kieku rridu nibdew użu xi ħaġa bħal lista marbuta? 1122 00:45:40,710 --> 00:45:41,517 Yeah. 1123 00:45:41,517 --> 00:45:44,022 >> UDJENZA: Allura inti tista 'żżid Elementi għall-firxa. 1124 00:45:44,022 --> 00:45:46,230 DAVID J. Malan: Allura inti tista ' jiżdiedu elementi għall-firxa. 1125 00:45:46,230 --> 00:45:47,550 U dan ukoll huwa tematika. 1126 00:45:47,550 --> 00:45:49,740 U aħna ser tkompli tara dan, dan il-kummerċ off, ħafna 1127 00:45:49,740 --> 00:45:51,573 simili aħna stajt tidher trade-off mal sort jingħaqdu. 1128 00:45:51,573 --> 00:45:54,606 Aħna jista 'verament tħaffef tfittxija jew issortjar, pjuttost, 1129 00:45:54,606 --> 00:45:57,480 jekk nonfqu spazju daqsxejn aktar u jkollhom chunk addizzjonali ta 'memorja 1130 00:45:57,480 --> 00:45:58,760 jew firxa għall tip jingħaqdu. 1131 00:45:58,760 --> 00:46:01,270 Iżda aħna jonfqu aktar ispazju, imma aħna jiffranka ħin. 1132 00:46:01,270 --> 00:46:04,820 F'dan il-każ, aħna qed tagħti up ħin, iżda aħna qed 1133 00:46:04,820 --> 00:46:08,170 jiksbu flessibilità, dinamiżmu jekk inti se, 1134 00:46:08,170 --> 00:46:10,280 li huwa probabbilment karatteristika pożittiva. 1135 00:46:10,280 --> 00:46:11,520 >> Aħna wkoll qed infiq ispazju. 1136 00:46:11,520 --> 00:46:13,710 F'liema sens huwa marbut lista aktar għaljin 1137 00:46:13,710 --> 00:46:15,700 f'termini ta 'spazju minn firxa? 1138 00:46:15,700 --> 00:46:18,379 1139 00:46:18,379 --> 00:46:19,920 Fejn l-ispazju żejda li ġejjin minn? 1140 00:46:19,920 --> 00:46:20,460 Yeah? 1141 00:46:20,460 --> 00:46:21,800 >> UDJENZA: [inaudible] pointer. 1142 00:46:21,800 --> 00:46:23,310 >> DAVID J. Malan: Yeah, aħna ukoll għandek l-pointer. 1143 00:46:23,310 --> 00:46:25,560 Allura dan huwa minorly annoying f'dak m'għadhomx am 1144 00:46:25,560 --> 00:46:27,780 I ħażna biss int li jirrappreżentaw int. 1145 00:46:27,780 --> 00:46:30,990 Jien ħażna ta int u pointer, li huwa wkoll 32 bits. 1146 00:46:30,990 --> 00:46:33,470 So jien litteralment irduppjar l-ammont ta 'spazju involut. 1147 00:46:33,470 --> 00:46:36,040 Allura dak kompromess, iżda li fil-każ ta 'int. 1148 00:46:36,040 --> 00:46:39,580 Ejja ngħidu li int mhux ħażna int, iżda jissoponi kull wieħed minn dawn rettangoli 1149 00:46:39,580 --> 00:46:43,290 jew kull wieħed minn dawn il-bnedmin kien jirrappreżenta kelma, kelma Ingliża li 1150 00:46:43,290 --> 00:46:46,430 jista jkun ta 'ħames karattri, 10 karattri, forsi anke aktar. 1151 00:46:46,430 --> 00:46:49,940 Imbagħad żżid biss 32 bits aktar jista 'jkun inqas ta' big deal. 1152 00:46:49,940 --> 00:46:52,160 >> X'jiġri jekk kull wieħed mill-istudenti fil-dimostrazzjoni 1153 00:46:52,160 --> 00:46:55,107 kienu litteralment structs studenti li għandhom ismijiet u djar u forsi 1154 00:46:55,107 --> 00:46:57,065 numri tat-telefon u Twitter mankijiet u simili. 1155 00:46:57,065 --> 00:46:59,564 Allura kollha ta 'l-oqsma bdejna jitkellem dwar il-ġurnata l-oħra, 1156 00:46:59,564 --> 00:47:02,410 ħafna inqas ta 'big deal bħala lymph tagħna jiksbu aktar interessanti 1157 00:47:02,410 --> 00:47:05,972 u kbar biex jonfqu, eh, addizzjonali pointer biss biex jorbtuhom flimkien. 1158 00:47:05,972 --> 00:47:07,180 Iżda tabilħaqq, huwa kompromess. 1159 00:47:07,180 --> 00:47:09,560 U fil-fatt, il-kodiċi hija aktar kumplessi, kif inti ser 1160 00:47:09,560 --> 00:47:11,770 tara permezz ta 'xkumar permezz li eżempju partikolari. 1161 00:47:11,770 --> 00:47:14,302 Imma x'jiġri jekk kien hemm xi Grail qaddis hawn. 1162 00:47:14,302 --> 00:47:17,010 X'jiġri jekk aħna ma jieħdu pass lura iżda massiv pass 'il quddiem 1163 00:47:17,010 --> 00:47:19,180 u timplimenta data istruttura via li aħna 1164 00:47:19,180 --> 00:47:22,870 jistgħu jsibu elementi bħall Jack jew Christine jew xi elementi oħra 1165 00:47:22,870 --> 00:47:25,870 f'dan array fil-ħin kostanti vera? 1166 00:47:25,870 --> 00:47:26,920 Fittex huwa kostanti. 1167 00:47:26,920 --> 00:47:28,320 Ħassar hija kostanti. 1168 00:47:28,320 --> 00:47:29,570 Daħħal hija kostanti. 1169 00:47:29,570 --> 00:47:32,260 Kollha ta 'dawn l-operazzjonijiet huma kostanti. 1170 00:47:32,260 --> 00:47:33,750 Dan ikun Grail qaddis tagħna. 1171 00:47:33,750 --> 00:47:36,690 U li huwa fejn aħna se jittellgħu ħin li jmiss. 1172 00:47:36,690 --> 00:47:38,600 Ara inti mbagħad. 1173 00:47:38,600 --> 00:47:39,371