1 00:00:00,000 --> 00:00:11,460 2 00:00:11,460 --> 00:00:12,250 >> DAVID MALAN: Eskubidea guztiak. 3 00:00:12,250 --> 00:00:13,860 Ongi etorri atzera CS50. 4 00:00:13,860 --> 00:00:16,190 8 aste honetan hasiera da. 5 00:00:16,190 --> 00:00:21,320 Eta gogoratzen duten arazo multzo 5 amaitu erronka bat pixka batekin. 6 00:00:21,320 --> 00:00:25,210 Beraz, zure guztiak berreskuratu duzu suposatuz irakaskuntza Fellows eta CA-ren argazkiak 7 00:00:25,210 --> 00:00:30,480 card.raw fitxategian, eskubidea zaude Orain aurkituko pertsona horiek guztiak, eta 8 00:00:30,480 --> 00:00:34,510 ko zortea irabazlea etxera oinez egingo batekin Gauza horiek, jauzi mugimendua 9 00:00:34,510 --> 00:00:37,450 Gailu ditzakezun final erabili proiektuak, adibidez. 10 00:00:37,450 --> 00:00:39,860 >> Hau, urtero, eta oina creepiness pixka bat. 11 00:00:39,860 --> 00:00:43,480 Eta, beraz, zer egin nuela pentsatu nuen share zurekin ohar duten zenbait 12 00:00:43,480 --> 00:00:47,370 desagertu atzera eta aurrera baino gehiago berandu zerrenda langileek. 13 00:00:47,370 --> 00:00:51,110 Adibidez, besterik gabe, bart, aurrekontua egiteko unquote, langile bat 14 00:00:51,110 --> 00:00:55,000 kideak, "izan dut ikaslea erronda bat nire atean nirekin argazki bat ateratzeko. 15 00:00:55,000 --> 00:00:59,020 Stal, esango dut ". Hasi nahiko deskriptiboa eta, ondoren, mugitu dugu 16 00:00:59,020 --> 00:01:02,830 on, ordu bat edo, beraz, geroago, "bat izan nuen ikaslea niretzat atala ondoren 17 00:01:02,830 --> 00:01:06,080 eta gure izenak eta argazki guztiak izan zuen paper-orri batzuk. "Ondo da. 18 00:01:06,080 --> 00:01:09,230 Beraz, antolatzen, baina ez duten guztiak creepy oraindik. 19 00:01:09,230 --> 00:01:12,520 >> Ondoren, "out izan dut herri asteburu honetan, eta noiz itzuli dut, ez dago bat izan zen, 20 00:01:12,520 --> 00:01:12,630 nire 21 00:01:12,630 --> 00:01:16,740 logelak. "[barreak] 22 00:01:16,740 --> 00:01:20,410 DAVID MALAN: langile aurrekontua Hurrengoa kide, "ikasle bat etorri zen nire etxea at 23 00:01:20,410 --> 00:01:25,330 4 Somerville goizean AM. "Hurrengoa langileak, "lortu nire San hotel dut 24 00:01:25,330 --> 00:01:30,016 Francisco eta ikaslea izan zen zain hiru DSLRs dituzten lobby hartan dit. " 25 00:01:30,016 --> 00:01:31,510 Kamera-mota. 26 00:01:31,510 --> 00:01:34,980 "Ez nago nahiz langileek seihileko honetan, baina, ikasle bat nire etxean sartu honetan 27 00:01:34,980 --> 00:01:40,480 goiz eta grabatutako gauza osoa Google Glass-ekin. "Eta, azkenik, 28 00:01:40,480 --> 00:01:43,650 "Gutxienez 12 pertsona izan ziren irrikitan niretzat noiz dut nire zain 29 00:01:43,650 --> 00:01:44,800 Limo, eta, ondoren, I 30 00:01:44,800 --> 00:01:46,970 esnatu. "Ondo da. 31 00:01:46,970 --> 00:01:57,690 Beraz, argazkien artean, maiatzaren gisa dituzu gogoratzen dira, ikaskide hau hemen, nor zaren 32 00:01:57,690 --> 00:02:01,850 baliteke Milo Banana, bizi gisa ezagutzen Lauren Carvalho, gure burua 33 00:02:01,850 --> 00:02:02,905 Fellow irakasten. 34 00:02:02,905 --> 00:02:05,170 Milo, Milo, zatoz hona mutil. 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 Axola, Google-Glass zuen jantzita, eta beraz, erakusten dizkizugu hori guztia egin ondoren. 38 00:02:12,230 --> 00:02:16,190 Beraz, hau da, Milo nahi baduzu argazki bat hartu berarekin ondoren. 39 00:02:16,190 --> 00:02:18,240 Kanpora begiratu nahi baduzu ikusleek ez zuten. 40 00:02:18,240 --> 00:02:19,430 Ados. 41 00:02:19,430 --> 00:02:20,200 Hori ona metrajea. 42 00:02:20,200 --> 00:02:22,556 Beno, Milo Banana. 43 00:02:22,556 --> 00:02:23,941 Oh, ez da hori egiteko. 44 00:02:23,941 --> 00:02:29,020 >> [Barreak] 45 00:02:29,020 --> 00:02:29,470 >> Ados. 46 00:02:29,470 --> 00:02:34,550 Hitz bat eta ondoren zer datza aurretik, beraz, trantsizio dugu hasten delako, 47 00:02:34,550 --> 00:02:38,410 aste honetan, zehazki, bat C-tik Komando-lerroa PHP eta ingurumena 48 00:02:38,410 --> 00:02:42,720 Ikusteko Javascript-a eta SQL eta HTML eta CSS web ingurune bat, izan dugu 49 00:02:42,720 --> 00:02:44,490 duzun ekipamendu guztiekin gehiago ezagutza 50 00:02:44,490 --> 00:02:46,010 potentzial amaierako proiektuak. 51 00:02:46,010 --> 00:02:49,240 Horretarako norabidean, jakina dauka mintegiak edukitzearen tradizioa 52 00:02:49,240 --> 00:02:50,950 gaiak tangentzialak dira ikastaroan. 53 00:02:50,950 --> 00:02:54,330 Oso programazio eta zerikusia app garapena eta abar, baina 54 00:02:54,330 --> 00:02:57,010 ez nahitaez aztertu arabera Ikastaroaren berezko ikasketa plana. 55 00:02:57,010 --> 00:03:00,250 >> Beraz, bada bat interesa izan dezakezu edo aurtengo mintegiak gehiago, 56 00:03:00,250 --> 00:03:02,530 cs50.net/seminar erregistratu. 57 00:03:02,530 --> 00:03:06,170 Badira adineko mintegiak cs50.net/seminars at. 58 00:03:06,170 --> 00:03:10,620 Zerrendan, eta, beraz, aurten buruzko Amazing dira Ruby Web Apps on batekin 59 00:03:10,620 --> 00:03:13,580 Rails, zein alternatiba bat da PHP hizkuntzan. 60 00:03:13,580 --> 00:03:14,900 Linguistika konputazionala. 61 00:03:14,900 --> 00:03:18,710 To IOS, hau da, sarrera plataforma en iPhone erabiltzen eta 62 00:03:18,710 --> 00:03:19,850 iPad garatzeko. 63 00:03:19,850 --> 00:03:22,890 Ikusteko Javascript-a Web Apps, estali egingo dugu hori, baina, mintegi honetan, joan ahal izango duzu 64 00:03:22,890 --> 00:03:24,070 Xehetasun gehiago sartu. 65 00:03:24,070 --> 00:03:27,390 >> Jauzi Mugimenduan, beraz, benetan dugu zenbait gure jauzi Mugimenduan etorritako lagunak, 66 00:03:27,390 --> 00:03:29,160 enpresan bertan, gurekin. 67 00:03:29,160 --> 00:03:31,800 Bihar, hain zuzen ere, ematen eskuak-on bat mintegia, bada 68 00:03:31,800 --> 00:03:33,320 zure interesekoak. 69 00:03:33,320 --> 00:03:38,770 Meteor.js, teknika alternatibo bat egiteko Ikusteko Javascript-a erabiliz, ez da nabigatzaile bat da, 70 00:03:38,770 --> 00:03:39,970 baina zerbitzari batean. 71 00:03:39,970 --> 00:03:42,110 Node.js, hau da, oso Ildo horretan, bai. 72 00:03:42,110 --> 00:03:43,650 Sleek Android diseinua. 73 00:03:43,650 --> 00:03:46,990 Android oso ezaguna alternatiboa izateaz to iOS eta Windows Telefonoa 74 00:03:46,990 --> 00:03:48,790 eta beste plataforma mugikorrak. 75 00:03:48,790 --> 00:03:51,180 Web eta segurtasuna defentsa aktiboa. 76 00:03:51,180 --> 00:03:54,590 >> Beraz, hain zuzen ere, nahi duzu bada honetan parte hartzeko, let me 77 00:03:54,590 --> 00:03:55,840 Egiteko honen oharra. 78 00:03:55,840 --> 00:03:57,790 Oso pozik dagoela esan gara gure jauzi lagunekin 79 00:03:57,790 --> 00:03:59,140 Mugimenduan, zein startup bat da - 80 00:03:59,140 --> 00:04:01,300 gailu hau benetan bakarrik etorri duela hilabete batzuk out - 81 00:04:01,300 --> 00:04:05,960 graciously dohaintzan eman ditu, besteak beste, 30 gailu du ikasle askok bezala, klase, bada 82 00:04:05,960 --> 00:04:08,670 like hardware maileguan zinela seihilekoaren bukaera aldera, eta erabili 83 00:04:08,670 --> 00:04:10,390 benetako azken proiektua. 84 00:04:10,390 --> 00:04:11,890 Hainbat hizkuntzatan onartzen dira. 85 00:04:11,890 --> 00:04:16,040 Horietako bat ere ez C, horietako inor PHP, beraz, konturatzen bat edo gehiago mintegi horien 86 00:04:16,040 --> 00:04:16,899 baliteke interes frogatzeko. 87 00:04:16,899 --> 00:04:19,730 Eta horiek guztiak behar diren filmatu gertaera ez zarela gai 88 00:04:19,730 --> 00:04:21,380 pertsona hasi dira. 89 00:04:21,380 --> 00:04:25,000 Ordutegia izango iragarri bidez email solidoa dugu gela gisa. 90 00:04:25,000 --> 00:04:28,460 >> Eta, azkenik, nahi baduzu projects.cs.50.net, hau da, web 91 00:04:28,460 --> 00:04:31,450 urtero gonbidatzen ditugu mantentzen dugu batetik, komunitatean, fakultatean, lagunok, 92 00:04:31,450 --> 00:04:36,420 sailetan, langileak, eta biak CS50 Kanpo batean 93 00:04:36,420 --> 00:04:37,730 proposatzen proiektuaren ideia. 94 00:04:37,730 --> 00:04:39,050 Interesgarriak diren gauzak, ikasle taldeak. 95 00:04:39,050 --> 00:04:40,600 De sailaren interes gauzak. 96 00:04:40,600 --> 00:04:43,990 Beraz, ez dago buelta egiten ari zaren borrokan ari bada zer duzun bezala ziurgabetasun batekin 97 00:04:43,990 --> 00:04:46,700 nahi aurre zeuk litzateke. 98 00:04:46,700 --> 00:04:51,760 >> Beraz, azken denbora bat sartu dugu, dudarik gabe, konplexuagoa datuak egitura genuke baino 99 00:04:51,760 --> 00:04:53,300 iragan aste ikusi. 100 00:04:53,300 --> 00:04:56,550 Dira genuke array erabiliz nahiko zorionez gisa erabilgarria bada 101 00:04:56,550 --> 00:04:58,160 sinplista datuak egitura. 102 00:04:58,160 --> 00:05:00,570 Ondoren, hauek sartu ditugu, eta horrek jakina lotuta daude zerrendak. 103 00:05:00,570 --> 00:05:05,470 Eta zer motibazio nagusietako bat izan zen Datuen egitura hau aurkezten? 104 00:05:05,470 --> 00:05:06,930 Bai? 105 00:05:06,930 --> 00:05:07,250 Zer da hori? 106 00:05:07,250 --> 00:05:08,080 >> Ikusleak: dinamikoa tamaina. 107 00:05:08,080 --> 00:05:09,040 >> DAVID MALAN: dinamikoa tamaina. 108 00:05:09,040 --> 00:05:11,890 Beraz, array, berriz, behar duzu bere jakin, aldez aurretik, neurri 109 00:05:11,890 --> 00:05:12,740 berau esleitu duzu. 110 00:05:12,740 --> 00:05:14,380 Zerrenda lotuta ere, ez duzu izan duten jakin ahal izateko. 111 00:05:14,380 --> 00:05:17,610 Besterik malloc, edo, oro har, ahal baduzu, esleitu gehigarri bat 112 00:05:17,610 --> 00:05:20,720 nodoa, nolabait esateko, edonoiz duzu nahi datu gehiago txertatzeko. 113 00:05:20,720 --> 00:05:22,670 Nodo eta ez du aldez aurretik esanahia. 114 00:05:22,670 --> 00:05:25,580 Besterik ez da deskribatzeko termino generiko zenbait edukiontzi mota ari gara 115 00:05:25,580 --> 00:05:29,610 Gure datu-egitura gordetzeko erabiltzen interes-elementu batzuk, honetan duen 116 00:05:29,610 --> 00:05:31,750 Kasu gertatuko osokoak izan. 117 00:05:31,750 --> 00:05:33,160 >> Baina ez da beti bat denerako. 118 00:05:33,160 --> 00:05:38,070 Beraz, datuen tamaina dinamikoa lortuko dugu egitura, baina zer egiten dugu prezio ordaindu? 119 00:05:38,070 --> 00:05:40,040 Zer zerrendak lotutako arazotxo da? 120 00:05:40,040 --> 00:05:41,006 Bai? 121 00:05:41,006 --> 00:05:41,980 >> Ikusleak: memoria gehiago behar du. 122 00:05:41,980 --> 00:05:44,240 >> DAVID MALAN: gehiago behar da memoria, zer? 123 00:05:44,240 --> 00:05:46,440 >> Ikusleak: [INAUDIBLE]. 124 00:05:46,440 --> 00:05:47,050 >> DAVID MALAN: Horixe. 125 00:05:47,050 --> 00:05:50,460 Beraz, orain erakusleak ditugu hartuz osagarriak memoria dugu aldez aurretik duten 126 00:05:50,460 --> 00:05:53,040 ez zuen behar, izan ere, abantaila array bat, noski, hau da, 127 00:05:53,040 --> 00:05:54,860 Alboko dena da, atzera ra itzuli itzuli, eta horrek 128 00:05:54,860 --> 00:05:56,380 ematen dizu ausazko sarbidea. 129 00:05:56,380 --> 00:06:00,710 Besterik kortxetea erabiliz delako idazkera, edo gehiago, teknikoki erakuslea 130 00:06:00,710 --> 00:06:03,580 aritmetika, oso erraza da, gainera, edozein sartu duzu 131 00:06:03,580 --> 00:06:05,700 denbora etengabeko elementuak. 132 00:06:05,700 --> 00:06:08,975 Eta, hain zuzen ere, horretan laguntza mota da prezio beste garela bat ordainduz 133 00:06:08,975 --> 00:06:09,760 lotuta zerrenda. 134 00:06:09,760 --> 00:06:13,890 >> Zer exekutatzen denbora gertatzen Search antzeko zerbait, nahi dut, nahi izanez gero, 135 00:06:13,890 --> 00:06:17,270 balio batzuk aurkitu eta barruan lotuta zerrenda? 136 00:06:17,270 --> 00:06:20,290 Zer gertatzen da nire denborak ez du bihurtu? 137 00:06:20,290 --> 00:06:21,560 Big n O. 138 00:06:21,560 --> 00:06:24,060 Gainera nahi izanez gero ordenatuko? 139 00:06:24,060 --> 00:06:25,440 Zer datuak egitura ordenatuko da bada? 140 00:06:25,440 --> 00:06:28,640 Ezin big baino hobeto egin dut N O bilatzeko? 141 00:06:28,640 --> 00:06:31,700 Ez, izan ere, kasu horretan, txarrena izan daiteke Oso ondo ordenatuta, baina kopurua 142 00:06:31,700 --> 00:06:32,950 handia izan daiteke bilatzen ari zaren. 143 00:06:32,950 --> 00:06:35,370 100 zenbakia da, eta hori izan liteke guztiak izango dira gerta 144 00:06:35,370 --> 00:06:36,410 amaieran bidea. 145 00:06:36,410 --> 00:06:39,950 Eta ezin duzu bakarrik sartzeko lotuta ezartzeko honetan zerrendaren arabera 146 00:06:39,950 --> 00:06:42,690 nodoa bere lehenengo bidea, zauden oraindik nolako zorte daudelarik. 147 00:06:42,690 --> 00:06:47,450 Gauza osoa zeharkatzeko behar duzu lehen ordena aurkituko iraungo 148 00:06:47,450 --> 00:06:49,150 100 bezalako balio handia duten. 149 00:06:49,150 --> 00:06:51,350 Edo ez bada zehazteko ere ez dago. 150 00:06:51,350 --> 00:06:55,960 >> Beraz, ezin dugu zer datuak batean algoritmoa egitura itxura hau? 151 00:06:55,960 --> 00:06:59,460 Ezin dugu bilaketa bitarra delako, bilaketa bitarra eskatzen genuen 152 00:06:59,460 --> 00:07:00,740 ausazko sarbidea. 153 00:07:00,740 --> 00:07:04,500 Besterik ezin izan dugu kokapen batetik jauzi jarraitu beharrik gabe kokapena 154 00:07:04,500 --> 00:07:07,080 inprimakia ogi apurrak hauek erakusleak horiek guztiak. 155 00:07:07,080 --> 00:07:08,300 >> Orain, nola hau ezartzeko dugu? 156 00:07:08,300 --> 00:07:12,830 Beno, pantaila galtzen dugu hemen, bada azkar dezakegu reimplement datuak honetan 157 00:07:12,830 --> 00:07:13,440 egitura - 158 00:07:13,440 --> 00:07:15,670 nire idazkera ez da guztia handia da hemen, baina saiatu gara. 159 00:07:15,670 --> 00:07:22,030 Beraz typedef struct, eta zer egin nuen nahi gauza hori deitzeko hemen? 160 00:07:22,030 --> 00:07:22,960 Nodoa. 161 00:07:22,960 --> 00:07:24,580 Beraz, gurekin hasi naiz. 162 00:07:24,580 --> 00:07:27,860 Eta orain, zer egin behar du barruan izan banaka duten egitura datuak 163 00:07:27,860 --> 00:07:28,430 lotuta dago zerrendan? 164 00:07:28,430 --> 00:07:29,950 Zenbat eremuetan? 165 00:07:29,950 --> 00:07:30,450 >> Beraz, bi. 166 00:07:30,450 --> 00:07:31,570 Nahiko erraza da bat. 167 00:07:31,570 --> 00:07:33,050 Beraz, int n. 168 00:07:33,050 --> 00:07:35,930 Eta n ezer dugu deitu nahi izan dugu, baina int bat izan beharko litzateke Oraindik badugu 169 00:07:35,930 --> 00:07:37,660 ints zerrenda lotuta ezartzeko. 170 00:07:37,660 --> 00:07:41,920 Eta orain, zer da bigarrena Eremu izatea? 171 00:07:41,920 --> 00:07:43,460 Egitura nodo *. 172 00:07:43,460 --> 00:07:50,570 Beraz, bada, egitura nodo *, eta gero, ez dut nik honek deitu ere edozein dela ere nahi dut, 173 00:07:50,570 --> 00:07:53,510 baina argi deitu dut , hurrengo dugun bezala egiten. 174 00:07:53,510 --> 00:07:55,270 Eta, ondoren, nire kizkur giltza itxi dut. 175 00:07:55,270 --> 00:08:00,700 >> Eta orain, azken gisa, Nodo behera jarri dut hemen. 176 00:08:00,700 --> 00:08:03,830 Baina nago, hau bada bat bezala geratuko da Nodo, zergatik beraz izateaz kezkatu dut 177 00:08:03,830 --> 00:08:07,320 Luze hemen egitura geratuko nodo * ondoan, aurrean 178 00:08:07,320 --> 00:08:09,210 besterik nodo * hurrengoa? 179 00:08:09,210 --> 00:08:09,904 Bai? 180 00:08:09,904 --> 00:08:12,810 >> Ikusleak: [INAUDIBLE]. 181 00:08:12,810 --> 00:08:14,050 >> DAVID MALAN: Horixe. 182 00:08:14,050 --> 00:08:14,530 Zehazki. 183 00:08:14,530 --> 00:08:18,320 C benetan hartzen duzulako, eta hitzez hitz soilik nodo definizioa ikusten 184 00:08:18,320 --> 00:08:21,230 Hemen modu behera, ezin duzu da erreferentzia hemen. 185 00:08:21,230 --> 00:08:24,760 Beraz preemptive moduko hau dugu adierazpena hemen, hau da, Admittedly 186 00:08:24,760 --> 00:08:25,390 more verbose. 187 00:08:25,390 --> 00:08:27,810 Egitura nodoa, horrek esan nahi du Orain, ezin dugu sartu 188 00:08:27,810 --> 00:08:29,760 datu-egituraren barruan. 189 00:08:29,760 --> 00:08:33,370 >> Eta alde batera bezala, honetan ere pixka bat gehiago subjektiboa bilakatu da gaur egun, 190 00:08:33,370 --> 00:08:36,230 izarra teknikoki joan daiteke hemen, hemen joan ahal izango da, eta, ahal 191 00:08:36,230 --> 00:08:37,179 nahiz eta erdian joan. 192 00:08:37,179 --> 00:08:39,890 Hartutako dugu, gida estilo en Ikastaroan, jarri batzarra 193 00:08:39,890 --> 00:08:42,299 izarra eskubidea datuak hurrengo mota bat, kasu honetan, eta, 194 00:08:42,299 --> 00:08:43,460 egitura nodoa izango litzateke. 195 00:08:43,460 --> 00:08:46,620 Testu-liburuak, baina askotan konturatzen eta online erreferentziak, hain zuzen ere, dezakezu 196 00:08:46,620 --> 00:08:48,450 ikusten da beste aldetik. 197 00:08:48,450 --> 00:08:52,200 Baina konturatzen bai benetan lan egin eta, besterik gabe, behar duzu 198 00:08:52,200 --> 00:08:52,970 koherentea. 199 00:08:52,970 --> 00:08:53,580 >> Guztiak eskubidea. 200 00:08:53,580 --> 00:08:55,630 Beraz, hori izan da gure adierazpena egitura nodoaren. 201 00:08:55,630 --> 00:08:59,430 Baina gero gehiago egiten hasi ginen sofistikatua gauzak. 202 00:08:59,430 --> 00:09:03,410 Adibidez, sartzea erabaki genuen hash taula bat bezalako zerbait. 203 00:09:03,410 --> 00:09:08,160 Beraz, hemen tamaina n hash taula bat da, 0 indexatutako n utzi gainean 204 00:09:08,160 --> 00:09:09,690 ken behean utzi 1. 205 00:09:09,690 --> 00:09:11,640 Hau egiaztapen bat izan liteke ezer taula. 206 00:09:11,640 --> 00:09:15,340 Baina, zer gauza mota genuen hitz hash taula bat erabiliz buruz? 207 00:09:15,340 --> 00:09:18,370 Gordetzeko, zer? 208 00:09:18,370 --> 00:09:18,800 >> Izenak. 209 00:09:18,800 --> 00:09:20,870 Izenak egin izan dugun bezala, azken aldiz egin dugu. 210 00:09:20,870 --> 00:09:22,200 Eta benetan, ezer gorde ahal izango duzu. 211 00:09:22,200 --> 00:09:24,640 Eta hau ikusiko dugu berriro PHP eta Javascript-en. 212 00:09:24,640 --> 00:09:28,550 Hash taula bat Suitzako moduko polita da Army labana hori gordetzeko aukera ematen dizu 213 00:09:28,550 --> 00:09:33,690 nahiko askoz edozein dela ere barruan nahi duzu balioak dituzten gakoak by lotzen ditu. 214 00:09:33,690 --> 00:09:34,770 Balioak dituzten gakoak. 215 00:09:34,770 --> 00:09:37,800 >> Azken hau simple kasuan, gure gakoak dira zenbakiak. 216 00:09:37,800 --> 00:09:40,380 Egiaztapen bat ari gara ezartzeko array gisa taula. 217 00:09:40,380 --> 00:09:43,500 Eta, beraz, gakoak 0 dira, 1, 2, eta abar. 218 00:09:43,500 --> 00:09:47,200 Eta, beraz, gizakiak bezala, gu, azken erabaki aste hori, zer, Oraindik badugu badakizu 219 00:09:47,200 --> 00:09:50,410 denda izenak joan, dezagun, besterik gabe, edonola, baina nahiko arrazoiz, 220 00:09:50,410 --> 00:09:54,680 Alice bere gain, A-izen bat dela, soilik sartu behar dira 0 ordenatuta. 221 00:09:54,680 --> 00:09:58,030 Eta Bob, B, izena, indexatu egingo da 1, eta abar. 222 00:09:58,030 --> 00:10:02,490 Beraz, sarrera arteko mapping bat izan genuen, horrek kateak dira, eta hash balioa 223 00:10:02,490 --> 00:10:04,560 kokapenak, diren zenbakiak. 224 00:10:04,560 --> 00:10:07,740 >> Beraz, prozesu hori, oro har, ezagutzen hash funtzio bat, eta benetan dezakezu 225 00:10:07,740 --> 00:10:09,130 ezartzea da kodean. 226 00:10:09,130 --> 00:10:12,080 Nahi nuen hash funtzio bat ezarri nahi baduzu horrela, ez dugu zehatz-mehatz zer 227 00:10:12,080 --> 00:10:17,070 besterik gabe, azken aldiz, deskribatzen, I might deklaratzeko funtzio bat hartzen du, baita 228 00:10:17,070 --> 00:10:18,330 Adibidez, sarrera - 229 00:10:18,330 --> 00:10:22,190 eta egin dezagun honetan hemen pantaila. 230 00:10:22,190 --> 00:10:26,180 Nahi nuen egiaztapen bat ezarri nahi baduzu funtzioa, esan liteke I 231 00:10:26,180 --> 00:10:27,410 honen antzeko zerbait. 232 00:10:27,410 --> 00:10:29,030 >> Int bat itzuli behar da joan. 233 00:10:29,030 --> 00:10:33,600 Deitu behar hash da joan, eta bere argumentu bat onartzen joan 234 00:10:33,600 --> 00:10:38,920 katea, edo gehiago, egokia dugu, gaur egun, eta esan char *, deitu s gara. 235 00:10:38,920 --> 00:10:43,840 Eta, ondoren, funtzio hori guztia egiteko, azken finean, int bat itzuli da. 236 00:10:43,840 --> 00:10:45,990 Orain, nola egiten du hori gerta ez dira hain argi. 237 00:10:45,990 --> 00:10:49,510 Hau ezartzeko gabe noa error egiaztatzea osatzeko oraintxe. 238 00:10:49,510 --> 00:10:55,740 Besterik ez dut esan blindly joan, bueltatu edozein dela ere s tarte 0 da, ken, 239 00:10:55,740 --> 00:10:58,850 esan dezagun, kapital eta koma. 240 00:10:58,850 --> 00:10:59,960 >> Erabat hautsi. 241 00:10:59,960 --> 00:11:02,620 Ez da perfektua delako ko, zer da s null bada? 242 00:11:02,620 --> 00:11:04,000 Gauza txarrak dira gertatuko. 243 00:11:04,000 --> 00:11:07,940 Bi, zer galtzen honetan gutun lehen izena ez da maiuskulaz? 244 00:11:07,940 --> 00:11:09,860 Hori ez da piztu joan ondo bai. 245 00:11:09,860 --> 00:11:11,970 Minuskulaz gutun bat izan liteke edo ez, gutun bat. 246 00:11:11,970 --> 00:11:15,520 Beraz, erabat hobetu da hemen, baina honen oinarrizko ideia da. 247 00:11:15,520 --> 00:11:19,010 >> Zer azken astean deskribatu dugu hitzez gisa besterik Alice mapak egiteko prozesu bat 248 00:11:19,010 --> 00:11:23,360 0 eta Bob eta 1 adieraz daiteke zalantzarik gabe, gehiago formulaically C gisa 249 00:11:23,360 --> 00:11:24,320 funtziona hemen. 250 00:11:24,320 --> 00:11:28,630 Izeneko berriro fidatu, kate bat bezala hartzen du sarrera, eta, ondoren, nolabait egiten du zerbait 251 00:11:28,630 --> 00:11:31,020 sarrera duten irteera bat sortzeko asmoz. 252 00:11:31,020 --> 00:11:34,130 Ez gure kutxa beltzak ez bezala deskribapena dugun luzea egin. 253 00:11:34,130 --> 00:11:36,550 Ez dakit nola egongo den jakiteko kanpaia azpian lanean. 254 00:11:36,550 --> 00:11:40,120 >> Arazo multzo 6, erronka bat da, zeuk erabakitzen duzu zer 255 00:11:40,120 --> 00:11:41,920 egingo al hash funtzioa izan daiteke? 256 00:11:41,920 --> 00:11:45,760 Zer beltz horren barruan izango da kutxa, eta, ustez, bat izango duzue 257 00:11:45,760 --> 00:11:50,380 gehixeago hau interesgarria baino, eta behin betiko gehiago akats joera 258 00:11:50,380 --> 00:11:53,180 jakin hori baino egiaztapena ezartzeko. 259 00:11:53,180 --> 00:11:54,580 >> Baina arazoak, sor daiteke, ezta? 260 00:11:54,580 --> 00:11:57,760 Dugu horrelako egitura bat izanez gero, datuak ko, zer arazo bat da 261 00:11:57,760 --> 00:12:01,600 exekutatu ahal duzun denbora baino gehiago sartu duzun gero eta gehiago sartu izenak 262 00:12:01,600 --> 00:12:02,880 hash taula? 263 00:12:02,880 --> 00:12:04,630 Talkak lortu duzu, ezta? 264 00:12:04,630 --> 00:12:07,560 Zer behar duzu Alice eta Aaron bada, bi pertsona beren izenak gertatu 265 00:12:07,560 --> 00:12:08,190 A-rekin hasi? 266 00:12:08,190 --> 00:12:11,660 Duten galdera segurutzat jotzen dute, non jarri du, hala nola, bigarren izena? 267 00:12:11,660 --> 00:12:15,050 >> Beno, naively baliteke besterik jarri non Bob da, baina, ondoren, Bob da 268 00:12:15,050 --> 00:12:17,300 mota screwed saiatu izanez gero sartu haren izena, eta hurrengo 269 00:12:17,300 --> 00:12:18,240 ez zion gela ez da. 270 00:12:18,240 --> 00:12:21,400 Beraz, Bob non Charlie da jarri dezakezu, eta imajinatu hau oso azkar dezakezu 271 00:12:21,400 --> 00:12:23,020 nahaspila bat pixka bat sartu devolving. 272 00:12:23,020 --> 00:12:25,600 Zerbait lineal, azkenean, non besterik ez dute gauza osoa bilatu 273 00:12:25,600 --> 00:12:28,190 Alice edo Bob bila edo Aaron edo Charlie. 274 00:12:28,190 --> 00:12:33,230 >> Beraz, horren ordez, proposatu dugun ordez, besterik linealki espazio irekita probak 275 00:12:33,230 --> 00:12:36,450 eta izenak plopping ez dugu proposatu fancier hurbilketa bat. 276 00:12:36,450 --> 00:12:41,740 Inplementatu oraindik duen hash taula bat indize array, baina datu-mota 277 00:12:41,740 --> 00:12:44,500 indizeak horiek orain erakusleak izan ziren. 278 00:12:44,500 --> 00:12:47,360 Zer esan? 279 00:12:47,360 --> 00:12:48,730 Lotuta zerrendak erakusleak. 280 00:12:48,730 --> 00:12:53,330 >> Abisuaren lotuta zerrenda bat delako Benetan, besterik gabe, nodo bat erakusle eta 281 00:12:53,330 --> 00:12:57,110 nodo bat hurrengo eremuan, eta nodo dituen hurrengo eremu bat du, eta abar. 282 00:12:57,110 --> 00:13:00,690 Beraz, orain dezakezu array honetan, uste hash taula bat jo du ezkerreko eskua 283 00:13:00,690 --> 00:13:01,820 lotuta zerrenda bat lortzeko. 284 00:13:01,820 --> 00:13:07,000 Duen abantaila da lortu baduzu Alice eta Aaron arteko talka, 285 00:13:07,000 --> 00:13:09,300 zer egin nahi duzu bigarren, besteak beste, pertsona? 286 00:13:09,300 --> 00:13:14,150 Erantsi besterik ez duzu bera du amaieran, edo are gehiago, hasieran 287 00:13:14,150 --> 00:13:15,490 lotzen zerrenda. 288 00:13:15,490 --> 00:13:17,340 >> Eta egia esan, dezagun, besterik fideodun bidez besterik gabe, bigarren bat. 289 00:13:17,340 --> 00:13:18,640 Non gehien zentzu luke? 290 00:13:18,640 --> 00:13:22,060 Txertatzen Alice bada, eta sortu zuen eta ondorioz lehen kokalekua, eta gero saiatzen naiz 291 00:13:22,060 --> 00:13:25,310 sartu Aaron izena, eta ez da jakina, talka bat, behar dut jarri 292 00:13:25,310 --> 00:13:27,400 zion hasieran lotuta zerrenda? 293 00:13:27,400 --> 00:13:30,944 Duten lehenengo kokapenean da, edo amaieran? 294 00:13:30,944 --> 00:13:31,440 >> Ikusleak: [INAUDIBLE]. 295 00:13:31,440 --> 00:13:31,990 >> DAVID MALAN: OK. 296 00:13:31,990 --> 00:13:32,490 Hasieratik entzun nuen. 297 00:13:32,490 --> 00:13:33,903 Zergatik hasieran? 298 00:13:33,903 --> 00:13:34,750 >> Ikusleak: [INAUDIBLE]. 299 00:13:34,750 --> 00:13:34,940 >> DAVID MALAN: OK. 300 00:13:34,940 --> 00:13:36,520 Alfabetikoa da, eta hori da hain polita. 301 00:13:36,520 --> 00:13:37,330 Jabetza hori ona da. 302 00:13:37,330 --> 00:13:39,335 Gorde me izango da denbora batzuk potentzialki. 303 00:13:39,335 --> 00:13:43,290 Ez da utzi bitar bilaketa egin dit, baina ez dut baliteke gutxienez gai izan hausteko 304 00:13:43,290 --> 00:13:47,340 begizta baten konturatzen badut, ongi, modu naiz iragan ziren Aaron litzateke hau izango da 305 00:13:47,340 --> 00:13:48,310 ordenatuko lotutako zerrenda. 306 00:13:48,310 --> 00:13:50,360 Ez dut nire denbora alferrik bilatzen amaiera modu guztiak. 307 00:13:50,360 --> 00:13:51,530 Beraz, hori da arrazoizkoa. 308 00:13:51,530 --> 00:13:54,710 Zergatik, bestela, agian sartu nahi duzun bertan izena talka egiten du 309 00:13:54,710 --> 00:13:56,660 zerrendaren hasiera-hasieratik? 310 00:13:56,660 --> 00:13:57,397 Zer da hori? 311 00:13:57,397 --> 00:13:58,680 >> Ikusleak: [INAUDIBLE]. 312 00:13:58,680 --> 00:14:00,820 >> DAVID MALAN: denbora luze bat hartu izan da, zerrendari amaiera lortzeko. 313 00:14:00,820 --> 00:14:02,490 Eta, hain zuzen ere, gero eta mantsoago. 314 00:14:02,490 --> 00:14:04,920 Gehiago izenak sartu duzun hori A, orduan eta horrekin hasteko 315 00:14:04,920 --> 00:14:06,280 katean dago, lortu dugu. 316 00:14:06,280 --> 00:14:07,890 Luzeagoa lotuta dagoela zerrenda bat lortu dugu. 317 00:14:07,890 --> 00:14:09,420 Beraz, benetan ari zaren zure denbora alferrik galtzen. 318 00:14:09,420 --> 00:14:14,070 Agian hobea zarela off mantenduz etengabeko txertatzeko denbora, big 1 O, 319 00:14:14,070 --> 00:14:18,470 beti talka izena jarriz lotuta zerrendaren hasiera-hasieratik, 320 00:14:18,470 --> 00:14:21,230 eta ez askoz kezkagarria ordenatzeko buruz. 321 00:14:21,230 --> 00:14:22,600 >> Zer onena erantzuna? 322 00:14:22,600 --> 00:14:23,320 Unclear da. 323 00:14:23,320 --> 00:14:26,140 Mota araberakoa da on zer banaketa da, zer eredua da 324 00:14:26,140 --> 00:14:27,850 izen txertatzen ari zara. 325 00:14:27,850 --> 00:14:29,430 Ez da, nahitaez, bistako erantzuna. 326 00:14:29,430 --> 00:14:33,100 Baina, hemen, berriz, ez da diseinu-aukera bat da. 327 00:14:33,100 --> 00:14:37,220 >> Beraz, gauza hau eta gero begiratu dugu, eta horrek Benetan beste aukera handi 328 00:14:37,220 --> 00:14:38,180 p-multzo 6. 329 00:14:38,180 --> 00:14:41,770 Eta konturatzen, ez baduzu dagoeneko, Zamyla horiek sartu murgilaldiak, hash 330 00:14:41,770 --> 00:14:43,260 mahai eta saiatzen da, zehatz-mehatz. 331 00:14:43,260 --> 00:14:45,630 Eta bideo gidatua da p-set spec barneratua. 332 00:14:45,630 --> 00:14:46,590 Hau trie bat izan zen - 333 00:14:46,590 --> 00:14:51,670 T-R-I-E. Eta zer izan zen interesgarri buruz hau dela exekutatzen denbora izan zen 334 00:14:51,670 --> 00:14:59,510 izen bat bilatzeko, Maxwell bezala azken aldiz, big O zer izan zen? 335 00:14:59,510 --> 00:15:01,040 Zer da hori? 336 00:15:01,040 --> 00:15:01,920 >> Ikusleak: hizki-kopurua. 337 00:15:01,920 --> 00:15:02,550 >> DAVID MALAN: letren kopurua. 338 00:15:02,550 --> 00:15:03,210 Bi gauza entzun nuen. 339 00:15:03,210 --> 00:15:04,630 Letrak eta etengabeko denbora kopurua. 340 00:15:04,630 --> 00:15:05,540 Hargatik lehen joan. 341 00:15:05,540 --> 00:15:06,410 Letra kopuruak. 342 00:15:06,410 --> 00:15:10,195 Beno, hau datu egitura, gogoratzen da, gustatzen zuhaitz bat, familia zuhaitz bat, bakoitzaren 343 00:15:10,195 --> 00:15:12,860 zeinen nodo osatzen array du. 344 00:15:12,860 --> 00:15:16,300 Eta multzo horiek erakusten dira beste nodo, edo beste, hala nola, 345 00:15:16,300 --> 00:15:17,670 Zuhaitza array. 346 00:15:17,670 --> 00:15:22,890 >> Beraz, bada, ondoren, zehaztu nahi izan dugu Maxwell ala ez, hemen da, joan liteke I 347 00:15:22,890 --> 00:15:26,890 , lehen array, oso goian at zuhaitza, llamado erroa, goiko 348 00:15:26,890 --> 00:15:30,521 trie, eta gero jarraitu m erakusleak, ondoren, erakuslea eta, ondoren, x, 349 00:15:30,521 --> 00:15:31,710 w, e, l, l. 350 00:15:31,710 --> 00:15:34,910 Eta orduan, berezia ikur batzuk ikusi ditut, adierazten da hemen triangelu baten ondorioz. 351 00:15:34,910 --> 00:15:38,480 Kodea ikusi dugu proposatu beharko duzu duzula boolearra gisa inplementatu, besterik gabe, bai esaten 352 00:15:38,480 --> 00:15:40,540 edo ez, hitz bat gelditzen da hemen. 353 00:15:40,540 --> 00:15:45,270 >> Beno, behin M-A-X-W-E-L-L dugu joan zazpi bezala sentitzen, agian 354 00:15:45,270 --> 00:15:48,910 zortzi joan behar dugu iragan bat, zortzi bada urrats Maxwell aurkitzeko. 355 00:15:48,910 --> 00:15:53,050 Edo dezagun deitzen K. Baina azken gogoratzen denbora, bada, hori ez da argudiatu dut 356 00:15:53,050 --> 00:15:57,540 errealistan baten luzera gehienez hitza, 40-batzuk-bakoitiak pertsonaien antzera, 357 00:15:57,540 --> 00:16:00,810 gehienezko luzera dakar etengabeko balio bat. 358 00:16:00,810 --> 00:16:05,770 Beraz, benetan, bai, teknikoki big O da 8 edo 7 edo benetan big K. O Baina 359 00:16:05,770 --> 00:16:09,420 ez dago zer txano finitu bat bada K izan, konstante bat da. 360 00:16:09,420 --> 00:16:12,080 Eta, beraz, big 1 O da at egunaren amaieran. 361 00:16:12,080 --> 00:16:13,040 >> Ez mundu errealean. 362 00:16:13,040 --> 00:16:15,960 Ez denean hasiko da, benetan, zuri begira zure programaren entzierroa gisa erlojua. 363 00:16:15,960 --> 00:16:20,690 Erabat da pixka bat izango da benetan etengabeko baino motelagoa 364 00:16:20,690 --> 00:16:21,840 urrats bat denbora. 365 00:16:21,840 --> 00:16:25,540 Zazpi edo zortzi urrats izango da joan, baina, oraindik ere, hori da askoz hobea 366 00:16:25,540 --> 00:16:30,080 big n O horrelako algoritmo bat baino zer en tamainaren araberakoa 367 00:16:30,080 --> 00:16:31,220 Datuen egitura. 368 00:16:31,220 --> 00:16:34,970 >> Iragarki goitik hemen da sartu ahal izango dugu milioi bat gehiago sartu izenak 369 00:16:34,970 --> 00:16:38,170 Datuen egitura, baina zenbat urrats va gurekin eraman aurkitu 370 00:16:38,170 --> 00:16:40,480 Kasu horretan Maxwell? 371 00:16:40,480 --> 00:16:40,780 Bat ere ez. 372 00:16:40,780 --> 00:16:41,820 Eraginik izan zuen. 373 00:16:41,820 --> 00:16:45,480 Eta orain arte, ez dut uste ikusi dugu datu egitura bat edo adibide bat 374 00:16:45,480 --> 00:16:48,560 algoritmoa izan zen erabat kanpoko eraginik 375 00:16:48,560 --> 00:16:50,040 horrelako jokabideak. 376 00:16:50,040 --> 00:16:51,160 Baina hau ez da izango harrigarria. 377 00:16:51,160 --> 00:16:52,900 Hau ezin da irtenbide bakarra izan P-ezarri 378 00:16:52,900 --> 00:16:53,570 >> Eta ez da. 379 00:16:53,570 --> 00:16:55,980 Hau ez da, datuak derrigorrez egitura behar duzu gravitate, 380 00:16:55,980 --> 00:16:58,220 taulak hash bezala, denerako delako. 381 00:16:58,220 --> 00:17:00,500 Zer prezioa ordaindu Hemen duzu? 382 00:17:00,500 --> 00:17:00,940 Memoria. 383 00:17:00,940 --> 00:17:02,890 Esan nahi dut, hau da atrocious memoria kopurua. 384 00:17:02,890 --> 00:17:05,569 Eta ezin nahiko ikusten duelako hemen Argazki hau egileari 385 00:17:05,569 --> 00:17:09,420 jakina trunkatuta array guztiak, eta ez gara A horrek asko ikusten da eta 386 00:17:09,420 --> 00:17:12,700 B-ren eta C-ren eta Q-ren eta Y-ren eta Z array hauetan horrek. 387 00:17:12,700 --> 00:17:13,630 Baina ez dira. 388 00:17:13,630 --> 00:17:17,660 >> Nodo horietako bakoitzak osotasunean array bat da batzuk 26 edo gehiago byte, bakoitzaren 389 00:17:17,660 --> 00:17:19,170 duen gutun bat adierazten du. 390 00:17:19,170 --> 00:17:22,920 Gure kasuan 27, beraz, onartzen dugu arazo multzo apostrophes. 391 00:17:22,920 --> 00:17:27,030 Datu egitura hori da benetan, beraz, Benetan trinko eta zabala. 392 00:17:27,030 --> 00:17:30,880 Eta hori bakarrik, azkenean, baliteke motelduz gauzak behera, edo, gutxienez, balio bat duzu 393 00:17:30,880 --> 00:17:32,240 Asko leku gehiago. 394 00:17:32,240 --> 00:17:34,020 Baina, berriro, marraztu ahal izango dugu konparazioak hemen. 395 00:17:34,020 --> 00:17:39,190 >> Gogoratzen, berriz, bat atzera, askoz ere lortu dugu gehiago zirraragarria lasterketak ordenatzeko denbora 396 00:17:39,190 --> 00:17:42,880 denean merge ordenatu, baina prezioa erabiltzen dugu n lortzeko saioa merge for n ordaintzen dugu 397 00:17:42,880 --> 00:17:46,930 sort eskatzen gastatzen dugun zer baliabide gehiago? 398 00:17:46,930 --> 00:17:47,690 Leku gehiago. 399 00:17:47,690 --> 00:17:50,530 Mailako bigarren array bat behar dugu kopiatzeko pertsonak, sartu bezala 400 00:17:50,530 --> 00:17:51,620 hemen egin dugu eszenatokian. 401 00:17:51,620 --> 00:17:55,880 Beraz, berriro ere, ez dago argi irabazleak, baina subjektiboa diseinua 402 00:17:55,880 --> 00:17:57,710 erabakiak hartu egin behar da. 403 00:17:57,710 --> 00:17:58,060 >> Guztiak eskubidea. 404 00:17:58,060 --> 00:17:59,130 Beraz, nola horri buruz? 405 00:17:59,130 --> 00:18:02,050 Edonork ezagutzen den D-Hall? 406 00:18:02,050 --> 00:18:02,440 Ados. 407 00:18:02,440 --> 00:18:03,170 Beraz, gurekin hiru egin. 408 00:18:03,170 --> 00:18:03,750 Mather Etxea. 409 00:18:03,750 --> 00:18:05,070 Beraz, hau Mather en jangela da. 410 00:18:05,070 --> 00:18:09,650 Apostu jantokiak guztiek dut hau bezalako erretiluak pila. 411 00:18:09,650 --> 00:18:11,950 Eta hau da, benetan, ordezkari zerbait dugu de 412 00:18:11,950 --> 00:18:13,050 jakina ikusten dagoeneko. 413 00:18:13,050 --> 00:18:14,850 Izeneko dugu, literalki, pila bat. 414 00:18:14,850 --> 00:18:18,970 Eta pila, zure aldetik ordenagailuaren memoria, non datuak doa 415 00:18:18,970 --> 00:18:20,460 funtzioak ari diren bitartean deitu. 416 00:18:20,460 --> 00:18:23,410 >> Esate baterako, zer motatako gauzak joan to aldean pilan 417 00:18:23,410 --> 00:18:27,420 memoria diseinua eztabaidatu dugu aste iragan? 418 00:18:27,420 --> 00:18:28,736 Zer da hori? 419 00:18:28,736 --> 00:18:29,670 >> Ikusleak: funtzio deiak. 420 00:18:29,670 --> 00:18:30,260 >> DAVID MALAN: Sentitzen dut. 421 00:18:30,260 --> 00:18:31,210 >> Ikusleak: funtzio deiak. 422 00:18:31,210 --> 00:18:33,590 >> DAVID MALAN: funtzio deiak, baina zehazki, zer bakoitzaren barruan da 423 00:18:33,590 --> 00:18:35,340 markoak horiek? 424 00:18:35,340 --> 00:18:37,220 Zer gauza mota? 425 00:18:37,220 --> 00:18:37,460 Bai. 426 00:18:37,460 --> 00:18:38,500 Beraz, aldagai lokalak. 427 00:18:38,500 --> 00:18:43,080 Edonoiz biltegi lokala batzuk behar ditugu, argumentu bezala, edo int dut, edo int 428 00:18:43,080 --> 00:18:45,940 aldi baterako, edo edozein tokiko aldagaia da, izan gara 429 00:18:45,940 --> 00:18:47,210 duten jarriz pilan. 430 00:18:47,210 --> 00:18:49,610 Eta hori pila bat deitu dugu, zeren layering ideia hori. 431 00:18:49,610 --> 00:18:52,940 Just partiduak mota sortu errealitatearekin, kontzeptu horiek. 432 00:18:52,940 --> 00:18:56,650 >> Baina bihurtzen da pila bat ere duten izango da datu-egitura bat bezala ikusten da, 433 00:18:56,650 --> 00:19:00,110 array alternatiba, alternatiba lotuta zerrenda. 434 00:19:00,110 --> 00:19:02,770 Zerbait kontzeptualki interesgarriagoa duten oraindik 435 00:19:02,770 --> 00:19:06,030 inplementatu erabiliz gero, horien gauzak, baina beste motako da 436 00:19:06,030 --> 00:19:09,140 Datuen egitura, laguntzeko, benetan, soilik bi eragiketak. 437 00:19:09,140 --> 00:19:11,000 Baina fancier dezakezu gehitzeko Ezaugarri horiek baino. 438 00:19:11,000 --> 00:19:12,180 Baina horiek oinarrizkoak dira - 439 00:19:12,180 --> 00:19:13,510 bultza eta pop. 440 00:19:13,510 --> 00:19:19,240 >> Eta pila bat ideia bada dudala dute hemen, edo Annenberg gabe 441 00:19:19,240 --> 00:19:22,880 ezagutu, ate datorren erretiluan kopurua 9 gainean ere. 442 00:19:22,880 --> 00:19:23,870 Beraz, int bat. 443 00:19:23,870 --> 00:19:26,990 Eta hau bultza datuak gainean nahi dut egitura, gaur egun hutsik dago. 444 00:19:26,990 --> 00:19:28,790 Demagun hau pilaren behean. 445 00:19:28,790 --> 00:19:33,150 Zenbaki hau 9 bultza nuke gainean pilatu, eta orain bertan da. 446 00:19:33,150 --> 00:19:36,040 >> Baina pila bat gauza interesgarri hau da, orain, nik nahi izanez gero, bultza 447 00:19:36,040 --> 00:19:40,210 batzuen balioa, 17 bezala, eta nik bultza pila gainean, hau da, egin dut 448 00:19:40,210 --> 00:19:43,290 bakarrik gauza intuitiboa da, besterik ez naiz jarri nahi dugun lekuan gizakiak 449 00:19:43,290 --> 00:19:45,180 makurturiko izango litzateke jarri, gainean. 450 00:19:45,180 --> 00:19:48,850 Baina zer da interesgarria orain da, nola lortu 9 dut? 451 00:19:48,850 --> 00:19:50,670 Badakizu, ez dut ahalegin batzuk gabe. 452 00:19:50,670 --> 00:19:54,070 >> Beraz, zer da interesgarria buruz pila bat duen diseinua da, 453 00:19:54,070 --> 00:19:56,330 bat LIFO datuak egitura da. 454 00:19:56,330 --> 00:19:59,680 Deskribatzeko modua Silly azken batean, lehen izarrekin. 455 00:19:59,680 --> 00:20:03,280 Azken zenbakia, beraz, Garai honetan izan zen, 17. 456 00:20:03,280 --> 00:20:07,540 Beraz, bada zerbait, pop off nahi dut pilaren, baino ezin izango da 17. 457 00:20:07,540 --> 00:20:11,890 Beraz, ez dago derrigorrezko ordena da eragiketak hemen, non azken elementua 458 00:20:11,890 --> 00:20:14,260 duen lehena izango da. 459 00:20:14,260 --> 00:20:16,440 Hori dela eta akronimoa, LIFO. 460 00:20:16,440 --> 00:20:19,160 >> Beraz, zergatik ez litzateke baliagarria? 461 00:20:19,160 --> 00:20:22,690 Beren testuinguru dira bertan, nahi duzuna nahi hau bezalako egitura datuak bat? 462 00:20:22,690 --> 00:20:24,810 Beno, oso baliagarria izan da, zalantzarik gabe, ordenagailu baten barruan. 463 00:20:24,810 --> 00:20:29,050 Beraz, argi eta garbi, sistema hau erabili datuak pilak egitura mota. 464 00:20:29,050 --> 00:20:32,800 Era berean, ikusiko dugu ideia bera denean, web orriak dator. 465 00:20:32,800 --> 00:20:35,890 Aste honetan eta datorren astean, beraz, eta haratago, eta hasteko duzun web ezartzeko jo 466 00:20:35,890 --> 00:20:39,490 hizkuntza batean izeneko HTML orrialdeak, dezakezu benetan erabiltzen den datu-egitura bezala 467 00:20:39,490 --> 00:20:42,690 hau zehazteko orriaren bada da behar bezala formateatu. 468 00:20:42,690 --> 00:20:47,170 Ikusiko dugu delako web orri guztiak jarraitu bat hierarkia ordenatu, koska bat 469 00:20:47,170 --> 00:20:52,030 egingo dela, egunaren amaieran, izan Zuhaitz kanpaia azpian egitura. 470 00:20:52,030 --> 00:20:53,620 Beraz, hori on gehiago pixka bat. 471 00:20:53,620 --> 00:20:56,560 >> Baina oraingoz, goazen bat proposatuko Oraingoz, nola buruz joan gara 472 00:20:56,560 --> 00:20:58,830 zer pila bat ordezkari? 473 00:20:58,830 --> 00:21:03,370 Let me ezartzea proposatzen dugu honelako-kodea pila bat. 474 00:21:03,370 --> 00:21:07,990 Beraz, pila bat dago, horren barruan izan joan bi gauza, array bat, deitu, erretiluak, 475 00:21:07,990 --> 00:21:09,510 besterik demo koherentea izateko. 476 00:21:09,510 --> 00:21:12,660 Eta array duten elementu bakoitzaren da int mota bat izango da. 477 00:21:12,660 --> 00:21:14,740 Eta ahalmena ez da zentzuzkoa zer? 478 00:21:14,740 --> 00:21:18,796 Nik ez delako idatzi Definizio osoa hemen. 479 00:21:18,796 --> 00:21:21,535 >> Seguruenik, gehienez array tamaina. 480 00:21:21,535 --> 00:21:25,150 Eta hori da, ziurrenik, zorrotz bat izendatu fitxategia goialdean definitzeko, zenbait 481 00:21:25,150 --> 00:21:28,450 etengabeko mota gisa inplizituki arabera hutsa kapitalizazio. 482 00:21:28,450 --> 00:21:32,250 Beraz, nonbait ahalmena definitzen ahalik eta tamaina maximoa gisa. 483 00:21:32,250 --> 00:21:35,590 Bien bitartean, barruan datu egitura pila bat bezala ezagutzen da egongo 484 00:21:35,590 --> 00:21:38,630 bakarrik ezagutzen da zenbaki oso bat izan tamaina gisa, besterik gabe. 485 00:21:38,630 --> 00:21:43,400 >> Beraz, bada, hau irudikatzeko izan dut orain pictorially, dezagun hori 486 00:21:43,400 --> 00:21:48,070 osoa kutxa beltza nire pila adierazten du. 487 00:21:48,070 --> 00:21:50,070 Horren barruan bi aldagai da. 488 00:21:50,070 --> 00:21:54,780 Beraz marraztu dut tamaina bat lehenengo. 489 00:21:54,780 --> 00:21:57,420 Eta bigarrena joan naiz array bat bezala marraztuko. 490 00:21:57,420 --> 00:22:01,060 >> Baina gauza ordenatua mantendu, normalean array bat marraztu nahi dut 491 00:22:01,060 --> 00:22:04,910 honek, baina horrek polita mota dator dugun errealitatea bada, edo 492 00:22:04,910 --> 00:22:06,230 dator adimen-eredua. 493 00:22:06,230 --> 00:22:12,880 Hargatik marraztu ordez me array bertikalean, hau da, besterik gabe, berriro ere, 494 00:22:12,880 --> 00:22:13,840 artistaren interpretazio. 495 00:22:13,840 --> 00:22:16,610 Ez da benetan axola zer kanpaia azpian dago. 496 00:22:16,610 --> 00:22:20,350 Eta hori esan dugu, berez, edukiera, hiru izango dira. 497 00:22:20,350 --> 00:22:23,480 Beraz, hau kokapena 0, hau izango da kokapena 1, hau izango da 498 00:22:23,480 --> 00:22:25,740 kokapena 2 izango da. 499 00:22:25,740 --> 00:22:29,330 >> Estresa, baloi bat dut bribe izanez gero, ez litzateke izango gustuko norbait etorri eta exekutatu 500 00:22:29,330 --> 00:22:30,870 taula Hemen, besterik gabe, une batez? 501 00:22:30,870 --> 00:22:31,960 OK, ikusi zure lehen eskuko. 502 00:22:31,960 --> 00:22:33,950 Goazen gora. 503 00:22:33,950 --> 00:22:36,500 Guztiak eskubidea. 504 00:22:36,500 --> 00:22:38,760 Beraz, Steven da uste dut. 505 00:22:38,760 --> 00:22:40,035 Goazen gora. 506 00:22:40,035 --> 00:22:40,770 Guztiak eskubidea. 507 00:22:40,770 --> 00:22:46,760 >> Baina demagun orain atzeratzean hasierako dugu munduaren egoera, non I 508 00:22:46,760 --> 00:22:52,180 deklaratu dute, besterik gabe, pila bat, eta hori da gaitasunaren hiru izango da. 509 00:22:52,180 --> 00:22:54,470 Baina tamaina ez da oraindik zehaztu. 510 00:22:54,470 --> 00:22:56,100 Erretiluak oraindik ez da zehazten. 511 00:22:56,100 --> 00:22:57,300 Galdera pare bat, beraz, lehen aldiz. 512 00:22:57,300 --> 00:23:01,310 Eta utzi ematen dit mic ahal duzu, beraz, partake gehiago aktiboki honetan. 513 00:23:01,310 --> 00:23:05,190 >> Beraz, zer tamaina barruan dago une honetan denbora guztia egin dut bada 514 00:23:05,190 --> 00:23:09,340 deklaratu pila batekin ko kodea lerroa? 515 00:23:09,340 --> 00:23:10,100 >> Steven: Ez asko. 516 00:23:10,100 --> 00:23:12,080 >> DAVID MALAN: OK, ez asko. 517 00:23:12,080 --> 00:23:14,410 Zer tamaina barruan da jakin dugu, zer da barrutik ezagutzen dugun 518 00:23:14,410 --> 00:23:16,330 array hau hemen? 519 00:23:16,330 --> 00:23:18,630 >> Steven: Just ausazko kodea da, ezta? 520 00:23:18,630 --> 00:23:20,220 Just - 521 00:23:20,220 --> 00:23:23,230 >> DAVID MALAN: Bai, nahi dut deitu kodea, baina ausazko - 522 00:23:23,230 --> 00:23:23,820 >> Steven: gauzak. 523 00:23:23,820 --> 00:23:28,290 >> DAVID MALAN: ausazko bezala gauzak 524 00:23:28,290 --> 00:23:28,870 >> Steven: Bits. 525 00:23:28,870 --> 00:23:29,530 >> DAVID MALAN: Bits, ezta? 526 00:23:29,530 --> 00:23:31,190 Zabor balioak beraz, ezta? 527 00:23:31,190 --> 00:23:33,470 Beraz, 0 eta 1-en permutazioak. 528 00:23:33,470 --> 00:23:35,920 Erabilera aurreko aztarnarik memoria honetan. 529 00:23:35,920 --> 00:23:38,150 Eta ez dugu jakingo benetan zer balioak dira, eta, beraz, normalean marrazteko ditugu 530 00:23:38,150 --> 00:23:38,930 galdera-marka gisa. 531 00:23:38,930 --> 00:23:41,990 >> Beraz, lehenengo gauza zentzuzkoa gara hemen egin nahi joan - 532 00:23:41,990 --> 00:23:46,630 eta utzi eremu hori ematen dit barruan erretiluak - ez dago izen bat. 533 00:23:46,630 --> 00:23:49,540 Zer egin behar du abiarazi zentzuzkoa dugu tamaina nahi dugu, nahi izanez gero, 534 00:23:49,540 --> 00:23:51,040 hasteko pila hau erabiliz? 535 00:23:51,040 --> 00:23:53,070 >> Steven: erretilua da sailkatuta 3. 536 00:23:53,070 --> 00:23:53,910 >> DAVID MALAN: Beraz, OK. 537 00:23:53,910 --> 00:23:56,710 Argi izan, gaitasun izendatu edonon hiru. 538 00:23:56,710 --> 00:23:58,570 Eta hori da erabiltzen dut array esleitu. 539 00:23:58,570 --> 00:24:03,535 Tamaina da erreferentzia joan zenbat erretiluak Une pilan. 540 00:24:03,535 --> 00:24:03,880 >> Steven: Zero. 541 00:24:03,880 --> 00:24:04,460 >> DAVID MALAN: Beraz, zero izan beharko luke. 542 00:24:04,460 --> 00:24:07,760 Beraz, aurrera, eta hatz edozein, marraztu tamaina zero da. 543 00:24:07,760 --> 00:24:08,440 Guztiak eskubidea. 544 00:24:08,440 --> 00:24:10,920 Beraz, orain, zer honen barruan da Hemen, ez dakigu. 545 00:24:10,920 --> 00:24:12,160 Hauek dira benetan besterik zabor balio. 546 00:24:12,160 --> 00:24:14,800 Beraz, galdera ikurrak marraztu izan dugu, baina taula garbi mantentzen dezagun orain 547 00:24:14,800 --> 00:24:16,300 ez baitu axola zer ez. 548 00:24:16,300 --> 00:24:19,130 Ez dugu behar array hasieratzean ezer, ezagutzen dugu hori delako 549 00:24:19,130 --> 00:24:23,100 pila tamaina zero da, bai, ez dugu ez litzateke ezer at bila 550 00:24:23,100 --> 00:24:25,590 array hau hala ere at Puntu honetan denbora. 551 00:24:25,590 --> 00:24:29,970 >> Orain, demagun bultzatzen duten I kopurua 9 pila gainean. 552 00:24:29,970 --> 00:24:33,750 Nola datu egitura eguneratu dugu hau beltza kutxa barruan? 553 00:24:33,750 --> 00:24:35,540 Zer behar balioak aldatzeko? 554 00:24:35,540 --> 00:24:36,200 >> Steven: barruan - 555 00:24:36,200 --> 00:24:37,400 tamaina? 556 00:24:37,400 --> 00:24:37,650 >> DAVID MALAN: OK. 557 00:24:37,650 --> 00:24:38,770 Tamaina zer izan behar du? 558 00:24:38,770 --> 00:24:39,580 >> Steven: Tamaina bat izango litzateke. 559 00:24:39,580 --> 00:24:39,870 >> DAVID MALAN: OK. 560 00:24:39,870 --> 00:24:41,110 Beraz tamaina bat bihurtu behar da. 561 00:24:41,110 --> 00:24:42,540 Beraz, egin dezakezu, pare modu batean. 562 00:24:42,540 --> 00:24:46,920 Dizute ematen dit, orain zure hatz borragoma bat da. 563 00:24:46,920 --> 00:24:47,260 Guztiak eskubidea. 564 00:24:47,260 --> 00:24:49,960 Gero, orain hatza eskuila bat da. 565 00:24:49,960 --> 00:24:50,330 Guztiak eskubidea. 566 00:24:50,330 --> 00:24:52,820 Eta orain, zer gehiago behar du aldatzeko, jakina, datu egitura? 567 00:24:52,820 --> 00:24:57,060 >> Steven: batetik gara behetik gora 9. 568 00:24:57,060 --> 00:24:57,760 >> DAVID MALAN: 9. 569 00:24:57,760 --> 00:24:58,420 Ados, Ona. 570 00:24:58,420 --> 00:25:01,550 Beraz, oraindik ez du axola zer at kokapena bat edo bi Oraindik dutelako 571 00:25:01,550 --> 00:25:04,520 zabor balio, baina ezin dugu traba ez bila tamaina delako 572 00:25:04,520 --> 00:25:07,540 gurekin kontatzea soilik lehen elementu hori benetan da legitimoa. 573 00:25:07,540 --> 00:25:10,400 Beraz, orain 17 bultza dut zerrenda gainean. 574 00:25:10,400 --> 00:25:11,830 Zer gertatzen da argazki hau? 575 00:25:11,830 --> 00:25:14,720 >> Steven: Beraz tamaina bi joan. 576 00:25:14,720 --> 00:25:15,300 >> DAVID MALAN: OK. 577 00:25:15,300 --> 00:25:16,070 Borragoma zara - 578 00:25:16,070 --> 00:25:16,810 trabatzen. 579 00:25:16,810 --> 00:25:18,026 Borragoma bat zara. 580 00:25:18,026 --> 00:25:18,840 >> Steven: Eraser. 581 00:25:18,840 --> 00:25:19,720 >> DAVID MALAN: eskuila bat zara. 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 Eta zer gehiago? 585 00:25:21,600 --> 00:25:22,600 >> Steven: Eta gero dugu - 586 00:25:22,600 --> 00:25:22,915 >> DAVID MALAN: 17 bultzatu dugu. 587 00:25:22,915 --> 00:25:24,760 >> Steven: 17 itsatsiko ditugu gainean, eta, beraz - 588 00:25:24,760 --> 00:25:25,710 >> DAVID MALAN: OK, ona. 589 00:25:25,710 --> 00:25:27,040 >> Steven: - jaregin behera. 590 00:25:27,040 --> 00:25:27,530 >> DAVID MALAN: Eskubidea guztiak. 591 00:25:27,530 --> 00:25:27,940 Oso erraza da lortzean. 592 00:25:27,940 --> 00:25:29,300 Ez dut lagundu nahi baduzu, une honetan joan. 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 Borragoma bat bilakatu da. 596 00:25:34,870 --> 00:25:37,340 Eskuila bat naiz bihurtuz. 597 00:25:37,340 --> 00:25:39,340 Eta, ondoren, 22 naiz jarriz. 598 00:25:39,340 --> 00:25:40,100 >> DAVID MALAN: 22. 599 00:25:40,100 --> 00:25:40,620 Bikain. 600 00:25:40,620 --> 00:25:41,380 Beraz, denbora gehiago. 601 00:25:41,380 --> 00:25:44,280 Orain naiz bultza joan pila 26 gainean. 602 00:25:44,280 --> 00:25:46,350 >> Steven: Ooh. 603 00:25:46,350 --> 00:25:50,278 Oh Gosh. 604 00:25:50,278 --> 00:25:52,520 Harrapatu duzula guardia me off. 605 00:25:52,520 --> 00:25:53,703 >> DAVID MALAN: Ez duzu ikus datozen? 606 00:25:53,703 --> 00:25:55,930 >> Steven: ez dut ikusi hau datozen. 607 00:25:55,930 --> 00:25:58,756 Ezin dugu berriro hasierako ahalmena? 608 00:25:58,756 --> 00:25:59,790 >> DAVID MALAN: Hori ona galdera bat da. 609 00:25:59,790 --> 00:26:02,360 Beraz, mota horretako dugu geure burua margotu txoko bat hemen. 610 00:26:02,360 --> 00:26:06,740 Benetan, ez da Steven izarrekin ona dugu egotzitako delako array honetan 611 00:26:06,740 --> 00:26:09,130 estatikoki, eta, beraz, hitz egiteko barruan datu egitura. 612 00:26:09,130 --> 00:26:12,170 Eta, funtsean, gogor egin dugu kodetuta tamaina hiru behar da. 613 00:26:12,170 --> 00:26:14,170 Beraz, ezin dugu benetan reallocate da. 614 00:26:14,170 --> 00:26:20,020 >> Dugu, ezin dugu atzera joan bada ere, dugu definitu erretiluak erakuslea bat izateko 615 00:26:20,020 --> 00:26:22,300 erabili dugu esku memoria malloc. 616 00:26:22,300 --> 00:26:25,050 Lortu dugu memoria galtzen delako malloc bidez zeure gara 617 00:26:25,050 --> 00:26:26,430 Orduan askatzea da. 618 00:26:26,430 --> 00:26:29,630 Uzten, baina aurretik, esan dezakegu reallocate memoria zatia handiagoa da, 619 00:26:29,630 --> 00:26:31,330 eguneratu erakusleak, eta abar. 620 00:26:31,330 --> 00:26:33,500 Baina, oraingoz, hau da, benetan onena egin ahal izango dugu. 621 00:26:33,500 --> 00:26:36,360 Push eta pop dira ustez joan Errore batzuk seinalea dute. 622 00:26:36,360 --> 00:26:40,270 >> Beraz, adibidez, gure ezartzeko Push boolearra itzuli ezin den 623 00:26:40,270 --> 00:26:42,390 Aurretik itzuli egia da, egia da, egia da. 624 00:26:42,390 --> 00:26:48,390 Baina, laugarren aldiz, behar da joan faltsua itzultzeko, adibidez. 625 00:26:48,390 --> 00:26:48,540 Guztiak eskubidea. 626 00:26:48,540 --> 00:26:49,540 Oso ondo egin. 627 00:26:49,540 --> 00:26:50,060 Zorionak. 628 00:26:50,060 --> 00:26:52,160 Irabazi duzun zure estresa baloia gaur. 629 00:26:52,160 --> 00:26:53,110 >> [Txaloak] 630 00:26:53,110 --> 00:26:54,382 >> Steven: Eskerrik asko. 631 00:26:54,382 --> 00:26:55,680 >> DAVID MALAN: Eskerrik asko. 632 00:26:55,680 --> 00:26:59,740 OK, beraz, ez dirudi askoz ere izango dira aurrerapauso bat da, ezta? 633 00:26:59,740 --> 00:27:01,410 Datuen egitura honetan deskribatu dugu. 634 00:27:01,410 --> 00:27:02,320 Oso sinesgarria izan, ezta? 635 00:27:02,320 --> 00:27:03,200 Sistema eragile gustatzen. 636 00:27:03,200 --> 00:27:06,360 Antza denez, web honen erabilera egin ahal izango dituzte, eta beste aplikazio oraindik. 637 00:27:06,360 --> 00:27:10,870 Baina, zer gertatuko mugarik ergelak Oraindik dugu ordenatu aste bi mugak kopiak 638 00:27:10,870 --> 00:27:12,880 non konpondu dugu tamaina array. 639 00:27:12,880 --> 00:27:15,010 >> Beraz, ez dira hain zuzen ere, pare bat modu hau konpondu ahal izan genuen. 640 00:27:15,010 --> 00:27:18,750 Dinamikoki izan dugu esleitu array, ez da zaila bidez kodetzea dut nik 641 00:27:18,750 --> 00:27:22,600 egiten da hemen, baina horren ordez berriro deklaratzen hau, besterik gabe, argi izan behar da, 642 00:27:22,600 --> 00:27:23,830 honen antzeko zerbait. 643 00:27:23,830 --> 00:27:29,040 Int * erretiluak, ez erabakitzeko edukiera oraindik. 644 00:27:29,040 --> 00:27:35,460 Baina pila adierazi dut beste nonbait nire kodea, orduan izan nuen deitu malloc, 645 00:27:35,460 --> 00:27:38,250 lortu pusketa baten helbidea memoria, eta esleitu ezin izan dut 646 00:27:38,250 --> 00:27:39,980 to erretiluak helbidea. 647 00:27:39,980 --> 00:27:43,340 >> Eta, ondoren, delako besterik pusketa bat memoria, jarraitu plaza erabili behar nuen 648 00:27:43,340 --> 00:27:45,450 parentesi ohiko modu idazkera. 649 00:27:45,450 --> 00:27:49,020 Berriro ere, ez delako hau moduko da funtzional multzo baliokidea eta 650 00:27:49,020 --> 00:27:50,820 memoria zatiak datozen atzera malloc from. 651 00:27:50,820 --> 00:27:53,090 Ko tratatu ahal izango dugu beste gisa erakuslea aritmetika erabiliz edo 652 00:27:53,090 --> 00:27:54,440 kortxetea idazkera. 653 00:27:54,440 --> 00:27:55,660 Beraz, hurbilketa bat da. 654 00:27:55,660 --> 00:28:00,120 >> Baina, nola liteke, bestela, hau ezartzeko dugu berean datu-egitura, potentzialki? 655 00:28:00,120 --> 00:28:00,280 Eskuin? 656 00:28:00,280 --> 00:28:04,530 Besterik ez dugu hau konpondu bezala sentitzen naiz Duela aste bat bezala arazoa. 657 00:28:04,530 --> 00:28:08,860 Zein izan da arazo honen konponbidea Steven horretan ran? 658 00:28:08,860 --> 00:28:10,370 Beraz lotuta zerrendak, eskuinera. 659 00:28:10,370 --> 00:28:13,410 >> Arazoa da ari garen pintura bada izkinan geure buruari esleitzeko arabera 660 00:28:13,410 --> 00:28:17,580 aldez memoria gutxi dugu hori Ondoren, nolabait aurre, ondo, 661 00:28:17,580 --> 00:28:19,880 zergatik ez, besterik gabe, hori saihesteko igorriko guztiz? 662 00:28:19,880 --> 00:28:26,170 Zergatik ez besterik deklaratzeko erretilu bat izan nahi nodo bat, ERGO lotuta zerrenda bat erakuslea, 663 00:28:26,170 --> 00:28:30,740 eta, gero, besterik gabe, berria esleitu nodo aldi bakoitzean Steven beharrezko bat egokitzeko 664 00:28:30,740 --> 00:28:32,400 Datuen egitura sartzen kopurua. 665 00:28:32,400 --> 00:28:34,200 >> Beraz, argazkia aldatu beharko lukete. 666 00:28:34,200 --> 00:28:38,220 Ez da garbi gisa, eta, izango hiru ints sorta bat bezain sinplea. 667 00:28:38,220 --> 00:28:42,970 Orain bat erakuslea bat izango da joan egitura, eta egitura hori joan 668 00:28:42,970 --> 00:28:44,830 izan int bat eta hurrengo erakuslea. 669 00:28:44,830 --> 00:28:47,670 Eramaten da joan erakuslea duten bidez hala nola, beste egitura 670 00:28:47,670 --> 00:28:48,600 hala nola, egitura bat. 671 00:28:48,600 --> 00:28:50,560 Beraz, irudi litzateke benetan Messier pixka bat. 672 00:28:50,560 --> 00:28:52,950 Dituzte eta geziak genuke tying dena elkarrekin. 673 00:28:52,950 --> 00:28:55,280 >> Baina hori fina, eskuinera, delako ikusi dugu hau nola egin. 674 00:28:55,280 --> 00:28:58,180 Eta behin erosoa lortu duzu ezartzeko lotutako baten antzeko zerbait 675 00:28:58,180 --> 00:29:01,450 zerrenda, horiek egin beharko duzu ez baduzu aukeratu hash taula bat ezarri nahi dituzten 676 00:29:01,450 --> 00:29:05,120 p-set 6 kateatzea bereiziak, dezakezu erabiltzen da eraikina bloke, edo bat bezala 677 00:29:05,120 --> 00:29:08,870 osagai edo Scratch hitz egiten da, prozedura, zerbait ipini duzun 678 00:29:08,870 --> 00:29:12,560 sortu zeure puzzle ahal izango dituzu, gero berrerabiltzeko. 679 00:29:12,560 --> 00:29:17,090 Beraz tradeoffs, baina, balizko irtenbideak dugun benetan, ikusi baino lehen. 680 00:29:17,090 --> 00:29:20,560 >> Beraz, sarritan, hori ikusten duzun bakoitzean urtean edo bi denean Apple oharrak 681 00:29:20,560 --> 00:29:23,060 zerbait berria, eta jendea ero guztiak line sortu Apple kanpo 682 00:29:23,060 --> 00:29:27,050 gorde beren marjinala erosi hardwarearen berritzea. 683 00:29:27,050 --> 00:29:30,420 Hau diot, OK da, izan ere, Pertsona horietako bat naiz. 684 00:29:30,420 --> 00:29:35,140 Beraz, zer nolako datuak egitura Errealitate hori irudikatzeko, agian? 685 00:29:35,140 --> 00:29:36,980 >> Beno, goazen deitu ilara bat, lerro bat. 686 00:29:36,980 --> 00:29:40,270 Beraz, British normalean deitu litzateke ilaran, hala ere, beraz, izen polita da. 687 00:29:40,270 --> 00:29:44,960 Eta bi eragiketak ilara enqueue bat deitu dugu onartzen izango 688 00:29:44,960 --> 00:29:48,900 funtzionamendu eta eragiketa bat adierazten du, diren antzeko 689 00:29:48,900 --> 00:29:50,120 espiritua eta bultza aterako. 690 00:29:50,120 --> 00:29:54,060 Besterik desberdinak sailkatu da konbentzio, zer ari gara horiek deituz. 691 00:29:54,060 --> 00:29:57,680 Baina zerbait esan nahi enqueue gehitu edo jarri da datu-egitura. 692 00:29:57,680 --> 00:29:59,570 To adierazten du esan nahi kentzeko. 693 00:29:59,570 --> 00:30:05,170 Baina pila bat LIFO datu bat izan zen, berriz, egitura, ilara lehen bat da, 694 00:30:05,170 --> 00:30:06,740 lehen datu-egitura da. 695 00:30:06,740 --> 00:30:10,050 >> Zara lerro lehen pertsonan bada, lehen pertsona heldu izango duzu 696 00:30:10,050 --> 00:30:12,420 lerro eta zure gailu berria erosteko. 697 00:30:12,420 --> 00:30:18,070 Imajinatu nola gelditu pertsona horiek izango Apple bada ordez erabiltzen pila bat egiteko, 698 00:30:18,070 --> 00:30:21,250 Adibidez, picking ezartzeko zure jostailu berriak sortu. 699 00:30:21,250 --> 00:30:24,310 Beraz, ilarak zentzurik, zalantzarik gabe, eta mota guztietako ahal izango dugula uste 700 00:30:24,310 --> 00:30:27,480 aplikazioak, ustez, ilarak, batez ere, zuzentasuna nahi duzun. 701 00:30:27,480 --> 00:30:30,040 Beraz, nola liteke hauek gauzatu ditugu datu egitura bat bezala? 702 00:30:30,040 --> 00:30:33,680 >> Beno, agian dugun proposatzen dut behar egiteko modu honetan. 703 00:30:33,680 --> 00:30:35,225 Beraz, orain zenbakiak noa. 704 00:30:35,225 --> 00:30:38,190 Beraz eduki eta erraza da, ez dugu nahitaez erretiluak dagokionez hitz egin. 705 00:30:38,190 --> 00:30:40,220 Just zenbakiak duten pertsona ahaztuak. 706 00:30:40,220 --> 00:30:43,760 Ahalmena da, joan, berriz ere, konpondu da pertsonak izan daitezke kopuru osoaren 707 00:30:43,760 --> 00:30:46,900 lerro honetan, hiru edo beste edozein balio. 708 00:30:46,900 --> 00:30:50,760 >> Baina, behar dut segimendua egiteko proposatzen dut ez bakarrik tamaina 709 00:30:50,760 --> 00:30:52,370 ilara, zenbat gauza dira bertan. 710 00:30:52,370 --> 00:30:56,310 Beraz, tamaina uneko tamaina, edukiera da gehienezko tamaina. 711 00:30:56,310 --> 00:30:58,540 Besterik gabe, berriro ere, nomenklatura konbentzio arabera. 712 00:30:58,540 --> 00:31:03,680 Zergatik gehigarri bat int barruan behar dut ilara pista mantentzeko nor en la 713 00:31:03,680 --> 00:31:05,365 line aurrean? 714 00:31:05,365 --> 00:31:07,930 715 00:31:07,930 --> 00:31:10,910 Zergatik egin behar dela eta kasu honetan behar dut? 716 00:31:10,910 --> 00:31:14,750 717 00:31:14,750 --> 00:31:16,190 >> Beno, nola irudi hau aldatu da? 718 00:31:16,190 --> 00:31:19,280 Ziurrenik ezin dut gehien berrerabiltzea argazki hau. 719 00:31:19,280 --> 00:31:21,480 Dezagun aurrera ni eta ezabatuko zer da hemen. 720 00:31:21,480 --> 00:31:24,580 Hau eman beharko dugu apur bat beste izen hemen. 721 00:31:24,580 --> 00:31:28,930 Gaitezen 17 kentzeko, gaitezen kentzeko 9 de, gaitezen 3 kentzeko. 722 00:31:28,930 --> 00:31:30,410 Eta dezagun gehi beste gauza bat da. 723 00:31:30,410 --> 00:31:34,710 Behar dut pista mantentzeko proposatzen dut zerrendaren aurrean, hau da, besterik gabe, 724 00:31:34,710 --> 00:31:35,570 int bat izan nahi du, bai eta joan. 725 00:31:35,570 --> 00:31:36,550 Eta erraza mantendu nahi dugu. 726 00:31:36,550 --> 00:31:37,740 Oraingoz zerrenda lotuta ez. 727 00:31:37,740 --> 00:31:40,900 >> Onartzen ari garen joan beharko dugu erliebe sortu muga horren aurka. 728 00:31:40,900 --> 00:31:43,720 Baina zer ikusi nahi dut gertatuko da denbora honetan? 729 00:31:43,720 --> 00:31:47,240 Beraz, demagun Aurrera joan nintzen eta lehenengo Pertsona ateratzen line, eta 730 00:31:47,240 --> 00:31:48,560 kopurua 9 da. 731 00:31:48,560 --> 00:31:49,680 Estresa pilotak izan dugu. 732 00:31:49,680 --> 00:31:51,330 Dezakezu, adibidez, lapurtzen dut bi edo hiru pertsona? 733 00:31:51,330 --> 00:31:52,690 Bat, bi, hiru? 734 00:31:52,690 --> 00:31:53,120 Goazen gora. 735 00:31:53,120 --> 00:31:56,022 Eskuin aurrean, eta, delako Egiteko hau azkar dugu. 736 00:31:56,022 --> 00:31:59,415 >> Duzun bakoitzean dago orain izango da line mutil Apple fan bat. 737 00:31:59,415 --> 00:32:03,970 738 00:32:03,970 --> 00:32:06,210 Ez zaizu Apple hardware jasotzeko nahiz eta honen amaieran. 739 00:32:06,210 --> 00:32:06,500 Guztiak eskubidea. 740 00:32:06,500 --> 00:32:09,430 Oraindik duzun kopurua 9 Beraz, zauden zenbakia 17 zenbakia 22. 741 00:32:09,430 --> 00:32:12,130 Hauek arbitrarioak zenbakiak dira, adibidez, ikaslea identifikazioak edo whatnot. 742 00:32:12,130 --> 00:32:14,550 Eta besterik gabe, une batean, utzi hasiko gauzak gehituz hasteko. 743 00:32:14,550 --> 00:32:16,000 Eta taula exekutatu dut hemen une honetan. 744 00:32:16,000 --> 00:32:19,570 >> Beraz, kasu honetan, hasieratu dut aurrean behar diren - 745 00:32:19,570 --> 00:32:22,380 Egia esan, ez dut ez benetan axola zer aurrean dago, tamaina zero da delako. 746 00:32:22,380 --> 00:32:24,480 Beraz, hori baita, besterik gabe, galdera-marka bat izango da. 747 00:32:24,480 --> 00:32:26,170 Hauek dira galdera ikurrak dira. 748 00:32:26,170 --> 00:32:29,880 Beraz, orain hasiko da, benetan ikusi dugu zenbait pertsona sortu Hornigaia dendan. 749 00:32:29,880 --> 00:32:33,320 >> Beraz, zenbaki 9 bada, lehenengoa bazara han 5 etan, aurrera eta lerro sortu, 750 00:32:33,320 --> 00:32:34,210 edo gauean aurretik. 751 00:32:34,210 --> 00:32:34,580 Ados. 752 00:32:34,580 --> 00:32:35,940 Beraz, orain 9 da hemen. 753 00:32:35,940 --> 00:32:37,940 Beraz, 9 zerrenda aurrean dago. 754 00:32:37,940 --> 00:32:41,440 Beraz, aurrera eta eguneratu dut hau uneko datuak tamaina 755 00:32:41,440 --> 00:32:44,740 egitura ez da 0 izango dut, baina 1 izan behar. 756 00:32:44,740 --> 00:32:47,630 9 jartzea at noa zerrendaren aurrean. 757 00:32:47,630 --> 00:32:51,020 Dezagun aurrera ni eta pantailan ezkutatu beraz, gurekin iragan ikus dezakegu hemen. 758 00:32:51,020 --> 00:32:53,220 >> Eta orain, zer nahi dut aurrean jarri? 759 00:32:53,220 --> 00:32:56,240 Segimendua noa dela ilara aurrean oraintxe 760 00:32:56,240 --> 00:32:58,570 kokapena 0 da. 761 00:32:58,570 --> 00:33:00,510 Zer da hurrengoa delako gertatuko? 762 00:33:00,510 --> 00:33:03,000 Beno, suposatzen dut enqueue 17 baita. 763 00:33:03,000 --> 00:33:04,510 Beraz, lerro han hop. 764 00:33:04,510 --> 00:33:07,060 Eta berriro, atearen sailkatu du denda da, hemen izango. 765 00:33:07,060 --> 00:33:08,700 Beraz, orain gehitu dut 17. 766 00:33:08,700 --> 00:33:10,810 Eta nahiz eta mutil hauek dira blokeatzea pantailan, hori OK, 767 00:33:10,810 --> 00:33:12,300 bertan ikus daitezke hemen. 768 00:33:12,300 --> 00:33:12,910 Sentitzen dut. 769 00:33:12,910 --> 00:33:13,810 >> Ikusleak: mugitu ahal izango dugu - 770 00:33:13,810 --> 00:33:14,660 >> DAVID MALAN: Ez, hori ongi. 771 00:33:14,660 --> 00:33:16,000 Han sortu erraldoia da. 772 00:33:16,000 --> 00:33:18,580 Beraz, gaur egun, 17 barruan ilara. 773 00:33:18,580 --> 00:33:21,332 Horrek eguneratu behar dut eremuak, nahiz eta gaur egun? 774 00:33:21,332 --> 00:33:23,210 Ados, zalantzarik tamaina. 775 00:33:23,210 --> 00:33:26,430 Eta nola aurrean zer? 776 00:33:26,430 --> 00:33:27,040 Ados, ez. 777 00:33:27,040 --> 00:33:30,200 Aurrean behar ez aldatzeko, izan ere, pila bat bezala, dugu 778 00:33:30,200 --> 00:33:31,370 nahi zuzentasuna mantentzeko. 779 00:33:31,370 --> 00:33:35,150 Beraz, bada, lehenengo 9 zen, 9 nahi dugu lerroa kanpo lehen izan da 780 00:33:35,150 --> 00:33:36,420 eta dendan sartu. 781 00:33:36,420 --> 00:33:37,220 >> Izan ere, ikus dezagun hori. 782 00:33:37,220 --> 00:33:42,235 Sartu dugu 22 baino lehen, dezagun aurrera eta adierazten du 9. 783 00:33:42,235 --> 00:33:42,970 Zein da zure izena berriro? 784 00:33:42,970 --> 00:33:43,680 >> Ikusleak: Jake. 785 00:33:43,680 --> 00:33:45,440 >> DAVID MALAN: Jake da joan dequeued behar da orain. 786 00:33:45,440 --> 00:33:48,050 Beraz, dendan sartu oinez duzu. 787 00:33:48,050 --> 00:33:49,880 Eta nahi duten denda han da. 788 00:33:49,880 --> 00:33:51,970 Beraz, orain zer - dit-dit-dit! 789 00:33:51,970 --> 00:33:53,400 Zer gertatuko da orain? 790 00:33:53,400 --> 00:33:54,490 Diseinua erabakia. 791 00:33:54,490 --> 00:33:56,825 Beraz, ez da txarra sena, baina - Zein da zure izena berriro? 792 00:33:56,825 --> 00:33:57,090 >> Ikusleak: David. 793 00:33:57,090 --> 00:33:57,500 >> DAVID MALAN: David. 794 00:33:57,500 --> 00:33:58,810 Beraz, zer egin zuen David? 795 00:33:58,810 --> 00:34:02,590 Konpondu datuak ordenatzeko izan zen saiatzen egitura eta mugimendua, bere kokapen 796 00:34:02,590 --> 00:34:04,100 Jake-en kokapen ohia da. 797 00:34:04,100 --> 00:34:06,740 Eta hori da fin gaude prest bada hori onartu behar bezala 798 00:34:06,740 --> 00:34:08,199 ezartzeko xehetasun. 799 00:34:08,199 --> 00:34:11,100 Baina lehen, dezagun eguneratzeko datuak egitura egin dugu aurretik. 800 00:34:11,100 --> 00:34:14,139 Dut ez delako guztiak ideia gustuko pertsona Ildo honetan ikusita. 801 00:34:14,139 --> 00:34:17,360 >> Big deal ez da David egiten bada urrats bat, baina berriro ere, uste itzuli 802 00:34:17,360 --> 00:34:20,360 denean izan dugu zortzi buruzko boluntario etapa eta txertatzeko atsegin dugu egin 803 00:34:20,360 --> 00:34:22,600 ordenatu, non hasi behar izan genuen guztiontzat inguruan mugitzen. 804 00:34:22,600 --> 00:34:23,790 Hori lortu garestia da, ezta? 805 00:34:23,790 --> 00:34:28,330 Horregatik, cringe big O buruz n, big n O karratu berriro. 806 00:34:28,330 --> 00:34:30,650 Ez da bezala sentitu Emaitza ezin hobea. 807 00:34:30,650 --> 00:34:32,080 >> Hargatik, besterik eguneratu. 808 00:34:32,080 --> 00:34:35,120 Ilara tamaina, beraz, Jada ez da 2. 809 00:34:35,120 --> 00:34:37,090 Gaur egun, ez da, besterik gabe, 1. 810 00:34:37,090 --> 00:34:40,360 Baina orain ezin dut eguneratu zerbait Nik ez dut eguneratu aurretik, 811 00:34:40,360 --> 00:34:41,130 zerrendaren aurrean. 812 00:34:41,130 --> 00:34:45,420 Besterik ezin dut esan, kokapena duten 1 da? 813 00:34:45,420 --> 00:34:49,770 Beraz, orain zabor balioa dugu hemen, zabor balioa hemen, eta David 814 00:34:49,770 --> 00:34:51,469 zabor honen erdialdera. 815 00:34:51,469 --> 00:34:54,980 Baina datu-egitura da, oraindik ere, oso-osorik. 816 00:34:54,980 --> 00:34:58,540 >> Eta, hain zuzen ere, ez dakit, nahiz eta behar aldatu Jake en lehengo zenbakia 817 00:34:58,540 --> 00:35:00,460 9, nork zaintzen duelako. 818 00:35:00,460 --> 00:35:04,470 Nahikoa informazio izan dut gaur egun dauden tamaina jakin dut horrek pertsona bat hasi 819 00:35:04,470 --> 00:35:05,030 ilara honetan. 820 00:35:05,030 --> 00:35:08,340 Eta badakit, pertsona hori kokapena 1, ez da 0. 821 00:35:08,340 --> 00:35:09,760 Ez dut kontatuta. 822 00:35:09,760 --> 00:35:11,300 1, beraz, bai. 823 00:35:11,300 --> 00:35:13,410 Beraz, datu egitura oraindik Ados. 824 00:35:13,410 --> 00:35:14,330 >> Beno, zer gertatzen da gero? 825 00:35:14,330 --> 00:35:15,010 Dezagun enqueue - 826 00:35:15,010 --> 00:35:15,370 Zein da zure izena? 827 00:35:15,370 --> 00:35:16,160 >> Ikusleak: Callen. 828 00:35:16,160 --> 00:35:16,580 >> DAVID MALAN: Callen. 829 00:35:16,580 --> 00:35:20,770 Dezagun enqueue Callen bat, eta 22 da orain ilaran. 830 00:35:20,770 --> 00:35:22,300 Beraz, orain zer egiten du hemen aldatzeko? 831 00:35:22,300 --> 00:35:24,380 Aurrean, ez da joan aldatu, jakina. 832 00:35:24,380 --> 00:35:27,160 Tamaina 2 izango da, berriz ere aldatuko. 833 00:35:27,160 --> 00:35:31,590 Eta 22an amaituko da hemen, eta 9, oraindik ere presente baina modu eraginkorrean bat da 834 00:35:31,590 --> 00:35:32,600 zabor balioa orain. 835 00:35:32,600 --> 00:35:35,910 Besterik ez da Jake iraganeko aztarna bat. 836 00:35:35,910 --> 00:35:39,200 >> Beraz, orain zer gertatzen bada David adierazten du dut? 837 00:35:39,200 --> 00:35:41,560 One azken eragiketa, adierazten du David. 838 00:35:41,560 --> 00:35:46,070 Mugitzeko, baina ezin izan dugu dezagun proposatzen dut ahalik eta lan gutxi egin. 839 00:35:46,070 --> 00:35:50,280 Orain nire datuak egitura doa tamaina atzera 2 eta 1. 840 00:35:50,280 --> 00:35:53,730 Baina ilara aurrean Gaur egun, 2 bilakatzen da. 841 00:35:53,730 --> 00:35:56,640 Ez dut behar zenbaki horiek aldatzeko besterik gabe, delako Oraindik 842 00:35:56,640 --> 00:35:58,230 besterik zabor balio. 843 00:35:58,230 --> 00:35:59,720 >> Baina orain zer gertatzen da? 844 00:35:59,720 --> 00:36:03,280 Demagun enqueue dut neure burua, 26? 845 00:36:03,280 --> 00:36:05,890 Sartzen ditut hemen bezala sentitzen dut. 846 00:36:05,890 --> 00:36:06,890 Beraz, naiz ari enqueued. 847 00:36:06,890 --> 00:36:08,760 Sartzen dira, beraz, mota horretako dut hemen. 848 00:36:08,760 --> 00:36:11,300 Eta nahiz eta ez nahiko egin duzu eskertzen honetan ikusmen agertokian, 849 00:36:11,300 --> 00:36:15,075 dugu gela ugari duelako, behar dut ez da hemen zutik, zergatik? 850 00:36:15,075 --> 00:36:16,290 >> Ikusleak: out zara mugetatik kanpo. 851 00:36:16,290 --> 00:36:16,370 >> DAVID MALAN: Right. 852 00:36:16,370 --> 00:36:16,940 Nago mugetatik kanpo. 853 00:36:16,940 --> 00:36:19,330 Haratago Nik indexatutako multzo honen mugetatik kanpo. 854 00:36:19,330 --> 00:36:23,420 Behar dut bat izango da hiru kokapenak. 855 00:36:23,420 --> 00:36:25,150 Orain, non da gehien natural joan? 856 00:36:25,150 --> 00:36:27,760 Dugu leveraged proposatzen dut aste bat trikimailu. 857 00:36:27,760 --> 00:36:30,150 The mod eragilea, portzentajea. 858 00:36:30,150 --> 00:36:36,850 Dut teknikoki delako delarik kokapena 3, baina ez dut beste 3 mod edukiera, 859 00:36:36,850 --> 00:36:40,250 3, ehuneko ikurra, beraz, 3 - 860 00:36:40,250 --> 00:36:40,970 edukiera 3 da. 861 00:36:40,970 --> 00:36:41,720 Zer da hori? 862 00:36:41,720 --> 00:36:43,700 Zer gainerako orduan 3 zatitzen 3 duzu? 863 00:36:43,700 --> 00:36:44,070 0. 864 00:36:44,070 --> 00:36:48,140 >> Beraz jartzen dit ziren Jake zen, hau da, benetan ona. 865 00:36:48,140 --> 00:36:50,370 Beraz, orain ezartzeko gauza hori egin ahal izateko joan 866 00:36:50,370 --> 00:36:51,250 buruhauste bat pixka bat izango da. 867 00:36:51,250 --> 00:36:53,740 Benetan, besterik gabe, lerro bat buruko min, kodea da. 868 00:36:53,740 --> 00:36:56,580 Baina, gutxienez, gaur egun, ez da zaborra balio du, baina ez da bi 869 00:36:56,580 --> 00:36:57,910 legitimoa ints hemen. 870 00:36:57,910 --> 00:37:04,160 Eta orain, hori egin dugu aldarrikatzen dut zehazki zer hain luze jo egin behar dugu 871 00:37:04,160 --> 00:37:08,600 Jake horrek zer aldatu dugu balioa izan zen, 26 izango dira. 872 00:37:08,600 --> 00:37:12,110 >> Gaur egun, oraindik ere, nahikoa informazioa osotasuna mantentzeko 873 00:37:12,110 --> 00:37:13,060 Datuen egitura hau. 874 00:37:13,060 --> 00:37:17,160 Oraindik dugu nolako kanpo zorte dugunean nahi edo lau gehiago, guztira txertatzeko 875 00:37:17,160 --> 00:37:20,740 elementuak, baina, gutxienez, ezin dut egin nahiko konstante erabilera eraginkorra 876 00:37:20,740 --> 00:37:21,740 denbora, hain zuzen ere. 877 00:37:21,740 --> 00:37:27,150 Ez dut nahi ikusita kezkatu guztiontzat, David en joera izan zen. 878 00:37:27,150 --> 00:37:30,816 >> Pilak buruzko edozein galdera, edo ilara hau? 879 00:37:30,816 --> 00:37:32,184 >> Ikusleak: horregatik tamaina jakin behar duzu, beraz, 880 00:37:32,184 --> 00:37:34,010 non pertsona bat izatea? 881 00:37:34,010 --> 00:37:34,770 >> DAVID MALAN: Horixe. 882 00:37:34,770 --> 00:37:38,230 Array tamaina jakin behar dut behar dut zehazki nola jakin behar delako 883 00:37:38,230 --> 00:37:41,940 balio horiek asko dira zilegi, eta, beraz, non ipini dut aurkitu ahal 884 00:37:41,940 --> 00:37:42,800 hurrengo pertsona. 885 00:37:42,800 --> 00:37:43,300 Zehazki. 886 00:37:43,300 --> 00:37:44,580 Tamaina da - 887 00:37:44,580 --> 00:37:46,360 egia esan, ez dugu eguneratu gabe. 888 00:37:46,360 --> 00:37:48,380 Gehitu dut neure burua 26. 889 00:37:48,380 --> 00:37:51,760 Tamaina da, gaur egun, ez da 1, baina 2. 890 00:37:51,760 --> 00:37:57,780 Beraz, orain hau, hain zuzen ere laguntzen aurkituko me zerrenda-burua, eta hori ez da 0, ez 891 00:37:57,780 --> 00:37:59,250 1, baina 2. 892 00:37:59,250 --> 00:38:01,665 Zerrendaren aurrean da, hain zuzen ere, 22. 893 00:38:01,665 --> 00:38:05,120 Lehen zuen delako, eta, beraz, behar zuen egon dendan sartu onartzen nik baino lehen, 894 00:38:05,120 --> 00:38:08,780 nahiz eta ikusmen zutik dut denda hurbilago. 895 00:38:08,780 --> 00:38:09,220 >> Guztiak eskubidea? 896 00:38:09,220 --> 00:38:12,410 A txalo Kopako mutil hauek egiteko eta utzi egingo dugu bertan. 897 00:38:12,410 --> 00:38:17,090 >> [Txaloak] 898 00:38:17,090 --> 00:38:18,150 >> DAVID MALAN: utzi izan dut erretiluan dizu. 899 00:38:18,150 --> 00:38:20,760 Ikusi zer gertatzen bada genezake , nahi duzun, baina agian ez. 900 00:38:20,760 --> 00:38:21,590 Guztiak eskubidea. 901 00:38:21,590 --> 00:38:25,380 Beraz, orain ez duela utziko digu? 902 00:38:25,380 --> 00:38:28,900 Beno, utzi niri ez dagoela proposatzen da bat gutxi beste datu egiturak genezake 903 00:38:28,900 --> 00:38:33,810 hasteko gure tresna kit izango gehituz benetan izan nahiko, oso garrantzitsutzat jo 904 00:38:33,810 --> 00:38:35,270 murgiltze web stuff sartu dugu. 905 00:38:35,270 --> 00:38:38,150 Zein da berriro, konexio mota batzuk ditu inprimaki honen zuhaitzak 906 00:38:38,150 --> 00:38:40,550 zerbait izeneko DOM, dokumentu objektu eredua. 907 00:38:40,550 --> 00:38:42,370 Baina gehiago ikusiko dugu luze baino lehen. 908 00:38:42,370 --> 00:38:46,260 >> Let me definitionally proposatzen dugu deitu zuhaitz orain zer badakizu, baliteke 909 00:38:46,260 --> 00:38:48,820 familia zuhaitz bat, non gehiago izan hartan arbaso batzuk 910 00:38:48,820 --> 00:38:49,790 zuhaitzaren sustraiak. 911 00:38:49,790 --> 00:38:54,480 A patriarkal edo matriarch at oso Zuhaitzaren goiko. 912 00:38:54,480 --> 00:38:56,700 Bere ezkontidea izan gabe, kasu honetan. 913 00:38:56,700 --> 00:39:00,940 Baina orain, zer deitu dugu seme-alabak dira, nodo zintzilikatzeko 914 00:39:00,940 --> 00:39:05,480 Umearen ezkerreko edo eskuineko umea off, geziak irudikatu hemen. 915 00:39:05,480 --> 00:39:10,490 >> Alegia, zuhaitz bat datuak egitura batean ordenagailuan, zuhaitz bat du zero 916 00:39:10,490 --> 00:39:11,480 edo gehiago nodoak. 917 00:39:11,480 --> 00:39:13,500 Gutxienez bat nodoa dauka bada, deitzen duten erro. 918 00:39:13,500 --> 00:39:15,700 Gauzak ikusmen hori da marraztu goialdean dugu. 919 00:39:15,700 --> 00:39:20,280 Eta nodo hori, beste edozein nodo bezala, ahal dute, zero, bat, edo bi, edo hiru, 920 00:39:20,280 --> 00:39:23,600 o Hala ere, askok seme-alabak Datuen egitura onartzen. 921 00:39:23,600 --> 00:39:29,150 Kasu honetan, erroa, gordetzeko balio bat, bi seme-alaba ditu, 2 eta 3, 922 00:39:29,150 --> 00:39:33,020 beraz, deitu dugu, oro har, 2 Ezkerraldean haur eta 3 seme-alaba izateko eskubidea. 923 00:39:33,020 --> 00:39:36,940 >> Eta orduan, behera iritsi gara, 5, 6, eta 7, 6 deitu daiteke, erdiko umea. 924 00:39:36,940 --> 00:39:38,940 Duzu, lau seme-alaba bada, nahasgarria xelebrea. 925 00:39:38,940 --> 00:39:42,260 Beraz, mota horretako erabiltzeari utzi dugu laster-hitzez du. 926 00:39:42,260 --> 00:39:44,580 Baina benetan familiako zuhaitz bat. 927 00:39:44,580 --> 00:39:48,880 Eta hostoak hemen nodoak direla seme-alabek ez dute beren burua. 928 00:39:48,880 --> 00:39:52,540 Off zintzilikatu dute zuhaitz behealdean. 929 00:39:52,540 --> 00:39:56,940 >> Beraz, nola liteke zuhaitz bat ezartzen dugu du besterik Gehienez bi seme-alaba? 930 00:39:56,940 --> 00:39:58,410 Deitu bitar zuhaitz bat dugu. 931 00:39:58,410 --> 00:40:00,960 Bi berriro bi esanahia honetan kasuan, bitar bezala. 932 00:40:00,960 --> 00:40:04,830 Eta, beraz, zero, bat izan daiteke, edo Gehienez bi seme-alaba. 933 00:40:04,830 --> 00:40:08,650 >> Ezartzea proposatzen dugu nodo dut int n bat egitura dela-eta, 934 00:40:08,650 --> 00:40:11,910 eta, ondoren, bi erakusleak, bat deitzen ezkerrera, eskuinera izeneko bat. 935 00:40:11,910 --> 00:40:14,830 Baina besterik ez dira polita konbentzio arbitrarioa. 936 00:40:14,830 --> 00:40:18,170 Eta zer polita da gaur egun, batez ere baduzu mota borrokatu kontzeptualki batera 937 00:40:18,170 --> 00:40:21,300 errekurtsibitate, edo pentsatu ez zela benetan ezer irtenbide bat, 938 00:40:21,300 --> 00:40:23,120 bereziki, ezin izan bada agortu memoria. 939 00:40:23,120 --> 00:40:26,600 Orain dela datuak buruz ari gara hitz egiten egiturak eta algoritmoak aukera ematen duten 940 00:40:26,600 --> 00:40:31,030 zeharkatuko dugu manipulatzeko, bihurtzen errekurtsio datorren itzuli 941 00:40:31,030 --> 00:40:34,240 askoz sinesgarria ez bada modu ederra. 942 00:40:34,240 --> 00:40:38,670 >> Hau proposatzen dut ezartzeko da, beraz, Search Funtzio bat. 943 00:40:38,670 --> 00:40:39,870 Emandako bi sarrera - 944 00:40:39,870 --> 00:40:41,570 beraz, uste kutxa beltz bat bezala. 945 00:40:41,570 --> 00:40:46,560 Emandako bi sarrera, n, int, eta bat zuhaitz baten erakusle baten erakuslea 946 00:40:46,560 --> 00:40:50,020 nodoa, edo benetan zuhaitz baten erroa, I erreklamazioa funtzio honek dezake itzultzeko 947 00:40:50,020 --> 00:40:53,530 egia edo gezurra, balio n Zuhaitz hau da barrutik. 948 00:40:53,530 --> 00:40:55,210 >> Zer da hau kutxa beltza barrutik da? 949 00:40:55,210 --> 00:40:57,440 Beno, lau adarretan. 950 00:40:57,440 --> 00:40:58,385 Lehen besterik ez egiaztatzen du. 951 00:40:58,385 --> 00:41:00,490 Zuhaitz null bada, faltsua besterik ez itzultzeko. 952 00:41:00,490 --> 00:41:04,580 Han nodo ez bada, ez dago n ez da, han-zenbakia ez da, besterik gabe itzultzeko faltsua. 953 00:41:04,580 --> 00:41:12,330 Arren, n, balio badu bilatzen ari zaren , ez da zuhaitz gezi-n baino txikiagoa da, eta 954 00:41:12,330 --> 00:41:15,180 besterik gabe, argi eta garbi izan behar du, zer esan nahi denean Zuhaitz eta, ondoren, gezi idazten dut 955 00:41:15,180 --> 00:41:18,150 idazkera, n? 956 00:41:18,150 --> 00:41:18,690 Zehazki. 957 00:41:18,690 --> 00:41:21,970 Dereference esan nahi duten erakuslea izeneko zuhaitza. 958 00:41:21,970 --> 00:41:26,750 Hara joan, eta, ondoren, horren barruan lortu nodo eta bere eremuan izeneko n. 959 00:41:26,750 --> 00:41:30,810 Eta gero, konparatu benetako n zela aurka Search pasa. 960 00:41:30,810 --> 00:41:35,390 >> Beraz, bada, n, n balioa baino txikiagoa Zuhaitz nodo berez, bai, 961 00:41:35,390 --> 00:41:36,720 Zer esan nahi du? 962 00:41:36,720 --> 00:41:40,690 Horrek esan nahi du ezer ez, lehen begiratuan. 963 00:41:40,690 --> 00:41:40,900 Eskuin? 964 00:41:40,900 --> 00:41:45,560 Just like denean array bat izatea balioak, nahi bitar aplikatzen dezakezu 965 00:41:45,560 --> 00:41:48,290 arraila moduan bilatu eta konkistatzeko. 966 00:41:48,290 --> 00:41:51,790 Baina, zer bereganatzeak ez zuen egin behar dugu binary bilaketa guztietan lan egiteko 967 00:41:51,790 --> 00:41:54,510 telefono-liburua eta lehenago adibideak? 968 00:41:54,510 --> 00:41:55,530 >> Nola ordenatuko da. 969 00:41:55,530 --> 00:41:59,490 Hargatik zehatzagoak zuhaitz definizioa Hemen ez da, besterik gabe, zuhaitz bat, ezin izango da 970 00:41:59,490 --> 00:42:00,880 dute seme-alaben kopurua edozein. 971 00:42:00,880 --> 00:42:04,700 Ez bakarrik bitar zuhaitz bat, eta horrek dute 0, 1, 2 edo Gehienez. 972 00:42:04,700 --> 00:42:09,700 Baina bilaketa zuhaitz bitarra, edo udako ordutegian gisa, hau da, besterik gabe, esaten modu dotore bat 973 00:42:09,700 --> 00:42:15,430 hala nola, zuhaitz bitar nodo guztien duten Ezkerraldean haurra, baldin badago, ez da 974 00:42:15,430 --> 00:42:16,830 nodo baino gutxiago. 975 00:42:16,830 --> 00:42:20,170 Eta nodo bakoitzean eskubidea haurra, badaude, handiagoa da 976 00:42:20,170 --> 00:42:21,740 nodo bera baino. 977 00:42:21,740 --> 00:42:25,200 >> Beraz, hitz beste, izan ziren baduzu marraztu Zuhaitz dira, zenbaki guztiak dira 978 00:42:25,200 --> 00:42:30,620 arretaz hau atsegin orekatua beraz, gero 55 izan duzu erro gisa, 33 joan 979 00:42:30,620 --> 00:42:33,090 bere ezker dela 55 baino gutxiago delako. 980 00:42:33,090 --> 00:42:36,430 77 dezake bere eskubidea delako joan 55 baino handiagoa da. 981 00:42:36,430 --> 00:42:40,750 Baina orain konturatzen, beraren definizioa, errekurtsiboaren definizio bat da, ahoz, 982 00:42:40,750 --> 00:42:42,600 ditu 33 eskatzeko. 983 00:42:42,600 --> 00:42:47,610 33 en ezker umea baino gutxiago izan behar du, eta 33 seme-alabak eskubidea, 44, behar izan 984 00:42:47,610 --> 00:42:48,580 hura baino handiagoa da. 985 00:42:48,580 --> 00:42:51,670 >> Beraz, hau bilaketa zuhaitz bitarra da, eta , Proposatzen dut pixka bat erabiliz 986 00:42:51,670 --> 00:42:53,910 errekurtsibitate, orain aurkituko ditugu n. 987 00:42:53,910 --> 00:42:59,160 Hala bada n balio n hori baino gutxiago egungo nodoa, joan naiz 988 00:42:59,160 --> 00:43:04,090 Animatu eta punt, eta, beraz, hitz egiteko, eta, besterik gabe, itzultzeko, edozein dela erantzun da 989 00:43:04,090 --> 00:43:08,470 n bilatzen du Zuhaitz horrek ezkerreko umea. 990 00:43:08,470 --> 00:43:11,370 Iragarki berriro, funtzio honetan bakarrik nodo bat izar bat espero du 991 00:43:11,370 --> 00:43:12,780 nodo bat erakuslea. 992 00:43:12,780 --> 00:43:17,360 Beraz, ziur asko, besterik ezin dut egin zuhaitz ezkerrera gezi, eta ekar 993 00:43:17,360 --> 00:43:18,400 Niri nodo bat. 994 00:43:18,400 --> 00:43:19,480 Baina zer nodo hori? 995 00:43:19,480 --> 00:43:22,820 >> Beno, eta deklarazio honen arabera, ezkerretara erakuslea besterik ez da, beraz, besterik ez da 996 00:43:22,820 --> 00:43:27,090 esan nahi du, bilaketa-funtzioa dut igaro desberdinak erakuslea, hain zuzen 997 00:43:27,090 --> 00:43:30,750 bat dagoela adierazten du nire ezker haurraren zuhaitz. 998 00:43:30,750 --> 00:43:36,040 Beraz, kasu honetan, erakuslea 33, bada hau gure lagina sarrera Bitartean, bada 999 00:43:36,040 --> 00:43:40,740 n da n balioa baino handiagoa Zuhaitz nodo oraingoa, orduan naiz 1000 00:43:40,740 --> 00:43:43,370 Animatu eta punt joan beste joan norabidea, eta besterik esan, ez dut 1001 00:43:43,370 --> 00:43:47,280 ezagutzen balioa n zuhaitza bada, baina bada ezagutu dut, behera da nire 1002 00:43:47,280 --> 00:43:49,090 eskuineko adarraren, nolabait esateko. 1003 00:43:49,090 --> 00:43:53,120 Hargatik errekurtsiboki Call me bilatzeko, n bat pasa eta berriro, baina bat igaro 1004 00:43:53,120 --> 00:43:54,580 nire eskuineko umea erakuslea. 1005 00:43:54,580 --> 00:44:00,020 >> Bestela esanda, gaur egun, naiz bada 55 99 eta bila nabil, badakit hori 99 1006 00:44:00,020 --> 00:44:04,270 da 55 baino handiagoa da, eta, beraz, besterik gabe, atsegin dut Tore telefono-liburua duela eta gu 1007 00:44:04,270 --> 00:44:07,140 joan eskubidea, era berean gaude hemen joan behar. 1008 00:44:07,140 --> 00:44:11,960 Eta ez dakit nire eskubidea zuen bada haurra, eta ez da, 77 hor dago, baina 1009 00:44:11,960 --> 00:44:13,210 Da norabide horretan jakin nuen. 1010 00:44:13,210 --> 00:44:18,770 Beraz, bilaketa deitu dut nire seme-alaba eskuinean, 77, eta utzi bilaketa zifra kanpotik 1011 00:44:18,770 --> 00:44:24,950 ez arbitrarioa honetan 99 bada Adibidez, ez da benetan. 1012 00:44:24,950 --> 00:44:26,900 >> Bestela, azken kasuan zer da? 1013 00:44:26,900 --> 00:44:28,620 Zuhaitz bada null bat kasua da. 1014 00:44:28,620 --> 00:44:31,890 N da nodoa oraingoa baino txikiagoa bada balioa kasu bat da. 1015 00:44:31,890 --> 00:44:35,120 N da, oraingoa baino handiagoa bada nodo balio hirugarren kasu bat da. 1016 00:44:35,120 --> 00:44:38,250 Zer Laugarren eta azken kasua da? 1017 00:44:38,250 --> 00:44:39,480 Ari gara kasu, uste dut, ezta? 1018 00:44:39,480 --> 00:44:44,690 N izan dela da behar egungo nodo duten nago. 1019 00:44:44,690 --> 00:44:49,640 >> Beraz, bada, 55 dut puntu honetan bilatzen Ipuinean, adar hori 1020 00:44:49,640 --> 00:44:51,780 Zuhaitz egia itzuliko litzateke. 1021 00:44:51,780 --> 00:44:55,380 Beraz, zer da interesgarria hemen dugu benetan, iragan asteetan ez bezala, ez dugu mota 1022 00:44:55,380 --> 00:44:56,740 dute bi oinarri kasu. 1023 00:44:56,740 --> 00:44:58,300 Eta ez dute nahi guztiak izango dira goialdean. 1024 00:44:58,300 --> 00:45:01,390 Goiko oinarri-kasu bat da, baldin eta delako Zuhaitz nulua da, ez da ezer egin behar da. 1025 00:45:01,390 --> 00:45:03,410 Just itzultzeko gogor bat kodetuak faltsua balioa. 1026 00:45:03,410 --> 00:45:07,400 >> Behean adarra den moduko da lehenetsia, beraz dugu bada hautatuta 1027 00:45:07,400 --> 00:45:11,550 nulua, hautatuta dugu eta izan beharko bada utzi, baina ez luke izan behar, dugu 1028 00:45:11,550 --> 00:45:14,640 hautatuta eskubidea duela behar bada, baina ez du izan behar, argi izan behar ditu 1029 00:45:14,640 --> 00:45:15,870 eskubidea non gauden. 1030 00:45:15,870 --> 00:45:16,780 Duten oinarri-kasu bat da. 1031 00:45:16,780 --> 00:45:19,920 Beraz, ez da bi kasuetan recursive sandwiched ez erdian. 1032 00:45:19,920 --> 00:45:21,630 Baina idatzi nuen Hori edozein. 1033 00:45:21,630 --> 00:45:24,520 Pentsatu dut sentitu mota da naturala lehenengo posible akats egiaztatzeko, 1034 00:45:24,520 --> 00:45:28,340 hautatu utzi eta, ondoren, eskuinera begiratu, eta gero bere gain nodo batean zaudela 1035 00:45:28,340 --> 00:45:30,630 benetan ari zaren bila. 1036 00:45:30,630 --> 00:45:36,240 >> Beraz, zergatik ez litzateke baliagarria? 1037 00:45:36,240 --> 00:45:37,910 Beraz bihurtzen da - 1038 00:45:37,910 --> 00:45:42,110 eta utzi egin beharko aurkezpenik niretzat hemen web da. 1039 00:45:42,110 --> 00:45:44,920 Ez da erabiltzen hasteko goaz programatzeko lehen hizkuntza, baina 1040 00:45:44,920 --> 00:45:46,030 markaketa hizkuntza. 1041 00:45:46,030 --> 00:45:48,740 Ko hori izateaz markaketa hizkuntza programazio espiritua antzekoak 1042 00:45:48,740 --> 00:45:51,715 hizkuntza, baina ez du ematen dizu gaitasuna zeure burua adierazteko logikoki. 1043 00:45:51,715 --> 00:45:55,070 Bakarrik ematen dizu gaitasuna adierazteko zeuk egituraz. 1044 00:45:55,070 --> 00:45:57,960 >> Non zerbait jarri nahi duzun orrian, web orria? 1045 00:45:57,960 --> 00:45:59,200 Zer kolorea ez da egin nahi duzu? 1046 00:45:59,200 --> 00:46:00,950 Zer da letra-tamaina utzi egin nahi duzu? 1047 00:46:00,950 --> 00:46:02,970 Zer hitz egiten duzu benetan web orrian nahi? 1048 00:46:02,970 --> 00:46:04,060 Beraz, markaketa hizkuntza bat da. 1049 00:46:04,060 --> 00:46:07,690 Baina, gero, oso azkar egingo dugu aurkezten Ikusteko Javascript-a, hau da, osoko fledged 1050 00:46:07,690 --> 00:46:08,560 Hizkuntza programazioa. 1051 00:46:08,560 --> 00:46:12,530 Argazkiak, sintaktikoki oso antzekoak C, baina ahal izango da 1052 00:46:12,530 --> 00:46:15,200 polita, ahaltsuagoa gehiago lagungarri ezaugarri. 1053 00:46:15,200 --> 00:46:18,050 >> Eta frustrazio bat honetan seihilekoan puntua da hori egiten zaitugu 1054 00:46:18,050 --> 00:46:22,065 laster ezartzea speller urrun gutxiago kode lerro beste hizkuntza erabiliz 1055 00:46:22,065 --> 00:46:25,580 C bera baino aukera ematen du, baina arrazoi-en laster ikusiko dugu ulertzen. 1056 00:46:25,580 --> 00:46:27,750 Lehenengo, hala nola, web orrian egongo dira. 1057 00:46:27,750 --> 00:46:30,120 Erabat underwhelming izango da, lehenengoa dugu. 1058 00:46:30,120 --> 00:46:31,400 Izango da, besterik gabe, esan, Kaixo mundua. 1059 00:46:31,400 --> 00:46:34,010 Baina nik inoiz ez baduzu ikusi baino lehen, hau da, HTML, 1060 00:46:34,010 --> 00:46:35,670 Hipertestua Markatzeko lengoaia. 1061 00:46:35,670 --> 00:46:39,310 >> Jakin bat menuko aukera bazoaz en gehien Edozein nabigatzailean, web orrian edozein an 1062 00:46:39,310 --> 00:46:43,160 Internet, HTML ikusi ahal izango dituzu pertsona batzuek idatzi zuen 1063 00:46:43,160 --> 00:46:44,400 Sortu web orri hori. 1064 00:46:44,400 --> 00:46:47,850 Eta, seguruenik, ez da ez itxura labur edo hau neat. 1065 00:46:47,850 --> 00:46:51,400 Baina horien eredua jarraitu egingo du parentesi irekiak eta barrak eta 1066 00:46:51,400 --> 00:46:53,660 letrak eta zenbakiak izan daitezkeen. 1067 00:46:53,660 --> 00:46:56,770 >> Emango dizu nuke esaldi bat pentsatu nuen zer egin ahal izango dute egin dituzun 1068 00:46:56,770 --> 00:46:57,950 CS50 hartu ondoren. 1069 00:46:57,950 --> 00:47:02,620 Demagun joan cs.harvard.edu / rob me, gure Rob Bowden en orri nagusia. 1070 00:47:02,620 --> 00:47:06,080 Hau egin zuen guretzat. 1071 00:47:06,080 --> 00:47:07,490 Beraz, laster ahal izango duzu horretarako. 1072 00:47:07,490 --> 00:47:10,660 Eta, era berean, zer entzun Gaur goizean - 1073 00:47:10,660 --> 00:47:12,480 zer goizean entzun duzu - 1074 00:47:12,480 --> 00:47:13,780 >> [Hamster Dance Music] 1075 00:47:13,780 --> 00:47:15,702 >> - You'll gai izan hau egiteko. 1076 00:47:15,702 --> 00:47:16,790 Duten zain gurekin asteazkenean. 1077 00:47:16,790 --> 00:47:17,791 Duzu ikusten dugu gero. 1078 00:47:17,791 --> 00:47:22,950 >> [Hamster Dance Music] 1079 00:47:22,950 --> 00:47:24,300 DAVID MALAN: hurrengo CS50 At - 1080 00:47:24,300 --> 00:47:31,670