1 00:00:00,000 --> 00:00:08,250 2 00:00:08,250 --> 00:00:12,680 >> Jason HIRSCHHORN: Maligayang pagdating sa lahat ng tao sa Seksyon Pitong. 3 00:00:12,680 --> 00:00:15,040 Kami ay nasa linggo pitong mga kurso. 4 00:00:15,040 --> 00:00:18,440 At ito paparating na Huwebes ay Halloween kaya ako 5 00:00:18,440 --> 00:00:21,420 bihis tulad ng isang kalabasa. 6 00:00:21,420 --> 00:00:23,460 Hindi ko yumuko sa at ilagay sa ang aking sapatos, kaya na ang dahilan kung bakit ako 7 00:00:23,460 --> 00:00:25,660 suot lamang medyas. 8 00:00:25,660 --> 00:00:29,220 Hindi rin ako ang may suot ng anumang bagay sa ilalim ito, kaya hindi ko maaaring dalhin ito off kung ito ay 9 00:00:29,220 --> 00:00:29,950 distracting sa iyo. 10 00:00:29,950 --> 00:00:31,860 Humihingi ako ng paumanhin nang maaga para doon. 11 00:00:31,860 --> 00:00:33,170 Hindi mo kailangang isipin ano ang nangyayari sa. 12 00:00:33,170 --> 00:00:34,240 Ako ay may suot boxers. 13 00:00:34,240 --> 00:00:36,170 Kaya lahat ng ito ay mabuti. 14 00:00:36,170 --> 00:00:41,120 >> Mayroon akong na kuwento tungkol sa kung bakit ako ay bihis bilang isang kalabasa, ngunit pupuntahan ko 15 00:00:41,120 --> 00:00:45,110 i-save na para sa ibang pagkakataon sa seksyon na ito dahil ko nais upang makapagsimula. 16 00:00:45,110 --> 00:00:47,720 Mayroon kaming maraming mga kapana-panabik na bagay upang pumunta sa paglipas ng linggong ito. 17 00:00:47,720 --> 00:00:51,810 Karamihan sa kanila direktang umuugnay sa ito hanay problema linggong, mga maling spelling. 18 00:00:51,810 --> 00:00:54,680 Kami ay pagpunta sa ay pagpunta sa paglipas ng naka-link na mga listahan at hash talahanayan 19 00:00:54,680 --> 00:00:57,160 para sa buong seksyon. 20 00:00:57,160 --> 00:01:02,490 Naglagay ako listahang ito up bawat linggo, isang listahan ng mga mga mapagkukunan para sa iyo na tulungan ka sa 21 00:01:02,490 --> 00:01:04,120 ang materyal sa kursong ito. 22 00:01:04,120 --> 00:01:07,600 Kung nalilito o kung naghahanap para sa ilang mga sa higit pang impormasyon, tingnan ang isa sa mga 23 00:01:07,600 --> 00:01:09,930 mga mapagkukunang ito. 24 00:01:09,930 --> 00:01:14,530 >> Muli, pset6 ay maling pagbabaybay, pset ito linggong ito. 25 00:01:14,530 --> 00:01:17,690 At ito ay naghihikayat din sa iyo, at ako Hinihikayat ka, upang gamitin ang ilang mga iba pang 26 00:01:17,690 --> 00:01:20,320 mga mapagkukunan para mismo sa mga ito pset. 27 00:01:20,320 --> 00:01:23,390 Sa partikular, ang tatlong na hindi ko na nakalista up sa screen - 28 00:01:23,390 --> 00:01:27,160 gdb, na kung saan kami nakapunta pamilyar sa at ginagamit para sa isang habang ngayon, ay 29 00:01:27,160 --> 00:01:29,270 pagpunta sa maging kapaki-pakinabang sa linggong ito. 30 00:01:29,270 --> 00:01:30,190 Kaya ilagay ko na dito. 31 00:01:30,190 --> 00:01:32,910 Ngunit sa tuwing nakikipagtulungan ka sa C, lagi ka dapat na gamit gdb upang 32 00:01:32,910 --> 00:01:34,430 i-debug ang iyong mga program. 33 00:01:34,430 --> 00:01:36,660 Sa linggong ito valgrind din. 34 00:01:36,660 --> 00:01:38,535 Alam ba ng sinuman kung ano ang ginagawa valgrind? 35 00:01:38,535 --> 00:01:42,184 36 00:01:42,184 --> 00:01:43,890 >> Madla: nagsusuri Ito para sa memory paglabas? 37 00:01:43,890 --> 00:01:45,950 >> Jason HIRSCHHORN: Valgrind mga tseke para sa memory paglabas. 38 00:01:45,950 --> 00:01:49,970 Kaya't kung ikaw malloc isang bagay sa iyong programa, ikaw ay humihingi ng memorya. 39 00:01:49,970 --> 00:01:52,920 Sa dulo ng iyong programa, mayroon kang magsulat ng libreng on lahat ng bagay na iyong 40 00:01:52,920 --> 00:01:54,800 malloced upang bigyan ang memory pabalik. 41 00:01:54,800 --> 00:01:58,420 Kung hindi mo isulat libre sa dulo at iyong programa pagdating sa isang konklusyon, 42 00:01:58,420 --> 00:02:00,000 Awtomatikong lahat habilin ay napalaya. 43 00:02:00,000 --> 00:02:02,340 At para sa maliit na mga programa, ito ay hindi na malaki isang deal. 44 00:02:02,340 --> 00:02:05,250 Ngunit kung ikaw ay sumusulat ng mas mahabang tumakbo programa na hindi tumigil, 45 00:02:05,250 --> 00:02:09,180 kinakailangang, sa loob ng ilang minuto o sa isang ilang segundo, pagkatapos ay i-memorya paglabas 46 00:02:09,180 --> 00:02:10,710 ay maaaring maging isang malaking pakikitungo. 47 00:02:10,710 --> 00:02:14,940 >> Kaya para sa pset6, ang pag-asa ay na magkakaroon ka ng zero memory paglabas sa 48 00:02:14,940 --> 00:02:15,910 iyong programa. 49 00:02:15,910 --> 00:02:18,690 Upang suriin para sa memory paglabas, patakbuhin valgrind at makikita ito magbibigay sa iyo ng ilang mga maganda 50 00:02:18,690 --> 00:02:21,190 output pagpapaalam sa iyo kung ang o hindi ang lahat ng bagay ay libre. 51 00:02:21,190 --> 00:02:23,940 Susubukan naming pagsasanay sa ito mamaya ngayon, sana. 52 00:02:23,940 --> 00:02:25,790 >> Sa wakas, ang command diff. 53 00:02:25,790 --> 00:02:28,900 Ginamit mo ang isang bagay na katulad nito sa pset5 sa pagsilip tool. 54 00:02:28,900 --> 00:02:30,780 Pinayagan ka upang tumingin sa loob. 55 00:02:30,780 --> 00:02:33,400 Ginamit mo din diff, masyadong, per itakda ang spec ang problema. 56 00:02:33,400 --> 00:02:35,950 Ngunit pinapayagan ka sa upang paghambingin ang dalawang mga file. 57 00:02:35,950 --> 00:02:39,180 Maaari mong ihambing ang bitmap file at mga header ng info ng isang kawani at solusyon 58 00:02:39,180 --> 00:02:42,200 ang iyong mga solusyon sa pset5 kung pinili mong gamitin ito. 59 00:02:42,200 --> 00:02:44,030 Diff ay magbibigay-daan sa iyo upang gawin iyon, pati na rin. 60 00:02:44,030 --> 00:02:48,620 Maaari mong ihambing ang tamang sagot para sa ang problemang ito linggong nakatakda sa iyong sagot 61 00:02:48,620 --> 00:02:52,210 at makita kung ito linya up o makita kung saan ang mga error ay. 62 00:02:52,210 --> 00:02:55,870 >> Kaya mga tatlong mahusay na tool na dapat mong gamitin para sa linggong ito, at 63 00:02:55,870 --> 00:02:58,130 Talagang suriin ang iyong mga programa may mga tatlong mga tool 64 00:02:58,130 --> 00:03:00,520 bago i ito in 65 00:03:00,520 --> 00:03:04,650 Muli, bilang ko na nabanggit sa bawat linggo, kung mayroon kang anumang feedback para sa akin - kapwa 66 00:03:04,650 --> 00:03:06,470 positibo at nakabubuti - 67 00:03:06,470 --> 00:03:09,930 huwag mag-atubiling magtungo sa website sa ibaba ng slide na ito 68 00:03:09,930 --> 00:03:11,270 at input ito doon. 69 00:03:11,270 --> 00:03:13,440 Talaga Pinapahalagahan ko ang anumang at ang lahat ng feedback. 70 00:03:13,440 --> 00:03:17,360 At kung bibigyan ninyo sa akin ang mga tukoy na bagay na Ang maaari kong gawin upang mapabuti o na ako 71 00:03:17,360 --> 00:03:21,350 mahusay na gumagana na nais mong sa akin na magpatuloy, magtagal ko na sa puso at 72 00:03:21,350 --> 00:03:24,040 talagang magsumikap upang makinig sa iyong feedback. 73 00:03:24,040 --> 00:03:27,720 Hindi ko ma-nangangako ako pagpunta sa gawin ang lahat ng bagay, bagaman, tulad ng suot ng isang 74 00:03:27,720 --> 00:03:30,700 kalabasa costume bawat linggo. 75 00:03:30,700 --> 00:03:34,020 >> Kaya pupunta kami sa gastusin sa karamihan ng seksyon, bilang ko nabanggit, pakikipag-usap tungkol sa 76 00:03:34,020 --> 00:03:37,240 naka-link na mga listahan at mga talahanayan ng hash, na Magiging direkta naaangkop sa 77 00:03:37,240 --> 00:03:38,780 itakda ang problemang ito linggo. 78 00:03:38,780 --> 00:03:42,580 Mga listahan ng Linked ipagpapatuloy namin sa paglipas ng relatibong mabilis dahil ginugol namin ang isang makatarungang bit 79 00:03:42,580 --> 00:03:44,930 ng oras ng pagpunta sa paglipas ng ito sa seksyon. 80 00:03:44,930 --> 00:03:48,680 At kaya susuriin namin diretso sa coding ng mga problema para sa naka-link na mga listahan. 81 00:03:48,680 --> 00:03:52,740 At pagkatapos ay sa dulo namin makipag-usap tungkol sa hash table at kung paano ilapat ang mga ito sa ito 82 00:03:52,740 --> 00:03:55,280 itakda problema linggong ito. 83 00:03:55,280 --> 00:03:57,560 >> Nakita mo na ang code na ito bago. 84 00:03:57,560 --> 00:04:02,730 Ito ay isang struct, at ito ay pagtukoy ng isang bagong bagay na tinatawag na node. 85 00:04:02,730 --> 00:04:10,660 At sa loob ng isang node doon ay isang integer dito mismo at doon ay isang pointer sa 86 00:04:10,660 --> 00:04:11,830 isa pang node. 87 00:04:11,830 --> 00:04:12,790 Nakita namin ang bago. 88 00:04:12,790 --> 00:04:14,830 Ito ay darating up para sa ng ilang linggo ngayon. 89 00:04:14,830 --> 00:04:18,680 Pinagsasama nito ang mga payo, na kami nakapunta nagtatrabaho sa, at structs, na nagbibigay-daan 90 00:04:18,680 --> 00:04:22,079 amin upang pagsamahin ang dalawang magkaibang bagay sa isang uri ng data. 91 00:04:22,079 --> 00:04:24,830 92 00:04:24,830 --> 00:04:26,490 >> Mayroong maraming nagaganap sa screen. 93 00:04:26,490 --> 00:04:30,220 Ngunit dapat ay relatibong lahat ng ito pamilyar sa iyo. 94 00:04:30,220 --> 00:04:33,810 Sa unang linya, namin magpahayag ng isang bagong node. 95 00:04:33,810 --> 00:04:41,650 At pagkatapos ay sa loob na ang mga bagong node, ako magse-set ang integer sa na node sa isa. 96 00:04:41,650 --> 00:04:44,950 Nakakakita kami sa susunod na linya ako paggawa ng printf utos, ngunit nagbigay kulay-abo ko 97 00:04:44,950 --> 00:04:48,080 ang command printf dahil ang talagang mahalagang bahagi ay ang linyang ito dito - 98 00:04:48,080 --> 00:04:50,020 new_node.n. 99 00:04:50,020 --> 00:04:51,270 Ano ang ibig sabihin ng tuldok? 100 00:04:51,270 --> 00:04:53,810 101 00:04:53,810 --> 00:04:57,240 >> Madla: Pumunta sa node at tasahin ang n halaga para dito. 102 00:04:57,240 --> 00:04:58,370 >> Jason HIRSCHHORN: Iyon akmang-akma. 103 00:04:58,370 --> 00:05:03,300 Dot ay nangangahulugan na ma-access ang n bahagi ng ang bagong node. 104 00:05:03,300 --> 00:05:05,690 Ang susunod na linya ang ginagawa kung ano? 105 00:05:05,690 --> 00:05:16,140 106 00:05:16,140 --> 00:05:17,050 Michael. 107 00:05:17,050 --> 00:05:21,910 >> Madla: Ito ay lumilikha ng isa pang node na magtuturo sa bagong node. 108 00:05:21,910 --> 00:05:24,870 >> Jason HIRSCHHORN: Kaya hindi lumikha ng isang bagong node. 109 00:05:24,870 --> 00:05:26,120 Ito ay lumilikha ng isang ano? 110 00:05:26,120 --> 00:05:28,300 111 00:05:28,300 --> 00:05:29,300 >> Madla: Ang isang pointer. 112 00:05:29,300 --> 00:05:33,460 >> Jason HIRSCHHORN: Ang isang pointer sa isang node, bilang ipinapahiwatig ng mga ito na node * dito. 113 00:05:33,460 --> 00:05:34,800 Kaya ito ay lumilikha ng isang pointer sa isang node. 114 00:05:34,800 --> 00:05:37,490 At kung aling mga node ay ito na tumuturo sa, Michael? 115 00:05:37,490 --> 00:05:38,440 >> Madla: Bagong node? 116 00:05:38,440 --> 00:05:39,240 >> Jason HIRSCHHORN: Bagong node. 117 00:05:39,240 --> 00:05:43,020 At ito ay tumuturo doon dahil hindi namin naibigay na ito sa address ng bagong node. 118 00:05:43,020 --> 00:05:45,820 At ngayon sa linyang ito na nakikita namin dalawang magkaibang mga paraan ng 119 00:05:45,820 --> 00:05:46,910 pagpapahayag ng ang parehong bagay. 120 00:05:46,910 --> 00:05:49,650 At Nais kong ituro kung paano ang mga dalawang bagay ay pareho. 121 00:05:49,650 --> 00:05:54,740 Sa unang linya, dereference namin ang pointer. 122 00:05:54,740 --> 00:05:55,830 Kaya pumunta kami sa node. 123 00:05:55,830 --> 00:05:56,830 Iyan ay ano ang ibig sabihin ng bituin na ito. 124 00:05:56,830 --> 00:05:57,930 Nakita namin na ang bago sa mga payo. 125 00:05:57,930 --> 00:05:59,280 Pumunta sa na node. 126 00:05:59,280 --> 00:06:00,370 Iyon ay naka-panaklong. 127 00:06:00,370 --> 00:06:04,610 At pagkatapos ma-access sa pamamagitan ng tuldok operator ang n elemento ng na node. 128 00:06:04,610 --> 00:06:08,430 >> Kaya na paglalaan ay ang syntax Nakita namin dito mismo at ngayon 129 00:06:08,430 --> 00:06:09,670 gamitin ito sa isang pointer. 130 00:06:09,670 --> 00:06:13,730 Siyempre, nakakakuha ito uri ng abala kung sumusulat ka sa mga panaklong - 131 00:06:13,730 --> 00:06:14,940 na bituin at na tuldok. 132 00:06:14,940 --> 00:06:16,220 Ito ay makakakuha ng isang maliit na abala. 133 00:06:16,220 --> 00:06:18,500 Kaya mayroon kaming ilang mga sintaktik asukal. 134 00:06:18,500 --> 00:06:19,920 At ang linyang ito dito mismo - 135 00:06:19,920 --> 00:06:21,170 ptr_node-> n. 136 00:06:21,170 --> 00:06:25,400 137 00:06:25,400 --> 00:06:28,000 Iyan ang ginagawa ng parehong eksaktong bagay. 138 00:06:28,000 --> 00:06:30,840 Kaya ang dalawang linya ng code ay katumbas at ang gagawin 139 00:06:30,840 --> 00:06:31,650 ang eksaktong parehong bagay. 140 00:06:31,650 --> 00:06:34,210 >> Subalit Nais kong ituro ang mga sumali bago pumunta kami ng anumang karagdagang gayon maunawaan mo 141 00:06:34,210 --> 00:06:39,000 na talaga ito bagay dito mismo ay lamang sintaktik asukal para dereferencing 142 00:06:39,000 --> 00:06:44,200 ang pointer at pagkatapos ng pagpunta sa ang n bahagi ng na struct. 143 00:06:44,200 --> 00:06:45,525 Ang anumang mga katanungan tungkol sa slide na ito? 144 00:06:45,525 --> 00:06:53,020 145 00:06:53,020 --> 00:06:54,390 OK. 146 00:06:54,390 --> 00:06:58,510 >> Kaya kami ay pagpunta sa pumunta sa pamamagitan ng ilang ng mga operasyon na maaari mong gawin sa 147 00:06:58,510 --> 00:06:59,730 naka-link na mga listahan. 148 00:06:59,730 --> 00:07:05,770 Ang isang naka-link na listahan, pagpapabalik, ay isang serye ng node na nagtuturo sa isa't isa. 149 00:07:05,770 --> 00:07:12,470 At namin magsimula sa isang pointer sa pangkalahatan tinatawag ulo, sa pangkalahatan, na tumuturo sa 150 00:07:12,470 --> 00:07:14,040 ang unang bagay na sa listahan. 151 00:07:14,040 --> 00:07:18,900 Kaya sa unang linya dito, namin mayroon muna ang aming orihinal na L. 152 00:07:18,900 --> 00:07:21,370 Kaya bagay na maaari mong isipin - na ito text dito mismo maaari mong isipin bilang 153 00:07:21,370 --> 00:07:23,560 lamang ang pointer sa iyong itinago namin sa isang lugar na puntos 154 00:07:23,560 --> 00:07:24,670 sa unang elemento. 155 00:07:24,670 --> 00:07:27,500 At sa naka-link na listahan mayroon kaming apat na node. 156 00:07:27,500 --> 00:07:29,530 Ang bawat node ay isang malaking box. 157 00:07:29,530 --> 00:07:33,430 Ang mas malaking box sa loob ng malaki kahon ang integer bahagi. 158 00:07:33,430 --> 00:07:37,400 At pagkatapos ay mayroon kaming isang pointer bahagi. 159 00:07:37,400 --> 00:07:39,630 >> Ang mga box ay hindi iguguhit sa scale dahil sa kung paano malaki ay 160 00:07:39,630 --> 00:07:42,320 isang integer sa bytes? 161 00:07:42,320 --> 00:07:43,290 Gaano kalaki ngayon? 162 00:07:43,290 --> 00:07:43,710 Four. 163 00:07:43,710 --> 00:07:45,470 At kung gaano kalaki ang isang pointer? 164 00:07:45,470 --> 00:07:45,940 Four. 165 00:07:45,940 --> 00:07:48,180 Kaya talaga, kung kami ay upang gumuhit ito upang masukat ang parehong mga kahon 166 00:07:48,180 --> 00:07:49,690 ay magiging ang parehong laki. 167 00:07:49,690 --> 00:07:52,870 Sa kasong ito, nais naming isingit isang bagay papunta sa naka-link na listahan. 168 00:07:52,870 --> 00:07:57,190 Kaya maaari mong makita down na dito kami ng pagpasok limang pagtawid namin sa pamamagitan ng 169 00:07:57,190 --> 00:08:01,310 naka-link na listahan, hanapin kung saan limang mangyaring hindi, at pagkatapos ay ipasok ito. 170 00:08:01,310 --> 00:08:03,560 >> Masira na down at pumunta Hayaan mas mabagal nang kaunti. 171 00:08:03,560 --> 00:08:05,510 Pupunta ako upang tumuro sa board. 172 00:08:05,510 --> 00:08:09,930 Kaya mayroon kaming ang aming node limang na na nilikha namin sa mallocs. 173 00:08:09,930 --> 00:08:11,190 Bakit tumatawa ay lahat ng tao? 174 00:08:11,190 --> 00:08:12,130 Kidding lang. 175 00:08:12,130 --> 00:08:13,310 OK. 176 00:08:13,310 --> 00:08:14,820 Kaya nagbigay malloced namin lima. 177 00:08:14,820 --> 00:08:16,310 Lumikha kami ito node sa isang lugar pang tao. 178 00:08:16,310 --> 00:08:17,740 Mayroon kaming ito handa na upang patakbuhin. 179 00:08:17,740 --> 00:08:20,130 Simulan namin sa harap ng ang aming listahan na may dalawang. 180 00:08:20,130 --> 00:08:22,380 At gusto naming isingit sa isang pinagsunod-sunod sa fashion. 181 00:08:22,380 --> 00:08:27,550 >> Kaya kung makita natin ang dalawa at gusto naming ilagay sa limang, ano ang gagawin namin kapag nakita namin 182 00:08:27,550 --> 00:08:28,800 isang bagay na mas mababa sa amin? 183 00:08:28,800 --> 00:08:31,850 184 00:08:31,850 --> 00:08:33,520 Ano? 185 00:08:33,520 --> 00:08:36,750 Gusto naming magpasok ng limang sa ito naka-link na listahan, pagpapanatiling ito pinagsunod-sunod. 186 00:08:36,750 --> 00:08:37,520 Nakakakita kami ng numero ng dalawang. 187 00:08:37,520 --> 00:08:38,769 Kaya kung ano ang gagawin namin? 188 00:08:38,769 --> 00:08:39,179 Marcus? 189 00:08:39,179 --> 00:08:40,679 >> Madla: Tawagan ang pointer sa susunod na node. 190 00:08:40,679 --> 00:08:42,530 >> Jason HIRSCHHORN: At bakit gawin pumunta kami sa susunod na isa? 191 00:08:42,530 --> 00:08:45,970 >> Madla: Dahil ito ang susunod na node sa listahan. 192 00:08:45,970 --> 00:08:48,310 At nalalaman natin lamang na ang ibang lokasyon. 193 00:08:48,310 --> 00:08:50,410 >> Jason HIRSCHHORN: At limang ay mas malaki sa dalawang, sa partikular. 194 00:08:50,410 --> 00:08:51,600 Dahil gusto naming panatilihin ito pinagsunod-sunod. 195 00:08:51,600 --> 00:08:52,730 Kaya lima ay mas malaki sa dalawa. 196 00:08:52,730 --> 00:08:54,460 Kaya lumipat kami sa susunod na isa. 197 00:08:54,460 --> 00:08:55,240 At ngayon, maabot namin apat. 198 00:08:55,240 --> 00:08:56,490 At kung ano ang mangyayari kapag naabot namin apat? 199 00:08:56,490 --> 00:08:58,920 200 00:08:58,920 --> 00:09:00,310 >> Limang ay mas malaki kaysa sa apat. 201 00:09:00,310 --> 00:09:01,460 Kaya panatilihin namin ang pagpunta. 202 00:09:01,460 --> 00:09:03,110 At ngayon kami sa anim. 203 00:09:03,110 --> 00:09:04,360 At kung ano ang nakikita namin sa anim? 204 00:09:04,360 --> 00:09:08,672 205 00:09:08,672 --> 00:09:09,608 Oo, Carlos? 206 00:09:09,608 --> 00:09:10,544 >> Madla: Six ay mas malaki sa limang. 207 00:09:10,544 --> 00:09:11,480 >> Jason HIRSCHHORN: Six ay mas higit sa limang. 208 00:09:11,480 --> 00:09:13,660 Kaya na kung saan namin gusto sa magpasok ng limang. 209 00:09:13,660 --> 00:09:17,320 Gayunpaman, tandaan na kung kami lamang magkaroon ng isang pointer dito - 210 00:09:17,320 --> 00:09:19,840 ito ay ang aming mga extrang pointer na traversing sa listahan. 211 00:09:19,840 --> 00:09:21,860 At kami ay tumuturo sa anim. 212 00:09:21,860 --> 00:09:25,010 Nawala namin ang subaybayan kung ano ang nauuna bago anim. 213 00:09:25,010 --> 00:09:29,130 Kaya kung nais namin upang ipasok ang isang bagay sa listahang ito pagpapanatiling ito pinagsunod-sunod, namin 214 00:09:29,130 --> 00:09:31,630 marahil kailangan kung gaano karaming mga payo? 215 00:09:31,630 --> 00:09:32,280 >> Madla: Dalawang. 216 00:09:32,280 --> 00:09:32,920 >> Jason HIRSCHORN: Dalawang. 217 00:09:32,920 --> 00:09:35,720 Ang isa upang masubaybayan ang kasalukuyang isa at isa upang masubaybayan ang 218 00:09:35,720 --> 00:09:37,050 ang isang nakaraan. 219 00:09:37,050 --> 00:09:38,450 Ito ay lamang ng isang isa-isa naka-link na listahan. 220 00:09:38,450 --> 00:09:39,670 Napupunta lamang ito sa isa direksyon. 221 00:09:39,670 --> 00:09:43,220 Kung nagkaroon kami ng doble naka-link na listahan, kung saan ang lahat ng bagay ay tumuturo sa mga bagay 222 00:09:43,220 --> 00:09:46,240 matapos na ito at ang mga bagay na bago ito, pagkatapos ay hindi namin kailangan upang gawin iyon. 223 00:09:46,240 --> 00:09:49,350 Ngunit sa kasong ito hindi namin nais na mawala subaybayan kung ano ang dumating bago sa amin sa kasong 224 00:09:49,350 --> 00:09:53,350 kailangan namin upang magpasok ng limang sa isang lugar sa gitna. 225 00:09:53,350 --> 00:09:55,610 Sabihing namin ang pagpasok ng siyam. 226 00:09:55,610 --> 00:09:57,260 Ano ang mangyayari kapag Nakakuha kami sa walong? 227 00:09:57,260 --> 00:10:01,860 228 00:10:01,860 --> 00:10:04,880 >> Madla: gusto mong mag kumuha na null point. 229 00:10:04,880 --> 00:10:07,820 Sa halip ng pagkakaroon null point ang kailangan mong upang magdagdag ng isang sangkap at pagkatapos ay mayroon 230 00:10:07,820 --> 00:10:09,216 ito ay tumuturo sa siyam. 231 00:10:09,216 --> 00:10:09,700 >> Jason HIRSCHORN: Mismong. 232 00:10:09,700 --> 00:10:10,600 Kaya makuha namin ang alas-otso. 233 00:10:10,600 --> 00:10:13,140 Maabot namin ang dulo ng listahan dahil ito ay tumuturo sa null. 234 00:10:13,140 --> 00:10:16,330 At ngayon, sa halip ng pagkakaroon ng ituro ito sa null mayroon kaming ito ay tumuturo sa aming bagong node. 235 00:10:16,330 --> 00:10:19,870 At itinakda namin ang pointer sa ang aming bagong node sa null. 236 00:10:19,870 --> 00:10:21,445 Kahit sinong mayroon ba kayong mga katanungan tungkol sa pagpasok? 237 00:10:21,445 --> 00:10:25,620 238 00:10:25,620 --> 00:10:28,100 Paano kung Wala akong pakialam tungkol sa pinapanatili ang listahan pinagsunod-sunod? 239 00:10:28,100 --> 00:10:31,701 240 00:10:31,701 --> 00:10:34,350 >> Madla: stick ito sa simula o dulo. 241 00:10:34,350 --> 00:10:35,510 >> Jason HIRSCHORN: stick ito sa sa simula o dulo. 242 00:10:35,510 --> 00:10:37,276 Aling isa dapat naming gawin? 243 00:10:37,276 --> 00:10:38,770 Bobby? 244 00:10:38,770 --> 00:10:41,020 Bakit dulo? 245 00:10:41,020 --> 00:10:43,250 >> Madla: Dahil ang simula ay napunan. 246 00:10:43,250 --> 00:10:43,575 >> Jason HIRSCHORN: OK. 247 00:10:43,575 --> 00:10:44,360 Simula ay nai-puno. 248 00:10:44,360 --> 00:10:46,090 Sino ang nais ni na magtaltalan laban sa Bobby. 249 00:10:46,090 --> 00:10:47,290 Marcus. 250 00:10:47,290 --> 00:10:48,910 >> Madla: Well mo marahil nais na ilagay ito sa simula dahil 251 00:10:48,910 --> 00:10:50,140 kung hindi man kung inilagay mo ito sa ang katapusan kailangan mong i- 252 00:10:50,140 --> 00:10:51,835 bagtasin ang buong listahan. 253 00:10:51,835 --> 00:10:52,990 >> Jason HIRSCHORN: Mismong. 254 00:10:52,990 --> 00:10:57,970 Kaya kung pinag-iisipan namin ang tungkol sa runtime, ang runtime ng pagpasok sa dulo 255 00:10:57,970 --> 00:11:00,110 magiging n, ang laki ng mga ito. 256 00:11:00,110 --> 00:11:03,080 Ano ang malaking O runtime ng pagpasok sa simula? 257 00:11:03,080 --> 00:11:04,170 Ang patuloy na oras. 258 00:11:04,170 --> 00:11:07,075 Kaya kung hindi mo pakialam tungkol sa pagpapanatiling isang bagay na pinagsunod-sunod, magkano ang mas mahusay sa makatarungan 259 00:11:07,075 --> 00:11:08,420 isingit sa simula ng listahang ito. 260 00:11:08,420 --> 00:11:10,320 At na Pwedeng gawin sa pare-pareho ang panahon. 261 00:11:10,320 --> 00:11:13,900 262 00:11:13,900 --> 00:11:14,690 >> OK. 263 00:11:14,690 --> 00:11:18,870 Susunod na operasyon ay mahanap, na iba pang mga - phrased na namin ang bilang ng paghahanap. 264 00:11:18,870 --> 00:11:22,470 Ngunit kami ay pagpunta sa tumingin sa pamamagitan ng naka-link na listahan para sa ilang mga bagay. 265 00:11:22,470 --> 00:11:26,000 Ikaw guys nakakita code para sa maghanap bago sa panayam. 266 00:11:26,000 --> 00:11:29,490 Ngunit kami uri ng lamang ginawa ito sa isingit, o hindi bababa sa pagpasok 267 00:11:29,490 --> 00:11:30,580 isang bagay na pinagsunod-sunod. 268 00:11:30,580 --> 00:11:36,350 Tumingin ka sa pamamagitan, ng pagpunta sa pamamagitan ng node node, hanggang sa mahanap mo ang numero na ikaw ay 269 00:11:36,350 --> 00:11:37,780 hinahanap. 270 00:11:37,780 --> 00:11:39,670 Ano ang mangyayari kung naabot mo sa dulo ng listahan? 271 00:11:39,670 --> 00:11:43,020 Sabihing Naghahanap ako ng siyam at ako maabot sa dulo ng listahan. 272 00:11:43,020 --> 00:11:44,270 Ano ang gagawin namin? 273 00:11:44,270 --> 00:11:47,147 274 00:11:47,147 --> 00:11:48,110 >> Madla: Bumalik huwad? 275 00:11:48,110 --> 00:11:48,690 >> Jason HIRSCHORN: Bumalik false. 276 00:11:48,690 --> 00:11:49,960 Hindi namin mahanap ito. 277 00:11:49,960 --> 00:11:52,010 Kung naabot mo ang dulo ng listahan at hindi mo makita ang numero ng ikaw ay 278 00:11:52,010 --> 00:11:54,170 naghahanap ng, hindi ito sa doon. 279 00:11:54,170 --> 00:11:55,420 Ang anumang mga katanungan tungkol mahanap? 280 00:11:55,420 --> 00:11:59,530 281 00:11:59,530 --> 00:12:04,615 Kung ito ay isang pinagsunod-sunod listahan, ano ang gagawin naiiba para sa aming paghahanap? 282 00:12:04,615 --> 00:12:07,370 283 00:12:07,370 --> 00:12:08,103 Oo. 284 00:12:08,103 --> 00:12:10,600 >> Madla: Ito mahanap ang unang halaga na mas malaki kaysa sa isa 285 00:12:10,600 --> 00:12:12,390 ang iyong hinahanap para sa at pagkatapos ay bumalik hindi totoo. 286 00:12:12,390 --> 00:12:13,190 >> Jason HIRSCHORN: Mismong. 287 00:12:13,190 --> 00:12:17,310 Kaya kung ito ay isang pinagsunod-sunod na listahan, kung makuha namin sa isang bagay na mas malaki kaysa sa kung ano 288 00:12:17,310 --> 00:12:20,180 kaming naghahanap ng mga, hindi namin kailangang panatilihin ang pagpunta sa dulo ng listahan. 289 00:12:20,180 --> 00:12:24,060 Maaari sa puntong iyon kami ng hindi totoo dahil hindi namin pagpunta upang hanapin ito. 290 00:12:24,060 --> 00:12:27,340 Ang tanong ay ngayon, na-usapan natin ang tungkol sa pinapanatiling naka-link na listahan pinagsunod-sunod, 291 00:12:27,340 --> 00:12:28,180 pinapanatili ang mga ito unsorted. 292 00:12:28,180 --> 00:12:30,050 Iyon ay magiging isang bagay ikaw ay marahil pagpunta sa kailangang isipin ang tungkol sa 293 00:12:30,050 --> 00:12:34,240 kapag itinakda sa coding problema limang kung ikaw pumili ng isang hash talahanayan na may nakahiwalay na 294 00:12:34,240 --> 00:12:36,360 chaining diskarte, na Makikita makipag-usap namin tungkol sa ibang pagkakataon. 295 00:12:36,360 --> 00:12:41,400 >> Ngunit kahalaga ito upang panatilihin ang mga listahan pinagsunod-sunod at pagkatapos ay magagawang siguro mayroon 296 00:12:41,400 --> 00:12:42,310 mas mabilis na mga paghahanap? 297 00:12:42,310 --> 00:12:47,220 O kaya naman ay mas mabuti upang mabilis na ipasok isang bagay sa pare-pareho ang runtime ngunit pagkatapos ay 298 00:12:47,220 --> 00:12:48,430 mayroon na maghanap? 299 00:12:48,430 --> 00:12:52,250 Iyan ay isang tradeoff doon na iyong makakuha upang magpasya kung ano ang mas naaangkop 300 00:12:52,250 --> 00:12:53,590 para sa iyong partikular na problema. 301 00:12:53,590 --> 00:12:56,680 At mayroong hindi kinakailangang isa talagang tamang sagot. 302 00:12:56,680 --> 00:12:59,520 Ngunit ito ay tiyak na isang desisyon na makukuha mo upang gawin, at marahil handa na upang ipagtanggol 303 00:12:59,520 --> 00:13:05,270 na sa, sabihin nating, ng isa o dalawang puna kung bakit na pinili mo ang isa sa ibabaw ng iba pang mga. 304 00:13:05,270 --> 00:13:06,490 >> Sa wakas, tinatanggal. 305 00:13:06,490 --> 00:13:08,100 Nakita namin ang pagtanggal. 306 00:13:08,100 --> 00:13:09,180 Ito ay katulad sa paghahanap. 307 00:13:09,180 --> 00:13:11,020 Inaasahan naming para sa mga elemento. 308 00:13:11,020 --> 00:13:12,390 Sabihin nating sinusubukan naming tanggalin anim. 309 00:13:12,390 --> 00:13:14,450 Kaya nakita namin anim dito mismo. 310 00:13:14,450 --> 00:13:18,860 Ang bagay na mayroon kami upang matiyak na namin gawin ay na kung ano ang ay tumuturo sa 311 00:13:18,860 --> 00:13:21,220 anim - tulad ng nakikita natin sa hakbang dalawang down na dito - 312 00:13:21,220 --> 00:13:26,500 ano naman ang nagtuturo sa anim na mga pangangailangan sa laktawan anim ngayon at mababago sa 313 00:13:26,500 --> 00:13:28,160 ano naman anim ay tumuturo sa. 314 00:13:28,160 --> 00:13:31,410 Hindi namin nais na kailanman ulila ang natitirang bahagi ng ang aming listahan sa pamamagitan ng forgetting upang i-set na 315 00:13:31,410 --> 00:13:32,960 nakaraang pointer. 316 00:13:32,960 --> 00:13:35,960 At pagkatapos minsan, depende sa programa, ipapakita lang nila 317 00:13:35,960 --> 00:13:37,380 tanggalin ang node kabuuan. 318 00:13:37,380 --> 00:13:40,135 Minsan gugustuhin mong bumalik ang halaga na ito sa node. 319 00:13:40,135 --> 00:13:42,490 Kaya na kung paano pagtanggal ng mga gawa. 320 00:13:42,490 --> 00:13:44,610 Ang anumang mga katanungan sa tanggalin? 321 00:13:44,610 --> 00:13:51,280 322 00:13:51,280 --> 00:13:53,850 >> Madla: Kaya kung ikaw ay pagpunta sa tanggalin ito, gagamitin mo lang libre dahil 323 00:13:53,850 --> 00:13:55,655 siguro ito ay malloced? 324 00:13:55,655 --> 00:13:57,976 >> Jason HIRSCHORN: Kung gusto mong palayain isang bagay na akmang-akma at mo 325 00:13:57,976 --> 00:13:58,540 malloced ito. 326 00:13:58,540 --> 00:14:00,410 Sabihing namin pinaghahanap upang bumalik ang halagang ito. 327 00:14:00,410 --> 00:14:04,010 Maaari naming ibalik anim at pagkatapos ay libre ito node at tawag libreng on ito. 328 00:14:04,010 --> 00:14:06,180 O kaya nais naming marahil tumawag muna libre at pagkatapos ay bumalik sa anim. 329 00:14:06,180 --> 00:14:11,210 330 00:14:11,210 --> 00:14:11,580 >> OK. 331 00:14:11,580 --> 00:14:14,010 Kaya ni magpatuloy sa pagsasanay sa coding ipaalam. 332 00:14:14,010 --> 00:14:16,090 Kami ay pagpunta sa code tatlong mga pag-andar. 333 00:14:16,090 --> 00:14:18,260 Ang unang isa ay tinatawag na insert_node. 334 00:14:18,260 --> 00:14:22,170 Kaya mayroon kang code na nag-email ako sa iyo, at kung pinapanood mo ito sa ibang pagkakataon sa 335 00:14:22,170 --> 00:14:28,020 Maaari mong i-access ang code sa linked.c sa CS50 website. 336 00:14:28,020 --> 00:14:30,880 Ngunit sa linked.c, mayroong ilang mga balangkas code na naka- 337 00:14:30,880 --> 00:14:32,280 napawalang para sa iyo. 338 00:14:32,280 --> 00:14:34,560 At pagkatapos ay mayroong ilang mga pag-andar kailangan mong magsulat. 339 00:14:34,560 --> 00:14:36,380 >> Una kami ay pagpunta sa sumulat insert_node. 340 00:14:36,380 --> 00:14:39,800 At ano ang ginagawa insert_node ay kung pagsingit ng isang integer. 341 00:14:39,800 --> 00:14:42,440 At ka pagbibigay ng integer sa isang naka-link na listahan. 342 00:14:42,440 --> 00:14:45,470 At sa partikular, kailangan mo upang panatilihin ang mga listahan pinagsunod-sunod 343 00:14:45,470 --> 00:14:47,650 mula sa pinakamaliit na pinakamalaking. 344 00:14:47,650 --> 00:14:51,360 Gayundin, hindi mo nais na magpasok ng anumang mga nauulit. 345 00:14:51,360 --> 00:14:54,600 Panghuli, bilang maaari mong makita insert_node ay nagbabalik ng bool. 346 00:14:54,600 --> 00:14:57,140 Kaya ka dapat ipagbigay-alam sa user man o hindi ang insert noon ay 347 00:14:57,140 --> 00:15:00,800 matagumpay sa pamamagitan ng pagbalik totoo o hindi. 348 00:15:00,800 --> 00:15:02,580 Sa dulo ng programang ito - 349 00:15:02,580 --> 00:15:05,750 at para sa hakbang na ito hindi mo kailangang mag-alala tungkol pagbabakante ng kahit ano. 350 00:15:05,750 --> 00:15:11,790 Kaya lahat ng ginagawa mo ay pagsasagawa ng isang integer at pagpasok ng mga ito sa isang listahan. 351 00:15:11,790 --> 00:15:13,890 >> Iyon ay kung ano ako humihiling sa iyo na gawin ngayon. 352 00:15:13,890 --> 00:15:17,620 Muli, sa linked.c, na kung saan mo lahat ng mayroon, ay ang balangkas ng code. 353 00:15:17,620 --> 00:15:20,980 At dapat mong makita patungo sa ibaba ang sample na deklarasyon ng function. 354 00:15:20,980 --> 00:15:27,390 Gayunman, bago pagpunta sa coding ito sa C, masidhing kong Hinihikayat ka upang pumunta 355 00:15:27,390 --> 00:15:29,330 sa pamamagitan ng hakbang na nakapunta namin pagsasanay sa bawat linggo. 356 00:15:29,330 --> 00:15:31,100 Na nawala na kami sa pamamagitan ng isang larawan ng ito. 357 00:15:31,100 --> 00:15:33,380 Kaya dapat mayroon kang ilang mga pag-unawa ng kung paano ito gumagana. 358 00:15:33,380 --> 00:15:36,590 Ngunit Gusto ko hinihikayat na sumulat ilang pseudocode bago diving in 359 00:15:36,590 --> 00:15:38,640 At kami ay pagpunta sa pumunta sa ibabaw pseudocode bilang isang grupo. 360 00:15:38,640 --> 00:15:41,470 At pagkatapos ay sa oras na iyong isinulat sa iyong pseudocode, at sa sandaling na-nakasulat na namin ang aming 361 00:15:41,470 --> 00:15:45,850 pseudocode bilang isang grupo, maaari kang pumunta sa coding ito sa C. 362 00:15:45,850 --> 00:15:49,980 >> Bilang isang ulo up, ang insert_node function na Marahil ang trickiest ng 363 00:15:49,980 --> 00:15:53,550 ang tatlong kami ay pagpunta sa magsulat dahil ako Idinagdag ang ilang karagdagang mga hadlang sa 364 00:15:53,550 --> 00:15:57,190 iyong programming, sa partikular na hindi ka pagpunta sa singit 365 00:15:57,190 --> 00:15:59,880 kadoble at na ang listahan dapat na manatiling pinagsunod-sunod. 366 00:15:59,880 --> 00:16:02,660 Kaya ito ay isang non-walang halaga programa na kailangan mong i-code. 367 00:16:02,660 --> 00:16:06,470 At bakit hindi mo tumagal 06:55 minuto lamang upang makakuha ng mga nagtatrabaho sa 368 00:16:06,470 --> 00:16:07,640 pseudocode at ang code. 369 00:16:07,640 --> 00:16:09,460 At pagkatapos ay magsisimula kami pagpunta bilang isang grupo. 370 00:16:09,460 --> 00:16:11,680 Muli, kung mayroon kang lamang anumang mga katanungan itaas ang iyong mga kamay at kukunin ko na dumating sa paligid. 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 >> Sa pangkalahatan din namin ang mga - 375 00:18:30,120 --> 00:18:32,070 o hindi ko tahasan mong sabihin ay maaaring gumana sa mga tao. 376 00:18:32,070 --> 00:18:36,500 Ngunit malinaw naman, ako lubos na hinihikayat ka, kung mayroon kang mga katanungan, upang hilingin sa 377 00:18:36,500 --> 00:18:39,840 kapit-bahay upo sa tabi mo o kahit na gumagana sa isang tao 378 00:18:39,840 --> 00:18:40,510 iba kung gusto mo. 379 00:18:40,510 --> 00:18:42,600 Hindi ito kailangang maging isang indibidwal silent aktibidad. 380 00:18:42,600 --> 00:20:11,770 381 00:20:11,770 --> 00:20:16,330 >> Magsimula tayo sa pagsusulat ng ilang Hayaan pseudocode sa board. 382 00:20:16,330 --> 00:20:19,395 Sino ang maaaring magbigay sa akin ang unang linya ng pseudocode para sa programang ito? 383 00:20:19,395 --> 00:20:22,240 384 00:20:22,240 --> 00:20:23,640 Para sa mga ito function, sa halip - insert_node. 385 00:20:23,640 --> 00:20:29,960 386 00:20:29,960 --> 00:20:31,830 Alden? 387 00:20:31,830 --> 00:20:36,560 >> Madla: Kaya ang unang bagay na ginawa ko noon ay lumikha ng isang bagong pointer sa node at ako 388 00:20:36,560 --> 00:20:41,320 nasimulan ito na tumuturo sa parehong bagay na listahan ay tumuturo sa. 389 00:20:41,320 --> 00:20:41,550 >> Jason HIRSCHORN: OK. 390 00:20:41,550 --> 00:20:45,190 Kaya lumilikha ka ng isang bagong pointer sa listahan, hindi sa node. 391 00:20:45,190 --> 00:20:45,420 >> Madla: Mag-right. 392 00:20:45,420 --> 00:20:46,150 Oo. 393 00:20:46,150 --> 00:20:46,540 >> Jason HIRSCHORN: OK. 394 00:20:46,540 --> 00:20:48,221 At pagkatapos ay kung ano ang gusto naming gawin? 395 00:20:48,221 --> 00:20:49,163 Ano pagkaraan na? 396 00:20:49,163 --> 00:20:50,105 Paano ang tungkol sa mga node? 397 00:20:50,105 --> 00:20:51,050 Wala kaming isang node. 398 00:20:51,050 --> 00:20:52,300 Mayroon lang namin ng halaga. 399 00:20:52,300 --> 00:20:55,918 400 00:20:55,918 --> 00:20:58,890 Kung gusto naming upang magpasok ng isang node, ano ang ginagawa namin kailangan na gawin ang unang bago namin makakaya kahit na 401 00:20:58,890 --> 00:20:59,980 isipin ang tungkol sa pagpasok ng mga ito? 402 00:20:59,980 --> 00:21:00,820 >> Madla: Oh, paumanhin. 403 00:21:00,820 --> 00:21:02,160 kailangan naming i-malloc espasyo para sa isang node. 404 00:21:02,160 --> 00:21:02,455 >> Jason HIRSCHORN: Mahusay. 405 00:21:02,455 --> 00:21:03,210 Ni gawin Hayaan - 406 00:21:03,210 --> 00:21:04,628 OK. 407 00:21:04,628 --> 00:21:06,065 Hindi ma-maabot na mataas. 408 00:21:06,065 --> 00:21:08,939 409 00:21:08,939 --> 00:21:09,897 OK. 410 00:21:09,897 --> 00:21:13,236 Kami ay pagpunta sa pumunta down, at pagkatapos ay ginagamit namin ang dalawang mga hanay. 411 00:21:13,236 --> 00:21:13,732 Hindi ako maaaring pumunta na - 412 00:21:13,732 --> 00:21:14,982 OK. 413 00:21:14,982 --> 00:21:23,660 414 00:21:23,660 --> 00:21:25,130 Lumikha ng isang bagong node. 415 00:21:25,130 --> 00:21:29,380 Maaari kang lumikha ng isa pang pointer upang ilista o maaari mo lamang gamitin ang listahan bilang umiiral na ito. 416 00:21:29,380 --> 00:21:30,720 Wala ka ba talagang kailangan upang gawin iyon. 417 00:21:30,720 --> 00:21:31,750 >> Kaya't lumikha kami ng isang bagong node. 418 00:21:31,750 --> 00:21:32,010 Mahusay. 419 00:21:32,010 --> 00:21:32,840 Iyon ay kung ano ang ginagawa namin muna. 420 00:21:32,840 --> 00:21:34,870 Ano ang susunod? 421 00:21:34,870 --> 00:21:35,080 >> Madla: Maghintay. 422 00:21:35,080 --> 00:21:38,330 Dapat ba naming lumikha ng isang bagong node ngayon o dapat maghintay naming matiyak na 423 00:21:38,330 --> 00:21:42,260 walang mga doble ng mga node nasa listahan bago namin likhain ito? 424 00:21:42,260 --> 00:21:43,100 >> Jason HIRSCHORN: Magandang katanungan. 425 00:21:43,100 --> 00:21:47,770 Ng matagalan na para dahil sa ibang pagkakataon Hayaan ang karamihan ng mga oras lilikha kami 426 00:21:47,770 --> 00:21:48,220 isang bagong node. 427 00:21:48,220 --> 00:21:49,110 Kaya makikita panatilihin namin na dito. 428 00:21:49,110 --> 00:21:51,006 Ngunit iyon ay isang mahusay na tanong. 429 00:21:51,006 --> 00:21:53,250 Kung lumikha namin ito at nakita namin isang duplicate, ano ang dapat 430 00:21:53,250 --> 00:21:54,490 ginagawa namin bago bumalik? 431 00:21:54,490 --> 00:21:55,190 >> Madla: Palayain ito. 432 00:21:55,190 --> 00:21:55,470 >> Jason HIRSCHORN: Oo. 433 00:21:55,470 --> 00:21:56,500 Malamang palayain ito. 434 00:21:56,500 --> 00:21:56,760 OK. 435 00:21:56,760 --> 00:21:59,850 Ano ang gagawin namin pagkatapos naming lumikha ng isang bagong node? 436 00:21:59,850 --> 00:22:02,260 Annie? 437 00:22:02,260 --> 00:22:04,780 >> Madla: ilagay namin ang numero sa node? 438 00:22:04,780 --> 00:22:05,140 >> Jason HIRSCHORN: Mismong. 439 00:22:05,140 --> 00:22:07,190 Ilagay namin ang bilang - malloc namin espasyo. 440 00:22:07,190 --> 00:22:08,160 Pupunta ako sa umalis na lahat bilang isang linya. 441 00:22:08,160 --> 00:22:08,720 Ngunit ikaw ay karapatan sa iyo. 442 00:22:08,720 --> 00:22:10,305 Malloc namin na espasyo, at pagkatapos ay ilalagay namin ang bilang in 443 00:22:10,305 --> 00:22:12,585 Maaaring itakda ng kahit na namin ang pointer bahagi nito sa null. 444 00:22:12,585 --> 00:22:13,720 Iyan ay akmang-akma. 445 00:22:13,720 --> 00:22:17,400 At pagkatapos ay kung ano ang tungkol sa pagkatapos na? 446 00:22:17,400 --> 00:22:18,490 Iginuhit namin ang larawang ito sa board. 447 00:22:18,490 --> 00:22:21,190 Kaya kung ano ang gagawin namin? 448 00:22:21,190 --> 00:22:22,680 >> Madla: pumunta kami sa listahan. 449 00:22:22,680 --> 00:22:23,930 >> Jason HIRSCHORN: Pumunta sa pamamagitan ng listahan. 450 00:22:23,930 --> 00:22:30,620 451 00:22:30,620 --> 00:22:31,100 OK. 452 00:22:31,100 --> 00:22:34,280 At ano ang gagawin namin masuri para sa bawat node. 453 00:22:34,280 --> 00:22:35,955 Kurt, ano ang gagawin suriin namin para sa bawat node? 454 00:22:35,955 --> 00:22:41,640 >> Madla: Tingnan kung ang mga halaga ng n na node ay mas malaki sa halaga n 455 00:22:41,640 --> 00:22:43,070 sa aming mga node. 456 00:22:43,070 --> 00:22:43,340 >> Jason HIRSCHORN: OK. 457 00:22:43,340 --> 00:22:44,280 Pupunta ako sa gawin - 458 00:22:44,280 --> 00:22:45,855 oo, ang OK. 459 00:22:45,855 --> 00:22:48,160 Kaya n - 460 00:22:48,160 --> 00:22:59,040 Pupunta ako sa sabihin kung halaga ay mas malaki kaysa ito node, pagkatapos ay i-ano ang gagawin namin gawin? 461 00:22:59,040 --> 00:23:07,290 >> Madla: Well, pagkatapos ay ipasok namin ang bagay na bago mismo iyon. 462 00:23:07,290 --> 00:23:07,970 >> Jason HIRSCHORN: OK. 463 00:23:07,970 --> 00:23:09,410 Kaya kung ito ay mas mataas kaysa ito, pagkatapos ay nais naming isingit. 464 00:23:09,410 --> 00:23:14,010 Ngunit nais naming ipasok ito bago mismo dahil magdudulot din na kailangan namin upang maging 465 00:23:14,010 --> 00:23:16,070 pagpapanatili ng track, pagkatapos, ng kung ano ang bago. 466 00:23:16,070 --> 00:23:22,690 Kaya magpasok ng mga bago. 467 00:23:22,690 --> 00:23:25,120 Kaya marahil hindi inaabot kami ng isang bagay mas maaga sa. 468 00:23:25,120 --> 00:23:27,770 Marahil kailangan namin upang ma-pagpapanatiling subaybayan kung ano ang nangyayari sa. 469 00:23:27,770 --> 00:23:28,460 Ngunit babalikan ka namin doon. 470 00:23:28,460 --> 00:23:30,160 Kaya kung ano ang halaga ay mas mababa kaysa? 471 00:23:30,160 --> 00:23:38,030 472 00:23:38,030 --> 00:23:39,710 Kurt, ano ang gagawin namin kung halaga ay mas mababa kaysa? 473 00:23:39,710 --> 00:23:43,000 >> Madla: Pagkatapos panatilihin mo lamang ng pagpunta maliban kung ito ay ang huli. 474 00:23:43,000 --> 00:23:43,550 >> Jason HIRSCHORN: gusto ko na. 475 00:23:43,550 --> 00:23:44,800 Kaya pumunta sa susunod na node. 476 00:23:44,800 --> 00:23:47,410 477 00:23:47,410 --> 00:23:48,930 Maliban kung ito ay ang huling isa - 478 00:23:48,930 --> 00:23:51,100 marahil kami ay naghahanap ng mga na sa mga tuntunin ng kundisyon. 479 00:23:51,100 --> 00:23:54,870 Ngunit oo, susunod na node. 480 00:23:54,870 --> 00:23:58,680 At na pagkuha ng masyadong mababa, kaya ipapakita namin Ililipat nito ang dito. 481 00:23:58,680 --> 00:24:02,030 Ngunit kung - 482 00:24:02,030 --> 00:24:03,280 Maaari nang makita ang lahat ng tao? 483 00:24:03,280 --> 00:24:07,230 484 00:24:07,230 --> 00:24:11,610 Kung hindi namin katumbas anong gagawin namin? 485 00:24:11,610 --> 00:24:15,740 Kung ang halaga sinusubukan naming isingit ay katumbas ng halaga na node na ito? 486 00:24:15,740 --> 00:24:16,320 Oo? 487 00:24:16,320 --> 00:24:18,400 >> Madla: [hindi marinig]. 488 00:24:18,400 --> 00:24:18,850 >> Jason HIRSCHORN: Oo. 489 00:24:18,850 --> 00:24:19,290 Given na ito - 490 00:24:19,290 --> 00:24:20,090 Marcus ang tama. 491 00:24:20,090 --> 00:24:21,330 Maaari siguro namin nagawa na isang bagay na naiiba. 492 00:24:21,330 --> 00:24:25,360 Ngunit ibinigay na nilikha namin ito, dito dapat naming palayain at pagkatapos ay bumalik. 493 00:24:25,360 --> 00:24:26,774 Oh batang lalaki. 494 00:24:26,774 --> 00:24:30,080 Iyan ba ang mas mainam? 495 00:24:30,080 --> 00:24:31,850 Paano iyan? 496 00:24:31,850 --> 00:24:33,100 OK. 497 00:24:33,100 --> 00:24:35,360 498 00:24:35,360 --> 00:24:37,640 Libreng at pagkatapos ay kung ano ang ginagawa namin bumalik, [hindi marinig]? 499 00:24:37,640 --> 00:24:41,330 500 00:24:41,330 --> 00:24:44,110 OK. 501 00:24:44,110 --> 00:24:45,360 Nawawala namin ang anumang bagay? 502 00:24:45,360 --> 00:24:53,500 503 00:24:53,500 --> 00:24:59,650 Kaya kung saan ay namin pinapanatili track ng bago node? 504 00:24:59,650 --> 00:25:02,370 >> Madla: Sa tingin ko gusto ito pumunta pagkatapos lumikha ng isang bagong node. 505 00:25:02,370 --> 00:25:02,600 >> Jason HIRSCHORN: OK. 506 00:25:02,600 --> 00:25:03,940 Kaya sa simula kami ay marahil - 507 00:25:03,940 --> 00:25:07,175 oo, maaari naming lumikha ng isang pointer sa isang bagong node, tulad ng isang nakaraang node pointer at 508 00:25:07,175 --> 00:25:09,600 isang kasalukuyang node pointer. 509 00:25:09,600 --> 00:25:12,640 Kaya ni isingit na dito ipaalam. 510 00:25:12,640 --> 00:25:15,610 511 00:25:15,610 --> 00:25:26,900 Lumikha ng kasalukuyan at nakaraang mga payo sa mga node. 512 00:25:26,900 --> 00:25:28,955 Ngunit kapag ako ayusin namin ang mga payo? 513 00:25:28,955 --> 00:25:30,205 Saan ang gagawin namin na sa code? 514 00:25:30,205 --> 00:25:33,830 515 00:25:33,830 --> 00:25:34,160 Jeff? 516 00:25:34,160 --> 00:25:35,170 >> Madla: - kundisyon halaga? 517 00:25:35,170 --> 00:25:36,420 >> Jason HIRSCHORN: Aling isa sa mga partikular na? 518 00:25:36,420 --> 00:25:39,862 519 00:25:39,862 --> 00:25:40,720 >> Madla: ako malito lang. 520 00:25:40,720 --> 00:25:44,200 Kung halaga ay mas mataas kaysa ito node, ay hindi na ibig sabihin na gusto mong pumunta 521 00:25:44,200 --> 00:25:45,320 sa susunod na node? 522 00:25:45,320 --> 00:25:49,515 >> Jason HIRSCHHORN: Kaya kung ang aming halaga ay mas mataas kaysa sa halaga ng mga ito na node. 523 00:25:49,515 --> 00:25:52,130 >> Madla: Oo, pagkatapos gusto mo gusto upang pumunta mas ibaba pa ng linya, i-right? 524 00:25:52,130 --> 00:25:52,590 >> Jason HIRSCHHORN: Mag-right. 525 00:25:52,590 --> 00:25:53,840 Kaya hindi kami ipasok ito dito. 526 00:25:53,840 --> 00:25:58,430 527 00:25:58,430 --> 00:26:03,240 Kung halaga ay mas mababa kaysa ito node, pagkatapos ay pumunta kami sa susunod na node - o pagkatapos namin 528 00:26:03,240 --> 00:26:03,835 magpasok ng mga bago. 529 00:26:03,835 --> 00:26:05,966 >> Madla: Maghintay, na ito node at kung ano ang halaga? 530 00:26:05,966 --> 00:26:08,510 531 00:26:08,510 --> 00:26:09,280 >> Jason HIRSCHHORN: Magandang katanungan. 532 00:26:09,280 --> 00:26:13,260 Halaga ng bawat kahulugan ng function na ito ay kung ano ang kami ay naibigay na. 533 00:26:13,260 --> 00:26:16,910 Kaya halaga ay ang bilang namin ibinigay. 534 00:26:16,910 --> 00:26:21,120 Kaya kung ang halaga ay mas mababa kaysa ito node, kailangan namin ng oras upang ipasok. 535 00:26:21,120 --> 00:26:24,575 Kung halaga ay mas mataas kaysa ito node, pumunta kami sa susunod na node. 536 00:26:24,575 --> 00:26:26,790 At bumalik sa orihinal na pinag-uusapan, bagaman, kung saan - 537 00:26:26,790 --> 00:26:29,060 >> Madla: Kung halaga ay mas malaki kaysa ito node. 538 00:26:29,060 --> 00:26:30,310 >> Jason HIRSCHHORN: At kaya ano ang gagawin namin dito? 539 00:26:30,310 --> 00:26:36,790 540 00:26:36,790 --> 00:26:38,160 Sweet. 541 00:26:38,160 --> 00:26:38,860 Iyon ay tama. 542 00:26:38,860 --> 00:26:41,370 Lamang ako ng pagpunta sa magsulat update ng mga payo. 543 00:26:41,370 --> 00:26:44,010 Ngunit oo, gamit ang mga kasalukuyang isa Gusto mo itong i-update sa 544 00:26:44,010 --> 00:26:46,080 ituro sa susunod na isa. 545 00:26:46,080 --> 00:26:47,330 Ano pa nawawala namin? 546 00:26:47,330 --> 00:26:52,710 547 00:26:52,710 --> 00:26:54,940 Kaya pupuntahan ko type ito code sa gedit. 548 00:26:54,940 --> 00:26:58,375 At habang ginagawa ko ito, maaari kang magkaroon ng isang ilang higit pang minuto upang gumana sa coding 549 00:26:58,375 --> 00:28:19,240 ito sa C. 550 00:28:19,240 --> 00:28:20,940 >> Kaya ba akong magkaroon ang pseudocode input. 551 00:28:20,940 --> 00:28:22,940 Isang maikling paalala bago kami makapagsimula. 552 00:28:22,940 --> 00:28:25,560 Maaaring hindi namin magagawang ganap tapusin ito sa lahat 553 00:28:25,560 --> 00:28:27,300 tatlong ng mga function. 554 00:28:27,300 --> 00:28:30,630 May tamang solusyon upang ang mga ito na ako ng email out sa iyo guys 555 00:28:30,630 --> 00:28:33,730 pagkatapos ng seksyon, at magpo ito mapo-post sa CS50.net. 556 00:28:33,730 --> 00:28:35,640 Kaya hindi ko hinihikayat ka upang pumunta tingnan ang mga seksyon. 557 00:28:35,640 --> 00:28:40,550 Hinihikayat ka kong subukan ang mga sa iyong pagmamay-ari, at pagkatapos ay gamitin ang mga kasanayan 558 00:28:40,550 --> 00:28:41,760 mga problema upang suriin ang iyong mga sagot. 559 00:28:41,760 --> 00:28:47,070 Ang mga ito ay ang lahat ng na-dinisenyo upang malapit umuugnay sa at sumunod sa kung ano 560 00:28:47,070 --> 00:28:48,400 kailangan mo lang gawin sa hanay problema. 561 00:28:48,400 --> 00:28:53,820 Kaya ko hinihikayat na pagsasanay na ito sa iyong sariling at pagkatapos ay gamitin ang code na ito sa 562 00:28:53,820 --> 00:28:54,660 suriin ang iyong mga sagot. 563 00:28:54,660 --> 00:28:57,060 Dahil ko nais upang lumipat sa hash mga talahanayan sa isang punto sa seksyon. 564 00:28:57,060 --> 00:28:58,150 Kaya maaaring hindi namin makuha sa pamamagitan ng lahat ng ito. 565 00:28:58,150 --> 00:28:59,960 Ngunit gagawin namin bilang magkano kaya namin ngayon. 566 00:28:59,960 --> 00:29:00,370 >> OK. 567 00:29:00,370 --> 00:29:01,960 Ipaalam sa amin magsimula. 568 00:29:01,960 --> 00:29:04,770 Asam, paano ako lilikha kami ng isang bagong node? 569 00:29:04,770 --> 00:29:06,810 >> Madla: mo struct *. 570 00:29:06,810 --> 00:29:09,640 >> Jason HIRSCHHORN: Kaya namin mayroon dito na up. 571 00:29:09,640 --> 00:29:10,040 Oh, paumanhin. 572 00:29:10,040 --> 00:29:13,530 Ay sinasabi mo struct *. 573 00:29:13,530 --> 00:29:17,260 >> Madla: At pagkatapos [? uri?] node o c node. 574 00:29:17,260 --> 00:29:17,780 >> Jason HIRSCHHORN: OK. 575 00:29:17,780 --> 00:29:19,740 Pupunta ako sa tumawag ito new_node upang maaari naming manatili pare-pareho. 576 00:29:19,740 --> 00:29:22,646 577 00:29:22,646 --> 00:29:33,180 >> Madla: At gusto mong i-set na upang magtungo, ang unang node. 578 00:29:33,180 --> 00:29:33,580 >> Jason HIRSCHHORN: OK. 579 00:29:33,580 --> 00:29:37,290 Kaya ngayon ito pagturo sa - kaya ito ay hindi pa lumilikha ng isang bagong node. 580 00:29:37,290 --> 00:29:41,380 Ito ay lamang ng pagturo sa unang node sa listahan. 581 00:29:41,380 --> 00:29:42,630 Paano ako lilikha ng isang bagong node? 582 00:29:42,630 --> 00:29:45,490 583 00:29:45,490 --> 00:29:48,070 Kung kailangan ko na espasyo upang lumikha ng isang bagong node. 584 00:29:48,070 --> 00:29:49,230 Malloc. 585 00:29:49,230 --> 00:29:51,710 At kung gaano kalaki? 586 00:29:51,710 --> 00:30:00,390 >> Madla: Ang laki ng struct. 587 00:30:00,390 --> 00:30:01,150 >> Jason HIRSCHHORN: Ang laki ng struct. 588 00:30:01,150 --> 00:30:02,400 At ano ang mga struct tinatawag? 589 00:30:02,400 --> 00:30:09,670 590 00:30:09,670 --> 00:30:09,840 >> Madla: Node? 591 00:30:09,840 --> 00:30:11,640 >> Jason HIRSCHHORN: Node. 592 00:30:11,640 --> 00:30:17,640 Kaya malloc (sizeof (node)); Binibigyan kami ng espasyo. 593 00:30:17,640 --> 00:30:19,740 At ay ang linyang ito - 594 00:30:19,740 --> 00:30:21,740 isang bagay ay mali sa linyang ito. 595 00:30:21,740 --> 00:30:24,430 New_node ay isang pointer sa isang struct? 596 00:30:24,430 --> 00:30:25,650 Yan ang generic na pangalan. 597 00:30:25,650 --> 00:30:26,520 Ano ito - 598 00:30:26,520 --> 00:30:27,450 node, eksakto. 599 00:30:27,450 --> 00:30:29,340 Ito ay isang node *. 600 00:30:29,340 --> 00:30:33,010 At kung ano ang gagawin namin pagkatapos malloc kami ng isang bagay, Asan? 601 00:30:33,010 --> 00:30:34,476 Ano ang unang bagay na aming ginagawa? 602 00:30:34,476 --> 00:30:38,850 603 00:30:38,850 --> 00:30:40,320 Paano kung hindi ito gumana? 604 00:30:40,320 --> 00:30:42,430 >> Madla: Oh, tingnan kung ito tumuturo sa node? 605 00:30:42,430 --> 00:30:43,310 >> Jason HIRSCHHORN: Mismong. 606 00:30:43,310 --> 00:30:46,750 Kaya kung new_node mo ay katumbas Kapantay null, anong gagawin namin? 607 00:30:46,750 --> 00:30:51,650 608 00:30:51,650 --> 00:30:54,820 Nagbalik ito ng bool, ito function. 609 00:30:54,820 --> 00:30:57,760 Mismong. 610 00:30:57,760 --> 00:30:58,450 Mukhang magandang. 611 00:30:58,450 --> 00:30:59,680 Anumang bagay upang idagdag doon? 612 00:30:59,680 --> 00:31:00,670 Susubukan naming magdagdag ng mga bagay sa dulo. 613 00:31:00,670 --> 00:31:03,160 Ngunit na sa ngayon ay mukhang mahusay. 614 00:31:03,160 --> 00:31:06,170 Lumikha ng kasalukuyan at nakaraang mga payo. 615 00:31:06,170 --> 00:31:08,650 Michael, paano ang gagawin ko ito? 616 00:31:08,650 --> 00:31:12,810 >> Madla: Gusto mong magkaroon ng na gawin ang isang node *. 617 00:31:12,810 --> 00:31:21,800 618 00:31:21,800 --> 00:31:25,502 Ang kailangan mong i gumawa ng isa hindi para new_node ngunit para sa 619 00:31:25,502 --> 00:31:26,905 nodes namin ay mayroon. 620 00:31:26,905 --> 00:31:27,230 >> Jason HIRSCHHORN: OK. 621 00:31:27,230 --> 00:31:29,255 Kaya ang kasalukuyang node kami sa. 622 00:31:29,255 --> 00:31:30,505 Tatawag ako na curr. 623 00:31:30,505 --> 00:31:39,650 624 00:31:39,650 --> 00:31:39,770 Ayos lang. 625 00:31:39,770 --> 00:31:41,620 Nagpasya kaming gusto naming panatilihing dalawa dahil kailangan naming malaman 626 00:31:41,620 --> 00:31:42,870 kung ano ang bago ito. 627 00:31:42,870 --> 00:31:45,770 628 00:31:45,770 --> 00:31:47,020 Ano ang gagawin nila makakuha ng nasimulan upang? 629 00:31:47,020 --> 00:31:49,874 630 00:31:49,874 --> 00:31:54,180 >> Madla: Ang kanilang mga halaga sa aming listahan. 631 00:31:54,180 --> 00:31:58,090 >> Jason HIRSCHHORN: Kaya kung ano ay ang unang bagay na sa aming listahan? 632 00:31:58,090 --> 00:32:04,050 O kaya paano ko malalaman namin kung saan ang simula ng aming listahan ay? 633 00:32:04,050 --> 00:32:08,015 >> Madla: Ay hindi ito pumasa sa sa ang pag-andar? 634 00:32:08,015 --> 00:32:08,466 >> Jason HIRSCHHORN: Mag-right. 635 00:32:08,466 --> 00:32:09,716 Ito ay ang pumasa sa dito mismo. 636 00:32:09,716 --> 00:32:15,910 637 00:32:15,910 --> 00:32:18,980 Kaya kung ito ay pumasa sa sa pag-andar, ang magsimula ng listahan, kung ano ang dapat naming 638 00:32:18,980 --> 00:32:21,270 itakda kasalukuyang katumbas? 639 00:32:21,270 --> 00:32:22,110 >> Madla: List. 640 00:32:22,110 --> 00:32:22,900 >> Jason HIRSCHHORN: Listahan. 641 00:32:22,900 --> 00:32:24,090 Iyan ay akmang-akma. 642 00:32:24,090 --> 00:32:26,290 Ngayon ay may mga ito sa address ng simula ng aming listahan. 643 00:32:26,290 --> 00:32:28,450 At kung ano ang tungkol sa nakaraang? 644 00:32:28,450 --> 00:32:31,920 >> Madla: Listahan minus isa? 645 00:32:31,920 --> 00:32:32,690 >> Jason HIRSCHHORN: Mayroong walang bago ito. 646 00:32:32,690 --> 00:32:34,580 Kaya kung ano ang maaari naming gawin upang walang maging tanda ng? 647 00:32:34,580 --> 00:32:35,050 >> Madla: Walang bisa. 648 00:32:35,050 --> 00:32:35,450 >> Jason HIRSCHHORN: Oo. 649 00:32:35,450 --> 00:32:37,950 Iyan tulad ng isang magandang ideya. 650 00:32:37,950 --> 00:32:38,360 Perpekto. 651 00:32:38,360 --> 00:32:39,630 Salamat sa inyo. 652 00:32:39,630 --> 00:32:42,850 Pumunta sa listahan. 653 00:32:42,850 --> 00:32:45,490 Constantine, kung gaano katagal kami makapupunta upang pumunta sa pamamagitan ng listahan? 654 00:32:45,490 --> 00:32:49,010 >> Madla: Hanggang sa maabot namin null. 655 00:32:49,010 --> 00:32:49,390 >> Jason HIRSCHHORN: OK. 656 00:32:49,390 --> 00:32:50,430 Kaya kung, habang, para sa loop. 657 00:32:50,430 --> 00:32:52,200 Anong ginagawa namin? 658 00:32:52,200 --> 00:32:53,320 >> Madla: Siguro isang para sa loop? 659 00:32:53,320 --> 00:32:53,910 >> Jason HIRSCHHORN: ni gawin ang isang para sa loop Hayaan. 660 00:32:53,910 --> 00:32:55,870 OK. 661 00:32:55,870 --> 00:33:02,465 >> Madla: At sinasabi namin para sa - 662 00:33:02,465 --> 00:33:09,764 663 00:33:09,764 --> 00:33:13,390 hanggang sa kasalukuyang pointer ay hindi kapantay sa null. 664 00:33:13,390 --> 00:33:19,160 >> Jason HIRSCHHORN: Kaya kung malaman namin ang mga kalagayan, kung paano namin maaaring sumulat ng loop 665 00:33:19,160 --> 00:33:21,740 batay off ang kundisyon na. 666 00:33:21,740 --> 00:33:24,380 Anong uri ng isang loop ay dapat naming gamitin? 667 00:33:24,380 --> 00:33:25,260 >> Madla: Habang. 668 00:33:25,260 --> 00:33:25,590 >> Jason HIRSCHHORN: Oo. 669 00:33:25,590 --> 00:33:27,130 Na ginagawang higit pang kahulugan batay off ng kung ano ang iyong sinabi. 670 00:33:27,130 --> 00:33:29,430 Kung gusto lang namin upang pumunta sa naming ginagawa ito alam lang bagay na iyon, magiging gumawa 671 00:33:29,430 --> 00:33:31,680 pakiramdam na gawin ang isang habang loop. 672 00:33:31,680 --> 00:33:39,880 Habang kasalukuyang hindi gumagana ang pantay na null, kung halaga ay mas mababa kaysa ito node. 673 00:33:39,880 --> 00:33:41,650 Akshar, ibigay sa akin ang linyang ito. 674 00:33:41,650 --> 00:33:48,810 675 00:33:48,810 --> 00:33:56,955 >> Madla: Kung kasalukuyang-> n n mas mababa sa halaga. 676 00:33:56,955 --> 00:34:00,170 677 00:34:00,170 --> 00:34:03,260 O i-reverse na. 678 00:34:03,260 --> 00:34:06,140 Lumipat na bracket. 679 00:34:06,140 --> 00:34:06,620 >> Jason HIRSCHHORN: Paumanhin. 680 00:34:06,620 --> 00:34:08,760 >> Madla: Baguhin ang bracket. 681 00:34:08,760 --> 00:34:10,914 >> Jason HIRSCHHORN: Kaya kung ito ay mas malaki kaysa sa halaga. 682 00:34:10,914 --> 00:34:18,719 683 00:34:18,719 --> 00:34:22,120 Dahil na nakalilito sa magkomento sa itaas, ako pagpunta sa gawin iyon. 684 00:34:22,120 --> 00:34:22,480 Ngunit oo. 685 00:34:22,480 --> 00:34:25,125 Kung ang aming halaga ay mas mababa kaysa ito node, anong gagawin namin? 686 00:34:25,125 --> 00:34:25,540 Oh. 687 00:34:25,540 --> 00:34:26,710 Mayroon akong ito dito mismo. 688 00:34:26,710 --> 00:34:27,960 Magpasok ng bago. 689 00:34:27,960 --> 00:34:32,080 690 00:34:32,080 --> 00:34:32,370 OK. 691 00:34:32,370 --> 00:34:33,933 Paano ginagawa namin iyon? 692 00:34:33,933 --> 00:34:34,900 >> Madla: Ito ba ay pa rin sa akin? 693 00:34:34,900 --> 00:34:36,150 >> Jason HIRSCHHORN: Oo. 694 00:34:36,150 --> 00:34:38,520 695 00:34:38,520 --> 00:34:39,770 >> Madla: mo - 696 00:34:39,770 --> 00:34:42,909 697 00:34:42,909 --> 00:34:44,159 new_node-> susunod. 698 00:34:44,159 --> 00:34:46,770 699 00:34:46,770 --> 00:34:50,163 >> Jason HIRSCHHORN: Kaya kung ano ang na pagpunta sa kasing-halaga? 700 00:34:50,163 --> 00:34:52,070 >> Madla: Ito ay pagpunta sa pantay na kasalukuyang. 701 00:34:52,070 --> 00:34:53,889 >> Jason HIRSCHHORN: Mismong. 702 00:34:53,889 --> 00:34:55,730 At gayon ang iba pang mga - 703 00:34:55,730 --> 00:34:56,730 ano pa ang kailangan naming i-update? 704 00:34:56,730 --> 00:34:59,982 >> Madla: Tingnan kung ang nakalipas ay katumbas null. 705 00:34:59,982 --> 00:35:01,870 >> Jason HIRSCHHORN: Kung Nakaraan - 706 00:35:01,870 --> 00:35:03,730 kaya kung nakaraan ay katumbas null. 707 00:35:03,730 --> 00:35:05,990 >> Madla: Iyon ay nangangahulugang ito ay pagpunta upang maging pinuno. 708 00:35:05,990 --> 00:35:06,780 >> Jason HIRSCHHORN: paraan Iyon ito ay naging pinuno. 709 00:35:06,780 --> 00:35:07,620 Kaya pagkatapos ay kung ano ang gagawin namin? 710 00:35:07,620 --> 00:35:12,510 >> Madla: Ginagawa namin ang ulo ay katumbas ng new_node. 711 00:35:12,510 --> 00:35:16,690 >> Jason HIRSCHHORN: Head ay katumbas ng new_node. 712 00:35:16,690 --> 00:35:20,540 At bakit magtungo dito, ilista? 713 00:35:20,540 --> 00:35:24,940 >> Madla: Dahil ang ulo ay isang pandaigdigang variable, kung saan ay ang panimulang lugar. 714 00:35:24,940 --> 00:35:26,190 >> Jason HIRSCHHORN: Sweet. 715 00:35:26,190 --> 00:35:33,750 716 00:35:33,750 --> 00:35:34,170 OK. 717 00:35:34,170 --> 00:35:36,150 At - 718 00:35:36,150 --> 00:35:53,796 >> Madla: Pagkatapos mo pa Nakaraan-> susunod ay katumbas ng new_node. 719 00:35:53,796 --> 00:35:55,080 At pagkatapos ay bumalik ka totoo. 720 00:35:55,080 --> 00:35:59,560 721 00:35:59,560 --> 00:36:02,700 >> Jason HIRSCHHORN: Saan gawin itinakda namin new_node dulo? 722 00:36:02,700 --> 00:36:04,850 >> Madla: gagawin ko - 723 00:36:04,850 --> 00:36:06,180 Ako magse-set na sa simula. 724 00:36:06,180 --> 00:36:07,430 >> Jason HIRSCHHORN: Kaya kung ano line? 725 00:36:07,430 --> 00:36:10,000 726 00:36:10,000 --> 00:36:12,598 >> Madla: Pagkatapos ng kung pahayag check kung ito ay kilala. 727 00:36:12,598 --> 00:36:13,057 >> Jason HIRSCHHORN: Kanan dito? 728 00:36:13,057 --> 00:36:18,335 >> Madla: gusto kong gawin new_node-> n ay katumbas ng halaga. 729 00:36:18,335 --> 00:36:19,585 >> Jason HIRSCHHORN: Magaling. 730 00:36:19,585 --> 00:36:21,740 731 00:36:21,740 --> 00:36:25,090 Marahil ito ang may katuturan - hindi namin kailangan malaman kung ano ang listahan kami sa 732 00:36:25,090 --> 00:36:26,280 dahil kami ay lamang pakikitungo may isang listahan. 733 00:36:26,280 --> 00:36:29,560 Kaya ng mas mahusay na pag-andar na pagpapahayag para sa ito ay isa lamang sa mapupuksa ito 734 00:36:29,560 --> 00:36:34,360 ganap at ipasok lamang isang halaga sa ulo. 735 00:36:34,360 --> 00:36:35,930 Hindi namin kahit na kailangang malaman kung ano ang listahan Ikinalulungkot namin in 736 00:36:35,930 --> 00:36:39,140 Ngunit ako ay panatilihin ito para sa ngayon at pagkatapos ay baguhin ito sa pag-update 737 00:36:39,140 --> 00:36:42,590 ang mga slide at code. 738 00:36:42,590 --> 00:36:44,980 Kaya mukhang mahusay para sa ngayon iyon. 739 00:36:44,980 --> 00:36:46,560 Kung halaga - kung sino ang maaaring gawin ang linyang ito? 740 00:36:46,560 --> 00:36:47,810 Kung - 741 00:36:47,810 --> 00:36:52,240 742 00:36:52,240 --> 00:36:53,840 ano ang gagawin namin dito, si Noah. 743 00:36:53,840 --> 00:36:57,890 744 00:36:57,890 --> 00:37:07,100 >> Madla: Kung halaga ay mas malaki kaysa curr-> n - 745 00:37:07,100 --> 00:37:16,830 746 00:37:16,830 --> 00:37:18,240 >> Jason HIRSCHHORN: Paano ako pumunta kami sa susunod na node? 747 00:37:18,240 --> 00:37:27,760 748 00:37:27,760 --> 00:37:30,530 >> Madla: Curr-> n ay katumbas ng new_node. 749 00:37:30,530 --> 00:37:37,630 750 00:37:37,630 --> 00:37:39,195 >> Jason HIRSCHHORN: Kaya n ay anong bahagi ng struct? 751 00:37:39,195 --> 00:37:43,065 752 00:37:43,065 --> 00:37:46,020 Ang integer. 753 00:37:46,020 --> 00:37:50,420 At new_node ay isang pointer sa isang node. 754 00:37:50,420 --> 00:37:51,880 Kaya kung ano ang bahagi ng curr dapat naming i-update? 755 00:37:51,880 --> 00:38:03,900 756 00:38:03,900 --> 00:38:05,400 Kung hindi n, pagkatapos ay kung ano ang iba pang mga bahagi? 757 00:38:05,400 --> 00:38:21,680 758 00:38:21,680 --> 00:38:22,810 Noah, ano ang iba pang mga bahagi. 759 00:38:22,810 --> 00:38:23,570 >> Madla: Oh, susunod. 760 00:38:23,570 --> 00:38:25,645 >> Jason HIRSCHHORN: Susunod, eksakto. 761 00:38:25,645 --> 00:38:26,410 Mismong. 762 00:38:26,410 --> 00:38:28,770 Susunod ay ang tama. 763 00:38:28,770 --> 00:38:31,540 At ano pa ang kailangan namin upang i-update, si Noah? 764 00:38:31,540 --> 00:38:32,840 >> Madla: Ang mga payo. 765 00:38:32,840 --> 00:38:34,840 >> Jason HIRSCHHORN: Kaya update namin kasalukuyang. 766 00:38:34,840 --> 00:38:36,090 >> Madla: Nakaraan-> susunod. 767 00:38:36,090 --> 00:38:48,160 768 00:38:48,160 --> 00:38:49,410 >> Jason HIRSCHHORN: Oo. 769 00:38:49,410 --> 00:38:57,465 770 00:38:57,465 --> 00:38:58,370 OK, ipapakita namin i-pause. 771 00:38:58,370 --> 00:39:02,200 Sino ang maaaring makatulong sa amin dito? 772 00:39:02,200 --> 00:39:03,385 Manu, ano ang dapat naming gawin? 773 00:39:03,385 --> 00:39:05,615 >> Madla: Mayroon kang i-set ito katumbas ng curr-> susunod. 774 00:39:05,615 --> 00:39:09,110 775 00:39:09,110 --> 00:39:11,630 Ngunit gawin iyon bago ang nakaraang mga line. 776 00:39:11,630 --> 00:39:12,880 >> Jason HIRSCHHORN: OK. 777 00:39:12,880 --> 00:39:16,590 778 00:39:16,590 --> 00:39:18,260 Ano pa? 779 00:39:18,260 --> 00:39:19,170 Akshar. 780 00:39:19,170 --> 00:39:22,680 >> Madla: Hindi sa tingin ko ikaw ay sinadya upang baguhin curr-> susunod. 781 00:39:22,680 --> 00:39:29,270 Sa tingin ko ka sinadya upang gawin curr Kapantay curr-> sa tabi ng pumunta sa susunod na node. 782 00:39:29,270 --> 00:39:30,500 >> Jason HIRSCHHORN: Kaya paumanhin, saan? 783 00:39:30,500 --> 00:39:32,680 Sa anong linya? 784 00:39:32,680 --> 00:39:33,420 Ng linyang ito? 785 00:39:33,420 --> 00:39:33,750 >> Madla: Oo. 786 00:39:33,750 --> 00:39:35,745 Gawing curr ay katumbas curr-> susunod. 787 00:39:35,745 --> 00:39:39,690 788 00:39:39,690 --> 00:39:43,360 >> Jason HIRSCHHORN: Kaya na ay tama dahil kasalukuyang ay isang 789 00:39:43,360 --> 00:39:45,220 pointer sa isang node. 790 00:39:45,220 --> 00:39:48,550 At gusto namin ito upang tumuro sa susunod node ng kung ano ang pagkuha sa kasalukuyan 791 00:39:48,550 --> 00:39:49,930 itinuturo sa. 792 00:39:49,930 --> 00:39:54,410 Curr mismo ay may susunod. 793 00:39:54,410 --> 00:39:58,620 Ngunit kung kami ay i-update ang curr.next, namin ay ina-update ang aktwal na tala 794 00:39:58,620 --> 00:40:01,430 mismo, hindi kung saan ito pointer ay pagturo. 795 00:40:01,430 --> 00:40:02,680 Paano ang tungkol sa linyang ito, bagaman. 796 00:40:02,680 --> 00:40:05,160 797 00:40:05,160 --> 00:40:07,330 Avi? 798 00:40:07,330 --> 00:40:09,590 >> Madla: Nakaraan-> susunod ay katumbas curr. 799 00:40:09,590 --> 00:40:12,500 800 00:40:12,500 --> 00:40:19,440 >> Jason HIRSCHHORN: Kaya muli, kung nakaraan ay isang pointer sa isang node, nkrn-> susunod ay ang 801 00:40:19,440 --> 00:40:23,020 aktwal na pointer sa node. 802 00:40:23,020 --> 00:40:27,190 Kaya ito ay isang pag-update pointer sa isang node sa curr. 803 00:40:27,190 --> 00:40:28,570 Hindi namin nais na i-update isang pointer sa isang node. 804 00:40:28,570 --> 00:40:30,570 Gusto naming i-update ang nakaraang. 805 00:40:30,570 --> 00:40:31,850 Kaya kung paano ang gagawin namin na? 806 00:40:31,850 --> 00:40:34,250 >> Madla: Ito ay lamang ay Nakaraan. 807 00:40:34,250 --> 00:40:34,565 >> Jason HIRSCHHORN: Mag-right. 808 00:40:34,565 --> 00:40:35,560 Nakaraan ay isang pointer sa isang node. 809 00:40:35,560 --> 00:40:38,750 Ngayon kami ay ang pagbabago nito sa isang bagong pointer sa isang node. 810 00:40:38,750 --> 00:40:40,830 OK Ipaalam sa amin ilipat pababa. 811 00:40:40,830 --> 00:40:41,940 Sa wakas, ito huling kondisyon. 812 00:40:41,940 --> 00:40:44,896 Jeff, ano ang gagawin namin dito? 813 00:40:44,896 --> 00:40:47,515 >> Madla: Kung halaga ay katumbas ng curr-> n. 814 00:40:47,515 --> 00:40:51,030 815 00:40:51,030 --> 00:40:51,300 >> Jason HIRSCHHORN: Paumanhin. 816 00:40:51,300 --> 00:40:52,372 Oh aking kabutihan. 817 00:40:52,372 --> 00:40:54,330 Ano? 818 00:40:54,330 --> 00:40:55,580 Halaga == curr-> n. 819 00:40:55,580 --> 00:41:01,050 820 00:41:01,050 --> 00:41:02,300 Ano ang gagawin namin? 821 00:41:02,300 --> 00:41:04,760 822 00:41:04,760 --> 00:41:10,950 >> Madla: gusto mo palayain ang aming new_node, at pagkatapos ay gusto mong bumalik hindi totoo. 823 00:41:10,950 --> 00:41:21,410 824 00:41:21,410 --> 00:41:23,460 >> Jason HIRSCHHORN: Ito ay kung ano ang na namin ang nakasulat sa ngayon. 825 00:41:23,460 --> 00:41:25,710 Mayroon kahit ano ba ang kahit sino upang magdagdag ng mga bago namin gawin? 826 00:41:25,710 --> 00:41:35,460 827 00:41:35,460 --> 00:41:35,710 OK. 828 00:41:35,710 --> 00:41:36,960 Subukan na ito Hayaan. 829 00:41:36,960 --> 00:41:44,180 830 00:41:44,180 --> 00:41:46,110 Maaaring maabot Control dulo ng isang hindi-walang bisa function. 831 00:41:46,110 --> 00:41:48,310 Avi, ano kaya ang nangyari? 832 00:41:48,310 --> 00:41:51,380 >> Madla: Sigurado ka dapat na ilagay return totoo sa labas ng habang loop? 833 00:41:51,380 --> 00:41:53,900 834 00:41:53,900 --> 00:41:54,400 >> Jason HIRSCHHORN: hindi ko alam. 835 00:41:54,400 --> 00:41:54,780 Huwag ako gusto mong? 836 00:41:54,780 --> 00:41:55,520 >> Madla: Hindi na bale. 837 00:41:55,520 --> 00:41:56,350 Hindi. 838 00:41:56,350 --> 00:41:57,180 >> Jason HIRSCHHORN: Akshar? 839 00:41:57,180 --> 00:41:59,460 >> Madla: Sa tingin ko mo nilalayong ilagay return false sa dulo 840 00:41:59,460 --> 00:42:02,230 ng habang loop. 841 00:42:02,230 --> 00:42:03,270 >> Jason HIRSCHHORN: Kaya kung saan nais mo ito upang pumunta? 842 00:42:03,270 --> 00:42:05,270 >> Madla: Tulad ng sa labas ng habang loop. 843 00:42:05,270 --> 00:42:08,800 Kaya kung lumabas ka ng habang loop sa paraan na na naabot mo na ang dulo at 844 00:42:08,800 --> 00:42:09,980 walang nangyari. 845 00:42:09,980 --> 00:42:10,410 >> Jason HIRSCHHORN: OK. 846 00:42:10,410 --> 00:42:12,340 Kaya kung ano ang gagawin namin in dito? 847 00:42:12,340 --> 00:42:13,702 >> Madla: bumalik ka ng hindi totoo doon pati na rin. 848 00:42:13,702 --> 00:42:15,040 >> Jason HIRSCHHORN: Oh, namin gawin ito sa parehong mga lugar? 849 00:42:15,040 --> 00:42:15,650 >> Madla: Oo. 850 00:42:15,650 --> 00:42:16,900 >> Jason HIRSCHHORN: OK. 851 00:42:16,900 --> 00:42:24,840 852 00:42:24,840 --> 00:42:26,160 Dapat ba naming pumunta? 853 00:42:26,160 --> 00:42:26,980 Oh aking kabutihan. 854 00:42:26,980 --> 00:42:27,290 Sorry. 855 00:42:27,290 --> 00:42:28,480 Humihingi ako ng paumanhin para sa screen. 856 00:42:28,480 --> 00:42:30,530 Uri ng Ito ay freaking out sa amin. 857 00:42:30,530 --> 00:42:31,520 Kaya pumili ng opsyon. 858 00:42:31,520 --> 00:42:35,260 Zero, per ang code, kapalitan sa programa. 859 00:42:35,260 --> 00:42:36,700 Insert One isang bagay. 860 00:42:36,700 --> 00:42:37,990 Ni magpasok ng tatlong Hayaan. 861 00:42:37,990 --> 00:42:42,900 862 00:42:42,900 --> 00:42:45,380 Insert ay hindi matagumpay. 863 00:42:45,380 --> 00:42:46,500 Pupunta ako sa print out. 864 00:42:46,500 --> 00:42:48,050 Wala akong anumang bagay. 865 00:42:48,050 --> 00:42:48,450 OK. 866 00:42:48,450 --> 00:42:50,250 Siguro na noon ay isang parasitiko lamang. 867 00:42:50,250 --> 00:42:52,810 Magpasok ng isa. 868 00:42:52,810 --> 00:42:55,770 Hindi matagumpay. 869 00:42:55,770 --> 00:42:57,470 OK. 870 00:42:57,470 --> 00:43:02,400 Tumakbo sa pamamagitan GDB talaga mabilis Hayaang upang tingnan kung ano ang nangyayari. 871 00:43:02,400 --> 00:43:06,055 >> Tandaan gdb. / Ang pangalan ng iyong ay nakakakuha sa amin programa sa GDB. 872 00:43:06,055 --> 00:43:07,610 Iyan ba ang marami upang mahawakan? 873 00:43:07,610 --> 00:43:08,560 Ang flashing? 874 00:43:08,560 --> 00:43:10,400 Malamang. 875 00:43:10,400 --> 00:43:12,760 Isara ang iyong mga mata at tumagal ng ilang malalim breaths kung makakuha ka pagod 876 00:43:12,760 --> 00:43:13,580 ng pagtingin sa ito. 877 00:43:13,580 --> 00:43:14,200 Ako ay GDB. 878 00:43:14,200 --> 00:43:15,830 Ano ang unang bagay na gagawin ko sa GDB? 879 00:43:15,830 --> 00:43:17,050 Mayroon kaming upang malaman kung ano ang nangyayari sa dito. 880 00:43:17,050 --> 00:43:17,310 Ni makita Hayaan. 881 00:43:17,310 --> 00:43:21,650 Mayroon kaming anim na minuto upang figure kung ano ang nangyayari. 882 00:43:21,650 --> 00:43:22,900 Hatiin pangunahing. 883 00:43:22,900 --> 00:43:25,950 884 00:43:25,950 --> 00:43:28,130 At pagkatapos ay kung ano ang gagawin ko? 885 00:43:28,130 --> 00:43:29,180 Carlos? 886 00:43:29,180 --> 00:43:31,060 Magpatakbo. 887 00:43:31,060 --> 00:43:32,250 OK. 888 00:43:32,250 --> 00:43:34,160 Hayaan pumili ng isang pagpipilian. 889 00:43:34,160 --> 00:43:36,330 At kung ano ang ibig N gawin? 890 00:43:36,330 --> 00:43:38,480 Susunod. 891 00:43:38,480 --> 00:43:38,950 Oo. 892 00:43:38,950 --> 00:43:39,740 >> Madla: ba hindi mo banggitin - 893 00:43:39,740 --> 00:43:45,230 Hindi mo sabihin na ang ulo, ito ay nasimulan na null sa simula. 894 00:43:45,230 --> 00:43:47,140 Ngunit Akala ko kayo ay sinabi na noon ay OK. 895 00:43:47,140 --> 00:43:50,040 896 00:43:50,040 --> 00:43:52,640 >> Jason HIRSCHHORN: Sabihin pumunta - tingnan natin hayaan sa GDB, at pagkatapos ay gagamitin namin bumalik. 897 00:43:52,640 --> 00:43:54,910 Ngunit ito tunog tulad ng mayroon ka ilang mga ideya tungkol sa kung ano ang nangyayari sa. 898 00:43:54,910 --> 00:43:58,340 Kaya gusto namin upang magpasok ng isang bagay. 899 00:43:58,340 --> 00:43:59,390 OK. 900 00:43:59,390 --> 00:44:00,150 Kami ay isingit. 901 00:44:00,150 --> 00:44:00,770 Mangyaring magpasok ng isang int. 902 00:44:00,770 --> 00:44:01,990 Susubukan naming magpasok ng tatlo. 903 00:44:01,990 --> 00:44:03,000 At pagkatapos ay ako sa linyang ito. 904 00:44:03,000 --> 00:44:07,030 Paano pumunta ko sisimulan ang pag-debug ang insert kilalang function na? 905 00:44:07,030 --> 00:44:08,280 Oh aking kabutihan. 906 00:44:08,280 --> 00:44:10,990 907 00:44:10,990 --> 00:44:12,240 Iyan ay isang pulutong. 908 00:44:12,240 --> 00:44:14,372 909 00:44:14,372 --> 00:44:16,445 Ay na freaking out ng maraming? 910 00:44:16,445 --> 00:44:19,696 911 00:44:19,696 --> 00:44:21,680 >> Madla: Oh, namatay ito. 912 00:44:21,680 --> 00:44:22,930 >> Jason HIRSCHHORN: Kakalagay ko lang na nakuha ito. 913 00:44:22,930 --> 00:44:27,364 914 00:44:27,364 --> 00:44:28,310 OK. 915 00:44:28,310 --> 00:44:29,560 >> Madla: Siguro ito ang iba pang mga dulo ng wire. 916 00:44:29,560 --> 00:44:37,000 917 00:44:37,000 --> 00:44:39,470 >> Jason HIRSCHHORN: Wow. 918 00:44:39,470 --> 00:44:42,330 Kaya ang bottom line - 919 00:44:42,330 --> 00:44:43,470 ano ang sasabihin mo? 920 00:44:43,470 --> 00:44:46,040 >> Madla: sinabi ko ang kabalintunaan ng teknikal na mga kahirapan sa class na ito. 921 00:44:46,040 --> 00:44:46,410 >> Jason HIRSCHHORN: Alam ko. 922 00:44:46,410 --> 00:44:48,660 Kung lamang nagkaroon ako kontrol sa bahagi na iyon. 923 00:44:48,660 --> 00:44:49,910 [Hindi marinig] 924 00:44:49,910 --> 00:44:54,430 925 00:44:54,430 --> 00:44:55,400 Iyan mahusay. 926 00:44:55,400 --> 00:44:58,680 Bakit hindi ka guys simulan ang pag-iisip tungkol sa ano ang maaari naming nagawa na mali, 927 00:44:58,680 --> 00:45:01,140 at hindi namin pabalik sa 90 segundo. 928 00:45:01,140 --> 00:46:18,160 929 00:46:18,160 --> 00:46:23,010 >> Avica, ako pagpunta sa hilingin sa iyo kung paano pumunta sa loob insert_node upang i-debug ito. 930 00:46:23,010 --> 00:46:28,940 931 00:46:28,940 --> 00:46:31,460 Kaya ito ay kung saan huli naming huminto. 932 00:46:31,460 --> 00:46:35,110 Paano ko pumunta ako sa loob insert_node, Avica, upang suriin kung anong nangyayari sa? 933 00:46:35,110 --> 00:46:36,360 Ano utos GDB? 934 00:46:36,360 --> 00:46:41,050 935 00:46:41,050 --> 00:46:42,390 Break hindi gusto dalhin ako sa loob. 936 00:46:42,390 --> 00:46:46,200 937 00:46:46,200 --> 00:46:47,130 Alam ba ng makwis? 938 00:46:47,130 --> 00:46:48,240 >> Madla: Ano? 939 00:46:48,240 --> 00:46:51,780 >> Jason HIRSCHHORN: Ano GDB utos Gamitin ko ang umalis sa loob ito ng function? 940 00:46:51,780 --> 00:46:52,070 >> Madla: Hakbang? 941 00:46:52,070 --> 00:46:55,140 >> Jason HIRSCHHORN: Hakbang sa pamamagitan ng S. Iyon ay tumatagal sa akin sa loob. 942 00:46:55,140 --> 00:46:55,476 OK. 943 00:46:55,476 --> 00:46:58,040 New_node mallocing ilang espasyo. 944 00:46:58,040 --> 00:46:59,120 Iyon lahat kamukha nito pagpunta. 945 00:46:59,120 --> 00:47:00,370 Suriin ni new_node Hayaan. 946 00:47:00,370 --> 00:47:03,270 947 00:47:03,270 --> 00:47:05,410 Ito nakuha ang ilang mga memory address. 948 00:47:05,410 --> 00:47:07,440 Ni-check Hayaan - 949 00:47:07,440 --> 00:47:08,500 na tama ang lahat. 950 00:47:08,500 --> 00:47:12,220 Kaya lahat ng bagay dito ay anyong ay gumagana nang tama. 951 00:47:12,220 --> 00:47:14,530 >> Madla: Ano ang pagkakaiba sa sa pagitan ng P at display? 952 00:47:14,530 --> 00:47:16,160 >> Jason HIRSCHHORN: P ibig sabihin ay naka-print. 953 00:47:16,160 --> 00:47:19,310 At kaya ka nagtatanong kung ano ang mga pagkakaiba sa pagitan ng na at ito? 954 00:47:19,310 --> 00:47:22,330 Sa kasong ito, walang. 955 00:47:22,330 --> 00:47:26,960 Ngunit sa pangkalahatan ay mayroong mga ilang mga pagkakaiba. 956 00:47:26,960 --> 00:47:28,220 At dapat kang tumingin sa manu-manong ang GDB. 957 00:47:28,220 --> 00:47:29,560 Ngunit sa kasong ito, walang. 958 00:47:29,560 --> 00:47:31,460 May posibilidad naming gamitin ang naka-print na, bagaman, dahil hindi namin kailangan upang makagawa ng higit pa kaysa sa 959 00:47:31,460 --> 00:47:33,960 i-print ang isang solong halaga. 960 00:47:33,960 --> 00:47:34,640 >> OK. 961 00:47:34,640 --> 00:47:40,300 Kaya tayo sa 80 linya ng aming code, pagtatakda node * curr katumbas ng listahan. 962 00:47:40,300 --> 00:47:42,500 Ipaalam sa amin i-print out curr. 963 00:47:42,500 --> 00:47:45,260 964 00:47:45,260 --> 00:47:46,840 Ito ay katumbas ng listahan. 965 00:47:46,840 --> 00:47:48,850 Sweet. 966 00:47:48,850 --> 00:47:49,340 Maghintay. 967 00:47:49,340 --> 00:47:50,590 Ito ay katumbas ng isang bagay. 968 00:47:50,590 --> 00:47:53,680 969 00:47:53,680 --> 00:47:56,190 Hindi iyan mukhang tama. 970 00:47:56,190 --> 00:47:56,840 May pumunta namin. 971 00:47:56,840 --> 00:47:59,470 Ito ay dahil sa GDB, kanan, kung ito ang linya nandoon ka na 972 00:47:59,470 --> 00:48:00,330 ay hindi pa pinaandar. 973 00:48:00,330 --> 00:48:03,100 Kaya kailangan mo upang aktwal na nagta-type sa tabi ng maisagawa ang linya 974 00:48:03,100 --> 00:48:05,230 bago makita ang resulta nito. 975 00:48:05,230 --> 00:48:06,680 Kaya dito tayo. 976 00:48:06,680 --> 00:48:09,490 Naipatupad na lang namin ang linyang ito, nakaraang katumbas null. 977 00:48:09,490 --> 00:48:13,590 Kaya muli, kung i-print namin nakaraang hindi namin makikita ang anumang bagay kakaiba. 978 00:48:13,590 --> 00:48:18,680 Ngunit kung talagang execute namin na linya, tatanggalin namin makita 979 00:48:18,680 --> 00:48:20,380 na na linya nagtrabaho. 980 00:48:20,380 --> 00:48:21,060 >> Kaya mayroon kaming curr. 981 00:48:21,060 --> 00:48:23,180 Yaong parehong mga magandang. 982 00:48:23,180 --> 00:48:24,010 Mag-right? 983 00:48:24,010 --> 00:48:28,130 Ngayon ay handa kami sa linyang ito dito mismo. 984 00:48:28,130 --> 00:48:29,310 Habang curr ay hindi katumbas null. 985 00:48:29,310 --> 00:48:31,110 Well, kung ano ang ginagawa katumbas curr? 986 00:48:31,110 --> 00:48:32,450 Nakita lang namin ito equaled null. 987 00:48:32,450 --> 00:48:33,210 Naka-print na namin ito. 988 00:48:33,210 --> 00:48:35,110 Kukunin ko i-print ito muli. 989 00:48:35,110 --> 00:48:36,720 Kaya ay na habang loop pagpunta sa execute? 990 00:48:36,720 --> 00:48:37,270 >> Madla: Hindi. 991 00:48:37,270 --> 00:48:39,790 >> Jason HIRSCHHORN: Kaya kapag na-type ko na linya, makikita mo jumped namin ang lahat ng paraan 992 00:48:39,790 --> 00:48:41,390 pababa sa ilalim, bumalik hindi totoo. 993 00:48:41,390 --> 00:48:44,520 At pagkatapos ay kami ay pagpunta upang bumalik hindi totoo at bumalik sa aming programa at 994 00:48:44,520 --> 00:48:48,020 Sa kalaunan i-print out, tulad ng nakita natin, ang insert ay hindi matagumpay. 995 00:48:48,020 --> 00:48:51,010 Kaya, kahit sino ay may anumang mga ideya sa kung ano ang kailangan naming gawin upang ayusin ito? 996 00:48:51,010 --> 00:48:54,200 997 00:48:54,200 --> 00:48:57,570 Pupunta ako sa maghintay hanggang makita ko isang pares ng mga kamay pumunta up. 998 00:48:57,570 --> 00:48:58,830 Hindi namin maisagawa ito. 999 00:48:58,830 --> 00:49:01,660 Tandaan, ito ay ang unang bagay namin ang iyong ginagawa. 1000 00:49:01,660 --> 00:49:02,430 Hindi ako pagpunta sa gawin ng ilang. 1001 00:49:02,430 --> 00:49:03,670 Pupunta ako sa ginagawa ng ilan. 1002 00:49:03,670 --> 00:49:04,830 Dahil ilang Nangangahulugan dalawa. 1003 00:49:04,830 --> 00:49:07,620 Kukunin ko maghintay para sa higit sa dalawa. 1004 00:49:07,620 --> 00:49:10,690 >> Ang unang pagpapasok, curr, sa pamamagitan ng default ay katumbas null. 1005 00:49:10,690 --> 00:49:14,050 At ito loop executes lamang kung curr ay hindi null. 1006 00:49:14,050 --> 00:49:18,740 Kaya kung paano ang maaari kong makakuha ng paligid na ito? 1007 00:49:18,740 --> 00:49:19,990 Nakakakita ako ng tatlong mga kamay. 1008 00:49:19,990 --> 00:49:28,490 1009 00:49:28,490 --> 00:49:29,780 Kukunin ko maghintay para sa higit sa tatlong. 1010 00:49:29,780 --> 00:49:33,460 1011 00:49:33,460 --> 00:49:35,940 Marcus, ano ang iyong palagay? 1012 00:49:35,940 --> 00:49:37,730 >> Madla: Well, kung kailangan mo ito sa isakatuparan higit sa isang beses, mo lamang 1013 00:49:37,730 --> 00:49:39,948 baguhin ito sa isang do-loop habang. 1014 00:49:39,948 --> 00:49:41,250 >> Jason HIRSCHHORN: OK. 1015 00:49:41,250 --> 00:49:44,240 Makakaapekto ba na malutas ang aming mga problema, bagaman? 1016 00:49:44,240 --> 00:49:47,750 >> Madla: Sa kasong ito hindi dahil sa ang katotohanan na ang listahan ay walang laman. 1017 00:49:47,750 --> 00:49:52,150 Kaya pagkatapos mo marahil lamang kailangan upang magdagdag ng isang pahayag na kung loop labasan 1018 00:49:52,150 --> 00:49:55,312 pagkatapos ay mayroon kang upang maging sa dulo ng ang listahan, kung saang punto ka 1019 00:49:55,312 --> 00:49:56,562 maaaring magpasok lamang ito. 1020 00:49:56,562 --> 00:49:58,920 1021 00:49:58,920 --> 00:49:59,680 >> Jason HIRSCHHORN: gusto ko na. 1022 00:49:59,680 --> 00:50:00,500 Iyon ang akma. 1023 00:50:00,500 --> 00:50:03,390 Kung ang loop lumabas - 1024 00:50:03,390 --> 00:50:04,800 dahil ito ay bumalik maling dito. 1025 00:50:04,800 --> 00:50:08,220 Kaya kung ang loop labasan, pagkatapos kami ay sa sa dulo ng listahan, o marahil ang 1026 00:50:08,220 --> 00:50:10,690 magsimula ng isang listahan kung walang nasa ito, na kung saan ay katulad ng sa dulo. 1027 00:50:10,690 --> 00:50:12,770 Kaya ngayon gusto naming isingit isang bagay dito. 1028 00:50:12,770 --> 00:50:17,380 Kaya kung paano na code ay tumingin, Marcus? 1029 00:50:17,380 --> 00:50:21,600 >> Madla: Kung na nakuha mo ang node malloced, maaari mo lamang sabihin 1030 00:50:21,600 --> 00:50:25,400 new_node-> susunod ay katumbas null dahil ito ay dapat na sa dulo. 1031 00:50:25,400 --> 00:50:27,510 O new_node-> susunod ay katumbas null. 1032 00:50:27,510 --> 00:50:27,765 >> Jason HIRSCHHORN: OK. 1033 00:50:27,765 --> 00:50:28,190 Sorry. 1034 00:50:28,190 --> 00:50:35,760 New_node-> susunod ay katumbas null dahil kami sa dulo. 1035 00:50:35,760 --> 00:50:36,460 Hindi iyon ilagay ito in 1036 00:50:36,460 --> 00:50:37,710 Paano ko ilalagay namin ito sa listahan? 1037 00:50:37,710 --> 00:50:46,130 1038 00:50:46,130 --> 00:50:46,460 Mag-right. 1039 00:50:46,460 --> 00:50:47,750 Iyon lang ang pag-set ito patas sa. 1040 00:50:47,750 --> 00:50:50,940 Walang kung paano ginagawa namin talaga ilagay ito sa listahan? 1041 00:50:50,940 --> 00:50:54,170 Ano ang nagtuturo sa dulo ng listahan? 1042 00:50:54,170 --> 00:50:56,090 >> Madla: Head. 1043 00:50:56,090 --> 00:50:57,566 >> Jason HIRSCHHORN: Paumanhin? 1044 00:50:57,566 --> 00:50:59,440 >> Madla: Head nakaturo sa dulo ng listahan. 1045 00:50:59,440 --> 00:51:01,480 >> Jason HIRSCHHORN: Kung walang nasa ang listahan, ulo ay nagtuturo sa 1046 00:51:01,480 --> 00:51:04,170 dulo ng listahan. 1047 00:51:04,170 --> 00:51:06,920 Kaya makikita na gumagana para sa unang insertion. 1048 00:51:06,920 --> 00:51:09,810 Paano ang tungkol sa kung mayroong mga ilang bagay sa listahan? 1049 00:51:09,810 --> 00:51:12,470 Kaysa hindi namin nais na i-set magtungo ang katumbas ng new_node. 1050 00:51:12,470 --> 00:51:13,790 Ano ang gusto naming gawin doon? 1051 00:51:13,790 --> 00:51:15,610 Oo? 1052 00:51:15,610 --> 00:51:16,860 Marahil nakaraang. 1053 00:51:16,860 --> 00:51:23,560 1054 00:51:23,560 --> 00:51:24,810 Makakaapekto ba na gumagana? 1055 00:51:24,810 --> 00:51:28,950 1056 00:51:28,950 --> 00:51:33,050 Isipin na nakaraang lamang tagaturo patungo sa isang node. 1057 00:51:33,050 --> 00:51:34,770 At nakaraang ay isang lokal na variable. 1058 00:51:34,770 --> 00:51:38,080 Kaya ang linyang ito ay magse-set ng isang lokal na variable, nakaraang, na katumbas ng o 1059 00:51:38,080 --> 00:51:39,380 nakaturo sa mga ito bagong node. 1060 00:51:39,380 --> 00:51:41,500 Iyan ay hindi talagang ilagay ito sa aming listahan, bagaman. 1061 00:51:41,500 --> 00:51:44,330 Paano ko ilalagay namin ito sa aming listahan? 1062 00:51:44,330 --> 00:51:45,620 Akchar? 1063 00:51:45,620 --> 00:51:46,870 >> Madla: Sa tingin ko sa iyo gawin kasalukuyang-> susunod. 1064 00:51:46,870 --> 00:51:50,186 1065 00:51:50,186 --> 00:51:52,550 >> Jason HIRSCHHORN: OK. 1066 00:51:52,550 --> 00:51:54,010 curr-> susunod. 1067 00:51:54,010 --> 00:51:58,768 Kaya muli, ang tanging kadahilanan kami pababa dito ay, kung ano ang ginagawa kasalukuyang katumbas? 1068 00:51:58,768 --> 00:51:59,760 >> Madla: Kapantay null. 1069 00:51:59,760 --> 00:52:01,790 >> Jason HIRSCHHORN: At kaya kung ano ang mangyayari kung gagawin namin null-> susunod? 1070 00:52:01,790 --> 00:52:02,810 Ano ang gagawin namin pagpunta upang makakuha? 1071 00:52:02,810 --> 00:52:04,060 Susubukan naming makakuha ng segmentation fault. 1072 00:52:04,060 --> 00:52:06,600 1073 00:52:06,600 --> 00:52:08,880 >> Madla: Do curr ay katumbas null. 1074 00:52:08,880 --> 00:52:10,760 >> Jason HIRSCHHORN: Iyon ang parehong bagay bilang nakaraan, bagaman, dahil mayroong 1075 00:52:10,760 --> 00:52:12,820 isang lokal na variable kami ng pagtatakda katumbas ito bagong node. 1076 00:52:12,820 --> 00:52:16,680 1077 00:52:16,680 --> 00:52:20,920 Sabihin bumalik sa ating larawan ng pagpasok ng isang bagay. 1078 00:52:20,920 --> 00:52:25,500 Sabihing kami ng pagpasok sa dulo ng listahan, kaya dito mismo. 1079 00:52:25,500 --> 00:52:30,010 Mayroon kaming isang kasalukuyang pointer na nakaturo sa mga null at isang nakaraang point 1080 00:52:30,010 --> 00:52:32,800 na tumuturo sa 8. 1081 00:52:32,800 --> 00:52:35,330 Kaya kung ano ang kailangan namin upang i-update, Avi? 1082 00:52:35,330 --> 00:52:36,680 >> Madla: Nakaraang-> susunod? 1083 00:52:36,680 --> 00:52:41,980 >> Jason HIRSCHHORN: Nakaraang-> susunod ay kung ano ang gusto naming i-update dahil na 1084 00:52:41,980 --> 00:52:44,960 ang talagang ipasok ito sa sa dulo ng listahan. 1085 00:52:44,960 --> 00:52:47,220 Mayroon pa kaming isa bug, bagaman, na aming pagpunta upang tumakbo sa. 1086 00:52:47,220 --> 00:52:50,090 Ano iyan bug? 1087 00:52:50,090 --> 00:52:50,790 Oo? 1088 00:52:50,790 --> 00:52:53,860 >> Madla: Ito ay pagpunta upang bumalik hindi totoo sa kasong ito? 1089 00:52:53,860 --> 00:52:56,380 >> Jason HIRSCHHORN: Oh, ay ay pagpunta sa bumalik hindi totoo. 1090 00:52:56,380 --> 00:52:57,430 Subalit mayroong isa pang bug. 1091 00:52:57,430 --> 00:52:58,930 Kaya kailangan nating ilagay sa mga bumabalik na totoo. 1092 00:52:58,930 --> 00:53:01,370 >> Madla: ba ang nakaraang pa rin pantay null sa tuktok ng listahan? 1093 00:53:01,370 --> 00:53:03,645 >> Jason HIRSCHHORN: Kaya nakaraang pa rin ay katumbas ng null sa pinakadulo simula. 1094 00:53:03,645 --> 00:53:07,480 1095 00:53:07,480 --> 00:53:10,440 Kaya kung paano maaari naming makakuha ng higit sa na? 1096 00:53:10,440 --> 00:53:10,950 Oo? 1097 00:53:10,950 --> 00:53:15,280 >> Madla: Sa tingin ko ang maaari mong gawin ng isang tseke bago ang habang loop upang makita kung ito ay 1098 00:53:15,280 --> 00:53:16,610 isang walang laman na listahan. 1099 00:53:16,610 --> 00:53:17,000 >> Jason HIRSCHHORN: OK. 1100 00:53:17,000 --> 00:53:17,710 Kaya sabihin pumunta dito. 1101 00:53:17,710 --> 00:53:18,530 Gumawa ng isang tseke. 1102 00:53:18,530 --> 00:53:19,380 Kung - 1103 00:53:19,380 --> 00:53:20,770 >> Madla: Kaya kung ulo katumbas ay katumbas null. 1104 00:53:20,770 --> 00:53:24,300 1105 00:53:24,300 --> 00:53:26,320 >> Jason HIRSCHHORN: Kung ulo katumbas ay katumbas null - 1106 00:53:26,320 --> 00:53:27,790 na kailangan sabihin sa amin kung ito ay isang walang laman na listahan. 1107 00:53:27,790 --> 00:53:31,090 >> Madla: At pagkatapos mo gawin ulo ay katumbas ng bagong. 1108 00:53:31,090 --> 00:53:34,740 >> Jason HIRSCHHORN: Head ay katumbas ng new_node? 1109 00:53:34,740 --> 00:53:35,730 At ano pa ang kailangan naming gawin? 1110 00:53:35,730 --> 00:53:37,020 >> Madla: At pagkatapos mong nagbabalik ng tunay. 1111 00:53:37,020 --> 00:53:37,535 >> Jason HIRSCHHORN: Hindi masyadong. 1112 00:53:37,535 --> 00:53:38,785 Kami ay kulang ng isa hakbang. 1113 00:53:38,785 --> 00:53:41,590 1114 00:53:41,590 --> 00:53:43,710 >> Madla: New_node susunod May upang tumuro sa null. 1115 00:53:43,710 --> 00:53:44,570 >> Jason HIRSCHHORN: Eksaktong, Alden. 1116 00:53:44,570 --> 00:53:46,600 At pagkatapos ay maaari naming nagbabalik ng tunay. 1117 00:53:46,600 --> 00:53:47,560 OK. 1118 00:53:47,560 --> 00:53:51,630 Ngunit pa rin ito ng isang magandang ideya na gumawa ng mga bagay sa dulo ng listahan, tama? 1119 00:53:51,630 --> 00:53:51,950 Ayos lang. 1120 00:53:51,950 --> 00:53:54,450 Kami ay maaaring aktwal na makakuha pa rin sa dulo ng listahan. 1121 00:53:54,450 --> 00:53:57,870 Kaya ay ang code na ito fine, kung hindi kami sa matatapos ang listahan at mayroong ilang mga 1122 00:53:57,870 --> 00:53:59,120 bagay sa listahan? 1123 00:53:59,120 --> 00:54:01,830 1124 00:54:01,830 --> 00:54:02,040 Mag-right? 1125 00:54:02,040 --> 00:54:03,540 Dahil mayroon pa rin kaming ideya Marcus ni. 1126 00:54:03,540 --> 00:54:06,870 Maaari naming lumabas ito dahil loop Ikinalulungkot namin sa dulo ng listahan. 1127 00:54:06,870 --> 00:54:09,308 Kaya gusto namin ito pa rin Code down na dito? 1128 00:54:09,308 --> 00:54:10,520 >> Madla: Oo. 1129 00:54:10,520 --> 00:54:11,000 >> Jason HIRSCHHORN: Oo. 1130 00:54:11,000 --> 00:54:14,190 At kung ano ang kailangan namin upang baguhin ito sa? 1131 00:54:14,190 --> 00:54:15,440 True. 1132 00:54:15,440 --> 00:54:19,580 1133 00:54:19,580 --> 00:54:21,640 Gumagana ba na tunog mahusay sa lahat ng tao sa ngayon? 1134 00:54:21,640 --> 00:54:22,420 Sinuman ay may anumang mga - 1135 00:54:22,420 --> 00:54:23,480 Avi, ang mayroon kang isang bagay upang idagdag? 1136 00:54:23,480 --> 00:54:23,920 >> Madla: Hindi. 1137 00:54:23,920 --> 00:54:25,276 >> Jason HIRSCHHORN: OK. 1138 00:54:25,276 --> 00:54:27,010 Kaya gumawa kami ng ilang mga pagbabago. 1139 00:54:27,010 --> 00:54:29,540 Gumawa kami ng mga ito check bago namin nagpunta sa para sa isang walang laman na listahan. 1140 00:54:29,540 --> 00:54:31,790 Kaya nagsagawa kami ng pag-aalaga ng isang walang laman na listahan. 1141 00:54:31,790 --> 00:54:35,500 At dito kinuha namin pag-aalaga ng pagpasok isang bagay sa dulo ng listahan. 1142 00:54:35,500 --> 00:54:38,930 Kaya ito ay tila tulad nito habang loop pagkuha pag-aalaga ng mga bagay sa pagitan, 1143 00:54:38,930 --> 00:54:41,920 sa isang lugar sa listahan kung may mga bagay sa listahan. 1144 00:54:41,920 --> 00:54:42,280 >> OK. 1145 00:54:42,280 --> 00:54:44,310 Ipaalam sa amin patakbuhin ang program na ito muli. 1146 00:54:44,310 --> 00:54:50,170 1147 00:54:50,170 --> 00:54:50,755 Hindi matagumpay. 1148 00:54:50,755 --> 00:54:52,190 >> Madla: Hindi mo ginawa ito. 1149 00:54:52,190 --> 00:54:53,940 >> Jason HIRSCHHORN: Oh, Hindi ko gawin itong. 1150 00:54:53,940 --> 00:54:56,250 Magandang punto, Michael. 1151 00:54:56,250 --> 00:54:57,500 Magdagdag ng isang make-link Hayaan. 1152 00:54:57,500 --> 00:55:01,590 1153 00:55:01,590 --> 00:55:04,830 Line 87 mayroong isang error. 1154 00:55:04,830 --> 00:55:05,420 Line 87. 1155 00:55:05,420 --> 00:55:06,600 Alden, ito ang linya na iyong ibinigay sa akin. 1156 00:55:06,600 --> 00:55:08,962 Ano ang mali? 1157 00:55:08,962 --> 00:55:10,710 >> Madla: upang maging sa null Mayroon itong. 1158 00:55:10,710 --> 00:55:11,000 >> Jason HIRSCHHORN: Mahusay. 1159 00:55:11,000 --> 00:55:11,630 Akmang-akma. 1160 00:55:11,630 --> 00:55:13,290 Dapat itong maging null. 1161 00:55:13,290 --> 00:55:15,210 Muli ni gumawa Hayaan. 1162 00:55:15,210 --> 00:55:17,220 Sumulat ng libro. 1163 00:55:17,220 --> 00:55:17,890 OK. 1164 00:55:17,890 --> 00:55:19,400 Ni magpasok ng tatlong Hayaan. 1165 00:55:19,400 --> 00:55:20,570 Insert Ang ay matagumpay. 1166 00:55:20,570 --> 00:55:21,660 Mag-print ng ito Hayaan. 1167 00:55:21,660 --> 00:55:23,590 Oh, kung lamang maaari naming suriin. 1168 00:55:23,590 --> 00:55:25,500 Ngunit hindi pa namin nagawa ang i-print ang function pa. 1169 00:55:25,500 --> 00:55:27,840 Hayaan magpasok ng ibang bagay. 1170 00:55:27,840 --> 00:55:29,090 Ano ang dapat naming ilagay? 1171 00:55:29,090 --> 00:55:31,120 1172 00:55:31,120 --> 00:55:31,940 >> Madla: Seven. 1173 00:55:31,940 --> 00:55:33,340 >> Jason HIRSCHHORN: Seven? 1174 00:55:33,340 --> 00:55:34,590 >> Madla: Oo. 1175 00:55:34,590 --> 00:55:38,680 1176 00:55:38,680 --> 00:55:39,780 >> Jason HIRSCHHORN: Mayroon kaming seg fault. 1177 00:55:39,780 --> 00:55:43,760 Kaya Nakakuha kami ng isa, ngunit namin malinaw na Hindi maaaring makakuha ng dalawang. 1178 00:55:43,760 --> 00:55:45,690 Ito ay 05:07. 1179 00:55:45,690 --> 00:55:48,370 Kaya maaari naming i-debug ito para sa tatlong minuto. 1180 00:55:48,370 --> 00:55:51,240 Ngunit Pupunta ako upang mag-iwan sa amin dito at lumipat sa hash table. 1181 00:55:51,240 --> 00:55:54,290 Ngunit muli, ang mga sagot para sa ang code na ito Ay ko ito i-email sa iyo sa isang bit. 1182 00:55:54,290 --> 00:55:55,440 Kami ay napakalapit na ito. 1183 00:55:55,440 --> 00:55:58,300 Masidhing kong hinihikayat ka upang malaman kung ano ang nangyayari sa dito at ayusin ito. 1184 00:55:58,300 --> 00:56:02,400 Kaya magpapadala ako sa iyo ng email ang code na ito bilang well plus solusyon ang - 1185 00:56:02,400 --> 00:56:03,670 marahil ang solusyon sa susunod. 1186 00:56:03,670 --> 00:56:05,110 Una ang code na ito. 1187 00:56:05,110 --> 00:56:08,290 >> Ang iba pang mga bagay na gusto kong gawin bago namin tapusin ay hindi kami nabakante ng kahit ano. 1188 00:56:08,290 --> 00:56:10,370 Kaya gusto kong ipakita sa iyo kung ano valgrind kamukha. 1189 00:56:10,370 --> 00:56:14,310 Kung nagpapatakbo namin ang mga hangganan ng valgrind sa aming programa,. / naka-link. 1190 00:56:14,310 --> 00:56:22,540 Muli, ayon sa slide na ito, kami dapat tumakbo valgrind na may ilang mga uri ng 1191 00:56:22,540 --> 00:56:26,410 pagpipiliang ito, sa kasong ito - Tumagas-check = puno na. 1192 00:56:26,410 --> 00:56:27,660 Kaya hayaan sumulat ng valgrind - Tumagas-check = puno na. 1193 00:56:27,660 --> 00:56:31,910 1194 00:56:31,910 --> 00:56:35,080 Kaya ito ay tatakbo valgrind sa aming programa. 1195 00:56:35,080 --> 00:56:37,000 At ngayon ang programa aktwal na tumatakbo. 1196 00:56:37,000 --> 00:56:40,190 Kaya kami ay pagpunta sa patakbuhin ito tulad lamang ng bago, ilagay ang isang bagay in 1197 00:56:40,190 --> 00:56:40,830 Pupunta ako sa ilalagay sa tatlo. 1198 00:56:40,830 --> 00:56:41,790 Iyon ay gumagana. 1199 00:56:41,790 --> 00:56:43,202 Hindi ako pagpunta sa subukan ang ilalagay sa isang bagay iba dahil kami ay pagpunta sa 1200 00:56:43,202 --> 00:56:44,710 makakuha ng isang seg hindi totoo sa kasong iyon. 1201 00:56:44,710 --> 00:56:46,700 Kaya ako lamang ang pagpunta sa tumigil. 1202 00:56:46,700 --> 00:56:50,160 >> At ngayon mo makita down na dito tumagas at buod magbunton. 1203 00:56:50,160 --> 00:56:52,310 Ito ang mga mahusay na mga bagay na gusto mong i-check out. 1204 00:56:52,310 --> 00:56:56,780 Kaya ang buod magbunton - sinasabi nito, sa paggamit sa exit - walong bytes sa isang bloke. 1205 00:56:56,780 --> 00:56:58,370 Iyon isang bloke ay ang node malloced namin. 1206 00:56:58,370 --> 00:57:02,230 Michael, sinabi mo bago ang isang node ay walong kagat dahil mayroon itong mga integer 1207 00:57:02,230 --> 00:57:02,680 at ang pointer. 1208 00:57:02,680 --> 00:57:04,550 Kaya iyon ang aming mga node. 1209 00:57:04,550 --> 00:57:08,170 At pagkatapos ay sinasabi nito na ginamit namin malloc pitong beses at hindi na namin napalaya 1210 00:57:08,170 --> 00:57:08,940 isang bagay anim na beses. 1211 00:57:08,940 --> 00:57:13,680 Ngunit hindi namin tinatawag na libre, kaya wala akong mga ideya kung ano ito ay pakikipag-usap tungkol sa. 1212 00:57:13,680 --> 00:57:18,490 >> Ngunit magkasiya ito upang sabihin na kapag ang iyong nagpapatakbo ng programa, malloc ay tinatawag na 1213 00:57:18,490 --> 00:57:20,330 sa ilang iba pang mga lugar na aming Hindi kailangang mag-alala tungkol sa. 1214 00:57:20,330 --> 00:57:22,460 Kaya malloc ay marahil na tinatawag na sa ilang mga lugar. 1215 00:57:22,460 --> 00:57:24,480 Hindi namin kailangang mag-alala kung saan. 1216 00:57:24,480 --> 00:57:26,240 Ngunit talaga ito sa amin. 1217 00:57:26,240 --> 00:57:27,380 Ang unang linya ay sa amin. 1218 00:57:27,380 --> 00:57:28,320 Iniwan namin na bloke. 1219 00:57:28,320 --> 00:57:30,330 At maaari mong makita na dito sa buod tumagas. 1220 00:57:30,330 --> 00:57:31,950 Pa rin naaabot - 1221 00:57:31,950 --> 00:57:32,930 walong bytes sa isang bloke. 1222 00:57:32,930 --> 00:57:34,100 Nangangahulugan iyon na memorya - 1223 00:57:34,100 --> 00:57:35,730 na-leaked namin na memorya. 1224 00:57:35,730 --> 00:57:37,570 Talagang mawawala - 1225 00:57:37,570 --> 00:57:38,770 isang bagay ay nawala para sa mabuti. 1226 00:57:38,770 --> 00:57:40,590 Sa pangkalahatan, hindi mo makita ng kahit ano doon. 1227 00:57:40,590 --> 00:57:44,780 Pa rin naaabot ay pangkalahatan kung saan makikita mo ang mga bagay, kung saan makikita mo gusto 1228 00:57:44,780 --> 00:57:48,900 upang tumingin upang makita kung ano ang code dapat mong nabakante ngunit nakalimutan upang palayain. 1229 00:57:48,900 --> 00:57:53,170 >> At pagkatapos ay kung ito ay hindi ang kaso, kung ginawa namin libre lahat ng bagay, 1230 00:57:53,170 --> 00:57:54,360 maaari naming suriin na. 1231 00:57:54,360 --> 00:57:57,330 Tumakbo ni lamang ang programa Hayaan hindi paglalagay sa kahit ano. 1232 00:57:57,330 --> 00:57:59,800 Makikita mo ang down na dito sa paggamit sa exit - 1233 00:57:59,800 --> 00:58:01,310 zero bytes sa zero bloke. 1234 00:58:01,310 --> 00:58:06,310 Ibig sabihin namin ay may walang kaliwa kapag lumabas sa programang ito. 1235 00:58:06,310 --> 00:58:12,090 Kaya bago i-in pset6, patakbuhin valgrind at siguraduhin na hindi mo na kailangang 1236 00:58:12,090 --> 00:58:15,310 anumang memory paglabas sa iyong programa. 1237 00:58:15,310 --> 00:58:17,910 Kung mayroon kang anumang mga katanungan na may valgrind, huwag mag-atubiling makipag-ugnay. 1238 00:58:17,910 --> 00:58:18,700 Ngunit ito ay kung paano mo gamitin ito. 1239 00:58:18,700 --> 00:58:20,890 Napakasimpleng - makita kung mayroon sa paggamit sa exit - 1240 00:58:20,890 --> 00:58:22,270 anumang bytes sa anumang mga block. 1241 00:58:22,270 --> 00:58:27,890 1242 00:58:27,890 --> 00:58:29,580 >> Kaya tayo ay nagtatrabaho sa insert node. 1243 00:58:29,580 --> 00:58:33,840 Mayroon akong dalawang iba pang mga pag-andar dito - i-print ang mga node at libreng mga node. 1244 00:58:33,840 --> 00:58:37,780 Muli, ang mga ito ay mga pag-andar na pagpunta sa maging mahusay para sa iyo na pagsasanay 1245 00:58:37,780 --> 00:58:40,990 dahil sila ay makakatulong sa iyo na hindi lamang sa mga sample na magsanay ngunit din 1246 00:58:40,990 --> 00:58:42,180 sa ang problema set. 1247 00:58:42,180 --> 00:58:44,230 Sila-map sa medyo malapit sa mga bagay ka ng pagpunta sa mayroon na gawin sa 1248 00:58:44,230 --> 00:58:45,010 itakda ang problema. 1249 00:58:45,010 --> 00:58:47,640 Subalit ko nais upang matiyak na pindutin namin sa lahat ng bagay. 1250 00:58:47,640 --> 00:58:50,400 At hash table ay mahalaga upang din kung ano ang aming ginagawa sa seksyon na ito 1251 00:58:50,400 --> 00:58:51,980 linggo - o sa hanay problema. 1252 00:58:51,980 --> 00:58:55,200 >> Kaya kami ay pagpunta upang tapusin ang seksyon pakikipag-usap tungkol sa hash table. 1253 00:58:55,200 --> 00:58:58,140 Kung napansin mo ako na ginawa ng isang maliit na hash table. 1254 00:58:58,140 --> 00:59:00,020 Iyon ay hindi kung ano ang aming pinag-uusapan tungkol sa, gayunpaman. 1255 00:59:00,020 --> 00:59:03,540 Pinag-uusapan namin ang tungkol sa isang iba't ibang mga uri ng hash talahanayan. 1256 00:59:03,540 --> 00:59:07,300 At sa kanyang core, isang hash talahanayan ay wala ng higit sa isang 1257 00:59:07,300 --> 00:59:08,860 array plus isang hash. 1258 00:59:08,860 --> 00:59:11,150 Kami ay pagpunta sa makipag-usap para sa isang bit lamang sa tiyakin na lahat ng tao naiintindihan kung ano ang isang 1259 00:59:11,150 --> 00:59:12,110 hash ay. 1260 00:59:12,110 --> 00:59:15,420 At ako na nagsasabi sa iyo ngayon na ito ay walang anuman higit sa dalawang bagay - 1261 00:59:15,420 --> 00:59:18,590 isang array at isang hash. 1262 00:59:18,590 --> 00:59:20,716 At narito ang mga hakbang na ito sa pamamagitan ng na kung saan ito ay nagpapatakbo. 1263 00:59:20,716 --> 00:59:31,560 1264 00:59:31,560 --> 00:59:32,810 >> Mayroong aming array. 1265 00:59:32,810 --> 00:59:38,460 1266 00:59:38,460 --> 00:59:39,460 Mayroong aming mga function. 1267 00:59:39,460 --> 00:59:43,180 Sa partikular, hash function kailangan upang gawin ang isang pares ng mga bagay sa mga ito. 1268 00:59:43,180 --> 00:59:45,040 Pupunta ako sa partikular na makipag-usap tungkol itakda ang problemang ito. 1269 00:59:45,040 --> 00:59:46,450 Marahil ito ay pagpunta sa kumuha sa isang string. 1270 00:59:46,450 --> 00:59:50,570 1271 00:59:50,570 --> 00:59:51,770 At kung ano ang ito ng pagpunta sa bumalik? 1272 00:59:51,770 --> 00:59:52,640 Anong uri ng data? 1273 00:59:52,640 --> 00:59:54,260 Alden? 1274 00:59:54,260 --> 00:59:55,760 Ibalik ang iyong pag-andar ng hash? 1275 00:59:55,760 --> 00:59:58,760 Ang isang integer. 1276 00:59:58,760 --> 01:00:01,700 Kaya ito ay kung ano ang hash Binubuo ang talahanayan ng - 1277 01:00:01,700 --> 01:00:05,430 isang talahanayan sa anyo ng mga array at isang hash. 1278 01:00:05,430 --> 01:00:06,010 Paano ito gumagana? 1279 01:00:06,010 --> 01:00:07,300 Gumagana ito sa tatlong hakbang. 1280 01:00:07,300 --> 01:00:08,740 Bigyan namin ito isang key. 1281 01:00:08,740 --> 01:00:11,470 Sa kasong ito, ipapakita namin bigyan ito ng isang string. 1282 01:00:11,470 --> 01:00:18,140 Tinatawag namin ang hash bawat hakbang isa sa key at makakakuha tayo ng isang halaga. 1283 01:00:18,140 --> 01:00:20,310 >> Sa partikular, magpapadala kami sabihin makakakuha tayo ng isang integer. 1284 01:00:20,310 --> 01:00:25,630 Integer na, mayroong napaka-tukoy na mga limitasyon sa kung ano na integer ay maaaring maging. 1285 01:00:25,630 --> 01:00:28,880 Sa halimbawang ito, ang aming array ay ng laki tatlo. 1286 01:00:28,880 --> 01:00:32,330 Kaya kung ano ang mga numero ay maaaring maging na integer. 1287 01:00:32,330 --> 01:00:35,970 Ano ang hanay ng mga wastong halaga para sa na integer, ang uri pagbabalik ng ito 1288 01:00:35,970 --> 01:00:37,220 hash? 1289 01:00:37,220 --> 01:00:40,440 1290 01:00:40,440 --> 01:00:42,110 Zero, isa at dalawa. 1291 01:00:42,110 --> 01:00:46,060 Ang punto ng hash ay upang tayahin ang lugar sa array 1292 01:00:46,060 --> 01:00:47,790 kung saan ang aming mga key ay pagpunta. 1293 01:00:47,790 --> 01:00:51,290 May tatlong lamang na posible mga lugar dito - 1294 01:00:51,290 --> 01:00:52,130 zero, isa, o dalawa. 1295 01:00:52,130 --> 01:00:55,360 Kaya mas mahusay na ito function na pagbalik zero, isa, o dalawa. 1296 01:00:55,360 --> 01:00:58,740 Ang ilang mga wastong indice sa array. 1297 01:00:58,740 --> 01:01:02,770 >> At pagkatapos ay depende sa kung saan ito ay nagbabalik, maaari mong makita doon array bukas 1298 01:01:02,770 --> 01:01:03,730 bracket ang halaga. 1299 01:01:03,730 --> 01:01:05,800 Iyon ay kung saan ilalagay namin ang key. 1300 01:01:05,800 --> 01:01:11,280 Kaya itapon natin sa kalabasa, makuha namin ang zero. 1301 01:01:11,280 --> 01:01:15,540 Sa array bracket 0, inilalagay namin ang kalabasa. 1302 01:01:15,540 --> 01:01:21,070 Ihagis namin sa pusa, makuha namin ang isa. 1303 01:01:21,070 --> 01:01:24,110 Ilagay namin pusa sa isa. 1304 01:01:24,110 --> 01:01:25,480 Naglaan na kami ng spider. 1305 01:01:25,480 --> 01:01:26,710 Kumuha na namin ang dalawa. 1306 01:01:26,710 --> 01:01:30,200 Ilagay namin spider sa array bracket dalawa. 1307 01:01:30,200 --> 01:01:32,300 Mas kaya maganda kung ito ay nagtrabaho tulad na. 1308 01:01:32,300 --> 01:01:35,570 Ngunit sa kasamaang-palad, dahil kakailanganin naming makita, ito ay mas komplikado ng kaunti. 1309 01:01:35,570 --> 01:01:37,570 >> Bago kami makarating doon, anumang mga katanungan tungkol sa mga pangunahing 1310 01:01:37,570 --> 01:01:38,820 set-up ng isang hash talahanayan? 1311 01:01:38,820 --> 01:01:49,050 1312 01:01:49,050 --> 01:01:51,940 Ito ay isang imahe ng eksaktong kung ano ang namin ang iginuhit sa board. 1313 01:01:51,940 --> 01:01:55,420 Ngunit dahil iginuhit namin ito sa board, ako ako ay hindi pagpunta sa pumunta sa ito sa karagdagang. 1314 01:01:55,420 --> 01:02:00,430 Mahalaga key, ang magic itim na kahon - o sa kasong ito, tial kahon - ng isang 1315 01:02:00,430 --> 01:02:02,410 hash naglalagay ng mga ito sa mga bucket. 1316 01:02:02,410 --> 01:02:04,690 At sa halimbawang ito kami ay hindi paglalagay ng pangalan. 1317 01:02:04,690 --> 01:02:07,880 Kami ay paglalagay ng mga nauugnay telepono bilang ng mga pangalan sa mga bucket. 1318 01:02:07,880 --> 01:02:10,430 Ngunit maaari mo nang napakahusay lamang ilagay sa pangalan sa mga bucket. 1319 01:02:10,430 --> 01:02:12,950 >> Ito ay lamang ng isang larawan ng kung ano ang kami iginuhit sa board. 1320 01:02:12,950 --> 01:02:14,460 Mayroon kaming mga potensyal na pitfalls, bagaman. 1321 01:02:14,460 --> 01:02:17,470 At mayroong dalawang sa mga partikular na slides na gusto kong pumunta sa ibabaw. 1322 01:02:17,470 --> 01:02:20,230 Ang unang isa ay tungkol sa isang hash. 1323 01:02:20,230 --> 01:02:22,620 Kaya't tinanong ko ang pinag-uusapan, kung ano gumagawa ng isang mahusay na pag-andar ng hash? 1324 01:02:22,620 --> 01:02:24,220 Ibinibigay ko ng dalawang mga sagot. 1325 01:02:24,220 --> 01:02:26,630 Ang una ay na ito ay deterministic. 1326 01:02:26,630 --> 01:02:29,660 Sa konteksto ng hash function, kung ano ang ibig sabihin nito? 1327 01:02:29,660 --> 01:02:37,840 1328 01:02:37,840 --> 01:02:39,282 Oo? 1329 01:02:39,282 --> 01:02:42,850 >> Madla: Maaari itong mahanap ang index sa pare-pareho ang oras? 1330 01:02:42,850 --> 01:02:43,810 >> Jason HIRSCHHORN: Iyon ay hindi kung ano ang ibig sabihin nito. 1331 01:02:43,810 --> 01:02:44,725 Ngunit iyon lamang ang isang magandang hulaan. 1332 01:02:44,725 --> 01:02:46,100 Kahit sino pa ang magkaroon ng isang hula sa kung ano ang ibig sabihin nito? 1333 01:02:46,100 --> 01:02:47,780 Iyon isang mahusay na pag-andar ng hash ay deterministic? 1334 01:02:47,780 --> 01:02:48,280 Annie? 1335 01:02:48,280 --> 01:02:51,680 >> Madla: Iyon ay maaari lamang mai-map ng key sa isang lugar sa hash table. 1336 01:02:51,680 --> 01:02:53,070 >> Jason HIRSCHHORN: Iyon akmang-akma. 1337 01:02:53,070 --> 01:02:57,430 Sa bawat oras na inilagay mo sa kalabasa, ito laging nagbabalik zero. 1338 01:02:57,430 --> 01:03:01,660 Kung inilagay mo sa kalabasa at ang iyong hash function na ay nagbabalik zero ngunit may 1339 01:03:01,660 --> 01:03:06,060 posibilidad ng pagbabalik ng isang bagay iba pa mas mataas sa zero - 1340 01:03:06,060 --> 01:03:09,280 kaya siguro maaari itong bumalik isa minsan o dalawang iba pang mga oras - 1341 01:03:09,280 --> 01:03:11,100 na ay hindi isang mahusay na pag-andar ng hash. 1342 01:03:11,100 --> 01:03:11,800 Ikaw ay akmang-akma. 1343 01:03:11,800 --> 01:03:15,680 Ang iyong pag-andar ng hash dapat ibalik ang parehong eksaktong integer, sa kasong ito, para sa 1344 01:03:15,680 --> 01:03:17,780 ang parehong eksaktong string. 1345 01:03:17,780 --> 01:03:22,210 >> Siguro ay nagbabalik nito ang parehong mga eksaktong integer para sa parehong eksaktong string 1346 01:03:22,210 --> 01:03:24,430 anuman ang capitalization. 1347 01:03:24,430 --> 01:03:27,980 Ngunit sa kasong iyon pa rin ito deterministic dahil maraming mga bagay 1348 01:03:27,980 --> 01:03:29,350 ay nama-map papunta sa parehong halaga. 1349 01:03:29,350 --> 01:03:30,170 Iyon ay pinong. 1350 01:03:30,170 --> 01:03:32,615 Hangga't mayroon lamang isang output para sa ibinigay na input. 1351 01:03:32,615 --> 01:03:35,630 1352 01:03:35,630 --> 01:03:36,350 >> OK. 1353 01:03:36,350 --> 01:03:38,340 Ang ikalawang bagay ay na ito Ibinabalik ng wastong mga indeks. 1354 01:03:38,340 --> 01:03:40,220 Kami nagdala up na mas maaga. 1355 01:03:40,220 --> 01:03:41,860 Ito hash - 1356 01:03:41,860 --> 01:03:43,710 oh batang lalaki - 1357 01:03:43,710 --> 01:03:46,840 isang hash dapat bumalik wastong mga indeks. 1358 01:03:46,840 --> 01:03:47,740 Kaya sabihin - 1359 01:03:47,740 --> 01:03:48,990 sabihin bumalik sa halimbawang ito. 1360 01:03:48,990 --> 01:03:52,580 1361 01:03:52,580 --> 01:03:57,540 Aking hash Binibilang up ang mga titik sa salita. 1362 01:03:57,540 --> 01:03:58,380 Iyan ang hash. 1363 01:03:58,380 --> 01:03:59,740 At nagbabalik na integer. 1364 01:03:59,740 --> 01:04:04,280 Kaya kung mayroon akong mga salita A, ito ay pagpunta sa bumalik isa. 1365 01:04:04,280 --> 01:04:06,900 At ito ay pagpunta sa ilagay ang isang dito mismo. 1366 01:04:06,900 --> 01:04:09,430 Paano kung ko bang ilagay sa ang salita bat? 1367 01:04:09,430 --> 01:04:11,310 Ito ay pagpunta upang bumalik tatlo. 1368 01:04:11,310 --> 01:04:12,560 Saan kinukuha bat pumunta? 1369 01:04:12,560 --> 01:04:18,730 1370 01:04:18,730 --> 01:04:19,750 >> Hindi ito magkasya. 1371 01:04:19,750 --> 01:04:21,000 Ngunit kailangan nito upang pumunta sa isang lugar. 1372 01:04:21,000 --> 01:04:23,340 Ito ang aking hash talahanayan pagkatapos ng lahat, at kailangang pumunta sa isang lugar ang lahat. 1373 01:04:23,340 --> 01:04:24,590 Kaya kung saan dapat pumunta bat? 1374 01:04:24,590 --> 01:04:28,020 1375 01:04:28,020 --> 01:04:28,710 Anumang mga saloobin? 1376 01:04:28,710 --> 01:04:29,450 Guesses? 1377 01:04:29,450 --> 01:04:30,280 Magandang guesses? 1378 01:04:30,280 --> 01:04:31,220 >> Madla: Zero. 1379 01:04:31,220 --> 01:04:32,120 >> Jason HIRSCHHORN: Bakit zero? 1380 01:04:32,120 --> 01:04:35,990 >> Madla: Dahil tatlong modulo tatlong ay zero? 1381 01:04:35,990 --> 01:04:38,620 >> Jason HIRSCHHORN: Tatlong modulo tatlong ay zero. 1382 01:04:38,620 --> 01:04:40,810 Iyon ay isang mahusay na hula, at iyon ang tama. 1383 01:04:40,810 --> 01:04:43,870 Kaya sa kasong ito dapat ito marahil pumunta sa zero. 1384 01:04:43,870 --> 01:04:51,080 Kaya isang mahusay na paraan upang matiyak na ito ng hash nagbabalik lamang ang function ng wastong mga indeks ay 1385 01:04:51,080 --> 01:04:54,580 sa modulo ito sa pamamagitan ng ang laki ng table. 1386 01:04:54,580 --> 01:04:57,360 Kung modulo mo ang kahit anong ito babalik sa pamamagitan ng tatlo, lagi ka pagpunta upang makakuha ng 1387 01:04:57,360 --> 01:05:00,930 isang bagay sa pagitan ng zero, isa, at dalawang. 1388 01:05:00,930 --> 01:05:05,160 At kung ito laging nagbabalik pitong, at palagi kang modulo sa pamamagitan ng tatlong, ikaw ay 1389 01:05:05,160 --> 01:05:06,030 palaging pagpunta upang makuha ang parehong bagay. 1390 01:05:06,030 --> 01:05:09,270 >> Kaya deterministic pa rin kung modulo mo. 1391 01:05:09,270 --> 01:05:11,420 Ngunit iyon ay tinitiyak na ang mo hindi kailanman makakuha ng isang bagay - 1392 01:05:11,420 --> 01:05:12,940 ng di-wastong industriya. 1393 01:05:12,940 --> 01:05:16,840 Sa pangkalahatan, na modulo dapat mangyari sa loob ng iyong hash. 1394 01:05:16,840 --> 01:05:18,240 Kaya hindi mo kailangang mag-alala tungkol dito. 1395 01:05:18,240 --> 01:05:20,555 Ikaw lang ang masisiguro na ito ay isang wastong indice. 1396 01:05:20,555 --> 01:05:23,700 1397 01:05:23,700 --> 01:05:26,700 Ang anumang mga katanungan sa ito potensyal na patibong? 1398 01:05:26,700 --> 01:05:36,590 1399 01:05:36,590 --> 01:05:39,060 >> OK. 1400 01:05:39,060 --> 01:05:40,290 At doon pumunta kami. 1401 01:05:40,290 --> 01:05:42,890 Susunod na mga potensyal na patibong, at ito ang isa malaki. 1402 01:05:42,890 --> 01:05:46,880 Paano kung mapa dalawang mga susi sa parehong halaga? 1403 01:05:46,880 --> 01:05:49,350 Kaya may mga dalawang paraan upang mahawakan ang mga ito. 1404 01:05:49,350 --> 01:05:53,140 1405 01:05:53,140 --> 01:05:56,020 Ang unang isa ay tinatawag na linear probing, na ako ay 1406 01:05:56,020 --> 01:05:57,300 hindi pagpunta sa pumunta sa ibabaw. 1407 01:05:57,300 --> 01:06:01,120 Ngunit dapat mong maging pamilyar sa kung paano na gumagana at kung ano na. 1408 01:06:01,120 --> 01:06:05,610 >> Ang ikalawang isa ako pagpunta sa pumunta sa ibabaw dahil na ay ang isa na marami 1409 01:06:05,610 --> 01:06:08,290 mga tao ay marahil na nagtatapos up sa pagpapasya gamitin sa kanilang hanay problema. 1410 01:06:08,290 --> 01:06:09,820 Siyempre, hindi mo na kailangang. 1411 01:06:09,820 --> 01:06:15,280 Ngunit para sa hanay ng problema, maraming mga tao ay may posibilidad na pumili upang lumikha ng hash talahanayan 1412 01:06:15,280 --> 01:06:17,950 may nakahiwalay na chaining ipatupad kanilang diksyunaryo. 1413 01:06:17,950 --> 01:06:21,390 Kaya kami ay pagpunta sa pumunta sa kung ano ang ibig sabihin nito upang lumikha ng hash talahanayan na may 1414 01:06:21,390 --> 01:06:23,890 hiwalay chaining. 1415 01:06:23,890 --> 01:06:26,260 >> Kaya ko bang ilagay sa kalabasa. 1416 01:06:26,260 --> 01:06:29,560 Ibinabalik nito ang zero. 1417 01:06:29,560 --> 01:06:31,410 At ko bang ilagay ang kalabasa dito. 1418 01:06:31,410 --> 01:06:35,880 1419 01:06:35,880 --> 01:06:37,930 Pagkatapos ko bang ilagay sa - 1420 01:06:37,930 --> 01:06:39,922 kung ano ang isa pang Halloween-themed bagay? 1421 01:06:39,922 --> 01:06:42,200 >> Madla: Candy. 1422 01:06:42,200 --> 01:06:42,770 >> Jason HIRSCHHORN: Candy! 1423 01:06:42,770 --> 01:06:43,910 Iyon ay isang mahusay na isa. 1424 01:06:43,910 --> 01:06:47,760 Naglagay ako sa kendi, at kendi Binibigyan din ako zero. 1425 01:06:47,760 --> 01:06:49,350 Ano ang gagawin ko? 1426 01:06:49,350 --> 01:06:51,940 Ang anumang mga ideya? 1427 01:06:51,940 --> 01:06:53,940 Dahil mo ang lahat ng uri ng mga alam ano nakahiwalay chaining ay. 1428 01:06:53,940 --> 01:06:55,190 Kaya ang anumang mga ideya kung ano ang gagawin? 1429 01:06:55,190 --> 01:06:58,170 1430 01:06:58,170 --> 01:06:59,110 Oo. 1431 01:06:59,110 --> 01:07:03,810 >> Madla: ang paglalagay ng string talaga sa hash table. 1432 01:07:03,810 --> 01:07:08,910 >> Jason HIRSCHHORN: Kaya kami ay pagpunta sa gumuhit ang magandang ideya sa paglipas dito. 1433 01:07:08,910 --> 01:07:09,340 OK. 1434 01:07:09,340 --> 01:07:12,290 >> Madla: Magkaroon ng hashtable [Hindi marinig] 1435 01:07:12,290 --> 01:07:16,640 ang pointer na tumuturo sa ang simula ng isang listahan. 1436 01:07:16,640 --> 01:07:20,930 At pagkatapos ay kalabasa maging unang halaga sa naka-link na listahan at kendi maging 1437 01:07:20,930 --> 01:07:22,800 ang pangalawang halaga sa naka-link na listahan. 1438 01:07:22,800 --> 01:07:23,420 >> Jason HIRSCHHORN: OK. 1439 01:07:23,420 --> 01:07:24,670 Marcus, na noon ay natitirang. 1440 01:07:24,670 --> 01:07:26,160 Pupunta ako sa masira na pababa. 1441 01:07:26,160 --> 01:07:28,890 Marcus ay nagsasabi huwag patungan kalabasa. 1442 01:07:28,890 --> 01:07:30,660 Iyon ay magiging masama. 1443 01:07:30,660 --> 01:07:33,640 Huwag maglagay ng kendi sa iba pang lugar. 1444 01:07:33,640 --> 01:07:35,390 Kami ay pagpunta sa ilagay ang mga ito sa parehong sa zero. 1445 01:07:35,390 --> 01:07:37,770 Ngunit kami ay pagpunta upang harapin ang paglalagay sa kanila sa zero sa pamamagitan ng 1446 01:07:37,770 --> 01:07:39,395 paglikha ng isang listahan sa zero. 1447 01:07:39,395 --> 01:07:42,430 At kami ay pagpunta upang lumikha ng isang listahan ng mga lahat ng bagay na nai-map sa zero. 1448 01:07:42,430 --> 01:07:47,960 At ang pinakamahusay na paraan natutunan namin upang lumikha ng isang listahan na maaaring lumago at pag-urong 1449 01:07:47,960 --> 01:07:49,840 pabago-bago ay wala sa loob isa pang array. 1450 01:07:49,840 --> 01:07:51,510 Kaya hindi isang multi-dimensional array. 1451 01:07:51,510 --> 01:07:54,080 Ngunit upang lumikha lamang ng isang naka-link na listahan. 1452 01:07:54,080 --> 01:07:55,330 >> Kaya kung ano siya ipinanukalang - 1453 01:07:55,330 --> 01:07:57,950 1454 01:07:57,950 --> 01:07:59,200 Pupunta ako upang makakuha ng isang bagong - 1455 01:07:59,200 --> 01:08:15,380 1456 01:08:15,380 --> 01:08:19,689 ay lumikha ng isang array na may mga payo, isang array ng mga payo. 1457 01:08:19,689 --> 01:08:20,580 OK. 1458 01:08:20,580 --> 01:08:24,180 Anumang mga ideya o pahiwatig kung ano ang uri ng mga payo ay dapat na? 1459 01:08:24,180 --> 01:08:26,290 Marcus? 1460 01:08:26,290 --> 01:08:27,250 >> Madla: pointer sa - 1461 01:08:27,250 --> 01:08:28,609 >> Jason HIRSCHHORN: Dahil sa iyo Sinabi ng isang naka-link na listahan, kaya - 1462 01:08:28,609 --> 01:08:29,520 >> Madla: Node mga payo? 1463 01:08:29,520 --> 01:08:30,670 >> Jason HIRSCHHORN: Node na pointer. 1464 01:08:30,670 --> 01:08:32,830 Kung ang mga bagay sa aming naka-link listahan ng mga nodes pagkatapos nila 1465 01:08:32,830 --> 01:08:34,370 Dapat na node na pointer. 1466 01:08:34,370 --> 01:08:35,939 At ano ang gagawin kasing-halaga nila sa umpisa? 1467 01:08:35,939 --> 01:08:36,990 >> Madla: Walang bisa. 1468 01:08:36,990 --> 01:08:38,240 >> Jason HIRSCHHORN: Walang bisa. 1469 01:08:38,240 --> 01:08:44,540 1470 01:08:44,540 --> 01:08:46,080 Kaya mayroong aming walang laman na bagay. 1471 01:08:46,080 --> 01:08:47,170 Kalabasa ang pagbalik ng zero. 1472 01:08:47,170 --> 01:08:48,569 Ano ang gagawin namin? 1473 01:08:48,569 --> 01:08:49,609 Maglakad sa akin sa pamamagitan nito? 1474 01:08:49,609 --> 01:08:50,810 Talaga, Marcus na nagbigay sa akin. 1475 01:08:50,810 --> 01:08:52,439 Ibang tao maglakad sa akin sa pamamagitan nito. 1476 01:08:52,439 --> 01:08:54,760 Ano ang ginagawa namin kapag kami - 1477 01:08:54,760 --> 01:08:56,609 ito ay mukhang na halos kapareho sa kung ano ang namin ang paggawa lamang. 1478 01:08:56,609 --> 01:08:57,396 Avi. 1479 01:08:57,396 --> 01:08:59,090 >> Madla: Pupunta ako sa maglaan ng hula. 1480 01:08:59,090 --> 01:09:01,250 Kaya kapag kumuha ka ng kendi. 1481 01:09:01,250 --> 01:09:01,640 >> Jason HIRSCHHORN: Oo. 1482 01:09:01,640 --> 01:09:03,120 Well, nakuha namin kalabasa. 1483 01:09:03,120 --> 01:09:03,870 Hayaan ang makakuha ng aming unang isa. 1484 01:09:03,870 --> 01:09:04,324 Mayroon din kaming kalabasa. 1485 01:09:04,324 --> 01:09:04,779 >> Madla: ang OK. 1486 01:09:04,779 --> 01:09:05,880 Kalabasa ang pagbalik ng zero. 1487 01:09:05,880 --> 01:09:08,770 Kaya mo ilagay ito sa na. 1488 01:09:08,770 --> 01:09:10,810 O kaya naman talaga, inilagay mo ito sa naka-link na listahan. 1489 01:09:10,810 --> 01:09:13,550 >> Jason HIRSCHHORN: Paano ginagawa namin ilagay ito sa naka-link na listahan? 1490 01:09:13,550 --> 01:09:15,479 >> Madla: Oh, ang aktwal na syntax? 1491 01:09:15,479 --> 01:09:16,240 >> Jason HIRSCHHORN: maglakad lang - 1492 01:09:16,240 --> 01:09:16,740 sabihin pa. 1493 01:09:16,740 --> 01:09:19,310 Ano ang gagawin namin? 1494 01:09:19,310 --> 01:09:22,100 >> Madla: ipasok mo lang ito bilang unang node. 1495 01:09:22,100 --> 01:09:22,675 >> Jason HIRSCHHORN: OK. 1496 01:09:22,675 --> 01:09:29,069 Kaya mayroon kaming ang aming node, kalabasa. 1497 01:09:29,069 --> 01:09:31,560 At ngayon paano ko isingit ko ito? 1498 01:09:31,560 --> 01:09:34,590 1499 01:09:34,590 --> 01:09:37,090 >> Madla: magtalaga ka ito sa pointer. 1500 01:09:37,090 --> 01:09:37,970 >> Jason HIRSCHHORN: Aling pointer? 1501 01:09:37,970 --> 01:09:39,620 >> Madla: Ang pointer sa zero. 1502 01:09:39,620 --> 01:09:41,420 >> Jason HIRSCHHORN: Kaya kung saan ang puntong ito? 1503 01:09:41,420 --> 01:09:42,810 >> Madla: Upang null ngayon. 1504 01:09:42,810 --> 01:09:43,529 >> Jason HIRSCHHORN: Well, ito ay tumuturo sa null. 1505 01:09:43,529 --> 01:09:44,499 Ngunit ako ng paglalagay sa kalabasa. 1506 01:09:44,499 --> 01:09:46,053 Kaya kung saan ito dapat na ituro? 1507 01:09:46,053 --> 01:09:46,880 >> Madla: Upang kalabasa. 1508 01:09:46,880 --> 01:09:47,399 >> Jason HIRSCHHORN: Upang kalabasa. 1509 01:09:47,399 --> 01:09:48,760 Mismong. 1510 01:09:48,760 --> 01:09:50,010 Kaya ito nagtuturo sa kalabasa. 1511 01:09:50,010 --> 01:09:52,500 1512 01:09:52,500 --> 01:09:54,250 At kung saan ginagawa ang pointer sa kalabasa punto? 1513 01:09:54,250 --> 01:09:57,986 1514 01:09:57,986 --> 01:09:58,340 Upang 1515 01:09:58,340 --> 01:09:58,590 >> Madla: Walang bisa. 1516 01:09:58,590 --> 01:09:59,210 >> Jason HIRSCHHORN: Upang null. 1517 01:09:59,210 --> 01:10:00,460 Mismong. 1518 01:10:00,460 --> 01:10:03,570 1519 01:10:03,570 --> 01:10:05,140 Kaya ipinasok na lamang kami ng isang bagay papunta sa naka-link na listahan. 1520 01:10:05,140 --> 01:10:07,210 Sinulat ni lang namin ang code na ito upang gawin ito. 1521 01:10:07,210 --> 01:10:09,520 Halos halos nakuha namin ito ganap na may lamat. 1522 01:10:09,520 --> 01:10:10,790 Ngayon isingit namin kendi. 1523 01:10:10,790 --> 01:10:13,480 Ang aming kendi napupunta din sa zero. 1524 01:10:13,480 --> 01:10:16,100 Kaya kung ano ang gagawin namin sa kendi? 1525 01:10:16,100 --> 01:10:18,790 >> Madla: Depende ito sa kung o hindi namin sinusubukan upang ayusin ito. 1526 01:10:18,790 --> 01:10:19,640 >> Jason HIRSCHHORN: Iyon akmang-akma. 1527 01:10:19,640 --> 01:10:21,070 Depende ito sa kung o hindi sinusubukan naming uri-uriin ito. 1528 01:10:21,070 --> 01:10:22,660 Ipagpalagay nating hindi kami Hayaan pagpunta upang ayusin ito. 1529 01:10:22,660 --> 01:10:24,880 >> Madla: Well pagkatapos, bilang namin tinalakay bago, ito ay pinakasimpleng lamang upang ilagay ito 1530 01:10:24,880 --> 01:10:28,590 karapatan sa simula kaya ang pointer mula sa zero ang mga puntos sa kendi. 1531 01:10:28,590 --> 01:10:29,020 >> Jason HIRSCHHORN: OK. 1532 01:10:29,020 --> 01:10:29,380 I-hold on. 1533 01:10:29,380 --> 01:10:30,630 Hayaan akong lumikha ng kendi dito mismo. 1534 01:10:30,630 --> 01:10:34,030 1535 01:10:34,030 --> 01:10:35,150 Kaya ito pointer - 1536 01:10:35,150 --> 01:10:37,590 >> Madla: Oo, dapat ngayon ay tumuturo sa kendi. 1537 01:10:37,590 --> 01:10:40,580 Pagkatapos mayroon ang pointer mula sa kendi punto upang kalabasa. 1538 01:10:40,580 --> 01:10:43,140 1539 01:10:43,140 --> 01:10:44,560 >> Jason HIRSCHHORN: Tulad ng mga iyon? 1540 01:10:44,560 --> 01:10:47,380 At sabihin Nakakuha kami ng isa pang bagay upang i-map sa zero? 1541 01:10:47,380 --> 01:10:48,660 >> Madla: Well, lamang sa iyo gawin ang parehong bagay? 1542 01:10:48,660 --> 01:10:50,290 >> Jason HIRSCHHORN: Gawin ang parehong bagay. 1543 01:10:50,290 --> 01:10:53,700 Kaya sa kasong ito, kung hindi namin nais na panatilihin itong pinagsunod-sunod ito 1544 01:10:53,700 --> 01:10:55,270 tunog sa halip simple. 1545 01:10:55,270 --> 01:10:59,920 Isinasaalang-alang namin ang pointer sa indice ibinigay sa pamamagitan ng aming hash. 1546 01:10:59,920 --> 01:11:03,830 Mayroon kaming puntong iyon sa aming bagong node. 1547 01:11:03,830 --> 01:11:07,830 At pagkatapos ay ang kahit anong ito ay tumuturo sa dati - 1548 01:11:07,830 --> 01:11:10,620 sa kasong ito null, sa pangalawang kaso kalabasa - 1549 01:11:10,620 --> 01:11:15,310 na, kahit anong ito ay tumuturo sa dati, idagdag namin sa susunod ng 1550 01:11:15,310 --> 01:11:17,810 ang aming bagong node. 1551 01:11:17,810 --> 01:11:19,650 Kami ay pagpasok ng isang bagay sa simula. 1552 01:11:19,650 --> 01:11:22,900 Sa katunayan ito ay isang pulutong mas simple kaysa sinusubukan upang panatilihin ang mga listahan pinagsunod-sunod. 1553 01:11:22,900 --> 01:11:25,340 Ngunit muli, searching ay magiging higit pang mga kumplikadong sa dito. 1554 01:11:25,340 --> 01:11:28,300 Lagi ka naming magkaroon upang pumunta sa dulo. 1555 01:11:28,300 --> 01:11:29,650 >> OK. 1556 01:11:29,650 --> 01:11:32,750 Ang anumang mga katanungan tungkol sa hiwalay na chaining? 1557 01:11:32,750 --> 01:11:34,690 Paano gumagana? 1558 01:11:34,690 --> 01:11:35,820 Mangyaring hilingin sa kanila ngayon. 1559 01:11:35,820 --> 01:11:39,260 Talagang gusto ko upang matiyak na ang lahat maunawaan ito bago magtungo ang out namin. 1560 01:11:39,260 --> 01:11:48,410 1561 01:11:48,410 --> 01:11:52,060 >> Madla: Bakit inilagay mo kalabasa at kendi sa parehong 1562 01:11:52,060 --> 01:11:54,108 bahagi ng hash talahanayan? 1563 01:11:54,108 --> 01:11:55,860 >> Jason HIRSCHHORN: Magandang katanungan. 1564 01:11:55,860 --> 01:11:59,140 Bakit inilalagay namin ang mga ito sa parehong bahagi ng hash talahanayan? 1565 01:11:59,140 --> 01:12:03,200 Well, sa kasong ito ang aming hash babalik ang zero para sa parehong sa kanila. 1566 01:12:03,200 --> 01:12:05,310 Kaya kailangan nila upang pumunta sa indice zero dahil na kung saan kami ay pagpunta sa 1567 01:12:05,310 --> 01:12:07,420 hanapin ang mga ito kung namin kailanman gusto upang tumingin up ang mga ito. 1568 01:12:07,420 --> 01:12:11,750 Muli, may isang linear probing diskarte hindi namin malalaman ilagay ang mga ito sa parehong sa zero. 1569 01:12:11,750 --> 01:12:13,900 Ngunit sa hiwalay na chain diskarte, kami ay pagpunta sa ilagay ang mga ito sa parehong sa zero 1570 01:12:13,900 --> 01:12:16,620 at pagkatapos ay lumikha ng isang listahan off ng zero. 1571 01:12:16,620 --> 01:12:20,140 >> At hindi namin nais na i-overwrite kalabasa lamang para sa na dahil pagkatapos kami ay 1572 01:12:20,140 --> 01:12:21,860 ipagpalagay na ang kalabasa noon ay hindi ipinapasok. 1573 01:12:21,860 --> 01:12:25,230 Kapag patuloy pa lang namin ang isang bagay sa lokasyong iyon ay magiging masama. 1574 01:12:25,230 --> 01:12:28,590 Pagkatapos doon ay magiging walang pagkakataon sa atin kailanman - 1575 01:12:28,590 --> 01:12:31,660 kung kailanman namin ay may isang duplicate, pagkatapos namin Gusto burahin lamang ang aming paunang halaga. 1576 01:12:31,660 --> 01:12:34,090 Kaya na ang dahilan kung bakit ginagawa namin ang paraan na ito. 1577 01:12:34,090 --> 01:12:36,580 O kaya na ang dahilan kung bakit namin pinili - ngunit muli, namin pinili mo ang nakahiwalay chaining diskarte, 1578 01:12:36,580 --> 01:12:39,670 kung saan mayroong maraming iba pang mga approach na ito maaaring isa piliin. 1579 01:12:39,670 --> 01:12:41,185 Na sagutin ang iyong tanong? 1580 01:12:41,185 --> 01:12:41,660 >> OK. 1581 01:12:41,660 --> 01:12:42,910 Carlos. 1582 01:12:42,910 --> 01:12:46,130 1583 01:12:46,130 --> 01:12:47,720 De-probing ay kasangkot - 1584 01:12:47,720 --> 01:12:51,913 kung nakita namin ang isang banggaan sa zero, namin magiging ganito sa susunod na lugar upang makita kung 1585 01:12:51,913 --> 01:12:54,310 ito ay bukas at ilagay ito doon. 1586 01:12:54,310 --> 01:12:57,320 At pagkatapos ay tinitingnan namin sa susunod na isport at makita kung na noon ay bukas at ilagay ito doon. 1587 01:12:57,320 --> 01:12:59,780 Kaya nakita namin sa susunod na magagamit bukas na puwesto at ilagay ito doon. 1588 01:12:59,780 --> 01:13:02,580 1589 01:13:02,580 --> 01:13:03,890 Anumang iba pang mga katanungan? 1590 01:13:03,890 --> 01:13:05,370 Oo, Avi. 1591 01:13:05,370 --> 01:13:07,490 >> Madla: Bilang isang follow up sa na, kung ano ang ibig mong sabihin sa pamamagitan ng susunod na puwesto? 1592 01:13:07,490 --> 01:13:10,250 Sa hash talahanayan o sa isang naka-link na listahan. 1593 01:13:10,250 --> 01:13:12,100 >> Jason HIRSCHHORN: Para sa linear programming, walang naka-link na mga listahan. 1594 01:13:12,100 --> 01:13:13,400 Ang susunod na lugar sa hash table. 1595 01:13:13,400 --> 01:13:13,820 >> Madla: ang OK. 1596 01:13:13,820 --> 01:13:17,570 Kaya ang hash talahanayan ay magiging nasimulan sa laki - 1597 01:13:17,570 --> 01:13:19,560 tulad ng bilang ng mga string na ikaw ay pagpasok? 1598 01:13:19,560 --> 01:13:22,170 >> Jason HIRSCHHORN: ginagawa mo gusto mo itong maging talagang malaki. 1599 01:13:22,170 --> 01:13:23,910 Oo. 1600 01:13:23,910 --> 01:13:27,900 Narito ang isang larawan ng kung ano ang aming iginuhit lang sa board. 1601 01:13:27,900 --> 01:13:29,470 Muli, mayroon kaming isang banggaan dito mismo. 1602 01:13:29,470 --> 01:13:30,710 sa 152. 1603 01:13:30,710 --> 01:13:33,570 At makikita mo na nilikha namin naka-link na listahan off nito. 1604 01:13:33,570 --> 01:13:38,200 1605 01:13:38,200 --> 01:13:41,850 Muli, ang hash talahanayan nakahiwalay chaining diskarteng ito ay hindi ang sa iyo 1606 01:13:41,850 --> 01:13:45,590 mayroon na kumuha para sa set ng mga problema anim ngunit isa na may maraming mga 1607 01:13:45,590 --> 01:13:47,100 mga mag-aaral ay may posibilidad na tumagal. 1608 01:13:47,100 --> 01:13:51,140 Kaya sa na tala, ipaalam sa amin sa madaling sabi-usapan bago magtungo ang out namin tungkol sa problema anim, 1609 01:13:51,140 --> 01:13:52,160 at pagkatapos ay kukunin ko na ibahagi ang isang kuwento sa iyo. 1610 01:13:52,160 --> 01:13:55,120 Mayroon kaming tatlong minuto. 1611 01:13:55,120 --> 01:13:55,750 >> Problema set anim. 1612 01:13:55,750 --> 01:13:57,790 Mayroon kang apat na mga pag-andar - 1613 01:13:57,790 --> 01:14:02,430 pagkarga, suriin, laki, at alisan ng bala. 1614 01:14:02,430 --> 01:14:03,380 Mag-load ng - 1615 01:14:03,380 --> 01:14:07,120 well, kami ay pagpunta sa ibabaw ng pagkarga ngayon lang. 1616 01:14:07,120 --> 01:14:09,330 Iginuhit kami ng pag-load sa board. 1617 01:14:09,330 --> 01:14:13,230 At kami makapagsimula sa coding ng maraming kahit pagpasok sa isang naka-link na listahan. 1618 01:14:13,230 --> 01:14:18,020 Kaya pagkarga ay hindi magkano ang higit sa ano na lamang na ginagawa namin. 1619 01:14:18,020 --> 01:14:21,070 >> Check ay isang beses mayroon kang isang bagay-load. 1620 01:14:21,070 --> 01:14:22,580 Ito ay ang parehong proseso sa ito. 1621 01:14:22,580 --> 01:14:26,845 Ang parehong unang dalawang bahagi kung saan mo itapon isang bagay sa hash 1622 01:14:26,845 --> 01:14:29,190 at kumuha ng mga halaga nito. 1623 01:14:29,190 --> 01:14:30,700 Ngunit ngayon hindi namin pagpasok dito. 1624 01:14:30,700 --> 01:14:33,350 Ngayon kaming naghahanap ng mga ito. 1625 01:14:33,350 --> 01:14:37,130 Ako sample code na isinulat para sa paghahanap ng isang bagay sa isang naka-link na listahan. 1626 01:14:37,130 --> 01:14:38,250 Hinihikayat kita na pagsasanay na iyon. 1627 01:14:38,250 --> 01:14:43,000 Ngunit intuitively sa paghahanap ng isang bagay ay medyo kapareho sa pagpasok ng isang bagay. 1628 01:14:43,000 --> 01:14:46,540 Sa katunayan, iginuhit kami ng isang larawan ng paghahanap isang bagay sa isang naka-link na listahan, gumagalaw 1629 01:14:46,540 --> 01:14:48,910 sa pamamagitan ng hanggang sa nakuha mo sa dulo. 1630 01:14:48,910 --> 01:14:52,430 At kung nakuha mo sa dulo at ay hindi maaaring hanapin ito, pagkatapos ito ay hindi doon. 1631 01:14:52,430 --> 01:14:55,400 Kaya na tseke, mahalagang. 1632 01:14:55,400 --> 01:14:57,030 >> Susunod ay ang laki. 1633 01:14:57,030 --> 01:14:57,910 Laktawan ng laki Hayaan. 1634 01:14:57,910 --> 01:15:00,040 Panghuli mo na mag-ibis. 1635 01:15:00,040 --> 01:15:02,890 Alisan ng bala ay isa hindi pa namin na iginuhit sa board o pa naka-code. 1636 01:15:02,890 --> 01:15:05,990 Ngunit Hinihikayat ko mong subukan ang coding ito sa aming sample na naka-link listahan halimbawa. 1637 01:15:05,990 --> 01:15:11,440 Ngunit mag-ibis intuitively ay pareho sa libreng - 1638 01:15:11,440 --> 01:15:14,010 o Ibig kong sabihin ay katulad ng check. 1639 01:15:14,010 --> 01:15:17,350 Maliban sa ngayon bawat oras na naka-pagpunta sa pamamagitan ng, ikaw ay hindi lamang ng pagsuri sa 1640 01:15:17,350 --> 01:15:19,090 makita kung mayroon kang ang iyong mga halaga doon. 1641 01:15:19,090 --> 01:15:22,490 Ngunit ka pagkuha na node at pagbabakante ito, mahalagang. 1642 01:15:22,490 --> 01:15:23,610 Iyon ay kung ano ang humihiling sa iyo alisan ng bala ang gagawin. 1643 01:15:23,610 --> 01:15:24,670 Libreng lahat ng bagay na iyong malloced. 1644 01:15:24,670 --> 01:15:27,480 Kaya ka ng pagpunta sa pamamagitan ng buong listahan muli, sa pamamagitan ng pagpunta sa buong hash 1645 01:15:27,480 --> 01:15:27,760 talahanayan muli. 1646 01:15:27,760 --> 01:15:29,240 Oras na ito ay hindi suriin upang makita kung ano ang doon. 1647 01:15:29,240 --> 01:15:31,080 Palayain lang kung ano ang doon. 1648 01:15:31,080 --> 01:15:33,260 >> At sa wakas laki. 1649 01:15:33,260 --> 01:15:34,350 Dapat na ipinatupad Laki. 1650 01:15:34,350 --> 01:15:35,590 Kung hindi mo ipatupad ang laki - 1651 01:15:35,590 --> 01:15:36,250 Sasabihin kong ito tulad nito. 1652 01:15:36,250 --> 01:15:39,740 Kung hindi mo ipatupad ang laki sa eksaktong isang linya ng code kabilang ang 1653 01:15:39,740 --> 01:15:43,760 bumalik pahayag, ikaw ay paggawa laki nang hindi tama. 1654 01:15:43,760 --> 01:15:47,170 Kaya tiyaking laki, para sa buong disenyo mga punto, ninyo ito ginagawa sa eksaktong isang 1655 01:15:47,170 --> 01:15:49,970 linya ng code, kabilang ang ang return statement. 1656 01:15:49,970 --> 01:15:52,450 >> At wala ka pang mag-impake, Akchar. 1657 01:15:52,450 --> 01:15:53,700 Sabik Beaver. 1658 01:15:53,700 --> 01:15:55,820 1659 01:15:55,820 --> 01:16:01,300 Nais kong sabihin salamat guys para sa darating na seksyon. 1660 01:16:01,300 --> 01:16:02,550 Magkaroon ng isang Happy Halloween. 1661 01:16:02,550 --> 01:16:05,300 1662 01:16:05,300 --> 01:16:05,960 Ito ang aking costume. 1663 01:16:05,960 --> 01:16:08,850 Kukunin ko ay may suot na ito sa Huwebes kung makikita ko sa iyo sa oras ng opisina. 1664 01:16:08,850 --> 01:16:14,640 At kung gusto mong malaman ang tungkol sa ilang nang higit pa background bilang upang ito costume, huwag mag- 1665 01:16:14,640 --> 01:16:19,135 libre upang tingnan ang seksyon 2011 para sa isang kuwento sa kung bakit ako ay 1666 01:16:19,135 --> 01:16:20,900 suot na kalabasa costume. 1667 01:16:20,900 --> 01:16:23,680 At ito ay isang malungkot na kuwento. 1668 01:16:23,680 --> 01:16:27,050 Kaya tiyaking mayroon kang ilang tisiyu malapit. 1669 01:16:27,050 --> 01:16:28,680 Ngunit sa na, kung mayroon kang anumang tanong Kukunin ko manatili sa paligid 1670 01:16:28,680 --> 01:16:29,960 sa labas pagkatapos ng seksyon. 1671 01:16:29,960 --> 01:16:31,510 Good luck sa problema itakda anim. 1672 01:16:31,510 --> 01:16:33,540 At tulad ng dati, kung mayroon kang anumang mga katanungan, ipaalam sa akin. 1673 01:16:33,540 --> 01:16:35,584