1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Aste 6] 2 00:00:02,000 --> 00:00:04,000 [David J. Malan] [Harvardeko Unibertsitateko] 3 00:00:04,000 --> 00:00:08,000 [Hau da CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:12,000 >> Hau CS50 da, eta hau da Aste 6 Irteeran, 5 00:00:12,000 --> 00:00:16,000 Tresna berri pare bat, beraz, abantaila duzun hartzeko aukera dago, 6 00:00:16,000 --> 00:00:19,000 lehen CS50 Style deritzo. 7 00:00:19,000 --> 00:00:22,000 Odds dira me edo irakaskuntza bekadun edozein atsegin baduzu, 8 00:00:22,000 --> 00:00:26,000 seguruenik ikusi duzun estilo honen antzeko zerbait apur bat itxura duten programa bat. 9 00:00:26,000 --> 00:00:30,000 Agian txoko batzuk gauez berandu ebaketa hasten zarenean, edo duzu aurre geroago, 10 00:00:30,000 --> 00:00:32,000 eta, ondoren, TF edo CA dator, bulego orduetan. 11 00:00:32,000 --> 00:00:34,000 Orduan, zaila da gurekin irakurri. 12 00:00:34,000 --> 00:00:38,000 Beno, kode hau sintaktikoki zuzena, eta bertan bilduko da, eta benetan exekutatu. 13 00:00:38,000 --> 00:00:40,000 Baina zalantzarik gabe, ez da estilo 5. 14 00:00:40,000 --> 00:00:45,000 >> Baina orain, direktorio honetan sartu gara hemen 15 00:00:45,000 --> 00:00:48,000 eta konturatu que tengo conditions2.c- 16 00:00:48,000 --> 00:00:55,000 eta berri hau komandoa, style50, exekutatu I fitxategi conditions2.c honetan, Sartu, 17 00:00:55,000 --> 00:00:57,000 nabarituko dela informatuta me izan delako estilizatu. 18 00:00:57,000 --> 00:01:00,000 Gedit nabaritu fitxategia diskoan aldatu egin da, 19 00:01:00,000 --> 00:01:08,000 eta egin klik I birkargatu nahi izanez gero, zure arazo guztiak dira gaur egun automatikoa da. 20 00:01:08,000 --> 00:01:15,000 [Txalo] 21 00:01:15,000 --> 00:01:17,000 Hori asteburu honetan egin dugun gauza bat da. 22 00:01:17,000 --> 00:01:20,000 Konturatzen dela Inperfektua kodea batzuk 23 00:01:20,000 --> 00:01:23,000 besterik ez du egingo ez da gai primeran estilizatzeko 24 00:01:23,000 --> 00:01:26,000 baina konturatzen da orain tresna bat aprobetxatu dezakezu 25 00:01:26,000 --> 00:01:33,000 bada bakarrik txukuna kizkur gehiago errantly jarri tirantes batzuk eta antzekoak. 26 00:01:33,000 --> 00:01:36,000 >> Baina gehiago sinesgarria Check CS50 da. 27 00:01:36,000 --> 00:01:39,000 CS50 Check, benetan egin dezakezu berean zuzentasuna probak 28 00:01:39,000 --> 00:01:42,000 Zure kodea irakaskuntza bekadun gai direla. 29 00:01:42,000 --> 00:01:44,000 Hau da komando-lerroko tresna den aparatuaren 30 00:01:44,000 --> 00:01:46,000 ahalik eta azkarren egiten duzun bezala per gisa update50 bat 31 00:01:46,000 --> 00:01:49,000 pset 4 zehaztapenak, eta erabiltzen da, funtsean hau atsegin dute. 32 00:01:49,000 --> 00:01:51,000 Komando check50 exekutatu nahiko duzu. 33 00:01:51,000 --> 00:01:56,000 Ondoren, komando-lerroko argumentu bat pasatzen duzu, edo gehiago, oro har, switch bat edo bandera bat bezala ezagutzen. 34 00:01:56,000 --> 00:01:58,000 Oro har, gauza marratxoak deitzen dira switch 35 00:01:58,000 --> 00:02:02,000 komando-lerroa programa, eta, beraz,-c zehazten 36 00:02:02,000 --> 00:02:04,000 egiaztapen nahi duzun exekutatu. 37 00:02:04,000 --> 00:02:07,000 >> Probak nahi duzun exekutatu bakarrean kate hau identifikatu, 38 00:02:07,000 --> 00:02:10,000 2012/pset4/resize. 39 00:02:10,000 --> 00:02:13,000 Beste era batera esanda, hori besterik ez arbitrarioa, baina berezia da katea 40 00:02:13,000 --> 00:02:18,000 4-en zuzentasuna pset probak bakarrean identifikatzeko erabiltzen dugu. 41 00:02:18,000 --> 00:02:21,000 Eta gero zuriunez bereizitako fitxategi zerrenda zehaztu nahi duzun igo 42 00:02:21,000 --> 00:02:24,000 CS50 azterketa egiaztatu. 43 00:02:24,000 --> 00:02:29,000 Esate baterako, nire irtenbidea I joan bada hemen for resize.c- 44 00:02:29,000 --> 00:02:31,000 utzi ireki leiho-terminal handiagoa 45 00:02:31,000 --> 00:02:42,000 eta aurrera joaten naiz eta dezagun exekutatu esan check50-c 2012/pset4/resize 46 00:02:42,000 --> 00:02:46,000 eta, ondoren, aurretik joaten naiz eta fitxategi izenak zehazteko, 47 00:02:46,000 --> 00:02:49,000 resize.c, eta, ondoren, sakatu Sartu, konprimitzen, 48 00:02:49,000 --> 00:02:53,000 it fitxategiak, egiaztatzen da, eta besterik ez dut huts egin du proba sorta osoa. 49 00:02:53,000 --> 00:02:59,000 Goiko ezkerreko gorriz dio resize.c eta bmp existitzen. 50 00:02:59,000 --> 00:03:01,000 Proba izan zen. Hori da dugun galdera galdetu zen. 51 00:03:01,000 --> 00:03:04,000 Eta zorigaiztoko erantzun faltsua delako. 52 00:03:04,000 --> 00:03:08,000 Azpiko testua zuria dio bmp.h existitzen espero zen, eta hori, besterik gabe, nire errua. 53 00:03:08,000 --> 00:03:11,000 Igo ahaztu dut, beraz, bi fitxategiak igo behar dut, 54 00:03:11,000 --> 00:03:14,000 resize.c eta bmp.h. 55 00:03:14,000 --> 00:03:17,000 Baina orain konturatu beste proba guztiak horia dute, ez delako exekutatu, 56 00:03:17,000 --> 00:03:21,000 eta, beraz, bertikala da smiley face zuen ez pozik ez triste delako, 57 00:03:21,000 --> 00:03:25,000 baina gai hori zuzentzeko gorria beste txekeak horiek exekutatu aurretik ditugu. 58 00:03:25,000 --> 00:03:27,000 >> Utzi hau konpontzeko me. 59 00:03:27,000 --> 00:03:30,000 Txikiagotzeko me eta berrabiarazi, baina oraingo honetan bmp.h ere 60 00:03:30,000 --> 00:03:34,000 komando-lerroan, Sartu, eta guztiak ondo doa bada, 61 00:03:34,000 --> 00:03:38,000 eta, ondoren, egiaztatu itzultzeko emaitza-ezazu arnasa 62 00:03:38,000 --> 00:03:42,000 berde guztiak, eta horrek esan nahi du, oso ondo egiten ari naiz hain urruti pset 4. 63 00:03:42,000 --> 00:03:44,000 Ikus ditzakezu, eta testu deskriptibo infer Hemen 64 00:03:44,000 --> 00:03:47,000 zehazki zer dugu probatu da. 65 00:03:47,000 --> 00:03:49,000 Probatu ditugu fitxategiak lehen aldiz ez da existitzen? 66 00:03:49,000 --> 00:03:51,000 Probatu dugu resize.c konpilatzerakoan ez? 67 00:03:51,000 --> 00:03:58,000 Orduan ez tamainaz aldatu ez du 1x1 pixel BMP n, resize faktorea da, eta 1 probatu dugu. 68 00:03:58,000 --> 00:04:01,000 Orain, ideia ez duzu zer n izanez gero, behin egingo duzun pset 4 sartu murgiltze 69 00:04:01,000 --> 00:04:04,000 baina hori besterik ez da behatu bat egiaztatu ziur Oraindik ez duzula tamainaz aldatu egin 70 00:04:04,000 --> 00:04:08,000 resize faktorea irudi bat bada 1. 71 00:04:08,000 --> 00:04:14,000 , Aitzitik, 1x1 pixel BMP 1x1 pixel tamaina aldatzen 2x2 behar bezala 72 00:04:14,000 --> 00:04:19,000 n 2, orduan, era berean, hortaz eratzen nirea. 73 00:04:19,000 --> 00:04:22,000 >> Azken finean, hau da, bat ekarri, eraman zeharkatu behatzak 74 00:04:22,000 --> 00:04:25,000 eskubidea aurretik ekuazioa out aurkeztu zure pset. 75 00:04:25,000 --> 00:04:28,000 Dakit zehazki zer zure TF laster jakin ahal izango duzu 76 00:04:28,000 --> 00:04:30,000 arazo multzo horietako batzuk aurkezteko, 77 00:04:30,000 --> 00:04:34,000 eta, gainera,, motibazio pedagogikoa da benetan jarri 78 00:04:34,000 --> 00:04:37,000 zure aurrean aukera beraz, a priori badakizu 79 00:04:37,000 --> 00:04:39,000 ez da zure kodea bugs eta probak ez direla ari gainditu, 80 00:04:39,000 --> 00:04:43,000 eraginkorra denbora gehiago jarri ahal izango duzu aurrean sortu arazo horiek konpontzeko 81 00:04:43,000 --> 00:04:45,000 baino puntu galtzen, zure TF feedback, 82 00:04:45,000 --> 00:04:48,000 eta, ondoren, "Ahh," hurrena atsegin dut behar dela. 83 00:04:48,000 --> 00:04:50,000 Orain, gutxienez, tresna bat aurkituko duzu laguntzeko. 84 00:04:50,000 --> 00:04:52,000 Ez da bug da seinalatu nahi du, baina esango dizu 85 00:04:52,000 --> 00:04:54,000 zer da sintomatikoa da. 86 00:04:54,000 --> 00:04:57,000 >> Orain konturatzen probak ez du zertan zehatza. 87 00:04:57,000 --> 00:04:59,000 Just delako berdea smiley aurpegiak betetako pantaila bat lortuko duzu 88 00:04:59,000 --> 00:05:02,000 ez du esan nahi zure kodea ez da perfektua, baina esan nahi du 89 00:05:02,000 --> 00:05:06,000 duela zehaztutako zenbait agindutako probak gainditu. 90 00:05:06,000 --> 00:05:08,000 Batzuetan ez dugu askatu txekeak. 91 00:05:08,000 --> 00:05:10,000 Esate baterako, whodunit, 4 pset alderdi bat, 92 00:05:10,000 --> 00:05:15,000 disappointing mota ematen dizugu 93 00:05:15,000 --> 00:05:18,000 erantzun gisa, zer da, eta modu zenbaki bat agerian 94 00:05:18,000 --> 00:05:21,000 duten pertsona hori zarata gorria da. 95 00:05:21,000 --> 00:05:24,000 Zehaztapenak beti izango da etorkizunean zehaztu pset 5 aurrerantzean 96 00:05:24,000 --> 00:05:26,000 zer egiaztatzen du existitzen zuretzat. 97 00:05:26,000 --> 00:05:28,000 Zuri URL hau da, behealdean nabarituko duzu. 98 00:05:28,000 --> 00:05:30,000 Orain, honek diagnostiko irteera besterik ez da. 99 00:05:30,000 --> 00:05:33,000 Bisitatzen duzun URL gero, crazy, críptica mezu sorta osoa bat lortuko duzu 100 00:05:33,000 --> 00:05:36,000 ongietorri ari zaren begiratu bitartez, baina, batez ere, langileak 101 00:05:36,000 --> 00:05:41,000 eta beraz, diagnostikatu dezakegu bugs arazteko check50 bera. 102 00:05:41,000 --> 00:05:46,000 >> ADO gabe, dezagun non utzi dugu mugitu. 103 00:05:46,000 --> 00:05:48,000 CS50 liburutegi aste batzuk eman hartu genuen, 104 00:05:48,000 --> 00:05:52,000 baina gero, azken astean, atzera peeling geruza bat hasi ginen. 105 00:05:52,000 --> 00:05:55,000 Alde batera jarriz katea zer ordez aldeko hasi dugu? 106 00:05:55,000 --> 00:05:57,000 [Ikasleak] Char. 107 00:05:57,000 --> 00:05:59,000 * Char, char * izan da denbora honetan guztian, 108 00:05:59,000 --> 00:06:03,000 baina, gaur egun ez dugu hori benetako datu-mota string asmoa. 109 00:06:03,000 --> 00:06:06,000 Beharrean, era askotako sinonimo izan * char 110 00:06:06,000 --> 00:06:09,000 eta kate karaktere-sekuentzia bat da, 111 00:06:09,000 --> 00:06:14,000 beraz, zergatik ez du zentzurik char * s strings irudikatzeko? 112 00:06:14,000 --> 00:06:20,000 Zer da char * kate bat kontzeptu honen testuinguruan irudikatzeko? 113 00:06:20,000 --> 00:06:23,000 Bai. >> [Student] lehen karaktere gisa. 114 00:06:23,000 --> 00:06:25,000 Good, lehen karaktere gisa, baina ez da lehenengo pertsonaia. 115 00:06:25,000 --> 00:06:27,000 -[Ikasleak] Helbidea da. 116 00:06:27,000 --> 00:06:29,000 Good, lehen karaktere helbidea. 117 00:06:29,000 --> 00:06:33,000 Katea bat irudikatzeko ordenagailuaren memorian beharrezko hori 118 00:06:33,000 --> 00:06:36,000 besterik ez da, bere byte oso lehen helbidea berezia. 119 00:06:36,000 --> 00:06:38,000 Ez duzu ere, zenbat denbora da ezagutzeko 120 00:06:38,000 --> 00:06:42,000 nola egin dezaket hori delako irudikatu duzu dinamikoki? 121 00:06:42,000 --> 00:06:44,000 [Student] String luzera. 122 00:06:44,000 --> 00:06:48,000 Kate-luzera, bikaina, baina nola katea luzera lan egiten du deitu ahal duzu? 123 00:06:48,000 --> 00:06:50,000 Zer egiten du? Bai. 124 00:06:50,000 --> 00:06:52,000 [Student] null karaktere arte. 125 00:06:52,000 --> 00:06:54,000 Bai, zehazki, begizta bat besterik ez da iterates, begizta bitartean, 126 00:06:54,000 --> 00:06:57,000 * amaieran edozein izanda ere, eta amaiera irudikatzen 127 00:06:57,000 --> 00:07:01,000 \ 0, deiturikoak NULUAK pertsonaia, NULUAK 128 00:07:01,000 --> 00:07:05,000 null, erakuslea ez da nahastu behar, 129 00:07:05,000 --> 00:07:07,000 etorriko da elkarrizketan, berriz, gaur egun. 130 00:07:07,000 --> 00:07:11,000 >> Back zuritu dugu GetInt geruza bat, eta, ondoren, begirada bat hartu genuen GetString 131 00:07:11,000 --> 00:07:14,000 eta gogoratzen funtzio horietako bi, edo benetan, 132 00:07:14,000 --> 00:07:18,000 GetString izan zen, zenbait funtzio bat erabiliz 133 00:07:18,000 --> 00:07:21,000 benetan analizatu, hori, irakurri edo aztertzeko, erabiltzailearen sarrera. 134 00:07:21,000 --> 00:07:25,000 Eta zer funtzio berri hori izan zen? 135 00:07:25,000 --> 00:07:27,000 Scanf edo sscanf. Batzuk zapore benetan dator. 136 00:07:27,000 --> 00:07:31,000 Ez scanf, ez dago sscanf, ez dago fscanf. 137 00:07:31,000 --> 00:07:35,000 Oraingoz, ordea, dezagun bat erraz ilustratzen dira, 138 00:07:35,000 --> 00:07:38,000 eta utzi aurrera eta ireki aparatuaren 139 00:07:38,000 --> 00:07:41,000 hau atsegin fitxategia, scanf1.c. 140 00:07:41,000 --> 00:07:43,000 Hau super simple programa bat da, 141 00:07:43,000 --> 00:07:46,000 baina zerbait ez da inoiz egin ditudan du 142 00:07:46,000 --> 00:07:48,000 CS50 liburutegia laguntzarik gabe. 143 00:07:48,000 --> 00:07:51,000 From int bat erabiltzaile bat izaten jarraitzen du. Nola funtzionatzen du? 144 00:07:51,000 --> 00:07:53,000 Beno, line 16 dago 145 00:07:53,000 --> 00:07:56,000 nabarituko izeneko bat int x aldarrikatu dugula, eta istorioaren puntu honetan, 146 00:07:56,000 --> 00:07:58,000 x balioa zer da? 147 00:07:58,000 --> 00:08:00,000 [Inaudible ikaslearen erantzuna] 148 00:08:00,000 --> 00:08:02,000 [David M.] Eskuin, nork daki, zabor balio batzuk potentzialki, beraz, 17, esan besterik ez dugu erabiltzaileak 149 00:08:02,000 --> 00:08:06,000 emadazu zenbaki bat, mesedez, eta urrats 18 non interesgarria lortzen da. 150 00:08:06,000 --> 00:08:11,000 Scanf badirudi formatuan kodeak erabiltzen komatxo artean bat printf ideia maileguan. 151 00:08:11,000 --> 00:08:13,000 Zenbaki hamartar bat da% d noski. 152 00:08:13,000 --> 00:08:21,000 Baina zergatik am pasatuz, eta x ordez x I? 153 00:08:21,000 --> 00:08:24,000 Lehenengoak ez da zuzena. Bai. 154 00:08:24,000 --> 00:08:26,000 [Inaudible ikaslearen erantzuna] 155 00:08:26,000 --> 00:08:31,000 Zehazki, programa honen helburua bada, funtzioa GetInt bera bezala, 156 00:08:31,000 --> 00:08:34,000 int bat lortzeko erabiltzailearen funtzioak gainditu ahal I 157 00:08:34,000 --> 00:08:38,000 aldagai guztiak, nahi dut, baina ez badut pasatzen erreferentzia 158 00:08:38,000 --> 00:08:41,000 edo helbidea edo erakuslea, gaur egungo helburuetarako sinonimo guztiak, 159 00:08:41,000 --> 00:08:46,000 ondoren, funtzio hori ez aldagai horren edukia aldatzeko gaitasuna du. 160 00:08:46,000 --> 00:08:49,000 Honek kopia bat pasatuko litzateke, swap buggy bertsioa 161 00:08:49,000 --> 00:08:51,000 Nik ez dugun hainbat aldiz hitz egin du gaur egun. 162 00:08:51,000 --> 00:08:54,000 >> Baina, horren ordez, eta egiten ari x, literalki dut zer pasatzen? 163 00:08:54,000 --> 00:08:57,000 [Student] helbidea. >> X helbidea. 164 00:08:57,000 --> 00:09:01,000 Scanf izeneko funtzioa mapa bat marrazten du eta hemen esaten bezalakoa da, 165 00:09:01,000 --> 00:09:04,000 horiek ordenagailuan zatia memoria bat dira 166 00:09:04,000 --> 00:09:07,000 gordetzeko osoko batzuk sartu duzu? 167 00:09:07,000 --> 00:09:10,000 Ordena sscanf hori egiteko 168 00:09:10,000 --> 00:09:13,000 zer operadorea, zer pieza sintaxia erabili izan da 169 00:09:13,000 --> 00:09:19,000 nahiz eta ez ikusi ahal izango dugu, funtzio hau beste norbaitek idatzi duelako? 170 00:09:19,000 --> 00:09:21,000 Beste era batera esanda, zer da hori? 171 00:09:21,000 --> 00:09:23,000 [Student] X irakurri. 172 00:09:23,000 --> 00:09:27,000 Badira irakurketa batzuk izango da, baina soilik x dagokionez hemen. 173 00:09:27,000 --> 00:09:30,000 Scanf gainditu ari bada x helbidea, 174 00:09:30,000 --> 00:09:35,000 sintaktikoki, zer operadorea loturik dago nonbait existitzen 175 00:09:35,000 --> 00:09:38,000 barruan scanf-en ezarpen scanf 176 00:09:38,000 --> 00:09:42,000 benetan idatzi zenbaki bat 2 helbide horretara? 177 00:09:42,000 --> 00:09:44,000 Bai, eta, beraz, *. 178 00:09:44,000 --> 00:09:47,000 Gogoratu * gure dereference operadorea, funtsean esan nahi du, joan ez dela. 179 00:09:47,000 --> 00:09:50,000 >> Behin duzun entregatu helbide bat da, kasu hemen 180 00:09:50,000 --> 00:09:53,000 scanf da ziurrenik-bada bere iturburu inguruan dugu begiratu kodea 181 00:09:53,000 --> 00:09:59,000 * x edo baliokidea, benetan helbide horretara joan eta balio batzuk jarri han egiten ari da. 182 00:09:59,000 --> 00:10:02,000 Orain, nola lortzen scanf sarrera teklatua, 183 00:10:02,000 --> 00:10:04,000 gure eskuetan olatuen dugu gaur egun. 184 00:10:04,000 --> 00:10:07,000 Just arduratuko sistema eragilearen hitz egiten uzten sscanf 185 00:10:07,000 --> 00:10:11,000 erabiltzailearen teklatu, baina puntu hau orain line 19, 186 00:10:11,000 --> 00:10:14,000 denean inprimatu besterik ez dugu x, kasuan badirudi 187 00:10:14,000 --> 00:10:17,000 scanf du jarri int x. 188 00:10:17,000 --> 00:10:19,000 Hori da zehazki nola scanf funtzionatzen du, eta gogora ekarri azken astean 189 00:10:19,000 --> 00:10:25,000 hori zehazki nola GetString eta GetInt eta bere funtzioen beste familia 190 00:10:25,000 --> 00:10:28,000 azken finean, lan egiten du, sscanf bezala bariantza txikia izan arren, 191 00:10:28,000 --> 00:10:31,000 Horrek esan nahi du, teklatua ordez kate bat eskaneatzeko. 192 00:10:31,000 --> 00:10:33,000 Baina dezagun hau bariantza txiki bat begirada bat hartu. 193 00:10:33,000 --> 00:10:37,000 Scanf2, benetan izorratu nuen. 194 00:10:37,000 --> 00:10:42,000 Zer da oker eta azaltzen duen bezain-comment ezkutatu dut 195 00:10:42,000 --> 00:10:47,000 zer oker dago programa hau, 2 bertsioa? 196 00:10:47,000 --> 00:10:55,000 Ahalik eta denbora honetan teknikoa. 197 00:10:55,000 --> 00:10:57,000 Nahiko ona dirudi. 198 00:10:57,000 --> 00:11:03,000 Nicely koska, baina 199 00:11:03,000 --> 00:11:07,000 ados, nola dezagun inaustea laburragoa galdera? 200 00:11:07,000 --> 00:11:17,000 Line 16. Zer da line English tekniko zehatza, baina 16 egiten? 201 00:11:17,000 --> 00:11:20,000 Apur bat awkward eskuratzen. Bai, Michael. 202 00:11:20,000 --> 00:11:25,000 [Student] kate baten lehenengo letra seinalatuz. 203 00:11:25,000 --> 00:11:27,000 >> Ados, oso hurbil. Let me apur bat fintzeko. 204 00:11:27,000 --> 00:11:33,000 Kate baten lehenengo letra seinalatuz, aldakorra izeneko buffer ari zaren geratuko 205 00:11:33,000 --> 00:11:36,000 kate baten helbidea lehen seinalatu 206 00:11:36,000 --> 00:11:39,000 edo, hobeto esanda, zehatzago esanda, char bat seinalatu. 207 00:11:39,000 --> 00:11:42,000 Ohartu ez da benetan edozein lekutan seinalatuz esleitzeko operadorea ez delako. 208 00:11:42,000 --> 00:11:46,000 Ez da berdin ikurra da, eta, beraz, guztiak egiten ari garen variable buffer izenekoa esleitzean, beraz. 209 00:11:46,000 --> 00:11:49,000 32 bit izango da erakuslea bat delako gertatzen da, 210 00:11:49,000 --> 00:11:52,000 eta buffer edukiak ustez azkenean 211 00:11:52,000 --> 00:11:57,000 char baten helbide bat edukiko du, baina, oraingoz, ez du buffer eduki? 212 00:11:57,000 --> 00:11:59,000 Just batzuk akastunak, nork daki, zabor-balio batzuk, 213 00:11:59,000 --> 00:12:03,000 dugu ez delako esplizituki hasieratu da, beraz, ez da egin behar dugu bere gain hartzen ezer. 214 00:12:03,000 --> 00:12:06,000 Ongi da, eta, beraz, gaur egun linea 17-line 17 ez do? 215 00:12:06,000 --> 00:12:08,000 Agian honen bero. 216 00:12:08,000 --> 00:12:10,000 Kate bat bistaratzen da, ezta? 217 00:12:10,000 --> 00:12:12,000 String mesedez bistaratzen da. 218 00:12:12,000 --> 00:12:15,000 >> Line 18 ezagutzen mota da gaur egun besterik ez dugula ikusi bariantza 219 00:12:15,000 --> 00:12:18,000 baina formatu kode desberdin bat da, eta, beraz, 18 linea, 220 00:12:18,000 --> 00:12:23,000 scanf ari gara hemen memoria zatia helbidea kontatzea da. 221 00:12:23,000 --> 00:12:27,000 Kate batean deitu,% s engaiatuko nahi dut, 222 00:12:27,000 --> 00:12:32,000 baina arazoa da ez ditugula gauza pare bat egin hemen. 223 00:12:32,000 --> 00:12:35,000 Zer da arazo bat? 224 00:12:35,000 --> 00:12:38,000 [Student] dereference null erakuslea da saiatzen ari da. 225 00:12:38,000 --> 00:12:41,000 Ona, null, edo, besterik gabe, bestela ezezagun erakusleak. 226 00:12:41,000 --> 00:12:45,000 Scanf ari zara gozamenerako helbide bat, baina esan besterik ez duzu une batez ago 227 00:12:45,000 --> 00:12:49,000 helbide hau zabor balio batzuk genuen, ez delako benetan esleitu da ezer, 228 00:12:49,000 --> 00:12:53,000 eta, beraz, scanf eraginkortasunez kate bat jarri hemen ari zaren kontatzea, 229 00:12:53,000 --> 00:12:56,000 baina ez dakigu non hemen oraindik da, 230 00:12:56,000 --> 00:12:59,000 beraz, ez dugu benetan bufferrerako memoria esleitu. 231 00:12:59,000 --> 00:13:03,000 Gainera, zer ez dira, nahiz eta scanf ere kontatzen duzu? 232 00:13:03,000 --> 00:13:06,000 Demagun zatia memoria bat, eta ez zen zabor-balio bat, 233 00:13:06,000 --> 00:13:09,000 baina oraindik ez scanf kontatzeko zerbait garrantzitsua. 234 00:13:09,000 --> 00:13:12,000 [Student] Non dago benetan, ampersand. 235 00:13:12,000 --> 00:13:15,000 Ampersand, eta, beraz, kasu honetan, ongi da. 236 00:13:15,000 --> 00:13:18,000 Buffer dagoeneko delako erakuslea gisa deklaratu 237 00:13:18,000 --> 00:13:22,000 pieza * sintaxia, ez dugu behar ampersand erabili 238 00:13:22,000 --> 00:13:25,000 delako dagoeneko helbide bat, baina uste dut entzun nuen hemen. 239 00:13:25,000 --> 00:13:27,000 [Student] Nola handia da? 240 00:13:27,000 --> 00:13:29,000 Good, ez gabiltza scanf kontatzea nola big buffer hau da, 241 00:13:29,000 --> 00:13:32,000 Horrek esan nahi du, nahiz eta buffer erakuslea 242 00:13:32,000 --> 00:13:35,000 scanf esaten ari gara, kate bat jarri hemen, 243 00:13:35,000 --> 00:13:38,000 baina hemen, 2 byte izan dadin 10 byte da, megabyte bat izan da. 244 00:13:38,000 --> 00:13:41,000 Scanf ideia ez du, eta hori zatia memoria bat delako 245 00:13:41,000 --> 00:13:43,000 ustez, ez da kate bat oraindik. 246 00:13:43,000 --> 00:13:48,000 Kate bat da idazten duzun karaktere eta zatia memoria hori 0 \ bat behin. 247 00:13:48,000 --> 00:13:51,000 Orain zatia memoria bat besterik ez da. 248 00:13:51,000 --> 00:13:55,000 Scanf egingo ez daki helbide horretara idatziz gelditzeko. 249 00:13:55,000 --> 00:13:59,000 >> Iraganeko adibide batzuk non teklatua ausaz idatzi dut gogoratzen duzu 250 00:13:59,000 --> 00:14:03,000 gainezkatzea buffer bat saiatzen ari da, eta zehazki horri buruz hitz egin zuen ostiralean. 251 00:14:03,000 --> 00:14:07,000 Aurkariarekiko bat, nolabait, zure programa sartzen bada hitz bat askoz handiagoa injects 252 00:14:07,000 --> 00:14:10,000 Orduan, edo esaldi edo esaldi inbaditu dezakezu zinen espero 253 00:14:10,000 --> 00:14:13,000 zatia memoria txarra ondorioak izan ditzake, 254 00:14:13,000 --> 00:14:15,000 programa osoa bera baino gehiago hartu, esate baterako. 255 00:14:15,000 --> 00:14:17,000 Hau konpondu behar dugu nolabait. 256 00:14:17,000 --> 00:14:20,000 Dezagun zooma eta programa honen 3. Bertsioan sartu. 257 00:14:20,000 --> 00:14:22,000 Hori da, pixka bat hobeto. 258 00:14:22,000 --> 00:14:24,000 Bertsio honetan, nabarituko diferentzia. 259 00:14:24,000 --> 00:14:27,000 16 linea, berriz aldakorra izeneko buffer geratuko naiz, 260 00:14:27,000 --> 00:14:29,000 baina zer da orain? 261 00:14:29,000 --> 00:14:33,000 16 karakterera array bat da. 262 00:14:33,000 --> 00:14:36,000 Hau ona da, horrek esan nahi du delako dizut scanf 263 00:14:36,000 --> 00:14:39,000 hemen memoria zatia benetako bat da. 264 00:14:39,000 --> 00:14:42,000 Ia dezakezu array uste erakusleak izateaz orain 265 00:14:42,000 --> 00:14:44,000 nahiz Oraindik ez dute benetan baliokidea. 266 00:14:44,000 --> 00:14:47,000 Portaera ezberdina izan dute egingo, testuinguru desberdinetan. 267 00:14:47,000 --> 00:14:50,000 Baina zalantzarik gabe, kasu buffer hori erreferentzia 268 00:14:50,000 --> 00:14:53,000 Alboko 16 karakteretan hori zer delako array bat da 269 00:14:53,000 --> 00:14:55,000 eta aste batzuk izan dira gaur egun. 270 00:14:55,000 --> 00:14:59,000 >> Hemen nago, scanf kontatzeko hemen memoria zatia. 271 00:14:59,000 --> 00:15:01,000 Oraingo honetan, benetan zatia memoria bat, 272 00:15:01,000 --> 00:15:07,000 baina zergatik programa hau oraindik exploitable? 273 00:15:07,000 --> 00:15:11,000 Zer gertatzen da oraindik? 274 00:15:11,000 --> 00:15:14,000 Esan dut, emadazu 16 baina-bytes 275 00:15:14,000 --> 00:15:16,000 [Student] Zer gertatuko da 16 baino gehiago idazten bada? 276 00:15:16,000 --> 00:15:20,000 Zehazki, 17 karaktere edo 1.700 karaktere motak? 277 00:15:20,000 --> 00:15:23,000 Izan ere, ikus dezagun ezin dugu akats hau gorako bidaia bada gaur egun. 278 00:15:23,000 --> 00:15:25,000 Hobea da, baina ez da perfektua. 279 00:15:25,000 --> 00:15:28,000 Dezagun aurrera eta make scanf3 programa hau konpilatu. 280 00:15:28,000 --> 00:15:34,000 Scanf3 exekutatu me, String mesedez: kaixo, eta ados izan dirudi dugu. 281 00:15:34,000 --> 00:15:37,000 Dezagun apur bat longer bat saiatu me, kaixo dago. 282 00:15:37,000 --> 00:15:42,000 Ados, dezagun ez kaixo, zer moduz zaude gaur egun, Sartu. 283 00:15:42,000 --> 00:15:54,000 Zortea mota eskuratzen hemen, dezagun agurtu, zer moduz. 284 00:15:54,000 --> 00:15:56,000 Malditos. 285 00:15:56,000 --> 00:16:03,000 Ongi da, eta, beraz, zortea genuen. Dezagun ikusi ahal izango dugu konpontzen ez bada, hau. 286 00:16:03,000 --> 00:16:06,000 Ez, ez da me kopiatu utzi du. 287 00:16:06,000 --> 00:16:09,000 Dezagun saiatu berriro. 288 00:16:09,000 --> 00:16:12,000 Guztiak eskubidea, stand by. 289 00:16:12,000 --> 00:16:20,000 Ikusiko dugu zenbat denbora gehiegi sakondu, oraindik hori egiteko, berriz, fokua. 290 00:16:20,000 --> 00:16:23,000 Malditos. Hori da, baizik eta hala badagokio, benetan. 291 00:16:23,000 --> 00:16:26,000 Bertan dugu. 292 00:16:26,000 --> 00:16:30,000 Point eginda. 293 00:16:30,000 --> 00:16:34,000 >> Hau ere, nahiz eta lotsa ere da handia nahasmena iturri bat 294 00:16:34,000 --> 00:16:38,000 duten programak bugs idatziz adierazten beraiek delako 295 00:16:38,000 --> 00:16:40,000 behin bakarrik, batzuetan pixka bat. 296 00:16:40,000 --> 00:16:43,000 Errealitatea da, nahiz eta zure kodea guztiz hautsi bada, 297 00:16:43,000 --> 00:16:46,000 izan daiteke bakarrik da guztiz hautsi behin pixka batean 298 00:16:46,000 --> 00:16:49,000 batzuetan, funtsean delako, zer gertatzen den sistema eragilearen bideratzen da 299 00:16:49,000 --> 00:16:52,000 bat baino gehiago pixka memoria benetan behar, edozein arrazoigatik, 300 00:16:52,000 --> 00:16:57,000 eta, beraz, inork ez bestela memoria erabiltzen ari da zure zatia 16 karaktere ondoren, 301 00:16:57,000 --> 00:17:01,000 hala badagokio, 17, 18, 19, edozein, ez da, hala nola, big aurre. 302 00:17:01,000 --> 00:17:04,000 Orain, ordenagailua, nahiz eta puntu horretan ez du huts egin, 303 00:17:04,000 --> 00:17:09,000 baliteke azkenean erabili byte kopurua 17 edo 18 edo 19 beste zerbait, 304 00:17:09,000 --> 00:17:14,000 at seinalatu zure datuak jarri duzula, gehiegi luzea izan arren, 305 00:17:14,000 --> 00:17:18,000 berridazketa lortzeko izan daitezkeen beste zenbait funtzio. 306 00:17:18,000 --> 00:17:21,000 Ez du zertan oso-osorik mantenduko da, 307 00:17:21,000 --> 00:17:23,000 baina ez du nahitaez seg matxura bat eragin. 308 00:17:23,000 --> 00:17:26,000 Baina kasu honetan, baldin eta, azkenik, I nahikoa karaktere 309 00:17:26,000 --> 00:17:29,000 funtsean hori gainditu nire memoria segmentu, eta BAM 310 00:17:29,000 --> 00:17:33,000 sistema eragilea, esan zuen: "Barkatu, ez da ona, segmentaziuo hutsegitea". 311 00:17:33,000 --> 00:17:38,000 >> Eta utzi ikusteko zer geratzen da hemen, nire direktorioa 312 00:17:38,000 --> 00:17:40,000 nabarituko fitxategi hau behar dut hemen, core. 313 00:17:40,000 --> 00:17:42,000 Iragarki hori berriro core dump izeneko. 314 00:17:42,000 --> 00:17:46,000 Fitxategi bat da, funtsean, zure programa memorian eduki 315 00:17:46,000 --> 00:17:48,000 at kraskatu egin da, 316 00:17:48,000 --> 00:17:51,000 eta adibide txikia besterik ez saiatu hemen utzi hemen 317 00:17:51,000 --> 00:17:57,000 eta exekutatu gdb scanf3, eta, ondoren, zehaztu izeneko core hirugarren argumentu bat, 318 00:17:57,000 --> 00:18:01,000 eta konturatu hemen zerrendatzeko kodea bada, 319 00:18:01,000 --> 00:18:06,000 ohikoa den bezala gai gara gdb Programa honen bidez oinez hasteko, 320 00:18:06,000 --> 00:18:10,000 eta exekutatu ahal izango dut, eta ahalik eta azkarren dudan bezala hit-komando urratsa gdb- 321 00:18:10,000 --> 00:18:13,000 bezain laster potentzialki buggy line hit I Kate handi bat idatzi eta gero, 322 00:18:13,000 --> 00:18:16,000 Benetan identifikatzeko hemen ahal izango dut. 323 00:18:16,000 --> 00:18:19,000 Gehiago honetan, nahiz eta, core zabortegiak atalean 324 00:18:19,000 --> 00:18:22,000 eta beraz, benetan dezakezu Poke inguruan barruan core dump 325 00:18:22,000 --> 00:18:27,000 ikusi eta zer line programa huts egin du. 326 00:18:27,000 --> 00:18:32,000 Ondoren, erakusleak eta helbideak edozein galdera? 327 00:18:32,000 --> 00:18:36,000 Gaur egun delako, emandako gauza horiek existitzen hartzen hasteko goaz 328 00:18:36,000 --> 00:18:40,000 eta zehazki zer diren jakin dugu. 329 00:18:40,000 --> 00:18:42,000 Bai. 330 00:18:42,000 --> 00:18:46,000 >> [Student] Zergatik ez duzu ampersand bat jarri hurrengo parte- 331 00:18:46,000 --> 00:18:48,000 Ona galdera. 332 00:18:48,000 --> 00:18:51,000 Zergatik ez dute karaktere array ondoan ampersand bat jarri aurretik egin nuen bezala 333 00:18:51,000 --> 00:18:53,000 gure adibideetan gehien? 334 00:18:53,000 --> 00:18:55,000 Erantzun laburra da array apur bat bereziak dira. 335 00:18:55,000 --> 00:18:59,000 Ia pentsa dezakezu buffer benetan helbide bat izateaz gain, 336 00:18:59,000 --> 00:19:03,000 eta, beraz, besterik ez da gertatzen kasu izan kortxetea notazioa 337 00:19:03,000 --> 00:19:06,000 onerako da, beraz, parentesia 0, 1 bracket joan gaitezke, 338 00:19:06,000 --> 00:19:10,000 parentesirik 2, * idazkera erabili behar izan gabe. 339 00:19:10,000 --> 00:19:13,000 Zuri gezurra pixka bat, array-ak eta erakusleak delako 340 00:19:13,000 --> 00:19:17,000 dira, hain zuzen ere, apur bat ezberdinak, baina, askotan, baina ez dira beti erabiltzen interchangeably. 341 00:19:17,000 --> 00:19:21,000 Labur esanda, funtzio bat erakuslea da espero zatia memoria bat, 342 00:19:21,000 --> 00:19:24,000 dezakezu helbide bat pasatu da malloc itzuli zen, 343 00:19:24,000 --> 00:19:29,000 eta malloc ikusiko dugu berriro luze baino lehen, edo array baten izena gainditu dezakezu. 344 00:19:29,000 --> 00:19:32,000 Ampersand ez duzu egin behar array dira dagoeneko 345 00:19:32,000 --> 00:19:34,000 funtsean nahi helbideak. 346 00:19:34,000 --> 00:19:36,000 Hori da salbuespen bat. 347 00:19:36,000 --> 00:19:39,000 Parentesi artean karratu ditu berezi. 348 00:19:39,000 --> 00:19:41,000 >> Ezin izan ampersand bat jarri bufferraren ondoan? 349 00:19:41,000 --> 00:19:43,000 Ez da kasu honetan. 350 00:19:43,000 --> 00:19:46,000 Hori ez litzateke lan egiten delako, berriro ere, kasu honetan, izkina 351 00:19:46,000 --> 00:19:49,000 non array ez dira nahiko benetan helbideak. 352 00:19:49,000 --> 00:19:54,000 Baina, agian, ikusiko dugu itzuli aurretik luze adibide beste. 353 00:19:54,000 --> 00:19:56,000 Saiatu dezagun hemen arazoa konpontzeko. 354 00:19:56,000 --> 00:20:00,000 Nik dugun datu-egitura array bat bezala ezagutzen denbora batzuk erabiliz ditugu. 355 00:20:00,000 --> 00:20:02,000 Puntuan kasuan, zer izan besterik ez dugu. 356 00:20:02,000 --> 00:20:04,000 Baina array upsides batzuk eta downsides. 357 00:20:04,000 --> 00:20:06,000 Arrayak nice zergatik? 358 00:20:06,000 --> 00:20:11,000 Zer da gauza bat gustuko-duen neurrian array array nahi duzu? 359 00:20:11,000 --> 00:20:13,000 Zer da haiei buruzko erosoa? Zer da sinesgarria? 360 00:20:13,000 --> 00:20:18,000 Zergatik aurkeztu dugu lehenik eta behin? 361 00:20:18,000 --> 00:20:20,000 Bai. 362 00:20:20,000 --> 00:20:27,000 [Student] datu asko gorde ahal izango dute, eta ez duzu osoa gauza bat erabili. 363 00:20:27,000 --> 00:20:29,000 Atal bat erabili ahal izango duzu. 364 00:20:29,000 --> 00:20:32,000 Good, array bat datu asko gorde dezakezu, 365 00:20:32,000 --> 00:20:35,000 eta ez duzu zertan guztiak erabili ahal izateko,, beraz overallocate dezakezu 366 00:20:35,000 --> 00:20:39,000 komenigarria izan daiteke ez baduzu, aldez aurretik daki nola zerbait espero asko. 367 00:20:39,000 --> 00:20:41,000 >> GetString adibide ezin hobea da. 368 00:20:41,000 --> 00:20:44,000 GetString, gurekin by idatzi, ez daki zenbat karakteretan espero du, 369 00:20:44,000 --> 00:20:48,000 Izan ere, memoria Elkarren ondoko zatiak esleitu ona da. 370 00:20:48,000 --> 00:20:51,000 Arrayak Duela pare weeks bat ikusi genuen, gaur egun arazo bat konpontzen 371 00:20:51,000 --> 00:20:54,000 non zure kodea hasten da, oso gaizki diseinatutako zerbait devolve. 372 00:20:54,000 --> 00:20:57,000 Gogoratu David izeneko ikaslea egitura bat sortu dut, 373 00:20:57,000 --> 00:21:00,000 eta orduan izan zen benetan alternatiba bat, nahiz eta, 374 00:21:00,000 --> 00:21:04,000 izeneko aldakorreko izena eta, nire ustez, house izeneko beste aldagai bat edukitzea, 375 00:21:04,000 --> 00:21:08,000 eta istorioa izeneko ID horretan nahi gero dudalako beste zerbait aurkezteko beste aldagai 376 00:21:08,000 --> 00:21:11,000 nahi Rob programa horretan, beraz, ondoren, minutu bat itxaron, erabaki nuen, 377 00:21:11,000 --> 00:21:13,000 Aldagai horien izenak aldatu behar dut. 378 00:21:13,000 --> 00:21:16,000 Dezagun dei nirea NAME1, ID1, house1. 379 00:21:16,000 --> 00:21:20,000 Dezagun deitzen Rob en izena2, house2, ID2. 380 00:21:20,000 --> 00:21:22,000 Baina gero, minutu bat itxaron, zer Tommy buruz? 381 00:21:22,000 --> 00:21:24,000 Ondoren, hiru aldagai izan genuen. 382 00:21:24,000 --> 00:21:27,000 Beste norbaitek, lau aldagai multzo sartu ditugu. 383 00:21:27,000 --> 00:21:30,000 Mundua messy oso azkar hasi ziren, 384 00:21:30,000 --> 00:21:33,000 beraz structs sartu dugu, eta zer da eta egitura bati buruz sinesgarria? 385 00:21:33,000 --> 00:21:39,000 Zer da C eta egitura bat utzi nahi duzu? 386 00:21:39,000 --> 00:21:42,000 Benetan awkward da gaur egun. 387 00:21:42,000 --> 00:21:44,000 Zer? >> [Inaudible ikaslearen erantzuna] 388 00:21:44,000 --> 00:21:47,000 Bai, eta, zehazki, typedef esker, datu-mota berri bat sortu beharko duzu, 389 00:21:47,000 --> 00:21:51,000 eta egiturari, struct gako-hitza, aukera ematen enkapsulatu 390 00:21:51,000 --> 00:21:54,000 kontzeptualki lotutako datu-pieza elkarrekin 391 00:21:54,000 --> 00:21:56,000 eta, hortik aurrera, deitu ikasle bat bezala zerbait. 392 00:21:56,000 --> 00:21:58,000 >> Hori ona izan zen, gaur egun ereduetan dugulako 393 00:21:58,000 --> 00:22:03,000 sort askoz gehiago kontzeptualki koherentea ikasle baten ideia aldagai batean 394 00:22:03,000 --> 00:22:07,000 baino arbitrarioki kate bat, ID bat izatea, eta abar. 395 00:22:07,000 --> 00:22:10,000 Arrayak nice aukera ematen dute martxan garbiketa gure kodea Gurekin delako. 396 00:22:10,000 --> 00:22:13,000 Baina arazotxo bat array bat da gaur egun? 397 00:22:13,000 --> 00:22:15,000 Zer egin dezaket ez duzu? Bai. 398 00:22:15,000 --> 00:22:17,000 [Student] nola big da jakin behar duzu. 399 00:22:17,000 --> 00:22:19,000 Nola big da jakin behar duzu, eta, beraz, mota mina bat da, beraz. 400 00:22:19,000 --> 00:22:21,000 Duzun dutenek aldez aurretik programazio esperientzia duten hizkuntza asko ezagutu, 401 00:22:21,000 --> 00:22:24,000 Java bezala, memoria zatia, zehazki, array bat eskatu ahal izango duzu, 402 00:22:24,000 --> 00:22:28,000 nola big-luzera bat, jabetza, eta, beraz, hitz egiten, duzu, eta hori da benetan erosoa. 403 00:22:28,000 --> 00:22:32,000 C, ezin duzu, nahiz eta deitu strlen generic array 404 00:22:32,000 --> 00:22:35,000 strlen delako, hitza esan nahi du, eta kateak soilik da, 405 00:22:35,000 --> 00:22:39,000 eta irudikatu dezakezu kate baten luzera duelako giza konbentzio honetan 406 00:22:39,000 --> 00:22:43,000 \ 0, baina array bat izatea, oro, zatia memoria bat besterik ez da. 407 00:22:43,000 --> 00:22:46,000 Ints array bat bada, ez da karaktere berezi batzuk izango 408 00:22:46,000 --> 00:22:48,000 amaieran zain. 409 00:22:48,000 --> 00:22:50,000 Array baten luzera gogoratu behar duzu. 410 00:22:50,000 --> 00:22:54,000 Array baten beste arazotxo bat reared bere burua bera GetString. 411 00:22:54,000 --> 00:22:59,000 Zer da array bat beste arazotxo bat? 412 00:22:59,000 --> 00:23:01,000 Sir, besterik ez duzu eta ni gaur egun. 413 00:23:01,000 --> 00:23:04,000 [Inaudible ikaslearen erantzuna] >> zer da? 414 00:23:04,000 --> 00:23:06,000 Pila izendatu da. 415 00:23:06,000 --> 00:23:09,000 Ados, pila izendatu zuten. Zergatik ez nahi al duzu? 416 00:23:09,000 --> 00:23:13,000 [Student] du berrerabili delako. 417 00:23:13,000 --> 00:23:15,000 Berrerabili lortzen. 418 00:23:15,000 --> 00:23:18,000 Ados, array bat izanez gero, erabili nahi duzun memoria esleitu, 419 00:23:18,000 --> 00:23:21,000 ezin duzu, esate baterako, itzultzeko pila delako. 420 00:23:21,000 --> 00:23:23,000 Ados, hori desabantaila bat da. 421 00:23:23,000 --> 00:23:25,000 Eta nola buruz beste array bat? 422 00:23:25,000 --> 00:23:28,000 Esleitu ondoren, mota horretako izorratu leku gehiago behar duzu Oraindik duzu 423 00:23:28,000 --> 00:23:30,000 array baino. 424 00:23:30,000 --> 00:23:34,000 >> Ondoren, sartu dugu, abisuaren, malloc, eta horrek eman zigun dinamikoki memoria esleitu gaitasuna. 425 00:23:34,000 --> 00:23:37,000 Baina, zer saiatu ginen beste mundu bat badu guztira? 426 00:23:37,000 --> 00:23:40,000 Zer gertatzen da pare bat arazo horiek konpondu nahi izan dugu 427 00:23:40,000 --> 00:23:45,000 beraz, horren ordez nire dugu pen behera egin du lo- 428 00:23:45,000 --> 00:23:51,000 ordez badugu nahi, funtsean, mundu bat sortu jada ez atsegin dute hau? 429 00:23:51,000 --> 00:23:56,000 Array bat da, eta, jakina, mota honetako hondatu array behin amaiera! 430 00:23:56,000 --> 00:24:00,000 eta jadanik ez dut beste pertsonaia bat beste zenbaki oso edo espazioa. 431 00:24:00,000 --> 00:24:03,000 Zer sort-preemptively ongi esan badu, zergatik ez dugu erlaxatzeko 432 00:24:03,000 --> 00:24:07,000 baldintza hau memoria zatiak horiek guztiak Alboko itzuli atzera 433 00:24:07,000 --> 00:24:10,000 eta zergatik ez, int edo char bat behar dut, 434 00:24:10,000 --> 00:24:12,000 emadazu espazio horietako bat? 435 00:24:12,000 --> 00:24:14,000 Eta bat behar dut, emaidazu leku bat, 436 00:24:14,000 --> 00:24:16,000 eta bat behar dut, emaidazu leku bat. 437 00:24:16,000 --> 00:24:19,000 Abantaila da norbaitek bestela 438 00:24:19,000 --> 00:24:21,000 hemen memoria, big aurre ez du. 439 00:24:21,000 --> 00:24:25,000 Zatia memoria gehigarria hau hartuko dut hemen, eta, ondoren, honako hau. 440 00:24:25,000 --> 00:24:28,000 >> Orain, harrapaketa hemen bakarra da hori ia sentitzen atsegin dut 441 00:24:28,000 --> 00:24:30,000 aldagai desberdinen sorta osoa. 442 00:24:30,000 --> 00:24:33,000 Bost aldagai desberdinak izan daitezkeen bezala sentitzen du. 443 00:24:33,000 --> 00:24:36,000 Baina zer gertatzen da ideia bat lapurtu dugu bada kateak 444 00:24:36,000 --> 00:24:41,000 , nolabait dugu horren bidez lotzeko gauza horiek elkarrekin kontzeptualki, eta zer egin nuen bada? 445 00:24:41,000 --> 00:24:44,000 Hau da nire oso gaizki marrazten arrow da. 446 00:24:44,000 --> 00:24:46,000 Baina demagun memoria zatiak hauen bakoitzean 447 00:24:46,000 --> 00:24:52,000 beste azpimarratu, eta lasaia hau, anai-arreba, bere eskubidea ez du, 448 00:24:52,000 --> 00:24:54,000 ez du, hala nola, arrow. 449 00:24:54,000 --> 00:24:56,000 Izan ere, zer deitzen lotutako zerrenda bat da. 450 00:24:56,000 --> 00:25:00,000 Datuak egitura berri honek aukera ematen duen memoria zatia esleitu da, 451 00:25:00,000 --> 00:25:03,000 gero beste bat, gero beste bat eta, ondoren, beste edozein momentutan nahi dugun 452 00:25:03,000 --> 00:25:07,000 programa batean zehar, eta ari dira nolabait erlazionatutako guztiak gogoratzen dugu 453 00:25:07,000 --> 00:25:11,000 literalki kateatzea elkarrekin, eta genuen pictorially hemen gezi bat. 454 00:25:11,000 --> 00:25:15,000 Baina kodea, zer bidez, nolabait, izan den konektatu mekanismoa izango litzateke, 455 00:25:15,000 --> 00:25:20,000 Scratch ia bezala, zatia beste zatia? 456 00:25:20,000 --> 00:25:22,000 Erakuslea erabili izan dugu, ezta? 457 00:25:22,000 --> 00:25:25,000 Benetan arrow ezkerreko goiko plazan delako, 458 00:25:25,000 --> 00:25:31,000 guy hau hemen honen barruan edukiko plaza honen 459 00:25:31,000 --> 00:25:34,000 ez bakarrik ints batzuk, ez soilik char batzuk, baina zer benetan badut esleitu 460 00:25:34,000 --> 00:25:37,000 beste tarte txiki bat da, beraz, gaur egun, 461 00:25:37,000 --> 00:25:41,000 nire memoria zatiak bakoitzean, nahiz eta hori me kostua du, 462 00:25:41,000 --> 00:25:45,000 Gaur egun, itxura apur bat gehiago angeluzuzena non memoria zatien bat 463 00:25:45,000 --> 00:25:47,000 zenbaki bat erabiltzen da, 1 zenbakia bezala, 464 00:25:47,000 --> 00:25:50,000 eta, ondoren, lasaia honetan zenbaki 2 gordetzen bada, 465 00:25:50,000 --> 00:25:52,000 beste zatia memoria, hau da, gezi bat erabiltzen da, 466 00:25:52,000 --> 00:25:54,000 edo zehazkiago, erakusle bat. 467 00:25:54,000 --> 00:25:59,000 Eta suposatzen dut hemen baino gehiago erabiltzen dut, hau lasaia hartan seinalatu bitartean 3 zenbakia gordetzeko, 468 00:25:59,000 --> 00:26:02,000 eta gaur egun lasaia honetan, dezagun nahi dut soilik hiru zatiak, hala nola, memoria. 469 00:26:02,000 --> 00:26:05,000 Lerro bat marraztu dut, horren bidez, null adieraziz. 470 00:26:05,000 --> 00:26:07,000 Izaera ez da osagarria. 471 00:26:07,000 --> 00:26:10,000 >> Izan ere, hau da, nola gauzatzeko joan gaitezke 472 00:26:10,000 --> 00:26:12,000 zerbait deitzen lotutako zerrenda bat. 473 00:26:12,000 --> 00:26:18,000 Lotuta zerrenda bat datuak egitura berri bat da, eta hurrats harrizko norabidean 474 00:26:18,000 --> 00:26:21,000 datuak askoz fancier egitura arazoak konpontzeko hasi 475 00:26:21,000 --> 00:26:23,000 Facebook-mota arazoak-lerroak eta Google-mota arazoak zehar 476 00:26:23,000 --> 00:26:26,000 non erraldoi datuak multzo duzu moztu, eta jada ez da 477 00:26:26,000 --> 00:26:29,000 guztia gordetzeko contiguously eta bilaketa lineala antzeko zerbait erabili 478 00:26:29,000 --> 00:26:31,000 edo, are gehiago, bilaketa bitarra antzeko zerbait. 479 00:26:31,000 --> 00:26:33,000 Are hobeto exekutatzen ari aldiz nahi duzu. 480 00:26:33,000 --> 00:26:37,000 Izan ere, eta, Grails Santuaren bat geroago, aste honetan edo hurrengo buruz hitz egin dugu. 481 00:26:37,000 --> 00:26:41,000 duen algoritmo bat exekutatzen ari da etengabe. 482 00:26:41,000 --> 00:26:44,000 Beste era batera esanda, denbora kopuru bera hartzen du beti kontutan hartu gabe 483 00:26:44,000 --> 00:26:47,000 nola big sarrera da, eta hain zuzen ere, izango litzateke sinesgarria, 484 00:26:47,000 --> 00:26:49,000 are gehiago, zerbait logaritmikoa baino. 485 00:26:49,000 --> 00:26:51,000 Zer da hau? Pantailan hemen? 486 00:26:51,000 --> 00:26:55,000 Laukizuzenak bakoitzak zehazki zer eskua marraztu dut. 487 00:26:55,000 --> 00:26:59,000 Baina gauza ezker modu berezi aldagai bat da. 488 00:26:59,000 --> 00:27:02,000 Bakar erakuslea izango da egingo Gotcha bat delako 489 00:27:02,000 --> 00:27:04,000 lotuta zerrenda batekin, gauza horiek deitzen dira, 490 00:27:04,000 --> 00:27:09,000 lotuta zerrenda mutur gainean zintzilik duzula. 491 00:27:09,000 --> 00:27:13,000 >> Just kate bat bezala, char lehen helbidea jakin behar duzu. 492 00:27:13,000 --> 00:27:15,000 Same zerrendak lotutako asko. 493 00:27:15,000 --> 00:27:19,000 Memoria lehen zatia helbidea jakin behar duzu 494 00:27:19,000 --> 00:27:25,000 bertatik delako, beste behin iritsiko dezakezu. 495 00:27:25,000 --> 00:27:27,000 Arazotxo. 496 00:27:27,000 --> 00:27:30,000 Zer prezioa ordainduz dinamikoki edukitzea aldakortasuna 497 00:27:30,000 --> 00:27:34,000 sizable datuak egitura dugu inoiz memoria gehiago behar izanez gero, isuna, 498 00:27:34,000 --> 00:27:37,000 besterik ez, bat edo gehiago zatia esleitu eta erakuslea bat marraztu 499 00:27:37,000 --> 00:27:39,000 zerrenda berria buztana zaharra? 500 00:27:39,000 --> 00:27:41,000 Bai. 501 00:27:41,000 --> 00:27:43,000 [Student] buruz bi aldiz ere espazioa hartzen du. 502 00:27:43,000 --> 00:27:45,000 Bi leku handia hartzen du, beraz, behin betiko arazotxo bat, eta ikusi dugu 503 00:27:45,000 --> 00:27:48,000 denboran eta espazioan eta malgutasuna arteko aurretik denerako 504 00:27:48,000 --> 00:27:51,000 non gaur egun, ez behar dugu zenbaki horiek bakoitzeko 32 bit. 505 00:27:51,000 --> 00:27:57,000 Benetan behar dugu, 64, 32 eta 32 zenbakia erakuslea. 506 00:27:57,000 --> 00:27:59,000 Baina hey, 2 RAM gigabyte daukat. 507 00:27:59,000 --> 00:28:02,000 Hemen beste 32 bit eta hemen gehitzea ez dirudi hori aurre big. 508 00:28:02,000 --> 00:28:05,000 Baina datuak handiak multzo, gehitzen du behin betiko it up literalki bitan askoz. 509 00:28:05,000 --> 00:28:09,000 Zer arazotxo bat da orain, edo zer film luzea ematen diogu, 510 00:28:09,000 --> 00:28:12,000 zerrenda bat lotuta, eta ez da array bat dugu gauza zerrendak ordezkatzen bada? 511 00:28:12,000 --> 00:28:14,000 [Student] ezin duzu zeharkatuko du atzeraka. 512 00:28:14,000 --> 00:28:16,000 Ezin duzu zeharkatuko du atzeraka, mota horretako izorratu Oraindik zauden oinez bada, beraz 513 00:28:16,000 --> 00:28:19,000 ezkerretik eskuinera loop edo, berriz, begizta bat erabiliz 514 00:28:19,000 --> 00:28:21,000 eta, ondoren, konturatzen zara "Oh, zerrendaren hasieran itzuli nahi dut". 515 00:28:21,000 --> 00:28:26,000 Ezin duzu erakusleak horiek ezkerretik eskuinera bakarrik delako joan geziak adierazten. 516 00:28:26,000 --> 00:28:29,000 >> Orain, zerrendaren hasiera gogoratzeko beste aldagai bat, 517 00:28:29,000 --> 00:28:31,000 baina hori konplexutasuna kontuan mantentzeko. 518 00:28:31,000 --> 00:28:35,000 Array bat, eta ez du axola noraino joan, beti izango duzu ken, ken, ken, ken 519 00:28:35,000 --> 00:28:37,000 eta atzera jo nondic duzu izan zen. 520 00:28:37,000 --> 00:28:40,000 Zer da arazotxo bat da hemen? Bai. 521 00:28:40,000 --> 00:28:43,000 [Inaudible ikasleak galdera] 522 00:28:43,000 --> 00:28:47,000 , Ezin duzu, beraz, Zuk benetan just izeneko bi aldiz lotuta zerrenda bat datuak egitura bat proposatu 523 00:28:47,000 --> 00:28:50,000 eta, hain zuzen ere, erakuslea beste gehitu nahi duzun laukizuzenak horien bakoitzaren 524 00:28:50,000 --> 00:28:53,000 duten beste norabidean doa, goitik 525 00:28:53,000 --> 00:28:55,000 zeharkatuko atzera eta aurrera dezakezu, 526 00:28:55,000 --> 00:28:59,000 gaur egun, eta horietatik arazotxo hiru aldiz ari zaren memoria ere erabiltzen dugu 527 00:28:59,000 --> 00:29:04,000 eta, gainera, konplexutasun kodea dagokionez gehituz eskuinera idatzi behar duzu. 528 00:29:04,000 --> 00:29:08,000 Baina horiek guztiak dira, agian, oso moduzko tradeoffs, berraztertzeko garrantzitsua da. 529 00:29:08,000 --> 00:29:10,000 Bai. 530 00:29:10,000 --> 00:29:12,000 [Student] ere ez duzu bat 2D lotutako zerrendan. 531 00:29:12,000 --> 00:29:16,000 Ona, ezin duzu benetan 2D lotuta zerrenda. 532 00:29:16,000 --> 00:29:18,000 Asmoz. Ez da ia array bat bezain erraza. 533 00:29:18,000 --> 00:29:21,000 Array bat bezala, parentesia irekita, parentesia itxi, parentesia irekia, parentesia itxi egin duzu, 534 00:29:21,000 --> 00:29:23,000 eta 2 dimentsioko egitura batzuk lortuko duzu. 535 00:29:23,000 --> 00:29:26,000 2 dimentsiotako zerrenda lotuta ezartzeko dezakezu 536 00:29:26,000 --> 00:29:29,000 gehigarri gisa proposatu-a hirugarren erakuslea gauza horietako bakoitzean, ez bada 537 00:29:29,000 --> 00:29:34,000 Beste zerrenda bat buruz uste baduzu 3D style datozen 538 00:29:34,000 --> 00:29:40,000 pantaila guztiok, nolabaiteko beste kate bat besterik ez da. 539 00:29:40,000 --> 00:29:45,000 Egin izan dugu, baina ez da parentesirik, kortxetea idazten bezain erraza. Bai. 540 00:29:45,000 --> 00:29:48,000 [Inaudible ikasleak galdera] 541 00:29:48,000 --> 00:29:50,000 Ona, eta, beraz, hau da benetako kicker bat da. 542 00:29:50,000 --> 00:29:54,000 >> Nik dugun baino gehiago, oh bezala, bilaketa bitarra pined algoritmoak hauek, 543 00:29:54,000 --> 00:29:57,000 taula gainean zenbakiak array bat bilatu dezakezu 544 00:29:57,000 --> 00:30:01,000 edo telefono-liburu bat, beraz, askoz ere azkar erabiltzen baduzu, zatitzea eta konkistatzeko 545 00:30:01,000 --> 00:30:05,000 eta bilaketa algoritmo bitar bat, baina bi hipotesi bitarra bilatu behar. 546 00:30:05,000 --> 00:30:09,000 One, datuak horrela antolatu zen. 547 00:30:09,000 --> 00:30:11,000 Orain, zentzuzkoa mantendu ahal izango dugu hau horrela antolatu, 548 00:30:11,000 --> 00:30:14,000 beraz, agian hori ez da kezka, baina bitarra ere bilatzen ditu, bere gain hartu zuen 549 00:30:14,000 --> 00:30:18,000 izan duzula ausazko zenbakien zerrendan sartzeko, 550 00:30:18,000 --> 00:30:21,000 eta array bat ematen dio ausazko sarbidea izan behar duzu, eta sarbidea ausazko 551 00:30:21,000 --> 00:30:24,000 Zu array bat ematen bazaio, zenbat denbora eramango du esan nahi dut 552 00:30:24,000 --> 00:30:26,000 parentesirik 0? 553 00:30:26,000 --> 00:30:29,000 Dute, erabili besterik ez duzu [0], eta bertan zaude. 554 00:30:29,000 --> 00:30:33,000 Zenbat urrats kokapena 10 lortu du? 555 00:30:33,000 --> 00:30:36,000 Urrats bat, [10] besterik ez duzu joan eta han duzu. 556 00:30:36,000 --> 00:30:40,000 Por el contrario, nola lortu lotuta zerrendan osokoa 10ean duzu? 557 00:30:40,000 --> 00:30:42,000 Hasieran hasi behar duzu soilik gogoratuz 558 00:30:42,000 --> 00:30:45,000 lotuta zerrenda hasieran, kate bat bezalakoa gogoratu ari da 559 00:30:45,000 --> 00:30:48,000 bere lehen char helbidea, eta 10ean int hori aurkitu 560 00:30:48,000 --> 00:30:53,000 edo kate batean karaktere 10ean ez dela, madarikatua gauza osoa bilatu behar duzu. 561 00:30:53,000 --> 00:30:55,000 >> Berriz ere, ez dugu gure arazo guztiak konpontzeko. 562 00:30:55,000 --> 00:31:00,000 Berriak sortzen ari gara sartuz, baina benetan zer diseinatzeko saiatzen ari zaren araberakoa izango da. 563 00:31:00,000 --> 00:31:04,000 Hau gauzatzeko dagokionez, ideia bat maileguan hartzeko aukera izango dugu, ikaslearen egitura hori. 564 00:31:04,000 --> 00:31:07,000 Sintaxia oso antzekoa da, eta gaur egun izan ezik, ideia apur bat gehiago abstraktu 565 00:31:07,000 --> 00:31:09,000 etxea eta izena eta IDa baino. 566 00:31:09,000 --> 00:31:13,000 Baina C egitura datuak bat izan dugula proposatzen dut 567 00:31:13,000 --> 00:31:17,000 deitzen den nodoa, diapositiba azken hitza iradokitzen 568 00:31:17,000 --> 00:31:21,000 nodo baten barruan, eta nodo bat besterik ez da informatika edukiontzi orokorra. 569 00:31:21,000 --> 00:31:25,000 Normalean zirkulu edo lauki edo laukizuzen Nik egindako marraztuta. 570 00:31:25,000 --> 00:31:27,000 Eta datuak egitura honetan, int, n dugu, 571 00:31:27,000 --> 00:31:29,000 beraz, kopurua gorde nahi dut. 572 00:31:29,000 --> 00:31:36,000 Baina zer gertatzen da bigarren lerroan, struct nodo * hurrengo da? 573 00:31:36,000 --> 00:31:40,000 Zergatik da zuzena, edo zer gauza rol joko honek, 574 00:31:40,000 --> 00:31:42,000 nahiz eta pixka bat críptica da hasiera batean? 575 00:31:42,000 --> 00:31:44,000 Bai. 576 00:31:44,000 --> 00:31:46,000 [Inaudible ikaslearen erantzuna] 577 00:31:46,000 --> 00:31:50,000 Zehazki, eta, beraz, spoils sort * dela nolabaiteko erakuslea. 578 00:31:50,000 --> 00:31:53,000 Erakuslea honen izena da arbitrarioki hurrengo 579 00:31:53,000 --> 00:32:00,000 baina deitu genezake ezer nahi dugu, baina zer da erakuslea puntu honek? 580 00:32:00,000 --> 00:32:03,000 [Student] nodo beste. >> Zehazki, adierazi beste nodo, hala nola. 581 00:32:03,000 --> 00:32:05,000 >> Orain, C. jakin-mina sort 582 00:32:05,000 --> 00:32:09,000 Gogoratu C konpiladore bat goitik behera irakurri, ezkerretik eskuinera, 583 00:32:09,000 --> 00:32:13,000 Horrek esan nahi du, hau da, ikasleak zer egin dugu pixka bat. 584 00:32:13,000 --> 00:32:16,000 Ikasle bat definitu dugu, ez dugu ez hitz bat jarri bertan. 585 00:32:16,000 --> 00:32:18,000 Esan besterik ez da typedef. 586 00:32:18,000 --> 00:32:20,000 Ondoren, int id, izena katea, katea etxea izan genuen, 587 00:32:20,000 --> 00:32:23,000 eta, ondoren, eta egitura, beheko ikaslea. 588 00:32:23,000 --> 00:32:26,000 Aitorpen honek apur bat desberdina da, izan ere, 589 00:32:26,000 --> 00:32:28,000 berriz, C konpiladorea da apur bat muda. 590 00:32:28,000 --> 00:32:30,000 Besterik ez da goitik behera irakurri du, 591 00:32:30,000 --> 00:32:33,000 hala badagokio 2 linea iristen da hemen 592 00:32:33,000 --> 00:32:37,000 non hurrengo izendatu zuten, eta ikusten, oh, hemen izeneko hurrengo aldagai bat da. 593 00:32:37,000 --> 00:32:39,000 Egitura nodo bat erakuslea da. 594 00:32:39,000 --> 00:32:42,000 Konpilatzailea da zer eta egitura nodo bat dela jabetuko da? 595 00:32:42,000 --> 00:32:44,000 Gauza hau lehenago inoiz ez dut entzun, 596 00:32:44,000 --> 00:32:47,000 nodo hitza agian ez delako bestela agertzen 597 00:32:47,000 --> 00:32:49,000 behean arte, eta, beraz, hau da erredundantzia. 598 00:32:49,000 --> 00:32:53,000 Struct nodo hemen esan nahi duzu, eta gero laburtu ahal izango duzu beranduago 599 00:32:53,000 --> 00:32:56,000 typedef esker behera hemen, baina hori delako 600 00:32:56,000 --> 00:33:02,000 egitura bera barruan egitura ari gara erreferentzia. 601 00:33:02,000 --> 00:33:05,000 Hori bat Gotcha dago. 602 00:33:05,000 --> 00:33:07,000 >> Interesgarri arazo batzuk sor. 603 00:33:07,000 --> 00:33:09,000 Zenbaki-zerrenda bat lortu dugu. Nola sartu dugu? 604 00:33:09,000 --> 00:33:11,000 Nola bilatu dugu? Nola ezabatu dugu? 605 00:33:11,000 --> 00:33:13,000 Batez ere, gaur egun dugun erakusle horiek guztiak kudeatzeko. 606 00:33:13,000 --> 00:33:15,000 Erakusle ziren kontuan-flexiones sort uste duzu 607 00:33:15,000 --> 00:33:17,000 duzunean, horietako bat besterik ez int bat irakurri nahian. 608 00:33:17,000 --> 00:33:20,000 Orain, zerrenda oso bat merezi manipulatzeko behar dugu. 609 00:33:20,000 --> 00:33:22,000 Zergatik ez gure 5 minutuko break hartuko dugu hemen, eta, ondoren, ekarri dugu 610 00:33:22,000 --> 00:33:34,000 Eszenatokira igo folks batzuk zehazki horretarako. 611 00:33:34,000 --> 00:33:36,000 >> C askoz gehiago fun denean jokatu izarrekin da. 612 00:33:36,000 --> 00:33:39,000 Zeini literalki lehena izateko? 613 00:33:39,000 --> 00:33:41,000 Ongi da, goazen gora. Lehen zaude. 614 00:33:41,000 --> 00:33:44,000 Who 9 izan nahi? Ados, 9. 615 00:33:44,000 --> 00:33:46,000 Nola 9 buruz? 17? 616 00:33:46,000 --> 00:33:51,000 Un poco de clique hemen. Aurrean errenkada horretan 22 eta 26. 617 00:33:51,000 --> 00:33:53,000 Eta gero, nola han norbait buruz ari azpimarratu. 618 00:33:53,000 --> 00:33:57,000 34 zaude. Ados, 34, iritsi da. 619 00:33:57,000 --> 00:33:59,000 Lehenengoa han da. Ados, you guys lau. 620 00:33:59,000 --> 00:34:01,000 Eta nor ez esatea 9 dugu? 621 00:34:01,000 --> 00:34:04,000 Nor da gure 9? 622 00:34:04,000 --> 00:34:07,000 Nor benetan 9 izan nahi du? Eskubidea, zatoz, 9. 623 00:34:07,000 --> 00:34:10,000 Hemen goaz. 624 00:34:10,000 --> 00:34:13,000 34, zu ezagutzeaz dugu baino gehiago dago. 625 00:34:13,000 --> 00:34:17,000 Begiratu horrela zuek lehen zatia da. 626 00:34:17,000 --> 00:34:21,000 26, 22, 17, ona. 627 00:34:21,000 --> 00:34:25,000 Off duzu stand bada alde ari gara une batean malloc delako. 628 00:34:25,000 --> 00:34:29,000 >> Ona. 629 00:34:29,000 --> 00:34:32,000 Ados, bikaina, beraz galdetu, galdera pare bat hemen. 630 00:34:32,000 --> 00:34:34,000 Eta benetan, zer da zure izena? >> Anita. 631 00:34:34,000 --> 00:34:37,000 Anita, ados, zatoz hona. 632 00:34:37,000 --> 00:34:41,000 Anita konpontzeko sort digu bat lehen nahiko simple galdera laguntzeko, joan, 633 00:34:41,000 --> 00:34:44,000 hau da, nola egin ala ez, balio bat zerrendan aurkituko dituzu? 634 00:34:44,000 --> 00:34:48,000 Orain, konturatu lehen, hemen irudikatzen Lucas, 635 00:34:48,000 --> 00:34:52,000 apur bat desberdina da, eta beraz, bere paper nahita alboetara 636 00:34:52,000 --> 00:34:55,000 ez delako nahiko altuera du eta ez du bit askok bezala, 637 00:34:55,000 --> 00:34:58,000 nahiz eta teknikoki besterik ez berritzean paper tamaina bera du. 638 00:34:58,000 --> 00:35:01,000 Baina pixka bat ezberdinak 32 bakarrik erakuslea bit zuen zuen, 639 00:35:01,000 --> 00:35:05,000 eta guys horiek guztiak 64 bits, erdiak kopurua da, erdia erakuslea da. 640 00:35:05,000 --> 00:35:08,000 Baina erakuslea ez dago irudikatuta, eta, beraz, you guys Could zertxobait awkwardly 641 00:35:08,000 --> 00:35:12,000 erabili zure ezkerreko pertsona duzu ondoan seinalatu. 642 00:35:12,000 --> 00:35:14,000 Eta zenbaki 34 Oraindik duzu. Zein da zure izena? 643 00:35:14,000 --> 00:35:16,000 Ari. 644 00:35:16,000 --> 00:35:19,000 Ari, eta, beraz, benetan, eduki eskuineko eskua papera, eta ezkerreko zuzen behera doa. 645 00:35:19,000 --> 00:35:21,000 Ezker null ordezkatzen duzu. 646 00:35:21,000 --> 00:35:24,000 >> Orain gure giza irudia da oso koherentea. 647 00:35:24,000 --> 00:35:26,000 Hau da, benetan, nola erakusleak lan. 648 00:35:26,000 --> 00:35:29,000 Eta pixka bat izanez gero scrunch Modu honetan, beraz, ez naiz zure bidea. 649 00:35:29,000 --> 00:35:34,000 Anita hemen, niri 22 zenbakia, 650 00:35:34,000 --> 00:35:40,000 baina bere gain hartzen ez gizakiak sortu eusten paper pieza Murrizketak 651 00:35:40,000 --> 00:35:43,000 baina hori zerrenda bat da, eta besterik ez duzu Lucas hasi 652 00:35:43,000 --> 00:35:46,000 Lehenengo erakuslea da literalki delako. 653 00:35:46,000 --> 00:35:51,000 Demagun erakuslea dira bakarrik, eta, beraz, zuk ere, zerbait seinalatu gaitasuna. 654 00:35:51,000 --> 00:35:56,000 Zergatik ez da zehazki zer Lucas seinalatuz seinalatuz duzu? 655 00:35:56,000 --> 00:35:58,000 Ona, eta utzi hau enact ni hemen. 656 00:35:58,000 --> 00:36:04,000 Just dezagun, eztabaidak eztabaida, tira me hemen orri zuri bat. 657 00:36:04,000 --> 00:36:06,000 Nola zure izena ortografia duzu? >> Anita. 658 00:36:06,000 --> 00:36:08,000 Ados, Anita. 659 00:36:08,000 --> 00:36:18,000 Demagun nodo * Anita = lucas. 660 00:36:18,000 --> 00:36:22,000 Beno, ez duzu lucas deitu behar dugu. Deitu behar dugu. 661 00:36:22,000 --> 00:36:25,000 Zergatik Izan ere, errealitatea hemen koherentea da hau? 662 00:36:25,000 --> 00:36:27,000 Bat, lehen existitzen da dagoeneko. 663 00:36:27,000 --> 00:36:30,000 Lehenengoa izan da esleitu ustez nonbait hemen. 664 00:36:30,000 --> 00:36:35,000 Nodo * lehen aldiz, eta izan da esleitu zerrenda bat nolabait. 665 00:36:35,000 --> 00:36:37,000 Ez dakit nola gertatu zen. Hori gertatu klasea hasi baino lehen. 666 00:36:37,000 --> 00:36:40,000 Gizakien lotuta zerrenda hau sortu egin da. 667 00:36:40,000 --> 00:36:44,000 Eta orain ipuin-hau da, Facebook-en itxuraz joan puntu honetan geroago- 668 00:36:44,000 --> 00:36:49,000 istorioa Puntu honetan, Anita lehenengo berdinak izan da hasieratu 669 00:36:49,000 --> 00:36:51,000 horrek ez du esan nahi Anita Lucas puntu. 670 00:36:51,000 --> 00:36:53,000 Izan ere, adierazi zer adierazi du 671 00:36:53,000 --> 00:36:57,000 helbide berean barruan Lucas 32 bit delako - 1, 2, 3 - 672 00:36:57,000 --> 00:37:01,000 da gaur egun, halaber, Anita 32 bit barruan - 1, 2, 3. 673 00:37:01,000 --> 00:37:05,000 >> Orain aurkitu 22. Nola litzateke hau egiten al duzu? 674 00:37:05,000 --> 00:37:07,000 Zer da? >> Edozein Point hori. 675 00:37:07,000 --> 00:37:11,000 Edozein Seinalatu, eta, beraz, aurrera eta antzeztea onena hemen ahal izango duzu. 676 00:37:11,000 --> 00:37:15,000 Ona, ona, eta gaur egun ari zaren seinalatuz at-Zein da zure izena 22? 677 00:37:15,000 --> 00:37:18,000 Ramon >> Ramon, Ramon da ustiategi 22, beraz. 678 00:37:18,000 --> 00:37:20,000 Txeke bat egiten duzu. 679 00:37:20,000 --> 00:37:24,000 Ez du Ramon == 22, eta hala bada, esate baterako, itzultzeko egia ahal izango dugu. 680 00:37:24,000 --> 00:37:26,000 Utzidazu bitartean guys horiek stand hemen zertxobait awkwardly 681 00:37:26,000 --> 00:37:32,000 utzi zerbait egin me boolearra bezala azkar aurkitzeko. 682 00:37:32,000 --> 00:37:37,000 Aurretik joan eta esan noa (nodo * zerrenda, int n). 683 00:37:37,000 --> 00:37:39,000 Eskuinera itzuli dut you guys. Kodea batzuk idatzi dut. 684 00:37:39,000 --> 00:37:45,000 Eta orain aurrera joan eta hau, nodoen * Anita = zerrenda egin dut. 685 00:37:45,000 --> 00:37:51,000 Eta aurrera joan eta esan noa (Anita! = NULL) bitartean. 686 00:37:51,000 --> 00:37:57,000 >> Metafora hemen dago eta apur bat luzatu lortzean, baina (Anita! = NULL), berriz, egin nahi dut? 687 00:37:57,000 --> 00:38:03,000 Erreferentziatutako modu batzuk behar dut 688 00:38:03,000 --> 00:38:05,000 osokoa Anita dela seinalatuz. 689 00:38:05,000 --> 00:38:08,000 Iraganean, egiturak izan dugu, nodo bat da, 690 00:38:08,000 --> 00:38:11,000 dot idazkera erabili dugu, eta antzeko zerbait esan nahiko genuke 691 00:38:11,000 --> 00:38:15,000 anita.n, baina hemen arazoa da Anita ez dela struct per se. 692 00:38:15,000 --> 00:38:17,000 Zer da? 693 00:38:17,000 --> 00:38:21,000 Erakuslea du, eta, beraz, benetan, nahi dugu puntu hau erabili nahi izanez gero notazioa 694 00:38:21,000 --> 00:38:23,000 eta hori nahita apur bat bilatzeko críptica 695 00:38:23,000 --> 00:38:28,000 zerbait egin behar dugu, edozein izanda ere Anita ezkerreko joan atsegin seinalatuz 696 00:38:28,000 --> 00:38:31,000 eta, ondoren, n izeneko eremuan. 697 00:38:31,000 --> 00:38:35,000 Anita da erakuslea da, baina zer da * Anita? 698 00:38:35,000 --> 00:38:38,000 Zer joan zer da Anita seinalatuz aurkitu duzu? 699 00:38:38,000 --> 00:38:42,000 Struct A, nodo bat, eta nodo, abisuaren, n izeneko eremuan 700 00:38:42,000 --> 00:38:47,000 du, izan ere, gogora ekarri, 2 eremu horiek, eta hurrengo n 701 00:38:47,000 --> 00:38:50,000 ikusi dugun une bat duela hemen. 702 00:38:50,000 --> 00:38:53,000 >> Benetan imitatu kode 703 00:38:53,000 --> 00:39:02,000 hau egin ahal izan genuen eta esan ((* Anita) n == n), n naiz I bila. 704 00:39:02,000 --> 00:39:04,000 Oharra funtzioa buruzko zaintzen dut kopurua gainditu zen. 705 00:39:04,000 --> 00:39:10,000 Ondoren, aurrera I eta zer bueltan benetako antzeko zerbait. 706 00:39:10,000 --> 00:39:12,000 Bestela, ez bada kasua, zer egin nahi dut? 707 00:39:12,000 --> 00:39:19,000 Nola zer Anita egin beraz, intuizioz zerrendan zehar oinez kodea itzuli dut? 708 00:39:19,000 --> 00:39:26,000 Zer egin behar egin behar dut hemen urrats hori hartu Anita, ezker, urrats hori ezkerreko simulatzeko? 709 00:39:26,000 --> 00:39:28,000 [Inaudible ikaslearen erantzuna] >> Zer da hori? 710 00:39:28,000 --> 00:39:30,000 [Inaudible ikaslearen erantzuna] 711 00:39:30,000 --> 00:39:34,000 Ona, ez da ideia txarra, baina iraganean, egin dugu hau egin dugu Anita + + 712 00:39:34,000 --> 00:39:37,000 1 zenbakia gehitu lukeelako Anita, 713 00:39:37,000 --> 00:39:40,000 normalean hurrengo pertsona seinalatu, Ramon bezala, 714 00:39:40,000 --> 00:39:44,000 edo pertsona zion ondoan, edo hurrengo zion pertsona behera line. 715 00:39:44,000 --> 00:39:49,000 Baina hori ez da nahiko ona hemen zer gauza hau ez dituelako memorian itxura? 716 00:39:49,000 --> 00:39:54,000 Ez. Desgaitu behar dugu. 717 00:39:54,000 --> 00:40:00,000 Itxura hau atsegin du memoria, eta nahiz eta 1 eta 2 eta 3 itxi bat marrazten dut, 718 00:40:00,000 --> 00:40:03,000 benetan simulatu dugu bada hau, guys oraindik berean pertsona seinalatuz, 719 00:40:03,000 --> 00:40:07,000 batzuk hartzen ausazko urratsa atzera, batzuk ausazko aurrerapauso bat da? 720 00:40:07,000 --> 00:40:10,000 >> Nahastea, hau da, oraindik ere, lotutako zerrenda bat, 721 00:40:10,000 --> 00:40:13,000 baina guys horiek edozein lekutan memoria izan liteke, 722 00:40:13,000 --> 00:40:15,000 beraz, Anita + + ez dago zergatik lan? 723 00:40:15,000 --> 00:40:19,000 Zer kokapena Anita + +? 724 00:40:19,000 --> 00:40:21,000 Nork daki. 725 00:40:21,000 --> 00:40:24,000 Beste balio batzuk besterik ez da, beraz, gertatzen interposed 726 00:40:24,000 --> 00:40:28,000 nodo horiek kasualitatez guztien artean ez dugulako array bat erabiliz. 727 00:40:28,000 --> 00:40:30,000 Nodo horietako bakoitza banan-banan esleituko dugu. 728 00:40:30,000 --> 00:40:32,000 Ados, you guys zuei garbitzeko bada itzuli du. 729 00:40:32,000 --> 00:40:37,000 Anita + +, ez dugu ordez Anita ordez proposatzen me lortzen 730 00:40:37,000 --> 00:40:42,000 ondo, zergatik ez joan hemendik Anita seinalatuz dugu, eta ondoren egin. hurrengoa? 731 00:40:42,000 --> 00:40:45,000 Beste era batera esanda, Ramon, 22 zenbakia da eusten joan gara, 732 00:40:45,000 --> 00:40:51,000 eta, ondoren, hurrengo da bagina bezala Anita kopiatzea zuen ezkerreko erakuslea. 733 00:40:51,000 --> 00:40:54,000 Baina ez zuen joan urrunago aurkitu dugu, Ramon baino 22 delako. 734 00:40:54,000 --> 00:40:56,000 Baina ideia izango litzateke. Orain, hau jainko-awful nahaspila bat da. 735 00:40:56,000 --> 00:40:59,000 Zintzotasunez, inork ez du inoiz gogoratzen sintaxia hau, eta beraz, zorionez, 736 00:40:59,000 --> 00:41:04,000 Egia esan, apur bat nahita-oh, ez duzu benetan zer I idatzi. 737 00:41:04,000 --> 00:41:08,000 Gehiago sinesgarria izango litzateke, ahal izango banu. Voila! 738 00:41:08,000 --> 00:41:10,000 >> Eszenak atzean, arazoa konpontzeko modu hau. 739 00:41:10,000 --> 00:41:14,000 Anita, ezker urrats hori hartzeko, 740 00:41:14,000 --> 00:41:18,000 lehenik eta behin, helbidea ez gara Anita dagoela seinalatuz 741 00:41:18,000 --> 00:41:23,000 eta non aurkituko du, ez bakarrik n, konparazio-en mesedetan besterik ez dugu checked, 742 00:41:23,000 --> 00:41:25,000 baina ere izango aurkituko dituzu hurrengo kasu honetan, 743 00:41:25,000 --> 00:41:28,000 Ramon ezkerreko zerrendako hurrengo nodo seinalatuz. 744 00:41:28,000 --> 00:41:32,000 Baina hori jainko-awful nahastea, lehenago aipatzen dut, hau da, 745 00:41:32,000 --> 00:41:34,000 baina C aukera ematen dizu errazteko gurekin bihurtzen da. 746 00:41:34,000 --> 00:41:40,000 Horren ordez idatziz (* Anita) ordez, ezin dugu besterik gabe idatzi Anita-> n, 747 00:41:40,000 --> 00:41:45,000 eta gauza bera zehatza da funtzionalki, baina asko intuitiboagoa da, 748 00:41:45,000 --> 00:41:48,000 eta askoz gehiago irudian koherentea izan ditudan marrazten da 749 00:41:48,000 --> 00:41:50,000 Denbora horretan guztian geziak erabiliz. 750 00:41:50,000 --> 00:41:57,000 >> Azkenik, zer egin behar dugu programa honen amaieran? 751 00:41:57,000 --> 00:42:00,000 Kodea gainerako lerro bat da. 752 00:42:00,000 --> 00:42:02,000 Itzuli zer? 753 00:42:02,000 --> 00:42:05,000 Gezurra, izan ere, oro har bidez iritsi bada loop bitartean 754 00:42:05,000 --> 00:42:10,000 eta Anita da, hain zuzen ere, null, horrek esan nahi du modu guztiak joan zen zerrendaren bukaeran 755 00:42:10,000 --> 00:42:12,000 non zuen seinalatuz-Zein da zure izena berriro? 756 00:42:12,000 --> 00:42:15,000 Ari. >> Ari ezkerreko, hau da, null. 757 00:42:15,000 --> 00:42:18,000 Anita da gaur egun null, eta konturatzen naiz hemen ari zaren zutik awkwardly Limbo 758 00:42:18,000 --> 00:42:21,000 egingo dut off delako bakarrizketa bat hemen, 759 00:42:21,000 --> 00:42:23,000 baina inplikatzeko dugu berriro une bat besterik ez. 760 00:42:23,000 --> 00:42:27,000 Anita null istorioa puntu hartan, berriz, begizta bukatzen da, beraz, 761 00:42:27,000 --> 00:42:30,000 eta faltsua itzuli behar dugu Ari null erakuslea lortu zuen modu guztiak galtzen delako 762 00:42:30,000 --> 00:42:34,000 ondoren, ez zen zerrendan ez duela bilatzen. 763 00:42:34,000 --> 00:42:39,000 Hau sortu garbitu ahal izango dugu ere, baina hau nahiko ona ezartzea da, ondoren 764 00:42:39,000 --> 00:42:43,000 zeharkako funtzio bat, lotuta zerrenda funtzioa aurkitu. 765 00:42:43,000 --> 00:42:48,000 Oraindik da lineala bilatu, baina ez da + + erakuslea bezain erraza 766 00:42:48,000 --> 00:42:52,000 edo + + i aldagai bat ezin dugulako asmatzen 767 00:42:52,000 --> 00:42:54,000 non nodo horietako bakoitzak memorian. 768 00:42:54,000 --> 00:42:57,000 Literalki breadcrumbs pista jarraitu behar dugu, edo zehatzago esanda, 769 00:42:57,000 --> 00:43:00,000 erakusleak, bat nodo batetik bestera joateko. 770 00:43:00,000 --> 00:43:02,000 >> Orain dezagun saiatu beste bat. Anita, ez itzuli hemen nahi al duzu? 771 00:43:02,000 --> 00:43:06,000 Zergatik ez aurretik joaten gara eta beste pertsona bat publikoaren esleitu? 772 00:43:06,000 --> 00:43:08,000 Malloc-Zein da zure izena? >> Rebecca. 773 00:43:08,000 --> 00:43:10,000 Rebecca. Rebecca izan da publikoaren malloced 774 00:43:10,000 --> 00:43:13,000 eta orain, zuen 55 zenbakia gordetzeko. 775 00:43:13,000 --> 00:43:17,000 Eta esku helburua da Anita sartu 776 00:43:17,000 --> 00:43:22,000 Zerrenda lotuta hemen bere leku egokia sartu Rebecca. 777 00:43:22,000 --> 00:43:24,000 Goazen hemen une bat baino gehiago. 778 00:43:24,000 --> 00:43:28,000 Zerbait egin hau atsegin dute. 779 00:43:28,000 --> 00:43:32,000 Egin dut nodo *. Eta zer da zure izena berriro? 780 00:43:32,000 --> 00:43:34,000 Rebecca. >> Rebecca, ados. 781 00:43:34,000 --> 00:43:41,000 Rebecca malloc (sizeof (nodo)) lortzen. 782 00:43:41,000 --> 00:43:44,000 Bezala banatzen dugu iraganean, ikasle eta whatnot bezalako gauzak 783 00:43:44,000 --> 00:43:46,000 nodoaren tamaina behar dugu, eta, beraz, orain, Rebecca 784 00:43:46,000 --> 00:43:49,000 zer seinalatuz? 785 00:43:49,000 --> 00:43:52,000 Rebecca ditu bere barruan bi eremuak, eta horietako bat da 55. 786 00:43:52,000 --> 00:43:55,000 Egin dezagun zer, Rebecca-> = 55. 787 00:43:55,000 --> 00:44:00,000 Baina orduan Rebecca-> hurrengo behar-nahi oraintxe, eskua nork daki mota da? 788 00:44:00,000 --> 00:44:03,000 Zabor balio batzuk da, seinalatuz, beraz, zergatik ez da neurri ona 789 00:44:03,000 --> 00:44:07,000 gutxienez, hau da, beraz, ezkerreko bere alde dago orain. 790 00:44:07,000 --> 00:44:09,000 Anita orain, eraman ezazu hemendik. 791 00:44:09,000 --> 00:44:11,000 Rebecca izan esleitu behar duzu. 792 00:44:11,000 --> 00:44:20,000 Anima zaitez eta aurkitu non Rebecca jarri behar dugu. 793 00:44:20,000 --> 00:44:25,000 Ona, oso ona. 794 00:44:25,000 --> 00:44:28,000 Ongi, ona da, eta gaur egun norabide apur bat eman behar dugu, 795 00:44:28,000 --> 00:44:30,000 beraz, iritsi zara Ari. 796 00:44:30,000 --> 00:44:33,000 Bere ezkerreko null, baina Rebecca argi eta garbi eskubidea da, 797 00:44:33,000 --> 00:44:36,000 beraz, nola ez lotuta zerrenda hau aldatu behar dugu 798 00:44:36,000 --> 00:44:38,000 Rebecca sartu ahal izateko, dagokion tokian? 799 00:44:38,000 --> 00:44:42,000 Ezin duzu, literalki bada mugitu pertsonen ezkerreko eskuak behar bezala inguruan, 800 00:44:42,000 --> 00:44:48,000 arazoa konpondu dugu horrela. 801 00:44:48,000 --> 00:44:52,000 Ongi, ona da, eta bestalde, Rebecca ezkerreko da orain bere alboan. 802 00:44:52,000 --> 00:44:54,000 >> Hori izan zen oso erraza da. 803 00:44:54,000 --> 00:44:57,000 Dezagun saiatu esleitzean-we're ia egin, 20. 804 00:44:57,000 --> 00:44:59,000 Ongi da, goazen gora. 805 00:44:59,000 --> 00:45:04,000 20 esleituko dira, beraz aurrera eta berriro esan hemen 806 00:45:04,000 --> 00:45:07,000 besterik ez dugu egin nodo * Saad. 807 00:45:07,000 --> 00:45:11,000 Malloc ditugu (sizeof (nodo)). 808 00:45:11,000 --> 00:45:16,000 Dugu zehatza sintaxia bera 20 baino lehenago egin genuen, 809 00:45:16,000 --> 00:45:20,000 eta hurrengo = NULL egin dut, eta orain da Anita 810 00:45:20,000 --> 00:45:23,000 sartu lotuta zerrenda, hori zehatza berean rol play balute. 811 00:45:23,000 --> 00:45:30,000 Exekutatu. 812 00:45:30,000 --> 00:45:32,000 Ongi, ona da. 813 00:45:32,000 --> 00:45:38,000 Orain uste arretaz ezkerreko eskuak mugituz inguruan hasten zara aurretik. 814 00:45:38,000 --> 00:45:46,000 Lortu urrun by awkward rola gaur egun. 815 00:45:46,000 --> 00:45:59,000 Whose eskuz mugitu behar da lehenengo? 816 00:45:59,000 --> 00:46:02,000 Ados, itxaron, ez bere entzumen dut. 817 00:46:02,000 --> 00:46:07,000 Folks batzuk adeitsuki bada awkward egoera konpontzen laguntzeko. 818 00:46:07,000 --> 00:46:11,000 Whose ezkerreko lehen eguneratu behar agian? Bai. 819 00:46:11,000 --> 00:46:13,000 [Student] Saad. 820 00:46:13,000 --> 00:46:15,000 Ados, Saad, zergatik, baina? 821 00:46:15,000 --> 00:46:17,000 [Inaudible ikaslearen erantzuna] 822 00:46:17,000 --> 00:46:19,000 Ona, mugitu zer badugu, zure izena? >> Marshall. 823 00:46:19,000 --> 00:46:22,000 Marshall, mugitu eskuan lehenengo behera null 824 00:46:22,000 --> 00:46:25,000 literalki dugu zerrenda honetan lau pertsona umezurtz 825 00:46:25,000 --> 00:46:29,000 izan zen Ramon eta ezkerreko denek zuzentzen duen gauza bakarra delako, 826 00:46:29,000 --> 00:46:31,000 beraz erakuslea eguneratzeko lehen txarra zen. 827 00:46:31,000 --> 00:46:33,000 Dezagun desegin dela. 828 00:46:33,000 --> 00:46:37,000 Ona, eta gaur egun, aurrera eta mugitu dagokion ezkerreko Ramon seinalatuz. 829 00:46:37,000 --> 00:46:39,000 Txiki hau erredundante bat sentitzen du. 830 00:46:39,000 --> 00:46:41,000 Gaur egun, bi pertsona Ramon seinalatuz, baina isuna 831 00:46:41,000 --> 00:46:43,000 Gaur egun, delako nola bestela zerrenda eguneratu dugu? 832 00:46:43,000 --> 00:46:48,000 Beste alde batetik mugitu? 833 00:46:48,000 --> 00:46:53,000 Bikain, orain memoria edozein galdu dugu? 834 00:46:53,000 --> 00:46:57,000 Ez da, beraz, ona da, ikusi ahal izango dugu, apurtu ez bada, hau behin gehiago. 835 00:46:57,000 --> 00:47:00,000 >> Azkena denbora Mallocing, multzoko 5. 836 00:47:00,000 --> 00:47:04,000 Itzuli modu guztiak, behera etorri dira. 837 00:47:04,000 --> 00:47:08,000 Oso zirraragarria da. 838 00:47:08,000 --> 00:47:15,000 [Txalo] 839 00:47:15,000 --> 00:47:17,000 Zein da zure izena? >> Ron. 840 00:47:17,000 --> 00:47:19,000 Ron, ados, zauden multzoko 5 malloced. 841 00:47:19,000 --> 00:47:23,000 Besterik ez dugu exekutatu kodea duten horiei ia berdina 842 00:47:23,000 --> 00:47:26,000 beste izen batekin. 843 00:47:26,000 --> 00:47:28,000 Bikain. 844 00:47:28,000 --> 00:47:38,000 Orain, Anita, zorte ona zenbaki 5 txertatu zerrendan. 845 00:47:38,000 --> 00:47:43,000 Ona, eta? 846 00:47:43,000 --> 00:47:47,000 Bikain, eta, beraz, hau da, benetan hiru kasu osoaren herena. 847 00:47:47,000 --> 00:47:49,000 Lehen aldiz izan dugu norbait amaieran, Rebecca. 848 00:47:49,000 --> 00:47:51,000 Erdian norbait izan dugu. 849 00:47:51,000 --> 00:47:53,000 Orain norbait behar dugu, hasiera-hasieratik, eta adibide honetan, 850 00:47:53,000 --> 00:47:56,000 Lucas eguneratu lehen aldiz izan dugu 851 00:47:56,000 --> 00:48:00,000 Zerrendako lehenengo elementua duelako nodo berri bat seinalatu, 852 00:48:00,000 --> 00:48:03,000 Izan ere, aldi berean, kopurua nodo 9 seinalatuz. 853 00:48:03,000 --> 00:48:06,000 >> Izugarri awkward manifestazio bat izan zen, ziur nago, 854 00:48:06,000 --> 00:48:08,000 guys horiek Kopako txalo handi bat ahal izango banu. 855 00:48:08,000 --> 00:48:11,000 Nicely done. 856 00:48:11,000 --> 00:48:17,000 Hori da dena. Memoria apur bat gorde dezakezu zure paper pieza. 857 00:48:17,000 --> 00:48:22,000 Bihurtzen da egiten kode 858 00:48:22,000 --> 00:48:26,000 ez da besterik gabe, eskuak mugituz inguruan bezain erraza 859 00:48:26,000 --> 00:48:28,000 eta erakusleak, gauza ezberdinak seinalatuz. 860 00:48:28,000 --> 00:48:31,000 Baina konturatzen denean antzeko zerbait ezartzeko orduan 861 00:48:31,000 --> 00:48:34,000 lotuta zerrenda edo aldaera bat benetan aukera zabaltzeko 862 00:48:34,000 --> 00:48:38,000 horiek oinarrizko oinarriak, ziztadak-tamaina arazoak irudikatu behar dut, 863 00:48:38,000 --> 00:48:43,000 eskua hau edo eskuko hau da, konturatzen zer dela bestela oso programa konplexuak 864 00:48:43,000 --> 00:48:47,000 daiteke, hain zuzen ere, eraikin nahiko simple hau atsegin bloke murriztu. 865 00:48:47,000 --> 00:48:51,000 >> Dezagun gauzak ere sofistikatuagoa norabidean. 866 00:48:51,000 --> 00:48:53,000 Lotuta zerrenda nozioa dugu. 867 00:48:53,000 --> 00:48:57,000 Halaber, iradokizuna atzera-bi aldiz lotuta zerrenda esker, 868 00:48:57,000 --> 00:49:01,000 begiratzen ia berdina da, baina gaur egun bi erakusle dugu eta egitura, barruan 869 00:49:01,000 --> 00:49:05,000 ordez, eta seguruenik ezin diegu erakusleak duten aurreko eta hurrengo 870 00:49:05,000 --> 00:49:08,000 edo ezkerrera edo eskuinera, baina, ez dugu hain zuzen ere, behar horietako bi. 871 00:49:08,000 --> 00:49:10,000 Kodea apur bat gehiago parte hartzeko prest dauden pertsonek izango litzateke. 872 00:49:10,000 --> 00:49:12,000 Anita lan gehiago egin behar izan zuen agertokian. 873 00:49:12,000 --> 00:49:15,000 Baina, zalantzarik gabe izan dugu egitura-mota hori ezartzeko. 874 00:49:15,000 --> 00:49:19,000 Iraupena dagokionez, baina, denborak aurrera egin du zer izango litzateke 875 00:49:19,000 --> 00:49:24,000 n zenbaki bat aurkitzeko lotuta zerrenda batean Anita? 876 00:49:24,000 --> 00:49:27,000 Oraindik big n O, beraz, ez da bilaketa lineala baino hobea da. 877 00:49:27,000 --> 00:49:29,000 Ezin dugu egin bitar bilaketa, nahiz eta, berriro ere. 878 00:49:29,000 --> 00:49:34,000 Zergatik sortu zen kasua dela? Ezin duzu inguruan jauzi. 879 00:49:34,000 --> 00:49:36,000 Nahiz eta, jakina, ikusi dugu agertokian gizakiak guztiak, 880 00:49:36,000 --> 00:49:39,000 eta Anita eyeballed aukera izan da, eta hau esan du: "Hemen zerrendaren erdian," 881 00:49:39,000 --> 00:49:42,000 ez zuen ezagutzen zuen programa informatiko 882 00:49:42,000 --> 00:49:47,000 zuen gauza bakarra izan latch delako eszenatokia Irteeran 883 00:49:47,000 --> 00:49:50,000 Lucas izan zen, lehenengo erakuslea izan zen. 884 00:49:50,000 --> 00:49:53,000 Nahitaez izan zen, lotura horiek jarraitu, 885 00:49:53,000 --> 00:49:56,000 bere modu kontatuta aurkitu ditu gutxi gorabehera erdialdera arte, 886 00:49:56,000 --> 00:49:58,000 eta orduan ere, ez zuen denean zuen, erdi-erdian iritsi jakin nahi du 887 00:49:58,000 --> 00:50:01,000 bide guztiak ez doa zuen amaiera irudikatu nahi du zenbat daude, 888 00:50:01,000 --> 00:50:05,000 ondoren backtracks, eta hori ere gogorra izango litzateke izan ez baduzu 889 00:50:05,000 --> 00:50:07,000 Nolabaiteko zerrenda bi aldiz lotuta. 890 00:50:07,000 --> 00:50:10,000 >> Arazo batzuk argitzen ditugu gaur egun, baina beste batzuk sartuz. 891 00:50:10,000 --> 00:50:12,000 Datuak ezberdinak egitura guztiz zer? 892 00:50:12,000 --> 00:50:15,000 Mather House erretiluak argazki bat da, 893 00:50:15,000 --> 00:50:19,000 eta, kasu honetan, datu-egitura dugu, halaber, mota horretako dagoeneko buruz hitz egiten dugu. 894 00:50:19,000 --> 00:50:22,000 Pila bati buruz hitz egin dugu memoria testuinguruan, 895 00:50:22,000 --> 00:50:26,000 eta hori sort nahita izeneko memoria termino pila bat delako 896 00:50:26,000 --> 00:50:31,000 eraginkortasunez da datu-egitura hori, gero eta gehiago stuff gainean geruzadun du. 897 00:50:31,000 --> 00:50:35,000 Baina pila bat buruz gauza interesgarri, kasu da errealitatea, 898 00:50:35,000 --> 00:50:38,000 Datuen egitura mota berezi bat dela. 899 00:50:38,000 --> 00:50:42,000 Datu-egitura bat da, zeinaren bidez lehenengo elementu 900 00:50:42,000 --> 00:50:46,000 azken elementua da. 901 00:50:46,000 --> 00:50:50,000 Lehenengo erretilu pila gainean jarri behar bada, 902 00:50:50,000 --> 00:50:53,000 zoritxarrez izan zaren azken erretilu hartu beharreko off pila 903 00:50:53,000 --> 00:50:55,000 eta hori ez da gauza ona izan behar da. 904 00:50:55,000 --> 00:50:58,000 Aitzitik, ahal izango duzu uste beste modu inguruan, 905 00:50:58,000 --> 00:51:02,000 azken lehen out da. 906 00:51:02,000 --> 00:51:05,000 >> Orain, ez eszenatoki pila bat izatea non edozein etortzen burura 907 00:51:05,000 --> 00:51:08,000 non jabetza duten datu-egitura 908 00:51:08,000 --> 00:51:13,000 out lehen, azken, sinesgarria benetan? 909 00:51:13,000 --> 00:51:16,000 Gauza ona da hori? Gauza txarra da hori? 910 00:51:16,000 --> 00:51:19,000 Behin betiko da txarra erretiluak ez ziren bada guztiak berdin-berdina 911 00:51:19,000 --> 00:51:21,000 eta kolore ezberdinak bereziak edo whatnot ziren, 912 00:51:21,000 --> 00:51:24,000 eta nahi duzun kolorea, behealdean modu guztiak. 913 00:51:24,000 --> 00:51:26,000 Jakina, ezin duzu lortu ahalegin handia gabe. 914 00:51:26,000 --> 00:51:28,000 Goitik hasi eta zure modu lan behera duzu. 915 00:51:28,000 --> 00:51:31,000 Era berean, zer ziren fan boys hauetako bat bada 916 00:51:31,000 --> 00:51:34,000 duten itxaroten gaueko iPhone eta lerro bat sortu nahian 917 00:51:34,000 --> 00:51:36,000 hau bezalako leku bat? 918 00:51:36,000 --> 00:51:40,000 Ez litzateke polita izango da Apple dendan 919 00:51:40,000 --> 00:51:42,000 ziren pila bat datuak egitura? 920 00:51:42,000 --> 00:51:44,000 Yay? Berriz? 921 00:51:44,000 --> 00:51:47,000 Ona erakusten duten pertsonen sortu da posible azken momentuan 922 00:51:47,000 --> 00:51:50,000 eta, ondoren, hari pultsatuzko off ilaran. 923 00:51:50,000 --> 00:51:52,000 Eta, hain zuzen ere, Izan ere, hori izan zen, beraz, gogoa ilara esan 924 00:51:52,000 --> 00:51:56,000 da benetan deitu datuen egitura mota hau genuke koherentea, 925 00:51:56,000 --> 00:51:59,000 errealitate bat non ordena ez materia, 926 00:51:59,000 --> 00:52:02,000 eta lehena lehena izan nahi duzun 927 00:52:02,000 --> 00:52:04,000 bada bakarrik giza zuzentasuna mesedetan. 928 00:52:04,000 --> 00:52:07,000 Oro har, ilaran datuak egitura deitu dugu. 929 00:52:07,000 --> 00:52:11,000 >> Bihurtzen da zerrendak lotuta gain, oinarrizko ideia horiek berak erabiliz 930 00:52:11,000 --> 00:52:15,000 eta hasi berriak eta irtenbide mota ezberdinak sortzeko arazoak. 931 00:52:15,000 --> 00:52:19,000 Esate baterako, pila baten kasuan, pila bat irudikatu izan dugu 932 00:52:19,000 --> 00:52:22,000 datu hau atsegin egitura bat erabiliz, proposatuko nuke. 933 00:52:22,000 --> 00:52:26,000 Kasu honetan, izendatu dut eta egitura bat, eta egitura honen barruan Nik esan 934 00:52:26,000 --> 00:52:30,000 zenbaki-array eta gero izeneko tamaina aldakorra da, 935 00:52:30,000 --> 00:52:33,000 eta gauza pila bat deitu dut. 936 00:52:33,000 --> 00:52:35,000 Orain, zergatik ez hau benetan lan? 937 00:52:35,000 --> 00:52:43,000 Pila baten kasuan, modu eraginkorrean hau array bat pantailan marraztu izan nuen. 938 00:52:43,000 --> 00:52:47,000 Hemen, nire pila da. Dutenek nire zenbakiak dira. 939 00:52:47,000 --> 00:52:50,000 Eta haien marraztu dugu hau, hau, hau, hau, hau. 940 00:52:50,000 --> 00:52:53,000 Eta gero, beste zenbait datu-kide izan dut hemen, 941 00:52:53,000 --> 00:52:58,000 deitzen den tamaina, eta, beraz, tamaina da, eta, hau da, zenbakiak, 942 00:52:58,000 --> 00:53:02,000 eta kolektiboki, osoa iPad Hemen pila bat egitura adierazten du. 943 00:53:02,000 --> 00:53:07,000 Orain, lehenetsia, tamaina du ustez lortu: 0 hasieratu 944 00:53:07,000 --> 00:53:11,000 eta zer barruan zenbaki-array hasiera batean 945 00:53:11,000 --> 00:53:14,000 denean lehen esleitu I array bat? 946 00:53:14,000 --> 00:53:16,000 Garbage. Nork daki? Eta ez du benetan axola. 947 00:53:16,000 --> 00:53:20,000 Ez du axola bada 1, 2, 3, 4, 5, erabat ausaz 948 00:53:20,000 --> 00:53:25,000 Zorte txarra nire egitura gordetako hain luze dudalako ezagutzen, pilaren tamaina 949 00:53:25,000 --> 00:53:29,000 0 da, orduan programazioaren ezagutzen dut, ez array edozein elementu bilatzeko. 950 00:53:29,000 --> 00:53:31,000 Ez du axola zer da bertan. 951 00:53:31,000 --> 00:53:34,000 Ez begiratu, 0 tamaina inplikazioa izango litzateke. 952 00:53:34,000 --> 00:53:38,000 >> Baina demagun orain aurrera dut eta zerbait sartu pila. 953 00:53:38,000 --> 00:53:42,000 5 zenbakia sartu nahi dut, beraz, multzoko 5 jarri dut hemen, 954 00:53:42,000 --> 00:53:45,000 eta, ondoren, zer behera jarri dut hemen? 955 00:53:45,000 --> 00:53:48,000 Orain benetan nuke jarri 1 tamaina 956 00:53:48,000 --> 00:53:50,000 eta, gaur egun, pila tamaina 1. 957 00:53:50,000 --> 00:53:53,000 Zer I joan aurretik eta zenbakia sartu, utzi diotenez, 7 hurrengoa? 958 00:53:53,000 --> 00:53:57,000 Ondoren lortzen 2 eguneratu, eta, ondoren, 9 egin dugu, 959 00:53:57,000 --> 00:54:02,000 eta, ondoren, hori lortzen 3 eguneratu da. 960 00:54:02,000 --> 00:54:05,000 Baina orain pila honen Ezaugarri interesgarria da 961 00:54:05,000 --> 00:54:09,000 Suposatzen duen elementu ezabatu nahi dut pop dut 962 00:54:09,000 --> 00:54:12,000 zerbait off pilaren, eta, beraz, hitz egiten? 963 00:54:12,000 --> 00:54:14,000 Lehenik eta behin, joan 9 izango litzateke. 964 00:54:14,000 --> 00:54:18,000 Zer egin behar irudian aldatu nahi dut elementu pila bat pop off 965 00:54:18,000 --> 00:54:20,000 askoz Mather erretilu bat nahi? 966 00:54:20,000 --> 00:54:22,000 Bai. >> [Student] Ezarri tamaina 2. 967 00:54:22,000 --> 00:54:27,000 Zehazki, ez dut ezarri tamaina 2, eta zer egiten dut array batera? 968 00:54:27,000 --> 00:54:29,000 Nik ez dut ezer egin. 969 00:54:29,000 --> 00:54:32,000 Izan dut, besterik gabe, anal izan, jarri 0 bat edo -1 edo zerbait adierazten 970 00:54:32,000 --> 00:54:34,000 hau ez dela egiaztatzeko balio bat, baina ez du axola delako 971 00:54:34,000 --> 00:54:37,000 Array bera zenbat denbora da kanpo grabatu ahal dut 972 00:54:37,000 --> 00:54:41,000 ezagutzen dut array honetako lehenengo bi elementu bakarrik begiratzen. 973 00:54:41,000 --> 00:54:47,000 Orain, joan behar dut eta 8 zenbakia array hau gehitzeko, argazkia nola ez aldatzeko hurrengoa? 974 00:54:47,000 --> 00:54:50,000 8 bihurtzen da, eta hori bihurtzen da 3. 975 00:54:50,000 --> 00:54:52,000 Zenbait txoko bat naiz ebaketa hemen. 976 00:54:52,000 --> 00:54:56,000 Orain 5, 7, 8, dugu, eta 3 tamaina bat gara. 977 00:54:56,000 --> 00:54:58,000 Hau da, pretty simple inplementatzeko, 978 00:54:58,000 --> 00:55:06,000 baina diseinua erabaki hau damutuko dugu? 979 00:55:06,000 --> 00:55:09,000 Noiz gauzak hasteko oso, oso oker joan? Bai. 980 00:55:09,000 --> 00:55:11,000 [Inaudible ikaslearen erantzuna] 981 00:55:11,000 --> 00:55:13,000 Atzera joan eta lehen elementu sartu jarri nahi duzun 982 00:55:13,000 --> 00:55:18,000 >> Bihurtzen da, nahiz eta pila bat kanpaia azpian array bat da, 983 00:55:18,000 --> 00:55:21,000 buruz hitz egiten hasi dugu horiek datuen egitura ere, oro har, ezagutzen dira gisa 984 00:55:21,000 --> 00:55:25,000 abstract datuak egitura horren bidez nola inplementatu 985 00:55:25,000 --> 00:55:27,000 erabat puntua gain da. 986 00:55:27,000 --> 00:55:31,000 Pila bat bezala egitura bat da ustezko laguntza gehitzeko 987 00:55:31,000 --> 00:55:35,000 push, pila gainean erretilu bat bultzatzen bezalako eragiketak, 988 00:55:35,000 --> 00:55:39,000 eta pop, elementu bat kentzen pila, eta hori da. 989 00:55:39,000 --> 00:55:43,000 Zinen kodea beste norbaiten dagoeneko inplementatu deskargatu nahi baduzu 990 00:55:43,000 --> 00:55:46,000 izeneko gauza pila bat, pertsona horrek idatziko zukeen 991 00:55:46,000 --> 00:55:49,000 bakarrik bi funtzioak, bultza eta pop, bere bizitzaren helburu bakarra 992 00:55:49,000 --> 00:55:51,000 , zehazki horretarako izango litzateke. 993 00:55:51,000 --> 00:55:54,000 Duzu, edo bere nor inplementatu programa hori 994 00:55:54,000 --> 00:55:58,000 erabat bat izan zen nola ezartzea erabaki 995 00:55:58,000 --> 00:56:00,000 bultzaka eta leihoa kanpaia azpian semantika 996 00:56:00,000 --> 00:56:03,000 edo bultzaka leihoa funtzionalitatea. 997 00:56:03,000 --> 00:56:07,000 Eta egin ditut hemen zertxobait shortsighted erabakia 998 00:56:07,000 --> 00:56:10,000 nire pila ezartzea datuak simple egitura honetan zergatik? 999 00:56:10,000 --> 00:56:12,000 Datu egitura break? 1000 00:56:12,000 --> 00:56:18,000 Zein amaitzen errore bat itzuliko da erabiltzaileak deiak push, esate baterako daukat? 1001 00:56:18,000 --> 00:56:20,000 [Student] egonez gero, leku gehiago ez da. 1002 00:56:20,000 --> 00:56:23,000 Zehazki, ez dago ez leku gehiago badu, Nik badut gainditu edukiera, 1003 00:56:23,000 --> 00:56:27,000 txanoak guztiak iradokitzen globalaren etengabeko nolabaiteko delako. 1004 00:56:27,000 --> 00:56:30,000 Beno, eta gero besterik ez dut izan, esan "Barkatu, ezin dut push balioa beste 1005 00:56:30,000 --> 00:56:32,000 pila gainean, "askoz Mather bezala. 1006 00:56:32,000 --> 00:56:36,000 >> Uneren batean, goiko zati txiki kabinete hit ari dira. 1007 00:56:36,000 --> 00:56:39,000 Ez dago leku gehiago edo edukiera pila da, eta akats-mota batzuk. 1008 00:56:39,000 --> 00:56:42,000 Elementu beste nonbait jarri behar dute, erretiluan beste nonbait, 1009 00:56:42,000 --> 00:56:44,000 edo ezerezetik. 1010 00:56:44,000 --> 00:56:47,000 Orain, ilara batean, ezartzea da genezake apur bat ezberdina izan. 1011 00:56:47,000 --> 00:56:50,000 Ilara A apur bat kanpaia azpian, hau da, inplementatu daiteke hainbat 1012 00:56:50,000 --> 00:56:54,000 array bat, baina zergatik, kasu honetan, naiz proposatuz. 1013 00:56:54,000 --> 00:56:59,000 zerrenda burua ordezkari buru-elementu bat ere izan, 1014 00:56:59,000 --> 00:57:06,000 zerrendaren aurrean, Apple dendan lehen lerroan pertsona, tamainaren gain? 1015 00:57:06,000 --> 00:57:14,000 Zergatik datuak pieza gehigarri bat behar dut hemen? 1016 00:57:14,000 --> 00:57:16,000 Pentsa zer zenbakiak 1017 00:57:16,000 --> 00:57:18,000 Nik marrazten honela badu. 1018 00:57:18,000 --> 00:57:21,000 Demagun hau da, gaur egun pila bat ordez ilara batean, 1019 00:57:21,000 --> 00:57:24,000 , Apple denda-ilara atsegin ezberdintasuna izatea-besterik ez da azoka. 1020 00:57:24,000 --> 00:57:27,000 Line zerrendaren hasiera lehen pertsonan, kasu honetan 5. Zenbakian, 1021 00:57:27,000 --> 00:57:30,000 zuen dendan sartu behar utzi lehen. 1022 00:57:30,000 --> 00:57:32,000 Egin dezagun hori. 1023 00:57:32,000 --> 00:57:35,000 Demagun nire ilara egoera hori da une honetan, eta gaur egun Apple dendan 1024 00:57:35,000 --> 00:57:39,000 irekiko da, eta lehen pertsonan, 5, dendan sartu zuzentzen du. 1025 00:57:39,000 --> 00:57:43,000 Nola argazkia aldatu dut dut de-ilaran lehen pertsonan 1026 00:57:43,000 --> 00:57:47,000 lerroaren aurrean? 1027 00:57:47,000 --> 00:57:50,000 Zer da hori? >> [Student] Aldatu ilaran. 1028 00:57:50,000 --> 00:57:52,000 Aldatu burua, eta, beraz, 5 desagertzen da. 1029 00:57:52,000 --> 00:57:56,000 Egia esan, nahiz eta-how onena da hau egiteko? 1030 00:57:56,000 --> 00:58:00,000 Egia esan, nahiz eta gisa lasaia lotura desagertzen da. 1031 00:58:00,000 --> 00:58:03,000 Zer izango litzateke multzoko 7 benetako dendan? 1032 00:58:03,000 --> 00:58:05,000 Big urrats bat eman zuten aurrera. 1033 00:58:05,000 --> 00:58:08,000 >> Baina, zer dute eskertzen gara orduan array 1034 00:58:08,000 --> 00:58:10,000 eta gauzak mugitzen inguruan? 1035 00:58:10,000 --> 00:58:12,000 Mota zure denbora galtze bat da, ezta? 1036 00:58:12,000 --> 00:58:16,000 Zergatik beraz, anal izan behar duzu lehenengo pertsona izan gisa 1037 00:58:16,000 --> 00:58:21,000 memoria zatia Irteeran fisikoki lerroaren hasieran? 1038 00:58:21,000 --> 00:58:23,000 Erabat alferrikako. Zergatik? 1039 00:58:23,000 --> 00:58:26,000 Zer izan gogoratzen dut ordez? >> [Inaudible ikaslearen erantzuna] 1040 00:58:26,000 --> 00:58:30,000 Zehazki, aski izan dut datu osagarriak kide burua gogoratu 1041 00:58:30,000 --> 00:58:34,000 zerrenda burua jada ez da 0, duela une bat izan zen. 1042 00:58:34,000 --> 00:58:39,000 Orain benetan da kopurua 1. Modu honetan, optimizazioa apur bat lortuko dut. 1043 00:58:39,000 --> 00:58:44,000 Just delako dut de-ilaran lerrotik norbait lerroaren hasieran Apple dendan 1044 00:58:44,000 --> 00:58:47,000 ez du esan nahi denek du, mugitzeko zein oroitzapen lineal eragiketa bat da. 1045 00:58:47,000 --> 00:58:50,000 Ordez etengabe gastatu ahal izango dut denbora soilik 1046 00:58:50,000 --> 00:58:53,000 lortu eta gero, askoz azkarrago erantzun bat. 1047 00:58:53,000 --> 00:58:56,000 Baina ordaindu dut prezio osagarria performantzia irabazteko 1048 00:58:56,000 --> 00:58:58,000 eta inork ez du mugitzeko beharrik? 1049 00:58:58,000 --> 00:59:01,000 Bai. >> [Inaudible ikaslearen erantzuna] 1050 00:59:01,000 --> 00:59:04,000 Jende gehiago gehitu ahal izango da, bai, arazo hori ortogonalak 1051 00:59:04,000 --> 00:59:07,000 Izan ere, ari gara ez pertsona aldatzearen inguruan. 1052 00:59:07,000 --> 00:59:11,000 Oraindik array bat da, eta, beraz, ala guztiek ez mugitzeko gara, edo ez- 1053 00:59:11,000 --> 00:59:13,000 oh, zer esan nahi duzu ikusten dut, ados. 1054 00:59:13,000 --> 00:59:16,000 Egia esan, ados ia nahiz da esaten ari zaren 1055 00:59:16,000 --> 00:59:19,000 ari gara orain, inoiz ez array honen hasieran gehiago erabili 1056 00:59:19,000 --> 00:59:22,000 kendu I 5 bada, eta, ondoren, 7 kendu dut. 1057 00:59:22,000 --> 00:59:24,000 Baina jarri besterik ez dut jendea eskubidea. 1058 00:59:24,000 --> 00:59:28,000 >> Dut espazioa alferrik galtzen bezala sentitzen da, eta azkenean nire ilara ezer ez guztietan disintegrates 1059 00:59:28,000 --> 00:59:31,000 beraz izan dugu pertsona wraparound 1060 00:59:31,000 --> 00:59:35,000 eta array honen benetan uste izan dugu nolabaiteko egitura zirkular gisa, 1061 00:59:35,000 --> 00:59:38,000 baina zer eragilea erabiltzen dugu C wraparound sort hori egin ahal izateko? 1062 00:59:38,000 --> 00:59:40,000 [Inaudible ikaslearen erantzuna] >> modulo operadorea. 1063 00:59:40,000 --> 00:59:43,000 Txiki gogaikarriak izango litzateke bidez pentsatu behar nola egin wraparound egin duzu, 1064 00:59:43,000 --> 00:59:46,000 baina egin izan dugu, eta pertsona jarriz lerroa aurrean erabili genezake, 1065 00:59:46,000 --> 00:59:52,000 baina hau buru aldagaia linea benetako buru benetan besterik ez dugu gogoratzen. 1066 00:59:52,000 --> 00:59:57,000 Zer izanez gero, horren ordez, gure helburua, azken finean, nahiz eta, 1067 00:59:57,000 --> 01:00:00,000 Zenbakiak bilatzeko, egin dugun bezala, hemen Anita duten etapa, 1068 01:00:00,000 --> 01:00:02,000 baina benetan nahi dugu mundu horiek guztiak? 1069 01:00:02,000 --> 01:00:05,000 Sofistikazio gehiago array baino aukera ematen nahi dugu 1070 01:00:05,000 --> 01:00:09,000 nahi dugulako, datu egitura dinamikoki hazten gaitasuna. 1071 01:00:09,000 --> 01:00:12,000 Baina ez dugu nahi, zerbait jotzea, adierazi dugun 1072 01:00:12,000 --> 01:00:15,000 Lehenengo hitzaldia izan zen ez da optimoa algoritmo bat, 1073 01:00:15,000 --> 01:00:17,000 bilaketa lineal. 1074 01:00:17,000 --> 01:00:21,000 Bihurtzen da hori, hain zuzen ere, lortu 1075 01:00:21,000 --> 01:00:24,000 edo, gutxienez, etengabeko denbora itxi, beraz Anita bezalako norbait, 1076 01:00:24,000 --> 01:00:27,000 konfiguratzen ez bada, bere datuak egitura lotutako zerrenda bat izango da, 1077 01:00:27,000 --> 01:00:30,000 pila bat ez da, ez da ilara batean, ezin izan du, hain zuzen ere, 1078 01:00:30,000 --> 01:00:33,000 etorri datuak egitura bat bilatzeko bere gauzak, 1079 01:00:33,000 --> 01:00:37,000 nahiz eta hitz, ez bakarrik zenbakiak, zer denbora konstante deitu dugu. 1080 01:00:37,000 --> 01:00:40,000 >> Eta, hain zuzen ere, aurrera begira, klase honetan psets bat da, ia beti 1081 01:00:40,000 --> 01:00:43,000 spellchecker bat ezartzeko, horren bidez 1082 01:00:43,000 --> 01:00:46,000 ematen diogu berriro 150.000 English hitz batzuk eta helburua da 1083 01:00:46,000 --> 01:00:51,000 horiek kargatu memoria sartu eta azkar formularioa galderei erantzun ahal izango 1084 01:00:51,000 --> 01:00:54,000 Hitz hau idatzita dagoela? 1085 01:00:54,000 --> 01:00:58,000 Eta benetan litzateke zurrupatu izan 150.000 hitz guztietan barrena, batetik bestera joateko duten erantzun. 1086 01:00:58,000 --> 01:01:02,000 Baina, hain zuzen ere, ikusi behar dugu, denbora oso-oso azkar dugu. 1087 01:01:02,000 --> 01:01:06,000 Eta gauzatzeko zerbait hash taula bat izeneko parte hartzea da, 1088 01:01:06,000 --> 01:01:09,000 eta nahiz eta hasiera batean hash taula bat izeneko gauza hau da, joan 1089 01:01:09,000 --> 01:01:12,000 gaitezen lortzeko horiek super azkar erantzun aldiz, 1090 01:01:12,000 --> 01:01:18,000 bihurtzen da, hain zuzen ere, arazo bat da. 1091 01:01:18,000 --> 01:01:23,000 Izeneko-berriro gauza hau ezartzeko orduan, egiten ari naiz berriro. 1092 01:01:23,000 --> 01:01:25,000 Bakarra nago hemen. 1093 01:01:25,000 --> 01:01:28,000 Berau izeneko gauza hau gauzatzeko denbora hash taula bat, 1094 01:01:28,000 --> 01:01:30,000 erabaki bat egin behar dugu. 1095 01:01:30,000 --> 01:01:32,000 Nola big behar gauza hau benetan? 1096 01:01:32,000 --> 01:01:36,000 Eta zenbakiak txertatu hash taula batean hasten gara, 1097 01:01:36,000 --> 01:01:38,000 nola gorde modu bat, hala nola, 1098 01:01:38,000 --> 01:01:42,000 ditu gara itzuli bezain laster genuen hauek? 1099 01:01:42,000 --> 01:01:45,000 Baina ikusiko dugu aurretik, galdera hau luzea 1100 01:01:45,000 --> 01:01:48,000 guztion urtebetetzea klase nahiko germane da izango. 1101 01:01:48,000 --> 01:01:51,000 Bihurtzen da gela honetan, lortu dugu, batzuk ehun pertsona, 1102 01:01:51,000 --> 01:01:56,000 odds beraz, gutako bi urtebetetzea bera nahiko altua da, ziur aski. 1103 01:01:56,000 --> 01:01:58,000 Zer bada ez ziren bakarrik gurekin 40 gela honetan? 1104 01:01:58,000 --> 01:02:02,000 Zer dira bi pertsona urtebetetzea bera izatea odds? 1105 01:02:02,000 --> 01:02:04,000 [Ikasleak]% 50 baino gehiago. 1106 01:02:04,000 --> 01:02:06,000 Bai,% 50 baino gehiago. Izan ere, nahiz eta ekarri dut taula bat. 1107 01:02:06,000 --> 01:02:08,000 -Eta bihurtzen da, hau da, benetan besterik ez Sneak preview 1108 01:02:08,000 --> 01:02:12,000 ez da soilik 58 gela honetan, 2 probabilitatea gurekin 1109 01:02:12,000 --> 01:02:16,000 urtebetetzea bera izatea da izugarri altua da, ia% 100, 1110 01:02:16,000 --> 01:02:20,000 eta hori minik Gurekin sorta oso bat sor asteazkenean. 1111 01:02:20,000 --> 01:02:24,000 >> Dela esan zuen, dezagun adjourn hemen. Asteazkenean ikusiko dugu. 1112 01:02:24,000 --> 01:02:28,000 [Txalo] 1113 01:02:28,000 --> 01:02:30,000 [CS50.TV]