1 00:00:00,000 --> 00:00:11,460 2 00:00:11,460 --> 00:00:12,250 >> DAVID Malan: Të gjithë të drejtë. 3 00:00:12,250 --> 00:00:13,860 Mirë se vini përsëri në CS50. 4 00:00:13,860 --> 00:00:16,190 Ky është fillimi i javës së 8. 5 00:00:16,190 --> 00:00:21,320 Dhe kujtojnë se problemi set 5 përfundoi me pak e një sfidë. 6 00:00:21,320 --> 00:00:25,210 Pra, duke supozuar që ju të mbulohen të gjithë tuaj Fellows mësimdhënies dhe fotografitë e AK-së 7 00:00:25,210 --> 00:00:30,480 në dosjen card.raw, ju jeni të drejtë për të gjetur tani të gjithë atyre njerëzve, dhe 8 00:00:30,480 --> 00:00:34,510 një fitues me fat do të ecin në shtëpi me një prej këtyre gjërave, mocioni brishtë 9 00:00:34,510 --> 00:00:37,450 pajisje që ju mund të përdorni për finale Projektet, për shembull. 10 00:00:37,450 --> 00:00:39,860 >> Kjo, çdo vit, të çon në pak e creepiness. 11 00:00:39,860 --> 00:00:43,480 Dhe kështu ajo që kam menduar unë do të bëj është pjesa me ty disa nga shënimet që kanë 12 00:00:43,480 --> 00:00:47,370 shkuar mbrapa dhe me radhë mbi lista stafi i vonë. 13 00:00:47,370 --> 00:00:51,110 Për shembull, vetëm natën e kaluar kuotë, quajtur ato, prej njërit prej te personeli 14 00:00:51,110 --> 00:00:55,000 anëtarë, "Unë vetëm kishte një trokitje studentore në derën time për të marrë një foto me mua. 15 00:00:55,000 --> 00:00:59,020 Vertetes, unë po ju them ". Filloi mjaft përshkrues dhe pastaj ne lëvizëm 16 00:00:59,020 --> 00:01:02,830 mbi të, një orë apo më shumë më vonë, "Kam një Studenti duke pritur për mua pas seksionit 17 00:01:02,830 --> 00:01:06,080 dhe ai kishte të gjithë emrat tanë dhe fotot në disa fletë të letrës. "të gjithë të drejtë. 18 00:01:06,080 --> 00:01:09,230 Pra organizuar, por jo gjithçka që mërzitur ende. 19 00:01:09,230 --> 00:01:12,520 >> Pastaj, "Unë isha jashtë qytetit këtë fundjavë, dhe kur kam marrë përsëri, pati një në 20 00:01:12,520 --> 00:01:12,630 tim 21 00:01:12,630 --> 00:01:16,740 . gjumi "[Qeshura] 22 00:01:16,740 --> 00:01:20,410 DAVID Malan: Next citim nga një staf anëtar, "erdhi një student në shtëpinë time në 23 00:01:20,410 --> 00:01:25,330 Somerville në orën 4 këtë mëngjes. "Next Stafi, "mori unë në hotelin tim në San 24 00:01:25,330 --> 00:01:30,016 Francisco dhe një student është duke pritur për mua në hollin me tre DSLRs. " 25 00:01:30,016 --> 00:01:31,510 Lloji i kameras. 26 00:01:31,510 --> 00:01:34,980 "Unë nuk jam edhe në stafin këtë semestër, por një student hynë në shtëpinë time këtë 27 00:01:34,980 --> 00:01:40,480 mëngjes dhe regjistruar të gjithë gjë me xham Google. "Dhe pastaj së fundi, 28 00:01:40,480 --> 00:01:43,650 "Të paktën 12 njerëz ishin padurim në pritje për mua kur dola nga tim 29 00:01:43,650 --> 00:01:44,800 limo, dhe pastaj unë 30 00:01:44,800 --> 00:01:46,970 u zgjova. "Të gjithë të drejtë. 31 00:01:46,970 --> 00:01:57,690 Pra, në mesin e fotografive, si ju mund të kujtojnë, janë ky shoku këtu, të cilët ju 32 00:01:57,690 --> 00:02:01,850 mund të dinë si banane Milo, i cili jeton me Lauren Carvalho, kokën tonë 33 00:02:01,850 --> 00:02:02,905 mësimdhënies anëtar. 34 00:02:02,905 --> 00:02:05,170 Milo, Milo, vijnë këtu djalosh. 35 00:02:05,170 --> 00:02:06,320 Milo. 36 00:02:06,320 --> 00:02:08,650 Milo. 37 00:02:08,650 --> 00:02:12,230 Mind you, ai është i veshur me Google qelqi, në mënyrë ne do të ju tregojnë të gjithë këtë pas. 38 00:02:12,230 --> 00:02:16,190 Pra, kjo është Milo në qoftë se ju do të donte për të të marrë një fotografi me vete pas. 39 00:02:16,190 --> 00:02:18,240 Nëse ju dëshironi të shikoni jashtë në audiencë atje. 40 00:02:18,240 --> 00:02:19,430 OK. 41 00:02:19,430 --> 00:02:20,200 Kjo është pamjet e mirë. 42 00:02:20,200 --> 00:02:22,556 E pra, Milo banane. 43 00:02:22,556 --> 00:02:23,941 Oh, nuk e bëjmë këtë. 44 00:02:23,941 --> 00:02:29,020 >> [Qeshura] 45 00:02:29,020 --> 00:02:29,470 >> OK. 46 00:02:29,470 --> 00:02:34,550 Pra, me një fjalë pastaj në çfarë shtrihet përpara, sepse si ne të fillojnë të tranzicionit, 47 00:02:34,550 --> 00:02:38,410 këtë javë në mënyrë specifike, nga C në një command line mjedisit në PHP dhe 48 00:02:38,410 --> 00:02:42,720 Dhe SQL JavaScript dhe HTML dhe CSS në një web-bazuar mjedis, ne do të jetë 49 00:02:42,720 --> 00:02:44,490 pajisjen me të gjitha më shumë njohuri për 50 00:02:44,490 --> 00:02:46,010 projekte të mundshme përfundimtare. 51 00:02:46,010 --> 00:02:49,240 Drejt këtij qëllimi, ka një kurs Tradita e mbajtjes së seminareve të cilat 52 00:02:49,240 --> 00:02:50,950 janë mbi tema tangjencial të rrjedhës. 53 00:02:50,950 --> 00:02:54,330 Shumë të lidhura me programimin dhe për të zhvillimit app dhe kështu me radhë, por 54 00:02:54,330 --> 00:02:57,010 nuk hulumtohen domosdoshmërisht nga syllabus vetë rrjedhës së. 55 00:02:57,010 --> 00:03:00,250 >> Pra, nëse ju mund të jenë të interesuar në njërën ose më shumë prej seminareve këtij viti, 56 00:03:00,250 --> 00:03:02,530 regjistrohen në cs50.net/seminar. 57 00:03:02,530 --> 00:03:06,170 Ka seminare të vjetra në cs50.net/seminars. 58 00:03:06,170 --> 00:03:10,620 Dhe kështu në listën e largët për këtë vit janë Apps Amazing Web me Ruby on 59 00:03:10,620 --> 00:03:13,580 Binarët, e cila është një alternativë gjuhë të PHP. 60 00:03:13,580 --> 00:03:14,900 Gjuhësi kompjuterike. 61 00:03:14,900 --> 00:03:18,710 Futja te iOS, e cila është platformë që është përdorur për iPhone dhe 62 00:03:18,710 --> 00:03:19,850 Zhvillimi i iPad. 63 00:03:19,850 --> 00:03:22,890 JavaScript për Apps Web, ne do të mbulojë se, por në këtë seminar, ju do të shkoni 64 00:03:22,890 --> 00:03:24,070 në më shumë detaje. 65 00:03:24,070 --> 00:03:27,390 >> Brishtë lëvizje, kështu që ne do të vërtetë kanë disa nga miqtë tanë nga Motion brishtë, 66 00:03:27,390 --> 00:03:29,160 Kompania vetë, të na bashkohen. 67 00:03:29,160 --> 00:03:31,800 Nesër, në fakt, për të siguruar një duart-në seminar, qoftë 68 00:03:31,800 --> 00:03:33,320 me interes për ju. 69 00:03:33,320 --> 00:03:38,770 Meteor.js, një teknikë alternativë për duke përdorur JavaScript jo ne nje shfletues, 70 00:03:38,770 --> 00:03:39,970 por në një server. 71 00:03:39,970 --> 00:03:42,110 Node.js, e cila është shumë e në atë mënyrë si edhe. 72 00:03:42,110 --> 00:03:43,650 Sleek Dizajn Android. 73 00:03:43,650 --> 00:03:46,990 Android qenit një alternativë shumë të popullarizuara për iOS dhe Windows Phone 74 00:03:46,990 --> 00:03:48,790 dhe platforma të tjera të lëvizshme. 75 00:03:48,790 --> 00:03:51,180 Dhe Mbrojtjes Web Sigurimit ne forum. 76 00:03:51,180 --> 00:03:54,590 >> Pra, në fakt, në qoftë se ju do të donte për t'u angazhuar në këtë, më lejoni të 77 00:03:54,590 --> 00:03:55,840 të bëjë shënimin e kësaj. 78 00:03:55,840 --> 00:03:57,790 Ne jemi shumë të lumtur të them se miqtë tanë në kërcim 79 00:03:57,790 --> 00:03:59,140 Lëvizje, e cila është një fillimin - 80 00:03:59,140 --> 00:04:01,300 kjo pajisje me të vërtetë sapo erdhi nga disa muaj më parë - 81 00:04:01,300 --> 00:04:05,960 ka dhuruar mirësjellje 30 pajisje të tilla në klasë për sa më shumë studentë, nëse 82 00:04:05,960 --> 00:04:08,670 ju dëshironi për të marrë hua hardware drejt përfundimit semestrin dhe e përdorin atë për 83 00:04:08,670 --> 00:04:10,390 një projekt përfundimtar aktuale. 84 00:04:10,390 --> 00:04:11,890 Ato mbështesin një numër të gjuhëve. 85 00:04:11,890 --> 00:04:16,040 Asnjë prej tyre C, asnjëri prej tyre nuk PHP, në mënyrë realizojnë një ose më shumë prej këtyre seminareve 86 00:04:16,040 --> 00:04:16,899 mund të provojë të interesit. 87 00:04:16,899 --> 00:04:19,730 Dhe të gjithë prej tyre do të filmohet në Ngjarja që ju nuk jeni në gjendje 88 00:04:19,730 --> 00:04:21,380 për të marrë pjesë në person. 89 00:04:21,380 --> 00:04:25,000 Orari të shpallet nëpërmjet email si ne ngrij dhoma. 90 00:04:25,000 --> 00:04:28,460 >> Dhe së fundi, në qoftë se ju shkoni në projects.cs.50.net, kjo është një website 91 00:04:28,460 --> 00:04:31,450 ne ruajtjen e çdo vit që ne ftojmë folks nga komuniteti, fakultetit, 92 00:04:31,450 --> 00:04:36,420 departamentet, stafi, dhe të dyja në një jashtë CS50 ndaj 93 00:04:36,420 --> 00:04:37,730 propozojnë ide të projektit. 94 00:04:37,730 --> 00:04:39,050 Gjërat e interesit ndaj grupeve studentore. 95 00:04:39,050 --> 00:04:40,600 Gjërat në interes të departamenteve. 96 00:04:40,600 --> 00:04:43,990 Pra, do të kthehet atje, nëse ju jeni duke luftuar me pasiguri si në atë që ju 97 00:04:43,990 --> 00:04:46,700 veten do të donte për të trajtuar. 98 00:04:46,700 --> 00:04:51,760 >> Pra, koha e kaluar ne kemi prezantuar një ndoshta Të dhënat struktura më komplekse sesa ne do 99 00:04:51,760 --> 00:04:53,300 shihet në javët e fundit. 100 00:04:53,300 --> 00:04:56,550 Ne do të qenë goxha e vargjeve duke përdorur për fat të mirë, si një e dobishme nëse 101 00:04:56,550 --> 00:04:58,160 simplistic dhënat strukturë. 102 00:04:58,160 --> 00:05:00,570 Pastaj ne kemi prezantuar këto, të cilat sigurisht janë të lidhura listat. 103 00:05:00,570 --> 00:05:05,470 Dhe çfarë ishte një nga motivet për futjen e këtij strukturën e të dhënave? 104 00:05:05,470 --> 00:05:06,930 Po? 105 00:05:06,930 --> 00:05:07,250 Çfarë është ajo? 106 00:05:07,250 --> 00:05:08,080 >> Audienca: Madhësia Dinamik. 107 00:05:08,080 --> 00:05:09,040 >> DAVID Malan: Madhësia Dinamik. 108 00:05:09,040 --> 00:05:11,890 Pra, ndërsa në rrjet, ju duhet të e di madhësinë e saj më parë kur 109 00:05:11,890 --> 00:05:12,740 ju ndajë atë. 110 00:05:12,740 --> 00:05:14,380 Në listën e lidhur, ju nuk e bëni duhet ta dini se. 111 00:05:14,380 --> 00:05:17,610 Ju vetëm mund të malloc, ose më në përgjithësi, akordojë një shtesë 112 00:05:17,610 --> 00:05:20,720 nyje, kështu që të flasin, çdo herë që doni të futur më shumë të dhëna. 113 00:05:20,720 --> 00:05:22,670 Dhe nyja e ka paracaktuar asnjë kuptim. 114 00:05:22,670 --> 00:05:25,580 Kjo është vetëm një term gjenerik përshkruar disa lloj enë që ne jemi 115 00:05:25,580 --> 00:05:29,610 përdorur në strukturën tonë të të dhënave për të ruajtur disa pika të interesit, e cila në këtë 116 00:05:29,610 --> 00:05:31,750 Rasti ndodhë që të jetë integers. 117 00:05:31,750 --> 00:05:33,160 >> Por ka gjithmonë një kompromis. 118 00:05:33,160 --> 00:05:38,070 Pra, ne të merrni madhësive dinamike e të dhënave Struktura, por nuk kemi çfarë çmimi paguajnë? 119 00:05:38,070 --> 00:05:40,040 Çfarë është downside i listave të lidhura? 120 00:05:40,040 --> 00:05:41,006 Po? 121 00:05:41,006 --> 00:05:41,980 >> Audienca: Kërkon më shumë memorie. 122 00:05:41,980 --> 00:05:44,240 >> DAVID Malan: Kjo kërkon më shumë kujtesës, si saktësisht? 123 00:05:44,240 --> 00:05:46,440 >> Audienca: [padëgjueshme]. 124 00:05:46,440 --> 00:05:47,050 >> DAVID Malan: Pikërisht. 125 00:05:47,050 --> 00:05:50,460 Pra, tani ne kemi marrë deri pointers memorie shtesë që ne më parë 126 00:05:50,460 --> 00:05:53,040 nuk ka nevojë, sepse avantazh nga një grup, sigurisht, është se 127 00:05:53,040 --> 00:05:54,860 çdo gjë është e puqur, mbrapa te mbështetur te pasme, e cila 128 00:05:54,860 --> 00:05:56,380 ju jep juve akses të rastit. 129 00:05:56,380 --> 00:06:00,710 Sepse vetëm duke përdorur kllapa katrore simbol, ose më teknikisht pointer 130 00:06:00,710 --> 00:06:03,580 aritmetike, shtesë shumë e thjeshtë, ju mund të hyni në ndonjë 131 00:06:03,580 --> 00:06:05,700 elemente në kohë konstante. 132 00:06:05,700 --> 00:06:08,975 Dhe në fakt, kjo është lloj i nënkuptuar në një tjetër çmim që ne jemi duke paguar me një 133 00:06:08,975 --> 00:06:09,760 lista e lidhura. 134 00:06:09,760 --> 00:06:13,890 >> Çfarë ndodh në kohën drejtimin e diçka si Search, nëse unë dua të 135 00:06:13,890 --> 00:06:17,270 gjeni disa vlera dhe brenda i një liste të lidhur? 136 00:06:17,270 --> 00:06:20,290 Çfarë koha ime kandidon të bëhet? 137 00:06:20,290 --> 00:06:21,560 Madhe O i n. 138 00:06:21,560 --> 00:06:24,060 Nëse është e renditura për të? 139 00:06:24,060 --> 00:06:25,440 Çfarë ndodh nëse struktura e të dhënave të renditura? 140 00:06:25,440 --> 00:06:28,640 Mund të bëj më mirë se madhe O i n per kërkimin? 141 00:06:28,640 --> 00:06:31,700 Jo, sepse në rastin më të keq ajo mund shumë mirë të zgjidhet, por numri 142 00:06:31,700 --> 00:06:32,950 ju jeni në kërkim për të mund të jetë i madh. 143 00:06:32,950 --> 00:06:35,370 Ajo mund të jetë numri 100, i cili mund të ndodhë që të jetë mbi të gjitha 144 00:06:35,370 --> 00:06:36,410 Mënyra më në fund. 145 00:06:36,410 --> 00:06:39,950 Dhe për shkak se ju mund të hyni vetëm një linked Lista në këtë zbatim nga 146 00:06:39,950 --> 00:06:42,690 Mënyra e nyjeve të saj të parë, ju jeni ende lloji i nga fat. 147 00:06:42,690 --> 00:06:47,450 Ju duhet të kaloj nëpër gjithë gjë nga e para për të kaluar në mënyrë që të gjeni 148 00:06:47,450 --> 00:06:49,150 se vlera e madhe si 100. 149 00:06:49,150 --> 00:06:51,350 Ose për të përcaktuar nëse është e jo edhe atje. 150 00:06:51,350 --> 00:06:55,960 >> Pra, ne nuk mund të bëjë atë në një algoritëm të dhënave strukturë që duket si ky? 151 00:06:55,960 --> 00:06:59,460 Ne nuk mund të bëni kërkimin binar, sepse kërko binar kërkohet që kemi pasur 152 00:06:59,460 --> 00:07:00,740 qasje të rastit. 153 00:07:00,740 --> 00:07:04,500 Ne vetëm mund të brishtë nga lokacioni në vend pa pasur nevojë për të ndjekur 154 00:07:04,500 --> 00:07:07,080 këto crumbs bukë në formë të gjitha këto pointers. 155 00:07:07,080 --> 00:07:08,300 >> Tani, si e kemi zbatuar këtë? 156 00:07:08,300 --> 00:07:12,830 E pra, në qoftë se ne të shkuar tek ekrani këtu, në qoftë se ne mund të shpejt reimplement këto të dhëna 157 00:07:12,830 --> 00:07:13,440 Struktura - 158 00:07:13,440 --> 00:07:15,670 dorëshkrimit ime nuk është e gjitha që e madhe këtu, por ne do të përpiqemi. 159 00:07:15,670 --> 00:07:22,030 Struct typedef Pra, çfarë bëri dhe unë doni të telefononi këtë gjë deri këtu? 160 00:07:22,030 --> 00:07:22,960 Nyja. 161 00:07:22,960 --> 00:07:24,580 Kështu që unë do të na marrë filluar. 162 00:07:24,580 --> 00:07:27,860 Dhe tani, ajo ka nevojë të jetë brenda Struktura e të dhënave për këtë formë individuale 163 00:07:27,860 --> 00:07:28,430 të lidhura listë? 164 00:07:28,430 --> 00:07:29,950 Sa shumë fusha? 165 00:07:29,950 --> 00:07:30,450 >> Pra dy. 166 00:07:30,450 --> 00:07:31,570 Njëra është mjaft e lehtë. 167 00:07:31,570 --> 00:07:33,050 Pra, int n. 168 00:07:33,050 --> 00:07:35,930 Dhe ne mund të telefononi asgjë n ne duam, por ajo duhet të jetë një int qoftë se ne jemi 169 00:07:35,930 --> 00:07:37,660 zbatimin e një listë e lidhur për ints. 170 00:07:37,660 --> 00:07:41,920 Dhe tani çfarë bën dytë fushë duhet të jetë? 171 00:07:41,920 --> 00:07:43,460 Struct nyje *. 172 00:07:43,460 --> 00:07:50,570 Pra, nëse unë bëj struct nyje *, dhe atëherë unë Kjo gjithashtu mund të telefononi çdo gjë që unë dua, 173 00:07:50,570 --> 00:07:53,510 por vetëm të jetë i qartë unë do të thërrasë ajo ardhshëm, siç kemi qenë duke bërë. 174 00:07:53,510 --> 00:07:55,270 Dhe atëherë unë do të mbyll e mia formatimin e teksteve kaçurrel. 175 00:07:55,270 --> 00:08:00,700 >> Dhe tani, si kohë e kaluar, I vënë nyje këtu poshtë. 176 00:08:00,700 --> 00:08:03,830 Por në qoftë se unë jam deklaruar kjo është si një nyje, pse nuk kam qenë aq mërzit 177 00:08:03,830 --> 00:08:07,320 fjalëshumë këtu në shpalljen struct * nyjen e ardhshëm, në krahasim 178 00:08:07,320 --> 00:08:09,210 * të vetëm nyjen e ardhshëm? 179 00:08:09,210 --> 00:08:09,904 Po? 180 00:08:09,904 --> 00:08:12,810 >> Audienca: [padëgjueshme]. 181 00:08:12,810 --> 00:08:14,050 >> DAVID Malan: Pikërisht. 182 00:08:14,050 --> 00:08:14,530 Saktësisht. 183 00:08:14,530 --> 00:08:18,320 Sepse C vërtetë ju merr fjalë për fjalë dhe sheh vetëm përkufizimin e nyjes 184 00:08:18,320 --> 00:08:21,230 Mënyra më poshtë këtu, ju nuk mund të referohen atë deri këtu. 185 00:08:21,230 --> 00:08:24,760 Pra, ne kemi këtë lloj të përparësisë Deklarata këtu, e cila është pa dyshim 186 00:08:24,760 --> 00:08:25,390 më shumë fjalëshumë. 187 00:08:25,390 --> 00:08:27,810 Struct nyje, që do të thotë ne tani mund të hyni në atë 188 00:08:27,810 --> 00:08:29,760 brendësi të strukturës dhënave. 189 00:08:29,760 --> 00:08:33,370 >> Dhe si një mënjanë, sepse kjo është duke u bërë një pak më shumë subjektive tani, 190 00:08:33,370 --> 00:08:36,230 yll teknikisht mund të shkoni këtu, ajo mund të shkoni këtu, ajo mund të 191 00:08:36,230 --> 00:08:37,179 shkojnë edhe në mes. 192 00:08:37,179 --> 00:08:39,890 Ne kemi miratuar, në stil udhëzues për kurs, konventë e vënë 193 00:08:39,890 --> 00:08:42,299 yll të drejtë tjetër të të dhënave lloji, e cila në këtë rast, 194 00:08:42,299 --> 00:08:43,460 do të jetë nyje struct. 195 00:08:43,460 --> 00:08:46,620 Por të kuptojë në një shumë të teksteve dhe referencat online, ju mund të vërtetë 196 00:08:46,620 --> 00:08:48,450 shohin atë në anën tjetër. 197 00:08:48,450 --> 00:08:52,200 Por vetëm të kuptojë se të dy të vërtetë do të punoni dhe ju duhet të jetë thjesht 198 00:08:52,200 --> 00:08:52,970 konsistente. 199 00:08:52,970 --> 00:08:53,580 >> Dakord. 200 00:08:53,580 --> 00:08:55,630 Kështu që ishte shpallja jonë e nyjeve struct. 201 00:08:55,630 --> 00:08:59,430 Por pastaj kemi filluar duke bërë më shumë gjëra të sofistikuara. 202 00:08:59,430 --> 00:09:03,410 Për shembull, ne kemi vendosur për të futur diçka si një tabelë hash. 203 00:09:03,410 --> 00:09:08,160 Kështu që këtu është një tabelë hash të n madhësisë, indeksuar nga 0 në krye të majtë të n 204 00:09:08,160 --> 00:09:09,690 minus 1 në pjesën e poshtme të majtë. 205 00:09:09,690 --> 00:09:11,640 Kjo mund të jetë një hash Tabela për asgjë. 206 00:09:11,640 --> 00:09:15,340 Por ajo që llojet e gjërave nuk flasim lidhje me përdorimin e një tabelë hash për të? 207 00:09:15,340 --> 00:09:18,370 Ruajtjen çfarë? 208 00:09:18,370 --> 00:09:18,800 >> Emra. 209 00:09:18,800 --> 00:09:20,870 Ne mund të bëjmë emra si ne e bëmë herën e fundit. 210 00:09:20,870 --> 00:09:22,200 Dhe me të vërtetë, ju mund të ruajë asgjë. 211 00:09:22,200 --> 00:09:24,640 Dhe ne do të shohim këtë përsëri në PHP dhe në JavaScript. 212 00:09:24,640 --> 00:09:28,550 Një tabelë hash është një lloj e bukur zvicerane Thikë Ushtria që ju lejon për të ruajtur 213 00:09:28,550 --> 00:09:33,690 pretty much çdo gjë që ju dëshironi në brendësi të ajo me shoqërimin me çelësat vlerave. 214 00:09:33,690 --> 00:09:34,770 Keys me vlera. 215 00:09:34,770 --> 00:09:37,800 >> Tani, në këtë rast të thjeshtë, tonë Çelësat janë vetëm numra. 216 00:09:37,800 --> 00:09:40,380 Ne jemi duke zbatuar një hash Tabela si një rrjet. 217 00:09:40,380 --> 00:09:43,500 Dhe kështu çelësat janë 0, 1, 2, dhe kështu me radhë. 218 00:09:43,500 --> 00:09:47,200 Dhe kështu që ne, si qenie njerëzore, vendosi fundit Javën që ju e dini se çfarë, në qoftë se ne jemi 219 00:09:47,200 --> 00:09:50,410 shkuar në dyqan emrave, le të vetëm në mënyrë arbitrare, por mjaft të arsyeshme, 220 00:09:50,410 --> 00:09:54,680 supozojmë se Alice, një Një emër, thjesht do të indeksohen në 0. 221 00:09:54,680 --> 00:09:58,030 Dhe Bob, një emër B, do të indeksohen në 1, dhe kështu me radhë. 222 00:09:58,030 --> 00:10:02,490 Pra, kemi pasur një hartë në mes të inputeve, cilat janë vargjet, dhe hash 223 00:10:02,490 --> 00:10:04,560 vende, të cilat janë numra. 224 00:10:04,560 --> 00:10:07,740 >> Kështu që procesi është i njohur përgjithësisht si një funksion hash, dhe ju mund të vërtetë 225 00:10:07,740 --> 00:10:09,130 zbatojë atë në kodin. 226 00:10:09,130 --> 00:10:12,080 Në qoftë se unë të kërkuar për të zbatuar një funksion hash që e bën pikërisht atë që ne 227 00:10:12,080 --> 00:10:17,070 përshkruhet vetëm nga hera e fundit, unë mund deklarojë një funksion që merr, si 228 00:10:17,070 --> 00:10:18,330 input për shembull - 229 00:10:18,330 --> 00:10:22,190 dhe le ta bëjmë këtë në këtë Ekran mbi këtu. 230 00:10:22,190 --> 00:10:26,180 Nëse unë të kërkuar për të implementuar një hash funksion, unë mund të them 231 00:10:26,180 --> 00:10:27,410 diçka si kjo. 232 00:10:27,410 --> 00:10:29,030 >> Ajo do të kthehet një int. 233 00:10:29,030 --> 00:10:33,600 Ajo do të quhet hash, dhe kjo është do ta pranojnë si argument një 234 00:10:33,600 --> 00:10:38,920 string, ose ne mund të jetë më e duhur tani, dhe thonë * char, ne do të thërrasë atë s. 235 00:10:38,920 --> 00:10:43,840 Dhe pastaj gjithë ky funksion ka për të bërë, në fund të fundit, po kthehet një int. 236 00:10:43,840 --> 00:10:45,990 Tani, si e bën atë që mund të mos jetë aq e qartë. 237 00:10:45,990 --> 00:10:49,510 Unë jam duke shkuar për të zbatuar këtë pa ndonjë formojnë i gabimit kontrolluar tani. 238 00:10:49,510 --> 00:10:55,740 Unë jam vetëm duke shkuar për të thonë verbërisht, kthehen çdo gjë që është në kllapa 0 s, minus, 239 00:10:55,740 --> 00:10:58,850 le të themi, kryeqyteti pikëpresje. 240 00:10:58,850 --> 00:10:59,960 >> Thyer tërësisht. 241 00:10:59,960 --> 00:11:02,620 Kjo nuk është e përsosur, sepse një, çfarë nëse s është i pavlefshëm? 242 00:11:02,620 --> 00:11:04,000 Gjëra të këqija do të ndodhë. 243 00:11:04,000 --> 00:11:07,940 Dy, çfarë nëse shkronja e parë në këtë emri nuk është një letër kryeqyteti? 244 00:11:07,940 --> 00:11:09,860 Kjo nuk do të kthehet qoftë edhe jashtë. 245 00:11:09,860 --> 00:11:11,970 Ajo mund të jetë me shkronja të vogla apo jo një letër në të gjitha. 246 00:11:11,970 --> 00:11:15,520 Pra krejtësisht vend për përmirësim këtu, por kjo është ideja themelore. 247 00:11:15,520 --> 00:11:19,010 >> Ajo që ne e përshkroi javën e kaluar verbalisht si vetëm një proces i hartës për Alice 248 00:11:19,010 --> 00:11:23,360 0 dhe Bob në 1 mund të shprehet siguri më formulaically si një C 249 00:11:23,360 --> 00:11:24,320 funksionojnë këtu. 250 00:11:24,320 --> 00:11:28,630 Bëri thirrje përsëri hash, merr një varg si input, dhe pastaj disi bën diçka 251 00:11:28,630 --> 00:11:31,020 me atë input për të prodhuar një prodhim. 252 00:11:31,020 --> 00:11:34,130 Jo ndryshe nga përshkrimi tonë kuti e zezë që ne kemi bërë gjatë. 253 00:11:34,130 --> 00:11:36,550 Unë nuk e di se si kjo mund të jetë duke punuar nën kapuç. 254 00:11:36,550 --> 00:11:40,120 >> Për set Problem 6, njëra nga sfidat është për ju të vendosni se çfarë 255 00:11:40,120 --> 00:11:41,920 do të hash funksioni juaj të jetë? 256 00:11:41,920 --> 00:11:45,760 Çfarë do të jetë brenda që e zezë kuti, dhe me sa duket, ajo do të jetë një 257 00:11:45,760 --> 00:11:50,380 pak më shumë interesante se ky, dhe patjetër më të prirur për të gabimit 258 00:11:50,380 --> 00:11:53,180 kontrolluar se kjo veçanti zbatimi. 259 00:11:53,180 --> 00:11:54,580 >> Por problemet mund të lindin, e drejtë? 260 00:11:54,580 --> 00:11:57,760 Në qoftë se ne kemi një strukturë të dhëna të tilla si kjo një, çfarë është një nga problemet 261 00:11:57,760 --> 00:12:01,600 ju mund të kandidojë në kalimin e kohës si ju futur emrat e më shumë në 262 00:12:01,600 --> 00:12:02,880 tabelë hash? 263 00:12:02,880 --> 00:12:04,630 Ju merrni goditjet, e drejtë? 264 00:12:04,630 --> 00:12:07,560 Çfarë nëse ju keni Alice dhe Aaronin, dy njerëz emrat e të cilëve ka ndodhur 265 00:12:07,560 --> 00:12:08,190 për të filluar me A? 266 00:12:08,190 --> 00:12:11,660 Kjo ngre pyetjen, ku ju vënë dytë një emër të tillë? 267 00:12:11,660 --> 00:12:15,050 >> E pra, ju mund të vetëm vënë atë me naivitet Bob ku i takon, por pastaj është Bob 268 00:12:15,050 --> 00:12:17,300 lloj i dehur nëse ju përpiqeni të shëno emrin e tij të ardhshëm dhe 269 00:12:17,300 --> 00:12:18,240 nuk ka dhomë për të. 270 00:12:18,240 --> 00:12:21,400 Kështu që ju mund të vënë Bob Charlie ku është, dhe ju mund të imagjinoni këtë shumë shpejt 271 00:12:21,400 --> 00:12:23,020 delegimin në një grimë e një rrëmujë. 272 00:12:23,020 --> 00:12:25,600 Diçka lineare në fund, ku ju vetëm duhet të kërkoni të gjithë gjë 273 00:12:25,600 --> 00:12:28,190 kërkoni për Alice apo Bob ose Aaron apo Charlie. 274 00:12:28,190 --> 00:12:33,230 >> Pra, në vend që kemi propozuar, në vend të vetëm linearisht probing për hapësira të hapura 275 00:12:33,230 --> 00:12:36,450 dhe plopping emrat atje, ne propozoi një qasje njohës. 276 00:12:36,450 --> 00:12:41,740 Një tabelë hash zbatuar ende me një array e indekseve, por tipi i të dhënave 277 00:12:41,740 --> 00:12:44,500 Indekset ato tani ishin pointers. 278 00:12:44,500 --> 00:12:47,360 Pointers për çfarë? 279 00:12:47,360 --> 00:12:48,730 Pointers në listat e lidhura. 280 00:12:48,730 --> 00:12:53,330 >> Sepse kujtojnë se është një listë e lidhur me të vërtetë vetëm një tregues për një nyje, dhe 281 00:12:53,330 --> 00:12:57,110 nyjë ka një fushë tjetër, dhe se Nyja ka një fushë tjetër, dhe kështu me radhë. 282 00:12:57,110 --> 00:13:00,690 Kështu që ju tani mund të mendoni për këtë grup në Ana e majtë e një tabelë hash si 283 00:13:00,690 --> 00:13:01,820 duke çuar në listën e lidhur. 284 00:13:01,820 --> 00:13:07,000 Avantazhi i cili është në qoftë se ju merrni një Përplasja mes Alice dhe Aaronit, 285 00:13:07,000 --> 00:13:09,300 çfarë do të bëni me Personi i dytë i tillë? 286 00:13:09,300 --> 00:13:14,150 Ju vetëm të bashkëngjitni atë apo të saj për të fundi, ose madje edhe fillimi 287 00:13:14,150 --> 00:13:15,490 e atij listën e lidhur. 288 00:13:15,490 --> 00:13:17,340 >> Dhe në të vërtetë, le të vetëm hajvan përmes se për vetëm një sekondë. 289 00:13:17,340 --> 00:13:18,640 Ku do të bëjë më kuptim? 290 00:13:18,640 --> 00:13:22,060 Nëse unë futur Alice dhe ajo përfundon deri në vendndodhja e parë, atëherë unë të përpiqet për të 291 00:13:22,060 --> 00:13:25,310 insert emrin e Aaronit, dhe ka padyshim një përplasje, duhet të kam vënë 292 00:13:25,310 --> 00:13:27,400 atë në fillim e listës së lidhur? 293 00:13:27,400 --> 00:13:30,944 Kjo është në atë vend të parë, apo në fund? 294 00:13:30,944 --> 00:13:31,440 >> Audienca: [padëgjueshme]. 295 00:13:31,440 --> 00:13:31,990 >> DAVID Malan: OK. 296 00:13:31,990 --> 00:13:32,490 Kam dëgjuar fillimi. 297 00:13:32,490 --> 00:13:33,903 Pse në fillim? 298 00:13:33,903 --> 00:13:34,750 >> Audienca: [padëgjueshme]. 299 00:13:34,750 --> 00:13:34,940 >> DAVID Malan: OK. 300 00:13:34,940 --> 00:13:36,520 Është alfabetike, kështu që është e bukur. 301 00:13:36,520 --> 00:13:37,330 Kjo është një pronë e mirë. 302 00:13:37,330 --> 00:13:39,335 Ajo do të shpëtojë mua disa kohë potencialisht. 303 00:13:39,335 --> 00:13:43,290 Kjo nuk do të më lejoni të bëjë kërkimin binar, por unë mund të paktën të jetë në gjendje për të thyer jashtë 304 00:13:43,290 --> 00:13:47,340 i një lak në qoftë se unë të kuptojë, mirë, unë jam rruga e kaluara ishin Aaroni do të jetë në këtë 305 00:13:47,340 --> 00:13:48,310 renditura listën e lidhur. 306 00:13:48,310 --> 00:13:50,360 Unë nuk duhet të humbim kohë e mia në kërkim të gjithë rrugën deri në fund. 307 00:13:50,360 --> 00:13:51,530 Pra, kjo është e arsyeshme. 308 00:13:51,530 --> 00:13:54,710 Pse tjetër që ju mund të dëshironi të futni Emri colliding në 309 00:13:54,710 --> 00:13:56,660 fillimi i listës? 310 00:13:56,660 --> 00:13:57,397 Çfarë është ajo? 311 00:13:57,397 --> 00:13:58,680 >> Audienca: [padëgjueshme]. 312 00:13:58,680 --> 00:14:00,820 >> DAVID Malan: Ajo mund të marrë një kohë të gjatë për të marrë në fund të listës. 313 00:14:00,820 --> 00:14:02,490 Dhe në fakt, më të gjatë dhe më të gjatë. 314 00:14:02,490 --> 00:14:04,920 Emrat më shumë se ju futur fillojnë me A, më se 315 00:14:04,920 --> 00:14:06,280 zinxhir është duke shkuar për të marrë. 316 00:14:06,280 --> 00:14:07,890 Më gjatë që lidhet lista do të merrni. 317 00:14:07,890 --> 00:14:09,420 Pra, ju jeni me të vërtetë vetëm humbur kohën tuaj. 318 00:14:09,420 --> 00:14:14,070 Ndoshta ju jeni më të mirë jashtë ruajtur Ora konstante futje, Big O e 1, 319 00:14:14,070 --> 00:14:18,470 gjithmonë duke vënë emrin në colliding fillimi i listës së lidhur, 320 00:14:18,470 --> 00:14:21,230 dhe jo shqetësuese sa më shumë rreth klasifikim. 321 00:14:21,230 --> 00:14:22,600 >> Cila është përgjigja më e mirë? 322 00:14:22,600 --> 00:14:23,320 Është e paqartë. 323 00:14:23,320 --> 00:14:26,140 Kjo lloj varet nga ajo shpërndarjes është, çfarë model është 324 00:14:26,140 --> 00:14:27,850 e emrave që ju jeni futur. 325 00:14:27,850 --> 00:14:29,430 Kjo nuk është domosdoshmërisht një përgjigje e qartë. 326 00:14:29,430 --> 00:14:33,100 Por këtu për të, përsëri, është një mundësi të projektimit. 327 00:14:33,100 --> 00:14:37,220 >> Pra, ne pastaj shikoi në këtë gjë, e cila është me të vërtetë mundësi të tjera të mëdha 328 00:14:37,220 --> 00:14:38,180 për p-set 6. 329 00:14:38,180 --> 00:14:41,770 Dhe të kuptojë, në qoftë se ju nuk e keni tashmë, Zamyla zhytet në të dyja këto, hash 330 00:14:41,770 --> 00:14:43,260 tavolina dhe përpiqet, më në detaje. 331 00:14:43,260 --> 00:14:45,630 Dhe walkthrough video është ngulitura në p-set spekulim. 332 00:14:45,630 --> 00:14:46,590 Ky ishte një trie - 333 00:14:46,590 --> 00:14:51,670 T-R-I-E. Dhe çfarë ishte interesante në lidhje me kjo ishte se koha running 334 00:14:51,670 --> 00:14:59,510 të kërkojnë për një emër, si Maxwell Herën e fundit, ishte e madhe O çfarë? 335 00:14:59,510 --> 00:15:01,040 Çfarë është ajo? 336 00:15:01,040 --> 00:15:01,920 >> Audienca: Numri i letrave. 337 00:15:01,920 --> 00:15:02,550 >> DAVID Malan: Numri i letrave. 338 00:15:02,550 --> 00:15:03,210 Kam dëgjuar dy gjëra. 339 00:15:03,210 --> 00:15:04,630 Numri i shkronjave dhe Konstanta kohore. 340 00:15:04,630 --> 00:15:05,540 Pra, le të shkojë me se pari. 341 00:15:05,540 --> 00:15:06,410 Numri i shkronjave. 342 00:15:06,410 --> 00:15:10,195 E pra, kjo strukturë e të dhënave, risjell, është si një pemë, një pemë familjare, secili prej 343 00:15:10,195 --> 00:15:12,860 nyjet e të cilëve janë bërë deri të vargjeve. 344 00:15:12,860 --> 00:15:16,300 Dhe ato vargjeve janë pointers në nyjet e tjera të tilla, apo të tjera të tilla 345 00:15:16,300 --> 00:15:17,670 vargjeve në pemë. 346 00:15:17,670 --> 00:15:22,890 >> Pra, nëse ne të kërkuar për të pastaj të përcaktuar nëse Maxwell është këtu, unë mund të shkoj 347 00:15:22,890 --> 00:15:26,890 të array parë, në krye të pemë, e ashtuquajtura rrënjë, të lartë e 348 00:15:26,890 --> 00:15:30,521 trie, dhe pastaj ndiqni treguesin m, pastaj një akrep, atëherë x, 349 00:15:30,521 --> 00:15:31,710 w, e, l, l. 350 00:15:31,710 --> 00:15:34,910 Dhe atëherë kur unë shoh disa simbol të veçantë, pėrcaktuara këtu si një trekëndësh. 351 00:15:34,910 --> 00:15:38,480 Në kodin e ju do të shihni që ne propozojmë që ju zbatohet si një bool, vetëm duke thënë se po 352 00:15:38,480 --> 00:15:40,540 ose jo, një fjalë ndalet këtu. 353 00:15:40,540 --> 00:15:45,270 >> E pra, pasi ne kemi shkuar në M-A-x-W-E-L-L, ndjehet si shtatë, ndoshta 354 00:15:45,270 --> 00:15:48,910 tetë në qoftë se ne do të shkojmë një të kaluar, tetë hapa për të gjetur Maxwell. 355 00:15:48,910 --> 00:15:53,050 Ose le të thërrasë atë K. Por kujtojnë fundit kohë, kam argumentuar se nëse ka 356 00:15:53,050 --> 00:15:57,540 realisht një gjatësi maksimale në një Fjala, si 40-disa-rastësishëm personazhet, një 357 00:15:57,540 --> 00:16:00,810 Gjatësia maksimale nënkupton një vlerë konstante. 358 00:16:00,810 --> 00:16:05,770 Pra, me të vërtetë, po, kjo është teknikisht e madhe O i 8 ose 7, ose o të vërtetë të madh të K. Por 359 00:16:05,770 --> 00:16:09,420 në qoftë se ka një kapak mbi atë fundme K mund të jetë, kjo është një konstante. 360 00:16:09,420 --> 00:16:12,080 Dhe kështu kjo është e madhe O 1 në fundi i ditës. 361 00:16:12,080 --> 00:16:13,040 >> Jo në botën reale. 362 00:16:13,040 --> 00:16:15,960 Jo kur ju të vërtetë të filloni të shikuar clock tuaj si ekzekutoni programin tuaj. 363 00:16:15,960 --> 00:16:20,690 Është absolutisht do të jetë pak ngadalshme se me të vërtetë konstante 364 00:16:20,690 --> 00:16:21,840 herë me një hap. 365 00:16:21,840 --> 00:16:25,540 Ajo do të jetë shtatë ose tetë hapa, por ende kjo është shumë, shumë më mirë 366 00:16:25,540 --> 00:16:30,080 se një algoritmi si Big O n e asaj varet nga madhësia e asaj që është në 367 00:16:30,080 --> 00:16:31,220 Struktura e të dhënave. 368 00:16:31,220 --> 00:16:34,970 >> Njoftim kokë këtu është që ne mund të futni një milion emrat e më shumë në këtë 369 00:16:34,970 --> 00:16:38,170 Struktura e të dhënave, por sa më shumë hapa ajo është duke shkuar për të na marrë për të gjetur 370 00:16:38,170 --> 00:16:40,480 Maxwell në këtë rast? 371 00:16:40,480 --> 00:16:40,780 Asnjë. 372 00:16:40,780 --> 00:16:41,820 Ai është i sinqertë. 373 00:16:41,820 --> 00:16:45,480 Dhe deri më sot, unë nuk mendoj se ne kemi parë një shembull i një strukture të dhënave ose të një 374 00:16:45,480 --> 00:16:48,560 algorithm se ishte krejtësisht pandikuar nga të jashtëm 375 00:16:48,560 --> 00:16:50,040 sjelljet si kjo. 376 00:16:50,040 --> 00:16:51,160 Por kjo nuk mund të jetë e mahnitshme. 377 00:16:51,160 --> 00:16:52,900 Kjo nuk mund të jetë zgjidhja e vetme për p-set 378 00:16:52,900 --> 00:16:53,570 >> Dhe kjo nuk është. 379 00:16:53,570 --> 00:16:55,980 Kjo nuk është domosdoshmërisht të dhënat Struktura ju duhet të bie për të, 380 00:16:55,980 --> 00:16:58,220 sepse si tabelat hash, tradeoff. 381 00:16:58,220 --> 00:17:00,500 Çfarë është çmimi që ju paguani këtu? 382 00:17:00,500 --> 00:17:00,940 Memory. 383 00:17:00,940 --> 00:17:02,890 Unë do të thotë, kjo është një atrocious shuma e kujtesës. 384 00:17:02,890 --> 00:17:05,569 Dhe ju nuk mund të mjaft të shohin atë këtu, sepse Autori i këtij foto 385 00:17:05,569 --> 00:17:09,420 cunguar padyshim të gjitha vargjeve, dhe ne nuk po shohim shumë e A-së dhe 386 00:17:09,420 --> 00:17:12,700 B-së dhe C dhe Q-së dhe të Y dhe Z-së në këto vargjeve. 387 00:17:12,700 --> 00:17:13,630 Por ata janë atje. 388 00:17:13,630 --> 00:17:17,660 >> Secila prej këtyre nyjeve është një koleksion të tërë e disa 26 apo më shumë bytes, secili prej 389 00:17:17,660 --> 00:17:19,170 e cila përfaqëson një letër. 390 00:17:19,170 --> 00:17:22,920 27 në rastin tonë, kështu që ne mund të mbështesim apostrofat në setin problem. 391 00:17:22,920 --> 00:17:27,030 Pra, kjo është me të vërtetë Struktura e të dhënave, të vërtetë të dendura dhe të gjerë. 392 00:17:27,030 --> 00:17:30,880 Dhe kjo vetëm mund të përfundojnë ngadalësuar gjërat poshtë, ose të paktën të ju kushton një 393 00:17:30,880 --> 00:17:32,240 hapësirë ​​shumë më tepër. 394 00:17:32,240 --> 00:17:34,020 Por përsëri, ne mund të tërheqë krahasimet këtu. 395 00:17:34,020 --> 00:17:39,190 >> Kujtojnë Një ndërsa mbrapa, ne kemi arritur shumë më shumë kohë emocionuese running në klasifikim 396 00:17:39,190 --> 00:17:42,880 kur ne përdorim lloj bashkojë, por çmimi kemi paguar për të arritur n log n për bashkimin 397 00:17:42,880 --> 00:17:46,930 lloj kërkohet që ne të shpenzojnë më shumë çfarë të burimeve? 398 00:17:46,930 --> 00:17:47,690 Më shumë hapësirë. 399 00:17:47,690 --> 00:17:50,530 Ne kishim nevojë për një rrjet të mesme të kopjoni njerëzit në, ashtu si 400 00:17:50,530 --> 00:17:51,620 ne e bëmë këtu në skenë. 401 00:17:51,620 --> 00:17:55,880 Pra, përsëri, asnjë fitues të qartë, por vetëm dizajn subjektive 402 00:17:55,880 --> 00:17:57,710 vendimet për të bërë. 403 00:17:57,710 --> 00:17:58,060 >> Dakord. 404 00:17:58,060 --> 00:17:59,130 Pra, si në lidhje me këtë? 405 00:17:59,130 --> 00:18:02,050 Çdokush që e njohin D-Hall? 406 00:18:02,050 --> 00:18:02,440 OK. 407 00:18:02,440 --> 00:18:03,170 Pra, tre prej nesh bëjnë. 408 00:18:03,170 --> 00:18:03,750 Mather House. 409 00:18:03,750 --> 00:18:05,070 Pra, kjo është për ngrënie Mather së. 410 00:18:05,070 --> 00:18:09,650 Unë do bast të gjithë salla ngrënie të ketë oxhaqet e tabaka si kjo. 411 00:18:09,650 --> 00:18:11,950 Dhe kjo është në të vërtetë përfaqësuesi i diçkaje që kemi 412 00:18:11,950 --> 00:18:13,050 shihet qartë tashmë. 413 00:18:13,050 --> 00:18:14,850 Ne e thirrëm atë fjalë për fjalë një pirg. 414 00:18:14,850 --> 00:18:18,970 Dhe rafte, në aspektin e juaj memorie të kompjuterit, është ku të dhënat shkon 415 00:18:18,970 --> 00:18:20,460 ndërsa funksione janë duke u quajtur. 416 00:18:20,460 --> 00:18:23,410 >> Për shembull, çfarë lloje të gjëra shkojnë në rafte në lidhje me 417 00:18:23,410 --> 00:18:27,420 Paraqitjen e kujtesës kemi diskutuar në javët e fundit? 418 00:18:27,420 --> 00:18:28,736 Çfarë është ajo? 419 00:18:28,736 --> 00:18:29,670 >> Audienca: Thirrje ndaj funksioneve. 420 00:18:29,670 --> 00:18:30,260 >> DAVID Malan: Unë jam i keq. 421 00:18:30,260 --> 00:18:31,210 >> Audienca: Thirrje ndaj funksioneve. 422 00:18:31,210 --> 00:18:33,590 >> DAVID Malan: Telefonata me funksione, por konkretisht, çfarë është brenda secilit prej 423 00:18:33,590 --> 00:18:35,340 ato korniza? 424 00:18:35,340 --> 00:18:37,220 Cilat llojet e gjërave? 425 00:18:37,220 --> 00:18:37,460 Po. 426 00:18:37,460 --> 00:18:38,500 Pra, variablat lokale. 427 00:18:38,500 --> 00:18:43,080 Çdoherë që ne kemi nevojë për disa ruajtje lokale, si një argument, apo int unë, apo int 428 00:18:43,080 --> 00:18:45,940 temp, ose çfarëdo lokale variabël është, ne kemi qenë 429 00:18:45,940 --> 00:18:47,210 vënien se ne pirg. 430 00:18:47,210 --> 00:18:49,610 Dhe ne e quajmë atë një pirg, sepse i kësaj ideje layering. 431 00:18:49,610 --> 00:18:52,940 Vetëm lloj ndeshjeve deri me realitetin, konceptit tij. 432 00:18:52,940 --> 00:18:56,650 >> Por kjo rezulton se një pirg gjithashtu mund të të shihet si një strukturë e të dhënave, një 433 00:18:56,650 --> 00:19:00,110 alternativë për një grup, një alternativë te nje lista e lidhur. 434 00:19:00,110 --> 00:19:02,770 Diçka konceptualisht më interesante që mund të jetë ende 435 00:19:02,770 --> 00:19:06,030 zbatohet duke përdorur njërin prej atyre gjëra, por kjo është një lloj i ndryshëm i 436 00:19:06,030 --> 00:19:09,140 Të dhënat struktura mbështetëse, me të vërtetë, vetëm dy operacioneve. 437 00:19:09,140 --> 00:19:11,000 Por ju mund të shtoni në njohës Karakteristika se këta. 438 00:19:11,000 --> 00:19:12,180 Por këto janë bazat - 439 00:19:12,180 --> 00:19:13,510 shtytje dhe pop. 440 00:19:13,510 --> 00:19:19,240 >> Dhe ideja me një turrë është se në qoftë se unë kemi këtu, me ose pa Annenberg 441 00:19:19,240 --> 00:19:22,880 duke e ditur, një tabaka nga dera e ardhshëm me numrin 9 mbi të. 442 00:19:22,880 --> 00:19:23,870 Pra, vetëm një int. 443 00:19:23,870 --> 00:19:26,990 Dhe unë dua të shtyjë këtë mbi të dhënat e strukturë, e cila aktualisht eshte bosh. 444 00:19:26,990 --> 00:19:28,790 Konsideroni këtë pjesën e poshtme të rafte. 445 00:19:28,790 --> 00:19:33,150 Unë do të shtyjë këtë numër 9 onto rafte, dhe tani ajo është e drejtë atje. 446 00:19:33,150 --> 00:19:36,040 >> Por gjëja më interesante në lidhje me një pirg është se në qoftë se unë tani dua të shtyjë 447 00:19:36,040 --> 00:19:40,210 disa vlera të tjera, si 17, dhe unë të shtyjë kjo mbi rafte, unë jam duke shkuar për të bërë 448 00:19:40,210 --> 00:19:43,290 vetmja gjë intuitive, unë jam vetëm duke shkuar për të vënë atë të drejtë ku ne njerëzit 449 00:19:43,290 --> 00:19:45,180 do të jenë të prirur për ta vënë atë, në krye. 450 00:19:45,180 --> 00:19:48,850 Por ajo që është interesante tani po, si mund të shkoj në 9? 451 00:19:48,850 --> 00:19:50,670 Ju e dini, unë nuk bëj pa ndonjë përpjekje. 452 00:19:50,670 --> 00:19:54,070 >> Pra, çfarë është interesante në lidhje me është se një pirg me dashje, 453 00:19:54,070 --> 00:19:56,330 ajo është një strukturë e të dhënave LIFO. 454 00:19:56,330 --> 00:19:59,680 Silly Mënyra e përshkrimit të kaluar në, së pari jashtë. 455 00:19:59,680 --> 00:20:03,280 Pra, numri i fundit në në këtë kohë ishte 17. 456 00:20:03,280 --> 00:20:07,540 Pra, nëse unë dua të pop diçka jashtë të pirg, ajo mund vetëm të jetë 17. 457 00:20:07,540 --> 00:20:11,890 Pra, ka një urdhër i detyrueshëm i Operacionet këtu, ku pika e fundit 458 00:20:11,890 --> 00:20:14,260 ne duhet të jetë i pari njëri jashtë. 459 00:20:14,260 --> 00:20:16,440 Prandaj akronim, LIFO. 460 00:20:16,440 --> 00:20:19,160 >> Pra, pse kjo mund të jetë e dobishme? 461 00:20:19,160 --> 00:20:22,690 Jeni kontekstet e tyre në të cilën ju do të doni një strukturën e të dhënave si kjo? 462 00:20:22,690 --> 00:20:24,810 E pra, kjo është sigurisht e dobishme brendësi të një kompjuter. 463 00:20:24,810 --> 00:20:29,050 Pra, sistemet operative në mënyrë të qartë të përdorin këtë lloj i strukturës së të dhënave për oxhaqet. 464 00:20:29,050 --> 00:20:32,800 Ne gjithashtu do të shohim të njëjtën ide kur vjen puna për të faqeve web. 465 00:20:32,800 --> 00:20:35,890 Pra, këtë javë dhe javën e ardhshme dhe më tej, dhe si ju të fillojë zbatimin web 466 00:20:35,890 --> 00:20:39,490 faqe në një gjuhë të quajtur HTML, ju mund të të përdorni të vërtetë një strukturë të të dhënave si 467 00:20:39,490 --> 00:20:42,690 kjo për të përcaktuar nëse faqja është formatuar si duhet. 468 00:20:42,690 --> 00:20:47,170 Sepse ne do të shohim të gjitha faqet web të ndjekin një lloj hierarkie, një gjurmë 469 00:20:47,170 --> 00:20:52,030 që do të, në fund të ditës, të jetë një Struktura pemë nën kapuç. 470 00:20:52,030 --> 00:20:53,620 Pra, më shumë se në vetëm një grimë. 471 00:20:53,620 --> 00:20:56,560 >> Por tani për tani, le të propozojë për një moment, se si ne mund të shkoni në lidhje me 472 00:20:56,560 --> 00:20:58,830 përfaqëson atë që një pirg është? 473 00:20:58,830 --> 00:21:03,370 Më lejoni të propozojë që ne të zbatojë një pirg me kodin si kjo. 474 00:21:03,370 --> 00:21:07,990 Pra, një pirg do të ketë në brendësi të tij dy gjëra, një grup, i quajtur tabaka, 475 00:21:07,990 --> 00:21:09,510 vetëm të jenë në përputhje me demo. 476 00:21:09,510 --> 00:21:12,660 Dhe secili prej artikujve në atë grup do të jetë një lloj int. 477 00:21:12,660 --> 00:21:14,740 Dhe kapaciteti është me sa duket ajo? 478 00:21:14,740 --> 00:21:18,796 Sepse unë nuk kam shkruar përkufizim të plotë këtu. 479 00:21:18,796 --> 00:21:21,535 >> Kjo është ndoshta maksimale madhësia e vektorit. 480 00:21:21,535 --> 00:21:25,150 Dhe kjo ndoshta është deklaruar si një të mprehtë të përcaktojë në krye të dosjes, disa 481 00:21:25,150 --> 00:21:28,450 lloj i nënkuptuar si konstante nga kapitalizimi i thjeshtë. 482 00:21:28,450 --> 00:21:32,250 Pra, diku kapaciteti është përcaktuar si madhësia maksimale të mundshme. 483 00:21:32,250 --> 00:21:35,590 Ndërkohë, brenda strukturës së të dhënave i njohur si një pirg do 484 00:21:35,590 --> 00:21:38,630 të jetë një numër i plotë i njohur vetëm thjesht si madhësi. 485 00:21:38,630 --> 00:21:43,400 >> Pra, nëse unë për të përfaqësuar këtë tani në pikturë, le të supozojmë se kjo 486 00:21:43,400 --> 00:21:48,070 Kutia e zezë përfaqëson tërë rafte tim. 487 00:21:48,070 --> 00:21:50,070 Brenda saj është dy variablave. 488 00:21:50,070 --> 00:21:54,780 Kështu që unë jam duke shkuar për të nxjerrë I pari si madhësi. 489 00:21:54,780 --> 00:21:57,420 Dhe e dyta unë jam duke shkuar për të nxjerrë si një grup. 490 00:21:57,420 --> 00:22:01,060 >> Por vetëm për të mbajtur gjërat e rregullt, Normalisht unë do të nxjerrë një koleksion si 491 00:22:01,060 --> 00:22:04,910 këtë, por kjo është lloj i bukur në qoftë se ne përputhen me realitetin, ose 492 00:22:04,910 --> 00:22:06,230 përputhen me modelin mendor. 493 00:22:06,230 --> 00:22:12,880 Pra më lejoni të tërheq në vend array vertikalisht, e cila është vetëm, përsëri, 494 00:22:12,880 --> 00:22:13,840 interpretim i artistit. 495 00:22:13,840 --> 00:22:16,610 A me të vërtetë nuk ka rëndësi se çfarë është nën kapuç. 496 00:22:16,610 --> 00:22:20,350 Dhe ne do të themi se, by default, Kapaciteti do të jetë tre. 497 00:22:20,350 --> 00:22:23,480 Pra, kjo do të jetë lokacioni 0, kjo do të jetë lokacioni 1, kjo 498 00:22:23,480 --> 00:22:25,740 do të jetë lokacioni 2. 499 00:22:25,740 --> 00:22:29,330 >> Nëse unë ryshfet me një top stresit, do të dikush donte për të dalë dhe të drejtuar 500 00:22:29,330 --> 00:22:30,870 hipte këtu për vetëm një çast? 501 00:22:30,870 --> 00:22:31,960 OK, pashë dorën tuaj të parë. 502 00:22:31,960 --> 00:22:33,950 Come on up. 503 00:22:33,950 --> 00:22:36,500 Dakord. 504 00:22:36,500 --> 00:22:38,760 Kështu që unë besoj se është Steven. 505 00:22:38,760 --> 00:22:40,035 Come on up. 506 00:22:40,035 --> 00:22:40,770 Dakord. 507 00:22:40,770 --> 00:22:46,760 >> Por supozoni tani ne Rewind për fillestar gjendja e botës ku unë 508 00:22:46,760 --> 00:22:52,180 kanë deklaruar vetëm një pirg, dhe kjo është do të jetë i kapacitetit tre. 509 00:22:52,180 --> 00:22:54,470 Por madhësia nuk është përcaktuar ende. 510 00:22:54,470 --> 00:22:56,100 Tabaka ende nuk është përcaktuar. 511 00:22:56,100 --> 00:22:57,300 Pra, një çift i pyetjeve parë. 512 00:22:57,300 --> 00:23:01,310 Dhe më lejoni t'ju jap mic kështu që ju mund të marrim pjesë më aktivisht në këtë. 513 00:23:01,310 --> 00:23:05,190 >> Pra, çfarë është brenda madhësisë në këtë moment në kohë, nëse të gjitha unë kam bërë është 514 00:23:05,190 --> 00:23:09,340 deklaruar një pirg me një linjë e kodit? 515 00:23:09,340 --> 00:23:10,100 >> STEVEN: Jo shumë. 516 00:23:10,100 --> 00:23:12,080 >> DAVID Malan: OK, jo shumë. 517 00:23:12,080 --> 00:23:14,410 A e dimë se çfarë ka brenda e madhësisë, nuk e dimë se çfarë është brenda 518 00:23:14,410 --> 00:23:16,330 i këtij array këtu? 519 00:23:16,330 --> 00:23:18,630 >> STEVEN: Vetëm Kodi rastit, e drejtë? 520 00:23:18,630 --> 00:23:20,220 Just - 521 00:23:20,220 --> 00:23:23,230 >> DAVID Malan: Po, unë jam duke shkuar për telefononi atë kod, por të rastësishme - 522 00:23:23,230 --> 00:23:23,820 >> STEVEN: Gjërat. 523 00:23:23,820 --> 00:23:28,290 >> DAVID Malan: Gjëra të tilla si random 524 00:23:28,290 --> 00:23:28,870 >> STEVEN: Bits. 525 00:23:28,870 --> 00:23:29,530 >> DAVID Malan: Bits, e drejtë? 526 00:23:29,530 --> 00:23:31,190 Pra vlerat e plehrave, e drejtë? 527 00:23:31,190 --> 00:23:33,470 Pra permutations të 0 dhe 1-shave. 528 00:23:33,470 --> 00:23:35,920 Mbetjet e usages e mëparshme i këtij kujtesës. 529 00:23:35,920 --> 00:23:38,150 Dhe ne nuk të vërtetë e di se çfarë vlerat janë, kështu që ne zakonisht të tërheqë ata 530 00:23:38,150 --> 00:23:38,930 si pikëpyetjesh. 531 00:23:38,930 --> 00:23:41,990 >> Pra, gjëja e parë që ne jemi me sa duket do të duan për të bërë këtu - 532 00:23:41,990 --> 00:23:46,630 dhe më lejoni të jap këtë fushë brenda e ka një emër - tabaka. 533 00:23:46,630 --> 00:23:49,540 Çfarë duhet të kemi sa duket nisja madhësia në qoftë se ne duam të 534 00:23:49,540 --> 00:23:51,040 filloni duke përdorur këtë turrë? 535 00:23:51,040 --> 00:23:53,070 >> STEVEN: Tray është nën 3. 536 00:23:53,070 --> 00:23:53,910 >> DAVID Malan: Pra, OK. 537 00:23:53,910 --> 00:23:56,710 Të jetë i qartë, kapaciteti është deklaruar diku tjetër si tre. 538 00:23:56,710 --> 00:23:58,570 Dhe kjo është ajo që unë e kam përdorur të ndajë array. 539 00:23:58,570 --> 00:24:03,535 Size është duke shkuar për t'iu referuar sa tabaka janë aktualisht në rafte. 540 00:24:03,535 --> 00:24:03,880 >> STEVEN: Zero. 541 00:24:03,880 --> 00:24:04,460 >> DAVID Malan: Pra, ajo duhet të jetë zero. 542 00:24:04,460 --> 00:24:07,760 Pra shkoni përpara, dhe me çdo gisht, të nxjerrë një zero në madhësi. 543 00:24:07,760 --> 00:24:08,440 Dakord. 544 00:24:08,440 --> 00:24:10,920 Deri tani, çfarë është në brendësi të kësaj këtu, ne nuk e dimë. 545 00:24:10,920 --> 00:24:12,160 Këto janë me të vërtetë vetëm vlerat e plehrave. 546 00:24:12,160 --> 00:24:14,800 Pra, ne mund të tërheqë pikëpyetje, por le të mbajtur të bordit të pastër për tani 547 00:24:14,800 --> 00:24:16,300 sepse kjo nuk ka rëndësi çfarë është atje. 548 00:24:16,300 --> 00:24:19,130 Ne nuk kemi nevojë për të nisja array për ndonjë gjë, sepse në qoftë se ne e dimë se 549 00:24:19,130 --> 00:24:23,100 madhësinë e pirg është zero, mirë, ne nuk duhet të jetë në kërkim në çdo gjë në 550 00:24:23,100 --> 00:24:25,590 kjo array gjithsesi në këtë pikë në kohë. 551 00:24:25,590 --> 00:24:29,970 >> Deri tani mendoj se unë të shtyjë Numri 9 onto rafte. 552 00:24:29,970 --> 00:24:33,750 Si duhet ne update strukturën e të dhënave brenda këtij kutinë e zezë? 553 00:24:33,750 --> 00:24:35,540 Çfarë vlerash duhet të ndryshojë? 554 00:24:35,540 --> 00:24:36,200 >> STEVEN: Brenda - 555 00:24:36,200 --> 00:24:37,400 madhësia? 556 00:24:37,400 --> 00:24:37,650 >> DAVID Malan: OK. 557 00:24:37,650 --> 00:24:38,770 Size çfarë duhet të bëhet? 558 00:24:38,770 --> 00:24:39,580 >> STEVEN: Size do të jetë një. 559 00:24:39,580 --> 00:24:39,870 >> DAVID Malan: OK. 560 00:24:39,870 --> 00:24:41,110 Pra, madhësia duhet të bëhen një. 561 00:24:41,110 --> 00:24:42,540 Kështu që ju mund të bëni këtë në disa mënyra. 562 00:24:42,540 --> 00:24:46,920 Më lejoni t'ju jap, tani tuaj gishtit është një gomë. 563 00:24:46,920 --> 00:24:47,260 Dakord. 564 00:24:47,260 --> 00:24:49,960 Pastaj tani gishtin tuaj është një furçë. 565 00:24:49,960 --> 00:24:50,330 Dakord. 566 00:24:50,330 --> 00:24:52,820 Dhe tani çfarë tjetër ka për të ndryshuar, natyrisht, në strukturën e të dhënave? 567 00:24:52,820 --> 00:24:57,060 >> STEVEN: Ne jemi duke shkuar nga fund deri në 9. 568 00:24:57,060 --> 00:24:57,760 >> DAVID Malan: 9. 569 00:24:57,760 --> 00:24:58,420 OK, i mirë. 570 00:24:58,420 --> 00:25:01,550 Pra, ende nuk ka rëndësi se çfarë është në Vendndodhja një apo dy, sepse ata janë 571 00:25:01,550 --> 00:25:04,520 Vlerat mbeturinash, por ne nuk duhet të shqetësojë kërkoni atje, sepse madhësia është 572 00:25:04,520 --> 00:25:07,540 duke na thënë se vetëm elementi i parë është në të vërtetë legjitime. 573 00:25:07,540 --> 00:25:10,400 Deri tani unë të shtyjë 17 onto listës. 574 00:25:10,400 --> 00:25:11,830 Çfarë ndodh me këtë foto? 575 00:25:11,830 --> 00:25:14,720 >> STEVEN: Pra, madhësia do të shkojë për të dy. 576 00:25:14,720 --> 00:25:15,300 >> DAVID Malan: OK. 577 00:25:15,300 --> 00:25:16,070 Ju jeni gomë - 578 00:25:16,070 --> 00:25:16,810 oops. 579 00:25:16,810 --> 00:25:18,026 Ju jeni një gomë. 580 00:25:18,026 --> 00:25:18,840 >> STEVEN: Eraser. 581 00:25:18,840 --> 00:25:19,720 >> DAVID Malan: Ju jeni një furçë. 582 00:25:19,720 --> 00:25:20,560 >> STEVEN: Furçë. 583 00:25:20,560 --> 00:25:20,920 >> DAVID Malan: OK. 584 00:25:20,920 --> 00:25:21,600 Dhe çfarë tjetër? 585 00:25:21,600 --> 00:25:22,600 >> STEVEN: Dhe pastaj ne - 586 00:25:22,600 --> 00:25:22,915 >> DAVID Malan: Ne e shtyu 17. 587 00:25:22,915 --> 00:25:24,760 >> STEVEN: Ne i përmbahemi 17 në krye, kështu që - 588 00:25:24,760 --> 00:25:25,710 >> DAVID Malan: OK, i mirë. 589 00:25:25,710 --> 00:25:27,040 >> STEVEN: - drop atë poshtë. 590 00:25:27,040 --> 00:25:27,530 >> DAVID Malan: Të gjithë të drejtë. 591 00:25:27,530 --> 00:25:27,940 Është marrë lehtë. 592 00:25:27,940 --> 00:25:29,300 Unë nuk jam duke shkuar për t'ju ndihmuar këtë kohë. 593 00:25:29,300 --> 00:25:30,510 Push 22. 594 00:25:30,510 --> 00:25:31,720 >> STEVEN: Done. 595 00:25:31,720 --> 00:25:34,870 Duke u bërë një gomë. 596 00:25:34,870 --> 00:25:37,340 Unë jam duke u bërë një furçë. 597 00:25:37,340 --> 00:25:39,340 Dhe atëherë unë jam vënë 22. 598 00:25:39,340 --> 00:25:40,100 >> DAVID Malan: 22. 599 00:25:40,100 --> 00:25:40,620 Excellent. 600 00:25:40,620 --> 00:25:41,380 Pra, një herë më shumë. 601 00:25:41,380 --> 00:25:44,280 Unë tani jam duke shkuar për të nxitur rafte mbi 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 Ju me të vërtetë më kapi off roje. 605 00:25:52,520 --> 00:25:53,703 >> DAVID Malan: Ju nuk e bëri shihni këtë që vjen? 606 00:25:53,703 --> 00:25:55,930 >> STEVEN: Unë nuk e shoh këtë që vjen. 607 00:25:55,930 --> 00:25:58,756 Ne mund të ri-Kapaciteti fillestar? 608 00:25:58,756 --> 00:25:59,790 >> DAVID Malan: Kjo është një pyetje e mirë. 609 00:25:59,790 --> 00:26:02,360 Pra, ne kemi lloj të pikturuar veten në një cep këtu. 610 00:26:02,360 --> 00:26:06,740 Ka të vërtetë nuk është më e mirë për Steven sepse ne kemi ndarë këtë koleksion 611 00:26:06,740 --> 00:26:09,130 statike, kështu që të flasin, brenda i strukturës dhënave. 612 00:26:09,130 --> 00:26:12,170 Dhe ne e kemi të vështirë koduar në thelb ajo që të jenë të madhësisë tre. 613 00:26:12,170 --> 00:26:14,170 Pra, ne nuk mund të vërtetë të rialokuar atë. 614 00:26:14,170 --> 00:26:20,020 >> Ne mund të qoftë se ne kemi shkuar përsëri në të, ne ripërcaktuar tabaka të jetë një tregues se 615 00:26:20,020 --> 00:26:22,300 Ne pastaj të përdorin malloc në kujtesë dorë për të. 616 00:26:22,300 --> 00:26:25,050 Sepse në qoftë se ne e mori kujtimin nga tog nëpërmjet malloc, ne 617 00:26:25,050 --> 00:26:26,430 pastaj mund të lirojë atë. 618 00:26:26,430 --> 00:26:29,630 Por, para se të liruar atë, ne mund të rialokuar një copë të madhe të kujtesës, 619 00:26:29,630 --> 00:26:31,330 update treguesin, dhe kështu me radhë. 620 00:26:31,330 --> 00:26:33,500 Por tani për tani, kjo është me të vërtetë më të mirë ne mund të bëjmë. 621 00:26:33,500 --> 00:26:36,360 Push dhe pop me sa duket janë duke shkuar të duhet të tregojë ndonjë gabim. 622 00:26:36,360 --> 00:26:40,270 >> Kështu për shembull, zbatimi tonë i shtytje mund të kthehen një bool e cila 623 00:26:40,270 --> 00:26:42,390 u kthye parë e vërtetë, vërtetë, vërtetë. 624 00:26:42,390 --> 00:26:48,390 Por hera e katërt, ajo do të ketë të kthimit të rreme, për shembull. 625 00:26:48,390 --> 00:26:48,540 Dakord. 626 00:26:48,540 --> 00:26:49,540 Very well done. 627 00:26:49,540 --> 00:26:50,060 Urime. 628 00:26:50,060 --> 00:26:52,160 Ju keni fituar topin e stresit tuaj sot. 629 00:26:52,160 --> 00:26:53,110 >> [Duartrokitje] 630 00:26:53,110 --> 00:26:54,382 >> STEVEN: Faleminderit. 631 00:26:54,382 --> 00:26:55,680 >> DAVID Malan: Faleminderit. 632 00:26:55,680 --> 00:26:59,740 OK, kështu që kjo nuk duket të jetë shumë më e një hap përpara, e drejtë? 633 00:26:59,740 --> 00:27:01,410 Ne përshkroi këtë strukturën e të dhënave. 634 00:27:01,410 --> 00:27:02,320 Ka qenë imponues, e drejtë? 635 00:27:02,320 --> 00:27:03,200 Sistemet Operative të donte ai. 636 00:27:03,200 --> 00:27:06,360 Me sa duket web mund të bëjë përdorimin e kësaj, dhe aplikacionet e tjera ende. 637 00:27:06,360 --> 00:27:10,870 Por ajo që një kufizim budalla se ne jemi mbështetur në lloj të javës së dy kufijve 638 00:27:10,870 --> 00:27:12,880 ku kemi fiksuar vargjeve size. 639 00:27:12,880 --> 00:27:15,010 >> Pra, nuk janë me të vërtetë një çift i mënyrat që ne mund të zgjidhur këtë. 640 00:27:15,010 --> 00:27:18,750 Ne mund të ndajë array dinamike, jo me e vështirë coding atë si unë e kam 641 00:27:18,750 --> 00:27:22,600 bëhet këtu, por në vend të ri-shpalljes kjo, vetëm të jetë i qartë, si 642 00:27:22,600 --> 00:27:23,830 diçka si kjo. 643 00:27:23,830 --> 00:27:29,040 Int * tabaka jo, duke vendosur në një kapacitet ende. 644 00:27:29,040 --> 00:27:35,460 Por kur unë deklaroj rafte diku tjetër në kodin tim, atëherë unë mund të telefononi malloc, 645 00:27:35,460 --> 00:27:38,250 të marrë një adresë të një copë të kujtesës, dhe unë mund të caktojë 646 00:27:38,250 --> 00:27:39,980 se adresa për tabaka. 647 00:27:39,980 --> 00:27:43,340 >> Dhe pastaj, për shkak se ajo është vetëm një copë e kujtesës, unë mund të vazhdojë të përdorë katror 648 00:27:43,340 --> 00:27:45,450 simbol parantezë në mënyrë të zakonshme. 649 00:27:45,450 --> 00:27:49,020 Sepse përsëri, nuk është lloj i kësaj ekuivalent funksional i vargjeve dhe 650 00:27:49,020 --> 00:27:50,820 chunks e kujtesës që vijnë prapa nga malloc. 651 00:27:50,820 --> 00:27:53,090 Ne mund të trajtojnë njëri-tjetrin si duke përdorur aritmetike apo akrep 652 00:27:53,090 --> 00:27:54,440 simbol kllapa katrore. 653 00:27:54,440 --> 00:27:55,660 Pra, kjo është një qasje. 654 00:27:55,660 --> 00:28:00,120 >> Por si tjetër mund të kemi zbatuar këtë të dhënat e njëjta strukturë, potencialisht? 655 00:28:00,120 --> 00:28:00,280 E drejta? 656 00:28:00,280 --> 00:28:04,530 Unë ndjehem si ne vetëm zgjidhur këtë problem si një javë më parë. 657 00:28:04,530 --> 00:28:08,860 Cili ishte zgjidhje për këtë problem Steven që u zhvillua në? 658 00:28:08,860 --> 00:28:10,370 Listat e lidhura Pra, të drejtë. 659 00:28:10,370 --> 00:28:13,410 >> Nëse problemi është se ne jemi pikturë veten në një cep duke ndarë 660 00:28:13,410 --> 00:28:17,580 në kujtesën e shumë pak përpara se ne pastaj kanë në një farë mënyre merren me të, mirë, 661 00:28:17,580 --> 00:28:19,880 pse jo vetëm të shmangur atë lëshojë krejt? 662 00:28:19,880 --> 00:28:26,170 Pse jo vetëm të deklarojnë tabaka të jetë një tregues për një, Ergo nyjen një listë të lidhura, 663 00:28:26,170 --> 00:28:30,740 dhe pastaj thjesht të ndajë nyje të reja çdo herë Steven nevojshme për të përshtaten një 664 00:28:30,740 --> 00:28:32,400 Numri në strukturën e të dhënave. 665 00:28:32,400 --> 00:28:34,200 >> Pra, fotografia do të duhet të ndryshojë. 666 00:28:34,200 --> 00:28:38,220 Kjo nuk do të jetë aq i pastër dhe si thjeshtë sa vetëm një grup prej tre ints. 667 00:28:38,220 --> 00:28:42,970 Tani ajo do të jetë një tregues për një struct, dhe se struct do të 668 00:28:42,970 --> 00:28:44,830 kanë një int dhe një tregues tjetër. 669 00:28:44,830 --> 00:28:47,670 Ajo do të udhëheqë me anë të atij akrep struct për një tjetër të tillë të 670 00:28:47,670 --> 00:28:48,600 struct një tjetër të tillë. 671 00:28:48,600 --> 00:28:50,560 Pra, fotografia në fakt do të merrni një Messier bit. 672 00:28:50,560 --> 00:28:52,950 Dhe ne do të kemi shigjeta lidhur çdo gjë së bashku. 673 00:28:52,950 --> 00:28:55,280 >> Por kjo është në rregull, të drejtë, sepse ne kemi parë se si ta bëni këtë. 674 00:28:55,280 --> 00:28:58,180 Dhe një herë ju merrni të rehatshme diçka zbatimin si një linked 675 00:28:58,180 --> 00:29:01,450 listë, të cilat ju do të keni të bëni nëse ju të zgjedhin për të zbatuar një tabelë hash me 676 00:29:01,450 --> 00:29:05,120 chaining të veçantë për të vendosur p-6, ju mund të përdorin atë si një bllok ndërtimi, ose një 677 00:29:05,120 --> 00:29:08,870 Përbërës, ose ne Scratch flet, nje Procedura, diçka që ju vendosni, ju 678 00:29:08,870 --> 00:29:12,560 krijuar vet copë tuaj mister që atëherë ju mund të ripërdorimin. 679 00:29:12,560 --> 00:29:17,090 Tradeoffs kështu, por zgjidhjet e mundshme që ne kemi parë në të vërtetë përpara. 680 00:29:17,090 --> 00:29:20,560 >> Pra, mjaft shpesh, ju shihni këtë çdo vit apo dy kur Apple liron 681 00:29:20,560 --> 00:29:23,060 diçka e re, dhe tërë populli çmendur vijë deri jashtë Apple 682 00:29:23,060 --> 00:29:27,050 dyqan për të blerë margjinale e tyre përmirësuar në hardware. 683 00:29:27,050 --> 00:29:30,420 E them këtë, kjo është në rregull, për shkak se Unë jam një nga ata njerëz. 684 00:29:30,420 --> 00:29:35,140 Pra, çfarë lloji i strukturës së të dhënave mund të përfaqësojnë këtë realitet? 685 00:29:35,140 --> 00:29:36,980 >> E pra, le të thërrasë atë një radhë, një linjë. 686 00:29:36,980 --> 00:29:40,270 Pra britanik do të thërrasë atë në mënyrë tipike një Radhë anyway, kështu që kjo është një emër i bukur. 687 00:29:40,270 --> 00:29:44,960 Dhe dy operacione që një radhë do të mbështesë ne do të thërrasë një enqueue 688 00:29:44,960 --> 00:29:48,900 operacion dhe një operacion dequeue, të cilat janë të ngjashme në 689 00:29:48,900 --> 00:29:50,120 shpirt të shtyjë dhe pop. 690 00:29:50,120 --> 00:29:54,060 Është vetëm lloj i ndryshëm në konventë, atë që ne jemi duke bërë thirrje këto. 691 00:29:54,060 --> 00:29:57,680 Por për enqueue diçka do të thotë për të shtuar ose futur atë në strukturën e të dhënave. 692 00:29:57,680 --> 00:29:59,570 Për dequeue do të thotë për të hequr atë. 693 00:29:59,570 --> 00:30:05,170 Por ndërsa një pirg ishte dhënave LIFO strukturë, një radhë eshte nje ne pare, 694 00:30:05,170 --> 00:30:06,740 e parë të të dhënave jashtë strukturës. 695 00:30:06,740 --> 00:30:10,050 >> Nëse ju jeni personi i parë në linjë, ju do të jetë personi i parë për të marrë 696 00:30:10,050 --> 00:30:12,420 jashtë linjës dhe për të blerë pajisjen tuaj të re. 697 00:30:12,420 --> 00:30:18,070 Paramendoni se sa i mërzitur këta njerëz do të jenë të në qoftë se Apple në vend përdoret një pirg, për 698 00:30:18,070 --> 00:30:21,250 shembull, për të zbatuar picking nga lodër tuaj të re. 699 00:30:21,250 --> 00:30:24,310 Pra Rradhët kuptim, sigurisht, dhe Ne mund të mendoj për të gjitha llojet e 700 00:30:24,310 --> 00:30:27,480 aplikacione, me sa duket, për radhët e gjata, sidomos kur ju doni drejtësi. 701 00:30:27,480 --> 00:30:30,040 Pra, si mund të kemi zbatuar këto si një strukturë e të dhënave? 702 00:30:30,040 --> 00:30:33,680 >> E pra, unë propozoj që ne të mund duhet të bëni atë në këtë mënyrë. 703 00:30:33,680 --> 00:30:35,225 Kështu që unë jam duke shkuar për të tani kanë numra. 704 00:30:35,225 --> 00:30:38,190 Pra, ne do të mbani atë të thjeshtë dhe jo të domosdoshmërisht të flasim në aspektin e tabaka. 705 00:30:38,190 --> 00:30:40,220 Vetëm numrat që njerëzit e marrë. 706 00:30:40,220 --> 00:30:43,760 Kapaciteti është duke shkuar për të, përsëri, fix Numri i përgjithshëm i njerëzve që mund të jenë në 707 00:30:43,760 --> 00:30:46,900 kjo linjë, si tre ose çfarëdo të tjera vlera. 708 00:30:46,900 --> 00:30:50,760 >> Por unë propozoj që kam nevojë për të ndiek jo vetem i madhësisë së 709 00:30:50,760 --> 00:30:52,370 radhë, sa gjërat janë në të. 710 00:30:52,370 --> 00:30:56,310 Pra, madhësia është i tanishëm, madhësia e kapaciteteve është madhësia maksimale. 711 00:30:56,310 --> 00:30:58,540 Vetëm përsëri, nomenklaturë nga Konventa. 712 00:30:58,540 --> 00:31:03,680 Pse nuk kam nevojë për një int shtesë brenda e një radhë të mbajnë gjurmët e asaj që është në 713 00:31:03,680 --> 00:31:05,365 e përparme e linjës? 714 00:31:05,365 --> 00:31:07,930 715 00:31:07,930 --> 00:31:10,910 Pse nuk kam nevojë për të bërë se në këtë rast? 716 00:31:10,910 --> 00:31:14,750 717 00:31:14,750 --> 00:31:16,190 >> E pra, sa është kjo foto do të ndryshojë? 718 00:31:16,190 --> 00:31:19,280 Unë ndoshta mund të ripërdorimin më e kësaj tabloje. 719 00:31:19,280 --> 00:31:21,480 Më lejoni të shkojnë përpara dhe të fshijë atë që është këtu. 720 00:31:21,480 --> 00:31:24,580 Ne do të japim këtë një pak Emri i ndryshëm këtu. 721 00:31:24,580 --> 00:31:28,930 Le të heqin qafe e 17, le të shpëtoj i 9, le të heqin qafe e 3. 722 00:31:28,930 --> 00:31:30,410 Dhe le të shtoni një gjë tjetër. 723 00:31:30,410 --> 00:31:34,710 Unë propozoj që unë duhet të mbajnë gjurmët e front i listës, e cila është vetëm 724 00:31:34,710 --> 00:31:35,570 do të jetë një int si edhe. 725 00:31:35,570 --> 00:31:36,550 Dhe ne jemi duke shkuar për të mbajtur atë të thjeshtë. 726 00:31:36,550 --> 00:31:37,740 Nuk ka listë të lidhura tani për tani. 727 00:31:37,740 --> 00:31:40,900 >> Ne do të pranoj që ne jemi duke shkuar për të përplasem kundër këtij kufiri. 728 00:31:40,900 --> 00:31:43,720 Por çfarë unë dua të shoh ndodhë në këtë kohë? 729 00:31:43,720 --> 00:31:47,240 Kështu që mendoj të shkoj përpara dhe e parë person vjen në përputhje, dhe 730 00:31:47,240 --> 00:31:48,560 kjo është numër 9. 731 00:31:48,560 --> 00:31:49,680 Ne nuk kemi topa stresit. 732 00:31:49,680 --> 00:31:51,330 Mund të vjedhin, të themi, dy ose tre njerëz? 733 00:31:51,330 --> 00:31:52,690 Një, dy, tre? 734 00:31:52,690 --> 00:31:53,120 Come on up. 735 00:31:53,120 --> 00:31:56,022 E drejta nga e para, për shkak se ne do të bëjnë këtë të shpejtë. 736 00:31:56,022 --> 00:31:59,415 >> Secili prej jush është tani do të jetë një djalë tifoz në përputhje në Apple. 737 00:31:59,415 --> 00:32:03,970 738 00:32:03,970 --> 00:32:06,210 Ju nuk do të marrë hardware Apple në fund të këtij pse. 739 00:32:06,210 --> 00:32:06,500 Dakord. 740 00:32:06,500 --> 00:32:09,430 Pra, ju jeni numri 9, ju jeni numër 17, numër 22. 741 00:32:09,430 --> 00:32:12,130 Këto janë numrat arbitrare, si Studenti ID apo gjësend. 742 00:32:12,130 --> 00:32:14,550 Dhe në një moment të vetëm, le të fillojmë për të filloni duke shtuar gjëra. 743 00:32:14,550 --> 00:32:16,000 Dhe unë do të drejtuar bordit këtu këtë kohë. 744 00:32:16,000 --> 00:32:19,570 >> Pra, në këtë rast, unë kam initialized përparme të jetë - 745 00:32:19,570 --> 00:32:22,380 Unë në fakt nuk e kujdesit të vërtetë se çfarë front është, sepse madhësia është zero. 746 00:32:22,380 --> 00:32:24,480 Pra, kjo mund edhe të vetëm të jetë një pikëpyetje. 747 00:32:24,480 --> 00:32:26,170 Këto janë të gjitha pikëpyetjet. 748 00:32:26,170 --> 00:32:29,880 Pra, tani ne do të fillojnë të vërtetë shohim disa njerëz të rreshtuar në dyqan. 749 00:32:29,880 --> 00:32:33,320 >> Pra, nëse numri 9, ju jeni i pari atje orën 5 të mëngjesit, të shkojnë përpara dhe vargoj, 750 00:32:33,320 --> 00:32:34,210 ose nate para. 751 00:32:34,210 --> 00:32:34,580 OK. 752 00:32:34,580 --> 00:32:35,940 Deri tani 9 është këtu. 753 00:32:35,940 --> 00:32:37,940 Kështu 9 eshte ne para te lista. 754 00:32:37,940 --> 00:32:41,440 Kështu që unë jam duke shkuar për të shkuar përpara dhe përditësimin e madhësia e këtyre të dhënave aktuale 755 00:32:41,440 --> 00:32:44,740 struktura mos të jetë 0 më, por të jetë 1. 756 00:32:44,740 --> 00:32:47,630 Unë jam duke shkuar për të vënë në 9 front i listës. 757 00:32:47,630 --> 00:32:51,020 Më lejoni të shkojnë përpara dhe të toggle në ekran kështu që ne mund të shohim të kaluarën ne këtu. 758 00:32:51,020 --> 00:32:53,220 >> Dhe tani çfarë dua për të vënë në front? 759 00:32:53,220 --> 00:32:56,240 Unë jam duke shkuar për të mbajtur gjurmët që e përparme e radhës të drejtë tani 760 00:32:56,240 --> 00:32:58,570 është në lokacion 0. 761 00:32:58,570 --> 00:33:00,510 Sepse çfarë është e ardhshëm do të ndodhë? 762 00:33:00,510 --> 00:33:03,000 E pra, tani unë mendoj enqueue 17 si edhe. 763 00:33:03,000 --> 00:33:04,510 Pra, hop në përputhje atje. 764 00:33:04,510 --> 00:33:07,060 Dhe përsëri, lloj i derës për të dyqan do të jetë këtu. 765 00:33:07,060 --> 00:33:08,700 Deri tani unë kam shtuar 17. 766 00:33:08,700 --> 00:33:10,810 Dhe, edhe pse këta njerëz janë të bllokuar ekran, kjo është OK, 767 00:33:10,810 --> 00:33:12,300 sepse ne mund të shohim atë deri këtu. 768 00:33:12,300 --> 00:33:12,910 Më vjen keq. 769 00:33:12,910 --> 00:33:13,810 >> Audienca: Ne mund të lëvizin - 770 00:33:13,810 --> 00:33:14,660 >> DAVID Malan: Jo, kjo është OK. 771 00:33:14,660 --> 00:33:16,000 Është i madh deri atje. 772 00:33:16,000 --> 00:33:18,580 Kështu 17 është tashmë brendësi të radhë. 773 00:33:18,580 --> 00:33:21,332 Unë kam nevojë për të rinovuar të cilat Fushat tani pse? 774 00:33:21,332 --> 00:33:23,210 OK, patjetër madhësia. 775 00:33:23,210 --> 00:33:26,430 Dhe si në lidhje me para? 776 00:33:26,430 --> 00:33:27,040 OK, nr. 777 00:33:27,040 --> 00:33:30,200 Fronti nuk duhet të ndryshojë, sepse Ndryshe nga një pirg, ne 778 00:33:30,200 --> 00:33:31,370 duan të mbajnë drejtësinë. 779 00:33:31,370 --> 00:33:35,150 Pra, nëse 9 doli i pari, ne duam 9 të jenë jashtë parë i vijës 780 00:33:35,150 --> 00:33:36,420 dhe në dyqan. 781 00:33:36,420 --> 00:33:37,220 >> Në fakt, le të shohim se. 782 00:33:37,220 --> 00:33:42,235 Para se të futur 22, le të të shkojnë përpara dhe dequeue 9. 783 00:33:42,235 --> 00:33:42,970 Cili është emri juaj përsëri? 784 00:33:42,970 --> 00:33:43,680 >> Audienca: Jake. 785 00:33:43,680 --> 00:33:45,440 >> DAVID Malan: Jake është duke shkuar për t'u dequeued tashmë. 786 00:33:45,440 --> 00:33:48,050 Pra, ju merrni për të ecur në dyqan. 787 00:33:48,050 --> 00:33:49,880 Dhe pretendojë se dyqan është atje. 788 00:33:49,880 --> 00:33:51,970 Deri tani ajo ka nevojë për - dit-dit-dit! 789 00:33:51,970 --> 00:33:53,400 Çfarë duhet të ndodhë tani? 790 00:33:53,400 --> 00:33:54,490 Vendimi design. 791 00:33:54,490 --> 00:33:56,825 Pra, nuk është një instinkt i keq, por - çfarë është emri juaj përsëri? 792 00:33:56,825 --> 00:33:57,090 >> Audienca: David. 793 00:33:57,090 --> 00:33:57,500 >> DAVID Malan: David. 794 00:33:57,500 --> 00:33:58,810 Pra, çfarë bëri Davidi bëni? 795 00:33:58,810 --> 00:34:02,590 Ai ishte duke u përpjekur për të zgjidhur të rregulluar e të dhënave Struktura dhe lëvizje nga vendndodhja e tij 796 00:34:02,590 --> 00:34:04,100 në vend të ish-Jake. 797 00:34:04,100 --> 00:34:06,740 Dhe kjo është në rregull në qoftë se ne jemi të gatshëm të pranojmë se, si një 798 00:34:06,740 --> 00:34:08,199 detaje zbatimit. 799 00:34:08,199 --> 00:34:11,100 Por së pari, le të rifreskoni të dhënat e strukturën para se të bëjmë këtë. 800 00:34:11,100 --> 00:34:14,139 Sepse unë nuk jam simpati idenë e të gjitha njerëzit e zhvendosur në këtë linjë. 801 00:34:14,139 --> 00:34:17,360 >> Kjo nuk është punë e madhe në qoftë se Davidi e bën atë me një hap, por përsëri, mendoj se përsëri në 802 00:34:17,360 --> 00:34:20,360 kur ne kemi pasur tetë vullnetarë në faza dhe ne kemi bërë si futje 803 00:34:20,360 --> 00:34:22,600 lloj, ku ne kishim për të filluar lëviz gjithë rreth. 804 00:34:22,600 --> 00:34:23,790 Kjo mori shtrenjtë, e drejtë? 805 00:34:23,790 --> 00:34:28,330 Kjo më bën servilizëm rreth Big O e N, O i madh n katror perseri. 806 00:34:28,330 --> 00:34:30,650 Kjo nuk është ndjenjë si një rezultat ideal. 807 00:34:30,650 --> 00:34:32,080 >> Pra, le të vetëm update këtë. 808 00:34:32,080 --> 00:34:35,120 Pra, madhësia e radhë nuk është më 2. 809 00:34:35,120 --> 00:34:37,090 Është tani thjesht 1. 810 00:34:37,090 --> 00:34:40,360 Por unë tani mund të rinovuar diçka Unë nuk update para, 811 00:34:40,360 --> 00:34:41,130 front i listës. 812 00:34:41,130 --> 00:34:45,420 Unë vetëm mund të them, është se vendndodhja 1? 813 00:34:45,420 --> 00:34:49,770 Pra, tani ne kemi vlerën plehrash këtu, Vlera e mbeturinave këtu, dhe Davidi, në 814 00:34:49,770 --> 00:34:51,469 e mesme të këtij mbeturina. 815 00:34:51,469 --> 00:34:54,980 Por Struktura e të dhënave është ende i paprekur. 816 00:34:54,980 --> 00:34:58,540 >> Dhe në fakt, edhe unë nuk kanë nevojë për ndryshuar numrin ish Jake 817 00:34:58,540 --> 00:35:00,460 9, sepse kush kujdeset. 818 00:35:00,460 --> 00:35:04,470 Unë kam informacion të mjaftueshëm tani në madhësi që unë e di se ka një person në 819 00:35:04,470 --> 00:35:05,030 këtë radhë. 820 00:35:05,030 --> 00:35:08,340 Dhe unë e di se ai person është në vend të 1 jo 0. 821 00:35:08,340 --> 00:35:09,760 Unë nuk jam duke numëruar. 822 00:35:09,760 --> 00:35:11,300 Kështu 1 si edhe. 823 00:35:11,300 --> 00:35:13,410 Pra, struktura e të dhënave është ende OK. 824 00:35:13,410 --> 00:35:14,330 >> E pra, çfarë ndodh më pas? 825 00:35:14,330 --> 00:35:15,010 Enqueue Le - 826 00:35:15,010 --> 00:35:15,370 çfarë është emri juaj? 827 00:35:15,370 --> 00:35:16,160 >> Audienca: Callen. 828 00:35:16,160 --> 00:35:16,580 >> DAVID Malan: Callen. 829 00:35:16,580 --> 00:35:20,770 Le të enqueue një Callen, dhe 22 është tashmë në radhë. 830 00:35:20,770 --> 00:35:22,300 Deri tani ajo ka për të ndryshuar këtu? 831 00:35:22,300 --> 00:35:24,380 Fronti nuk do të ndryshojë, natyrisht. 832 00:35:24,380 --> 00:35:27,160 Size do të ndryshojë që të jetë 2 herë. 833 00:35:27,160 --> 00:35:31,590 22 Dhe përfundon këtu, 9 është ende e pranishme, por kjo është një mënyrë efektive 834 00:35:31,590 --> 00:35:32,600 Vlera e mbeturina tani. 835 00:35:32,600 --> 00:35:35,910 Është vetëm një mbetje e kaluara Jake. 836 00:35:35,910 --> 00:35:39,200 >> Kështu që tani se çfarë ndodh në qoftë se Unë dequeue Davidin? 837 00:35:39,200 --> 00:35:41,560 Një operacion i fundit, dequeue David. 838 00:35:41,560 --> 00:35:46,070 Ne mund të zhvendoset, por unë propozoj le të bëjë sa më pak punë që është e mundur. 839 00:35:46,070 --> 00:35:50,280 Tani struktura e të dhënave im shkon mbështetur në madhësi 2-1. 840 00:35:50,280 --> 00:35:53,730 Por e përparme e radhë tani bëhet 2. 841 00:35:53,730 --> 00:35:56,640 Unë nuk kam nevojë për të ndryshuar këto numra vetëm ende, sepse ata janë 842 00:35:56,640 --> 00:35:58,230 vetëm vlerat e plehrave. 843 00:35:58,230 --> 00:35:59,720 >> Por, çfarë ndodh tani? 844 00:35:59,720 --> 00:36:03,280 Supozoni se unë enqueue veten, 26? 845 00:36:03,280 --> 00:36:05,890 Ndjehem si unë i përkas mbi këtu. 846 00:36:05,890 --> 00:36:06,890 Kështu që unë jam duke u enqueued. 847 00:36:06,890 --> 00:36:08,760 Kështu që unë lloj i përkasin këtu. 848 00:36:08,760 --> 00:36:11,300 Dhe edhe pse ju nuk e bëni mjaft vlerësojmë këtë vizualisht në skenë, 849 00:36:11,300 --> 00:36:15,075 sepse ne kemi mjaft hapësirë, unë duhet nuk do të rrimë këtu, pse? 850 00:36:15,075 --> 00:36:16,290 >> Audienca: Ju jeni jashtë caqeve. 851 00:36:16,290 --> 00:36:16,370 >> DAVID Malan: E drejta. 852 00:36:16,370 --> 00:36:16,940 Unë jam jashtë caqeve. 853 00:36:16,940 --> 00:36:19,330 Unë kam indeksuar përtej caqet e këtij koleksioni. 854 00:36:19,330 --> 00:36:23,420 I vërtetë duhet të jetë në njërën nga tri lokacione të mundshme. 855 00:36:23,420 --> 00:36:25,150 Tani, ku është më e natyrshme për të shkuar? 856 00:36:25,150 --> 00:36:27,760 Unë propozoj që ne leveraged një javë një mashtrim. 857 00:36:27,760 --> 00:36:30,150 Operatori mod, përqindje. 858 00:36:30,150 --> 00:36:36,850 Sepse unë jam teknikisht qëndruar në lokacioni 3, por unë bëj 3 kapacitetin mod, 859 00:36:36,850 --> 00:36:40,250 kështu 3, një shenjë qind, 3 - 860 00:36:40,250 --> 00:36:40,970 Kapaciteti është 3. 861 00:36:40,970 --> 00:36:41,720 Çfarë është ajo? 862 00:36:41,720 --> 00:36:43,700 Çfarë është mbetur kur ju ndani me 3 nga 3? 863 00:36:43,700 --> 00:36:44,070 0. 864 00:36:44,070 --> 00:36:48,140 >> Kështu që e vë më ishin Jake ishte, e cila është në të vërtetë e mirë. 865 00:36:48,140 --> 00:36:50,370 Deri tani zbatimi e kjo gjë do të 866 00:36:50,370 --> 00:36:51,250 jetë pak e nje koke. 867 00:36:51,250 --> 00:36:53,740 Është me të vërtetë vetëm një linjë e dhimbje koke, të kodit. 868 00:36:53,740 --> 00:36:56,580 Por të paktën tani nuk ka mbeturina Vlera këtu, por ka dy 869 00:36:56,580 --> 00:36:57,910 ints legjitime këtu. 870 00:36:57,910 --> 00:37:04,160 Dhe unë pretendojnë se tani ne kemi bërë saktësisht se çfarë ne duhet të bëjmë për aq kohë sa 871 00:37:04,160 --> 00:37:08,600 ne të ndryshojë atë që e Jake vlera të ishte 26. 872 00:37:08,600 --> 00:37:12,110 >> Ne tani kemi informacione të mjaftueshme ende për të ruajtur integritetin 873 00:37:12,110 --> 00:37:13,060 i kësaj strukture të dhëna. 874 00:37:13,060 --> 00:37:17,160 Ne jemi ende lloji i jashtë fat kur ne doni të futur katër apo më shumë gjithsej 875 00:37:17,160 --> 00:37:20,740 elemente, por unë mund të paktën të bëjë goxha Përdorimi efikas i kësaj konstante 876 00:37:20,740 --> 00:37:21,740 kohë, në fakt. 877 00:37:21,740 --> 00:37:27,150 Unë nuk duhet të shqetësohen për zhvendosjen e të gjithë, si prirjen e Davidit ishte. 878 00:37:27,150 --> 00:37:30,816 >> Çfarëdo pyetjeje mbi oxhaqet, apo këtë radhë? 879 00:37:30,816 --> 00:37:32,184 >> Audienca: A është arsyeja pse ju keni nevojë për madhësi kështu që ju e dini 880 00:37:32,184 --> 00:37:34,010 ku të ketë një person? 881 00:37:34,010 --> 00:37:34,770 >> DAVID Malan: Pikërisht. 882 00:37:34,770 --> 00:37:38,230 Unë duhet të dini madhësinë e array sepse kam nevojë të dini saktësisht se si 883 00:37:38,230 --> 00:37:41,940 shumë prej këtyre vlerave janë të ligjshme, dhe kështu që unë mund të gjeni se ku për të vënë 884 00:37:41,940 --> 00:37:42,800 personi tjetër. 885 00:37:42,800 --> 00:37:43,300 Saktësisht. 886 00:37:43,300 --> 00:37:44,580 Madhësia është - 887 00:37:44,580 --> 00:37:46,360 në të vërtetë, ne nuk update këtë ende. 888 00:37:46,360 --> 00:37:48,380 Kam shtuar veten në 26. 889 00:37:48,380 --> 00:37:51,760 Madhësia është tani, jo 1, por 2. 890 00:37:51,760 --> 00:37:57,780 Deri tani kjo me të vërtetë më ndihmon të gjeni koka e lista, e cila nuk eshte 0, nuk 891 00:37:57,780 --> 00:37:59,250 1, por është 2. 892 00:37:59,250 --> 00:38:01,665 Front i listës është me të vërtetë numri 22. 893 00:38:01,665 --> 00:38:05,120 Sepse ai doli i pari, kështu që ai duhet të të lejohet në dyqan para meje, 894 00:38:05,120 --> 00:38:08,780 edhe pse shikimi Unë jam duke qëndruar afër ruajtur. 895 00:38:08,780 --> 00:38:09,220 >> Të gjithë të drejtë? 896 00:38:09,220 --> 00:38:12,410 Një raund i duartrokitje për këto guys dhe ne do të le ata nga atje. 897 00:38:12,410 --> 00:38:17,090 >> [Duartrokitje] 898 00:38:17,090 --> 00:38:18,150 >> DAVID Malan: Unë mund të le të ju mbani tabaka. 899 00:38:18,150 --> 00:38:20,760 Ne mund të shohim se çfarë ndodh në qoftë se ju doni, por ndoshta jo. 900 00:38:20,760 --> 00:38:21,590 Dakord. 901 00:38:21,590 --> 00:38:25,380 Kështu që çfarë tani bën që na lënë? 902 00:38:25,380 --> 00:38:28,900 E pra, më lejoni të propozoj që ka një disa struktura të tjera të të dhënave që ne mund të 903 00:38:28,900 --> 00:38:33,810 filloni duke shtuar në kit tonë mjet që do në fakt të jetë mjaft, mjaft e rëndësishme si 904 00:38:33,810 --> 00:38:35,270 ne pikiatë në stuff web. 905 00:38:35,270 --> 00:38:38,150 E cila përsëri, ka disa lloj lidhje te pemeve në formën e 906 00:38:38,150 --> 00:38:40,550 diçka e quajtur DOM, dokument Modeli objekt. 907 00:38:40,550 --> 00:38:42,370 Por ne do të shohim më shumë prej që para se të gjatë. 908 00:38:42,370 --> 00:38:46,260 >> Më lejoni të propozojnë definitionally se ne quajnë pemën tani atë që ju mund të dini si 909 00:38:46,260 --> 00:38:48,820 më shumë nga një pemë familjare, ku ju kanë disa paraardhës në 910 00:38:48,820 --> 00:38:49,790 Rrënjët e pemës. 911 00:38:49,790 --> 00:38:54,480 Një Opar patriarkal ose nje at shumë të lartë të pemës. 912 00:38:54,480 --> 00:38:56,700 Pa bashkëshortin e tyre, në këtë rast. 913 00:38:56,700 --> 00:39:00,940 Por tani ne kemi atë që ne do të thërrasë Fëmijët, të cilat janë nyjet që rri 914 00:39:00,940 --> 00:39:05,480 off fëmijën e majtë apo e djathtë të fëmijës, Shigjetat si përshkruhen këtu. 915 00:39:05,480 --> 00:39:10,490 >> Me fjalë të tjera, në strukturën e të dhënave pemë në kompjuter, një pemë ka zero 916 00:39:10,490 --> 00:39:11,480 ose më shumë nyje. 917 00:39:11,480 --> 00:39:13,500 Në qoftë se ka të paktën një nyje, që është quajtur rrënja. 918 00:39:13,500 --> 00:39:15,700 Është gjërat që vizualisht ne barazim në krye. 919 00:39:15,700 --> 00:39:20,280 Dhe kjo nyje, si çdo nyje të tjera, mund të ketë zero, një, ose dy, ose tre, 920 00:39:20,280 --> 00:39:23,600 ose megjithatë shumë fëmijë Struktura e të dhënave mbështet. 921 00:39:23,600 --> 00:39:29,150 Në këtë rast, rrënja, ruajtjen Vlera e një, ka dy fëmijë, 2 dhe 3, 922 00:39:29,150 --> 00:39:33,020 kështu që ne zakonisht quajmë 2 e majtë fëmijë dhe 3 fëmijë të drejtë. 923 00:39:33,020 --> 00:39:36,940 >> Dhe atëherë kur ne të merrni poshtë për të 5, 6, dhe 7, 6 mund të quhet fëmija mesme. 924 00:39:36,940 --> 00:39:38,940 Nëse ju kanë katër fëmijë, ajo merr konfuze. 925 00:39:38,940 --> 00:39:42,260 Pra, ne të ndaluar përdorimin e atë lloj i shkurtore gojë. 926 00:39:42,260 --> 00:39:44,580 Por kjo është me të vërtetë vetëm një pemë familjare. 927 00:39:44,580 --> 00:39:48,880 Dhe gjethet këtu janë nyjet që vetë nuk kanë fëmijë. 928 00:39:48,880 --> 00:39:52,540 Ata rri off fund të pemës. 929 00:39:52,540 --> 00:39:56,940 >> Pra, si mund të kemi zbatuar një pemë që ka vetëm dy fëmijë maksimalisht? 930 00:39:56,940 --> 00:39:58,410 Ne do të thërrasë atë një pemë binare. 931 00:39:58,410 --> 00:40:00,960 Bi përsëri do të thotë dy, në këtë rast, si me binar. 932 00:40:00,960 --> 00:40:04,830 Dhe kështu që ajo mund të ketë zero, një, ose dy fëmijë maksimalisht. 933 00:40:04,830 --> 00:40:08,650 >> Unë do të propozoj që ne zbatimin nyjen për këtë strukturë me një int n, 934 00:40:08,650 --> 00:40:11,910 dhe pastaj dy pointers, njëri i quajtur la, njëri i quajtur të drejtë. 935 00:40:11,910 --> 00:40:14,830 Por ata janë vetëm e bukur konventat arbitrare. 936 00:40:14,830 --> 00:40:18,170 Dhe çfarë është e bukur tani, veçanërisht nëse ju lloj luftuan konceptualisht me 937 00:40:18,170 --> 00:40:21,300 recursion, ose mendonin se nuk ishte me të vërtetë një zgjidhje për çdo gjë, 938 00:40:21,300 --> 00:40:23,120 veçanërisht nëse ju mund të dalë jashtë kujtesës. 939 00:40:23,120 --> 00:40:26,600 Tani që ne jemi duke folur rreth të dhënave Strukturat dhe algoritme që lejojnë 940 00:40:26,600 --> 00:40:31,030 na të kaloj dhe të manipuluar ato, rezulton se recursion vjen përsëri në 941 00:40:31,030 --> 00:40:34,240 një shumë më bindëse nëse nuk është mënyra më e bukur. 942 00:40:34,240 --> 00:40:38,670 >> Pra, kjo unë propozoj është zbatimi Kërko i një funksioni. 943 00:40:38,670 --> 00:40:39,870 Duke pasur parasysh dy inpute - 944 00:40:39,870 --> 00:40:41,570 kështu që mendoj se për këtë si një kuti e zezë. 945 00:40:41,570 --> 00:40:46,560 Duke pasur parasysh dy inpute, N, një int, dhe një kursori te nje peme, nje treguesi te nje 946 00:40:46,560 --> 00:40:50,020 , nyja apo me të vërtetë rrënja e një peme, unë Pretendimi se ky funksion mund të kthehen 947 00:40:50,020 --> 00:40:53,530 vërtetë apo e rreme, se vlera n është brenda e kësaj peme. 948 00:40:53,530 --> 00:40:55,210 >> Çfarë është brenda këtij kutinë e zezë? 949 00:40:55,210 --> 00:40:57,440 E pra, katër degë. 950 00:40:57,440 --> 00:40:58,385 Vetëm kontrollon parë. 951 00:40:58,385 --> 00:41:00,490 Nëse pema është i pavlefshëm, vetëm të kthimit të rreme. 952 00:41:00,490 --> 00:41:04,580 Nëse nuk ka nyje, nuk ka n, nuk ka asnjë numër, vetëm të kthimit të rreme. 953 00:41:04,580 --> 00:41:12,330 Nëse pse, n, vlera që ju jeni në kërkim per, eshte me pak sesa peme shigjete n, dhe 954 00:41:12,330 --> 00:41:15,180 vetëm të jetë i qartë, çfarë do të thotë kur Unë shkruaj Pemën dhe pastaj shigjetë 955 00:41:15,180 --> 00:41:18,150 simbol, n? 956 00:41:18,150 --> 00:41:18,690 Saktësisht. 957 00:41:18,690 --> 00:41:21,970 Kjo do të thotë se dereference pointer quajtur pemë. 958 00:41:21,970 --> 00:41:26,750 Shkoni atje, dhe pastaj të merrni brenda e që nyjë dhe të merrni fushën e tij të quajtur n. 959 00:41:26,750 --> 00:41:30,810 Dhe pastaj krahasojnë n aktuale që ishte kaloi në Kërkim kundër saj. 960 00:41:30,810 --> 00:41:35,390 >> Pra, nëse n është më pak se, vlera n në nyjen e pemës vetë, të mirë, 961 00:41:35,390 --> 00:41:36,720 Çfarë do të thotë kjo? 962 00:41:36,720 --> 00:41:40,690 Kjo do të thotë asgjë, në shikim të parë. 963 00:41:40,690 --> 00:41:40,900 E drejta? 964 00:41:40,900 --> 00:41:45,560 Ashtu si kur ju keni një rrjet të Vlerat, ju mund të dëshironi të aplikoni binary 965 00:41:45,560 --> 00:41:48,290 kërkoni si një formë e ndarjes dhe sundo. 966 00:41:48,290 --> 00:41:51,790 Por ajo që supozimi nuk kemi nevojë për të bërë për kërkim binar për të punuar në të gjitha 967 00:41:51,790 --> 00:41:54,510 në librin e telefonit dhe Shembujt më herët? 968 00:41:54,510 --> 00:41:55,530 >> Si të zgjidhet. 969 00:41:55,530 --> 00:41:59,490 Pra, le të përsosin përkufizimin e pemës këtu të mos jetë vetëm një pemë, të cilat mund të 970 00:41:59,490 --> 00:42:00,880 të ketë ndonjë numër të fëmijëve. 971 00:42:00,880 --> 00:42:04,700 Jo vetëm një pemë binare, të cilat mund të kemi 0, 1, ose 2 maksimalisht. 972 00:42:04,700 --> 00:42:09,700 Por si një pemë binare e kërkimit, ose BST, e cila është vetëm një mënyrë e sofistikuar për të thënë një 973 00:42:09,700 --> 00:42:15,430 pemë binare të tillë që çdo nyjë e fëmija i majtë, nëse është i pranishëm, është 974 00:42:15,430 --> 00:42:16,830 më pak se nyja. 975 00:42:16,830 --> 00:42:20,170 Dhe fëmija e drejtë e çdo nyje, nëse është i pranishëm, është më i madh 976 00:42:20,170 --> 00:42:21,740 se nyjen vetë. 977 00:42:21,740 --> 00:42:25,200 >> Pra, me fjalë të tjera, në qoftë se keni qenë për të nxjerrë nga pema, të gjithë numrat janë të 978 00:42:25,200 --> 00:42:30,620 balancuar me kujdes si kjo në mënyrë që nëse ju keni 55 si rrënjë, 33 mund të shkojnë 979 00:42:30,620 --> 00:42:33,090 në të majtë të saj, sepse ajo është më pak se 55 vjeç. 980 00:42:33,090 --> 00:42:36,430 77 mund të shkoni në të djathtë të saj, sepse kjo është më e madhe se 55 vjeç. 981 00:42:36,430 --> 00:42:40,750 Por tani vini re, të njëjtin përkufizim, kjo është një përkufizim gjithkund rekursive me gojë, 982 00:42:40,750 --> 00:42:42,600 duhet të aplikojë për 33. 983 00:42:42,600 --> 00:42:47,610 Fëmija 33 së majtë duhet të jetë më pak se ajo, dhe fëmijës së drejtë 33, 44, duhet të jetë 984 00:42:47,610 --> 00:42:48,580 më të mëdha se ajo. 985 00:42:48,580 --> 00:42:51,670 >> Pra, kjo është një pemë binare kërko, dhe Unë propozoj, duke përdorur një grimë të vogël e 986 00:42:51,670 --> 00:42:53,910 recursion, ne tani mund të gjeni n. 987 00:42:53,910 --> 00:42:59,160 Pra, nëse n është më pak se n vlerës që është Nyja e tanishëm, unë jam duke shkuar për të shkuar 988 00:42:59,160 --> 00:43:04,090 përpara dhe vë bast, kështu që të flasin, dhe vetëm të kthehen çdo gjë që përgjigja është e 989 00:43:04,090 --> 00:43:08,470 kërkoni për n më Fëmija majtë peme. 990 00:43:08,470 --> 00:43:11,370 Vini re përsëri, ky funksion vetëm pret një yll nyjeve, një 991 00:43:11,370 --> 00:43:12,780 kursori te nje nyje. 992 00:43:12,780 --> 00:43:17,360 Pra, me siguri unë vetëm mund të bëjë pemë shigjeta majtë, e cila do të çojë 993 00:43:17,360 --> 00:43:18,400 mua për një tjetër nyje. 994 00:43:18,400 --> 00:43:19,480 Por çfarë është ajo nyja? 995 00:43:19,480 --> 00:43:22,820 >> Mirë, sipas këtij deklaratës, majtë është vetëm një tregues, në mënyrë që vetëm 996 00:43:22,820 --> 00:43:27,090 do të thotë që unë jam duke kaluar me funksionin e kërkimit një tregues të ndryshëm, përkatësisht 997 00:43:27,090 --> 00:43:30,750 një që përfaqëson Pema e fëmijës tim të majtë. 998 00:43:30,750 --> 00:43:36,040 Pra, në këtë rast, akrep në 33, në qoftë se kjo është input tonë mostër Ndërkohë, nëse 999 00:43:36,040 --> 00:43:40,740 n është më e madhe se n vlerës në Nyja e tanishme në pemë, atëherë unë jam i 1000 00:43:40,740 --> 00:43:43,370 do të shkojnë përpara dhe vë bast në tjetrin drejtimi dhe vetëm thonë, unë nuk bëj 1001 00:43:43,370 --> 00:43:47,280 e di nëse kjo vlerë është n në pemë, por unë e di në qoftë se ajo është, kjo është poshtë mia 1002 00:43:47,280 --> 00:43:49,090 Dega e drejtë, kështu që të flasin. 1003 00:43:49,090 --> 00:43:53,120 Pra më lejoni thirrje Recursively të kërkoni, duke kaluar një n përsëri, por duke kaluar në një 1004 00:43:53,120 --> 00:43:54,580 tregues për fëmijën tim të djathtë. 1005 00:43:54,580 --> 00:44:00,020 >> Me fjalë të tjera, në qoftë se unë jam aktualisht në 55 dhe unë jam duke kërkuar për 99, unë e di se 99 1006 00:44:00,020 --> 00:44:04,270 është më i madh se 55 vjeç, kështu që ashtu si unë grisi javët libër telefoni më parë dhe ne 1007 00:44:04,270 --> 00:44:07,140 shkoi drejtë, në mënyrë të ngjashme jemi ne do të shkojnë drejtë këtu. 1008 00:44:07,140 --> 00:44:11,960 Dhe unë nuk e di nëse kjo është në të djathtën time fëmijë, dhe kjo nuk është, 77 është atje, por 1009 00:44:11,960 --> 00:44:13,210 Unë e di se është në atë drejtim. 1010 00:44:13,210 --> 00:44:18,770 Kështu që unë e quaj kërkimin për fëmijën time të djathtë, 77, dhe le figurë kërkimit nga 1011 00:44:18,770 --> 00:44:24,950 99 atje, nëse në këtë arbitrare Shembulli është në të vërtetë atje. 1012 00:44:24,950 --> 00:44:26,900 >> Tjetër, çfarë është rasti i fundit? 1013 00:44:26,900 --> 00:44:28,620 Nëse pema është i pavlefshëm është një rast. 1014 00:44:28,620 --> 00:44:31,890 Nëse n është më pak se nyja e tanishme Vlera është një tjetër rast. 1015 00:44:31,890 --> 00:44:35,120 Nëse n është më e madhe sesa e tanishme Vlera Nyja është një rast i tretë. 1016 00:44:35,120 --> 00:44:38,250 Çfarë është rasti i katërt dhe i fundit? 1017 00:44:38,250 --> 00:44:39,480 Unë mendoj se ne jemi nga e rasteve, e drejtë? 1018 00:44:39,480 --> 00:44:44,690 Ajo duhet të jetë se n eshte ne nyja aktuale që unë jam në. 1019 00:44:44,690 --> 00:44:49,640 >> Pra, nëse unë jam në kërkim për 55 në këtë pikë në tregimin, që dege i 1020 00:44:49,640 --> 00:44:51,780 pemë do të kthehen vërtetë. 1021 00:44:51,780 --> 00:44:55,380 Pra, çfarë është interesante këtu është se ne në fakt, ndryshe nga javët e kaluara, ne lloj 1022 00:44:55,380 --> 00:44:56,740 i kemi dy raste bazë. 1023 00:44:56,740 --> 00:44:58,300 Dhe ata nuk kanë për të të jenë të gjitha në krye. 1024 00:44:58,300 --> 00:45:01,390 Lartë është një rast bazë, sepse nëse pemë është null, nuk ka asgjë për të bërë. 1025 00:45:01,390 --> 00:45:03,410 Kthehen vetëm një koduar vështirë Vlera e rreme. 1026 00:45:03,410 --> 00:45:07,400 >> Dega e poshtme është lloj i Default, të cilit, nëse ne kemi për të kontrolluar 1027 00:45:07,400 --> 00:45:11,550 null, ne kemi kontrolluar nëse ajo duhet të jetë u largua, por kjo nuk duhet të jetë, ne kemi 1028 00:45:11,550 --> 00:45:14,640 kontrollohet nëse ajo duhet të jetë e drejtë, por ajo nuk duhet të jetë, në mënyrë të qartë se duhet të jetë 1029 00:45:14,640 --> 00:45:15,870 drejtë ku jemi. 1030 00:45:15,870 --> 00:45:16,780 Kjo është një çështje bazë. 1031 00:45:16,780 --> 00:45:19,920 Pra, ka dy raste gjithkund rekursive sandwiched atje në mes. 1032 00:45:19,920 --> 00:45:21,630 Por unë mund të ketë shkruar kjo në asnjë mënyrë. 1033 00:45:21,630 --> 00:45:24,520 Unë vetëm mendova se lloj i ndjerë natyrore që së pari të kontrolloni për një gabim të mundshëm, 1034 00:45:24,520 --> 00:45:28,340 atëherë kontrolloni majtë, atëherë kontrolloni drejtë, atëherë supozojmë se ju jeni në nyjen 1035 00:45:28,340 --> 00:45:30,630 ju jeni në të vërtetë duke kërkuar për të. 1036 00:45:30,630 --> 00:45:36,240 >> Pra, pse kjo mund të jetë e dobishme? 1037 00:45:36,240 --> 00:45:37,910 Pra, ajo rezulton jashtë - 1038 00:45:37,910 --> 00:45:42,110 dhe më lejoni të hidhen në një ngacmues këtu se është në internet. 1039 00:45:42,110 --> 00:45:44,920 Ne jemi duke shkuar për të filluar përdorimin jo një gjuha e programimit në fillim, por një 1040 00:45:44,920 --> 00:45:46,030 gjuha markup. 1041 00:45:46,030 --> 00:45:48,740 Një gjuhë markup duke qenë një që është të ngjashme në frymë të programimit 1042 00:45:48,740 --> 00:45:51,715 gjuhë, por kjo nuk do të ju jap Aftësia për të shprehur veten logjikisht. 1043 00:45:51,715 --> 00:45:55,070 Ajo vetëm ju jep mundësinë për të shprehin veten strukturalisht. 1044 00:45:55,070 --> 00:45:57,960 >> Ku nuk ju duan të vënë diçka në faqe, web faqe? 1045 00:45:57,960 --> 00:45:59,200 Çfarë ngjyre ju doni të bëni atë? 1046 00:45:59,200 --> 00:46:00,950 Font size Çfarë bëni ju doni të bëni atë? 1047 00:46:00,950 --> 00:46:02,970 Fjalët Çfarë bëni ju në të vërtetë doni në faqen e internetit? 1048 00:46:02,970 --> 00:46:04,060 Pra, kjo është një gjuhë markup. 1049 00:46:04,060 --> 00:46:07,690 Por atëherë ne shumë shpejt do të prezantoj JavaScript, e cila është një e plotë 1050 00:46:07,690 --> 00:46:08,560 gjuhë programimi. 1051 00:46:08,560 --> 00:46:12,530 Shumë i ngjashëm sintaksore në dukje me C, por ajo do të ketë disa 1052 00:46:12,530 --> 00:46:15,200 bukur, më të fuqishme, më shumë karakteristika përdorues miqësore. 1053 00:46:15,200 --> 00:46:18,050 >> Dhe një nga frustrimet në këtë Pika në semestrin është se ne do të 1054 00:46:18,050 --> 00:46:22,065 shpejti zbatojë speller në shumë më pak rreshta të kodit duke përdorur gjuhë të tjera 1055 00:46:22,065 --> 00:46:25,580 C sesa vetë lejon, por për arsye të Ne së shpejti do të kuptojnë. 1056 00:46:25,580 --> 00:46:27,750 Kjo do të jetë i parë faqe të tilla web. 1057 00:46:27,750 --> 00:46:30,120 Ajo do të jetë plotësisht underwhelming, e parë që ne bëjmë. 1058 00:46:30,120 --> 00:46:31,400 Ajo thjesht do të thotë, përshëndetje bota. 1059 00:46:31,400 --> 00:46:34,010 Por në qoftë se ju kurrë nuk kam parë atë përpara, kjo është HTML, 1060 00:46:34,010 --> 00:46:35,670 HyperText Markup Language. 1061 00:46:35,670 --> 00:46:39,310 >> Nëse ju shkoni në një opsion të caktuar në menu shumica e ndonjë shfletues, në ndonjë web faqe në 1062 00:46:39,310 --> 00:46:43,160 internet, ju mund të shihni HTML se disa njerëz shkroi 1063 00:46:43,160 --> 00:46:44,400 krijuar atë web faqe. 1064 00:46:44,400 --> 00:46:47,850 Dhe kjo ndoshta nuk do të duken si shkurtër ose si i zoti si kjo. 1065 00:46:47,850 --> 00:46:51,400 Por kjo do të ndjekin modelin e këtyre kllapa hapura dhe ul dhe 1066 00:46:51,400 --> 00:46:53,660 Letrat dhe potencialisht numrat. 1067 00:46:53,660 --> 00:46:56,770 >> Unë mendova se do të ju jap një ngacmues të asaj që ju do të jetë në gjendje të bëjë 1068 00:46:56,770 --> 00:46:57,950 pas marrjes CS50. 1069 00:46:57,950 --> 00:47:02,620 Lermë të shkoj cs.harvard.edu / Rob, homepage vetë tonë Rob Bowden-së. 1070 00:47:02,620 --> 00:47:06,080 Ai e bëri këtë për ne. 1071 00:47:06,080 --> 00:47:07,490 Pra, ju së shpejti do të jetë në gjendje të bëjë këtë. 1072 00:47:07,490 --> 00:47:10,660 Dhe gjithashtu, çfarë keni dëgjuar këtë mëngjes - 1073 00:47:10,660 --> 00:47:12,480 çfarë keni dëgjuar këtë mëngjes - 1074 00:47:12,480 --> 00:47:13,780 >> [Brejtësi DANCE MUSIC] 1075 00:47:13,780 --> 00:47:15,702 >> - You'll jetë në gjendje për ta bërë këtë. 1076 00:47:15,702 --> 00:47:16,790 Që na pret të mërkurën. 1077 00:47:16,790 --> 00:47:17,791 Ne do të shohim ju pastaj. 1078 00:47:17,791 --> 00:47:22,950 >> [Brejtësi DANCE MUSIC] 1079 00:47:22,950 --> 00:47:24,300 DAVID Malan: Në CS50 e ardhshëm - 1080 00:47:24,300 --> 00:47:31,670