1 00:00:00,000 --> 00:00:11,460 2 00:00:11,460 --> 00:00:12,250 >> DAVID Malan: Nu labi. 3 00:00:12,250 --> 00:00:13,860 Welcome atpakaļ uz CS50. 4 00:00:13,860 --> 00:00:16,190 Tas ir sākums no 8 nedēļas. 5 00:00:16,190 --> 00:00:21,320 Un atcerēties, ka problēma komplekts 5 beigusies ar mazliet izaicinājums. 6 00:00:21,320 --> 00:00:25,210 Tātad, pieņemot, ka jūs atgūt visus jūsu mācību Fellows un CA ir fotogrāfijas 7 00:00:25,210 --> 00:00:30,480 ar card.raw failu, jums ir tiesības lai tagad atrast visiem tiem cilvēkiem, un 8 00:00:30,480 --> 00:00:34,510 viens laimīgais uzvarētājs būs staigāt mājās ar vienu no šīm lietām, lēciens kustības 9 00:00:34,510 --> 00:00:37,450 ierīce, ko var izmantot, lai gala projekti, piemēram. 10 00:00:37,450 --> 00:00:39,860 >> Tas katru gadu, izraisa mazliet creepiness. 11 00:00:39,860 --> 00:00:43,480 Un tā, ko es domāju, ka es gribētu darīt, ir dalīties ar Jums dažas no piezīmēm, kas ir 12 00:00:43,480 --> 00:00:47,370 gājusi uz priekšu un atpakaļ pa darbinieku sarakstu vēlu. 13 00:00:47,370 --> 00:00:51,110 Piemēram, tikai pagājušajā naktī, citējot likt pēdiņas beigās, no viena no darbinieku 14 00:00:51,110 --> 00:00:55,000 locekļi, "Es tikko bija studentu klauvēt pie manām durvīm, lai fotografētu ar mani. 15 00:00:55,000 --> 00:00:59,020 Stalkers, es jums saku "Started off. diezgan aprakstošs, un tad mēs pārcēlās 16 00:00:59,020 --> 00:01:02,830 uz, stundu, vai arī tā vēlāk, "man bija students gaida mani pēc iedaļas 17 00:01:02,830 --> 00:01:06,080 un viņam bija visas mūsu vārdi un fotogrāfijas par dažiem papīra loksnēm "Labi.. 18 00:01:06,080 --> 00:01:09,230 Tātad organizēta, bet ne viss, kas rāpojošs vēl. 19 00:01:09,230 --> 00:01:12,520 >> "Tad es biju ārpus pilsētas šīs nedēļas nogalē, un, kad es saņēmu atpakaļ, tur bija viens 20 00:01:12,520 --> 00:01:12,630 mans 21 00:01:12,630 --> 00:01:16,740 guļamistaba ". [smiekli] 22 00:01:16,740 --> 00:01:20,410 DAVID Malan: Nākamais citāts no darbinieku locekle, "students nāca uz manu māju pie 23 00:01:20,410 --> 00:01:25,330 Somerville at 4:00 šorīt "Next. personāls, "I got manu viesnīcā San 24 00:01:25,330 --> 00:01:30,016 Francisco un studentu gaidīju man pie foajē ar trim DSLRs. " 25 00:01:30,016 --> 00:01:31,510 Tipa kameru. 26 00:01:31,510 --> 00:01:34,980 "Es neesmu pat par personālu šajā semestrī, bet students ielauzās manā mājā šis 27 00:01:34,980 --> 00:01:40,480 no rīta un reģistrē visa lieta Google Glass. "Un tad visbeidzot, 28 00:01:40,480 --> 00:01:43,650 "Vismaz 12 cilvēki labprāt gaida mani, kad es saņēmu no manas 29 00:01:43,650 --> 00:01:44,800 limo, un pēc tam es 30 00:01:44,800 --> 00:01:46,970 pamodās "Labi.. 31 00:01:46,970 --> 00:01:57,690 Tātad starp fotogrāfijām, kā jūs varat atgādināt, ir šis puisis šeit, kas jūs 32 00:01:57,690 --> 00:02:01,850 varētu zināt, kā Milo banānu, kas dzīvo ar Lauren Carvalho, mūsu galvas 33 00:02:01,850 --> 00:02:02,905 mācību Fellow. 34 00:02:02,905 --> 00:02:05,170 Milo, Milo, nāk šeit zēns. 35 00:02:05,170 --> 00:02:06,320 Milo. 36 00:02:06,320 --> 00:02:08,650 Milo. 37 00:02:08,650 --> 00:02:12,230 Mind you, viņš valkā Google stikls, tāpēc mēs jums parādīsim tas viss pēc tam. 38 00:02:12,230 --> 00:02:16,190 Tātad šis ir Milo, ja vēlaties nofotografēt ar viņu pēc tam. 39 00:02:16,190 --> 00:02:18,240 Ja vēlaties meklēt, kas pie klausītājiem tur. 40 00:02:18,240 --> 00:02:19,430 Labi. 41 00:02:19,430 --> 00:02:20,200 Tas ir labi kadrus. 42 00:02:20,200 --> 00:02:22,556 Nu, Milo Banana. 43 00:02:22,556 --> 00:02:23,941 Ak, nedari to. 44 00:02:23,941 --> 00:02:29,020 >> [Smiekli] 45 00:02:29,020 --> 00:02:29,470 >> Labi. 46 00:02:29,470 --> 00:02:34,550 Tātad vārdu, tad par to, kas ir priekšā, jo, kā mēs sākam pāreju, 47 00:02:34,550 --> 00:02:38,410 šī nedēļa īpaši, no C koncentrāciju komandrindas vide PHP un 48 00:02:38,410 --> 00:02:42,720 JavaScript un SQL un HTML un CSS tīmekļa vidē, mēs būsim 49 00:02:42,720 --> 00:02:44,490 aprīkot jūs ar visu vairāk zināšanu par 50 00:02:44,490 --> 00:02:46,010 iespējamos galīgos projektus. 51 00:02:46,010 --> 00:02:49,240 Ceļā Tālab, protams, ir tradīcija rīkojot seminārus, kas 52 00:02:49,240 --> 00:02:50,950 ir par pieskaras tēmām līdz gaitā. 53 00:02:50,950 --> 00:02:54,330 Ļoti daudz kas saistīti ar plānošanu un app attīstība un tā tālāk, bet 54 00:02:54,330 --> 00:02:57,010 ne vienmēr pēta Kurss pašas mācību programmas. 55 00:02:57,010 --> 00:03:00,250 >> Tātad, ja jūs varētu būt ieinteresēts vienā vai vairāk no šī gada semināros, 56 00:03:00,250 --> 00:03:02,530 reģistrēties cs50.net/seminar. 57 00:03:02,530 --> 00:03:06,170 Ir vecāki semināri pie cs50.net/seminars. 58 00:03:06,170 --> 00:03:10,620 Un uz žurnāla līdz šim par šo gadu ir Amazing Web Apps ar Ruby on 59 00:03:10,620 --> 00:03:13,580 Sliedes, kas ir alternatīva valodu PHP. 60 00:03:13,580 --> 00:03:14,900 Skaitļošanas Valodniecība. 61 00:03:14,900 --> 00:03:18,710 Ievads uz IOS, kas ir platforma, kas tiek izmantots, lai iPhone un 62 00:03:18,710 --> 00:03:19,850 iPad attīstību. 63 00:03:19,850 --> 00:03:22,890 JavaScript Web Apps, mēs segtu ka, bet šajā seminārā, jums iet 64 00:03:22,890 --> 00:03:24,070 uz sīkāk. 65 00:03:24,070 --> 00:03:27,390 >> Lēciens Motion, tāpēc mēs tiešām ir dažas no mūsu draugiem no Leap Motion, 66 00:03:27,390 --> 00:03:29,160 pats uzņēmums, mums pievienoties. 67 00:03:29,160 --> 00:03:31,800 Rīt, faktiski, lai nodrošinātu hands-seminārs, ja 68 00:03:31,800 --> 00:03:33,320 interese uz Jums. 69 00:03:33,320 --> 00:03:38,770 Meteor.js, alternatīva tehnika izmantojot JavaScript nav pārlūkprogrammā, 70 00:03:38,770 --> 00:03:39,970 bet uz serveri. 71 00:03:39,970 --> 00:03:42,110 Node.js, kas ir ļoti daudz šādā veidā, kā labi. 72 00:03:42,110 --> 00:03:43,650 Gluds Android Design. 73 00:03:43,650 --> 00:03:46,990 Android ir ļoti populāra alternatīva iOS un Windows Phone 74 00:03:46,990 --> 00:03:48,790 un citas mobilās platformas. 75 00:03:48,790 --> 00:03:51,180 Un Web Security Active Defense. 76 00:03:51,180 --> 00:03:54,590 >> Tātad faktiski, ja vēlaties nodarboties ar šo, ļaujiet man 77 00:03:54,590 --> 00:03:55,840 pierakstiet to. 78 00:03:55,840 --> 00:03:57,790 Mēs esam ļoti priecīgi teikt, ka Mūsu draugi Leap 79 00:03:57,790 --> 00:03:59,140 Kustība, kas ir starta - 80 00:03:59,140 --> 00:04:01,300 šī ierīce patiešām vienkārši atnāca kas pirms dažiem mēnešiem - 81 00:04:01,300 --> 00:04:05,960 ir laipni ziedoja 30 šādas ierīces klasei uz tik daudziem studentiem, ja 82 00:04:05,960 --> 00:04:08,670 vēlaties aizņemties aparatūru uz semestra beigām, un izmantot to, lai 83 00:04:08,670 --> 00:04:10,390 faktiskais galīgais projekts. 84 00:04:10,390 --> 00:04:11,890 Tās atbalsta vairākas valodas. 85 00:04:11,890 --> 00:04:16,040 Neviens no viņiem C, neviens no tiem PHP, tāpēc realizēt viens vai vairāki no šiem semināriem 86 00:04:16,040 --> 00:04:16,899 var izrādīties interesi. 87 00:04:16,899 --> 00:04:19,730 Un visi no tiem tiks filmētas Gadījumā, ja jūs nevarat 88 00:04:19,730 --> 00:04:21,380 ierasties personīgi. 89 00:04:21,380 --> 00:04:25,000 Grafiks tiks paziņots, izmantojot e-pastu, kā mēs sacietēt istabas. 90 00:04:25,000 --> 00:04:28,460 >> Un, visbeidzot, ja jums iet uz projects.cs.50.net, tas ir tīmekļa vietne 91 00:04:28,460 --> 00:04:31,450 mēs uzskatām, katru gadu, ka mēs aicinām ļaudīm no sabiedrības, fakultātes, 92 00:04:31,450 --> 00:04:36,420 departamenti, personāla, un abi kādā ārpus CS50 līdz 93 00:04:36,420 --> 00:04:37,730 ierosina projektu idejas. 94 00:04:37,730 --> 00:04:39,050 Lietas, kas ir svarīgas studentu grupām. 95 00:04:39,050 --> 00:04:40,600 Lietas, kas interesē departamentu. 96 00:04:40,600 --> 00:04:43,990 Tātad, savukārt tur, ja jūs cīnās ar neskaidrību par to, ko jūs 97 00:04:43,990 --> 00:04:46,700 pats gribētu, lai risinātu. 98 00:04:46,700 --> 00:04:51,760 >> Tāpēc pēdējā laikā mēs ieviesām apstrīdami sarežģītāka datu struktūra, nekā mēs gribētu 99 00:04:51,760 --> 00:04:53,300 redzams nedēļu iepriekš. 100 00:04:53,300 --> 00:04:56,550 Mēs gribētu, izmantojot bloki diezgan laimīgi kā noderīgi, ja 101 00:04:56,550 --> 00:04:58,160 vienkāršots datu struktūra. 102 00:04:58,160 --> 00:05:00,570 Tad mēs iepazīstināja tām, kas Protams, ir saistīti sarakstus. 103 00:05:00,570 --> 00:05:05,470 Un kāda bija viens no motivācijas ieviešot šo datu struktūra? 104 00:05:05,470 --> 00:05:06,930 Yeah? 105 00:05:06,930 --> 00:05:07,250 Kas tas ir? 106 00:05:07,250 --> 00:05:08,080 >> Mērķauditorija: Dynamic izmēru. 107 00:05:08,080 --> 00:05:09,040 >> DAVID Malan: Dynamic izmēru. 108 00:05:09,040 --> 00:05:11,890 Tātad, tā kā masīvs, jums ir zināt savu izmēru iepriekš, kad 109 00:05:11,890 --> 00:05:12,740 jūs piešķirt to. 110 00:05:12,740 --> 00:05:14,380 Saistītajā sarakstā, jums nav ir jāzina, ka. 111 00:05:14,380 --> 00:05:17,610 Jūs varat vienkārši malloc, vai, plašākā nozīmē, piešķirt papildu 112 00:05:17,610 --> 00:05:20,720 mezglā, tā sakot, jebkurā laikā jums vēlaties ievietot vairāk datu. 113 00:05:20,720 --> 00:05:22,670 Un mezgls ir nemaināmi nozīmi. 114 00:05:22,670 --> 00:05:25,580 Tas ir tikai vispārējs termins, kas apraksta sava veida konteinerā, kas mēs esam 115 00:05:25,580 --> 00:05:29,610 Izmantojot mūsu datu struktūru, lai saglabātu kādu posteni, kas interesē, kas šajā 116 00:05:29,610 --> 00:05:31,750 ja gadās būt veseli skaitļi. 117 00:05:31,750 --> 00:05:33,160 >> Bet tur vienmēr tradeoff. 118 00:05:33,160 --> 00:05:38,070 Lai mēs iegūtu dinamiskās izmērus datiem struktūra, bet par kādu cenu mēs maksājam? 119 00:05:38,070 --> 00:05:40,040 Kas savienotu sarakstiem negatīvie? 120 00:05:40,040 --> 00:05:41,006 Yeah? 121 00:05:41,006 --> 00:05:41,980 >> Mērķauditorija: Nepieciešams vairāk atmiņas. 122 00:05:41,980 --> 00:05:44,240 >> DAVID Malan: Tas prasa vairāk atmiņa, kā tieši? 123 00:05:44,240 --> 00:05:46,440 >> Mērķauditorija: [nedzirdama]. 124 00:05:46,440 --> 00:05:47,050 >> DAVID Malan: Tieši tā. 125 00:05:47,050 --> 00:05:50,460 Tāpēc tagad mums ir norādes sākšanu papildu atmiņa, ko mēs iepriekš 126 00:05:50,460 --> 00:05:53,040 nav nepieciešams, jo priekšrocība masīva, protams, ir tas, ka 127 00:05:53,040 --> 00:05:54,860 viss ir blakus, muguras atpakaļ uz muguras, kas 128 00:05:54,860 --> 00:05:56,380 dod jums brīva piekļuve. 129 00:05:56,380 --> 00:06:00,710 Tāpēc, ka, tikai izmantojot kvadrātiekavas apzīmējums, vai vairāki tehniski rādītājs 130 00:06:00,710 --> 00:06:03,580 aritmētika, ļoti vienkāršs papildinājums, Jūs varat piekļūt jebkura 131 00:06:03,580 --> 00:06:05,700 elementi pastāvīgu laiku. 132 00:06:05,700 --> 00:06:08,975 Un patiesībā, tas ir sava veida hinting cita cena, mēs maksāt ar 133 00:06:08,975 --> 00:06:09,760 saistīts saraksts. 134 00:06:09,760 --> 00:06:13,890 >> Kas notiek ar braukšanas laiku kaut kas līdzīgs Search, ja es gribu 135 00:06:13,890 --> 00:06:17,270 atrast kādu vērtību un iekšpuses par saistīts sarakstu? 136 00:06:17,270 --> 00:06:20,290 Kāda mana darba laika kļūt? 137 00:06:20,290 --> 00:06:21,560 Big O n. 138 00:06:21,560 --> 00:06:24,060 Ja tas ir sakārtoti, lai? 139 00:06:24,060 --> 00:06:25,440 Ko darīt, ja datu struktūra ir sakārtoti? 140 00:06:25,440 --> 00:06:28,640 Es varu darīt labāk nekā liels O n meklēšanai? 141 00:06:28,640 --> 00:06:31,700 Nē, jo sliktākajā gadījumā tas varētu ļoti labi būt sakārtoti, bet to skaits 142 00:06:31,700 --> 00:06:32,950 jūs meklējat varētu būt liels. 143 00:06:32,950 --> 00:06:35,370 Tas varētu būt skaitlis 100, kas varētu notikt būt visu 144 00:06:35,370 --> 00:06:36,410 veids beigās. 145 00:06:36,410 --> 00:06:39,950 Un tāpēc, ka jūs varat piekļūt tikai saistīta sarakstu šajā īstenošanā, 146 00:06:39,950 --> 00:06:42,690 veids, kā savu pirmo mezglā, tu esi joprojām ir sava veida no luck. 147 00:06:42,690 --> 00:06:47,450 Jums ir, lai šķērsotu visu lieta no pirmā līdz pēdējam, lai atrastu 148 00:06:47,450 --> 00:06:49,150 ka liela vērtība ir, piemēram, 100. 149 00:06:49,150 --> 00:06:51,350 Vai, lai noteiktu, vai tas ir nav pat tur. 150 00:06:51,350 --> 00:06:55,960 >> Tātad, mēs nevaram darīt to, ko algoritms pēc datiem struktūra, kas izskatās šādi? 151 00:06:55,960 --> 00:06:59,460 Mēs nevaram darīt bināro meklēšanu, jo bināro meklēšanas nepieciešams, ka mums bija 152 00:06:59,460 --> 00:07:00,740 brīvpieejas. 153 00:07:00,740 --> 00:07:04,500 Mēs varētu vienkārši lēciens no vietas uz vieta bez sekot 154 00:07:04,500 --> 00:07:07,080 šīs maizes drupatas formā no visiem šiem norādes. 155 00:07:07,080 --> 00:07:08,300 >> Tagad, kā mēs īstenot šo? 156 00:07:08,300 --> 00:07:12,830 Nu, ja mēs ejam uz ekrāna šeit, ja mēs varam ātri reimplement šos datus 157 00:07:12,830 --> 00:07:13,440 struktūra - 158 00:07:13,440 --> 00:07:15,670 mans rokraksts nav viss, kas liels šeit, bet mēs cenšamies. 159 00:07:15,670 --> 00:07:22,030 Tātad typedef struktūrai, un to, ko darīju es vēlas, lai izsauktu šo lietu šeit? 160 00:07:22,030 --> 00:07:22,960 Mezglā. 161 00:07:22,960 --> 00:07:24,580 Tāpēc es nopirkšu mums sākusies. 162 00:07:24,580 --> 00:07:27,860 Un tagad, to, kas ir iekšpusē datu struktūra, kas atsevišķi 163 00:07:27,860 --> 00:07:28,430 saistīta sarakstu? 164 00:07:28,430 --> 00:07:29,950 Cik lauki? 165 00:07:29,950 --> 00:07:30,450 >> Tātad divi. 166 00:07:30,450 --> 00:07:31,570 Viens no tiem ir diezgan viegli. 167 00:07:31,570 --> 00:07:33,050 Tātad, int n. 168 00:07:33,050 --> 00:07:35,930 Un mēs varētu saukt n kaut ko mēs gribam, bet tas būtu int, ja mēs esam 169 00:07:35,930 --> 00:07:37,660 īstenojot saistīts sarakstu ints. 170 00:07:37,660 --> 00:07:41,920 Un tagad to, ko dara otrā lauks ir jābūt? 171 00:07:41,920 --> 00:07:43,460 Struct mezglā *. 172 00:07:43,460 --> 00:07:50,570 Tātad, ja man struct mezglā *, un tad es var zvanīt arī tas, ko gribu, 173 00:07:50,570 --> 00:07:53,510 bet tikai lai būtu skaidrs, es aicinu tai blakus, kā mēs to esam darījuši. 174 00:07:53,510 --> 00:07:55,270 Un tad es aizveru cirtaini lencēm. 175 00:07:55,270 --> 00:08:00,700 >> Un tagad, jo pēdējo reizi, Man mezglā uz leju šeit. 176 00:08:00,700 --> 00:08:03,830 Bet, ja es esmu atzīts tas ir mezglā, kāpēc man vajadzētu uztraukties ir tik 177 00:08:03,830 --> 00:08:07,320 runīgs šeit atzīstot struct mezglā * nākamo, pretstatā 178 00:08:07,320 --> 00:08:09,210 lai tikai mezglu * nākamā? 179 00:08:09,210 --> 00:08:09,904 Yeah? 180 00:08:09,904 --> 00:08:12,810 >> Mērķauditorija: [nedzirdama]. 181 00:08:12,810 --> 00:08:14,050 >> DAVID Malan: Tieši tā. 182 00:08:14,050 --> 00:08:14,530 Tieši tā. 183 00:08:14,530 --> 00:08:18,320 Jo C tiešām, jūs burtiski un redz tikai definīciju mezgla 184 00:08:18,320 --> 00:08:21,230 ceļu uz leju šeit, jūs nevarat atsaucas uz to šeit. 185 00:08:21,230 --> 00:08:24,760 Tāpēc mums ir šāda veida pirmpirkuma deklarācija šeit, kas ir, protams, 186 00:08:24,760 --> 00:08:25,390 vairāk runīgs. 187 00:08:25,390 --> 00:08:27,810 Struct mezglā, tas nozīmē, ka mēs tagad var piekļūt 188 00:08:27,810 --> 00:08:29,760 iekšpusē no datu struktūru. 189 00:08:29,760 --> 00:08:33,370 >> Un kā malā, jo tas ir kļūst nedaudz vairāk subjektīvs tagad, 190 00:08:33,370 --> 00:08:36,230 zvaigzne tehniski var doties šeit, tā var iet šeit, tas var 191 00:08:36,230 --> 00:08:37,179 pat iet pa vidu. 192 00:08:37,179 --> 00:08:39,890 Mēs esam pieņemti, jo stila rokasgrāmata Protams, konvencija liekot 193 00:08:39,890 --> 00:08:42,299 star pa labi blakus uz datiem, kas tips, kas šajā gadījumā, 194 00:08:42,299 --> 00:08:43,460 būtu struktūrai mezglā. 195 00:08:43,460 --> 00:08:46,620 Bet saprast, ir daudz grāmatu, un tiešsaistes atsauces, jūs varētu patiešām 196 00:08:46,620 --> 00:08:48,450 redzēt to, no otras puses. 197 00:08:48,450 --> 00:08:52,200 Bet tikai saprast, ka gan būs reāli strādāt, un jums vajadzētu vienkārši 198 00:08:52,200 --> 00:08:52,970 konsekventa. 199 00:08:52,970 --> 00:08:53,580 >> Labi. 200 00:08:53,580 --> 00:08:55,630 Tā, ka bija mūsu deklarācija gada struktūrai mezglā. 201 00:08:55,630 --> 00:08:59,430 Bet tad mēs sākām darīt vairāk sarežģītas lietas. 202 00:08:59,430 --> 00:09:03,410 Piemēram, mēs nolēmām ieviest kaut kas līdzīgs hash tabulu. 203 00:09:03,410 --> 00:09:08,160 Tātad, šeit ir hash tabulu izmēru n, indeksē no 0 uz augšu pa kreisi, lai n 204 00:09:08,160 --> 00:09:09,690 mīnus 1 uz apakšā pa kreisi. 205 00:09:09,690 --> 00:09:11,640 Tas varētu būt hash tabula neko. 206 00:09:11,640 --> 00:09:15,340 Bet kāda veida lietas, vai mēs runājam par izmantojot hash tabulu? 207 00:09:15,340 --> 00:09:18,370 Uzglabāšana, ko? 208 00:09:18,370 --> 00:09:18,800 >> Vārdi. 209 00:09:18,800 --> 00:09:20,870 Mēs varētu darīt vārdi, piemēram, mēs pēdējo reizi. 210 00:09:20,870 --> 00:09:22,200 Un tiešām, jūs varat saglabāt jebko. 211 00:09:22,200 --> 00:09:24,640 Un mēs redzam atkal PHP un JavaScript. 212 00:09:24,640 --> 00:09:28,550 Hash tabulu ir jauka veida Šveices Armijas nazis, kas ļauj jums saglabāt 213 00:09:28,550 --> 00:09:33,690 diezgan daudz neatkarīgi vēlaties iekšā tas, saistot atslēgas ar vērtībām. 214 00:09:33,690 --> 00:09:34,770 Taustiņi ar vērtībām. 215 00:09:34,770 --> 00:09:37,800 >> Tagad šo vienkāršo gadījumā, mūsu taustiņi ir tikai skaitļi. 216 00:09:37,800 --> 00:09:40,380 Mēs īsteno hash galda kā masīvu. 217 00:09:40,380 --> 00:09:43,500 Un tā taustiņi ir 0, 1, 2, un tā tālāk. 218 00:09:43,500 --> 00:09:47,200 Un tā mēs, kā cilvēkiem, nolemts pagājušajā nedēļā, ka jūs zināt, ko, ja mēs esam 219 00:09:47,200 --> 00:09:50,410 dodas uz veikalu nosaukumiem, pieņemsim tikai patvaļīgi, bet diezgan saprātīgi, 220 00:09:50,410 --> 00:09:54,680 pieņemsim, ka Alise, vārds, būs tikai jāindeksē uz 0. 221 00:09:54,680 --> 00:09:58,030 Un Bobs, B vārdu, tiks indeksētas uz 1, un tā tālāk. 222 00:09:58,030 --> 00:10:02,490 Tātad mums bija kartēšanu starp izejvielām, kas ir virknes, un hash 223 00:10:02,490 --> 00:10:04,560 vietas, kas ir skaitļi. 224 00:10:04,560 --> 00:10:07,740 >> Tā, ka process ir parasti zināms kā hash funkciju, un jūs varat patiešām 225 00:10:07,740 --> 00:10:09,130 ieviest to kodu. 226 00:10:09,130 --> 00:10:12,080 Ja es gribēju, lai īstenotu jaucējfunkciju kas dara tieši to, ko mēs 227 00:10:12,080 --> 00:10:17,070 tikko aprakstītā no pēdējo reizi, es varētu atzīt funkciju, kas ņem, kā 228 00:10:17,070 --> 00:10:18,330 input piemēram - 229 00:10:18,330 --> 00:10:22,190 un pieņemsim darīt par šo ekrāns nekā šeit. 230 00:10:22,190 --> 00:10:26,180 Ja es gribēju, lai īstenotu hash funkcija, es varētu teikt, 231 00:10:26,180 --> 00:10:27,410 kaut kas līdzīgs šim. 232 00:10:27,410 --> 00:10:29,030 >> Tas notiek, lai atgrieztos int. 233 00:10:29,030 --> 00:10:33,600 Tas būs saukt hash, un tas ir gatavojas pieņemt kā argumentu par 234 00:10:33,600 --> 00:10:38,920 virkne, vai arī mēs varam būt pareizi tagad, un teikt char *, mēs to saucam s. 235 00:10:38,920 --> 00:10:43,840 Un tad tas viss funkcija ir jādara, galu galā, ir atpakaļ int. 236 00:10:43,840 --> 00:10:45,990 Tagad, kā tas, ka varētu nav tik skaidrs. 237 00:10:45,990 --> 00:10:49,510 Es esmu gatavojas īstenot šo bez jebkāda veidot kļūdu pārbaudes tiesības tagad. 238 00:10:49,510 --> 00:10:55,740 Es esmu tikai gatavojas akli teikt, atgriezties kāds ir s grupā 0, mīnus, 239 00:10:55,740 --> 00:10:58,850 teiksim, kapitāla semikolu. 240 00:10:58,850 --> 00:10:59,960 >> Pilnīgi sadalīti. 241 00:10:59,960 --> 00:11:02,620 Tas nav ideāls, jo viens, kas notiks, ja s ir nulle? 242 00:11:02,620 --> 00:11:04,000 Sliktas lietas notiks. 243 00:11:04,000 --> 00:11:07,940 Divi, kas notiks, ja pirmais burts šajā nosaukums nav lielais burts? 244 00:11:07,940 --> 00:11:09,860 Tas nav gatavojas pārvērst out labi, vai nu. 245 00:11:09,860 --> 00:11:11,970 Tas varētu būt mazo burtu vai vēstule vispār. 246 00:11:11,970 --> 00:11:15,520 Tāpēc pilnīgi iespējams uzlabot šeit, bet tas ir pamata ideja. 247 00:11:15,520 --> 00:11:19,010 >> Ko mēs aprakstīts pagājušajā nedēļā mutiski, kā tikai process kartēšanas Alise 248 00:11:19,010 --> 00:11:23,360 0 un Bob līdz 1 var izteikt noteikti vairāk formulaically kā C 249 00:11:23,360 --> 00:11:24,320 darboties šeit. 250 00:11:24,320 --> 00:11:28,630 Sauc atkal hash, ņem virkni kā ievadi, un pēc tam kaut kā kaut ko dara 251 00:11:28,630 --> 00:11:31,020 ar šo ieguldījumu ražot izejas. 252 00:11:31,020 --> 00:11:34,130 Ne atšķirībā no mūsu melnās kastes aprakstu ka mēs esam sen darīts. 253 00:11:34,130 --> 00:11:36,550 Es nezinu, kā tas varētu būt darba zem motora pārsega. 254 00:11:36,550 --> 00:11:40,120 >> Par problēmu kopumu 6, viens no izaicinājumiem ir, lai jūs varētu izlemt, ko 255 00:11:40,120 --> 00:11:41,920 būs jūsu hash funkcija būt? 256 00:11:41,920 --> 00:11:45,760 Kas būs iekšpusē, kas melns kastē, un, iespējams, tas būs 257 00:11:45,760 --> 00:11:50,380 nedaudz vairāk interesanti nekā šis, un noteikti ir vairāk tendētas uz kļūdu 258 00:11:50,380 --> 00:11:53,180 pārbaude par šo konkrēto īstenošanu. 259 00:11:53,180 --> 00:11:54,580 >> Taču problēmas var rasties, vai ne? 260 00:11:54,580 --> 00:11:57,760 Ja mums ir datu struktūra, piemēram, šis viens, kas ir viena no problēmām, kas 261 00:11:57,760 --> 00:12:01,600 jūs varat uzskriet laika gaitā, kā jūs ievietot vairāk un vairāk vārdi uz 262 00:12:01,600 --> 00:12:02,880 hash tabulu? 263 00:12:02,880 --> 00:12:04,630 Jūs saņemsiet sadursmes, vai ne? 264 00:12:04,630 --> 00:12:07,560 Ko darīt, ja jums ir Alise un Āronu, divi cilvēki, kuru vārdi ir noticis 265 00:12:07,560 --> 00:12:08,190 sākt ar? 266 00:12:08,190 --> 00:12:11,660 Tas izvirza jautājumu, kur jūs ielieciet otru šādu nosaukumu? 267 00:12:11,660 --> 00:12:15,050 >> Nu, jūs varētu naivi vienkārši ielieciet to kur Bobs pieder, bet tad Bobs ir 268 00:12:15,050 --> 00:12:17,300 veida ieskrūvē, ja jūs mēģināt ievietot savu vārdu blakus un 269 00:12:17,300 --> 00:12:18,240 tur nav par viņu istabu. 270 00:12:18,240 --> 00:12:21,400 Tātad, jūs varētu nodot Bob kur Čārlijs ir, un jūs varat iedomāties, tas ļoti ātri 271 00:12:21,400 --> 00:12:23,020 pārgājuši uz mazliet putru. 272 00:12:23,020 --> 00:12:25,600 Kaut lineāra beigās, kur jūs tikai meklēt visa lieta 273 00:12:25,600 --> 00:12:28,190 meklē Alice un Bob vai Aaron vai Charlie. 274 00:12:28,190 --> 00:12:33,230 >> Tā vietā mēs ierosinājām, nevis tikai lineāri zondēšana atvērtu telpu 275 00:12:33,230 --> 00:12:36,450 un plopping vārdus tur, mēs ierosināja mīļotājs pieeju. 276 00:12:36,450 --> 00:12:41,740 Hash tabulu īstenots joprojām ar masīvs no indeksiem, bet datu tips 277 00:12:41,740 --> 00:12:44,500 šie rādītāji tagad ir norādes. 278 00:12:44,500 --> 00:12:47,360 Norādes uz to, ko? 279 00:12:47,360 --> 00:12:48,730 Norādes uz saistītām sarakstos. 280 00:12:48,730 --> 00:12:53,330 >> Tāpēc atgādina, ka saistīts saraksts tiešām tikai rādītājs uz mezglu, un 281 00:12:53,330 --> 00:12:57,110 mezgls ir nākamo lauku, un ka mezglu ir nākamo lauku, un tā tālāk. 282 00:12:57,110 --> 00:13:00,690 Tātad jūs tagad domājat par šo masīva uz kreisajā pusē hash tabulu, jo 283 00:13:00,690 --> 00:13:01,820 rezultātā saistīta sarakstam. 284 00:13:01,820 --> 00:13:07,000 Kuru priekšrocība ir, ja jums sadursme starp Alise un Āronu, 285 00:13:07,000 --> 00:13:09,300 Ko jūs darīt ar otrais šāds cilvēks? 286 00:13:09,300 --> 00:13:14,150 Jūs vienkārši pievienot viņam vai viņai beigās, vai pat sākums 287 00:13:14,150 --> 00:13:15,490 Šī saistīta saraksta. 288 00:13:15,490 --> 00:13:17,340 >> Un patiesībā, pieņemsim tikai nūdeles ar ka tikai sekundi. 289 00:13:17,340 --> 00:13:18,640 Gadījumos, kad būtu visvairāk nozīmē? 290 00:13:18,640 --> 00:13:22,060 Ja es ievietot Alise un viņa nonāks pie pirmā vieta, tad es cenšas 291 00:13:22,060 --> 00:13:25,310 ievietojiet Ārona vārdu, un tur ir protams sadursmes, ja man 292 00:13:25,310 --> 00:13:27,400 viņam sākumā gada saistītajā sarakstā? 293 00:13:27,400 --> 00:13:30,944 Tas ir tajā pirmajā vietā, vai beigās? 294 00:13:30,944 --> 00:13:31,440 >> Mērķauditorija: [nedzirdama]. 295 00:13:31,440 --> 00:13:31,990 >> DAVID Malan: OK. 296 00:13:31,990 --> 00:13:32,490 Es dzirdēju sākumā. 297 00:13:32,490 --> 00:13:33,903 Kāpēc sākumā? 298 00:13:33,903 --> 00:13:34,750 >> Mērķauditorija: [nedzirdama]. 299 00:13:34,750 --> 00:13:34,940 >> DAVID Malan: OK. 300 00:13:34,940 --> 00:13:36,520 Tas ir alfabēta, tāpēc tas ir jauki. 301 00:13:36,520 --> 00:13:37,330 Tas ir labs īpašums. 302 00:13:37,330 --> 00:13:39,335 Tas ietaupīs man kādu laiku potenciāli. 303 00:13:39,335 --> 00:13:43,290 Tas neļaus man darīt bināro meklēšanu, bet es varētu vismaz varētu izcelties 304 00:13:43,290 --> 00:13:47,340 no cilpas, ja es saprotu, labi, es esmu ceļš agrāk bija Aaron būtu šī 305 00:13:47,340 --> 00:13:48,310 sakārtoti saistīts saraksts. 306 00:13:48,310 --> 00:13:50,360 Man nav tērēt savu laiku, meklējot visu ceļu līdz beigām. 307 00:13:50,360 --> 00:13:51,530 Tātad tas ir saprātīgs. 308 00:13:51,530 --> 00:13:54,710 Kāpēc vēl varētu vēlaties ievietot sadurties nosaukums pie 309 00:13:54,710 --> 00:13:56,660 sākuma saraksta? 310 00:13:56,660 --> 00:13:57,397 Kas tas ir? 311 00:13:57,397 --> 00:13:58,680 >> Mērķauditorija: [nedzirdama]. 312 00:13:58,680 --> 00:14:00,820 >> DAVID Malan: Tas var aizņemt ilgu laiku , lai iegūtu uz saraksta beigām. 313 00:14:00,820 --> 00:14:02,490 Un patiesībā, ilgāk un ilgāk. 314 00:14:02,490 --> 00:14:04,920 Jo vairāk vārdu jums ievietot, ka Vispirms, kas ir garāki par 315 00:14:04,920 --> 00:14:06,280 ķēde ir gatavojas saņemt. 316 00:14:06,280 --> 00:14:07,890 Jo ilgāk, ka saistīta saraksts ir gatavojas saņemt. 317 00:14:07,890 --> 00:14:09,420 Tātad, jūs esat patiešām vienkārši izšķērdēt Jūsu laiku. 318 00:14:09,420 --> 00:14:14,070 Varbūt jūs labāk saglabājot pastāvīga ievietošanas laiku, Big O 1, 319 00:14:14,070 --> 00:14:18,470 , vienmēr liekot sadursmē uzvārdu sākums saistītajā sarakstā, 320 00:14:18,470 --> 00:14:21,230 un nav neuztraucoties tik daudz par šķirošanu. 321 00:14:21,230 --> 00:14:22,600 >> Kas ir labākā atbilde? 322 00:14:22,600 --> 00:14:23,320 Tas ir skaidrs. 323 00:14:23,320 --> 00:14:26,140 Tā veida ir atkarīgs no kāda sadalījums ir, kāds modelis ir 324 00:14:26,140 --> 00:14:27,850 no nosaukumiem, Jūs ievietojat. 325 00:14:27,850 --> 00:14:29,430 Tas ne vienmēr ir acīmredzama atbilde. 326 00:14:29,430 --> 00:14:33,100 Bet šeit, atkal, ir dizaina iespējas. 327 00:14:33,100 --> 00:14:37,220 >> Tāpēc mēs pēc tam paskatījās šo lietu, kas ir tiešām cita liela iespēja 328 00:14:37,220 --> 00:14:38,180 par 6 p-komplektu. 329 00:14:38,180 --> 00:14:41,770 Un saprast, ja jums vēl nav, Zamyla ienirst abi šie, hašišs 330 00:14:41,770 --> 00:14:43,260 galdi un cenšas, sīkāk. 331 00:14:43,260 --> 00:14:45,630 Un video walkthrough ir iestrādāta p-komplekts spec. 332 00:14:45,630 --> 00:14:46,590 Tas bija Trie - 333 00:14:46,590 --> 00:14:51,670 T-R-I-E. Un kāda bija interesanti par tas bija tas, ka darba laiks 334 00:14:51,670 --> 00:14:59,510 lai meklētu vārdu, piemēram, Maxwell pēdējo reizi, bija liels O, ko? 335 00:14:59,510 --> 00:15:01,040 Kas tas ir? 336 00:15:01,040 --> 00:15:01,920 >> Mērķauditorija: burtu skaits. 337 00:15:01,920 --> 00:15:02,550 >> DAVID Malan: skaits burtiem. 338 00:15:02,550 --> 00:15:03,210 Es dzirdēju divas lietas. 339 00:15:03,210 --> 00:15:04,630 Burtu skaits un pastāvīgu laiku. 340 00:15:04,630 --> 00:15:05,540 Tāpēc iesim ar to pirmais. 341 00:15:05,540 --> 00:15:06,410 Burtu skaits. 342 00:15:06,410 --> 00:15:10,195 Nu, šie dati struktūru, atsaukšana, ir patīk koks, ģimenes koks, katra 343 00:15:10,195 --> 00:15:12,860 , kuru mezgli veido masīvi. 344 00:15:12,860 --> 00:15:16,300 Un šie bloki ir norādes uz citas šādas mezgli, vai citas tādas 345 00:15:16,300 --> 00:15:17,670 matricas koka. 346 00:15:17,670 --> 00:15:22,890 >> Tātad, ja mēs vēlējāmies, lai pēc tam noteiktu vai Maxwell ir šeit, es varētu iet 347 00:15:22,890 --> 00:15:26,890 uz pirmo masīva, pie ļoti top koks, ts saknes, top 348 00:15:26,890 --> 00:15:30,521 Trie, un pēc tam izpildiet m rādītāju, tad rādītājs, tad x, 349 00:15:30,521 --> 00:15:31,710 w, e, l, l. 350 00:15:31,710 --> 00:15:34,910 Un tad, kad es redzu kādu īpašu simbolu, apzīmē šeit kā trijstūri. 351 00:15:34,910 --> 00:15:38,480 Ar kodu jūs redzēt, mēs ierosinām, ka jūs īstenota kā bool, vienkārši sakot, jā 352 00:15:38,480 --> 00:15:40,540 vai nē, vārds apstājas šeit. 353 00:15:40,540 --> 00:15:45,270 >> Nu, kad mēs esam izgājuši uz M-A-X-W-E-L-L, jūtas kā septiņiem, varbūt 354 00:15:45,270 --> 00:15:48,910 astoņas, ja mēs ejam vienu pagātnē to, astoņas pasākumus, lai atrastu Maxwell. 355 00:15:48,910 --> 00:15:53,050 Vai sauksim to K. Bet atcerēties pēdējo reizi laiks, es apgalvoja, ka tad, ja tur ir 356 00:15:53,050 --> 00:15:57,540 reāli maksimālais garums uz vārdu, piemēram, 40-daži nepāra rakstzīmes, 357 00:15:57,540 --> 00:16:00,810 maksimālais garums nozīmē konstanta vērtība. 358 00:16:00,810 --> 00:16:05,770 Tik tiešām, jā, tas ir tehniski liels O gada 8 vai 7, vai tiešām ir liels un K. O Bet 359 00:16:05,770 --> 00:16:09,420 ja tur ir ierobežots vāciņu par to, K varētu būt, tas ir nemainīgs. 360 00:16:09,420 --> 00:16:12,080 Un tā ir liela O no 1 pie beigās, dienā. 361 00:16:12,080 --> 00:16:13,040 >> Nav reālajā pasaulē. 362 00:16:13,040 --> 00:16:15,960 Nevis tad, kad jūs faktiski sākt skatīties savu pulksteni kā jūsu programmas darbojas. 363 00:16:15,960 --> 00:16:20,690 Tas ir absolūti būs nedaudz lēnāk nekā patiesi konstante 364 00:16:20,690 --> 00:16:21,840 laiks ar vienu soli. 365 00:16:21,840 --> 00:16:25,540 Tas būs septiņi vai astoņi soļi, bet tomēr tas ir daudz, daudz labāk 366 00:16:25,540 --> 00:16:30,080 nekā algoritmu, piemēram, no n Big O minētajā ir atkarīga no izmēra to, kas ir 367 00:16:30,080 --> 00:16:31,220 datu struktūra. 368 00:16:31,220 --> 00:16:34,970 >> Paziņojums otrādi šeit ir, mēs varam ievietot miljons vairāk vārdu uz šo 369 00:16:34,970 --> 00:16:38,170 datu struktūra, bet cik daudz soļus tas gatavojas veikt mums, lai atrastu 370 00:16:38,170 --> 00:16:40,480 Maxwell šajā gadījumā? 371 00:16:40,480 --> 00:16:40,780 Nav. 372 00:16:40,780 --> 00:16:41,820 Viņš ir neskarti. 373 00:16:41,820 --> 00:16:45,480 Un līdz šim, es nedomāju, ka mēs esam redzējuši piemērs no datu struktūras vai 374 00:16:45,480 --> 00:16:48,560 algoritms, kas bija pilnīgi neietekmē ārējie 375 00:16:48,560 --> 00:16:50,040 uzvedību, piemēram, ka. 376 00:16:50,040 --> 00:16:51,160 Bet tas nevar būt pārsteidzošs. 377 00:16:51,160 --> 00:16:52,900 Tas var būt ne tikai šķīdums par p-komplektā 378 00:16:52,900 --> 00:16:53,570 >> Un tas nav. 379 00:16:53,570 --> 00:16:55,980 Tas ne vienmēr datus struktūru, jums vajadzētu pievilkties, 380 00:16:55,980 --> 00:16:58,220 jo, piemēram, hash tabulas, tradeoff. 381 00:16:58,220 --> 00:17:00,500 Kāda ir cena, ko maksāt šeit? 382 00:17:00,500 --> 00:17:00,940 Atmiņu. 383 00:17:00,940 --> 00:17:02,890 Es domāju, tas ir šausmīgs atmiņas apjoms. 384 00:17:02,890 --> 00:17:05,569 Un jūs nevar gluži redzēt šeit, jo autors šo attēlu 385 00:17:05,569 --> 00:17:09,420 protams saīsināts visi bloki, un mēs neredzam daudz s un 386 00:17:09,420 --> 00:17:12,700 B s un C un Q s un Y un z šajās masīvi. 387 00:17:12,700 --> 00:17:13,630 Bet viņi tur. 388 00:17:13,630 --> 00:17:17,660 >> Katrs no šiem mezgliem Ir virkni Dažu 26 vai vairāk baitu, katrs no 389 00:17:17,660 --> 00:17:19,170 kas pārstāv vēstuli. 390 00:17:19,170 --> 00:17:22,920 27, mūsu gadījumā, tā ka mēs varam atbalstīt apostrofus šajā problēmu kopumu. 391 00:17:22,920 --> 00:17:27,030 Tātad šī datu struktūra ir patiesi, ļoti blīvs un plašs. 392 00:17:27,030 --> 00:17:30,880 Un tas vien, iespējams, galu galā samazinās lietas, uz leju, vai vismaz maksā jums 393 00:17:30,880 --> 00:17:32,240 daudz vairāk vietas. 394 00:17:32,240 --> 00:17:34,020 Bet atkal, mēs varam izdarīt salīdzinājumi šeit. 395 00:17:34,020 --> 00:17:39,190 >> Atsaukt kādu laiku atpakaļ, mēs panācām ļoti vairāk aizraujošu darba laiks šķirošanas 396 00:17:39,190 --> 00:17:42,880 kad mēs izmantojam sapludināšanas veida, bet cena mēs maksājām panākt n log n par sapludināšanas 397 00:17:42,880 --> 00:17:46,930 veida prasība, ka mēs tērēt vēl kādi resursi? 398 00:17:46,930 --> 00:17:47,690 Vairāk vietas. 399 00:17:47,690 --> 00:17:50,530 Mums bija nepieciešams sekundāro masīvs kopēt cilvēkus, tāpat kā 400 00:17:50,530 --> 00:17:51,620 mēs šeit uz skatuves. 401 00:17:51,620 --> 00:17:55,880 Tātad vēlreiz, nav skaidri uzvarētāji, bet tikai subjektīva dizains 402 00:17:55,880 --> 00:17:57,710 lēmumi, kas jāizdara. 403 00:17:57,710 --> 00:17:58,060 >> Labi. 404 00:17:58,060 --> 00:17:59,130 Tā kā par šo? 405 00:17:59,130 --> 00:18:02,050 Ikviens atzīst, kuras D-Hall? 406 00:18:02,050 --> 00:18:02,440 Labi. 407 00:18:02,440 --> 00:18:03,170 Tātad, trīs no mums darīt. 408 00:18:03,170 --> 00:18:03,750 Mather House. 409 00:18:03,750 --> 00:18:05,070 Tātad tas ir Mather ir dining. 410 00:18:05,070 --> 00:18:09,650 Varu derēt, ka visi ēdnīcas ir skursteņi paplātēm, piemēram, šo. 411 00:18:09,650 --> 00:18:11,950 Un tas ir tiešām reprezentatīvs par ko mēs esam 412 00:18:11,950 --> 00:18:13,050 acīmredzot redzējis jau. 413 00:18:13,050 --> 00:18:14,850 Mēs to sauca burtiski kaudze. 414 00:18:14,850 --> 00:18:18,970 Un kaudze, attiecībā uz jūsu datora atmiņa, ir vieta, kur dati iet 415 00:18:18,970 --> 00:18:20,460 bet funkcijas tiek saukta. 416 00:18:20,460 --> 00:18:23,410 >> Piemēram, kāda veida lietas iet uz skursteņa attiecībā uz 417 00:18:23,410 --> 00:18:27,420 Atmiņas izkārtojums mēs esam apspriests nedēļās agrāk? 418 00:18:27,420 --> 00:18:28,736 Kas tas ir? 419 00:18:28,736 --> 00:18:29,670 >> Mērķauditorija: Zvani uz funkcijām. 420 00:18:29,670 --> 00:18:30,260 >> DAVID Malan: Es atvainojos. 421 00:18:30,260 --> 00:18:31,210 >> Mērķauditorija: Zvani uz funkcijām. 422 00:18:31,210 --> 00:18:33,590 >> DAVID Malan: Zvani uz funkcijām, bet Konkrētāk, kas ir iekšā no katra no 423 00:18:33,590 --> 00:18:35,340 šie kadri? 424 00:18:35,340 --> 00:18:37,220 Kāda veida lietas? 425 00:18:37,220 --> 00:18:37,460 Jā. 426 00:18:37,460 --> 00:18:38,500 Tātad vietējās mainīgie. 427 00:18:38,500 --> 00:18:43,080 Anytime mēs vajag kādu vietējo krātuvi, kā argumentu, vai int man, vai arī int 428 00:18:43,080 --> 00:18:45,940 temperatūra, vai kāds vietējais mainīgais, mēs esam bijuši 429 00:18:45,940 --> 00:18:47,210 liekot ka uz skursteņa. 430 00:18:47,210 --> 00:18:49,610 Un mēs to saucam kaudze, jo Šī layering idejas. 431 00:18:49,610 --> 00:18:52,940 Tikko veida spēlēm ar realitāti, koncepcija to. 432 00:18:52,940 --> 00:18:56,650 >> Bet izrādās, ka kaudze var arī jāuzskata par datu struktūru, 433 00:18:56,650 --> 00:19:00,110 alternatīva masīvu, alternatīva līdz ar to saistītu sarakstu. 434 00:19:00,110 --> 00:19:02,770 Kaut kas konceptuāli interesantāku kas vēl var būt 435 00:19:02,770 --> 00:19:06,030 realizēts, izmantojot kādu no tiem, lietas, bet tas ir atšķirīgs veids 436 00:19:06,030 --> 00:19:09,140 datu struktūra atbalsta, tiešām, tikai divas operācijas. 437 00:19:09,140 --> 00:19:11,000 Bet jūs varat pievienot uz mīļotājs funkcijas nekā tās. 438 00:19:11,000 --> 00:19:12,180 Bet tie ir pamati - 439 00:19:12,180 --> 00:19:13,510 push un pop. 440 00:19:13,510 --> 00:19:19,240 >> Un ar kaudzi Ideja ir tāda, ka, ja es ir šeit, ar vai bez Annenberg 441 00:19:19,240 --> 00:19:22,880 zinot, paplāti no blakus durvīm ar numuru 9 par to. 442 00:19:22,880 --> 00:19:23,870 Tik vienkārši int. 443 00:19:23,870 --> 00:19:26,990 Un es gribu, lai push to uz datu struktūra, kas šobrīd ir tukšs. 444 00:19:26,990 --> 00:19:28,790 Uzskata, ka tas apakšā kaudzes. 445 00:19:28,790 --> 00:19:33,150 Es liktu šo numuru 9 uz kaudze, un tagad tas ir labi tur. 446 00:19:33,150 --> 00:19:36,040 >> Bet interesanta lieta par kaudze ir tas, ka, ja es tagad gribu, lai push 447 00:19:36,040 --> 00:19:40,210 kādu citu vērtību, piemēram, 17, un es push tas uz kaudzīti, es esmu gatavojas darīt 448 00:19:40,210 --> 00:19:43,290 vienīgā intuitīvu lieta, es esmu tikai gatavojas likt to tur, kur mēs, cilvēki 449 00:19:43,290 --> 00:19:45,180 būtu vēlme likt to, uz augšu. 450 00:19:45,180 --> 00:19:48,850 Bet kas ir interesanti tagad ir, kā es varu saņemt pēc 9? 451 00:19:48,850 --> 00:19:50,670 Ziniet, man ne bez pūlēm. 452 00:19:50,670 --> 00:19:54,070 >> Tātad, kas ir interesanti par kaudze ir, kas pēc konstrukcijas, 453 00:19:54,070 --> 00:19:56,330 tas ir LIFO datu struktūra. 454 00:19:56,330 --> 00:19:59,680 Dumjš veids, kā aprakstīt pēdējais iekšā, pirmais ārā. 455 00:19:59,680 --> 00:20:03,280 Tātad pēdējais numurs šajā laikā bija 17. 456 00:20:03,280 --> 00:20:07,540 Tātad, ja es gribu, lai pop kaut ko off no skursteņa, tā var būt tikai 17. 457 00:20:07,540 --> 00:20:11,890 Tātad tur ir obligāta kārtība operācijas šeit, kur pēdējā vienība 458 00:20:11,890 --> 00:20:14,260 , kas ir par pirmo viens out. 459 00:20:14,260 --> 00:20:16,440 Tādējādi akronīms, LIFO. 460 00:20:16,440 --> 00:20:19,160 >> Tātad, kāpēc tas varētu būt noderīga? 461 00:20:19,160 --> 00:20:22,690 Vai to kontekstu, kurā jūs gribētu gribu datu struktūra līdzīgs šim? 462 00:20:22,690 --> 00:20:24,810 Nu, tas noteikti ir bijis noderīgs iekšpusē datoru. 463 00:20:24,810 --> 00:20:29,050 Tātad operētājsistēmas nepārprotami izmantot šo veida datu struktūras skursteņi. 464 00:20:29,050 --> 00:20:32,800 Mēs redzam arī pašu domu kad runa ir par interneta lapas. 465 00:20:32,800 --> 00:20:35,890 Tātad, šīs nedēļas, un nākamajā nedēļā, un ārpus tās, un kā jūs sāktu īstenot internetā 466 00:20:35,890 --> 00:20:39,490 lappuses valodā sauc par HTML, jūs varat faktiski izmantot datu struktūra, piemēram, 467 00:20:39,490 --> 00:20:42,690 tas, lai noteiktu, vai lapa ir pareizi formatēts. 468 00:20:42,690 --> 00:20:47,170 Tāpēc, ka mēs redzēsim visas web lapas ievērot veida hierarhijas, iespiedumiem 469 00:20:47,170 --> 00:20:52,030 kas būs, beigās, dienā, būt koka struktūru zem motora pārsega. 470 00:20:52,030 --> 00:20:53,620 Tā vairāk, ka tikai mazliet. 471 00:20:53,620 --> 00:20:56,560 >> Bet tagad, pieņemsim ierosināt Mirklī, kā mēs varētu iet par 472 00:20:56,560 --> 00:20:58,830 pārstāv kāda kaudze ir? 473 00:20:58,830 --> 00:21:03,370 Ļaujiet man ieteikt, ka mēs īstenojam kaudze ar kodu, kā šis. 474 00:21:03,370 --> 00:21:07,990 Tātad kaudze nāksies iekšpusē no tā divas lietas, masīvs, ko sauc paplātes, 475 00:21:07,990 --> 00:21:09,510 tikai jāsaskan ar demo. 476 00:21:09,510 --> 00:21:12,660 Un katru no minētās masīva preces būs tipa int. 477 00:21:12,660 --> 00:21:14,740 Un jauda ir jādomā, ko? 478 00:21:14,740 --> 00:21:18,796 Tā kā es esmu nav rakstīts pilnas izšķirtspējas šeit. 479 00:21:18,796 --> 00:21:21,535 >> Tas ir iespējams maksimāli izmērs masīva. 480 00:21:21,535 --> 00:21:25,150 Un tas ir iespējams, deklarēta kā asas define augšpusē failu, daži 481 00:21:25,150 --> 00:21:28,450 veida pastāvīgu uz ko norāda tikai kapitalizācija. 482 00:21:28,450 --> 00:21:32,250 Tātad kaut kur jauda tiek definēta kā maksimāli iespējamo izmēru. 483 00:21:32,250 --> 00:21:35,590 Tajā pašā laikā, iekšpusē no datu struktūru pazīstams kā kaudze tur būs 484 00:21:35,590 --> 00:21:38,630 ir vesels skaitlis tikai zināms vienkārši kā izmēru. 485 00:21:38,630 --> 00:21:43,400 >> Tātad, ja es būtu, lai pārstāvētu šo tagad gleznieciski, pieņemsim, ka tas 486 00:21:43,400 --> 00:21:48,070 Visa melnā kaste ir mana kaudze. 487 00:21:48,070 --> 00:21:50,070 Iekšpusē no tā ir divi mainīgie. 488 00:21:50,070 --> 00:21:54,780 Tāpēc es esmu gatavojas izdarīt Pirmais kā izmēru. 489 00:21:54,780 --> 00:21:57,420 Un otrs es esmu gatavojas izdarīt tik masīva. 490 00:21:57,420 --> 00:22:01,060 >> Bet tikai, lai saglabātu lietas sakārtotu, Parasti es vēlētos pievērst masīvu, piemēram, 491 00:22:01,060 --> 00:22:04,910 , bet tas ir sava veida jauki ja mēs atbilst realitātei, vai 492 00:22:04,910 --> 00:22:06,230 atbilstu garīgo modeli. 493 00:22:06,230 --> 00:22:12,880 Tātad, ļaujiet man vietā izdarīt masīvs vertikāli, kas ir tikai, atkal, 494 00:22:12,880 --> 00:22:13,840 mākslinieka pārsūtīšanu. 495 00:22:13,840 --> 00:22:16,610 Nav īsti svarīgi, kas tas ir zem motora pārsega. 496 00:22:16,610 --> 00:22:20,350 Un mēs sakām, ka, pēc noklusējuma, jauda būs trīs. 497 00:22:20,350 --> 00:22:23,480 Tāpēc šī būs vieta 0, šī būs izvietojums 1, šis 498 00:22:23,480 --> 00:22:25,740 būs vieta 2. 499 00:22:25,740 --> 00:22:29,330 >> Ja es uzpirkt ar stresa bumbu, būtu kāds gribētu nākt klajā un palaist 500 00:22:29,330 --> 00:22:30,870 iekāpt šeit tikai uz brīdi? 501 00:22:30,870 --> 00:22:31,960 Labi, redzēju savu roku pirmās. 502 00:22:31,960 --> 00:22:33,950 Nāciet uz augšu. 503 00:22:33,950 --> 00:22:36,500 Labi. 504 00:22:36,500 --> 00:22:38,760 Tāpēc es uzskatu, ka ir Stīvens. 505 00:22:38,760 --> 00:22:40,035 Nāciet uz augšu. 506 00:22:40,035 --> 00:22:40,770 Labi. 507 00:22:40,770 --> 00:22:46,760 >> Bet pieņemsim, ka tagad mēs attītu uz sākotnējo valsts daļām, kurās es 508 00:22:46,760 --> 00:22:52,180 tikko paziņoja kaudze, un tas ir būs trīs jaudas. 509 00:22:52,180 --> 00:22:54,470 Bet lielums vēl nav noteikts. 510 00:22:54,470 --> 00:22:56,100 Paplātes vēl nav noteikts. 511 00:22:56,100 --> 00:22:57,300 Tātad pāris jautājumus pirmās. 512 00:22:57,300 --> 00:23:01,310 Un ļaujiet man sniegt jums mikrofonu, lai jūs varētu piedalīties aktīvāk šajā darbā. 513 00:23:01,310 --> 00:23:05,190 >> Tātad, kas ir iekšā izmēra šajā brīdī laikā, ja viss, kas man ir jādara, ir 514 00:23:05,190 --> 00:23:09,340 paziņoja kaudze ar viena līnija kodu? 515 00:23:09,340 --> 00:23:10,100 >> Steven: Nav daudz. 516 00:23:10,100 --> 00:23:12,080 >> DAVID Malan: Labi, nav daudz. 517 00:23:12,080 --> 00:23:14,410 Vai mēs zinām, kas ir iekšā no to lieluma, Vai mēs zinām, kas ir iekšā 518 00:23:14,410 --> 00:23:16,330 Šī masīva šeit? 519 00:23:16,330 --> 00:23:18,630 >> Steven: Just izlases kods, vai ne? 520 00:23:18,630 --> 00:23:20,220 Just - 521 00:23:20,220 --> 00:23:23,230 >> DAVID Malan: Jā, es esmu gatavojas to sauc par kodu, bet izlases - 522 00:23:23,230 --> 00:23:23,820 >> Steven: Lietas. 523 00:23:23,820 --> 00:23:28,290 >> DAVID Malan: Lietas, piemēram, izlases 524 00:23:28,290 --> 00:23:28,870 >> Steven: Bits. 525 00:23:28,870 --> 00:23:29,530 >> DAVID Malan: Bits, vai ne? 526 00:23:29,530 --> 00:23:31,190 Tātad atkritumu vērtībām, vai ne? 527 00:23:31,190 --> 00:23:33,470 Tātad permutācijas 0 un 1 s. 528 00:23:33,470 --> 00:23:35,920 Paliekas iepriekšējo paražas šīs atmiņas. 529 00:23:35,920 --> 00:23:38,150 Un mēs īsti nezinām, ko vērtībām ir, tāpēc mēs parasti izdarīt tos 530 00:23:38,150 --> 00:23:38,930 kā jautājuma zīmes. 531 00:23:38,930 --> 00:23:41,990 >> Tātad, pirmā lieta, ko mēs, iespējams, gatavojas vēlaties darīt šeit - 532 00:23:41,990 --> 00:23:46,630 un ļaujiet man sniegt šo lauku iekšpusē no turienes nosaukums - paplātes. 533 00:23:46,630 --> 00:23:49,540 Kas mums būtu iespējams inicializēt izmērs, ja mēs vēlamies, lai 534 00:23:49,540 --> 00:23:51,040 sāktu izmantot šo steku? 535 00:23:51,040 --> 00:23:53,070 >> Steven: Paplāte ir sub 3. 536 00:23:53,070 --> 00:23:53,910 >> DAVID Malan: Tātad, OK. 537 00:23:53,910 --> 00:23:56,710 Lai būtu skaidrs, jauda ir deklarēta citur, kā trīs. 538 00:23:56,710 --> 00:23:58,570 Un tas, ko es esmu, ko izmanto piešķirt masīva. 539 00:23:58,570 --> 00:24:03,535 Lielums gatavojas atsaukties uz cik paplātes pašlaik uz skursteņa. 540 00:24:03,535 --> 00:24:03,880 >> Steven: Zero. 541 00:24:03,880 --> 00:24:04,460 >> DAVID Malan: Tātad tas būtu nulle. 542 00:24:04,460 --> 00:24:07,760 Tik iet uz priekšu, un ar jebkuru pirkstu, izdarīt nulli izmēru. 543 00:24:07,760 --> 00:24:08,440 Labi. 544 00:24:08,440 --> 00:24:10,920 Tāpēc tagad, kas ir iekšā šīs šeit, mēs nezinām. 545 00:24:10,920 --> 00:24:12,160 Tie ir patiešām tikai atkritumu vērtības. 546 00:24:12,160 --> 00:24:14,800 Lai mēs varētu izdarīt jautājuma zīmes, bet pieņemsim uzturēt padome tīru tagad 547 00:24:14,800 --> 00:24:16,300 tāpēc, ka tas nav svarīgi to, kas ir tur. 548 00:24:16,300 --> 00:24:19,130 Mums nav nepieciešams, lai sāktu masīvs kaut ko, jo, ja mēs zinām, ka 549 00:24:19,130 --> 00:24:23,100 no kaudzes lielums ir nulle, labi, mēs nedrīkst meklē kaut ko, kas 550 00:24:23,100 --> 00:24:25,590 šis masīvs vienalga Šajā brīdī. 551 00:24:25,590 --> 00:24:29,970 >> Tāpēc tagad pieņemsim, ka man push uz kaudzīti 9 numuru. 552 00:24:29,970 --> 00:24:33,750 Kā mēs atjaunināt datu struktūra iekšā šajā melnajā kastē? 553 00:24:33,750 --> 00:24:35,540 Kādas vērtības ir jāmaina? 554 00:24:35,540 --> 00:24:36,200 >> Steven: Ievērojot - 555 00:24:36,200 --> 00:24:37,400 izmērs? 556 00:24:37,400 --> 00:24:37,650 >> DAVID Malan: OK. 557 00:24:37,650 --> 00:24:38,770 Izmērs jākļūst ko? 558 00:24:38,770 --> 00:24:39,580 >> Steven: Izmērs varētu būt viens. 559 00:24:39,580 --> 00:24:39,870 >> DAVID Malan: OK. 560 00:24:39,870 --> 00:24:41,110 Tātad lielums ir kļuvusi par vienu. 561 00:24:41,110 --> 00:24:42,540 Tātad jūs varat izdarīt pāris veidos. 562 00:24:42,540 --> 00:24:46,920 Ļaujiet man sniegt jums, tagad jūsu pirksts ir dzēšgumija. 563 00:24:46,920 --> 00:24:47,260 Labi. 564 00:24:47,260 --> 00:24:49,960 Tad tagad pirkstu ir suku. 565 00:24:49,960 --> 00:24:50,330 Labi. 566 00:24:50,330 --> 00:24:52,820 Un tagad, kas vēl ir jāmaina, protams, kas ir datu struktūra? 567 00:24:52,820 --> 00:24:57,060 >> Steven: Mēs ejam no no apakšas uz augšu līdz 9. 568 00:24:57,060 --> 00:24:57,760 >> DAVID Malan: 9. 569 00:24:57,760 --> 00:24:58,420 Labi, labi. 570 00:24:58,420 --> 00:25:01,550 Tātad joprojām nav svarīgi, kāda ir pie izvietojums viens vai divi, jo tie ir 571 00:25:01,550 --> 00:25:04,520 atkritumu vērtībām, bet mums nevajadzētu raizēties meklē tur, jo izmērs ir 572 00:25:04,520 --> 00:25:07,540 stāsta mums, ka tikai pirmais elements faktiski ir likumīga. 573 00:25:07,540 --> 00:25:10,400 Tāpēc tagad es push 17 uz sarakstā. 574 00:25:10,400 --> 00:25:11,830 Kas notiek ar šo attēlu? 575 00:25:11,830 --> 00:25:14,720 >> Steven: Tā lielums ir gatavojas doties uz diviem. 576 00:25:14,720 --> 00:25:15,300 >> DAVID Malan: OK. 577 00:25:15,300 --> 00:25:16,070 Jūs esat dzēšgumija - 578 00:25:16,070 --> 00:25:16,810 Ups. 579 00:25:16,810 --> 00:25:18,026 Tu esi dzēšgumija. 580 00:25:18,026 --> 00:25:18,840 >> Steven: Eraser. 581 00:25:18,840 --> 00:25:19,720 >> DAVID Malan: Tu esi suka. 582 00:25:19,720 --> 00:25:20,560 >> Steven: Brush. 583 00:25:20,560 --> 00:25:20,920 >> DAVID Malan: OK. 584 00:25:20,920 --> 00:25:21,600 Un ko vēl? 585 00:25:21,600 --> 00:25:22,600 >> Steven: Un tad mēs - 586 00:25:22,600 --> 00:25:22,915 >> DAVID Malan Mēs uzstājām 17. 587 00:25:22,915 --> 00:25:24,760 >> Steven: Mums jāturas 17 uz augšu, tāpēc - 588 00:25:24,760 --> 00:25:25,710 >> DAVID Malan: Labi, labi. 589 00:25:25,710 --> 00:25:27,040 >> Steven: - nomest to uz leju. 590 00:25:27,040 --> 00:25:27,530 >> DAVID Malan: Nu labi. 591 00:25:27,530 --> 00:25:27,940 Tas kļūst viegli. 592 00:25:27,940 --> 00:25:29,300 Es neesmu gatavojas, lai palīdzētu jums šajā laikā. 593 00:25:29,300 --> 00:25:30,510 Push 22. 594 00:25:30,510 --> 00:25:31,720 >> Steven: Done. 595 00:25:31,720 --> 00:25:34,870 Kļūstot dzēšgumija. 596 00:25:34,870 --> 00:25:37,340 Es esmu kļūst suku. 597 00:25:37,340 --> 00:25:39,340 Un tad es esmu liekot 22. 598 00:25:39,340 --> 00:25:40,100 >> DAVID Malan: 22. 599 00:25:40,100 --> 00:25:40,620 Excellent. 600 00:25:40,620 --> 00:25:41,380 Tātad vēl vienu reizi. 601 00:25:41,380 --> 00:25:44,280 Es esmu tagad gatavojas virzīt uz kaudzīti 26. 602 00:25:44,280 --> 00:25:46,350 >> Steven: Ooh. 603 00:25:46,350 --> 00:25:50,278 Ak Dievs. 604 00:25:50,278 --> 00:25:52,520 Jūs tiešām nozvejotas mani off aizsargs. 605 00:25:52,520 --> 00:25:53,703 >> DAVID Malan: Jums nav redzēt šo nāk? 606 00:25:53,703 --> 00:25:55,930 >> Steven: Es neredzēju šo nāk. 607 00:25:55,930 --> 00:25:58,756 Vai mēs vēlreiz sākotnējo jaudu? 608 00:25:58,756 --> 00:25:59,790 >> DAVID Malan: Tas ir labs jautājums. 609 00:25:59,790 --> 00:26:02,360 Tātad, mēs esam sava veida krāsotas sevi stūrī šeit. 610 00:26:02,360 --> 00:26:06,740 Tur tiešām nav labs, kas paredzēti Steven jo mēs esam piešķirti šo masīvu 611 00:26:06,740 --> 00:26:09,130 statiski, tā sakot, iekšā no datu struktūru. 612 00:26:09,130 --> 00:26:12,170 Un mēs esam būtībā grūti kodēta tā, lai būtu par trīs izmēru. 613 00:26:12,170 --> 00:26:14,170 Tātad, mēs nevaram īsti pārdalīt to. 614 00:26:14,170 --> 00:26:20,020 >> Mēs varētu, ja mēs devāmies atpakaļ, mēs jauna paplātes būt rādītājs, ka 615 00:26:20,020 --> 00:26:22,300 mēs pēc tam izmantot malloc rokā atmiņu līdz. 616 00:26:22,300 --> 00:26:25,050 Jo, ja mēs saņēmām atmiņas no kaudze ar malloc, mēs 617 00:26:25,050 --> 00:26:26,430 tad varētu atbrīvot to. 618 00:26:26,430 --> 00:26:29,630 Bet pirms atbrīvojot to, mēs varētu pārdalīt lielāku rieciens atmiņas, 619 00:26:29,630 --> 00:26:31,330 atjaunināt rādītāju, un tā tālāk. 620 00:26:31,330 --> 00:26:33,500 Bet tagad, tas ir patiešām labākais, ko mēs varam darīt. 621 00:26:33,500 --> 00:26:36,360 Push un pop ir iespējams gatavojas lai ir, kas signalizē dažas kļūdas. 622 00:26:36,360 --> 00:26:40,270 >> Tātad, piemēram, mūsu īstenošana no push varētu atgriezties bool kas 623 00:26:40,270 --> 00:26:42,390 iepriekš atgriezās taisnība, patiesība, taisnība. 624 00:26:42,390 --> 00:26:48,390 Bet ceturtā reize, tas nāksies atgriezties viltus, piemēram. 625 00:26:48,390 --> 00:26:48,540 Labi. 626 00:26:48,540 --> 00:26:49,540 Ļoti labi darīts. 627 00:26:49,540 --> 00:26:50,060 Apsveicu. 628 00:26:50,060 --> 00:26:52,160 Jūs esat nopelnījis savu stresa bumbu šodien. 629 00:26:52,160 --> 00:26:53,110 >> [Aplausi] 630 00:26:53,110 --> 00:26:54,382 >> Steven: Paldies. 631 00:26:54,382 --> 00:26:55,680 >> DAVID Malan: Paldies. 632 00:26:55,680 --> 00:26:59,740 Labi, tāpēc šķiet, ka tas nav daudz par soli uz priekšu, vai ne? 633 00:26:59,740 --> 00:27:01,410 Mēs aprakstīti šo datu struktūra. 634 00:27:01,410 --> 00:27:02,320 Tas ir bijis pārliecinoši, vai ne? 635 00:27:02,320 --> 00:27:03,200 Operētājsistēmas patīk. 636 00:27:03,200 --> 00:27:06,360 Acīmredzot Web var izmantot šo, un citi pieteikumi vēl. 637 00:27:06,360 --> 00:27:10,870 Bet ko stulba ierobežojums, ka mēs esam atpakaļ uz Kārtot nedēļas divām galējībām 638 00:27:10,870 --> 00:27:12,880 kur mēs esam fiksēta izmēra masīvus. 639 00:27:12,880 --> 00:27:15,010 >> Tātad tur ir tiešām pāris veidi, kā mēs varētu atrisināt šo. 640 00:27:15,010 --> 00:27:18,750 Mēs varētu dinamiski piešķirt masīvs, nevis grūti kodēšanas to, kā es esmu 641 00:27:18,750 --> 00:27:22,600 darīts šeit, bet gan atkārtoti paziņojot tas, tikai, lai būtu skaidrs, kā 642 00:27:22,600 --> 00:27:23,830 kaut kas līdzīgs šim. 643 00:27:23,830 --> 00:27:29,040 Int * paplātes, ne lemt uz jaudu vēl. 644 00:27:29,040 --> 00:27:35,460 Bet, kad es deklarēt kaudze citur manā kodu, es varētu saukt malloc, 645 00:27:35,460 --> 00:27:38,250 iegūt adresi rieciens atmiņu, un es varētu piešķirt 646 00:27:38,250 --> 00:27:39,980 šo adresi paplātes. 647 00:27:39,980 --> 00:27:43,340 >> Un tad, tāpēc, ka tas ir tikai rieciens atmiņu, es varētu turpināt izmantot kvadrātveida 648 00:27:43,340 --> 00:27:45,450 kronšteins notācija parastajā veidā. 649 00:27:45,450 --> 00:27:49,020 Jo atkal, tur ir sava veida šīs funkcionālā bloki ekvivalents un 650 00:27:49,020 --> 00:27:50,820 gabalos atmiņas, kas nāk atpakaļ no malloc. 651 00:27:50,820 --> 00:27:53,090 Mēs var ārstēt vienu, kā cits izmantojot rādītāja aritmētisko vai 652 00:27:53,090 --> 00:27:54,440 kvadrātiekavas notācija. 653 00:27:54,440 --> 00:27:55,660 Tāpēc tā ir viena pieeja. 654 00:27:55,660 --> 00:28:00,120 >> Bet kā gan citādi mēs varbūt īstenot šo pašu datu struktūru, iespējams? 655 00:28:00,120 --> 00:28:00,280 Labi? 656 00:28:00,280 --> 00:28:04,530 Es jūtu, ka mēs vienkārši atrisināt šo problēmas, piemēram, pirms nedēļas. 657 00:28:04,530 --> 00:28:08,860 Kāds bija šīs problēmas risinājums ka Steven uzbrauca? 658 00:28:08,860 --> 00:28:10,370 Tātad, kas saistītas saraksti, labi. 659 00:28:10,370 --> 00:28:13,410 >> Ja problēma ir tā, ka mēs esam krāsošana sevi kaktā, piešķirot 660 00:28:13,410 --> 00:28:17,580 iepriekš pārāk maz atmiņas, kas mums tad ir kaut kā tikt galā ar, labi, 661 00:28:17,580 --> 00:28:19,880 kāpēc ne tikai novērstu to, ka izdot pavisam? 662 00:28:19,880 --> 00:28:26,170 Kāpēc ne tikai deklarēt šķīvji būt rādītāju uz mezglu, ergo saistīts sarakstu, 663 00:28:26,170 --> 00:28:30,740 un tad vienkārši piešķirt jaunas mezglu katru reizi, kad Steven nepieciešams, lai ietilptu 664 00:28:30,740 --> 00:28:32,400 numurs uz datu struktūru. 665 00:28:32,400 --> 00:28:34,200 >> Tātad aina būtu jāmaina. 666 00:28:34,200 --> 00:28:38,220 Tas nav būs tik tīrs, un kā vienkārši, kā tikai masīva trīs ints. 667 00:28:38,220 --> 00:28:42,970 Tagad tas būs rādītājs struktūrai, un ka struktūrai gatavojas 668 00:28:42,970 --> 00:28:44,830 ir int un nākamo rādītāju. 669 00:28:44,830 --> 00:28:47,670 Tas būs vadīt, izmantojot šo rādītāju citai šādai struktūrai, kas 670 00:28:47,670 --> 00:28:48,600 vēl viens šāds struktūrai. 671 00:28:48,600 --> 00:28:50,560 Tātad aina būtu reāli iegūt mazliet Mesjē. 672 00:28:50,560 --> 00:28:52,950 Un mēs esam bultas sasaistīšana viss kopā. 673 00:28:52,950 --> 00:28:55,280 >> Bet tas ir labi, labi, jo mēs esam redzējuši, kā to izdarīt. 674 00:28:55,280 --> 00:28:58,180 Un, kad jūs iegūt apmierināti īsteno kaut kā saistīts 675 00:28:58,180 --> 00:29:01,450 sarakstu, kas jums jādara, ja jūs izvēlas īstenot hash tabulu 676 00:29:01,450 --> 00:29:05,120 atsevišķa Ķēžu par 6 p-komplekts, jūs varat izmantot to kā elements, vai 677 00:29:05,120 --> 00:29:08,870 sastāvdaļa, vai arī nulles runāt, procedūru, kaut kas jums runājot, jums 678 00:29:08,870 --> 00:29:12,560 izveidojāt savu puzzle gabals , kas pēc tam var atkārtoti. 679 00:29:12,560 --> 00:29:17,090 Tātad kompromisi, taču iespējamie risinājumi ka mēs esam patiesībā redzējis. 680 00:29:17,090 --> 00:29:20,560 >> Tātad diezgan bieži, jūs redzēt šo katru gadu vai diviem, kad Apple izlaidumi 681 00:29:20,560 --> 00:29:23,060 kaut ko jaunu, un visi trakie rindā ārpus Apple 682 00:29:23,060 --> 00:29:27,050 veikalu, lai nopirktu to mazsvarīgs jaunināt uz aparatūras. 683 00:29:27,050 --> 00:29:30,420 Es saku, tas ir OK, jo Es esmu viens no tiem cilvēkiem. 684 00:29:30,420 --> 00:29:35,140 Tātad, kāda veida datu struktūras varētu pārstāvēt šo realitāti? 685 00:29:35,140 --> 00:29:36,980 >> Nu, sauksim to rinda, līnija. 686 00:29:36,980 --> 00:29:40,270 Tātad Britu sauktu to parasti rinda anyway, tāpēc tas ir jauki nosaukumu. 687 00:29:40,270 --> 00:29:44,960 Un abas operācijas, kas rindā atbalsta mēs saucam par Enqueue 688 00:29:44,960 --> 00:29:48,900 darbību un dequeue darbību, , kas ir līdzīgas 689 00:29:48,900 --> 00:29:50,120 gars, lai push un pop. 690 00:29:50,120 --> 00:29:54,060 Tā ir tikai sava veida atšķiras konvencija, ko mēs esam aicinot tos. 691 00:29:54,060 --> 00:29:57,680 Bet, lai ierindod kaut ko nozīmē, lai pievienotu vai ievietot to uz datu struktūru. 692 00:29:57,680 --> 00:29:59,570 Lai dequeue līdzekļus, lai novērstu to. 693 00:29:59,570 --> 00:30:05,170 Bet, lai gan kaudze bija LIFO datu struktūra, rinda ir pirmais, 694 00:30:05,170 --> 00:30:06,740 pirmais ārā datu struktūras. 695 00:30:06,740 --> 00:30:10,050 >> Ja Jūs esat pirmais cilvēks rindā, Jums būs pirmā persona, lai iegūtu 696 00:30:10,050 --> 00:30:12,420 no līnijas, un iegādāties savu jauno ierīci. 697 00:30:12,420 --> 00:30:18,070 Iedomājieties, cik sajukums šie cilvēki būtu ja Apple vietā izmanto steku, lai 698 00:30:18,070 --> 00:30:21,250 Piemēram, lai īstenotu picking up savu jauno rotaļlietu. 699 00:30:21,250 --> 00:30:24,310 Tāpēc rindas jēgas, protams, un mēs varam domāt par visu veidu 700 00:30:24,310 --> 00:30:27,480 pieteikumi, iespējams, uz rindas, jo īpaši, ja jūs vēlaties godīgumu. 701 00:30:27,480 --> 00:30:30,040 Tātad, kā mēs varbūt īstenot šos kā datu struktūru? 702 00:30:30,040 --> 00:30:33,680 >> Nu, es ierosinu, ka mēs varētu nepieciešams to darīt šādā veidā. 703 00:30:33,680 --> 00:30:35,225 Tāpēc es esmu gatavojas tagad ir numuri. 704 00:30:35,225 --> 00:30:38,190 Tāpēc mēs saglabāt vienkāršu un ne vienmēr runājam attiecībā uz paplātes. 705 00:30:38,190 --> 00:30:40,220 Tikai cipari, ka cilvēki dabūt. 706 00:30:40,220 --> 00:30:43,760 Jauda ir gatavojas, atkal, noteikt Kopējais cilvēku skaits, kas var būt 707 00:30:43,760 --> 00:30:46,900 šī pozīcija, jo trīs vai kāda cita vērtība. 708 00:30:46,900 --> 00:30:50,760 >> Bet es ierosinu, ka man ir nepieciešams, lai izsekotu ne tikai no lieluma 709 00:30:50,760 --> 00:30:52,370 rinda, cik daudz lietas ir tajā. 710 00:30:52,370 --> 00:30:56,310 Tātad lielums ir pašreizējais lielums, ietilpība ir maksimālais izmērs. 711 00:30:56,310 --> 00:30:58,540 Tikai atkal, nomenklatūra pēc vienošanās. 712 00:30:58,540 --> 00:31:03,680 Kāpēc man ir nepieciešams papildu int iekšpusē no rindā, lai sekotu, kurš ir 713 00:31:03,680 --> 00:31:05,365 priekšējā rindā? 714 00:31:05,365 --> 00:31:07,930 715 00:31:07,930 --> 00:31:10,910 Kāpēc man ir nepieciešams to darīt šajā gadījumā? 716 00:31:10,910 --> 00:31:14,750 717 00:31:14,750 --> 00:31:16,190 >> Nu, cik ir šo attēlu mainīsies? 718 00:31:16,190 --> 00:31:19,280 Es varu droši atkārtoti visvairāk ar šo attēlu. 719 00:31:19,280 --> 00:31:21,480 Ļaujiet man iet uz priekšu un dzēst to, kas ir šeit. 720 00:31:21,480 --> 00:31:24,580 Mēs sniegsim tas nedaudz citu nosaukumu šeit. 721 00:31:24,580 --> 00:31:28,930 Let 's atbrīvoties no 17, pieņemsim atbrīvoties gada 9 ir, pieņemsim atbrīvoties no 3. 722 00:31:28,930 --> 00:31:30,410 Un pieņemsim pievienot vienu citu lietu. 723 00:31:30,410 --> 00:31:34,710 Es ierosinu, ka man ir nepieciešams, lai sekotu no saraksta priekšējais, kas ir tikai 724 00:31:34,710 --> 00:31:35,570 būs int kā labi. 725 00:31:35,570 --> 00:31:36,550 Un mēs ejam, lai saglabātu tā vienkārši. 726 00:31:36,550 --> 00:31:37,740 Nav saistīts saraksts tagad. 727 00:31:37,740 --> 00:31:40,900 >> Mēs jāatzīst, ka mēs spēsim sasist pret šo ierobežojumu. 728 00:31:40,900 --> 00:31:43,720 Bet ko es gribu redzēt notiks šoreiz? 729 00:31:43,720 --> 00:31:47,240 Tāpēc domāju, ka man iet uz priekšu, un pirmais cilvēks nāk uz augšu rindā, un 730 00:31:47,240 --> 00:31:48,560 tas ir skaitlis 9. 731 00:31:48,560 --> 00:31:49,680 Mums ir stresa bumbas. 732 00:31:49,680 --> 00:31:51,330 Es varu zagt, teiksim, divi vai trīs cilvēki? 733 00:31:51,330 --> 00:31:52,690 Viens, divi, trīs? 734 00:31:52,690 --> 00:31:53,120 Nāciet uz augšu. 735 00:31:53,120 --> 00:31:56,022 Jau no priekšpuses, jo mēs veiksim šo vienu ātri. 736 00:31:56,022 --> 00:31:59,415 >> Katrs no jums tagad būs ventilators zēns rindā pie Apple. 737 00:31:59,415 --> 00:32:03,970 738 00:32:03,970 --> 00:32:06,210 Jums nebūs saņem Apple aparatūru beigās šo though. 739 00:32:06,210 --> 00:32:06,500 Labi. 740 00:32:06,500 --> 00:32:09,430 Tātad jūs esat numuru 9, tu esi 17 numurs, numurs 22. 741 00:32:09,430 --> 00:32:12,130 Tie ir patvaļīgi skaitļi, piemēram, students ID vai plauktiņš. 742 00:32:12,130 --> 00:32:14,550 Un tikai brīdi, sāksim lai sāktu pievienot lietas. 743 00:32:14,550 --> 00:32:16,000 Un es palaist kuģa šeit šoreiz. 744 00:32:16,000 --> 00:32:19,570 >> Tātad šajā gadījumā, es esmu inicializēts priekšējais būt - 745 00:32:19,570 --> 00:32:22,380 Man tiešām nav īsti aprūpi, ko priekšējais ir, jo izmērs ir nulle. 746 00:32:22,380 --> 00:32:24,480 Tātad tas varētu arī vienkārši ir jautājuma zīme. 747 00:32:24,480 --> 00:32:26,170 Tie visi ir jautājuma zīmes. 748 00:32:26,170 --> 00:32:29,880 Tāpēc tagad mēs sākam reāli redzēt dažus cilvēki uzliku up pie veikala. 749 00:32:29,880 --> 00:32:33,320 >> Tātad, ja skaitlis 9, tu esi pirmais tur 05:00, iet uz priekšu un rindā, 750 00:32:33,320 --> 00:32:34,210 vai naktī pirms. 751 00:32:34,210 --> 00:32:34,580 Labi. 752 00:32:34,580 --> 00:32:35,940 Tātad tagad 9 ir šeit. 753 00:32:35,940 --> 00:32:37,940 Tātad, 9 ir priekšā no saraksta. 754 00:32:37,940 --> 00:32:41,440 Tāpēc es esmu gatavojas iet uz priekšu un atjaunināt lielums šiem pašreizējiem datiem 755 00:32:41,440 --> 00:32:44,740 struktūra nav 0 vairs, bet, lai būt 1. 756 00:32:44,740 --> 00:32:47,630 Es esmu gatavojas īstenot 9 pie priekšējais no saraksta. 757 00:32:47,630 --> 00:32:51,020 Ļaujiet man iet uz priekšu un pārslēgtu ekrānu lai mēs varētu redzēt pagātni mums šeit. 758 00:32:51,020 --> 00:32:53,220 >> Un tagad to, ko es gribu likt priekšā? 759 00:32:53,220 --> 00:32:56,240 Es esmu gatavojas, lai sekotu, ka priekšējā rindā tieši tagad 760 00:32:56,240 --> 00:32:58,570 ir 0 atrašanās vietu. 761 00:32:58,570 --> 00:33:00,510 Jo to, kas ir blakus, kas notiks? 762 00:33:00,510 --> 00:33:03,000 Nu, pieņemsim, ka tagad es ierindod 17, kā arī. 763 00:33:03,000 --> 00:33:04,510 Tātad hop rindā tur. 764 00:33:04,510 --> 00:33:07,060 Un atkal, no durvju veida, lai veikals būs šeit. 765 00:33:07,060 --> 00:33:08,700 Tāpēc tagad es esmu pievienojusi 17. 766 00:33:08,700 --> 00:33:10,810 Un, pat ja šie puiši bloķē ekrāns, tas ir OK, 767 00:33:10,810 --> 00:33:12,300 jo mēs varam redzēt šeit. 768 00:33:12,300 --> 00:33:12,910 Žēl. 769 00:33:12,910 --> 00:33:13,810 >> Mērķauditorija: Mēs varam virzīties - 770 00:33:13,810 --> 00:33:14,660 >> DAVID Malan: Nē, tas ir OK. 771 00:33:14,660 --> 00:33:16,000 Tas ir milzīgs tur augšā. 772 00:33:16,000 --> 00:33:18,580 Tātad 17 tagad ir iekšā rindā. 773 00:33:18,580 --> 00:33:21,332 Man ir nepieciešams atjaunināt, kas lauki tagad, lai gan? 774 00:33:21,332 --> 00:33:23,210 Labi, noteikti izmēri. 775 00:33:23,210 --> 00:33:26,430 Un kā par priekšā? 776 00:33:26,430 --> 00:33:27,040 Labi, nē. 777 00:33:27,040 --> 00:33:30,200 Priekšējais nedrīkst mainīt, jo atšķirībā no kaudze, mēs 778 00:33:30,200 --> 00:33:31,370 vēlaties, lai saglabātu taisnīgumu. 779 00:33:31,370 --> 00:33:35,150 Tātad, ja 9 nāca pirmkārt, mēs vēlamies 9 līdz būt pirmais no līnijas 780 00:33:35,150 --> 00:33:36,420 un uz veikalu. 781 00:33:36,420 --> 00:33:37,220 >> Faktiski, pieņemsim redzēt, ka. 782 00:33:37,220 --> 00:33:42,235 Pirms mēs ievietot 22, pieņemsim iet uz priekšu un dequeue 9. 783 00:33:42,235 --> 00:33:42,970 Kāds ir Jūsu vārds atkal? 784 00:33:42,970 --> 00:33:43,680 >> Mērķauditorija: Džeiks. 785 00:33:43,680 --> 00:33:45,440 >> DAVID Malan: Džeiks dodas , kas dequeued tagad. 786 00:33:45,440 --> 00:33:48,050 Tātad jums iet uz veikalu. 787 00:33:48,050 --> 00:33:49,880 Un izlikties, ka veikalā ir vairāk nekā tur. 788 00:33:49,880 --> 00:33:51,970 Tātad tagad, ko nepieciešams - dit-dit-dit! 789 00:33:51,970 --> 00:33:53,400 Kas ir nepieciešams notikt tagad? 790 00:33:53,400 --> 00:33:54,490 Dizaina lēmums. 791 00:33:54,490 --> 00:33:56,825 Tātad nav slikts instinkts, bet - kāds ir tavs vārds atkal? 792 00:33:56,825 --> 00:33:57,090 >> Mērķauditorija: David. 793 00:33:57,090 --> 00:33:57,500 >> DAVID Malan: David. 794 00:33:57,500 --> 00:33:58,810 Tātad, ko Dāvids darīt? 795 00:33:58,810 --> 00:34:02,590 Viņš mēģina kārtot ar noteiktu datus struktūra un pārvietot no viņa atrašanās vietas 796 00:34:02,590 --> 00:34:04,100 uz Jake bijušajā vietā. 797 00:34:04,100 --> 00:34:06,740 Un tas ir labi, ja mēs esam gatavi pieņemt, ka 798 00:34:06,740 --> 00:34:08,199 īstenošanas detaļu. 799 00:34:08,199 --> 00:34:11,100 Bet vispirms, pieņemsim atjaunināt datus struktūru, pirms mēs to darām. 800 00:34:11,100 --> 00:34:14,139 Tā kā es neesmu patika ideja par visu cilvēki, novirzot šajā rindā. 801 00:34:14,139 --> 00:34:17,360 >> Tas nav liels galā, ja Dāvids dara to ar viens solis, bet atkal, domāju, ka atpakaļ uz 802 00:34:17,360 --> 00:34:20,360 kad mēs esam bija astoņi brīvprātīgie par posms, un mēs esam darījuši, piemēram, ievietojot 803 00:34:20,360 --> 00:34:22,600 kārtot, kur mums bija jāsāk pārvietojas visi apkārt. 804 00:34:22,600 --> 00:34:23,790 Kas ieguva dārgi, vai ne? 805 00:34:23,790 --> 00:34:28,330 Tas padara mani verdziskums par lielo O no N, O liels no n brusas vēlreiz. 806 00:34:28,330 --> 00:34:30,650 Tas nav sajūta, piemēram, ideāls rezultāts. 807 00:34:30,650 --> 00:34:32,080 >> Tāpēc pieņemsim tikai atjaunināt to. 808 00:34:32,080 --> 00:34:35,120 Tā izmērs no rindas vairs nav 2. 809 00:34:35,120 --> 00:34:37,090 Tas tagad ir vienkārši 1. 810 00:34:37,090 --> 00:34:40,360 Bet es tagad var atjaunināt kaut Man nav atjaunināt iepriekš, 811 00:34:40,360 --> 00:34:41,130 priekšējais no saraksta. 812 00:34:41,130 --> 00:34:45,420 Es varētu teikt, ir tas, ka vieta 1? 813 00:34:45,420 --> 00:34:49,770 Tāpēc tagad mums ir atkritumu vērtība šeit, atkritumu vērtību šeit, un David 814 00:34:49,770 --> 00:34:51,469 vidū šo atkritumu. 815 00:34:51,469 --> 00:34:54,980 Bet datu struktūra joprojām ir neskarts. 816 00:34:54,980 --> 00:34:58,540 >> Un patiesībā, man nav pat nepieciešams, lai mainīt Jake bijušais numuru 817 00:34:58,540 --> 00:35:00,460 9, jo, kas rūpējas. 818 00:35:00,460 --> 00:35:04,470 Man ir pietiekami daudz informācijas tagad izmērs, ka es zinu, tur ir viena persona 819 00:35:04,470 --> 00:35:05,030 šajā rindā. 820 00:35:05,030 --> 00:35:08,340 Un es zinu, ka šī persona ir 1 vietā, nevis 0. 821 00:35:08,340 --> 00:35:09,760 Es neesmu skaitīšanas. 822 00:35:09,760 --> 00:35:11,300 Tātad, 1, kā arī. 823 00:35:11,300 --> 00:35:13,410 Tātad datu struktūra joprojām ir OK. 824 00:35:13,410 --> 00:35:14,330 >> Nu, kas notiek tālāk? 825 00:35:14,330 --> 00:35:15,010 Let 's Enqueue - 826 00:35:15,010 --> 00:35:15,370 kāds ir tavs vārds? 827 00:35:15,370 --> 00:35:16,160 >> Mērķauditorija: Callen. 828 00:35:16,160 --> 00:35:16,580 >> DAVID Malan: Callen. 829 00:35:16,580 --> 00:35:20,770 Let 's ierindod ar Callen, un 22 tagad rindā. 830 00:35:20,770 --> 00:35:22,300 Tātad tagad, ko ir jāmaina šeit? 831 00:35:22,300 --> 00:35:24,380 Priekšējais nav gatavojas mainīties, protams. 832 00:35:24,380 --> 00:35:27,160 Lielums būs jāmaina, lai būtu 2 atkal. 833 00:35:27,160 --> 00:35:31,590 Un 22 beidzas šeit, 9 joprojām ir klāt, bet tas ir faktiski 834 00:35:31,590 --> 00:35:32,600 atkritumu vērtība tagad. 835 00:35:32,600 --> 00:35:35,910 Tas ir tikai palieka no Jake pagātni. 836 00:35:35,910 --> 00:35:39,200 >> Tāpēc tagad, kas notiek, ja Es dequeue David? 837 00:35:39,200 --> 00:35:41,560 Viens no pēdējā operācija, dequeue Deivids. 838 00:35:41,560 --> 00:35:46,070 Mēs varētu pāriet, bet es ierosinu pieņemsim darīt tik maz darbu, cik vien iespējams. 839 00:35:46,070 --> 00:35:50,280 Tagad mans datu struktūra iet atpakaļ izmēru 2-1. 840 00:35:50,280 --> 00:35:53,730 Bet priekšā rindā tagad kļūst par 2. 841 00:35:53,730 --> 00:35:56,640 Man nav nepieciešams mainīt šos skaitļus tikai vēl, tāpēc, ka viņi 842 00:35:56,640 --> 00:35:58,230 tikai atkritumu vērtības. 843 00:35:58,230 --> 00:35:59,720 >> Bet tagad kas notiek? 844 00:35:59,720 --> 00:36:03,280 Pieņemsim, ka es ierindod sevi, 26? 845 00:36:03,280 --> 00:36:05,890 Es jūtu, ka man pieder vairāk nekā šeit. 846 00:36:05,890 --> 00:36:06,890 Tāpēc es esmu to enqueued. 847 00:36:06,890 --> 00:36:08,760 Tāpēc es veida pieder šeit. 848 00:36:08,760 --> 00:36:11,300 Un, pat ja jums nav gluži novērtēt to vizuāli uz skatuves, 849 00:36:11,300 --> 00:36:15,075 jo mums ir daudz vietas, es būtu nevar stāvot šeit, kāpēc? 850 00:36:15,075 --> 00:36:16,290 >> Mērķauditorija: Tu esi no robežas. 851 00:36:16,290 --> 00:36:16,370 >> DAVID Malan: pa labi. 852 00:36:16,370 --> 00:36:16,940 Es esmu no robežas. 853 00:36:16,940 --> 00:36:19,330 Esmu indeksē pēc robežas šī masīva. 854 00:36:19,330 --> 00:36:23,420 Es patiešām vajadzētu būt vienā no trīs iespējamās vietas. 855 00:36:23,420 --> 00:36:25,150 Tagad, kur ir visvairāk dabas doties? 856 00:36:25,150 --> 00:36:27,760 Es ierosinu mēs piesaistīto nedēļu viens triks. 857 00:36:27,760 --> 00:36:30,150 Mod operators, procentos. 858 00:36:30,150 --> 00:36:36,850 Tā kā es esmu tehniski stāvot 3 vieta, bet man 3 mod jaudu, 859 00:36:36,850 --> 00:36:40,250 līdz 3, procentu zīme, 3 - 860 00:36:40,250 --> 00:36:40,970 jauda ir 3. 861 00:36:40,970 --> 00:36:41,720 Kas tas ir? 862 00:36:41,720 --> 00:36:43,700 Kas ir atlikums, kad jūs sadalīt 3 ar 3? 863 00:36:43,700 --> 00:36:44,070 0. 864 00:36:44,070 --> 00:36:48,140 >> Tātad, kas liek man bija Džeiks bija, kas ir tiešām laba. 865 00:36:48,140 --> 00:36:50,370 Tāpēc tagad īstenošanu Šī lieta dodas uz 866 00:36:50,370 --> 00:36:51,250 būt mazliet galvassāpes. 867 00:36:51,250 --> 00:36:53,740 Tas patiešām ir tikai viena līnija galvassāpes, koda. 868 00:36:53,740 --> 00:36:56,580 Bet vismaz tagad tur ir atkritumu vērtība šeit, bet tur ir divas 869 00:36:56,580 --> 00:36:57,910 likumīgu Ints šeit. 870 00:36:57,910 --> 00:37:04,160 Un es apgalvot, ka tagad mēs esam darījuši tieši tas, kas mums jādara tik ilgi, kamēr 871 00:37:04,160 --> 00:37:08,600 mēs mainām to, Jake vērtība bija par 26. 872 00:37:08,600 --> 00:37:12,110 >> Mums tagad ir pietiekami daudz informācijas vēl lai saglabātu integritāti 873 00:37:12,110 --> 00:37:13,060 Šīs datu struktūru. 874 00:37:13,060 --> 00:37:17,160 Mēs joprojām esam veida no luck, kad mēs vēlas, lai ievietotu četras vai vairāk kopā 875 00:37:17,160 --> 00:37:20,740 elementi, bet es varu vismaz dara diezgan efektīva izmantošana šī konstante 876 00:37:20,740 --> 00:37:21,740 laiks, patiesībā. 877 00:37:21,740 --> 00:37:27,150 Man nav jāuztraucas par novirzot ikviens, kā Dāvida slīpuma bija. 878 00:37:27,150 --> 00:37:30,816 >> Kādi jautājumi par skursteņi, vai šajā rindā? 879 00:37:30,816 --> 00:37:32,184 >> Mērķauditorija: Vai iemesls, kāpēc jums ir nepieciešams, izmēru, lai jūs zināt, 880 00:37:32,184 --> 00:37:34,010 kur ir persona? 881 00:37:34,010 --> 00:37:34,770 >> DAVID Malan: Tieši tā. 882 00:37:34,770 --> 00:37:38,230 Man vajag zināt izmēru masīva tāpēc, ka man ir nepieciešams zināt, kā tieši 883 00:37:38,230 --> 00:37:41,940 daudzas no šīm vērtībām ir likumīga, un tā, ka es varu atrast, kur likt 884 00:37:41,940 --> 00:37:42,800 nākamais cilvēks. 885 00:37:42,800 --> 00:37:43,300 Tieši tā. 886 00:37:43,300 --> 00:37:44,580 Izmērs ir - 887 00:37:44,580 --> 00:37:46,360 patiesībā, mēs neesam atjaunināt šo ziņu. 888 00:37:46,360 --> 00:37:48,380 I pievienotās sevi pie 26. 889 00:37:48,380 --> 00:37:51,760 Lielums ir tagad, nevis 1, 2 bet. 890 00:37:51,760 --> 00:37:57,780 Tātad tagad tas tiešām palīdz man atrast galva no saraksta, kas nav 0, ne 891 00:37:57,780 --> 00:37:59,250 1, bet ir 2. 892 00:37:59,250 --> 00:38:01,665 Priekšējā saraksta patiešām ir numurs 22. 893 00:38:01,665 --> 00:38:05,120 Jo viņš nāca pirmais, lai viņš būtu ielaisti veikalā pirms manis, 894 00:38:05,120 --> 00:38:08,780 kaut gan vizuāli es stāvu tuvāk pie veikala. 895 00:38:08,780 --> 00:38:09,220 >> Visas tiesības? 896 00:38:09,220 --> 00:38:12,410 Kārta aplausi šiem puišiem un mēs ļaujiet viņiem no turienes ārā. 897 00:38:12,410 --> 00:38:17,090 >> [Aplausi] 898 00:38:17,090 --> 00:38:18,150 >> DAVID Malan: Es varētu ļaut Jūs saglabāt paplāti. 899 00:38:18,150 --> 00:38:20,760 Mēs varētu redzēt, kas notiek, ja jūs vēlaties, bet varbūt ne. 900 00:38:20,760 --> 00:38:21,590 Labi. 901 00:38:21,590 --> 00:38:25,380 Tātad, ko tagad tas atstāj mūs? 902 00:38:25,380 --> 00:38:28,900 Nu, ļaujiet man ieteikt, ka tur ir dažas citas datu struktūras mēs varētu 903 00:38:28,900 --> 00:38:33,810 sāk pievienot mūsu rīku komplektu, kas būs patiesībā var būt diezgan, diezgan svarīgs, jo 904 00:38:33,810 --> 00:38:35,270 mēs nodoties mājas sīkumi. 905 00:38:35,270 --> 00:38:38,150 Kas atkal, ir sava veida savienojuma līdz koku veidā 906 00:38:38,150 --> 00:38:40,550 kaut ko sauc DOM, dokumentu objekta modeli. 907 00:38:40,550 --> 00:38:42,370 Bet mēs redzēsim vairāk ka pirms ilgi. 908 00:38:42,370 --> 00:38:46,260 >> Ļaujiet man ieteikt definitionally, ka mēs zvaniet koks tagad, ko jūs varētu zināt, kā 909 00:38:46,260 --> 00:38:48,820 vairāk ģimenes koku, kur jūs ir dažas sencis pie 910 00:38:48,820 --> 00:38:49,790 saknes koku. 911 00:38:49,790 --> 00:38:54,480 Patriarhālā vai matriarch pie pašā augšā koku. 912 00:38:54,480 --> 00:38:56,700 Bez laulātā, šajā gadījumā. 913 00:38:56,700 --> 00:39:00,940 Bet tagad mums ir, ko mēs saucam bērni, kas ir mezgli, kas karājas 914 00:39:00,940 --> 00:39:05,480 pie kreisās bērnu vai labo bērns, bultas, kas attēlotas šeit. 915 00:39:05,480 --> 00:39:10,490 >> Citiem vārdiem sakot, jo koka datu struktūru ar datoru, koks ir nulle 916 00:39:10,490 --> 00:39:11,480 vai vairāk mezglu. 917 00:39:11,480 --> 00:39:13,500 Ja tas ir vismaz viena mezglā, ka sauc saknes. 918 00:39:13,500 --> 00:39:15,700 Tas ir lietas, redzes, kas mēs izdarīt augšpusē. 919 00:39:15,700 --> 00:39:20,280 Un tas mezglā, tāpat kā jebkuru citu mezglu, var ir nulle, viens, divi vai, vai trīs, 920 00:39:20,280 --> 00:39:23,600 vai tomēr daudzi bērni datu struktūra atbalsta. 921 00:39:23,600 --> 00:39:29,150 Šajā gadījumā, sakņu, glabāšanai vērtība vienam, ir divi bērni, 2 un 3, 922 00:39:29,150 --> 00:39:33,020 tāpēc mēs parasti saucam 2 kreiso Bērnam un 3 labi bērnam. 923 00:39:33,020 --> 00:39:36,940 >> Un pēc tam, kad mēs nokļūt uz leju līdz 5, 6, un 7, 6 varētu saukt vidū bērns. 924 00:39:36,940 --> 00:39:38,940 Ja jums ir četri bērni, tā izpaužas mulsinoši. 925 00:39:38,940 --> 00:39:42,260 Tāpēc mēs pārtraukt izmantot šāda veida no īsceļu mutiski. 926 00:39:42,260 --> 00:39:44,580 Bet tas patiešām ir tikai ģimenes koku. 927 00:39:44,580 --> 00:39:48,880 Un lapas šeit ir mezgli ka pašiem nav bērnu. 928 00:39:48,880 --> 00:39:52,540 Tie karājas pie apakšā koka. 929 00:39:52,540 --> 00:39:56,940 >> Tātad, kā mēs varbūt īstenot koku, ka ir tikai divi bērni maksimāli? 930 00:39:56,940 --> 00:39:58,410 Mēs to saucam par bināro koku. 931 00:39:58,410 --> 00:40:00,960 Bi atkal nozīmē divas, šajā gadījumā, piemēram, ar bināro. 932 00:40:00,960 --> 00:40:04,830 Un tāpēc tas var būt nulle, viens, vai divi bērni maksimāli. 933 00:40:04,830 --> 00:40:08,650 >> Es ierosinu, ka mēs īstenojam mezglu šajā struktūrā ar int n, 934 00:40:08,650 --> 00:40:11,910 un pēc tam divas norādes, viens sauc pa kreisi, viens sauc labi. 935 00:40:11,910 --> 00:40:14,830 Bet tie ir tikai jauki patvaļīgu konvencijām. 936 00:40:14,830 --> 00:40:18,170 Un kas ir jauki tagad, jo īpaši, ja jums veida cīnījās konceptuāli ar 937 00:40:18,170 --> 00:40:21,300 rekursijas, vai arī domāja, ka tas nebija tiešām risinājums, lai kaut ko, 938 00:40:21,300 --> 00:40:23,120 it īpaši, ja jūs varētu pietrūkt atmiņas. 939 00:40:23,120 --> 00:40:26,600 Tagad, kad mēs runājam par datiem struktūras un algoritmi, kas ļauj 940 00:40:26,600 --> 00:40:31,030 mums, lai šķērsotu un manipulēt ar viņiem, Izrādās, ka rekursija nāk atpakaļ 941 00:40:31,030 --> 00:40:34,240 daudz vairāk pārliecinoša ja ne skaists veids. 942 00:40:34,240 --> 00:40:38,670 >> Tātad, šo es ierosinu, ir īstenošana ar meklēšanas funkciju. 943 00:40:38,670 --> 00:40:39,870 Dotas divas ieejas - 944 00:40:39,870 --> 00:40:41,570 tāpēc domāju, ka par to kā melnā kaste. 945 00:40:41,570 --> 00:40:46,560 Ņemot vērā, divas ieejas, n, int, un rādītāju uz koku, rādītājs 946 00:40:46,560 --> 00:40:50,020 mezglā, vai tiešām saknes koku, es apgalvo, ka šo funkciju var atgriezties 947 00:40:50,020 --> 00:40:53,530 patiesa vai nepatiesa, ka vērtība n ir iekšpusē no šī koka. 948 00:40:53,530 --> 00:40:55,210 >> Kas ir iekšā šajā melnajā kastē? 949 00:40:55,210 --> 00:40:57,440 Nu, četras filiāles. 950 00:40:57,440 --> 00:40:58,385 Vispirms tikai pārbaudes. 951 00:40:58,385 --> 00:41:00,490 Ja koks ir nulle, tikai atgriezties viltus. 952 00:41:00,490 --> 00:41:04,580 Ja nav mezglu, nav n, tur nav skaitlis, vienkārši atgriezties viltus. 953 00:41:04,580 --> 00:41:12,330 Ja tomēr, n, vērtība, ko jūs meklējat par, ir mazāks nekā koka arrow n, un 954 00:41:12,330 --> 00:41:15,180 tikai, lai būtu skaidrs, ko tas nozīmē, kad Es rakstīt koku un tad arrow 955 00:41:15,180 --> 00:41:18,150 apzīmējums, n? 956 00:41:18,150 --> 00:41:18,690 Tieši tā. 957 00:41:18,690 --> 00:41:21,970 Tas nozīmē, ka dereference rādītāju sauc par koku. 958 00:41:21,970 --> 00:41:26,750 Iet tur, un pēc tam iegūt iekšpusē no ka mezglu un saņemt savu lauku ar nosaukumu n. 959 00:41:26,750 --> 00:41:30,810 Un tad salīdzināt faktisko n, kas bija nonākt Meklēt pret to. 960 00:41:30,810 --> 00:41:35,390 >> Tātad, ja n ir mazāks nekā, ka n vērtība no koku mezglā pati, labi, 961 00:41:35,390 --> 00:41:36,720 Ko tas nozīmē? 962 00:41:36,720 --> 00:41:40,690 Tas nozīmē, ka nekas no pirmā acu uzmetiena. 963 00:41:40,690 --> 00:41:40,900 Labi? 964 00:41:40,900 --> 00:41:45,560 Tāpat kā, ja jums ir masīvs vērtības, jūs varētu piemērot bināro 965 00:41:45,560 --> 00:41:48,290 meklēt kā sava veida plaisas un iekarot. 966 00:41:48,290 --> 00:41:51,790 Bet ko pieņēmums tomēr mums ir nepieciešams veikt par bināro meklēt darbu vispār 967 00:41:51,790 --> 00:41:54,510 telefona grāmatā, un agrāk piemēri? 968 00:41:54,510 --> 00:41:55,530 >> Kā ir sakārtoti. 969 00:41:55,530 --> 00:41:59,490 Tātad, pieņemsim precizēt definīciju koku šeit nevar būt tikai koks, kas var 970 00:41:59,490 --> 00:42:00,880 ir kāda bērnu skaitu. 971 00:42:00,880 --> 00:42:04,700 Ne tikai bināro koku, kas var ir 0, 1, 2 vai maksimāli. 972 00:42:04,700 --> 00:42:09,700 Bet kā bināro meklēšanas koku, vai BST, kas ir tikai iedomātā veids, kā pateikt 973 00:42:09,700 --> 00:42:15,430 bināro koku tā, lai katrs mezgls ir kreisi bērns, ja tāds ir, ir 974 00:42:15,430 --> 00:42:16,830 mazāk nekā mezglā. 975 00:42:16,830 --> 00:42:20,170 Un katra mezgla tiesības bērns, ja klāt, ir lielāks 976 00:42:20,170 --> 00:42:21,740 nekā mezglā pati. 977 00:42:21,740 --> 00:42:25,200 >> Tātad, citiem vārdiem sakot, ja jūs izdarīt koks out, visiem numuriem ir 978 00:42:25,200 --> 00:42:30,620 Rūpīgi balstīts piemēram, tas, lai tad, ja Jums ir 55, jo saknes, 33 var iet 979 00:42:30,620 --> 00:42:33,090 tā pa kreisi, jo tas ir mazāk nekā 55. 980 00:42:33,090 --> 00:42:36,430 77 var doties uz tās tiesībām, jo tas ir lielāks nekā 55. 981 00:42:36,430 --> 00:42:40,750 Bet tagad paziņojums, to pašu definīciju, tas ir rekursīvs definīciju mutiski, 982 00:42:40,750 --> 00:42:42,600 ir pieteikties uz 33. 983 00:42:42,600 --> 00:42:47,610 33 kreisā bērns nedrīkst būt mazāks par to, un 33 tiesības bērns, 44, ir jābūt 984 00:42:47,610 --> 00:42:48,580 lielāks par to. 985 00:42:48,580 --> 00:42:51,670 >> Tātad tas ir bināro meklēšanas koku, un Es ierosinu, izmantojot mazliet 986 00:42:51,670 --> 00:42:53,910 rekursijas, mēs tagad var atrast n. 987 00:42:53,910 --> 00:42:59,160 Tātad, ja n ir mazāks nekā vērtība N, kas ir arī Pašreizējā mezglā, es iešu 988 00:42:59,160 --> 00:43:04,090 priekšu un punt, tā sakot, un tikai atpakaļ neatkarīgi atbilde ir 989 00:43:04,090 --> 00:43:08,470 meklējot n gada koks kreisās malas bērns. 990 00:43:08,470 --> 00:43:11,370 Paziņojums atkal, šī funkcija tikai sagaida mezglu zvaigzne, 991 00:43:11,370 --> 00:43:12,780 rādītāju uz mezglu. 992 00:43:12,780 --> 00:43:17,360 Tātad, protams, es varu tikai darīt koku bultiņa pa kreisi, kas novedīs 993 00:43:17,360 --> 00:43:18,400 man citu mezglu. 994 00:43:18,400 --> 00:43:19,480 Bet kas ir tas mezgls? 995 00:43:19,480 --> 00:43:22,820 >> Nu, saskaņā ar šo deklarāciju, Kreisajā pusē ir tikai rādītājs, tā, ka vienkārši 996 00:43:22,820 --> 00:43:27,090 nozīmē, ka es esmu iet uz meklēšanas funkciju atšķirīgs rādītājs, proti, 997 00:43:27,090 --> 00:43:30,750 viens, kas apzīmē mana kreisā bērna koks. 998 00:43:30,750 --> 00:43:36,040 Tātad, šajā gadījumā, rādītāju līdz 33, ja tas ir mūsu paraugs ieejas Tikmēr, ja 999 00:43:36,040 --> 00:43:40,740 n ir lielāks nekā vērtība N, pie Pašreizējais mezglu koku, tad es esmu 1000 00:43:40,740 --> 00:43:43,370 gatavojas iet uz priekšu un noslēgt derības ar otru virziens un tikai teikt, man nav 1001 00:43:43,370 --> 00:43:47,280 zina, ja šī vērtība n ir no koka, bet es zinu, ja tā ir, tas ir uz leju manu 1002 00:43:47,280 --> 00:43:49,090 labi filiāle, lai runāt. 1003 00:43:49,090 --> 00:43:53,120 Tātad, ļaujiet man zvanu rekursīvi meklēt, nokārtojot n atkal, bet garāmejot 1004 00:43:53,120 --> 00:43:54,580 rādītāju uz manu labo bērnam. 1005 00:43:54,580 --> 00:44:00,020 >> Citiem vārdiem sakot, ja es esmu šobrīd 55 un es esmu meklē 99, es zinu, ka 99 1006 00:44:00,020 --> 00:44:04,270 ir lielāks par 55, tā tāpat kā es tore tālrunis grāmatu nedēļas atpakaļ, un mēs 1007 00:44:04,270 --> 00:44:07,140 gāja labi, tāpat mēs esam gatavojas doties tieši šeit. 1008 00:44:07,140 --> 00:44:11,960 Un es nezinu, vai tas ir pie manas labās bērnu, un tas nav, 77 ir tur, bet 1009 00:44:11,960 --> 00:44:13,210 Es zinu, tas šajā virzienā. 1010 00:44:13,210 --> 00:44:18,770 Tāpēc es aicinu meklēt pie manas labās bērnam, 77, un ļaujiet meklēšanas skaitlis, kas no 1011 00:44:18,770 --> 00:44:24,950 tur, ja 99 šajā patvaļīgs piemērs ir patiesībā. 1012 00:44:24,950 --> 00:44:26,900 >> Else, kas ir gala lieta? 1013 00:44:26,900 --> 00:44:28,620 Ja koks ir Null ir viens gadījums. 1014 00:44:28,620 --> 00:44:31,890 Ja n ir mazāks nekā tekošā mezgla vērtība ir cits gadījums. 1015 00:44:31,890 --> 00:44:35,120 Ja n ir lielāks nekā pašreizējais mezgla vērtība ir trešais gadījums. 1016 00:44:35,120 --> 00:44:38,250 Kas ir ceturtais un pēdējais gadījums? 1017 00:44:38,250 --> 00:44:39,480 Es domāju, ka mēs esam ārā no gadījumiem, vai ne? 1018 00:44:39,480 --> 00:44:44,690 Tas ir, ka n ir Pašreizējais mezglu, ka es esmu par. 1019 00:44:44,690 --> 00:44:49,640 >> Tātad, ja es esmu meklē 55 šajā brīdī stāstā, ka filiāle 1020 00:44:49,640 --> 00:44:51,780 koks varētu atgriezties taisnība. 1021 00:44:51,780 --> 00:44:55,380 Tātad, kas ir interesanti ir tas, ka mēs tiešām, atšķirībā no nedēļas agrāk, mēs veida 1022 00:44:55,380 --> 00:44:56,740 gada ir divas bāzes lietas. 1023 00:44:56,740 --> 00:44:58,300 Un tie nav būt visi augšpusē. 1024 00:44:58,300 --> 00:45:01,390 Top ir bāzes scenārijs, jo, ja koks ir nulle, tur neko darīt. 1025 00:45:01,390 --> 00:45:03,410 Tikai atpakaļ grūti kodētu vērtība nepatiesa. 1026 00:45:03,410 --> 00:45:07,400 >> Apakšējā filiāle ir sava veida noklusējuma, kurā, ja mēs esam pārbaudīts 1027 00:45:07,400 --> 00:45:11,550 null, mēs esam pārbaudīts, ja tas būtu pa kreisi, bet tā nedrīkst būt, mēs esam 1028 00:45:11,550 --> 00:45:14,640 pārbauda, ​​ja tas ir labi, bet tas nevajadzētu būt, skaidri tas ir jābūt 1029 00:45:14,640 --> 00:45:15,870 tieši tur, kur mēs esam. 1030 00:45:15,870 --> 00:45:16,780 Tas ir bāzes scenārijs. 1031 00:45:16,780 --> 00:45:19,920 Tātad tur ir divas rekursīvas gadījumi iestiprināta tur pa vidu. 1032 00:45:19,920 --> 00:45:21,630 Bet es varētu būt rakstīts šis jebkurā secībā. 1033 00:45:21,630 --> 00:45:24,520 Es tikai domāju, tas veida filca dabas vispirms pārbaudīt iespējamo kļūdas, 1034 00:45:24,520 --> 00:45:28,340 tad pārbaudiet kreisi, tad pārbaudiet labi, tad pieņemam, ka jūs esat pie mezglā 1035 00:45:28,340 --> 00:45:30,630 jūs tiešām meklē. 1036 00:45:30,630 --> 00:45:36,240 >> Tātad, kāpēc tas varētu būt noderīga? 1037 00:45:36,240 --> 00:45:37,910 Tātad izrādās - 1038 00:45:37,910 --> 00:45:42,110 un ļaujiet man pāriet uz teaser šeit tas ir internetā. 1039 00:45:42,110 --> 00:45:44,920 Mēs ejam, lai sāktu lietot nav programmēšanas valoda sākumā, bet 1040 00:45:44,920 --> 00:45:46,030 iezīmēšanas valoda. 1041 00:45:46,030 --> 00:45:48,740 Iezīmēšanas valoda, kas ir viens, kas ir līdzīgi garā programmas izstrādes 1042 00:45:48,740 --> 00:45:51,715 valoda, bet tas nedod jums spēja izteikt sevi loģiski. 1043 00:45:51,715 --> 00:45:55,070 Tas tikai dod jums iespēju izteikt sevi strukturāli. 1044 00:45:55,070 --> 00:45:57,960 >> Ja jūs vēlaties, lai kaut ko lapā, mājas lapā? 1045 00:45:57,960 --> 00:45:59,200 Kādā krāsā jūs vēlaties, lai to? 1046 00:45:59,200 --> 00:46:00,950 Kas fonta izmērs jūs vēlaties, lai to? 1047 00:46:00,950 --> 00:46:02,970 Ko vārdi jūs faktiski vēlaties par mājas lapā? 1048 00:46:02,970 --> 00:46:04,060 Tātad, tas ir iezīmēšanas valoda. 1049 00:46:04,060 --> 00:46:07,690 Bet tad mēs ļoti ātri ieviest JavaScript, kas ir pilntiesīgs 1050 00:46:07,690 --> 00:46:08,560 programmēšanas valodu. 1051 00:46:08,560 --> 00:46:12,530 Ļoti līdzīgs sintaktiski pēc izskata līdz C, bet tas būs daži 1052 00:46:12,530 --> 00:46:15,200 jauki, jaudīgākas, vairāk lietotājam draudzīgu iezīmes. 1053 00:46:15,200 --> 00:46:18,050 >> Un viens no vilšanos pie šī punkts pusgadu ir tas, ka mēs 1054 00:46:18,050 --> 00:46:22,065 drīzumā īstenos Speller ir daudz mazāk rindiņas kodu, izmantojot citas valodas 1055 00:46:22,065 --> 00:46:25,580 nekā C pati par sevi pieļauj, bet iemesls ir mēs drīz saprast. 1056 00:46:25,580 --> 00:46:27,750 Šī būs pirmā šāda veida mājas lapā. 1057 00:46:27,750 --> 00:46:30,120 Tas būs pilnīgi underwhelming, pirmais viens mēs veikt. 1058 00:46:30,120 --> 00:46:31,400 Tas būs vienkārši teikt, hello pasaule. 1059 00:46:31,400 --> 00:46:34,010 Bet, ja jūs nekad neesmu redzējis pirms, tas ir HTML, 1060 00:46:34,010 --> 00:46:35,670 Hiperteksta iezīmēšanas valoda. 1061 00:46:35,670 --> 00:46:39,310 >> Ja jūs iet uz noteiktu izvēlnes opciju lielākā daļa jebkuru pārlūku, jebkurā tīmekļa lapā 1062 00:46:39,310 --> 00:46:43,160 internets, jūs varat redzēt HTML ka daži cilvēki rakstīja 1063 00:46:43,160 --> 00:46:44,400 izveidot šo mājas lapu. 1064 00:46:44,400 --> 00:46:47,850 Un tas, iespējams, neizskatās tik īsu vai kā veikls kā šis. 1065 00:46:47,850 --> 00:46:51,400 Bet tas sekos modelis no šiem atvērtām iekavām un slīpsvītras un 1066 00:46:51,400 --> 00:46:53,660 burti un potenciāli numuri. 1067 00:46:53,660 --> 00:46:56,770 >> Es domāju, ka man dot jums teaser par to, ko jūs varētu darīt 1068 00:46:56,770 --> 00:46:57,950 ņemot CS50. 1069 00:46:57,950 --> 00:47:02,620 Ļaujiet man iet uz cs.harvard.edu / aplaupīt, mūsu pašu Rob Bowden mājas lapa. 1070 00:47:02,620 --> 00:47:06,080 Viņš padarīja šo par mums. 1071 00:47:06,080 --> 00:47:07,490 Tātad, jūs drīz varētu darīt. 1072 00:47:07,490 --> 00:47:10,660 Un arī, ko jūs dzirdējāt šorīt - 1073 00:47:10,660 --> 00:47:12,480 ko esat dzirdējuši šorīt - 1074 00:47:12,480 --> 00:47:13,780 >> [Hamster DANCE MUSIC] 1075 00:47:13,780 --> 00:47:15,702 >> - You'Ll varētu veikt šo. 1076 00:47:15,702 --> 00:47:16,790 Kas mūs sagaida trešdien. 1077 00:47:16,790 --> 00:47:17,791 Mēs redzēsim jūs tam. 1078 00:47:17,791 --> 00:47:22,950 >> [Hamster DANCE MUSIC] 1079 00:47:22,950 --> 00:47:24,300 DAVID Malan: Nākamajā CS50 - 1080 00:47:24,300 --> 00:47:31,670