1 00:00:00,000 --> 00:00:11,460 2 00:00:11,460 --> 00:00:12,250 >> DAVID Malan: zote haki. 3 00:00:12,250 --> 00:00:13,860 Karibu tena kwa CS50. 4 00:00:13,860 --> 00:00:16,190 Huu ni mwanzo wa wiki 8. 5 00:00:16,190 --> 00:00:21,320 Na kukumbuka kwamba kuweka tatizo 5 kumalizika na kidogo kidogo ya changamoto. 6 00:00:21,320 --> 00:00:25,210 Hivyo kuchukua wewe zinalipwa yote ya yako mafundisho Fellows na picha ya CA 7 00:00:25,210 --> 00:00:30,480 katika faili card.raw, wewe ni chakula cha mchana kwa sasa kupata yote ya watu hao, na 8 00:00:30,480 --> 00:00:34,510 mshindi mmoja bahati kutembea nyumbani na mmoja juu ya mambo hayo, mwendo leap 9 00:00:34,510 --> 00:00:37,450 kifaa kwamba unaweza kutumia kwa ajili ya fainali miradi, kwa mfano. 10 00:00:37,450 --> 00:00:39,860 >> Hii, kila mwaka, husababisha kidogo ya creepiness. 11 00:00:39,860 --> 00:00:43,480 Na hivyo nilifikiri nini ningependa kufanya ni kushiriki na wewe baadhi ya maelezo ambayo 12 00:00:43,480 --> 00:00:47,370 gone na kurudi zaidi ya orodha ya wafanyakazi wa marehemu. 13 00:00:47,370 --> 00:00:51,110 Kwa mfano, tu jana usiku quote, unquote, kutoka mmoja wa wafanyakazi 14 00:00:51,110 --> 00:00:55,000 wanachama, "Mimi tu alikuwa mwanafunzi yangekuwa mlango wangu kwa kuchukua picha na mimi. 15 00:00:55,000 --> 00:00:59,020 Stalkers, nawaambia ". Started mbali haki maelezo na kisha sisi wakiongozwa 16 00:00:59,020 --> 00:01:02,830 kwenye, saa au hivyo baadaye, "Mimi nilikuwa mwanafunzi wa kusubiri kwa ajili yangu baada ya sehemu ya 17 00:01:02,830 --> 00:01:06,080 naye alikuwa na majina yetu wote na picha juu ya baadhi ya karatasi. "haki zote. 18 00:01:06,080 --> 00:01:09,230 Hivyo kupangwa, lakini si wote kwamba creepy bado. 19 00:01:09,230 --> 00:01:12,520 >> Basi, "Nilikuwa nje ya mji mwishoni mwa wiki hii, na niliporudi nyuma, kulikuwa na mtu mmoja katika 20 00:01:12,520 --> 00:01:12,630 yangu 21 00:01:12,630 --> 00:01:16,740 chumba cha kulala ". [kicheko] 22 00:01:16,740 --> 00:01:20,410 DAVID Malan: Next quote kutoka kwa wafanyakazi mwanachama, "mwanafunzi alikuja nyumba yangu katika 23 00:01:20,410 --> 00:01:25,330 Somerville saa 4:00 asubuhi hii ". Next wafanyakazi, "I got hoteli yangu katika San 24 00:01:25,330 --> 00:01:30,016 Francisco na mwanafunzi alikuwa kusubiri kwa mimi katika kushawishi na DSLRs tatu. " 25 00:01:30,016 --> 00:01:31,510 Aina ya kamera. 26 00:01:31,510 --> 00:01:34,980 "Mimi si hata juu ya wafanyakazi hii muhula, lakini mwanafunzi kukatika ndani ya nyumba yangu hii 27 00:01:34,980 --> 00:01:40,480 asubuhi na ilirekodi yote na kioo Google ". Na kisha mwisho, 28 00:01:40,480 --> 00:01:43,650 "Angalau watu 12 walikuwa shauku wanasubiri kwa mimi wakati mimi got nje ya yangu 29 00:01:43,650 --> 00:01:44,800 Limo, na kisha mimi 30 00:01:44,800 --> 00:01:46,970 woke up ". haki zote. 31 00:01:46,970 --> 00:01:57,690 Hivyo kati ya picha, kama unaweza kukumbuka, ni huyu hapa, ambao unaweza 32 00:01:57,690 --> 00:02:01,850 wapate kujua kama Milo Banana, ambaye anaishi na Lauren Carvalho, mkuu wetu 33 00:02:01,850 --> 00:02:02,905 kufundisha wenzangu. 34 00:02:02,905 --> 00:02:05,170 Milo, Milo, kuja hapa mvulana. 35 00:02:05,170 --> 00:02:06,320 Milo. 36 00:02:06,320 --> 00:02:08,650 Milo. 37 00:02:08,650 --> 00:02:12,230 Akili wewe, yeye amevaa Google kioo, hivyo tutaweza kuonyesha wote wa hii baada ya. 38 00:02:12,230 --> 00:02:16,190 Hivyo hii Milo ni kama ungependa kuchukua picha pamoja naye baadaye. 39 00:02:16,190 --> 00:02:18,240 Kama Ningependa kwa kuangalia nje saa watazamaji huko. 40 00:02:18,240 --> 00:02:19,430 OK. 41 00:02:19,430 --> 00:02:20,200 Hiyo ni nzuri Footage. 42 00:02:20,200 --> 00:02:22,556 Naam, Milo Banana. 43 00:02:22,556 --> 00:02:23,941 Oh, si kufanya hivyo. 44 00:02:23,941 --> 00:02:29,020 >> [Kicheko] 45 00:02:29,020 --> 00:02:29,470 >> OK. 46 00:02:29,470 --> 00:02:34,550 Hivyo basi neno juu ya kile uongo mbele, kwa sababu kama sisi kuanza mpito, 47 00:02:34,550 --> 00:02:38,410 wiki hii hasa, kutoka C katika amri line mazingira kwa PHP na 48 00:02:38,410 --> 00:02:42,720 JavaScript na SQL na HTML na CSS katika mazingira ya mtandao msingi, tutaweza kuwa 49 00:02:42,720 --> 00:02:44,490 kuwaandaa kwa yote maarifa zaidi kwa 50 00:02:44,490 --> 00:02:46,010 uwezo wa mwisho miradi. 51 00:02:46,010 --> 00:02:49,240 Kuelekea mwisho kwamba, bila shaka ina utamaduni wa kufanya semina ambayo 52 00:02:49,240 --> 00:02:50,950 ni juu ya mada tangential na bila shaka. 53 00:02:50,950 --> 00:02:54,330 Mengi sana kuhusiana na programu na programu ya maendeleo na kadhalika, lakini 54 00:02:54,330 --> 00:02:57,010 si lazima Kugundua na Bila shaka ya mwenyewe mtaala. 55 00:02:57,010 --> 00:03:00,250 >> Hivyo kama unaweza kuwa na nia moja katika au zaidi ya semina ya mwaka huu, 56 00:03:00,250 --> 00:03:02,530 kujiandikisha katika cs50.net/seminar. 57 00:03:02,530 --> 00:03:06,170 Kuna wazee semina saa cs50.net/seminars. 58 00:03:06,170 --> 00:03:10,620 Na juu ya orodha ya majina ya hivi sasa kwa mwaka huu ni Amazing Programu Mtandao na Ruby juu ya 59 00:03:10,620 --> 00:03:13,580 Reli, ambayo ni mbadala lugha ya PHP. 60 00:03:13,580 --> 00:03:14,900 Computational Linguistics. 61 00:03:14,900 --> 00:03:18,710 Kuanzishwa kwa iOS, ambayo ni jukwaa hiyo ni kutumika kwa ajili ya iPhone na 62 00:03:18,710 --> 00:03:19,850 iPad maendeleo. 63 00:03:19,850 --> 00:03:22,890 JavaScript kwa Programu ya Mtandao, tutaweza cover kwamba, lakini katika semina hii, itabidi kwenda 64 00:03:22,890 --> 00:03:24,070 kwa undani zaidi. 65 00:03:24,070 --> 00:03:27,390 >> Leap Motion, hivyo tutaweza kweli kuwa baadhi ya wa marafiki zetu kutoka Motion Leap, 66 00:03:27,390 --> 00:03:29,160 kampuni yenyewe, kujiunga nasi. 67 00:03:29,160 --> 00:03:31,800 Kesho, kwa kweli, kwa kutoa mikono juu ya semina, ikiwa 68 00:03:31,800 --> 00:03:33,320 wa maslahi na wewe. 69 00:03:33,320 --> 00:03:38,770 Meteor.js, mbinu mbadala kwa ajili ya kutumia JavaScript si katika browser, 70 00:03:38,770 --> 00:03:39,970 lakini juu ya server. 71 00:03:39,970 --> 00:03:42,110 Node.js, ambayo ni mengi sana katika mshipa kuwa vilevile. 72 00:03:42,110 --> 00:03:43,650 Sleek Android Design. 73 00:03:43,650 --> 00:03:46,990 Admin kuwa mbadala maarufu sana kwa Simu iOS na Windows 74 00:03:46,990 --> 00:03:48,790 na simu nyingine majukwaa. 75 00:03:48,790 --> 00:03:51,180 Na Mtandao wa Usalama Active Ulinzi. 76 00:03:51,180 --> 00:03:54,590 >> Hivyo katika kweli, kama ungependa kushiriki katika hii, napenda 77 00:03:54,590 --> 00:03:55,840 kufanya kumbuka ya hii. 78 00:03:55,840 --> 00:03:57,790 Sisi ni furaha sana kusema kwamba marafiki zetu katika Leap 79 00:03:57,790 --> 00:03:59,140 Mwendo, ambayo ni startup - 80 00:03:59,140 --> 00:04:01,300 kifaa hiki kweli alikuja tu nje miezi michache iliyopita - 81 00:04:01,300 --> 00:04:05,960 kwa neema walichangia 30 ya vifaa kama hivyo darasani kwa kama wanafunzi wengi, kama 82 00:04:05,960 --> 00:04:08,670 Ningependa kukopa vifaa kuelekea mwisho wa muhula na kuitumia kwa ajili ya 83 00:04:08,670 --> 00:04:10,390 halisi ya mwisho wa mradi. 84 00:04:10,390 --> 00:04:11,890 Wao kusaidia idadi ya lugha. 85 00:04:11,890 --> 00:04:16,040 Hakuna hata mmoja wao C, hakuna hata mmoja wao PHP, hivyo kutambua moja au zaidi ya semina hizi 86 00:04:16,040 --> 00:04:16,899 ili kuthibitisha ya riba. 87 00:04:16,899 --> 00:04:19,730 Na wote watakuwa zingine katika tukio hilo kuwa wewe si uwezo 88 00:04:19,730 --> 00:04:21,380 kuhudhuria katika mtu. 89 00:04:21,380 --> 00:04:25,000 ratiba itatangazwa kupitia email kama sisi kuimarisha vyumba. 90 00:04:25,000 --> 00:04:28,460 >> Na Mwisho, kama kwenda kwa projects.cs.50.net, hii ni tovuti 91 00:04:28,460 --> 00:04:31,450 sisi kudumisha kila mwaka kwamba sisi kukaribisha folks kutoka kwa jamii, Kitivo, 92 00:04:31,450 --> 00:04:36,420 idara, wafanyakazi, na wote katika nje ya CS50 kwa 93 00:04:36,420 --> 00:04:37,730 kupendekeza mawazo mradi. 94 00:04:37,730 --> 00:04:39,050 Mambo ya maslahi ya makundi ya mwanafunzi. 95 00:04:39,050 --> 00:04:40,600 Mambo ya maslahi kwa idara. 96 00:04:40,600 --> 00:04:43,990 Hivyo kugeuka huko kama wewe ni zinakabiliwa na kutokuwa na uhakika kama kwa nini 97 00:04:43,990 --> 00:04:46,700 mwenyewe angependa kukabiliana. 98 00:04:46,700 --> 00:04:51,760 >> Hivyo mwisho wakati sisi ilianzisha arguably ngumu zaidi kuliko data muundo tunatarajia 99 00:04:51,760 --> 00:04:53,300 kuonekana katika kipindi cha wiki. 100 00:04:53,300 --> 00:04:56,550 Tunatarajia wamekuwa kutumia arrays pretty furaha kama manufaa kama 101 00:04:56,550 --> 00:04:58,160 simplistic data muundo. 102 00:04:58,160 --> 00:05:00,570 Kisha sisi ilianzisha haya, ambayo bila shaka ni wanaohusishwa orodha. 103 00:05:00,570 --> 00:05:05,470 Na nini ilikuwa moja ya motisha kwa kuanzisha muundo huu data? 104 00:05:05,470 --> 00:05:06,930 Yeah? 105 00:05:06,930 --> 00:05:07,250 Nini hiyo? 106 00:05:07,250 --> 00:05:08,080 >> Watazamaji: Dynamic kawaida. 107 00:05:08,080 --> 00:05:09,040 >> DAVID Malan: Dynamic kawaida. 108 00:05:09,040 --> 00:05:11,890 Hivyo ambapo katika safu, una kujua ukubwa wake mapema wakati 109 00:05:11,890 --> 00:05:12,740 kutenga yake. 110 00:05:12,740 --> 00:05:14,380 Katika orodha wanaohusishwa, huna kujua kwamba. 111 00:05:14,380 --> 00:05:17,610 Unaweza tu malloc, au zaidi kwa ujumla, kutenga ziada 112 00:05:17,610 --> 00:05:20,720 nodi, ili kuzungumza, wakati wowote wanataka kuingiza data zaidi. 113 00:05:20,720 --> 00:05:22,670 Na node hana predetermined maana. 114 00:05:22,670 --> 00:05:25,580 Ni tu generic mrefu kuelezea baadhi ya aina ya chombo kwamba sisi ni 115 00:05:25,580 --> 00:05:29,610 kutumia data katika muundo wetu wa kuhifadhi baadhi ya bidhaa ya riba, ambayo katika hii 116 00:05:29,610 --> 00:05:31,750 kesi kutokea kwa kuwa integers. 117 00:05:31,750 --> 00:05:33,160 >> Lakini kuna siku zote tradeoff. 118 00:05:33,160 --> 00:05:38,070 Ili tuweze kupata nguvu ukubwa wa data muundo, lakini kile bei gani sisi kulipa? 119 00:05:38,070 --> 00:05:40,040 Nini upande wa chini ya orodha zilizounganishwa? 120 00:05:40,040 --> 00:05:41,006 Yeah? 121 00:05:41,006 --> 00:05:41,980 >> Watazamaji: Inahitaji kumbukumbu zaidi. 122 00:05:41,980 --> 00:05:44,240 >> DAVID Malan: Ni inahitaji zaidi kumbukumbu, jinsi gani hasa? 123 00:05:44,240 --> 00:05:46,440 >> Watazamaji: [inaudible]. 124 00:05:46,440 --> 00:05:47,050 >> DAVID Malan: Hasa. 125 00:05:47,050 --> 00:05:50,460 Hivyo sasa tuna kuyatumia na kuchukua ziada kumbukumbu kwamba sisi awali 126 00:05:50,460 --> 00:05:53,040 hakuwa na haja, kwa sababu faida wa safu, bila shaka, ni kwamba 127 00:05:53,040 --> 00:05:54,860 kila kitu ni contiguous, nyuma nyuma kwa nyuma, ambayo 128 00:05:54,860 --> 00:05:56,380 inakupa upatikanaji random. 129 00:05:56,380 --> 00:06:00,710 Kwa sababu tu kwa kutumia mabano mraba nukuu, au zaidi kitaalam pointer 130 00:06:00,710 --> 00:06:03,580 hesabu, rahisi sana Aidha, unaweza kupata yoyote 131 00:06:03,580 --> 00:06:05,700 vipengele katika wakati mara kwa mara. 132 00:06:05,700 --> 00:06:08,975 Na kwa kweli, hiyo ni aina ya hinting katika mwingine bei ya kwamba sisi ni kulipa na 133 00:06:08,975 --> 00:06:09,760 wanaohusishwa orodha. 134 00:06:09,760 --> 00:06:13,890 >> Nini kinatokea kwa wakati mbio ya kitu kama Search, kama nataka 135 00:06:13,890 --> 00:06:17,270 kupata baadhi ya thamani na ndani ya ya orodha wanaohusishwa? 136 00:06:17,270 --> 00:06:20,290 Je, muda wangu kuwa mbio? 137 00:06:20,290 --> 00:06:21,560 Kubwa O ya n. 138 00:06:21,560 --> 00:06:24,060 Kama ni kwa namna? 139 00:06:24,060 --> 00:06:25,440 Nini kama muundo wa data ni sorted? 140 00:06:25,440 --> 00:06:28,640 Naweza kufanya vizuri zaidi kuliko kubwa O ya n kwa ajili ya kutafuta? 141 00:06:28,640 --> 00:06:31,700 Hapana, kwa sababu katika hali mbaya ni nguvu vizuri sana kutatuliwa, lakini idadi 142 00:06:31,700 --> 00:06:32,950 wewe ni kuangalia kwa wapate kuwa kubwa. 143 00:06:32,950 --> 00:06:35,370 Inaweza kuwa ni namba 100, ambayo kinaweza kutokea kwa kuwa wote 144 00:06:35,370 --> 00:06:36,410 njia mwishoni. 145 00:06:36,410 --> 00:06:39,950 Na kwa sababu unaweza tu kupata wanaohusishwa orodha hii katika utekelezaji na 146 00:06:39,950 --> 00:06:42,690 njia ya nodi yake ya kwanza, wewe ni bado aina ya nje ya bahati. 147 00:06:42,690 --> 00:06:47,450 Una tembeeni jambo zima kutoka mwanzo hadi mwisho ili kupata 148 00:06:47,450 --> 00:06:49,150 kwamba thamani kubwa kama 100. 149 00:06:49,150 --> 00:06:51,350 Au kuamua kama ni hata huko. 150 00:06:51,350 --> 00:06:55,960 >> Hivyo hatuwezi kufanya kile algorithm katika data muundo kwamba inaonekana kama hii? 151 00:06:55,960 --> 00:06:59,460 Hatuwezi kufanya tafuta binary, kwa sababu binary tafuta required kwamba tulikuwa 152 00:06:59,460 --> 00:07:00,740 random kupata. 153 00:07:00,740 --> 00:07:04,500 Tunaweza tu leap kutoka eneo kwa mahali bila ya kuwa na kufuata 154 00:07:04,500 --> 00:07:07,080 makombo ya chakula hizi katika fomu ya kuyatumia haya yote. 155 00:07:07,080 --> 00:07:08,300 >> Sasa, jinsi gani sisi kutekeleza hili? 156 00:07:08,300 --> 00:07:12,830 Naam, kama sisi kwenda kwa screen hapa, kama tunaweza haraka reimplement data hii 157 00:07:12,830 --> 00:07:13,440 muundo - 158 00:07:13,440 --> 00:07:15,670 mwandiko wangu si wote kwamba kubwa hapa, lakini tutaweza kujaribu. 159 00:07:15,670 --> 00:07:22,030 Hivyo typedef struct, na nini mimi unataka kuita jambo hili hapa juu? 160 00:07:22,030 --> 00:07:22,960 Nodi. 161 00:07:22,960 --> 00:07:24,580 Hivyo mimi itabidi kupata yetu ilianza. 162 00:07:24,580 --> 00:07:27,860 Na sasa, nini mahitaji ya kuwa ndani ya muundo wa data kwa kuwa moja moja 163 00:07:27,860 --> 00:07:28,430 wanaohusishwa orodha? 164 00:07:28,430 --> 00:07:29,950 Wangapi mashamba? 165 00:07:29,950 --> 00:07:30,450 >> Hivyo mbili. 166 00:07:30,450 --> 00:07:31,570 Moja ni rahisi pretty. 167 00:07:31,570 --> 00:07:33,050 Hivyo int n. 168 00:07:33,050 --> 00:07:35,930 Na tungeweza kuwaita kitu n tunataka, lakini ni lazima kuwa int kama sisi ni 169 00:07:35,930 --> 00:07:37,660 kutekeleza orodha wanaohusishwa kwa ints. 170 00:07:37,660 --> 00:07:41,920 Na sasa ni nini pili shamba kuwa? 171 00:07:41,920 --> 00:07:43,460 Struct nodi *. 172 00:07:43,460 --> 00:07:50,570 Hivyo kama mimi kufanya struct nodi *, na kisha mimi unaweza kuita hii pia chochote mimi nataka, 173 00:07:50,570 --> 00:07:53,510 lakini tu kuwa wazi Mimi nitakuita ijayo, kama tumekuwa kufanya. 174 00:07:53,510 --> 00:07:55,270 Na basi mimi itabidi karibu yangu braces curly. 175 00:07:55,270 --> 00:08:00,700 >> Na sasa, kama mara ya mwisho, Mimi kuweka nodi chini hapa. 176 00:08:00,700 --> 00:08:03,830 Lakini kama mimi nina kutangaza hii ni kama nodi, kwa nini mimi bother kuwa hivyo 177 00:08:03,830 --> 00:08:07,320 verbose hapa katika kutangaza struct nodi * ijayo, kinyume 178 00:08:07,320 --> 00:08:09,210 tu * nodi ijayo? 179 00:08:09,210 --> 00:08:09,904 Yeah? 180 00:08:09,904 --> 00:08:12,810 >> Watazamaji: [inaudible]. 181 00:08:12,810 --> 00:08:14,050 >> DAVID Malan: Hasa. 182 00:08:14,050 --> 00:08:14,530 Hasa. 183 00:08:14,530 --> 00:08:18,320 Sababu C kweli inachukua wewe halisi na anaona tu ufafanuzi wa nodi 184 00:08:18,320 --> 00:08:21,230 njia ya chini hapa, huwezi rejea ni hapa juu. 185 00:08:21,230 --> 00:08:24,760 Hivyo tuna aina hii ya preemptive tamko hapa, ambayo ni admittedly 186 00:08:24,760 --> 00:08:25,390 zaidi verbose. 187 00:08:25,390 --> 00:08:27,810 Struct nodi, kwamba maana ya sasa tunaweza kupata huduma hiyo 188 00:08:27,810 --> 00:08:29,760 ndani ya muundo data. 189 00:08:29,760 --> 00:08:33,370 >> Na kama kando, kwa sababu hii ni kuwa zaidi kidogo subjective sasa, 190 00:08:33,370 --> 00:08:36,230 nyota wanaweza kitaalam kwenda hapa, inaweza kwenda hapa, inaweza 191 00:08:36,230 --> 00:08:37,179 hata kwenda katikati. 192 00:08:37,179 --> 00:08:39,890 Tumekuwa kupitishwa, katika mwongozo style kwa Bila shaka, mkataba wa kuweka 193 00:08:39,890 --> 00:08:42,299 nyota haki ya karibu na data aina, ambayo katika kesi hii, 194 00:08:42,299 --> 00:08:43,460 itakuwa struct nodi. 195 00:08:43,460 --> 00:08:46,620 Lakini kutambua katika mengi ya vitabu vya kiada na marejeo online, waweza kweli 196 00:08:46,620 --> 00:08:48,450 kuona upande wa pili. 197 00:08:48,450 --> 00:08:52,200 Lakini tu kutambua kwamba wote wawili kwa kweli kazi na wewe lazima tu kuwa 198 00:08:52,200 --> 00:08:52,970 thabiti. 199 00:08:52,970 --> 00:08:53,580 >> Wote haki. 200 00:08:53,580 --> 00:08:55,630 Ili kwamba ilikuwa tamko wetu ya nodi struct. 201 00:08:55,630 --> 00:08:59,430 Lakini basi sisi kuanza kufanya zaidi kisasa mambo. 202 00:08:59,430 --> 00:09:03,410 Kwa mfano, sisi aliamua kuanzisha kitu kama meza hash. 203 00:09:03,410 --> 00:09:08,160 Hivyo hapa ni meza hash ya n kawaida, indexed kutoka 0 juu kushoto na n 204 00:09:08,160 --> 00:09:09,690 minus 1 juu ya chini kushoto. 205 00:09:09,690 --> 00:09:11,640 Hii inaweza kuwa hash meza kwa ajili ya kitu chochote. 206 00:09:11,640 --> 00:09:15,340 Lakini ni aina gani ya mambo gani sisi majadiliano kuhusu kutumia meza hash kwa? 207 00:09:15,340 --> 00:09:18,370 Hifadhi ya nini? 208 00:09:18,370 --> 00:09:18,800 >> Majina. 209 00:09:18,800 --> 00:09:20,870 Tunaweza kufanya majina kama tulivyofanya wakati wa mwisho. 210 00:09:20,870 --> 00:09:22,200 Na kwa kweli, unaweza kuhifadhi kitu. 211 00:09:22,200 --> 00:09:24,640 Na tutaweza kuona hii tena katika PHP na katika JavaScript. 212 00:09:24,640 --> 00:09:28,550 meza hash ni aina nzuri ya Uswisi Jeshi kisu kwamba utapata kuhifadhi 213 00:09:28,550 --> 00:09:33,690 pretty kiasi chochote unataka ndani ya hivyo kwa kujihusisha funguo na maadili. 214 00:09:33,690 --> 00:09:34,770 Funguo na maadili. 215 00:09:34,770 --> 00:09:37,800 >> Sasa katika kesi hii rahisi, yetu funguo ni idadi tu. 216 00:09:37,800 --> 00:09:40,380 Sisi ni kutekeleza hash meza kama safu. 217 00:09:40,380 --> 00:09:43,500 Na hivyo funguo ni 0, 1, 2, na kadhalika. 218 00:09:43,500 --> 00:09:47,200 Na hivyo sisi, kama wanadamu, aliamua mwisho wiki kwamba unajua nini, kama sisi ni 219 00:09:47,200 --> 00:09:50,410 kwenda majina kuhifadhi, hebu tu kiholela, lakini pretty sababu, 220 00:09:50,410 --> 00:09:54,680 kudhani kwamba Alice, jina, tu kuwa indexed katika 0. 221 00:09:54,680 --> 00:09:58,030 Na Bob, jina B, itakuwa indexed ndani ya 1, na kadhalika. 222 00:09:58,030 --> 00:10:02,490 Hivyo tulikuwa ramani kati ya pembejeo, ambayo ni ya masharti, na hash 223 00:10:02,490 --> 00:10:04,560 maeneo, ambayo ni namba. 224 00:10:04,560 --> 00:10:07,740 >> Hivyo mchakato kwamba ni ujumla inayojulikana kama kazi hash, na unaweza kweli 225 00:10:07,740 --> 00:10:09,130 kutekeleza katika kanuni. 226 00:10:09,130 --> 00:10:12,080 Kama nilitaka kutekeleza kazi hash kwamba anafanya nini hasa sisi 227 00:10:12,080 --> 00:10:17,070 tu ilivyoelezwa kutoka wakati wa mwisho, mimi ili kutangaza kwamba inachukua kazi, kama 228 00:10:17,070 --> 00:10:18,330 pembejeo kwa mfano - 229 00:10:18,330 --> 00:10:22,190 na hebu kufanya hili juu ya hili screen zaidi ya hapa. 230 00:10:22,190 --> 00:10:26,180 Kama nilitaka kutekeleza hash kazi, mimi wanaweza kusema 231 00:10:26,180 --> 00:10:27,410 kitu kama hiki. 232 00:10:27,410 --> 00:10:29,030 >> Ni kwenda na kurudi int. 233 00:10:29,030 --> 00:10:33,600 Ni kwenda kuitwa hash, na ni kwenda kukubali kama hoja 234 00:10:33,600 --> 00:10:38,920 uzi, au tunaweza kuwa sawa zaidi sasa, na kusema * Char, tutaweza kuiita s. 235 00:10:38,920 --> 00:10:43,840 Na kisha hii kazi yote ina nini, hatimaye, ni kurudi int. 236 00:10:43,840 --> 00:10:45,990 Sasa, jinsi gani kwamba nguvu kuwa hivyo wazi. 237 00:10:45,990 --> 00:10:49,510 Mimi nina kwenda kutekeleza mpango huu bila kuunda wa makosa ya kuangalia hivi sasa. 238 00:10:49,510 --> 00:10:55,740 Mimi tu kwenda kwa upofu kusema, kurudi chochote ni saa s mabano 0, bala, 239 00:10:55,740 --> 00:10:58,850 hebu sema, mji mkuu semicolon. 240 00:10:58,850 --> 00:10:59,960 >> Kabisa kuvunjwa. 241 00:10:59,960 --> 00:11:02,620 Ni si kamili kwa sababu moja, nini kama s ni null? 242 00:11:02,620 --> 00:11:04,000 Mambo mabaya ni kwenda kutokea. 243 00:11:04,000 --> 00:11:07,940 Mbili, nini kama barua ya kwanza katika hii jina si herufi? 244 00:11:07,940 --> 00:11:09,860 Kwamba si kwenda na kurejea nje vizuri ama. 245 00:11:09,860 --> 00:11:11,970 Inaweza kuwa ni barua lowercase au si barua wakati wote. 246 00:11:11,970 --> 00:11:15,520 Hivyo kabisa chumba kwa ajili ya kuboresha hapa, lakini hii ni wazo la msingi. 247 00:11:15,520 --> 00:11:19,010 >> Nini sisi ilivyoelezwa wiki iliyopita kwa maneno kama tu mchakato wa kuchora ramani Alice 248 00:11:19,010 --> 00:11:23,360 0 na Bob na 1 inaweza kuwa walionyesha hakika zaidi formulaically kama C 249 00:11:23,360 --> 00:11:24,320 kazi hapa. 250 00:11:24,320 --> 00:11:28,630 Kuitwa tena hash, inachukua kamba kama pembejeo, na kisha kwa namna fulani haina kitu 251 00:11:28,630 --> 00:11:31,020 na kwamba pembejeo kuzalisha pato. 252 00:11:31,020 --> 00:11:34,130 Si tofauti na maelezo yetu nyeusi sanduku kwamba tumekuwa muda mrefu kufanyika. 253 00:11:34,130 --> 00:11:36,550 Sijui jinsi hii inaweza kuwa kufanya kazi chini ya Hood. 254 00:11:36,550 --> 00:11:40,120 >> Kwa tatizo seti 6, moja ya changamoto ni kwa ajili ya wewe kuamua nini 255 00:11:40,120 --> 00:11:41,920 itakuwa kazi yako hash kuwa? 256 00:11:41,920 --> 00:11:45,760 Nini kinaendelea kuwa ndani ya kuwa nyeusi sanduku, na pengine, utakuwa ni 257 00:11:45,760 --> 00:11:50,380 kidogo ya kuvutia zaidi kuliko huu, na dhahiri zaidi kukabiliwa na kosa 258 00:11:50,380 --> 00:11:53,180 kuangalia zaidi kuliko huu hasa utekelezaji. 259 00:11:53,180 --> 00:11:54,580 >> Lakini matatizo yanaweza kutokea, sawa? 260 00:11:54,580 --> 00:11:57,760 Kama tuna muundo wa data kama vile hii moja, nini moja ya matatizo 261 00:11:57,760 --> 00:12:01,600 unaweza kukimbia katika baada ya muda kama wewe kuingiza zaidi na zaidi katika majina 262 00:12:01,600 --> 00:12:02,880 hash meza? 263 00:12:02,880 --> 00:12:04,630 Kupata migongano, haki? 264 00:12:04,630 --> 00:12:07,560 Nini kama una Alice na Haruni, watu wawili ambao majina kilichotokea 265 00:12:07,560 --> 00:12:08,190 kuanza na? 266 00:12:08,190 --> 00:12:11,660 Kwamba anaomba swali, ambapo kuweka pili vile jina? 267 00:12:11,660 --> 00:12:15,050 >> Naam, unaweza naively tu ya kuweka ambapo Bob ni mali, lakini basi ni Bob 268 00:12:15,050 --> 00:12:17,300 aina ya Star kama kujaribu kuingiza jina lake ijayo na 269 00:12:17,300 --> 00:12:18,240 hakuna chumba kwa ajili yake. 270 00:12:18,240 --> 00:12:21,400 Hivyo unaweza kuweka Bob ambapo Charlie ni, na unaweza kufikiria hii haraka sana 271 00:12:21,400 --> 00:12:23,020 kukabidhi katika kidogo ya fujo. 272 00:12:23,020 --> 00:12:25,600 Kitu linear katika mwisho, ambapo tu na kutafuta jambo zima 273 00:12:25,600 --> 00:12:28,190 kuangalia kwa Alice au Bob au Haruni au Charlie. 274 00:12:28,190 --> 00:12:33,230 >> Hivyo badala sisi mapendekezo, badala ya linearly uchunguzi kwa ajili ya maeneo ya wazi 275 00:12:33,230 --> 00:12:36,450 na plopping majina huko, sisi mapendekezo ya mbinu fancier. 276 00:12:36,450 --> 00:12:41,740 meza hash kutekelezwa bado na safu ya fahirisi, lakini aina ya data ya 277 00:12:41,740 --> 00:12:44,500 wale fahirisi sasa walikuwa kuyatumia. 278 00:12:44,500 --> 00:12:47,360 Kuyatumia kwa nini? 279 00:12:47,360 --> 00:12:48,730 Kuyatumia kwa orodha wanaohusishwa. 280 00:12:48,730 --> 00:12:53,330 >> Sababu kukumbuka kwamba orodha wanaohusishwa ni kweli tu pointer nodi, na 281 00:12:53,330 --> 00:12:57,110 nodi ana shamba ijayo, na kwamba nodi ana shamba ijayo, na kadhalika. 282 00:12:57,110 --> 00:13:00,690 Hivyo sasa unaweza kufikiria safu hii ya upande wa mkono wa kushoto wa meza hash kama 283 00:13:00,690 --> 00:13:01,820 inayoongoza kwa orodha wanaohusishwa. 284 00:13:01,820 --> 00:13:07,000 faida ya ambayo ni kama kupata mgongano kati ya Alice na Haruni, 285 00:13:07,000 --> 00:13:09,300 unafanya nini na pili vile mtu? 286 00:13:09,300 --> 00:13:14,150 Wewe tu ambatisha kwake kwa mwisho, au hata mwanzo 287 00:13:14,150 --> 00:13:15,490 ya kwamba orodha wanaohusishwa. 288 00:13:15,490 --> 00:13:17,340 >> Na kweli, hebu tu Tambi kupitia kwamba kwa ajili tu ya pili. 289 00:13:17,340 --> 00:13:18,640 Ambapo ingekuwa kufanya maana zaidi? 290 00:13:18,640 --> 00:13:22,060 Kama mimi kuingiza Alice na yeye kuishia hadi saa mahali ya kwanza, basi mimi kujaribu 291 00:13:22,060 --> 00:13:25,310 kuingiza jina la Haruni, na kuna wazi mgongano, lazima mimi kuweka 292 00:13:25,310 --> 00:13:27,400 naye mwanzoni ya orodha wanaohusishwa? 293 00:13:27,400 --> 00:13:30,944 Hiyo ni katika eneo hilo kwanza, au mwisho? 294 00:13:30,944 --> 00:13:31,440 >> Watazamaji: [inaudible]. 295 00:13:31,440 --> 00:13:31,990 >> DAVID Malan: OK. 296 00:13:31,990 --> 00:13:32,490 Nikasikia mwanzo. 297 00:13:32,490 --> 00:13:33,903 Kwa nini mwanzoni? 298 00:13:33,903 --> 00:13:34,750 >> Watazamaji: [inaudible]. 299 00:13:34,750 --> 00:13:34,940 >> DAVID Malan: OK. 300 00:13:34,940 --> 00:13:36,520 Ni herufi, hivyo kwamba ni nzuri. 301 00:13:36,520 --> 00:13:37,330 Hiyo ni mali nzuri. 302 00:13:37,330 --> 00:13:39,335 Itakuwa kuokoa yangu baadhi ya wakati uwezekano. 303 00:13:39,335 --> 00:13:43,290 Itakuwa si basi mimi kufanya binary tafuta, lakini mimi wanaweza angalau kuwa na uwezo wa kuvunja nje 304 00:13:43,290 --> 00:13:47,340 ya kitanzi kama mimi kutambua, vizuri, mimi nina njia zamani walikuwa Haruni itakuwa katika hii 305 00:13:47,340 --> 00:13:48,310 yamepangwa orodha wanaohusishwa. 306 00:13:48,310 --> 00:13:50,360 Sina kupoteza muda wangu kuangalia njia yote hadi mwisho. 307 00:13:50,360 --> 00:13:51,530 Hivyo hiyo ni ya kuridhisha. 308 00:13:51,530 --> 00:13:54,710 Kwa nini kingine ili unataka kuingiza jina mbumburisho saa 309 00:13:54,710 --> 00:13:56,660 mwanzo wa orodha? 310 00:13:56,660 --> 00:13:57,397 Nini hiyo? 311 00:13:57,397 --> 00:13:58,680 >> Watazamaji: [inaudible]. 312 00:13:58,680 --> 00:14:00,820 >> DAVID Malan: Ni inaweza kuchukua muda mrefu kupata mwisho wa orodha. 313 00:14:00,820 --> 00:14:02,490 Na kwa kweli, tena na tena. 314 00:14:02,490 --> 00:14:04,920 majina zaidi ya kuingiza kwamba kuanza na, tena kwamba 315 00:14:04,920 --> 00:14:06,280 mnyororo ni kwenda kupata. 316 00:14:06,280 --> 00:14:07,890 tena kwamba wanaohusishwa orodha ni kwenda kupata. 317 00:14:07,890 --> 00:14:09,420 Hivyo wewe ni kweli tu kupoteza muda wako. 318 00:14:09,420 --> 00:14:14,070 Labda wewe ni bora zaidi kudumisha mara kwa mara kuingizwa wakati, kubwa O ya 1, 319 00:14:14,070 --> 00:14:18,470 na daima kuweka jina mbumburisho saa mwanzo wa orodha wanaohusishwa, 320 00:14:18,470 --> 00:14:21,230 na si wasiwasi sana kama kuhusu kuchagua. 321 00:14:21,230 --> 00:14:22,600 >> Nini jibu bora? 322 00:14:22,600 --> 00:14:23,320 Ni wazi. 323 00:14:23,320 --> 00:14:26,140 Ni aina ya unategemea nini usambazaji ni, nini muundo 324 00:14:26,140 --> 00:14:27,850 ya majina wewe ni kuingiza. 325 00:14:27,850 --> 00:14:29,430 Siyo lazima Jibu la wazi. 326 00:14:29,430 --> 00:14:33,100 Lakini hapa, tena, ni nafasi ya kubuni. 327 00:14:33,100 --> 00:14:37,220 >> Hivyo sisi basi inaonekana katika jambo hili, ambayo ni kweli nafasi nyingine kubwa 328 00:14:37,220 --> 00:14:38,180 kwa ajili ya p-seti 6. 329 00:14:38,180 --> 00:14:41,770 Na kutambua, kama wewe si tayari, Zamyla dives katika wawili hawa, hash 330 00:14:41,770 --> 00:14:43,260 meza na inajaribu, kwa undani zaidi. 331 00:14:43,260 --> 00:14:45,630 Na walkthrough video iliyoingia katika spec p-kuweka. 332 00:14:45,630 --> 00:14:46,590 Hii ilikuwa trie - 333 00:14:46,590 --> 00:14:51,670 T-R-I-E. Na nini ilikuwa ya kuvutia kuhusu huu ni kwamba wakati mbio 334 00:14:51,670 --> 00:14:59,510 ya kutafuta kwa jina, kama Maxwell mara ya mwisho, ilikuwa kubwa O ya nini? 335 00:14:59,510 --> 00:15:01,040 Nini hiyo? 336 00:15:01,040 --> 00:15:01,920 >> Watazamaji: idadi ya barua. 337 00:15:01,920 --> 00:15:02,550 >> DAVID Malan: Idadi ya barua. 338 00:15:02,550 --> 00:15:03,210 Nikasikia mambo mawili. 339 00:15:03,210 --> 00:15:04,630 Idadi ya herufi na wakati mara kwa mara. 340 00:15:04,630 --> 00:15:05,540 Basi hebu kwenda na kwamba kwanza. 341 00:15:05,540 --> 00:15:06,410 idadi ya herufi. 342 00:15:06,410 --> 00:15:10,195 Naam, hii muundo wa data, kukumbuka, ni kama mti, mti wa familia, kila moja ya 343 00:15:10,195 --> 00:15:12,860 nodes ambaye ni alifanya juu ya arrays. 344 00:15:12,860 --> 00:15:16,300 Na wale arrays ni kuyatumia na wengine vile nodes, au nyingine kama 345 00:15:16,300 --> 00:15:17,670 arrays katika mti. 346 00:15:17,670 --> 00:15:22,890 >> Hivyo kama sisi alitaka kisha kuamua kama Maxwell ni katika hapa, mimi ili kwenda 347 00:15:22,890 --> 00:15:26,890 na safu ya kwanza, katika sana juu ya mti, mizizi kinachojulikana, juu ya 348 00:15:26,890 --> 00:15:30,521 trie, na kisha kufuata pointer m, kisha pointer, kisha x, 349 00:15:30,521 --> 00:15:31,710 w, e, l, l. 350 00:15:31,710 --> 00:15:34,910 Na kisha wakati mimi kuona baadhi ya alama maalum, ulionyehsa hapa kama pembetatu. 351 00:15:34,910 --> 00:15:38,480 Katika kanuni utaona sisi kupendekeza kwamba wewe kutekelezwa kama bool, kusema tu ndiyo 352 00:15:38,480 --> 00:15:40,540 au hakuna, neno ataacha hapa. 353 00:15:40,540 --> 00:15:45,270 >> Naam, mara moja tumeenda kwa M-A-X-W-E-L-L, anahisi kama saba, labda 354 00:15:45,270 --> 00:15:48,910 nane kama sisi kwenda moja siku za nyuma, nane hatua ya kupata Maxwell. 355 00:15:48,910 --> 00:15:53,050 Au hebu kuiita K. Lakini kukumbuka mwisho wakati, mimi alisema kwamba kama kuna 356 00:15:53,050 --> 00:15:57,540 realistically urefu upeo juu ya neno, kama 40-baadhi ya isiyo ya kawaida wahusika, 357 00:15:57,540 --> 00:16:00,810 upeo urefu ina maana thamani mara kwa mara. 358 00:16:00,810 --> 00:16:05,770 Hivyo kweli, ndiyo, ni kitaalam kubwa O wa 8 au 7, au O kweli kubwa ya K. Lakini 359 00:16:05,770 --> 00:16:09,420 kama kuna cap finite juu ya nini K inaweza kuwa, ni mara kwa mara. 360 00:16:09,420 --> 00:16:12,080 Na hivyo ni kubwa O ya 1 katika mwisho wa siku. 361 00:16:12,080 --> 00:16:13,040 >> Si katika ulimwengu wa kweli. 362 00:16:13,040 --> 00:16:15,960 Si wakati kwa kweli kuanza kuangalia saa yako kama mbio ya mpango wako. 363 00:16:15,960 --> 00:16:20,690 Ni kabisa kwenda kuwa kidogo polepole zaidi kuliko kweli mara kwa mara 364 00:16:20,690 --> 00:16:21,840 muda na hatua moja. 365 00:16:21,840 --> 00:16:25,540 Ni kwenda kuwa saba au nane hatua, lakini bado hiyo ni mengi, bora 366 00:16:25,540 --> 00:16:30,080 kuliko algorithm kama kubwa O ya n kwamba inategemea ukubwa wa nini katika 367 00:16:30,080 --> 00:16:31,220 data muundo. 368 00:16:31,220 --> 00:16:34,970 >> Taarifa kichwa hapa ni tunaweza kuingiza zaidi ya milioni majina ndani ya hii 369 00:16:34,970 --> 00:16:38,170 data muundo, lakini jinsi wengi zaidi hatua ni kwenda kuchukua sisi kupata 370 00:16:38,170 --> 00:16:40,480 Maxwell katika kesi hiyo? 371 00:16:40,480 --> 00:16:40,780 Hakuna. 372 00:16:40,780 --> 00:16:41,820 Yeye ni unaffected. 373 00:16:41,820 --> 00:16:45,480 Na hadi sasa, sidhani tumeona mfano wa muundo wa data au 374 00:16:45,480 --> 00:16:48,560 algorithm kwamba ilikuwa kabisa unaffected na nje 375 00:16:48,560 --> 00:16:50,040 tabia kama hiyo. 376 00:16:50,040 --> 00:16:51,160 Lakini hii inaweza kuwa ya ajabu. 377 00:16:51,160 --> 00:16:52,900 Hii haiwezi kuwa suluhisho pekee kwa p kuweka- 378 00:16:52,900 --> 00:16:53,570 >> Na si. 379 00:16:53,570 --> 00:16:55,980 Hii si lazima data muundo unapaswa wanaamua kwenda, 380 00:16:55,980 --> 00:16:58,220 kwa sababu kama meza hash, tradeoff. 381 00:16:58,220 --> 00:17:00,500 Nini bei ya kulipa hapa? 382 00:17:00,500 --> 00:17:00,940 Kumbukumbu. 383 00:17:00,940 --> 00:17:02,890 I mean, hii ni za mauaji kiasi cha kumbukumbu. 384 00:17:02,890 --> 00:17:05,569 Na huwezi kabisa kuona hapa kwa sababu mwandishi wa picha hii 385 00:17:05,569 --> 00:17:09,420 wazi truncated yote ya arrays, na sisi siyo kuona kura ya na 386 00:17:09,420 --> 00:17:12,700 B na C na Q na Y ya na Z katika arrays haya. 387 00:17:12,700 --> 00:17:13,630 Lakini wao uko pale. 388 00:17:13,630 --> 00:17:17,660 >> Kila moja ya nodi hiyo ni safu nzima ya baadhi ya 26 au zaidi ka, kila aina ya 389 00:17:17,660 --> 00:17:19,170 ambayo inawakilisha barua. 390 00:17:19,170 --> 00:17:22,920 27 katika kesi yetu, ili tuweze kusaidia apostrophes katika kuweka tatizo. 391 00:17:22,920 --> 00:17:27,030 Hivyo mfumo huu data ni kweli, kweli mnene na upana. 392 00:17:27,030 --> 00:17:30,880 Na kwamba peke yake inaweza kuishia kupunguza mambo ya chini, au angalau gharama wewe 393 00:17:30,880 --> 00:17:32,240 mengi zaidi nafasi. 394 00:17:32,240 --> 00:17:34,020 Lakini tena, tunaweza kuchora kulinganisha hapa. 395 00:17:34,020 --> 00:17:39,190 >> Kumbuka wakati nyuma, sisi mafanikio kiasi zaidi ya kusisimua mbio wakati katika kuchagua 396 00:17:39,190 --> 00:17:42,880 wakati sisi kutumia kuunganisha aina, lakini bei ya sisi kulipwa kufikia n logi n kwa kuunganisha 397 00:17:42,880 --> 00:17:46,930 aina required kwamba sisi kutumia zaidi nini rasilimali? 398 00:17:46,930 --> 00:17:47,690 Nafasi zaidi. 399 00:17:47,690 --> 00:17:50,530 Sisi zinahitajika safu ya sekondari kwa nakala watu ndani, kama 400 00:17:50,530 --> 00:17:51,620 tulivyofanya hapa juu ya hatua. 401 00:17:51,620 --> 00:17:55,880 Hivyo tena, hakuna washindi wazi, lakini tu subjective kubuni 402 00:17:55,880 --> 00:17:57,710 maamuzi kufanywa. 403 00:17:57,710 --> 00:17:58,060 >> Wote haki. 404 00:17:58,060 --> 00:17:59,130 Basi vipi kuhusu hili? 405 00:17:59,130 --> 00:18:02,050 Mtu yeyote kutambua ambayo D-Hall? 406 00:18:02,050 --> 00:18:02,440 OK. 407 00:18:02,440 --> 00:18:03,170 Hivyo sisi watatu kufanya. 408 00:18:03,170 --> 00:18:03,750 Mather House. 409 00:18:03,750 --> 00:18:05,070 Hivyo hii ni kwa dining Mather ya. 410 00:18:05,070 --> 00:18:09,650 Mimi itabidi bet kumbi zote dining kuwa mwingi wa sania kama hii. 411 00:18:09,650 --> 00:18:11,950 Na hii ni kweli mwakilishi ya kitu tumekuwa 412 00:18:11,950 --> 00:18:13,050 wazi kuonekana tayari. 413 00:18:13,050 --> 00:18:14,850 Sisi kuitwa ni halisi stack. 414 00:18:14,850 --> 00:18:18,970 Na stack, katika suala la wako kumbukumbu ya kompyuta, ni mahali ambapo takwimu huenda 415 00:18:18,970 --> 00:18:20,460 wakati kazi ni kuitwa. 416 00:18:20,460 --> 00:18:23,410 >> Kwa mfano, ni aina gani ya mambo kwenda juu ya stack kwa heshima na 417 00:18:23,410 --> 00:18:27,420 kumbukumbu mpangilio tumekuwa kujadiliwa katika kipindi cha wiki? 418 00:18:27,420 --> 00:18:28,736 Nini hiyo? 419 00:18:28,736 --> 00:18:29,670 >> Watazamaji: Wito kwa kazi. 420 00:18:29,670 --> 00:18:30,260 >> DAVID Malan: Samahani. 421 00:18:30,260 --> 00:18:31,210 >> Watazamaji: Wito kwa kazi. 422 00:18:31,210 --> 00:18:33,590 >> DAVID Malan: Wito kwa kazi, lakini hasa, nini ndani ya kila moja ya 423 00:18:33,590 --> 00:18:35,340 wale muafaka? 424 00:18:35,340 --> 00:18:37,220 Ni aina gani ya mambo? 425 00:18:37,220 --> 00:18:37,460 Yeah. 426 00:18:37,460 --> 00:18:38,500 Hivyo mitaa vigezo. 427 00:18:38,500 --> 00:18:43,080 Wakati wowote sisi zinahitajika baadhi ya kuhifadhi mitaa, kama hoja, au int mimi, au int 428 00:18:43,080 --> 00:18:45,940 temp, au chochote mitaa kutofautiana ni, tumekuwa 429 00:18:45,940 --> 00:18:47,210 kuweka kwamba kwenye stack. 430 00:18:47,210 --> 00:18:49,610 Na sisi kuiita stack kwa sababu ya kwamba wazo layering. 431 00:18:49,610 --> 00:18:52,940 Aina tu ya mechi up na hali halisi, dhana yake. 432 00:18:52,940 --> 00:18:56,650 >> Lakini zinageuka kuwa stack unaweza pia kuonekana kama muundo wa data, 433 00:18:56,650 --> 00:19:00,110 mbadala kwa safu, mbadala kwenye orodha ya wanaohusishwa. 434 00:19:00,110 --> 00:19:02,770 Kitu conceptually zaidi ya kuvutia kwamba bado anaweza kuwa 435 00:19:02,770 --> 00:19:06,030 kutekelezwa kwa kutumia aidha ya wale mambo, lakini ni aina tofauti ya 436 00:19:06,030 --> 00:19:09,140 data muundo wa kusaidia, kwa kweli, mbili tu shughuli. 437 00:19:09,140 --> 00:19:11,000 Lakini unaweza kuongeza juu ya fancier sifa zaidi ya hizi. 438 00:19:11,000 --> 00:19:12,180 Lakini haya ni mambo ya msingi - 439 00:19:12,180 --> 00:19:13,510 kushinikiza na pop. 440 00:19:13,510 --> 00:19:19,240 >> Na wazo na stack ni kwamba kama mimi hapa, na au bila Annenberg 441 00:19:19,240 --> 00:19:22,880 kujua, tray kutoka mlango wa pili na namba 9 juu yake. 442 00:19:22,880 --> 00:19:23,870 Hivyo tu int. 443 00:19:23,870 --> 00:19:26,990 Na mimi nataka hii kushinikiza kwenye data muundo, ambayo kwa sasa ni tupu. 444 00:19:26,990 --> 00:19:28,790 Fikiria hili chini ya stack. 445 00:19:28,790 --> 00:19:33,150 Napenda kushinikiza hii namba 9 kwenye stack, na sasa ni haki pale. 446 00:19:33,150 --> 00:19:36,040 >> Lakini jambo kuvutia kuhusu stack ni kwamba kama mimi sasa wanataka kushinikiza 447 00:19:36,040 --> 00:19:40,210 baadhi ya thamani ya wengine, kama 17, na mimi kushinikiza hii kwenye stack, mimi naenda kufanya 448 00:19:40,210 --> 00:19:43,290 tu angavu kitu, Mimi tu kwenda ili kuweka haki ambapo sisi binadamu 449 00:19:43,290 --> 00:19:45,180 itakuwa kutega kuweka, juu. 450 00:19:45,180 --> 00:19:48,850 Lakini nini kuvutia sasa ni, jinsi gani mimi kupata saa 9? 451 00:19:48,850 --> 00:19:50,670 Unajua, mimi si bila juhudi baadhi. 452 00:19:50,670 --> 00:19:54,070 >> Basi nini kuvutia kuhusu stack ni kwamba kwa kubuni, 453 00:19:54,070 --> 00:19:56,330 ni data LIFO muundo. 454 00:19:56,330 --> 00:19:59,680 Silly njia ya kuelezea mwisho, kwanza nje. 455 00:19:59,680 --> 00:20:03,280 Hivyo idadi ya mwisho katika wakati huu ilikuwa 17. 456 00:20:03,280 --> 00:20:07,540 Hivyo kama nataka pop kitu mbali ya stack, inaweza tu kuwa 17. 457 00:20:07,540 --> 00:20:11,890 Hivyo kuna utaratibu lazima ya shughuli hapa, ambapo bidhaa mwisho 458 00:20:11,890 --> 00:20:14,260 katika ina kuwa ya kwanza mmoja nje. 459 00:20:14,260 --> 00:20:16,440 Hivyo kifupi, LIFO. 460 00:20:16,440 --> 00:20:19,160 >> Hivyo kwa nini huenda hii kuwa muhimu? 461 00:20:19,160 --> 00:20:22,690 Ni mazingira yao ambayo wewe d wanataka muundo wa data kama hii? 462 00:20:22,690 --> 00:20:24,810 Naam, ni hakika imekuwa muhimu ndani ya kompyuta. 463 00:20:24,810 --> 00:20:29,050 Hivyo uendeshaji wa mifumo ya wazi kutumia hii aina ya data muundo kwa mwingi. 464 00:20:29,050 --> 00:20:32,800 Tutaweza pia kuona wazo moja linapokuja kurasa za mtandao. 465 00:20:32,800 --> 00:20:35,890 Hivyo wiki hii na wiki ijayo na zaidi, na kama wewe kuanza kutekeleza mtandao 466 00:20:35,890 --> 00:20:39,490 kurasa katika lugha inayoitwa HTML, unaweza kweli matumizi ya muundo wa data kama 467 00:20:39,490 --> 00:20:42,690 hii kuamua kama ukurasa ni ipo. 468 00:20:42,690 --> 00:20:47,170 Kwa sababu tutaweza kuona kurasa za mtandao wote kufuata aina ya uongozi, anatengeneza 469 00:20:47,170 --> 00:20:52,030 kwamba, mwisho wa siku, kuwa mti muundo wa chini ya Hood. 470 00:20:52,030 --> 00:20:53,620 Hivyo zaidi juu ya kwamba katika kidogo tu. 471 00:20:53,620 --> 00:20:56,560 >> Lakini kwa sasa, hebu kupendekeza kwa sasa, ni jinsi gani sisi kwenda juu 472 00:20:56,560 --> 00:20:58,830 anayewakilisha nini stack ni? 473 00:20:58,830 --> 00:21:03,370 Napenda kupendekeza kwamba sisi kutekeleza stack na kanuni kama hii. 474 00:21:03,370 --> 00:21:07,990 Hivyo stack ni kwenda na ndani yake mambo mawili, safu, aitwaye sania, 475 00:21:07,990 --> 00:21:09,510 tu kuwa thabiti na demo. 476 00:21:09,510 --> 00:21:12,660 Na kila moja ya vitu katika safu kwamba ni kwenda kuwa int aina. 477 00:21:12,660 --> 00:21:14,740 Na uwezo ni labda nini? 478 00:21:14,740 --> 00:21:18,796 Sababu nimekuwa Hayakuandikwa kamili ufafanuzi hapa. 479 00:21:18,796 --> 00:21:21,535 >> Ni pengine upeo ukubwa wa safu. 480 00:21:21,535 --> 00:21:25,150 Na pengine ni alitangaza kama mkali kufafanua juu ya faili, baadhi ya 481 00:21:25,150 --> 00:21:28,450 aina ya mara kwa mara kama alisema kwa mtaji tu. 482 00:21:28,450 --> 00:21:32,250 Hivyo uwezo mahali fulani inaelezwa kama kawaida ya upeo iwezekanavyo. 483 00:21:32,250 --> 00:21:35,590 Wakati huo huo, ndani ya muundo data inayojulikana kama stack kutakuwa 484 00:21:35,590 --> 00:21:38,630 kuwa integer tu inajulikana tu kama kawaida. 485 00:21:38,630 --> 00:21:43,400 >> Hivyo kama ningekuwa na kuwakilisha hii sasa pictorially, hebu tuseme kwamba hii 486 00:21:43,400 --> 00:21:48,070 nzima sanduku nyeusi inawakilisha stack yangu. 487 00:21:48,070 --> 00:21:50,070 Ndani yake ni mbili vigezo. 488 00:21:50,070 --> 00:21:54,780 Hivyo nina kwenda kuteka kwanza moja kama kawaida. 489 00:21:54,780 --> 00:21:57,420 Na wa pili mimi naenda kuteka kama safu. 490 00:21:57,420 --> 00:22:01,060 >> Lakini tu kuweka mambo kwa utaratibu, kawaida napenda kuteka safu kama 491 00:22:01,060 --> 00:22:04,910 hii, lakini ni ya aina ya nice kama sisi mechi ya ukweli, au 492 00:22:04,910 --> 00:22:06,230 mechi mfano wa akili. 493 00:22:06,230 --> 00:22:12,880 Hivyo basi mimi badala kuteka safu wima, ambayo ni ya haki, tena, 494 00:22:12,880 --> 00:22:13,840 msanii wa kuhamisha wafungwa. 495 00:22:13,840 --> 00:22:16,610 Kweli haina jambo nini ni chini ya Hood. 496 00:22:16,610 --> 00:22:20,350 Na tutaweza kusema kwamba, kwa default, uwezo ni kwenda kuwa tatu. 497 00:22:20,350 --> 00:22:23,480 Hivyo hii itakuwa mahali 0, hii itakuwa eneo 1, hii 498 00:22:23,480 --> 00:22:25,740 itakuwa mahali 2. 499 00:22:25,740 --> 00:22:29,330 >> Kama mimi rushwa na mpira stress, ingekuwa mtu kama kuja juu na kukimbia 500 00:22:29,330 --> 00:22:30,870 bodi ya hapa kwa muda tu? 501 00:22:30,870 --> 00:22:31,960 OK, niliona mkono wako wa kwanza. 502 00:22:31,960 --> 00:22:33,950 Kuja juu juu. 503 00:22:33,950 --> 00:22:36,500 Wote haki. 504 00:22:36,500 --> 00:22:38,760 Hivyo mimi kuamini kuwa ni Steven. 505 00:22:38,760 --> 00:22:40,035 Kuja juu juu. 506 00:22:40,035 --> 00:22:40,770 Wote haki. 507 00:22:40,770 --> 00:22:46,760 >> Lakini tuseme sasa sisi rewind ya awali hali ya dunia ambapo mimi 508 00:22:46,760 --> 00:22:52,180 kuwa tu alitangaza stack, na ni kwenda kuwa ya uwezo wa tatu. 509 00:22:52,180 --> 00:22:54,470 Lakini ukubwa bado ilivyopangwa. 510 00:22:54,470 --> 00:22:56,100 Sania bado ilivyopangwa. 511 00:22:56,100 --> 00:22:57,300 Hivyo wanandoa wa maswali ya kwanza. 512 00:22:57,300 --> 00:23:01,310 Na nikupe mic hivyo unaweza kushiriki kikamilifu zaidi katika hili. 513 00:23:01,310 --> 00:23:05,190 >> Hivyo ni nini ndani ya kawaida katika wakati huu katika wakati kama wote nimefanya ni 514 00:23:05,190 --> 00:23:09,340 alitangaza stack na mstari mmoja wa kanuni? 515 00:23:09,340 --> 00:23:10,100 >> Steven: Si sana. 516 00:23:10,100 --> 00:23:12,080 >> DAVID Malan: OK, si sana. 517 00:23:12,080 --> 00:23:14,410 Je, sisi kujua nini ndani ya kawaida, gani tunajua nini ndani 518 00:23:14,410 --> 00:23:16,330 wa safu hii hapa? 519 00:23:16,330 --> 00:23:18,630 >> Steven: Tu random kanuni, haki? 520 00:23:18,630 --> 00:23:20,220 Tu - 521 00:23:20,220 --> 00:23:23,230 >> DAVID Malan: Yeah, mimi naenda kuiita kanuni, lakini random - 522 00:23:23,230 --> 00:23:23,820 >> Steven: Mambo. 523 00:23:23,820 --> 00:23:28,290 >> DAVID Malan: Mambo kama random 524 00:23:28,290 --> 00:23:28,870 >> Steven: Bits. 525 00:23:28,870 --> 00:23:29,530 >> DAVID Malan: Bits, haki? 526 00:23:29,530 --> 00:23:31,190 Hivyo takataka maadili, haki? 527 00:23:31,190 --> 00:23:33,470 Hivyo permutations ya ya 0 na 1 ya. 528 00:23:33,470 --> 00:23:35,920 Mabaki ya Matumizi uliopita ya kumbukumbu hii. 529 00:23:35,920 --> 00:23:38,150 Na sisi si kweli kujua nini maadili ni, hivyo sisi kawaida kuteka yao 530 00:23:38,150 --> 00:23:38,930 kama alama ya kuuliza. 531 00:23:38,930 --> 00:23:41,990 >> Hivyo jambo la kwanza tuko labda kwenda kutaka kufanya hapa - 532 00:23:41,990 --> 00:23:46,630 na napenda kutoa hii shamba ndani ya huko jina - sania. 533 00:23:46,630 --> 00:23:49,540 Tufanye labda initialize ukubwa kama tunataka 534 00:23:49,540 --> 00:23:51,040 kuanza kutumia hii stack? 535 00:23:51,040 --> 00:23:53,070 >> Steven: Tray ni ndogo 3. 536 00:23:53,070 --> 00:23:53,910 >> DAVID Malan: Hivyo, OK. 537 00:23:53,910 --> 00:23:56,710 Kuwa wazi, uwezo ni alitangaza mahali pengine kama tatu. 538 00:23:56,710 --> 00:23:58,570 Na kwamba ni nini nimekuwa kutumika kutenga safu. 539 00:23:58,570 --> 00:24:03,535 Ukubwa ni kwenda kwa kutaja jinsi wengi sania sasa ni juu ya stack. 540 00:24:03,535 --> 00:24:03,880 >> Steven: Zero. 541 00:24:03,880 --> 00:24:04,460 >> DAVID Malan: Hivyo ni lazima sifuri. 542 00:24:04,460 --> 00:24:07,760 Hivyo kwenda mbele, na kwa kidole yoyote, kuteka sifuri katika kawaida. 543 00:24:07,760 --> 00:24:08,440 Wote haki. 544 00:24:08,440 --> 00:24:10,920 Hivyo sasa, nini ndani ya hii hapa, hatujui. 545 00:24:10,920 --> 00:24:12,160 Haya ni kweli tu takataka maadili. 546 00:24:12,160 --> 00:24:14,800 Hivyo tunaweza kuchora alama swali, lakini hebu kuweka bodi safi kwa sasa 547 00:24:14,800 --> 00:24:16,300 kwa sababu haijalishi kuna nini huko. 548 00:24:16,300 --> 00:24:19,130 Hatuna haja ya initialize safu kwa kitu chochote, kwa sababu kama tunajua kwamba 549 00:24:19,130 --> 00:24:23,100 ukubwa wa stack ni sifuri, vizuri, sisi haipaswi kuangalia kitu chochote katika 550 00:24:23,100 --> 00:24:25,590 hii safu anyway saa hatua hii kwa wakati. 551 00:24:25,590 --> 00:24:29,970 >> Hivyo sasa tuseme kwamba mimi kushinikiza namba 9 kwenye stack. 552 00:24:29,970 --> 00:24:33,750 Ni jinsi gani sisi update data muundo ndani ya sanduku hili nyeusi? 553 00:24:33,750 --> 00:24:35,540 Nini maadili haja ya mabadiliko? 554 00:24:35,540 --> 00:24:36,200 >> Steven: Ndani - 555 00:24:36,200 --> 00:24:37,400 kawaida? 556 00:24:37,400 --> 00:24:37,650 >> DAVID Malan: OK. 557 00:24:37,650 --> 00:24:38,770 Kawaida lazima kuwa nini? 558 00:24:38,770 --> 00:24:39,580 >> Steven: Ukubwa itakuwa moja. 559 00:24:39,580 --> 00:24:39,870 >> DAVID Malan: OK. 560 00:24:39,870 --> 00:24:41,110 Hivyo ukubwa uwe moja. 561 00:24:41,110 --> 00:24:42,540 Hivyo unaweza kufanya hivyo kwa njia ya wanandoa. 562 00:24:42,540 --> 00:24:46,920 Nikupe, sasa wako kidole ni Raba. 563 00:24:46,920 --> 00:24:47,260 Wote haki. 564 00:24:47,260 --> 00:24:49,960 Basi sasa kidole yako ni brashi. 565 00:24:49,960 --> 00:24:50,330 Wote haki. 566 00:24:50,330 --> 00:24:52,820 Na sasa nini kingine ina mabadiliko, ni wazi, katika muundo wa data? 567 00:24:52,820 --> 00:24:57,060 >> Steven: Sisi ni kwenda kutoka chini hadi 9. 568 00:24:57,060 --> 00:24:57,760 >> DAVID Malan: 9. 569 00:24:57,760 --> 00:24:58,420 OK, Good. 570 00:24:58,420 --> 00:25:01,550 Hivyo bado haijalishi nini katika eneo moja au mbili kwa sababu wao ni 571 00:25:01,550 --> 00:25:04,520 takataka maadili, lakini sisi lazima bother kuangalia pale kwa sababu ya kawaida ni 572 00:25:04,520 --> 00:25:07,540 kutuambia kwamba tu kipengele kwanza ni kweli ni halali. 573 00:25:07,540 --> 00:25:10,400 Hivyo sasa mimi kushinikiza 17 kwenye orodha. 574 00:25:10,400 --> 00:25:11,830 Nini kinatokea kwa picha hii? 575 00:25:11,830 --> 00:25:14,720 >> Steven: Hivyo ukubwa ni kwenda kwenda mbili. 576 00:25:14,720 --> 00:25:15,300 >> DAVID Malan: OK. 577 00:25:15,300 --> 00:25:16,070 Wewe Raba - 578 00:25:16,070 --> 00:25:16,810 oops. 579 00:25:16,810 --> 00:25:18,026 Wewe Raba. 580 00:25:18,026 --> 00:25:18,840 >> Steven: Raba. 581 00:25:18,840 --> 00:25:19,720 >> DAVID Malan: Wewe ni brashi. 582 00:25:19,720 --> 00:25:20,560 >> Steven: Brashi. 583 00:25:20,560 --> 00:25:20,920 >> DAVID Malan: OK. 584 00:25:20,920 --> 00:25:21,600 Na nini kingine? 585 00:25:21,600 --> 00:25:22,600 >> Steven: Na kisha sisi - 586 00:25:22,600 --> 00:25:22,915 >> DAVID Malan: Sisi kusukuma 17. 587 00:25:22,915 --> 00:25:24,760 >> Steven: Sisi fimbo 17 juu, hivyo - 588 00:25:24,760 --> 00:25:25,710 >> DAVID Malan: OK, nzuri. 589 00:25:25,710 --> 00:25:27,040 >> Steven: - kushuka chini. 590 00:25:27,040 --> 00:25:27,530 >> DAVID Malan: zote haki. 591 00:25:27,530 --> 00:25:27,940 Ni kupata rahisi. 592 00:25:27,940 --> 00:25:29,300 Mimi si kwenda kukusaidia wakati huu. 593 00:25:29,300 --> 00:25:30,510 Kushinikiza 22. 594 00:25:30,510 --> 00:25:31,720 >> Steven: Done. 595 00:25:31,720 --> 00:25:34,870 Kuwa Raba. 596 00:25:34,870 --> 00:25:37,340 Mimi nina kuwa na brashi. 597 00:25:37,340 --> 00:25:39,340 Na kisha Mimi kuweka 22. 598 00:25:39,340 --> 00:25:40,100 >> DAVID Malan: 22. 599 00:25:40,100 --> 00:25:40,620 Bora. 600 00:25:40,620 --> 00:25:41,380 Hivyo muda zaidi. 601 00:25:41,380 --> 00:25:44,280 Mimi sasa kwenda kushinikiza kwenye stack 26. 602 00:25:44,280 --> 00:25:46,350 >> Steven: Ooh. 603 00:25:46,350 --> 00:25:50,278 Oh gosh. 604 00:25:50,278 --> 00:25:52,520 Wewe kweli hawakupata yangu mbali ulinzi. 605 00:25:52,520 --> 00:25:53,703 >> DAVID Malan: Wewe si kuona hii inayokuja? 606 00:25:53,703 --> 00:25:55,930 >> Steven: Sikuona hii ijayo. 607 00:25:55,930 --> 00:25:58,756 Naweza sisi re-awali uwezo? 608 00:25:58,756 --> 00:25:59,790 >> DAVID Malan: Hiyo ni swali zuri. 609 00:25:59,790 --> 00:26:02,360 Hivyo tumekuwa aina ya walijenga wenyewe katika kona hapa. 610 00:26:02,360 --> 00:26:06,740 Pale kweli hakuna nzuri nje kwa Steven kwa sababu tumekuwa zilizotengwa hii safu 611 00:26:06,740 --> 00:26:09,130 statically, hivyo kusema, ndani ya ya muundo wa data. 612 00:26:09,130 --> 00:26:12,170 Na tumekuwa kimsingi ngumu coded kuwa ni ya kawaida tatu. 613 00:26:12,170 --> 00:26:14,170 Hivyo hatuwezi kweli reallocate yake. 614 00:26:14,170 --> 00:26:20,020 >> Tunaweza kama sisi akaenda nyuma katika, sisi upya sania kuwa pointer kwamba 615 00:26:20,020 --> 00:26:22,300 sisi kisha kutumia malloc mkono kumbukumbu. 616 00:26:22,300 --> 00:26:25,050 Kwa sababu kama sisi got kumbukumbu kutoka lundo kupitia malloc, sisi 617 00:26:25,050 --> 00:26:26,430 ingeweza huru yake. 618 00:26:26,430 --> 00:26:29,630 Lakini kabla ya kumkomboa, tunaweza reallocate chunk kubwa ya kumbukumbu, 619 00:26:29,630 --> 00:26:31,330 update pointer, na kadhalika. 620 00:26:31,330 --> 00:26:33,500 Lakini kwa sasa, hii ni kweli bora tunaweza kufanya. 621 00:26:33,500 --> 00:26:36,360 Kushinikiza na pop ni labda kwenda kuwa na kuashiria baadhi ya makosa. 622 00:26:36,360 --> 00:26:40,270 >> Hivyo kwa mfano, yetu utekelezaji ya kushinikiza inaweza kurudi bool ambayo 623 00:26:40,270 --> 00:26:42,390 awali akarudi kweli, kweli, kweli. 624 00:26:42,390 --> 00:26:48,390 Lakini mara ya nne, ni kwenda kuwa kurudi uongo, kwa mfano. 625 00:26:48,390 --> 00:26:48,540 Wote haki. 626 00:26:48,540 --> 00:26:49,540 Vizuri sana kufanyika. 627 00:26:49,540 --> 00:26:50,060 Hongera. 628 00:26:50,060 --> 00:26:52,160 Ve chuma dhiki yako mpira leo. 629 00:26:52,160 --> 00:26:53,110 >> [Makofi] 630 00:26:53,110 --> 00:26:54,382 >> Steven: Asante. 631 00:26:54,382 --> 00:26:55,680 >> DAVID Malan: Asante. 632 00:26:55,680 --> 00:26:59,740 OK, hivyo hii inaonekana kuwa si nyingi ya hatua mbele, haki? 633 00:26:59,740 --> 00:27:01,410 Sisi ilivyoelezwa muundo huu data. 634 00:27:01,410 --> 00:27:02,320 Imekuwa ni kulazimisha, haki? 635 00:27:02,320 --> 00:27:03,200 Uendeshaji wa mifumo kama hiyo. 636 00:27:03,200 --> 00:27:06,360 Inavyoonekana mtandao wanaweza kufanya matumizi ya hii, na maombi mengine bado. 637 00:27:06,360 --> 00:27:10,870 Lakini kile kiwango cha juu kijinga kwamba tuko nyuma kwa aina ya wiki mbili ya mipaka ya 638 00:27:10,870 --> 00:27:12,880 ambapo tuna fasta arrays kawaida. 639 00:27:12,880 --> 00:27:15,010 >> Hivyo kuna kweli michache ya njia sisi inaweza kutatua hili. 640 00:27:15,010 --> 00:27:18,750 Tunaweza dynamically kutenga safu, si kwa bidii coding kama nimekuwa 641 00:27:18,750 --> 00:27:22,600 kufanyika hapa, lakini badala yake tena kutangaza hii, tu kuwa wazi, kama 642 00:27:22,600 --> 00:27:23,830 kitu kama hiki. 643 00:27:23,830 --> 00:27:29,040 Int * sania, si kuamua juu ya uwezo bado. 644 00:27:29,040 --> 00:27:35,460 Lakini wakati mimi kutangaza stack mahali pengine katika kanuni yangu, mimi naweza kisha piga malloc, 645 00:27:35,460 --> 00:27:38,250 kupata anwani ya chunk ya kumbukumbu, na mimi nilikuwa hawawajui 646 00:27:38,250 --> 00:27:39,980 kwamba anwani kwa sania. 647 00:27:39,980 --> 00:27:43,340 >> Na kisha, kwa sababu ni tu chunk ya kumbukumbu, mimi naweza kuendelea kutumia mraba 648 00:27:43,340 --> 00:27:45,450 bracket nukuu katika njia ya kawaida. 649 00:27:45,450 --> 00:27:49,020 Sababu tena, kuna aina ya hii kazi sawa ya arrays na 650 00:27:49,020 --> 00:27:50,820 chunks ya kumbukumbu kwamba kuja nyuma kutoka malloc. 651 00:27:50,820 --> 00:27:53,090 Tunaweza kutibu mtu kama wengine kutumia hesabu au pointer 652 00:27:53,090 --> 00:27:54,440 mraba mabano nukuu. 653 00:27:54,440 --> 00:27:55,660 Hivyo kwamba ni moja ya mbinu. 654 00:27:55,660 --> 00:28:00,120 >> Lakini jinsi ya mwingine ili sisi kutekeleza hii data muundo huo, uwezekano wa? 655 00:28:00,120 --> 00:28:00,280 Haki? 656 00:28:00,280 --> 00:28:04,530 Najisikia kama sisi tu kutatuliwa hii tatizo kama wiki moja iliyopita. 657 00:28:04,530 --> 00:28:08,860 Nini ilikuwa ufumbuzi wa tatizo hili kwamba Steven mbio katika? 658 00:28:08,860 --> 00:28:10,370 Hivyo wanaohusishwa orodha, kulia. 659 00:28:10,370 --> 00:28:13,410 >> Kama tatizo ni kwamba sisi ni uchoraji sisi wenyewe ndani ya kona na kugawa 660 00:28:13,410 --> 00:28:17,580 mapema kumbukumbu kidogo sana kwamba sisi kisha kuwa kwa namna fulani kukabiliana na, pia, 661 00:28:17,580 --> 00:28:19,880 nini siyo tu kwamba kuepuka suala kabisa? 662 00:28:19,880 --> 00:28:26,170 Mbona si tu kutangaza sania kuwa pointer ergo nodi, orodha wanaohusishwa, 663 00:28:26,170 --> 00:28:30,740 na kisha tu kutenga nodes mpya kila wakati Steven zinahitajika fit 664 00:28:30,740 --> 00:28:32,400 simu katika muundo wa data. 665 00:28:32,400 --> 00:28:34,200 >> Hivyo picha bila kuwa na mabadiliko. 666 00:28:34,200 --> 00:28:38,220 Ni si kwenda kuwa kama safi na kama rahisi kama tu safu ya ints tatu. 667 00:28:38,220 --> 00:28:42,970 Sasa ni kwenda kuwa pointer struct, na struct kwamba ni kwenda 668 00:28:42,970 --> 00:28:44,830 kuwa int na pointer ijayo. 669 00:28:44,830 --> 00:28:47,670 Ni kwenda kuongoza kupitia pointer kwamba na mwingine struct vile 670 00:28:47,670 --> 00:28:48,600 mwingine struct vile. 671 00:28:48,600 --> 00:28:50,560 Hivyo picha ingekuwa kweli kupata Messier kidogo. 672 00:28:50,560 --> 00:28:52,950 Na tunatarajia kuwa mishale zililingana kila kitu pamoja. 673 00:28:52,950 --> 00:28:55,280 >> Lakini hiyo ni nzuri, haki, kwa sababu tumeona jinsi ya kufanya hivyo. 674 00:28:55,280 --> 00:28:58,180 Na mara moja kupata starehe kutekeleza kitu kama wanaohusishwa 675 00:28:58,180 --> 00:29:01,450 orodha, ambayo itabidi kufanya kama wewe kuchagua kutekeleza meza hash na 676 00:29:01,450 --> 00:29:05,120 tofauti chaining kwa p-seti 6, unaweza kutumia kama kuzuia ujenzi, au 677 00:29:05,120 --> 00:29:08,870 kingo, au katika Scratch kusema, utaratibu, kitu ambacho wewe kuweka, wewe 678 00:29:08,870 --> 00:29:12,560 kuundwa puzzle yako mwenyewe kipande kwamba unaweza kisha kutumia tena. 679 00:29:12,560 --> 00:29:17,090 Hivyo tradeoffs, lakini ufumbuzi uwezo kwamba tumekuwa kweli kuona mbele. 680 00:29:17,090 --> 00:29:20,560 >> Hivyo mara nyingi kabisa, unaweza kuona hii kila mwaka mmoja au miwili wakati Apple releases 681 00:29:20,560 --> 00:29:23,060 kitu kipya, na watu wote mambo line up nje ya Apple 682 00:29:23,060 --> 00:29:27,050 kuhifadhi kununua yao kidogo kidogo kuboresha na vifaa. 683 00:29:27,050 --> 00:29:30,420 Nasema hili, ni sawa, kwa sababu Mimi ni mmoja wa watu hao. 684 00:29:30,420 --> 00:29:35,140 Hivyo ni aina gani ya muundo wa data wanaweza kuwakilisha ukweli huu? 685 00:29:35,140 --> 00:29:36,980 >> Naam, hebu kuiita foleni, line. 686 00:29:36,980 --> 00:29:40,270 Hivyo British kuita ni kawaida foleni anyway, hivyo ni jina nzuri. 687 00:29:40,270 --> 00:29:44,960 Na shughuli mbili ambazo foleni atakuwa msaada Tutamwita enqueue 688 00:29:44,960 --> 00:29:48,900 operesheni na operesheni dequeue, ambayo ni sawa katika 689 00:29:48,900 --> 00:29:50,120 roho kushinikiza na pop. 690 00:29:50,120 --> 00:29:54,060 Ni tu aina ya tofauti katika mkataba, kile sisi ni wito haya. 691 00:29:54,060 --> 00:29:57,680 Lakini kwa enqueue kitu maana ya kuongeza au kuingiza kwa muundo wa data. 692 00:29:57,680 --> 00:29:59,570 Kwa dequeue maana ya kuondoa hiyo. 693 00:29:59,570 --> 00:30:05,170 Lakini wakati stack alikuwa data LIFO muundo, foleni ni katika wa kwanza, 694 00:30:05,170 --> 00:30:06,740 kwanza nje ya muundo data. 695 00:30:06,740 --> 00:30:10,050 >> Kama wewe ni mtu wa kwanza katika mstari, utakuwa mtu wa kwanza kupata 696 00:30:10,050 --> 00:30:12,420 nje ya mstari na kununua kifaa yako mpya. 697 00:30:12,420 --> 00:30:18,070 Fikiria jinsi upset watu hawa itakuwa kama Apple badala kutumika stack, kwa 698 00:30:18,070 --> 00:30:21,250 mfano, kutekeleza kuokota juu ya toy yako mpya. 699 00:30:21,250 --> 00:30:24,310 Hivyo foleni mantiki, kwa hakika, na tunaweza kufikiri ya kila aina ya 700 00:30:24,310 --> 00:30:27,480 maombi, labda, kwa foleni, hasa wakati unataka haki. 701 00:30:27,480 --> 00:30:30,040 Hivyo ni jinsi gani tunaweza kutekeleza hizo kama muundo wa data? 702 00:30:30,040 --> 00:30:33,680 >> Naam, mimi kupendekeza kwamba tupate haja ya kufanya hivyo kwa njia hii. 703 00:30:33,680 --> 00:30:35,225 Hivyo nina kwenda kwa sasa kuwa na namba. 704 00:30:35,225 --> 00:30:38,190 Hivyo tutaweza kushika ni rahisi na si lazima kuzungumza katika suala la sania. 705 00:30:38,190 --> 00:30:40,220 Idadi tu kwamba watu wa wamezipata. 706 00:30:40,220 --> 00:30:43,760 Uwezo ni kwenda, tena, kurekebisha jumla ya idadi ya watu kwamba wanaweza kuwa katika 707 00:30:43,760 --> 00:30:46,900 mstari huu, kama mitatu au chochote nyingine thamani. 708 00:30:46,900 --> 00:30:50,760 >> Lakini mimi kupendekeza kwamba mimi haja ya kuweka wimbo si tu ya kawaida ya 709 00:30:50,760 --> 00:30:52,370 foleni, jinsi mambo mengi ni ndani yake. 710 00:30:52,370 --> 00:30:56,310 Hivyo ukubwa ni sasa ukubwa, uwezo ni ukubwa wa upeo. 711 00:30:56,310 --> 00:30:58,540 Tu tena, utaratibu wa majina na mkataba. 712 00:30:58,540 --> 00:31:03,680 Kwa nini nahitaji int ziada ndani ya foleni kwa kuweka wimbo wa nani katika 713 00:31:03,680 --> 00:31:05,365 mbele ya mstari? 714 00:31:05,365 --> 00:31:07,930 715 00:31:07,930 --> 00:31:10,910 Kwa nini mimi haja ya kufanya hivyo katika kesi hii? 716 00:31:10,910 --> 00:31:14,750 717 00:31:14,750 --> 00:31:16,190 >> Naam, ni jinsi gani picha hii kwenda na mabadiliko? 718 00:31:16,190 --> 00:31:19,280 Mimi pengine unaweza kutumia tena zaidi ya picha hii. 719 00:31:19,280 --> 00:31:21,480 Hebu kwenda mbele na kufuta nini hapa. 720 00:31:21,480 --> 00:31:24,580 Tutaweza kutoa hii kidogo tofauti jina hapa juu. 721 00:31:24,580 --> 00:31:28,930 Hebu kujikwamua 17, hebu kujikwamua ya 9, hebu kujikwamua 3. 722 00:31:28,930 --> 00:31:30,410 Na hebu kuongeza jambo moja nyingine. 723 00:31:30,410 --> 00:31:34,710 Napendekeza kwamba mimi haja ya kuweka wimbo wa mbele ya orodha, ambayo ni tu 724 00:31:34,710 --> 00:31:35,570 kwenda kuwa int pia. 725 00:31:35,570 --> 00:31:36,550 Na tunakwenda kuitunza rahisi. 726 00:31:36,550 --> 00:31:37,740 Hakuna orodha wanaohusishwa kwa sasa. 727 00:31:37,740 --> 00:31:40,900 >> Tutaweza kukubali kwamba tunakwenda mapema juu dhidi ya kikomo hii. 728 00:31:40,900 --> 00:31:43,720 Lakini je, nataka kuona kutokea wakati huu? 729 00:31:43,720 --> 00:31:47,240 Hivyo nadhani kwenda mbele na kwanza mtu anakuja juu katika line, na 730 00:31:47,240 --> 00:31:48,560 ni namba 9. 731 00:31:48,560 --> 00:31:49,680 Hatuwezi kuwa na mipira ya dhiki. 732 00:31:49,680 --> 00:31:51,330 Naweza kuiba, kusema, watu wawili au watatu? 733 00:31:51,330 --> 00:31:52,690 Moja, mbili, tatu? 734 00:31:52,690 --> 00:31:53,120 Kuja juu juu. 735 00:31:53,120 --> 00:31:56,022 Haki kutoka mbele, kwa sababu tutaweza kufanya hii moja ya haraka. 736 00:31:56,022 --> 00:31:59,415 >> Kila mmoja wenu sasa ni kwenda kuwa mvulana shabiki katika mstari wa saa Apple. 737 00:31:59,415 --> 00:32:03,970 738 00:32:03,970 --> 00:32:06,210 Huwezi kuwa na kupokea Apple vifaa mwisho wa hii ingawa. 739 00:32:06,210 --> 00:32:06,500 Wote haki. 740 00:32:06,500 --> 00:32:09,430 Hivyo wewe ni namba 9, wewe ni namba 17, namba 22. 741 00:32:09,430 --> 00:32:12,130 Hizi ni holela namba, kama mwanafunzi wa Vitambulisho au mengineyo. 742 00:32:12,130 --> 00:32:14,550 Na katika muda tu, hebu kuanza kuanza kuongeza mambo. 743 00:32:14,550 --> 00:32:16,000 Na mimi itabidi kukimbia bodi hapa wakati huu. 744 00:32:16,000 --> 00:32:19,570 >> Hivyo katika kesi hii, nimekuwa initialized mbele kuwa - 745 00:32:19,570 --> 00:32:22,380 Mimi kwa kweli si kweli huduma nini mbele ni, kwa sababu ukubwa ni sifuri. 746 00:32:22,380 --> 00:32:24,480 Hivyo hii ili kama vizuri tu kuwa alama ya swali. 747 00:32:24,480 --> 00:32:26,170 Hizi ni alama swali wote. 748 00:32:26,170 --> 00:32:29,880 Hivyo sasa tutaweza kuanza kweli kuona baadhi ya watu wanaojitokeza katika kuhifadhi. 749 00:32:29,880 --> 00:32:33,320 >> Hivyo kama namba 9, wewe ni mmoja wa kwanza kuna saa 5:00, kwenda mbele na kujipanga, 750 00:32:33,320 --> 00:32:34,210 au usiku kabla. 751 00:32:34,210 --> 00:32:34,580 OK. 752 00:32:34,580 --> 00:32:35,940 Hivyo sasa 9 ni hapa. 753 00:32:35,940 --> 00:32:37,940 Hivyo 9 ni mbele ya orodha. 754 00:32:37,940 --> 00:32:41,440 Hivyo nina kwenda mbele na update ukubwa wa data hii ya sasa 755 00:32:41,440 --> 00:32:44,740 muundo na si kuwa 0 tena, lakini kwa kuwa 1. 756 00:32:44,740 --> 00:32:47,630 Mimi naenda kuweka 9 katika mbele ya orodha. 757 00:32:47,630 --> 00:32:51,020 Hebu kwenda mbele na kugeuza screen hivyo tunaweza kuona nyuma sisi hapa. 758 00:32:51,020 --> 00:32:53,220 >> Na sasa je, nataka kuweka mbele? 759 00:32:53,220 --> 00:32:56,240 Mimi naenda kuweka wimbo kwamba mbele ya foleni sasa hivi 760 00:32:56,240 --> 00:32:58,570 ni katika eneo 0. 761 00:32:58,570 --> 00:33:00,510 Kwa sababu kile ijayo kitatokea? 762 00:33:00,510 --> 00:33:03,000 Naam, tuseme sasa mimi enqueue 17 pia. 763 00:33:03,000 --> 00:33:04,510 Hivyo hop katika mstari huko. 764 00:33:04,510 --> 00:33:07,060 Na tena, aina ya mlango kwa kuhifadhi ni kwenda kuwa hapa. 765 00:33:07,060 --> 00:33:08,700 Hivyo sasa nimekuwa aliongeza 17. 766 00:33:08,700 --> 00:33:10,810 Na hata kama hawa guys ni kuzuia screen, hiyo ni sawa, 767 00:33:10,810 --> 00:33:12,300 sababu tunaweza kuona hapa. 768 00:33:12,300 --> 00:33:12,910 Sorry. 769 00:33:12,910 --> 00:33:13,810 >> Watazamaji: Tunaweza hoja - 770 00:33:13,810 --> 00:33:14,660 >> DAVID Malan: Hapana, hiyo ni sawa. 771 00:33:14,660 --> 00:33:16,000 Ni kubwa hadi pale. 772 00:33:16,000 --> 00:33:18,580 Hivyo sasa ni 17 ndani ya foleni. 773 00:33:18,580 --> 00:33:21,332 Nahitaji update ambayo mashamba ya sasa ingawa? 774 00:33:21,332 --> 00:33:23,210 OK, dhahiri ukubwa. 775 00:33:23,210 --> 00:33:26,430 Na vipi kuhusu mbele? 776 00:33:26,430 --> 00:33:27,040 OK, hakuna. 777 00:33:27,040 --> 00:33:30,200 Mbele lazima mabadiliko, kwa sababu tofauti na stack, sisi 778 00:33:30,200 --> 00:33:31,370 wanataka kudumisha haki. 779 00:33:31,370 --> 00:33:35,150 Hivyo kama 9 alikuja katika kwanza, tunataka 9 kuwa nje ya kwanza ya mstari 780 00:33:35,150 --> 00:33:36,420 na katika kuhifadhi. 781 00:33:36,420 --> 00:33:37,220 >> Kwa kweli, hebu angalia hiyo. 782 00:33:37,220 --> 00:33:42,235 Kabla ya sisi kuingiza 22, hebu kwenda mbele na dequeue 9. 783 00:33:42,235 --> 00:33:42,970 Nini jina lako tena? 784 00:33:42,970 --> 00:33:43,680 >> Watazamaji: Jake. 785 00:33:43,680 --> 00:33:45,440 >> DAVID Malan: Jake ni kwenda kuwa dequeued sasa. 786 00:33:45,440 --> 00:33:48,050 Ili kupata kutembea katika kuhifadhi. 787 00:33:48,050 --> 00:33:49,880 Kujifanya kuwa na kuhifadhi ni zaidi ya hapo. 788 00:33:49,880 --> 00:33:51,970 Hivyo sasa nini anahitaji - dit-dit-dit! 789 00:33:51,970 --> 00:33:53,400 Kinachohitajika kutokea sasa? 790 00:33:53,400 --> 00:33:54,490 Kubuni maamuzi. 791 00:33:54,490 --> 00:33:56,825 Hivyo sio silika mbaya, lakini - nini jina lako tena? 792 00:33:56,825 --> 00:33:57,090 >> Watazamaji: David. 793 00:33:57,090 --> 00:33:57,500 >> DAVID Malan: David. 794 00:33:57,500 --> 00:33:58,810 Hivyo kile Daudi kufanya? 795 00:33:58,810 --> 00:34:02,590 Alikuwa kujaribu aina ya kurekebisha data muundo na hoja kutoka eneo lake 796 00:34:02,590 --> 00:34:04,100 katika eneo Jake wa zamani. 797 00:34:04,100 --> 00:34:06,740 Na kwamba ni mzuri kama tuko tayari kukubali kwamba kama 798 00:34:06,740 --> 00:34:08,199 utekelezaji undani. 799 00:34:08,199 --> 00:34:11,100 Lakini kwanza, hebu update data muundo wa kabla ya sisi kufanya hivyo. 800 00:34:11,100 --> 00:34:14,139 Kwa sababu mimi si liking wazo la kila watu kuhama katika mstari huu. 801 00:34:14,139 --> 00:34:17,360 >> Ni hakuna mpango mkubwa kama Daudi gani na hatua moja, lakini tena, kufikiri nyuma 802 00:34:17,360 --> 00:34:20,360 wakati tulikuwa na kujitolea nane juu ya hatua na tumekuwa kufanyika kama kuingizwa 803 00:34:20,360 --> 00:34:22,600 aina, ambapo tulikuwa na kuanza kusonga kila mtu duniani. 804 00:34:22,600 --> 00:34:23,790 Kwamba got ghali, haki? 805 00:34:23,790 --> 00:34:28,330 Hiyo inanifanya cringe kuhusu kubwa O ya n, kubwa O ya n squared tena. 806 00:34:28,330 --> 00:34:30,650 Siyo hisia kama matokeo bora. 807 00:34:30,650 --> 00:34:32,080 >> Basi hebu tu update hii. 808 00:34:32,080 --> 00:34:35,120 Hivyo ukubwa wa foleni ni tena 2. 809 00:34:35,120 --> 00:34:37,090 Ni sasa tu 1. 810 00:34:37,090 --> 00:34:40,360 Lakini sasa naweza update kitu Sikuweza update kabla, 811 00:34:40,360 --> 00:34:41,130 mbele ya orodha. 812 00:34:41,130 --> 00:34:45,420 Mimi nilikuwa tu kusema, ni kwamba eneo 1? 813 00:34:45,420 --> 00:34:49,770 Basi sasa tuna taka thamani hapa, takataka thamani hapa, na Daudi katika 814 00:34:49,770 --> 00:34:51,469 katikati ya takataka hii. 815 00:34:51,469 --> 00:34:54,980 Lakini muundo data bado intact. 816 00:34:54,980 --> 00:34:58,540 >> Na kwa kweli, sijui hata haja ya mabadiliko Jake wa zamani wa simu 817 00:34:58,540 --> 00:35:00,460 9, kwa sababu anayejali. 818 00:35:00,460 --> 00:35:04,470 Nina taarifa za kutosha sasa katika kawaida kwamba mimi najua kuna mtu mmoja katika 819 00:35:04,470 --> 00:35:05,030 hii foleni. 820 00:35:05,030 --> 00:35:08,340 Na najua kwamba mtu huyo ni katika eneo 1, si 0. 821 00:35:08,340 --> 00:35:09,760 Mimi si kuhesabu kura. 822 00:35:09,760 --> 00:35:11,300 Hivyo 1 pia. 823 00:35:11,300 --> 00:35:13,410 Hivyo muundo data bado ni sawa. 824 00:35:13,410 --> 00:35:14,330 >> Naam, kile kinachotokea ijayo? 825 00:35:14,330 --> 00:35:15,010 Enqueue hebu - 826 00:35:15,010 --> 00:35:15,370 nini jina lako? 827 00:35:15,370 --> 00:35:16,160 >> Watazamaji: Callen. 828 00:35:16,160 --> 00:35:16,580 >> DAVID Malan: Callen. 829 00:35:16,580 --> 00:35:20,770 Hebu enqueue Callen, na 22 sasa ni katika foleni. 830 00:35:20,770 --> 00:35:22,300 Hivyo sasa nini ina mabadiliko hapa? 831 00:35:22,300 --> 00:35:24,380 Mbele si kwenda mabadiliko, ni wazi. 832 00:35:24,380 --> 00:35:27,160 Ukubwa ni kwenda na mabadiliko kuwa 2 tena. 833 00:35:27,160 --> 00:35:31,590 Na 22 inaishia hapa, 9 bado ni sasa, lakini ni vizuri 834 00:35:31,590 --> 00:35:32,600 takataka thamani sasa. 835 00:35:32,600 --> 00:35:35,910 Ni tu mabaki ya zamani Jake. 836 00:35:35,910 --> 00:35:39,200 >> Hivyo sasa nini kinatokea kama Mimi dequeue Daudi? 837 00:35:39,200 --> 00:35:41,560 Moja ya mwisho operesheni, dequeue Daudi. 838 00:35:41,560 --> 00:35:46,070 Tunaweza kuhama, lakini napendekeza hebu kufanya kama kazi kidogo iwezekanavyo. 839 00:35:46,070 --> 00:35:50,280 Sasa data zangu muundo huenda nyuma katika kawaida 2-1. 840 00:35:50,280 --> 00:35:53,730 Lakini mbele ya foleni sasa inakuwa 2. 841 00:35:53,730 --> 00:35:56,640 Sina haja ya kubadili namba hizi bado tu, kwa sababu wao ni 842 00:35:56,640 --> 00:35:58,230 tu takataka maadili. 843 00:35:58,230 --> 00:35:59,720 >> Lakini sasa nini hufanyika? 844 00:35:59,720 --> 00:36:03,280 Nadhani enqueue mwenyewe, 26? 845 00:36:03,280 --> 00:36:05,890 Najisikia kama mimi ni zaidi ya hapa. 846 00:36:05,890 --> 00:36:06,890 Hivyo mimi nina kuwa enqueued. 847 00:36:06,890 --> 00:36:08,760 Hivyo mimi aina ya mali hapa. 848 00:36:08,760 --> 00:36:11,300 Na hata kama huna kabisa kufahamu hii kuibua juu ya hatua, 849 00:36:11,300 --> 00:36:15,075 sababu tuna mengi ya chumba, mimi lazima kuwa amesimama hapa, kwa nini? 850 00:36:15,075 --> 00:36:16,290 >> Watazamaji: Wewe ni nje ya mipaka. 851 00:36:16,290 --> 00:36:16,370 >> DAVID Malan: Haki. 852 00:36:16,370 --> 00:36:16,940 Mimi nina nje ya mipaka. 853 00:36:16,940 --> 00:36:19,330 Nimekuwa indexed ya zaidi ya mipaka ya safu hii. 854 00:36:19,330 --> 00:36:23,420 Mimi kwa kweli lazima kuwa katika moja ya tatu inawezekana maeneo. 855 00:36:23,420 --> 00:36:25,150 Sasa, ambapo ni zaidi ya asili ya kwenda? 856 00:36:25,150 --> 00:36:27,760 Napendekeza sisi leveraged wiki moja hila. 857 00:36:27,760 --> 00:36:30,150 operator Mod, asilimia. 858 00:36:30,150 --> 00:36:36,850 Kwa sababu mimi nina kitaalam wamesimama katika eneo la 3, lakini mimi kufanya 3 Mod uwezo, 859 00:36:36,850 --> 00:36:40,250 hivyo 3, ishara asilimia, 3 - 860 00:36:40,250 --> 00:36:40,970 uwezo ni 3. 861 00:36:40,970 --> 00:36:41,720 Nini hiyo? 862 00:36:41,720 --> 00:36:43,700 Nini salio wakati kugawanya 3 na 3? 863 00:36:43,700 --> 00:36:44,070 0. 864 00:36:44,070 --> 00:36:48,140 >> Hivyo kwamba unaweka yangu walikuwa Jake ilikuwa, ambayo ni kweli nzuri. 865 00:36:48,140 --> 00:36:50,370 Hivyo sasa utekelezaji ya jambo hili kinaendelea 866 00:36:50,370 --> 00:36:51,250 kuwa kidogo ya maumivu ya kichwa. 867 00:36:51,250 --> 00:36:53,740 Ni kweli tu mstari mmoja maumivu ya kichwa, wa kanuni. 868 00:36:53,740 --> 00:36:56,580 Lakini angalau sasa kuna takataka thamani hapa, lakini kuna mawili 869 00:36:56,580 --> 00:36:57,910 halali ints hapa. 870 00:36:57,910 --> 00:37:04,160 Na mimi kudai kwamba sasa tumefanya nini hasa tunahitaji kufanya hivyo kwa muda mrefu kama 871 00:37:04,160 --> 00:37:08,600 sisi mabadiliko nini Jake ya thamani ilikuwa kuwa 26. 872 00:37:08,600 --> 00:37:12,110 >> Sisi sasa kuwa na taarifa za kutosha bado kudumisha uadilifu 873 00:37:12,110 --> 00:37:13,060 ya muundo huu data. 874 00:37:13,060 --> 00:37:17,160 Bado tuko aina ya nje ya bahati wakati sisi wanataka kuingiza nne au zaidi taarifa 875 00:37:17,160 --> 00:37:20,740 vipengele, lakini naweza angalau kufanya pretty ufanisi matumizi ya hii mara kwa mara 876 00:37:20,740 --> 00:37:21,740 wakati, kwa kweli. 877 00:37:21,740 --> 00:37:27,150 Mimi si kuwa na wasiwasi kuhusu kuhama kila mtu, kama mwelekeo wa Daudi mara. 878 00:37:27,150 --> 00:37:30,816 >> Maswali yoyote juu mwingi, au hii foleni? 879 00:37:30,816 --> 00:37:32,184 >> Watazamaji: Je, sababu ni kwa nini unahitaji ili kujua ukubwa 880 00:37:32,184 --> 00:37:34,010 ambapo kuwa na mtu? 881 00:37:34,010 --> 00:37:34,770 >> DAVID Malan: Hasa. 882 00:37:34,770 --> 00:37:38,230 Nahitaji kujua ukubwa ya safu kwa sababu mimi haja ya kujua hasa jinsi 883 00:37:38,230 --> 00:37:41,940 wengi wa maadili haya ni halali, na hivyo kwamba naweza kupata wapi kuweka 884 00:37:41,940 --> 00:37:42,800 mtu mwingine. 885 00:37:42,800 --> 00:37:43,300 Hasa. 886 00:37:43,300 --> 00:37:44,580 kawaida ni - 887 00:37:44,580 --> 00:37:46,360 kweli, hatukuwa update hii bado. 888 00:37:46,360 --> 00:37:48,380 Mimi aliongeza mwenyewe katika 26. 889 00:37:48,380 --> 00:37:51,760 kawaida ni sasa, si 1, lakini 2. 890 00:37:51,760 --> 00:37:57,780 Hivyo sasa kweli hii husaidia mimi kupata mkuu wa orodha, ambayo si 0, si 891 00:37:57,780 --> 00:37:59,250 1, lakini ni 2. 892 00:37:59,250 --> 00:38:01,665 mbele ya orodha kweli ni namba 22. 893 00:38:01,665 --> 00:38:05,120 Kwa sababu yeye alikuja katika kwanza, hivyo yeye anatakiwa kuruhusiwa kuingia katika duka mbele yangu, 894 00:38:05,120 --> 00:38:08,780 hata ingawa kuibua Nimesimama karibu na kuhifadhi. 895 00:38:08,780 --> 00:38:09,220 >> Wote haki? 896 00:38:09,220 --> 00:38:12,410 raundi ya applause kwa guys hawa na tutaweza waache nje ya hapo. 897 00:38:12,410 --> 00:38:17,090 >> [Makofi] 898 00:38:17,090 --> 00:38:18,150 >> DAVID Malan: Mimi inaweza basi wewe kushika tray. 899 00:38:18,150 --> 00:38:20,760 Tunaweza kuona nini kinatokea kama unataka, lakini labda si. 900 00:38:20,760 --> 00:38:21,590 Wote haki. 901 00:38:21,590 --> 00:38:25,380 Basi nini sasa gani kwamba kuondoka sisi? 902 00:38:25,380 --> 00:38:28,900 Naam, napenda kupendekeza kwamba kuna nyingine chache data miundo tunaweza 903 00:38:28,900 --> 00:38:33,810 kuanza kuongeza na kit chombo yetu kwamba mapenzi kweli kabisa, kabisa husika kama 904 00:38:33,810 --> 00:38:35,270 sisi kupiga mbizi katika mambo ya mtandao. 905 00:38:35,270 --> 00:38:38,150 Ambayo tena, ina aina fulani ya uhusiano kwa miti katika fomu ya 906 00:38:38,150 --> 00:38:40,550 kitu kinachoitwa DOM, hati kitu mfano wa kuigwa. 907 00:38:40,550 --> 00:38:42,370 Lakini tutaweza kuona zaidi ya kwamba kabla ya muda mrefu. 908 00:38:42,370 --> 00:38:46,260 >> Napenda kupendekeza kwamba sisi definitionally kuwaita mti sasa nini unaweza kujua kama 909 00:38:46,260 --> 00:38:48,820 zaidi ya mti wa familia, ambapo kuwa na baadhi ya babu katika 910 00:38:48,820 --> 00:38:49,790 mizizi ya mti. 911 00:38:49,790 --> 00:38:54,480 matriarch mfumo dume au katika sana juu ya mti. 912 00:38:54,480 --> 00:38:56,700 Bila wenzi wao, katika kesi hii. 913 00:38:56,700 --> 00:39:00,940 Lakini sasa tuna kile Tutamwita watoto, ambayo ni nodes kwamba hutegemea 914 00:39:00,940 --> 00:39:05,480 mbali ya mtoto wa kushoto au mtoto wa kulia, mishale kama taswira ya hapa. 915 00:39:05,480 --> 00:39:10,490 >> Kwa maneno mengine, katika muundo wa data mti katika kompyuta, mti ina sifuri 916 00:39:10,490 --> 00:39:11,480 au zaidi nodi. 917 00:39:11,480 --> 00:39:13,500 Kama ana angalau moja nodi, kwamba wito mizizi. 918 00:39:13,500 --> 00:39:15,700 Ni mambo kuibua kwamba sisi kuteka saa ya juu. 919 00:39:15,700 --> 00:39:20,280 Na node ya kwamba, kama nodi nyingine yoyote, unaweza na sifuri, moja, au mbili, au tatu, 920 00:39:20,280 --> 00:39:23,600 au hata hivyo watoto wengi data muundo mkono. 921 00:39:23,600 --> 00:39:29,150 Katika kesi hiyo, mizizi, hifadhi thamani mmoja, ana watoto wawili, 2 na 3, 922 00:39:29,150 --> 00:39:33,020 hivyo sisi ujumla kuwaita 2 kushoto mtoto na 3 mtoto haki. 923 00:39:33,020 --> 00:39:36,940 >> Na wakati sisi kupata chini ya 5, 6, na 7 6, wanaweza kuitwa mtoto katikati. 924 00:39:36,940 --> 00:39:38,940 Kama una watoto wanne, anapata utata. 925 00:39:38,940 --> 00:39:42,260 Hivyo sisi kuacha kutumia aina njia ya mkato ya maneno. 926 00:39:42,260 --> 00:39:44,580 Lakini ni kweli tu mti wa familia. 927 00:39:44,580 --> 00:39:48,880 Na majani hapa ni kwamba nodes wenyewe hawana watoto. 928 00:39:48,880 --> 00:39:52,540 Wao hutegemea mbali chini ya mti. 929 00:39:52,540 --> 00:39:56,940 >> Hivyo ni jinsi gani tunaweza kutekeleza mti ana watoto wawili tu maximally? 930 00:39:56,940 --> 00:39:58,410 Tutaweza kuiita mti mapacha. 931 00:39:58,410 --> 00:40:00,960 Bi tena maana mbili, katika hii kesi, kama na mapacha. 932 00:40:00,960 --> 00:40:04,830 Na ndivyo inaweza kuwa na sifuri, moja, au watoto wawili maximally. 933 00:40:04,830 --> 00:40:08,650 >> Mimi itabidi kupendekeza kwamba sisi kutekeleza nodi kwa kuwa muundo na n int, 934 00:40:08,650 --> 00:40:11,910 na kisha mbili kuyatumia, mtu mmoja aitwaye kushoto, mtu mmoja aitwaye haki. 935 00:40:11,910 --> 00:40:14,830 Lakini wale ni nzuri tu holela makongamano. 936 00:40:14,830 --> 00:40:18,170 Na nini ni nzuri sasa, hasa kama wewe aina ya Jihadi conceptually na 937 00:40:18,170 --> 00:40:21,300 recursion, au walidhani kwamba haikuwa kweli ufumbuzi kwa kitu chochote, 938 00:40:21,300 --> 00:40:23,120 hasa kama unaweza kukimbia nje ya kumbukumbu. 939 00:40:23,120 --> 00:40:26,600 Sasa kwa kuwa tunazungumzia juu ya data miundo na algorithms kwamba kuruhusu 940 00:40:26,600 --> 00:40:31,030 sisi tembeeni na kuendesha yao, zinageuka kuwa recursion anakuja nyuma katika 941 00:40:31,030 --> 00:40:34,240 mengi zaidi ya kulazimisha kama si nzuri njia. 942 00:40:34,240 --> 00:40:38,670 >> Hivyo hii napendekeza ni utekelezaji ya kazi Search. 943 00:40:38,670 --> 00:40:39,870 Kutokana na pembejeo mbili - 944 00:40:39,870 --> 00:40:41,570 hivyo kufikiri ya hii kama sanduku nyeusi. 945 00:40:41,570 --> 00:40:46,560 Kutokana na pembejeo mbili, n, int, na pointer mti, pointer 946 00:40:46,560 --> 00:40:50,020 nodi, au kweli mizizi ya mti, mimi kudai kwamba kazi hii inaweza kurudi 947 00:40:50,020 --> 00:40:53,530 kweli au uongo, kwamba thamani n ni ndani ya mti huu. 948 00:40:53,530 --> 00:40:55,210 >> Nini ndani ya sanduku hili nyeusi? 949 00:40:55,210 --> 00:40:57,440 Naam, wanne matawi. 950 00:40:57,440 --> 00:40:58,385 tu kwanza hundi. 951 00:40:58,385 --> 00:41:00,490 Kama mti ni null, tu kurudi uongo. 952 00:41:00,490 --> 00:41:04,580 Kama kuna nodi hakuna, kuna n hakuna, kuna idadi hakuna, tu kurudi uongo. 953 00:41:04,580 --> 00:41:12,330 Kama ingawa, n, thamani wewe ni kuangalia kwa maana, ni chini ya mti mshale n, na 954 00:41:12,330 --> 00:41:15,180 tu kuwa wazi, ni nini maana wakati Mimi kuandika mti na kisha mshale 955 00:41:15,180 --> 00:41:18,150 nukuu, n? 956 00:41:18,150 --> 00:41:18,690 Hasa. 957 00:41:18,690 --> 00:41:21,970 Ina maana kwamba dereference pointer kuitwa mti. 958 00:41:21,970 --> 00:41:26,750 Kwenda huko, na kisha kupata ndani ya kwamba nodi na kupata uwanja wake aitwaye n. 959 00:41:26,750 --> 00:41:30,810 Na kisha kulinganisha n halisi kwamba alikuwa kupita katika Tafuta dhidi yake. 960 00:41:30,810 --> 00:41:35,390 >> Hivyo kama ni chini ya n, thamani n katika nodi mti wenyewe, vizuri, 961 00:41:35,390 --> 00:41:36,720 hiyo ina maana gani? 962 00:41:36,720 --> 00:41:40,690 Hiyo ina maana kitu katika mtazamo wa kwanza. 963 00:41:40,690 --> 00:41:40,900 Haki? 964 00:41:40,900 --> 00:41:45,560 Tu kama wakati una safu ya maadili, unaweza kama kuomba binary 965 00:41:45,560 --> 00:41:48,290 kutafuta kama namna ya kugawanya na kushinda. 966 00:41:48,290 --> 00:41:51,790 Lakini nini dhana gani sisi haja ya kufanya kwa binary tafuta kufanya kazi wakati wote 967 00:41:51,790 --> 00:41:54,510 katika kitabu cha simu na mapema mifano? 968 00:41:54,510 --> 00:41:55,530 >> Jinsi ya kutatuliwa. 969 00:41:55,530 --> 00:41:59,490 Basi hebu kuboresha ufafanuzi wa mti hapa si kwa kuwa tu mti, ambayo inaweza 970 00:41:59,490 --> 00:42:00,880 kuwa na idadi yoyote ya watoto. 971 00:42:00,880 --> 00:42:04,700 Si tu mti binary, ambayo inaweza wana 0, 1, au 2 maximally. 972 00:42:04,700 --> 00:42:09,700 Lakini kama binary tafuta mti, au BST, ambayo ni njia tu ya dhana ya kusema 973 00:42:09,700 --> 00:42:15,430 binary mti vile kwamba kila nodi ya mtoto wa kushoto, kama sasa, ni 974 00:42:15,430 --> 00:42:16,830 chini ya nodi. 975 00:42:16,830 --> 00:42:20,170 Na kila nodi ya haki ya mtoto, kama sasa, ni makubwa zaidi 976 00:42:20,170 --> 00:42:21,740 kuliko nodi yenyewe. 977 00:42:21,740 --> 00:42:25,200 >> Hivyo kwa maneno mengine, kama ungekuwa na kuteka nje ya mti, wote wa idadi ni 978 00:42:25,200 --> 00:42:30,620 makini uwiano kama hii ili kwamba kama una 55 kama mzizi, 33 wanaweza kwenda 979 00:42:30,620 --> 00:42:33,090 kwa upande wake wa kushoto kwa sababu ni chini ya 55. 980 00:42:33,090 --> 00:42:36,430 77 anaweza kwenda kwa haki yake kwa sababu ni mkubwa kuliko 55. 981 00:42:36,430 --> 00:42:40,750 Lakini sasa taarifa, ufafanuzi huo, ni ufafanuzi kujirudia kwa maneno, 982 00:42:40,750 --> 00:42:42,600 ana kuomba kwa ajili ya 33. 983 00:42:42,600 --> 00:42:47,610 33 ya mtoto wa kushoto lazima kuwa chini ya hilo, na 33 ya haki ya mtoto, 44, lazima 984 00:42:47,610 --> 00:42:48,580 kubwa kuliko yake. 985 00:42:48,580 --> 00:42:51,670 >> Hivyo hii ni binary tafuta mti, na Napendekeza, kwa kutumia kidogo kidogo ya 986 00:42:51,670 --> 00:42:53,910 recursion, sasa tunaweza kupata n. 987 00:42:53,910 --> 00:42:59,160 Hivyo kama n ni chini ya n thamani hiyo ni nodi sasa, mimi nina kwenda 988 00:42:59,160 --> 00:43:04,090 mbele na Punt, hivyo kusema, na tu kurudi chochote jibu ni ya 989 00:43:04,090 --> 00:43:08,470 kwa ajili ya kutafuta n juu ya mti wa kushoto wa mtoto. 990 00:43:08,470 --> 00:43:11,370 Taarifa tena, hii kazi tu anatarajia nyota nodi, 991 00:43:11,370 --> 00:43:12,780 pointer nodi. 992 00:43:12,780 --> 00:43:17,360 Basi hakika naweza tu kufanya mti mshale wa kushoto, ambayo itasababisha 993 00:43:17,360 --> 00:43:18,400 mimi nodi mwingine. 994 00:43:18,400 --> 00:43:19,480 Lakini ni nini nodi kwamba? 995 00:43:19,480 --> 00:43:22,820 >> Naam, kwa mujibu wa tamko hili, kushoto ni tu pointer, ili tu 996 00:43:22,820 --> 00:43:27,090 maana mimi nina kupita kwa kazi tafuta pointer tofauti, yaani 997 00:43:27,090 --> 00:43:30,750 moja kwamba inawakilisha mtoto wangu wa kushoto ya mti. 998 00:43:30,750 --> 00:43:36,040 Hivyo katika kesi hii, pointer 33, ikiwa hii ni sampuli zetu pembejeo Wakati huo huo, kama 999 00:43:36,040 --> 00:43:40,740 n, ni mkubwa kuliko n thamani katika sasa nodi katika mti, basi mimi nina 1000 00:43:40,740 --> 00:43:43,370 kwenda mbele na Punt katika nyingine mwelekeo na kusema tu, mimi si 1001 00:43:43,370 --> 00:43:47,280 kujua kama hii ni n thamani katika mti, lakini mimi kujua kama ni, ni chini yangu 1002 00:43:47,280 --> 00:43:49,090 haki ya tawi, hivyo kusema. 1003 00:43:49,090 --> 00:43:53,120 Hivyo basi mimi wito recursively kutafuta, kupita n tena, lakini kupita katika 1004 00:43:53,120 --> 00:43:54,580 pointer mtoto wangu wa kulia. 1005 00:43:54,580 --> 00:44:00,020 >> Kwa maneno mengine, kama nina sasa saa 55 na mimi nina kuangalia kwa ajili ya 99, najua kwamba 99 1006 00:44:00,020 --> 00:44:04,270 ni mkubwa kuliko 55, hivyo kama mimi akararua kitabu cha simu wiki iliyopita na sisi 1007 00:44:04,270 --> 00:44:07,140 akaenda haki, vile vile ni sisi kwenda kulia hapa. 1008 00:44:07,140 --> 00:44:11,960 Na sijui kama ni katika haki yangu mtoto, na siyo, 77 ni pale, lakini 1009 00:44:11,960 --> 00:44:13,210 Najua ni katika mwelekeo. 1010 00:44:13,210 --> 00:44:18,770 Hivyo mimi wito tafuta juu ya mtoto wangu wa kulia, 77, na basi tafuta takwimu kutoka 1011 00:44:18,770 --> 00:44:24,950 huko kama 99 mwaka huu holela mfano ni kweli huko. 1012 00:44:24,950 --> 00:44:26,900 >> Mwingine, nini kesi ya mwisho? 1013 00:44:26,900 --> 00:44:28,620 Kama mti ni null ni moja ya kesi. 1014 00:44:28,620 --> 00:44:31,890 Kama n ni chini ya sasa ya nodi ya thamani ni kesi nyingine. 1015 00:44:31,890 --> 00:44:35,120 Kama n ni mkubwa kuliko sasa thamani ya nodi ni kesi ya tatu. 1016 00:44:35,120 --> 00:44:38,250 Nini Kesi ya nne na ya mwisho? 1017 00:44:38,250 --> 00:44:39,480 Nadhani tuko nje ya kesi, sawa? 1018 00:44:39,480 --> 00:44:44,690 Ni lazima kwamba n ni katika sasa nodi kwamba mimi nina juu. 1019 00:44:44,690 --> 00:44:49,640 >> Hivyo kama mimi nina kwa ajili ya kutafuta 55 katika hatua hii katika hadithi, kwamba tawi la 1020 00:44:49,640 --> 00:44:51,780 mti atarudi kweli. 1021 00:44:51,780 --> 00:44:55,380 Basi nini kuvutia hapa ni kwamba sisi kweli, tofauti na wiki iliyopita, sisi aina 1022 00:44:55,380 --> 00:44:56,740 ya msingi na kesi mbili. 1023 00:44:56,740 --> 00:44:58,300 Na wao hawana kuwa wote kwa juu. 1024 00:44:58,300 --> 00:45:01,390 juu ni kesi ya msingi kwa sababu kama mti ni null, kuna kitu cha kufanya. 1025 00:45:01,390 --> 00:45:03,410 Tu kurudi coded ngumu thamani ya uongo. 1026 00:45:03,410 --> 00:45:07,400 >> tawi chini ni aina ya msingi, ambapo kama tumekuwa checked kwa 1027 00:45:07,400 --> 00:45:11,550 null, tumekuwa checked ikiwa ni lazima kushoto, lakini ni lazima kuwa, tumekuwa 1028 00:45:11,550 --> 00:45:14,640 checked ikiwa ni lazima kuwa na haki, lakini haipaswi kuwa, ni wazi kuwa ina kuwa 1029 00:45:14,640 --> 00:45:15,870 haki ambapo sisi ni. 1030 00:45:15,870 --> 00:45:16,780 Hiyo ni kesi ya msingi. 1031 00:45:16,780 --> 00:45:19,920 Hivyo kuna kesi mbili kujirudia ipo katikati. 1032 00:45:19,920 --> 00:45:21,630 Lakini mimi nilikuwa wameandika hii ili yeyote. 1033 00:45:21,630 --> 00:45:24,520 Mimi tu walidhani ni aina ya waliona asili kwanza kuangalia kwa kosa inawezekana, 1034 00:45:24,520 --> 00:45:28,340 kisha kuangalia kushoto, kisha kuangalia haki, basi kudhani kuwa uko katika nodi 1035 00:45:28,340 --> 00:45:30,630 wewe ni kweli kutafuta. 1036 00:45:30,630 --> 00:45:36,240 >> Hivyo kwa nini huenda hii kuwa muhimu? 1037 00:45:36,240 --> 00:45:37,910 Hivyo ni zamu nje - 1038 00:45:37,910 --> 00:45:42,110 na napenda Rukia teaser hapa kwamba katika mtandao. 1039 00:45:42,110 --> 00:45:44,920 Sisi ni kwenda kuanza kutumia si programu ya lugha ya kwanza, lakini 1040 00:45:44,920 --> 00:45:46,030 ghafi lugha. 1041 00:45:46,030 --> 00:45:48,740 ghafi lugha kuwa moja kwamba ni sawa katika roho na programu 1042 00:45:48,740 --> 00:45:51,715 lugha, lakini haina kukupa uwezo wa kueleza mwenyewe kifikra. 1043 00:45:51,715 --> 00:45:55,070 Ni tu inakupa uwezo wa kueleza mwenyewe kimuundo. 1044 00:45:55,070 --> 00:45:57,960 >> Ambapo unataka kuweka kitu kwenye ukurasa, ukurasa wa mtandao? 1045 00:45:57,960 --> 00:45:59,200 Nini rangi unataka kufanya hivyo? 1046 00:45:59,200 --> 00:46:00,950 Nini fonti unataka kufanya hivyo? 1047 00:46:00,950 --> 00:46:02,970 Ni maneno gani kufanya kweli unataka kwenye ukurasa wa mtandao? 1048 00:46:02,970 --> 00:46:04,060 Hivyo kwamba ni lugha ghafi. 1049 00:46:04,060 --> 00:46:07,690 Lakini basi tutaweza haraka sana kuanzisha JavaScript, ambayo ni full-fledged 1050 00:46:07,690 --> 00:46:08,560 programu ya lugha. 1051 00:46:08,560 --> 00:46:12,530 Sawa sana syntactically katika muonekano na C, lakini utakuwa na baadhi ya 1052 00:46:12,530 --> 00:46:15,200 nzuri, na nguvu zaidi, zaidi user kirafiki makala. 1053 00:46:15,200 --> 00:46:18,050 >> Na mmoja wa Matatizo katika hii kumweka katika muhula ni kwamba tutaweza 1054 00:46:18,050 --> 00:46:22,065 haraka kutekeleza Speller katika mbali wachache mstari wa kanuni kwa kutumia lugha nyingine 1055 00:46:22,065 --> 00:46:25,580 kuliko C yenyewe inaruhusu, lakini kwa sababu ya tutaweza karibuni kuelewa. 1056 00:46:25,580 --> 00:46:27,750 Hii itakuwa ni mara ya kwanza vile mtandao ukurasa. 1057 00:46:27,750 --> 00:46:30,120 Itakuwa ni aghali kabisa, moja ya kwanza sisi kufanya. 1058 00:46:30,120 --> 00:46:31,400 Itakuwa tu kusema, hello dunia. 1059 00:46:31,400 --> 00:46:34,010 Lakini kama wewe sijawahi kuona ni kabla, hii ni HTML, 1060 00:46:34,010 --> 00:46:35,670 HyperText ghafi lugha. 1061 00:46:35,670 --> 00:46:39,310 >> Kama wewe kwenda chaguo fulani katika orodha ya yoyote zaidi browser, katika ukurasa wa mtandao wowote juu ya 1062 00:46:39,310 --> 00:46:43,160 internet, unaweza kuona HTML kwamba baadhi ya watu aliandika kwa 1063 00:46:43,160 --> 00:46:44,400 kuunda kwamba ukurasa wa mtandao. 1064 00:46:44,400 --> 00:46:47,850 Na pengine haina kuangalia kama kifupi au kama nadhifu kama hii. 1065 00:46:47,850 --> 00:46:51,400 Lakini itakuwa kufuata mfano wa haya wazi na mabano na mikwaju 1066 00:46:51,400 --> 00:46:53,660 herufi na namba uwezekano. 1067 00:46:53,660 --> 00:46:56,770 >> Nilidhani ningependa kukupa teaser ya nini wewe utakuwa na uwezo wa kufanya 1068 00:46:56,770 --> 00:46:57,950 baada ya kuchukua CS50. 1069 00:46:57,950 --> 00:47:02,620 Hebu kwenda cs.harvard.edu / kuwaibia, Mzee Rob yetu wenyewe Bowden ya. 1070 00:47:02,620 --> 00:47:06,080 Yeye alifanya hivyo kwa ajili yetu. 1071 00:47:06,080 --> 00:47:07,490 Hivyo itabidi karibuni kuwa na uwezo wa kufanya hivyo. 1072 00:47:07,490 --> 00:47:10,660 Na pia, nini habari asubuhi hii - 1073 00:47:10,660 --> 00:47:12,480 nini wewe habari asubuhi hii - 1074 00:47:12,480 --> 00:47:13,780 >> [Hamster DANCE MUSIC] 1075 00:47:13,780 --> 00:47:15,702 >> - You'll kuwa na uwezo wa kufanya hili. 1076 00:47:15,702 --> 00:47:16,790 Kwamba watapata sisi juu ya Jumatano. 1077 00:47:16,790 --> 00:47:17,791 Tutaona wewe hapo. 1078 00:47:17,791 --> 00:47:22,950 >> [Hamster DANCE MUSIC] 1079 00:47:22,950 --> 00:47:24,300 DAVID Malan: Katika CS50 ijayo - 1080 00:47:24,300 --> 00:47:31,670