1 00:00:00,000 --> 00:00:08,250 2 00:00:08,250 --> 00:00:12,680 >> Джэйсан Хиршхорн: Вітаю ўсіх у раздзеле Seven. 3 00:00:12,680 --> 00:00:15,040 Мы знаходзімся ў тыдзень сем курса. 4 00:00:15,040 --> 00:00:18,440 І мае быць чацвер Дзень усіх Святых, так што я 5 00:00:18,440 --> 00:00:21,420 апранутыя як гарбуз. 6 00:00:21,420 --> 00:00:23,460 Я не мог нахіліцца і пакласці на мае чаравікі, дык вось чаму я 7 00:00:23,460 --> 00:00:25,660 проста насіць шкарпэткі. 8 00:00:25,660 --> 00:00:29,220 Я таксама нічога не насіць пад гэта, таму я не магу зняць яго, калі гэта 9 00:00:29,220 --> 00:00:29,950 адцягваючы да вас. 10 00:00:29,950 --> 00:00:31,860 Загадзя прашу прабачэння за гэта. 11 00:00:31,860 --> 00:00:33,170 Вам не трэба прадставіць што адбываецца. 12 00:00:33,170 --> 00:00:34,240 Я нашу баксёраў. 13 00:00:34,240 --> 00:00:36,170 Так што ўсё добра. 14 00:00:36,170 --> 00:00:41,120 >> У мяне ёсць доўгі аповед пра тое, чаму я апрануты як гарбузы, але я збіраюся 15 00:00:41,120 --> 00:00:45,110 акрамя таго, што пазней у гэтым раздзеле таму што я хачу, каб пачаць працу. 16 00:00:45,110 --> 00:00:47,720 У нас ёсць шмат цікавых рэчаў, перайсці на гэтым тыдні. 17 00:00:47,720 --> 00:00:51,810 Большасць з іх маюць непасрэднае дачыненне да гэтага тыдні праблема набор, памылкамі друку. 18 00:00:51,810 --> 00:00:54,680 Мы збіраемся ісці па звязаны спісы і хэш-табліцы 19 00:00:54,680 --> 00:00:57,160 для ўсёй секцыі. 20 00:00:57,160 --> 00:01:02,490 Я паклаў гэты спіс кожны тыдзень, спіс рэсурсы для вас, каб дапамагчы вам 21 00:01:02,490 --> 00:01:04,120 матэрыял на гэтым курсе. 22 00:01:04,120 --> 00:01:07,600 Калі ў страту або калі заводжу больш інфармацыі, праверыць адзін з 23 00:01:07,600 --> 00:01:09,930 гэтыя рэсурсы. 24 00:01:09,930 --> 00:01:14,530 >> Зноў жа, pset6 з'яўляецца памылкамі друку, PSET на гэтым тыдні. 25 00:01:14,530 --> 00:01:17,690 І гэта таксама заклікае вас, і я рэкамендуем вам, каб выкарыстоўваць некаторыя іншыя 26 00:01:17,690 --> 00:01:20,320 рэсурсы спецыяльна для гэтай PSet. 27 00:01:20,320 --> 00:01:23,390 У прыватнасці, тры ў мяне ёсць пералічаныя на экране - 28 00:01:23,390 --> 00:01:27,160 GDB, які мы былі знаёмыя з і выкарыстоўвалі на некаторы час цяпер, з'яўляецца 29 00:01:27,160 --> 00:01:29,270 будзе вельмі карысна на гэтым тыдні. 30 00:01:29,270 --> 00:01:30,190 Так што я паклаў, што тут. 31 00:01:30,190 --> 00:01:32,910 Але кожны раз, калі вы працуеце з C, вы заўсёды павінны выкарыстоўваць GDB для 32 00:01:32,910 --> 00:01:34,430 адладкі праграм. 33 00:01:34,430 --> 00:01:36,660 На гэтым тыдні таксама Valgrind. 34 00:01:36,660 --> 00:01:38,535 Хто-небудзь ведае, што Valgrind робіць? 35 00:01:38,535 --> 00:01:42,184 36 00:01:42,184 --> 00:01:43,890 >> АЎДЫТОРЫЯ: Ён правярае уцечак памяці? 37 00:01:43,890 --> 00:01:45,950 >> Джэйсан Хиршхорн: Valgrind правярае ўцечкі памяці. 38 00:01:45,950 --> 00:01:49,970 Так што калі вы Таноса нешта ў вашым Праграма, вы просіце памяці. 39 00:01:49,970 --> 00:01:52,920 У канцы праграмы, у вас ёсць напісаць бясплатна на ўсё, што вы 40 00:01:52,920 --> 00:01:54,800 malloced даць памяць назад. 41 00:01:54,800 --> 00:01:58,420 Калі вы не пішаце бясплатна ў канцы і ваша праграма прыходзіць да высновы, 42 00:01:58,420 --> 00:02:00,000 усё аўтаматычна быць вызваленыя. 43 00:02:00,000 --> 00:02:02,340 А для невялікіх праграм, гэта не так ужо страшна. 44 00:02:02,340 --> 00:02:05,250 Але калі вы пішаце доўгі ход праграма, якая ня выйдзе, 45 00:02:05,250 --> 00:02:09,180 абавязкова, на працягу некалькіх хвілін або пару секунд, затым ўцечкі памяці 46 00:02:09,180 --> 00:02:10,710 можа стаць велізарная здзелка. 47 00:02:10,710 --> 00:02:14,940 >> Такім чынам, для pset6, чакаецца, што вы будзеце мець уцечак нулявыя памяці з 48 00:02:14,940 --> 00:02:15,910 ваша праграма. 49 00:02:15,910 --> 00:02:18,690 Для праверкі ўцечкі памяці, запусціце Valgrind і яна будзе даваць вам некаторыя цікавыя 50 00:02:18,690 --> 00:02:21,190 Выхад даючы вам ведаць ці або не ўсё было бясплатна. 51 00:02:21,190 --> 00:02:23,940 Мы будзем практыкаваць з гэтым пазней сёння, з надзеяй. 52 00:02:23,940 --> 00:02:25,790 >> Нарэшце, каманда розн .. 53 00:02:25,790 --> 00:02:28,900 Вы нешта падобнае на яго выкарыстоўваецца у pset5 з інструментам хуткага погляду. 54 00:02:28,900 --> 00:02:30,780 Дазволена вам зазірнуць ўнутр. 55 00:02:30,780 --> 00:02:33,400 Вы таксама выкарыстоўваецца дыферэнцыял таксама за праблема ўсталяваць спец. 56 00:02:33,400 --> 00:02:35,950 Але ў дазволіў вам параўнання двух файлаў. 57 00:02:35,950 --> 00:02:39,180 Вы можаце параўнаць файл растравага малюнка і Інфармацыя загалоўкі раствора персаналу і 58 00:02:39,180 --> 00:02:42,200 Ваша рашэнне ў pset5 калі вы вырашылі выкарыстоўваць яго. 59 00:02:42,200 --> 00:02:44,030 Розніца дазволіць вам зрабіць гэта, а таксама. 60 00:02:44,030 --> 00:02:48,620 Вы можаце параўнаць правільны адказ для Праблема гэтым тыдні ўсталяваць на свой адказ 61 00:02:48,620 --> 00:02:52,210 і паглядзець, калі ён выбудоўваецца ў лінію або гл дзе памылкі. 62 00:02:52,210 --> 00:02:55,870 >> Такім чынам, гэта тры добрых інструментаў, якія Вы павінны выкарыстоўваць на працягу гэтага тыдня, і 63 00:02:55,870 --> 00:02:58,130 абавязкова праверыць вашу праграму з гэтымі трыма інструментамі 64 00:02:58,130 --> 00:03:00,520 перад уключэннем яго цалі 65 00:03:00,520 --> 00:03:04,650 Зноў жа, як я ўжо згадваў кожны тыдзень, калі ў вас ёсць зваротная сувязь для мяне - як 66 00:03:04,650 --> 00:03:06,470 пазітыўным і канструктыўным - 67 00:03:06,470 --> 00:03:09,930 не саромейцеся, каб узначаліць на сайт у ніжняй часткі гэтага слайда 68 00:03:09,930 --> 00:03:11,270 і ўвесці яго там. 69 00:03:11,270 --> 00:03:13,440 Я вельмі цаню любое і ўсё з зваротнай сувяззю. 70 00:03:13,440 --> 00:03:17,360 І калі вы дасце мне канкрэтныя рэчы, якія Што я магу зрабіць, каб палепшыць або, што я 71 00:03:17,360 --> 00:03:21,350 усё добра, што вы хацелі, каб я працягнуць, я бяру гэта блізка да сэрца і 72 00:03:21,350 --> 00:03:24,040 сапраўды вельмі стараюцца слухаць вашыя водгукі. 73 00:03:24,040 --> 00:03:27,720 Я не магу паабяцаць, што я збіраюся зрабіць ўсё, хоць, як насіць 74 00:03:27,720 --> 00:03:30,700 гарбуз касцюм кожны тыдзень. 75 00:03:30,700 --> 00:03:34,020 >> Такім чынам, мы збіраемся правесці большую частку раздзел, як я ўжо казаў, гаворка ідзе пра 76 00:03:34,020 --> 00:03:37,240 звязаныя спісы і хэш-табліцы, якія будзе непасрэдна дастасавальныя да 77 00:03:37,240 --> 00:03:38,780 Праблема ўсталяваць на гэтым тыдні. 78 00:03:38,780 --> 00:03:42,580 Звязаныя спісы мы пойдзем на адносна хутка, таму што мы выдаткавалі справядлівы біт 79 00:03:42,580 --> 00:03:44,930 часу збіраецца над ёй у раздзеле. 80 00:03:44,930 --> 00:03:48,680 І таму мы атрымаць прама ў кадавання праблемы для звязаных спісаў. 81 00:03:48,680 --> 00:03:52,740 А потым у канцы мы пагаворым аб хеши і як яны прымяняюцца да гэтага 82 00:03:52,740 --> 00:03:55,280 Праблема тыдні ўсталяваць. 83 00:03:55,280 --> 00:03:57,560 >> Вы бачылі гэты код раней. 84 00:03:57,560 --> 00:04:02,730 Гэта структура, і гэта вызначэнне нешта новае называецца вузлом. 85 00:04:02,730 --> 00:04:10,660 А ўнутры вузла існуе цэлае прама тут і ёсць паказальнік на 86 00:04:10,660 --> 00:04:11,830 іншы вузел. 87 00:04:11,830 --> 00:04:12,790 Мы бачылі гэта раней. 88 00:04:12,790 --> 00:04:14,830 Гэта было прыдумляць для пару тыдняў цяпер. 89 00:04:14,830 --> 00:04:18,680 Яна спалучае ў сабе паказальнікі, якія мы наведвалі працы з, і структуры, якія дазваляюць 90 00:04:18,680 --> 00:04:22,079 нам аб'яднаць два розных рэчы ў адзін тып дадзеных. 91 00:04:22,079 --> 00:04:24,830 92 00:04:24,830 --> 00:04:26,490 >> Там вельмі шмат адбываецца на экране. 93 00:04:26,490 --> 00:04:30,220 Але ўсё гэта павінна быць адносна знаёмыя з вамі. 94 00:04:30,220 --> 00:04:33,810 На першай лініі, мы аб'явіць новы вузел. 95 00:04:33,810 --> 00:04:41,650 А потым ўнутры гэтай новага вузла, я паставіў цэлы лік у гэтым вузле да аднаго. 96 00:04:41,650 --> 00:04:44,950 Мы бачым, на наступным радку я раблю Е каманда, але я шэрым колерам 97 00:04:44,950 --> 00:04:48,080 каманда Е, таму што на самой справе Важнай часткай з'яўляецца гэтая лінія тут - 98 00:04:48,080 --> 00:04:50,020 new_node.n. 99 00:04:50,020 --> 00:04:51,270 Што кропка на ўвазе? 100 00:04:51,270 --> 00:04:53,810 101 00:04:53,810 --> 00:04:57,240 >> АЎДЫТОРЫЯ: Перайдзіце ў вузел і ацаніць кошт н для яго. 102 00:04:57,240 --> 00:04:58,370 >> Джэйсан Хиршхорн: Гэта Цалкам дакладна. 103 00:04:58,370 --> 00:05:03,300 Dot азначае пераходу да паўночная частка гэтага новага вузла. 104 00:05:03,300 --> 00:05:05,690 У наступным радку што робіць? 105 00:05:05,690 --> 00:05:16,140 106 00:05:16,140 --> 00:05:17,050 Майкл. 107 00:05:17,050 --> 00:05:21,910 >> АЎДЫТОРЫЯ: Ствараецца яшчэ адзін вузел што будзе паказваць на новы вузел. 108 00:05:21,910 --> 00:05:24,870 >> Джэйсан Хиршхорн: Дык гэта не стварыць новы вузел. 109 00:05:24,870 --> 00:05:26,120 Ён стварае тое, што? 110 00:05:26,120 --> 00:05:28,300 111 00:05:28,300 --> 00:05:29,300 >> АЎДЫТОРЫЯ: Паказальнік. 112 00:05:29,300 --> 00:05:33,460 >> Джэйсан Хиршхорн: паказальнік на вузел, як паказана гэтым вузел * тут. 113 00:05:33,460 --> 00:05:34,800 Такім чынам, гэта стварае паказальнік на вузел. 114 00:05:34,800 --> 00:05:37,490 І які вузел ён паказваючы каб, Майкл? 115 00:05:37,490 --> 00:05:38,440 >> АЎДЫТОРЫЯ: Новы вузел? 116 00:05:38,440 --> 00:05:39,240 >> Джэйсан Хиршхорн: Новы вузел. 117 00:05:39,240 --> 00:05:43,020 І гэта паказвае там, таму што мы даў яму адрас новага вузла. 118 00:05:43,020 --> 00:05:45,820 І зараз у гэтай лініі мы бачым два розных спосабу 119 00:05:45,820 --> 00:05:46,910 выказваючы тое ж самае. 120 00:05:46,910 --> 00:05:49,650 І я хацеў бы адзначыць, як гэтыя дзве рэчы аднолькавыя. 121 00:05:49,650 --> 00:05:54,740 У першым радку мы разыменовать паказальнік. 122 00:05:54,740 --> 00:05:55,830 Так мы ідзем да вузла. 123 00:05:55,830 --> 00:05:56,830 Гэта тое, што гэтая зорка азначае. 124 00:05:56,830 --> 00:05:57,930 Мы бачылі, што перад з паказальнікамі. 125 00:05:57,930 --> 00:05:59,280 Да гэтага вузла. 126 00:05:59,280 --> 00:06:00,370 Вось у дужках. 127 00:06:00,370 --> 00:06:04,610 А потым доступ праз аператара пункту н элементам гэтага вузла. 128 00:06:04,610 --> 00:06:08,430 >> Так што бярэ сінтаксіс мы ўбачылі прама тут і цяпер 129 00:06:08,430 --> 00:06:09,670 выкарыстоўваць яго з паказальнікам. 130 00:06:09,670 --> 00:06:13,730 Вядома, ён атрымлівае крыху заняты, калі вы пішаце гэтыя дужкі - 131 00:06:13,730 --> 00:06:14,940 што зорка і што кропка. 132 00:06:14,940 --> 00:06:16,220 Гэта становіцца трохі заняты. 133 00:06:16,220 --> 00:06:18,500 Таму ў нас ёсць некаторыя сінтаксічны цукар. 134 00:06:18,500 --> 00:06:19,920 І гэтая лінія прама тут - 135 00:06:19,920 --> 00:06:21,170 ptr_node-> п. 136 00:06:21,170 --> 00:06:25,400 137 00:06:25,400 --> 00:06:28,000 Гэта робіць сапраўды такі ж рэчы. 138 00:06:28,000 --> 00:06:30,840 Так што тыя два радкі кода эквівалентныя і будзе рабіць 139 00:06:30,840 --> 00:06:31,650 тая ж самая рэч. 140 00:06:31,650 --> 00:06:34,210 >> Але я хацеў бы адзначыць тых, перад мы пойдзем далей, каб вы разумееце 141 00:06:34,210 --> 00:06:39,000 што сапраўды гэтая рэч прама тут з'яўляецца проста сінтаксічны цукар для разнаймення 142 00:06:39,000 --> 00:06:44,200 паказальнік, а затым збіраецца н часткай гэтай структуры. 143 00:06:44,200 --> 00:06:45,525 Любыя пытанні аб гэтым слайдзе? 144 00:06:45,525 --> 00:06:53,020 145 00:06:53,020 --> 00:06:54,390 ОК. 146 00:06:54,390 --> 00:06:58,510 >> Так што мы збіраемся прайсці праз пару аперацый, якія вы можаце зрабіць на 147 00:06:58,510 --> 00:06:59,730 звязаныя спісы. 148 00:06:59,730 --> 00:07:05,770 Звязаны спіс, нагадаем, уяўляе сабой серыю вузлоў, якія паказваюць на адным. 149 00:07:05,770 --> 00:07:12,470 І мы звычайна пачынаюць з паказальнікам называецца кіраўнік, як правіла,, што паказвае на 150 00:07:12,470 --> 00:07:14,040 першае, што ў спісе. 151 00:07:14,040 --> 00:07:18,900 Так на першай лініі тут, мы ёсць наш першапачатковы L ў першую чаргу. 152 00:07:18,900 --> 00:07:21,370 Так што, што вы можаце думаць - гэта тэкст прама тут вы можаце думаць аб якасці 153 00:07:21,370 --> 00:07:23,560 проста паказальнік мы захавалі дзесьці, што кропкі 154 00:07:23,560 --> 00:07:24,670 на першы элемент. 155 00:07:24,670 --> 00:07:27,500 І ў гэтым звязанага спісу у нас ёсць чатыры вузла. 156 00:07:27,500 --> 00:07:29,530 Кожны вузел уяўляе сабой вялікі скрыню. 157 00:07:29,530 --> 00:07:33,430 Чым больш скрынка ўнутры вялікі скрынка цэлая частка. 158 00:07:33,430 --> 00:07:37,400 І тады ў нас ёсць паказальнік ўдзел. 159 00:07:37,400 --> 00:07:39,630 >> Гэтыя скрынкі не цягне шкала таму, наколькі вялікая 160 00:07:39,630 --> 00:07:42,320 сабой цэлы лік у байтах? 161 00:07:42,320 --> 00:07:43,290 Наколькі вялікая цяпер? 162 00:07:43,290 --> 00:07:43,710 Чатыры. 163 00:07:43,710 --> 00:07:45,470 І, наколькі вялікі гэта паказальнік? 164 00:07:45,470 --> 00:07:45,940 Чатыры. 165 00:07:45,940 --> 00:07:48,180 Так на самай справе, калі мы павінны былі зрабіць гэта ў маштабе абедзве скрынкі 166 00:07:48,180 --> 00:07:49,690 будзе такі ж памер. 167 00:07:49,690 --> 00:07:52,870 У гэтым выпадку, мы хочам, каб ўставіць нешта ў звязаным спісе. 168 00:07:52,870 --> 00:07:57,190 Такім чынам, вы можаце бачыць тут мы ўстаўкі пяць Мы прайсці праз 169 00:07:57,190 --> 00:08:01,310 звязаны спіс, знайсці, дзе пяць ідзе, а затым устаўце яго. 170 00:08:01,310 --> 00:08:03,560 >> Давайце разбярэм, што ўніз і ісці трохі павольней. 171 00:08:03,560 --> 00:08:05,510 Я збіраюся паказаць на борце. 172 00:08:05,510 --> 00:08:09,930 Так у нас ёсць вузел пяць, што мы стварылі ў mallocs. 173 00:08:09,930 --> 00:08:11,190 Чаму ўсе смяюцца? 174 00:08:11,190 --> 00:08:12,130 Жартую. 175 00:08:12,130 --> 00:08:13,310 ОК. 176 00:08:13,310 --> 00:08:14,820 Такім чынам, мы malloced пяць. 177 00:08:14,820 --> 00:08:16,310 Мы стварылі гэты вузел дзесьці ў іншым месцы. 178 00:08:16,310 --> 00:08:17,740 У нас ёсць гэта гатовыя пайсці. 179 00:08:17,740 --> 00:08:20,130 Мы пачынаем у пярэдняй частцы наш спіс з двума. 180 00:08:20,130 --> 00:08:22,380 І мы хочам, каб ўставіць у адсартаваным моды. 181 00:08:22,380 --> 00:08:27,550 >> Так што, калі мы бачым два, і мы хочам, каб пакласці у пяць, што ж нам рабіць, калі мы бачым, 182 00:08:27,550 --> 00:08:28,800 нешта менш, чым мы? 183 00:08:28,800 --> 00:08:31,850 184 00:08:31,850 --> 00:08:33,520 Што? 185 00:08:33,520 --> 00:08:36,750 Мы хочам, каб ўставіць пяць у гэта звязаны спіс, захоўваючы яго сартаваць. 186 00:08:36,750 --> 00:08:37,520 Мы бачым, нумар два. 187 00:08:37,520 --> 00:08:38,769 Дык што ж нам рабіць? 188 00:08:38,769 --> 00:08:39,179 Маркус? 189 00:08:39,179 --> 00:08:40,679 >> АЎДЫТОРЫЯ: Патэлефануйце паказальнік да наступнага вузла. 190 00:08:40,679 --> 00:08:42,530 >> Джэйсан Хиршхорн: І чаму мы ідзем да наступнага? 191 00:08:42,530 --> 00:08:45,970 >> АЎДЫТОРЫЯ: Таму што гэта Наступны вузел у спісе. 192 00:08:45,970 --> 00:08:48,310 І мы ведаем толькі, што іншае месца. 193 00:08:48,310 --> 00:08:50,410 >> Джэйсан Хиршхорн: І пяць больш, чым два, у прыватнасці. 194 00:08:50,410 --> 00:08:51,600 Таму што мы хочам, каб трымаць яго адсартаваны. 195 00:08:51,600 --> 00:08:52,730 Так пяць больш за два. 196 00:08:52,730 --> 00:08:54,460 Такім чынам, мы пяройдзем да наступнага. 197 00:08:54,460 --> 00:08:55,240 І зараз мы дасягнем чатыры. 198 00:08:55,240 --> 00:08:56,490 І што адбываецца, калі мы дасягаем чатыры? 199 00:08:56,490 --> 00:08:58,920 200 00:08:58,920 --> 00:09:00,310 >> Пяць больш чатырох. 201 00:09:00,310 --> 00:09:01,460 Так мы працягваем. 202 00:09:01,460 --> 00:09:03,110 І зараз мы ў шэсць. 203 00:09:03,110 --> 00:09:04,360 І што ж мы бачым у шэсць? 204 00:09:04,360 --> 00:09:08,672 205 00:09:08,672 --> 00:09:09,608 Так, Карлас? 206 00:09:09,608 --> 00:09:10,544 >> АЎДЫТОРЫЯ: Шэсць больш пяці. 207 00:09:10,544 --> 00:09:11,480 >> Джэйсан Хиршхорн: Шэсць з'яўляецца больш пяці. 208 00:09:11,480 --> 00:09:13,660 Дык вось дзе мы хочам ўставіць пяць. 209 00:09:13,660 --> 00:09:17,320 Аднак, майце на ўвазе, што калі мы ёсць толькі адзін паказальнік тут - 210 00:09:17,320 --> 00:09:19,840 гэта наша дадатковая паказальнік вось абыходзе па спісе. 211 00:09:19,840 --> 00:09:21,860 І мы паказваем да шасці. 212 00:09:21,860 --> 00:09:25,010 Мы страцілі след таго, што прыходзіць раней шасці. 213 00:09:25,010 --> 00:09:29,130 Так што, калі мы хочам, каб ўставіць нешта ў гэты спіс трымаць яго сартуюць, мы 214 00:09:29,130 --> 00:09:31,630 верагодна, трэба, як шмат паказальнікаў? 215 00:09:31,630 --> 00:09:32,280 >> АЎДЫТОРЫЯ: Два. 216 00:09:32,280 --> 00:09:32,920 >> Джэйсан Хиршхорн: Два. 217 00:09:32,920 --> 00:09:35,720 Адзін адсочваць току адзін і адзін, каб адсочваць 218 00:09:35,720 --> 00:09:37,050 папярэдні. 219 00:09:37,050 --> 00:09:38,450 Гэта толькі аднанакіраваныя спіс. 220 00:09:38,450 --> 00:09:39,670 Гэта толькі ідзе ў адным напрамку. 221 00:09:39,670 --> 00:09:43,220 Калі б мы мелі двусвязный спіс, дзе усё было паказваючы на ​​рэчы 222 00:09:43,220 --> 00:09:46,240 пасля яго і рэчы да яго, то мы не павінны былі б зрабіць гэта. 223 00:09:46,240 --> 00:09:49,350 Але ў дадзеным выпадку мы не хочам страціць трэк, што было да нас, у выпадку 224 00:09:49,350 --> 00:09:53,350 мы павінны ўставіць пяць дзесьці у сярэдзіне. 225 00:09:53,350 --> 00:09:55,610 Скажам, у нас былі ўстаўкі дзевяць. 226 00:09:55,610 --> 00:09:57,260 Што адбудзецца, калі мы дабраліся да васьмі? 227 00:09:57,260 --> 00:10:01,860 228 00:10:01,860 --> 00:10:04,880 >> АЎДЫТОРЫЯ: Вы павінны былі б атрымаць, што пустую кропку. 229 00:10:04,880 --> 00:10:07,820 Замест таго, нулявую кропку, якую вы павінны былі б дадаць элемент, а затым ёсць 230 00:10:07,820 --> 00:10:09,216 ён паказваў на дзевяці. 231 00:10:09,216 --> 00:10:09,700 >> Джэйсан Хиршхорн: Цалкам дакладна. 232 00:10:09,700 --> 00:10:10,600 Такім чынам, мы атрымліваем восем. 233 00:10:10,600 --> 00:10:13,140 Мы дойдзе да канца спісу, таму што гэта паказвае на нуль. 234 00:10:13,140 --> 00:10:16,330 І цяпер, замест таго, ён паказваў на нуль ў нас ён паказваў на наш новы вузел. 235 00:10:16,330 --> 00:10:19,870 І мы ўсталяваць паказальнік ў наш новы вузел на нуль. 236 00:10:19,870 --> 00:10:21,445 Хто-небудзь ёсць якія-небудзь пытанні аб ўстаўцы? 237 00:10:21,445 --> 00:10:25,620 238 00:10:25,620 --> 00:10:28,100 Што, калі я не клапоцяцца аб захоўваючы спіс сартуюцца? 239 00:10:28,100 --> 00:10:31,701 240 00:10:31,701 --> 00:10:34,350 >> АЎДЫТОРЫЯ: Прытрымлівайцеся яго на пачатку ці ў канцы. 241 00:10:34,350 --> 00:10:35,510 >> Джэйсан Хиршхорн: Прытрымлівайцеся яго на пачатак ці канец. 242 00:10:35,510 --> 00:10:37,276 Які мы павінны рабіць? 243 00:10:37,276 --> 00:10:38,770 Бобі? 244 00:10:38,770 --> 00:10:41,020 Чаму канец? 245 00:10:41,020 --> 00:10:43,250 >> АЎДЫТОРЫЯ: Таму што пачатак ўжо запоўнены. 246 00:10:43,250 --> 00:10:43,575 >> Джэйсан Хиршхорн: ОК. 247 00:10:43,575 --> 00:10:44,360 Пачатак ужо запоўненая. 248 00:10:44,360 --> 00:10:46,090 Хто хоча спрачацца з Бобі. 249 00:10:46,090 --> 00:10:47,290 Маркус. 250 00:10:47,290 --> 00:10:48,910 >> АЎДЫТОРЫЯ: Ну вы, верагодна, хочаце прытрымлівацца яго ў пачатку, таму што 251 00:10:48,910 --> 00:10:50,140 у адваротным выпадку, калі вы кладзе яго на канец вам прыйдзецца 252 00:10:50,140 --> 00:10:51,835 прайсці ўвесь спіс. 253 00:10:51,835 --> 00:10:52,990 >> Джэйсан Хиршхорн: Цалкам дакладна. 254 00:10:52,990 --> 00:10:57,970 Так што, калі мы думаем пра выканання, Час працы, уключыўшы ў канцы 255 00:10:57,970 --> 00:11:00,110 б н, памер гэтага. 256 00:11:00,110 --> 00:11:03,080 Што такая вялікая O выканання ўстаўкі ў пачатку? 257 00:11:03,080 --> 00:11:04,170 Пастаяннае час. 258 00:11:04,170 --> 00:11:07,075 Так што, калі вы не клапоціцеся аб захаванні нешта сартуюцца, значна лепш проста 259 00:11:07,075 --> 00:11:08,420 ўставіць у пачатку гэтага спісу. 260 00:11:08,420 --> 00:11:10,320 І гэта можа быць зроблена за пастаяннае час. 261 00:11:10,320 --> 00:11:13,900 262 00:11:13,900 --> 00:11:14,690 >> ОК. 263 00:11:14,690 --> 00:11:18,870 Наступная аперацыя знайсці, што другі - мы фармулёўцы гэта як катэгорыі. 264 00:11:18,870 --> 00:11:22,470 Але мы будзем глядзець праз звязаны спіс на працягу некаторага аб'екта. 265 00:11:22,470 --> 00:11:26,000 Вы, хлопцы, бачылі код для пошук перш ў лекцыі. 266 00:11:26,000 --> 00:11:29,490 Але мы накшталт толькі што зрабіў гэта з ўставіць, або па крайняй меры ўстаўкі 267 00:11:29,490 --> 00:11:30,580 нешта адсартаваныя. 268 00:11:30,580 --> 00:11:36,350 Вы праглядаеце, збіраецца вузла да вузла, пакуль вы не знойдзеце нумар, што вы 269 00:11:36,350 --> 00:11:37,780 шукаю. 270 00:11:37,780 --> 00:11:39,670 Што адбудзецца, калі вы дасягне канец спісу? 271 00:11:39,670 --> 00:11:43,020 Скажы я шукаю дзевяці і I дойдзе да канца спісу. 272 00:11:43,020 --> 00:11:44,270 Што нам рабіць? 273 00:11:44,270 --> 00:11:47,147 274 00:11:47,147 --> 00:11:48,110 >> АЎДЫТОРЫЯ: Вярнуцца хлусня? 275 00:11:48,110 --> 00:11:48,690 >> Джэйсан Хиршхорн: Вярнуцца ілжывым. 276 00:11:48,690 --> 00:11:49,960 Мы не знайшлі яго. 277 00:11:49,960 --> 00:11:52,010 Калі вы дойдзе да канца спісу і Вы не знайшлі нумар, які вы знаходзіцеся 278 00:11:52,010 --> 00:11:54,170 шукаю, гэта не там. 279 00:11:54,170 --> 00:11:55,420 Любыя пытанні аб знайсці? 280 00:11:55,420 --> 00:11:59,530 281 00:11:59,530 --> 00:12:04,615 Калі б гэта было адсартаваны спіс, што б быць рознымі для нашага пошуку? 282 00:12:04,615 --> 00:12:07,370 283 00:12:07,370 --> 00:12:08,103 Так. 284 00:12:08,103 --> 00:12:10,600 >> АЎДЫТОРЫЯ: Было б знайсці першае значэнне вось больш таго, 285 00:12:10,600 --> 00:12:12,390 вы шукаеце і затым вярнуцца ілжывым. 286 00:12:12,390 --> 00:12:13,190 >> Джэйсан Хиршхорн: Цалкам дакладна. 287 00:12:13,190 --> 00:12:17,310 Так што, калі гэта адсартаваны спіс, калі мы дабяромся да нешта, што гэта больш, чым тое, што 288 00:12:17,310 --> 00:12:20,180 мы шукаем, мы не павінны працягваць ісці ў канец спісу. 289 00:12:20,180 --> 00:12:24,060 Мы можам у гэтай кропцы вярнуцца ілжывым таму што мы не збіраемся, каб знайсці яго. 290 00:12:24,060 --> 00:12:27,340 Пытанне цяпер, мы гаварылі пра захоўваючы звязаныя спісы сартуюцца, 291 00:12:27,340 --> 00:12:28,180 трымаць іх без сартавання. 292 00:12:28,180 --> 00:12:30,050 Гэта будзе тое, што вы знаходзіцеся , Верагодна, прыйдзецца думаць аб 293 00:12:30,050 --> 00:12:34,240 калі праблема кадавання ўсталяваць пяць, калі вы выбраць хэш-табліцу з асобнай 294 00:12:34,240 --> 00:12:36,360 ланцужкі падыход, які мы пагаворым крыху пазней. 295 00:12:36,360 --> 00:12:41,400 >> Але ці варта гэта таго, каб захаваць спіс адсартаваны і затым мець магчымасць, можа быць, ёсць 296 00:12:41,400 --> 00:12:42,310 хутчэй вынікі? 297 00:12:42,310 --> 00:12:47,220 Або лепш, каб хутка ўставіць нешта ў пастаянным выканання, але тады 298 00:12:47,220 --> 00:12:48,430 ёсць больш пошуку? 299 00:12:48,430 --> 00:12:52,250 Гэта кампраміс тут жа, што вам самім вырашаць, што з'яўляецца больш мэтазгодным 300 00:12:52,250 --> 00:12:53,590 для вашай канкрэтнай праблемы. 301 00:12:53,590 --> 00:12:56,680 І ёсць не абавязкова адзін абсалютна правільны адказ. 302 00:12:56,680 --> 00:12:59,520 Але гэта, безумоўна, рашэнне, якое вы атрымліваеце зрабіць, і, верагодна, добра, каб абараніць 303 00:12:59,520 --> 00:13:05,270 што, скажам, каментар або два, чаму вы выбралі адзін над іншым. 304 00:13:05,270 --> 00:13:06,490 >> Нарэшце, выдаленне. 305 00:13:06,490 --> 00:13:08,100 Мы бачылі выдалення. 306 00:13:08,100 --> 00:13:09,180 Гэта падобна на пошук. 307 00:13:09,180 --> 00:13:11,020 Мы шукаем элемента. 308 00:13:11,020 --> 00:13:12,390 Скажыце, што мы спрабуем выдаліць шэсць. 309 00:13:12,390 --> 00:13:14,450 Так мы знаходзім шэсць прама тут. 310 00:13:14,450 --> 00:13:18,860 Справа ў тым, што мы павінны пераканацца, што мы рабіць тое, што ўсё, што паказвае на 311 00:13:18,860 --> 00:13:21,220 шэсць - як мы бачым у дзеянні два ўніз тут - 312 00:13:21,220 --> 00:13:26,500 што б ні паказваючы на ​​шасці патрэбаў у прапусціць шэсць цяпер і быць зменены на 313 00:13:26,500 --> 00:13:28,160 усе шэсць паказвае на. 314 00:13:28,160 --> 00:13:31,410 Мы не хочам, каб калі-небудзь сіротам астатнюю частку наш спіс, забыўшыся ўсталяваць, што 315 00:13:31,410 --> 00:13:32,960 папярэдняя паказальнік. 316 00:13:32,960 --> 00:13:35,960 А потым часам, у залежнасці па праграме, яны проста 317 00:13:35,960 --> 00:13:37,380 выдаліць гэты вузел цалкам. 318 00:13:37,380 --> 00:13:40,135 Часам вы хочаце, каб вярнуцца значэнне, якое знаходзіцца ў гэтым вузле. 319 00:13:40,135 --> 00:13:42,490 Дык вось, як выдаленне работ. 320 00:13:42,490 --> 00:13:44,610 Любыя пытанні па выдаліць? 321 00:13:44,610 --> 00:13:51,280 322 00:13:51,280 --> 00:13:53,850 >> АЎДЫТОРЫЯ: Дык што, калі вы хочаце сцерці гэта, вы б проста выкарыстоўваць бясплатна, таму што 323 00:13:53,850 --> 00:13:55,655 як мяркуецца, было malloced? 324 00:13:55,655 --> 00:13:57,976 >> Джэйсан Хиршхорн: Калі вы хочаце, каб вызваліць тое, што зусім дакладна, і вы 325 00:13:57,976 --> 00:13:58,540 malloced яго. 326 00:13:58,540 --> 00:14:00,410 Скажам мы хацелі вярнуцца гэта значэнне. 327 00:14:00,410 --> 00:14:04,010 Мы маглі б вярнуцца шэсць, а затым бясплатна гэты вузел і выклік бясплатна на яго. 328 00:14:04,010 --> 00:14:06,180 Ці мы, верагодна, тэлефанаваць бясплатна першы , А затым вярнуцца шэсць. 329 00:14:06,180 --> 00:14:11,210 330 00:14:11,210 --> 00:14:11,580 >> ОК. 331 00:14:11,580 --> 00:14:14,010 Так давайце пяройдзем да практыкі кадавання. 332 00:14:14,010 --> 00:14:16,090 Мы збіраемся, каб закадаваць тры функцыі. 333 00:14:16,090 --> 00:14:18,260 Першы з іх завецца insert_node. 334 00:14:18,260 --> 00:14:22,170 Так у вас ёсць код, які я паслаў па электроннай пошце вам, і калі вы глядзіце гэта пазней 335 00:14:22,170 --> 00:14:28,020 Вы можаце атрымаць доступ да кода ў linked.c на сайце CS50. 336 00:14:28,020 --> 00:14:30,880 Але ў linked.c, ёсць некаторыя шкілет код, які ўжо 337 00:14:30,880 --> 00:14:32,280 была напісана для вас. 338 00:14:32,280 --> 00:14:34,560 А тут яшчэ пару ФУНКЦЫІ вам трэба напісаць. 339 00:14:34,560 --> 00:14:36,380 >> Спачатку мы збіраемся напісаць insert_node. 340 00:14:36,380 --> 00:14:39,800 А што insert_node робіць ёсць ўстаўляе цэлае. 341 00:14:39,800 --> 00:14:42,440 І вы даяце цэлы лік у складны спіс. 342 00:14:42,440 --> 00:14:45,470 І ў прыватнасці, неабходна захаваць спіс, адсартаваны 343 00:14:45,470 --> 00:14:47,650 ад меншага да большага. 344 00:14:47,650 --> 00:14:51,360 Акрамя таго, вы не хочаце, каб ўставіць ўсе дублікаты. 345 00:14:51,360 --> 00:14:54,600 Нарэшце, як вы можаце бачыць insert_node вяртае лагічнае значэнне. 346 00:14:54,600 --> 00:14:57,140 Такім чынам, вы, як мяркуецца, каб карыстальнік ведаў, ці не ўстаўка была 347 00:14:57,140 --> 00:15:00,800 паспяховым, вяртаючы сапраўдным або ілжывым. 348 00:15:00,800 --> 00:15:02,580 У канцы гэтай праграмы - 349 00:15:02,580 --> 00:15:05,750 і для гэтай стадыі вам не трэба турбавацца аб вызваленні нічога. 350 00:15:05,750 --> 00:15:11,790 Так што ўсё, што вы робіце гэта ўзяцця цэлай і ўстаўкі яго ў спіс. 351 00:15:11,790 --> 00:15:13,890 >> Гэта тое, што я прашу вас зрабіць цяпер. 352 00:15:13,890 --> 00:15:17,620 Зноў жа, у linked.c, якія вы ва ўсіх ёсць, гэта код шкілет. 353 00:15:17,620 --> 00:15:20,980 І вы павінны ўбачыць у ніжняй Аб'яву функцыі ўзору. 354 00:15:20,980 --> 00:15:27,390 Тым не менш, перш чым у яго кадавання у С, я настойліва рэкамендую вам пайсці 355 00:15:27,390 --> 00:15:29,330 праз шэраг крокаў, мы былі практыкуючых кожны тыдзень. 356 00:15:29,330 --> 00:15:31,100 Мы ўжо прайшлі праз карціна гэтага. 357 00:15:31,100 --> 00:15:33,380 Такім чынам, вы павінны мець некаторы ўяўленне , Як гэта працуе. 358 00:15:33,380 --> 00:15:36,590 Але я хацеў бы заклікаць вас, каб напісаць некаторыя псевдокод, перш чым пагрузіцца цалі 359 00:15:36,590 --> 00:15:38,640 І мы збіраемся перайсці на псевдокод як група. 360 00:15:38,640 --> 00:15:41,470 А потым, як толькі вы напісалі псевдокод, і як толькі мы напісалі наш 361 00:15:41,470 --> 00:15:45,850 псевдокод як група, вы можаце ісці ў кадавання яго ў С. 362 00:15:45,850 --> 00:15:49,980 >> Як адзін на адзін, функцыя insert_node Верагодна, самая складаная з 363 00:15:49,980 --> 00:15:53,550 тры мы збіраемся напісаць, таму што я дададзеныя некаторыя дадатковыя абмежаванні на 364 00:15:53,550 --> 00:15:57,190 Ваш праграмаванне, у прыватнасці, што вы не збіраецеся ўставіць любы 365 00:15:57,190 --> 00:15:59,880 дублікатаў і, што спіс павінны заставацца адсартаваны. 366 00:15:59,880 --> 00:16:02,660 Так што гэта нетрывіяльная праграма што вы павінны кадзіраваць. 367 00:16:02,660 --> 00:16:06,470 І чаму б вам не ўзяць 06:55 хвілін толькі, каб атрымаць працу на 368 00:16:06,470 --> 00:16:07,640 псевдокод і код. 369 00:16:07,640 --> 00:16:09,460 А потым мы пачнем збіраецца ў якасці групы. 370 00:16:09,460 --> 00:16:11,680 Зноў жа, калі ў вас ёсць якія-небудзь пытанні, проста падніміце руку, і я прыйду вакол. 371 00:16:11,680 --> 00:16:15,258 372 00:16:15,258 --> 00:16:16,508 . 373 00:16:16,508 --> 00:18:28,370 374 00:18:28,370 --> 00:18:30,120 >> Мы таксама ў цэлым зрабіць гэта - 375 00:18:30,120 --> 00:18:32,070 ці я не відавочна кажуць вам можа працаваць з людзьмі. 376 00:18:32,070 --> 00:18:36,500 Але відавочна, што я настойліва рэкамендую Вам, калі ў вас ёсць пытанні, спытаць 377 00:18:36,500 --> 00:18:39,840 сусед сядзіць побач з вамі або нават працаваць з кімсьці 378 00:18:39,840 --> 00:18:40,510 яшчэ, калі вы хочаце. 379 00:18:40,510 --> 00:18:42,600 Гэта не павінна быць індывідуальным маўчанне дзейнасці. 380 00:18:42,600 --> 00:20:11,770 381 00:20:11,770 --> 00:20:16,330 >> Давайце пачнем з напісання некаторых псевдокод на дошцы. 382 00:20:16,330 --> 00:20:19,395 Хто можа даць мне першую лінію псевдокод для гэтай праграмы? 383 00:20:19,395 --> 00:20:22,240 384 00:20:22,240 --> 00:20:23,640 Для гэтай функцыі, а - insert_node. 385 00:20:23,640 --> 00:20:29,960 386 00:20:29,960 --> 00:20:31,830 Олдэн? 387 00:20:31,830 --> 00:20:36,560 >> АЎДЫТОРЫЯ: Таму першае, што я зрабіў, было стварыць новы паказальнік на вузел і I 388 00:20:36,560 --> 00:20:41,320 ініцыялізацыі ён паказваючы на ​​тое ж самае рэч, якая спіс паказвае на. 389 00:20:41,320 --> 00:20:41,550 >> Джэйсан Хиршхорн: ОК. 390 00:20:41,550 --> 00:20:45,190 Так вы ствараеце новы паказальнік у спіс, а не да вузла. 391 00:20:45,190 --> 00:20:45,420 >> АЎДЫТОРЫЯ: Дакладна. 392 00:20:45,420 --> 00:20:46,150 Так. 393 00:20:46,150 --> 00:20:46,540 >> Джэйсан Хиршхорн: ОК. 394 00:20:46,540 --> 00:20:48,221 А потым што мы хочам зрабіць? 395 00:20:48,221 --> 00:20:49,163 Што пасля гэтага? 396 00:20:49,163 --> 00:20:50,105 А як наконт вузла? 397 00:20:50,105 --> 00:20:51,050 У нас няма вузла. 398 00:20:51,050 --> 00:20:52,300 Мы проста мець значэнне. 399 00:20:52,300 --> 00:20:55,918 400 00:20:55,918 --> 00:20:58,890 Калі мы хочам, каб ўставіць вузел, што мы трэба зрабіць, перш чым мы можам нават 401 00:20:58,890 --> 00:20:59,980 думаць пра уставіўшы яго? 402 00:20:59,980 --> 00:21:00,820 >> АЎДЫТОРЫЯ: Ой, прабачце. 403 00:21:00,820 --> 00:21:02,160 мы павінны Malloc прастору для вузла. 404 00:21:02,160 --> 00:21:02,455 >> Джэйсан Хиршхорн: Выдатна. 405 00:21:02,455 --> 00:21:03,210 Давайце зробім - 406 00:21:03,210 --> 00:21:04,628 ОК. 407 00:21:04,628 --> 00:21:06,065 Не можаце дасягнуць гэтага максімуму. 408 00:21:06,065 --> 00:21:08,939 409 00:21:08,939 --> 00:21:09,897 ОК. 410 00:21:09,897 --> 00:21:13,236 Мы збіраемся ісці ўніз, а затым мы выкарыстоўваем два слупкі. 411 00:21:13,236 --> 00:21:13,732 Я не магу пайсці, што - 412 00:21:13,732 --> 00:21:14,982 ОК. 413 00:21:14,982 --> 00:21:23,660 414 00:21:23,660 --> 00:21:25,130 Стварыце новы вузел. 415 00:21:25,130 --> 00:21:29,380 Вы можаце стварыць яшчэ адзін паказальнік на спіс ці вы можаце проста выкарыстоўваць спіс, як яна існуе. 416 00:21:29,380 --> 00:21:30,720 Вы сапраўды не трэба гэтага рабіць. 417 00:21:30,720 --> 00:21:31,750 >> Так мы ствараем новы вузел. 418 00:21:31,750 --> 00:21:32,010 Вялікі. 419 00:21:32,010 --> 00:21:32,840 Гэта тое, што мы робім у першую чаргу. 420 00:21:32,840 --> 00:21:34,870 Што далей? 421 00:21:34,870 --> 00:21:35,080 >> АЎДЫТОРЫЯ: Пачакайце. 422 00:21:35,080 --> 00:21:38,330 Ці павінны мы стварыць новы вузел зараз ці мы павінны чакаць, каб пераканацца, што 423 00:21:38,330 --> 00:21:42,260 няма ніякіх дублікатаў вузла у спісе, перш чым мы яго стварыць? 424 00:21:42,260 --> 00:21:43,100 >> Джэйсан Хиршхорн: Добры пытанне. 425 00:21:43,100 --> 00:21:47,770 Давайце правядзем гэта на потым, таму што Вялікую частку часу мы будзем ствараць 426 00:21:47,770 --> 00:21:48,220 новы вузел. 427 00:21:48,220 --> 00:21:49,110 Так мы будзем трымаць гэта тут. 428 00:21:49,110 --> 00:21:51,006 Але гэта добрае пытанне. 429 00:21:51,006 --> 00:21:53,250 Калі мы ствараем яго, і мы знаходзім дублікат, што павінна 430 00:21:53,250 --> 00:21:54,490 мы робім, перш чым вярнуцца? 431 00:21:54,490 --> 00:21:55,190 >> АЎДЫТОРЫЯ: Вызваліце ​​яго. 432 00:21:55,190 --> 00:21:55,470 >> Джэйсан Хиршхорн: Так. 433 00:21:55,470 --> 00:21:56,500 Напэўна вызваліць яго. 434 00:21:56,500 --> 00:21:56,760 ОК. 435 00:21:56,760 --> 00:21:59,850 Што мы робім пасля таго як мы стварыць новы вузел? 436 00:21:59,850 --> 00:22:02,260 Эні? 437 00:22:02,260 --> 00:22:04,780 >> АЎДЫТОРЫЯ: Ставім лік у вузле? 438 00:22:04,780 --> 00:22:05,140 >> Джэйсан Хиршхорн: Цалкам дакладна. 439 00:22:05,140 --> 00:22:07,190 Мы, лік - мы Malloc прастору. 440 00:22:07,190 --> 00:22:08,160 Я збіраюся пакінуць гэта усе як адзін радок. 441 00:22:08,160 --> 00:22:08,720 Але вы маеце рацыю. 442 00:22:08,720 --> 00:22:10,305 Мы Malloc прабел, а затым мы ставім нумар цалі 443 00:22:10,305 --> 00:22:12,585 Мы можам нават ўсталяваць паказальнік частка яе да нуля. 444 00:22:12,585 --> 00:22:13,720 Вось менавіта. 445 00:22:13,720 --> 00:22:17,400 І тое што казаць аб пасля гэтага? 446 00:22:17,400 --> 00:22:18,490 Мы намаляваў гэтую карціну на дошцы. 447 00:22:18,490 --> 00:22:21,190 Дык што ж нам рабіць? 448 00:22:21,190 --> 00:22:22,680 >> АЎДЫТОРЫЯ: Мы ідзем па спісе. 449 00:22:22,680 --> 00:22:23,930 >> Джэйсан Хиршхорн: Прайсціся па спісе. 450 00:22:23,930 --> 00:22:30,620 451 00:22:30,620 --> 00:22:31,100 ОК. 452 00:22:31,100 --> 00:22:34,280 І што ж мы правяраем для кожнага вузла. 453 00:22:34,280 --> 00:22:35,955 Курт, што ж мы правяраем для кожнага вузла? 454 00:22:35,955 --> 00:22:41,640 >> АЎДЫТОРЫЯ: Ці глядзіце н значэнне што сайт больш, чым п значэннем 455 00:22:41,640 --> 00:22:43,070 нашага вузла. 456 00:22:43,070 --> 00:22:43,340 >> Джэйсан Хиршхорн: ОК. 457 00:22:43,340 --> 00:22:44,280 Я збіраюся зрабіць - 458 00:22:44,280 --> 00:22:45,855 так, добра. 459 00:22:45,855 --> 00:22:48,160 Так што гэта п - 460 00:22:48,160 --> 00:22:59,040 Я збіраюся сказаць, калі значэнне больш чым гэты вузел, то што ж нам рабіць? 461 00:22:59,040 --> 00:23:07,290 >> АЎДЫТОРЫЯ: Ну, тады мы ўстаўляем рэч прама перад гэтым. 462 00:23:07,290 --> 00:23:07,970 >> Джэйсан Хиршхорн: ОК. 463 00:23:07,970 --> 00:23:09,410 Такім чынам, калі гэта больш, чым гэтая, то мы хочам ўставіць. 464 00:23:09,410 --> 00:23:14,010 Але мы хочам, каб ўставіць яго прама перад таму што мы таксама павінны былі б быць 465 00:23:14,010 --> 00:23:16,070 адсочванне, то, з таго, што было раней. 466 00:23:16,070 --> 00:23:22,690 Так ўставіць раней. 467 00:23:22,690 --> 00:23:25,120 Такім чынам, мы, верагодна, нешта прапусціў раней. 468 00:23:25,120 --> 00:23:27,770 Мы, верагодна, павінны быць захоўваючы трэк, што адбываецца. 469 00:23:27,770 --> 00:23:28,460 Але мы вернемся туды. 470 00:23:28,460 --> 00:23:30,160 Так што значэнне менш? 471 00:23:30,160 --> 00:23:38,030 472 00:23:38,030 --> 00:23:39,710 Курт, што мы будзем рабіць, калі значэнне менш? 473 00:23:39,710 --> 00:23:43,000 >> АЎДЫТОРЫЯ: Тады вам проста працягваць ісці калі гэта не апошні. 474 00:23:43,000 --> 00:23:43,550 >> Джэйсан Хиршхорн: Мне гэта падабаецца. 475 00:23:43,550 --> 00:23:44,800 Так што да наступнага вузла. 476 00:23:44,800 --> 00:23:47,410 477 00:23:47,410 --> 00:23:48,930 Калі гэта не апошні - 478 00:23:48,930 --> 00:23:51,100 мы, верагодна, правяраючы, што у тэрмінах стану. 479 00:23:51,100 --> 00:23:54,870 Але так, наступны вузел. 480 00:23:54,870 --> 00:23:58,680 І гэта становіцца занадта нізкім, так што мы будзем рухацца тут. 481 00:23:58,680 --> 00:24:02,030 Але калі - 482 00:24:02,030 --> 00:24:03,280 можа ўсё гэта бачыш? 483 00:24:03,280 --> 00:24:07,230 484 00:24:07,230 --> 00:24:11,610 Калі мы роўныя, што мы робім? 485 00:24:11,610 --> 00:24:15,740 Калі значэнне мы спрабуем ўставіць роўная кошту гэтага вузла? 486 00:24:15,740 --> 00:24:16,320 Да? 487 00:24:16,320 --> 00:24:18,400 >> АЎДЫТОРЫЯ: [неразборліва]. 488 00:24:18,400 --> 00:24:18,850 >> Джэйсан Хиршхорн: Так. 489 00:24:18,850 --> 00:24:19,290 Улічваючы гэта - 490 00:24:19,290 --> 00:24:20,090 Маркус правоў. 491 00:24:20,090 --> 00:24:21,330 Мы маглі б, можа быць, зроблена нешта іншае. 492 00:24:21,330 --> 00:24:25,360 Але, улічваючы, што мы стварылі яго, тут мы павінны вызваліць, а затым вярнуцца. 493 00:24:25,360 --> 00:24:26,774 Аб хлопчык. 494 00:24:26,774 --> 00:24:30,080 Так лепш? 495 00:24:30,080 --> 00:24:31,850 Як гэта? 496 00:24:31,850 --> 00:24:33,100 ОК. 497 00:24:33,100 --> 00:24:35,360 498 00:24:35,360 --> 00:24:37,640 Бясплатны і тое што мы вярнуцца, [неразборліва]? 499 00:24:37,640 --> 00:24:41,330 500 00:24:41,330 --> 00:24:44,110 ОК. 501 00:24:44,110 --> 00:24:45,360 Мы не напісалі нічога? 502 00:24:45,360 --> 00:24:53,500 503 00:24:53,500 --> 00:24:59,650 Дык куды мы адсочванне папярэдняга вузла? 504 00:24:59,650 --> 00:25:02,370 >> Залы: Я думаю, што гэта пойдзе пасля стварэння новага вузла. 505 00:25:02,370 --> 00:25:02,600 >> Джэйсан Хиршхорн: ОК. 506 00:25:02,600 --> 00:25:03,940 Таму ў пачатку мы, напэўна, - 507 00:25:03,940 --> 00:25:07,175 так, мы можам стварыць паказальнік на новы вузел, як папярэдні паказальнік вузла і 508 00:25:07,175 --> 00:25:09,600 бягучы паказальнік вузла. 509 00:25:09,600 --> 00:25:12,640 Так што давайце ўставіць, што тут. 510 00:25:12,640 --> 00:25:15,610 511 00:25:15,610 --> 00:25:26,900 Стварэнне бягучы і папярэдні паказальнікі на вузлах. 512 00:25:26,900 --> 00:25:28,955 Але калі мы наладзіць гэтыя паказальнікі? 513 00:25:28,955 --> 00:25:30,205 Дзе ж нам рабіць, што ў кодзе? 514 00:25:30,205 --> 00:25:33,830 515 00:25:33,830 --> 00:25:34,160 Джэф? 516 00:25:34,160 --> 00:25:35,170 >> АЎДЫТОРЫЯ: - умовы значэнне? 517 00:25:35,170 --> 00:25:36,420 >> Джэйсан Хиршхорн: Якія адзін, у прыватнасці? 518 00:25:36,420 --> 00:25:39,862 519 00:25:39,862 --> 00:25:40,720 >> АЎДЫТОРЫЯ: Я проста ў замяшанні. 520 00:25:40,720 --> 00:25:44,200 Калі гэтае значэньне большае гэтага вузла, ці не значыць гэта, што вы хочаце пайсці 521 00:25:44,200 --> 00:25:45,320 на наступны вузел? 522 00:25:45,320 --> 00:25:49,515 >> Джэйсан Хиршхорн: Дык што, калі наша значэнне больш, чым значэнне гэтага вузла. 523 00:25:49,515 --> 00:25:52,130 >> АЎДЫТОРЫЯ: Так, то вы хацелі б ісці далей па лініі, ці не так? 524 00:25:52,130 --> 00:25:52,590 >> Джэйсан Хиршхорн: Дакладна. 525 00:25:52,590 --> 00:25:53,840 Такім чынам, мы не ўстаўляйце яго тут. 526 00:25:53,840 --> 00:25:58,430 527 00:25:58,430 --> 00:26:03,240 Калі значэнне менш гэтага вузла, то мы ідзем да наступнага вузла - ці тады мы 528 00:26:03,240 --> 00:26:03,835 ўставіць раней. 529 00:26:03,835 --> 00:26:05,966 >> АЎДЫТОРЫЯ: Пачакайце, што гэта вузел і што значэнне? 530 00:26:05,966 --> 00:26:08,510 531 00:26:08,510 --> 00:26:09,280 >> Джэйсан Хиршхорн: Добры пытанне. 532 00:26:09,280 --> 00:26:13,260 Значэнне за гэтым вызначэннем функцыі гэта тое, што нам даюць. 533 00:26:13,260 --> 00:26:16,910 Так значэнне з'яўляецца лікам нам даюць. 534 00:26:16,910 --> 00:26:21,120 Такім чынам, калі значэнне менш, чым гэта вузел, нам трэба час, каб ўставіць. 535 00:26:21,120 --> 00:26:24,575 Калі гэтае значэньне большае гэтага вузла, мы ідзем да наступнага вузла. 536 00:26:24,575 --> 00:26:26,790 І вярнуцца да першапачатковага пытанні, хоць, дзе - 537 00:26:26,790 --> 00:26:29,060 >> АЎДЫТОРЫЯ: Калі гэтае значэньне большае чым гэтага вузла. 538 00:26:29,060 --> 00:26:30,310 >> Джэйсан Хиршхорн: І так што нам рабіць тут? 539 00:26:30,310 --> 00:26:36,790 540 00:26:36,790 --> 00:26:38,160 Салодкі. 541 00:26:38,160 --> 00:26:38,860 Гэта дакладна. 542 00:26:38,860 --> 00:26:41,370 Я проста збіраюся напісаць змена паказальнікі. 543 00:26:41,370 --> 00:26:44,010 Але так, з бягучай вы б абнавіць яе да 544 00:26:44,010 --> 00:26:46,080 паказваюць на наступнай. 545 00:26:46,080 --> 00:26:47,330 Усё астатняе мы прапусцілі? 546 00:26:47,330 --> 00:26:52,710 547 00:26:52,710 --> 00:26:54,940 Так што я збіраюся ўвесці гэты код у Gedit. 548 00:26:54,940 --> 00:26:58,375 І ў той час я раблю гэта, вы можаце мець Яшчэ пара хвілін, каб працаваць па кадаванню 549 00:26:58,375 --> 00:28:19,240 гэта ў С. 550 00:28:19,240 --> 00:28:20,940 >> Так што я свой уклад псевдокод. 551 00:28:20,940 --> 00:28:22,940 Невялікае нататка перш чым мы пачнем. 552 00:28:22,940 --> 00:28:25,560 Мы не можам быць у стане цалкам скончыць гэта ўсяго 553 00:28:25,560 --> 00:28:27,300 тры з гэтых функцый. 554 00:28:27,300 --> 00:28:30,630 Існуе правільныя шляхі іх вырашэння што я буду па электроннай пошце да вас, хлопцы 555 00:28:30,630 --> 00:28:33,730 пасля падзелу, і ён будзе будуць размешчаны на CS50.net. 556 00:28:33,730 --> 00:28:35,640 Так што я не заклікаю вас пайсці паглядзець на секцыях. 557 00:28:35,640 --> 00:28:40,550 Я заклікаю вас, каб паспрабаваць іх на ваш валодаць, а затым выкарыстоўваць практыку 558 00:28:40,550 --> 00:28:41,760 праблемы, каб праверыць свае адказы. 559 00:28:41,760 --> 00:28:47,070 Усе яны былі распрацаваны, каб цесна ставяцца да і прытрымлівацца таго, што 560 00:28:47,070 --> 00:28:48,400 што вам трэба зрабіць на мностве праблем. 561 00:28:48,400 --> 00:28:53,820 Так што я заклікаю вас да практыкі гэта па сваім меркаванні, а затым выкарыстоўваць код для 562 00:28:53,820 --> 00:28:54,660 праверыць свае адказы. 563 00:28:54,660 --> 00:28:57,060 Таму што я хачу, каб рухацца далей, каб растлумачыць сталы ў нейкі момант у раздзеле. 564 00:28:57,060 --> 00:28:58,150 Такім чынам, мы не маглі б атрымаць праз усё гэта. 565 00:28:58,150 --> 00:28:59,960 Але мы зробім столькі, колькі мы можам цяпер. 566 00:28:59,960 --> 00:29:00,370 >> ОК. 567 00:29:00,370 --> 00:29:01,960 Пачнем. 568 00:29:01,960 --> 00:29:04,770 Асам, як мы ствараем новы вузел? 569 00:29:04,770 --> 00:29:06,810 >> АЎДЫТОРЫЯ: Вы структуры *. 570 00:29:06,810 --> 00:29:09,640 >> Джэйсан Хиршхорн: Такім чынам, мы ёсць, што тут. 571 00:29:09,640 --> 00:29:10,040 Ой, прабачце. 572 00:29:10,040 --> 00:29:13,530 Вы казалі структуру *. 573 00:29:13,530 --> 00:29:17,260 >> АЎДЫТОРЫЯ: А потым [? выгляд?] вузел або з вузлом. 574 00:29:17,260 --> 00:29:17,780 >> Джэйсан Хиршхорн: ОК. 575 00:29:17,780 --> 00:29:19,740 Я буду называць яго new_node так што мы можам заставацца паслядоўным. 576 00:29:19,740 --> 00:29:22,646 577 00:29:22,646 --> 00:29:33,180 >> АЎДЫТОРЫЯ: І вы хочаце ўсталяваць, што ўзначаліць, першы вузел. 578 00:29:33,180 --> 00:29:33,580 >> Джэйсан Хиршхорн: ОК. 579 00:29:33,580 --> 00:29:37,290 Так што зараз гэта, які паказвае на - дык гэта ня стварыў новы вузел яшчэ. 580 00:29:37,290 --> 00:29:41,380 Гэта проста паказваючы на Першы вузел у спісе. 581 00:29:41,380 --> 00:29:42,630 Як стварыць новы вузел? 582 00:29:42,630 --> 00:29:45,490 583 00:29:45,490 --> 00:29:48,070 Калі мне трэба прастору, каб стварыць новы вузел. 584 00:29:48,070 --> 00:29:49,230 Malloc. 585 00:29:49,230 --> 00:29:51,710 І наколькі вялікі? 586 00:29:51,710 --> 00:30:00,390 >> АЎДЫТОРЫЯ: Памер структуры. 587 00:30:00,390 --> 00:30:01,150 >> Джэйсан Хиршхорн: памер структуры. 588 00:30:01,150 --> 00:30:02,400 І што структура называецца? 589 00:30:02,400 --> 00:30:09,670 590 00:30:09,670 --> 00:30:09,840 >> АЎДЫТОРЫЯ: Вузел? 591 00:30:09,840 --> 00:30:11,640 >> Джэйсан Хиршхорн: Вузел. 592 00:30:11,640 --> 00:30:17,640 Так Таноса (SizeOf (вузел)); дае нам прастору. 593 00:30:17,640 --> 00:30:19,740 І гэтая лінія - 594 00:30:19,740 --> 00:30:21,740 адно няправільнае на гэтай лініі. 595 00:30:21,740 --> 00:30:24,430 З'яўляецца new_node паказальнік на структуру? 596 00:30:24,430 --> 00:30:25,650 Гэта агульная назва. 597 00:30:25,650 --> 00:30:26,520 Што гэта - 598 00:30:26,520 --> 00:30:27,450 вузел, дакладна. 599 00:30:27,450 --> 00:30:29,340 Гэта вузел *. 600 00:30:29,340 --> 00:30:33,010 І што ж нам рабіць адразу пасля мы Malloc нешта, Асан? 601 00:30:33,010 --> 00:30:34,476 Што першае, што мы робім? 602 00:30:34,476 --> 00:30:38,850 603 00:30:38,850 --> 00:30:40,320 Што рабіць, калі ён не працуе? 604 00:30:40,320 --> 00:30:42,430 >> АЎДЫТОРЫЯ: О, праверыць, калі ён паказвае на вузле? 605 00:30:42,430 --> 00:30:43,310 >> Джэйсан Хиршхорн: Цалкам дакладна. 606 00:30:43,310 --> 00:30:46,750 Так што калі вы new_node роўная роўных нуль, што ж нам рабіць? 607 00:30:46,750 --> 00:30:51,650 608 00:30:51,650 --> 00:30:54,820 Гэта вяртае лагічнае значэнне, гэтую функцыю. 609 00:30:54,820 --> 00:30:57,760 Менавіта так. 610 00:30:57,760 --> 00:30:58,450 Выглядае добра. 611 00:30:58,450 --> 00:30:59,680 Усё, што дадаць туды? 612 00:30:59,680 --> 00:31:00,670 Мы дадамо рэчы ў канцы. 613 00:31:00,670 --> 00:31:03,160 Але што да гэтага часу выглядае добра. 614 00:31:03,160 --> 00:31:06,170 Стварэнне бягучыя і папярэднія паказальнікі. 615 00:31:06,170 --> 00:31:08,650 Майкл, як я магу гэта зрабіць? 616 00:31:08,650 --> 00:31:12,810 >> АЎДЫТОРЫЯ: Вы павінны былі б зрабіць вузел *. 617 00:31:12,810 --> 00:31:21,800 618 00:31:21,800 --> 00:31:25,502 Вы павінны былі б зрабіць адзін не для new_node але для 619 00:31:25,502 --> 00:31:26,905 вузлы ў нас ужо ёсць. 620 00:31:26,905 --> 00:31:27,230 >> Джэйсан Хиршхорн: ОК. 621 00:31:27,230 --> 00:31:29,255 Такім чынам, бягучы вузел мы на. 622 00:31:29,255 --> 00:31:30,505 Я пазваню, што ін. 623 00:31:30,505 --> 00:31:39,650 624 00:31:39,650 --> 00:31:39,770 Добра. 625 00:31:39,770 --> 00:31:41,620 Мы вырашылі, што мы хочам захаваць два, таму што мы павінны ведаць 626 00:31:41,620 --> 00:31:42,870 што перад ім. 627 00:31:42,870 --> 00:31:45,770 628 00:31:45,770 --> 00:31:47,020 Што яны ініцыялізуюцца? 629 00:31:47,020 --> 00:31:49,874 630 00:31:49,874 --> 00:31:54,180 >> АЎДЫТОРЫЯ: Іх каштоўнасць у нашым спісе. 631 00:31:54,180 --> 00:31:58,090 >> Джэйсан Хиршхорн: Так у чым жа Першае, што ў нашым спісе? 632 00:31:58,090 --> 00:32:04,050 Ці як мы ведаем, дзе пачатак нашым спісе ёсць? 633 00:32:04,050 --> 00:32:08,015 >> АЎДЫТОРЫЯ: Хіба гэта не прайшло у функцыю? 634 00:32:08,015 --> 00:32:08,466 >> Джэйсан Хиршхорн: Дакладна. 635 00:32:08,466 --> 00:32:09,716 Ён быў прыняты ў прама тут. 636 00:32:09,716 --> 00:32:15,910 637 00:32:15,910 --> 00:32:18,980 Так што, калі ён перадаецца ў функцыю, пачатак спісу, што мы павінны 638 00:32:18,980 --> 00:32:21,270 ўсталяваць ток, роўны? 639 00:32:21,270 --> 00:32:22,110 >> АЎДЫТОРЫЯ: Спіс. 640 00:32:22,110 --> 00:32:22,900 >> Джэйсан Хиршхорн: Спіс. 641 00:32:22,900 --> 00:32:24,090 Вось менавіта. 642 00:32:24,090 --> 00:32:26,290 Зараз ён мае адрас пачатак нашага спісу. 643 00:32:26,290 --> 00:32:28,450 А як наконт папярэдні? 644 00:32:28,450 --> 00:32:31,920 >> АЎДЫТОРЫЯ: Спіс мінус адна? 645 00:32:31,920 --> 00:32:32,690 >> Джэйсан Хиршхорн: Там у нічога перад ім. 646 00:32:32,690 --> 00:32:34,580 Так што мы можам зрабіць, каб паказаць, нічога? 647 00:32:34,580 --> 00:32:35,050 >> АЎДЫТОРЫЯ: Null. 648 00:32:35,050 --> 00:32:35,450 >> Джэйсан Хиршхорн: Так. 649 00:32:35,450 --> 00:32:37,950 Гэта гучыць як добрая ідэя. 650 00:32:37,950 --> 00:32:38,360 Выдатна. 651 00:32:38,360 --> 00:32:39,630 Дзякуй. 652 00:32:39,630 --> 00:32:42,850 Прайсціся па спісе. 653 00:32:42,850 --> 00:32:45,490 Канстанцін, як доўга мы будзем ісці па спісе? 654 00:32:45,490 --> 00:32:49,010 >> АЎДЫТОРЫЯ: пакуль мы не дасягнем нулявы. 655 00:32:49,010 --> 00:32:49,390 >> Джэйсан Хиршхорн: ОК. 656 00:32:49,390 --> 00:32:50,430 Так што калі, у той час, на працягу цыклу. 657 00:32:50,430 --> 00:32:52,200 Што мы робім? 658 00:32:52,200 --> 00:32:53,320 >> АЎДЫТОРЫЯ: Можа быць, для цыкла? 659 00:32:53,320 --> 00:32:53,910 >> Джэйсан Хиршхорн: Давайце зробім цыкл. 660 00:32:53,910 --> 00:32:55,870 ОК. 661 00:32:55,870 --> 00:33:02,465 >> АЎДЫТОРЫЯ: І мы гаворым на - 662 00:33:02,465 --> 00:33:09,764 663 00:33:09,764 --> 00:33:13,390 да бягучага паказальніка ня роўны NULL. 664 00:33:13,390 --> 00:33:19,160 >> Джэйсан Хиршхорн: Дык што, калі мы ведаем, што стан, як мы можам напісаць цыкл 665 00:33:19,160 --> 00:33:21,740 заснаваныя ад гэтага ўмовы. 666 00:33:21,740 --> 00:33:24,380 Якія цыкле мы павінны выкарыстоўваць? 667 00:33:24,380 --> 00:33:25,260 >> АЎДЫТОРЫЯ: У той час як. 668 00:33:25,260 --> 00:33:25,590 >> Джэйсан Хиршхорн: Так. 669 00:33:25,590 --> 00:33:27,130 Гэта мае больш сэнсу, заснаваную ад таго, што вы сказалі. 670 00:33:27,130 --> 00:33:29,430 Калі мы проста хочам, каб увайсці ў мы гэта было б проста ведаю, што рэч, было б 671 00:33:29,430 --> 00:33:31,680 сэнс рабіць нейкі час цыклу. 672 00:33:31,680 --> 00:33:39,880 У той час як ток не роўны NULL, калі значэнне менш гэтага вузла. 673 00:33:39,880 --> 00:33:41,650 Akshar, дай мне гэтую лінію. 674 00:33:41,650 --> 00:33:48,810 675 00:33:48,810 --> 00:33:56,955 >> АЎДЫТОРЫЯ: Калі ток-> п н менш кошту. 676 00:33:56,955 --> 00:34:00,170 677 00:34:00,170 --> 00:34:03,260 Або зваротная што. 678 00:34:03,260 --> 00:34:06,140 Перамыкач што кранштэйн. 679 00:34:06,140 --> 00:34:06,620 >> Джэйсан Хиршхорн: Выбачайце. 680 00:34:06,620 --> 00:34:08,760 >> АЎДЫТОРЫЯ: Зменіце кранштэйн. 681 00:34:08,760 --> 00:34:10,914 >> Джэйсан Хиршхорн: Дык што, калі гэта больш, чым значэнне. 682 00:34:10,914 --> 00:34:18,719 683 00:34:18,719 --> 00:34:22,120 Таму што гэта зман з вышэй каментар, я збіраюся гэта зрабіць. 684 00:34:22,120 --> 00:34:22,480 Але так. 685 00:34:22,480 --> 00:34:25,125 Калі наша каштоўнасць менш, чым гэта вузел, што ж нам рабіць? 686 00:34:25,125 --> 00:34:25,540 О. 687 00:34:25,540 --> 00:34:26,710 У мяне ёсць яго прама тут. 688 00:34:26,710 --> 00:34:27,960 Устаўце раней. 689 00:34:27,960 --> 00:34:32,080 690 00:34:32,080 --> 00:34:32,370 ОК. 691 00:34:32,370 --> 00:34:33,933 Як мы гэта робім? 692 00:34:33,933 --> 00:34:34,900 >> АЎДЫТОРЫЯ: Гэта ўсё яшчэ я? 693 00:34:34,900 --> 00:34:36,150 >> Джэйсан Хиршхорн: Так. 694 00:34:36,150 --> 00:34:38,520 695 00:34:38,520 --> 00:34:39,770 >> АЎДЫТОРЫЯ: Вы - 696 00:34:39,770 --> 00:34:42,909 697 00:34:42,909 --> 00:34:44,159 new_node-> наступная. 698 00:34:44,159 --> 00:34:46,770 699 00:34:46,770 --> 00:34:50,163 >> Джэйсан Хиршхорн: Так у чым што збіраецца раўняцца? 700 00:34:50,163 --> 00:34:52,070 >> АЎДЫТОРЫЯ: Гэта будзе роўнай току. 701 00:34:52,070 --> 00:34:53,889 >> Джэйсан Хиршхорн: Цалкам дакладна. 702 00:34:53,889 --> 00:34:55,730 І так з другога - 703 00:34:55,730 --> 00:34:56,730 што яшчэ трэба для абнаўлення? 704 00:34:56,730 --> 00:34:59,982 >> АЎДЫТОРЫЯ: Пераканайцеся, што міма роўная нуля. 705 00:34:59,982 --> 00:35:01,870 >> Джэйсан Хиршхорн: Калі папярэдняя - 706 00:35:01,870 --> 00:35:03,730 так што калі перад роўная нуля. 707 00:35:03,730 --> 00:35:05,990 >> АЎДЫТОРЫЯ: Гэта азначае, што ён збіраецца стаць кіраўніком. 708 00:35:05,990 --> 00:35:06,780 >> Джэйсан Хиршхорн: Гэта азначае гэта стаць кіраўніком. 709 00:35:06,780 --> 00:35:07,620 Такім чынам, што ж нам рабіць? 710 00:35:07,620 --> 00:35:12,510 >> АЎДЫТОРЫЯ: Мы робім галаву роўна new_node. 711 00:35:12,510 --> 00:35:16,690 >> Джэйсан Хиршхорн: Кіраўнік роўная new_node. 712 00:35:16,690 --> 00:35:20,540 І чаму ўзначаліць тут, не пералічыць? 713 00:35:20,540 --> 00:35:24,940 >> АЎДЫТОРЫЯ: Таму што галава з'яўляецца сусветным зменная, якая з'яўляецца адпраўной кропкай. 714 00:35:24,940 --> 00:35:26,190 >> Джэйсан Хиршхорн: Салодкі. 715 00:35:26,190 --> 00:35:33,750 716 00:35:33,750 --> 00:35:34,170 ОК. 717 00:35:34,170 --> 00:35:36,150 І - 718 00:35:36,150 --> 00:35:53,796 >> АЎДЫТОРЫЯ: Тады вы яшчэ перад-> Наступны роўна new_node. 719 00:35:53,796 --> 00:35:55,080 А потым вы вернецеся праўда. 720 00:35:55,080 --> 00:35:59,560 721 00:35:59,560 --> 00:36:02,700 >> Джэйсан Хиршхорн: Куды мы ўсталёўваем new_node канец? 722 00:36:02,700 --> 00:36:04,850 >> Залы: Я - 723 00:36:04,850 --> 00:36:06,180 Я усталяваў, што ў пачатку. 724 00:36:06,180 --> 00:36:07,430 >> Джэйсан Хиршхорн: Так што лінія? 725 00:36:07,430 --> 00:36:10,000 726 00:36:10,000 --> 00:36:12,598 >> АЎДЫТОРЫЯ: Пасля таго, як калі заяву праверкі, калі ён вядомы. 727 00:36:12,598 --> 00:36:13,057 >> Джэйсан Хиршхорн: Прама тут? 728 00:36:13,057 --> 00:36:18,335 >> АЎДЫТОРЫЯ: я зраблю new_node-> п роўная кошту. 729 00:36:18,335 --> 00:36:19,585 >> Джэйсан Хиршхорн: Гучыць добра. 730 00:36:19,585 --> 00:36:21,740 731 00:36:21,740 --> 00:36:25,090 Напэўна, мае сэнс - мы не робім павінны ведаць, што спіс мы на 732 00:36:25,090 --> 00:36:26,280 таму што мы маем справу толькі з аднаго спісу. 733 00:36:26,280 --> 00:36:29,560 Так лепш аб'яву функцыі для гэта проста, каб пазбавіцца ад гэтага 734 00:36:29,560 --> 00:36:34,360 цалкам і проста ўставіць значэнне ў галаву. 735 00:36:34,360 --> 00:36:35,930 Мы нават не павінны ведаць, што спіс мы цалі 736 00:36:35,930 --> 00:36:39,140 Але я буду трымаць яго на дадзены момант і затым змяніць яго па мадэрнізацыі 737 00:36:39,140 --> 00:36:42,590 слайды і код. 738 00:36:42,590 --> 00:36:44,980 Так што добра выглядае на дадзены момант. 739 00:36:44,980 --> 00:36:46,560 Калі значэнне - хто можа зрабіць гэтую лінію? 740 00:36:46,560 --> 00:36:47,810 Калі - 741 00:36:47,810 --> 00:36:52,240 742 00:36:52,240 --> 00:36:53,840 што нам рабіць тут, Ной. 743 00:36:53,840 --> 00:36:57,890 744 00:36:57,890 --> 00:37:07,100 >> АЎДЫТОРЫЯ: Калі гэтае значэньне большае чым вал-> п - 745 00:37:07,100 --> 00:37:16,830 746 00:37:16,830 --> 00:37:18,240 >> Джэйсан Хиршхорн: Як зрабіць мы ідзем да наступнага вузла? 747 00:37:18,240 --> 00:37:27,760 748 00:37:27,760 --> 00:37:30,530 >> АЎДЫТОРЫЯ: Кэр-> п роўная new_node. 749 00:37:30,530 --> 00:37:37,630 750 00:37:37,630 --> 00:37:39,195 >> Джэйсан Хиршхорн: Так п якая частка структуры? 751 00:37:39,195 --> 00:37:43,065 752 00:37:43,065 --> 00:37:46,020 Цэлае. 753 00:37:46,020 --> 00:37:50,420 І new_node з'яўляецца паказальнікам на вузел. 754 00:37:50,420 --> 00:37:51,880 Так што частка цёк мы павінны абнавіць? 755 00:37:51,880 --> 00:38:03,900 756 00:38:03,900 --> 00:38:05,400 Калі не я, то што іншая частка? 757 00:38:05,400 --> 00:38:21,680 758 00:38:21,680 --> 00:38:22,810 Най, што іншая частка. 759 00:38:22,810 --> 00:38:23,570 >> АЎДЫТОРЫЯ: О, у наступны. 760 00:38:23,570 --> 00:38:25,645 >> Джэйсан Хиршхорн: Далей, дакладна. 761 00:38:25,645 --> 00:38:26,410 Менавіта так. 762 00:38:26,410 --> 00:38:28,770 Наступная з'яўляецца правільным. 763 00:38:28,770 --> 00:38:31,540 А што яшчэ трэба абнавіць, Ной? 764 00:38:31,540 --> 00:38:32,840 >> АЎДЫТОРЫЯ: Паказальнікі. 765 00:38:32,840 --> 00:38:34,840 >> Джэйсан Хиршхорн: Так мы абнавілі ток. 766 00:38:34,840 --> 00:38:36,090 >> АЎДЫТОРЫЯ: Папярэдні-> наступная. 767 00:38:36,090 --> 00:38:48,160 768 00:38:48,160 --> 00:38:49,410 >> Джэйсан Хиршхорн: Так. 769 00:38:49,410 --> 00:38:57,465 770 00:38:57,465 --> 00:38:58,370 Добра, мы паўзу. 771 00:38:58,370 --> 00:39:02,200 Хто можа дапамагчы нам тут? 772 00:39:02,200 --> 00:39:03,385 Ману, што мы павінны рабіць? 773 00:39:03,385 --> 00:39:05,615 >> АЎДЫТОРЫЯ: Вы павінны ўсталяваць яго роўным цёк-> наступны. 774 00:39:05,615 --> 00:39:09,110 775 00:39:09,110 --> 00:39:11,630 Але зрабіць гэта раней, чым у папярэднім радку. 776 00:39:11,630 --> 00:39:12,880 >> Джэйсан Хиршхорн: ОК. 777 00:39:12,880 --> 00:39:16,590 778 00:39:16,590 --> 00:39:18,260 Што-небудзь яшчэ? 779 00:39:18,260 --> 00:39:19,170 Akshar. 780 00:39:19,170 --> 00:39:22,680 >> АЎДЫТОРЫЯ: Я не думаю, што ты азначала змяніць Curr-> наступны. 781 00:39:22,680 --> 00:39:29,270 Я думаю, вы на ўвазе, каб зрабіць вал роўных вал-> Далей для пераходу да наступнага вузла. 782 00:39:29,270 --> 00:39:30,500 >> Джэйсан Хиршхорн: Так шкада, дзе? 783 00:39:30,500 --> 00:39:32,680 На якой лініі? 784 00:39:32,680 --> 00:39:33,420 Гэтая лінія? 785 00:39:33,420 --> 00:39:33,750 >> АЎДЫТОРЫЯ: Так. 786 00:39:33,750 --> 00:39:35,745 Зрабіць вал роўная вал-> наступная. 787 00:39:35,745 --> 00:39:39,690 788 00:39:39,690 --> 00:39:43,360 >> Джэйсан Хиршхорн: Дык вось правільна паколькі ў цяперашні час з'яўляецца 789 00:39:43,360 --> 00:39:45,220 паказальнік да вузла. 790 00:39:45,220 --> 00:39:48,550 І мы хочам, каб яна паказвала на наступны вузел, што становіцца ў цяперашні час 791 00:39:48,550 --> 00:39:49,930 паказаў на. 792 00:39:49,930 --> 00:39:54,410 Сам Кэр мае наступны. 793 00:39:54,410 --> 00:39:58,620 Але калі б мы павінны былі абнавіць curr.next, мы будзе абнаўляць фактычныя ведама 794 00:39:58,620 --> 00:40:01,430 сама не там, дзе гэта паказальнік паказваў. 795 00:40:01,430 --> 00:40:02,680 А як наконт гэтай лініі, хоць. 796 00:40:02,680 --> 00:40:05,160 797 00:40:05,160 --> 00:40:07,330 Аві? 798 00:40:07,330 --> 00:40:09,590 >> АЎДЫТОРЫЯ: Папярэдні-> наступная роўная ін. 799 00:40:09,590 --> 00:40:12,500 800 00:40:12,500 --> 00:40:19,440 >> Джэйсан Хиршхорн: Такім чынам, яшчэ раз, калі перад з'яўляецца паказальнік на вузел, прад-> наступны з'яўляецца 801 00:40:19,440 --> 00:40:23,020 Фактычны паказальнік ў вузле. 802 00:40:23,020 --> 00:40:27,190 Так што гэта будзе абнаўленне паказальнік ў вузле да Curr. 803 00:40:27,190 --> 00:40:28,570 Мы не хочам, каб абнавіць паказальнік на вузел. 804 00:40:28,570 --> 00:40:30,570 Мы хочам, каб абнавіць папярэдні. 805 00:40:30,570 --> 00:40:31,850 Так як жа нам гэта зрабіць? 806 00:40:31,850 --> 00:40:34,250 >> АЎДЫТОРЫЯ: Было б проста быць прад. 807 00:40:34,250 --> 00:40:34,565 >> Джэйсан Хиршхорн: Дакладна. 808 00:40:34,565 --> 00:40:35,560 Папярэдні з'яўляецца паказальнікам на вузел. 809 00:40:35,560 --> 00:40:38,750 Цяпер мы мяняем яго на Новы паказальнік на вузел. 810 00:40:38,750 --> 00:40:40,830 ОК Давайце рухацца ўніз. 811 00:40:40,830 --> 00:40:41,940 Нарэшце, апошняя ўмова. 812 00:40:41,940 --> 00:40:44,896 Джэф, што мы робім тут? 813 00:40:44,896 --> 00:40:47,515 >> АЎДЫТОРЫЯ: Калі значэнне роўная вал-> п. 814 00:40:47,515 --> 00:40:51,030 815 00:40:51,030 --> 00:40:51,300 >> Джэйсан Хиршхорн: Выбачайце. 816 00:40:51,300 --> 00:40:52,372 Аб божа мой. 817 00:40:52,372 --> 00:40:54,330 Што? 818 00:40:54,330 --> 00:40:55,580 Значэнне == вал-> п. 819 00:40:55,580 --> 00:41:01,050 820 00:41:01,050 --> 00:41:02,300 Што нам рабіць? 821 00:41:02,300 --> 00:41:04,760 822 00:41:04,760 --> 00:41:10,950 >> АЎДЫТОРЫЯ: Вы б вызваліць нашу new_node, і тады вы б вярнуцца ілжывым. 823 00:41:10,950 --> 00:41:21,410 824 00:41:21,410 --> 00:41:23,460 >> Джэйсан Хиршхорн: Гэта тое, што мы напісалі да гэтага часу. 825 00:41:23,460 --> 00:41:25,710 Хто-небудзь ёсць нічога дадаць, перш чым зрабіць? 826 00:41:25,710 --> 00:41:35,460 827 00:41:35,460 --> 00:41:35,710 ОК. 828 00:41:35,710 --> 00:41:36,960 Давайце паспрабуем. 829 00:41:36,960 --> 00:41:44,180 830 00:41:44,180 --> 00:41:46,110 Кантроль можа дайсці да канца з не-пустата функцыі. 831 00:41:46,110 --> 00:41:48,310 Аві, што адбываецца? 832 00:41:48,310 --> 00:41:51,380 >> АЎДЫТОРЫЯ: Вы павінны паставіць вяртанне праўда за межамі час цыкла? 833 00:41:51,380 --> 00:41:53,900 834 00:41:53,900 --> 00:41:54,400 >> Джэйсан Хиршхорн: Я не ведаю. 835 00:41:54,400 --> 00:41:54,780 Вы хочаце, каб я? 836 00:41:54,780 --> 00:41:55,520 >> АЎДЫТОРЫЯ: Не бярыце ў галаву. 837 00:41:55,520 --> 00:41:56,350 Няма. 838 00:41:56,350 --> 00:41:57,180 >> Джэйсан Хиршхорн: Akshar? 839 00:41:57,180 --> 00:41:59,460 >> Залы: Я думаю, што вы прызначаныя для пакласці вяртанне ілжывым у канцы 840 00:41:59,460 --> 00:42:02,230 з той час цыклу. 841 00:42:02,230 --> 00:42:03,270 >> Джэйсан Хиршхорн: Дык дзе Вы хочаце, каб гэта пайшло? 842 00:42:03,270 --> 00:42:05,270 >> АЎДЫТОРЫЯ: Як за той час цыклу. 843 00:42:05,270 --> 00:42:08,800 Так што, калі вы выходзіце з той час як цыкл Гэта азначае, што што вы дайшлі да канца і 844 00:42:08,800 --> 00:42:09,980 нічога не здарылася. 845 00:42:09,980 --> 00:42:10,410 >> Джэйсан Хиршхорн: ОК. 846 00:42:10,410 --> 00:42:12,340 Дык што ж нам рабіць тут? 847 00:42:12,340 --> 00:42:13,702 >> АЎДЫТОРЫЯ: Вы вярнуцца ілжывым там жа. 848 00:42:13,702 --> 00:42:15,040 >> Джэйсан Хиршхорн: О, мы зрабіць гэта ў абодвух месцах? 849 00:42:15,040 --> 00:42:15,650 >> АЎДЫТОРЫЯ: Так. 850 00:42:15,650 --> 00:42:16,900 >> Джэйсан Хиршхорн: ОК. 851 00:42:16,900 --> 00:42:24,840 852 00:42:24,840 --> 00:42:26,160 Калі мы ідзем? 853 00:42:26,160 --> 00:42:26,980 Аб божа мой. 854 00:42:26,980 --> 00:42:27,290 Мне вельмі шкада. 855 00:42:27,290 --> 00:42:28,480 Я прашу прабачэння за экрана. 856 00:42:28,480 --> 00:42:30,530 Гэта свайго роду бескантрольнага паводзін на нас. 857 00:42:30,530 --> 00:42:31,520 Так што выбірайце опцыю. 858 00:42:31,520 --> 00:42:35,260 Нуль, у адпаведнасці з кодам, выходзіць з праграмы. 859 00:42:35,260 --> 00:42:36,700 Адзін ўстаўляе нешта. 860 00:42:36,700 --> 00:42:37,990 Давайце ўставіць тры. 861 00:42:37,990 --> 00:42:42,900 862 00:42:42,900 --> 00:42:45,380 Устаўка ня была паспяховай. 863 00:42:45,380 --> 00:42:46,500 Я збіраюся раздрукаваць. 864 00:42:46,500 --> 00:42:48,050 Я не маю нічога. 865 00:42:48,050 --> 00:42:48,450 ОК. 866 00:42:48,450 --> 00:42:50,250 Можа быць, гэта была проста выпадковасць. 867 00:42:50,250 --> 00:42:52,810 Устаўце адзін. 868 00:42:52,810 --> 00:42:55,770 Ня паспяховым. 869 00:42:55,770 --> 00:42:57,470 ОК. 870 00:42:57,470 --> 00:43:02,400 Давайце разгледзім GDB вельмі хутка каб праверыць, што адбываецца. 871 00:43:02,400 --> 00:43:06,055 >> Запомніць GDB. / Імя вашага Праграма атрымлівае нас у GDB. 872 00:43:06,055 --> 00:43:07,610 Шмат гэта ці мала, каб справіцца? 873 00:43:07,610 --> 00:43:08,560 Міргае? 874 00:43:08,560 --> 00:43:10,400 Напэўна. 875 00:43:10,400 --> 00:43:12,760 Зачыніце вочы і зрабіце некалькі глыбокіх дыхае, калі вы стамляецеся 876 00:43:12,760 --> 00:43:13,580 глядзець на гэта. 877 00:43:13,580 --> 00:43:14,200 Я ў GDB. 878 00:43:14,200 --> 00:43:15,830 Што першае, што я раблю ў GDB? 879 00:43:15,830 --> 00:43:17,050 Мы павінны высветліць, што адбываецца тут. 880 00:43:17,050 --> 00:43:17,310 Давайце паглядзім. 881 00:43:17,310 --> 00:43:21,650 У нас ёсць шэсць хвілін, каб зразумець , Што адбываецца. 882 00:43:21,650 --> 00:43:22,900 Перапынак асноўнай. 883 00:43:22,900 --> 00:43:25,950 884 00:43:25,950 --> 00:43:28,130 А потым што мне рабіць? 885 00:43:28,130 --> 00:43:29,180 Карлас? 886 00:43:29,180 --> 00:43:31,060 Запусціце. 887 00:43:31,060 --> 00:43:32,250 ОК. 888 00:43:32,250 --> 00:43:34,160 Давайце абярэм опцыю. 889 00:43:34,160 --> 00:43:36,330 І што N рабіць? 890 00:43:36,330 --> 00:43:38,480 Наступная. 891 00:43:38,480 --> 00:43:38,950 Так. 892 00:43:38,950 --> 00:43:39,740 >> АЎДЫТОРЫЯ: Вы не згадалі - 893 00:43:39,740 --> 00:43:45,230 ты не сказаў, што кіраўнік, гэта было ініцыялізуецца нулём у пачатку. 894 00:43:45,230 --> 00:43:47,140 Але я думаў, вы сказалі, што было ў парадку. 895 00:43:47,140 --> 00:43:50,040 896 00:43:50,040 --> 00:43:52,640 >> Джэйсан Хиршхорн: Паехалі - давайце паглядзім у GDB, а затым мы вернемся. 897 00:43:52,640 --> 00:43:54,910 Але гэта гучыць як у вас ужо ёсць некаторыя ідэі аб тым, што адбываецца. 898 00:43:54,910 --> 00:43:58,340 Таму мы хочам, каб ўставіць нешта. 899 00:43:58,340 --> 00:43:59,390 ОК. 900 00:43:59,390 --> 00:44:00,150 Мы ўставіць. 901 00:44:00,150 --> 00:44:00,770 Калі ласка, увядзіце Int. 902 00:44:00,770 --> 00:44:01,990 Мы ўставіць тры. 903 00:44:01,990 --> 00:44:03,000 А потым я на гэтай лініі. 904 00:44:03,000 --> 00:44:07,030 Як я магу ісці пачаць адладку ўстаўка вядома функцыю? 905 00:44:07,030 --> 00:44:08,280 Аб божа мой. 906 00:44:08,280 --> 00:44:10,990 907 00:44:10,990 --> 00:44:12,240 Гэта шмат. 908 00:44:12,240 --> 00:44:14,372 909 00:44:14,372 --> 00:44:16,445 Хіба што хвалююся шмат? 910 00:44:16,445 --> 00:44:19,696 911 00:44:19,696 --> 00:44:21,680 >> АЎДЫТОРЫЯ: О, гэта памёр. 912 00:44:21,680 --> 00:44:22,930 >> Джэйсан Хиршхорн: Я проста выцягнуў яго. 913 00:44:22,930 --> 00:44:27,364 914 00:44:27,364 --> 00:44:28,310 ОК. 915 00:44:28,310 --> 00:44:29,560 >> АЎДЫТОРЫЯ: Можа быць, гэта Іншы канец дроту. 916 00:44:29,560 --> 00:44:37,000 917 00:44:37,000 --> 00:44:39,470 >> Джэйсан Хиршхорн: Нічога сабе. 918 00:44:39,470 --> 00:44:42,330 Так сутнасць - 919 00:44:42,330 --> 00:44:43,470 што ты сказаў? 920 00:44:43,470 --> 00:44:46,040 >> Залы: Я сказаў, што іронія тэхнічная Цяжкасці ў гэтым класе. 921 00:44:46,040 --> 00:44:46,410 >> Джэйсан Хиршхорн: Я ведаю. 922 00:44:46,410 --> 00:44:48,660 Калі б толькі я меў кантроль над гэтай часткай. 923 00:44:48,660 --> 00:44:49,910 [Неразборліва] 924 00:44:49,910 --> 00:44:54,430 925 00:44:54,430 --> 00:44:55,400 Гэта гучыць выдатна. 926 00:44:55,400 --> 00:44:58,680 Чаму б вам не пачаць думаць пра тое, што мы маглі б зрабіць так, 927 00:44:58,680 --> 00:45:01,140 і мы вернемся ў 90 секунд. 928 00:45:01,140 --> 00:46:18,160 929 00:46:18,160 --> 00:46:23,010 >> Avica, я збіраюся спытаць вас, як ісці ўнутры insert_node адладзіць яго. 930 00:46:23,010 --> 00:46:28,940 931 00:46:28,940 --> 00:46:31,460 Так што гэта, дзе мы ў апошні раз спыніліся. 932 00:46:31,460 --> 00:46:35,110 Як я магу ісці ўнутры insert_node, Avica, вывучыць, што адбываецца? 933 00:46:35,110 --> 00:46:36,360 Якая каманда GDB? 934 00:46:36,360 --> 00:46:41,050 935 00:46:41,050 --> 00:46:42,390 Перапынак не возьме мяне ўнутры. 936 00:46:42,390 --> 00:46:46,200 937 00:46:46,200 --> 00:46:47,130 Ці ведае маркіза? 938 00:46:47,130 --> 00:46:48,240 >> АЎДЫТОРЫЯ: Што? 939 00:46:48,240 --> 00:46:51,780 >> Джэйсан Хиршхорн: Какая команда GDB Я выкарыстоўваю, каб зайсці ўнутр гэтай функцыі? 940 00:46:51,780 --> 00:46:52,070 >> АЎДЫТОРЫЯ: Крок? 941 00:46:52,070 --> 00:46:55,140 >> Джэйсан Хиршхорн: Крок праз С. Гэта бярэ мяне ўнутры. 942 00:46:55,140 --> 00:46:55,476 ОК. 943 00:46:55,476 --> 00:46:58,040 New_node mallocing некаторы прастору. 944 00:46:58,040 --> 00:46:59,120 Гэта ўсё выглядае як яго збіраюцца. 945 00:46:59,120 --> 00:47:00,370 Давайце разгледзім new_node. 946 00:47:00,370 --> 00:47:03,270 947 00:47:03,270 --> 00:47:05,410 Ён атрымаў некаторую адрас памяці. 948 00:47:05,410 --> 00:47:07,440 Давайце праверым - 949 00:47:07,440 --> 00:47:08,500 гэта ўсё правільна. 950 00:47:08,500 --> 00:47:12,220 Так што ўсё тут, здаецца, працуе правільна. 951 00:47:12,220 --> 00:47:14,530 >> АЎДЫТОРЫЯ: У чым розніца паміж Р і дысплея? 952 00:47:14,530 --> 00:47:16,160 >> Джэйсан Хиршхорн: Р пазначае для друку. 953 00:47:16,160 --> 00:47:19,310 І так вы пытаецеся ў чым Розніца паміж гэтым і гэтым? 954 00:47:19,310 --> 00:47:22,330 У гэтым выпадку, нічога. 955 00:47:22,330 --> 00:47:26,960 Але ў цэлым ёсць некаторыя адрозненні. 956 00:47:26,960 --> 00:47:28,220 І вы павінны глядзець у кіраўніцтве GDB. 957 00:47:28,220 --> 00:47:29,560 Але ў дадзеным выпадку, нічога. 958 00:47:29,560 --> 00:47:31,460 Мы схільныя выкарыстоўваць друк, хоць, таму што нам не трэба рабіць значна больш, чым 959 00:47:31,460 --> 00:47:33,960 раздрукаваць адно значэнне. 960 00:47:33,960 --> 00:47:34,640 >> ОК. 961 00:47:34,640 --> 00:47:40,300 Такім чынам, мы знаходзімся на лініі 80 нашага кода, ўстаноўка вузла * Curr роўную спісу. 962 00:47:40,300 --> 00:47:42,500 Давайце раздрукаваць ін. 963 00:47:42,500 --> 00:47:45,260 964 00:47:45,260 --> 00:47:46,840 Яна роўная спіс. 965 00:47:46,840 --> 00:47:48,850 Салодкі. 966 00:47:48,850 --> 00:47:49,340 Пачакайце. 967 00:47:49,340 --> 00:47:50,590 Яна роўная нешта. 968 00:47:50,590 --> 00:47:53,680 969 00:47:53,680 --> 00:47:56,190 Гэта не здаецца правільным. 970 00:47:56,190 --> 00:47:56,840 Там мы ідзем. 971 00:47:56,840 --> 00:47:59,470 Гэта таму, што ў GDB, справа, калі гэта лінія ты на ім 972 00:47:59,470 --> 00:48:00,330 яшчэ не выканана. 973 00:48:00,330 --> 00:48:03,100 Так што вам трэба на самай справе тып Наступны выканаць лінію 974 00:48:03,100 --> 00:48:05,230 перш, чым бачыць яго вынікі. 975 00:48:05,230 --> 00:48:06,680 І вось мы. 976 00:48:06,680 --> 00:48:09,490 Мы толькі што выканалі гэтую лінію, папярэдняя роўная нуля. 977 00:48:09,490 --> 00:48:13,590 Такім чынам, яшчэ раз, калі мы друкуем папярэдняя мы не ўбачым нічога дзіўнага. 978 00:48:13,590 --> 00:48:18,680 Але калі мы на самай справе выканаць, што лінія, то мы ўбачым, 979 00:48:18,680 --> 00:48:20,380 што гэтая лінія працавала. 980 00:48:20,380 --> 00:48:21,060 >> Таму ў нас ёсць ін. 981 00:48:21,060 --> 00:48:23,180 Тыя, абодва добрыя. 982 00:48:23,180 --> 00:48:24,010 Ці не так? 983 00:48:24,010 --> 00:48:28,130 Зараз мы знаходзімся на гэтай лініі прама тут. 984 00:48:28,130 --> 00:48:29,310 У той час як вал не можа ісці ў NULL. 985 00:48:29,310 --> 00:48:31,110 Ну, што робіць вал роўныя? 986 00:48:31,110 --> 00:48:32,450 Мы толькі што бачылі ён быў роўны нулю. 987 00:48:32,450 --> 00:48:33,210 Мы надрукавалі яго. 988 00:48:33,210 --> 00:48:35,110 Я раздрукаваць яго зноў. 989 00:48:35,110 --> 00:48:36,720 Так што пакуль пятля будзе выконваць? 990 00:48:36,720 --> 00:48:37,270 >> АЎДЫТОРЫЯ: Не. 991 00:48:37,270 --> 00:48:39,790 >> Джэйсан Хиршхорн: Дык што, калі я набраў, што лінія, вы бачыце, мы ўскочылі на ўсім шляху 992 00:48:39,790 --> 00:48:41,390 ўніз да падставы, вярнуцца ілжывым. 993 00:48:41,390 --> 00:48:44,520 А потым мы збіраемся вярнуцца ілжывым і вярнуцца да нашай праграме і 994 00:48:44,520 --> 00:48:48,020 ў канчатковым выніку раздрукаваць, як мы бачылі, ўстаўка ня была паспяховай. 995 00:48:48,020 --> 00:48:51,010 Так, у кагосьці ёсць нейкія ідэі аб тым, што мы павінны зрабіць, каб гэта выправіць? 996 00:48:51,010 --> 00:48:54,200 997 00:48:54,200 --> 00:48:57,570 Я збіраюся чакаць, пакуль я не бачу пару рук ўверх. 998 00:48:57,570 --> 00:48:58,830 Мы не выканаць гэта. 999 00:48:58,830 --> 00:49:01,660 Майце на ўвазе, гэта быў першы што мы рабілі. 1000 00:49:01,660 --> 00:49:02,430 Я не збіраюся зрабіць пару. 1001 00:49:02,430 --> 00:49:03,670 Я збіраюся зрабіць некалькі. 1002 00:49:03,670 --> 00:49:04,830 Таму што пару азначае два. 1003 00:49:04,830 --> 00:49:07,620 Я буду чакаць больш за два. 1004 00:49:07,620 --> 00:49:10,690 >> Першы ўстаўка, вал, па змаўчанні роўная нуля. 1005 00:49:10,690 --> 00:49:14,050 І гэты цыкл выконваецца толькі калі вал не з'яўляецца нулявым. 1006 00:49:14,050 --> 00:49:18,740 Так як я магу абыйсці гэта? 1007 00:49:18,740 --> 00:49:19,990 Я бачу тры рукі. 1008 00:49:19,990 --> 00:49:28,490 1009 00:49:28,490 --> 00:49:29,780 Я буду чакаць больш за тры. 1010 00:49:29,780 --> 00:49:33,460 1011 00:49:33,460 --> 00:49:35,940 Маркус, што ты думаеш? 1012 00:49:35,940 --> 00:49:37,730 >> АЎДЫТОРЫЯ: Ну, калі вам гэта трэба, каб выканаць больш за адзін раз, вы проста 1013 00:49:37,730 --> 00:49:39,948 змяніць яго на зрабі час цыклу. 1014 00:49:39,948 --> 00:49:41,250 >> Джэйсан Хиршхорн: ОК. 1015 00:49:41,250 --> 00:49:44,240 Ці будзе гэта вырашыць нашу праблему, хоць? 1016 00:49:44,240 --> 00:49:47,750 >> ня AUDIENCE: У гэтым выпадку няма з-за той факт, што спіс пусты. 1017 00:49:47,750 --> 00:49:52,150 Так то вы, верагодна, проста трэба дадаць заяву, што калі цыкл завяршаецца 1018 00:49:52,150 --> 00:49:55,312 то вы павінны быць у канцы спіс, пасля чаго вас 1019 00:49:55,312 --> 00:49:56,562 можна проста ўставіць яе. 1020 00:49:56,562 --> 00:49:58,920 1021 00:49:58,920 --> 00:49:59,680 >> Джэйсан Хиршхорн: Мне гэта падабаецца. 1022 00:49:59,680 --> 00:50:00,500 Гэта мае сэнс. 1023 00:50:00,500 --> 00:50:03,390 Калі цыкл выходзіць - 1024 00:50:03,390 --> 00:50:04,800 таму што гэта будзе вяртанне ілжывым тут. 1025 00:50:04,800 --> 00:50:08,220 Так што, калі цыкл завяршаецца, то мы на канец спісу, або, можа быць 1026 00:50:08,220 --> 00:50:10,690 пачатак спісу, калі няма нічога ў гэта, якое з'яўляецца такім жа, як у канцы. 1027 00:50:10,690 --> 00:50:12,770 Так што цяпер мы хочам, каб ўставіць нешта тут. 1028 00:50:12,770 --> 00:50:17,380 Так як жа гэты код шукаць, Маркус? 1029 00:50:17,380 --> 00:50:21,600 >> АЎДЫТОРЫЯ: Калі ў вас ужо ёсць вузел malloced, вы маглі б проста сказаць, 1030 00:50:21,600 --> 00:50:25,400 new_node-> наступная роўная нуль, таму што ён павінен быць у канцы. 1031 00:50:25,400 --> 00:50:27,510 Або new_node-> наступная роўная нуля. 1032 00:50:27,510 --> 00:50:27,765 >> Джэйсан Хиршхорн: ОК. 1033 00:50:27,765 --> 00:50:28,190 Выбачайце. 1034 00:50:28,190 --> 00:50:35,760 New_node-> наступная роўна нуль , Таму што мы знаходзімся ў канцы. 1035 00:50:35,760 --> 00:50:36,460 Гэта не пакласці яго цалі 1036 00:50:36,460 --> 00:50:37,710 Як мы пакласці яго ў спісе? 1037 00:50:37,710 --> 00:50:46,130 1038 00:50:46,130 --> 00:50:46,460 Дакладна. 1039 00:50:46,460 --> 00:50:47,750 Вось толькі паклаўшы яе роўнай. 1040 00:50:47,750 --> 00:50:50,940 Няма, як жа мы на самай справе пакласці яго ў спісе? 1041 00:50:50,940 --> 00:50:54,170 Што паказваючы на канец спісу? 1042 00:50:54,170 --> 00:50:56,090 >> АЎДЫТОРЫЯ: заг. 1043 00:50:56,090 --> 00:50:57,566 >> Джэйсан Хиршхорн: Выбачайце? 1044 00:50:57,566 --> 00:50:59,440 >> АЎДЫТОРЫЯ: кіраўнік паказвае ў канцы спісу. 1045 00:50:59,440 --> 00:51:01,480 >> Джэйсан Хиршхорн: Калі няма нічога ў спіс, галава паказваючы на 1046 00:51:01,480 --> 00:51:04,170 канец спісу. 1047 00:51:04,170 --> 00:51:06,920 Так што буду працаваць на Першы ўстаўкі. 1048 00:51:06,920 --> 00:51:09,810 Што, калі ёсць некалькі рэчы ў спісе? 1049 00:51:09,810 --> 00:51:12,470 Чым мы не хочам, каб усталяваць ўзначаліць роўна new_node. 1050 00:51:12,470 --> 00:51:13,790 Што мы хочам, каб там рабіць? 1051 00:51:13,790 --> 00:51:15,610 Да? 1052 00:51:15,610 --> 00:51:16,860 Напэўна папярэдні. 1053 00:51:16,860 --> 00:51:23,560 1054 00:51:23,560 --> 00:51:24,810 Ці будзе гэта працаваць? 1055 00:51:24,810 --> 00:51:28,950 1056 00:51:28,950 --> 00:51:33,050 Нагадаем, што папярэдняя проста паказальнік на вузел. 1057 00:51:33,050 --> 00:51:34,770 І папярэдняя з'яўляецца лакальнай зменнай. 1058 00:51:34,770 --> 00:51:38,080 Так гэтая лінія будзе ўстаноўлена лакальная зменная, папярэдні, роўнай або 1059 00:51:38,080 --> 00:51:39,380 паказваючы на ​​гэтым новым вузле. 1060 00:51:39,380 --> 00:51:41,500 Гэта не будзе на самой справе паклаў яго у нашым спісе, хоць. 1061 00:51:41,500 --> 00:51:44,330 Як мы пакласці яго ў нашым спісе? 1062 00:51:44,330 --> 00:51:45,620 Akchar? 1063 00:51:45,620 --> 00:51:46,870 >> Залы: Я думаю, што вы зрабіць бягучы-> Next. 1064 00:51:46,870 --> 00:51:50,186 1065 00:51:50,186 --> 00:51:52,550 >> Джэйсан Хиршхорн: ОК. 1066 00:51:52,550 --> 00:51:54,010 вал-> наступная. 1067 00:51:54,010 --> 00:51:58,768 Такім чынам, яшчэ раз, адзіная прычына, мы ўніз вось, што значыць ток, роўны? 1068 00:51:58,768 --> 00:51:59,760 >> АЎДЫТОРЫЯ: Роўна нуля. 1069 00:51:59,760 --> 00:52:01,790 >> Джэйсан Хиршхорн: І так, што адбудзецца, калі мы робім нуль-> далей? 1070 00:52:01,790 --> 00:52:02,810 Што мы збіраемся атрымаць? 1071 00:52:02,810 --> 00:52:04,060 Мы атрымаем памылку сегментацыі. 1072 00:52:04,060 --> 00:52:06,600 1073 00:52:06,600 --> 00:52:08,880 >> АЎДЫТОРЫЯ: Do вал роўная нуля. 1074 00:52:08,880 --> 00:52:10,760 >> Джэйсан Хиршхорн: Гэта тое ж самае, як папярэдняя, ​​хоць, таму што ёсць 1075 00:52:10,760 --> 00:52:12,820 лакальная пераменная мы ўсталёўваем роўным гэтаму новаму вузла. 1076 00:52:12,820 --> 00:52:16,680 1077 00:52:16,680 --> 00:52:20,920 Давайце вернемся да нашай карціне ўстаўкі нешта. 1078 00:52:20,920 --> 00:52:25,500 Скажыце, што мы, уключыўшы ў канцы з спісу, так прама тут. 1079 00:52:25,500 --> 00:52:30,010 У нас ёсць бягучы паказальнік Гэта паказваючы на ​​нуль і папярэдні пункт 1080 00:52:30,010 --> 00:52:32,800 які, паказваючы на ​​8. 1081 00:52:32,800 --> 00:52:35,330 Дык што ж нам трэба абнавіць, Аві? 1082 00:52:35,330 --> 00:52:36,680 >> АЎДЫТОРЫЯ: Папярэдні-> далей? 1083 00:52:36,680 --> 00:52:41,980 >> Джэйсан Хиршхорн: Папярэдні-> наступная з'яўляецца тое, што мы хочам абнавіць, таму што 1084 00:52:41,980 --> 00:52:44,960 на самай справе ўставіць яго ў канец спісу. 1085 00:52:44,960 --> 00:52:47,220 У нас яшчэ ёсць адна памылка, тым не менш, што мы збіраемся запусціць ст. 1086 00:52:47,220 --> 00:52:50,090 Што гэта памылка? 1087 00:52:50,090 --> 00:52:50,790 Да? 1088 00:52:50,790 --> 00:52:53,860 >> АЎДЫТОРЫЯ: Гэта збіраецца вярнуцца хлусня ў гэтым выпадку? 1089 00:52:53,860 --> 00:52:56,380 >> Джэйсан Хиршхорн: О, гэта будзе збіраецца вярнуцца ілжывым. 1090 00:52:56,380 --> 00:52:57,430 Але ёсць і іншая памылка. 1091 00:52:57,430 --> 00:52:58,930 Таму мы павінны паставіць наўзамен сапраўднага. 1092 00:52:58,930 --> 00:53:01,370 >> АЎДЫТОРЫЯ: Ці ёсць папярэдняя ранейшаму роўная нуль у верхняй частцы спісу? 1093 00:53:01,370 --> 00:53:03,645 >> Джэйсан Хиршхорн: Так папярэдняя яшчэ роўная нуль ў самым пачатку. 1094 00:53:03,645 --> 00:53:07,480 1095 00:53:07,480 --> 00:53:10,440 Так як мы можам пераадолець гэта? 1096 00:53:10,440 --> 00:53:10,950 Да? 1097 00:53:10,950 --> 00:53:15,280 >> Залы: Я думаю, што вы можаце зрабіць чэк да ў той час як цыкл, каб пераканацца, што гэта 1098 00:53:15,280 --> 00:53:16,610 пусты спіс. 1099 00:53:16,610 --> 00:53:17,000 >> Джэйсан Хиршхорн: ОК. 1100 00:53:17,000 --> 00:53:17,710 Так што давайце ісці сюды. 1101 00:53:17,710 --> 00:53:18,530 У чэк. 1102 00:53:18,530 --> 00:53:19,380 Калі - 1103 00:53:19,380 --> 00:53:20,770 >> АЎДЫТОРЫЯ: Дык што, калі кіраўнік роўная роўная нуля. 1104 00:53:20,770 --> 00:53:24,300 1105 00:53:24,300 --> 00:53:26,320 >> Джэйсан Хиршхорн: Калі галава роўная роўная нуль - 1106 00:53:26,320 --> 00:53:27,790 што нам скажа, калі гэта пусты спіс. 1107 00:53:27,790 --> 00:53:31,090 >> АЎДЫТОРЫЯ: І тады вы зрабіць кіраўнік роўна новая. 1108 00:53:31,090 --> 00:53:34,740 >> Джэйсан Хиршхорн: Кіраўнік роўная new_node? 1109 00:53:34,740 --> 00:53:35,730 А што яшчэ трэба зрабіць? 1110 00:53:35,730 --> 00:53:37,020 >> АЎДЫТОРЫЯ: А потым вы вернецеся праўда. 1111 00:53:37,020 --> 00:53:37,535 >> Джэйсан Хиршхорн: Не зусім. 1112 00:53:37,535 --> 00:53:38,785 Мы не хапае на адзін крок. 1113 00:53:38,785 --> 00:53:41,590 1114 00:53:41,590 --> 00:53:43,710 >> АЎДЫТОРЫЯ: new_node побач павінен паказваць на нуль. 1115 00:53:43,710 --> 00:53:44,570 >> Джэйсан Хиршхорн: Сапраўды, Олдэн. 1116 00:53:44,570 --> 00:53:46,600 І тады мы зможам вярнуцца дакладна. 1117 00:53:46,600 --> 00:53:47,560 ОК. 1118 00:53:47,560 --> 00:53:51,630 Але гэта ўсё яшчэ добрая ідэя, каб рабіць рэчы, ў канцы спісу, ці не так? 1119 00:53:51,630 --> 00:53:51,950 Добра. 1120 00:53:51,950 --> 00:53:54,450 Мы па-ранейшаму можа на самай справе атрымаць ў канцы спісу. 1121 00:53:54,450 --> 00:53:57,870 Так гэта код выдатна, калі мы на канец спісу і ёсць некаторыя 1122 00:53:57,870 --> 00:53:59,120 рэчы ў спісе? 1123 00:53:59,120 --> 00:54:01,830 1124 00:54:01,830 --> 00:54:02,040 Ці не так? 1125 00:54:02,040 --> 00:54:03,540 Таму што ў нас яшчэ ёсць ідэя Маркуса. 1126 00:54:03,540 --> 00:54:06,870 Мы маглі б выйсці з гэтага цыклу, таму што мы ў канцы спісу. 1127 00:54:06,870 --> 00:54:09,308 Так што мы па-ранейшаму хочам, каб гэты код тут? 1128 00:54:09,308 --> 00:54:10,520 >> АЎДЫТОРЫЯ: Так. 1129 00:54:10,520 --> 00:54:11,000 >> Джэйсан Хиршхорн: Так. 1130 00:54:11,000 --> 00:54:14,190 І тое, што нам трэба змяніць гэта? 1131 00:54:14,190 --> 00:54:15,440 Праўда. 1132 00:54:15,440 --> 00:54:19,580 1133 00:54:19,580 --> 00:54:21,640 Гэта гучыць добра усім да гэтага часу? 1134 00:54:21,640 --> 00:54:22,420 Хто-небудзь ёсць любая - 1135 00:54:22,420 --> 00:54:23,480 Аві, у вас ёсць, што дадаць? 1136 00:54:23,480 --> 00:54:23,920 >> АЎДЫТОРЫЯ: Не. 1137 00:54:23,920 --> 00:54:25,276 >> Джэйсан Хиршхорн: ОК. 1138 00:54:25,276 --> 00:54:27,010 Такім чынам, мы зрабілі некалькі змен. 1139 00:54:27,010 --> 00:54:29,540 Мы зрабілі гэтую праверку перш, чым мы займаўся пусты спіс. 1140 00:54:29,540 --> 00:54:31,790 Такім чынам, мы паклапаціліся аб пусты спіс. 1141 00:54:31,790 --> 00:54:35,500 І вось мы паклапаціліся аб ўстаўцы нешта ў канцы спісу. 1142 00:54:35,500 --> 00:54:38,930 Так што, падобна, як гэта ў той час як завесы ўзяцця сыход за рэчамі паміж імі, 1143 00:54:38,930 --> 00:54:41,920 дзесьці ў спісе, калі ёсць рэчы ў спісе. 1144 00:54:41,920 --> 00:54:42,280 >> ОК. 1145 00:54:42,280 --> 00:54:44,310 Давайце запусціць гэтую праграму яшчэ раз. 1146 00:54:44,310 --> 00:54:50,170 1147 00:54:50,170 --> 00:54:50,755 Ня паспяховым. 1148 00:54:50,755 --> 00:54:52,190 >> АЎДЫТОРЫЯ: Вы не зрабілі гэта. 1149 00:54:52,190 --> 00:54:53,940 >> Джэйсан Хиршхорн: О, Я не рабіў гэта. 1150 00:54:53,940 --> 00:54:56,250 Добры пытанне, Майкл. 1151 00:54:56,250 --> 00:54:57,500 Давайце дадамо марку звязаныя паміж сабой. 1152 00:54:57,500 --> 00:55:01,590 1153 00:55:01,590 --> 00:55:04,830 Лінія 87 ёсць памылка. 1154 00:55:04,830 --> 00:55:05,420 Лінія 87. 1155 00:55:05,420 --> 00:55:06,600 Олдэн, гэта была лінія вы мне далі. 1156 00:55:06,600 --> 00:55:08,962 Што не так? 1157 00:55:08,962 --> 00:55:10,710 >> АЎДЫТОРЫЯ: Яна павінна быць на нуль. 1158 00:55:10,710 --> 00:55:11,000 >> Джэйсан Хиршхорн: Выдатна. 1159 00:55:11,000 --> 00:55:11,630 Цалкам дакладна. 1160 00:55:11,630 --> 00:55:13,290 Ён павінен быць нулявым. 1161 00:55:13,290 --> 00:55:15,210 Давайце зробім зноў. 1162 00:55:15,210 --> 00:55:17,220 Кампіляцыя. 1163 00:55:17,220 --> 00:55:17,890 ОК. 1164 00:55:17,890 --> 00:55:19,400 Давайце ўставіць тры. 1165 00:55:19,400 --> 00:55:20,570 Устаўка была паспяховай. 1166 00:55:20,570 --> 00:55:21,660 Давайце раздрукаваць яго. 1167 00:55:21,660 --> 00:55:23,590 О, калі б мы маглі праверыць. 1168 00:55:23,590 --> 00:55:25,500 Але мы яшчэ не зрабілі раздрукаваць функцыю яшчэ. 1169 00:55:25,500 --> 00:55:27,840 Давайце ўвядзем нешта яшчэ. 1170 00:55:27,840 --> 00:55:29,090 Што мы павінны ўвесці? 1171 00:55:29,090 --> 00:55:31,120 1172 00:55:31,120 --> 00:55:31,940 >> АЎДЫТОРЫЯ: Сем. 1173 00:55:31,940 --> 00:55:33,340 >> Джэйсан Хиршхорн: Сем? 1174 00:55:33,340 --> 00:55:34,590 >> АЎДЫТОРЫЯ: Так. 1175 00:55:34,590 --> 00:55:38,680 1176 00:55:38,680 --> 00:55:39,780 >> Джэйсан Хиршхорн: У нас ёсць няспраўнасць сегм. 1177 00:55:39,780 --> 00:55:43,760 Такім чынам, мы атрымалі адзін, але мы дакладна не можа атрымаць два. 1178 00:55:43,760 --> 00:55:45,690 Гэта 05:07. 1179 00:55:45,690 --> 00:55:48,370 Такім чынам, мы маглі адладзіць гэты на працягу трох хвілін. 1180 00:55:48,370 --> 00:55:51,240 Але я збіраюся пакінуць нас тут і рухацца далей на хеши. 1181 00:55:51,240 --> 00:55:54,290 Але, зноў жа, адказы на гэты код Я буду адправіць яго да вас у няшмат. 1182 00:55:54,290 --> 00:55:55,440 Мы вельмі блізкія да яго. 1183 00:55:55,440 --> 00:55:58,300 Я настойліва рэкамендую вам, каб высветліць, што адбываецца тут і выправіць яе. 1184 00:55:58,300 --> 00:56:02,400 Так што я буду вам па электроннай пошце гэты код, як добра плюс рашэнне - 1185 00:56:02,400 --> 00:56:03,670 верагодна, рашэнне пазней. 1186 00:56:03,670 --> 00:56:05,110 Упершыню гэты код. 1187 00:56:05,110 --> 00:56:08,290 >> Іншая рэч, што я хачу зрабіць, перш чым мы аздабленне мы не вызвалілі нічога. 1188 00:56:08,290 --> 00:56:10,370 Так што я хачу паказаць вам, што Valgrind выглядае. 1189 00:56:10,370 --> 00:56:14,310 Калі мы запусцім мяжы Valgrind на нашай праграме,. / звязаныя паміж сабой. 1190 00:56:14,310 --> 00:56:22,540 Зноў жа, у адпаведнасці з гэтым слайдзе, мы павінен працаваць Valgrind з некаторым тыпам 1191 00:56:22,540 --> 00:56:26,410 варыянт, у дадзеным выпадку - Уцечка праверка = поўны. 1192 00:56:26,410 --> 00:56:27,660 Так давайце напішам Valgrind - Уцечка праверка = поўны. 1193 00:56:27,660 --> 00:56:31,910 1194 00:56:31,910 --> 00:56:35,080 Так што гэта будзе працаваць Valgrind на нашай праграме. 1195 00:56:35,080 --> 00:56:37,000 А цяпер праграма на самай справе працуе. 1196 00:56:37,000 --> 00:56:40,190 Так што мы збіраемся запусціць яго гэтак жа, як перш, пакласці нешта цалі 1197 00:56:40,190 --> 00:56:40,830 Я збіраюся паставіць у трох. 1198 00:56:40,830 --> 00:56:41,790 Гэта працуе. 1199 00:56:41,790 --> 00:56:43,202 Я не збіраюся, каб паспрабаваць пакласці ў чымсьці яшчэ, таму што мы збіраемся 1200 00:56:43,202 --> 00:56:44,710 атрымаць сегм ілжывым у гэтым выпадку. 1201 00:56:44,710 --> 00:56:46,700 Так што я проста хачу, каб кінуць паліць. 1202 00:56:46,700 --> 00:56:50,160 >> І цяпер вы бачыце тут ўцечкі і рэзюмэ куча. 1203 00:56:50,160 --> 00:56:52,310 Гэта добрыя рэчы, якія Вы хочаце, каб праверыць. 1204 00:56:52,310 --> 00:56:56,780 Такім чынам, рэзюмэ куча - гэта кажа, у выкарыстанні на выхадзе - восем байт у адным блоку. 1205 00:56:56,780 --> 00:56:58,370 Гэта адзін блок з'яўляецца вузел мы malloced. 1206 00:56:58,370 --> 00:57:02,230 Майкл, ты ўжо казаў вузел восем ўкусы, паколькі ён мае цэлае 1207 00:57:02,230 --> 00:57:02,680 і паказальнік. 1208 00:57:02,680 --> 00:57:04,550 Дык вось наш вузел. 1209 00:57:04,550 --> 00:57:08,170 А потым кажа, што мы выкарыстоўвалі Таноса сем разоў, і мы вызвалілі 1210 00:57:08,170 --> 00:57:08,940 нешта ў шэсць разоў. 1211 00:57:08,940 --> 00:57:13,680 Але мы ніколі не называецца свабодным, так што я не Ідэя, што гэта кажа. 1212 00:57:13,680 --> 00:57:18,490 >> Але досыць сказаць, што, калі ваш праграма запускаецца, Таноса ў цяперашні час называецца 1213 00:57:18,490 --> 00:57:20,330 ў некаторых іншых месцах, якія мы не трэба турбавацца. 1214 00:57:20,330 --> 00:57:22,460 Так Таноса, верагодна, называецца ў некаторых месцах. 1215 00:57:22,460 --> 00:57:24,480 Нам не трэба турбавацца, дзе. 1216 00:57:24,480 --> 00:57:26,240 Але гэта сапраўды нам. 1217 00:57:26,240 --> 00:57:27,380 Гэта першая лінія гэта мы. 1218 00:57:27,380 --> 00:57:28,320 Мы пакінулі гэты блок. 1219 00:57:28,320 --> 00:57:30,330 І вы бачыце, што тут у рэзюмэ уцечкі. 1220 00:57:30,330 --> 00:57:31,950 Тым не менш дабрацца - 1221 00:57:31,950 --> 00:57:32,930 восем байт у адным блоку. 1222 00:57:32,930 --> 00:57:34,100 Гэта азначае, што памяць - 1223 00:57:34,100 --> 00:57:35,730 мы пратачыліся, што памяць. 1224 00:57:35,730 --> 00:57:37,570 Вызначана страціў - 1225 00:57:37,570 --> 00:57:38,770 нешта губляецца назаўжды. 1226 00:57:38,770 --> 00:57:40,590 Як правіла, вы не будзеце бачу нічога там. 1227 00:57:40,590 --> 00:57:44,780 Тым не менш дабрацца, як правіла, дзе вы ўбачыце рэчы, дзе вы хочаце, 1228 00:57:44,780 --> 00:57:48,900 глядзець, каб убачыць, які код павінен Вы вызвалілі, але Вы забыліся вызваліць. 1229 00:57:48,900 --> 00:57:53,170 >> І потым, калі гэта было не так, калі б мы зрабілі бясплатны ўсё, 1230 00:57:53,170 --> 00:57:54,360 мы можам праверыць, што. 1231 00:57:54,360 --> 00:57:57,330 Давайце проста запусціць праграму не ставячы ні ў што. 1232 00:57:57,330 --> 00:57:59,800 Вы ўбачыце тут, у выкарыстанні на выхадзе - 1233 00:57:59,800 --> 00:58:01,310 нулявыя байты ў нулявых блокаў. 1234 00:58:01,310 --> 00:58:06,310 Гэта азначае, што мы нічога не засталося калі выйшаў гэтая праграма. 1235 00:58:06,310 --> 00:58:12,090 Так, перш чым ўключаць у pset6, запусціце Valgrind і пераканайцеся, што ў вас няма 1236 00:58:12,090 --> 00:58:15,310 прасочваецца любая памяць у вашай праграме. 1237 00:58:15,310 --> 00:58:17,910 Калі ў вас ёсць любыя пытанні з Valgrind, не саромейцеся звярнуцца. 1238 00:58:17,910 --> 00:58:18,700 Але гэта, як вы яго выкарыстоўваеце. 1239 00:58:18,700 --> 00:58:20,890 Вельмі проста - паглядзець, калі вы ёсць у выкарыстанні на выхадзе - 1240 00:58:20,890 --> 00:58:22,270 любыя байт любых блокаў. 1241 00:58:22,270 --> 00:58:27,890 1242 00:58:27,890 --> 00:58:29,580 >> Так мы працавалі над ўстаўкі вузла. 1243 00:58:29,580 --> 00:58:33,840 У мяне было два іншых функцый тут - раздрукаваць вузлоў і бясплатныя вузлы. 1244 00:58:33,840 --> 00:58:37,780 Зноў жа, гэтыя функцыі, якія будзе добра для вас на практыцы 1245 00:58:37,780 --> 00:58:40,990 таму што яны дапамогуць вам не толькі з гэтыя прыклады практыкаванняў, але і 1246 00:58:40,990 --> 00:58:42,180 па праблеме ўсталяваць. 1247 00:58:42,180 --> 00:58:44,230 Яны карту на даволі блізка да рэчаў вы збіраецеся трэба зрабіць у 1248 00:58:44,230 --> 00:58:45,010 Праблема ўсталяваць. 1249 00:58:45,010 --> 00:58:47,640 Але я хачу, каб пераканацца, мы кранём за ўсё. 1250 00:58:47,640 --> 00:58:50,400 І хэш-табліцы таксама маюць вырашальнае значэнне для што мы робім у раздзеле гэтай 1251 00:58:50,400 --> 00:58:51,980 тыдзень - альбо ў наборы праблемы. 1252 00:58:51,980 --> 00:58:55,200 >> Так што мы збіраемся скончыць падзел казаць пра хэш-табліцы. 1253 00:58:55,200 --> 00:58:58,140 Калі вы заўважыце, што я зрабіў трохі хэш-табліцы. 1254 00:58:58,140 --> 00:59:00,020 То бок, не тое, што мы гаворым о, аднак. 1255 00:59:00,020 --> 00:59:03,540 Мы кажам пра іншую тып хэш-табліцы. 1256 00:59:03,540 --> 00:59:07,300 І па сваёй сутнасці, хэш-табліцу не што іншае, 1257 00:59:07,300 --> 00:59:08,860 Масіў плюс хэш-функцыя. 1258 00:59:08,860 --> 00:59:11,150 Мы збіраемся казаць на трохі проста пераканайцеся, што ўсе разумеюць, што такое 1259 00:59:11,150 --> 00:59:12,110 хэш-функцыя ёсць. 1260 00:59:12,110 --> 00:59:15,420 І я кажу вам цяпер, што гэта не больш, чым двух рэчаў - 1261 00:59:15,420 --> 00:59:18,590 масіў і хэш-функцыя. 1262 00:59:18,590 --> 00:59:20,716 І вось крокі па які ў гэтым працуе. 1263 00:59:20,716 --> 00:59:31,560 1264 00:59:31,560 --> 00:59:32,810 >> Там у наш масіў. 1265 00:59:32,810 --> 00:59:38,460 1266 00:59:38,460 --> 00:59:39,460 Там наша функцыя. 1267 00:59:39,460 --> 00:59:43,180 У прыватнасці, хэш-функцыі павінны зрабіць некалькі рэчаў з гэтым. 1268 00:59:43,180 --> 00:59:45,040 Я збіраюся казаць канкрэтна аб гэтая праблема ўсталяваць. 1269 00:59:45,040 --> 00:59:46,450 Гэта, верагодна, будзе прыняць у радку. 1270 00:59:46,450 --> 00:59:50,570 1271 00:59:50,570 --> 00:59:51,770 І тое, што ён збіраецца вярнуцца? 1272 00:59:51,770 --> 00:59:52,640 Які тып дадзеных? 1273 00:59:52,640 --> 00:59:54,260 Олдэн? 1274 00:59:54,260 --> 00:59:55,760 Ваш хэш-функцыя вяртання? 1275 00:59:55,760 --> 00:59:58,760 Цэлае. 1276 00:59:58,760 --> 01:00:01,700 Так што гэта тое, што хэш Табліца складаецца з - 1277 01:00:01,700 --> 01:00:05,430 табліца ў выглядзе масіва і хэш-функцыя. 1278 01:00:05,430 --> 01:00:06,010 Як гэта працуе? 1279 01:00:06,010 --> 01:00:07,300 Ён працуе ў тры этапы. 1280 01:00:07,300 --> 01:00:08,740 Мы даем яму ключ. 1281 01:00:08,740 --> 01:00:11,470 У гэтым выпадку, мы дамо яму радок. 1282 01:00:11,470 --> 01:00:18,140 Мы называем хэш-функцыю на першым этапе на ключы, і мы атрымліваем значэнне. 1283 01:00:18,140 --> 01:00:20,310 >> У прыватнасці, мы будзем казаць мы атрымліваем цэлае. 1284 01:00:20,310 --> 01:00:25,630 Гэта цэлы лік, ёсць вельмі спецыфічная межы таго, што, што цэлае можа быць. 1285 01:00:25,630 --> 01:00:28,880 У гэтым прыкладзе, наш масіў мае памер тры. 1286 01:00:28,880 --> 01:00:32,330 Так што лічбы могуць, што цэлае быць. 1287 01:00:32,330 --> 01:00:35,970 Які дыяпазон дапушчальных значэнняў для што цэлае, які вяртаецца тып гэта 1288 01:00:35,970 --> 01:00:37,220 хэш-функцыя? 1289 01:00:37,220 --> 01:00:40,440 1290 01:00:40,440 --> 01:00:42,110 Нуль, адзін і два. 1291 01:00:42,110 --> 01:00:46,060 Справа ў хэш-функцыі з'яўляецца высветліць месца ў масіве 1292 01:00:46,060 --> 01:00:47,790 дзе наш ключ будзе. 1293 01:00:47,790 --> 01:00:51,290 Ёсць толькі тры магчымых месцы тут - 1294 01:00:51,290 --> 01:00:52,130 нуль, адзін ці два. 1295 01:00:52,130 --> 01:00:55,360 Так гэтая функцыя больш высокі даход нуль, адзін ці два. 1296 01:00:55,360 --> 01:00:58,740 Некаторыя дзейнічае Indice ў гэтым масіве. 1297 01:00:58,740 --> 01:01:02,770 >> А потым у залежнасці ад таго, дзе ён вяртае, Вы можаце ўбачыць там мноства адкрыты 1298 01:01:02,770 --> 01:01:03,730 дужкі значэнне. 1299 01:01:03,730 --> 01:01:05,800 Вось дзе мы размясцілі ключ. 1300 01:01:05,800 --> 01:01:11,280 Так мы кідаем у гарбузу, мы выходзім нуля. 1301 01:01:11,280 --> 01:01:15,540 У масіве кранштэйна 0, пакладзем гарбуз. 1302 01:01:15,540 --> 01:01:21,070 Які кідаецца ў котак, мы атрымліваем адну. 1303 01:01:21,070 --> 01:01:24,110 Ставім котку ў адным. 1304 01:01:24,110 --> 01:01:25,480 Ставім у павука. 1305 01:01:25,480 --> 01:01:26,710 Мы выходзім два. 1306 01:01:26,710 --> 01:01:30,200 Ставім павука на масіў кранштэйна два. 1307 01:01:30,200 --> 01:01:32,300 Гэта было б так добра, калі ён працаваў у гэтым родзе. 1308 01:01:32,300 --> 01:01:35,570 Але, на жаль, як мы ўбачым, гэта крыху больш складана. 1309 01:01:35,570 --> 01:01:37,570 >> Перш чым мы пяройдзем туды, на любыя пытанні пра гэта базавая 1310 01:01:37,570 --> 01:01:38,820 наладка хэш-табліцы? 1311 01:01:38,820 --> 01:01:49,050 1312 01:01:49,050 --> 01:01:51,940 Гэта выява дакладна тое, што мы звярнулі на дошцы. 1313 01:01:51,940 --> 01:01:55,420 Але так як мы звярнулі яго на дошцы, я я не збіраюся ісці ў яе далей. 1314 01:01:55,420 --> 01:02:00,430 Па сутнасці ключы, магія чорнай скрыні - ці ў дадзеным выпадку, чырок скрынка - з 1315 01:02:00,430 --> 01:02:02,410 хэш-функцыя змяшчае іх у вядра. 1316 01:02:02,410 --> 01:02:04,690 І ў гэтым прыкладзе мы ня паставіўшы імя. 1317 01:02:04,690 --> 01:02:07,880 Мы пакласці адпаведны тэлефон лічбу імя ў вядры. 1318 01:02:07,880 --> 01:02:10,430 Але вы маглі б вельмі добра проста паставіць імя ў вядры. 1319 01:02:10,430 --> 01:02:12,950 >> Гэта ўсяго толькі карціна таго, што мы звярнулі на дошцы. 1320 01:02:12,950 --> 01:02:14,460 У нас ёсць патэнцыйныя пасткі, аднак. 1321 01:02:14,460 --> 01:02:17,470 І ёсць два ў прыватнасці слізгае, што я хачу, каб перайсці. 1322 01:02:17,470 --> 01:02:20,230 Першы аб хэш-функцыя. 1323 01:02:20,230 --> 01:02:22,620 Таму я задаў пытанне, што робіць добрая хэш-функцыя? 1324 01:02:22,620 --> 01:02:24,220 Я даю два адказы. 1325 01:02:24,220 --> 01:02:26,630 Па-першае, гэта дэтэрмінавана. 1326 01:02:26,630 --> 01:02:29,660 У кантэксце хэш-функцый, што гэта значыць? 1327 01:02:29,660 --> 01:02:37,840 1328 01:02:37,840 --> 01:02:39,282 Да? 1329 01:02:39,282 --> 01:02:42,850 >> АЎДЫТОРЫЯ: Ён можа знайсці індэкс за пастаянны час? 1330 01:02:42,850 --> 01:02:43,810 >> Джэйсан Хиршхорн: Гэта не тое, што гэта значыць. 1331 01:02:43,810 --> 01:02:44,725 Але гэта добрае здагадку. 1332 01:02:44,725 --> 01:02:46,100 Хто-небудзь яшчэ ёсць здагадка да таго, што гэта азначае? 1333 01:02:46,100 --> 01:02:47,780 Гэта добрая хэш-функцыя дэтэрмінавана? 1334 01:02:47,780 --> 01:02:48,280 Эні? 1335 01:02:48,280 --> 01:02:51,680 >> АЎДЫТОРЫЯ: Гэта ключавы можна супаставіць толькі у адным месцы ў хэш-табліцы. 1336 01:02:51,680 --> 01:02:53,070 >> Джэйсан Хиршхорн: Гэта Цалкам дакладна. 1337 01:02:53,070 --> 01:02:57,430 Кожны раз, калі вы кладзе ў гарбузы, яна заўсёды вяртае нуль. 1338 01:02:57,430 --> 01:03:01,660 Калі вы пакладзеце ў гарбуз і вашай хэш Функцыя вяртае нуль, але мае 1339 01:03:01,660 --> 01:03:06,060 верагоднасць вяртання нешта яшчэ больш нуля - 1340 01:03:06,060 --> 01:03:09,280 таму магчыма, гэта можа вярнуць адно часам ці два іншых разы - 1341 01:03:09,280 --> 01:03:11,100 што гэта не вельмі добрая хэш-функцыя. 1342 01:03:11,100 --> 01:03:11,800 Вы цалкам маеце рацыю. 1343 01:03:11,800 --> 01:03:15,680 Ваш хэш-функцыя павінна вяртаць сапраўды такі ж цэлы лік, у дадзеным выпадку, для 1344 01:03:15,680 --> 01:03:17,780 сапраўды такі жа радком. 1345 01:03:17,780 --> 01:03:22,210 >> Можа быць, яна вяртае тую ж самую дакладную цэлае па той жа дакладнай радкі 1346 01:03:22,210 --> 01:03:24,430 незалежна ад капіталізацыі. 1347 01:03:24,430 --> 01:03:27,980 Але ў такім выпадку ён па-ранейшаму дэтэрмінаванай, так як некалькі рэчаў 1348 01:03:27,980 --> 01:03:29,350 адлюстроўваюцца на тое ж значэнне. 1349 01:03:29,350 --> 01:03:30,170 Гэта нармальна. 1350 01:03:30,170 --> 01:03:32,615 Пакуль ёсць толькі адзін выхад для дадзенага ўваходу. 1351 01:03:32,615 --> 01:03:35,630 1352 01:03:35,630 --> 01:03:36,350 >> ОК. 1353 01:03:36,350 --> 01:03:38,340 Другое, што тое, што гэта вяртае сапраўдныя паказчыкі. 1354 01:03:38,340 --> 01:03:40,220 Мы выхаваны, што раней. 1355 01:03:40,220 --> 01:03:41,860 Гэта хэш-функцыя - 1356 01:03:41,860 --> 01:03:43,710 аб хлопчык - 1357 01:03:43,710 --> 01:03:46,840 хэш-функцыя павінна вярнуцца дапушчальныя паказчыкі. 1358 01:03:46,840 --> 01:03:47,740 Так бы мовіць - 1359 01:03:47,740 --> 01:03:48,990 давайце вернемся да гэтага прыкладу. 1360 01:03:48,990 --> 01:03:52,580 1361 01:03:52,580 --> 01:03:57,540 Мой хэш-функцыя падлічвае літары ў слове. 1362 01:03:57,540 --> 01:03:58,380 Гэта хэш-функцыя. 1363 01:03:58,380 --> 01:03:59,740 І вяртае, што цэлы лік. 1364 01:03:59,740 --> 01:04:04,280 Так што, калі ў мяне ёсць слова А, гэта збіраецца вярнуцца адзін. 1365 01:04:04,280 --> 01:04:06,900 І гэта будзе паставіць прама тут. 1366 01:04:06,900 --> 01:04:09,430 Што рабіць, калі я стаўлю ў слове бітай? 1367 01:04:09,430 --> 01:04:11,310 Гэта збіраецца вярнуцца тры. 1368 01:04:11,310 --> 01:04:12,560 Дзе Лятучая мыш ісці? 1369 01:04:12,560 --> 01:04:18,730 1370 01:04:18,730 --> 01:04:19,750 >> Гэта не падыходзіць. 1371 01:04:19,750 --> 01:04:21,000 Але для гэтага трэба пайсці куды-небудзь. 1372 01:04:21,000 --> 01:04:23,340 Гэта мой хэш-табліцы ў рэшце рэшт, і усё павінна пайсці куды-небудзь. 1373 01:04:23,340 --> 01:04:24,590 Дык дзе павінны Лятучая мыш ісці? 1374 01:04:24,590 --> 01:04:28,020 1375 01:04:28,020 --> 01:04:28,710 Любыя думкі? 1376 01:04:28,710 --> 01:04:29,450 Угадваем? 1377 01:04:29,450 --> 01:04:30,280 Добрыя здагадкі? 1378 01:04:30,280 --> 01:04:31,220 >> АЎДЫТОРЫЯ: Нуль. 1379 01:04:31,220 --> 01:04:32,120 >> Джэйсан Хиршхорн: Чаму нуля? 1380 01:04:32,120 --> 01:04:35,990 >> АЎДЫТОРЫЯ: Таму што тры модулю тры роўная нулю? 1381 01:04:35,990 --> 01:04:38,620 >> Джэйсан Хиршхорн: Тры модулю тры роўная нуля. 1382 01:04:38,620 --> 01:04:40,810 Гэта вялікая здагадка, і гэта правільна. 1383 01:04:40,810 --> 01:04:43,870 Такім чынам, у гэтым выпадку ён павінен верагодна, пайсці на нулі. 1384 01:04:43,870 --> 01:04:51,080 Так што добры спосаб гарантаваць, што гэты хэш Функцыя вяртае толькі дапушчальныя паказчыкі ў 1385 01:04:51,080 --> 01:04:54,580 да модулю яго памераў табліцы. 1386 01:04:54,580 --> 01:04:57,360 Калі вы па модулю Што б гэта ні прыбытку за кошт тры, вы заўсёды збіраецеся атрымаць 1387 01:04:57,360 --> 01:05:00,930 нешта сярэдняе паміж нуль, адзін і два. 1388 01:05:00,930 --> 01:05:05,160 І калі гэта заўсёды вяртае сем, і вы заўсёды модулю на тры, вы 1389 01:05:05,160 --> 01:05:06,030 заўсёды збіраецеся атрымаць тое ж самае. 1390 01:05:06,030 --> 01:05:09,270 >> Так што гэта яшчэ дэтэрмінаваных калі вы па модулю. 1391 01:05:09,270 --> 01:05:11,420 Але, што будзе гарантаваць, што вам ніколі не атрымаць што-то - 1392 01:05:11,420 --> 01:05:12,940 інвалід прамысловасці. 1393 01:05:12,940 --> 01:05:16,840 Як правіла, што па модулю павінна адбыцца ўнутры хэш-функцыі. 1394 01:05:16,840 --> 01:05:18,240 Так што вам не трэба турбавацца пра гэта. 1395 01:05:18,240 --> 01:05:20,555 Вы проста можаце гарантаваць, што гэта правільны Indice. 1396 01:05:20,555 --> 01:05:23,700 1397 01:05:23,700 --> 01:05:26,700 Ёсць пытанні па гэтым патэнцыйная пастка? 1398 01:05:26,700 --> 01:05:36,590 1399 01:05:36,590 --> 01:05:39,060 >> ОК. 1400 01:05:39,060 --> 01:05:40,290 І там мы ідзем. 1401 01:05:40,290 --> 01:05:42,890 Наступная патэнцыйная пастка, і гэта вялікі. 1402 01:05:42,890 --> 01:05:46,880 Што рабіць, калі дзве клавішы карту ў той жа значэнне? 1403 01:05:46,880 --> 01:05:49,350 Такім чынам, ёсць два спосабу справіцца з гэтым. 1404 01:05:49,350 --> 01:05:53,140 1405 01:05:53,140 --> 01:05:56,020 Першы называецца лінейным зандзіравання, які я 1406 01:05:56,020 --> 01:05:57,300 не збіраюся перайсці на. 1407 01:05:57,300 --> 01:06:01,120 Але вы павінны быць знаёмыя з тым, як што працуе, а што гэта такое. 1408 01:06:01,120 --> 01:06:05,610 >> Другі я збіраюся перайсці на таму што гэта той, які многія 1409 01:06:05,610 --> 01:06:08,290 людзі, верагодна, у канчатковым выніку вырашыць, выкарыстоўваць у сваёй праблеме набору. 1410 01:06:08,290 --> 01:06:09,820 Вядома, вы не павінны. 1411 01:06:09,820 --> 01:06:15,280 Але для мноства праблем, многіх людзей як правіла, выбіраюць для стварэння хэш-табліцу 1412 01:06:15,280 --> 01:06:17,950 з паасобнага звязвання рэалізацыі іх слоўнік. 1413 01:06:17,950 --> 01:06:21,390 Так што мы збіраемся перайсці на тое, што гэта азначае, стварыць хэш-табліцу з 1414 01:06:21,390 --> 01:06:23,890 асобны ланцужкі. 1415 01:06:23,890 --> 01:06:26,260 >> Так што я паклаў у гарбуз. 1416 01:06:26,260 --> 01:06:29,560 Гэта вяртае нуль. 1417 01:06:29,560 --> 01:06:31,410 І я паклаў гарбуз тут. 1418 01:06:31,410 --> 01:06:35,880 1419 01:06:35,880 --> 01:06:37,930 Тады я паклаў у - 1420 01:06:37,930 --> 01:06:39,922 што яшчэ адзін Дзень усіх Святых-тэматычны рэч? 1421 01:06:39,922 --> 01:06:42,200 >> АЎДЫТОРЫЯ: Цукеркі. 1422 01:06:42,200 --> 01:06:42,770 >> Джэйсан Хиршхорн: Цукеркі! 1423 01:06:42,770 --> 01:06:43,910 Гэта выдатнае. 1424 01:06:43,910 --> 01:06:47,760 Я паклаў у цукеркі, і цукеркі таксама дае мне нуля. 1425 01:06:47,760 --> 01:06:49,350 Што мне рабіць? 1426 01:06:49,350 --> 01:06:51,940 Ёсць ідэі? 1427 01:06:51,940 --> 01:06:53,940 Таму што ўсё, што вы, здаецца, ведаю што асобныя ланцужкі з'яўляецца. 1428 01:06:53,940 --> 01:06:55,190 Так любыя ідэі, што рабіць? 1429 01:06:55,190 --> 01:06:58,170 1430 01:06:58,170 --> 01:06:59,110 Так. 1431 01:06:59,110 --> 01:07:03,810 >> АЎДЫТОРЫЯ: Увод радок на самай справе ў хэш-табліцы. 1432 01:07:03,810 --> 01:07:08,910 >> Джэйсан Хиршхорн: Такім чынам, мы збіраемся прыцягнуць добрую ідэю тут. 1433 01:07:08,910 --> 01:07:09,340 ОК. 1434 01:07:09,340 --> 01:07:12,290 >> АЎДЫТОРЫЯ: Ёсць хэш-табліцы [Неразборліва] 1435 01:07:12,290 --> 01:07:16,640 паказальнік, які паказвае на пачатак спісу. 1436 01:07:16,640 --> 01:07:20,930 А затым гарбуз быць першае значэнне у гэтым звязаным спісе і цукеркі быць 1437 01:07:20,930 --> 01:07:22,800 другое значэнне ў гэтай звязанага спісу. 1438 01:07:22,800 --> 01:07:23,420 >> Джэйсан Хиршхорн: ОК. 1439 01:07:23,420 --> 01:07:24,670 Маркус, які быў выдатным. 1440 01:07:24,670 --> 01:07:26,160 Я збіраюся разбурыць гэта. 1441 01:07:26,160 --> 01:07:28,890 Маркус кажу, не перазапісаць гарбуз. 1442 01:07:28,890 --> 01:07:30,660 Гэта было б дрэнна. 1443 01:07:30,660 --> 01:07:33,640 Не стаўце цукеркі дзесьці ў іншым месцы. 1444 01:07:33,640 --> 01:07:35,390 Мы збіраемся паставіць іх абодвух на нулі. 1445 01:07:35,390 --> 01:07:37,770 Але мы збіраемся мець справу з пакласці іх у нулі 1446 01:07:37,770 --> 01:07:39,395 стварэнне спісу на нулі. 1447 01:07:39,395 --> 01:07:42,430 І мы збіраемся стварыць спіс усё, што адлюстроўваецца на нуль. 1448 01:07:42,430 --> 01:07:47,960 І лепшы спосаб мы навучыліся ствараць спіс, які можа павялічвацца і памяншацца 1449 01:07:47,960 --> 01:07:49,840 дынамічна не знаходзіцца ў межах іншы масіў. 1450 01:07:49,840 --> 01:07:51,510 Так не мнагамерны масіў. 1451 01:07:51,510 --> 01:07:54,080 Але проста стварыць звязаны спіс. 1452 01:07:54,080 --> 01:07:55,330 >> Так што ён прапанаваў - 1453 01:07:55,330 --> 01:07:57,950 1454 01:07:57,950 --> 01:07:59,200 Я збіраюся атрымання новай - 1455 01:07:59,200 --> 01:08:15,380 1456 01:08:15,380 --> 01:08:19,689 гэта стварыць масіў з паказальнікамі, масіў паказальнікаў. 1457 01:08:19,689 --> 01:08:20,580 ОК. 1458 01:08:20,580 --> 01:08:24,180 Любая ідэя або намёк, што тып гэтага паказальнікаў павінна быць? 1459 01:08:24,180 --> 01:08:26,290 Маркус? 1460 01:08:26,290 --> 01:08:27,250 >> АЎДЫТОРЫЯ: Паказальнікі на - 1461 01:08:27,250 --> 01:08:28,609 >> Джэйсан Хиршхорн: Таму што вам сказаў звязаны спіс, а значыць - 1462 01:08:28,609 --> 01:08:29,520 >> АЎДЫТОРЫЯ: Node паказальнікі? 1463 01:08:29,520 --> 01:08:30,670 >> Джэйсан Хиршхорн: Node паказальнікі. 1464 01:08:30,670 --> 01:08:32,830 Калі рэчы ў наш звязаны Спіс вузлы, то яны 1465 01:08:32,830 --> 01:08:34,370 павінны быць паказальнікі вузлоў. 1466 01:08:34,370 --> 01:08:35,939 І што ж яны роўныя першапачаткова? 1467 01:08:35,939 --> 01:08:36,990 >> АЎДЫТОРЫЯ: Null. 1468 01:08:36,990 --> 01:08:38,240 >> Джэйсан Хиршхорн: Null. 1469 01:08:38,240 --> 01:08:44,540 1470 01:08:44,540 --> 01:08:46,080 Так што наш пусты рэччу. 1471 01:08:46,080 --> 01:08:47,170 Гарбузовыя вяртае нуль. 1472 01:08:47,170 --> 01:08:48,569 Што нам рабіць? 1473 01:08:48,569 --> 01:08:49,609 Прагулка мяне праз яго? 1474 01:08:49,609 --> 01:08:50,810 На самай справе, Маркус ўжо даў мне. 1475 01:08:50,810 --> 01:08:52,439 Хто-то яшчэ пагуляць я праз яго. 1476 01:08:52,439 --> 01:08:54,760 Што мы робім, калі мы - 1477 01:08:54,760 --> 01:08:56,609 гэта выглядае вельмі падобна на тое, што мы проста рабілі. 1478 01:08:56,609 --> 01:08:57,396 Аві. 1479 01:08:57,396 --> 01:08:59,090 >> АЎДЫТОРЫЯ: Я збіраюся зрабіць здагадку. 1480 01:08:59,090 --> 01:09:01,250 Таму, калі вы атрымліваеце цукеркі. 1481 01:09:01,250 --> 01:09:01,640 >> Джэйсан Хиршхорн: Так. 1482 01:09:01,640 --> 01:09:03,120 Ну, мы атрымалі гарбуз. 1483 01:09:03,120 --> 01:09:03,870 Давайце наш першы. 1484 01:09:03,870 --> 01:09:04,324 Мы атрымалі гарбуз. 1485 01:09:04,324 --> 01:09:04,779 >> АЎДЫТОРЫЯ: ОК. 1486 01:09:04,779 --> 01:09:05,880 Гарбузовыя вяртае нуль. 1487 01:09:05,880 --> 01:09:08,770 Такім чынам, вы пакладзеце яго ў тым, што. 1488 01:09:08,770 --> 01:09:10,810 Ці на самай справе, вы паклалі яго ў звязаным спісе. 1489 01:09:10,810 --> 01:09:13,550 >> Джэйсан Хиршхорн: Як мы пакласці яго ў звязаным спісе? 1490 01:09:13,550 --> 01:09:15,479 >> АЎДЫТОРЫЯ: О, фактычны сінтаксіс? 1491 01:09:15,479 --> 01:09:16,240 >> Джэйсан Хиршхорн: Проста хадзіць - 1492 01:09:16,240 --> 01:09:16,740 сказаць больш. 1493 01:09:16,740 --> 01:09:19,310 Што нам рабіць? 1494 01:09:19,310 --> 01:09:22,100 >> АЎДЫТОРЫЯ: Вы проста ўставіць гэта як першы вузел. 1495 01:09:22,100 --> 01:09:22,675 >> Джэйсан Хиршхорн: ОК. 1496 01:09:22,675 --> 01:09:29,069 Такім чынам, мы маем нашу вузла, гарбуз. 1497 01:09:29,069 --> 01:09:31,560 А цяпер, як я ўводжу яго? 1498 01:09:31,560 --> 01:09:34,590 1499 01:09:34,590 --> 01:09:37,090 >> АЎДЫТОРЫЯ: Вы прызначаеце гэта да паказальніка. 1500 01:09:37,090 --> 01:09:37,970 >> Джэйсан Хиршхорн: Якія паказальнік? 1501 01:09:37,970 --> 01:09:39,620 >> АЎДЫТОРЫЯ: Паказальнік на нулі. 1502 01:09:39,620 --> 01:09:41,420 >> Джэйсан Хиршхорн: Дык дзе робіць гэта сэнс? 1503 01:09:41,420 --> 01:09:42,810 >> АЎДЫТОРЫЯ: Каб абнуліць прама цяпер. 1504 01:09:42,810 --> 01:09:43,529 >> Джэйсан Хиршхорн: Ну, гэта паказвае на нуль. 1505 01:09:43,529 --> 01:09:44,499 Але я стаўлю ў гарбуз. 1506 01:09:44,499 --> 01:09:46,053 Дык дзе ён павінен паказваць? 1507 01:09:46,053 --> 01:09:46,880 >> АЎДЫТОРЫЯ: Каб гарбуз. 1508 01:09:46,880 --> 01:09:47,399 >> Джэйсан Хиршхорн: Для гарбузы. 1509 01:09:47,399 --> 01:09:48,760 Менавіта так. 1510 01:09:48,760 --> 01:09:50,010 Так што гэта паказвае на гарбуз. 1511 01:09:50,010 --> 01:09:52,500 1512 01:09:52,500 --> 01:09:54,250 А прычым тут гэты паказальнік ў гарбузы кропкі? 1513 01:09:54,250 --> 01:09:57,986 1514 01:09:57,986 --> 01:09:58,340 Да 1515 01:09:58,340 --> 01:09:58,590 >> АЎДЫТОРЫЯ: Null. 1516 01:09:58,590 --> 01:09:59,210 >> Джэйсан Хиршхорн: Каб абнуліць. 1517 01:09:59,210 --> 01:10:00,460 Менавіта так. 1518 01:10:00,460 --> 01:10:03,570 1519 01:10:03,570 --> 01:10:05,140 Так што мы проста ўстаўляецца нешта ў звязаным спісе. 1520 01:10:05,140 --> 01:10:07,210 Мы толькі што напісаў гэты код, каб зрабіць гэта. 1521 01:10:07,210 --> 01:10:09,520 Амаль мы амаль атрымалася цалкам расколіны. 1522 01:10:09,520 --> 01:10:10,790 Цяпер мы ўстаўляем цукеркі. 1523 01:10:10,790 --> 01:10:13,480 Наша цукеркі таксама імкнецца да нуля. 1524 01:10:13,480 --> 01:10:16,100 Дык што ж нам рабіць з цукеркамі? 1525 01:10:16,100 --> 01:10:18,790 >> АЎДЫТОРЫЯ: Гэта залежыць ад таго, ня мы спрабуем ўладзіць яго. 1526 01:10:18,790 --> 01:10:19,640 >> Джэйсан Хиршхорн: Гэта Цалкам дакладна. 1527 01:10:19,640 --> 01:10:21,070 Гэта залежыць ад наяўнасці або адсутнасці мы спрабуем ўладзіць яго. 1528 01:10:21,070 --> 01:10:22,660 Давайце выкажам здагадку, што мы не збіраецца ўладзіць яго. 1529 01:10:22,660 --> 01:10:24,880 >> АЎДЫТОРЫЯ: Ну што ж, як мы абмяркоўвалі раней, то прасцей проста паставіць яго 1530 01:10:24,880 --> 01:10:28,590 у самым пачатку так паказальнік ад нуля паказвае на цукеркі. 1531 01:10:28,590 --> 01:10:29,020 >> Джэйсан Хиршхорн: ОК. 1532 01:10:29,020 --> 01:10:29,380 Трымайся. 1533 01:10:29,380 --> 01:10:30,630 Дазвольце мне стварыць цукеркі прама тут. 1534 01:10:30,630 --> 01:10:34,030 1535 01:10:34,030 --> 01:10:35,150 Так гэты паказальнік - 1536 01:10:35,150 --> 01:10:37,590 >> АЎДЫТОРЫЯ: Так, трэба зараз быць паказваючы на ​​цукеркі. 1537 01:10:37,590 --> 01:10:40,580 Тады ёсць паказальнік ад цукеркі паказваюць на гарбуз. 1538 01:10:40,580 --> 01:10:43,140 1539 01:10:43,140 --> 01:10:44,560 >> Джэйсан Хиршхорн: Як што? 1540 01:10:44,560 --> 01:10:47,380 І сказаць, што мы атрымалі яшчэ адзін што трэба супаставіць з нуля? 1541 01:10:47,380 --> 01:10:48,660 >> АЎДЫТОРЫЯ: Ну, вы проста зрабіць тое ж самае? 1542 01:10:48,660 --> 01:10:50,290 >> Джэйсан Хиршхорн: Зрабіце тое ж самае. 1543 01:10:50,290 --> 01:10:53,700 Такім чынам, у гэтым выпадку, калі мы не будзем хочаце захаваць гэта ўладзіў яго 1544 01:10:53,700 --> 01:10:55,270 Гучыць даволі проста. 1545 01:10:55,270 --> 01:10:59,920 Возьмем паказальнік ў Indice даецца нашай хэш-функцыі. 1546 01:10:59,920 --> 01:11:03,830 У нас ёсць, што кропка ў наш новы вузел. 1547 01:11:03,830 --> 01:11:07,830 І тады ўсё, што было паказваючы раней - 1548 01:11:07,830 --> 01:11:10,620 у гэтым выпадку нуль, у Другі выпадак гарбузы - 1549 01:11:10,620 --> 01:11:15,310 што, як там яно паказваючы на раней, мы дадаем у бліжэйшых 1550 01:11:15,310 --> 01:11:17,810 наш новы вузел. 1551 01:11:17,810 --> 01:11:19,650 Мы ўстаўкі нешта у самым пачатку. 1552 01:11:19,650 --> 01:11:22,900 На самай справе гэта нашмат прасцей, чым спрабуючы захаваць спіс, адсартаваны. 1553 01:11:22,900 --> 01:11:25,340 Але, зноў жа, пошук будзе Чым складаней тут. 1554 01:11:25,340 --> 01:11:28,300 Мы заўсёды прыйдзецца ісці да канца. 1555 01:11:28,300 --> 01:11:29,650 >> ОК. 1556 01:11:29,650 --> 01:11:32,750 Любыя пытанні аб паасобнага звязвання? 1557 01:11:32,750 --> 01:11:34,690 Як гэта працуе? 1558 01:11:34,690 --> 01:11:35,820 Калі ласка, папытаеце іх цяпер. 1559 01:11:35,820 --> 01:11:39,260 Я вельмі хачу, каб пераканацца, што вы ўсё зразумець гэта раней, чым мы качан. 1560 01:11:39,260 --> 01:11:48,410 1561 01:11:48,410 --> 01:11:52,060 >> Зала: А чаму вы паставіць гарбуз і цукеркі ў тое ж самае 1562 01:11:52,060 --> 01:11:54,108 частка хэш-табліцы? 1563 01:11:54,108 --> 01:11:55,860 >> Джэйсан Хиршхорн: Добры пытанне. 1564 01:11:55,860 --> 01:11:59,140 Чаму мы ставім іх у тое ж самае частка хэш-табліцы? 1565 01:11:59,140 --> 01:12:03,200 Ну, у гэтым выпадку наша хэш-функцыя вяртае нуль для іх абодвух. 1566 01:12:03,200 --> 01:12:05,310 Такім чынам, яны павінны пайсці на нулі Indice таму што там мы збіраемся 1567 01:12:05,310 --> 01:12:07,420 глядзець на іх, калі мы калі-небудзь хачу паглядзець іх. 1568 01:12:07,420 --> 01:12:11,750 Зноў жа, з лінейнай зандзіравання падыход мы б не пакласці іх абодвух у нулі. 1569 01:12:11,750 --> 01:12:13,900 Але ў асобным падыходзе ланцуга, мы збіраемся паставіць іх абодвух у нулі 1570 01:12:13,900 --> 01:12:16,620 а затым стварыць спіс з нуля. 1571 01:12:16,620 --> 01:12:20,140 >> І мы не хочам, каб перазапісаць гарбуз проста для гэтага, таму што тады мы будзем 1572 01:12:20,140 --> 01:12:21,860 Выкажам здагадку, што гарбуз была ніколі не ўстаўляецца. 1573 01:12:21,860 --> 01:12:25,230 Калі мы проста трымаць адну рэч у месца, якое было б дрэнна. 1574 01:12:25,230 --> 01:12:28,590 Тады не было б шанец з нас калі-небудзь - 1575 01:12:28,590 --> 01:12:31,660 калі мы калі-небудзь мелі дублікат, то мы проста сцерці нашу пачатковае значэнне. 1576 01:12:31,660 --> 01:12:34,090 Дык вось чаму мы робім гэты падыход. 1577 01:12:34,090 --> 01:12:36,580 Або вось чаму мы выбралі - але зноў жа, мы абраў асобны падыход ланцужных, 1578 01:12:36,580 --> 01:12:39,670 якіх ёсць шмат іншых падыходаў можна было выбраць. 1579 01:12:39,670 --> 01:12:41,185 Я адказаў на ваша пытанне? 1580 01:12:41,185 --> 01:12:41,660 >> ОК. 1581 01:12:41,660 --> 01:12:42,910 Карлас. 1582 01:12:42,910 --> 01:12:46,130 1583 01:12:46,130 --> 01:12:47,720 Лінейны зандзіравання будзе ўключаць - 1584 01:12:47,720 --> 01:12:51,913 калі мы знайшлі сутыкнення ў нулі, будзе выглядаць у наступным месцы, каб убачыць, калі 1585 01:12:51,913 --> 01:12:54,310 яна была адкрыта і паклаў яго там. 1586 01:12:54,310 --> 01:12:57,320 А потым мы паглядзім у наступным спорту і паглядзець, калі гэта было адкрыта, і паклаў яго туды. 1587 01:12:57,320 --> 01:12:59,780 Такім чынам, мы знаходзім наступны даступны адкрытае месца і паклаў яго там. 1588 01:12:59,780 --> 01:13:02,580 1589 01:13:02,580 --> 01:13:03,890 Любыя іншыя пытанні? 1590 01:13:03,890 --> 01:13:05,370 Так, Аві. 1591 01:13:05,370 --> 01:13:07,490 >> АЎДЫТОРЫЯ: У працяг да гэтага, што вы маеце на ўвазе наступнае месца? 1592 01:13:07,490 --> 01:13:10,250 У хэш-табліцы або ў звязаным спісе. 1593 01:13:10,250 --> 01:13:12,100 >> Джэйсан Хиршхорн: Для лінейных праграмаванне, не звязаныя спісы. 1594 01:13:12,100 --> 01:13:13,400 На наступны пляма на хэш-табліцы. 1595 01:13:13,400 --> 01:13:13,820 >> АЎДЫТОРЫЯ: ОК. 1596 01:13:13,820 --> 01:13:17,570 Такім чынам, хэш-табліца будзе ініцыялізаваны памерам - 1597 01:13:17,570 --> 01:13:19,560 як лік радкоў што вы былі ўстаўкі? 1598 01:13:19,560 --> 01:13:22,170 >> Джэйсан Хиршхорн: Вы б хачу, каб гэта сапраўды вялікі. 1599 01:13:22,170 --> 01:13:23,910 Так. 1600 01:13:23,910 --> 01:13:27,900 Вось карціна таго, што мы проста звярнуў на дошцы. 1601 01:13:27,900 --> 01:13:29,470 Зноў жа, у нас ёсць сутыкнення прама тут. 1602 01:13:29,470 --> 01:13:30,710 на 152. 1603 01:13:30,710 --> 01:13:33,570 І вы ўбачыце, мы стварылі звязаны спіс з яго. 1604 01:13:33,570 --> 01:13:38,200 1605 01:13:38,200 --> 01:13:41,850 Зноў жа, хэш-табліцы асобны ланцужкі падыход не той, які вы 1606 01:13:41,850 --> 01:13:45,590 павінны прыняць для праблемы ўсталюеце шэсць, але гэта той, які шмат 1607 01:13:45,590 --> 01:13:47,100 студэнты, як правіла, каб узяць. 1608 01:13:47,100 --> 01:13:51,140 Так на гэтай ноце, давайце коратка пагаворым перш, чым мы качан аб праблеме шэсць, 1609 01:13:51,140 --> 01:13:52,160 а затым я падзялюся з вамі гісторыяй. 1610 01:13:52,160 --> 01:13:55,120 У нас ёсць тры хвіліны. 1611 01:13:55,120 --> 01:13:55,750 >> Архіў задач шэсць. 1612 01:13:55,750 --> 01:13:57,790 У вас ёсць чатыры функцыі - 1613 01:13:57,790 --> 01:14:02,430 нагрузка, праверце, памер і выгрузкі. 1614 01:14:02,430 --> 01:14:03,380 Нагрузка - 1615 01:14:03,380 --> 01:14:07,120 добра, мы ішлі над нагрузкай толькі цяпер. 1616 01:14:07,120 --> 01:14:09,330 Мы звярнулі нагрузку на дошцы. 1617 01:14:09,330 --> 01:14:13,230 І мы нават пачалі кадавання шмат ўстаўкі ў звязаным спісе. 1618 01:14:13,230 --> 01:14:18,020 Так нагрузка не нашмат больш, чым што мы толькі што рабілі. 1619 01:14:18,020 --> 01:14:21,070 >> Праверыць гэта, як толькі вы нешта загружаны. 1620 01:14:21,070 --> 01:14:22,580 Гэта той жа самы працэс, як гэты. 1621 01:14:22,580 --> 01:14:26,845 Тыя ж першыя дзве часткі, дзе вы кідаеце нешта ў хэш-функцыі 1622 01:14:26,845 --> 01:14:29,190 і атрымаць яго значэнне. 1623 01:14:29,190 --> 01:14:30,700 Але зараз мы не ўстаўляючы яго. 1624 01:14:30,700 --> 01:14:33,350 Зараз мы шукаем для яго. 1625 01:14:33,350 --> 01:14:37,130 Я ўзор кода, напісанага для знаходжання нешта ў звязаным спісе. 1626 01:14:37,130 --> 01:14:38,250 Я заклікаю вас, каб практыкаваць гэта. 1627 01:14:38,250 --> 01:14:43,000 Але інтуітыўна знайсці нешта будзе даволі падобна на ўстаўку нешта. 1628 01:14:43,000 --> 01:14:46,540 На самай справе, мы намалявалі карціну знаходжання нешта ў звязаным спісе, рухаючыся 1629 01:14:46,540 --> 01:14:48,910 праз, пакуль не дабраліся да канца. 1630 01:14:48,910 --> 01:14:52,430 І калі вы дабраліся да канца так і не змаглі знайсці яго, то гэта не ёсць. 1631 01:14:52,430 --> 01:14:55,400 Дык вось праверка, па сутнасці. 1632 01:14:55,400 --> 01:14:57,030 >> Далей ідзе памер. 1633 01:14:57,030 --> 01:14:57,910 Давай прапусцім памер. 1634 01:14:57,910 --> 01:15:00,040 Нарэшце вы выгрузіць. 1635 01:15:00,040 --> 01:15:02,890 Разгрузка з'яўляецца адным мы не цягне на дошцы або закадаваныя яшчэ. 1636 01:15:02,890 --> 01:15:05,990 Але я заклікаю вас, каб паспрабаваць яго кадавання у нашым прыкладзе, звязанага, напрыклад спісу. 1637 01:15:05,990 --> 01:15:11,440 Але выгрузіць інтуітыўна падобны на бясплатна - 1638 01:15:11,440 --> 01:15:14,010 ці я маю на ўвазе падобны на праверыць. 1639 01:15:14,010 --> 01:15:17,350 Для цяпер кожны раз, калі вы збіраецеся выключэннем праз, вы не проста правяраць, 1640 01:15:17,350 --> 01:15:19,090 ўбачыць, калі ў вас ёсць свой значэнне там. 1641 01:15:19,090 --> 01:15:22,490 Але вы прымаеце гэты вузел і вызваляючы яго, па сутнасці. 1642 01:15:22,490 --> 01:15:23,610 Гэта тое, што выгрузка просіць вас зрабіць. 1643 01:15:23,610 --> 01:15:24,670 Бясплатны ўсё, што вы malloced. 1644 01:15:24,670 --> 01:15:27,480 Так што вы збіраецеся праз увесь спіс зноў, праходзячы праз увесь хэш 1645 01:15:27,480 --> 01:15:27,760 Табліца зноў. 1646 01:15:27,760 --> 01:15:29,240 На гэты раз не правяраць каб паглядзець, што там. 1647 01:15:29,240 --> 01:15:31,080 Проста спампаваць, што там. 1648 01:15:31,080 --> 01:15:33,260 >> І, нарэшце памер. 1649 01:15:33,260 --> 01:15:34,350 Памер павінен быць рэалізаваны. 1650 01:15:34,350 --> 01:15:35,590 Калі вы не рэалізуеце памер - 1651 01:15:35,590 --> 01:15:36,250 Я скажу гэта, як гэта. 1652 01:15:36,250 --> 01:15:39,740 Калі вы не рэалізуеце памер у дакладнасці аднаго радка кода ў тым ліку 1653 01:15:39,740 --> 01:15:43,760 вярнуцца заяву, вы робіць памер няправільна. 1654 01:15:43,760 --> 01:15:47,170 Таму пераканайцеся памер, для поўнага дызайну кропкі, вы робіце гэта ў дакладнасці адзін 1655 01:15:47,170 --> 01:15:49,970 радок кода, у тым ліку аператар вяртання. 1656 01:15:49,970 --> 01:15:52,450 >> І не сабрацца яшчэ, Akchar. 1657 01:15:52,450 --> 01:15:53,700 Імкнучыся бабра. 1658 01:15:53,700 --> 01:15:55,820 1659 01:15:55,820 --> 01:16:01,300 Я хацеў сказаць дзякуй вам, хлопцы за тое, каб раздзеле. 1660 01:16:01,300 --> 01:16:02,550 Майце Happy Halloween. 1661 01:16:02,550 --> 01:16:05,300 1662 01:16:05,300 --> 01:16:05,960 Гэта мой касцюм. 1663 01:16:05,960 --> 01:16:08,850 Я буду насіць гэта ў чацвер калі я бачу вас у працоўны час. 1664 01:16:08,850 --> 01:16:14,640 І калі вам цікава, пра некаторых больш фон, каб гэтага касцюма, адчуваю 1665 01:16:14,640 --> 01:16:19,135 можаце праверыць 2011 раздзел для гісторыі пра тое, чаму я 1666 01:16:19,135 --> 01:16:20,900 насіць гарбузы гарнітур. 1667 01:16:20,900 --> 01:16:23,680 І гэта сумная гісторыя. 1668 01:16:23,680 --> 01:16:27,050 Таму пераканайцеся, што ў вас ёсць некаторыя тканіны паблізу. 1669 01:16:27,050 --> 01:16:28,680 Але на гэтым, калі ў вас ёсць якія-небудзь пытанні, я буду прытрымлівацца вакол 1670 01:16:28,680 --> 01:16:29,960 звонку пасля падзелу. 1671 01:16:29,960 --> 01:16:31,510 Ўдачы на ​​праблемы ўсталяваць шэсць. 1672 01:16:31,510 --> 01:16:33,540 І як заўсёды, калі ў вас ёсць якія-небудзь пытанні, дайце мне ведаць. 1673 01:16:33,540 --> 01:16:35,584