1 00:00:00,000 --> 00:00:03,423 >> [Muzikos grojimo] 2 00:00:03,423 --> 00:00:05,380 3 00:00:05,380 --> 00:00:08,210 >> ANDI Peng: Sveiki skirsnio 6 savaitės. 4 00:00:08,210 --> 00:00:11,620 Mes nukrypo nuo mūsų standartas skyrius laikas antradienį 5 00:00:11,620 --> 00:00:14,130 popietę tai puikus sekmadienio rytą. 6 00:00:14,130 --> 00:00:17,330 Dėkojame visiems, kad prisijungė mane šiandien, bet rimtai, 7 00:00:17,330 --> 00:00:18,170 plojimų. 8 00:00:18,170 --> 00:00:20,600 >> Tai gana didelis pastangų. 9 00:00:20,600 --> 00:00:23,600 Aš beveik nebuvo net padaryti jį iki laiko, bet tai buvo Gerai. 10 00:00:23,600 --> 00:00:27,520 Taigi aš žinau, kad jūs visi ką tik padarė jį viktorinoje. 11 00:00:27,520 --> 00:00:30,370 Pirmiausia, kviečiame atvirkštinė pusė, kad. 12 00:00:30,370 --> 00:00:32,917 >> Antra, mes kalbame apie tai. 13 00:00:32,917 --> 00:00:34,000 Mes kalbame apie viktorinoje. 14 00:00:34,000 --> 00:00:35,700 Mes kalbame apie tai, kaip darote klasėje. 15 00:00:35,700 --> 00:00:36,550 Jums bus gerai. 16 00:00:36,550 --> 00:00:39,080 Turiu savo viktorinos tu ne iš čia pabaigoje, 17 00:00:39,080 --> 00:00:42,120 Taigi, jei jūs vaikinai nori imtis a look į jį, visiškai gerai. 18 00:00:42,120 --> 00:00:46,590 >> Taigi greitai, kol mes pradėsime, The darbotvarkė šiandien yra taip. 19 00:00:46,590 --> 00:00:48,430 Kaip matote, mes iš esmės greitas šaudymo 20 00:00:48,430 --> 00:00:52,120 per visa krūva duomenų struktūrų tikrai, tikrai, tikrai greitai. 21 00:00:52,120 --> 00:00:54,380 Taigi, kaip, pavyzdžiui, ji negali būti Super interaktyvus šiandien. 22 00:00:54,380 --> 00:00:59,620 Tai bus tik man rūšies šaukė dalykų, kad jūs, ir jei aš supainioti jus, 23 00:00:59,620 --> 00:01:02,680 jei aš ruošiuosi per greitai, let me know. 24 00:01:02,680 --> 00:01:05,200 Jie tiesiog įvairius duomenis struktūros, ir kaip dalis 25 00:01:05,200 --> 00:01:07,070 Jūsų pset Dėl šios Artėjantis savaitę, jums 26 00:01:07,070 --> 00:01:10,340 būti paprašyta įgyvendinti vieną iš jų, gal du them-- du iš jų 27 00:01:10,340 --> 00:01:12,319 Jūsų pset. 28 00:01:12,319 --> 00:01:14,610 Gerai, kad aš tik ketina pradėti su kai kuriais pranešimų. 29 00:01:14,610 --> 00:01:19,070 Mes eiti per kaminus ir eilėse daugiau gylis, nei tai, ką mes padarėme prieš viktorina. 30 00:01:19,070 --> 00:01:20,990 Mes eiti per susijęs vėl, vėl sąrašą, 31 00:01:20,990 --> 00:01:23,899 išsamiau, nei ką mes turėjome prieš viktorina. 32 00:01:23,899 --> 00:01:26,440 Ir tada mes kalbame apie maišos stalai, medžiai ir nutraukė, kurie 33 00:01:26,440 --> 00:01:28,890 visi gana reikalinga jūsų pset. 34 00:01:28,890 --> 00:01:32,925 Ir tada mes eiti per kai naudingų patarimų, pset5. 35 00:01:32,925 --> 00:01:37,360 >> Gerai, kad viktorina 0. 36 00:01:37,360 --> 00:01:41,090 Vidutinis buvo 58%. 37 00:01:41,090 --> 00:01:45,370 Tai buvo labai mažas, todėl jūs vaikinai visi padarė labai, labai gerai laikantis 38 00:01:45,370 --> 00:01:46,510 su tuo. 39 00:01:46,510 --> 00:01:49,970 >> Gana daug, nykščio taisykle yra, jei esate per standartinio nuokrypio vidurkio 40 00:01:49,970 --> 00:01:52,990 juolab mes mažiau Nežiūriu skyriuje, jūs visiškai gerai. 41 00:01:52,990 --> 00:01:54,120 Jūs esate kelyje. 42 00:01:54,120 --> 00:01:55,190 Gyvenimas yra geras. 43 00:01:55,190 --> 00:01:58,952 >> Aš žinau, tai baisu pagalvoti, kad Gavau kaip 40% šį testą. 44 00:01:58,952 --> 00:02:00,160 Aš ruošiuosi tai nepavyks klasę. 45 00:02:00,160 --> 00:02:02,243 Aš jums pažadu, jūs ne vyksta žlugti klasę. 46 00:02:02,243 --> 00:02:03,680 Jūs esate visiškai gerai. 47 00:02:03,680 --> 00:02:06,850 >> Tiems iš jūsų, kurie gavo daugiau vidutinis, įspūdingas, įspūdingas, 48 00:02:06,850 --> 00:02:08,780 kaip rimtai gerai padaryta. 49 00:02:08,780 --> 00:02:09,689 Turiu juos su manimi. 50 00:02:09,689 --> 00:02:11,730 Jauskitės laisvai ateiti juos gauti ne iš dalies pabaigoje. 51 00:02:11,730 --> 00:02:14,520 Leiskite man žinoti, jei turite kokių nors klausimai, klausimai su jais. 52 00:02:14,520 --> 00:02:17,204 Jei mes pridėti savo rezultatą negerai, praneškite mums. 53 00:02:17,204 --> 00:02:21,240 >> Gerai, kad pset5, tai yra tikrai keistai savaitę Yale ta prasme 54 00:02:21,240 --> 00:02:24,240 kad mūsų pset yra dėl Trečiadienį vidurdienį, įskaitant 55 00:02:24,240 --> 00:02:27,317 vėlai dieną, todėl tai tikrai Teoriškai dėl antradienį vidurdienį. 56 00:02:27,317 --> 00:02:29,150 Turbūt niekas baigtas ne antradienį vidurdienį. 57 00:02:29,150 --> 00:02:30,830 Štai visiškai gerai. 58 00:02:30,830 --> 00:02:33,700 Mes ketiname turėti darbo valandas vakarą, taip pat pirmadienį vakare. 59 00:02:33,700 --> 00:02:36,810 Ir visi sekcijų šią savaitę faktiškai virto seminaruose, 60 00:02:36,810 --> 00:02:38,800 todėl nedvejodami pop bet skyrių, kurį norite, 61 00:02:38,800 --> 00:02:42,810 ir jie bus pobūdžio mini pset seminarai pagalba, kad. 62 00:02:42,810 --> 00:02:45,620 Taigi, kaip toks, tai yra vienintelis skyrių kur mes mokyti medžiagą. 63 00:02:45,620 --> 00:02:49,220 Visi kiti skyriai bus dėmesio tik pagalba už pset. 64 00:02:49,220 --> 00:02:50,146 Taip? 65 00:02:50,146 --> 00:02:52,000 >> Auditorija: Kur yra darbo valandos? 66 00:02:52,000 --> 00:02:56,120 >> ANDI Peng: Darbo valandos tonight-- oh, geras klausimas. 67 00:02:56,120 --> 00:03:00,580 Manau, biuro val vakarą yra žalsvai arba Commons. 68 00:03:00,580 --> 00:03:02,984 Jei patikrinti internete CS50 ir jūs einate į darbo valandomis, 69 00:03:02,984 --> 00:03:05,650 turėtų būti grafikas, jums pasakys, kur visi jie yra. 70 00:03:05,650 --> 00:03:07,954 >> Žinau vieną vakarą arba rytoj kryklė, 71 00:03:07,954 --> 00:03:10,120 ir manau, kad mes galime turėti commons už kitą naktį. 72 00:03:10,120 --> 00:03:11,020 Aš nesu tikras. 73 00:03:11,020 --> 00:03:11,700 Geras klausimas. 74 00:03:11,700 --> 00:03:14,430 Patikrinkite ant CS50. 75 00:03:14,430 --> 00:03:18,780 >> Cool, visus klausimus dėl tvarkaraštis pan tris dienas po to? 76 00:03:18,780 --> 00:03:21,690 Aš jums pažadu, vaikinai, kaip Dovydo sakė, tai yra ant kalvos viršūnės. 77 00:03:21,690 --> 00:03:23,050 Jūs vaikinai yra beveik ten. 78 00:03:23,050 --> 00:03:24,644 Tik trys dienos. Plačiau 79 00:03:24,644 --> 00:03:26,310 Gauk ten, ir tada mes visi ateis žemyn. 80 00:03:26,310 --> 00:03:28,114 Mes turime gražią CS-pertraukos. 81 00:03:28,114 --> 00:03:28,780 Sveiki sugrįžę. 82 00:03:28,780 --> 00:03:30,779 Mes pasinerti į interneto programavimas ir vystymas, 83 00:03:30,779 --> 00:03:35,150 dalykų, kurie yra labai įdomus palyginti kai kurie iš kitų psets. 84 00:03:35,150 --> 00:03:37,974 Ir tai bus chill ir mes turime daug įdomus. 85 00:03:37,974 --> 00:03:38,890 Mes turime daugiau saldainių. 86 00:03:38,890 --> 00:03:39,730 Atsiprašome už saldainiai. 87 00:03:39,730 --> 00:03:40,945 Aš pamiršau saldainiai. 88 00:03:40,945 --> 00:03:43,310 Tai buvo grubus rytą. 89 00:03:43,310 --> 00:03:46,340 Taigi jūs vaikinai yra beveik ten, ir aš tikrai didžiuojuosi jumis vaikinai. 90 00:03:46,340 --> 00:03:49,570 >> Gerai, kad kaminai. 91 00:03:49,570 --> 00:03:53,331 Kas patiko klausimą apie Jack ir jo drabužius viktorinoje? 92 00:03:53,331 --> 00:03:53,830 Niekas? 93 00:03:53,830 --> 00:03:56,500 Gerai, kad viskas gerai. 94 00:03:56,500 --> 00:04:00,200 >> Taigi, iš esmės, kaip jūs galite nuotrauka Jack šis vaikinas čia 95 00:04:00,200 --> 00:04:03,350 myli imtis drabužius iš kamino viršaus, 96 00:04:03,350 --> 00:04:05,750 ir jis pateikia jį atgal į po jis kamino daroma. 97 00:04:05,750 --> 00:04:07,600 Taigi, tokiu būdu, kad jis niekada Atrodo, kad būti gauti 98 00:04:07,600 --> 00:04:10,090 į apačioje sukrauti savo drabužių. 99 00:04:10,090 --> 00:04:12,600 Taigi tai rūšies aprašo pagrindinis duomenų struktūra 100 00:04:12,600 --> 00:04:16,610 kaip kamino yra įgyvendinamas. 101 00:04:16,610 --> 00:04:20,060 >> Iš esmės, galvoti apie sukrauti kaip bet objektų kamino 102 00:04:20,060 --> 00:04:24,900 kur įdėti daiktus į viršų, ir tada jūs pop juos iš viršaus. 103 00:04:24,900 --> 00:04:28,600 Taigi LIFO yra akronimas mums patinka į use-- Paskutinis in, first out. 104 00:04:28,600 --> 00:04:32,480 Ir taip tęsis ir į viršų kamino yra pirmoji, kuri išeina. 105 00:04:32,480 --> 00:04:34,260 Ir taip du terminai mes norėtume susieti 106 00:04:34,260 --> 00:04:36,190 su tuo vadinami stūmimo ir POP. 107 00:04:36,190 --> 00:04:39,790 Kai jūs stumti kažką prikabinama prie kamino, ir jūs pop jį atgal į viršų. 108 00:04:39,790 --> 00:04:43,422 >> Ir todėl aš manau, tai yra rūšies abstrakti sąvoka tiems iš jūsų, 109 00:04:43,422 --> 00:04:45,630 kurie nori pamatyti kaip Tikrasis įgyvendinant šią 110 00:04:45,630 --> 00:04:46,740 realiame pasaulyje. 111 00:04:46,740 --> 00:04:50,170 Kaip daugelis iš jūsų parašyta esė gal kaip valandą prieš tai buvo dėl, 112 00:04:50,170 --> 00:04:54,510 ir jūs netyčia ištrynėte didžiulis riekė tai, kaip netyčia? 113 00:04:54,510 --> 00:04:58,560 Ir kas tada kontrolė padaryti mes naudojame įdėti ją atgal? 114 00:04:58,560 --> 00:05:00,030 Valdymo-Z, Yeah? 115 00:05:00,030 --> 00:05:03,640 Valdymo-Z, todėl kartų suma kad kontrolės Z išgelbėjo mano gyvenimą, 116 00:05:03,640 --> 00:05:08,820 sutaupė mano asilas, kiekvieną kartą kad manimi įgyvendinama per kaminą. 117 00:05:08,820 --> 00:05:13,020 >> Iš esmės visa informacija tai savo "Word" dokumentą, 118 00:05:13,020 --> 00:05:15,080 ji pasireiškia stumiami ir popped ne valia. 119 00:05:15,080 --> 00:05:19,460 Ir taip iš esmės, kai jūs nieko trinti, pop jį atgal į viršų. 120 00:05:19,460 --> 00:05:22,820 Ir tada, jei jums reikia jį atgal, jūs stumti jį, o tai, ką Control-C nėra. 121 00:05:22,820 --> 00:05:26,770 Ir taip realiame pasaulyje funkcija kaip paprastas duomenų struktūros 122 00:05:26,770 --> 00:05:28,690 gali padėti su savo kasdieniame gyvenime. 123 00:05:28,690 --> 00:05:31,710 124 00:05:31,710 --> 00:05:40,150 >> Taigi konstrukto yra taip, kad mes iš tikrųjų sukurti kamino. 125 00:05:40,150 --> 00:05:44,720 Mes tipas apibrėžti konstrukto, tada mes vadiname tai kamino apačioje. 126 00:05:44,720 --> 00:05:47,440 Ir per kaminą, turime du parametrus 127 00:05:47,440 --> 00:05:51,580 kad mes galime iš esmės manipuliuoti, todėl mes turime char žvaigždučių stygos pajėgumus. 128 00:05:51,580 --> 00:05:55,150 >> Visi, kad ji tai daro yra sukurti masyvą 129 00:05:55,150 --> 00:05:58,835 , kad mes galime saugoti ką nori kurį mes galime nustatyti savo gebėjimus. 130 00:05:58,835 --> 00:06:01,990 Talpa yra tik max dydis Daiktai, kuriuos mes galime įdėti į šį masyvo. 131 00:06:01,990 --> 00:06:05,660 int dydis yra skaitiklis, kuris saugo kelio nuo to, kiek daiktų šiuo metu 132 00:06:05,660 --> 00:06:07,850 pluošte. 133 00:06:07,850 --> 00:06:11,860 Taigi, mes galime sekti, A, tiek kaip didelis faktinis kamino, 134 00:06:11,860 --> 00:06:14,850 ir, B, kaip daug, kad rietuvės mes užpildyta, nes mes nenorime 135 00:06:14,850 --> 00:06:18,800 perkrautas, ką mūsų pajėgumas yra. 136 00:06:18,800 --> 00:06:24,340 >> Taigi, pavyzdžiui, tai puikus Klausimas buvo jūsų viktorina. 137 00:06:24,340 --> 00:06:28,160 Iš esmės, kaip mes stumti ant rietuvės viršuje. 138 00:06:28,160 --> 00:06:28,830 Gana paprasta. 139 00:06:28,830 --> 00:06:30,621 Jei pažvelgti į tai, mes vaikščioti per tai. 140 00:06:30,621 --> 00:06:32,640 Jei [nesigirdi] size-- Atminkite, kad kai jūs 141 00:06:32,640 --> 00:06:35,300 norite naudotis bet parametras per struct, 142 00:06:35,300 --> 00:06:40,320 jūs darote, kad struct.parameter vardą. 143 00:06:40,320 --> 00:06:42,720 >> Šiuo atveju, s yra mūsų kamino pavadinimą. 144 00:06:42,720 --> 00:06:46,230 Mes norime patekti į dydį tai, kad mes padaryti s.size. 145 00:06:46,230 --> 00:06:50,280 Taigi, kaip ilgai, kaip dydis yra ne lygus talpos arba tol, kol 146 00:06:50,280 --> 00:06:52,940 kaip tai mažiau nei pajėgumų, arba būtų čia dirbti. 147 00:06:52,940 --> 00:06:57,180 >> Jūs norite prisijungti prie vidų Jūsų žetonų, todėl s.strings, 148 00:06:57,180 --> 00:07:00,790 ir jūs ketinate įdėti, kad naują numerį kad norite įterpti į ten. 149 00:07:00,790 --> 00:07:05,030 Leiskite tik pasakyti, mes norime įterpti int n ant kamino, 150 00:07:05,030 --> 00:07:08,905 mes galime padaryti s.strings, skliausteliuose, s.size lygus n. 151 00:07:08,905 --> 00:07:11,030 Kadangi dydis yra kur mes Šiuo metu yra pluošte 152 00:07:11,030 --> 00:07:14,590 jei mes ketiname stumti tai, mes tiesiog prieiti 153 00:07:14,590 --> 00:07:17,370 kur dydis yra, tuo Dabartinis pilnatvė kamino, 154 00:07:17,370 --> 00:07:21,729 ir mes stumti int n į jį. 155 00:07:21,729 --> 00:07:24,770 Ir tada mes norime įsitikinti, kad mes taip pat pokyčio dydį n, 156 00:07:24,770 --> 00:07:27,436 todėl mes galime sekti mes pridėjo papildomą dalyką į krūvą. 157 00:07:27,436 --> 00:07:29,660 Dabar mes turi didesnį dydį. 158 00:07:29,660 --> 00:07:33,196 Ar tai čia prasmės visi, kaip logiškai tai veikia? 159 00:07:33,196 --> 00:07:34,160 Tai buvo natūra greitai. 160 00:07:34,160 --> 00:07:39,535 161 00:07:39,535 --> 00:07:42,160 Auditorija: Ar jūs einate per kad s.stringss.strings [s.size] dar kartą? 162 00:07:42,160 --> 00:07:45,808 ANDI Peng: Žinoma, tai kas daro s.size metu duoti mums? 163 00:07:45,808 --> 00:07:47,440 Auditorija: Tai dabartinis dydis. 164 00:07:47,440 --> 00:07:50,890 ANDI Peng: Būtent, todėl Dabartinė puslapis, kad mūsų dydis yra ne, 165 00:07:50,890 --> 00:07:57,780 ir taip nori įdėti naują sveikasis skaičius kad mes norime įterpti į s.size. 166 00:07:57,780 --> 00:07:58,760 Ar tai prasminga? 167 00:07:58,760 --> 00:08:01,110 Kadangi s.strings, visi, kad yra yra masyvo vardas. 168 00:08:01,110 --> 00:08:03,510 Visa tai yra tai naudodamiesi masyvas per mūsų struct, 169 00:08:03,510 --> 00:08:06,030 ir todėl, jei norime vieta n į šio indekso, 170 00:08:06,030 --> 00:08:09,651 mes galime tik jį pasiekti naudojant skliausteliuose s.size. 171 00:08:09,651 --> 00:08:10,150 Saunus. 172 00:08:10,150 --> 00:08:13,580 173 00:08:13,580 --> 00:08:18,916 >> Visos teisės pop, aš Pseudocode jį už jus vaikinai, bet panašios koncepcijos. 174 00:08:18,916 --> 00:08:19,790 Ar tai prasminga? 175 00:08:19,790 --> 00:08:22,310 Jei dydis yra didesnis už nulį, tada jūs 176 00:08:22,310 --> 00:08:25,350 žinau, kad jūs norite imtis ko nors iš nes jei dydis yra ne 177 00:08:25,350 --> 00:08:27,620 didesnis nei nulis, tada jūs neturi nieko kamino. 178 00:08:27,620 --> 00:08:29,840 >> Taigi jūs tik norite vykdyti šis kodas, ji gali tik 179 00:08:29,840 --> 00:08:32,320 pop, jei yra kažkas, kad pop. 180 00:08:32,320 --> 00:08:35,830 Taigi, jei dydis yra didesnis nei 0, mes atėmus dydis. 181 00:08:35,830 --> 00:08:40,020 Mes Mažėja dydį ir tada grįžti kas yra viduje ji, nes 182 00:08:40,020 --> 00:08:42,710 Popping, mes norime prieigos kokia yra saugomi 183 00:08:42,710 --> 00:08:45,694 į kamino viršuje indekso. 184 00:08:45,694 --> 00:08:46,610 Viskas prasmės? 185 00:08:46,610 --> 00:08:49,693 Jei aš padariau jums vaikinai rašau tai iš, būtų vaikinai galės rašyti jį? 186 00:08:49,693 --> 00:08:52,029 187 00:08:52,029 --> 00:08:53,570 Gerai, vaikinai gali pažaisti su juo. 188 00:08:53,570 --> 00:08:55,252 Nesijaudinkite, jei jūs neturite jį gauti. 189 00:08:55,252 --> 00:08:57,460 Neturime laiko kodas jis iš šiandien, nes mes 190 00:08:57,460 --> 00:08:59,959 gavo iš šių struktūrų daug eiti per, bet iš esmės 191 00:08:59,959 --> 00:09:02,214 Pseudocode, labai, labai panašus į stumti. 192 00:09:02,214 --> 00:09:03,380 Tiesiog atlikite palei logika. 193 00:09:03,380 --> 00:09:06,092 Įsitikinkite, kad esate susipažinimo visi Savybės jūsų struct teisingai. 194 00:09:06,092 --> 00:09:06,574 Taip? 195 00:09:06,574 --> 00:09:09,282 >> Auditorija: Ar šie skaidres ir Visa tai, ką būtų iki šiandien ish? 196 00:09:09,282 --> 00:09:11,586 ANDI Peng: Visada, yep. 197 00:09:11,586 --> 00:09:13,710 Aš ruošiuosi pabandyti įdėti tai iki kaip valandą po. 198 00:09:13,710 --> 00:09:16,626 Aš atsiųsime Dovydą, Davidas bandys įdėti jį kaip po šios valandos. 199 00:09:16,626 --> 00:09:20,040 200 00:09:20,040 --> 00:09:25,470 >> Gerai, kad tada mes einame į tas kitas Lovely duomenų struktūra vadinama eilę. 201 00:09:25,470 --> 00:09:30,140 Kaip jus vaikinai galite pamatyti čia A eilėje, už tarp mūsų Didžiosios Britanijos, 202 00:09:30,140 --> 00:09:32,010 visa tai yra yra linija. 203 00:09:32,010 --> 00:09:34,680 Taigi, priešingai nei manote, kamino, 204 00:09:34,680 --> 00:09:37,750 eilėje yra būtent tai, ką logiškai manote, kad tai yra. 205 00:09:37,750 --> 00:09:41,914 Tai vyksta pagal FIFO taisyklių, kuris yra first in, first out. 206 00:09:41,914 --> 00:09:43,705 Jei esate pirmasis viena linija, esate 207 00:09:43,705 --> 00:09:46,230 pirmoji, kuri išeina iš linija. 208 00:09:46,230 --> 00:09:49,680 >> Taigi, ką mes norėtume tai vadiname yra dequeueing ir enqueueing. 209 00:09:49,680 --> 00:09:52,380 Jei mes norime pridėti kažką mūsų eilėje, mes į eilę. 210 00:09:52,380 --> 00:09:55,690 Jei norime dequeue, arba imtis kažkas toli, mes dequeue. 211 00:09:55,690 --> 00:10:03,350 >> Taigi pats jausmas, kad mes rūšies sukurti fiksuoto dydžio elementus, kad mes 212 00:10:03,350 --> 00:10:06,500 galima laikyti tam tikra dalykai, bet mes taip pat galime 213 00:10:06,500 --> 00:10:10,100 pakeisti, kur mes pateikimas parametrai viduje iš jų 214 00:10:10,100 --> 00:10:13,140 remiantis, kokio tipo funkcionalumas norime. 215 00:10:13,140 --> 00:10:16,700 Taigi kaminai, norėjome paskutinis viena, N, prie būti pirmasis iš. 216 00:10:16,700 --> 00:10:19,800 Eilė norime, kad pirmas dalykas į būti pirmas dalykas, iš. 217 00:10:19,800 --> 00:10:22,510 218 00:10:22,510 --> 00:10:26,710 >> Taigi struct tipo apibrėžti, kaip jūs galite pamatyti, 219 00:10:26,710 --> 00:10:29,470 tai šiek tiek skiriasi iš to, ką kamino buvo 220 00:10:29,470 --> 00:10:33,120 nes ne tik mes turime išlaikyti kelio, kur dydis šiuo metu yra 221 00:10:33,120 --> 00:10:37,420 mes taip pat norime sekti galvos taip pat, kur šiuo metu yra. 222 00:10:37,420 --> 00:10:39,580 Taigi, aš manau, kad tai lengviau jei aš padaryti tai padaryti. 223 00:10:39,580 --> 00:10:53,270 Taigi įsivaizduokime, mes turime eilę, taip tarkim galva yra čia. 224 00:10:53,270 --> 00:10:55,811 225 00:10:55,811 --> 00:10:58,310 Linijos vadovas, tegul tik pasakyti, kad tai šiuo metu, 226 00:10:58,310 --> 00:11:01,809 ir mes norime įterpti kažkas į eilę. 227 00:11:01,809 --> 00:11:04,350 Aš ruošiuosi skambinti dydį iš esmės yra tas pats, kaip uodega, 228 00:11:04,350 --> 00:11:06,314 iš kur Jūsų eilė pabaigos. 229 00:11:06,314 --> 00:11:07,730 Leiskite tik pasakyti dydis yra čia. 230 00:11:07,730 --> 00:11:14,380 231 00:11:14,380 --> 00:11:18,400 >> Taigi, kaip veikia vienas realiai įterpti kažką į eilę? 232 00:11:18,400 --> 00:11:21,000 233 00:11:21,000 --> 00:11:24,130 Kas puslapis norime vieta kur mes norime įterpti į. 234 00:11:24,130 --> 00:11:29,320 Jei tai yra jūsų pradžia eilėje, ir tai yra jo pabaigoje 235 00:11:29,320 --> 00:11:31,860 arba jo dydis, Kur mes norite pridėti kitą objektą? 236 00:11:31,860 --> 00:11:32,920 >> Auditorija: [nesigirdi] 237 00:11:32,920 --> 00:11:35,920 ANDI Peng: Būtent, jūs norite pridėti tai priklauso nuo tu parašyta ją. 238 00:11:35,920 --> 00:11:37,840 Bet tai yra tuščias, arba kad yra tuščias. 239 00:11:37,840 --> 00:11:42,630 Taigi jūs norite pridėti jį tikriausiai nes čia, jei dydis is-- 240 00:11:42,630 --> 00:11:50,540 jei jie visi yra pilnas, jūs norite įdėti į čia, tiesa? 241 00:11:50,540 --> 00:11:57,150 >> Ir taip, kad tai, o labai, labai paprastas, ne visai visada yra teisingas 242 00:11:57,150 --> 00:12:00,690 nes pagrindinis skirtumas tarp eilėje ir kamino 243 00:12:00,690 --> 00:12:04,350 yra tai, kad eilė gali iš tikrųjų bus manipuliuojama 244 00:12:04,350 --> 00:12:06,980 taip, kad galvos pokyčiai priklausomai nuo to, kur norite 245 00:12:06,980 --> 00:12:08,650 Jūsų lazda pradžia pradėti. 246 00:12:08,650 --> 00:12:11,900 Ir kaip rezultatas, savo uodegą taip pat ketina pakeisti. 247 00:12:11,900 --> 00:12:14,770 Ir taip pažvelgti šis kodas dabar. 248 00:12:14,770 --> 00:12:18,620 Kaip jus vaikinai taip pat buvo paprašyta rašyti ant viktorina, į eilę. 249 00:12:18,620 --> 00:12:22,580 Gal mes kalbame per kodėl atsakymas buvo, kas tai buvo. 250 00:12:22,580 --> 00:12:26,790 >> Aš negalėjau visai tinka šią eilutę į vieną, bet iš esmės tai kodo fragmentą 251 00:12:26,790 --> 00:12:29,030 turėtų būti vienoje eilutėje. 252 00:12:29,030 --> 00:12:30,140 Praleiskite kaip 30 sekundžių. 253 00:12:30,140 --> 00:12:33,000 Pažvelkite, ir pamatyti, kodėl tai yra būdas, kad ji yra. 254 00:12:33,000 --> 00:12:50,030 255 00:12:50,030 --> 00:12:55,420 >> Labai, labai panašus konstrukto, labai, labai panašios struktūros kaip ankstesnis 256 00:12:55,420 --> 00:12:58,090 kamino išskyrus galbūt viena eilutė kodo. 257 00:12:58,090 --> 00:13:01,190 Ir tai viena eilutė kodo nustato funkcionalumą. 258 00:13:01,190 --> 00:13:03,900 Ir tai tikrai atskiria eilėje iš kamino. 259 00:13:03,900 --> 00:13:18,510 260 00:13:18,510 --> 00:13:22,010 >> Kiekvienas nori imtis Pabandyti ne paaiškinti, kodėl jūs 261 00:13:22,010 --> 00:13:24,980 gavau šį sudėtingą dalyką čia? 262 00:13:24,980 --> 00:13:27,845 Matome grąžą mūsų nuostabus draugas modulis. 263 00:13:27,845 --> 00:13:31,020 Kaip jus vaikinai netrukus pripažinti programavimo, 264 00:13:31,020 --> 00:13:34,910 beveik bet kuriuo metu jums reikia ką nors wrap aplink nieko, 265 00:13:34,910 --> 00:13:36,850 modulis bus kaip tai padaryti. 266 00:13:36,850 --> 00:13:40,510 Taigi žinant, kad kas nors nori pabandyti paaiškinti, kad kodo eilutę? 267 00:13:40,510 --> 00:13:44,060 268 00:13:44,060 --> 00:13:47,507 Taip, visi atsakymai yra Priimamos ir sveikintinas. 269 00:13:47,507 --> 00:13:48,840 Auditorija: Ar tu kalbi su manimi? 270 00:13:48,840 --> 00:13:49,506 ANDI Peng: Taip. 271 00:13:49,506 --> 00:13:56,200 Auditorija: Oi, ne gaila. 272 00:13:56,200 --> 00:14:00,250 ANDI Peng: Gerai, kad tegul vaikščioti per šį kodą. 273 00:14:00,250 --> 00:14:03,642 Taigi, kai jūs bandote pridėti kažką ant eilėje, 274 00:14:03,642 --> 00:14:08,510 gražioje atveju, kad galva būna būti čia, tai labai lengva mums 275 00:14:08,510 --> 00:14:10,960 tiesiog eiti iki galo įterpti kažką, tiesa? 276 00:14:10,960 --> 00:14:14,690 Bet esmė eilėje yra kad galva iš tikrųjų gali dinamiškai 277 00:14:14,690 --> 00:14:17,280 keistis priklausomai nuo to, kur mes nori, kad mūsų q pradžia turi būti, 278 00:14:17,280 --> 00:14:19,880 ir kaip toks, uodegos taip pat ketina pakeisti. 279 00:14:19,880 --> 00:14:31,100 >> Ir taip įsivaizduoti, kad tai buvo ne eilėje, o tai buvo eilė. 280 00:14:31,100 --> 00:14:37,900 281 00:14:37,900 --> 00:14:39,330 Tarkime, kad galva yra čia. 282 00:14:39,330 --> 00:14:54,900 283 00:14:54,900 --> 00:14:56,980 Tarkime, mūsų eilė atrodė taip. 284 00:14:56,980 --> 00:15:00,190 Jei mes norėjome perkelti kur geležinkelio linijos pradžia yra, 285 00:15:00,190 --> 00:15:03,400 tarkim mes persikėlė galvą Tokiu būdu ir dydžiai čia. 286 00:15:03,400 --> 00:15:07,100 >> Dabar mes norime pridėti kažką Ši eilė, bet kaip jus vaikinai galite pamatyti, 287 00:15:07,100 --> 00:15:11,150 tai nėra taip paprasta, kaip tiesiog pridėti kas yra po dydžiu 288 00:15:11,150 --> 00:15:13,630 nes tada mes paleisti iš ribas mūsų faktinio masyvo. 289 00:15:13,630 --> 00:15:16,190 Kur mes norime tikrai pridėti yra čia. 290 00:15:16,190 --> 00:15:18,610 Štai iš eilės grožis yra tai, kad pas mus, vizualiai jis 291 00:15:18,610 --> 00:15:22,380 išvaizda linija eina kaip šis, bet kai saugomi duomenų struktūros, 292 00:15:22,380 --> 00:15:29,370 Jie suprato, kad, kaip pavyzdžiui, ciklą. 293 00:15:29,370 --> 00:15:32,360 Jis rūšies kimba į priekį, taip pat, 294 00:15:32,360 --> 00:15:34,780 kad linijos taip pat gali wrap aplink priklausomai kur jus 295 00:15:34,780 --> 00:15:36,279 nori pradžia linijoje būti. 296 00:15:36,279 --> 00:15:38,630 Ir todėl, jei mes pažvelgsime žiūrėti žemyn čia, tegul 297 00:15:38,630 --> 00:15:40,880 sakyti, kad mes norėjome sukurti funkcija vadinama Įtraukti į eilę. 298 00:15:40,880 --> 00:15:43,980 Mes norėjome pridėti int n į tą q. 299 00:15:43,980 --> 00:15:49,250 Jei q.size q-- mes vadiname mūsų duomenų structure-- jei mūsų queue.size nėra 300 00:15:49,250 --> 00:15:52,520 lygus pajėgumų arba jeigu tai mažiau nei pajėgumų, 301 00:15:52,520 --> 00:15:55,120 q.strings yra per mūsų q masyvo. 302 00:15:55,120 --> 00:15:58,380 Mes ketiname nustatyti kad lygus q.heads, 303 00:15:58,380 --> 00:16:02,730 kuris yra čia, plius q.size modulis pagal pajėgumą, kuris 304 00:16:02,730 --> 00:16:04,290 wrap mus atgal aplink čia. 305 00:16:04,290 --> 00:16:08,040 >> Taigi, šiame pavyzdyje indeksą galvos yra 1, tiesa? 306 00:16:08,040 --> 00:16:11,480 Dėl dydžio indeksas yra 0, 1, 2, 3, 4. 307 00:16:11,480 --> 00:16:19,500 Taigi, mes galime padaryti 1 + 4 modulis mūsų pajėgumo, kuris 5. 308 00:16:19,500 --> 00:16:20,920 Ką tai mums duoda? 309 00:16:20,920 --> 00:16:23,270 Kas yra rodiklis, išeina apie tai? 310 00:16:23,270 --> 00:16:24,080 >> AUDITORIJA: 0. 311 00:16:24,080 --> 00:16:27,870 >> ANDI Peng: 0, kuris atsitinka būti čia, 312 00:16:27,870 --> 00:16:30,640 ir todėl mes nori turėti įterpti į čia. 313 00:16:30,640 --> 00:16:34,730 Ir todėl ši lygtis čia natūra tiesiog veikia su bet kokiu skaičių 314 00:16:34,730 --> 00:16:36,750 priklausomai nuo to, kur jūsų galvos ir jūsų dydis yra. 315 00:16:36,750 --> 00:16:38,541 Jei žinote, ką tie viskas yra, jūs žinote, 316 00:16:38,541 --> 00:16:43,170 tiksliai ten, kur norite įterpti kas yra po jūsų eilėje. 317 00:16:43,170 --> 00:16:44,640 Ar tai prasminga visiems? 318 00:16:44,640 --> 00:16:48,560 >> Žinau rūšies smegenų kibinimas juolab, kad ši 319 00:16:48,560 --> 00:16:50,512 atėjo į jūsų viktorina padarinius. 320 00:16:50,512 --> 00:16:52,220 Bet tikiuosi visi Dabar galite suprasti, 321 00:16:52,220 --> 00:16:57,800 Kodėl šis sprendimas, arba tai funkcija yra taip, kad ji yra. 322 00:16:57,800 --> 00:16:59,840 Kiekvienas šiek tiek neaišku, kad? 323 00:16:59,840 --> 00:17:03,471 324 00:17:03,471 --> 00:17:03,970 GERAI. 325 00:17:03,970 --> 00:17:07,109 326 00:17:07,109 --> 00:17:09,970 >> Ir todėl dabar, jei jus norėjau dequeue, tai 327 00:17:09,970 --> 00:17:15,240 kur mūsų pagrindinė būtų perkelti nes jei mes dequeue, 328 00:17:15,240 --> 00:17:17,030 mes ne kilimo, kad q galą. 329 00:17:17,030 --> 00:17:19,130 Mes norime nusiimti galvos, ar ne? 330 00:17:19,130 --> 00:17:24,260 Taigi, kaip rezultatas, galvos ketina keisti, ir tai, kodėl, kai jūs į eilę, 331 00:17:24,260 --> 00:17:26,800 jūs turite sekti kur jūsų galvos ir jūsų dydis 332 00:17:26,800 --> 00:17:29,450 yra, kad būtų galima įterpti į reikiamą padėtį. 333 00:17:29,450 --> 00:17:32,740 >> Ir todėl, kai jūs dequeue, Aš taip pat Pseudocode jį. 334 00:17:32,740 --> 00:17:35,480 Nesivaržykite, jei norite bandyti kodavimo this out. 335 00:17:35,480 --> 00:17:36,980 Jūs norite perkelti galvą, tiesa? 336 00:17:36,980 --> 00:17:39,320 Jei aš norėjau dequeue, aš būtų perkelti per galvą. 337 00:17:39,320 --> 00:17:40,800 Tai būtų galva. 338 00:17:40,800 --> 00:17:45,617 >> Ir mūsų dabartinė dydis būtų atimti, nes mes nebe 339 00:17:45,617 --> 00:17:46,950 turime keturias masyvo elementų. 340 00:17:46,950 --> 00:17:51,370 Mes turime tik tris, o tada mes norime grįžti kokia buvo saugomi viduje 341 00:17:51,370 --> 00:17:56,260 galvos, nes mes norime imtis šio vertė, išeinanti taip, labai panašios į rietuvę. 342 00:17:56,260 --> 00:17:58,010 Tiesiog jūs vartojate iš kitoje vietoje, 343 00:17:58,010 --> 00:18:01,770 ir jūs turite perleisti savo žymeklį į kitą vietą, kaip rezultatas. 344 00:18:01,770 --> 00:18:03,890 Logiškai mąstant, kiekvienas laikytis? 345 00:18:03,890 --> 00:18:05,690 Didysis. 346 00:18:05,690 --> 00:18:10,156 >> Gerai, kad mes ketiname kalbėti truputį išsamiau apie susijusių sąrašus 347 00:18:10,156 --> 00:18:13,280 nes jie bus labai, labai vertinga Jums į šios savaitės kursas 348 00:18:13,280 --> 00:18:14,964 psets. 349 00:18:14,964 --> 00:18:17,130 Susiję sąrašus, kaip jūs vaikinai atsimenu, visi jie yra 350 00:18:17,130 --> 00:18:22,570 yra mazgai, kurie mazgai tikras vertės tiek vertės ir rodyklė 351 00:18:22,570 --> 00:18:26,290 kad yra sujungti kartu šių patarimų. 352 00:18:26,290 --> 00:18:29,880 Ir taip, kaip konstrukto mes sukuriame mazgas čia mes 353 00:18:29,880 --> 00:18:33,569 turi int n, kuris yra nepriklausomai Į parduotuvėje ar styginių n vertė 354 00:18:33,569 --> 00:18:35,610 ar kas norite ją vadina, char žvaigždutė n. 355 00:18:35,610 --> 00:18:41,482 Struct mazgas žvaigždė, kuri yra žymeklis kad jūs norite turėti kiekvienas mazgas, 356 00:18:41,482 --> 00:18:43,690 jūs ketinate turėti, kad rodyklė taškas į kitas. 357 00:18:43,690 --> 00:18:48,207 358 00:18:48,207 --> 00:18:50,040 Turėsite galvą Susietos sąrašą ŠTAI 359 00:18:50,040 --> 00:18:53,140 ketina atkreipti dėmesį į poilsio vertybės taip toliau ir taip toliau 360 00:18:53,140 --> 00:18:55,290 kol galiausiai pasieksite pabaigos. 361 00:18:55,290 --> 00:18:58,040 Ir tai paskutinis mazgas yra tik ketina neturi žymeklį. 362 00:18:58,040 --> 00:18:59,952 Ji ketina atkreipti dėmesį į niekinis, ir tai, kai 363 00:18:59,952 --> 00:19:01,910 Jūs žinote, jūs nukentėjo pabaiga susietą sąrašą 364 00:19:01,910 --> 00:19:04,076 yra, kai jūsų paskutinis žymeklis nerodo nieko. 365 00:19:04,076 --> 00:19:06,670 366 00:19:06,670 --> 00:19:10,990 >> Taigi mes ketiname eiti šiek tiek daugiau gylis apie tai, kaip vienas galbūt 367 00:19:10,990 --> 00:19:12,400 ieškoti susietą sąrašą. 368 00:19:12,400 --> 00:19:15,460 Prisiminti, kokie yra kai kurie iš trūkumus, susijusius sąrašus 369 00:19:15,460 --> 00:19:19,340 Eilėraščiai masyvą apie paieškas. 370 00:19:19,340 --> 00:19:22,565 Masyvas galite dvejetainis paieškos, bet kodėl tu negali padaryti, kad susietą sąrašą? 371 00:19:22,565 --> 00:19:26,834 372 00:19:26,834 --> 00:19:30,320 >> Auditorija: nes jie visi susiję, bet jūs neturite pakankamai žinoti, kur 373 00:19:30,320 --> 00:19:31,330 [Nesigirdi]. 374 00:19:31,330 --> 00:19:34,600 >> ANDI Peng: Taip, būtent todėl nepamirškite kad masyvo blizgesį 375 00:19:34,600 --> 00:19:37,190 buvo tai, kad mes turėjome laisvosios kreipties atmintį, kurioje 376 00:19:37,190 --> 00:19:41,580 jei aš norėjau iš indeksas vertę šešių, galėčiau tik pasakyti, šešių indeksas, 377 00:19:41,580 --> 00:19:42,407 duok man tą vertę. 378 00:19:42,407 --> 00:19:45,240 Ir tai todėl, kad matricos yra rūšiuojami į gretimos erdvės atminties 379 00:19:45,240 --> 00:19:48,020 vienoje vietoje, tuo tarpu rūšies susijusių sąrašus 380 00:19:48,020 --> 00:19:52,820 yra atsitiktinai trumpo visi aplink, ir vienintelis būdas galite rasti vieną 381 00:19:52,820 --> 00:19:56,890 yra per žymeklis, kad jums pasakys iš kur, kad kitą mazgas yra adresas. 382 00:19:56,890 --> 00:20:00,290 >> Ir taip, kaip rezultatas, yra vienintelis būdas ieškoti per susietą sąrašą 383 00:20:00,290 --> 00:20:01,560 yra tiesinė paieška. 384 00:20:01,560 --> 00:20:05,890 Kadangi aš ne tiksliai žinoti, kur 12-vertė susijusi sąraše, 385 00:20:05,890 --> 00:20:08,780 Turiu feed visumą tos susijęs sąrašo vieną 386 00:20:08,780 --> 00:20:12,450 pagal vieną iš pirmojo mazgo galvos, į antrąjį mazgas, į trečiąjį mazgas, 387 00:20:12,450 --> 00:20:17,690 visą kelią žemyn, kol aš pagaliau gauti kur, kad mazgas Aš ieškau yra. 388 00:20:17,690 --> 00:20:22,110 Ir taip ta prasme, paiešką nuo susietą sąrašą visada yra n. 389 00:20:22,110 --> 00:20:23,040 Jis visada n. 390 00:20:23,040 --> 00:20:25,690 Tai visada linijinį laiką. 391 00:20:25,690 --> 00:20:28,470 >> Ir taip kodo, kuria mes įgyvendinti tai, ir tai 392 00:20:28,470 --> 00:20:32,620 yra šiek tiek naujo jums vaikinai, nes jūs vaikinai tikrai ne kalbėjo apie ar kada nors 393 00:20:32,620 --> 00:20:35,000 matyti patarimų Kaip ieškoti patarimų, 394 00:20:35,000 --> 00:20:37,670 todėl mes vaikščioti per Tai labai, labai lėtai. 395 00:20:37,670 --> 00:20:40,200 Taigi bool paieška, tiesa, įsivaizduokime, mes norime 396 00:20:40,200 --> 00:20:42,820 sukurti funkcija vadinama Paieška kad grąžina true 397 00:20:42,820 --> 00:20:46,820 Jei radote vertę viduje susijusi sąrašą, ir jis grąžina false kitaip. 398 00:20:46,820 --> 00:20:50,030 Mazgas žvaigždė sąrašas Šiuo metu tik rodyklė 399 00:20:50,030 --> 00:20:52,960 į pirmą punktą savo susietą sąrašą. 400 00:20:52,960 --> 00:20:56,700 int n vertę, kad jūs ieškoti tame sąraše. 401 00:20:56,700 --> 00:20:58,770 >> Taigi mazgas žvaigždė žymeklis lygus sąrašą. 402 00:20:58,770 --> 00:21:00,970 Tai reiškia, kad mes kuriame ir sukurti rodyklę 403 00:21:00,970 --> 00:21:03,592 minėto pirmojo mazgo viduje sąrašo. 404 00:21:03,592 --> 00:21:04,300 Kiekvienas su manimi? 405 00:21:04,300 --> 00:21:06,530 Taigi, jei mes buvome eiti grįžti čia, aš norėčiau turėti 406 00:21:06,530 --> 00:21:13,850 inicializuoti rodyklę, kuri nukreipia į galva bet kokio, kad sąrašas yra. 407 00:21:13,850 --> 00:21:18,600 >> Ir tada, kai jūs gaunate žemyn čia o žymeklis nėra lygi nuliui, 408 00:21:18,600 --> 00:21:22,160 taip, kad yra kilpa, kurioje mes bus vėliau važiuojantiems 409 00:21:22,160 --> 00:21:25,940 mūsų sąrašą, nes tai, ką poilsio atsitinka, kai žymeklis yra lygus NULL? 410 00:21:25,940 --> 00:21:27,550 Mes žinome, kad have-- 411 00:21:27,550 --> 00:21:28,450 >> Auditorija: [nesigirdi] 412 00:21:28,450 --> 00:21:31,491 >> ANDI Peng: Būtent, todėl mes žinome, kad mes pasiekė sąrašo pabaigoje, tiesa? 413 00:21:31,491 --> 00:21:34,470 Jei grįžti čia kiekvienas mazgas turėtų būti nukreipta į kitą mazgas 414 00:21:34,470 --> 00:21:36,550 ir taip toliau ir taip toliau kol paspausite galiausiai 415 00:21:36,550 --> 00:21:41,589 Jūsų susietą sąrašą uodega, kuris turi žymeklį, kad tik 416 00:21:41,589 --> 00:21:43,130 nenurodo bet kur, išskyrus Nr. 417 00:21:43,130 --> 00:21:47,510 Ir taip jūs iš esmės žinoti, kad savo sąrašą dar iki 418 00:21:47,510 --> 00:21:50,900 kol žymiklis nėra lygi niekinis, nes kai jis lygus nuliui, 419 00:21:50,900 --> 00:21:53,310 jūs žinote, kad ten ne daugiau daiktų. 420 00:21:53,310 --> 00:21:56,930 >> Taip, kad yra kilpa, kurioje mes teks tikrąją paiešką. 421 00:21:56,930 --> 00:22:01,690 Ir jei pointer-- matote kad rodyklės funkciją ten natūra? 422 00:22:01,690 --> 00:22:06,930 Taigi, jei rodyklė kiekis n, jei rodyklė ne n lygus lygus n, 423 00:22:06,930 --> 00:22:09,180 taip, kad reiškia, kad jei rodyklė kad esate 424 00:22:09,180 --> 00:22:13,420 ieško, remiantis kiekviena pabaigoje mazgas yra faktiškai lygus vertės 425 00:22:13,420 --> 00:22:15,990 Jūs ieškote, tada norite grįžti tiesa. 426 00:22:15,990 --> 00:22:19,280 Taigi, iš esmės, jei esate ne mazgas, kad turi vertę, kad jūs ieškote, 427 00:22:19,280 --> 00:22:23,550 jūs žinote, kad jūs buvote sėkmingai ieškoti. 428 00:22:23,550 --> 00:22:27,150 >> Priešingu atveju, jūs norite nustatyti žymeklį į kitą mazgą. 429 00:22:27,150 --> 00:22:28,850 Tai, ką tai linija čia daro. 430 00:22:28,850 --> 00:22:31,750 Rodyklė lygus žymeklį šalia. 431 00:22:31,750 --> 00:22:33,360 Kiekvienas pamatyti, kaip, kad yra darbo? 432 00:22:33,360 --> 00:22:36,580 >> Ir iš esmės jūs ketinate tik feed sąrašo visumą, 433 00:22:36,580 --> 00:22:41,920 naujo žymeklį kiekvieną kartą, kol Jūs galų gale pateko į sąrašo pabaigą. 434 00:22:41,920 --> 00:22:45,030 Ir jūs žinote, kad yra ne daugiau mazgų ieškoti per, 435 00:22:45,030 --> 00:22:47,999 ir tada jūs galite grįžti klaidinga nes žinote, kad, oi, gerai, 436 00:22:47,999 --> 00:22:50,540 jei aš galėtų ieškoti per sąrašo visas. 437 00:22:50,540 --> 00:22:54,530 Jei šiame pavyzdyje, jei aš norėjau ieškoti 10 vertės, 438 00:22:54,530 --> 00:22:57,250 ir aš pradėti galvą ir Ieškoti visą kelią žemyn, 439 00:22:57,250 --> 00:23:00,550 ir aš galų gale tai, kuris rodyklė kad atkreipia dėmesį į NULL, 440 00:23:00,550 --> 00:23:04,415 Žinau, kad šūdas, spėju 10 nėra Šis sąrašas, nes aš negalėjau rasti. 441 00:23:04,415 --> 00:23:06,520 Ir aš ne iš sąrašo gale. 442 00:23:06,520 --> 00:23:11,040 Ir tokiu atveju žinote Aš ruošiuosi grįžti klaidinga. 443 00:23:11,040 --> 00:23:12,900 >> Leiskite, kad įsigerti truputį. 444 00:23:12,900 --> 00:23:17,350 Tai bus gana svarbi jūsų pset. 445 00:23:17,350 --> 00:23:21,140 Iš jo logika yra labai paprastas, galbūt sintaksiškai tik įgyvendinant ją. 446 00:23:21,140 --> 00:23:23,365 Vaikinai nori, kad Įsitikinkite, kad jūs suprantate. 447 00:23:23,365 --> 00:23:25,870 448 00:23:25,870 --> 00:23:27,650 Saunus. 449 00:23:27,650 --> 00:23:32,560 >> Gerai, taip, kaip mes būtume įterpiant mazgai, į dešinę, 450 00:23:32,560 --> 00:23:35,380 į sąrašą, nes prisiminti kas yra kas į naudą 451 00:23:35,380 --> 00:23:39,230 turėti susietą sąrašą palyginti in požiūriu saugojimo masyvo? 452 00:23:39,230 --> 00:23:41,110 >> Auditorija: Tai dinamiška, todėl lengviau to-- 453 00:23:41,110 --> 00:23:43,180 >> ANDI Peng: Būtent, todėl dinamiškas, kuris 454 00:23:43,180 --> 00:23:46,880 tai reiškia, kad ji gali išplėsti ir trauktis priklausomai nuo vartotojo poreikius. 455 00:23:46,880 --> 00:23:56,570 Ir taip, šia prasme, mes nereikia gaišti be reikalo atmintį, nes aš 456 00:23:56,570 --> 00:24:00,850 jei aš nežinau, kiek vertės noriu į parduotuvę, tai nėra prasmės man 457 00:24:00,850 --> 00:24:04,310 sukurti, nes masyvo jei aš noriu laikyti 10 vertybes 458 00:24:04,310 --> 00:24:08,380 ir aš sukurti 1000 masyvas, tai prarastą atmintį aikštelė, skirta. 459 00:24:08,380 --> 00:24:11,180 Štai kodėl mes norime naudoti susijęs sąrašas, kad būtų galima dinamiškai 460 00:24:11,180 --> 00:24:13,860 keisti arba trauktis mūsų dydį. 461 00:24:13,860 --> 00:24:17,040 >> Ir taip, kad daro įterpimo šiek tiek daugiau sudėtinga. 462 00:24:17,040 --> 00:24:20,810 Kadangi mes negalime atsitiktinai patekti elementai taip, kad būtume masyvo. 463 00:24:20,810 --> 00:24:24,270 Jei aš noriu įterpti elementą į septintą indeksą, 464 00:24:24,270 --> 00:24:26,930 Aš tiesiog negaliu įdėkite jį į septintą indeksą. 465 00:24:26,930 --> 00:24:30,020 Apie susietą sąrašą, jis neturi gana dirbti, taip pat lengvai, 466 00:24:30,020 --> 00:24:34,947 ir todėl, jei mes norėjome įterpti vienas čia susietą sąrašą 467 00:24:34,947 --> 00:24:36,280 vizualiai, tai labai lengva pamatyti. 468 00:24:36,280 --> 00:24:39,363 Mes tik norime įterpti jį tiesiai ten, į dešinę nuo sąrašo pradžioje, 469 00:24:39,363 --> 00:24:40,840 iš karto po galvos. 470 00:24:40,840 --> 00:24:44,579 >> Tačiau būdas, kuriuo mes turime perskirstyti Į patarimų yra šiek tiek spiralinius 471 00:24:44,579 --> 00:24:47,620 ar logiška, logiška, bet Jūs norite įsitikinti, kad jūs turite jį 472 00:24:47,620 --> 00:24:50,250 galo, nes paskutinis dalykas, kurį norite 473 00:24:50,250 --> 00:24:52,990 yra perleisti žymeklį būdas, kad mes darome čia. 474 00:24:52,990 --> 00:24:58,170 Jei jums dereference žymiklį nuo galvos iki 1, 475 00:24:58,170 --> 00:25:01,086 tada visi staiga Kitos susietą sąrašą 476 00:25:01,086 --> 00:25:04,680 prarandama, nes jūs neturite iš tikrųjų sukurta laikiną nieko. 477 00:25:04,680 --> 00:25:06,220 Štai atkreipė dėmesį į 2. 478 00:25:06,220 --> 00:25:10,080 Jei priskiriate, žymeklis, tada Kitos Jūsų sąraše yra visiškai prarasta. 479 00:25:10,080 --> 00:25:13,310 Taigi jūs norite būti labai, labai atsargūs, čia 480 00:25:13,310 --> 00:25:17,010 pirmiausia priskirti rodyklė nuo Whatever You 481 00:25:17,010 --> 00:25:20,150 norite įterpti į kur norite, ir tada jūs 482 00:25:20,150 --> 00:25:22,710 gali dereference jūsų sąrašo poilsio. 483 00:25:22,710 --> 00:25:25,250 >> Taigi, tai taikoma ir kur Jūs bandote įterpti į. 484 00:25:25,250 --> 00:25:27,520 Jei norite įterpti ne galvos, jei norite atsiliepti čia 485 00:25:27,520 --> 00:25:29,455 jei norite įterpti ne pabaiga, gerai, galų gale aš 486 00:25:29,455 --> 00:25:30,910 atspėti jums tiesiog neturi žymeklį, bet jūs 487 00:25:30,910 --> 00:25:33,830 norite įsitikinti, kad jūs neturite prarasti savo sąrašą pailsėti. 488 00:25:33,830 --> 00:25:36,640 Jūs visada norite įsitikinti, jūsų naujas mazgas yra nukreipta 489 00:25:36,640 --> 00:25:39,330 į ką norite įterpti į, 490 00:25:39,330 --> 00:25:42,170 ir tada jūs galite pridėti Grupavimo toliau. 491 00:25:42,170 --> 00:25:43,330 Kiekvienas aišku? 492 00:25:43,330 --> 00:25:45,427 >> Tai bus vienas iš realių problemų. 493 00:25:45,427 --> 00:25:48,010 Vienas iš labiausiai pagrindinių klausimų jūs ketinate turėti savo pset 494 00:25:48,010 --> 00:25:51,340 yra ta, kad jūs ketinate bandyti sukurti susijusiantrosios sąrašas ir įdėkite dalykai 495 00:25:51,340 --> 00:25:53,340 bet tada tiesiog prarasti Kitos susietą sąrašą. 496 00:25:53,340 --> 00:25:54,900 Ir jūs ketinate būti kaip aš nežinau, kodėl tai vyksta? 497 00:25:54,900 --> 00:25:58,040 Ir tai skausmas eiti per ir ieškoti visų jūsų patarimų. 498 00:25:58,040 --> 00:26:02,100 >> Ir aš jums garantuoti šioje pset, rašymo ir piešimo šiuos mazgus iš 499 00:26:02,100 --> 00:26:03,344 bus labai, labai naudinga. 500 00:26:03,344 --> 00:26:06,010 Taigi jūs galite visiškai sekti kur visi jūsų patarimų yra, 501 00:26:06,010 --> 00:26:08,540 kas vyksta neteisingai, kur visi jūsų mazgai, 502 00:26:08,540 --> 00:26:12,660 ką jums reikia padaryti, norint pasiekti ar įterpti ar ištrinti ar bet kurio iš jų. 503 00:26:12,660 --> 00:26:14,550 Kiekvienas geras su tuo? 504 00:26:14,550 --> 00:26:15,050 Saunus. 505 00:26:15,050 --> 00:26:19,300 506 00:26:19,300 --> 00:26:22,600 >> Taigi, jei mes norėjome pažvelgti į kodą? 507 00:26:22,600 --> 00:26:24,470 Oi, aš nežinau, jei mes galite pamatyti the-- Gerai, kad 508 00:26:24,470 --> 00:26:27,940 viršuje visa tai yra yra funkcija pavadintas įterpti kur mes norime 509 00:26:27,940 --> 00:26:31,365 įterpti int n į susietą sąrašą. 510 00:26:31,365 --> 00:26:32,740 Mes ketiname eiti per tai. 511 00:26:32,740 --> 00:26:34,770 Tai kodo daug, daug naujos sintaksės daug. 512 00:26:34,770 --> 00:26:36,220 Mes bus OK. 513 00:26:36,220 --> 00:26:39,120 >> Taigi iki viršuje, kai mes norime sukurti nieko 514 00:26:39,120 --> 00:26:42,380 Ką turime daryti, ypač jei noriu, kad ji negali būti laikomi ant kamino 515 00:26:42,380 --> 00:26:43,920 bet krūvos? 516 00:26:43,920 --> 00:26:45,460 Mes einame į malloc, tiesa? 517 00:26:45,460 --> 00:26:48,240 Taigi mes ketiname sukurti rodyklę. 518 00:26:48,240 --> 00:26:52,074 Mazgas, pointer, naujos nelygiaverčiai malloc apie mazgas dydį 519 00:26:52,074 --> 00:26:53,740 nes mes norime, kad mazgas turi būti sukurta. 520 00:26:53,740 --> 00:26:56,720 Mes norime, kad suma atminties, kad mazgas užima 521 00:26:56,720 --> 00:26:59,300 būti skiriamos už sukūrimas naujos mazge. 522 00:26:59,300 --> 00:27:02,270 >> Ir tada mes ketiname patikrinti pamatyti, jei naujos lygu lygu null. 523 00:27:02,270 --> 00:27:03,370 Prisiminkite, ką mes sakėme? 524 00:27:03,370 --> 00:27:06,470 Ką gi, jūs malloc, Ką reikia visada daryti? 525 00:27:06,470 --> 00:27:09,490 Jūs visada turi patikrinti, ar ne todėl, kad yra niekinis. 526 00:27:09,490 --> 00:27:13,620 >> Pavyzdžiui, jei jūsų operacinė sistema buvo visiškai pilnas, 527 00:27:13,620 --> 00:27:17,060 jei jums buvo ne daugiau atmintį visiems ir bandote malloc, 528 00:27:17,060 --> 00:27:18,410 jis sugrįš null už jus. 529 00:27:18,410 --> 00:27:21,094 Ir todėl, jei jūs bandote jį naudoti kai ji buvo nukreipta į NULL, 530 00:27:21,094 --> 00:27:23,260 esate nesiruošia galėtų prieiti prie šios informacijos. 531 00:27:23,260 --> 00:27:27,010 Ir taip, pavyzdžiui, mes norėjome padaryti Įsitikinkite, kad kiekvieną kartą, kai jūs mallocing, 532 00:27:27,010 --> 00:27:30,500 jūs visada patikrinti, pamatyti, jei kad atminties jums duota yra niekinis. 533 00:27:30,500 --> 00:27:33,670 Ir jei tai ne, tada mes galime judėti nuo su mūsų kodu poilsio. 534 00:27:33,670 --> 00:27:36,140 >> Taigi mes ketiname inicijuoti naują mazgas. 535 00:27:36,140 --> 00:27:39,050 Mes ketiname daryti naujus n lygus n. 536 00:27:39,050 --> 00:27:42,390 Ir tada mes ketiname daryti nustatyti naują dėl naujų žymiklį 537 00:27:42,390 --> 00:27:46,900 nulis, nes dabar mes ne nori nieko ji rodo. 538 00:27:46,900 --> 00:27:48,755 Mes neturime supratimo, kur jis ketina padėti jums, 539 00:27:48,755 --> 00:27:50,630 ir tada, jei norime įterpti jį į galvą, 540 00:27:50,630 --> 00:27:53,820 tada mes galime perleisti rodyklė į galvą. 541 00:27:53,820 --> 00:27:58,530 Ar visi vadovautis logika kur tas vyksta? 542 00:27:58,530 --> 00:28:02,502 >> Visi mes darome yra sukurti naujas mazgas, kuriame žymiklį NULL, 543 00:28:02,502 --> 00:28:04,210 ir tada perskirstymo tai į galvą, jei mes 544 00:28:04,210 --> 00:28:06,320 žinome, kad norite įterpti jį į galvą. 545 00:28:06,320 --> 00:28:09,420 Ir tada vadovas ketina nukreipta į tą naują mazgo. 546 00:28:09,420 --> 00:28:11,060 Kiekvienas Gerai su tuo? 547 00:28:11,060 --> 00:28:12,380 >> Taigi tai yra dviejų etapų procesas. 548 00:28:12,380 --> 00:28:14,760 Jūs turite pirmą Priskirti ką jūs kuriate. 549 00:28:14,760 --> 00:28:18,260 Nustatyti, kad rodyklę į nuoroda, ir tada jūs 550 00:28:18,260 --> 00:28:21,400 gali rūšies dereference pirmasis žymeklis 551 00:28:21,400 --> 00:28:22,972 ir nukreipti jį į naują mazgo. 552 00:28:22,972 --> 00:28:25,680 Kur norite įterpti jį, kad logika ketina laikyti tiesa. 553 00:28:25,680 --> 00:28:27,530 >> Tai lyg priskirdami laikini kintamųjų. 554 00:28:27,530 --> 00:28:28,700 Atminkite, kad jūs turite įsitikinkite, kad jums 555 00:28:28,700 --> 00:28:30,346 nereikia prarasti sekti, jei jūs Swapping. 556 00:28:30,346 --> 00:28:33,470 Jūs norite įsitikinti, kad jūs turite laikinas kintamasis, kad šios rūšies saugo 557 00:28:33,470 --> 00:28:35,620 stebėti, kur tą daiktą yra saugomi taip, kad jūs 558 00:28:35,620 --> 00:28:41,190 nereikia prarasti vertę kurso tiek kaip Messing aplink su juo. 559 00:28:41,190 --> 00:28:42,710 >> Gerai, kad kodas bus čia. 560 00:28:42,710 --> 00:28:45,020 Vaikinai pažvelgti po skirsnio. 561 00:28:45,020 --> 00:28:48,060 Jis bus ten. 562 00:28:48,060 --> 00:28:50,280 >> Taigi, manau, kaip veikia tai skiriasi, jei mes norėjome 563 00:28:50,280 --> 00:28:52,300 įterpti į vidurį ar gale? 564 00:28:52,300 --> 00:28:57,892 Ar kas nors turite ką tai idėja Pseudocode kaip logišką nuoroda 565 00:28:57,892 --> 00:29:00,350 kad mes imtis, jei mes norėjome įterpti jį per vidurį? 566 00:29:00,350 --> 00:29:03,391 Taigi, jei mes norėjome jį įterpti ne galvos, visi mes darome, yra sukurti naują mazgas. 567 00:29:03,391 --> 00:29:06,311 Mes nustatyti, kad žymiklis Naujas mazgas kokios galvos, 568 00:29:06,311 --> 00:29:08,310 ir tada mes nustatyti galvą į naują mazgo, tiesa? 569 00:29:08,310 --> 00:29:11,560 Jei mes norėjome įdėkite jį į vidurį sąrašo, kas mes turime daryti? 570 00:29:11,560 --> 00:29:14,108 571 00:29:14,108 --> 00:29:16,110 >> Auditorija: jis vis būti panašus procesas 572 00:29:16,110 --> 00:29:19,114 tiek kaip priskiriant žymeklį ir tada priskirti tą rodyklę, 573 00:29:19,114 --> 00:29:20,530 bet mes turėtume ten rasti. 574 00:29:20,530 --> 00:29:23,560 >> ANDI Peng: Būtent, todėl tiksliai tas pats procesas, išskyrus jus 575 00:29:23,560 --> 00:29:27,820 turi rasti, kur tiksliai jums norite, kad naujasis žymeklis eiti į, 576 00:29:27,820 --> 00:29:44,790 Taigi, jei aš noriu įterpti į iš viduriniosios susijęs list-- Gerai, 577 00:29:44,790 --> 00:29:46,370 tarkime, kad mūsų susijusi sąrašas. 578 00:29:46,370 --> 00:29:49,500 Jei norime įterpti jį čia, mes ketiname sukurti naują mazgas. 579 00:29:49,500 --> 00:29:50,520 Mes ketiname malloc. 580 00:29:50,520 --> 00:29:52,220 Mes ketiname sukurti naują mazgas. 581 00:29:52,220 --> 00:29:55,940 Mes ketiname priskirti rodyklė šio mazgo čia. 582 00:29:55,940 --> 00:29:58,335 >> Bet problema, kad skiriasi iš kur galva yra 583 00:29:58,335 --> 00:30:00,490 yra tai, kad mes tiksliai žinojo, kur galva. 584 00:30:00,490 --> 00:30:01,930 Jis buvo teisus ne pirmas, teisę? 585 00:30:01,930 --> 00:30:04,870 Bet čia mes turime sekti kur mes įdėti jį į. 586 00:30:04,870 --> 00:30:07,930 Jei mes įdėti mūsų mazgas čia mes turime 587 00:30:07,930 --> 00:30:12,270 įsitikinkite, kad vienas prieš šio mazgo 588 00:30:12,270 --> 00:30:14,172 yra vienas, kad reassigns žymeklį. 589 00:30:14,172 --> 00:30:16,380 Taigi jūs turite natūra sekti du dalykus. 590 00:30:16,380 --> 00:30:19,420 Jei jums sekti kai tai mazgas metu įterpiant į. 591 00:30:19,420 --> 00:30:23,280 Jūs taip pat turite sekti, kur ankstesnis mazgas, kad jūs ieškote 592 00:30:23,280 --> 00:30:24,340 Taip pat ten buvo. 593 00:30:24,340 --> 00:30:25,830 Kiekvienas geras su tuo? 594 00:30:25,830 --> 00:30:26,500 GERAI. 595 00:30:26,500 --> 00:30:28,000 >> Kaip apie įterpiant į pabaigos? 596 00:30:28,000 --> 00:30:34,220 Jei aš norėjau pridėti jį prie here-- jei aš norėjau pridėti naują mazgas prie sąrašo pabaigoje, 597 00:30:34,220 --> 00:30:37,009 kaip galėčiau eiti apie tai daro? 598 00:30:37,009 --> 00:30:39,300 Auditorija: Taigi Šiuo metu paskutinis s nurodė null. 599 00:30:39,300 --> 00:30:40,960 ANDI Peng: Taip. 600 00:30:40,960 --> 00:30:43,560 Būtent, todėl tai vienas Šiuo metu yra pažymėti žinoti, 601 00:30:43,560 --> 00:30:46,720 ir todėl spėju, šia prasme, tai labai lengvai pridėti prie sąrašo gale. 602 00:30:46,720 --> 00:30:51,810 Viskas, ką jums reikia padaryti, tai nustatyti, kad jis lygus nuliui, o tada boom. 603 00:30:51,810 --> 00:30:53,070 Teisė yra labai lengva. 604 00:30:53,070 --> 00:30:53,960 Labai paprasta. 605 00:30:53,960 --> 00:30:56,430 >> Labai panaši į galvą, bet logiškai jus 606 00:30:56,430 --> 00:30:59,690 norite įsitikinti, kad veiksmai Jums žengti daro bet tai, 607 00:30:59,690 --> 00:31:01,500 jūs taip kartu. 608 00:31:01,500 --> 00:31:04,420 Tai labai paprasta, per vidurį Jūsų kodas, gauti pasivijo, 609 00:31:04,420 --> 00:31:05,671 Oh, aš turiu tiek daug patarimų. 610 00:31:05,671 --> 00:31:07,461 Aš nežinau, kur nieko yra nukreipta į. 611 00:31:07,461 --> 00:31:09,170 Aš net nežinau, kuris mazgas aš ant. 612 00:31:09,170 --> 00:31:11,490 Kas vyksta? 613 00:31:11,490 --> 00:31:13,620 >> Atsipalaiduokite, nusiraminkite, giliai įkvėpk. 614 00:31:13,620 --> 00:31:15,530 Ištrauk savo susietą sąrašą. 615 00:31:15,530 --> 00:31:18,800 Jei sakai, kad aš žinau, kur tiksliai Man reikia įterpti į tai 616 00:31:18,800 --> 00:31:22,970 ir aš žinau tiksliai, kaip perleisti Mano patarimų, daug, daug lengviau įsivaizduoti 617 00:31:22,970 --> 00:31:27,200 out-- daug, daug lengviau ne pasiklysti savo kodą klaidų. 618 00:31:27,200 --> 00:31:29,410 Kiekvienas Gerai su tuo? 619 00:31:29,410 --> 00:31:31,380 GERAI. 620 00:31:31,380 --> 00:31:35,120 >> Taigi, manau, koncepciją, kad mes ne tikrai kalbėjo apie prieš dabar 621 00:31:35,120 --> 00:31:38,131 ir aš manau, jūs tikriausiai nebus susidurti daug yet-- 622 00:31:38,131 --> 00:31:40,880 tai tipo Išplėstinė concept-- yra tai, kad mes iš tikrųjų turime duomenis 623 00:31:40,880 --> 00:31:43,900 struktūra vadinama dvigubai susietą sąrašą. 624 00:31:43,900 --> 00:31:46,390 Taigi, kaip jūs vaikinai galite pamatyti, visi mes darome yra sukurti 625 00:31:46,390 --> 00:31:50,400 faktinę vertę, papildomai rodyklė ant kiekvieno iš mūsų mazgų 626 00:31:50,400 --> 00:31:52,660 kad taip pat pažymi į ankstesnį mazge. 627 00:31:52,660 --> 00:31:58,170 Taigi mes ne tik turime mazgai atkreipti dėmesį į kitą. 628 00:31:58,170 --> 00:32:01,430 Jie taip pat nurodo, kad praėjusiais. 629 00:32:01,430 --> 00:32:04,310 Aš ruošiuosi ignoruoti šias dvi dabar. 630 00:32:04,310 --> 00:32:06,740 >> Taigi jūs turite grandinę kad gali judėti į abi puses, 631 00:32:06,740 --> 00:32:09,630 ir tada jis šiek tiek lengviau logiškai sekti kartu. 632 00:32:09,630 --> 00:32:11,896 Kaip ir čia, vietoj to, nuolat stebėti, oi, aš 633 00:32:11,896 --> 00:32:14,520 turite žinoti, kad šis mazgas yra vienas, kad aš turiu perleisti, 634 00:32:14,520 --> 00:32:17,532 Galiu tiesiog eiti čia ir tiesiog traukti ankstesnis. 635 00:32:17,532 --> 00:32:19,490 Tada aš, kur tiksliai žinoti tai yra, ir tada jūs 636 00:32:19,490 --> 00:32:21,130 neturite feed visuma susietą sąrašą. 637 00:32:21,130 --> 00:32:22,180 Tai šiek tiek lengviau. 638 00:32:22,180 --> 00:32:24,960 >> Bet kaip, pavyzdžiui, jūs turite dvigubai iš rodyklės suma, 639 00:32:24,960 --> 00:32:26,960 tai dvigubas atminties kiekis. 640 00:32:26,960 --> 00:32:28,950 Tai iš rodyklės daug sekti. 641 00:32:28,950 --> 00:32:32,140 Tai šiek tiek daugiau sudėtinga, bet tai šiek tiek daugiau patogi priklausomai 642 00:32:32,140 --> 00:32:34,080 apie tai, ką jūs bandote pasiekti. 643 00:32:34,080 --> 00:32:36,910 >> Taigi, šis duomenų tipas struktūra visiškai nėra, 644 00:32:36,910 --> 00:32:40,280 ir už struktūra yra labai, labai paprasta, išskyrus viskas, ko jums iškilo yra 645 00:32:40,280 --> 00:32:43,850 o ne tik rodyklė į kitas, jūs taip pat turite žymiklį į Ankstesnis. 646 00:32:43,850 --> 00:32:45,940 Štai visas skirtumas buvo. 647 00:32:45,940 --> 00:32:47,740 Kiekvienas geras su tuo? 648 00:32:47,740 --> 00:32:48,240 Saunus. 649 00:32:48,240 --> 00:32:50,940 650 00:32:50,940 --> 00:32:53,280 >> Gerai, kad dabar aš tikrai praleisti tikriausiai 651 00:32:53,280 --> 00:32:56,870 kaip 15 iki 20 minučių arba urmu iš į skyrių likusį laiką 652 00:32:56,870 --> 00:32:58,360 kalbame apie maišos lentelėmis. 653 00:32:58,360 --> 00:33:02,590 Kaip daugelis iš jūsų vaikinai Perskaičiau pset5 spec? 654 00:33:02,590 --> 00:33:03,620 Gerai, gerai. 655 00:33:03,620 --> 00:33:06,160 Štai didesnis nei 50% įprastai. 656 00:33:06,160 --> 00:33:07,560 Viskas gerai. 657 00:33:07,560 --> 00:33:10,345 >> Taigi, kaip jūs vaikinai pamatys, esate iššūkis pset5 658 00:33:10,345 --> 00:33:16,790 bus įgyvendinti žodyną kur įdėti per 140.000 žodžių 659 00:33:16,790 --> 00:33:20,610 kad mes suteikiame Jums ir rašybos tikrinimas ji prieš visą tekstą. 660 00:33:20,610 --> 00:33:22,580 Mes jums atsitiktinai vienetų literatūroje. 661 00:33:22,580 --> 00:33:23,520 Mes jums Odisėjos. 662 00:33:23,520 --> 00:33:24,561 Mes jums Iliada. 663 00:33:24,561 --> 00:33:26,350 Mes jums Austin Powers. 664 00:33:26,350 --> 00:33:28,220 >> Ir jūsų uždavinys bus rašybos tikrinimas 665 00:33:28,220 --> 00:33:31,760 kiekvienas žodis visiems tų žodynų 666 00:33:31,760 --> 00:33:34,960 iš esmės mūsų rašybos tikrintuvą. 667 00:33:34,960 --> 00:33:38,620 Ir taip ten keletas dalys sukurti šį pset, 668 00:33:38,620 --> 00:33:41,970 Pirmasis norite būti galėtų iš tikrųjų įkelti 669 00:33:41,970 --> 00:33:43,970 Visi žodžiai į savo žodynas, Ir tada jūs 670 00:33:43,970 --> 00:33:45,530 nori, kad būtų galima patikrinti rašybą juos visus. 671 00:33:45,530 --> 00:33:48,780 Ir taip, pavyzdžiui, jūs ketinate reikia duomenų struktūra, kad galite tai padaryti greitai 672 00:33:48,780 --> 00:33:50,790 efektyviai ir dinamiškai. 673 00:33:50,790 --> 00:33:52,900 >> Taigi, aš manau, lengviausia būdas tai padaryti, jums 674 00:33:52,900 --> 00:33:55,010 tikriausiai sukurti masyvą, tiesa? 675 00:33:55,010 --> 00:33:58,910 Paprasčiausias būdas sandėliuoti jus gali sukurti 140.000 žodžių masyvas 676 00:33:58,910 --> 00:34:03,400 ir tiesiog įdėkite juos visus ten ir tada neigia juos dvejetainiu paieškos 677 00:34:03,400 --> 00:34:06,780 arba selekcijos ar not-- gaila, kad manimi rūšiavimas. 678 00:34:06,780 --> 00:34:10,729 Jūs galite rūšiuoti juos ir tada juos feed iki dvejetainis paieškos ar tiesiog tiesinės paieškos 679 00:34:10,729 --> 00:34:13,730 ir tik galutiniai žodžiai, bet užima didžiulis atminties, 680 00:34:13,730 --> 00:34:15,190 ir tai nėra labai veiksminga. 681 00:34:15,190 --> 00:34:18,350 >> Ir todėl mes ketiname pradėti kalbame apie būdų, kaip padaryti 682 00:34:18,350 --> 00:34:20,110 Mūsų važiavimo laikas efektyviau. 683 00:34:20,110 --> 00:34:23,190 Ir mūsų tikslas yra gauti pastovus laikas, kai 684 00:34:23,190 --> 00:34:25,810 Tai beveik kaip matricos, kurioje turite momentinį priėjimą. 685 00:34:25,810 --> 00:34:28,560 Jei aš norėjau ieškoti nieko, Noriu, kad būtų galima tiesiog, 686 00:34:28,560 --> 00:34:30,810 bumas, rasti būtent tai, ir jį ištraukti. 687 00:34:30,810 --> 00:34:34,100 Ir taip struktūra, kurioje mes būti tampa labai arti 688 00:34:34,100 --> 00:34:37,569 kad būtų galima naudotis konstanta laikas, tai Gralis 689 00:34:37,569 --> 00:34:41,370 programavimo pastovaus laikas vadinamas maišos lentelės. 690 00:34:41,370 --> 00:34:45,370 Ir Dovydas anksčiau minėta, [Nesigirdi] šiek tiek į paskaitą, 691 00:34:45,370 --> 00:34:49,100 bet mes ketiname tikrai Dive giliai šią savaitę 692 00:34:49,100 --> 00:34:51,780 ant gabalas, kad manimi dėl kaip maišos lentelės veikia. 693 00:34:51,780 --> 00:34:53,949 >> Taigi taip, kad maišos stalo darbai, pavyzdžiui, 694 00:34:53,949 --> 00:35:00,230 jei aš norėjau išsaugoti žodžių krūva A krūva žodžių anglų kalba, 695 00:35:00,230 --> 00:35:02,940 Aš teoriškai galėtų įdėti Bananų, obuolių, kivi, mango, pora, 696 00:35:02,940 --> 00:35:04,980 ir Kantalupa viskas tik masyvą. 697 00:35:04,980 --> 00:35:07,044 Jie visi galėtų tilpti ir būti rasti. 698 00:35:07,044 --> 00:35:09,210 Tai būčiau rūšies skausmas ieškoti ir prieigos, 699 00:35:09,210 --> 00:35:12,920 bet paprastesnis būdas tai padaryti yra , kad mes galime sukurti iš tikrųjų struktūra 700 00:35:12,920 --> 00:35:15,680 vadinamas maišos lentelės, kur mes maišos. 701 00:35:15,680 --> 00:35:19,880 Mes vykdome visus mūsų raktus per maišos funkcija, lygtis, 702 00:35:19,880 --> 00:35:22,600 kuri paverčia juos visus į kai kurių vertė Rūšiuoti 703 00:35:22,600 --> 00:35:28,740 kad tada mes galime laikyti ant esmės yra susijęs sąrašo masyvas. 704 00:35:28,740 --> 00:35:32,570 >> Ir todėl čia, jei mes norėjome saugoti angliškų žodžių, 705 00:35:32,570 --> 00:35:37,250 mes galime potencialiai tiesiog, aš ne žinau, pasukite visas pirmąsias vardo raides 706 00:35:37,250 --> 00:35:39,630 į kai skaičių rūšiuoti. 707 00:35:39,630 --> 00:35:43,140 Ir taip, pavyzdžiui, jei aš norėjau A būti tapatinama su apple-- 708 00:35:43,140 --> 00:35:47,460 arba kartu su nuo 0 indeksą, ir B sinonimas 1, 709 00:35:47,460 --> 00:35:51,030 mes galime turėti 26 įrašai kad gali tiesiog laikyti 710 00:35:51,030 --> 00:35:53,610 visi raidžių abėcėlė, kad mes pradėti. 711 00:35:53,610 --> 00:35:56,130 Ir tada mes galime turėti obuolių tuo 0 indekso. 712 00:35:56,130 --> 00:35:59,160 Mes galime turėti bananą į indekso 1, Kantalupa tuo indeksu 2, 713 00:35:59,160 --> 00:36:00,540 ir taip toliau ir taip toliau. 714 00:36:00,540 --> 00:36:04,460 Ir taip, jei aš norėjau ieškoti mano maišos lentelės ir prieigos obuolių, 715 00:36:04,460 --> 00:36:07,560 Aš žinau, obuolių prasideda A, ir aš žinau tiksliai 716 00:36:07,560 --> 00:36:10,860 kad ji turi būti ir maišos lentelė, nes Indeksas 0 717 00:36:10,860 --> 00:36:13,620 Šios funkcijos anksčiau paskirtas. 718 00:36:13,620 --> 00:36:16,572 >> Taigi, aš nežinau, mes esame vartotojo programa, kur 719 00:36:16,572 --> 00:36:18,780 jums bus pavesta arbitrarily-- ne savavališkai, 720 00:36:18,780 --> 00:36:22,530 su bando apgalvotai galvoti apie gerus lygtis 721 00:36:22,530 --> 00:36:25,460 kad būtų galima skleisti iš visų jūsų vertybes 722 00:36:25,460 --> 00:36:29,370 tokiu būdu, jie gali lengvai prieiti jis vėliau su kaip lygtį 723 00:36:29,370 --> 00:36:31,130 kad jūs, patys, žinoti. 724 00:36:31,130 --> 00:36:35,210 Taigi ta prasme, jei aš norėjau eiti į Mango, aš žinau, oi, ji pradeda su m. 725 00:36:35,210 --> 00:36:37,134 Jis turi būti bent 12 indekse. 726 00:36:37,134 --> 00:36:38,800 Aš neturiu ieškoti per nieko. 727 00:36:38,800 --> 00:36:42,080 Žinau exactly-- galėčiau tiesiog eikite į 12 ir indekso traukti, kad iš. 728 00:36:42,080 --> 00:36:45,520 >> Kiekvienas aišku, kaip maišos lentelės funkcija veikia? 729 00:36:45,520 --> 00:36:48,380 Tai tipo tik sudėtingesnio masyvo. 730 00:36:48,380 --> 00:36:50,010 Tai viskas yra. 731 00:36:50,010 --> 00:36:51,630 GERAI. 732 00:36:51,630 --> 00:36:57,690 >> Taigi, aš manau, kad mes paleisti į Šis klausimas, ką 733 00:36:57,690 --> 00:37:06,390 atsitiks, jei turite kelis dalykus kad turėtumėte patį indeksą? 734 00:37:06,390 --> 00:37:10,570 Taigi sako mūsų funkcija, visa tai darė, buvo imtis, kad pirmąją raidę 735 00:37:10,570 --> 00:37:14,490 ir pasukite, kad į "A Atitinkamas 0 per 25 indeksas. 736 00:37:14,490 --> 00:37:17,137 Štai visiškai gerai, jei turite tik vienas iš kiekvieno. 737 00:37:17,137 --> 00:37:18,970 Bet antra pradėdami turintys daugiau, jūs 738 00:37:18,970 --> 00:37:20,910 teks tai, kas vadinama susidūrimas. 739 00:37:20,910 --> 00:37:25,580 >> Taigi, jei aš pabandyti įterpti palaidoti į maišos stalo, kad jau turi bananą ant jo, 740 00:37:25,580 --> 00:37:27,870 kas nutiks, kai bandysite įrašyti, kad? 741 00:37:27,870 --> 00:37:30,930 Blogų dalykų, nes bananų jau per indeksą 742 00:37:30,930 --> 00:37:33,800 kad norite laikyti jį. 743 00:37:33,800 --> 00:37:35,560 Uogų rūšies yra tarsi Ak, ką aš galiu padaryti? 744 00:37:35,560 --> 00:37:37,080 Aš nežinau, kur eiti. 745 00:37:37,080 --> 00:37:38,410 Kaip man išspręsti šią problemą? 746 00:37:38,410 --> 00:37:41,150 >> Ir tokiu būdu jūs vaikinai rūšies matote, mes tai padaryti keblus dalykas 747 00:37:41,150 --> 00:37:44,810 kur mes galime rūšies tikrųjų sukurti susietą sąrašą mūsų matricos. 748 00:37:44,810 --> 00:37:46,840 Ir taip lengviausias būdas galvoti apie tai, 749 00:37:46,840 --> 00:37:50,830 visi maišos lentelės yra masyvas, susijusių sąrašus. 750 00:37:50,830 --> 00:37:55,670 Ir taip, ta prasme, jūs turite Šis gražus masyvas rodykles, 751 00:37:55,670 --> 00:37:58,740 ir tada kiekvienas žymeklis ši vertė, tuo indeksas, 752 00:37:58,740 --> 00:38:00,740 iš tikrųjų gali atkreipti į kitus dalykus. 753 00:38:00,740 --> 00:38:05,720 Ir todėl jūs turite visa tai atskiras grandinės atskilimas nuo vieno didelio masyvo. 754 00:38:05,720 --> 00:38:07,960 >> Ir todėl čia, jei aš norėjau įdėti uogų, 755 00:38:07,960 --> 00:38:11,220 Aš žinau, gerai, aš ruošiuosi įėjimo tai per mano maišos funkcija. 756 00:38:11,220 --> 00:38:15,070 Aš ruošiuosi baigti su indeksu 1, ir tada aš ruošiuosi būti suteikta galimybė 757 00:38:15,070 --> 00:38:20,410 tik mažesnis poaibis tai milžinišką 140.000 žodžių žodynas. 758 00:38:20,410 --> 00:38:24,220 Ir tada aš galiu tiesiog ieškoti per 1/26 to. 759 00:38:24,220 --> 00:38:27,910 >> Ir taip, tada aš galiu tiesiog įdėkite uogų prieš arba po bananų 760 00:38:27,910 --> 00:38:28,820 tokiu atveju? 761 00:38:28,820 --> 00:38:29,700 Po, tiesa? 762 00:38:29,700 --> 00:38:33,920 Ir taip, jūs ketinate norite įterpti šį mazgą po bananų, 763 00:38:33,920 --> 00:38:36,667 ir taip jūs ketinate įterpti po šios susietą sąrašo uodegos. 764 00:38:36,667 --> 00:38:38,500 Aš ruošiuosi grįžti šios ankstesnės skaidrės, 765 00:38:38,500 --> 00:38:40,680 taip vaikinai galite pamatyti, kaip maišos funkcija veikia. 766 00:38:40,680 --> 00:38:43,980 >> Taigi maišos funkcija Ši lygtis kad jūs dirbate rūšies jūsų indėlį 767 00:38:43,980 --> 00:38:46,940 per gauti bet puslapis norite priskirti jį į. 768 00:38:46,940 --> 00:38:51,130 Ir taip, šiame pavyzdyje, visi norėjome padaryti buvo žengti pirmą raidę, 769 00:38:51,130 --> 00:38:55,890 pasukti, kad į indeksą, tada mes galima laikyti, kad mūsų maišos funkcija. 770 00:38:55,890 --> 00:39:00,160 Visi mes darome čia mes konvertuoti pirmąją raidę. 771 00:39:00,160 --> 00:39:04,770 Taigi keykey [0] yra tik pirmoji raidė Bet kokios styginių mes turintys, 772 00:39:04,770 --> 00:39:05,720 mes einančios. 773 00:39:05,720 --> 00:39:09,740 Mes konvertuoti, kad į viršutinę ir mes atimant iki didžiosios A 774 00:39:09,740 --> 00:39:11,740 taigi visi tai daro suteikia mums numerį 775 00:39:11,740 --> 00:39:13,670 kurioje mes galime maišos mūsų vertybes ant. 776 00:39:13,670 --> 00:39:16,550 >> Ir tada mes ketiname grįžti maišos modulio dydį. 777 00:39:16,550 --> 00:39:19,340 Būkite labai, labai atsargūs, nes, teoriškai, čia 778 00:39:19,340 --> 00:39:21,870 Jūsų maišos vertė galėtų būti begalinis. 779 00:39:21,870 --> 00:39:23,660 Tai gali tik eiti ir apie ir apie. 780 00:39:23,660 --> 00:39:26,080 Tai gali būti tikrai, tikrai didelės vertės, 781 00:39:26,080 --> 00:39:29,849 bet todėl, kad jūsų maišos lentelė, kad jūs sukūrėte turi tik 26 indeksus, 782 00:39:29,849 --> 00:39:31,890 norite įsitikinti, kad jūsų modulusing, kad jūs 783 00:39:31,890 --> 00:39:33,848 nereikia run-- tai tas pats dalykas, kaip jūsų queue-- 784 00:39:33,848 --> 00:39:36,320 taip, kad jums nereikia paleisti išjungti apačioje savo maišos funkcija. 785 00:39:36,320 --> 00:39:39,210 >> Jūs norite, į kuriuos vyniojami aplink jį atgal vienodai [nesigirdi], kai 786 00:39:39,210 --> 00:39:41,750 jūs turėjote, kaip labai, labai didelis laiškas, jums 787 00:39:41,750 --> 00:39:43,740 nenorėjo, kad į tiesiog nubėgti į pabaigą. 788 00:39:43,740 --> 00:39:46,948 Tas pats čia, jūs norite įsitikinti, ji neturi nubėgti vyniojimo galą 789 00:39:46,948 --> 00:39:48,330 aplink lentelės viršuje. 790 00:39:48,330 --> 00:39:50,530 Taigi tai yra tik labai paprasta maišos funkcija. 791 00:39:50,530 --> 00:39:56,570 Visa tai darė, buvo priimti pirmieji laiškas kokios mūsų indėlis buvo 792 00:39:56,570 --> 00:40:01,660 ir pasukite, kad į indeksą, galėtume įdėti į mūsų maišos lentelė. 793 00:40:01,660 --> 00:40:05,450 >> Taip, ir taip kaip sakiau anksčiau, būdas, kad mes išspręsti susidūrimų 794 00:40:05,450 --> 00:40:09,330 Mūsų maišos lentelės turintys, ką mes vadiname, Grupavimo. 795 00:40:09,330 --> 00:40:13,860 Taigi, jei jūs bandote įrašyti kelių žodžiai, kurie prasideda su to paties dalyko, 796 00:40:13,860 --> 00:40:16,145 jūs ketinate turėti vieną maišos vertę. 797 00:40:16,145 --> 00:40:18,770 Avokadai ir "Apple", jei jūs paleisti jį per mūsų maišos funkcija, 798 00:40:18,770 --> 00:40:21,450 ketiname suteikti jums pats skaičius, 0, skaičius. 799 00:40:21,450 --> 00:40:24,550 Ir taip, kaip mes išspręsti tai yra kad mes galime realiai rūšies susieti juos 800 00:40:24,550 --> 00:40:27,010 kartu per susijusius sąrašus. 801 00:40:27,010 --> 00:40:29,600 >> Ir taip ta prasme, vaikinai galite pamatyti natūra 802 00:40:29,600 --> 00:40:32,640 kaip duomenų struktūros, kad mes jau kuriame anksčiau 803 00:40:32,640 --> 00:40:35,870 kaip razinų susijęs sąrašo rūšies iš gali ateiti kartu į vieną. 804 00:40:35,870 --> 00:40:38,860 Ir tada jūs galite sukurti gerokai efektyvesnius duomenų struktūros 805 00:40:38,860 --> 00:40:43,350 kuris gali apdoroti didesnes sumas duomenų, kad dinamiškai keisti priklausomai nuo 806 00:40:43,350 --> 00:40:44,870 nuo Jūsų poreikių. 807 00:40:44,870 --> 00:40:45,620 Kiekvienas aišku? 808 00:40:45,620 --> 00:40:47,580 Kiekvienas rūšies aišku apie tai, kas atsitinka čia? 809 00:40:47,580 --> 00:40:52,110 >> Jei aš norėjau insert-- Kas yra vaisius, prasideda, aš nežinau, 810 00:40:52,110 --> 00:40:54,726 B, išskyrus uogų, bananų. 811 00:40:54,726 --> 00:40:55,710 >> Auditorija: BlackBerry. 812 00:40:55,710 --> 00:40:57,910 >> ANDI Peng: BlackBerry, gervuogių. 813 00:40:57,910 --> 00:41:00,530 Kur gervuogių eiti čia? 814 00:41:00,530 --> 00:41:04,251 Na, mes iš tikrųjų nėra rūšiuojamos tai dar, bet teoriškai 815 00:41:04,251 --> 00:41:06,250 jei mes norėjome, kad tai būtų abėcėlės tvarka, 816 00:41:06,250 --> 00:41:07,944 kur turėtų BlackBerry eiti? 817 00:41:07,944 --> 00:41:09,210 >> Auditorija: [nesigirdi] 818 00:41:09,210 --> 00:41:11,100 >> ANDI Peng: Lygiai po čia, tiesa? 819 00:41:11,100 --> 00:41:14,950 Bet kadangi tai labai sunku reorder-- Aš manau, kad jis iki jums vaikinai. 820 00:41:14,950 --> 00:41:17,920 Vaikinai gali visiškai įgyvendinti viską, ką nori. 821 00:41:17,920 --> 00:41:20,730 Kuo daugiau efektyvus būdas tai padaryti, galbūt 822 00:41:20,730 --> 00:41:24,570 būtų rūšiuoti susijęs sąrašą į abėcėlę, 823 00:41:24,570 --> 00:41:26,520 ir todėl, kai jūs įterpiant dalykų, jūs norite 824 00:41:26,520 --> 00:41:28,632 būti tikri, kad įdėkite juos į Abėcėlės tvarka 825 00:41:28,632 --> 00:41:30,590 taip, kad tada, kai esate bando ieškoti jų, 826 00:41:30,590 --> 00:41:32,410 Jūs neturite neigia viską. 827 00:41:32,410 --> 00:41:35,290 Žinote, kur tiksliai ji yra, ir ji yra lengviau. 828 00:41:35,290 --> 00:41:39,100 >> Bet jei jūs rūšies turi viskas trumpo atsitiktinai, 829 00:41:39,100 --> 00:41:41,420 Jūs vis dar ketiname turėti feed anyways. 830 00:41:41,420 --> 00:41:44,990 Ir todėl, jei aš norėjau tik įdėkite BlackBerry čia 831 00:41:44,990 --> 00:41:47,470 ir aš norėjau ieškoti tai aš žinau, oi, gervuogių 832 00:41:47,470 --> 00:41:52,012 turi pradėti nuo 1 indeksą, todėl aš žinoti akimirksniu tiesiog ieškoti ne 1. 833 00:41:52,012 --> 00:41:53,970 Ir tada aš galiu rūšies feed susietą sąrašą 834 00:41:53,970 --> 00:41:56,120 kol aš gauti Blackberry, ir then-- Yeah? 835 00:41:56,120 --> 00:41:59,550 >> Auditorija: Jei jūs bandote create-- Manau, kaip tai yra labai paprastas maišos 836 00:41:59,550 --> 00:42:00,050 funkcija. 837 00:42:00,050 --> 00:42:02,835 Ir jei mes norėjome padaryti keli sluoksniai, kurie mėgsta, 838 00:42:02,835 --> 00:42:05,870 Gerai, kad mes norime atskirti į kaip ir visi abėcėlės raidėmis 839 00:42:05,870 --> 00:42:09,040 ir tada vėl norėčiau kitą rinkinį nuo abėcėlės raidėmis viduje, kad 840 00:42:09,040 --> 00:42:11,715 mes išleisti kaip maišos Lentelėje per maišos lentelė, 841 00:42:11,715 --> 00:42:13,256 arba kaip per funkcija funkcija? 842 00:42:13,256 --> 00:42:14,880 Arba that-- 843 00:42:14,880 --> 00:42:17,510 >> ANDI Peng: Taigi jūsų maišos function-- savo maišos lentelę 844 00:42:17,510 --> 00:42:19,360 gali būti toks didelis, kaip jūs norite, kad jis. 845 00:42:19,360 --> 00:42:21,930 Taigi šia prasme, aš maniau tai buvo labai lengva, labai 846 00:42:21,930 --> 00:42:25,320 paprastas man tiesiog tarsi remiantis ant raidės pirmojo žodžio. 847 00:42:25,320 --> 00:42:28,690 Ir taip yra tik 26 variantų. 848 00:42:28,690 --> 00:42:32,650 Aš galiu gauti tik 26 variantų iš Nuo 0 iki 25, nes jie gali tik 849 00:42:32,650 --> 00:42:36,510 pradėti nuo A iki Z. Bet jei jūs norėjo pridėti, ko gero, daugiau sudėtingumą 850 00:42:36,510 --> 00:42:39,260 arba greičiau paleisti laiko savo maišos lentelės, jums tikrai 851 00:42:39,260 --> 00:42:40,760 gali padaryti visų dalykų rūšių. 852 00:42:40,760 --> 00:42:43,330 Jūs galite padaryti savo lygtis, kuri suteikia jums 853 00:42:43,330 --> 00:42:48,000 daugiau platinimas jūsų žodžiai, tada, kai jums ieškoti, 854 00:42:48,000 --> 00:42:49,300 jis bus greitesnis. 855 00:42:49,300 --> 00:42:52,100 >> Tai visiškai iki jums vaikinai kaip norite įgyvendinti, kad. 856 00:42:52,100 --> 00:42:55,140 Pagalvokite apie tai, kaip tik kibirais. 857 00:42:55,140 --> 00:42:57,376 Jei aš norėjau turėti 26 kibirų, aš ruošiuosi 858 00:42:57,376 --> 00:42:59,420 rūšiuoti daiktus į šias kibirai. 859 00:42:59,420 --> 00:43:02,980 Bet aš ruošiuosi turėti krūva daiktų kiekviename segmente, 860 00:43:02,980 --> 00:43:05,890 Taigi, jei jūs norite, kad jis greičiau ir efektyviau, 861 00:43:05,890 --> 00:43:07,190 leiskite man turėti šimtus kibirų. 862 00:43:07,190 --> 00:43:09,290 >> Bet tada jūs turite išsiaiškinti būdas rūšiuoti dalykus taip, kad jie yra 863 00:43:09,290 --> 00:43:11,040 į tinkamą kibirą jie turėtų būti. 864 00:43:11,040 --> 00:43:13,331 Bet tada, kai jūs iš tikrųjų nori atrodyti tuo kaušu, 865 00:43:13,331 --> 00:43:16,410 tai daug greičiau, nes ten mažiau dalykų kiekviename segmente. 866 00:43:16,410 --> 00:43:20,250 Ir taip, taip, kad tikrai už jus vaikinai pset5 triukas 867 00:43:20,250 --> 00:43:22,360 yra ta, kad jūs būsite ginčijo tik sukurti 868 00:43:22,360 --> 00:43:26,170 kas yra efektyviausias funkcija jūs galite galvoti, kad būtų 869 00:43:26,170 --> 00:43:28,520 galima saugoti ir patikrinti šias vertybes. 870 00:43:28,520 --> 00:43:30,840 >> Visiškai priklauso nuo jūsų vaikinai tačiau norite tai padaryti, 871 00:43:30,840 --> 00:43:32,229 bet tai tikrai gera vieta. 872 00:43:32,229 --> 00:43:34,520 Kad logikos rūšies jūs norite pradėti galvoti apie 873 00:43:34,520 --> 00:43:37,236 yra gerai, kodėl ne aš padaryti daugiau kibirus. 874 00:43:37,236 --> 00:43:39,527 Ir tada aš turiu ieškoti mažiau dalykų, tada gal aš 875 00:43:39,527 --> 00:43:41,640 turi skirtingą maišos funkcijos. 876 00:43:41,640 --> 00:43:45,500 >> Taip, ten yra keletas būdų, kaip tai padaryti daug pset, kai yra greičiau nei kiti. 877 00:43:45,500 --> 00:43:50,630 Aš visiškai ketina tik pamatyti, kaip greitai buvo greičiausias vaikinai bus 878 00:43:50,630 --> 00:43:55,170 būti suteikta galimybė gauti jūsų funkcijos dirbti. 879 00:43:55,170 --> 00:43:58,176 Gerai, visi gerai Grupavimo ir maišos lentelės? 880 00:43:58,176 --> 00:44:00,800 Tai tikrai patinka labai paprastas koncepciją, jei jūs manote apie tai. 881 00:44:00,800 --> 00:44:05,160 Visa tai yra yra atskirti kokia Jūsų indėlis yra į kibirus, 882 00:44:05,160 --> 00:44:10,670 rūšiavimą, ir tada ieškoti sąrašus, kad ten susijęs su. 883 00:44:10,670 --> 00:44:11,852 >> Saunus. 884 00:44:11,852 --> 00:44:18,160 Gerai, dabar mes turime kitą rūšiuoti duomenų struktūrą, kuri vadinama medžio. 885 00:44:18,160 --> 00:44:20,850 Leiskite eiti ir kalbėti apie bandymų kurie yra aiškiai skirtingi, 886 00:44:20,850 --> 00:44:22,330 bet į tą pačią kategoriją. 887 00:44:22,330 --> 00:44:29,010 Iš esmės, visi medis yra vietoj organizuoti duomenis į linijiniu būdu 888 00:44:29,010 --> 00:44:32,560 kad maišos lentelės does-- jus žinote, tai atšoko viršaus ir iš apačios 889 00:44:32,560 --> 00:44:37,900 ir tada jūs rūšies susieti off it-- į medis turi aukščiausio kurį vadiname šaknį, 890 00:44:37,900 --> 00:44:40,220 ir tada jis turi lapus visi aplink jį. 891 00:44:40,220 --> 00:44:42,390 >> Ir taip visi jūs turite čia yra tik viršutinis mazgas 892 00:44:42,390 --> 00:44:45,980 kad atkreipia dėmesį į kitus mazgus, kad taškai į daugiau mazgų, ir taip toliau ir taip toliau. 893 00:44:45,980 --> 00:44:48,130 Ir todėl jūs tiesiog turite trupinimo filialai. 894 00:44:48,130 --> 00:44:53,255 Tai tiesiog skirtingi organizavimo būdas duomenys, ir dėl to mes tai medis skambinti, 895 00:44:53,255 --> 00:44:56,270 vaikinai just-- tai tik modeliuojama iš atrodyti medį. 896 00:44:56,270 --> 00:44:57,670 Štai kodėl mes jį vadiname medžiai. 897 00:44:57,670 --> 00:44:59,370 >> Maišos lentelė atrodo kaip stalo. 898 00:44:59,370 --> 00:45:01,310 Medis tik atrodo kaip medis. 899 00:45:01,310 --> 00:45:03,300 Visa tai yra, yra atskiras organizavimo būdas mazgai 900 00:45:03,300 --> 00:45:06,020 priklausomai nuo to, ką jūsų poreikius. 901 00:45:06,020 --> 00:45:11,810 >> Taigi jūs turite šaknis ir tada jūs turite lapus. 902 00:45:11,810 --> 00:45:15,380 Taip, kad mes galime ypač galvoti apie tai dvejetainis medis, 903 00:45:15,380 --> 00:45:18,150 dvejetainis medis yra tik konkrečios rūšies medį 904 00:45:18,150 --> 00:45:22,450 kur kiekvienas mazgas tik taškai kad, esant maks, kiti du mazgai. 905 00:45:22,450 --> 00:45:25,434 Ir todėl čia turite skiriasi simetrija savo medį 906 00:45:25,434 --> 00:45:28,600 kad lengviau rūšies atrodo ką vertina esate, nes tada jūs 907 00:45:28,600 --> 00:45:30,150 visada iš kairės arba į dešinę. 908 00:45:30,150 --> 00:45:33,150 Yra niekada tarsi kairėje trečdalį kairę arba iš kairės ketvirtas. 909 00:45:33,150 --> 00:45:36,358 Tai tiesiog turite kairę ir teisę ir jūs galite ieškoti vienoje iš šių dviejų. 910 00:45:36,358 --> 00:45:38,980 Ir taip, tai kodėl tai naudinga? 911 00:45:38,980 --> 00:45:40,980 Būdas, kad tai yra Naudinga yra, jei jūs ieškote 912 00:45:40,980 --> 00:45:42,890 ieškoti per vertybes, tiesa? 913 00:45:42,890 --> 00:45:45,640 Užuot įgyvendinant dvejetainis ieškoti klaidos masyvas, 914 00:45:45,640 --> 00:45:49,260 jei norite, kad būtų galima įterpti mazgai ir atimti mazgų valios ir 915 00:45:49,260 --> 00:45:52,185 išsaugoti paiešką pajėgumai dvejetainis paieškos. 916 00:45:52,185 --> 00:45:54,560 Taigi, tokiu būdu, mes rūšies tricking-- atsimenu, kai mes 917 00:45:54,560 --> 00:45:56,530 sakė, susijusios sąrašai negali dvejetainis paiešką? 918 00:45:56,530 --> 00:46:01,700 Mes rūšies sukurti duomenų struktūros kad gudrybės, kad į darbo. 919 00:46:01,700 --> 00:46:05,034 >> Ir todėl, susiję sąrašai yra linijinė, jie tik susieti vienas po kito. 920 00:46:05,034 --> 00:46:06,950 Mes galime rūšies turi skirtingo pobūdžio patarimų 921 00:46:06,950 --> 00:46:09,408 kad taškas skirtingų mazgų kuri gali padėti mums paiešką. 922 00:46:09,408 --> 00:46:12,590 Ir todėl čia, jei aš norėjau turi dvejetainį paieškos medį, 923 00:46:12,590 --> 00:46:14,090 Aš žinau, kad mano viduryje, jei 55. 924 00:46:14,090 --> 00:46:18,280 Aš tik ketina sukurti, kad kaip mano viduryje, kaip mano šaknis, 925 00:46:18,280 --> 00:46:20,770 ir tada aš ruošiuosi vertės nugara ne apie tai. 926 00:46:20,770 --> 00:46:25,610 >> Taigi čia, jei aš ruošiuosi ieškoti 66 vertė, galiu pradėti ne 55. 927 00:46:25,610 --> 00:46:27,310 Tai 66 daugiau nei 55? 928 00:46:27,310 --> 00:46:30,970 Taip, tai yra, kad aš žinau, aš Mus paiešką I n teisė žymeklis šio medžio. 929 00:46:30,970 --> 00:46:32,440 Aš einu į 77. 930 00:46:32,440 --> 00:46:35,367 Gerai, yra mažesnis nei 66 arba didesnis nei 77? 931 00:46:35,367 --> 00:46:37,950 Tai mažiau nei, kad jūs žinote,, OH, , kuri turi būti kairę mazgas. 932 00:46:37,950 --> 00:46:41,410 >> Ir todėl čia mes rūšies išsaugojimo visi iš didžiausių dalykų apie matricas, 933 00:46:41,410 --> 00:46:44,420 taip, kaip dinaminio dydžio keitimas Objektų, yra 934 00:46:44,420 --> 00:46:49,530 galėtų įterpti ir ištrinti savo valia, nereikia nerimauti fiksuoto 935 00:46:49,530 --> 00:46:50,370 suma erdvėje. 936 00:46:50,370 --> 00:46:52,820 Mes vis dar išsaugoti visus tie nuostabių dalykų 937 00:46:52,820 --> 00:46:57,140 o taip pat, kad galėtų išsaugoti prisijungti ir ieškoti laiką dvejetainiu paieškos 938 00:46:57,140 --> 00:47:00,450 kad mes buvome tik anksčiau suteikta galimybė gauti frazę. 939 00:47:00,450 --> 00:47:06,310 >> Nemokama duomenų struktūra, rūšies sudėtinga įgyvendinti, mazgas. 940 00:47:06,310 --> 00:47:08,311 Kaip matote, viskas, yra mazgas konstrukto 941 00:47:08,311 --> 00:47:10,143 yra tai, kad jūs turite kairę ir teisė žymeklis. 942 00:47:10,143 --> 00:47:11,044 Tai viskas yra. 943 00:47:11,044 --> 00:47:12,960 Taigi, o ne tik turintis x arba ankstesnis. 944 00:47:12,960 --> 00:47:15,920 Jūs turite kairę arba teisę, ir tada galite rūšies susieti juos kartu 945 00:47:15,920 --> 00:47:16,836 Tačiau to pageidautų. 946 00:47:16,836 --> 00:47:21,080 947 00:47:21,080 --> 00:47:24,270 >> Gerai, mes iš tikrųjų ketiname tiesiog užtrukti keletą minučių. 948 00:47:24,270 --> 00:47:25,790 Taigi mes ketiname grįžti čia. 949 00:47:25,790 --> 00:47:28,270 Kaip minėjau anksčiau, I rūšies paaiškino 950 00:47:28,270 --> 00:47:31,520 Už tai, kaip mes logika būtų ieškoti per tai. 951 00:47:31,520 --> 00:47:33,860 Mes ketiname pabandyti pseudocoding this out pamatyti 952 00:47:33,860 --> 00:47:38,000 jei mes galime rūšies taikomas Ta pati logika dvejetainio paieškos 953 00:47:38,000 --> 00:47:40,055 į kito tipo duomenų struktūra. 954 00:47:40,055 --> 00:47:45,049 Jei vaikinai nori imtis, kaip pora minučių tiesiog galvoti apie tai. 955 00:47:45,049 --> 00:48:45,927 956 00:48:45,927 --> 00:48:46,925 GERAI. 957 00:48:46,925 --> 00:48:51,407 Gerai, aš ruošiuosi iš tikrųjų tik suteiks jums the-- ne, 958 00:48:51,407 --> 00:48:52,990 mes pirmą kartą kalbėti apie Pseudocode. 959 00:48:52,990 --> 00:48:56,580 Taigi ar kas nors nori duoti Pabandyti ką 960 00:48:56,580 --> 00:49:02,100 pirmas dalykas, kurį norite padaryti, kai jūs pradedate paieška? 961 00:49:02,100 --> 00:49:04,460 Jei mes ieškome 66 vertė, kas 962 00:49:04,460 --> 00:49:07,940 pirmas dalykas, mes norime daryti, jei norime dvejetainis paieškos šį medį? 963 00:49:07,940 --> 00:49:10,760 >> Auditorija: Jūs norite atrodyti teisė ir surasti kairė ir pamatyti, [nesigirdi] 964 00:49:10,760 --> 00:49:11,230 didesnis skaičius. 965 00:49:11,230 --> 00:49:12,271 >> ANDI Peng: Taip, tiksliai. 966 00:49:12,271 --> 00:49:15,350 Taigi, jūs ketinate pažvelgti į savo šaknis. 967 00:49:15,350 --> 00:49:18,180 Yra daug būdų, galite skambinti tai, savo tėvų mazgas žmonės sako. 968 00:49:18,180 --> 00:49:21,317 Aš norėčiau pasakyti šaknis, nes tai kaip medžio šaknis. 969 00:49:21,317 --> 00:49:23,400 Jūs ketinate pažvelgti šakninis mazgas, ir jūs 970 00:49:23,400 --> 00:49:26,940 ketiname pamatyti yra 66 didesnis arba mažesnis kaip 55. 971 00:49:26,940 --> 00:49:30,360 Ir jei ji didesnė nei gerai, tai didesnė, jei norime atrodyti? 972 00:49:30,360 --> 00:49:32,000 Kur mes norime ieškoti dabar, tiesa? 973 00:49:32,000 --> 00:49:34,340 Mes norime atlikti paiešką teisė pusė šio medžio. 974 00:49:34,340 --> 00:49:38,390 >> Taigi, mes turime, patogiai A žymeklis, kad atkreipia į dešinę. 975 00:49:38,390 --> 00:49:44,325 Ir taip, tada mes galime nustatyti Mūsų naujas šaknis, kad būtų 77. 976 00:49:44,325 --> 00:49:46,450 Mes galime tiesiog eiti ten, kur rodyklė būtų nukreipta. 977 00:49:46,450 --> 00:49:49,100 Na, o čia mes pradedant ne 77, ir mes galime tik 978 00:49:49,100 --> 00:49:51,172 tai rekursyviai vėl ir vėl daryti. 979 00:49:51,172 --> 00:49:52,880 Tokiu būdu, jums natūra nuo turime funkciją. 980 00:49:52,880 --> 00:49:57,430 Jūs turite ieškoti, kad jums kelią gali tiesiog kartoti vėl ir vėl ir vėl, 981 00:49:57,430 --> 00:50:02,720 priklausomai nuo to, kur jūs norite atrodyti kol galiausiai patekti į vertės 982 00:50:02,720 --> 00:50:04,730 kad jūs ieškote. 983 00:50:04,730 --> 00:50:05,230 Logiška? 984 00:50:05,230 --> 00:50:07,800 >> Aš apie jums parodyti faktinis kodas, o tai kodo daug. 985 00:50:07,800 --> 00:50:08,674 Nereikia freak out. 986 00:50:08,674 --> 00:50:09,910 Mes kalbame per ją. 987 00:50:09,910 --> 00:50:13,410 988 00:50:13,410 --> 00:50:14,020 >> Tiesą sakant, ne. 989 00:50:14,020 --> 00:50:15,061 Tai buvo tiesiog Pseudocode. 990 00:50:15,061 --> 00:50:17,860 Gerai, kad buvo tik Pseudocode, kuris yra šiek tiek sudėtinga, 991 00:50:17,860 --> 00:50:19,751 bet tai visiškai gerai. 992 00:50:19,751 --> 00:50:21,000 Kiekvienas taip palei čia? 993 00:50:21,000 --> 00:50:24,260 Jei šaknis yra niekinis, grąžinimo klaidinga nes tai reiškia, 994 00:50:24,260 --> 00:50:26,850 Jums net nereikia nieko ten. 995 00:50:26,850 --> 00:50:31,376 >> Jei šaknis n yra vertė, todėl, jei jis atsitinka būti vienas jūs ieškote, 996 00:50:31,376 --> 00:50:34,000 tada jūs ketinate grįžti tiesa nes jūs žinote, jūs ją radau. 997 00:50:34,000 --> 00:50:36,250 Bet, jei reikšmė yra mažesnė nei šaknies n, jūs 998 00:50:36,250 --> 00:50:38,332 ketina ieškoti į kairę vaikas ar kairysis lapas, 999 00:50:38,332 --> 00:50:39,540 ką jūs norite jį pavadinti. 1000 00:50:39,540 --> 00:50:41,750 Ir jei reikšmė yra didesnė nei šaknies, jūs ketinate ieškoti tinkamą medį, 1001 00:50:41,750 --> 00:50:44,610 tada tiesiog paleisti funkciją per paiešką dar kartą. 1002 00:50:44,610 --> 00:50:48,037 >> Ir jei šaknys yra niekinis, kad reiškia, kad jūs pasiekėte galą? 1003 00:50:48,037 --> 00:50:50,120 Tai reiškia, kad turite ne Plačiau lapai ieškoti, 1004 00:50:50,120 --> 00:50:52,230 tuomet jūs žinote, oi, aš manau, kad jis ne čia 1005 00:50:52,230 --> 00:50:55,063 nes po Matydami per visa tai, ir tai ne čia 1006 00:50:55,063 --> 00:50:56,930 jis tiesiog gali būti ne čia. 1007 00:50:56,930 --> 00:50:58,350 >> Ar tai prasminga visiems? 1008 00:50:58,350 --> 00:51:03,230 Taigi, tai, kaip dvejetainiai paieškos išsaugodama aspektų, susijusių sąrašų galimybes. 1009 00:51:03,230 --> 00:51:09,200 Cool, ir todėl antrojo tipo Duomenų struktūros jums vaikinai 1010 00:51:09,200 --> 00:51:13,180 galite pabandyti įgyvendinti savo pset, jūs tik turite pasirinkti vieną metodą. 1011 00:51:13,180 --> 00:51:19,430 Bet galbūt alternatyvus būdas maišos lentelė yra tai, ką mes vadiname TRIE. 1012 00:51:19,430 --> 00:51:24,080 >> Visi A Trie yra yra konkrečios rūšies medžio, 1013 00:51:24,080 --> 00:51:28,600 turi vertybes, eiti į kitas vertybes. 1014 00:51:28,600 --> 00:51:31,450 Taigi vietoj to, dvejetainis medis ta prasme, kad tik vienas 1015 00:51:31,450 --> 00:51:35,940 dalykas gali nurodyti du, jūs galite turėti vienas dalykas taškas daugelį dalykų. 1016 00:51:35,940 --> 00:51:39,450 Jūs iš esmės turi masyvų kurio viduje galite laikyti 1017 00:51:39,450 --> 00:51:41,790 patarimų, kurie nurodo į kitas matricas. 1018 00:51:41,790 --> 00:51:45,210 1019 00:51:45,210 --> 00:51:49,460 >> Taigi, kaip mes mazgas būtų apibrėžti TRIE 1020 00:51:49,460 --> 00:51:52,590 yra mes norime turėti Būlio c žodis, tiesa? 1021 00:51:52,590 --> 00:51:54,920 Taigi mazgas yra Būlio kaip true arba false, 1022 00:51:54,920 --> 00:51:58,490 visų pirma, esant galvos kad masyvas, tai žodis? 1023 00:51:58,490 --> 00:52:03,620 Antra, jūs norite turėti rodykles kad nepriklausomai nuo jų poilsio yra. 1024 00:52:03,620 --> 00:52:07,470 Šiek tiek sudėtinga, šiek tiek abstraktus, bet Aš paaiškinti, kas tai visais būdais. 1025 00:52:07,470 --> 00:52:13,800 >> Taigi čia, viršuje, jei tau turi masyvas jau paskelbė, 1026 00:52:13,800 --> 00:52:17,040 mazgas, kuriame jūs turite Būlio saugoma vertė priekyje 1027 00:52:17,040 --> 00:52:19,490 kad jums pasakys, tai žodis? 1028 00:52:19,490 --> 00:52:20,520 Ar tai ne žodis? 1029 00:52:20,520 --> 00:52:23,240 Ir tada jūs turite poilsio savo matrica, 1030 00:52:23,240 --> 00:52:26,040 iš tikrųjų saugo visus galimybės, kas tai galėtų būti. 1031 00:52:26,040 --> 00:52:28,660 Taigi, pavyzdžiui, kaip ir viršuje turite 1032 00:52:28,660 --> 00:52:32,140 pirmas dalykas, kad sako tiesa ar klaidinga, taip arba ne, tai yra žodis. 1033 00:52:32,140 --> 00:52:38,130 >> Ir tada jūs turite 0 per 26 raidės, kad galite parduotuvėje. 1034 00:52:38,130 --> 00:52:42,790 Jei aš norėjau ieškoti čia GPGB, aš einu į viršų 1035 00:52:42,790 --> 00:52:49,200 ir aš surasti B. Manau, B ir mano masyvas, ir todėl žinau, gerai, yra B žodis? 1036 00:52:49,200 --> 00:52:53,010 B nėra žodis, todėl tokiu būdu Turiu nuolat ieško. 1037 00:52:53,010 --> 00:52:56,410 Aš einu iš B ir žiūriu į žymeklis, kad B atkreipia į 1038 00:52:56,410 --> 00:53:00,900 ir matau kitą informaciją masyvą, Ta pati struktūra, kad mes turėjome anksčiau. 1039 00:53:00,900 --> 00:53:05,240 >> Ir here-- oh, kitą laiškas [nesigirdi] yra A. 1040 00:53:05,240 --> 00:53:07,210 Taigi, mes pažvelgti į tą masyvą. 1041 00:53:07,210 --> 00:53:10,860 Mes rasti aštuntą vertę, ir tada mes pažiūrėkite, OH, 1042 00:53:10,860 --> 00:53:12,840 ei, yra tai, kad Žodžiu, yra B-A žodis? 1043 00:53:12,840 --> 00:53:13,807 Tai ne žodis. 1044 00:53:13,807 --> 00:53:14,890 Mes turime nuolat ieško. 1045 00:53:14,890 --> 00:53:17,850 >> Ir taip, tada mes žiūrime, kur ā kiekis žymeklis, 1046 00:53:17,850 --> 00:53:21,130 ir ji pažymi, kad kitas būdas, kuri mes turime daugiau vertės saugomi. 1047 00:53:21,130 --> 00:53:24,150 Ir, galų gale, mes turime B-A, T-, kuris yra žodis. 1048 00:53:24,150 --> 00:53:25,970 Ir todėl kitą kartą jums atrodo, kad jūs ketinate 1049 00:53:25,970 --> 00:53:30,850 turėti tą, taip čekį, tai Bulio funkcija yra tiesa. 1050 00:53:30,850 --> 00:53:35,450 Ir taip ta prasme mes natūra turėti medį su matricos. 1051 00:53:35,450 --> 00:53:39,890 >> Taigi galite rūšies ieškoti žemyn. 1052 00:53:39,890 --> 00:53:43,650 Užuot maišos funkciją ir priskirdami reikšmes susietą sąrašą 1053 00:53:43,650 --> 00:53:49,190 galite tiesiog įdiegti Trie, kuris ieško downwords. 1054 00:53:49,190 --> 00:53:50,850 Tikrai, tikrai sudėtinga stuff. 1055 00:53:50,850 --> 00:53:54,060 Ne lengva galvoti apie, nes aš, kaip spjaudytis tiek daug duomenų struktūras iš 1056 00:53:54,060 --> 00:53:58,710 ne jums, bet ar visi rūšies suprasti kaip veikia ši logika? 1057 00:53:58,710 --> 00:54:01,920 >> Gerai. 1058 00:54:01,920 --> 00:54:05,600 Taigi, B-A, T-, ir tada jūs ketinate ieškoti. 1059 00:54:05,600 --> 00:54:07,940 Kitą kartą jūs ketinate pamatyti, oi, ei, tai tiesa, 1060 00:54:07,940 --> 00:54:09,273 Taigi aš žinau, tai turi būti žodis. 1061 00:54:09,273 --> 00:54:12,030 1062 00:54:12,030 --> 00:54:13,770 >> Tas pats dalykas zoologijos sode. 1063 00:54:13,770 --> 00:54:17,960 Taigi čia dalykas dabar, jei mes norėjau ieškoti zoologijos sode, dabar, 1064 00:54:17,960 --> 00:54:20,780 Šiuo metu zoologijos sode nėra Žodis mūsų žodyno 1065 00:54:20,780 --> 00:54:25,300 nes, kaip jūs vaikinai gali matote, Pirmoji vieta, kad mes turime Būlio 1066 00:54:25,300 --> 00:54:28,590 grįžti teisinga yra ne iš mastelio pabaigoje. 1067 00:54:28,590 --> 00:54:30,430 Mes turime Z-O-O-M. 1068 00:54:30,430 --> 00:54:33,900 >> Ir todėl čia mes ne iš tikrųjų turėti žodis, zoologijos sodas, mūsų žodyno 1069 00:54:33,900 --> 00:54:36,070 nes tai langelis nepažymėtas. 1070 00:54:36,070 --> 00:54:39,540 Taigi kompiuteris nėra žinau, kad zoologijos sodas yra žodis 1071 00:54:39,540 --> 00:54:42,430 nes taip, kad mes saugomi ją, tik priartinimas čia 1072 00:54:42,430 --> 00:54:44,920 iš tikrųjų yra Būlio vertė kad buvo įjungtas tiesa. 1073 00:54:44,920 --> 00:54:49,380 Taigi, jei norime įterpti Žodis, zoologijos sodas, į mūsų žodyną, 1074 00:54:49,380 --> 00:54:51,770 kaip mes turime eiti apie tai daro? 1075 00:54:51,770 --> 00:54:55,960 Ką mes turime daryti, kad mūsų kompiuteris žino, kad Z-O-O yra žodis 1076 00:54:55,960 --> 00:54:58,130 ir ne pirmas žodis yra Z-O-O-M? 1077 00:54:58,130 --> 00:54:59,360 >> Auditorija: [nesigirdi] 1078 00:54:59,360 --> 00:55:01,450 >> ANDI Peng: Būtent, mes norite įsitikinti, kad ši 1079 00:55:01,450 --> 00:55:07,890 čia, kad Būlio vertė yra patikrinti išjungti, kad tai tiesa. 1080 00:55:07,890 --> 00:55:13,297 Z-O-O tada mes ketiname patikrinti, kad todėl mes žinome tiksliai, ei, zoologijos sodas yra žodis. 1081 00:55:13,297 --> 00:55:15,380 Aš ruošiuosi papasakoti kompiuteris, tai žodis, todėl 1082 00:55:15,380 --> 00:55:18,000 kad kai kompiuterinius patikrinimus, jis žino, kad zoologijos sodas yra žodis. 1083 00:55:18,000 --> 00:55:21,269 >> Kadangi prisiminti visus šiuos duomenis struktūros, tai labai lengva mums 1084 00:55:21,269 --> 00:55:22,310 pasakyti, oi, GPGB yra žodis. 1085 00:55:22,310 --> 00:55:22,851 Golfas yra žodis. 1086 00:55:22,851 --> 00:55:23,611 Zoom žodis. 1087 00:55:23,611 --> 00:55:25,860 Bet kai jūs ją kuriant, kompiuteris neturi jokios idėjos. 1088 00:55:25,860 --> 00:55:28,619 >> Taigi jūs turite pasakyti, tiksliai momentas, kada tai žodis? 1089 00:55:28,619 --> 00:55:29,910 Tuo, ką taškas yra tai nė žodžio? 1090 00:55:29,910 --> 00:55:31,784 Ir ką daryti, I vieta reikia ieškoti dalykų, 1091 00:55:31,784 --> 00:55:34,000 ir kokia vieta man reikia eiti toliau? 1092 00:55:34,000 --> 00:55:37,010 Kiekvienas aišku, kad? 1093 00:55:37,010 --> 00:55:39,540 Saunus. 1094 00:55:39,540 --> 00:55:42,530 >> Ir taip, tada ateina problema Kaip mes 1095 00:55:42,530 --> 00:55:45,560 eiti apie įterpiant kažką kad tikrai ne ten? 1096 00:55:45,560 --> 00:55:49,090 Taigi tegul tiesiog pasakyti, kad mes norite įterpti žodis, vonia, į mūsų TRIE. 1097 00:55:49,090 --> 00:55:53,589 Kaip jus vaikinai galite pamatyti, kaip šiuo metu visi mes turime dabar yra B-A-T, 1098 00:55:53,589 --> 00:55:55,630 ir ši nauja duomenų struktūra ten turėjo pintos, kad 1099 00:55:55,630 --> 00:55:59,740 atkreipė dėmesį į null nes mes manome, kad, oi, ten ne po žodžių B-A-T, 1100 00:55:59,740 --> 00:56:02,530 kodėl mes turime išlaikyti turintys dalykų po to T. 1101 00:56:02,530 --> 00:56:06,581 >> Bet problema kyla, jei mes darome Jums norite turėti žodį, kuris ateina po 1102 00:56:06,581 --> 00:56:07,080 T-aisiais. 1103 00:56:07,080 --> 00:56:09,500 Jei turite vonia, jūs ketinate norite H teisę. 1104 00:56:09,500 --> 00:56:13,290 Ir taip, kaip mes ketiname daryti, kad yra mes ketiname sukurti atskirą mazgą. 1105 00:56:13,290 --> 00:56:16,840 Mes ne skirti bet kokią sumą atminties šios naujos masyvo, 1106 00:56:16,840 --> 00:56:20,720 ir mes ketiname perleisti patarimų. 1107 00:56:20,720 --> 00:56:22,947 >> Mes ketiname priskirti H, Pirmiausia, šis nulis, 1108 00:56:22,947 --> 00:56:24,030 mes ketiname atsikratyti. 1109 00:56:24,030 --> 00:56:26,590 Mes ketiname turėti H taško žemyn. 1110 00:56:26,590 --> 00:56:30,600 Jei matome H, mes norime ją eiti į kažkur kitur. 1111 00:56:30,600 --> 00:56:33,910 >> Čia, mes galime tada patikrinkite išjungti taip. 1112 00:56:33,910 --> 00:56:38,170 Jei mes paspauskite H po T, OH, tada mes žinome, kad tai yra žodis. 1113 00:56:38,170 --> 00:56:41,110 Būlio ketina grįžti tiesa. 1114 00:56:41,110 --> 00:56:42,950 Kiekvienas aišku, kaip tai atsitiko? 1115 00:56:42,950 --> 00:56:45,110 GERAI. 1116 00:56:45,110 --> 00:56:47,214 >> Taigi, iš esmės, visi Šie duomenų struktūros 1117 00:56:47,214 --> 00:56:50,130 kad mes perėjo šiandien, aš dingo virš jų tikrai, tikrai greitai 1118 00:56:50,130 --> 00:56:52,192 o ne į daug detalė, ir kad viskas OK. 1119 00:56:52,192 --> 00:56:53,900 Kai pradėsite Messing su juo, jūs būsite 1120 00:56:53,900 --> 00:56:55,733 sekti, kur visos rodykles yra, 1121 00:56:55,733 --> 00:56:58,060 kas vyksta jūsų duomenų struktūros et cetera. 1122 00:56:58,060 --> 00:56:59,810 Jie bus labai naudinga, ir jis iki jums 1123 00:56:59,810 --> 00:57:03,890 vaikinai visiškai išsiaiškinti, kaip norite įgyvendinti dalykus. 1124 00:57:03,890 --> 00:57:07,650 >> Ir taip pset4, iš 5-- O, kad yra negerai. 1125 00:57:07,650 --> 00:57:10,140 Pset5 yra rašybos klaidų. 1126 00:57:10,140 --> 00:57:13,710 Kaip minėjau anksčiau, jūs ketinate, kai vėl parsisiųsti išeities kodą iš mūsų. 1127 00:57:13,710 --> 00:57:16,210 Ten bus trys pagrindinės viskas jums bus atsisiųsti. 1128 00:57:16,210 --> 00:57:18,470 Jūs parsisiųsti žodynus, Kers, ir tekstus. 1129 00:57:18,470 --> 00:57:21,660 >> Visi šie dalykai yra yra arba žodynai žodžių 1130 00:57:21,660 --> 00:57:25,190 kad mes norime, kad jūs patikrinti arba bandymo informacijos 1131 00:57:25,190 --> 00:57:26,930 kad mes norime, kad jūs rašybos tikrinimas. 1132 00:57:26,930 --> 00:57:29,670 Ir taip žodynai mes suteikiame jūs ketinate 1133 00:57:29,670 --> 00:57:34,870 duoti jums realius žodžius, kad mes norime jums laikyti kažkaip taip, kad manimi 1134 00:57:34,870 --> 00:57:36,530 efektyvesnis nei masyvą. 1135 00:57:36,530 --> 00:57:38,470 Ir tada tekstai bus ką mes 1136 00:57:38,470 --> 00:57:43,900 klausia jums rašybos įsitikinkite, visi žodžiai yra tikri žodžiai. 1137 00:57:43,900 --> 00:57:47,970 >> Ir taip tris blokai programos, kad mes suteiksime jums 1138 00:57:47,970 --> 00:57:51,130 yra vadinami dictionary.c, dictionary.h ir speller.c. 1139 00:57:51,130 --> 00:57:56,500 Ir taip visi dictionary.c daro, yra ką jūs paprašė įgyvendinti. 1140 00:57:56,500 --> 00:57:57,880 Jis įkelia žodžius. 1141 00:57:57,880 --> 00:58:02,000 Tai rašybos čekius juos, ir tai daro tikrai kad viskas būtų teisingai įdėta. 1142 00:58:02,000 --> 00:58:05,180 >> diction.h yra tik bibliotekos failą kad deklaruoja visas šias funkcijas. 1143 00:58:05,180 --> 00:58:07,650 Ir speller.c, mes ketiname suteikti jums. 1144 00:58:07,650 --> 00:58:09,290 Jums nereikia keisti bet jį. 1145 00:58:09,290 --> 00:58:14,290 Visi speller.c ar yra imtis, kad krovinius ji, tikrina jo greitį, 1146 00:58:14,290 --> 00:58:19,190 tikrina, kad, pavyzdžiui, kaip etalonas greitai jūs galėsite daryti dalykus. 1147 00:58:19,190 --> 00:58:20,410 >> Tai Speller. 1148 00:58:20,410 --> 00:58:23,920 Tiesiog nereikia netvarka su juo, bet įsitikinkite, kad jūs suprantate, ką jis daro. 1149 00:58:23,920 --> 00:58:28,090 Mes naudojame funkcija vadinama getrusage kad tikrina savo kerus našumą 1150 00:58:28,090 --> 00:58:28,590 tikrintuvą. 1151 00:58:28,590 --> 00:58:32,200 Visa tai daro iš esmės yra išbandyti laikas viską savo žodyną, 1152 00:58:32,200 --> 00:58:33,680 todėl įsitikinkite, kad jūs jį suprasti. 1153 00:58:33,680 --> 00:58:36,660 Būkite atsargūs, ne netvarka su juo arba kitur dalykai neveiks tinkamai. 1154 00:58:36,660 --> 00:58:39,740 1155 00:58:39,740 --> 00:58:44,170 >> Ir šį iššūkį urmu yra vaikinai tikrai keisti dictionary.c. 1156 00:58:44,170 --> 00:58:48,526 Mes ketiname suteikti jums 140.000 žodžių žodyne. 1157 00:58:48,526 --> 00:58:50,900 Mes ketiname suteikti jums tekstą failas, kuris turi tuos žodžius, 1158 00:58:50,900 --> 00:58:54,840 ir mes norime, kad jūs gebėti organizuoti juos į maišos lentelė arba TRIE 1159 00:58:54,840 --> 00:58:58,140 nes kai mes prašome jus rašybos check-- įsivaizduokite, jei esate rašybos 1160 00:58:58,140 --> 00:59:00,690 tikrinti, kaip Homero Odisėjoje. 1161 00:59:00,690 --> 00:59:03,010 Tai kaip šios didžiulės, didžiulis tyrimas. 1162 00:59:03,010 --> 00:59:05,190 >> Įsivaizduokite, jei kiekvienas Žodis jums buvo ieškoti 1163 00:59:05,190 --> 00:59:08,100 per 140.000 vertybių masyvo. 1164 00:59:08,100 --> 00:59:10,350 Tai amžinai jūsų mašina paleisti. 1165 00:59:10,350 --> 00:59:14,490 Štai kodėl mes norime organizuoti savo duomenis į efektyvesnius duomenų struktūrų 1166 00:59:14,490 --> 00:59:17,270 pavyzdžiui, maišos lentelė arba TRIE. 1167 00:59:17,270 --> 00:59:20,700 Ir tada jūs vaikinai gali natūra kada jums ieškoti prieigą 1168 00:59:20,700 --> 00:59:22,570 viskas lengviau ir greitai. 1169 00:59:22,570 --> 00:59:24,934 >> Ir todėl būkite atsargūs išspręsti susidūrimų. 1170 00:59:24,934 --> 00:59:27,350 Jūs ketinate gauti ryšelyje Žodžių tos pradžios su A. 1171 00:59:27,350 --> 00:59:29,957 Jūs ketinate gauti ryšelyje žodžius kad pradėti su B. Iki jumis 1172 00:59:29,957 --> 00:59:31,290 vaikinai, kaip jūs norite ją išspręsti. 1173 00:59:31,290 --> 00:59:34,144 Gal yra daugiau efektyvus maišos funkcija 1174 00:59:34,144 --> 00:59:36,810 ne tik pirmąją raidę kažkas, ir taip, kad iki jums 1175 00:59:36,810 --> 00:59:38,190 vaikinai rūšies daryti ką nori. 1176 00:59:38,190 --> 00:59:40,148 >> Gal norite pridėti Visos raidės kartu. 1177 00:59:40,148 --> 00:59:43,410 Gal norite patinka daryti keistus dalykus apskaityti raidžių, skaičių, 1178 00:59:43,410 --> 00:59:43,970 nesvarbu. 1179 00:59:43,970 --> 00:59:45,386 Iki jums vaikinai, kaip jūs norite daryti. 1180 00:59:45,386 --> 00:59:49,262 Jei norite padaryti, maišos lentelę, jeigu jūs noriu pabandyti TRIE, visiškai priklauso nuo jūsų. 1181 00:59:49,262 --> 00:59:52,470 Aš jus perspėti iš anksto, kad Trie paprastai yra šiek tiek sunkiau 1182 00:59:52,470 --> 00:59:54,520 tik todėl, kad ten yra daug daugiau patarimų sekti. 1183 00:59:54,520 --> 00:59:55,645 Tačiau visiškai iki jums vaikinai. 1184 00:59:55,645 --> 00:59:58,742 Tai kur kas efektyviau daugeliu atvejų. 1185 00:59:58,742 --> 01:00:01,450 Jūs norite, kad tikrai galės išlaikyti stebėti visas savo rodykles. 1186 01:00:01,450 --> 01:00:03,850 Kaip padaryti tą patį kad aš darau čia. 1187 01:00:03,850 --> 01:00:06,871 Kai bandote įrašyti vertybes maišos lentelę arba ištrinti, 1188 01:00:06,871 --> 01:00:08,620 įsitikinkite, kad esate tikrai sekti 1189 01:00:08,620 --> 01:00:11,860 kur viskas yra, nes tai tikrai lengva, jei aš 1190 01:00:11,860 --> 01:00:14,727 bando įterpti kaip žodžio, Andy. 1191 01:00:14,727 --> 01:00:16,810 Leiskite tik pasakyti, kad tai nekilnojamojo žodis, žodis, Andy, 1192 01:00:16,810 --> 01:00:19,640 į milžinišką sąrašą A žodžių. 1193 01:00:19,640 --> 01:00:22,450 >> Jei aš tiesiog atsitikti perleisti rodyklė negerai, Oi, 1194 01:00:22,450 --> 01:00:24,940 ten eina į visumą mano susietą sąrašą poilsio. 1195 01:00:24,940 --> 01:00:26,897 Dabar vienintelis žodis man turi Andy, o dabar 1196 01:00:26,897 --> 01:00:29,230 visų kitų žodžius žodynas buvo prarasta. 1197 01:00:29,230 --> 01:00:31,370 Ir todėl jūs norite įsitikinti, kad jūs sekti visus savo rodykles 1198 01:00:31,370 --> 01:00:33,661 arba dar jūs ketinate gauti didelių problemų Jūsų kodas. 1199 01:00:33,661 --> 01:00:35,840 Lygiosios dalykų atsargiai, žingsnis po žingsnio. 1200 01:00:35,840 --> 01:00:37,870 Ji daro tai daug lengviau galvoti. 1201 01:00:37,870 --> 01:00:40,910 >> Ir galiausiai, jūs norite, kad būtų galima išbandyti savo veiklos rezultatus savo programą 1202 01:00:40,910 --> 01:00:41,618 dideliame laive. 1203 01:00:41,618 --> 01:00:43,710 Jei vaikinai užtrukti pažvelgti CS50 dabar, 1204 01:00:43,710 --> 01:00:45,210 mes turime tai, kas vadinama didelis lenta. 1205 01:00:45,210 --> 01:00:50,200 Tai rezultatas lapas iš sparčiausiai tikrinti rašybą kartus per visą CS50 1206 01:00:50,200 --> 01:00:55,720 dabar, manau, kad kaip Top 10 kartų aš manau, kad aštuoni iš jų yra darbuotojai. 1207 01:00:55,720 --> 01:00:57,960 Mes tikrai norime jus vaikinai įveikti mus. 1208 01:00:57,960 --> 01:01:00,870 >> Visi mes bandome įgyvendinti sparčiausiai kodas, kaip įmanoma. 1209 01:01:00,870 --> 01:01:04,880 Mes norime jums, vaikinai bando mesti iššūkį JAV ir įgyvendinti greičiau nei mums visiems 1210 01:01:04,880 --> 01:01:05,550 galite. 1211 01:01:05,550 --> 01:01:07,970 Ir taip, tai tikrai pirmas kartas, kai mes 1212 01:01:07,970 --> 01:01:12,680 klausia jums vaikinai padaryti pset kad jūs tikrai galite padaryti kokiu nors būdu 1213 01:01:12,680 --> 01:01:13,760 tu nori. 1214 01:01:13,760 --> 01:01:17,730 >> Aš visada sakau, tai labiau panašus prie realaus gyvenimo sprendimas, tiesa? 1215 01:01:17,730 --> 01:01:19,550 Sakau, ei, aš turiu jums tai padaryti. 1216 01:01:19,550 --> 01:01:21,380 Sukurkite programą, kuri tai daro už mane. 1217 01:01:21,380 --> 01:01:22,630 Ar ji vis dėlto norite. 1218 01:01:22,630 --> 01:01:24,271 Aš tiesiog žinau, kad aš noriu greitai. 1219 01:01:24,271 --> 01:01:25,770 Štai jūsų uždavinys šią savaitę. 1220 01:01:25,770 --> 01:01:27,531 Jūs vaikinai, mes ketiname duoti jums užduotį. 1221 01:01:27,531 --> 01:01:29,030 Mes ketiname suteikti jums iššūkį. 1222 01:01:29,030 --> 01:01:31,559 Ir tada jis iki jums vaikinai visiškai tik išsiaiškinti, 1223 01:01:31,559 --> 01:01:34,100 kas yra greičiausias ir labiausiai efektyvus būdas įgyvendinti tai. 1224 01:01:34,100 --> 01:01:34,600 Taip? 1225 01:01:34,600 --> 01:01:37,476 >> Auditorija: Ar mes leidžiama, jei norėjo ištirti greičiau būdai 1226 01:01:37,476 --> 01:01:40,821 daryti maišos lenteles internete, mes galime padaryti kad ir pacituoti kažkieno kodą? 1227 01:01:40,821 --> 01:01:42,070 ANDI Peng: Taip, visiškai gerai. 1228 01:01:42,070 --> 01:01:44,320 Taigi, jei jus vaikinai skaityti spec, ten linija 1229 01:01:44,320 --> 01:01:48,310 į spec, kad sako, kad jūs vaikinai yra visiškai nemokama mokslinių tyrimų maišos 1230 01:01:48,310 --> 01:01:51,070 funkcijas, kas yra kai iš greičiau maišos funkcijų 1231 01:01:51,070 --> 01:01:54,720 paleisti dalykų per taip Tol, kol jūs paminėti, kad kodą. 1232 01:01:54,720 --> 01:01:57,220 Taigi kai kurie žmonės jau turi išsiaiškino, greitai būdų 1233 01:01:57,220 --> 01:02:00,250 daro rašybos tikrinimo, iš greitai būdai saugoti informaciją. 1234 01:02:00,250 --> 01:02:02,750 Visiškai priklauso nuo jūsų vaikinai jei jus noriu tiesiog, kad, tiesa? 1235 01:02:02,750 --> 01:02:04,045 Įsitikinkite, kad esate Cituojant. 1236 01:02:04,045 --> 01:02:06,170 Iššūkis čia tikrai kad mes bandome išbandyti 1237 01:02:06,170 --> 01:02:09,750 yra užtikrinti, kad jūs žinote, savo kelią aplink patarimų. 1238 01:02:09,750 --> 01:02:12,700 Kiek jums įgyvendinti faktinis maišos funkcija 1239 01:02:12,700 --> 01:02:15,070 ir ateina su, kaip matematika tai padaryti, 1240 01:02:15,070 --> 01:02:17,570 vaikinai gali tirti kokia metodai internete vaikinai nori. 1241 01:02:17,570 --> 01:02:17,996 Taip? 1242 01:02:17,996 --> 01:02:19,700 >> Auditorija: Ar mes paminėti tik naudodami [nesigirdi]? 1243 01:02:19,700 --> 01:02:20,120 >> ANDI Peng: Taip. 1244 01:02:20,120 --> 01:02:22,328 Jūs galite tiesiog iš savo komentarą, galite paminėti, pavyzdžiui, OH, 1245 01:02:22,328 --> 01:02:26,127 paimti iš bla, bla, bla, maišos funkcija. 1246 01:02:26,127 --> 01:02:27,210 Kiekvienas turi kokių nors klausimų? 1247 01:02:27,210 --> 01:02:29,694 Mes iš tikrųjų breezed per skyrių ir šiandien. 1248 01:02:29,694 --> 01:02:31,610 Aš būsiu čia, kad atsakyti į klausimus, taip pat. 1249 01:02:31,610 --> 01:02:36,570 >> Be to, kaip jau minėjau, biuro val vakarą ir rytoj. 1250 01:02:36,570 --> 01:02:40,307 SPEC šią savaitę iš tiesų yra super lengva ir super trumpas skaityti. 1251 01:02:40,307 --> 01:02:43,140 Siūlyčiau atsižvelgiant išvaizdą, tiesiog skaityti per ją visas. 1252 01:02:43,140 --> 01:02:45,730 >> Ir Zamyla tikrųjų walks jus per kiekvieną funkcijų 1253 01:02:45,730 --> 01:02:49,796 Jums reikia įgyvendinti, ir todėl labai, labai aišku, kaip viską daryti. 1254 01:02:49,796 --> 01:02:51,920 Tiesiog įsitikinkite, kad jūs esate sekti nurodymus. 1255 01:02:51,920 --> 01:02:53,650 Tai labai sudėtinga pset. 1256 01:02:53,650 --> 01:02:56,744 >> Tai ne iššūkis, nes kaip, Oi, sąvokos yra daug daugiau 1257 01:02:56,744 --> 01:02:59,160 sunku, ar jūs turite išmokti tiek daug naujos sintaksės būdas 1258 01:02:59,160 --> 01:03:00,650 kad tu paskutinį pset. 1259 01:03:00,650 --> 01:03:03,320 Tai pset yra sunku, nes yra tiek daug patarimų, 1260 01:03:03,320 --> 01:03:06,980 ir tada ji labai, labai lengva, kai Jūs turite savo kodą klaidą negalės 1261 01:03:06,980 --> 01:03:08,315 surasti, kur, kad klaida yra. 1262 01:03:08,315 --> 01:03:13,200 >> Ir taip visiškai ir pratarti tikėjimas jumis vaikinai, kad būtų galima įveikti mūsų [nesigirdi] 1263 01:03:13,200 --> 01:03:13,700 Tarimas. 1264 01:03:13,700 --> 01:03:16,640 Aš iš tikrųjų turime ne kokį nors rašytinį mano dar, bet aš apie rašyti mano. 1265 01:03:16,640 --> 01:03:19,070 Taigi, nors rašote Pagarbiai, aš rašyti mano. 1266 01:03:19,070 --> 01:03:21,070 Aš ruošiuosi pabandyti padaryti mano greičiau nei jūsų. 1267 01:03:21,070 --> 01:03:23,940 Pamatysime, kas turi greičiausią vieną. 1268 01:03:23,940 --> 01:03:27,340 >> Ir taip, aš pamatysite visus vaikinai čia antradienį. 1269 01:03:27,340 --> 01:03:29,510 Aš paleisti panašaus pset dirbtuvėse natūra. 1270 01:03:29,510 --> 01:03:32,640 Visi sekcijų šis savaitę yra pset dirbtuvės, 1271 01:03:32,640 --> 01:03:36,690 todėl jūs vaikinai turite daug galimybių pagalbos, biuro valandas, kaip visada, 1272 01:03:36,690 --> 01:03:41,330 ir aš tikrai laukiu skaityti visus jūsų vaikinų kodą. 1273 01:03:41,330 --> 01:03:44,160 Turiu viktorinos iki čia, jei vaikinai nori ateiti gauti tuos. 1274 01:03:44,160 --> 01:03:45,880 Tai viskas. 1275 01:03:45,880 --> 01:03:48,180