1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:05,120 [MUSIC Playing] 3 00:00:05,120 --> 00:00:12,026 4 00:00:12,026 --> 00:00:12,900 Gjuha 1: Në rregull. 5 00:00:12,900 --> 00:00:14,600 Gjithkush mirëpritur përsëri në seksion. 6 00:00:14,600 --> 00:00:18,660 Unë shpresoj që ju të gjithë janë të suksesshme mbulohen nga quiz tuaj 7 00:00:18,660 --> 00:00:19,510 nga java e kaluar. 8 00:00:19,510 --> 00:00:22,564 Unë e di se është pak i çmendur në kohë. 9 00:00:22,564 --> 00:00:25,230 Si unë isha duke thënë para, në qoftë se ju jeni në devijimin standard, 10 00:00:25,230 --> 00:00:28,188 vërtetë nuk shqetësohen për këtë, sidomos për një seksion më pak të rehatshme. 11 00:00:28,188 --> 00:00:30,230 Kjo është në lidhje ku ju duhet të jetë. 12 00:00:30,230 --> 00:00:32,850 >> Në qoftë se ju e bëri të madh, atëherë awesome. 13 00:00:32,850 --> 00:00:33,650 Kudos për ju. 14 00:00:33,650 --> 00:00:36,149 Dhe në qoftë se ju ndjeheni si ju keni nevojë për pak më shumë ndihmë, ju lutem 15 00:00:36,149 --> 00:00:38,140 të ndjehen të lirë për të arritur jashtë tek ndonjë nga TFS. 16 00:00:38,140 --> 00:00:40,030 Ne të gjithë jemi këtu për të ndihmuar. 17 00:00:40,030 --> 00:00:40,960 >> Kjo është arsyeja pse ne mësojmë. 18 00:00:40,960 --> 00:00:44,550 Kjo është arsyeja pse unë jam këtu çdo të hënë për ju djema dhe në zyrën orë në enjteve. 19 00:00:44,550 --> 00:00:48,130 Pra ju lutem mos ngurroni të më lejoni të dini në qoftë se ju jeni të shqetësuar në lidhje me ndonjë gjë 20 00:00:48,130 --> 00:00:52,450 ose në qoftë se ka ndonjë gjë në quiz që ju të vërtetë do të doja të adresuar. 21 00:00:52,450 --> 00:00:56,940 >> Kështu që rendi i ditës për sot është të gjitha në lidhje me strukturat e të dhënave. 22 00:00:56,940 --> 00:01:01,520 Disa nga këto janë vetëm do të jetë vetëm për të marrë ju familjarizuar me këto. 23 00:01:01,520 --> 00:01:04,870 Ju nuk mund kurrë të zbatojë ata në këtë klasë. 24 00:01:04,870 --> 00:01:08,690 Disa prej tyre ju do të, si për pset tuaj diktim. 25 00:01:08,690 --> 00:01:11,380 >> Ju do të keni zgjedhjen tuaj në mes të tabelave hash dhe përpiqet. 26 00:01:11,380 --> 00:01:13,680 Pra, ne patjetër do të shkojnë mbi ata. 27 00:01:13,680 --> 00:01:18,690 Ajo do të jetë patjetër më shumë e llojit e një seksioni të nivelit të lartë sot, megjithatë, 28 00:01:18,690 --> 00:01:22,630 sepse ka shumë prej tyre, dhe nëse shkuam në detajet e zbatimit 29 00:01:22,630 --> 00:01:26,490 në të gjitha këto, ne nuk do të merrni edhe përmes listave të lidhura 30 00:01:26,490 --> 00:01:28,520 dhe ndoshta pak e tabelave hash. 31 00:01:28,520 --> 00:01:31,200 >> Pra, të kesh durim me mua. 32 00:01:31,200 --> 00:01:33,530 Ne nuk jemi duke shkuar për të bërë aq sa coding këtë kohë. 33 00:01:33,530 --> 00:01:36,870 Nëse keni ndonjë pyetje në lidhje me të apo ju doni të shihni të zbatuar 34 00:01:36,870 --> 00:01:39,260 ose të përpiqen atë për veten tuaj, Unë patjetër të rekomandojë 35 00:01:39,260 --> 00:01:44,250 do të study.cs50.net, e cila ka shembuj të gjitha këto. 36 00:01:44,250 --> 00:01:46,400 Ajo do të ketë PowerPoints mia me shënimet që kemi 37 00:01:46,400 --> 00:01:50,860 kanë tendencë për të përdorur, si dhe disa programe ushtrime, sidomos për gjërat 38 00:01:50,860 --> 00:01:55,250 si listat e lidhura dhe binar pemët oxhaqet dhe cues. 39 00:01:55,250 --> 00:01:59,590 Pra, pak më shumë të nivelit të lartë, i cili mund të jetë mirë për ju djema. 40 00:01:59,590 --> 00:02:01,320 >> Pra, me këtë, ne do të merrni filluar. 41 00:02:01,320 --> 00:02:03,060 Dhe gjithashtu, kuize yes--. 42 00:02:03,060 --> 00:02:06,550 Unë mendoj se shumica prej jush të cilët janë në Pjesa ime kanë kuize tuaj, 43 00:02:06,550 --> 00:02:12,060 por dikush vjen në apo ndonjë arsye ju nuk e bëjnë, ata janë të drejtë këtu në para. 44 00:02:12,060 --> 00:02:12,740 >> Pra lidhura listat. 45 00:02:12,740 --> 00:02:15,650 Unë e di këtë lloj shkon për të mbështetur para quiz tuaj. 46 00:02:15,650 --> 00:02:17,940 Kjo ishte java e parë që kemi mësuar në lidhje me këtë. 47 00:02:17,940 --> 00:02:21,040 Por në këtë rast, ne do të vetëm shkoni pak më në thellësi. 48 00:02:21,040 --> 00:02:25,900 >> Pra, pse mund të kemi zgjedhur a lidhur listë mbi një grup? 49 00:02:25,900 --> 00:02:27,130 Çfarë e dallon ato? 50 00:02:27,130 --> 00:02:27,630 Po? 51 00:02:27,630 --> 00:02:30,464 >> AUDIENCA: Ju mund të zgjerohet a lidhur lista kundrejt madhësinë e caktuar një grup të. 52 00:02:30,464 --> 00:02:31,171 Gjuha 1: E drejta. 53 00:02:31,171 --> 00:02:33,970 Një grup ka caktuar madhësinë ndërsa a listë e lidhur ka një madhësi të ndryshueshme. 54 00:02:33,970 --> 00:02:36,970 Pra, nëse ne nuk e dimë se si shumë ne duam të ruajtur, 55 00:02:36,970 --> 00:02:39,880 një listë e lidhur na jep një të madhe mënyrë për të bërë këtë, sepse ne mund vetëm të 56 00:02:39,880 --> 00:02:43,730 shtoni në një nyje dhe shtoni për një nyje dhe të shtoni në një tjetër nyje. 57 00:02:43,730 --> 00:02:45,750 Por çfarë mund të jetë një tregti-off? 58 00:02:45,750 --> 00:02:49,521 A ka dikush kujtohet tregtisë-off midis vargjeve dhe listat lidhura? 59 00:02:49,521 --> 00:02:50,020 Mmhmm? 60 00:02:50,020 --> 00:02:51,460 >> AUDIENCA: Ju duhet të të kalojnë nëpër të gjithë rrugën 61 00:02:51,460 --> 00:02:53,738 përmes lista lidhur të gjejnë një element në një listë. 62 00:02:53,738 --> 00:02:55,570 Në një grup, ju mund të vetëm të gjejnë një element. 63 00:02:55,570 --> 00:02:56,278 >> Gjuha 1: E drejta. 64 00:02:56,278 --> 00:02:57,120 Pra me arrays-- 65 00:02:57,120 --> 00:02:58,500 >> Audienca: [padëgjueshme]. 66 00:02:58,500 --> 00:03:01,090 >> Gjuha 1: Me vargjeve, ne kemi ajo quhet e gjallë. 67 00:03:01,090 --> 00:03:04,820 Do të thotë se në qoftë se ne duam atë që është e ndonjëherë pika e pestë e një liste 68 00:03:04,820 --> 00:03:07,230 ose pika e pestë e tonë array, ne vetëm mund të rrëmbej atë. 69 00:03:07,230 --> 00:03:10,440 Në qoftë se kjo është një listë e lidhur, ne kemi për të iterate nëpër, e drejtë? 70 00:03:10,440 --> 00:03:14,020 Pra, qasja në një element në një koleksion është koha konstante, 71 00:03:14,020 --> 00:03:19,530 ndërsa me një listë e lidhur kjo do të ka shumë të ngjarë të jetë koha linear, sepse ndoshta 72 00:03:19,530 --> 00:03:21,370 element ynë është të gjithë rrugën në fund. 73 00:03:21,370 --> 00:03:23,446 Ne kemi për të kërkuar me çdo gjë. 74 00:03:23,446 --> 00:03:25,320 Pra, me të gjitha këto të dhëna Strukturat ne jemi duke shkuar 75 00:03:25,320 --> 00:03:29,330 që të ketë kaluar një kohë pak më tutje, Cilat janë pluses dhe negative. 76 00:03:29,330 --> 00:03:31,480 Kur mund të duam të përdorni një lidhje të tjera? 77 00:03:31,480 --> 00:03:34,970 Dhe kjo është lloj i Gjëja më e madhe për të marrë larg. 78 00:03:34,970 --> 00:03:40,140 >> Kështu që ne kemi këtu Përkufizimi i një nyje. 79 00:03:40,140 --> 00:03:43,040 Është si një element në listën tonë të lidhur, e drejtë? 80 00:03:43,040 --> 00:03:46,180 Pra, ne të gjithë jemi të njohur me structs tona typedef, 81 00:03:46,180 --> 00:03:47,980 të cilat ne kaloi në shqyrtim për herë të fundit. 82 00:03:47,980 --> 00:03:53,180 Ajo ishte në thelb vetëm duke krijuar një lloj të dhënave që ne mund të përdorim. 83 00:03:53,180 --> 00:03:57,930 >> Dhe në këtë rast, është një nyjë se do të mbajë një numër të plotë në. 84 00:03:57,930 --> 00:04:00,210 Dhe pastaj çfarë është pjesa e dytë këtu? 85 00:04:00,210 --> 00:04:03,192 86 00:04:03,192 --> 00:04:05,677 Çdokush? 87 00:04:05,677 --> 00:04:06,680 >> Audienca: [padëgjueshme]. 88 00:04:06,680 --> 00:04:07,020 >> Gjuha 1: Po. 89 00:04:07,020 --> 00:04:08,400 Kjo është një tregues për nyjen e ardhshëm. 90 00:04:08,400 --> 00:04:12,610 Pra, kjo duhet të jetë në fakt deri këtu. 91 00:04:12,610 --> 00:04:18,790 Ky është një tregues i tipit nyje për gjë tjetër. 92 00:04:18,790 --> 00:04:22,410 Dhe kjo është ajo që ata përfshin nyje tonë. 93 00:04:22,410 --> 00:04:24,060 Ftohtë. 94 00:04:24,060 --> 00:04:29,390 >> Të gjithë të drejtë, kështu që me kërkimin, siç ishim vetëm duke thënë se para se të dorës, në qoftë se ju jeni 95 00:04:29,390 --> 00:04:31,840 do të kërkoni përmes, ju duhet të vërtetë iterate 96 00:04:31,840 --> 00:04:33,660 nëpër listën tuaj të lidhura. 97 00:04:33,660 --> 00:04:38,530 Pra, në qoftë se ne jemi duke kërkuar për numrin 9, ne do të fillojë në kokën tonë 98 00:04:38,530 --> 00:04:41,520 dhe që na tregon në fillim e listës sonë të lidhura, e drejtë? 99 00:04:41,520 --> 00:04:44,600 Dhe ne themi, OK, e bën këtë nyje të përmbajë numrin 9? 100 00:04:44,600 --> 00:04:45,690 Nuk ka? 101 00:04:45,690 --> 00:04:47,500 >> Të gjitha të drejtat, të shkojnë në një tjetër. 102 00:04:47,500 --> 00:04:48,312 Ndiqni atë. 103 00:04:48,312 --> 00:04:49,520 A do të përmbajë numrin 9? 104 00:04:49,520 --> 00:04:50,570 Jo. 105 00:04:50,570 --> 00:04:51,550 Ndiqni një tjetër. 106 00:04:51,550 --> 00:04:55,490 >> Pra, ne duhet të vërtetë të iterate përmes listën tonë të lidhura. 107 00:04:55,490 --> 00:05:00,070 Ne nuk mund të shkoni direkt aty ku është 9. 108 00:05:00,070 --> 00:05:05,860 Dhe në qoftë se ju djema të vërtetë duan të të shihni disa pseudo-kod deri atje. 109 00:05:05,860 --> 00:05:10,420 Ne kemi një funksion kërkimi këtu që merr in-- çfarë do të marrë në? 110 00:05:10,420 --> 00:05:13,110 111 00:05:13,110 --> 00:05:14,320 Çfarë mendoni ju? 112 00:05:14,320 --> 00:05:15,960 Një mënyrë të lehtë. 113 00:05:15,960 --> 00:05:17,784 Çfarë është kjo? 114 00:05:17,784 --> 00:05:18,700 Audienca: [padëgjueshme]. 115 00:05:18,700 --> 00:05:20,366 Gjuha 1: Numri që ne jemi duke kërkuar për të. 116 00:05:20,366 --> 00:05:20,980 E drejtë? 117 00:05:20,980 --> 00:05:22,875 Dhe çfarë kjo do të korrespondojnë me? 118 00:05:22,875 --> 00:05:25,020 Kjo është një tregues për të? 119 00:05:25,020 --> 00:05:26,000 >> AUDIENCA: Një nyjë. 120 00:05:26,000 --> 00:05:28,980 >> Gjuha 1: Një nyjë në listën që ne jemi duke kërkuar në, e drejtë? 121 00:05:28,980 --> 00:05:33,700 Pra, ne kemi disa nyjet janë akrep këtu. 122 00:05:33,700 --> 00:05:37,240 Kjo është një pikë që do të në fakt iterate nëpër listën tonë. 123 00:05:37,240 --> 00:05:39,630 Ne kemi vendosur të barabartë me lista sepse kjo është vetëm 124 00:05:39,630 --> 00:05:44,380 vendosjen ajo barabartë tek fillimin e listën tonë të lidhura. 125 00:05:44,380 --> 00:05:50,660 >> Dhe ndërsa ajo nuk është NULL, ndërsa ne ende kemi gjëra në listën tonë, 126 00:05:50,660 --> 00:05:55,580 kontrolloni për të parë nëse kjo nyjë ka numri ne jemi duke kërkuar për të. 127 00:05:55,580 --> 00:05:57,740 Kthimi vërtetë. 128 00:05:57,740 --> 00:06:01,070 Përndryshe, të rinovuar atë, e drejtë? 129 00:06:01,070 --> 00:06:04,870 >> Nëse kjo është NULL, ne dalje tonë ndërsa loop dhe kthimit të rreme 130 00:06:04,870 --> 00:06:08,340 sepse kjo do të thotë që ne nuk kemi gjetur atë. 131 00:06:08,340 --> 00:06:11,048 Ka marrë të gjithë se si punon kjo? 132 00:06:11,048 --> 00:06:11,548 OK. 133 00:06:11,548 --> 00:06:14,940 134 00:06:14,940 --> 00:06:20,260 >> Pra, me futje, ju kanë tre mënyra të ndryshme. 135 00:06:20,260 --> 00:06:25,250 Ju mund të prepend, ju mund të append dhe ju mund të futni në të ndryshme. 136 00:06:25,250 --> 00:06:28,215 Në këtë rast, ne jemi do të bëjë një prepend. 137 00:06:28,215 --> 00:06:33,380 A di ndokush se si ato tre raste mund të ndryshojnë? 138 00:06:33,380 --> 00:06:36,920 >> Pra prepend do të thotë se ju vendosni atë në frontin e listës suaj. 139 00:06:36,920 --> 00:06:39,770 Kështu që do të thotë se nuk ka rëndësi çfarë nyje juaj, pa marrë parasysh 140 00:06:39,770 --> 00:06:43,160 çfarë vlera është, ju do të jeni për ta vënë atë të drejtë këtu para, OK? 141 00:06:43,160 --> 00:06:45,160 Ajo do të jetë i pari element në listën tuaj. 142 00:06:45,160 --> 00:06:49,510 >> Nëse ju append atë, ajo do për të shkuar në pjesën e prapme të listës suaj. 143 00:06:49,510 --> 00:06:54,010 Dhe të futur në të ndryshme do të thotë që ju jeni do të vënë vërtetë në vend 144 00:06:54,010 --> 00:06:57,700 ku ajo mban lista juaj lidhura renditura. 145 00:06:57,700 --> 00:07:00,810 Përsëri, si ju përdorni ata dhe kur ju përdorni 146 00:07:00,810 --> 00:07:02,530 ata do të ndryshojnë në varësi të rastit tuaj. 147 00:07:02,530 --> 00:07:05,834 148 00:07:05,834 --> 00:07:07,750 Në qoftë se kjo nuk ka nevojë të të ndahen, prepend tenton 149 00:07:07,750 --> 00:07:10,460 të jetë ajo që shumica e njerëzve përdorin për shkak se ju nuk e bëni 150 00:07:10,460 --> 00:07:15,680 duhet të kalojnë nëpër të gjithë listën për të gjetur në fund për të shtuar atë, e drejtë? 151 00:07:15,680 --> 00:07:17,720 Ju vetëm mund të rrinë atë të drejtë në. 152 00:07:17,720 --> 00:07:21,930 >> Pra, ne do të shkojnë përmes një futje 1 tani. 153 00:07:21,930 --> 00:07:26,360 Pra, një gjë që unë jam duke shkuar për highly recomend në këtë pset 154 00:07:26,360 --> 00:07:29,820 është për të nxjerrë gjërat jashtë, si gjithmonë. 155 00:07:29,820 --> 00:07:35,130 Është shumë e rëndësishme që ju update në mënyrë korrekte pointers tuaj 156 00:07:35,130 --> 00:07:38,620 sepse në qoftë se ju update ato pak nga e rendit, 157 00:07:38,620 --> 00:07:42,210 ju jeni do të përfundojë deri në humbur pjesë të listës suaj. 158 00:07:42,210 --> 00:07:49,680 >> Kështu për shembull, në këtë rast, ne jemi duke i thënë kreu në vetëm pikën 1. 159 00:07:49,680 --> 00:07:56,070 Nëse ne vetëm të bëjë atë pa kursim këtë 1, 160 00:07:56,070 --> 00:07:58,570 ne nuk kemi ide se çfarë 1 duhet të tregojnë tani 161 00:07:58,570 --> 00:08:02,490 sepse ne kemi humbur atë kreu vuri në dukje. 162 00:08:02,490 --> 00:08:05,530 Pra, një gjë për të kujtuar kur ju jeni duke bërë një prepend 163 00:08:05,530 --> 00:08:09,630 është për të shpëtuar çfarë të Pikat e kreu për të parë, 164 00:08:09,630 --> 00:08:15,210 pastaj reassign atë, dhe pastaj update çfarë nyje tuaj të re duhet të tregojë. 165 00:08:15,210 --> 00:08:20,870 166 00:08:20,870 --> 00:08:22,560 Në këtë rast, kjo është një mënyrë për të bërë atë. 167 00:08:22,560 --> 00:08:25,440 >> Pra, nëse ne e kishte bërë atë në këtë mënyrë ku ne vetëm ricaktuar kokën, 168 00:08:25,440 --> 00:08:30,320 kemi humbur thelb tonë gjithë listën, e drejtë? 169 00:08:30,320 --> 00:08:38,000 Një mënyrë për ta bërë këtë është që të ketë 1 pikë për ardhshëm, dhe pastaj kanë pikë qendrore në 1. 170 00:08:38,000 --> 00:08:42,650 Ose ju mund të bëni një lloj si magazinimi i përkohshëm, të cilin kam biseduar rreth. 171 00:08:42,650 --> 00:08:45,670 >> Por ricaktuar tuaj së pointers në mënyrë korrekte 172 00:08:45,670 --> 00:08:48,750 do të jetë shumë, shumë e rëndësishme për këtë pset. 173 00:08:48,750 --> 00:08:53,140 Përndryshe, ju jeni do të ketë një hash tavolinë ose një provoni që është vetëm do të jetë 174 00:08:53,140 --> 00:08:56,014 vetëm një pjesë e fjalëve që doni dhe pastaj mmhmm you're--? 175 00:08:56,014 --> 00:08:58,930 AUDIENCA: Cili ishte i përkohshëm Gjëja e magazinimit ju jeni duke folur për? 176 00:08:58,930 --> 00:09:00,305 Gjuha 1: magazinimi i përkohshëm. 177 00:09:00,305 --> 00:09:02,760 Pra, në thelb një tjetër mënyrë ju mund të bëni këtë 178 00:09:02,760 --> 00:09:07,650 është ruajtur kokën e diçka, si ruajtur atë ndryshore të përkohshme. 179 00:09:07,650 --> 00:09:11,250 Të caktojë atë për 1 dhe pastaj update 1 për pikë 180 00:09:11,250 --> 00:09:13,830 të çfarëdo kreu përdoret për pikë për të. 181 00:09:13,830 --> 00:09:16,920 Kjo mënyrë është e qartë më elegante, sepse ti 182 00:09:16,920 --> 00:09:20,770 nuk kanë nevojë për një vlerë të përkohshme, por vetëm duke ofruar një tjetër mënyrë për të bërë atë. 183 00:09:20,770 --> 00:09:23,999 184 00:09:23,999 --> 00:09:25,790 Dhe ne fakt nuk kemi disa Kodi për këtë. 185 00:09:25,790 --> 00:09:28,080 Pra, për listën e lidhura, ne në të vërtetë kanë disa kodin. 186 00:09:28,080 --> 00:09:31,930 Pra futur këtu, kjo është prepending. 187 00:09:31,930 --> 00:09:34,290 Pra, kjo hyn atë në kokë. 188 00:09:34,290 --> 00:09:38,820 >> Gjëja Pra, së pari, ju duhet të krijuar nyje tuaj të re, natyrisht, 189 00:09:38,820 --> 00:09:40,790 dhe kontrolloni për NULL. 190 00:09:40,790 --> 00:09:43,250 Gjithmonë i mirë. 191 00:09:43,250 --> 00:09:47,840 Dhe atëherë ju duhet të caktojë vlerat. 192 00:09:47,840 --> 00:09:51,260 Kurdo që ju të krijoni një nyje të re, ju nuk e di se çfarë ajo është duke treguar të ardhshëm, 193 00:09:51,260 --> 00:09:54,560 kështu që ju doni të nisja atë të pavlefshëm. 194 00:09:54,560 --> 00:09:58,760 Në qoftë se nuk përfundojnë duke treguar për diçka tjetër, ajo merr jepej dhe kjo është në rregull. 195 00:09:58,760 --> 00:10:00,740 Në qoftë se kjo është gjëja e parë në listë, ajo ka nevojë për 196 00:10:00,740 --> 00:10:04,270 të tregojnë për pavlefshëm, sepse kjo është fundi i listës. 197 00:10:04,270 --> 00:10:12,410 >> Kështu, pra, për të futur atë, ne shohim këtu janë caktuar vlerën e ardhshëm të nyjen tonë 198 00:10:12,410 --> 00:10:17,380 të çfarëdo kreu, e cila është ajo që kemi pasur këtu. 199 00:10:17,380 --> 00:10:19,930 Kjo është ajo që ne vetëm e bëri. 200 00:10:19,930 --> 00:10:25,820 Dhe pastaj ne jemi të caktuar kreu në pikën në nyje tonë të ri, sepse mos harroni, 201 00:10:25,820 --> 00:10:31,090 e re është një tregues për një nyje, dhe kjo është pikërisht ajo që kreu. 202 00:10:31,090 --> 00:10:34,370 Kjo është arsyeja pse ne kanë këtë shigjetë aksesor. 203 00:10:34,370 --> 00:10:37,030 204 00:10:37,030 --> 00:10:37,530 Ftohtë? 205 00:10:37,530 --> 00:10:38,130 Mmhmm? 206 00:10:38,130 --> 00:10:41,100 >> AUDIENCA: A kemi të nisja tjetër e re për të pavlefshëm të parë, 207 00:10:41,100 --> 00:10:44,240 ose mund ne vetëm iniciojnë atë në kokë? 208 00:10:44,240 --> 00:10:48,210 >> Gjuha 1: New ardhshëm duhet të jetë NULL për të filluar 209 00:10:48,210 --> 00:10:53,760 sepse ju nuk e dini ku ajo do të jetë. 210 00:10:53,760 --> 00:10:56,100 Gjithashtu, kjo është lloj i ashtu si një paradigmë. 211 00:10:56,100 --> 00:10:59,900 Keni vendosur të barabartë me NULL vetëm për të bërë Sigurohuni që të gjitha bazat e tuaja janë të mbuluara 212 00:10:59,900 --> 00:11:04,070 para se të bëni ndonjë ripërcaktimin mënyrë që ju jeni gjithmonë duke garantuar se ai do të 213 00:11:04,070 --> 00:11:08,880 të treguar një vlerë të veçantë kundrejt si një vlerë plehrash. 214 00:11:08,880 --> 00:11:12,210 Sepse, vërtet, ne të caktojë re ardhshëm automatikisht, 215 00:11:12,210 --> 00:11:15,420 por kjo është më shumë vetëm si një praktikë e mirë për të nisja atë 216 00:11:15,420 --> 00:11:19,270 në këtë mënyrë dhe pastaj reassign. 217 00:11:19,270 --> 00:11:23,420 >> OK, kështu që lidhet dyfish listat tani. 218 00:11:23,420 --> 00:11:24,601 Çka ne mendojmë? 219 00:11:24,601 --> 00:11:26,350 Çfarë është e ndryshme me lidhur dyfish listat? 220 00:11:26,350 --> 00:11:30,750 221 00:11:30,750 --> 00:11:34,300 >> Pra, në listat tona të lidhura, ne mund të vetëm lëvizin në një drejtim, e drejtë? 222 00:11:34,300 --> 00:11:35,270 Ne kemi vetëm ardhshëm. 223 00:11:35,270 --> 00:11:36,760 Ne mund të shkojnë vetëm përpara. 224 00:11:36,760 --> 00:11:40,300 >> Me një listë e lidhur dyfish, ne mund të lëvizin prapa. 225 00:11:40,300 --> 00:11:44,810 Pra, ne kemi jo vetëm Numri që ne duam për të ruajtur, 226 00:11:44,810 --> 00:11:50,110 ne kemi ku tregon të ardhshëm dhe ku ne sapo ardhur nga. 227 00:11:50,110 --> 00:11:52,865 Pra, kjo lejon për disa traversal mirë. 228 00:11:52,865 --> 00:11:56,620 229 00:11:56,620 --> 00:12:01,240 >> Nyjet Pra lidhur dyfish, shumë të ngjashme, e drejtë? 230 00:12:01,240 --> 00:12:05,000 Dallimi i vetëm është tani ne kanë një tjetër dhe një mëparshme. 231 00:12:05,000 --> 00:12:06,235 Është i vetmi ndryshim. 232 00:12:06,235 --> 00:12:09,570 233 00:12:09,570 --> 00:12:14,790 >> Pra, në qoftë se ne ishim të prepend ose append-- ne nuk kanë asnjë kod për këtë ide here-- 234 00:12:14,790 --> 00:12:17,830 por në qoftë se keni qenë për të përpiqen dhe të futur atë, gjë e rëndësishme 235 00:12:17,830 --> 00:12:19,980 është që ju duhet të bëni Sigurohuni që ju jeni caktimin e 236 00:12:19,980 --> 00:12:23,360 si tuaj të mëparshme dhe tuaj tregues tjetër të saktë. 237 00:12:23,360 --> 00:12:29,010 Pra, në këtë rast, ju do të jo vetëm nisja e ardhshëm, 238 00:12:29,010 --> 00:12:31,820 ju nisja e mëparshme. 239 00:12:31,820 --> 00:12:36,960 Nëse ne jemi në krye të listës, ne jo vetëm që do të bëjë kreu i barabartë i ri, 240 00:12:36,960 --> 00:12:41,750 por duhet të ri previous tonë pikë në kokë, e drejtë? 241 00:12:41,750 --> 00:12:43,380 >> Kjo është i vetmi ndryshim. 242 00:12:43,380 --> 00:12:47,200 Dhe në qoftë se ju doni më shumë praktikë me këto me listat e lidhura, me futur, 243 00:12:47,200 --> 00:12:49,900 me fshirjes, me insert në një listë të ndryshme, 244 00:12:49,900 --> 00:12:52,670 ju lutem shikoni study.cs50.net. 245 00:12:52,670 --> 00:12:54,870 Ka një bandë e ushtrimeve të mëdha. 246 00:12:54,870 --> 00:12:55,870 I highly recomend tyre. 247 00:12:55,870 --> 00:12:59,210 Unë uroj që kishim kohë për të shkuar nëpërmjet tyre por ka një shumë të strukturave të të dhënave 248 00:12:59,210 --> 00:13:01,530 të depërtonte. 249 00:13:01,530 --> 00:13:02,650 >> OK, kështu tavolina hash. 250 00:13:02,650 --> 00:13:07,070 Kjo është ndoshta më e bit të dobishme për pset tuaj 251 00:13:07,070 --> 00:13:11,090 këtu sepse ju jeni do të jetë zbatimin e një nga këto, ose një provoni. 252 00:13:11,090 --> 00:13:12,200 I really like tavolina hash. 253 00:13:12,200 --> 00:13:13,110 Ata janë pretty cool. 254 00:13:13,110 --> 00:13:17,080 >> Pra, në thelb ajo që ndodh është një tabelë hash 255 00:13:17,080 --> 00:13:22,050 është kur ne duhet të vërtetë të shpejtë futje, fshirje, dhe lookup. 256 00:13:22,050 --> 00:13:25,010 Këto janë gjërat që ne jemi prioritet në një tabelë hash. 257 00:13:25,010 --> 00:13:29,500 Ata mund të merrni mjaft të mëdha, por si ne do të shohim me të përpiqet, 258 00:13:29,500 --> 00:13:33,040 ka gjëra që janë shumë më të mëdha. 259 00:13:33,040 --> 00:13:38,330 >> Por në thelb, e gjitha një hash Tabela është një funksion hash 260 00:13:38,330 --> 00:13:47,215 që ju tregon se cilat kovë për të vënë çdo të të dhënave tuaja, secili prej elementeve tuaja në. 261 00:13:47,215 --> 00:13:51,140 Një mënyrë e thjeshtë për të menduar për një tabelë hash është se kjo është vetëm kova e gjërave, 262 00:13:51,140 --> 00:13:51,770 e drejtë? 263 00:13:51,770 --> 00:13:59,720 Pra, kur ju jeni zgjidhja gjëra nga si shkronjës së parë të emrit të tyre, 264 00:13:59,720 --> 00:14:01,820 kjo është lloj i si një tabelë hash. 265 00:14:01,820 --> 00:14:06,180 >> Pra, nëse unë do të grup ju djema është në grupe të kushdo që emri fillon 266 00:14:06,180 --> 00:14:11,670 me një mbi këtu, ose kushdo që është ditëlindjen është në janar, shkurt, mars, 267 00:14:11,670 --> 00:14:15,220 çdo gjë, që është në mënyrë efektive duke krijuar një tabelë hash. 268 00:14:15,220 --> 00:14:18,120 Është thjesht krijimin e kova se ju lloj elemente tuaj në 269 00:14:18,120 --> 00:14:19,520 në mënyrë që ju mund ta gjeni lehtë. 270 00:14:19,520 --> 00:14:22,300 Pra, këtë mënyrë, kur kam nevojë për të gjetur një prej jush, 271 00:14:22,300 --> 00:14:24,680 Unë nuk kam për të kërkuar me secilin nga emrat tuaj. 272 00:14:24,680 --> 00:14:29,490 Unë mund të jetë si, oh, unë e di se Ditëlindjen Danielle është in-- 273 00:14:29,490 --> 00:14:30,240 AUDIENCA: --April. 274 00:14:30,240 --> 00:14:30,948 Gjuha 1: April. 275 00:14:30,948 --> 00:14:33,120 Kështu që unë shoh në prill mia kovë, dhe me çdo fat, 276 00:14:33,120 --> 00:14:38,270 ajo do të jetë vetëm një në atje dhe Koha ime ishte konstante në këtë kuptim, 277 00:14:38,270 --> 00:14:41,230 kurse në qoftë se unë duhet të shikoni përmes një bandë e tërë e njerëzve, 278 00:14:41,230 --> 00:14:43,090 ajo do të marrë shumë më të gjatë. 279 00:14:43,090 --> 00:14:45,830 Pra, tabelat hash janë me të vërtetë vetëm kova. 280 00:14:45,830 --> 00:14:48,630 Mënyra më e lehtë për të menduar prej tyre. 281 00:14:48,630 --> 00:14:52,930 >> Pra, një gjë shumë e rëndësishme në lidhje me një tabelë hash është një funksion hash. 282 00:14:52,930 --> 00:14:58,140 Pra, gjërat që unë vetëm biseduar rreth, si Letra e parë e emrit tuaj të parë 283 00:14:58,140 --> 00:15:01,450 apo muaj ditëlindjen tuaj, këto janë ide që 284 00:15:01,450 --> 00:15:03,070 me të vërtetë lidhen me një funksion hash. 285 00:15:03,070 --> 00:15:08,900 Kjo është vetëm një mënyrë për të vendosur se cilat ju kovë element jeni shkon në, OK? 286 00:15:08,900 --> 00:15:14,850 Pra, për këtë pset, ju mund të kërkoni pretty much çdo funksion hash që ju dëshironi. 287 00:15:14,850 --> 00:15:16,030 >> Nuk duhet të jenë tuajat. 288 00:15:16,030 --> 00:15:21,140 Ka disa ato me të vërtetë ftohtë jashtë ka që të bëjmë të gjitha llojet e matematikë çmendur. 289 00:15:21,140 --> 00:15:25,170 Dhe në qoftë se ju doni të bëni tuaj së spellchecker super të shpejtë, 290 00:15:25,170 --> 00:15:27,620 Unë do patjetër shikoni në një nga ato. 291 00:15:27,620 --> 00:15:32,390 >> Por ka edhe njerëz të thjeshtë, si llogaritin 292 00:15:32,390 --> 00:15:39,010 shuma e fjalëve, si çdo letër ka një numër. 293 00:15:39,010 --> 00:15:39,940 Të llogaritur shumën. 294 00:15:39,940 --> 00:15:42,230 Që përcakton kovë. 295 00:15:42,230 --> 00:15:45,430 Ata gjithashtu kanë ato lehtë që janë vetëm si të gjithë të A-së këtu, 296 00:15:45,430 --> 00:15:47,050 të gjithë B është këtu. 297 00:15:47,050 --> 00:15:48,920 Çdo njëri nga ata. 298 00:15:48,920 --> 00:15:55,770 >> Në thelb, ajo vetëm ju tregon se cilat Indeksi array element juaj duhet të shkoni në. 299 00:15:55,770 --> 00:15:58,690 Vetëm të vendosë për bucket-- kjo është e gjitha një funksion hash është. 300 00:15:58,690 --> 00:16:04,180 Pra, këtu kemi një shembull që është vetëm shkronja e parë e vargut 301 00:16:04,180 --> 00:16:05,900 që unë isha vetëm duke folur për të. 302 00:16:05,900 --> 00:16:11,900 >> Pra, ju keni disa hash që është vetëm Letra e parë e zbritur tuaj string A, 303 00:16:11,900 --> 00:16:16,090 e cila do të ju jap disa numër midis 0 dhe 25. 304 00:16:16,090 --> 00:16:20,790 Dhe atë që ju doni të bëni është të sigurohuni që kjo paraqet 305 00:16:20,790 --> 00:16:24,110 madhësia e hash tuaj table-- sa kova ka. 306 00:16:24,110 --> 00:16:25,860 Me shumë prej tyre funksionet hash, ata janë 307 00:16:25,860 --> 00:16:31,630 do të jetë vlera kthehen se mund të jetë shumë më e lartë në numrin e kova 308 00:16:31,630 --> 00:16:33,610 që në fakt ju keni në tryezën tuaj hash, 309 00:16:33,610 --> 00:16:37,240 kështu që ju duhet të bëni sigurt dhe mod nga ata. 310 00:16:37,240 --> 00:16:42,190 Përndryshe, ajo do të thonë, oh, ajo duhet të jetë në kovë 5,000 311 00:16:42,190 --> 00:16:46,040 por ju keni vetem 30 kova në tryezën tuaj të hash. 312 00:16:46,040 --> 00:16:49,360 Dhe sigurisht, ne të gjithë e dimë se është e do të rezultojë në disa gabime çmendur. 313 00:16:49,360 --> 00:16:52,870 Pra, sigurohuni që të mod nga madhësia e tryezën tuaj hash. 314 00:16:52,870 --> 00:16:58,430 315 00:16:58,430 --> 00:16:58,930 Ftohtë. 316 00:16:58,930 --> 00:17:00,506 Pra goditjet. 317 00:17:00,506 --> 00:17:02,620 Është e të gjithë të mirë deri më tani? 318 00:17:02,620 --> 00:17:03,120 Mmhmm? 319 00:17:03,120 --> 00:17:05,900 >> AUDIENCA: Pse do të kthehen një vlerë të tillë masiv? 320 00:17:05,900 --> 00:17:09,210 >> Gjuha 1: Varësisht nga algorithm se funksioni juaj hash përdor. 321 00:17:09,210 --> 00:17:12,270 Disa prej tyre do të bëjmë shumëzimit çmendur. 322 00:17:12,270 --> 00:17:16,270 Dhe kjo është e gjitha në lidhje me marrjen a shpërndarje, 323 00:17:16,270 --> 00:17:18,490 në mënyrë që ata të bëjnë një të vërtetë gjëra të çmendur nganjëherë. 324 00:17:18,490 --> 00:17:20,960 Kjo është e gjitha. 325 00:17:20,960 --> 00:17:22,140 Çdo gjë tjetër? 326 00:17:22,140 --> 00:17:22,829 OK. 327 00:17:22,829 --> 00:17:24,480 >> Pra goditjet. 328 00:17:24,480 --> 00:17:29,270 Në thelb, siç kam thënë më parë, në rastin më të mirë, 329 00:17:29,270 --> 00:17:32,040 çdo kovë I shikoni në është do të ketë një gjë, 330 00:17:32,040 --> 00:17:34,160 kështu që unë nuk duhet të shikoni në të gjitha, apo jo? 331 00:17:34,160 --> 00:17:37,040 Unë e di se është ose nuk ka ose ka jo, dhe kjo është ajo që ne të vërtetë duan. 332 00:17:37,040 --> 00:17:43,960 Por në qoftë se ne kemi dhjetëra mijëra pika e të dhënave dhe më pak se ky numër 333 00:17:43,960 --> 00:17:48,700 e kova, ne do të kemi goditjet ku përfundimisht diçka 334 00:17:48,700 --> 00:17:54,210 do të duhet të përfundojë deri në një kovë që tashmë ka një element. 335 00:17:54,210 --> 00:17:57,390 >> Pra, pyetja është, çfarë do të bëjmë në këtë rast? 336 00:17:57,390 --> 00:17:58,480 Çfarë bëjmë ne? 337 00:17:58,480 --> 00:17:59,300 Ne tashmë kemi diçka atje? 338 00:17:59,300 --> 00:18:00,060 A kemi vetëm të hedhin atë? 339 00:18:00,060 --> 00:18:00,700 >> Jo. 340 00:18:00,700 --> 00:18:01,980 Ne kemi për të mbajtur të dy prej tyre. 341 00:18:01,980 --> 00:18:06,400 Pra, mënyra që ne zakonisht bëjnë që çfarë? 342 00:18:06,400 --> 00:18:08,400 Cila është struktura e të dhënave ne vetëm biseduar rreth? 343 00:18:08,400 --> 00:18:09,316 AUDIENCA: Lista Linked. 344 00:18:09,316 --> 00:18:10,500 Gjuha 1: Një listë të lidhura. 345 00:18:10,500 --> 00:18:16,640 Deri tani, në vend të secilit prej këtyre kova vetëm duke pasur një element, 346 00:18:16,640 --> 00:18:24,020 ajo do të përmbajë një listë të lidhur elementet që janë sheshuar në të. 347 00:18:24,020 --> 00:18:27,588 OK, ka të gjithë llojet e merrni këtë ide? 348 00:18:27,588 --> 00:18:30,546 Sepse ne nuk mund të kemi një rrjet sepse ne nuk e dimë se sa shumë gjëra 349 00:18:30,546 --> 00:18:31,730 do të jetë në atje. 350 00:18:31,730 --> 00:18:36,540 Një listë e lidhur na lejon të kanë vetëm numrin e saktë se 351 00:18:36,540 --> 00:18:38,465 janë sheshuar në atë kovë, e drejtë? 352 00:18:38,465 --> 00:18:42,260 353 00:18:42,260 --> 00:18:50,500 >> Pra, kjo ndërhyrje është linear në thelb kjo idea-- 354 00:18:50,500 --> 00:18:52,300 kjo është një mënyrë për t'u marrë me një përplasje. 355 00:18:52,300 --> 00:18:58,010 Çfarë ju mund të bëni është nëse, në këtë rast, Berry u sheshuar në 1 356 00:18:58,010 --> 00:19:01,130 dhe ne tashmë kemi diçka atje, ju vetëm 357 00:19:01,130 --> 00:19:04,840 do të mbajë poshtë deri ju të gjeni një slot bosh. 358 00:19:04,840 --> 00:19:06,370 Kjo është një mënyrë për të trajtuar atë. 359 00:19:06,370 --> 00:19:09,020 Mënyra të tjera për të trajtuar ajo është me atë që ne vetëm 360 00:19:09,020 --> 00:19:12,280 called-- lidhur Lista quhet chaining. 361 00:19:12,280 --> 00:19:20,510 >> Pra, kjo ide funksionon, nëse Tabela e juaj hash mendoni 362 00:19:20,510 --> 00:19:24,150 është shumë më i madh se Të dhënat tuaja caktuar ose në qoftë se ju 363 00:19:24,150 --> 00:19:28,870 doni të provoni dhe të minimizuar chaining derisa kjo është absolutisht e nevojshme. 364 00:19:28,870 --> 00:19:34,050 Pra, një gjë është linear probing padyshim do të thotë 365 00:19:34,050 --> 00:19:37,290 që funksionin tuaj hash nuk është mjaft aq e dobishme 366 00:19:37,290 --> 00:19:42,200 për shkak se ju jeni do të përfundojë duke përdorur funksion tuaj hash, duke arritur në një pikë, 367 00:19:42,200 --> 00:19:46,400 ju lineare hetimin poshtë ndonjë vend që është në dispozicion. 368 00:19:46,400 --> 00:19:49,670 Por tani, natyrisht, asgjë tjetër që përfundon atje, 369 00:19:49,670 --> 00:19:52,050 ju jeni do të duhet të kërkoni edhe më tej poshtë. 370 00:19:52,050 --> 00:19:55,650 >> Dhe ka shumë më tepër shpenzim kërkimi që 371 00:19:55,650 --> 00:19:59,820 shkon në inputting një element në tryezën tuaj hash tani, apo jo? 372 00:19:59,820 --> 00:20:05,640 Dhe tani, kur ju shkoni dhe të provoni dhe për të gjetur kokrra të kuqe përsëri, ju jeni do të hash atë, 373 00:20:05,640 --> 00:20:07,742 dhe ajo do të thonë, oh, shikoni në kovë 1, 374 00:20:07,742 --> 00:20:09,700 dhe kjo nuk do të jetë në kovë 1, kështu që ju jeni 375 00:20:09,700 --> 00:20:11,970 do të duhet të kaloj me pjesën tjetër të tyre. 376 00:20:11,970 --> 00:20:17,720 Pra, kjo është nganjëherë e dobishme, por në shumicën e rasteve, 377 00:20:17,720 --> 00:20:22,660 ne jemi duke shkuar për të thënë se chaining është ajo që ju doni të bëni. 378 00:20:22,660 --> 00:20:25,520 >> Pra, kemi biseduar në lidhje me këtë më herët. 379 00:20:25,520 --> 00:20:27,812 Unë kam një miratimin pak nga vetja ime. 380 00:20:27,812 --> 00:20:33,560 Por chaining në thelb është se çdo kovë në tryezën tuaj hash 381 00:20:33,560 --> 00:20:36,120 është vetëm një listë të lidhura. 382 00:20:36,120 --> 00:20:39,660 >> Pra një mënyrë tjetër, ose më shumë teknik mënyrë, të mendojnë për një tabelë hash 383 00:20:39,660 --> 00:20:44,490 është se ajo është vetëm një koleksion e listave të lidhura, të cilat 384 00:20:44,490 --> 00:20:49,330 kur ju jeni me shkrim fjalorin tuaj dhe ju jeni duke u përpjekur për të ngarkuar atë, 385 00:20:49,330 --> 00:20:52,070 duke menduar për atë si një Grup i listave të lidhura 386 00:20:52,070 --> 00:20:54,390 do ta bëjë më të lehtë për ju për të nisja. 387 00:20:54,390 --> 00:20:57,680 >> Audienca: Pra tabelë hash ka një madhësi të paracaktuar, 388 00:20:57,680 --> 00:20:58,980 si një [padëgjueshme] e kova? 389 00:20:58,980 --> 00:20:59,220 >> Gjuha 1: E drejta. 390 00:20:59,220 --> 00:21:01,655 Pra, ajo ka një numër të caktuar të kova që ju determine-- 391 00:21:01,655 --> 00:21:03,530 Cili ju djema duhet të ndjehen të lirë për të luajtur me të. 392 00:21:03,530 --> 00:21:05,269 Ajo mund të jetë shumë i ftohtë për të parë se çfarë ndodh 393 00:21:05,269 --> 00:21:06,810 si ju të ndryshojë numrin tuaj të kova. 394 00:21:06,810 --> 00:21:09,410 395 00:21:09,410 --> 00:21:11,510 Por, vërtet, ajo ka një Numri i vendosur i kova. 396 00:21:11,510 --> 00:21:15,360 Çfarë ju lejon të përshtatet si shumë elemente si ju duhet 397 00:21:15,360 --> 00:21:19,350 është kjo chaining të veçantë ku ju kanë lidhur listat në çdo kovë. 398 00:21:19,350 --> 00:21:22,850 Kjo do të thotë tryezën tuaj hash do të jetë pikërisht madhësia 399 00:21:22,850 --> 00:21:25,440 se ju duhet që ajo të jetë, e drejtë? 400 00:21:25,440 --> 00:21:27,358 Kjo është pika e tërë e listave të lidhura. 401 00:21:27,358 --> 00:21:30,850 402 00:21:30,850 --> 00:21:32,480 Ftohtë. 403 00:21:32,480 --> 00:21:38,780 >> Pra, të gjithë OK atje? 404 00:21:38,780 --> 00:21:39,801 Dakord. 405 00:21:39,801 --> 00:21:40,300 Ah. 406 00:21:40,300 --> 00:21:41,860 Çfarë ka ndodhur vetëm? 407 00:21:41,860 --> 00:21:42,960 Really tani. 408 00:21:42,960 --> 00:21:45,250 Guess dikush është vrarë mua. 409 00:21:45,250 --> 00:21:52,060 >> OK, ne jemi duke shkuar për të shkuar në Ekzekutimet, të cilat janë pak të çmendur. 410 00:21:52,060 --> 00:21:53,140 I pëlqen tavolina hash. 411 00:21:53,140 --> 00:21:54,460 Unë mendoj se ata janë me të vërtetë cool. 412 00:21:54,460 --> 00:21:56,710 Ekzekutimet janë cool, too. 413 00:21:56,710 --> 00:21:59,590 >> Pra, ka njeri të mbani mend se çfarë një provoni është? 414 00:21:59,590 --> 00:22:01,740 Ju duhet të përfundoni ai shkurtimisht në leksion? 415 00:22:01,740 --> 00:22:04,570 416 00:22:04,570 --> 00:22:06,377 A ju kujtohet lloj si funksionon? 417 00:22:06,377 --> 00:22:08,460 AUDIENCA: Unë jam vetëm nodding që nuk shkojnë mbi të. 418 00:22:08,460 --> 00:22:09,626 Gjuha 1: Ne do të shkojnë mbi të. 419 00:22:09,626 --> 00:22:13,100 OK, ne jemi me të vërtetë do të shkojnë mbi tani është ajo që ne jemi duke thënë. 420 00:22:13,100 --> 00:22:14,860 >> AUDIENCA: Kjo është një pemë rikthim. 421 00:22:14,860 --> 00:22:15,280 >> Gjuha 1: Po. 422 00:22:15,280 --> 00:22:16,196 Kjo është një pemë rikthim. 423 00:22:16,196 --> 00:22:16,960 Awesome. 424 00:22:16,960 --> 00:22:23,610 Pra, një gjë të re këtu është se ne janë duke kërkuar në karaktere të veçanta 425 00:22:23,610 --> 00:22:24,480 këtu, apo jo? 426 00:22:24,480 --> 00:22:29,710 >> Pra, para se me funksionin tonë të hash, ne ishin në kërkim në fjalë, si një e tërë, 427 00:22:29,710 --> 00:22:32,270 dhe tani ne jemi duke kërkuar më shumë në karaktere, e drejtë? 428 00:22:32,270 --> 00:22:38,380 Pra, ne kemi Maxwell mbi këtu dhe Mendel. 429 00:22:38,380 --> 00:22:47,840 Pra, në thelb një try-- një mënyrë për të menduar në lidhje me këtë është se çdo niveli këtu 430 00:22:47,840 --> 00:22:49,000 është një koleksion i letrave. 431 00:22:49,000 --> 00:22:53,310 432 00:22:53,310 --> 00:22:55,790 Pra, kjo është nyja juaj rrënjë këtu, apo jo? 433 00:22:55,790 --> 00:23:01,980 Kjo ka të gjitha karakteret e alfabet për fillimin e çdo fjalë. 434 00:23:01,980 --> 00:23:06,480 >> Dhe atë që ju doni të bëni është të të themi, OK, ne kemi disa fjalë M. 435 00:23:06,480 --> 00:23:10,590 Ne jemi duke shkuar për të kërkuar Maxwell, kështu ne do të shkojmë për të M. Dhe M pikëve në një të tërë 436 00:23:10,590 --> 00:23:14,800 tjetri një grup ku çdo fjalë, për aq kohë sa ekziston 437 00:23:14,800 --> 00:23:17,044 është një fjalë që ka një si letër të dytë, 438 00:23:17,044 --> 00:23:19,460 për aq kohë sa nuk ka një fjalë që ka B si letrën e dytë, 439 00:23:19,460 --> 00:23:24,630 ajo do të ketë një akrep shkuar në një grup tjetër. 440 00:23:24,630 --> 00:23:29,290 >> Ka ndoshta nuk është një fjalë që MP diçka, 441 00:23:29,290 --> 00:23:32,980 kështu që në pozicionin P në këtë array, ajo vetëm do të jetë NULL. 442 00:23:32,980 --> 00:23:38,840 Kjo do të thotë, OK, nuk ka asnjë fjalë që ka M pasuar nga një P, në rregull? 443 00:23:38,840 --> 00:23:43,100 Pra, nëse ne mendojmë për këtë, çdo një nga këto gjëra të vogla 444 00:23:43,100 --> 00:23:47,990 është në fakt një nga këto vargjeve të mëdha nga A nëpërmjet Z. 445 00:23:47,990 --> 00:23:55,064 Pra, çfarë mund të jetë një nga gjërat kjo është lloj i një pengesë e një provoni? 446 00:23:55,064 --> 00:23:56,500 >> AUDIENCA: Një shumë e kujtesës. 447 00:23:56,500 --> 00:23:59,940 >> Gjuha 1: Kjo është një ton të kujtesës, e drejtë? 448 00:23:59,940 --> 00:24:08,750 Secili prej këtyre blloqeve këtu përfaqëson 26 hapësira, 26 element array. 449 00:24:08,750 --> 00:24:13,680 Pra, përpiqet të marrë tepër të rënda hapësirë. 450 00:24:13,680 --> 00:24:17,100 >> Por ata janë shumë të shpejtë. 451 00:24:17,100 --> 00:24:22,540 Pra, tepër të shpejtë, por vërtetë hapësirë ​​joefikase. 452 00:24:22,540 --> 00:24:24,810 Lloji i duhet të kuptoj se cilat një që ju dëshironi. 453 00:24:24,810 --> 00:24:29,470 Këto janë me të vërtetë të ftohtë për pset tuaj, por ata do të marrë një shumë të kujtesës, 454 00:24:29,470 --> 00:24:30,290 kështu që ju të tregtisë off. 455 00:24:30,290 --> 00:24:31,480 Vërtet? 456 00:24:31,480 --> 00:24:34,300 >> AUDIENCA: A do të jetë e mundur për të ngritur një provoni dhe pastaj 457 00:24:34,300 --> 00:24:37,967 një herë ju keni të gjithë Të dhënat në atë që ju need-- 458 00:24:37,967 --> 00:24:39,550 Unë nuk e di nëse kjo do të kishte kuptim. 459 00:24:39,550 --> 00:24:42,200 Unë kam qenë duke u shpëtoj të gjithë Karaktere NULL, por pastaj 460 00:24:42,200 --> 00:24:42,910 ju nuk do të jetë në gjendje të indeksit them-- 461 00:24:42,910 --> 00:24:43,275 >> Gjuha 1: Ju ende nevojë për to. 462 00:24:43,275 --> 00:24:44,854 >> AUDIENCA: - të njëjtën mënyrë çdo herë. 463 00:24:44,854 --> 00:24:45,520 Gjuha 1: Po. 464 00:24:45,520 --> 00:24:50,460 Ju duhet personazhet NULL për të lejuar ju e dini se në qoftë se nuk është një fjalë atje. 465 00:24:50,460 --> 00:24:52,040 Ben nuk keni diçka që ju doni? 466 00:24:52,040 --> 00:24:52,540 OK. 467 00:24:52,540 --> 00:24:54,581 Në rregull, kështu që ne jemi duke shkuar për të shkuar pak më të 468 00:24:54,581 --> 00:24:58,920 në hollësi teknike prapa a përpiqen dhe të punojnë me një shembull. 469 00:24:58,920 --> 00:25:01,490 >> OK, kështu që kjo është e njëjta gjë. 470 00:25:01,490 --> 00:25:06,290 Ndërsa në një listë lidhur, kryesore ynë lloj of-- çfarë është fjala që unë dua? - 471 00:25:06,290 --> 00:25:08,350 si ndërtimin e bllokut ishte një nyje. 472 00:25:08,350 --> 00:25:12,280 Në një përpjekje, ne gjithashtu kemi një nyje, por kjo është e përcaktuar ndryshe. 473 00:25:12,280 --> 00:25:17,000 >> Pra, ne kemi disa bool se përfaqëson qoftë një fjalë të vërtetë 474 00:25:17,000 --> 00:25:23,530 ekziston në këtë vend, dhe pastaj ne kemi një rrjet të here-- ose më mirë, 475 00:25:23,530 --> 00:25:27,840 ky është një tregues për një Grup i 27 karaktere. 476 00:25:27,840 --> 00:25:33,339 Dhe kjo është për të, në këtë rast, ky 27-- Unë jam i sigurt se të gjithë ju jeni si, prisni, 477 00:25:33,339 --> 00:25:34,880 ka 26 shkronja në alfabetin. 478 00:25:34,880 --> 00:25:36,010 Pse nuk kemi 27? 479 00:25:36,010 --> 00:25:37,870 >> Pra, në varësi të Mënyrë që ju të zbatuar këtë, 480 00:25:37,870 --> 00:25:43,240 kjo është nga një pset që lejuar për apostrofat. 481 00:25:43,240 --> 00:25:46,010 Pra, kjo është arsyeja pse një shtesë. 482 00:25:46,010 --> 00:25:50,500 Ju gjithashtu do të keni në disa rastet Terminator null 483 00:25:50,500 --> 00:25:53,230 përfshihet si një prej karaktere të cilat është e lejuar që të jetë, 484 00:25:53,230 --> 00:25:56,120 dhe kjo është se si ata të kontrolloni për të shohim nëse ajo është fundi i fjalës. 485 00:25:56,120 --> 00:26:01,340 Nëse jeni të interesuar, shikoni Video Kevin mbi study.cs50, 486 00:26:01,340 --> 00:26:04,790 si dhe Wikipedia ka disa burime të mira atje. 487 00:26:04,790 --> 00:26:09,000 >> Por ne jemi duke shkuar për të shkuar nëpër thjesht lloj se si ju mund të punoni me një përpjekje 488 00:26:09,000 --> 00:26:11,010 në qoftë se ju jeni duke i dhënë një të tillë. 489 00:26:11,010 --> 00:26:16,230 Pra, ne kemi një të super të thjeshtë këtu ka fjalët "bat" dhe "zoom" në to. 490 00:26:16,230 --> 00:26:18,920 Dhe si ne shohim këtu, kjo hapësirë ​​pak këtu 491 00:26:18,920 --> 00:26:22,560 përfaqëson bool tonë se thotë, po, kjo është një fjalë. 492 00:26:22,560 --> 00:26:27,060 Dhe pastaj kjo ka tonë vargjeve të karaktereve, e drejtë? 493 00:26:27,060 --> 00:26:33,480 >> Pra, ne do të shkojnë nëpër gjetur "shkop" në këtë provoni. 494 00:26:33,480 --> 00:26:38,340 Pra, fillojë në krye, e drejtë? 495 00:26:38,340 --> 00:26:46,290 Dhe ne e dimë se b korrespondon me indeksi i dytë, elementi i dytë 496 00:26:46,290 --> 00:26:47,840 në këtë grup, sepse a dhe b. 497 00:26:47,840 --> 00:26:51,340 Pra, afërsisht një të dytë. 498 00:26:51,340 --> 00:26:58,820 >> Dhe ai thotë, OK, cool, ndiqni atë në array tjetër, sepse në qoftë se ne kujtojmë, 499 00:26:58,820 --> 00:27:02,160 nuk është se secili prej tyre në fakt përmban elementin. 500 00:27:02,160 --> 00:27:07,110 Secili prej këtyre vargjeve përmban një akrep, e drejtë? 501 00:27:07,110 --> 00:27:10,030 Kjo është një dallim i rëndësishëm për të bërë. 502 00:27:10,030 --> 00:27:13,450 >> Unë e di se kjo do të be-- mundohet të të vërtetë e vështirë për të marrë në kohën e parë, 503 00:27:13,450 --> 00:27:15,241 kështu që edhe në qoftë se kjo është herën e dytë apo të tretë 504 00:27:15,241 --> 00:27:18,370 dhe kjo është ende lloji i gjoja e vështirë, 505 00:27:18,370 --> 00:27:21,199 Unë premtoj, nëse ju shkoni shikojnë nesër shkurtër përsëri, 506 00:27:21,199 --> 00:27:22,740 ajo ndoshta do të bëjë shumë më tepër kuptim. 507 00:27:22,740 --> 00:27:23,890 Ajo merr një shumë për të tretet. 508 00:27:23,890 --> 00:27:27,800 Unë ende nganjëherë jam si, prisni, çfarë është një provoni? 509 00:27:27,800 --> 00:27:29,080 Si mund ta përdor këtë? 510 00:27:29,080 --> 00:27:33,880 >> Pra, ne kemi b në këtë rast, i cili është indeksi ynë i dytë. 511 00:27:33,880 --> 00:27:40,240 Nëse do të kishim, të themi, c ose d apo ndonjë letër tjetër, 512 00:27:40,240 --> 00:27:45,810 ne kemi nevojë për të hartë atë përsëri në indeksin e grup tonë se kjo korrespondon me. 513 00:27:45,810 --> 00:27:56,930 Pra, ne do të marrë si rchar dhe ne vetëm zbres off një për të hartë atë në 0-25. 514 00:27:56,930 --> 00:27:58,728 Të gjithë të mirë sa ne Harta e karaktereve tona? 515 00:27:58,728 --> 00:28:00,440 OK. 516 00:28:00,440 --> 00:28:05,980 >> Pra, ne do të shkojmë në një të dytë dhe ne shohim se, po, kjo nuk është NULL. 517 00:28:05,980 --> 00:28:07,780 Ne mund të lëvizin në këtë grup tjetër. 518 00:28:07,780 --> 00:28:12,300 Pra, ne do të shkojmë në këtë grup tjetër këtu. 519 00:28:12,300 --> 00:28:15,500 >> Dhe ne themi, OK, tani ne nevojë për të parë nëse një është këtu. 520 00:28:15,500 --> 00:28:18,590 Është një null apo e bën atë në të vërtetë të ecur përpara? 521 00:28:18,590 --> 00:28:21,880 Pra, a në fakt lëviz përpara në këtë rrjet. 522 00:28:21,880 --> 00:28:24,570 Dhe ne themi, OK, t është letra jonë e fundit. 523 00:28:24,570 --> 00:28:27,580 Pra, ne do të shkojmë në t në indeksin. 524 00:28:27,580 --> 00:28:30,120 Dhe pastaj ne të ecim përpara sepse nuk ka tjetër. 525 00:28:30,120 --> 00:28:38,340 Dhe kjo, thotë në thelb se, po, ajo thotë se ka një fjalë here-- 526 00:28:38,340 --> 00:28:41,750 se në qoftë se ju ndiqni këtë rruga, ju keni ardhur 527 00:28:41,750 --> 00:28:43,210 në një fjalë, të cilat ne e dimë është "bat". 528 00:28:43,210 --> 00:28:43,800 Po? 529 00:28:43,800 --> 00:28:46,770 >> AUDIENCA: A është standardi që të ketë atë si indeksin 0 dhe pastaj të ketë një lloj në 1 530 00:28:46,770 --> 00:28:47,660 ose të kenë në fund? 531 00:28:47,660 --> 00:28:48,243 >> Gjuha 1: Nr 532 00:28:48,243 --> 00:28:55,360 Pra, nëse ne shikojmë prapa në tonë Deklarata këtu, kjo është një bool, 533 00:28:55,360 --> 00:28:59,490 kështu që është element vet në nyje tuaj. 534 00:28:59,490 --> 00:29:03,331 Pra, kjo nuk është pjesë e vektorit. 535 00:29:03,331 --> 00:29:03,830 Ftohtë. 536 00:29:03,830 --> 00:29:08,370 Pra, kur ne fund fjalën tonë dhe ne jemi në këtë grup, ajo që ne duam të bëjmë 537 00:29:08,370 --> 00:29:12,807 është të bëjë një kontroll për të është kjo një fjalë. 538 00:29:12,807 --> 00:29:14,390 Dhe në këtë rast, ai do të kthehej po. 539 00:29:14,390 --> 00:29:17,220 540 00:29:17,220 --> 00:29:24,090 >> Pra, në këtë shënim, ne e dimë se "kopshtin zoologjik" - ne e dimë si njerëzit i se "kopshtit zoologjik" është një fjalë, 541 00:29:24,090 --> 00:29:24,820 e drejtë? 542 00:29:24,820 --> 00:29:28,990 Por po përpiqemi këtu do të thonë, jo, kjo nuk është. 543 00:29:28,990 --> 00:29:33,980 Dhe kjo do të thotë se, sepse ne nuk e kanë përcaktuar atë si një fjalë këtu. 544 00:29:33,980 --> 00:29:40,440 Edhe pse ne mund të kaloj deri në këtë grup, 545 00:29:40,440 --> 00:29:43,890 kjo provoni do të thotë se, nuk ka, kopsht zoologjik nuk është në fjalor tuaj 546 00:29:43,890 --> 00:29:47,070 sepse ne nuk kemi përcaktuar atë si të tillë. 547 00:29:47,070 --> 00:29:52,870 >> Pra, një mënyrë për të bërë that-- oh, sorry, kjo. 548 00:29:52,870 --> 00:29:59,450 Pra, në këtë rast, "kopshtin zoologjik", nuk është e një fjalë, por ajo është në përpjekjen tonë. 549 00:29:59,450 --> 00:30:05,690 Por në këtë, thonë se ne e duam atë futur fjalën "dush", çfarë ndodh 550 00:30:05,690 --> 00:30:08,260 është që ne ndjekim through-- b, a, t. 551 00:30:08,260 --> 00:30:11,820 Ne jemi në këtë grup, dhe ne do të shkojmë për të kërkuar për h. 552 00:30:11,820 --> 00:30:15,220 >> Në këtë rast, kur ne shikoni në treguesin në h, 553 00:30:15,220 --> 00:30:17,890 ajo është duke treguar NULL, OK? 554 00:30:17,890 --> 00:30:20,780 Pra, nëse kjo është në mënyrë eksplicite duke treguar një tjetër grup, 555 00:30:20,780 --> 00:30:25,000 ju supozojmë se të gjitha pointers në këtë grup janë treguar null. 556 00:30:25,000 --> 00:30:28,270 Pra, në këtë rast, h është vënë të null kështu që ne nuk mund të bëjmë asgjë, 557 00:30:28,270 --> 00:30:31,540 kështu që do të kthehen false, "dush" nuk është këtu. 558 00:30:31,540 --> 00:30:34,102 559 00:30:34,102 --> 00:30:35,810 Pra, tani ne jemi në të vërtetë do të kalojnë nëpër 560 00:30:35,810 --> 00:30:39,790 si do ne fakt themi se "kopshtin zoologjik" është në përpjekjen tonë. 561 00:30:39,790 --> 00:30:42,920 Si nuk kemi të futur "kopshtin zoologjik", në përpjekjen tonë? 562 00:30:42,920 --> 00:30:47,810 Pra, në të njëjtën mënyrë që ne të filluar me listën tonë të lidhura, ne të fillojë në rrënjë. 563 00:30:47,810 --> 00:30:50,600 Kur në dyshim, të fillojë në rrënja e këtyre gjërave. 564 00:30:50,600 --> 00:30:53,330 >> Dhe ne do të themi, OK, z. 565 00:30:53,330 --> 00:30:55,650 z ekziston në këtë, dhe kjo e bën. 566 00:30:55,650 --> 00:30:58,370 Pra, ju jeni duke shkuar për në array tuaj të ardhshëm, OK? 567 00:30:58,370 --> 00:31:01,482 Dhe pastaj në një tjetër, themi, OK, nuk ekziston o? 568 00:31:01,482 --> 00:31:03,000 Ai e bën. 569 00:31:03,000 --> 00:31:04,330 Kjo përsëri. 570 00:31:04,330 --> 00:31:08,670 >> Dhe kështu në një tonë të ardhshëm, ne kemi thënë, OK, "kopshtin zoologjik", tashmë ekziston këtu. 571 00:31:08,670 --> 00:31:12,440 Të gjithë ne duhet të bëni është të vendosur këtë barabartë në të vërtetë, se është një fjalë atje. 572 00:31:12,440 --> 00:31:15,260 Nëse ju ka ndjekur gjithçka deri në atë pikë përpara, 573 00:31:15,260 --> 00:31:17,030 kjo është një fjalë, kështu që vetëm vendosur ajo barabartë tek tillë. 574 00:31:17,030 --> 00:31:17,530 Po? 575 00:31:17,530 --> 00:31:22,550 >> AUDIENCA: Pra, atëherë e bën atë thotë se "BA" është një fjalë edhe të brendshmen? 576 00:31:22,550 --> 00:31:24,120 >> Gjuha 1: Nr 577 00:31:24,120 --> 00:31:28,870 Pra, në këtë rast, "ba", ne do të merrni këtu, ne do të thonë se është një fjalë, 578 00:31:28,870 --> 00:31:31,590 dhe kjo do të vazhdojë të jetë nr. 579 00:31:31,590 --> 00:31:32,822 OK? 580 00:31:32,822 --> 00:31:33,740 Mmhmm? 581 00:31:33,740 --> 00:31:36,360 >> Audienca: Pra, një herë ju është një fjalë dhe ju thoni po, atëherë ajo 582 00:31:36,360 --> 00:31:38,380 do të përmbajë të shkojë në m? 583 00:31:38,380 --> 00:31:42,260 >> Gjuha 1: Pra, kjo ka të bëjë with-- jeni ngarkimit këtë. 584 00:31:42,260 --> 00:31:43,640 Ju thoni "kopshtit zoologjik" është një fjalë. 585 00:31:43,640 --> 00:31:47,020 Kur ju shkoni në check-- si, thonë se ju doni të thoni, 586 00:31:47,020 --> 00:31:49,400 ka "kopshtin zoologjik", ekziston në këtë fjalor? 587 00:31:49,400 --> 00:31:54,200 Ju jeni vetëm duke shkuar për të kërkuar për "kopshtin zoologjik" dhe pastaj kontrolloni për të parë nëse ajo është një fjalë. 588 00:31:54,200 --> 00:31:57,291 Ju kurrë nuk do të jeni për të lëvizur deri m, sepse kjo nuk është 589 00:31:57,291 --> 00:31:58,290 atë që ju po kërkoni. 590 00:31:58,290 --> 00:32:02,690 591 00:32:02,690 --> 00:32:08,070 >> Pra, në qoftë se ne të vërtetë të kërkuar për të shtoni "dush" në këtë provoni, 592 00:32:08,070 --> 00:32:11,390 ne do të bëjmë të njëjtën gjë siç bëmë me "kopshtin zoologjik" 593 00:32:11,390 --> 00:32:15,380 përveç, ne do të shohim se kur ne përpiqen dhe të marrin të h, ajo nuk ekziston. 594 00:32:15,380 --> 00:32:20,090 Kështu që ju mund të mendoni për këtë si duke u përpjekur për të shtuar një nyje të re në një listë të lidhura, 595 00:32:20,090 --> 00:32:27,210 kështu që ne do të duhet të shtoni një tjetër një prej këtyre vargjeve, si kështu. 596 00:32:27,210 --> 00:32:35,670 Dhe pastaj ajo që ne nuk po kemi vetëm vendosur h element i kësaj grup treguar për këtë. 597 00:32:35,670 --> 00:32:39,430 >> Dhe pastaj çfarë do që ne duam të bëjmë këtu? 598 00:32:39,430 --> 00:32:43,110 Shto ajo barabartë me të vërtetë sepse kjo është një fjalë. 599 00:32:43,110 --> 00:32:46,350 600 00:32:46,350 --> 00:32:48,150 Ftohtë. 601 00:32:48,150 --> 00:32:48,700 Unë e di. 602 00:32:48,700 --> 00:32:51,170 Ekzekutimet nuk janë më emocionuese. 603 00:32:51,170 --> 00:32:54,250 Trust mua, unë e di. 604 00:32:54,250 --> 00:32:58,040 >> Pra, një gjë për të realizuar me përpiqet, Unë i thashë, se ata janë shumë të efektshme. 605 00:32:58,040 --> 00:33:00,080 Pra, ne kemi parë ata të marrë një ton të hapësirës. 606 00:33:00,080 --> 00:33:01,370 Ata janë lloj i konfuze. 607 00:33:01,370 --> 00:33:03,367 Pra, pse do të kemi ndonjëherë të përdorni këto? 608 00:33:03,367 --> 00:33:05,450 Ne përdorim këto, sepse ata janë tepër efikase. 609 00:33:05,450 --> 00:33:08,130 >> Pra, nëse ju jeni ndonjëherë në kërkim up një fjalë, ju jeni vetëm 610 00:33:08,130 --> 00:33:10,450 kufizohet nga gjatësia e fjale. 611 00:33:10,450 --> 00:33:15,210 Pra, nëse ju jeni duke kërkuar për a fjalë që është e gjatësisë pesë, 612 00:33:15,210 --> 00:33:20,940 ju jeni vetëm ndonjëherë do të ketë të të bëjë më së shumti pesë krahasime, OK? 613 00:33:20,940 --> 00:33:25,780 Pra, kjo e bën atë në thelb një konstante. 614 00:33:25,780 --> 00:33:29,150 Ashtu si futje dhe lookup janë në thelb kohë konstante. 615 00:33:29,150 --> 00:33:33,750 >> Kështu që nëse ju mund të merrni ndonjëherë diçka në kohë të vazhdueshme, 616 00:33:33,750 --> 00:33:35,150 kjo është aq i mirë sa ajo merr. 617 00:33:35,150 --> 00:33:37,990 Ju nuk mund të merrni më të mirë se Koha konstante për këto gjëra. 618 00:33:37,990 --> 00:33:43,150 Kështu që është një nga pluses e mëdha të përpiqet. 619 00:33:43,150 --> 00:33:46,780 >> Por kjo është një shumë hapësirë. 620 00:33:46,780 --> 00:33:50,380 Kështu që ju lloj i duhet të vendosë çfarë është më e rëndësishme për ju. 621 00:33:50,380 --> 00:33:54,700 Dhe në kompjuterat e sotëm, hapësirë ​​që një provoni mund të zgjasë deri 622 00:33:54,700 --> 00:33:57,740 ndoshta nuk do të ndikojë në ju se shumë, por ndoshta 623 00:33:57,740 --> 00:34:01,350 ju jeni që kanë të bëjnë me diçka se ka shumë, shumë më tepër gjëra, 624 00:34:01,350 --> 00:34:02,810 dhe një provoni vetëm nuk është e arsyeshme. 625 00:34:02,810 --> 00:34:03,000 Po? 626 00:34:03,000 --> 00:34:05,610 >> AUDIENCA: Prisni, kështu që ju duhet 26 letra në çdo një të vetme? 627 00:34:05,610 --> 00:34:07,440 >> Gjuha 1: Mmhmm. 628 00:34:07,440 --> 00:34:08,570 Yeah, ju keni 26. 629 00:34:08,570 --> 00:34:16,984 Ju keni disa është shënues fjalë dhe më pas ju keni në çdo një 26 pointers. 630 00:34:16,984 --> 00:34:17,775 Dhe ata janë point-- 631 00:34:17,775 --> 00:34:20,280 >> AUDIENCA: Dhe çdo 26, ata çdo kanë 26? 632 00:34:20,280 --> 00:34:21,500 >> Gjuha 1: Po. 633 00:34:21,500 --> 00:34:27,460 Dhe kjo është arsyeja pse, si ju mund të shih, ajo zgjerohet shumë shpejt. 634 00:34:27,460 --> 00:34:28,130 Dakord. 635 00:34:28,130 --> 00:34:32,524 Pra, ne jemi duke shkuar për të marrë në pemë, të cilat Unë ndjehem si është më e lehtë dhe ndoshta do të 636 00:34:32,524 --> 00:34:36,150 të jetë një pushim bukur pak nga vende atje. 637 00:34:36,150 --> 00:34:39,620 Kështu që shpresojmë se shumica prej jush kanë parë një pemë më parë. 638 00:34:39,620 --> 00:34:41,820 Jo si goxha ato jashtë, të cilat unë 639 00:34:41,820 --> 00:34:44,340 nuk e di nëse dikush shkoi jashtë kohët e fundit. 640 00:34:44,340 --> 00:34:49,230 Unë shkova mollë picking këtë fundjavë, dhe oh my gosh, ajo ishte e bukur. 641 00:34:49,230 --> 00:34:52,250 Unë nuk e di se lë mund të shikoni se goxha. 642 00:34:52,250 --> 00:34:53,610 >> Pra, kjo është vetëm një pemë, e drejtë? 643 00:34:53,610 --> 00:34:56,790 Kjo është vetëm disa nyje, dhe kjo tregon për një bandë e nyje të tjera. 644 00:34:56,790 --> 00:34:59,570 Siç e shihni këtu, kjo është e lloj i një temë e përsëritur. 645 00:34:59,570 --> 00:35:03,720 Nyje treguar në nyjet është lloj i thelbi i shumë strukturave të të dhënave. 646 00:35:03,720 --> 00:35:06,670 Ajo thjesht varet se si ne ato kanë pikë të njëri tjetrit 647 00:35:06,670 --> 00:35:08,600 dhe se si ne kundërvënie përmes tyre dhe se si ne 648 00:35:08,600 --> 00:35:14,500 futur gjëra që përcakton karakteristikat e tyre të ndryshme. 649 00:35:14,500 --> 00:35:17,600 >> Pra, vetëm disa terminologjia, që unë e kam përdorur më parë. 650 00:35:17,600 --> 00:35:20,010 Pra rrënjë është çdo gjë që është në krye. 651 00:35:20,010 --> 00:35:21,200 kjo është ku ne gjithmonë të fillojë. 652 00:35:21,200 --> 00:35:23,610 Ju mund të mendoni për atë si kokë gjithashtu. 653 00:35:23,610 --> 00:35:28,750 Por për pemët, ne priren të i referohen asaj si rrënjë. 654 00:35:28,750 --> 00:35:32,820 >> Çdo gjë në here-- fund në shumë, shumë bottom-- 655 00:35:32,820 --> 00:35:34,500 janë konsideruar lë. 656 00:35:34,500 --> 00:35:37,210 Pra, ajo shkon së bashku me Gjithë gjë pemë, e drejtë? 657 00:35:37,210 --> 00:35:39,860 Gjethet janë në skajet e pemës tuaj. 658 00:35:39,860 --> 00:35:45,820 >> Dhe pastaj ne gjithashtu kemi një çift të Kushtet për të folur për nyjet në lidhje 659 00:35:45,820 --> 00:35:46,680 me njëri tjetrin. 660 00:35:46,680 --> 00:35:49,700 Pra, ne kemi prind, fëmijët, dhe vëllezërit e motrat. 661 00:35:49,700 --> 00:35:56,260 Pra, në këtë rast, 3 është prind prej 5, 6, dhe 7. 662 00:35:56,260 --> 00:36:00,370 Pra, prindi është çdo gjë që është një hap më lart çdo gjë që ju jeni 663 00:36:00,370 --> 00:36:02,940 duke iu referuar, në mënyrë të drejtë si një pemë familjare. 664 00:36:02,940 --> 00:36:07,090 Shpresojmë, kjo është e gjitha një pak të pak më intuitive se përpiqet. 665 00:36:07,090 --> 00:36:10,970 >> Vëllai dhe motra janë ndonjë që të ketë njëjti prind, e drejtë? 666 00:36:10,970 --> 00:36:13,470 Ata janë në të njëjtin nivel këtu. 667 00:36:13,470 --> 00:36:16,960 Dhe pastaj, siç isha duke thënë, fëmijët janë vetëm 668 00:36:16,960 --> 00:36:22,630 çdo gjë që është një hap poshtë nyje në fjalë, OK? 669 00:36:22,630 --> 00:36:23,470 Ftohtë. 670 00:36:23,470 --> 00:36:25,610 Pra, një pemë binare. 671 00:36:25,610 --> 00:36:31,450 Mund dikush të vë në rrezik një guess në një nga karakteristikat e pemës binar? 672 00:36:31,450 --> 00:36:32,770 >> AUDIENCA: Max dy kanate. 673 00:36:32,770 --> 00:36:33,478 >> Gjuha 1: E drejta. 674 00:36:33,478 --> 00:36:34,640 Pra, max e dy gjethe. 675 00:36:34,640 --> 00:36:39,730 Pra, në këtë para, kemi pasur këtë se kishte tre, por në një pemë binare, 676 00:36:39,730 --> 00:36:45,000 ju keni një maksimum prej dy fëmijë për prindin, e drejtë? 677 00:36:45,000 --> 00:36:46,970 Ka një tjetër karakteristikë interesante. 678 00:36:46,970 --> 00:36:51,550 Does anyone know se? 679 00:36:51,550 --> 00:36:52,620 Pemë binare. 680 00:36:52,620 --> 00:37:00,350 >> Pra, një pemë binare do të keni gjithçka në the-- kjo nuk është sorted-- 681 00:37:00,350 --> 00:37:05,320 por në një pemë renditura binar, çdo gjë në të djathtë 682 00:37:05,320 --> 00:37:08,530 është më e madhe se prind, dhe çdo gjë në të majtë 683 00:37:08,530 --> 00:37:10,035 është më pak se prindi. 684 00:37:10,035 --> 00:37:15,690 Dhe kjo ka qenë një quiz Pyetja më parë, në mënyrë të mirë për të dini. 685 00:37:15,690 --> 00:37:19,500 Pra, mënyra se si të përcaktojë këtë, përsëri, ne kemi një tjetër nyje. 686 00:37:19,500 --> 00:37:21,880 Kjo duket shumë e ngjashme me çfarë? 687 00:37:21,880 --> 00:37:28,336 688 00:37:28,336 --> 00:37:28,836 Dyfish 689 00:37:28,836 --> 00:37:29,320 >> Audienca: Linked listat 690 00:37:29,320 --> 00:37:31,100 >> Gjuha 1: Një listë e dyfishtë e lidhur, e drejtë? 691 00:37:31,100 --> 00:37:33,690 Pra, në qoftë se ne të zëvendësojë këtë me mëparshëm dhe të ardhshëm, 692 00:37:33,690 --> 00:37:35,670 kjo do të jetë një listë e lidhur dyfish. 693 00:37:35,670 --> 00:37:40,125 Por në këtë rast, ne fakt kanë majtë dhe të djathtë dhe kjo është ajo. 694 00:37:40,125 --> 00:37:41,500 Përndryshe, kjo është saktësisht e njëjtë. 695 00:37:41,500 --> 00:37:43,374 Ne ende kemi elementin ju jeni në kërkim për të, 696 00:37:43,374 --> 00:37:45,988 dhe ju vetëm keni dy pointers do të çdo gjë që është e ardhshëm. 697 00:37:45,988 --> 00:37:49,210 698 00:37:49,210 --> 00:37:51,870 Yeah, pemë kërko kështu binar. 699 00:37:51,870 --> 00:37:57,665 Nëse vërejmë, çdo gjë në këtu është than-- madh 700 00:37:57,665 --> 00:37:59,850 ose gjithçka menjëherë të drejtë këtu 701 00:37:59,850 --> 00:38:02,840 është më e madhe se, çdo gjë here është më pak se. 702 00:38:02,840 --> 00:38:06,980 703 00:38:06,980 --> 00:38:14,000 >> Pra, në qoftë se ne ishim të kërkoni përmes, atë duhet të duken shumë afër kërkim binar 704 00:38:14,000 --> 00:38:14,910 këtu, apo jo? 705 00:38:14,910 --> 00:38:17,640 Përveç në vend që të kërkoni në gjysmën e array, 706 00:38:17,640 --> 00:38:21,720 ne jemi vetëm duke kërkuar në qoftë majtë anë apo anën e djathtë të pemës. 707 00:38:21,720 --> 00:38:24,850 Pra, ajo merr një pak më të thjeshtë, unë mendoj. 708 00:38:24,850 --> 00:38:29,300 >> Pra, nëse root juaj është NULL, padyshim kjo është vetëm false. 709 00:38:29,300 --> 00:38:33,470 Dhe në qoftë se ajo është atje, padyshim është e vërtetë. 710 00:38:33,470 --> 00:38:35,320 Në qoftë se kjo është më pak se, ne kërkim të majtë. 711 00:38:35,320 --> 00:38:37,070 Në qoftë se kjo është më e madhe se, ne kërko të drejtën. 712 00:38:37,070 --> 00:38:39,890 Është tamam si kërkim binar, vetëm një strukturë të ndryshme të dhënave 713 00:38:39,890 --> 00:38:40,600 që ne jemi duke përdorur. 714 00:38:40,600 --> 00:38:42,790 Në vend të një grup, kjo është vetëm një pemë binare. 715 00:38:42,790 --> 00:38:45,820 716 00:38:45,820 --> 00:38:48,090 >> OK, oxhaqet. 717 00:38:48,090 --> 00:38:51,550 Dhe gjithashtu, duket sikur ne mund të ketë pak kohë. 718 00:38:51,550 --> 00:38:54,460 Nëse ne bëjmë, unë jam i lumtur për të shkuar mbi ndonjë nga këto përsëri. 719 00:38:54,460 --> 00:38:56,856 OK, kështu oxhaqet. 720 00:38:56,856 --> 00:39:02,695 A mbani mend dikush se çfarë stacks-- Çdo karakteristikat e një pirg? 721 00:39:02,695 --> 00:39:05,550 722 00:39:05,550 --> 00:39:10,400 >> OK, kështu që shumica prej nesh, unë mendoj, hani në ngrënie halls-- 723 00:39:10,400 --> 00:39:13,100 sa më shumë që ne nuk mund të dëshironi të. 724 00:39:13,100 --> 00:39:16,900 Por natyrisht, ju mund të mendoni për një pirg fjalë për fjalë vetëm si një pirg e tabaka 725 00:39:16,900 --> 00:39:18,460 apo një pirg të gjërave. 726 00:39:18,460 --> 00:39:21,820 Dhe çfarë është e rëndësishme të kuptojnë është se ajo është 727 00:39:21,820 --> 00:39:26,850 something-- karakteristike që ne e quajmë atë by-- është LIFO. 728 00:39:26,850 --> 00:39:28,450 Does anyone know çfarë që qëndron për? 729 00:39:28,450 --> 00:39:29,070 Mmhmm? 730 00:39:29,070 --> 00:39:30,650 >> AUDIENCA: fundit në, e parë jashtë. 731 00:39:30,650 --> 00:39:32,250 >> Gjuha 1: E drejta, e fundit në, e parë jashtë. 732 00:39:32,250 --> 00:39:36,585 Pra, në qoftë se ne e dimë, në qoftë se ne jemi stacking gjëra up, gjëja më e lehtë për të rrëmbyer off-- 733 00:39:36,585 --> 00:39:39,570 dhe ndoshta e vetmja gjë që mund të rrëmbej off nëse rafte ynë është enough-- madh 734 00:39:39,570 --> 00:39:40,850 është se element lartë. 735 00:39:40,850 --> 00:39:43,460 Pra, çdo gjë që është vënë në last-- si ne shohim këtu, 736 00:39:43,460 --> 00:39:46,370 çdo gjë është shtyrë në shumicën recently-- është 737 00:39:46,370 --> 00:39:51,160 do të jetë i pari gjë që pop jashtë, OK? 738 00:39:51,160 --> 00:39:56,324 >> Pra, ajo që ne kemi këtu është një struct typedef. 739 00:39:56,324 --> 00:39:58,740 Kjo është me të vërtetë vetëm si a përplasje kurs në strukturën e të dhënave, 740 00:39:58,740 --> 00:40:01,650 kështu që nuk ka shumë hedhur në ju djema. 741 00:40:01,650 --> 00:40:02,540 Unë e di. 742 00:40:02,540 --> 00:40:04,970 Pra, edhe një struct. 743 00:40:04,970 --> 00:40:06,740 Yay për strukturat. 744 00:40:06,740 --> 00:40:16,660 >> Dhe në këtë rast, është një akrep në një grup që ka disa kapacitete. 745 00:40:16,660 --> 00:40:20,830 Pra, kjo paraqet pirg tonë këtu, si grup tone aktuale 746 00:40:20,830 --> 00:40:22,520 që e mban elementet tona. 747 00:40:22,520 --> 00:40:24,850 Dhe atëherë këtu kemi disa madhësi. 748 00:40:24,850 --> 00:40:31,170 >> Dhe zakonisht, ju doni të mbani gjurmët e sa e madhe rafte juaj 749 00:40:31,170 --> 00:40:36,180 sepse ajo që do të lejojë që ju të bëni është nëse ju e dini madhësinë, 750 00:40:36,180 --> 00:40:39,170 kjo ju mundëson për të thënë, OK, unë jam në kapacitet? 751 00:40:39,170 --> 00:40:40,570 Mund të shtoj asgjë më shumë? 752 00:40:40,570 --> 00:40:44,650 Dhe gjithashtu ju tregon ku në krye të rafte tuaj 753 00:40:44,650 --> 00:40:48,180 është kështu që ju e dini se çfarë ju në fakt mund të marrë off. 754 00:40:48,180 --> 00:40:51,760 Dhe kjo është në të vërtetë do të të jetë pak më i qartë këtu. 755 00:40:51,760 --> 00:40:57,350 >> Pra, për një shtytje, një gjë, në qoftë se ju qenë ndonjëherë për të zbatuar shtytje, 756 00:40:57,350 --> 00:41:01,330 pasi unë isha vetëm duke thënë, tuaj rafte ka një madhësi të kufizuar, e drejtë? 757 00:41:01,330 --> 00:41:03,990 Array jonë kishte disa kapacitete. 758 00:41:03,990 --> 00:41:04,910 Kjo është një koleksion. 759 00:41:04,910 --> 00:41:08,930 Kjo është një madhësi të caktuar, kështu që ne kemi nevojë për të të sigurt se ne nuk jemi vënë më shumë 760 00:41:08,930 --> 00:41:11,950 në grup tonë se sa ne në fakt kanë hapësirë ​​për të. 761 00:41:11,950 --> 00:41:16,900 >> Pra, kur ju jeni duke krijuar një shtytje funksion, gjëja e parë që bëni është të themi, OK, 762 00:41:16,900 --> 00:41:18,570 nuk kam hapësirë ​​në rafte e mia? 763 00:41:18,570 --> 00:41:23,330 Sepse në qoftë se unë nuk e bëj, sorry, Unë nuk mund të ruajë elementin tuaj. 764 00:41:23,330 --> 00:41:28,980 Në qoftë se unë bëj, atëherë ju doni të ruajtur ai në krye të rafte, e drejtë? 765 00:41:28,980 --> 00:41:31,325 >> Dhe kjo është arsyeja pse ne kemi për të mbajtur gjurmët e madhësisë tonë. 766 00:41:31,325 --> 00:41:35,290 Nëse ne nuk i mbajnë gjurmët e madhësisë tonë, ne nuk e dimë se ku për të vënë atë. 767 00:41:35,290 --> 00:41:39,035 Ne nuk e dimë se sa shumë gjëra janë në grup tonë tashmë. 768 00:41:39,035 --> 00:41:41,410 Ashtu si padyshim ka mënyra se ndoshta ju mund të bëni atë. 769 00:41:41,410 --> 00:41:44,610 Ju mund të nisja gjithçka për të null dhe pastaj kontrolloni për NULL fundit, 770 00:41:44,610 --> 00:41:47,950 por një gjë shumë më e lehtë është vetëm për të thënë, OK, mbajnë gjurmët e madhësisë. 771 00:41:47,950 --> 00:41:51,840 Ashtu si unë e di unë kam katër elemente në grup tim, kështu që gjëja e ardhshme 772 00:41:51,840 --> 00:41:55,930 që ne kemi vënë në, ne jemi shkuar për të ruajtur në indeksin 4. 773 00:41:55,930 --> 00:42:00,940 Dhe pastaj, sigurisht, kjo do të thotë se ju keni shtyrë me sukses diçka 774 00:42:00,940 --> 00:42:03,320 mbi rafte tuaj, ju duan për të rritur madhësinë 775 00:42:03,320 --> 00:42:08,880 në mënyrë që ju e dini se ku jeni kaq që ju mund të shtyjë më shumë gjëra në. 776 00:42:08,880 --> 00:42:12,730 >> Pra, në qoftë se ne jemi duke u përpjekur për të pop diçka off rafte, 777 00:42:12,730 --> 00:42:16,072 çfarë mund të jetë gjëja e parë që ne duam të kontrolloni për të? 778 00:42:16,072 --> 00:42:18,030 Ju jeni duke u përpjekur për të marrë diçka off rafte tuaj. 779 00:42:18,030 --> 00:42:21,710 780 00:42:21,710 --> 00:42:24,781 Jeni te sigurte ka diçka në rafte tuaj? 781 00:42:24,781 --> 00:42:25,280 Jo. 782 00:42:25,280 --> 00:42:26,894 Pra, çfarë mund të duam të shikoni? 783 00:42:26,894 --> 00:42:27,810 >> Audienca: [padëgjueshme]. 784 00:42:27,810 --> 00:42:29,880 Gjuha 1: Kontrollo për madhësinë? 785 00:42:29,880 --> 00:42:31,840 Size. 786 00:42:31,840 --> 00:42:38,520 Pra, ne duam të kontrolloni për të parë nëse Madhësia e jonë është më e madhe se 0, OK? 787 00:42:38,520 --> 00:42:44,970 Dhe në qoftë se ajo është, atëherë ne duam që të ulet Madhësia tonë me 0 dhe të kthehet kjo. 788 00:42:44,970 --> 00:42:45,840 Pse? 789 00:42:45,840 --> 00:42:49,950 >> Në rastin e parë ne ishim shtyrë, ne e shtyu atë 790 00:42:49,950 --> 00:42:52,460 mbi përmasat dhe madhësia pastaj përditësuar. 791 00:42:52,460 --> 00:42:57,850 Në këtë rast, ne jemi decrementing madhësinë dhe pastaj të marrë atë jashtë, plucking atë 792 00:42:57,850 --> 00:42:58,952 nga array tonë. 793 00:42:58,952 --> 00:42:59,826 Pse mund të bëjmë atë? 794 00:42:59,826 --> 00:43:04,800 795 00:43:04,800 --> 00:43:11,811 Pra, nëse unë kam një gjë në rafte e mia, çfarë do të jetë madhësia e mia në atë moment? 796 00:43:11,811 --> 00:43:13,140 1. 797 00:43:13,140 --> 00:43:15,180 >> Dhe ku është element 1 ruajtur? 798 00:43:15,180 --> 00:43:17,621 Në çfarë Indeksi? 799 00:43:17,621 --> 00:43:18,120 AUDIENCA: 0. 800 00:43:18,120 --> 00:43:19,060 Gjuha 1: 0. 801 00:43:19,060 --> 00:43:22,800 Pra, në këtë rast, ne gjithmonë duhet të bëni sure-- 802 00:43:22,800 --> 00:43:27,630 në vend të kthimit Madhësia minus 1, sepse ne 803 00:43:27,630 --> 00:43:31,730 e di se element ynë është do të ruhet në 1 më pak 804 00:43:31,730 --> 00:43:34,705 pavarësisht nga madhësia ynë është, kjo vetëm kujdeset për atë. 805 00:43:34,705 --> 00:43:36,080 Kjo është një mënyrë pak më elegante. 806 00:43:36,080 --> 00:43:41,220 Dhe ne vetëm pakësim tonë Madhësia dhe pastaj të kthehen madhësinë. 807 00:43:41,220 --> 00:43:42,330 Mmhmm? 808 00:43:42,330 --> 00:43:45,300 >> AUDIENCA: Unë mendoj vetëm në përgjithësi, pse do të këtë strukturë e të dhënave 809 00:43:45,300 --> 00:43:47,800 të jenë të dobishme? 810 00:43:47,800 --> 00:43:50,660 >> Gjuha 1: Kjo varet nga konteksti tuaj. 811 00:43:50,660 --> 00:43:57,420 Pra, për disa i teorisë, në qoftë se ju jeni duke punuar with-- OK, 812 00:43:57,420 --> 00:44:02,750 më lejoni të shohim nëse ka një dobishme që është e dobishme për më shumë se jashtë 813 00:44:02,750 --> 00:44:05,420 e CS. 814 00:44:05,420 --> 00:44:15,780 Me oxhaqet, në çdo kohë që ju nevojitet për të mbajtur gjurmët e diçkaje që 815 00:44:15,780 --> 00:44:20,456 është shtuar kohët e fundit është kur ju jeni do të dëshironi të përdorni një pirg. 816 00:44:20,456 --> 00:44:24,770 >> Dhe unë nuk mund të mendoj për një të mire shembull që tani. 817 00:44:24,770 --> 00:44:29,955 Por sa herë më të fundit gjë është më e rëndësishme për ju, 818 00:44:29,955 --> 00:44:31,705 kjo është kur një pirg do të jenë të dobishme. 819 00:44:31,705 --> 00:44:35,797 820 00:44:35,797 --> 00:44:39,330 Unë jam duke u përpjekur për të menduar nëse ka një të mirë për këtë. 821 00:44:39,330 --> 00:44:43,720 Nëse unë mendoj për një shembull të mirë në botën tjetër 20 minuta, unë patjetër do të ju them. 822 00:44:43,720 --> 00:44:49,455 >> Por në përgjithësi, nëse ka ndonjë gjë, si kam thënë më, ku më të fundit 823 00:44:49,455 --> 00:44:52,470 është më e rëndësishme, që është ku një pirg vjen në lojë. 824 00:44:52,470 --> 00:44:58,860 Ndërsa radhët e gjata janë lloj i kundërt. 825 00:44:58,860 --> 00:44:59,870 Dhe të gjithë qentë e pak. 826 00:44:59,870 --> 00:45:00,890 A nuk është kjo e madhe, e drejtë? 827 00:45:00,890 --> 00:45:03,299 Ndjehem si unë duhet vetëm kanë një video lepur 828 00:45:03,299 --> 00:45:05,090 të drejtë në mes të Seksioni për ju djema 829 00:45:05,090 --> 00:45:08,870 sepse kjo është një seksion intensive. 830 00:45:08,870 --> 00:45:10,480 >> Pra, a radhë. 831 00:45:10,480 --> 00:45:12,710 Në thelb një radhë është si një linjë. 832 00:45:12,710 --> 00:45:15,780 Ju djema Unë jam i sigurt përdorimi i kësaj të përditshme, ashtu si në sallat tona ngrënie. 833 00:45:15,780 --> 00:45:18,160 Pra, ne duhet të shkojnë në dhe për të marrë tabaka tona, unë jam 834 00:45:18,160 --> 00:45:21,260 që ju duhet të presin në linjë të shpullë ose të merrni ushqimin tuaj. 835 00:45:21,260 --> 00:45:24,650 >> Pra, diferenca këtu është se kjo është FIFO. 836 00:45:24,650 --> 00:45:30,090 Pra, nëse LIFO i fundit në, e parë out, FIFO është i pari në, jashtë e parë. 837 00:45:30,090 --> 00:45:33,400 Pra, kjo është ajo ku çdo gjë që ju vendosni më së pari është e juaj më e rëndësishme. 838 00:45:33,400 --> 00:45:35,540 Pra, nëse ju jeni duke pritur në një line-- mund t'ju 839 00:45:35,540 --> 00:45:39,130 imagjinoni nëse ju shkoi për të shkoni merrni iPhone i ri 840 00:45:39,130 --> 00:45:42,800 dhe kjo ishte një pirg ku personi i fundit në linjë mori atë për herë të parë, 841 00:45:42,800 --> 00:45:44,160 njerëzit do të vrasin njëri-tjetrin. 842 00:45:44,160 --> 00:45:49,800 >> Pra FIFO, ne jemi të gjithë shumë të njohur me të në botën e vërtetë këtu, 843 00:45:49,800 --> 00:45:54,930 dhe gjithçka ka të bëjë me të vërtetë lloj rikrijimin këtë linjë të tërë 844 00:45:54,930 --> 00:45:56,900 dhe queuing strukturën. 845 00:45:56,900 --> 00:46:02,390 Pra, ndërsa me rafte, ne kemi shtytje dhe pop. 846 00:46:02,390 --> 00:46:06,440 Me radhë, ne kemi enqueue dhe dequeue. 847 00:46:06,440 --> 00:46:10,910 Pra, do të thotë në thelb enqueue vënë atë mbi shpinë, 848 00:46:10,910 --> 00:46:13,680 dhe mjetet dequeue marrë off nga e para. 849 00:46:13,680 --> 00:46:18,680 Pra, struktura e të dhënave jonë është një pak më e komplikuar. 850 00:46:18,680 --> 00:46:21,060 Ne kemi një gjë të dytë për të mbajtur gjurmët e. 851 00:46:21,060 --> 00:46:25,950 >> Pra, pa kokë, kjo është pikërisht një pirg, e drejtë? 852 00:46:25,950 --> 00:46:27,900 Kjo është e njëjta strukturë si një pirg. 853 00:46:27,900 --> 00:46:32,480 E vetmja gjë që ndryshon tani është që ne kanë këtë kokë, të cilën çfarë mendoni 854 00:46:32,480 --> 00:46:34,272 do të mbajnë gjurmët e? 855 00:46:34,272 --> 00:46:35,510 >> AUDIENCA: I pari. 856 00:46:35,510 --> 00:46:38,685 >> Gjuha 1: E drejta, Gjëja e parë që ne kemi vënë në. 857 00:46:38,685 --> 00:46:41,130 Kreu i radhë tonë. 858 00:46:41,130 --> 00:46:42,240 Kushdo që është i pari në linjë. 859 00:46:42,240 --> 00:46:45,300 860 00:46:45,300 --> 00:46:49,420 Në rregull, kështu që nëse bëjmë enqueue. 861 00:46:49,420 --> 00:46:52,720 862 00:46:52,720 --> 00:46:55,920 Përsëri, me ndonjë nga këto struktura e të dhënave, 863 00:46:55,920 --> 00:46:59,760 pasi ne jemi që kanë të bëjnë me një grup, ne kemi nevojë për të kontrolluar nëse kemi hapësirë. 864 00:46:59,760 --> 00:47:03,290 >> Kjo është lloj i si me thënë ju djema, nëse ju hapni një skedar, 865 00:47:03,290 --> 00:47:04,760 ju duhet të kontrolloni për të null. 866 00:47:04,760 --> 00:47:08,330 Me ndonjë prej këtyre kollonat dhe radhët e gjata, ju duhet 867 00:47:08,330 --> 00:47:13,420 për të parë nëse ka hapësirë ​​për shkak se ne jemi që kanë të bëjnë me një grup madhësi të caktuar, 868 00:47:13,420 --> 00:47:16,030 si ne e shohim here-- 0, 1 të gjitha deri në 5. 869 00:47:16,030 --> 00:47:20,690 Pra, çfarë të bëjmë në këtë rast është të kontrolloni për të parë nëse ne ende kemi hapësirë. 870 00:47:20,690 --> 00:47:23,110 Është madhësia tonë më pak se kapaciteti? 871 00:47:23,110 --> 00:47:28,480 >> Nëse është kështu, ne kemi nevojë për të ruajtur atë në bisht dhe ne update madhësinë tonë. 872 00:47:28,480 --> 00:47:30,250 Pra, çfarë mund bisht të jetë në këtë rast? 873 00:47:30,250 --> 00:47:32,360 Kjo nuk është shkruar shprehimisht. 874 00:47:32,360 --> 00:47:33,380 Si do të ruajtur atë? 875 00:47:33,380 --> 00:47:34,928 Çfarë do të jetë bisht? 876 00:47:34,928 --> 00:47:38,600 877 00:47:38,600 --> 00:47:40,190 >> Pra, le të ecin nëpër këtë shembull. 878 00:47:40,190 --> 00:47:44,590 Pra, kjo është një grup i madhësisë 6, e drejtë? 879 00:47:44,590 --> 00:47:49,220 Dhe ne kemi të drejtë tani, madhësia tonë është 5. 880 00:47:49,220 --> 00:47:55,240 Dhe kur ne kemi vënë atë në, ajo do për të shkuar në indeksin e pestë, e drejtë? 881 00:47:55,240 --> 00:47:57,030 Pra, dyqan në bisht. 882 00:47:57,030 --> 00:48:05,600 >> Një tjetër mënyrë për të shkruar bisht vetëm do të të jetë array tonë në indeksin e madhësisë, e drejtë? 883 00:48:05,600 --> 00:48:07,560 Kjo është madhësia 5. 884 00:48:07,560 --> 00:48:11,490 Tjetër gjë do të shkojë në 5. 885 00:48:11,490 --> 00:48:12,296 Ftohtë? 886 00:48:12,296 --> 00:48:13,290 OK. 887 00:48:13,290 --> 00:48:16,350 Ajo merr pak më e komplikuar kur ne fillojmë messing me kokë. 888 00:48:16,350 --> 00:48:17,060 Po? 889 00:48:17,060 --> 00:48:20,090 >> AUDIENCA: A do të thotë kjo se ne do të kishte deklaruar një grup që 890 00:48:20,090 --> 00:48:23,880 ishte pesë elemente të gjatë dhe të atëherë ne jemi duke shtuar mbi atë? 891 00:48:23,880 --> 00:48:24,730 >> Gjuha 1: Nr 892 00:48:24,730 --> 00:48:27,560 Pra, në këtë rast, ky është një pirg. 893 00:48:27,560 --> 00:48:31,760 Kjo do të shpallet si një grup të madhësisë 6. 894 00:48:31,760 --> 00:48:37,120 Dhe në këtë rast, ne të ketë vetëm një të majtë hapësirë. 895 00:48:37,120 --> 00:48:42,720 >> OK, kështu që një gjë është në këtë rast, në qoftë se kreu ynë është në 0, 896 00:48:42,720 --> 00:48:45,270 atëherë ne vetëm mund të shtoni atë në madhësi. 897 00:48:45,270 --> 00:48:51,020 Por ajo merr pak e komplikuar sepse në të vërtetë, ata 898 00:48:51,020 --> 00:48:52,840 nuk kanë një rrëshqitje për këtë, kështu që unë jam duke shkuar 899 00:48:52,840 --> 00:48:56,670 për të nxjerrë një, sepse ajo nuk është fare e thjeshtë një herë ju 900 00:48:56,670 --> 00:48:59,230 filloni duke u shpëtoj prej gjërave. 901 00:48:59,230 --> 00:49:03,920 Pra, ndërsa me një pirg ju vetëm ndonjëherë keni 902 00:49:03,920 --> 00:49:08,920 për t'u shqetësuar në lidhje me atë që madhësia është kur ju jeni duke shtuar diçka në, 903 00:49:08,920 --> 00:49:15,710 me një radhë ju gjithashtu duhet të bëni i sigurt se kreu i juaj është në rregull, 904 00:49:15,710 --> 00:49:20,760 sepse një gjë e ftohtë në lidhje me rradhë është se në qoftë se ju nuk jeni në kapacitet, 905 00:49:20,760 --> 00:49:23,040 ju mund të bëjë në fakt atë të përfundojë rreth. 906 00:49:23,040 --> 00:49:28,810 >> OK, kështu që një thing-- oh, kjo është shkumës tmerrshme. 907 00:49:28,810 --> 00:49:31,815 Një gjë për t'u marrë parasysh është rasti. 908 00:49:31,815 --> 00:49:35,514 909 00:49:35,514 --> 00:49:37,140 Ne do të bëjmë vetëm pesë. 910 00:49:37,140 --> 00:49:41,810 OK, kështu që ne jemi duke shkuar për thonë se kreu është këtu. 911 00:49:41,810 --> 00:49:46,140 Kjo eshte 0, 1, 2, 3, 4. 912 00:49:46,140 --> 00:49:54,210 >> Kreu është atje, dhe ju lutem keni gjëra në to. 913 00:49:54,210 --> 00:49:58,340 Dhe ne duam që të shtoni diçka në, e drejtë? 914 00:49:58,340 --> 00:50:01,170 Pra, gjë që ne kemi nevojë për të e di se koka është gjithmonë 915 00:50:01,170 --> 00:50:05,620 do të lëvizin në këtë mënyrë dhe pastaj loop kthehet rreth, OK? 916 00:50:05,620 --> 00:50:10,190 >> Pra, kjo radhë ka hapësirë, të drejtë? 917 00:50:10,190 --> 00:50:13,950 Ajo ka hapësirë ​​në fillim, lloj të kundërtën e kësaj. 918 00:50:13,950 --> 00:50:17,920 Pra, ajo që ne duhet të bëjmë është që ne nevojë për të llogaritur bishtin. 919 00:50:17,920 --> 00:50:20,530 Nëse ju e dini se juaj Kreu nuk ka lëvizur, bisht 920 00:50:20,530 --> 00:50:24,630 është vetëm koleksion juaj në indeksi i madhësisë. 921 00:50:24,630 --> 00:50:30,000 >> Por në realitet, në qoftë se ju jeni duke përdorur një radhë, kreu i juaj është ndoshta duke u përditësuar. 922 00:50:30,000 --> 00:50:33,890 Pra, çfarë ju duhet të bëni është të në fakt llogaritur bishtin. 923 00:50:33,890 --> 00:50:39,990 Pra, ajo që ne bëjmë është kjo formulë këtu, të cilën unë jam duke shkuar për të ju lejojnë 924 00:50:39,990 --> 00:50:42,680 djema mendoni për, dhe atëherë ne do të flasim për këtë. 925 00:50:42,680 --> 00:50:49,567 926 00:50:49,567 --> 00:50:50,400 Pra, kjo është kapaciteti. 927 00:50:50,400 --> 00:50:55,890 928 00:50:55,890 --> 00:50:59,660 >> Pra, kjo do të vërtetë ju jap një mënyrë për të bërë atë. 929 00:50:59,660 --> 00:51:03,205 930 00:51:03,205 --> 00:51:04,330 Sepse në këtë rast, çfarë? 931 00:51:04,330 --> 00:51:09,205 Kreu ynë është në 1, madhësia tonë është 4. 932 00:51:09,205 --> 00:51:11,760 933 00:51:11,760 --> 00:51:18,490 Nëse ne mod se me 5, ne kemi marrë 0, i cili është ku ne duhet të input atë. 934 00:51:18,490 --> 00:51:23,320 935 00:51:23,320 --> 00:51:26,080 >> Kështu, pra, në rastin e ardhshëm, në qoftë se ne do të bëjmë këtë, 936 00:51:26,080 --> 00:51:33,390 themi, OK, le të dequeue diçka. 937 00:51:33,390 --> 00:51:34,390 Ne dequeue këtë. 938 00:51:34,390 --> 00:51:37,740 Ne kemi marrë këtë element, e drejtë? 939 00:51:37,740 --> 00:51:47,930 >> Dhe tani koka jonë është treguar këtu, dhe ne duam që të shtoni në një tjetër gjë. 940 00:51:47,930 --> 00:51:52,470 Kjo është në thelb e pasme të linjës sonë, e drejtë? 941 00:51:52,470 --> 00:51:55,450 Rradhë të mund të përfundojë rreth vargut. 942 00:51:55,450 --> 00:51:57,310 Kjo është një nga dallimet kryesore. 943 00:51:57,310 --> 00:51:58,780 Oxhaqet, ju nuk mund ta bëjë këtë. 944 00:51:58,780 --> 00:52:01,140 >> Me rradhë, ju mund të sepse gjithçka që ka rëndësi 945 00:52:01,140 --> 00:52:03,940 është se ju e dini se çfarë u shtua kohët e fundit. 946 00:52:03,940 --> 00:52:10,650 Që çdo gjë është duke shkuar për të shtuar në këtë drejtim nga e majta, në këtë rast, 947 00:52:10,650 --> 00:52:16,480 dhe pastaj të përfundojë rreth, ju mund të vazhdojnë të vënë në elemente të reja 948 00:52:16,480 --> 00:52:18,830 në pjesën e përparme të vektorit sepse kjo nuk është e vërtetë 949 00:52:18,830 --> 00:52:20,640 front i array më. 950 00:52:20,640 --> 00:52:26,320 Ju mund të mendoni për fillimin e array si kur koka juaj të vërtetë është. 951 00:52:26,320 --> 00:52:29,710 >> Pra, kjo formulë është se si ju llogaritni bisht tuaj. 952 00:52:29,710 --> 00:52:32,780 953 00:52:32,780 --> 00:52:35,610 A kjo ka kuptim? 954 00:52:35,610 --> 00:52:36,110 OK. 955 00:52:36,110 --> 00:52:39,400 956 00:52:39,400 --> 00:52:44,040 OK, dequeue, dhe pastaj ju djema keni 10 minuta 957 00:52:44,040 --> 00:52:48,840 të më pyesni ndonjë pyetje qartësimin ju doni, sepse unë e di se është i çmendur. 958 00:52:48,840 --> 00:52:51,980 >> Të gjithë të drejtë, kështu që në të njëjtën way-- Unë nuk e di nëse ju djema vënë re, 959 00:52:51,980 --> 00:52:53,450 por CS është mbi të gjitha modelet. 960 00:52:53,450 --> 00:52:57,370 Gjërat janë pretty much njëjtë, vetëm me tweaks të vogla. 961 00:52:57,370 --> 00:52:58,950 Kështu që e njëjta gjë këtu. 962 00:52:58,950 --> 00:53:04,040 Ne duhet të kontrolloni për të parë nëse ne fakt kanë diçka në radhë tonë, e drejtë? 963 00:53:04,040 --> 00:53:05,960 Thuaj, OK, është madhësia ynë më i madh se 0? 964 00:53:05,960 --> 00:53:06,730 Ftohtë. 965 00:53:06,730 --> 00:53:10,690 >> Nëse ne bëjmë, atëherë ne të lëvizë kokën tonë, e cila është ajo që unë vetëm demonstruar këtu. 966 00:53:10,690 --> 00:53:13,870 Ne update kokën tonë të jetë një më shumë. 967 00:53:13,870 --> 00:53:18,390 Dhe pastaj ne pakësim tonë Madhësia dhe kthimin elementin. 968 00:53:18,390 --> 00:53:21,000 969 00:53:21,000 --> 00:53:26,250 >> Nuk është shumë më konkrete Kodi për study.cs50.net, 970 00:53:26,250 --> 00:53:29,440 dhe I highly recommend shkuar nëpërmjet saj në qoftë se ju keni kohë, 971 00:53:29,440 --> 00:53:30,980 edhe nëse kjo është vetëm një pseudo-kod. 972 00:53:30,980 --> 00:53:35,980 Dhe në qoftë se ju djema doni të flisni me se me mua një mbi një, ju lutem më lejoni 973 00:53:35,980 --> 00:53:37,500 e di. 974 00:53:37,500 --> 00:53:38,770 Unë do të jenë të lumtur për të. 975 00:53:38,770 --> 00:53:42,720 Strukturat e të dhënave, nëse ju merrni CS 124, ju do të 976 00:53:42,720 --> 00:53:47,830 e di se strukturat e të dhënave të merrni shumë fun dhe ky është vetëm fillimi. 977 00:53:47,830 --> 00:53:50,350 >> Kështu që unë e di se është e vështirë. 978 00:53:50,350 --> 00:53:51,300 Kjo është OK. 979 00:53:51,300 --> 00:53:52,410 Ne luftojnë. 980 00:53:52,410 --> 00:53:53,630 Unë ende nuk. 981 00:53:53,630 --> 00:53:56,660 Pra, mos u shqetësoni shumë për këtë. 982 00:53:56,660 --> 00:54:02,390 >> Por kjo është në thelb tuaj së përplasje kurs në strukturat e të dhënave. 983 00:54:02,390 --> 00:54:03,400 Unë e di se është një shumë. 984 00:54:03,400 --> 00:54:06,860 A ka ndonjë gjë që ne do të donte për të shkuar përsëri? 985 00:54:06,860 --> 00:54:09,400 Çdo gjë që ne duam të flasim me? 986 00:54:09,400 --> 00:54:10,060 Po? 987 00:54:10,060 --> 00:54:16,525 >> AUDIENCA: Për këtë shembull, në mënyrë bisht i ri është në 0 mbi atë? 988 00:54:16,525 --> 00:54:17,150 Gjuha 1: Po. 989 00:54:17,150 --> 00:54:18,230 AUDIENCA: OK. 990 00:54:18,230 --> 00:54:24,220 Pra, pastaj duke shkuar nëpër, ju do të keni 1 plus 4 or-- 991 00:54:24,220 --> 00:54:27,671 >> Gjuha 1: Pra, ju jeni duke thënë, kur ne duam të shkojnë bëni këtë përsëri? 992 00:54:27,671 --> 00:54:28,296 AUDIENCA: Po. 993 00:54:28,296 --> 00:54:38,290 Pra, nëse ju jeni duke parafytyruar out-- ku janë ju llogaritur bishtin nga në atë? 994 00:54:38,290 --> 00:54:44,260 >> Gjuha 1: Pra bisht ishte in-- I ndryshuar këtë. 995 00:54:44,260 --> 00:54:52,010 Pra, në këtë shembull këtu, kjo ishte array ne jemi duke kërkuar në, OK? 996 00:54:52,010 --> 00:54:54,670 Pra, ne kemi gjëra në 1, 2, 3, dhe 4. 997 00:54:54,670 --> 00:55:05,850 Pra, ne kemi kokën tonë është e barabartë me 1 në kjo pikë, dhe madhësia tonë është e barabartë me 4 998 00:55:05,850 --> 00:55:07,050 në këtë pikë, e drejtë? 999 00:55:07,050 --> 00:55:08,960 >> Ju të gjithë janë dakord se është e rastit? 1000 00:55:08,960 --> 00:55:14,620 Pra, ne bëjmë kreu plus size, e cila na jep 5, dhe pastaj ne mod me 5. 1001 00:55:14,620 --> 00:55:20,690 Ne kemi marrë 0, e cila na tregon se 0 është ku është bisht tonë, ku ne kemi hapësirë. 1002 00:55:20,690 --> 00:55:22,010 >> AUDIENCA: Çfarë është një kapak? 1003 00:55:22,010 --> 00:55:23,520 >> Gjuha 1: Kapaciteti. 1004 00:55:23,520 --> 00:55:24,020 Më vjen keq. 1005 00:55:24,020 --> 00:55:29,640 Pra, kjo është madhësia e array tuaj. 1006 00:55:29,640 --> 00:55:35,210 1007 00:55:35,210 --> 00:55:36,047 Po? 1008 00:55:36,047 --> 00:55:39,210 >> Audienca: [padëgjueshme] më parë kthehemi elementin? 1009 00:55:39,210 --> 00:55:46,270 >> Gjuha 1: Pra ne shkojmë kreu ose kthimin e momentit? 1010 00:55:46,270 --> 00:55:52,680 Pra, nëse ne shkojmë një, pakësim madhësinë? 1011 00:55:52,680 --> 00:55:54,150 Të mbajë në. 1012 00:55:54,150 --> 00:55:55,770 Unë patjetër harruar tjetër. 1013 00:55:55,770 --> 00:56:00,646 1014 00:56:00,646 --> 00:56:01,990 Never mind. 1015 00:56:01,990 --> 00:56:04,980 Nuk është një tjetër formulë. 1016 00:56:04,980 --> 00:56:09,980 Yeah, ju do të duan të kthehen kokë dhe pastaj të lëvizin atë përsëri. 1017 00:56:09,980 --> 00:56:13,270 >> AUDIENCA: OK, sepse në këtë pika, kreu ishte në 0, 1018 00:56:13,270 --> 00:56:18,452 dhe pastaj ju doni të ktheheni Indeksi 0 dhe pastaj të bëjë kokë 1? 1019 00:56:18,452 --> 00:56:19,870 >> Gjuha 1: E drejta. 1020 00:56:19,870 --> 00:56:22,820 Unë mendoj se ka një tjetër lloj formula e si kjo. 1021 00:56:22,820 --> 00:56:26,970 Unë nuk e kanë atë në krye kokën time si Unë nuk dua të ju jap një të gabuar. 1022 00:56:26,970 --> 00:56:35,470 Por unë mendoj se është krejtësisht e vlefshme për të themi, OK, ruajtur këtë element-- çfarëdo 1023 00:56:35,470 --> 00:56:40,759 element kreu i is-- pakësim tuaj Madhësia, lëvizin kokën tuaj mbi, dhe kthimi 1024 00:56:40,759 --> 00:56:41,800 çfarëdo që është element. 1025 00:56:41,800 --> 00:56:44,760 Kjo është krejtësisht e vlefshme. 1026 00:56:44,760 --> 00:56:45,260 OK. 1027 00:56:45,260 --> 00:56:48,360 1028 00:56:48,360 --> 00:56:53,560 Unë ndjehem si kjo nuk është e si most-- ju nuk jeni 1029 00:56:53,560 --> 00:56:55,740 do të largohet nga këtu si, po, unë e di përpiqet. 1030 00:56:55,740 --> 00:56:56,880 I mori të gjitha. 1031 00:56:56,880 --> 00:56:57,670 Kjo është OK. 1032 00:56:57,670 --> 00:57:00,200 I premtoj. 1033 00:57:00,200 --> 00:57:05,240 Por strukturat e të dhënave janë diçka që ajo merr shumë kohë për të marrë të përdoret për të. 1034 00:57:05,240 --> 00:57:10,010 Ndoshta një nga më të vështira gjëra, unë mendoj se, në këtë kurs. 1035 00:57:10,010 --> 00:57:15,330 >> Pra, kjo definitivisht merr përsëritje dhe kërkim at-- I 1036 00:57:15,330 --> 00:57:20,050 me të vërtetë nuk e di se listat e lidhura deri sa unë e bëri shumë më shumë me ta, 1037 00:57:20,050 --> 00:57:22,550 në të njëjtën mënyrë që unë nuk e kam me të vërtetë kuptojnë pointers 1038 00:57:22,550 --> 00:57:27,040 deri sa unë kam pasur për të mësuar atë për dy vjet dhe të bëjë psets e mia me të. 1039 00:57:27,040 --> 00:57:28,990 Ajo merr një shumë të përsëritjes dhe kohë. 1040 00:57:28,990 --> 00:57:32,600 Dhe në fund, kjo lloj do të klikoni. 1041 00:57:32,600 --> 00:57:36,320 >> Por, në ndërkohë, në qoftë se ju keni lloj e të kuptuarit të nivelit të lartë të asaj 1042 00:57:36,320 --> 00:57:39,321 këto bëjnë, pro tyre dhe cons-- cila është ajo 1043 00:57:39,321 --> 00:57:41,820 ne me të vërtetë kanë tendencë për të theksuar, sidomos në kurs intro. 1044 00:57:41,820 --> 00:57:45,511 Si, pse do të përdorim a provoni mbi një grup? 1045 00:57:45,511 --> 00:57:48,010 Ashtu si, çfarë janë pozitive dhe negative të secilës prej atyre? 1046 00:57:48,010 --> 00:57:51,610 >> Dhe të kuptuarit e tregtisë të humbura midis secili prej ketyre strukturave 1047 00:57:51,610 --> 00:57:54,910 është ajo që është shumë më e rëndësishme tani. 1048 00:57:54,910 --> 00:57:58,140 Nuk mund të jetë një i çmendur pyetje ose dy që është 1049 00:57:58,140 --> 00:58:03,710 do të ju pyes për të zbatuar shtytje ose zbatuar pop apo enqueue dhe dequeue. 1050 00:58:03,710 --> 00:58:07,340 Por, për pjesën më të madhe, atë që ka Kuptimi më i lartë niveli dhe më shumë 1051 00:58:07,340 --> 00:58:09,710 e një rrokje intuitive është më e rëndësishme se në të vërtetë 1052 00:58:09,710 --> 00:58:11,250 qenë në gjendje për ta zbatuar atë. 1053 00:58:11,250 --> 00:58:14,880 >> Ajo do të jetë me të vërtetë awesome nëse të gjithë ju mund të shkojë jashtë dhe të shkojë të zbatojë një përpjekje, 1054 00:58:14,880 --> 00:58:19,720 por ne e kuptojmë se kjo nuk është domosdoshmërisht gjëja më e arsyeshme të drejtë tani. 1055 00:58:19,720 --> 00:58:23,370 Por ju mund të në pset tuaj, në qoftë se ju dëshironi për të, dhe pastaj ju do të merrni praktikë, 1056 00:58:23,370 --> 00:58:27,200 dhe pastaj ndoshta ju do të të vërtetë e kuptojnë atë. 1057 00:58:27,200 --> 00:58:27,940 Po? 1058 00:58:27,940 --> 00:58:30,440 >> AUDIENCA: OK, kështu që ato janë ne do të thotë për të përdorur në pset? 1059 00:58:30,440 --> 00:58:31,916 A kam nevojë për të përdorur një prej tyre? 1060 00:58:31,916 --> 00:58:32,540 Gjuha 1: Po. 1061 00:58:32,540 --> 00:58:34,199 Pra, ju keni zgjedhjen tuaj. 1062 00:58:34,199 --> 00:58:36,740 I guess në këtë rast, ne mund të flasim për pset pak 1063 00:58:36,740 --> 00:58:40,480 sepse unë u zhvillua nëpër këto. 1064 00:58:40,480 --> 00:58:47,779 Pra, në pset tuaj, ju keni tuaj Zgjedhja e përpjekjeve apo tabelave hash. 1065 00:58:47,779 --> 00:58:49,570 Disa njerëz do të përpiqet dhe të përdorin filtra Bloom, 1066 00:58:49,570 --> 00:58:51,840 por ata që teknikisht nuk janë të sakta. 1067 00:58:51,840 --> 00:58:55,804 Për shkak të natyrës së tyre probabilistic, ata japin false positives ndonjëherë. 1068 00:58:55,804 --> 00:58:57,095 Ata janë vështrim të ftohtë në, edhe pse. 1069 00:58:57,095 --> 00:58:59,030 Highly recomend kërkim të tyre të paktën. 1070 00:58:59,030 --> 00:59:03,260 Por ju keni zgjedhjen tuaj në mes të një tavolinë hash dhe një provoni. 1071 00:59:03,260 --> 00:59:06,660 Dhe kjo do të jetë aty ku ju ngarkesës në fjalorin tuaj. 1072 00:59:06,660 --> 00:59:09,230 >> Dhe ju do të duhet të zgjidhni funksion tuaj hash, 1073 00:59:09,230 --> 00:59:13,420 ju do të duhet të zgjidhni se sa kova që ju keni, dhe kjo do të ndryshojnë. 1074 00:59:13,420 --> 00:59:17,440 Ashtu si në qoftë se ju keni më shumë kova, ndoshta ai do të kandidojë më të shpejtë. 1075 00:59:17,440 --> 00:59:22,790 Por ndoshta ju jeni të humbur një shumë hapësirë ​​në këtë mënyrë, edhe pse. 1076 00:59:22,790 --> 00:59:26,320 Ju duhet të kuptoj atë. 1077 00:59:26,320 --> 00:59:27,140 Mmhmm? 1078 00:59:27,140 --> 00:59:29,875 >> AUDIENCA: Ju thatë më parë se ne mund të përdorni funksione të tjera hash, 1079 00:59:29,875 --> 00:59:31,750 se ne nuk duhet të të krijojë një funksion hash? 1080 00:59:31,750 --> 00:59:32,666 >> Gjuha 1: Po, e drejtë. 1081 00:59:32,666 --> 00:59:38,150 Kështu që fjalë për fjalë për funksionin tuaj të hash, si google "Funksioni hash" 1082 00:59:38,150 --> 00:59:40,770 dhe të kërkoni për disa të ftohtë. 1083 00:59:40,770 --> 00:59:43,250 Ju nuk pritet të ndërtuar funksionet e veta tuaj hash. 1084 00:59:43,250 --> 00:59:46,100 Njerëzit shpenzojnë tyre Tezat mbi këto gjëra. 1085 00:59:46,100 --> 00:59:50,250 >> Pra, mos u bëni merak për ndërtimin tuaj. 1086 00:59:50,250 --> 00:59:53,350 Gjeni një online për të filluar me. 1087 00:59:53,350 --> 00:59:56,120 Disa prej tyre ju duhet të manipuluar pak 1088 00:59:56,120 --> 00:59:59,430 për të bërë lloje të siguruar kthim ndeshje deri dhe gjësend, kështu që në fillim, 1089 00:59:59,430 --> 01:00:02,420 Unë do të rekomandojë duke përdorur diçka të vërtetë e lehtë që ndoshta vetëm 1090 01:00:02,420 --> 01:00:04,680 hashes në letrën e parë. 1091 01:00:04,680 --> 01:00:08,760 Dhe pastaj një herë ju keni atë pune, përfshirë një funksion frigorifer hash. 1092 01:00:08,760 --> 01:00:09,260 Mmhmm? 1093 01:00:09,260 --> 01:00:13,020 >> AUDIENCA: A do të përpiqet të jetë ose efikas, por vetëm e vështirë për të, like-- 1094 01:00:13,020 --> 01:00:15,880 >> Gjuha 1: Pra a try, unë mendoj, është intuitivisht e vështirë për të zbatuar 1095 01:00:15,880 --> 01:00:18,310 por është shumë e shpejtë. 1096 01:00:18,310 --> 01:00:20,620 Megjithatë, merr më shumë hapësirë. 1097 01:00:20,620 --> 01:00:25,270 Përsëri, ju mund të zgjedh dy nga ata në mënyra të ndryshme dhe ka mënyra to-- 1098 01:00:25,270 --> 01:00:26,770 AUDIENCA: Sa jemi të vlerësohet për këtë? 1099 01:00:26,770 --> 01:00:27,540 A do të matter-- 1100 01:00:27,540 --> 01:00:29,164 >> Gjuha 1: Pra, ju jeni vlerësohen mënyrë normale. 1101 01:00:29,164 --> 01:00:31,330 Ju do të jeni të vlerësohet në dizajn. 1102 01:00:31,330 --> 01:00:36,020 Cilado mënyrë që ju bëni, ju dëshironi të sigurohuni që ajo është aq elegante sa ajo mund të jetë 1103 01:00:36,020 --> 01:00:38,610 dhe aq efikas sa ajo mund të jetë. 1104 01:00:38,610 --> 01:00:41,950 Por në qoftë se ju zgjidhni një provoni ose të hash tavolinë, për aq kohë sa ajo punon, 1105 01:00:41,950 --> 01:00:45,350 ne jemi të kënaqur me atë. 1106 01:00:45,350 --> 01:00:48,370 Dhe në qoftë se ju përdorni diçka që hashes në letrën e parë, kjo është në rregull, 1107 01:00:48,370 --> 01:00:51,410 si ndoshta si design-i mençur. 1108 01:00:51,410 --> 01:00:53,410 Ne gjithashtu jemi duke arritur pikë në këtë semester-- 1109 01:00:53,410 --> 01:00:55,340 Unë nuk e di nëse ju djema noticed-- në qoftë se ju jeni 1110 01:00:55,340 --> 01:00:58,780 notat pset bjerë pak për shkak të dizajnit dhe gjësend, 1111 01:00:58,780 --> 01:00:59,900 kjo është e përkryer gjobë. 1112 01:00:59,900 --> 01:01:02,960 Është duke arritur në një pikë ku tuaj Programet janë duke marrë më të komplikuar. 1113 01:01:02,960 --> 01:01:04,830 Ka shumë vende ju mund të përmirësuar. 1114 01:01:04,830 --> 01:01:06,370 >> Pra, kjo është krejtësisht normale. 1115 01:01:06,370 --> 01:01:08,810 Kjo nuk është se ju jeni bërë keq në pset tuaj. 1116 01:01:08,810 --> 01:01:11,885 Është thjesht ne jemi duke u vështirë për ju tani. 1117 01:01:11,885 --> 01:01:13,732 Pra, të gjithë është ndjenjë atë. 1118 01:01:13,732 --> 01:01:14,940 Unë vetëm të vlerësohet gjitha psets tuaja. 1119 01:01:14,940 --> 01:01:16,490 Unë e di se të gjithë është ndjenjë atë. 1120 01:01:16,490 --> 01:01:19,600 >> Pra, nuk do të jenë të shqetësuar në lidhje me atë. 1121 01:01:19,600 --> 01:01:23,580 Dhe në qoftë se ju keni ndonjë pyetje në lidhje me psets mëparshme ose mënyra që ju mund të përmirësojë, 1122 01:01:23,580 --> 01:01:27,760 Unë të përpiqet dhe të komentojë specifike vende, por nganjëherë është vonë 1123 01:01:27,760 --> 01:01:30,840 dhe unë lodhem. 1124 01:01:30,840 --> 01:01:34,885 A ka ndonjë gjëra të tjera për strukturat e të dhënave? 1125 01:01:34,885 --> 01:01:37,510 Unë jam i sigurt që ju djema të vërtetë nuk duan të flasin rreth tyre më, 1126 01:01:37,510 --> 01:01:42,650 por nëse ka, unë jam i lumtur për shko mbi to, si dhe çdo gjë 1127 01:01:42,650 --> 01:01:45,580 nga leksioni kjo e kaluar javë ose javën e kaluar. 1128 01:01:45,580 --> 01:01:51,580 >> Unë e di se javën e kaluar ishte e gjitha shqyrtim, kështu ne mund të kemi anashkaluar një shqyrtim 1129 01:01:51,580 --> 01:01:54,190 nga leksioni. 1130 01:01:54,190 --> 01:01:58,230 Çdo pyetje të tjera unë mund të përgjigjem? 1131 01:01:58,230 --> 01:01:59,350 OK, të gjithë të drejtë. 1132 01:01:59,350 --> 01:02:02,400 Well, ju djema merrni nga 15 minuta në fillim. 1133 01:02:02,400 --> 01:02:08,370 >> Unë shpresoj se kjo ishte gjysmë-dobishme të paktën, dhe unë do t'ju shoh djema javën e ardhshme, 1134 01:02:08,370 --> 01:02:12,150 ose zyra orë të enjten. 1135 01:02:12,150 --> 01:02:15,285 A ka kërkesa për snacks për javën e ardhshme, kjo është gjë? 1136 01:02:15,285 --> 01:02:17,459 Sepse kam harruar karamele sot. 1137 01:02:17,459 --> 01:02:19,750 Dhe unë solli karamele fundit javë, por ajo ishte Dita Columbus, 1138 01:02:19,750 --> 01:02:25,400 kështu që nuk ishin si gjashtë njerëz që kishte katër çanta të karamele për veten e tyre. 1139 01:02:25,400 --> 01:02:28,820 Unë mund të sjellë Starbursts përsëri në qoftë se ju pëlqen. 1140 01:02:28,820 --> 01:02:29,580 Starbursts? 1141 01:02:29,580 --> 01:02:32,250 OK, tingëllon mirë. 1142 01:02:32,250 --> 01:02:35,050 Kanë një ditë e madhe, djema. 1143 01:02:35,050 --> 01:02:39,510