1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:05,120 [Музыка, якая іграе] 3 00:00:05,120 --> 00:00:12,026 4 00:00:12,026 --> 00:00:12,900 СПІКЕР 1: Добра. 5 00:00:12,900 --> 00:00:14,600 Ўсё дабро запрашаем у профіль. 6 00:00:14,600 --> 00:00:18,660 Я спадзяюся, што вы ўсё паспяхова адышоў ад вашай віктарыны 7 00:00:18,660 --> 00:00:19,510 з мінулага тыдня. 8 00:00:19,510 --> 00:00:22,564 Я ведаю, што гэта крыху вар'яты ў разы. 9 00:00:22,564 --> 00:00:25,230 Як я ўжо казаў раней, калі вы ў межах стандартнага адхіленні, 10 00:00:25,230 --> 00:00:28,188 на самай справе не турбавацца пра гэта, асабліва для менш камфортным раздзеле. 11 00:00:28,188 --> 00:00:30,230 Вось пра тое, дзе вы павінны быць. 12 00:00:30,230 --> 00:00:32,850 >> Калі вы зрабілі вялікі, то дзіўным. 13 00:00:32,850 --> 00:00:33,650 Слава вам. 14 00:00:33,650 --> 00:00:36,149 І калі вы адчуваеце, як вам трэба трохі больш дапамогі, калі ласка, 15 00:00:36,149 --> 00:00:38,140 не саромейцеся, каб дасягнуць да любой з TFS. 16 00:00:38,140 --> 00:00:40,030 Мы ўсе тут, каб дапамагчы. 17 00:00:40,030 --> 00:00:40,960 >> Вось чаму мы вучым. 18 00:00:40,960 --> 00:00:44,550 Вось чаму я тут кожны панядзелак для вас Хлопцы і ў офісе гадзін па чацвяргах. 19 00:00:44,550 --> 00:00:48,130 Таму, калі ласка, не саромейцеся, дайце мне ведаць, калі вы турбуецеся аб чым-небудзь 20 00:00:48,130 --> 00:00:52,450 або калі што-небудзь на віктарыне што вы сапраўды хацелі б звярнуцца. 21 00:00:52,450 --> 00:00:56,940 >> Так парадак дня на сёння ўсё пра структурах дадзеных. 22 00:00:56,940 --> 00:01:01,520 Некаторыя з іх проста будзе проста каб вы азнаёміліся з імі. 23 00:01:01,520 --> 00:01:04,870 Вы ніколі не можаце рэалізаваць ім у гэтым класе. 24 00:01:04,870 --> 00:01:08,690 Некаторыя з іх вы, як для вашага SPELLER PSET. 25 00:01:08,690 --> 00:01:11,380 >> Вы будзеце мець выбар паміж хэш-табліц і спробаў. 26 00:01:11,380 --> 00:01:13,680 Такім чынам, мы будзем вызначана над тымі. 27 00:01:13,680 --> 00:01:18,690 Гэта будзе вызначана больш віду з падзелу высокі ўзровень сёння, хоць, 28 00:01:18,690 --> 00:01:22,630 таму што ёсць многія з іх, і калі мы пайшлі ў дэталі рэалізацыі 29 00:01:22,630 --> 00:01:26,490 на ўсе з іх, мы не былі б нават прайсці праз звязаныя спісы 30 00:01:26,490 --> 00:01:28,520 і, можа быць, трохі хэш-табліцы. 31 00:01:28,520 --> 00:01:31,200 >> Так, мядзведзь са мной. 32 00:01:31,200 --> 00:01:33,530 Мы не збіраемся рабіць столькі кадавання на гэты раз. 33 00:01:33,530 --> 00:01:36,870 Калі ў вас ёсць якія-небудзь пытанні па гэтай нагоды ці вы хочаце ўбачыць гэта рэалізуецца 34 00:01:36,870 --> 00:01:39,260 або паспрабаваць яго на сабе, Я вызначана рэкамендую 35 00:01:39,260 --> 00:01:44,250 збіраецца study.cs50.net, якія ёсць прыклады ўсіх з іх. 36 00:01:44,250 --> 00:01:46,400 Гэта будзе мець свае PowerPoints з заўвагамі, якія мы 37 00:01:46,400 --> 00:01:50,860 як правіла, выкарыстоўваюць, а таксама некаторыя праграмавання практыкаванні, асабліва для рэчаў 38 00:01:50,860 --> 00:01:55,250 як звязаныя спісы і бінарныя дрэвы стэкі і падказкі. 39 00:01:55,250 --> 00:01:59,590 Так трохі больш высокі ўзровень, які магло б быць добра для вас, хлопцы. 40 00:01:59,590 --> 00:02:01,320 >> Так з гэтым, мы пачнем. 41 00:02:01,320 --> 00:02:03,060 А таксама, yes-- віктарыны. 42 00:02:03,060 --> 00:02:06,550 Я думаю, што большасць з вас, хто ў мой раздзел ёсць свае віктарыны, 43 00:02:06,550 --> 00:02:12,060 але хто прыходзіць у ці нейкай прычыне вы няма, яны прама тут, у пярэдняй. 44 00:02:12,060 --> 00:02:12,740 >> Так сувязныя спісы. 45 00:02:12,740 --> 00:02:15,650 Я ведаю гэты від ідзе для рэзервовага перад вашай віктарыны. 46 00:02:15,650 --> 00:02:17,940 Гэта было за тыдзень да што мы даведаліся пра гэта. 47 00:02:17,940 --> 00:02:21,040 Але ў гэтым выпадку, мы проста пайсці крыху больш падрабязна. 48 00:02:21,040 --> 00:02:25,900 >> Дык чаму мы маглі б выбраць звязаны спіс па масіве? 49 00:02:25,900 --> 00:02:27,130 Што адрознівае іх? 50 00:02:27,130 --> 00:02:27,630 Так? 51 00:02:27,630 --> 00:02:30,464 >> АЎДЫТОРЫЯ: Вы можаце пашырыць звязаны спіс у параўнанні з фіксаваным памерам масіва ў. 52 00:02:30,464 --> 00:02:31,171 СПІКЕР 1: Права. 53 00:02:31,171 --> 00:02:33,970 Масіў мае фіксаваны памер у той час як Звязаны спіс мае пераменны памер. 54 00:02:33,970 --> 00:02:36,970 Так што, калі мы не ведаем, як шмат мы хочам захаваць, 55 00:02:36,970 --> 00:02:39,880 Звязаны спіс дае нам выдатны спосаб зрабіць гэта, таму што мы можам проста 56 00:02:39,880 --> 00:02:43,730 дадаць на іншым вузле, і дадаць на іншы вузел і дадаць на іншым вузле. 57 00:02:43,730 --> 00:02:45,750 Але што можа быць кампраміс? 58 00:02:45,750 --> 00:02:49,521 Хто-небудзь памятае кампраміс паміж масівамі і звязаныя спісы? 59 00:02:49,521 --> 00:02:50,020 Mmhmm? 60 00:02:50,020 --> 00:02:51,460 >> АЎДЫТОРЫЯ: Вы павінны прайсці праз усе шляху 61 00:02:51,460 --> 00:02:53,738 праз звязаны спіс знайсці элемент у спісе. 62 00:02:53,738 --> 00:02:55,570 У масіве, вы можаце проста знайсці элемент. 63 00:02:55,570 --> 00:02:56,278 >> СПІКЕР 1: Права. 64 00:02:56,278 --> 00:02:57,120 Так з arrays-- 65 00:02:57,120 --> 00:02:58,500 >> АЎДЫТОРЫЯ: [неразборліва]. 66 00:02:58,500 --> 00:03:01,090 >> СПІКЕР 1: З масівамі, у нас ёсць тое, што называецца адвольным доступам. 67 00:03:01,090 --> 00:03:04,820 Азначае, што калі мы хочам што альбо пятая кропка з спісу 68 00:03:04,820 --> 00:03:07,230 або пятая кропка нашага Масіў, мы можам проста ўзяць яго. 69 00:03:07,230 --> 00:03:10,440 Калі гэта звязаны спіс, у нас ёсць для перабору, ці не так? 70 00:03:10,440 --> 00:03:14,020 Так доступ да элемента ў Масіў з'яўляецца пастаянная часу, 71 00:03:14,020 --> 00:03:19,530 у той час як са звязаным спісам было б хутчэй за ўсё, будзе лінейнае час, таму што, можа быць, 72 00:03:19,530 --> 00:03:21,370 наш элемент цалкам у канцы. 73 00:03:21,370 --> 00:03:23,446 Мы павінны шукаць праз усе. 74 00:03:23,446 --> 00:03:25,320 Так з усімі гэтымі дадзенымі структуры, якія мы збіраемся 75 00:03:25,320 --> 00:03:29,330 каб марнаваць крыху больш часу на, якія плюсы і мінусы. 76 00:03:29,330 --> 00:03:31,480 Калі можа мы хочам выкарыстоўваць адзін над іншым? 77 00:03:31,480 --> 00:03:34,970 І гэта збольшага больш, што трэба забраць. 78 00:03:34,970 --> 00:03:40,140 >> Такім чынам, мы маем тут Вызначэнне вузла. 79 00:03:40,140 --> 00:03:43,040 Гэта як адзін з элементаў наш звязаны спіс, ці не так? 80 00:03:43,040 --> 00:03:46,180 Такім чынам, мы ўсе знаёмыя з нашымі ЬурейеЕ структур, 81 00:03:46,180 --> 00:03:47,980 якія мы разгледзелі ў аглядзе апошні раз. 82 00:03:47,980 --> 00:03:53,180 Гэта была ў асноўным проста стварэнне іншы тып дадзеных, якія мы маглі б выкарыстоўваць. 83 00:03:53,180 --> 00:03:57,930 >> І ў гэтым выпадку, гэта нейкая вузел што правядзе некаторы цэлае лік ст. 84 00:03:57,930 --> 00:04:00,210 І тады тое, што другая частка тут? 85 00:04:00,210 --> 00:04:03,192 86 00:04:03,192 --> 00:04:05,677 Любы? 87 00:04:05,677 --> 00:04:06,680 >> АЎДЫТОРЫЯ: [неразборліва]. 88 00:04:06,680 --> 00:04:07,020 >> СПІКЕР 1: Так. 89 00:04:07,020 --> 00:04:08,400 Гэта паказальнік на наступны вузел. 90 00:04:08,400 --> 00:04:12,610 Такім чынам, гэта павінна быць на самой справе тут. 91 00:04:12,610 --> 00:04:18,790 Гэта паказальнік тыпу вузел да наступнай рэчы. 92 00:04:18,790 --> 00:04:22,410 І вось што яны ахоплівае нашу вузел. 93 00:04:22,410 --> 00:04:24,060 Прахладны. 94 00:04:24,060 --> 00:04:29,390 >> Добра, так з пошукам, як мы былі проста кажу, перш чым рукі, калі вы 95 00:04:29,390 --> 00:04:31,840 будзе шукаць праз, ў вас ёсць на самой справе ітэрацыі 96 00:04:31,840 --> 00:04:33,660 праз звязаны спіс. 97 00:04:33,660 --> 00:04:38,530 Так што, калі мы шукаем колькасці 9, мы б пачаць у нашай галаве 98 00:04:38,530 --> 00:04:41,520 і што паказвае нам на пачатку нашай звязанага спісу, ці не так? 99 00:04:41,520 --> 00:04:44,600 І мы кажам: добра, робіць гэта вузел ўтрымлівае лік 9? 100 00:04:44,600 --> 00:04:45,690 Няма? 101 00:04:45,690 --> 00:04:47,500 >> Добра, ідзі да наступнага. 102 00:04:47,500 --> 00:04:48,312 Выконвайце яго. 103 00:04:48,312 --> 00:04:49,520 Ўтрымлівае Ці яна лік 9? 104 00:04:49,520 --> 00:04:50,570 Няма. 105 00:04:50,570 --> 00:04:51,550 Выконвайце наступны. 106 00:04:51,550 --> 00:04:55,490 >> Так што мы павінны на самай справе ітэрацыі праз нашу звязанага спісу. 107 00:04:55,490 --> 00:05:00,070 Мы не можам проста пайсці проста туды, дзе 9. 108 00:05:00,070 --> 00:05:05,860 І калі вы, хлопцы, на самай справе хочаце, каб ўбачыць некаторыя псеўда-код там. 109 00:05:05,860 --> 00:05:10,420 У нас ёсць функцыя пошуку тут што бярэ in-- што ж трэба ў? 110 00:05:10,420 --> 00:05:13,110 111 00:05:13,110 --> 00:05:14,320 Што ты думаеш? 112 00:05:14,320 --> 00:05:15,960 Так лёгкім. 113 00:05:15,960 --> 00:05:17,784 Што гэта? 114 00:05:17,784 --> 00:05:18,700 АЎДЫТОРЫЯ: [неразборліва]. 115 00:05:18,700 --> 00:05:20,366 СПІКЕР 1: мы шукаем лік. 116 00:05:20,366 --> 00:05:20,980 Ці не так? 117 00:05:20,980 --> 00:05:22,875 І што б гэта адпавядаць? 118 00:05:22,875 --> 00:05:25,020 Гэта паказальнік на? 119 00:05:25,020 --> 00:05:26,000 >> АЎДЫТОРЫЯ: вузел. 120 00:05:26,000 --> 00:05:28,980 >> СПІКЕР 1: вузел у спіс што мы глядзім на, ці не так? 121 00:05:28,980 --> 00:05:33,700 Таму ў нас ёсць некаторыя вузлы паказальнік тут. 122 00:05:33,700 --> 00:05:37,240 Гэта кропка, што збіраецца на самай справе перабору нашым спісе. 123 00:05:37,240 --> 00:05:39,630 Мы ўсталёўваем яго роўным спіс таму што гэта проста 124 00:05:39,630 --> 00:05:44,380 мяркуючы яго роўным пачаць нашага звязанага спісу. 125 00:05:44,380 --> 00:05:50,660 >> І ў той час як гэта не NULL, у той час як у нас яшчэ ёсць рэчы ў нашым спісе, 126 00:05:50,660 --> 00:05:55,580 праверце, калі гэты вузел мае лік мы шукаем. 127 00:05:55,580 --> 00:05:57,740 Вярнуцца праўда. 128 00:05:57,740 --> 00:06:01,070 У адваротным выпадку, абновіце яго, ці не так? 129 00:06:01,070 --> 00:06:04,870 >> Калі гэта NULL, мы выходзім з нашага у той час як цыкл і вярнуцца ілжывым 130 00:06:04,870 --> 00:06:08,340 таму што гэта азначае, што мы не знайшлі яго. 131 00:06:08,340 --> 00:06:11,048 Ці ўсё атрымаць, як гэта працуе? 132 00:06:11,048 --> 00:06:11,548 Добра. 133 00:06:11,548 --> 00:06:14,940 134 00:06:14,940 --> 00:06:20,260 >> Так з ўстаўкі, вы ёсць тры розных спосабу. 135 00:06:20,260 --> 00:06:25,250 Вы можаце папярэднічаць, вы можаце дадаць і вы можаце ўставіць у асарці. 136 00:06:25,250 --> 00:06:28,215 У гэтым выпадку, мы збіраюся рабіць препендом. 137 00:06:28,215 --> 00:06:33,380 Хто-небудзь ведае, як тыя, тры выпадкі могуць адрознівацца? 138 00:06:33,380 --> 00:06:36,920 >> Так перад імем азначае, што вы паклалі гэта ў пярэдняй часткі вашага спісу. 139 00:06:36,920 --> 00:06:39,770 Так што гэта будзе азначаць, што незалежна ад таго, што ваш вузел, незалежна ад таго, 140 00:06:39,770 --> 00:06:43,160 што значэнне, што вы збіраецеся паставіць яго прама тут, перад, ОК? 141 00:06:43,160 --> 00:06:45,160 Гэта будзе першы элемент у спісе. 142 00:06:45,160 --> 00:06:49,510 >> Калі вы дадаеце яго, гэта будзе ісці да задняй частцы спісу. 143 00:06:49,510 --> 00:06:54,010 І ўставіць у асарці азначае, што вы збіраецца паставіць на самай справе ў тое месца, 144 00:06:54,010 --> 00:06:57,700 дзе ён трымае ваш звязаны спіс адсартаваны. 145 00:06:57,700 --> 00:07:00,810 Зноў жа, як вы карыстаецеся тыя, і калі вы карыстаецеся 146 00:07:00,810 --> 00:07:02,530 ім будзе вар'іравацца ў залежнасці ад вашага выпадку. 147 00:07:02,530 --> 00:07:05,834 148 00:07:05,834 --> 00:07:07,750 Калі гэта не трэба сартаваць, перад імем, як правіла, 149 00:07:07,750 --> 00:07:10,460 быць тым, што большасць людзей выкарыстоўваць, таму што вы не 150 00:07:10,460 --> 00:07:15,680 павінны прайсці праз увесь спіс каб знайсці канец, каб дадаць яго на, ці не так? 151 00:07:15,680 --> 00:07:17,720 Вы можаце проста прытрымлівацца яго прама ў. 152 00:07:17,720 --> 00:07:21,930 >> Так што мы будзем праходзіць праз ўстаўка 1 прама цяпер. 153 00:07:21,930 --> 00:07:26,360 Так што тое, што я збіраюся вельмі рэкамендую на гэтым PSET 154 00:07:26,360 --> 00:07:29,820 з'яўляецца прыцягненне рэчы, як заўсёды. 155 00:07:29,820 --> 00:07:35,130 Гэта вельмі важна, што вы абнаўляеце Вашы ўказальнікі ў правільным парадку 156 00:07:35,130 --> 00:07:38,620 таму што, калі вы абнаўляеце іх крыху не ў парадку, 157 00:07:38,620 --> 00:07:42,210 Вы будзеце ў канчатковым выніку страты часткі вашага спісу. 158 00:07:42,210 --> 00:07:49,680 >> Так, напрыклад, у дадзеным выпадку, мы кажа кіраўнік проста навесці на 1. 159 00:07:49,680 --> 00:07:56,070 Калі мы проста робім, што без захавання гэтага 1, 160 00:07:56,070 --> 00:07:58,570 мы паняцця не маем, што 1 варта паказаць на зараз 161 00:07:58,570 --> 00:08:02,490 таму што мы страцілі тое, што Кіраўнік паказаў на. 162 00:08:02,490 --> 00:08:05,530 Так адна справа памятаць калі вы робіце препендом 163 00:08:05,530 --> 00:08:09,630 гэта, каб выратаваць тое, што галава паказвае на першы, 164 00:08:09,630 --> 00:08:15,210 затым перапрызначыць яго, а затым абнавіць што ваш новы вузел павінен паказваць на. 165 00:08:15,210 --> 00:08:20,870 166 00:08:20,870 --> 00:08:22,560 У гэтым выпадку, гэта адзін са спосабаў зрабіць гэта. 167 00:08:22,560 --> 00:08:25,440 >> Так што, калі б мы зрабілі гэта такім чынам дзе мы проста пераназначаны галаву, 168 00:08:25,440 --> 00:08:30,320 мы губляем у асноўным наша Увесь спіс, ці не так? 169 00:08:30,320 --> 00:08:38,000 Адзін са спосабаў зрабіць гэта, каб мець 1 пункт да Далей, а затым галоўкі кропку 1. 170 00:08:38,000 --> 00:08:42,650 Ці вы можаце зрабіць выгляд, як часовага захоўвання, якія я казаў пра. 171 00:08:42,650 --> 00:08:45,670 >> Але перапрызначэння праграмы Your ўказальнікі ў правільным парадку 172 00:08:45,670 --> 00:08:48,750 будзе вельмі, вельмі важна для гэтай PSET. 173 00:08:48,750 --> 00:08:53,140 У адваротным выпадку, вы будзеце мець хэш табліцы або паспрабаваць што проста будзе 174 00:08:53,140 --> 00:08:56,014 толькі частка словы, якія вы хачу і тое you're-- mmhmm? 175 00:08:56,014 --> 00:08:58,930 АЎДЫТОРЫЯ: Што было часовае захоўвання, што вы казалі? 176 00:08:58,930 --> 00:09:00,305 СПІКЕР 1: часовае захоўванне. 177 00:09:00,305 --> 00:09:02,760 Таму ў асноўным іншы як вы маглі б зрабіць гэта 178 00:09:02,760 --> 00:09:07,650 будзе захоўваць кіраўніка тое, як захоўваць яму часовую зменную. 179 00:09:07,650 --> 00:09:11,250 Прызначаюць яго па 1 і затым абнавіць 1 да кропкі 180 00:09:11,250 --> 00:09:13,830 да таго, што кіраўнік выкарыстоўваецца, каб паказаць на. 181 00:09:13,830 --> 00:09:16,920 Такім чынам, відавочна, больш элегантным, таму што вас 182 00:09:16,920 --> 00:09:20,770 ня трэба часовае значэнне, але проста прапаноўваючы яшчэ адзін спосаб зрабіць гэта. 183 00:09:20,770 --> 00:09:23,999 184 00:09:23,999 --> 00:09:25,790 І мы, сапраўды ёсць некаторы код для гэтага. 185 00:09:25,790 --> 00:09:28,080 Так што для звязанага спісу, мы на самай справе ёсць некаторы код. 186 00:09:28,080 --> 00:09:31,930 Так, перанясіце сюды, гэта папярэднічаючы. 187 00:09:31,930 --> 00:09:34,290 Так што гэта ўваходзіць у яго ў галаве. 188 00:09:34,290 --> 00:09:38,820 >> Так першая рэч, вы павінны стварыць новы вузел, вядома, 189 00:09:38,820 --> 00:09:40,790 і праверыць на NULL. 190 00:09:40,790 --> 00:09:43,250 Заўсёды добра. 191 00:09:43,250 --> 00:09:47,840 І тады вам трэба прысвоіць значэння. 192 00:09:47,840 --> 00:09:51,260 Кожны раз, калі вы ствараеце новы вузел, вам не ведаю, што гэта, паказваючы на ​​наступны, 193 00:09:51,260 --> 00:09:54,560 так што вы хочаце, каб ініцыялізаваць яго, каб NULL. 194 00:09:54,560 --> 00:09:58,760 Калі гэта ў канчатковым выніку паказваючы на ​​нешта яшчэ, ён атрымлівае пераназначаны, і гэта выдатна. 195 00:09:58,760 --> 00:10:00,740 Калі гэта першае, што у спісе, ён павінен 196 00:10:00,740 --> 00:10:04,270 паказваць на NULL, таму што што гэта канец спісу. 197 00:10:04,270 --> 00:10:12,410 >> Такім чынам, каб ўставіць яго, мы бачым тут мы прысвойваем наступны каштоўнасць нашага вузла 198 00:10:12,410 --> 00:10:17,380 быць усё, што галава, якая з'яўляецца тое, што мы мелі тут. 199 00:10:17,380 --> 00:10:19,930 Гэта тое, што мы толькі што зрабілі. 200 00:10:19,930 --> 00:10:25,820 І тады мы прысвойваем галаву да кропкі на наш новы вузел, таму што памятаю, 201 00:10:25,820 --> 00:10:31,090 Новы некаторы паказальнік на вузел, і гэта менавіта тое, што галава. 202 00:10:31,090 --> 00:10:34,370 Менавіта таму мы ёсць гэтая стрэлка аксессор. 203 00:10:34,370 --> 00:10:37,030 204 00:10:37,030 --> 00:10:37,530 Прахладны? 205 00:10:37,530 --> 00:10:38,130 Mmhmm? 206 00:10:38,130 --> 00:10:41,100 >> АЎДЫТОРЫЯ: Ці ёсць у нас у ініцыялізаваць новы Далей, каб NULL-першае, 207 00:10:41,100 --> 00:10:44,240 ці мы можам проста ініцыялізаваць яго ўзначаліць? 208 00:10:44,240 --> 00:10:48,210 >> СПІКЕР 1: Новая наступны павінен быць NULL, каб пачаць 209 00:10:48,210 --> 00:10:53,760 таму што вы не ведаеце, дзе ён будзе. 210 00:10:53,760 --> 00:10:56,100 Акрамя таго, гэта свайго роду сапраўды гэтак жа як парадыгму. 211 00:10:56,100 --> 00:10:59,900 Вы можаце ўсталяваць яго роўным NULL проста зрабіць Пераканайцеся, што ўсе вашыя базы пакрытыя 212 00:10:59,900 --> 00:11:04,070 перш чым рабіць якія-небудзь перапрызначэння так, што Вы заўсёды гарантуецца, што гэта будзе 213 00:11:04,070 --> 00:11:08,880 паказваць на пэўнае значэнне супраць, як каштоўнасці смецця. 214 00:11:08,880 --> 00:11:12,210 Таму што, так, мы прысвойваем Новая наступны аўтаматычна, 215 00:11:12,210 --> 00:11:15,420 але гэта больш, як добрая практыка, каб ініцыялізаваць яго 216 00:11:15,420 --> 00:11:19,270 такім чынам, і затым перадаць. 217 00:11:19,270 --> 00:11:23,420 >> Такім чынам, двусвязного спісы цяпер. 218 00:11:23,420 --> 00:11:24,601 Што мы думаем? 219 00:11:24,601 --> 00:11:26,350 Што змянілася з двусвязного спісы? 220 00:11:26,350 --> 00:11:30,750 221 00:11:30,750 --> 00:11:34,300 >> Такім чынам, у нашых звязаных спісаў, мы можам рухацца толькі ў адным накірунку, ці не так? 222 00:11:34,300 --> 00:11:35,270 У нас ёсць толькі побач. 223 00:11:35,270 --> 00:11:36,760 Мы можам ісці толькі наперад. 224 00:11:36,760 --> 00:11:40,300 >> З двунаправленный спіс, мы можам таксама рухацца ў зваротным кірунку. 225 00:11:40,300 --> 00:11:44,810 Такім чынам, мы маем не толькі лік, якое мы хочам захаваць, 226 00:11:44,810 --> 00:11:50,110 у нас ёсць, дзе ён паказвае на наступны і дзе мы толькі прыйшлі. 227 00:11:50,110 --> 00:11:52,865 Такім чынам, гэта дазваляе некаторыя лепш абыходу. 228 00:11:52,865 --> 00:11:56,620 229 00:11:56,620 --> 00:12:01,240 >> Так ўдвая звязаныя вузлы, вельмі падобныя, ці не так? 230 00:12:01,240 --> 00:12:05,000 Толькі розніца ў тым, зараз мы ёсць побач і папярэдняя. 231 00:12:05,000 --> 00:12:06,235 Гэта адзінае адрозненне. 232 00:12:06,235 --> 00:12:09,570 233 00:12:09,570 --> 00:12:14,790 >> Так што, калі б мы павінны былі папярэднічаць або append-- мы не маюць ніякага кода для гэтага да here-- 234 00:12:14,790 --> 00:12:17,830 але калі б вы былі, каб паспрабаваць устаўце яго, важную рэч 235 00:12:17,830 --> 00:12:19,980 гэта вы павінны зрабіць што вы прысваення 236 00:12:19,980 --> 00:12:23,360 як ваш папярэдні і вашы наступны паказальнік правільна. 237 00:12:23,360 --> 00:12:29,010 Такім чынам, у гэтым выпадку, вы б не толькі ініцыялізаваць побач, 238 00:12:29,010 --> 00:12:31,820 ініцыялізацыі папярэдняя. 239 00:12:31,820 --> 00:12:36,960 Калі мы знаходзімся ў пачатку спісу, мы будзе не толькі зрабіць кіраўнік роўна новы, 240 00:12:36,960 --> 00:12:41,750 але наш новы папярэдняя павінны паказваюць на галаве, ці не так? 241 00:12:41,750 --> 00:12:43,380 >> Вось і ўся розніца. 242 00:12:43,380 --> 00:12:47,200 І калі вы хочаце больш практыкі з яны са звязанымі спісамі, з ўстаўкі, 243 00:12:47,200 --> 00:12:49,900 з выдаленнем, з устаўкай у зборных спісу, 244 00:12:49,900 --> 00:12:52,670 калі ласка, азнаёмцеся з study.cs50.net. 245 00:12:52,670 --> 00:12:54,870 Там куча вялікіх вучэнняў. 246 00:12:54,870 --> 00:12:55,870 Я вельмі рэкамендую іх. 247 00:12:55,870 --> 00:12:59,210 Я жадаю, каб мы паспелі прайсці праз іх але ёсць шмат структур дадзеных 248 00:12:59,210 --> 00:13:01,530 каб прайсці. 249 00:13:01,530 --> 00:13:02,650 >> Такім чынам, хэш-табліцы. 250 00:13:02,650 --> 00:13:07,070 Гэта, бадай, найбольш карысна трохі для PSET 251 00:13:07,070 --> 00:13:11,090 тут, таму што вы збіраецеся быць рэалізацыі аднаго з іх, або спробу. 252 00:13:11,090 --> 00:13:12,200 Мне вельмі падабаецца, хэш-табліцы. 253 00:13:12,200 --> 00:13:13,110 Яны даволі халаднавата. 254 00:13:13,110 --> 00:13:17,080 >> Таму ў асноўным тое, што адбываецца гэта хэш-табліца 255 00:13:17,080 --> 00:13:22,050 калі нам сапраўды трэба хуткае ўстаўка, выдаленне, і пошук. 256 00:13:22,050 --> 00:13:25,010 Тыя рэчы, якія мы прыярытэтнасці ў хэш-табліцы. 257 00:13:25,010 --> 00:13:29,500 Яны могуць атрымаць даволі вялікі, але, як мы ўбачым з спроб, 258 00:13:29,500 --> 00:13:33,040 Ёсць рэчы, якія нашмат больш. 259 00:13:33,040 --> 00:13:38,330 >> Але ў прынцыпе, усе хэш табліца хэш-функцыя 260 00:13:38,330 --> 00:13:47,215 што кажа вам, якія вядро пакласці сябар Вашых дадзеных, кожны з вашых элементаў у. 261 00:13:47,215 --> 00:13:51,140 Просты спосаб думаць аб хэш-табліцы з'яўляецца тое, што гэта ўсяго толькі вядра рэчаў, 262 00:13:51,140 --> 00:13:51,770 ці не так? 263 00:13:51,770 --> 00:13:59,720 Такім чынам, калі вы сартавання рэчы як першую літару свайго імя, 264 00:13:59,720 --> 00:14:01,820 што накшталт як хэш-табліцу. 265 00:14:01,820 --> 00:14:06,180 >> Так што, калі б я быў у групе, вы, хлопцы, гэта ў групах, хто пачынае імя 266 00:14:06,180 --> 00:14:11,670 з тут, або той, хто дзень нараджэння у студзені, лютым, сакавіку, 267 00:14:11,670 --> 00:14:15,220 незалежна, гэта значыць эфектыўна стварэнне хэш-табліцу. 268 00:14:15,220 --> 00:14:18,120 Гэта проста стварэнне вядра, што Вы сартавання элементаў у 269 00:14:18,120 --> 00:14:19,520 так што вы можаце знайсці іх лягчэй. 270 00:14:19,520 --> 00:14:22,300 Так Такім чынам, калі мне трэба каб знайсці адзін з вас, 271 00:14:22,300 --> 00:14:24,680 У мяне няма да пошуку праз кожны з вашых імёнаў. 272 00:14:24,680 --> 00:14:29,490 Я магу быць, як, ну, я ведаю, што Дзень нараджэння Даніэль з'яўляецца in-- 273 00:14:29,490 --> 00:14:30,240 АЎДЫТОРЫЯ: --April. 274 00:14:30,240 --> 00:14:30,948 СПІКЕР 1: Красавік. 275 00:14:30,948 --> 00:14:33,120 Так я гляджу на мой красавіка вядро, і калі пашанцуе, 276 00:14:33,120 --> 00:14:38,270 яна будзе адзіным у там і мой час быў сталым у гэтым сэнсе, 277 00:14:38,270 --> 00:14:41,230 у той час як, калі я павінен глядзець праз цэлую кучу людзей, 278 00:14:41,230 --> 00:14:43,090 гэта зойме значна больш часу. 279 00:14:43,090 --> 00:14:45,830 Так хэш-табліцы сапраўды ўсё вядра. 280 00:14:45,830 --> 00:14:48,630 Лёгкі спосаб думаць пра іх. 281 00:14:48,630 --> 00:14:52,930 >> Так вельмі важная рэч аб Хэш-табліца ўяўляе сабой хэш-функцыя. 282 00:14:52,930 --> 00:14:58,140 Так пра што я толькі што казаў пра, як Ваша першы ліст ад вашага імя 283 00:14:58,140 --> 00:15:01,450 ці твой дзень нараджэння месяц, гэта ідэі, якія 284 00:15:01,450 --> 00:15:03,070 сапраўды карэлюе з хэш-функцыі. 285 00:15:03,070 --> 00:15:08,900 Гэта проста спосаб вырашыць, якія вядро Ты элемент трапляе ў, ОК? 286 00:15:08,900 --> 00:15:14,850 Такім чынам, для гэтай PSET, вы можаце паглядзець амаль любы хэш-функцыя вы хочаце. 287 00:15:14,850 --> 00:15:16,030 >> Не трэба быць вашым уласным. 288 00:15:16,030 --> 00:15:21,140 Ёсць некаторыя сапраўды класныя тыя з ёсць што рабіць усякія вар'яты матэматыцы. 289 00:15:21,140 --> 00:15:25,170 І калі вы хочаце, каб ваш праверка арфаграфіі супер хуткі, 290 00:15:25,170 --> 00:15:27,620 Я б вызначана шукаць у адным з тых. 291 00:15:27,620 --> 00:15:32,390 >> Але існуюць і простыя, як вылічальных 292 00:15:32,390 --> 00:15:39,010 сума словамі, як кожная літара мае свой нумар. 293 00:15:39,010 --> 00:15:39,940 Вылічыць суму. 294 00:15:39,940 --> 00:15:42,230 Гэта вызначае вядро. 295 00:15:42,230 --> 00:15:45,430 Яны таксама маюць лягчэй, што такія ж, як усе тут, 296 00:15:45,430 --> 00:15:47,050 усе B тут. 297 00:15:47,050 --> 00:15:48,920 Любы з іх. 298 00:15:48,920 --> 00:15:55,770 >> У асноўным, гэта проста кажа вам, якія Індэкс масіва ваш элемент павінен перайсці ў. 299 00:15:55,770 --> 00:15:58,690 Проста вырашаючы bucket-- гэта ўсё хэш-функцыя. 300 00:15:58,690 --> 00:16:04,180 Так вось у нас ёсць прыклад, які проста першая літара радкі 301 00:16:04,180 --> 00:16:05,900 што я толькі што казаў пра. 302 00:16:05,900 --> 00:16:11,900 >> Так у вас ёсць хэш, гэта толькі Першая літара вашага струннага мінус, 303 00:16:11,900 --> 00:16:16,090 які дасць вам некаторыя лік ад 0 да 25. 304 00:16:16,090 --> 00:16:20,790 І тое, што вы хочаце зрабіць, гэта пераканайцеся, што гэта ўяўляе 305 00:16:20,790 --> 00:16:24,110 памер вашай хэш table-- колькі ёсць вядра. 306 00:16:24,110 --> 00:16:25,860 З многімі з іх Хэш-функцыі, яны 307 00:16:25,860 --> 00:16:31,630 збіраецца вяртацца значэння, якія маглі б быць нашмат вышэй колькасці каўшоў 308 00:16:31,630 --> 00:16:33,610 што вы на самой справе ёсць ў хэш-табліцы, 309 00:16:33,610 --> 00:16:37,240 так што вам трэба зрабіць упэўнены і мода на іх. 310 00:16:37,240 --> 00:16:42,190 У адваротным выпадку, ён збіраецца сказаць, ой, яна павінна быць у вядры 5000 311 00:16:42,190 --> 00:16:46,040 але ў вас ёсць толькі 30 вядра ў ваш хэш-табліцы. 312 00:16:46,040 --> 00:16:49,360 І, вядома, мы ўсе ведаем, што гэта збіраецца прывесці ў некаторых вар'ятаў памылак. 313 00:16:49,360 --> 00:16:52,870 Таму пераканайцеся, што мода на Памер вашага хэш-табліцы. 314 00:16:52,870 --> 00:16:58,430 315 00:16:58,430 --> 00:16:58,930 Прахладны. 316 00:16:58,930 --> 00:17:00,506 Так сутыкненняў. 317 00:17:00,506 --> 00:17:02,620 Ці ўсё добра да гэтага часу? 318 00:17:02,620 --> 00:17:03,120 Mmhmm? 319 00:17:03,120 --> 00:17:05,900 >> АЎДЫТОРЫЯ: З чаго б гэта вярнуць такую ​​масіўную значэнне? 320 00:17:05,900 --> 00:17:09,210 >> СПІКЕР 1: У залежнасці ад алгарытму што ваш хэш-функцыя выкарыстоўвае. 321 00:17:09,210 --> 00:17:12,270 Некаторыя з іх будуць рабіць вар'ят множання. 322 00:17:12,270 --> 00:17:16,270 І гэта ўсё аб атрыманні раўнамернае размеркаванне, 323 00:17:16,270 --> 00:17:18,490 так яны робяць некаторыя сапраўды вар'яты рэчы часам. 324 00:17:18,490 --> 00:17:20,960 Гэта ўсё. 325 00:17:20,960 --> 00:17:22,140 Што-небудзь яшчэ? 326 00:17:22,140 --> 00:17:22,829 Добра. 327 00:17:22,829 --> 00:17:24,480 >> Так сутыкненняў. 328 00:17:24,480 --> 00:17:29,270 У асноўным, як я ўжо казаў, у лепшым выпадку, 329 00:17:29,270 --> 00:17:32,040 любы вядро я гляджу ў гэта будзе мець адно, 330 00:17:32,040 --> 00:17:34,160 так што я не павінен глядзець на ўсё, ці не так? 331 00:17:34,160 --> 00:17:37,040 Я альбо ведаю, што там ці гэта ня, і гэта тое, што мы сапраўды хочам. 332 00:17:37,040 --> 00:17:43,960 Але калі ў нас ёсць дзесяткі тысяч пункту дадзеных і менш гэтага ліку 333 00:17:43,960 --> 00:17:48,700 каўшоў, мы збіраемся мець Сутыкнення дзе ў рэшце рэшт што-то 334 00:17:48,700 --> 00:17:54,210 будзе мець у канчатковым выніку ў Вядро, што ўжо ёсць элемент. 335 00:17:54,210 --> 00:17:57,390 >> Такім чынам, пытанне, што мы робім у гэтым выпадку? 336 00:17:57,390 --> 00:17:58,480 Што мы робім? 337 00:17:58,480 --> 00:17:59,300 У нас ужо ёсць што-то там? 338 00:17:59,300 --> 00:18:00,060 Ці ёсць у нас проста выкінуць яго? 339 00:18:00,060 --> 00:18:00,700 >> Няма. 340 00:18:00,700 --> 00:18:01,980 Мы павінны трымаць іх абодвух. 341 00:18:01,980 --> 00:18:06,400 Таму шлях, які мы як правіла, зрабіць гэта будзе што? 342 00:18:06,400 --> 00:18:08,400 Якая структура дадзеных мы толькі што гаварылі аб? 343 00:18:08,400 --> 00:18:09,316 АЎДЫТОРЫЯ: звязаны спіс. 344 00:18:09,316 --> 00:18:10,500 СПІКЕР 1: звязаны спіс. 345 00:18:10,500 --> 00:18:16,640 Так што цяпер, замест таго, каб кожны з іх Вядра толькі маючы адзін элемент, 346 00:18:16,640 --> 00:18:24,020 ён збіраецца ўтрымліваць звязаны спіс элементы, якія былі HASHED ў яго. 347 00:18:24,020 --> 00:18:27,588 ОК, ці ўсё выгляд гэта ўзялі? 348 00:18:27,588 --> 00:18:30,546 Таму што мы не маглі мець масіў таму што мы не ведаем, як шмат рэчаў 349 00:18:30,546 --> 00:18:31,730 збіраюцца быць там. 350 00:18:31,730 --> 00:18:36,540 Звязаны спіс дазваляе ёсць толькі дакладнае лік, што 351 00:18:36,540 --> 00:18:38,465 хэшируются у гэтым вядры, ці не так? 352 00:18:38,465 --> 00:18:42,260 353 00:18:42,260 --> 00:18:50,500 >> Так лінейнага зандзіравання з'яўляецца у асноўным гэта idea-- 354 00:18:50,500 --> 00:18:52,300 гэта адзін са спосабаў барацьбы з сутыкненні. 355 00:18:52,300 --> 00:18:58,010 Што вы можаце зрабіць, гэта калі ў гэты Справа, ягада была хэшируется ў 1 356 00:18:58,010 --> 00:19:01,130 і ў нас ужо ёсць што-то там, вы проста 357 00:19:01,130 --> 00:19:04,840 працягваць ісці ўніз да таго часу, Вы знайсці свабодны слот. 358 00:19:04,840 --> 00:19:06,370 Гэта адзін са спосабаў справіцца з гэтым. 359 00:19:06,370 --> 00:19:09,020 Іншы спосаб справіцца гэта з тым, што мы проста 360 00:19:09,020 --> 00:19:12,280 called-- звязаны спіс называецца ланцужкі. 361 00:19:12,280 --> 00:19:20,510 >> Так гэтая ідэя працуе, калі Ваш хэш-табліцы вы думаеце 362 00:19:20,510 --> 00:19:24,150 значна больш, чым ўсталяваць вашы дадзеныя, або калі вам 363 00:19:24,150 --> 00:19:28,870 хачу паспрабаваць і мінімізаваць ланцужкі пакуль гэта не абсалютна неабходна. 364 00:19:28,870 --> 00:19:34,050 Так адно лінейнае зандзіравання, відавочна, азначае, 365 00:19:34,050 --> 00:19:37,290 што ваш хэш-функцыі гэта не зусім так карысна 366 00:19:37,290 --> 00:19:42,200 таму што вы будзеце ў канчатковым выніку з дапамогай Ваш хэш-функцыя, трапляючы ў кропку, 367 00:19:42,200 --> 00:19:46,400 Вы лінейны датчык да нейкае месца, што даступна. 368 00:19:46,400 --> 00:19:49,670 Але цяпер, вядома, што-небудзь яшчэ, што заканчваецца там, 369 00:19:49,670 --> 00:19:52,050 Вы будзеце мець, каб пошук яшчэ далей ўніз. 370 00:19:52,050 --> 00:19:55,650 >> І ёсць нашмат больш Пошук выдаткі, якія 371 00:19:55,650 --> 00:19:59,820 пераходзіць у ўводзе элемент ў хэш-табліцы зараз, ці не так? 372 00:19:59,820 --> 00:20:05,640 І зараз, калі вы ідзяце, і паспрабаваць знайсці ягадка ізноў, вы збіраецеся, каб высьветліць ягоную, 373 00:20:05,640 --> 00:20:07,742 і ён збіраецца сказаць, ой, глядзіце ў вядро 1, 374 00:20:07,742 --> 00:20:09,700 і гэта не будзе у вядро 1, так што вы 375 00:20:09,700 --> 00:20:11,970 давядзецца прайсці праз астатнія з іх. 376 00:20:11,970 --> 00:20:17,720 Так што часам карысна, але ў большасці выпадкаў, 377 00:20:17,720 --> 00:20:22,660 мы збіраемся сказаць, што ланцужкі з'яўляецца тое, што вы хочаце зрабіць. 378 00:20:22,660 --> 00:20:25,520 >> Такім чынам, мы казалі пра гэта раней. 379 00:20:25,520 --> 00:20:27,812 Я крыху забягаю наперад. 380 00:20:27,812 --> 00:20:33,560 Але ланцужкі ў асноўным, што кожны вядро ў хэш-табліцы 381 00:20:33,560 --> 00:20:36,120 гэта проста звязаны спіс. 382 00:20:36,120 --> 00:20:39,660 >> Так яшчэ адзін спосаб, або больш тэхнічны спосаб, каб думаць пра хэш-табліцы 383 00:20:39,660 --> 00:20:44,490 з'яўляецца тое, што гэта проста масіў звязаных спісаў, якія 384 00:20:44,490 --> 00:20:49,330 калі вы пішаце свой слоўнік і вы спрабуеце загрузіць яго, 385 00:20:49,330 --> 00:20:52,070 думаць пра яго, як масіў звязаных спісаў 386 00:20:52,070 --> 00:20:54,390 будзе зрабіць гэта нашмат прасцей для вас, каб ініцыялізаваць. 387 00:20:54,390 --> 00:20:57,680 >> АЎДЫТОРЫЯ: Так хэш-табліцы мае загадзя пэўны памер, 388 00:20:57,680 --> 00:20:58,980 як [неразборліва] вёдраў? 389 00:20:58,980 --> 00:20:59,220 >> СПІКЕР 1: Права. 390 00:20:59,220 --> 00:21:01,655 Так што мае пэўную колькасць Каўшы, што вы determine-- 391 00:21:01,655 --> 00:21:03,530 якія вы, хлопцы, павінны не саромейцеся гуляць з. 392 00:21:03,530 --> 00:21:05,269 Гэта можа быць даволі халаднавата каб паглядзець, што адбываецца 393 00:21:05,269 --> 00:21:06,810 як вы зменіце сваё колькасць сегментаў. 394 00:21:06,810 --> 00:21:09,410 395 00:21:09,410 --> 00:21:11,510 Але так, гэта мае ўсталяваць колькасць каўшоў. 396 00:21:11,510 --> 00:21:15,360 Што дазваляе адпавядаць як многія элементы, як вам трэба 397 00:21:15,360 --> 00:21:19,350 гэта асобны ланцужкі, дзе вас звязалі спісы ў кожным вядры. 398 00:21:19,350 --> 00:21:22,850 Гэта азначае, што ваш хэш-табліцу будзе дакладна памер 399 00:21:22,850 --> 00:21:25,440 што вам гэта трэба, каб быць, ці не так? 400 00:21:25,440 --> 00:21:27,358 Вось і ўся кропка звязаных спісаў. 401 00:21:27,358 --> 00:21:30,850 402 00:21:30,850 --> 00:21:32,480 Прахладны. 403 00:21:32,480 --> 00:21:38,780 >> Так што ўсё там у парадку? 404 00:21:38,780 --> 00:21:39,801 Добра. 405 00:21:39,801 --> 00:21:40,300 Ах. 406 00:21:40,300 --> 00:21:41,860 Што толькі што адбылося? 407 00:21:41,860 --> 00:21:42,960 Сапраўды цяпер. 408 00:21:42,960 --> 00:21:45,250 Адгадайце, хто-то забівае мяне. 409 00:21:45,250 --> 00:21:52,060 >> ОК, мы збіраемся пайсці ў нах, якія трохі вар'ятам. 410 00:21:52,060 --> 00:21:53,140 Мне падабаецца хэш-табліцы. 411 00:21:53,140 --> 00:21:54,460 Я думаю, што яны сапраўды выдатна. 412 00:21:54,460 --> 00:21:56,710 Спрабуе гэта крута, занадта. 413 00:21:56,710 --> 00:21:59,590 >> Дык хто-небудзь памятае, што спроба гэта? 414 00:21:59,590 --> 00:22:01,740 Вы павінны перайшлі гэта коратка ў лекцыі? 415 00:22:01,740 --> 00:22:04,570 416 00:22:04,570 --> 00:22:06,377 Памятаеш роду, як гэта працуе? 417 00:22:06,377 --> 00:22:08,460 АЎДЫТОРЫЯ: Я проста ківаючы што мы сапраўды ішлі па ёй. 418 00:22:08,460 --> 00:22:09,626 СПІКЕР 1: Мы сапраўды ідуць па ім. 419 00:22:09,626 --> 00:22:13,100 Добра, мы сапраўды збіраемся ісці за гэта зараз з'яўляецца тое, што мы гаворым. 420 00:22:13,100 --> 00:22:14,860 >> АЎДЫТОРЫЯ: Вось для пошуку дрэва. 421 00:22:14,860 --> 00:22:15,280 >> СПІКЕР 1: Так. 422 00:22:15,280 --> 00:22:16,196 Гэта пошукавая дрэва. 423 00:22:16,196 --> 00:22:16,960 Дзіўны. 424 00:22:16,960 --> 00:22:23,610 Так што, адно заўважыць тут, што мы глядзім на асобных персанажаў 425 00:22:23,610 --> 00:22:24,480 тут, ці не так? 426 00:22:24,480 --> 00:22:29,710 >> Таму, перш чым з нашым хэш-функцыі, мы глядзелі на словах, як у цэлым, 427 00:22:29,710 --> 00:22:32,270 і зараз мы глядзім больш на персанажаў, ці не так? 428 00:22:32,270 --> 00:22:38,380 Таму ў нас ёсць Максвелла сюды і Мендэль. 429 00:22:38,380 --> 00:22:47,840 Таму ў асноўным try-- спосаб думаць аб тым, што кожны ўзровень тут 430 00:22:47,840 --> 00:22:49,000 ўяўляе сабой масіў з літар. 431 00:22:49,000 --> 00:22:53,310 432 00:22:53,310 --> 00:22:55,790 Так што гэта ваш каранёвай вузел тут, ці не так? 433 00:22:55,790 --> 00:23:01,980 Гэта ўсё сімвалы алфавіт для пачатку кожнага слова. 434 00:23:01,980 --> 00:23:06,480 >> І тое, што вы хочаце зрабіць, гэта скажам, у парадку, у нас ёсць некаторыя M слова. 435 00:23:06,480 --> 00:23:10,590 Мы збіраемся шукаць Максвелла, так мы ідзем да М. і М кропак у цэлым 436 00:23:10,590 --> 00:23:14,800 іншы масіў, у якім кожны Слова, пакуль існуе 437 00:23:14,800 --> 00:23:17,044 гэтае слова, якое мае ў якасці другога лісты, 438 00:23:17,044 --> 00:23:19,460 пры ўмове, што ёсць слова, якое ёсць B ў якасці другога лісты, 439 00:23:19,460 --> 00:23:24,630 ён будзе мець паказальнік адбываецца ў нейкай наступны масіў. 440 00:23:24,630 --> 00:23:29,290 >> Там, напэўна, не Слова, якое MP-то, 441 00:23:29,290 --> 00:23:32,980 так у P пазіцыі ў гэтым Масіў, што гэта проста будзе NULL. 442 00:23:32,980 --> 00:23:38,840 Гэта б сказаў, добра, там няма ні слова што M наступным P, ОК? 443 00:23:38,840 --> 00:23:43,100 Так што, калі мы думаем пра яе, кожны адзін з гэтых больш дробных рэчаў 444 00:23:43,100 --> 00:23:47,990 на самой справе адзін з іх буйныя масівы з A да Z. 445 00:23:47,990 --> 00:23:55,064 Так што можа быць адной з рэчаў, што гэта свайго роду недахопам паспрабаваць? 446 00:23:55,064 --> 00:23:56,500 >> АЎДЫТОРЫЯ: Шмат памяці. 447 00:23:56,500 --> 00:23:59,940 >> СПІКЕР 1: Гэта тона памяці, ці не так? 448 00:23:59,940 --> 00:24:08,750 Кожны з гэтых блокаў тут ўяўляе 26 месцы, 26 масіў элементаў. 449 00:24:08,750 --> 00:24:13,680 Так спрабуе атрымаць неверагодна прастору цяжкім. 450 00:24:13,680 --> 00:24:17,100 >> Але яны вельмі хутка. 451 00:24:17,100 --> 00:24:22,540 Так неверагодна хутка, але сапраўды прастору неэфектыўна. 452 00:24:22,540 --> 00:24:24,810 Выгляд павінен высветліць з якой вы хочаце. 453 00:24:24,810 --> 00:24:29,470 Гэта сапраўды выдатна для вашага PSET, але яны займаюць шмат памяці, 454 00:24:29,470 --> 00:24:30,290 так што вы кампраміс. 455 00:24:30,290 --> 00:24:31,480 Так? 456 00:24:31,480 --> 00:24:34,300 >> АЎДЫТОРЫЯ: Ці можна будзе наладзіць спробу, а затым 457 00:24:34,300 --> 00:24:37,967 калі ў вас ёсць усе Дадзеныя ў ім, што вы need-- 458 00:24:37,967 --> 00:24:39,550 Я не ведаю, калі гэта будзе мець сэнс. 459 00:24:39,550 --> 00:24:42,200 Я быў пазбавіцца ад усіх NULL сімвалы, але затым 460 00:24:42,200 --> 00:24:42,910 Вы не змаглі б індэкс them-- 461 00:24:42,910 --> 00:24:43,275 >> СПІКЕР 1: Вы па-ранейшаму ў іх мае патрэбу. 462 00:24:43,275 --> 00:24:44,854 >> АЎДЫТОРЫЯ: - сапраўды гэтак жа кожны раз. 463 00:24:44,854 --> 00:24:45,520 СПІКЕР 1: Так. 464 00:24:45,520 --> 00:24:50,460 Вы патрэбны нулявыя сімвалы, каб Вы ведаеце, калі ёсць не слова ёсць. 465 00:24:50,460 --> 00:24:52,040 Бэн ў вас было што-то вы хочаце? 466 00:24:52,040 --> 00:24:52,540 Добра. 467 00:24:52,540 --> 00:24:54,581 Добра, так што мы збіраемся ісці трохі больш 468 00:24:54,581 --> 00:24:58,920 ў тэхнічных дэталях ззаду паспрабаваць працаваць праз прыклад. 469 00:24:58,920 --> 00:25:01,490 >> ОК, так што гэта адно і тое ж. 470 00:25:01,490 --> 00:25:06,290 У той час як у звязаным спісе, наш галоўны выгляд of-- што слова, якое я хачу? - 471 00:25:06,290 --> 00:25:08,350 як будаваць блок быў вузел. 472 00:25:08,350 --> 00:25:12,280 У спробе, у нас таксама ёсць вузел, але гэта вызначаецца па-рознаму. 473 00:25:12,280 --> 00:25:17,000 >> Такім чынам, мы маем некаторую Ьоо што ці ўяўляе слова ў рэчаіснасці 474 00:25:17,000 --> 00:25:23,530 існуе ў гэтым месцы, а затым у нас ёсць некаторыя масіў here-- дакладней, 475 00:25:23,530 --> 00:25:27,840 гэта паказальнік на Масіў складаецца з 27 знакаў. 476 00:25:27,840 --> 00:25:33,339 А гэта для, у дадзеным выпадку, гэта 27-- Я ўпэўнены, што ўсе вы, як, чакаць, 477 00:25:33,339 --> 00:25:34,880 ёсць 26 літары алфавіту. 478 00:25:34,880 --> 00:25:36,010 Чаму ў нас 27? 479 00:25:36,010 --> 00:25:37,870 >> Таму ў залежнасці ад як вы гэта рэалізаваць, 480 00:25:37,870 --> 00:25:43,240 гэта ад PSET, што дазволена для апострафы. 481 00:25:43,240 --> 00:25:46,010 Дык вось чаму дадатковы адзін. 482 00:25:46,010 --> 00:25:50,500 Вы таксама будзеце мець у некаторыя выпадкі нулявы тэрмінатар 483 00:25:50,500 --> 00:25:53,230 уключаны ў якасці аднаго з персанажы, што гэта дазволена быць, 484 00:25:53,230 --> 00:25:56,120 і вось як яны правяраюць, каб убачыць, калі гэта канец слова. 485 00:25:56,120 --> 00:26:01,340 Калі вы зацікаўлены, праверыць Відэа Кевіна на study.cs50, 486 00:26:01,340 --> 00:26:04,790 а таксама Вікіпедыі ёсць некаторыя добрыя рэсурсы там. 487 00:26:04,790 --> 00:26:09,000 >> Але мы збіраемся прайсці праз толькі збольшага пра тое, як вы маглі б працаваць праз спробы 488 00:26:09,000 --> 00:26:11,010 калі вы далі адзін. 489 00:26:11,010 --> 00:26:16,230 Таму ў нас ёсць супер просты адзін тут, што няма слоў "кажан" і "зум" ў іх. 490 00:26:16,230 --> 00:26:18,920 І, як мы бачым тут, гэта мала месца тут 491 00:26:18,920 --> 00:26:22,560 прадстаўляе нашу Ьоо што кажа, так, гэта слова. 492 00:26:22,560 --> 00:26:27,060 А потым гэта карыстаецца нашым масівы сімвалаў, ці не так? 493 00:26:27,060 --> 00:26:33,480 >> Такім чынам, мы збіраемся прайсці праз знайсці "бітай" у гэтым спробы. 494 00:26:33,480 --> 00:26:38,340 Так пачынаюцца ў верхняй часткі, ці не так? 495 00:26:38,340 --> 00:26:46,290 І мы ведаем, што б адпавядае другі індэкс, другі элемент 496 00:26:46,290 --> 00:26:47,840 у гэтым масіве, таму што і б. 497 00:26:47,840 --> 00:26:51,340 Так прыкладна другая. 498 00:26:51,340 --> 00:26:58,820 >> І гэта кажа, у парадку, крута, вынікае, што ў наступны масіў, таму што, калі мы памятаем, 499 00:26:58,820 --> 00:27:02,160 гэта не што кожная з іх фактычна ўтрымлівае элемент. 500 00:27:02,160 --> 00:27:07,110 Кожны з гэтых масіваў ўтрымлівае паказальнік, ці не так? 501 00:27:07,110 --> 00:27:10,030 Гэта важнае адрозненне, каб зрабіць. 502 00:27:10,030 --> 00:27:13,450 >> Я ведаю, што гэта будзе be-- спрабуе з'яўляюцца вельмі цяжка атрымаць на першы раз, 503 00:27:13,450 --> 00:27:15,241 таму, нават калі гэта другі ці трэці раз 504 00:27:15,241 --> 00:27:18,370 і ён па-ранейшаму выгляд уяўнай цяжка, 505 00:27:18,370 --> 00:27:21,199 Я абяцаю, калі вы ідзяце гадзіны Карацей заўтра, 506 00:27:21,199 --> 00:27:22,740 гэта, напэўна, зрабіць нашмат больш сэнсу. 507 00:27:22,740 --> 00:27:23,890 Гэта займае вельмі шмат, каб пераварыць. 508 00:27:23,890 --> 00:27:27,800 Я да гэтага часу часам я як, чакаць, што гэта спроба? 509 00:27:27,800 --> 00:27:29,080 Як я магу выкарыстоўваць гэта? 510 00:27:29,080 --> 00:27:33,880 >> Такім чынам, мы б і ў гэтым выпадку, якая з'яўляецца нашым другім паказчыкам. 511 00:27:33,880 --> 00:27:40,240 Калі б мы мелі, скажам, з або d або любы іншы літарай, 512 00:27:40,240 --> 00:27:45,810 мы павінны адлюстраваць гэтую спіной да індэксе нашага масіва, які адпавядае. 513 00:27:45,810 --> 00:27:56,930 Такім чынам, мы б як rchar, і мы проста адняць ад супаставіць яго ў 0 да 25. 514 00:27:56,930 --> 00:27:58,728 Усё добра, як мы Карта нашых герояў? 515 00:27:58,728 --> 00:28:00,440 Добра. 516 00:28:00,440 --> 00:28:05,980 >> Так мы ідзем да другога і мы бачыць, што, так, гэта не NULL. 517 00:28:05,980 --> 00:28:07,780 Мы можам перайсці да наступным масіве. 518 00:28:07,780 --> 00:28:12,300 Такім чынам, мы пяройдзем да гэтай наступнай масіва тут. 519 00:28:12,300 --> 00:28:15,500 >> І мы кажам: добра, зараз мы ці трэба гэта тут. 520 00:28:15,500 --> 00:28:18,590 З'яўляецца нулявым або робіць гэта на самай справе рухацца наперад? 521 00:28:18,590 --> 00:28:21,880 Так на самай справе рухаецца наперад у гэтым масіве. 522 00:28:21,880 --> 00:28:24,570 І мы кажам: добра, т наша апошняя літара. 523 00:28:24,570 --> 00:28:27,580 Так мы ідзем у т у індэксе. 524 00:28:27,580 --> 00:28:30,120 А потым мы рухаемся наперад таму што ёсць яшчэ адзін. 525 00:28:30,120 --> 00:28:38,340 І гэта кажуць у асноўным, што, так, ён кажа, што ёсць слова here-- 526 00:28:38,340 --> 00:28:41,750 што калі вы будзеце прытрымлівацца гэтым Шлях, вы прыехалі 527 00:28:41,750 --> 00:28:43,210 пры слове, якое мы ведаем, "Лятучая мыш". 528 00:28:43,210 --> 00:28:43,800 Так? 529 00:28:43,800 --> 00:28:46,770 >> АЎДЫТОРЫЯ: Гэта стандартная мець што як індэкс 0, а затым ёсць свайго роду ў 1 530 00:28:46,770 --> 00:28:47,660 або мець у канцы? 531 00:28:47,660 --> 00:28:48,243 >> СПІКЕР 1: Не. 532 00:28:48,243 --> 00:28:55,360 Так што, калі мы азірнемся на наш Дэкларацыя тут, гэта лагічны, 533 00:28:55,360 --> 00:28:59,490 так што гэта яго ўласны элемент у вузле. 534 00:28:59,490 --> 00:29:03,331 Так што гэта не частка масіва. 535 00:29:03,331 --> 00:29:03,830 Прахладны. 536 00:29:03,830 --> 00:29:08,370 Так што, калі мы скончым наша слова, і мы у гэтым масіве, тое, што мы хочам зрабіць 537 00:29:08,370 --> 00:29:12,807 гэта зрабіць чэк на гэтае слова. 538 00:29:12,807 --> 00:29:14,390 І ў гэтым выпадку, ён вернецца да. 539 00:29:14,390 --> 00:29:17,220 540 00:29:17,220 --> 00:29:24,090 >> Так на гэтай ноце, мы ведаем, што "заапарк" - мы ведаем, як людзі, якія "заапарк" гэтае слова, 541 00:29:24,090 --> 00:29:24,820 ці не так? 542 00:29:24,820 --> 00:29:28,990 Але будуць спрабаваць тут будзе кажуць, не, гэта не так. 543 00:29:28,990 --> 00:29:33,980 І было б сказаць, што, таму што мы ня пазначаныя як словы тут. 544 00:29:33,980 --> 00:29:40,440 Нават пры тым, што мы можам прайсці да гэтага масіва, 545 00:29:40,440 --> 00:29:43,890 гэта спроба магла сказаць, што, не, заапарк не ў слоўніку 546 00:29:43,890 --> 00:29:47,070 таму што ў нас не пазначыўшы яго як такой. 547 00:29:47,070 --> 00:29:52,870 >> Так адзін з спосабаў зрабіць that-- ой, прабачце, гэта адзін. 548 00:29:52,870 --> 00:29:59,450 Такім чынам, у дадзеным выпадку, "заапарк" не Слова, але гэта ў нашай спробы. 549 00:29:59,450 --> 00:30:05,690 Але ў гэтым, сказаць, што мы хочам яго ўвесці слова "лазня", тое, што адбываецца 550 00:30:05,690 --> 00:30:08,260 гэта мы ідзём through-- B, A, т. 551 00:30:08,260 --> 00:30:11,820 Мы ў гэтым масіве, і мы ідзем шукаць ч. 552 00:30:11,820 --> 00:30:15,220 >> У гэтым выпадку, калі мы паглядзіце на паказальнік на гадзіну, 553 00:30:15,220 --> 00:30:17,890 гэта паказвае на NULL, ОК? 554 00:30:17,890 --> 00:30:20,780 Так, калі гэта не відавочна паказваючы на ​​іншага масіва, 555 00:30:20,780 --> 00:30:25,000 Вы мяркуеце, што ўсе ўказальнікі у гэтым масіве паказваючы на ​​нуль. 556 00:30:25,000 --> 00:30:28,270 Такім чынам, у гэтым выпадку, ч паказвае абнуліць таму мы нічога не можам зрабіць, 557 00:30:28,270 --> 00:30:31,540 так яно і вернецца ілжывым, "лазня" не тут. 558 00:30:31,540 --> 00:30:34,102 559 00:30:34,102 --> 00:30:35,810 Так што цяпер мы на самай справе збіраюся прайсці праз 560 00:30:35,810 --> 00:30:39,790 як бы мы на самай справе сказаць, што "заапарк" знаходзіцца ў нашай спробы. 561 00:30:39,790 --> 00:30:42,920 Як мы ўстаўляем "заапарк" у нашай спробы? 562 00:30:42,920 --> 00:30:47,810 Такім чынам, у адной і той жа спосабам, што мы пачалі з наш звязаны спіс, мы стартуем з кораня. 563 00:30:47,810 --> 00:30:50,600 Калі вы сумняваецеся, пачніце з корань гэтых рэчаў. 564 00:30:50,600 --> 00:30:53,330 >> І мы будзем казаць, добра, г. 565 00:30:53,330 --> 00:30:55,650 г існуе ў гэтым, і ён робіць. 566 00:30:55,650 --> 00:30:58,370 Такім чынам, вы, як перайсці да Ваш наступны масіў, ОК? 567 00:30:58,370 --> 00:31:01,482 А потым на наступны, мы кажам, добра, сапраўды пра існуюць? 568 00:31:01,482 --> 00:31:03,000 Ён робіць. 569 00:31:03,000 --> 00:31:04,330 Гэта яшчэ раз. 570 00:31:04,330 --> 00:31:08,670 >> І так на нашым наступным, мы ўжо казалі, ОК, "заапарк" ужо існуе тут. 571 00:31:08,670 --> 00:31:12,440 Усё, што трэба зрабіць, гэта ўсталяваць гэта роўна праўдзіва, што ёсць слова там. 572 00:31:12,440 --> 00:31:15,260 Калі вы вынікалі ўсе да перад тым пунктам, 573 00:31:15,260 --> 00:31:17,030 гэтае слова, так што проста ўсталяваць яго роўным такія. 574 00:31:17,030 --> 00:31:17,530 Так? 575 00:31:17,530 --> 00:31:22,550 >> АЎДЫТОРЫЯ: Такім чынам робіць, што азначае, што "ба" гэта слова таксама? 576 00:31:22,550 --> 00:31:24,120 >> СПІКЕР 1: Не. 577 00:31:24,120 --> 00:31:28,870 Такім чынам, у дадзеным выпадку, "ба", мы атрымаем тут, мы б сказалі, гэта слова, 578 00:31:28,870 --> 00:31:31,590 ня, і гэта ўсё роўна будзе не. 579 00:31:31,590 --> 00:31:32,822 Добра? 580 00:31:32,822 --> 00:31:33,740 Mmhmm? 581 00:31:33,740 --> 00:31:36,360 >> АЎДЫТОРЫЯ: Таму, як толькі вы гэта Слова і вы кажаце, так, то гэта 582 00:31:36,360 --> 00:31:38,380 будзе ўтрымліваць пайсці ў м? 583 00:31:38,380 --> 00:31:42,260 >> СПІКЕР 1: Так што гэта мае дачыненне да with-- вы загружаеце гэта. 584 00:31:42,260 --> 00:31:43,640 Вы кажаце, "заапарк" гэтае слова. 585 00:31:43,640 --> 00:31:47,020 Калі вы ідзяце ў check-- як, скажам, вы хочаце сказаць ,, 586 00:31:47,020 --> 00:31:49,400 значыць "заапарк" існуюць у гэтым слоўніку? 587 00:31:49,400 --> 00:31:54,200 Вы толькі збіраецеся шукаць "заапарк" а затым праверыць, калі гэтае слова. 588 00:31:54,200 --> 00:31:57,291 Вы ніколі не збіраецеся пераехаць да м, таму што гэта не 589 00:31:57,291 --> 00:31:58,290 тое, што вы шукаеце. 590 00:31:58,290 --> 00:32:02,690 591 00:32:02,690 --> 00:32:08,070 >> Так што, калі мы на самай справе хацелі дадаць "ванну" у гэтай спробе, 592 00:32:08,070 --> 00:32:11,390 мы будзем рабіць тое ж самае як мы гэта рабілі з "заапаркам" 593 00:32:11,390 --> 00:32:15,380 акрамя мы ўбачым, што, калі мы паспрабаваць дабрацца да ч, яго не існуе. 594 00:32:15,380 --> 00:32:20,090 Такім чынам, вы можаце думаць пра гэта як спрабуюць каб дадаць новы вузел ў звязаным спісе, 595 00:32:20,090 --> 00:32:27,210 такім чынам, мы павінны былі б дадаць яшчэ адзін адзін з гэтых масіваў, як і. 596 00:32:27,210 --> 00:32:35,670 І тады тое, што мы робім, мы проста ўсталяваць гадзіну элемент гэтага масіву, якія паказваюць на гэта. 597 00:32:35,670 --> 00:32:39,430 >> І тады тое, што мы хацелі б зрабіць тут? 598 00:32:39,430 --> 00:32:43,110 Дадаць гэта роўна справядліва таму што гэтае слова. 599 00:32:43,110 --> 00:32:46,350 600 00:32:46,350 --> 00:32:48,150 Прахладны. 601 00:32:48,150 --> 00:32:48,700 Я ведаю. 602 00:32:48,700 --> 00:32:51,170 Спрабуе не самая захапляльная. 603 00:32:51,170 --> 00:32:54,250 Паверце мне, я ведаю. 604 00:32:54,250 --> 00:32:58,040 >> Так адна справа разумець, з спроб, Я сказаў, што яны вельмі эфектыўныя. 605 00:32:58,040 --> 00:33:00,080 Такім чынам, мы бачылі яны заняць да тону прасторы. 606 00:33:00,080 --> 00:33:01,370 Яны накшталт заблытанай. 607 00:33:01,370 --> 00:33:03,367 Дык чаму б нам калі-небудзь выкарыстоўваць іх? 608 00:33:03,367 --> 00:33:05,450 Мы выкарыстоўваем іх, таму што яны неверагодна эфектыўны. 609 00:33:05,450 --> 00:33:08,130 >> Так што калі вы калі-небудзь шукаеце да Словам, вы толькі 610 00:33:08,130 --> 00:33:10,450 абмежаваныя па даўжыні слова. 611 00:33:10,450 --> 00:33:15,210 Так што калі вы шукаеце Слова, якое мае даўжыню пяць, 612 00:33:15,210 --> 00:33:20,940 Вы толькі калі-небудзь прыйдзецца зрабіць у большасці пяць параўнанняў, ОК? 613 00:33:20,940 --> 00:33:25,780 Такім чынам, гэта робіць яго ў асноўным пастаяннай. 614 00:33:25,780 --> 00:33:29,150 Як ўстаўкі і пошуку у асноўным пастаянная часу. 615 00:33:29,150 --> 00:33:33,750 >> Так што калі вы можаце калі-небудзь атрымаць што-то ў пастаянным часу, 616 00:33:33,750 --> 00:33:35,150 гэта так жа добра, як ён атрымлівае. 617 00:33:35,150 --> 00:33:37,990 Вы не можаце паправіцца, чым Пастаянная часу для гэтых рэчаў. 618 00:33:37,990 --> 00:33:43,150 Так, што з'яўляецца адным з Вялізныя плюсы спробаў. 619 00:33:43,150 --> 00:33:46,780 >> Але гэта шмат месца. 620 00:33:46,780 --> 00:33:50,380 Такім чынам, вы, здаецца, павінны вырашыць, што для вас важней. 621 00:33:50,380 --> 00:33:54,700 І на сучасных кампутарах, прастору, што спроба можа заняць да 622 00:33:54,700 --> 00:33:57,740 можа быць, не ўплывае Вы так шмат, але, можа быць, 623 00:33:57,740 --> 00:34:01,350 Вы маеце справу з чым-то што мае значна, значна больш рэчаў, 624 00:34:01,350 --> 00:34:02,810 і паспрабаваць проста не разумна. 625 00:34:02,810 --> 00:34:03,000 Так? 626 00:34:03,000 --> 00:34:05,610 >> АЎДЫТОРЫЯ: Пачакайце, так у вас ёсць 26 Літары ў кожным адзін? 627 00:34:05,610 --> 00:34:07,440 >> СПІКЕР 1: Mmhmm. 628 00:34:07,440 --> 00:34:08,570 Так, у вас ёсць 26. 629 00:34:08,570 --> 00:34:16,984 У вас ёсць нейкі ёсць слова маркер, а затым у вас ёсць 26 паказальнікаў у кожным з. 630 00:34:16,984 --> 00:34:17,775 І яны point-- 631 00:34:17,775 --> 00:34:20,280 >> АЎДЫТОРЫЯ: І кожны 26, яны адзін у 26? 632 00:34:20,280 --> 00:34:21,500 >> СПІКЕР 1: Так. 633 00:34:21,500 --> 00:34:27,460 І вось чаму, як вы можаце см, яна пашыраецца даволі хутка. 634 00:34:27,460 --> 00:34:28,130 Добра. 635 00:34:28,130 --> 00:34:32,524 Такім чынам, мы збіраемся, каб атрымаць у дрэвы, якія Я адчуваю, што гэта прасцей і, верагодна, 636 00:34:32,524 --> 00:34:36,150 быць міленькі адтэрміноўка ад спробаў ёсць. 637 00:34:36,150 --> 00:34:39,620 Будзем спадзявацца, што большасць з вас бачылі дрэва раней. 638 00:34:39,620 --> 00:34:41,820 Не так, як даволі тыя, за межамі, якія я 639 00:34:41,820 --> 00:34:44,340 не ведаю, калі хто- пайшоў на адкрытым паветры ў апошні час. 640 00:34:44,340 --> 00:34:49,230 Я пайшоў збор яблыкаў у гэтыя выходныя, і о, чорт вазьмі, гэта было прыгожа. 641 00:34:49,230 --> 00:34:52,250 Я не ведаў, лісце можа выглядаць, што даволі. 642 00:34:52,250 --> 00:34:53,610 >> Так што гэта проста дрэва, ці не так? 643 00:34:53,610 --> 00:34:56,790 Гэта толькі некаторыя вузел, і ён паказвае на кучу іншых вузлоў. 644 00:34:56,790 --> 00:34:59,570 Як вы бачыце тут, гэта выгляд паўтаральнай тэмай. 645 00:34:59,570 --> 00:35:03,720 Вузлы, які паказвае на вузлах з'яўляецца свайго роду Сутнасць многіх структур дадзеных. 646 00:35:03,720 --> 00:35:06,670 Усё залежыць ад таго, як мы каб яны паказваюць адзін з адным 647 00:35:06,670 --> 00:35:08,600 і як мы перасякаем праз іх і, як мы 648 00:35:08,600 --> 00:35:14,500 ўставіць тое, што вызначае іх розныя характарыстыкі. 649 00:35:14,500 --> 00:35:17,600 >> Так што некаторыя тэрміны, якія я выкарыстаў раней. 650 00:35:17,600 --> 00:35:20,010 Так корань ўсё, што знаходзіцца на самым версе. 651 00:35:20,010 --> 00:35:21,200 гэта дзе мы заўсёды пачынаем. 652 00:35:21,200 --> 00:35:23,610 Вы можаце думаць пра гэта як кіраўнік таксама. 653 00:35:23,610 --> 00:35:28,750 Але для дрэў, мы, як правіла, ставяцца да яго як корань. 654 00:35:28,750 --> 00:35:32,820 >> Усё ў ніжняй here-- у вельмі, вельмі bottom-- 655 00:35:32,820 --> 00:35:34,500 лічацца лісце. 656 00:35:34,500 --> 00:35:37,210 Так што ідзе разам з усё дрэва, што, ці не так? 657 00:35:37,210 --> 00:35:39,860 Лісце па краях дрэве. 658 00:35:39,860 --> 00:35:45,820 >> І тады ў нас таксама ёсць некалькі Умовы казаць аб вузлах сувязі 659 00:35:45,820 --> 00:35:46,680 адзін да аднаго. 660 00:35:46,680 --> 00:35:49,700 Таму ў нас ёсць бацька, дзеці, браты і сёстры. 661 00:35:49,700 --> 00:35:56,260 Такім чынам, у дадзеным выпадку, з'яўляецца 3 Бацька 5, 6, і 7. 662 00:35:56,260 --> 00:36:00,370 Так бацька ўсё, што адзін крок вышэй, што вы знаходзіцеся 663 00:36:00,370 --> 00:36:02,940 са спасылкай на, так што проста як радаводу. 664 00:36:02,940 --> 00:36:07,090 Будзем спадзявацца, што гэта ўсё трохі трохі больш зразумелым, чым спробаў. 665 00:36:07,090 --> 00:36:10,970 >> Браты і сёстры з'яўляюцца любыя, якія маюць тое ж самае з бацькоў, ці не так? 666 00:36:10,970 --> 00:36:13,470 Яны на тым жа ўзроўні, тут. 667 00:36:13,470 --> 00:36:16,960 А потым, як я быў кажучы, дзеці проста 668 00:36:16,960 --> 00:36:22,630 усё, што на адзін крок ніжэй дадзены вузел, ОК? 669 00:36:22,630 --> 00:36:23,470 Прахладны. 670 00:36:23,470 --> 00:36:25,610 Так бінарнае дрэва. 671 00:36:25,610 --> 00:36:31,450 Можа хто-небудзь здагадку на адным з характарыстыкі бінарнага дрэва? 672 00:36:31,450 --> 00:36:32,770 >> АЎДЫТОРЫЯ: Макс два ліста. 673 00:36:32,770 --> 00:36:33,478 >> СПІКЕР 1: Права. 674 00:36:33,478 --> 00:36:34,640 Так макс двух лісця. 675 00:36:34,640 --> 00:36:39,730 Такім чынам, у гэты перш, у нас быў гэты адзін што было тры, але ў бінарным дрэве, 676 00:36:39,730 --> 00:36:45,000 ў вас ёсць макс двух дзяцей на бацькоў, ці не так? 677 00:36:45,000 --> 00:36:46,970 Там іншая Цікавай асаблівасцю. 678 00:36:46,970 --> 00:36:51,550 Хто-небудзь ведае, што? 679 00:36:51,550 --> 00:36:52,620 Бінарнае дрэва. 680 00:36:52,620 --> 00:37:00,350 >> Так бінарнае дрэва будзе мець усе на the-- гэты ня sorted-- 681 00:37:00,350 --> 00:37:05,320 але ў адсартаваны бінарнага дрэва, усе справа 682 00:37:05,320 --> 00:37:08,530 больш, чым бацькоў, і ўсё злева 683 00:37:08,530 --> 00:37:10,035 менш, чым бацькоў. 684 00:37:10,035 --> 00:37:15,690 І што было віктарына Пытанне перш, так добра ведаць. 685 00:37:15,690 --> 00:37:19,500 Так як мы вызначаем гэта, зноў, у нас ёсць яшчэ адзін вузел. 686 00:37:19,500 --> 00:37:21,880 Гэта выглядае вельмі падобна на што? 687 00:37:21,880 --> 00:37:28,336 688 00:37:28,336 --> 00:37:28,836 Ўдвая 689 00:37:28,836 --> 00:37:29,320 >> Аўдыторыя: Змяненні, спісы 690 00:37:29,320 --> 00:37:31,100 >> СПІКЕР 1: двайны звязаны спіс, ці не так? 691 00:37:31,100 --> 00:37:33,690 Так што, калі мы заменім гэты з папярэднім і наступным, 692 00:37:33,690 --> 00:37:35,670 гэта было б ўдвая звязаны спіс. 693 00:37:35,670 --> 00:37:40,125 Але ў дадзеным выпадку, мы на самай справе ёсць левы і правы, і гэтым усё сказана. 694 00:37:40,125 --> 00:37:41,500 У адваротным выпадку, гэта сапраўды гэтак жа. 695 00:37:41,500 --> 00:37:43,374 У нас яшчэ ёсць элемент Вы шукаеце, 696 00:37:43,374 --> 00:37:45,988 і вы проста павінны два паказальніка збіраецца ўсё, што будзе далей. 697 00:37:45,988 --> 00:37:49,210 698 00:37:49,210 --> 00:37:51,870 Так, так бінарнае дрэва. 699 00:37:51,870 --> 00:37:57,665 Калі мы заўважаем, усё на тут больш than-- 700 00:37:57,665 --> 00:37:59,850 або ўсё адразу каб прама тут 701 00:37:59,850 --> 00:38:02,840 больш, чым усё, тут менш. 702 00:38:02,840 --> 00:38:06,980 703 00:38:06,980 --> 00:38:14,000 >> Так што, калі б мы павінны былі шукаць праз, яго павінен выглядаць вельмі блізка да бінарнага пошуку 704 00:38:14,000 --> 00:38:14,910 тут, ці не так? 705 00:38:14,910 --> 00:38:17,640 Акрамя замест таго каб шукаць на палове масіва, 706 00:38:17,640 --> 00:38:21,720 мы проста гледзячы на ​​любым злева бок або правая бок дрэва. 707 00:38:21,720 --> 00:38:24,850 Так ён атрымлівае крыху прасцей, я думаю. 708 00:38:24,850 --> 00:38:29,300 >> Так што калі ваш корань NULL, Відавочна, што гэта проста хлусня. 709 00:38:29,300 --> 00:38:33,470 І калі гэта ёсць, відавочна, што гэта праўда. 710 00:38:33,470 --> 00:38:35,320 Калі гэта менш, чым, мы шукаем левага. 711 00:38:35,320 --> 00:38:37,070 Калі гэта больш, чым, мы шукаем права. 712 00:38:37,070 --> 00:38:39,890 Гэта так жа, як бінарны пошук, проста іншая структура дадзеных 713 00:38:39,890 --> 00:38:40,600 што мы выкарыстоўваем. 714 00:38:40,600 --> 00:38:42,790 Замест масіва, гэта проста бінарнае дрэва. 715 00:38:42,790 --> 00:38:45,820 716 00:38:45,820 --> 00:38:48,090 >> ОК, стэкі. 717 00:38:48,090 --> 00:38:51,550 А таксама, падобна, што мы можа мець трохі часу. 718 00:38:51,550 --> 00:38:54,460 Калі мы гэта зробім, я шчаслівы пайсці за ўсё гэта зноў. 719 00:38:54,460 --> 00:38:56,856 Такім чынам, стэкі. 720 00:38:56,856 --> 00:39:02,695 Хто-небудзь памятае, што stacks-- любыя характарыстыкі стэка? 721 00:39:02,695 --> 00:39:05,550 722 00:39:05,550 --> 00:39:10,400 >> Такім чынам, большасць з нас, я думаю, што, ядуць у сталовай halls-- 723 00:39:10,400 --> 00:39:13,100 столькі, колькі мы, магчыма, не падабаецца. 724 00:39:13,100 --> 00:39:16,900 Але відавочна, што вы можаце думаць аб стэку літаральна толькі ў выглядзе чаркі латкоў 725 00:39:16,900 --> 00:39:18,460 або чарка рэчаў. 726 00:39:18,460 --> 00:39:21,820 І, што важна каб зразумець, што гэта 727 00:39:21,820 --> 00:39:26,850 something-- характарыстыка што мы называем гэта по-- з'яўляецца ЛИФО. 728 00:39:26,850 --> 00:39:28,450 Хто-небудзь ведае, што гэта азначае? 729 00:39:28,450 --> 00:39:29,070 Mmhmm? 730 00:39:29,070 --> 00:39:30,650 >> АЎДЫТОРЫЯ: апошнім прыйшоў, першым з. 731 00:39:30,650 --> 00:39:32,250 >> СПІКЕР 1: справа, апошнім прыйшоў, першым з. 732 00:39:32,250 --> 00:39:36,585 Так што, калі мы ведаем, калі мы кладка рэчаў да, прасцей за ўсё захапіць off-- 733 00:39:36,585 --> 00:39:39,570 і, можа быць, адзінае, што мы можам захапіць , Калі б наш стэк вялікі enough-- 734 00:39:39,570 --> 00:39:40,850 з'яўляецца тое, што верхні элемент. 735 00:39:40,850 --> 00:39:43,460 Таму, што б было паставіць на last-- як мы бачым тут, 736 00:39:43,460 --> 00:39:46,370 што было штурхнуў на найбольш recently-- з'яўляецца 737 00:39:46,370 --> 00:39:51,160 будзе першым рэч, якую мы паліць, ОК? 738 00:39:51,160 --> 00:39:56,324 >> Такім чынам, што мы маем тут справу іншы ЬурейеЕ структура. 739 00:39:56,324 --> 00:39:58,740 Гэта на самай справе проста хацеў Crash Course ў структуры дадзеных, 740 00:39:58,740 --> 00:40:01,650 так што ёсць шмат кінутыя на вас, хлопцы. 741 00:40:01,650 --> 00:40:02,540 Я ведаю. 742 00:40:02,540 --> 00:40:04,970 Так яшчэ адзін структура. 743 00:40:04,970 --> 00:40:06,740 Ура для структур. 744 00:40:06,740 --> 00:40:16,660 >> І ў гэтым выпадку, гэта нейкая паказальнік у масіў, які мае пэўны патэнцыял. 745 00:40:16,660 --> 00:40:20,830 Такім чынам, гэта ўяўляе наш стэк тут, як і наш фактычны масіў 746 00:40:20,830 --> 00:40:22,520 што трымае нашы элементы. 747 00:40:22,520 --> 00:40:24,850 А потым тут у нас ёсць некаторыя памеры. 748 00:40:24,850 --> 00:40:31,170 >> І, як правіла, вы хочаце, каб захаваць трэк, наколькі вялікі ваш стэк 749 00:40:31,170 --> 00:40:36,180 таму, што ён збіраецца, каб дазволіць Вы зрабіць гэта, калі вы ведаеце памер, 750 00:40:36,180 --> 00:40:39,170 гэта дазваляе сказаць, ОК, я на поўную магутнасць? 751 00:40:39,170 --> 00:40:40,570 Ці магу я дадаць нічога больш? 752 00:40:40,570 --> 00:40:44,650 І гэта таксама кажа вам, дзе ў верхняй частцы вашага стэка 753 00:40:44,650 --> 00:40:48,180 так вы ведаеце, што вы можа на самай справе зняць. 754 00:40:48,180 --> 00:40:51,760 І што на самой справе адбываецца ў быць трохі больш ясна. 755 00:40:51,760 --> 00:40:57,350 >> Такім чынам, для штуршка, З аднаго боку, калі вас былі калі-небудзь рэалізаваць штуршок, 756 00:40:57,350 --> 00:41:01,330 як я толькі што казаў, ваша Стэк мае абмежаваны памер, ці не так? 757 00:41:01,330 --> 00:41:03,990 Наш масіў быў некаторы патэнцыял. 758 00:41:03,990 --> 00:41:04,910 Гэта масіў. 759 00:41:04,910 --> 00:41:08,930 Гэта фіксаваны памер, так што нам трэба пераканацца, што мы не ставілі больш 760 00:41:08,930 --> 00:41:11,950 у нашым масіве, чым мы на самай справе ёсць месца для. 761 00:41:11,950 --> 00:41:16,900 >> Так што, калі вы ствараеце штуршок Функцыя, першае, што вам зрабіць, гэта скажам, у парадку, 762 00:41:16,900 --> 00:41:18,570 у мяне ёсць месца ў маёй стэка? 763 00:41:18,570 --> 00:41:23,330 Таму што, калі я не раблю, прабачце, Я не магу захоўваць элемент. 764 00:41:23,330 --> 00:41:28,980 Калі я, то вы хочаце захаваць гэта на вяршыні стэка, ці не так? 765 00:41:28,980 --> 00:41:31,325 >> І менавіта таму ў нас ёсць адсочваць нашага памеру. 766 00:41:31,325 --> 00:41:35,290 Калі мы не адсочваць нашага памеру, мы не ведаем, куды яго пакласці. 767 00:41:35,290 --> 00:41:39,035 Мы не ведаем, як шмат рэчаў у нашым масіве ўжо. 768 00:41:39,035 --> 00:41:41,410 Як відавочна, ёсць спосабы што, можа быць, вы маглі б зрабіць гэта. 769 00:41:41,410 --> 00:41:44,610 Вы можаце ініцыялізаваць усё, каб NULL а затым праверыць наяўнасць апошняй NULL, 770 00:41:44,610 --> 00:41:47,950 але значна прасцей рэч проста сказаць, у парадку, адсочваць памер. 771 00:41:47,950 --> 00:41:51,840 Як я ведаю, у мяне ёсць чатыры элемента ў маім масіве, так наступная рэч 772 00:41:51,840 --> 00:41:55,930 што мы ставім на, мы збіраецеся захоўваць у індэксе 4. 773 00:41:55,930 --> 00:42:00,940 І тады, вядома, гэта азначае, што Вы паспяхова штурхнуў што-то 774 00:42:00,940 --> 00:42:03,320 на свой стэк, вы хачу павялічыць памер 775 00:42:03,320 --> 00:42:08,880 так што вы ведаеце, дзе вы знаходзіцеся, так што вы можаце націснуць больш рэчаў на. 776 00:42:08,880 --> 00:42:12,730 >> Так што, калі мы спрабуем поп што-то з стэка, 777 00:42:12,730 --> 00:42:16,072 што можа быць у першую чаргу што мы хочам, каб праверыць? 778 00:42:16,072 --> 00:42:18,030 Ты спрабуеш ўзяць што-то ад вашага стэка. 779 00:42:18,030 --> 00:42:21,710 780 00:42:21,710 --> 00:42:24,781 Вы ўпэўненыя, што ёсць што-то ў вашым стэку? 781 00:42:24,781 --> 00:42:25,280 Няма. 782 00:42:25,280 --> 00:42:26,894 Так што, магчыма, мы хочам праверыць? 783 00:42:26,894 --> 00:42:27,810 >> АЎДЫТОРЫЯ: [неразборліва]. 784 00:42:27,810 --> 00:42:29,880 СПІКЕР 1: Праверце памер? 785 00:42:29,880 --> 00:42:31,840 Памер. 786 00:42:31,840 --> 00:42:38,520 Таму мы хочам, каб праверыць, калі наш памер больш 0, ОК? 787 00:42:38,520 --> 00:42:44,970 І калі гэта так, то мы хочам, каб паменшыць наш памер 0 і вярнуць гэта. 788 00:42:44,970 --> 00:42:45,840 Чаму? 789 00:42:45,840 --> 00:42:49,950 >> У першым з іх мы былі штурхаючы, мы вылучылі яго 790 00:42:49,950 --> 00:42:52,460 на памер і затым абноўленай памеру. 791 00:42:52,460 --> 00:42:57,850 У гэтым выпадку, мы памяншаючы памер і тое, прымаючы яго, выскубанне яго 792 00:42:57,850 --> 00:42:58,952 з нашага масіва. 793 00:42:58,952 --> 00:42:59,826 Чаму мы можам гэта зрабіць? 794 00:42:59,826 --> 00:43:04,800 795 00:43:04,800 --> 00:43:11,811 Так што, калі ў мяне ёсць адна рэч, на мой стэк, што б мой памер на той момант? 796 00:43:11,811 --> 00:43:13,140 1. 797 00:43:13,140 --> 00:43:15,180 >> А дзе элемент 1 захоўваецца? 798 00:43:15,180 --> 00:43:17,621 На тое, што індэкс? 799 00:43:17,621 --> 00:43:18,120 АЎДЫТОРЫЯ: 0. 800 00:43:18,120 --> 00:43:19,060 СПІКЕР 1: 0. 801 00:43:19,060 --> 00:43:22,800 Такім чынам, у дадзеным выпадку, мы заўсёды трэба рабіць sure-- 802 00:43:22,800 --> 00:43:27,630 замест таго каб вярнуцца памер мінус 1, таму што мы 803 00:43:27,630 --> 00:43:31,730 ведаем, што наш элемент будуць захоўвацца на 1 менш 804 00:43:31,730 --> 00:43:34,705 усе наш памер, гэта проста клапоціцца пра яго. 805 00:43:34,705 --> 00:43:36,080 Гэта крыху больш элегантны спосаб. 806 00:43:36,080 --> 00:43:41,220 І мы проста паменшыць OUR Памер, а затым вярнуць памер. 807 00:43:41,220 --> 00:43:42,330 Mmhmm? 808 00:43:42,330 --> 00:43:45,300 >> Аўдыторыя: Я думаю, проста ў цэлым, навошта гэтая структура дадзеных 809 00:43:45,300 --> 00:43:47,800 быць карысным? 810 00:43:47,800 --> 00:43:50,660 >> СПІКЕР 1: Гэта залежыць ад кантэксту. 811 00:43:50,660 --> 00:43:57,420 Такім чынам, для некаторых з тэорыі, калі вы працуеце with-- ОК, 812 00:43:57,420 --> 00:44:02,750 дайце мне паглядзець, ці ёсць выгадна адзін што з'яўляецца карысным для больш, чым звонку 813 00:44:02,750 --> 00:44:05,420 з CS. 814 00:44:05,420 --> 00:44:15,780 З стэкаў, у любы час вам трэба адсочваць тое, што 815 00:44:15,780 --> 00:44:20,456 з'яўляецца найбольш нядаўна дададзенага, калі Вы збіраецеся хочаце выкарыстоўваць стэк. 816 00:44:20,456 --> 00:44:24,770 >> І я не магу думаць аб добрым прыклад, што цяпер. 817 00:44:24,770 --> 00:44:29,955 Але кожны раз, калі самая апошняя Справа ў тым, найбольш важныя для вас, 818 00:44:29,955 --> 00:44:31,705 вось калі стэк будзе карысна. 819 00:44:31,705 --> 00:44:35,797 820 00:44:35,797 --> 00:44:39,330 Я спрабую думаць, калі ёсць добры варыянтам. 821 00:44:39,330 --> 00:44:43,720 Калі я думаю пра добры, напрыклад, у наступным 20 хвілін, я, безумоўна, скажу вам. 822 00:44:43,720 --> 00:44:49,455 >> Але ў цэлым, калі ёсць што-небудзь, як я сказаў, што большасць, дзе апошняя 823 00:44:49,455 --> 00:44:52,470 самае галоўнае, што гэта дзе чарка уступае ў гульню. 824 00:44:52,470 --> 00:44:58,860 У той час як чарзе з'яўляюцца свайго роду супрацьлегласць. 825 00:44:58,860 --> 00:44:59,870 І ўсе маленькія сабакі. 826 00:44:59,870 --> 00:45:00,890 Хіба гэта не выдатна, ці не так? 827 00:45:00,890 --> 00:45:03,299 Я адчуваю, што павінен проста ёсць трусік відэа 828 00:45:03,299 --> 00:45:05,090 прама ў сярэдзіне падзел для вас, хлопцы 829 00:45:05,090 --> 00:45:08,870 таму што гэта з'яўляецца інтэнсіўным падзел. 830 00:45:08,870 --> 00:45:10,480 >> Так чарзе. 831 00:45:10,480 --> 00:45:12,710 У асноўным чэргі як лінія. 832 00:45:12,710 --> 00:45:15,780 Вы, хлопцы, я ўпэўнены, што выкарыстанне гэтага кожны дзень, сапраўды гэтак жа як у нашых сталовых. 833 00:45:15,780 --> 00:45:18,160 Такім чынам, мы павінны пайсці ў і атрымаць у свае латкі, я 834 00:45:18,160 --> 00:45:21,260 што ў вас ёсць, каб стаяць у чарзе сурвэткі або атрымаць вашу ежу. 835 00:45:21,260 --> 00:45:24,650 >> Такім чынам, розніца тут у тым, што гэта FIFO. 836 00:45:24,650 --> 00:45:30,090 Так што, калі ЛИФО апошні раз быў у першую па-за, FIFO з'яўляецца першым прыйшоў, першым сышоў. 837 00:45:30,090 --> 00:45:33,400 Так што гэта, дзе ўсё, што вы паклалі на першы ваш самы важны. 838 00:45:33,400 --> 00:45:35,540 Так што, калі вы чакалі у line-- магу вас 839 00:45:35,540 --> 00:45:39,130 Уявіце сабе, калі вы пайшлі ў пайсці атрымаць новы iPhone 840 00:45:39,130 --> 00:45:42,800 і гэта быў стэк, дзе апошні чалавек у лініі атрымаў яго першым, 841 00:45:42,800 --> 00:45:44,160 людзі будуць забіваць адзін аднаго. 842 00:45:44,160 --> 00:45:49,800 >> Так FIFO, мы ўсе добра знаёмыя з у рэальным свеце тут, 843 00:45:49,800 --> 00:45:54,930 і ўсё гэта мае дачыненне да рэчаіснасці выгляд аднаўлення ўсю гэтую лінію 844 00:45:54,930 --> 00:45:56,900 і чэргаў структуру. 845 00:45:56,900 --> 00:46:02,390 Так у той час як са стэкам, у нас ёсць штуршок і поп-музыкі. 846 00:46:02,390 --> 00:46:06,440 З чаргу, мы маем паставіць у чаргу і выдалення з чаргі. 847 00:46:06,440 --> 00:46:10,910 Так паставіць у чаргу ў асноўным азначае, пакласці яго на спіну, 848 00:46:10,910 --> 00:46:13,680 і вываду са сродкаў ўзяць ад з фронту. 849 00:46:13,680 --> 00:46:18,680 Такім чынам, наша структура дадзеных крыху больш складана. 850 00:46:18,680 --> 00:46:21,060 У нас ёсць другое, для адсочвання. 851 00:46:21,060 --> 00:46:25,950 >> Так што без галавы, гэта менавіта стэк, ці не так? 852 00:46:25,950 --> 00:46:27,900 Гэта тое ж самае будынак, як стэк. 853 00:46:27,900 --> 00:46:32,480 Адзінае адрозненне ў цяперашні час з'яўляецца ў нас ёсць гэтая галава, якая, што вы думаеце 854 00:46:32,480 --> 00:46:34,272 збіраецца адсочваць? 855 00:46:34,272 --> 00:46:35,510 >> АЎДЫТОРЫЯ: Першы. 856 00:46:35,510 --> 00:46:38,685 >> СПІКЕР 1: справа, Першае, што мы ўкладваем у. 857 00:46:38,685 --> 00:46:41,130 Кіраўнік нашай чарзе. 858 00:46:41,130 --> 00:46:42,240 Той, хто гэта першы ў чарзе. 859 00:46:42,240 --> 00:46:45,300 860 00:46:45,300 --> 00:46:49,420 Добра, так што калі мы робім у чаргу. 861 00:46:49,420 --> 00:46:52,720 862 00:46:52,720 --> 00:46:55,920 Зноў жа, з любым з гэтыя структуры дадзеных, 863 00:46:55,920 --> 00:46:59,760 так як мы маем справу з масівам, мы павінны праверыць, калі ў нас ёсць прастора. 864 00:46:59,760 --> 00:47:03,290 >> Гэта накшталт як мне распавядаў хлопцы, калі вы адкрываеце файл, 865 00:47:03,290 --> 00:47:04,760 Вы павінны праверыць на нуль. 866 00:47:04,760 --> 00:47:08,330 З любы з гэтых стэкаў і чэргі, вам трэба 867 00:47:08,330 --> 00:47:13,420 каб убачыць, калі ёсць вольнае месца, таму што мы справу з масівам фіксаванага памеру, 868 00:47:13,420 --> 00:47:16,030 як мы бачым, here-- 0, 1 за ўсё да 5. 869 00:47:16,030 --> 00:47:20,690 Так, што мы робім у гэтым выпадку з'яўляецца праверка каб убачыць, калі ў нас яшчэ ёсць прастора. 870 00:47:20,690 --> 00:47:23,110 Ці з'яўляецца наша памер менш магутнасці? 871 00:47:23,110 --> 00:47:28,480 >> Калі гэта так, мы павінны захоўваць яго ў хвост, і мы адновім наш памер. 872 00:47:28,480 --> 00:47:30,250 Так што, магчыма, хвост будзе ў гэтым выпадку? 873 00:47:30,250 --> 00:47:32,360 Гэта відавочна не выпісаныя. 874 00:47:32,360 --> 00:47:33,380 Як бы мы захоўваем гэта? 875 00:47:33,380 --> 00:47:34,928 Што б хвост быць? 876 00:47:34,928 --> 00:47:38,600 877 00:47:38,600 --> 00:47:40,190 >> Так што давайце ісці праз гэты прыклад. 878 00:47:40,190 --> 00:47:44,590 Так што гэта масіў памерам 6, ці не так? 879 00:47:44,590 --> 00:47:49,220 І ў нас ёсць цяпер, наш памер 5. 880 00:47:49,220 --> 00:47:55,240 І калі мы ставім яго ў, ён збіраецца ісці ў пятым індэкса, ці не так? 881 00:47:55,240 --> 00:47:57,030 Так захоўваць у хвасце. 882 00:47:57,030 --> 00:48:05,600 >> Яшчэ адзін спосаб напісаць хвост б проста быць наш масіў з індэксам памеру, ці не так? 883 00:48:05,600 --> 00:48:07,560 Гэта памер 5. 884 00:48:07,560 --> 00:48:11,490 Наступная рэч, якую збіраецца пайсці ў 5. 885 00:48:11,490 --> 00:48:12,296 Прахладны? 886 00:48:12,296 --> 00:48:13,290 Добра. 887 00:48:13,290 --> 00:48:16,350 Гэта становіцца крыху больш складана, калі мы пачынаем песціцца з галавой. 888 00:48:16,350 --> 00:48:17,060 Так? 889 00:48:17,060 --> 00:48:20,090 >> АЎДЫТОРЫЯ: Ці азначае гэта, што мы абвясціў б масіў, 890 00:48:20,090 --> 00:48:23,880 было даўно пяць элементаў і Затым мы дадаем на яго? 891 00:48:23,880 --> 00:48:24,730 >> СПІКЕР 1: Не. 892 00:48:24,730 --> 00:48:27,560 Такім чынам, у дадзеным выпадку, гэта стэк. 893 00:48:27,560 --> 00:48:31,760 Гэта будзе абвешчаны у выглядзе масіва памерам 6. 894 00:48:31,760 --> 00:48:37,120 І ў гэтым выпадку мы ёсць толькі адзін касмічны налева. 895 00:48:37,120 --> 00:48:42,720 >> Такім чынам, адна справа знаходзіцца ў гэтым так, калі наша галава на 0, 896 00:48:42,720 --> 00:48:45,270 Затым мы проста можаце дадаць яго ў памерах. 897 00:48:45,270 --> 00:48:51,020 Але гэта становіцца крыху больш складана таму што на самой справе, яны 898 00:48:51,020 --> 00:48:52,840 няма слайд для гэтага, так што я збіраюся 899 00:48:52,840 --> 00:48:56,670 каб зрабіць адзін, таму што гэта не так проста, як толькі вы 900 00:48:56,670 --> 00:48:59,230 пачаць збавенне ад рэчаў. 901 00:48:59,230 --> 00:49:03,920 Так у той час як са стэкам Вы толькі калі-небудзь 902 00:49:03,920 --> 00:49:08,920 турбавацца аб тым, што памер калі вы дадаеце нешта на, 903 00:49:08,920 --> 00:49:15,710 з чаргой вы таксама павінны пераканацца, Пераканайцеся, што ваша галава даводзілася, 904 00:49:15,710 --> 00:49:20,760 таму што выдатна, што пра чэргі з'яўляецца тое, што, калі вы не на поўную магутнасць, 905 00:49:20,760 --> 00:49:23,040 вы можаце зрабіць гэта абгарнуць вакол. 906 00:49:23,040 --> 00:49:28,810 >> Такім чынам, адзін thing-- о, гэта жудасна мел. 907 00:49:28,810 --> 00:49:31,815 Адна рэч, каб разгледзець гэтую справу. 908 00:49:31,815 --> 00:49:35,514 909 00:49:35,514 --> 00:49:37,140 Мы проста робім пяць. 910 00:49:37,140 --> 00:49:41,810 Такім чынам, мы збіраемся кажуць галава тут. 911 00:49:41,810 --> 00:49:46,140 Гэта азначае 0, 1, 2, 3, 4. 912 00:49:46,140 --> 00:49:54,210 >> Кіраўнік там, і калі ласка, што ў іх. 913 00:49:54,210 --> 00:49:58,340 І мы хочам, каб дадаць нешта ў, ці не так? 914 00:49:58,340 --> 00:50:01,170 Так, што мы павінны ведаю, што галава заўсёды 915 00:50:01,170 --> 00:50:05,620 будзе рухацца гэтым шляхам і Затым цыкл назад вакол, ОК? 916 00:50:05,620 --> 00:50:10,190 >> Так гэтая чаргу мае месца, ці не так? 917 00:50:10,190 --> 00:50:13,950 У ім ёсць месца ў самым пачатку, выгляд супрацьлегласці гэта. 918 00:50:13,950 --> 00:50:17,920 Так што нам трэба зрабіць, гэта мы трэба разлічыць хвост. 919 00:50:17,920 --> 00:50:20,530 Калі вы ведаеце, што ваш галава не пераехаў, хвост 920 00:50:20,530 --> 00:50:24,630 проста ваш масіў у Індэкс памеру. 921 00:50:24,630 --> 00:50:30,000 >> Але на самай справе, калі вы карыстаецеся чаргу, Ваша галава, верагодна, абнаўляецца. 922 00:50:30,000 --> 00:50:33,890 Так што вам трэба зрабіць, гэта на самай справе вылічыць хвост. 923 00:50:33,890 --> 00:50:39,990 Так што мы робім, гэта формула тут, якія я збіраюся даць вам 924 00:50:39,990 --> 00:50:42,680 хлопцы, думаеце пра, і тады мы будзем казаць пра гэта. 925 00:50:42,680 --> 00:50:49,567 926 00:50:49,567 --> 00:50:50,400 Так што гэта магутнасць. 927 00:50:50,400 --> 00:50:55,890 928 00:50:55,890 --> 00:50:59,660 >> Так што гэта будзе на самой справе даць вам спосаб зрабіць гэта. 929 00:50:59,660 --> 00:51:03,205 930 00:51:03,205 --> 00:51:04,330 Таму што ў гэтым выпадку, тое, што? 931 00:51:04,330 --> 00:51:09,205 Наша галава на 1, наш памер 4. 932 00:51:09,205 --> 00:51:11,760 933 00:51:11,760 --> 00:51:18,490 Калі мы мод, што на 5, атрымліваем 0, які з'яўляецца, дзе мы павінны ўвесці яго. 934 00:51:18,490 --> 00:51:23,320 935 00:51:23,320 --> 00:51:26,080 >> Так то ў наступным выпадку, калі мы павінны былі зрабіць гэта, 936 00:51:26,080 --> 00:51:33,390 мы кажам, добра, давайце з чаргі што-то. 937 00:51:33,390 --> 00:51:34,390 Мы з чаргі гэта. 938 00:51:34,390 --> 00:51:37,740 Вымаем гэты элемент, ці не так? 939 00:51:37,740 --> 00:51:47,930 >> І цяпер наша галава паказваючы тут, і мы хочам дадаць у іншым. 940 00:51:47,930 --> 00:51:52,470 Гэта, у асноўным назад ад нашай лініі, ці не так? 941 00:51:52,470 --> 00:51:55,450 Чэргі могуць абгарнуць вакол масіва. 942 00:51:55,450 --> 00:51:57,310 Гэта адна з асноўных адрозненняў. 943 00:51:57,310 --> 00:51:58,780 Чаркі, вы не можаце зрабіць гэта. 944 00:51:58,780 --> 00:52:01,140 >> З чэргамі, вы можаце таму што ўсё, што мае значэнне 945 00:52:01,140 --> 00:52:03,940 з'яўляецца тое, што вы ведаеце, што зусім нядаўна быў дададзены. 946 00:52:03,940 --> 00:52:10,650 Паколькі ўсё будзе дададзены ў гэты кірунак налева, у гэтым выпадку, 947 00:52:10,650 --> 00:52:16,480 а затым абгарнуць вакол, вы можаце працягнуць ўвод новых элементаў 948 00:52:16,480 --> 00:52:18,830 у пярэдняй частцы масіва таму што гэта не сапраўды 949 00:52:18,830 --> 00:52:20,640 пярэдняя частка масіва больш. 950 00:52:20,640 --> 00:52:26,320 Вы можаце думаць аб пачатку Масіў як дзе ваша галава на самай справе. 951 00:52:26,320 --> 00:52:29,710 >> Так гэтая формула, як Вы разлічыць свой хвост. 952 00:52:29,710 --> 00:52:32,780 953 00:52:32,780 --> 00:52:35,610 Ці значыць гэта, мае сэнс? 954 00:52:35,610 --> 00:52:36,110 Добра. 955 00:52:36,110 --> 00:52:39,400 956 00:52:39,400 --> 00:52:44,040 ОК, з чаргі, а затым вы, хлопцы, ёсць 10 хвілін 957 00:52:44,040 --> 00:52:48,840 задаваць мне любыя удакладняючыя пытанні Вы хочаце, таму што я ведаю, што гэта вар'ят. 958 00:52:48,840 --> 00:52:51,980 >> Добра, так у тым жа way-- Я не ведаю, калі вы, хлопцы заўважылі, 959 00:52:51,980 --> 00:52:53,450 але CS гэта ўсё аб ўзорамі. 960 00:52:53,450 --> 00:52:57,370 Рэчы даволі шмат ж, толькі з малюсенькімі хітрыкаў. 961 00:52:57,370 --> 00:52:58,950 Гэтак жа і тут. 962 00:52:58,950 --> 00:53:04,040 Нам трэба праверыць, каб убачыць, калі мы на самай справе ёсць што-то ў нашай чарзе, дакладна? 963 00:53:04,040 --> 00:53:05,960 Скажам, у парадку, наша памер больш 0? 964 00:53:05,960 --> 00:53:06,730 Прахладны. 965 00:53:06,730 --> 00:53:10,690 >> Калі мы гэта зробім, то мы перанясем наша галаву, якая гэта тое, што я толькі што прадэманстраваў тут. 966 00:53:10,690 --> 00:53:13,870 Мы абнаўляем нашу галаву яшчэ адна. 967 00:53:13,870 --> 00:53:18,390 А потым мы памяншаем нашы Памер і вяртае элемент. 968 00:53:18,390 --> 00:53:21,000 969 00:53:21,000 --> 00:53:26,250 >> Існуе значна больш бетону Код на study.cs50.net, 970 00:53:26,250 --> 00:53:29,440 і я вельмі рэкамендую рух праз яго, калі ў вас ёсць час, 971 00:53:29,440 --> 00:53:30,980 нават калі гэта ўсяго толькі псеўда-код. 972 00:53:30,980 --> 00:53:35,980 І калі вы, хлопцы, жадаеце пагаварыць праз што са мной адзін на адзін, калі ласка, паведаміце мне, 973 00:53:35,980 --> 00:53:37,500 ведаю. 974 00:53:37,500 --> 00:53:38,770 Я быў бы шчаслівы. 975 00:53:38,770 --> 00:53:42,720 Структуры дадзеных, калі вы бераце CS 124, вы будзеце 976 00:53:42,720 --> 00:53:47,830 ведаю, што структуры дадзеных атрымаць вельмі весела і гэта толькі пачатак. 977 00:53:47,830 --> 00:53:50,350 >> Так што я ведаю, гэта цяжка. 978 00:53:50,350 --> 00:53:51,300 Гэта нармальна. 979 00:53:51,300 --> 00:53:52,410 Мы змагаемся. 980 00:53:52,410 --> 00:53:53,630 Я да гэтага часу. 981 00:53:53,630 --> 00:53:56,660 Так што не турбуйцеся пра гэта занадта шмат. 982 00:53:56,660 --> 00:54:02,390 >> Але гэта ў асноўным праграмы Your Crash Course ў структурах дадзеных. 983 00:54:02,390 --> 00:54:03,400 Я ведаю, што гэта шмат. 984 00:54:03,400 --> 00:54:06,860 Ёсць што-небудзь, што мы хацеў бы пайсці зноў? 985 00:54:06,860 --> 00:54:09,400 Усё, што мы хочам пагаварыць праз? 986 00:54:09,400 --> 00:54:10,060 Так? 987 00:54:10,060 --> 00:54:16,525 >> АЎДЫТОРЫЯ: Для гэтага, напрыклад, так новы хвост на 0 над гэтым? 988 00:54:16,525 --> 00:54:17,150 СПІКЕР 1: Так. 989 00:54:17,150 --> 00:54:18,230 АЎДЫТОРЫЯ: ОК. 990 00:54:18,230 --> 00:54:24,220 Такім чынам перажывае, Вы павінны былі б 1 плюс 4 или-- 991 00:54:24,220 --> 00:54:27,671 >> СПІКЕР 1: Такім чынам, вы казалі, калі мы хочам пайсці і зрабіць гэта зноў? 992 00:54:27,671 --> 00:54:28,296 АЎДЫТОРЫЯ: Так. 993 00:54:28,296 --> 00:54:38,290 Так што, калі вы былі высветліць out-- дзе Вы разліку хвост з ў тым, што? 994 00:54:38,290 --> 00:54:44,260 >> СПІКЕР 1: Так хвост быў in-- я змяніў гэта. 995 00:54:44,260 --> 00:54:52,010 Такім чынам, у гэтым прыкладзе тут, гэта было масіў, мы глядзім на, ОК? 996 00:54:52,010 --> 00:54:54,670 Таму ў нас ёсць рэчы, у 1, 2, 3, і 4. 997 00:54:54,670 --> 00:55:05,850 Таму ў нас ёсць наша галава роўная 1 на гэтая кропка, і наш памер роўны 4 998 00:55:05,850 --> 00:55:07,050 на дадзены момант, ці не так? 999 00:55:07,050 --> 00:55:08,960 >> Вы ўсё згодныя, што гэта так? 1000 00:55:08,960 --> 00:55:14,620 Так мы робім галаву плюс памер, які дае нам 5, а затым мы мод на 5. 1001 00:55:14,620 --> 00:55:20,690 Мы атрымліваем 0, якая кажа нам, што 0 з'яўляецца дзе наша хвост, дзе ў нас ёсць прастора. 1002 00:55:20,690 --> 00:55:22,010 >> АЎДЫТОРЫЯ: Што шапка? 1003 00:55:22,010 --> 00:55:23,520 >> СПІКЕР 1: Ёмістасць. 1004 00:55:23,520 --> 00:55:24,020 Прабачце. 1005 00:55:24,020 --> 00:55:29,640 Так што гэта памер вашага масіва. 1006 00:55:29,640 --> 00:55:35,210 1007 00:55:35,210 --> 00:55:36,047 Так? 1008 00:55:36,047 --> 00:55:39,210 >> АЎДЫТОРЫЯ: [неразборліва], перш чым мы вяртае элемент? 1009 00:55:39,210 --> 00:55:46,270 >> СПІКЕР 1: Так мы рухаемся ўзначаліць або вярнуць час? 1010 00:55:46,270 --> 00:55:52,680 Так што, калі мы пяройдзем адзін, паменшыць памер? 1011 00:55:52,680 --> 00:55:54,150 Ўтрымліваць. 1012 00:55:54,150 --> 00:55:55,770 Я вызначана забыўся яшчэ адзін. 1013 00:55:55,770 --> 00:56:00,646 1014 00:56:00,646 --> 00:56:01,990 Нічога. 1015 00:56:01,990 --> 00:56:04,980 Існуе не адна формула. 1016 00:56:04,980 --> 00:56:09,980 Так, вы хацелі б, каб вярнуцца кіраўнік, а затым вярнуць яго назад. 1017 00:56:09,980 --> 00:56:13,270 >> АЎДЫТОРЫЯ: ОК, таму што ў гэты Кропка, галава была на 0, 1018 00:56:13,270 --> 00:56:18,452 а затым вы хочаце, каб вярнуцца Індэкс 0, а затым зрабіць галаўнога 1? 1019 00:56:18,452 --> 00:56:19,870 >> СПІКЕР 1: Права. 1020 00:56:19,870 --> 00:56:22,820 Я думаю, што ёсць яшчэ адзін Формула накшталт як гэта. 1021 00:56:22,820 --> 00:56:26,970 У мяне няма яго на верхняй галаву, як Я не хачу, каб даць вам не той. 1022 00:56:26,970 --> 00:56:35,470 Але я думаю, што гэта цалкам дапушчальна, каб скажам, у парадку, захоўваць гэтую element-- ўсе 1023 00:56:35,470 --> 00:56:40,759 элемент галава is-- паменшыць ваш памер, перамяшчаць галаву над, і вяртанне 1024 00:56:40,759 --> 00:56:41,800 усё, што элемент. 1025 00:56:41,800 --> 00:56:44,760 Гэта зусім справядліва. 1026 00:56:44,760 --> 00:56:45,260 Добра. 1027 00:56:45,260 --> 00:56:48,360 1028 00:56:48,360 --> 00:56:53,560 Я адчуваю, што гэта не як most-- вы не 1029 00:56:53,560 --> 00:56:55,740 збіраецца выйсці адсюль як, так, я ведаю спробаў. 1030 00:56:55,740 --> 00:56:56,880 Я атрымаў усё гэта. 1031 00:56:56,880 --> 00:56:57,670 Гэта добра. 1032 00:56:57,670 --> 00:57:00,200 Я абяцаю. 1033 00:57:00,200 --> 00:57:05,240 Але структуры дадзеных з'яўляюцца чым-тое, што яна займае шмат часу, каб прывыкнуць. 1034 00:57:05,240 --> 00:57:10,010 Верагодна, гэта адзін з самых складаных рэчы, я думаю, што, у курсе. 1035 00:57:10,010 --> 00:57:15,330 >> Так што, безумоўна, займае Паўтарэнне і гледзячы at-- I 1036 00:57:15,330 --> 00:57:20,050 на самай справе не ведаю, сувязныя спісы пакуль я не зрабіў занадта шмат з імі, 1037 00:57:20,050 --> 00:57:22,550 такім жа чынам, што не зрабіў сапраўды зразумець паказальнікі 1038 00:57:22,550 --> 00:57:27,040 пакуль у мяне не было, каб навучыць яго на дваіх гадоў і зрабіць свае ўласныя psets з ім. 1039 00:57:27,040 --> 00:57:28,990 Гэта займае шмат паўтарэння і час. 1040 00:57:28,990 --> 00:57:32,600 І ў рэшце рэшт, гэта будзе свайго роду націсніце. 1041 00:57:32,600 --> 00:57:36,320 >> Але ў той жа час, калі ў вас ёсць выгляд з глыбокага знаёмства з таго, што 1042 00:57:36,320 --> 00:57:39,321 гэта зрабіць, іх плюсы і cons-- што і 1043 00:57:39,321 --> 00:57:41,820 мы сапраўды, як правіла, падкрэсліваюць, асабліва ў інтра вядома. 1044 00:57:41,820 --> 00:57:45,511 Маўляў, навошта нам выкарыстоўваць паспрабуйце над масівам? 1045 00:57:45,511 --> 00:57:48,010 Маўляў, тое, што станоўчыя бакі і негатывы кожнага з іх? 1046 00:57:48,010 --> 00:57:51,610 >> І разуменне кампрамісаў паміж кожнай з гэтых структур 1047 00:57:51,610 --> 00:57:54,910 з'яўляецца тое, што значна больш важна цяпер. 1048 00:57:54,910 --> 00:57:58,140 Там можа быць адзін вар'ят Пытанне або два гэта 1049 00:57:58,140 --> 00:58:03,710 папрашу вас, каб рэалізаваць штуршок або ажыццявіць поп або паставіць у чаргу і выдалення з чаргі. 1050 00:58:03,710 --> 00:58:07,340 Але па большай частцы, якія маюць, што вышэй разуменне ўзроўню і больш 1051 00:58:07,340 --> 00:58:09,710 з інтуітыўнае разуменне з'яўляецца важней, чым на самай справе 1052 00:58:09,710 --> 00:58:11,250 будучы ў стане яго рэалізаваць. 1053 00:58:11,250 --> 00:58:14,880 >> Гэта было б сапраўды выдатна, калі вы ўсё маглі выйсці і пайсці рэалізаваць спробу, 1054 00:58:14,880 --> 00:58:19,720 але мы разумеем, што гэта не абавязкова самае разумнае цяпер. 1055 00:58:19,720 --> 00:58:23,370 Але вы можаце ў PSET, калі вы хочаце на, а затым вы атрымаеце практыку, 1056 00:58:23,370 --> 00:58:27,200 і тады, магчыма, вы будзеце сапраўды разумею. 1057 00:58:27,200 --> 00:58:27,940 Так? 1058 00:58:27,940 --> 00:58:30,440 >> АЎДЫТОРЫЯ: ОК, так, якія з іх мы хацелі выкарыстоўваць у PSET? 1059 00:58:30,440 --> 00:58:31,916 Ці трэба выкарыстоўваць адну з іх? 1060 00:58:31,916 --> 00:58:32,540 СПІКЕР 1: Так. 1061 00:58:32,540 --> 00:58:34,199 Так у вас ёсць выбар. 1062 00:58:34,199 --> 00:58:36,740 Я думаю, у гэтым выпадку, мы можам казаць аб PSET трохі 1063 00:58:36,740 --> 00:58:40,480 таму што я прабег гэтыя. 1064 00:58:40,480 --> 00:58:47,779 Так што ў вашым PSET, у вас ёсць свой Выбар спробаў або хэш-табліцы. 1065 00:58:47,779 --> 00:58:49,570 Некаторыя людзі будуць спрабаваць і выкарыстоўваць цвіцення фільтры, 1066 00:58:49,570 --> 00:58:51,840 але тыя, тэхнічна не правільна. 1067 00:58:51,840 --> 00:58:55,804 З-за іх імавернасны характар, яны даюць ілжывыя спрацоўвання часам. 1068 00:58:55,804 --> 00:58:57,095 Яны халодны погляд у, хоць. 1069 00:58:57,095 --> 00:58:59,030 Вельмі рэкамендую гледзячы на іх, па меншай меры. 1070 00:58:59,030 --> 00:59:03,260 Але ў вас ёсць выбар паміж хэш-табліцу і паспрабаваць. 1071 00:59:03,260 --> 00:59:06,660 І што будзе, калі Вы загружаеце ў слоўніку. 1072 00:59:06,660 --> 00:59:09,230 >> І вы павінны будзеце выбраць Ваш хэш-функцыя, 1073 00:59:09,230 --> 00:59:13,420 Вы павінны будзеце выбраць, колькі Вядра ў вас ёсць, і яна будзе мяняцца. 1074 00:59:13,420 --> 00:59:17,440 Як калі ў вас ёсць больш вядра, можа быць, ён будзе працаваць хутчэй. 1075 00:59:17,440 --> 00:59:22,790 Але, можа быць, вы дарма шмат месца, што шлях, хоць. 1076 00:59:22,790 --> 00:59:26,320 Вы павінны зразумець гэта. 1077 00:59:26,320 --> 00:59:27,140 Mmhmm? 1078 00:59:27,140 --> 00:59:29,875 >> АЎДЫТОРЫЯ: Вы казалі, што мы можам выкарыстоўваць іншыя хэш-функцый, 1079 00:59:29,875 --> 00:59:31,750 што мы не павінны стварыць хэш-функцыі? 1080 00:59:31,750 --> 00:59:32,666 >> СПІКЕР 1: Так, дакладна. 1081 00:59:32,666 --> 00:59:38,150 Так літаральна за хэш-функцыі, Як і Google "хэш функцыя" 1082 00:59:38,150 --> 00:59:40,770 і шукаць нейкія новых і прышпільных. 1083 00:59:40,770 --> 00:59:43,250 Вы не мяркуецца пабудаваць Вашы ўласныя хэш-функцыі. 1084 00:59:43,250 --> 00:59:46,100 Людзі марнуюць іх тэзісы аб гэтых рэчах. 1085 00:59:46,100 --> 00:59:50,250 >> Так што не турбуйцеся аб будаўніцтве самастойна. 1086 00:59:50,250 --> 00:59:53,350 Знайсці адно онлайн, каб пачаць з. 1087 00:59:53,350 --> 00:59:56,120 Некаторыя з іх вы павінны маніпуляваць трохі 1088 00:59:56,120 --> 00:59:59,430 каб пераканацца, што вяртаюцца тыпы супадаюць і яшчэ шмат чаго, так што ў пачатку, 1089 00:59:59,430 --> 01:00:02,420 Я б рэкамендаваў выкарыстоўваць што-то вельмі лёгка, што, можа быць, проста 1090 01:00:02,420 --> 01:00:04,680 хэшы па першай літары. 1091 01:00:04,680 --> 01:00:08,760 А потым, як толькі ў вас ёсць, што працу, ўключэння кулер Хэш-функцыі. 1092 01:00:08,760 --> 01:00:09,260 Mmhmm? 1093 01:00:09,260 --> 01:00:13,020 >> АЎДЫТОРЫЯ: б паспрабаваць быць ці эфектыўным, але толькі складаней, like-- 1094 01:00:13,020 --> 01:00:15,880 >> СПІКЕР 1: Так паспрабаваць, я думаю, Інтуітыўна цяжка рэалізаваць 1095 01:00:15,880 --> 01:00:18,310 але вельмі хутка. 1096 01:00:18,310 --> 01:00:20,620 Тым не менш, займае больш месца. 1097 01:00:20,620 --> 01:00:25,270 Зноў жа, вы можаце аптымізаваць і тых, хто ў розныя спосабы і ёсць спосабы to-- 1098 01:00:25,270 --> 01:00:26,770 АЎДЫТОРЫЯ: Як мы ацэньваюцца з гэтай нагоды? 1099 01:00:26,770 --> 01:00:27,540 Ці значыць гэта matter-- 1100 01:00:27,540 --> 01:00:29,164 >> СПІКЕР 1: Такім чынам, вы ацэньваюцца звычайным спосабам. 1101 01:00:29,164 --> 01:00:31,330 Вы збіраецеся ацэньваюцца па дызайне. 1102 01:00:31,330 --> 01:00:36,020 Які б шлях вы ні рабілі, вы хочаце, каб пераканайцеся, што гэта так элегантна, як гэта можа быць 1103 01:00:36,020 --> 01:00:38,610 і так эфектыўна, як гэта можа быць. 1104 01:00:38,610 --> 01:00:41,950 Але калі вы выбіраеце спробу або хэш Табліца таго часу, пакуль ён працуе, 1105 01:00:41,950 --> 01:00:45,350 мы задаволеныя, што. 1106 01:00:45,350 --> 01:00:48,370 А калі вы выкарыстоўваеце нешта, што хэшы па першай літары, гэта нармальна, 1107 01:00:48,370 --> 01:00:51,410 як, можа быць, як дызайн-мудрым. 1108 01:00:51,410 --> 01:00:53,410 Мы таксама дасягненні Кропка ў гэтым semester-- 1109 01:00:53,410 --> 01:00:55,340 Я не ведаю, калі вы Хлопцы noticed-- калі вы 1110 01:00:55,340 --> 01:00:58,780 Pset гатункі зніжацца трохі з-за дызайну і яшчэ шмат чаго, 1111 01:00:58,780 --> 01:00:59,900 гэта выдатна. 1112 01:00:59,900 --> 01:01:02,960 Гэта становіцца ў кропку, дзе ваш Праграмы становяцца ўсё больш складанымі. 1113 01:01:02,960 --> 01:01:04,830 Ёсць яшчэ месцы Вы можаце палепшыць. 1114 01:01:04,830 --> 01:01:06,370 >> Так што гэта цалкам нармальна. 1115 01:01:06,370 --> 01:01:08,810 Гэта не тое, што вы робіць горш на PSET. 1116 01:01:08,810 --> 01:01:11,885 Гэта проста мы быць мацней на вас цяпер. 1117 01:01:11,885 --> 01:01:13,732 Такім чынам, кожны адчувае гэта. 1118 01:01:13,732 --> 01:01:14,940 Я проста ацэньваюцца ўсе вашы psets. 1119 01:01:14,940 --> 01:01:16,490 Я ведаю, што ўсе адчуваюць гэта. 1120 01:01:16,490 --> 01:01:19,600 >> Так што не турбуйцеся пра гэта. 1121 01:01:19,600 --> 01:01:23,580 І калі ў вас ёсць якія-небудзь пытанні Папярэднія psets або спосабаў, вы можаце палепшыць, 1122 01:01:23,580 --> 01:01:27,760 Я стараюся і каментаваць канкрэтныя месцы, але часам гэта позна 1123 01:01:27,760 --> 01:01:30,840 і я стамляюся. 1124 01:01:30,840 --> 01:01:34,885 Ці ёсць іншыя рэчы каля структуры дадзеных? 1125 01:01:34,885 --> 01:01:37,510 Я ўпэўнены, што вы, хлопцы, не вельмі хачу пагаварыць пра іх больш, 1126 01:01:37,510 --> 01:01:42,650 але калі ёсць, я шчаслівы ісці па іх, а таксама што-небудзь 1127 01:01:42,650 --> 01:01:45,580 З лекцыі ў мінулую тыдзень ці на мінулым тыдні. 1128 01:01:45,580 --> 01:01:51,580 >> Я ведаю, на мінулым тыдні было ўсё агляд, так мы, магчыма, прапусцілі на працягу некаторага перагляду 1129 01:01:51,580 --> 01:01:54,190 ад лекцыі. 1130 01:01:54,190 --> 01:01:58,230 Любыя іншыя пытанні я магу адказаць? 1131 01:01:58,230 --> 01:01:59,350 ОК, усё ў парадку. 1132 01:01:59,350 --> 01:02:02,400 Ну, вы, хлопцы, выходзьце 15 хвілін раней. 1133 01:02:02,400 --> 01:02:08,370 >> Я спадзяюся, што гэта быў паў-карыснымі, па меншай меры, і я буду бачыць вас, хлопцы на наступным тыдні, 1134 01:02:08,370 --> 01:02:12,150 або чацвер працоўныя гадзіны. 1135 01:02:12,150 --> 01:02:15,285 Ёсць просіць для закусак на наступным тыдні, гэта-то і справа? 1136 01:02:15,285 --> 01:02:17,459 Таму што я забыўся цукеркі сёння. 1137 01:02:17,459 --> 01:02:19,750 І я прынёс цукеркі апошні тыдзень, але гэта быў Дзень Калумба, 1138 01:02:19,750 --> 01:02:25,400 такім чынам, было як шэсць чалавек, якія было чатыры мяшка цукерак да сябе. 1139 01:02:25,400 --> 01:02:28,820 Я магу прывесці Starbursts зноў, калі вам падабаецца. 1140 01:02:28,820 --> 01:02:29,580 Starbursts? 1141 01:02:29,580 --> 01:02:32,250 Добра, добра гучыць. 1142 01:02:32,250 --> 01:02:35,050 Майце вялікі дзень, хлопцы. 1143 01:02:35,050 --> 01:02:39,510