1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:05,120 [Mūzikas atskaņošanai] 3 00:00:05,120 --> 00:00:12,026 4 00:00:12,026 --> 00:00:12,900 SPEAKER 1: Nu labi. 5 00:00:12,900 --> 00:00:14,600 Ikviens laipni atpakaļ uz sadaļu. 6 00:00:14,600 --> 00:00:18,660 Es ceru, ka jūs visi ir veiksmīgi atguvusies no jūsu viktorīnas 7 00:00:18,660 --> 00:00:19,510 no pagājušajā nedēļā. 8 00:00:19,510 --> 00:00:22,564 Es zinu, tas ir mazliet traks reizēm. 9 00:00:22,564 --> 00:00:25,230 Kā jau teicu iepriekš, ja jūs esat ietvaros standarta novirze, 10 00:00:25,230 --> 00:00:28,188 nav īsti jāuztraucas par to, jo īpaši par mazāk ērtu sadaļā. 11 00:00:28,188 --> 00:00:30,230 Tas ir par to, kur jums vajadzētu būt. 12 00:00:30,230 --> 00:00:32,850 >> Ja jums bija liels, tad lieliski. 13 00:00:32,850 --> 00:00:33,650 Kudos uz jums. 14 00:00:33,650 --> 00:00:36,149 Un, ja jums justies kā jums ir nepieciešams, mazliet vairāk palīdzēt, lūdzu 15 00:00:36,149 --> 00:00:38,140 justies brīvi, lai sasniegtu ārā uz kādu no TFS. 16 00:00:38,140 --> 00:00:40,030 Mēs visi esam šeit, lai palīdzētu. 17 00:00:40,030 --> 00:00:40,960 >> Tieši tāpēc mēs mācām. 18 00:00:40,960 --> 00:00:44,550 Tas ir iemesls, kāpēc es esmu šeit, katru pirmdienu, lai jūs puiši un pie amata stundas ceturtdienās. 19 00:00:44,550 --> 00:00:48,130 Tāpēc, lūdzu, justies brīvi let me know ja jūs esat noraizējies par neko 20 00:00:48,130 --> 00:00:52,450 vai arī, ja tur ir kaut kas uz viktorīnas kas jums tiešām vēlētos, lai risinātu. 21 00:00:52,450 --> 00:00:56,940 >> Tātad darba kārtība šodien ir visu par datu struktūras. 22 00:00:56,940 --> 00:01:01,520 Daži no tiem ir tikai būs tikai lai iegūtu Jums iepazīties ar tiem. 23 00:01:01,520 --> 00:01:04,870 Jūs nedrīkstat kādreiz īstenot viņiem šajā klasē. 24 00:01:04,870 --> 00:01:08,690 Daži no tiem jums būs, piemēram, jūsu Speller PSET. 25 00:01:08,690 --> 00:01:11,380 >> Jums ir jūsu izvēle starp hash tabulas un valstīs. 26 00:01:11,380 --> 00:01:13,680 Tāpēc mēs noteikti iet pār tiem. 27 00:01:13,680 --> 00:01:18,690 Tas būs noteikti vairāk veida augsta līmeņa sadaļā šodien, lai gan, 28 00:01:18,690 --> 00:01:22,630 tāpēc, ka tur ir daudz no viņiem, un, ja mēs gājām uz īstenošanas detaļām 29 00:01:22,630 --> 00:01:26,490 par visiem šiem, mēs nebūtu pat tikt cauri saistīti saraksti 30 00:01:26,490 --> 00:01:28,520 un varbūt mazliet hash tabulu. 31 00:01:28,520 --> 00:01:31,200 >> Tā sedz ar mani. 32 00:01:31,200 --> 00:01:33,530 Mēs nebrauksim darīt tik daudz kodēšanas šoreiz. 33 00:01:33,530 --> 00:01:36,870 Ja jums ir kādi jautājumi par to vai arī jūs vēlaties, lai redzētu to īsteno 34 00:01:36,870 --> 00:01:39,260 vai mēģināt to pats, Es noteikti ieteiktu 35 00:01:39,260 --> 00:01:44,250 gatavojas study.cs50.net, kas ir piemēri visi no tiem. 36 00:01:44,250 --> 00:01:46,400 Tā būs mana powerpoints ar piezīmēm, ka mēs 37 00:01:46,400 --> 00:01:50,860 mēdz izmantot, kā arī daži programmēšana vingrinājumi, jo īpaši attiecībā uz lietām 38 00:01:50,860 --> 00:01:55,250 tāpat saistītas sarakstiem un bināro koki skursteņi un nianses. 39 00:01:55,250 --> 00:01:59,590 Tik nedaudz vairāk augsta līmeņa, kas varētu būt jauki jums puiši. 40 00:01:59,590 --> 00:02:01,320 >> Tātad ar to, mēs sāktu. 41 00:02:01,320 --> 00:02:03,060 Un arī, yes-- viktorīnas. 42 00:02:03,060 --> 00:02:06,550 Es domāju, ka lielākā daļa no jums, kas ir mans sadaļa ir jūsu viktorīnas, 43 00:02:06,550 --> 00:02:12,060 bet ikviens nāk vai kādu iemeslu dēļ jums nav, viņi ir tepat priekšā. 44 00:02:12,060 --> 00:02:12,740 >> Tā saistīta sarakstus. 45 00:02:12,740 --> 00:02:15,650 Es zinu, šāda iet atpakaļ pirms jūsu viktorīnas. 46 00:02:15,650 --> 00:02:17,940 Tas bija pirms nedēļas ka mēs uzzinājām par to. 47 00:02:17,940 --> 00:02:21,040 Bet šajā gadījumā, mēs vienkārši iet mazliet dziļāk. 48 00:02:21,040 --> 00:02:25,900 >> Tad kāpēc mēs varbūt izvēlēties saistīts saraksts pa masīvu? 49 00:02:25,900 --> 00:02:27,130 Kas atšķir tos? 50 00:02:27,130 --> 00:02:27,630 Jā? 51 00:02:27,630 --> 00:02:30,464 >> Mērķauditorija: Jūs varat paplašināt saistīts uzskaitīt pret masīvs ir noteikta izmēra. 52 00:02:30,464 --> 00:02:31,171 SPEAKER 1: Labais. 53 00:02:31,171 --> 00:02:33,970 Masīvs ir noteikts izmērs savukārt saistīts saraksts ir mainīgs lielums. 54 00:02:33,970 --> 00:02:36,970 Tātad, ja mēs nezinām, cik daudz mēs gribam, lai uzglabātu, 55 00:02:36,970 --> 00:02:39,880 saistīts saraksts dod mums liels veids, kā to darīt, jo mēs varam vienkārši 56 00:02:39,880 --> 00:02:43,730 pievienot uz citu mezglu un pievienot uz cits mezgls un pievienot uz citu mezglu. 57 00:02:43,730 --> 00:02:45,750 Bet to, kas varētu būt kompromiss? 58 00:02:45,750 --> 00:02:49,521 Vai kāds atceras kompromisu starp masīvu un saistīti saraksti? 59 00:02:49,521 --> 00:02:50,020 Mmhmm? 60 00:02:50,020 --> 00:02:51,460 >> Mērķauditorija: Jums ir iet cauri visiem ceļu 61 00:02:51,460 --> 00:02:53,738 pa saistīts saraksts atrast elementu sarakstā. 62 00:02:53,738 --> 00:02:55,570 Masīvā, varat vienkārši atrast elementu. 63 00:02:55,570 --> 00:02:56,278 >> SPEAKER 1: Labais. 64 00:02:56,278 --> 00:02:57,120 Tātad ar arrays-- 65 00:02:57,120 --> 00:02:58,500 >> Mērķauditorija: [dzirdams]. 66 00:02:58,500 --> 00:03:01,090 >> SPEAKER 1: Ar blokiem, mēs esam ko sauc brīvpiekļuves. 67 00:03:01,090 --> 00:03:04,820 Nozīmē, ka, ja mēs gribam to, kas ir kādreiz piektais punkts saraksta 68 00:03:04,820 --> 00:03:07,230 vai piektais punkts mūsu masīvs, mēs varam vienkārši paķert to. 69 00:03:07,230 --> 00:03:10,440 Ja tas ir saistīts saraksts, mums ir atkārtot cauri, vai ne? 70 00:03:10,440 --> 00:03:14,020 Tātad piekļūstot elements masīvs ir nemainīgs laiks, 71 00:03:14,020 --> 00:03:19,530 savukārt ar saistīts saraksts tas visticamāk, būs lineārais laiks, jo varbūt 72 00:03:19,530 --> 00:03:21,370 Mūsu elements ir visu ceļu beigās. 73 00:03:21,370 --> 00:03:23,446 Mums ir meklēt caur visu. 74 00:03:23,446 --> 00:03:25,320 Tātad ar visiem šiem datiem struktūras mēs ejam 75 00:03:25,320 --> 00:03:29,330 lai tērēt nedaudz vairāk laika, kādi ir plusi un negatīvi. 76 00:03:29,330 --> 00:03:31,480 Ja iespējams, mēs vēlamies izmantojiet vienu pār otru? 77 00:03:31,480 --> 00:03:34,970 Un tas ir sava veida lielāks lieta atņemt. 78 00:03:34,970 --> 00:03:40,140 >> Tāpēc mēs esam šeit definīcija mezglā. 79 00:03:40,140 --> 00:03:43,040 Tas ir tāpat kā viens elements mūsu saistīts saraksts, labi? 80 00:03:43,040 --> 00:03:46,180 Tātad mēs visi esam pazīstami ar mūsu typedef statņi, 81 00:03:46,180 --> 00:03:47,980 ko mēs devāmies pār pārskatā pēdējo reizi. 82 00:03:47,980 --> 00:03:53,180 Tas bija galvenokārt tikai radot cits datu tips, ko mēs varētu izmantot. 83 00:03:53,180 --> 00:03:57,930 >> Un šajā gadījumā, tas ir daži mezgla kas notiks dažas skaitlim. 84 00:03:57,930 --> 00:04:00,210 Un tad, kas ir otrā daļa šeit? 85 00:04:00,210 --> 00:04:03,192 86 00:04:03,192 --> 00:04:05,677 Ikviens? 87 00:04:05,677 --> 00:04:06,680 >> Mērķauditorija: [dzirdams]. 88 00:04:06,680 --> 00:04:07,020 >> SPEAKER 1: Jā. 89 00:04:07,020 --> 00:04:08,400 Tas ir rādītājs, uz nākamo mezglu. 90 00:04:08,400 --> 00:04:12,610 Tātad tas faktiski ir jābūt šeit. 91 00:04:12,610 --> 00:04:18,790 Tas ir rādītājs tipa mezglu uz nākamo lieta. 92 00:04:18,790 --> 00:04:22,410 Un tas, ko viņi ietver mūsu mezglā. 93 00:04:22,410 --> 00:04:24,060 Atdzist. 94 00:04:24,060 --> 00:04:29,390 >> Viss ir labi, tāpēc ar meklēšanu, kā mēs bijām vienkārši sakot, pirms puses, ja jūs esat 95 00:04:29,390 --> 00:04:31,840 iet meklēt, izmantojot, Jums ir faktiski atkārtot 96 00:04:31,840 --> 00:04:33,660 caur savu saistīts saraksts. 97 00:04:33,660 --> 00:04:38,530 Tātad, ja mēs meklējam skaitu 9, mēs varētu sākt mūsu galvas 98 00:04:38,530 --> 00:04:41,520 un ka mums norāda sākumā mūsu saistīts saraksts, labi? 99 00:04:41,520 --> 00:04:44,600 Un mēs sakām, OK, vai tas mezgls ietver numuru 9? 100 00:04:44,600 --> 00:04:45,690 Nē? 101 00:04:45,690 --> 00:04:47,500 >> Visas tiesības, dodieties uz nākamo. 102 00:04:47,500 --> 00:04:48,312 Sekot to. 103 00:04:48,312 --> 00:04:49,520 Vai tas satur numuru 9? 104 00:04:49,520 --> 00:04:50,570 Nē. 105 00:04:50,570 --> 00:04:51,550 Sekojiet nākamo. 106 00:04:51,550 --> 00:04:55,490 >> Tāpēc mums ir faktiski atkārtot caur mūsu saistīts saraksts. 107 00:04:55,490 --> 00:05:00,070 Mēs nevaram vienkārši doties tieši uz vietu, kur 9 ir. 108 00:05:00,070 --> 00:05:05,860 Un, ja jūs puiši tiešām vēlaties redzēt kādu pseido-koda tur augšā. 109 00:05:05,860 --> 00:05:10,420 Mums ir daži meklēšanas funkciju šeit kas ņem in-- ko tas veic ar? 110 00:05:10,420 --> 00:05:13,110 111 00:05:13,110 --> 00:05:14,320 Ko jūs domājat? 112 00:05:14,320 --> 00:05:15,960 Tik viegli vienu. 113 00:05:15,960 --> 00:05:17,784 Kas tas ir? 114 00:05:17,784 --> 00:05:18,700 Mērķauditorija: [dzirdams]. 115 00:05:18,700 --> 00:05:20,366 SPEAKER 1: skaits, mēs meklējam. 116 00:05:20,366 --> 00:05:20,980 Taisnība? 117 00:05:20,980 --> 00:05:22,875 Un kas būtu tas atbilst? 118 00:05:22,875 --> 00:05:25,020 Tas ir rādītājs, lai? 119 00:05:25,020 --> 00:05:26,000 >> Mērķauditorija: mezglā. 120 00:05:26,000 --> 00:05:28,980 >> SPEAKER 1: mezgla sarakstam ka mēs meklējam, vai ne? 121 00:05:28,980 --> 00:05:33,700 Tāpēc mums ir daži mezgli ir rādītājs šeit. 122 00:05:33,700 --> 00:05:37,240 Tas ir punkts, kas notiek, lai faktiski atkārtot, izmantojot mūsu sarakstā. 123 00:05:37,240 --> 00:05:39,630 Mēs, kas tas ir vienāds uzskaitīt tāpēc, ka tas ir tikai 124 00:05:39,630 --> 00:05:44,380 nosakot to vienāds ar sākuma mūsu saistīts saraksts. 125 00:05:44,380 --> 00:05:50,660 >> Un, lai gan tas nav NULL, bet mums vēl ir lietas, kas mūsu sarakstā, 126 00:05:50,660 --> 00:05:55,580 pārbaudiet, lai redzētu, ka mezgls ir skaitlis mēs meklējam. 127 00:05:55,580 --> 00:05:57,740 Atgriezties taisnība. 128 00:05:57,740 --> 00:06:01,070 Pretējā gadījumā, atjaunina to, labi? 129 00:06:01,070 --> 00:06:04,870 >> Ja tas ir NULL, mēs izietu mūsu kamēr cilpa un atgriezties viltus 130 00:06:04,870 --> 00:06:08,340 jo tas nozīmē, ka mēs esam nav atradis. 131 00:06:08,340 --> 00:06:11,048 Vai visi get to, kā tas darbojas? 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 >> Tātad ar ievietošanas, jūs ir trīs dažādos veidos. 135 00:06:20,260 --> 00:06:25,250 Jūs varat prepend, jūs varat pievienot un jūs varat ievietot asorti. 136 00:06:25,250 --> 00:06:28,215 Šajā gadījumā, mēs esam gatavojas darīt prepend. 137 00:06:28,215 --> 00:06:33,380 Vai kāds zina, kā tos trīs lietas var atšķirties? 138 00:06:33,380 --> 00:06:36,920 >> Tātad prepend nozīmē, ka jūs varat ievietot tā priekšā savu sarakstu. 139 00:06:36,920 --> 00:06:39,770 Tā, ka tas nozīmētu, ka nav svarīgi, kādas ir jūsu mezgls ir, vienalga 140 00:06:39,770 --> 00:06:43,160 kāda vērtība ir, jūs gatavojas nodot to tepat priekšā, OK? 141 00:06:43,160 --> 00:06:45,160 Tas būs pirmais elements savu sarakstu. 142 00:06:45,160 --> 00:06:49,510 >> Ja jūs pievienot to, tas notiek lai dotos uz atpakaļ savu sarakstu. 143 00:06:49,510 --> 00:06:54,010 Un ievietot asorti nozīmē, ka jūs esat ielikšu faktiski uz to vietu 144 00:06:54,010 --> 00:06:57,700 kur tas saglabā savu saistīts saraksts sakārtots. 145 00:06:57,700 --> 00:07:00,810 Atkal, kā jūs izmantojat tiem, un, kad lietojat 146 00:07:00,810 --> 00:07:02,530 viņiem būs atkarīgs no jūsu gadījumu. 147 00:07:02,530 --> 00:07:05,834 148 00:07:05,834 --> 00:07:07,750 Ja tas nav nepieciešams sakārtots, prepend mēdz 149 00:07:07,750 --> 00:07:10,460 lai būtu, ko lielākā daļa cilvēku izmantot, jo jums nav 150 00:07:10,460 --> 00:07:15,680 ir iet cauri visam sarakstam atrast beigām pievienot to, vai ne? 151 00:07:15,680 --> 00:07:17,720 Jūs varat tikai stick to tiesības. 152 00:07:17,720 --> 00:07:21,930 >> Tātad mums būs jāiet cauri ievietošanas 1 tieši tagad. 153 00:07:21,930 --> 00:07:26,360 Tātad viena lieta, ko es esmu gatavojas ļoti ieteiktu šo PSET 154 00:07:26,360 --> 00:07:29,820 ir izdarīt lietas, kā vienmēr. 155 00:07:29,820 --> 00:07:35,130 Tas ir ļoti svarīgi, ka jūs atjaunināt Jūsu norādes pareizā secībā 156 00:07:35,130 --> 00:07:38,620 jo, ja jūs atjaunināt tos nedaudz bojātas, 157 00:07:38,620 --> 00:07:42,210 jūs gatavojas galu galā zaudēt daļu no sava saraksta. 158 00:07:42,210 --> 00:07:49,680 >> Tā, piemēram, šajā gadījumā, mēs stāsta galvu tikai punkts 1. 159 00:07:49,680 --> 00:07:56,070 Ja mēs vienkārši darīt nesaglabājot šo 1, 160 00:07:56,070 --> 00:07:58,570 mums nav ne jausmas, ko 1 jānorāda tagad 161 00:07:58,570 --> 00:08:02,490 tāpēc, ka mēs esam zaudējuši, ko galva norādīja uz. 162 00:08:02,490 --> 00:08:05,530 Tik viena lieta atcerēties kad jūs darāt prepend 163 00:08:05,530 --> 00:08:09,630 ir, lai saglabātu to, ko galvas norāda uz pirmo, 164 00:08:09,630 --> 00:08:15,210 Tad pārdalīt to, un pēc tam atjaunināt kas savu jauno mezglu vajadzētu norādīt uz. 165 00:08:15,210 --> 00:08:20,870 166 00:08:20,870 --> 00:08:22,560 Šajā gadījumā, tas ir viens no veidiem, kā to darīt. 167 00:08:22,560 --> 00:08:25,440 >> Tātad, ja mēs būtu darījuši to šādā veidā kur mēs tikko no jauna galvu, 168 00:08:25,440 --> 00:08:30,320 mēs zaudējam būtībā OUR visu sarakstu, vai ne? 169 00:08:30,320 --> 00:08:38,000 Viens veids, kā to izdarīt, ir, lai būtu 1 punktu, lai nākamais, un tad ir galvas punktu 1. 170 00:08:38,000 --> 00:08:42,650 Vai jūs varat darīt kaut kas līdzīgs pagaidu uzglabāšana, ko es runāju par. 171 00:08:42,650 --> 00:08:45,670 >> Bet no jauna piešķirot Jūsu norādes pareizā secībā 172 00:08:45,670 --> 00:08:48,750 būs ļoti, ļoti svarīgi, lai šajā PSET. 173 00:08:48,750 --> 00:08:53,140 Pretējā gadījumā jūs nāksies hash tabulas vai izmēģināt, kas ir tikai būs 174 00:08:53,140 --> 00:08:56,014 tikai daļa no vārdiem, kas jums vēlas, un tad you're-- mmhmm? 175 00:08:56,014 --> 00:08:58,930 Mērķauditorija: Kāds bija īslaicīga uzglabāšanas lieta, ko jūs runājāt par? 176 00:08:58,930 --> 00:09:00,305 SPEAKER 1: pagaidu uzglabāšanu. 177 00:09:00,305 --> 00:09:02,760 Tātad būtībā cits veids, kā jūs varētu to izdarīt 178 00:09:02,760 --> 00:09:07,650 ir saglabāt galvu kaut ko, piemēram, uzglabāt to pagaidu mainīgo. 179 00:09:07,650 --> 00:09:11,250 Piešķirt to 1 un tad atjaunot 1. punktam 180 00:09:11,250 --> 00:09:13,830 lai kāds galvu izmanto, lai norādītu uz. 181 00:09:13,830 --> 00:09:16,920 Šis veids ir acīmredzami vairāk elegants, jo jums 182 00:09:16,920 --> 00:09:20,770 nav nepieciešama pagaidu vērtību, bet tikai piedāvāt vēl viens veids, kā to izdarīt. 183 00:09:20,770 --> 00:09:23,999 184 00:09:23,999 --> 00:09:25,790 Un mēs faktiski darīt ir daži kods to. 185 00:09:25,790 --> 00:09:28,080 Tātad saistīta sarakstu, mēs tiešām ir daži kodu. 186 00:09:28,080 --> 00:09:31,930 Tātad ievietot šeit, tas ir prepending. 187 00:09:31,930 --> 00:09:34,290 Tātad šī ievada to galvas. 188 00:09:34,290 --> 00:09:38,820 >> Tātad pirmā lieta, jums ir nepieciešams izveidot jaunu mezglu, protams, 189 00:09:38,820 --> 00:09:40,790 un pārbaudiet NULL. 190 00:09:40,790 --> 00:09:43,250 Vienmēr ir labi. 191 00:09:43,250 --> 00:09:47,840 Un tad jums ir nepieciešams piešķirt vērtības. 192 00:09:47,840 --> 00:09:51,260 Ikreiz, kad jūs izveidot jaunu mezglu, jums nezinu, kas tas ir, norādot uz nākamo, 193 00:09:51,260 --> 00:09:54,560 lai jūs vēlaties, lai sāktu to null. 194 00:09:54,560 --> 00:09:58,760 Ja tas galu galā norāda uz kaut ko cits, tas izpaužas no jauna, un tas ir labi. 195 00:09:58,760 --> 00:10:00,740 Ja tā ir pirmā lieta, sarakstā, tai ir 196 00:10:00,740 --> 00:10:04,270 norādīt uz NULL, jo tas ir gals saraksta. 197 00:10:04,270 --> 00:10:12,410 >> Tātad, lai ievietotu to, mēs redzam šeit mēs tiek piešķirot nākamo vērtību mūsu mezglā 198 00:10:12,410 --> 00:10:17,380 lai būtu kāds galva, kas ir tas, ko mums bija šeit. 199 00:10:17,380 --> 00:10:19,930 Tas ir tas, ko mēs tikko izdarījām. 200 00:10:19,930 --> 00:10:25,820 Un tad mēs esam piešķirot galvu punktam mūsu jaunajā mezglā, jo atceros, 201 00:10:25,820 --> 00:10:31,090 jaunais ir daži rādītājs uz mezglu, un tas ir tieši tas, ko galva ir. 202 00:10:31,090 --> 00:10:34,370 Tieši tāpēc mēs ir šī bultiņas accessor. 203 00:10:34,370 --> 00:10:37,030 204 00:10:37,030 --> 00:10:37,530 Forši? 205 00:10:37,530 --> 00:10:38,130 Mmhmm? 206 00:10:38,130 --> 00:10:41,100 >> Mērķauditorija: Vai mums ir sāktu jaunu Next null, pirmkārt, 207 00:10:41,100 --> 00:10:44,240 vai arī mēs varam vienkārši sāktu to uz galvas? 208 00:10:44,240 --> 00:10:48,210 >> SPEAKER 1: Jauns nākamais jābūt NULL, lai sāktu 209 00:10:48,210 --> 00:10:53,760 jo jūs nezināt kur tas būs. 210 00:10:53,760 --> 00:10:56,100 Arī tas ir sava veida vienkārši patīk paradigmu. 211 00:10:56,100 --> 00:10:59,900 Jūs noteikti tas ir vienāds ar NULL tikai, lai pelnītu Pārliecinieties, ka visi jūsu bāzes ir iekļauti 212 00:10:59,900 --> 00:11:04,070 Pirms jūs to darāt, ka jebkuru pārcelšanu citā amatā jūs vienmēr garantēts, ka tā būs 213 00:11:04,070 --> 00:11:08,880 ir vērsta uz noteiktu vērtību pret kā garbage vērtību. 214 00:11:08,880 --> 00:11:12,210 Tāpēc, ka, jā, mēs piešķirt Jaunais nākamā automātiski, 215 00:11:12,210 --> 00:11:15,420 bet tas ir vairāk, tāpat kā laba prakse, lai sāktu to 216 00:11:15,420 --> 00:11:19,270 Šādā veidā un pēc tam atkārtoti piešķirt. 217 00:11:19,270 --> 00:11:23,420 >> Labi, tāpēc divkārt saistīti sarakstus tagad. 218 00:11:23,420 --> 00:11:24,601 Ko mēs domājam? 219 00:11:24,601 --> 00:11:26,350 Kas ir atšķirīgs ar divkārt saistīta sarakstus? 220 00:11:26,350 --> 00:11:30,750 221 00:11:30,750 --> 00:11:34,300 >> Tātad mūsu saistīti sarakstos, mēs varam pārvietot tikai vienā virzienā, labi? 222 00:11:34,300 --> 00:11:35,270 Mums ir tikai blakus. 223 00:11:35,270 --> 00:11:36,760 Mēs varam iet tikai uz priekšu. 224 00:11:36,760 --> 00:11:40,300 >> Ar divkārt saistīta sarakstā mēs varam arī pārvietot atpakaļ. 225 00:11:40,300 --> 00:11:44,810 Tāpēc mums ir ne tikai numurs, ko mēs gribam, lai uzglabātu, 226 00:11:44,810 --> 00:11:50,110 mums ir, ja tas norāda uz nākamo un kur mēs tikko nāca no. 227 00:11:50,110 --> 00:11:52,865 Tātad tas ļauj daži labāk šķērsošana. 228 00:11:52,865 --> 00:11:56,620 229 00:11:56,620 --> 00:12:01,240 >> Tāpēc divkārt saistīti mezglus, ļoti līdzīgs, vai ne? 230 00:12:01,240 --> 00:12:05,000 Tikai tagad atšķirība ir mums ir nākamais un iepriekšējais. 231 00:12:05,000 --> 00:12:06,235 Tā ir vienīgā atšķirība. 232 00:12:06,235 --> 00:12:09,570 233 00:12:09,570 --> 00:12:14,790 >> Tātad, ja mēs būtu prepend vai append-- mums nav nekādu kods šo augšu here-- 234 00:12:14,790 --> 00:12:17,830 bet, ja tu būtu, lai mēģinātu ievietojiet to, ka svarīga lieta 235 00:12:17,830 --> 00:12:19,980 ir nepieciešams veikt pārliecināts, ka jūs esat piešķirot 236 00:12:19,980 --> 00:12:23,360 gan savu iepriekšējo un Jūsu Nākamais rādītājs pareizi. 237 00:12:23,360 --> 00:12:29,010 Tātad šajā gadījumā, jūs varētu ne tikai inicializēt blakus, 238 00:12:29,010 --> 00:12:31,820 Jūs inicializēt iepriekšējo. 239 00:12:31,820 --> 00:12:36,960 Ja mēs esam pie galvas saraksta, mēs tas ne tikai padarīs galvu vienāds jaunu, 240 00:12:36,960 --> 00:12:41,750 bet mūsu jaunais iepriekšējā vajadzētu norāda uz galvas, vai ne? 241 00:12:41,750 --> 00:12:43,380 >> Tas ir vienīgā atšķirība. 242 00:12:43,380 --> 00:12:47,200 Un, ja jūs vēlaties vairāk praksi ar tos ar saistītiem sarakstiem, ar ievietojot 243 00:12:47,200 --> 00:12:49,900 dzēšanu, ar ieliktni stājas asorti sarakstā, 244 00:12:49,900 --> 00:12:52,670 lūdzu, pārbaudiet study.cs50.net. 245 00:12:52,670 --> 00:12:54,870 Tur ķekars lielu vingrinājumi. 246 00:12:54,870 --> 00:12:55,870 Es ļoti ieteiktu to. 247 00:12:55,870 --> 00:12:59,210 Novēlu mums bija laiks iet caur tiem bet tur ir daudz datu struktūras 248 00:12:59,210 --> 00:13:01,530 tikt cauri. 249 00:13:01,530 --> 00:13:02,650 >> Labi, tā hash tabulas. 250 00:13:02,650 --> 00:13:07,070 Tas ir iespējams, visvairāk noderīga bit savu PSET 251 00:13:07,070 --> 00:13:11,090 šeit, jo jūs esat būs Īstenojot vienu no šiem, vai mēģināt. 252 00:13:11,090 --> 00:13:12,200 Man tiešām patīk hash tabulas. 253 00:13:12,200 --> 00:13:13,110 Viņi diezgan vēss. 254 00:13:13,110 --> 00:13:17,080 >> Tātad, būtībā, ko notiek, ir hash tabulu 255 00:13:17,080 --> 00:13:22,050 ir tad, kad mums tiešām ir nepieciešams ātri ievietošana, dzēšana, un lookup. 256 00:13:22,050 --> 00:13:25,010 Tās ir lietas, ko mēs esam prioritāti ar hash tabulā. 257 00:13:25,010 --> 00:13:29,500 Viņi var iegūt diezgan liels, bet kā mēs redzēsim ar mēģinājumiem, 258 00:13:29,500 --> 00:13:33,040 ir lietas, kas ir daudz lielāks. 259 00:13:33,040 --> 00:13:38,330 >> Bet būtībā, visi hash tabula ir jaukšanas funkcija 260 00:13:38,330 --> 00:13:47,215 kas stāsta jums, kas spainis likt katram no jūsu datiem, katru no jūsu elementu. 261 00:13:47,215 --> 00:13:51,140 Vienkāršs veids, kā domāt par hash tabulas ir tas, ka tā ir tikai spaiņi lietas, 262 00:13:51,140 --> 00:13:51,770 tiesības? 263 00:13:51,770 --> 00:13:59,720 Tātad, ja jums ir šķirošanas lietas ar tāpat kā pirmajam burtam savu vārdu, 264 00:13:59,720 --> 00:14:01,820 tas ir veids kā hash tabulu. 265 00:14:01,820 --> 00:14:06,180 >> Tātad, ja es būtu grupai jūs puiši ir grupās, kurš vārds sākas 266 00:14:06,180 --> 00:14:11,670 ar vairāk nekā šeit, vai kādam citam, ir dzimšanas diena ir janvārī, februārī, martā, 267 00:14:11,670 --> 00:14:15,220 kāds, kas ir efektīvi radot hash tabulu. 268 00:14:15,220 --> 00:14:18,120 Tas ir tikai radot spaiņus, ka Jūs kārtot elementus 269 00:14:18,120 --> 00:14:19,520 lai jūs varētu atrast tos vieglāk. 270 00:14:19,520 --> 00:14:22,300 Tātad šādā veidā, kad man ir nepieciešams lai atrastu vienu no jums, 271 00:14:22,300 --> 00:14:24,680 Man nav meklēt caur katru no jūsu vārdiem. 272 00:14:24,680 --> 00:14:29,490 Es varu būt, piemēram, ak, es zinu, ka Danielle dzimšanas diena ir in-- 273 00:14:29,490 --> 00:14:30,240 AUDITORIJA: --April. 274 00:14:30,240 --> 00:14:30,948 SPEAKER 1: Aprīlis. 275 00:14:30,948 --> 00:14:33,120 Tāpēc es izskatos manā aprīlis spainis, un ar jebkuru luck, 276 00:14:33,120 --> 00:14:38,270 viņa būs tikai viens tur un mans laiks bija konstanti šajā ziņā, 277 00:14:38,270 --> 00:14:41,230 tā kā, ja man ir jāskatās cauri visai ķekars cilvēku, 278 00:14:41,230 --> 00:14:43,090 tas gatavojas veikt daudz ilgāk. 279 00:14:43,090 --> 00:14:45,830 Tātad hash tabulas ir tiešām tikai spaiņos. 280 00:14:45,830 --> 00:14:48,630 Vienkāršs veids, kā domāt par tiem. 281 00:14:48,630 --> 00:14:52,930 >> Tik ļoti svarīga lieta par hash tabulu ir hash funkcija. 282 00:14:52,930 --> 00:14:58,140 Tātad lietas, es tikai runāju par, piemēram, Jūsu pirmais burts no jūsu vārds 283 00:14:58,140 --> 00:15:01,450 vai jūsu dzimšanas dienas mēnesis, tās ir idejas, kas 284 00:15:01,450 --> 00:15:03,070 patiešām korelē ar hash funkciju. 285 00:15:03,070 --> 00:15:08,900 Tas ir tikai veids, kā izlemt, kas spainis jūs elements tērēta, OK? 286 00:15:08,900 --> 00:15:14,850 Tātad šo PSET, jūs varat meklēt diezgan daudz jebkuru hash funkciju vēlaties. 287 00:15:14,850 --> 00:15:16,030 >> Nav jābūt savu. 288 00:15:16,030 --> 00:15:21,140 Ir daži patiešām atdzist tie, kas tur, ka darīt visādas trakas math. 289 00:15:21,140 --> 00:15:25,170 Un, ja jūs vēlaties, lai jūsu Pareizrakstība super ātri, 290 00:15:25,170 --> 00:15:27,620 Es noteikti izskatās vienā no tiem. 291 00:15:27,620 --> 00:15:32,390 >> Bet ir arī vienkārši tie, piemēram, compute 292 00:15:32,390 --> 00:15:39,010 no vārdiem, piemēram, summa katrs burts ir vairākas. 293 00:15:39,010 --> 00:15:39,940 Aprēķināt summu. 294 00:15:39,940 --> 00:15:42,230 Kas nosaka spaini. 295 00:15:42,230 --> 00:15:45,430 Viņi arī ir viegli tiem, kas ir tāpat kā visi ir šeit, 296 00:15:45,430 --> 00:15:47,050 visu B ir šeit. 297 00:15:47,050 --> 00:15:48,920 Kāds no tiem. 298 00:15:48,920 --> 00:15:55,770 >> Būtībā, tas tikai stāsta jums, kas masīvs indekss jūsu stihija vajadzētu iedziļināties. 299 00:15:55,770 --> 00:15:58,690 Vienkārši izlemjot bucket-- tas viss hash funkcija. 300 00:15:58,690 --> 00:16:04,180 Tātad šeit mums ir piemērs, kas ir tikai pirmais burts virknes 301 00:16:04,180 --> 00:16:05,900 ka man bija tikai runā par. 302 00:16:05,900 --> 00:16:11,900 >> Tātad jums ir kāda hash, kas ir tikai pirmais burts no jūsu stīgu mīnus A, 303 00:16:11,900 --> 00:16:16,090 kas sniegs jums dažus skaitlis no 0 līdz 25. 304 00:16:16,090 --> 00:16:20,790 Un ko jūs vēlaties darīt, ir pārliecinieties, ka tas ir 305 00:16:20,790 --> 00:16:24,110 izmēru jūsu hash table-- cik spaiņi tur ir. 306 00:16:24,110 --> 00:16:25,860 Ar daudziem no šiem hash funkcijas, viņi 307 00:16:25,860 --> 00:16:31,630 būs atgriežas vērtības, kas varētu būt tālu virs skaita spaiņos 308 00:16:31,630 --> 00:16:33,610 ka jūs faktiski ir Jūsu hash tabulu, 309 00:16:33,610 --> 00:16:37,240 tāpēc jums ir nepieciešams, lai Noteikti un mod tiem. 310 00:16:37,240 --> 00:16:42,190 Pretējā gadījumā tas būs teikt, Ak, tas būtu spainis 5000 311 00:16:42,190 --> 00:16:46,040 bet jums ir tikai 30 spaiņi jūsu hash tabulā. 312 00:16:46,040 --> 00:16:49,360 Un, protams, mēs visi zinām, ka ir gatavojas rezultātā daži crazy kļūdas. 313 00:16:49,360 --> 00:16:52,870 Tāpēc pārliecinieties, lai mod ar izmērs jūsu hash tabulu. 314 00:16:52,870 --> 00:16:58,430 315 00:16:58,430 --> 00:16:58,930 Atdzist. 316 00:16:58,930 --> 00:17:00,506 Tik sadursmes. 317 00:17:00,506 --> 00:17:02,620 Vai visi labi līdz šim? 318 00:17:02,620 --> 00:17:03,120 Mmhmm? 319 00:17:03,120 --> 00:17:05,900 >> Mērķauditorija: Kāpēc tas tā atgriezt tik milzīgu vērtību? 320 00:17:05,900 --> 00:17:09,210 >> SPEAKER 1: Atkarībā no algoritma ka jūsu hash funkcija izmanto. 321 00:17:09,210 --> 00:17:12,270 Dažas no tām darīs traks pavairošana. 322 00:17:12,270 --> 00:17:16,270 Un tas viss ir par iegūt vienmērīgs, 323 00:17:16,270 --> 00:17:18,490 tāpēc tie daži patiešām trakas lietas dažreiz. 324 00:17:18,490 --> 00:17:20,960 Tas ir viss. 325 00:17:20,960 --> 00:17:22,140 Kaut kas cits? 326 00:17:22,140 --> 00:17:22,829 OK. 327 00:17:22,829 --> 00:17:24,480 >> Tik sadursmes. 328 00:17:24,480 --> 00:17:29,270 Būtībā, kā jau teicu iepriekš, kas labākajā gadījumā, 329 00:17:29,270 --> 00:17:32,040 jebkurš spainis es ieskatos ir nāksies viena lieta, 330 00:17:32,040 --> 00:17:34,160 tāpēc man nav skatīties vispār, vai ne? 331 00:17:34,160 --> 00:17:37,040 Es nu zinu, tas ir tur, vai tas ir nav, un tas, ko mēs patiešām vēlamies. 332 00:17:37,040 --> 00:17:43,960 Bet, ja mums ir desmitiem tūkstošu datu punkti un mazāk par šo numuru 333 00:17:43,960 --> 00:17:48,700 kausu, mēs esam nāksies sadursmes kur galu galā kaut kas 334 00:17:48,700 --> 00:17:54,210 nāksies nonākt spainis, kas jau ir elements. 335 00:17:54,210 --> 00:17:57,390 >> Tātad jautājums ir, ko mums darīt šādā gadījumā? 336 00:17:57,390 --> 00:17:58,480 Ko mēs darām? 337 00:17:58,480 --> 00:17:59,300 Mums jau ir kaut kas tur? 338 00:17:59,300 --> 00:18:00,060 Vai mēs vienkārši mest to ārā? 339 00:18:00,060 --> 00:18:00,700 >> Nē. 340 00:18:00,700 --> 00:18:01,980 Mums ir, lai saglabātu gan no tiem. 341 00:18:01,980 --> 00:18:06,400 Tātad tā, ka mēs parasti darīt, ir tas, ko? 342 00:18:06,400 --> 00:18:08,400 Kas ir datu struktūra mēs tikko runājām? 343 00:18:08,400 --> 00:18:09,316 Mērķauditorija: Saistīts saraksts. 344 00:18:09,316 --> 00:18:10,500 SPEAKER 1: saistīts saraksts. 345 00:18:10,500 --> 00:18:16,640 Tātad tagad, tā vietā, lai katrs no šiem spaiņi tikai ar vienu elementu, 346 00:18:16,640 --> 00:18:24,020 tas notiek, lai saturētu saistīts saraksts elementi, kas tika sajaukts tajā. 347 00:18:24,020 --> 00:18:27,588 Labi, tomēr ikviens veida saņemt šo ideju? 348 00:18:27,588 --> 00:18:30,546 Tāpēc, ka mēs nevarētu būt masīvs jo mēs nezinām, cik daudzas lietas 349 00:18:30,546 --> 00:18:31,730 gribam būt tur. 350 00:18:31,730 --> 00:18:36,540 Saistīts saraksts ļauj mums ir tikai precīzu skaitu, kas 351 00:18:36,540 --> 00:18:38,465 tiek sajaukts vērā, ka spainis, vai ne? 352 00:18:38,465 --> 00:18:42,260 353 00:18:42,260 --> 00:18:50,500 >> Tik lineāra zondēšana ir būtībā tas idea-- 354 00:18:50,500 --> 00:18:52,300 tas ir viens veids, kā tikt galā ar sadursmes. 355 00:18:52,300 --> 00:18:58,010 Ko jūs varat darīt, ir tad, ja tas lieta, ogu tika sajaukts uz 1 356 00:18:58,010 --> 00:19:01,130 un mums jau ir kaut kas tur, jūs vienkārši 357 00:19:01,130 --> 00:19:04,840 saglabāt iet uz leju, līdz Jūs atradīsiet slotā. 358 00:19:04,840 --> 00:19:06,370 Tas ir viens veids, kā rīkoties ar to. 359 00:19:06,370 --> 00:19:09,020 Otrs veids, kā rīkoties tas ir ar to, ko mēs tikko 360 00:19:09,020 --> 00:19:12,280 called-- saistīta saraksts sauc virknes intervāli. 361 00:19:12,280 --> 00:19:20,510 >> Tātad šī ideja darbojas, ja Jūsu hash tabulu jūs domājat 362 00:19:20,510 --> 00:19:24,150 ir daudz lielāks, nekā Jūsu datu kopums vai ja jums 363 00:19:24,150 --> 00:19:28,870 vēlaties, lai mēģinātu samazināt Ķēžu līdz brīdim, kad tas ir absolūti nepieciešams. 364 00:19:28,870 --> 00:19:34,050 Tātad viena lieta ir lineāra zondēšana, protams, nozīmē 365 00:19:34,050 --> 00:19:37,290 ka jūsu hash funkciju nav gluži tik noderīgs 366 00:19:37,290 --> 00:19:42,200 tāpēc, ka jūs gatavojas galu galā, izmantojot Jūsu hash funkciju, nokļūšanai uz punktu, 367 00:19:42,200 --> 00:19:46,400 Jūs Linear zonde uz leju, lai kaut kur tas ir pieejams. 368 00:19:46,400 --> 00:19:49,670 Bet tagad, protams, kaut kas cits, kas nonāks tur, 369 00:19:49,670 --> 00:19:52,050 jūs nāksies meklēt vēl tālāk uz leju. 370 00:19:52,050 --> 00:19:55,650 >> Un tur ir daudz vairāk meklēšana izdevumi, kas 371 00:19:55,650 --> 00:19:59,820 tērēta ievadot elements Jūsu hash tabulā tagad, vai ne? 372 00:19:59,820 --> 00:20:05,640 Un tagad, kad jūs iet un mēģināt atrast ogu atkal, jūs gatavojas hash to, 373 00:20:05,640 --> 00:20:07,742 un tas notiek, lai pateikt, oh, meklēt spainī 1, 374 00:20:07,742 --> 00:20:09,700 un tas nebūs spainis 1, lai jūs esat 375 00:20:09,700 --> 00:20:11,970 nāksies traversa ar pārējo tiem. 376 00:20:11,970 --> 00:20:17,720 Tātad, tas ir dažkārt noder, bet vairumā gadījumu, 377 00:20:17,720 --> 00:20:22,660 mēs ejam, lai teikt, ka virknes intervāli ir tas, ko jūs vēlaties darīt. 378 00:20:22,660 --> 00:20:25,520 >> Tātad, mēs runājām par to agrāk. 379 00:20:25,520 --> 00:20:27,812 Man mazliet priekšā sevi. 380 00:20:27,812 --> 00:20:33,560 Bet virknes intervāli ir būtībā, ka katrs spainis jūsu hash tabulas 381 00:20:33,560 --> 00:20:36,120 ir tikai saistīts saraksts. 382 00:20:36,120 --> 00:20:39,660 >> Tātad vēl viens veids, vai vairāk tehniska veids, kā domāt par hash tabulas 383 00:20:39,660 --> 00:20:44,490 ir, ka tas ir tikai masīvs savienoto sarakstiem, kas 384 00:20:44,490 --> 00:20:49,330 kad jūs esat rakstiski savu vārdnīcu un jūs mēģināt ielādēt to, 385 00:20:49,330 --> 00:20:52,070 domāt par to, kā masīvs saistītas sarakstu 386 00:20:52,070 --> 00:20:54,390 būs daudz vieglāk lai jūs varētu sākt darbību. 387 00:20:54,390 --> 00:20:57,680 >> Mērķauditorija: Tātad hash tabulu ir iepriekš noteikta izmēra, 388 00:20:57,680 --> 00:20:58,980 kā [dzirdams] spaiņos? 389 00:20:58,980 --> 00:20:59,220 >> SPEAKER 1: Labais. 390 00:20:59,220 --> 00:21:01,655 Tātad, tas ir noteiktu skaitu spaiņi, ka jūs determine-- 391 00:21:01,655 --> 00:21:03,530 ko jūs guys vajadzētu justies brīvi spēlēt ar. 392 00:21:03,530 --> 00:21:05,269 Tas var būt diezgan vēss lai redzētu, kas notiek 393 00:21:05,269 --> 00:21:06,810 kā jūs mainītu savu segmentu skaitu. 394 00:21:06,810 --> 00:21:09,410 395 00:21:09,410 --> 00:21:11,510 Bet jā, tā ir noteikts skaits spaiņiem. 396 00:21:11,510 --> 00:21:15,360 Kas ļauj jums fit, kā daudzi elementi, kā jums nepieciešams 397 00:21:15,360 --> 00:21:19,350 tas ir atsevišķs ķēžu rādītāju, kur jums ir saistīti sarakstus katrā spainī. 398 00:21:19,350 --> 00:21:22,850 Tas nozīmē, ka jūsu hash tabulu būs tieši izmērs 399 00:21:22,850 --> 00:21:25,440 ka jums to vajag būt, vai ne? 400 00:21:25,440 --> 00:21:27,358 Tas ir viss punkts saistītas sarakstus. 401 00:21:27,358 --> 00:21:30,850 402 00:21:30,850 --> 00:21:32,480 Atdzist. 403 00:21:32,480 --> 00:21:38,780 >> Tātad visi OK tur? 404 00:21:38,780 --> 00:21:39,801 Labi. 405 00:21:39,801 --> 00:21:40,300 Ah. 406 00:21:40,300 --> 00:21:41,860 Kas tikko notika? 407 00:21:41,860 --> 00:21:42,960 Tiešām tagad. 408 00:21:42,960 --> 00:21:45,250 Uzminiet, kāds ir nogalināšanu mani. 409 00:21:45,250 --> 00:21:52,060 >> Labi, mēs ejam, lai iedziļināties stīs, kas ir nedaudz traks. 410 00:21:52,060 --> 00:21:53,140 Man patīk hash tabulas. 411 00:21:53,140 --> 00:21:54,460 Es domāju, ka viņi tiešām forši. 412 00:21:54,460 --> 00:21:56,710 Mēģina ir cool, too. 413 00:21:56,710 --> 00:21:59,590 >> Lai vai kāds atcerēties to izmēģināt ir? 414 00:21:59,590 --> 00:22:01,740 Jums būtu devusies vairāk tā īsi lekciju? 415 00:22:01,740 --> 00:22:04,570 416 00:22:04,570 --> 00:22:06,377 Vai atceraties veida, kā tas darbojas? 417 00:22:06,377 --> 00:22:08,460 Mērķauditorija: Es esmu tikai māj ka mēs iet pār to. 418 00:22:08,460 --> 00:22:09,626 SPEAKER 1: Mēs iet pār to. 419 00:22:09,626 --> 00:22:13,100 Labi, mēs patiešām gatavojas iet pār to tagad ir tas, ko mēs esam sakot. 420 00:22:13,100 --> 00:22:14,860 >> Mērķauditorija: Tas ir par izguves koku. 421 00:22:14,860 --> 00:22:15,280 >> SPEAKER 1: Jā. 422 00:22:15,280 --> 00:22:16,196 Tas ir izguves koks. 423 00:22:16,196 --> 00:22:16,960 Awesome. 424 00:22:16,960 --> 00:22:23,610 Tik viena lieta, lai paziņojuma šeit ir tas, ka mēs meklē atsevišķas rakstzīmes 425 00:22:23,610 --> 00:22:24,480 šeit, vai ne? 426 00:22:24,480 --> 00:22:29,710 >> Tātad, pirms ar mūsu hash funkciju, mēs Tika meklē vārdiem kopumā, 427 00:22:29,710 --> 00:22:32,270 un tagad mēs meklējam vairāk pie rakstzīmēm, vai ne? 428 00:22:32,270 --> 00:22:38,380 Tāpēc mums ir Maxwell nekā šeit un Mendel. 429 00:22:38,380 --> 00:22:47,840 Tātad būtībā try-- veids, kā domāt par šo ir tas, ka katrs līmenis šeit 430 00:22:47,840 --> 00:22:49,000 ir masīvs burtiem. 431 00:22:49,000 --> 00:22:53,310 432 00:22:53,310 --> 00:22:55,790 Tātad šī ir jūsu saknes mezglu šeit, vai ne? 433 00:22:55,790 --> 00:23:01,980 Tas ir visas rakstzīmes alfabēts sākumam katru vārdu. 434 00:23:01,980 --> 00:23:06,480 >> Un ko jūs vēlaties darīt, ir teiksim, OK, mums ir dažas M vārdu. 435 00:23:06,480 --> 00:23:10,590 Mēs ejam meklēt Maxwell, tāpēc mēs ejam uz M. Un M punktiem veselu 436 00:23:10,590 --> 00:23:14,800 cits masīvs, kur katrs Vārds, kamēr pastāv 437 00:23:14,800 --> 00:23:17,044 ir vārds, kas ir kā otro burtu, 438 00:23:17,044 --> 00:23:19,460 tik ilgi, kamēr tur ir vārds, kas ir B, kā otro burtu, 439 00:23:19,460 --> 00:23:24,630 tas būs rādītājs dodas uz kādu nākamo masīvs. 440 00:23:24,630 --> 00:23:29,290 >> Tur, iespējams, nav vārds, MP kaut, 441 00:23:29,290 --> 00:23:32,980 tāpēc pie P pozīciju šajā masīvs, tas būtu vienkārši NULL. 442 00:23:32,980 --> 00:23:38,840 Tā varētu teikt, OK, nav vārdu kas ir M, kam seko P, OK? 443 00:23:38,840 --> 00:23:43,100 Tātad, ja mēs domājam par to, katru viena no šīm mazajām lietām 444 00:23:43,100 --> 00:23:47,990 faktiski ir viens no šiem lieli bloki no A līdz Z. 445 00:23:47,990 --> 00:23:55,064 Tātad, kas varētu būt viens no lietām tas ir sava veida atmaksas izmēģināt? 446 00:23:55,064 --> 00:23:56,500 >> Mērķauditorija: atmiņas daudz. 447 00:23:56,500 --> 00:23:59,940 >> SPEAKER 1: Tas ir ton atmiņas, vai ne? 448 00:23:59,940 --> 00:24:08,750 Katrs no šiem blokiem šeit pārstāv 26 vietas, 26 elementu masīvu. 449 00:24:08,750 --> 00:24:13,680 Tāpēc mēģina nokļūt neticami telpa smags. 450 00:24:13,680 --> 00:24:17,100 >> Bet tie ir ļoti ātri. 451 00:24:17,100 --> 00:24:22,540 Tik neticami ātri, bet tiešām telpu neefektīva. 452 00:24:22,540 --> 00:24:24,810 Veida ir izdomāt no kuriem viens jūs vēlaties. 453 00:24:24,810 --> 00:24:29,470 Tie ir patiešām foršs jūsu PSET, bet tie aizņem daudz atmiņas, 454 00:24:29,470 --> 00:24:30,290 lai jūs tirdzniecības off. 455 00:24:30,290 --> 00:24:31,480 Yeah? 456 00:24:31,480 --> 00:24:34,300 >> Mērķauditorija: Vai būtu iespējams izveidot izmēģināt un pēc tam 457 00:24:34,300 --> 00:24:37,967 kad jums ir visas dati to, ka jūs need-- 458 00:24:37,967 --> 00:24:39,550 Es nezinu, ja tas būtu lietderīgi. 459 00:24:39,550 --> 00:24:42,200 Man bija atbrīvojoties no visiem NULL rakstzīmes, bet pēc tam 460 00:24:42,200 --> 00:24:42,910 jūs nevarētu indeksēt them-- 461 00:24:42,910 --> 00:24:43,275 >> SPEAKER 1: Jums joprojām ir nepieciešams. 462 00:24:43,275 --> 00:24:44,854 >> Mērķauditorija: - tāpat katru reizi. 463 00:24:44,854 --> 00:24:45,520 SPEAKER 1: Jā. 464 00:24:45,520 --> 00:24:50,460 Jums ir nepieciešams NULL rakstzīmes ļaut jūs zināt, ja tur nav vārdu tur. 465 00:24:50,460 --> 00:24:52,040 Ben jums bija kaut ko vēlaties? 466 00:24:52,040 --> 00:24:52,540 OK. 467 00:24:52,540 --> 00:24:54,581 Labi, tāpēc mēs ejam iet mazliet vairāk 468 00:24:54,581 --> 00:24:58,920 tehniskajā detalizēti aiz mēģināt un strādāt ar piemēru. 469 00:24:58,920 --> 00:25:01,490 >> Labi, tāpēc tas ir viens un tas pats. 470 00:25:01,490 --> 00:25:06,290 Tā kā saistītajā sarakstā, mūsu galvenais veida of-- kas ir vārds es gribu? - 471 00:25:06,290 --> 00:25:08,350 piemēram, celtniecības bloku bija mezglā. 472 00:25:08,350 --> 00:25:12,280 In izmēģināt, mums ir arī mezglu, bet tas ir noteikts savādāk. 473 00:25:12,280 --> 00:25:17,000 >> Tātad mums ir dažas bool ka atspoguļo to, vai vārda patiešām 474 00:25:17,000 --> 00:25:23,530 pastāv šajā vietā, un pēc tam mums ir dažas masīvs here-- vai, pareizāk sakot, 475 00:25:23,530 --> 00:25:27,840 tas ir rādītājs uz masīvs 27 rakstzīmes. 476 00:25:27,840 --> 00:25:33,339 Un tas ir, šajā gadījumā, šī 27-- Es esmu pārliecināts, ka jums visiem ir, piemēram, pagaidiet, 477 00:25:33,339 --> 00:25:34,880 ir 26 burti alfabētā. 478 00:25:34,880 --> 00:25:36,010 Kāpēc mums ir 27? 479 00:25:36,010 --> 00:25:37,870 >> Tātad, atkarībā no kā jūs to īstenotu, 480 00:25:37,870 --> 00:25:43,240 tas ir no PSET kas atļauta apostrofus. 481 00:25:43,240 --> 00:25:46,010 Tātad, tāpēc papildus vienu. 482 00:25:46,010 --> 00:25:50,500 Jūs arī ir dažās gadījumi null terminatora 483 00:25:50,500 --> 00:25:53,230 tiek iekļauts kā viens no rakstzīmes, ka tas ir jāļauj, 484 00:25:53,230 --> 00:25:56,120 un tas, kā viņi pārbauda to redzēt, ja tas ir vārda beigām. 485 00:25:56,120 --> 00:26:01,340 Ja jūs interesē, izbraukšana Kaspars video study.cs50, 486 00:26:01,340 --> 00:26:04,790 kā arī Wikipedia ir dažas labas resursus tur. 487 00:26:04,790 --> 00:26:09,000 >> Bet mēs esam gatavojas iet cauri tikai veida par to, kā jūs varētu strādāt caur mēģināt 488 00:26:09,000 --> 00:26:11,010 ja jūs esat dota vienu. 489 00:26:11,010 --> 00:26:16,230 Tātad mums ir super vienkāršs vienu šeit ir vārdi "sikspārnis" un "Zoom" tiem. 490 00:26:16,230 --> 00:26:18,920 Un, kā mēs redzam šeit, tas maz vietas šeit 491 00:26:18,920 --> 00:26:22,560 pārstāv mūsu bool ka saka, jā, tas ir vārds. 492 00:26:22,560 --> 00:26:27,060 Un tad tas ir mūsu bloki no burtiem, vai ne? 493 00:26:27,060 --> 00:26:33,480 >> Tātad mēs gatavojamies iet cauri meklējot "sikspārnis" šajā mēģināt. 494 00:26:33,480 --> 00:26:38,340 Tātad sākas augšā, vai ne? 495 00:26:38,340 --> 00:26:46,290 Un mēs zinām, ka b atbilst otrais indekss, otrais elements 496 00:26:46,290 --> 00:26:47,840 šajā masīvā, jo a un b. 497 00:26:47,840 --> 00:26:51,340 Tātad aptuveni otrais. 498 00:26:51,340 --> 00:26:58,820 >> Un tā saka, OK, atdzesē, izriet, ka uz nākamais masīvs, jo, ja mēs atceramies, 499 00:26:58,820 --> 00:27:02,160 tā nav, ka katrs no šiem faktiski satur elementu. 500 00:27:02,160 --> 00:27:07,110 Katrs no šiem blokiem satur rādītāju, vai ne? 501 00:27:07,110 --> 00:27:10,030 Tā ir būtiska atšķirība, lai padarītu. 502 00:27:10,030 --> 00:27:13,450 >> Es zinu, tas ir gatavojas be-- mēģina ir tiešām grūti iegūt par pirmo reizi, 503 00:27:13,450 --> 00:27:15,241 pat tad, ja tas ir otro vai trešo reizi 504 00:27:15,241 --> 00:27:18,370 un tas joprojām ir sava veida no šķietams grūti, 505 00:27:18,370 --> 00:27:21,199 Es apsolu, ja jums iet skatīties īsa atkal rīt, 506 00:27:21,199 --> 00:27:22,740 tas būs iespējams veikt daudz lielāka jēga. 507 00:27:22,740 --> 00:27:23,890 Tas aizņem daudz sagremot. 508 00:27:23,890 --> 00:27:27,800 Es joprojām reizēm esmu piemēram, pagaidiet, kas ir mēģināt? 509 00:27:27,800 --> 00:27:29,080 Kā es varu izmantot šo? 510 00:27:29,080 --> 00:27:33,880 >> Tātad, mēs ir b šajā gadījumā, kas ir mūsu otrais rādītājs. 511 00:27:33,880 --> 00:27:40,240 Ja mums būtu, teiksim, c vai d vai jebkurš cits burts, 512 00:27:40,240 --> 00:27:45,810 mums ir nepieciešams, lai karti, ka atpakaļ uz indeksu Mūsu masīva ka atbilst. 513 00:27:45,810 --> 00:27:56,930 Lai mēs varētu veikt, piemēram, rchar un mēs vienkārši atņemt off kartēt to no 0 līdz 25. 514 00:27:56,930 --> 00:27:58,728 Ikviens labs kā mēs map mūsu rakstzīmes? 515 00:27:58,728 --> 00:28:00,440 OK. 516 00:28:00,440 --> 00:28:05,980 >> Tātad mēs ejam uz otru, un mēs redzēt, ka, jā, tas nav NULL. 517 00:28:05,980 --> 00:28:07,780 Mēs varam pāriet uz šo nākamo masīva. 518 00:28:07,780 --> 00:28:12,300 Tātad mēs ejam uz šo nākamo masīva šeit. 519 00:28:12,300 --> 00:28:15,500 >> Un mēs sakām, OK, tagad mēs ir nepieciešams, lai redzētu, vai ir šeit. 520 00:28:15,500 --> 00:28:18,590 Ir null vai to dara reāli virzīties uz priekšu? 521 00:28:18,590 --> 00:28:21,880 Tātad faktiski pārceļas nosūtīt šajā masīvā. 522 00:28:21,880 --> 00:28:24,570 Un mēs sakām, OK, t ir mūsu pēdējais burts. 523 00:28:24,570 --> 00:28:27,580 Tātad mēs ejam uz t pie indeksa. 524 00:28:27,580 --> 00:28:30,120 Un tad mēs virzāmies uz priekšu tāpēc, ka tur ir vēl viens. 525 00:28:30,120 --> 00:28:38,340 Un tas viens būtībā saka, ka, jā, tā saka, ka ir vārds here-- 526 00:28:38,340 --> 00:28:41,750 ka, ja jums sekot šo ceļš, jūs esat ieradušies 527 00:28:41,750 --> 00:28:43,210 pie vārda, ko mēs zinām, ir "bat." 528 00:28:43,210 --> 00:28:43,800 Jā? 529 00:28:43,800 --> 00:28:46,770 >> Mērķauditorija: Vai tas ir standarts, lai būtu, ka kā indekss 0 un pēc tam ir sava veida pie 1 530 00:28:46,770 --> 00:28:47,660 vai ir beigās? 531 00:28:47,660 --> 00:28:48,243 >> SPEAKER 1: Nē. 532 00:28:48,243 --> 00:28:55,360 Tātad, ja mēs atskatāmies uz mūsu deklarācija šeit, tas ir loģiska, 533 00:28:55,360 --> 00:28:59,490 tāpēc tas ir savs elements jūsu mezglā. 534 00:28:59,490 --> 00:29:03,331 Tātad, tas nav daļa no masīva. 535 00:29:03,331 --> 00:29:03,830 Atdzist. 536 00:29:03,830 --> 00:29:08,370 Tātad, kad mēs beidzam vārdu, un mēs esam šajā masīvs, ko mēs vēlamies darīt 537 00:29:08,370 --> 00:29:12,807 ir do čeku par tas vārds. 538 00:29:12,807 --> 00:29:14,390 Un šajā gadījumā tā varētu atgriezties jā. 539 00:29:14,390 --> 00:29:17,220 540 00:29:17,220 --> 00:29:24,090 >> Tātad uz šo piezīmi, mēs zinām, ka "Zoo" - Mēs zinām, kā cilvēki, kas "zoo" ir vārds, 541 00:29:24,090 --> 00:29:24,820 tiesības? 542 00:29:24,820 --> 00:29:28,990 Bet mēģināt šeit būtu saka, nē, tas nav. 543 00:29:28,990 --> 00:29:33,980 Un tas būtu teikt, ka tāpēc, ka mēs nav noteikusi to kā vārdu šeit. 544 00:29:33,980 --> 00:29:40,440 Pat ja mēs varam traversa līdz šim masīva, 545 00:29:40,440 --> 00:29:43,890 tas izmēģināt teiktu, ka nē, zoo nav jūsu vārdnīcā 546 00:29:43,890 --> 00:29:47,070 tāpēc, ka mums nav izraudzīta to kā tādu. 547 00:29:47,070 --> 00:29:52,870 >> Tik viens veids, kā to izdarīt that-- Ak, piedodiet, tas viens. 548 00:29:52,870 --> 00:29:59,450 Tātad, šajā gadījumā, "zoo" nav vārdu, bet tas ir mūsu mēģināt. 549 00:29:59,450 --> 00:30:05,690 Bet šo vienu, teiksim, mēs gribam to ieviest vārdu "pirts", kas notiek 550 00:30:05,690 --> 00:30:08,260 ir mēs sekojam through-- B, A, t. 551 00:30:08,260 --> 00:30:11,820 Mēs esam šajā masīvā, un mēs ejam meklēt h. 552 00:30:11,820 --> 00:30:15,220 >> Šajā gadījumā, kad mēs apskatīt rādītāja pie h, 553 00:30:15,220 --> 00:30:17,890 tas norādot uz null, OK? 554 00:30:17,890 --> 00:30:20,780 Tātad, ja vien tas ir skaidri norādot uz citu masīvu, 555 00:30:20,780 --> 00:30:25,000 jūs pieņemt, ka visas norādes Šajā masīvā ir norāda null. 556 00:30:25,000 --> 00:30:28,270 Tātad, šajā gadījumā, h norādot null tāpēc mēs nevaram darīt neko, 557 00:30:28,270 --> 00:30:31,540 lai tā būtu arī atgriezīsies false, "vannas" nav šeit. 558 00:30:31,540 --> 00:30:34,102 559 00:30:34,102 --> 00:30:35,810 Tāpēc tagad mēs esam patiesībā gatavojas iet cauri 560 00:30:35,810 --> 00:30:39,790 Kā mēs tiešām teikt ka "zoo" ir mūsu mēģināt. 561 00:30:39,790 --> 00:30:42,920 Kā mēs ievietot "Zoo" mūsu mēģināt? 562 00:30:42,920 --> 00:30:47,810 Tātad, tādā pašā veidā, ka mēs sākās ar mūsu saistīts saraksts, sākam pie saknes. 563 00:30:47,810 --> 00:30:50,600 Ja šaubāties, sākas sakne šīm lietām. 564 00:30:50,600 --> 00:30:53,330 >> Un mēs sakām, OK, z. 565 00:30:53,330 --> 00:30:55,650 z pastāv šajā, un tā dara. 566 00:30:55,650 --> 00:30:58,370 Tātad jūs pārvietojas uz savu nākamo masīvs, OK? 567 00:30:58,370 --> 00:31:01,482 Un tad uz nākamo, mēs sakām, OK, tas o pastāv? 568 00:31:01,482 --> 00:31:03,000 Tā dara. 569 00:31:03,000 --> 00:31:04,330 Tas vēlreiz. 570 00:31:04,330 --> 00:31:08,670 >> Un tā uz mūsu nākamo, mēs jau teicām, OK, "zoo" jau pastāv šeit. 571 00:31:08,670 --> 00:31:12,440 Viss, kas mums jādara, ir noteikts šī vienlīdzīgā uz true, ka tur ir vārds tur. 572 00:31:12,440 --> 00:31:15,260 Ja tu būtu jāievēro visu līdz pirms šī brīža, 573 00:31:15,260 --> 00:31:17,030 tas ir vārds, tāpēc vienkārši iestatīt tā vienāds ar tādu. 574 00:31:17,030 --> 00:31:17,530 Jā? 575 00:31:17,530 --> 00:31:22,550 >> Mērķauditorija: Tātad tas, ka nozīmē, ka "ba" ir vārds arī? 576 00:31:22,550 --> 00:31:24,120 >> SPEAKER 1: Nē. 577 00:31:24,120 --> 00:31:28,870 Tātad šajā gadījumā, "ba", mēs iegūtu šeit, mēs varētu teikt, ir tas vārds, 578 00:31:28,870 --> 00:31:31,590 un tas joprojām nebūs. 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 >> Mērķauditorija: Tātad, kad jums tas ir vārds, un jūs sakāt: jā, tad tas 582 00:31:36,360 --> 00:31:38,380 būs doties uz m? 583 00:31:38,380 --> 00:31:42,260 >> SPEAKER 1: Tātad tas ir jādara with-- jūs iekraušana to. 584 00:31:42,260 --> 00:31:43,640 Jūs sakāt "zoo" ir vārds. 585 00:31:43,640 --> 00:31:47,020 Kad jūs doties uz check-- tāpat, ka jūs vēlaties teikt, 586 00:31:47,020 --> 00:31:49,400 nozīmē "zoo" pastāv šajā vārdnīcā? 587 00:31:49,400 --> 00:31:54,200 Jūs tikai gatavojas meklēt "zoo" un pēc tam pārbaudiet, lai redzētu, vai tas ir vārds. 588 00:31:54,200 --> 00:31:57,291 Jūs nekad gatavojas pārvietot līdz m, jo ​​tas nav 589 00:31:57,291 --> 00:31:58,290 to, ko jūs meklējat. 590 00:31:58,290 --> 00:32:02,690 591 00:32:02,690 --> 00:32:08,070 >> Tātad, ja mēs tiešām vēlējāmies pievienot "vanna" šajā izmēģināt, 592 00:32:08,070 --> 00:32:11,390 mēs varētu darīt to pašu kā mēs to darījām ar "zooloģisko dārzu," 593 00:32:11,390 --> 00:32:15,380 izņemot, mēs redzam, ka tad, kad mēs mēģināt nokļūt h, tas neeksistē. 594 00:32:15,380 --> 00:32:20,090 Tātad, jūs varat domāt par to kā mēģinot pievienot jaunu mezglu uz saistīta sarakstā, 595 00:32:20,090 --> 00:32:27,210 lai mēs būtu nepieciešams, lai pievienotu citu viens no šiem blokiem, piemēram, tā. 596 00:32:27,210 --> 00:32:35,670 Un tad tas, ko mēs darām, ir, mēs vienkārši noteikt h Šī masīva norādot uz šo elementu. 597 00:32:35,670 --> 00:32:39,430 >> Un tad to, kas mēs vēlamies darīt šeit? 598 00:32:39,430 --> 00:32:43,110 Pievienot tas ir vienāds ar taisnība jo tas ir vārds. 599 00:32:43,110 --> 00:32:46,350 600 00:32:46,350 --> 00:32:48,150 Atdzist. 601 00:32:48,150 --> 00:32:48,700 Es zinu. 602 00:32:48,700 --> 00:32:51,170 Mēģina nav visvairāk aizraujošu. 603 00:32:51,170 --> 00:32:54,250 Ticiet man, es zinu. 604 00:32:54,250 --> 00:32:58,040 >> Tik viena lieta saprast ar mēģina, Es teicu, viņi ir ļoti efektīva. 605 00:32:58,040 --> 00:33:00,080 Tātad, mēs esam redzējuši viņi aizņem ton vietas. 606 00:33:00,080 --> 00:33:01,370 Viņi veida mulsinoši. 607 00:33:01,370 --> 00:33:03,367 Tātad, kāpēc mēs kādreiz izmantot šos? 608 00:33:03,367 --> 00:33:05,450 Mēs izmantojam šo viedokli, jo viņi neticami efektīvs. 609 00:33:05,450 --> 00:33:08,130 >> Tātad, ja jūs kādreiz meklējat up vārdu, jums ir tikai 610 00:33:08,130 --> 00:33:10,450 ko ierobežo garumu vārda. 611 00:33:10,450 --> 00:33:15,210 Tātad, ja jūs meklējat vārds, kas ir garums pieci, 612 00:33:15,210 --> 00:33:20,940 jūs tikai kādreiz nāksies veikt ne vairāk kā piecus salīdzinājumiem, OK? 613 00:33:20,940 --> 00:33:25,780 Tāpēc tas padara to būtībā nemainīgs. 614 00:33:25,780 --> 00:33:29,150 Tāpat ievietošanas un lookup ir nemainīgi laiks. 615 00:33:29,150 --> 00:33:33,750 >> Tātad, ja jūs nekad nevar saņemt kaut pastāvīgā laikā, 616 00:33:33,750 --> 00:33:35,150 tas ir tik labi, kā tas izpaužas. 617 00:33:35,150 --> 00:33:37,990 Jūs nevarat saņemt labāk nekā konstante laiks šīm lietām. 618 00:33:37,990 --> 00:33:43,150 Tātad, kas ir viens no milzīgs plusiem mēģina. 619 00:33:43,150 --> 00:33:46,780 >> Bet tas ir daudz vietas. 620 00:33:46,780 --> 00:33:50,380 Tātad jums veida ir jāizlemj kas ir vairāk svarīgi, lai jums. 621 00:33:50,380 --> 00:33:54,700 Un šodienas datoriem, telpa, kas mēģināt var aizņemt 622 00:33:54,700 --> 00:33:57,740 varbūt neietekmē Jums, ka daudz, bet varbūt 623 00:33:57,740 --> 00:34:01,350 jums ir darīšana ar kaut ko ka ir daudz, daudz vairāk lietas, 624 00:34:01,350 --> 00:34:02,810 un mēģināt vienkārši nav saprātīgi. 625 00:34:02,810 --> 00:34:03,000 Jā? 626 00:34:03,000 --> 00:34:05,610 >> Mērķauditorija: Pagaidiet, tāpēc jums ir 26 burti katru vienu? 627 00:34:05,610 --> 00:34:07,440 >> SPEAKER 1: Mmhmm. 628 00:34:07,440 --> 00:34:08,570 Jā, jums ir 26. 629 00:34:08,570 --> 00:34:16,984 Jums ir dažas ir vārds, marķieri, un pēc tam Jums ir 26 norādes katrā vienu. 630 00:34:16,984 --> 00:34:17,775 Un viņi point-- 631 00:34:17,775 --> 00:34:20,280 >> Mērķauditorija: Un katrs 26, viņi katrs ir 26? 632 00:34:20,280 --> 00:34:21,500 >> SPEAKER 1: Jā. 633 00:34:21,500 --> 00:34:27,460 Un tas ir iemesls, kāpēc, kā jūs varat redzēt, tas izplešas diezgan strauji. 634 00:34:27,460 --> 00:34:28,130 Labi. 635 00:34:28,130 --> 00:34:32,524 Tāpēc mēs esam gatavojas nokļūt kokiem, kas Es jūtos kā ir vieglāk un, iespējams, būs 636 00:34:32,524 --> 00:34:36,150 būt jauka mazliet atelpu No mēģina tur. 637 00:34:36,150 --> 00:34:39,620 Tik cerams, lielākā daļa no jums esmu redzējis koku pirms tam. 638 00:34:39,620 --> 00:34:41,820 Nepatīk diezgan tiem ārpus, ko es 639 00:34:41,820 --> 00:34:44,340 nezinu, ja kāds gāja ārā nesen. 640 00:34:44,340 --> 00:34:49,230 Es devos ābolu pacelt šīs nedēļas nogalē, un ak mans Dievs, tas bija skaisti. 641 00:34:49,230 --> 00:34:52,250 Es nezināju lapas varētu izskatīties, ka diezgan. 642 00:34:52,250 --> 00:34:53,610 >> Tātad tas ir tikai koks, labi? 643 00:34:53,610 --> 00:34:56,790 Tas ir tikai daži mezgla, un tas norāda uz ķekars citiem mezgliem. 644 00:34:56,790 --> 00:34:59,570 Kā jūs redzēt šeit, tas ir sava veida atkārtotu tēmu. 645 00:34:59,570 --> 00:35:03,720 Mezglus norādot mezgliem ir sava veida būtība daudzu datu struktūras. 646 00:35:03,720 --> 00:35:06,670 Tas vienkārši ir atkarīgs, kā mēs tos norāda uz otru 647 00:35:06,670 --> 00:35:08,600 un kā mēs traversa caur tiem un kā mēs 648 00:35:08,600 --> 00:35:14,500 ievietot lietas, kas nosaka to atšķirīgās īpašības. 649 00:35:14,500 --> 00:35:17,600 >> Tāpēc tikai daži terminoloģiju, kas es esmu, ko izmanto pirms tam. 650 00:35:17,600 --> 00:35:20,010 Tā sakne ir viss, kas ir pašā augšā. 651 00:35:20,010 --> 00:35:21,200 tas ir, ja mēs vienmēr sākas. 652 00:35:21,200 --> 00:35:23,610 Jūs varat domāt par to kā galvas arī. 653 00:35:23,610 --> 00:35:28,750 Bet kokiem, mums ir tendence atsaukties uz to kā saknes. 654 00:35:28,750 --> 00:35:32,820 >> Jebkas apakšā here-- pie ļoti, ļoti bottom-- 655 00:35:32,820 --> 00:35:34,500 tiek uzskatīti lapas. 656 00:35:34,500 --> 00:35:37,210 Tā tas iet kopā ar viss koks lieta, vai ne? 657 00:35:37,210 --> 00:35:39,860 Lapas ir malās savu koku. 658 00:35:39,860 --> 00:35:45,820 >> Un tad mums ir arī pāris termini runāt par punktiem attiecībā 659 00:35:45,820 --> 00:35:46,680 viens ar otru. 660 00:35:46,680 --> 00:35:49,700 Tātad mums ir vecāks, bērni, un brāļi un māsas. 661 00:35:49,700 --> 00:35:56,260 Tātad, šajā gadījumā, 3 ir vecāks par 5, 6, un 7. 662 00:35:56,260 --> 00:36:00,370 Tāpēc vecākiem ir kāds ir viens solis augstāk kāds tu esi 663 00:36:00,370 --> 00:36:02,940 atsaucoties uz, tik vienkārši kā ģimenes koku. 664 00:36:02,940 --> 00:36:07,090 Cerams, tas viss nedaudz nedaudz vairāk intuitīvi nekā valstīs. 665 00:36:07,090 --> 00:36:10,970 >> Brāļi un māsas ir kāds, kas ir un tas pats mātesuzņēmums, vai ne? 666 00:36:10,970 --> 00:36:13,470 Viņi šeit pašā līmenī. 667 00:36:13,470 --> 00:36:16,960 Un tad, kā es biju sakot, bērni ir tikai 668 00:36:16,960 --> 00:36:22,630 viss, kas ir viens solis tālāk mezgls jautājumu, OK? 669 00:36:22,630 --> 00:36:23,470 Atdzist. 670 00:36:23,470 --> 00:36:25,610 Tātad bināro koku. 671 00:36:25,610 --> 00:36:31,450 Var kāds briesmas minējums par vienu no raksturlielumi bināro koku? 672 00:36:31,450 --> 00:36:32,770 >> Mērķauditorija: Max divas lapas. 673 00:36:32,770 --> 00:36:33,478 >> SPEAKER 1: Labais. 674 00:36:33,478 --> 00:36:34,640 Tātad max divām lapām. 675 00:36:34,640 --> 00:36:39,730 Tātad pirms šo vienu, mums bija šo vienu ka bija trīs, bet bināro koku, 676 00:36:39,730 --> 00:36:45,000 Jums ir max divu bērni uz vienu no vecākiem, vai ne? 677 00:36:45,000 --> 00:36:46,970 Tur ir cita interesanta īpašība. 678 00:36:46,970 --> 00:36:51,550 Vai kāds zina, ka? 679 00:36:51,550 --> 00:36:52,620 Bināro koku. 680 00:36:52,620 --> 00:37:00,350 >> Tātad bināro koku būs viss par the-- šis nav sorted-- 681 00:37:00,350 --> 00:37:05,320 bet gan sakārtoti bināro koku, viss pa labi 682 00:37:05,320 --> 00:37:08,530 ir lielāks nekā vecākiem, un viss pa kreisi 683 00:37:08,530 --> 00:37:10,035 ir mazāks nekā vecākiem. 684 00:37:10,035 --> 00:37:15,690 Un tas ir viktorīna Jautājums agrāk, tāpēc labi zināt. 685 00:37:15,690 --> 00:37:19,500 Tātad kā mēs definējam to, atkal, mums ir vēl viens mezglā. 686 00:37:19,500 --> 00:37:21,880 Tas izskatās ļoti līdzīgs tam, ko? 687 00:37:21,880 --> 00:37:28,336 688 00:37:28,336 --> 00:37:28,836 Divkārt 689 00:37:28,836 --> 00:37:29,320 >> Mērķauditorija: Saistīts saraksti 690 00:37:29,320 --> 00:37:31,100 >> SPEAKER 1: dubultā saistīts saraksts, labi? 691 00:37:31,100 --> 00:37:33,690 Tātad, ja mēs aizstāt šo ar iepriekšējo un nākamo, 692 00:37:33,690 --> 00:37:35,670 tas būtu divkārt saistīts saraksts. 693 00:37:35,670 --> 00:37:40,125 Taču šajā gadījumā, mēs faktiski ir pa kreisi un pa labi, un tas arī viss. 694 00:37:40,125 --> 00:37:41,500 Pretējā gadījumā, tas ir tieši tas pats. 695 00:37:41,500 --> 00:37:43,374 Mums joprojām ir elements jūs meklējat, 696 00:37:43,374 --> 00:37:45,988 un jūs vienkārši ir divas norādes gatavojas kāds ir nākamais. 697 00:37:45,988 --> 00:37:49,210 698 00:37:49,210 --> 00:37:51,870 Jā, tāpēc bināro meklēšanas koku. 699 00:37:51,870 --> 00:37:57,665 Ja mēs pamanām, visu uz tieši šeit ir lielāks than-- 700 00:37:57,665 --> 00:37:59,850 vai viss uzreiz lai tieši šeit 701 00:37:59,850 --> 00:38:02,840 ir lielāks nekā, viss šeit ir mazāks nekā. 702 00:38:02,840 --> 00:38:06,980 703 00:38:06,980 --> 00:38:14,000 >> Tātad, ja mēs būtu jāmeklē, to vajadzētu izskatīties ļoti tuvu bināro meklēšanu 704 00:38:14,000 --> 00:38:14,910 šeit, vai ne? 705 00:38:14,910 --> 00:38:17,640 Izņemot, nevis meklē pusi masīva, 706 00:38:17,640 --> 00:38:21,720 mēs esam tikai apskatot vai nu pa kreisi sānu vai labajā pusē no koka. 707 00:38:21,720 --> 00:38:24,850 Tātad, tas kļūst mazliet vienkāršāku, es domāju. 708 00:38:24,850 --> 00:38:29,300 >> Tātad, ja jūsu sakne ir NULL, protams, tas ir tikai viltus. 709 00:38:29,300 --> 00:38:33,470 Un, ja tas ir tur, protams, tā ir taisnība. 710 00:38:33,470 --> 00:38:35,320 Ja tas ir mazāk, nekā, mēs meklējam pa kreisi. 711 00:38:35,320 --> 00:38:37,070 Ja tas ir lielāks nekā, mēs meklētu tiesības. 712 00:38:37,070 --> 00:38:39,890 Tas ir tieši tāpat kā bināro meklēšanu, tikai atšķirīgs datu struktūra 713 00:38:39,890 --> 00:38:40,600 ka mēs izmantojam. 714 00:38:40,600 --> 00:38:42,790 Tā vietā, lai masīva, tas ir tikai bināro koku. 715 00:38:42,790 --> 00:38:45,820 716 00:38:45,820 --> 00:38:48,090 >> Labi, skursteņi. 717 00:38:48,090 --> 00:38:51,550 Un arī, izskatās, ka mēs varētu būt mazliet laika. 718 00:38:51,550 --> 00:38:54,460 Ja mēs to darām, es esmu laimīgs, lai dotos uz kādu no to vēlreiz. 719 00:38:54,460 --> 00:38:56,856 Labi, tāpēc skursteņi. 720 00:38:56,856 --> 00:39:02,695 Vai kāds atceras, ko stacks-- jebkuri kaudze īpašības? 721 00:39:02,695 --> 00:39:05,550 722 00:39:05,550 --> 00:39:10,400 >> Labi, tāpēc lielākā daļa no mums, es domāju, ēst pusdienas halls-- 723 00:39:10,400 --> 00:39:13,100 tik daudz, cik mēs negribētu. 724 00:39:13,100 --> 00:39:16,900 Bet, protams, jūs varat iedomāties kaudze burtiski tāpat kā kaudze paplātes 725 00:39:16,900 --> 00:39:18,460 vai kaudze lietas. 726 00:39:18,460 --> 00:39:21,820 Un, kas ir svarīgi apzināties, ka tā ir 727 00:39:21,820 --> 00:39:26,850 something-- īpašība ka mēs to saucam pēc-- ir LIFO. 728 00:39:26,850 --> 00:39:28,450 Vai kāds zina, ko tas nozīmē? 729 00:39:28,450 --> 00:39:29,070 Mmhmm? 730 00:39:29,070 --> 00:39:30,650 >> Mērķauditorija: pēdējais iekšā, pirmais ārā. 731 00:39:30,650 --> 00:39:32,250 >> SPEAKER 1: Tiesības, pēdējais iekšā, pirmais ārā. 732 00:39:32,250 --> 00:39:36,585 Tātad, ja mēs zinām, ja mēs esam kraušanas lietas augšu, vieglākais lieta paķert off-- 733 00:39:36,585 --> 00:39:39,570 un varbūt vienīgais, ko mēs varam paķert off ja mūsu steks ir liels enough-- 734 00:39:39,570 --> 00:39:40,850 ir tas, ka top elements. 735 00:39:40,850 --> 00:39:43,460 Tātad, kāds tika likts uz last-- kā mēs redzam šeit, 736 00:39:43,460 --> 00:39:46,370 kāds bija uzstājām par lielāko recently-- ir 737 00:39:46,370 --> 00:39:51,160 būs pirmais lieta, ka mēs pop off, OK? 738 00:39:51,160 --> 00:39:56,324 >> Tātad, kas mums šeit ir cits typedef struktūrai. 739 00:39:56,324 --> 00:39:58,740 Tas ir patiešām vienkārši patīk crash kurss datu struktūra, 740 00:39:58,740 --> 00:40:01,650 tāpēc tur ir daudz izmet pie jums puiši. 741 00:40:01,650 --> 00:40:02,540 Es zinu. 742 00:40:02,540 --> 00:40:04,970 Tātad vēl viens struktūrai. 743 00:40:04,970 --> 00:40:06,740 Yay struktūrām. 744 00:40:06,740 --> 00:40:16,660 >> Un šajā gadījumā, tas ir sava rādītājs masīvs, kas ir dažas iespējas. 745 00:40:16,660 --> 00:40:20,830 Tātad šis ir mūsu kaudze Šeit, tāpat kā mūsu faktisko masīvs 746 00:40:20,830 --> 00:40:22,520 kas ir saimniecības mūsu elementus. 747 00:40:22,520 --> 00:40:24,850 Un tad šeit mums ir dažas izmēru. 748 00:40:24,850 --> 00:40:31,170 >> Un parasti, jūs vēlaties, lai saglabātu izsekot, cik liels jūsu kaudze ir 749 00:40:31,170 --> 00:40:36,180 jo tas, ko tā gatavojas atļaut Jums jādara, ir, ja jūs zināt izmēru, 750 00:40:36,180 --> 00:40:39,170 tas ļauj teikt, Labi, es esmu ar jaudu? 751 00:40:39,170 --> 00:40:40,570 Vai es varu pievienot kaut ko vairāk? 752 00:40:40,570 --> 00:40:44,650 Un tas arī stāsta jums kur top jūsu kaudze 753 00:40:44,650 --> 00:40:48,180 ir, lai jūs zināt, ko jūs faktiski var pacelties. 754 00:40:48,180 --> 00:40:51,760 Un tas ir patiešām gatavojas būt nedaudz vairāk skaidrs šeit. 755 00:40:51,760 --> 00:40:57,350 >> Tātad push, viena lieta, ja jums kādreiz īstenot push, 756 00:40:57,350 --> 00:41:01,330 kā man bija tikai saku, Jūsu kaudze ir ierobežots izmērs, vai ne? 757 00:41:01,330 --> 00:41:03,990 Mūsu masīvs bija dažas spējas. 758 00:41:03,990 --> 00:41:04,910 Tas ir masīvs. 759 00:41:04,910 --> 00:41:08,930 Tas ir fiksēts lielums, tāpēc mums ir nepieciešams, lai pārliecināties, ka mēs esam ne liekot vairāk 760 00:41:08,930 --> 00:41:11,950 mūsu masīvs, nekā mēs faktiski ir vietas. 761 00:41:11,950 --> 00:41:16,900 >> Tātad, ja jūs veidojat push funkcija, pirmā lieta, jums jādara, ir teikt, OK, 762 00:41:16,900 --> 00:41:18,570 man ir vieta manā kaudze? 763 00:41:18,570 --> 00:41:23,330 Jo, ja man nav, piedodiet, Es nevaru saglabāt savu elementu. 764 00:41:23,330 --> 00:41:28,980 Ja es daru, tad jūs vēlaties, lai saglabātu tā augšpusē skursteņa, vai ne? 765 00:41:28,980 --> 00:41:31,325 >> Un tas ir iemesls, kāpēc mēs esam sekot mūsu izmēra. 766 00:41:31,325 --> 00:41:35,290 Ja mums nav sekot līdzi mūsu lieluma, mēs nezinām, kur likt to. 767 00:41:35,290 --> 00:41:39,035 Mēs nezinām, cik daudzas lietas ir mūsu masīvā jau. 768 00:41:39,035 --> 00:41:41,410 Tāpat kā acīmredzot ir veidi ka varbūt jūs varētu darīt to. 769 00:41:41,410 --> 00:41:44,610 Jūs varētu sāktu visu null un pēc tam pārbaudīt jaunāko NULL, 770 00:41:44,610 --> 00:41:47,950 bet daudz vieglāk lieta ir tikai teikt, OK, sekot izmēra. 771 00:41:47,950 --> 00:41:51,840 Tāpat kā es zinu, man ir četri elementi manā masīvs, tāpēc nākamā lieta 772 00:41:51,840 --> 00:41:55,930 ka mēs likts uz, mēs esam gatavojas glabāt pie indeksu 4. 773 00:41:55,930 --> 00:42:00,940 Un tad, protams, tas nozīmē, ka Jūs esat veiksmīgi uzstāja kaut ko 774 00:42:00,940 --> 00:42:03,320 uz jūsu kaudze, jūs vēlas, lai palielinātu izmēru 775 00:42:03,320 --> 00:42:08,880 tā, ka jūs zināt, kur jūs esat tik ka jūs varat push vairāk lietas, par. 776 00:42:08,880 --> 00:42:12,730 >> Tātad, ja mēs cenšamies, lai pop kaut off kaudze, 777 00:42:12,730 --> 00:42:16,072 kādi varētu būt pirmā lieta ka mēs vēlamies, lai pārbaudītu? 778 00:42:16,072 --> 00:42:18,030 Jūs mēģināt veikt kaut pie jūsu kaudze. 779 00:42:18,030 --> 00:42:21,710 780 00:42:21,710 --> 00:42:24,781 Vai esat pārliecināts, ka tur ir kaut kas jūsu kaudze? 781 00:42:24,781 --> 00:42:25,280 Nē. 782 00:42:25,280 --> 00:42:26,894 Tātad, ko, iespējams, mēs vēlamies, lai pārbaudītu? 783 00:42:26,894 --> 00:42:27,810 >> Mērķauditorija: [dzirdams]. 784 00:42:27,810 --> 00:42:29,880 SPEAKER 1: Pārbaudiet izmēru? 785 00:42:29,880 --> 00:42:31,840 Izmērs. 786 00:42:31,840 --> 00:42:38,520 Tāpēc mēs vēlamies, lai pārbaudītu, lai redzētu, vai Mūsu izmērs ir lielāks par 0, OK? 787 00:42:38,520 --> 00:42:44,970 Un, ja tā ir, tad mēs vēlamies, lai samazinātu Mūsu izmērs pa 0 un tad atpakaļ to. 788 00:42:44,970 --> 00:42:45,840 Kāpēc? 789 00:42:45,840 --> 00:42:49,950 >> Pirmajā one mēs stumšanu, mēs uzstāja, ka 790 00:42:49,950 --> 00:42:52,460 uz izmēru un atjaunināti izmēru. 791 00:42:52,460 --> 00:42:57,850 Šajā gadījumā, mēs decrementing izmēru un tad ņemot to nost, noplūkšanas to 792 00:42:57,850 --> 00:42:58,952 no mūsu masīva. 793 00:42:58,952 --> 00:42:59,826 Kāpēc mēs varētu darīt? 794 00:42:59,826 --> 00:43:04,800 795 00:43:04,800 --> 00:43:11,811 Tātad, ja man ir viena lieta, par manu steku, kāds būtu mans izmērs šajā brīdī? 796 00:43:11,811 --> 00:43:13,140 1. 797 00:43:13,140 --> 00:43:15,180 >> Un kur ir elements 1 uzglabāti? 798 00:43:15,180 --> 00:43:17,621 Kādā indekss? 799 00:43:17,621 --> 00:43:18,120 AUDITORIJA: 0. 800 00:43:18,120 --> 00:43:19,060 SPEAKER 1: 0. 801 00:43:19,060 --> 00:43:22,800 Tātad, šajā gadījumā, mēs vienmēr vajag veikt sure-- 802 00:43:22,800 --> 00:43:27,630 nevis atpakaļ lielums mīnus 1, jo mēs 803 00:43:27,630 --> 00:43:31,730 zinu, ka mūsu elements būs jāuzglabā 1 mazāk 804 00:43:31,730 --> 00:43:34,705 neatkarīgi no mūsu izmērs ir, šis tikai rūpējas par to. 805 00:43:34,705 --> 00:43:36,080 Tas ir nedaudz vairāk elegants veids. 806 00:43:36,080 --> 00:43:41,220 Un mēs vienkārši Samazināt OUR lielumu un pēc tam atgriezties izmēru. 807 00:43:41,220 --> 00:43:42,330 Mmhmm? 808 00:43:42,330 --> 00:43:45,300 >> Mērķauditorija: Es domāju, tikai kopumā, kāpēc varētu šo datu struktūra 809 00:43:45,300 --> 00:43:47,800 būt izdevīga? 810 00:43:47,800 --> 00:43:50,660 >> SPEAKER 1: Tas ir atkarīgs no jūsu konteksta. 811 00:43:50,660 --> 00:43:57,420 Tātad daži no teorijas, ja jūs strādājat with-- Labi, 812 00:43:57,420 --> 00:44:02,750 ļaujiet man redzēt, ja ir izdevīga viena kas ir izdevīgi vairāk nekā ārpus 813 00:44:02,750 --> 00:44:05,420 PV. 814 00:44:05,420 --> 00:44:15,780 Ar skursteņi, jebkurā laikā jums ir nepieciešams sekot kaut kas 815 00:44:15,780 --> 00:44:20,456 ir pavisam nesen pievienotā ir tad, kad jūs gatavojas vēlaties izmantot kaudze. 816 00:44:20,456 --> 00:44:24,770 >> Un es nevaru iedomāties preces piemērs, ka tieši tagad. 817 00:44:24,770 --> 00:44:29,955 Bet kad jaunākais lieta ir ļoti svarīgi, lai jūs, 818 00:44:29,955 --> 00:44:31,705 tas ir tad, kad kaudze būs noderīga. 819 00:44:31,705 --> 00:44:35,797 820 00:44:35,797 --> 00:44:39,330 Es cenšos domāt, ja tur ir labs par to. 821 00:44:39,330 --> 00:44:43,720 Ja es domāju par labu piemēru nākamo 20 minūtes, es noteikti pateikt. 822 00:44:43,720 --> 00:44:49,455 >> Bet kopumā, ja tur ir kaut kas, kā jau teicu visvairāk, kur lielākā daļa nesen 823 00:44:49,455 --> 00:44:52,470 ir vissvarīgākais, kas ir kur kaudze sāk spēlēt. 824 00:44:52,470 --> 00:44:58,860 Bet rindas ir sava veida pretējo. 825 00:44:58,860 --> 00:44:59,870 Un visi mazie suņi. 826 00:44:59,870 --> 00:45:00,890 Vai tas nav liels, labi? 827 00:45:00,890 --> 00:45:03,299 Es jūtu, ka vajadzētu vienkārši ir zaķa video 828 00:45:03,299 --> 00:45:05,090 tiesības vidū sadaļa jums puiši 829 00:45:05,090 --> 00:45:08,870 jo tas ir intensīva sadaļa. 830 00:45:08,870 --> 00:45:10,480 >> Tā rinda. 831 00:45:10,480 --> 00:45:12,710 Būtībā rinda ir kā līniju. 832 00:45:12,710 --> 00:45:15,780 Jūs guys Es esmu pārliecināts, ka šī izmantošana ikdienā, tāpat kā mūsu ēdamzāles. 833 00:45:15,780 --> 00:45:18,160 Tāpēc mums ir jāiet un saņemt mūsu paplātes, es esmu 834 00:45:18,160 --> 00:45:21,260 pārliecināts, ka jums ir jāgaida rindā zvēliens vai saņemtu savu pārtiku. 835 00:45:21,260 --> 00:45:24,650 >> Tātad atšķirība šeit ir tas, ka tas ir FIFO. 836 00:45:24,650 --> 00:45:30,090 Tātad, ja LIFO pēdējais bija pirmais out, FIFO ir pirmais iekšā, pirmais ārā. 837 00:45:30,090 --> 00:45:33,400 Tātad, tas ir, ja kāds jūs nodot gada pirmais ir jūsu svarīgākais. 838 00:45:33,400 --> 00:45:35,540 Tātad, ja jūs gaidīja tādā line-- var tevi 839 00:45:35,540 --> 00:45:39,130 iedomājieties, ja jūs devās uz iet saņemt jaunu iPhone 840 00:45:39,130 --> 00:45:42,800 un tas bija kaudze, kurā pēdējais cilvēks rindā dabūja to, pirmkārt, 841 00:45:42,800 --> 00:45:44,160 cilvēki nogalināt viens otru. 842 00:45:44,160 --> 00:45:49,800 >> Tātad FIFO, mēs visi ļoti labi pārzina ar reālajā pasaulē šeit 843 00:45:49,800 --> 00:45:54,930 un tas viss ir saistīts ar faktiski veida atjaunošanās visu šo līniju 844 00:45:54,930 --> 00:45:56,900 un rindu struktūru. 845 00:45:56,900 --> 00:46:02,390 Tādējādi, kaut arī ar steku, mums ir push un pop. 846 00:46:02,390 --> 00:46:06,440 Ar rindā, mēs esam Enqueue un dequeue. 847 00:46:06,440 --> 00:46:10,910 Tātad Enqueue būtībā nozīmē ielieciet to uz muguras, 848 00:46:10,910 --> 00:46:13,680 un dequeue līdzekļiem veikt off no priekšpuses. 849 00:46:13,680 --> 00:46:18,680 Tātad mūsu datu struktūra ir mazliet vairāk sarežģī. 850 00:46:18,680 --> 00:46:21,060 Mums ir arī otra lieta, lai sekotu. 851 00:46:21,060 --> 00:46:25,950 >> Tātad bez galvas, tas Tieši kaudze, vai ne? 852 00:46:25,950 --> 00:46:27,900 Tas ir struktūra ir tāda pati kā skursteni. 853 00:46:27,900 --> 00:46:32,480 Vienīgais, kas atšķiras tagad mēs ir šī galva, kas tas, ko jūs domājat 854 00:46:32,480 --> 00:46:34,272 gatavojas sekot? 855 00:46:34,272 --> 00:46:35,510 >> Mērķauditorija: Pirmais. 856 00:46:35,510 --> 00:46:38,685 >> SPEAKER 1: labi, Pirmā lieta, ko mēs ieliekam. 857 00:46:38,685 --> 00:46:41,130 Mūsu rindā vadītājs. 858 00:46:41,130 --> 00:46:42,240 Kurš ir pirmais pēc kārtas. 859 00:46:42,240 --> 00:46:45,300 860 00:46:45,300 --> 00:46:49,420 Viss ir labi, tāpēc, ja mēs Enqueue. 861 00:46:49,420 --> 00:46:52,720 862 00:46:52,720 --> 00:46:55,920 Atkal, ar jebkuru no šīs datu struktūras, 863 00:46:55,920 --> 00:46:59,760 jo mums ir darīšana ar masīvu, mums ir nepieciešams, lai pārbaudītu, ja mums ir telpa. 864 00:46:59,760 --> 00:47:03,290 >> Tas ir veids kā mani stāsta jūs guys, ja atverat failu, 865 00:47:03,290 --> 00:47:04,760 jums ir nepieciešams, lai pārbaudītu null. 866 00:47:04,760 --> 00:47:08,330 Ar kādu no šiem skursteņi un rindas, jums ir nepieciešams 867 00:47:08,330 --> 00:47:13,420 lai redzētu, vai tur ir vietas, jo mēs esam nodarbojas ar fiksētu izmēru masīvs, 868 00:47:13,420 --> 00:47:16,030 kā mēs redzam here-- 0, 1 visi līdz 5. 869 00:47:16,030 --> 00:47:20,690 Tātad, ko mēs darām šajā gadījumā ir pārbaude lai redzētu, vai mums vēl ir vietas. 870 00:47:20,690 --> 00:47:23,110 Vai mūsu lielums ir mazāks par jaudu? 871 00:47:23,110 --> 00:47:28,480 >> Ja tā, tad mums ir nepieciešams, lai saglabātu to astes un mēs atjaunināt savu izmēru. 872 00:47:28,480 --> 00:47:30,250 Tātad, ko varētu aste būt šajā gadījumā? 873 00:47:30,250 --> 00:47:32,360 Tas nav skaidri uzrakstīts. 874 00:47:32,360 --> 00:47:33,380 Kā mēs uzglabāt to? 875 00:47:33,380 --> 00:47:34,928 Ko būtu aste būt? 876 00:47:34,928 --> 00:47:38,600 877 00:47:38,600 --> 00:47:40,190 >> Tāpēc pieņemsim iet cauri šim piemēram. 878 00:47:40,190 --> 00:47:44,590 Tātad šī ir masīvs izmēru 6, vai ne? 879 00:47:44,590 --> 00:47:49,220 Un mums ir tiesības tagad, mūsu izmērs ir 5. 880 00:47:49,220 --> 00:47:55,240 Un, kad mēs ieliekam to, tas notiek iedziļināties piektajā indeksā, vai ne? 881 00:47:55,240 --> 00:47:57,030 Tātad uzglabāt pie astes. 882 00:47:57,030 --> 00:48:05,600 >> Vēl viens veids, kā rakstīt asti būtu vienkārši mūsu masīvs pie indeksa lielumu, vai ne? 883 00:48:05,600 --> 00:48:07,560 Tas ir lielums 5. 884 00:48:07,560 --> 00:48:11,490 Nākamā lieta, gatavojas doties uz 5. 885 00:48:11,490 --> 00:48:12,296 Forši? 886 00:48:12,296 --> 00:48:13,290 OK. 887 00:48:13,290 --> 00:48:16,350 Tas izpaužas nedaudz sarežģītāka kad mēs sākam messing ar galvu. 888 00:48:16,350 --> 00:48:17,060 Jā? 889 00:48:17,060 --> 00:48:20,090 >> Mērķauditorija: Vai tas nozīmē, ka mēs būtu paziņoja, masīvu, kas 890 00:48:20,090 --> 00:48:23,880 bija pieci elementi garš un Tad mēs pievienojam uz to? 891 00:48:23,880 --> 00:48:24,730 >> SPEAKER 1: Nē. 892 00:48:24,730 --> 00:48:27,560 Tātad šajā gadījumā, tas ir kaudze. 893 00:48:27,560 --> 00:48:31,760 Tas būtu jādeklarē kā masīva izmēru 6. 894 00:48:31,760 --> 00:48:37,120 Un, šajā gadījumā, mēs vienkārši ir viena telpa pa kreisi. 895 00:48:37,120 --> 00:48:42,720 >> Labi, tā viena lieta ir šajā gadījumā, ja mūsu galva ir 0, 896 00:48:42,720 --> 00:48:45,270 tad mēs vienkārši var pievienot to izmēru. 897 00:48:45,270 --> 00:48:51,020 Bet tā kļūst nedaudz sarežģītāks jo patiesībā, tie 898 00:48:51,020 --> 00:48:52,840 nav slide par to, tāpēc es esmu gatavojas 899 00:48:52,840 --> 00:48:56,670 izdarīt vienu, jo tas nav gluži tik vienkārši, kad jums 900 00:48:56,670 --> 00:48:59,230 sāk atbrīvoties no lietām. 901 00:48:59,230 --> 00:49:03,920 Tādējādi, kaut arī ar steku Jums tikai kādreiz ir 902 00:49:03,920 --> 00:49:08,920 jāuztraucas par to izmērs ir ja jūs pievienojat kaut ko, 903 00:49:08,920 --> 00:49:15,710 ar rindā jums arī nepieciešams, lai Pārliecinieties, ka jūsu galva ir jāatskaitās, 904 00:49:15,710 --> 00:49:20,760 jo cool lieta par rindām ir tas, ka, ja jūs neesat pie jaudu, 905 00:49:20,760 --> 00:49:23,040 Jūs faktiski var padarīt to wrap apkārt. 906 00:49:23,040 --> 00:49:28,810 >> Labi, tāpēc viens thing-- oh, tas ir briesmīgi krīts. 907 00:49:28,810 --> 00:49:31,815 Viena lieta, kas jāapsver, ir tas gadījums. 908 00:49:31,815 --> 00:49:35,514 909 00:49:35,514 --> 00:49:37,140 Mēs vienkārši darīt pieci. 910 00:49:37,140 --> 00:49:41,810 Labi, tāpēc mēs ejam saka galva ir šeit. 911 00:49:41,810 --> 00:49:46,140 Tas ir 0, 1, 2, 3, 4. 912 00:49:46,140 --> 00:49:54,210 >> Galva ir tur, un lūdzu, ir lietas, kas viņiem. 913 00:49:54,210 --> 00:49:58,340 Un mēs vēlamies, lai pievienotu kaut ko, vai ne? 914 00:49:58,340 --> 00:50:01,170 Tātad lieta, ka mums ir zina, ir tas, ka galva ir vienmēr 915 00:50:01,170 --> 00:50:05,620 gatavojas pārvietot šo ceļu, un tad cilpa atpakaļ ap, OK? 916 00:50:05,620 --> 00:50:10,190 >> Tāpēc šī rinda ir vieta, vai ne? 917 00:50:10,190 --> 00:50:13,950 Tā ir vieta, kas jau pašā sākumā, sava veida pretstatu to. 918 00:50:13,950 --> 00:50:17,920 Tātad, kas mums jādara, ir mums nepieciešams, lai aprēķinātu asti. 919 00:50:17,920 --> 00:50:20,530 Ja jūs zināt, ka jūsu galva nav pārvietots, asti 920 00:50:20,530 --> 00:50:24,630 ir tikai jūsu masīvs at indekss izmēru. 921 00:50:24,630 --> 00:50:30,000 >> Bet patiesībā, ja jūs izmantojat rindā, tava galva, iespējams, tiek atjaunināts. 922 00:50:30,000 --> 00:50:33,890 Tātad, kas jums jādara, ir faktiski aprēķināt asti. 923 00:50:33,890 --> 00:50:39,990 Tātad, ko mēs darām, ir šī formula šeit, ko es esmu gatavojas let jums 924 00:50:39,990 --> 00:50:42,680 puiši padomāt, un Tad mēs runājam par to. 925 00:50:42,680 --> 00:50:49,567 926 00:50:49,567 --> 00:50:50,400 Tātad, tas ir spēja. 927 00:50:50,400 --> 00:50:55,890 928 00:50:55,890 --> 00:50:59,660 >> Tātad šis būs patiešām dot jums veids, kā to izdarīt. 929 00:50:59,660 --> 00:51:03,205 930 00:51:03,205 --> 00:51:04,330 Jo šajā gadījumā, ko? 931 00:51:04,330 --> 00:51:09,205 Mūsu galvenais ir 1, mūsu izmērs ir 4. 932 00:51:09,205 --> 00:51:11,760 933 00:51:11,760 --> 00:51:18,490 Ja mēs mod, ka līdz 5, mēs 0, kas ir, ja mums vajadzētu ievadi. 934 00:51:18,490 --> 00:51:23,320 935 00:51:23,320 --> 00:51:26,080 >> Tātad, tad nākamajā gadījumā, ja mēs to izdarītu, 936 00:51:26,080 --> 00:51:33,390 mēs sakām, OK, pieņemsim dequeue kaut ko. 937 00:51:33,390 --> 00:51:34,390 Mēs dequeue šo. 938 00:51:34,390 --> 00:51:37,740 Ņemam šo elementu, vai ne? 939 00:51:37,740 --> 00:51:47,930 >> Un tagad mūsu galvenais ir vērsta šeit un mēs vēlamies pievienot cita lieta. 940 00:51:47,930 --> 00:51:52,470 Šis ir būtībā atpakaļ mūsu līnijas, vai ne? 941 00:51:52,470 --> 00:51:55,450 Rindas var wrap ap masīvs. 942 00:51:55,450 --> 00:51:57,310 Tas ir viens no galvenajām atšķirībām. 943 00:51:57,310 --> 00:51:58,780 Skursteņi, jūs nevarat izdarīt. 944 00:51:58,780 --> 00:52:01,140 >> Ar rindām, varat jo viss, ka jautājumus 945 00:52:01,140 --> 00:52:03,940 ir tas, ka jūs zināt, ko nesen tika pievienots. 946 00:52:03,940 --> 00:52:10,650 Jo viss tiks pievienots šis pa kreisi virzienā, šajā gadījumā, 947 00:52:10,650 --> 00:52:16,480 un tad wrap apkārt, jūs varat turpināt liekot jaunus elementus 948 00:52:16,480 --> 00:52:18,830 priekšā masīva tāpēc, ka tas nav īsti 949 00:52:18,830 --> 00:52:20,640 priekšpuse masīva vairs. 950 00:52:20,640 --> 00:52:26,320 Jūs varat domāt par sākuma masīvs, kā, kur jūsu galva patiesībā ir. 951 00:52:26,320 --> 00:52:29,710 >> Tātad šī formula ir, kā jūs varat aprēķināt savu asti. 952 00:52:29,710 --> 00:52:32,780 953 00:52:32,780 --> 00:52:35,610 Vai tas ir jēga? 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 Labi, dequeue, un pēc tam jums puiši ir 10 minūtes 957 00:52:44,040 --> 00:52:48,840 uzdot man jebkurus precizēt jautājumus Jūs vēlaties, jo es zinu, tas ir traki. 958 00:52:48,840 --> 00:52:51,980 >> Visi pa labi, lai tajā pašā way-- Es nezinu, ja jūs guys pamanījuši, 959 00:52:51,980 --> 00:52:53,450 bet CS ir par modeļiem. 960 00:52:53,450 --> 00:52:57,370 Lietas ir diezgan daudz Tas pats, tikai ar sīkiem tweaks. 961 00:52:57,370 --> 00:52:58,950 Tātad pats šeit. 962 00:52:58,950 --> 00:53:04,040 Mums ir nepieciešams, lai pārbaudītu, lai redzētu, vai mēs patiešām ir kaut kas mūsu rindā, vai ne? 963 00:53:04,040 --> 00:53:05,960 Saka, OK, ir mūsu izmērs ir lielāks par 0? 964 00:53:05,960 --> 00:53:06,730 Atdzist. 965 00:53:06,730 --> 00:53:10,690 >> Ja mēs to darām, tad mēs virzāmies savu galvu, kas ir tas, ko es tikko demonstrēja šeit. 966 00:53:10,690 --> 00:53:13,870 Mēs atjaunināt mūsu galvu par vienu vairāk. 967 00:53:13,870 --> 00:53:18,390 Un tad mēs Samazināt mūsu izmērs un atgriezties elementu. 968 00:53:18,390 --> 00:53:21,000 969 00:53:21,000 --> 00:53:26,250 >> Tur ir daudz konkrētāks kodu study.cs50.net, 970 00:53:26,250 --> 00:53:29,440 un es ļoti ieteiktu iet caur to, ja jums ir laiks, 971 00:53:29,440 --> 00:53:30,980 pat ja tas ir tikai pseido-kodu. 972 00:53:30,980 --> 00:53:35,980 Un, ja jūs puiši vēlas runāt caur kas ar mani viens pret vienu, lūdzu, ļaujiet man 973 00:53:35,980 --> 00:53:37,500 zināt. 974 00:53:37,500 --> 00:53:38,770 Es gribētu būt laimīgs. 975 00:53:38,770 --> 00:53:42,720 Datu struktūras, ja Jūs lietojat CS 124, jūs 976 00:53:42,720 --> 00:53:47,830 zinu, ka datu struktūras iegūt ļoti jautri, un tas ir tikai sākums. 977 00:53:47,830 --> 00:53:50,350 >> Tāpēc es zinu, tas ir grūti. 978 00:53:50,350 --> 00:53:51,300 Tas ir OK. 979 00:53:51,300 --> 00:53:52,410 Mēs cīnāmies. 980 00:53:52,410 --> 00:53:53,630 Es joprojām darīt. 981 00:53:53,630 --> 00:53:56,660 Tāpēc nav jāuztraucas pārāk daudz par to. 982 00:53:56,660 --> 00:54:02,390 >> Bet tas ir būtībā jūsu crash kursu datu struktūras. 983 00:54:02,390 --> 00:54:03,400 Es zinu, tas ir daudz. 984 00:54:03,400 --> 00:54:06,860 Vai ir kaut kas, ko mēs gribētu iet atkal? 985 00:54:06,860 --> 00:54:09,400 Jebkas, mēs vēlamies runāt cauri? 986 00:54:09,400 --> 00:54:10,060 Jā? 987 00:54:10,060 --> 00:54:16,525 >> Mērķauditorija: Šajā Piemēram, tāpēc jaunais astes ir 0 pār to? 988 00:54:16,525 --> 00:54:17,150 SPEAKER 1: Jā. 989 00:54:17,150 --> 00:54:18,230 AUDITORIJA: OK. 990 00:54:18,230 --> 00:54:24,220 Tātad iet cauri, jūs ir 1 plus 4 or-- 991 00:54:24,220 --> 00:54:27,671 >> SPEAKER 1: Tātad jūs sakot, ja mēs gribam iet darīt atkal? 992 00:54:27,671 --> 00:54:28,296 AUDITORIJA: Jā. 993 00:54:28,296 --> 00:54:38,290 Tātad, ja jums ir norādītas out-- kur ir Jūs aprēķinot asti no in that? 994 00:54:38,290 --> 00:54:44,260 >> SPEAKER 1: Tātad asti bija in-- es mainīja šo. 995 00:54:44,260 --> 00:54:52,010 Tātad šajā piemērā šeit, tas bija masīvs mēs meklējam, OK? 996 00:54:52,010 --> 00:54:54,670 Tāpēc mums ir lietas 1, 2, 3 un 4. 997 00:54:54,670 --> 00:55:05,850 Tātad, mēs ir mūsu galva ir vienāds ar 1, pie šis punkts, un mūsu lielums ir vienāds ar 4 998 00:55:05,850 --> 00:55:07,050 šajā brīdī, vai ne? 999 00:55:07,050 --> 00:55:08,960 >> Jūs visi piekrīt, ka tas ir? 1000 00:55:08,960 --> 00:55:14,620 Tātad mēs galvu plus izmēru, kas dod mums 5, un tad mēs mod ar 5. 1001 00:55:14,620 --> 00:55:20,690 Mēs saņemam 0, kas stāsta mums, ka 0 ir kur ir mūsu astes, kur mums ir vieta. 1002 00:55:20,690 --> 00:55:22,010 >> Mērķauditorija: Kas ir vāciņš? 1003 00:55:22,010 --> 00:55:23,520 >> SPEAKER 1: jauda. 1004 00:55:23,520 --> 00:55:24,020 Piedodiet. 1005 00:55:24,020 --> 00:55:29,640 Tāpēc, ka ir izmēru jūsu masīvs. 1006 00:55:29,640 --> 00:55:35,210 1007 00:55:35,210 --> 00:55:36,047 Jā? 1008 00:55:36,047 --> 00:55:39,210 >> Mērķauditorija: [dzirdams] pirms mēs atgriežamies elementu? 1009 00:55:39,210 --> 00:55:46,270 >> SPEAKER 1: Tātad mēs virzāmies galvu vai atgriešanās brīdi? 1010 00:55:46,270 --> 00:55:52,680 Tātad, ja mēs virzāmies uz vienu, Samazināt izmēru? 1011 00:55:52,680 --> 00:55:54,150 Turēt uz. 1012 00:55:54,150 --> 00:55:55,770 Es noteikti aizmirsu citu. 1013 00:55:55,770 --> 00:56:00,646 1014 00:56:00,646 --> 00:56:01,990 Nekad prātā. 1015 00:56:01,990 --> 00:56:04,980 Nav vēl formula. 1016 00:56:04,980 --> 00:56:09,980 Jā, jūs vēlaties, lai atgrieztos galvu un tad pārvietot to atpakaļ. 1017 00:56:09,980 --> 00:56:13,270 >> Mērķauditorija: OK, jo šajā punkts, galva bija 0, 1018 00:56:13,270 --> 00:56:18,452 un tad jūs vēlaties, lai atgrieztos indekss 0 un pēc tam veikt galvas 1? 1019 00:56:18,452 --> 00:56:19,870 >> SPEAKER 1: Labais. 1020 00:56:19,870 --> 00:56:22,820 Es domāju, ka tur ir cita formula veida, kā šis. 1021 00:56:22,820 --> 00:56:26,970 Man nav to uz augšu manu galvu kā Es nevēlos, lai dotu jums nepareizu vienu. 1022 00:56:26,970 --> 00:56:35,470 Bet es domāju, ka tas ir pilnīgi pamatota, teiksim, OK, uzglabāt šo element-- neatkarīgi 1023 00:56:35,470 --> 00:56:40,759 galva elements is-- Samazināt savu lielums, pārvietot savu galvu vairāk, un atgriešanās 1024 00:56:40,759 --> 00:56:41,800 kāds šis elements. 1025 00:56:41,800 --> 00:56:44,760 Tas ir ļoti lietderīga. 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 Man šķiet, ka tas nav tāpat most-- jūs neesat 1029 00:56:53,560 --> 00:56:55,740 gatavojas staigāt ārā no šejienes piemēram, jā, es zinu, mēģina. 1030 00:56:55,740 --> 00:56:56,880 Man to visu. 1031 00:56:56,880 --> 00:56:57,670 Tas ir OK. 1032 00:56:57,670 --> 00:57:00,200 Es apsolu. 1033 00:57:00,200 --> 00:57:05,240 Bet datu struktūras ir kaut kas tas aizņem daudz laika, lai pierastu pie. 1034 00:57:05,240 --> 00:57:10,010 Iespējams, viens no vissmagāk lietas, es domāju, ka, veicot. 1035 00:57:10,010 --> 00:57:15,330 >> Tātad, tas noteikti notiek atkārtošanās un meklē at-- I 1036 00:57:15,330 --> 00:57:20,050 nav īsti zināt, kas saistītas sarakstus līdz brīdim, kad man bija pārāk daudz ar tiem, 1037 00:57:20,050 --> 00:57:22,550 tādā pašā veidā, ka es nesapratu tiešām saprastu norādes 1038 00:57:22,550 --> 00:57:27,040 līdz brīdim, kad man bija mācīt diviem gadi un darīt savu psets ar to. 1039 00:57:27,040 --> 00:57:28,990 Tas aizņem daudz atkārtošanu un laiku. 1040 00:57:28,990 --> 00:57:32,600 Un galu galā, tas būs sava veida klikšķi. 1041 00:57:32,600 --> 00:57:36,320 >> Bet pa to laiku, ja jums ir sava veida par augsta līmeņa izpratni par to, 1042 00:57:36,320 --> 00:57:39,321 tie dara, to plusi un cons-- kas ir tas, ko 1043 00:57:39,321 --> 00:57:41,820 mēs patiešām mēdz uzsvērt, īpaši intro kursā. 1044 00:57:41,820 --> 00:57:45,511 Tāpat kā, kāpēc mēs izmantojam izmēģināt vairāk masīva? 1045 00:57:45,511 --> 00:57:48,010 Tāpat kā, kādi ir pozitīvi un negatīvi katras no tiem? 1046 00:57:48,010 --> 00:57:51,610 >> Un izpratne kompromisus starp katru no šīm konstrukcijām 1047 00:57:51,610 --> 00:57:54,910 ir tas, kas ir daudz vairāk svarīgi, tieši tagad. 1048 00:57:54,910 --> 00:57:58,140 Tur var būt viens traks jautājums vai divi, kas ir 1049 00:57:58,140 --> 00:58:03,710 gatavojas lūgt jums, lai īstenotu push vai īstenot pop vai Enqueue un dequeue. 1050 00:58:03,710 --> 00:58:07,340 Bet lielākā daļa, kam, ka augstākā līmeņa izpratne un vairāk 1051 00:58:07,340 --> 00:58:09,710 ar intuitīvu izpratni ir svarīgāka nekā patiesībā 1052 00:58:09,710 --> 00:58:11,250 to var īstenot. 1053 00:58:11,250 --> 00:58:14,880 >> Tas lūdzu būt ļoti laba, ja jums visiem varētu iet ārā un iet īstenot izmēģināt, 1054 00:58:14,880 --> 00:58:19,720 bet mēs saprotam, ka tas nav obligāti visvairāk saprātīgu lieta tieši tagad. 1055 00:58:19,720 --> 00:58:23,370 Bet jūs varat jūsu PSET, ja vēlaties lai, un tad jūs saņemsiet praksi, 1056 00:58:23,370 --> 00:58:27,200 un tad varbūt jūs īsti saprast. 1057 00:58:27,200 --> 00:58:27,940 Jā? 1058 00:58:27,940 --> 00:58:30,440 >> Mērķauditorija: Labi, tā, kādi ir mēs domājām, lai izmantotu šajā PSET? 1059 00:58:30,440 --> 00:58:31,916 Vai man ir nepieciešams, lai izmantotu kādu no viņiem? 1060 00:58:31,916 --> 00:58:32,540 SPEAKER 1: Jā. 1061 00:58:32,540 --> 00:58:34,199 Tātad jums ir jūsu izvēle. 1062 00:58:34,199 --> 00:58:36,740 Es domāju, šajā gadījumā, mēs varam runāt par PSET mazliet 1063 00:58:36,740 --> 00:58:40,480 jo es skrēja caur tiem. 1064 00:58:40,480 --> 00:58:47,779 Tātad jūsu PSET, jums ir jūsu izvēle mēģinājumiem vai hash tabulu. 1065 00:58:47,779 --> 00:58:49,570 Daži cilvēki mēģinās un izmantot BLOOM filtrus, 1066 00:58:49,570 --> 00:58:51,840 bet tie tehniski nav pareizi. 1067 00:58:51,840 --> 00:58:55,804 Sakarā ar to varbūtības raksturs, tie dod viltus reizēm. 1068 00:58:55,804 --> 00:58:57,095 Viņi forši ieskatīties, though. 1069 00:58:57,095 --> 00:58:59,030 Ļoti ieteiktu meklē pie viņiem vismaz. 1070 00:58:59,030 --> 00:59:03,260 Bet jums ir jūsu izvēle starp hash tabulu un izmēģināt. 1071 00:59:03,260 --> 00:59:06,660 Un kas notiek, lai būtu kur jūs ielādēt savā vārdnīcā. 1072 00:59:06,660 --> 00:59:09,230 >> Un jums būs jāizvēlas Jūsu hash funkciju, 1073 00:59:09,230 --> 00:59:13,420 jums vajadzēs izvēlēties, cik daudz kausi jums ir, un tas būs atšķirīgs. 1074 00:59:13,420 --> 00:59:17,440 Piemēram, ja jums ir vairāk kausi, varbūt tas būs darboties ātrāk. 1075 00:59:17,440 --> 00:59:22,790 Bet varbūt jūs izšķērdēt vietas, ka veids, lai gan daudz. 1076 00:59:22,790 --> 00:59:26,320 Jums ir skaitlis tas. 1077 00:59:26,320 --> 00:59:27,140 Mmhmm? 1078 00:59:27,140 --> 00:59:29,875 >> Mērķauditorija: Jūs teicāt, pirms tam mēs varam izmantot citas hash funkcijas, 1079 00:59:29,875 --> 00:59:31,750 ka mums nav izveidot jaucējfunkciju? 1080 00:59:31,750 --> 00:59:32,666 >> SPEAKER 1: Jā, labi. 1081 00:59:32,666 --> 00:59:38,150 Tik burtiski jūsu hash funkciju, piemēram, google "jaukšanas funkcija" 1082 00:59:38,150 --> 00:59:40,770 un meklēt dažas atdzist tiem. 1083 00:59:40,770 --> 00:59:43,250 Jums nav gaidāma būvēt Jūsu pašu hash funkcijas. 1084 00:59:43,250 --> 00:59:46,100 Cilvēki pavada tēzes par šīm lietām. 1085 00:59:46,100 --> 00:59:50,250 >> Tāpēc nav jāuztraucas par ēkas savu. 1086 00:59:50,250 --> 00:59:53,350 Atrast vienu tiešsaistē, lai sāktu ar. 1087 00:59:53,350 --> 00:59:56,120 Dažas no tām jums ir manipulēt mazliet 1088 00:59:56,120 --> 00:59:59,430 lai pārliecinātos, ka atgriešanās veidi sakrīt un plauktiņš, tāpēc sākumā, 1089 00:59:59,430 --> 01:00:02,420 Es ieteiktu izmantot kaut ko ļoti viegli, ka varbūt tikai 1090 01:00:02,420 --> 01:00:04,680 hashes uz pirmo burtu. 1091 01:00:04,680 --> 01:00:08,760 Un tad, kad jums ir šī darba, iekļaujot vēsākas jaucējfunkciju. 1092 01:00:08,760 --> 01:00:09,260 Mmhmm? 1093 01:00:09,260 --> 01:00:13,020 >> Mērķauditorija: Vai mēģināt būt vai efektīvi, bet tikai grūtāk, like-- 1094 01:00:13,020 --> 01:00:15,880 >> SPEAKER 1: Tātad izmēģināt, es domāju, ir intuitīvi grūti īstenot 1095 01:00:15,880 --> 01:00:18,310 bet ir ļoti ātri. 1096 01:00:18,310 --> 01:00:20,620 Tomēr, aizņem vairāk vietas. 1097 01:00:20,620 --> 01:00:25,270 Atkal, jūs varat optimizēt gan no tiem, kas dažādi veidi un ir veidi, kuri paredzēti, lai 1098 01:00:25,270 --> 01:00:26,770 Mērķauditorija: Kā mēs šķiro par šo? 1099 01:00:26,770 --> 01:00:27,540 Vai tas matter-- 1100 01:00:27,540 --> 01:00:29,164 >> SPEAKER 1: Tātad jūs šķiro normālu ceļu. 1101 01:00:29,164 --> 01:00:31,330 Jūs esat būs jāšķiro uz dizainu. 1102 01:00:31,330 --> 01:00:36,020 Neatkarīgi no tā, kā jūs darāt, jūs vēlaties pārliecinieties, ka tas ir tik elegants, kā tas var būt 1103 01:00:36,020 --> 01:00:38,610 un tik efektīva, kā tas var būt. 1104 01:00:38,610 --> 01:00:41,950 Bet, ja jūs izvēlaties izmēģināt vai hašišu galds, kamēr tas darbojas, 1105 01:00:41,950 --> 01:00:45,350 mēs esam apmierināti ar to. 1106 01:00:45,350 --> 01:00:48,370 Un, ja jūs izmantojat kaut kas hashes uz pirmo burtu, tas ir jauki, 1107 01:00:48,370 --> 01:00:51,410 piemēram, varbūt, piemēram, dizaina ziņā. 1108 01:00:51,410 --> 01:00:53,410 Mēs arī sasniedzot punkts šajā semester-- 1109 01:00:53,410 --> 01:00:55,340 Es nezinu, ja jums puiši noticed-- ja jūs esat 1110 01:00:55,340 --> 01:00:58,780 PSET pakāpes samazināsies mazliet jo dizaina un plauktiņš, 1111 01:00:58,780 --> 01:00:59,900 tas ir perfekti labi. 1112 01:00:59,900 --> 01:01:02,960 Tas kļūst līdz vietai, kur jūsu programmas kļūst sarežģītāka. 1113 01:01:02,960 --> 01:01:04,830 Ir vairāk vietas Jūs varat uzlabot. 1114 01:01:04,830 --> 01:01:06,370 >> Tātad, tas ir pilnīgi normāli. 1115 01:01:06,370 --> 01:01:08,810 Tas nav, ka tu esi dara sliktāk par savu PSET. 1116 01:01:08,810 --> 01:01:11,885 Tas ir tikai mēs to grūtāk par jums tagad. 1117 01:01:11,885 --> 01:01:13,732 Tātad ikvienam ir sajūta to. 1118 01:01:13,732 --> 01:01:14,940 Es tikai šķiro visus savus psets. 1119 01:01:14,940 --> 01:01:16,490 Es zinu, visi ir sajūta to. 1120 01:01:16,490 --> 01:01:19,600 >> Tāpēc nav jābūt noraizējies par to. 1121 01:01:19,600 --> 01:01:23,580 Un, ja jums ir kādi jautājumi par iepriekšējas psets vai veidi, kā jūs varat uzlabot, 1122 01:01:23,580 --> 01:01:27,760 Mēģinu un komentēt īpašais vietām, bet dažreiz tas ir par vēlu 1123 01:01:27,760 --> 01:01:30,840 un man nogurst. 1124 01:01:30,840 --> 01:01:34,885 Vai ir kādas citas lietas par datu struktūras? 1125 01:01:34,885 --> 01:01:37,510 Es esmu pārliecināts, ka jūs puiši nav īsti gribam runāt par tām vairs, 1126 01:01:37,510 --> 01:01:42,650 bet, ja ir, es esmu laimīgs, lai iet pār tām, kā arī kaut ko 1127 01:01:42,650 --> 01:01:45,580 No lekciju šis pagātnes nedēļā vai pagājušajā nedēļā. 1128 01:01:45,580 --> 01:01:51,580 >> Es zinu, pagājušajā nedēļā bija viss pārskatīšana, tāpēc mums var būt izlaidis pār kādu pārskatīšanu 1129 01:01:51,580 --> 01:01:54,190 no lekciju. 1130 01:01:54,190 --> 01:01:58,230 Jebkādi citi jautājumi, es varu atbildēt? 1131 01:01:58,230 --> 01:01:59,350 Labi, labi. 1132 01:01:59,350 --> 01:02:02,400 Nu, jūs puiši izkļūt 15 minūtes agrāk. 1133 01:02:02,400 --> 01:02:08,370 >> Es ceru, ka tas bija daļēji lietderīgi vismaz un es redzēt jūs puiši nākamnedēļ, 1134 01:02:08,370 --> 01:02:12,150 vai ceturtdiena darba laiks. 1135 01:02:12,150 --> 01:02:15,285 Vai ir pieprasījumi uzkodas nākamajā nedēļā, tā ir lieta? 1136 01:02:15,285 --> 01:02:17,459 Tāpēc, ka es aizmirsu konfektes šodien. 1137 01:02:17,459 --> 01:02:19,750 Un es atvedu konfektes pēdējā nedēļa, bet tas bija Columbus diena, 1138 01:02:19,750 --> 01:02:25,400 tāpēc tur bija kā seši cilvēki, kuri bija četri maisus konfektes sev. 1139 01:02:25,400 --> 01:02:28,820 Es varu dot starbursts atkal, ja jums patīk. 1140 01:02:28,820 --> 01:02:29,580 Starbursts? 1141 01:02:29,580 --> 01:02:32,250 Labi, izklausās labi. 1142 01:02:32,250 --> 01:02:35,050 Ir lieliska diena, puiši. 1143 01:02:35,050 --> 01:02:39,510