1 00:00:00,000 --> 00:00:08,250 2 00:00:08,250 --> 00:00:12,680 >> JASON Hirschhorn: Croeso i bawb i'r Adran Saith. 3 00:00:12,680 --> 00:00:15,040 Yr ydym mewn wythnos saith o'r cwrs. 4 00:00:15,040 --> 00:00:18,440 Ac mae hyn Dydd Iau sydd ar y gweill yw Calan Gaeaf felly rwy'n 5 00:00:18,440 --> 00:00:21,420 gwisgo i fyny fel pwmpen. 6 00:00:21,420 --> 00:00:23,460 Nid oeddwn yn gallu plygu drosodd a'i roi ar fy esgidiau, felly dyna pam yr wyf i'n 7 00:00:23,460 --> 00:00:25,660 dim ond yn gwisgo sanau. 8 00:00:25,660 --> 00:00:29,220 Hefyd yn Dydw i ddim yn gwisgo unrhyw beth o dan hwn, felly ni allaf gymryd i ffwrdd os yw'n 9 00:00:29,220 --> 00:00:29,950 tynnu sylw i chi. 10 00:00:29,950 --> 00:00:31,860 Rwy'n ymddiheuro ymlaen llaw am hynny. 11 00:00:31,860 --> 00:00:33,170 Nid oes angen i chi ddychmygu beth sy'n mynd ymlaen. 12 00:00:33,170 --> 00:00:34,240 Rydw i'n gwisgo bocswyr. 13 00:00:34,240 --> 00:00:36,170 Felly mae'n cyfan yn dda. 14 00:00:36,170 --> 00:00:41,120 >> Mae gen i stori hwy am pam yr wyf i'n gwisgo fel pwmpen, ond dw i'n mynd i 15 00:00:41,120 --> 00:00:45,110 ac eithrio bod ar gyfer yn ddiweddarach yn yr adran hon oherwydd fy mod yn dymuno i ddechrau arni. 16 00:00:45,110 --> 00:00:47,720 Mae gennym lawer o bethau cyffrous i fynd dros yr wythnos hon. 17 00:00:47,720 --> 00:00:51,810 Mae'r rhan fwyaf ohonynt yn ymwneud yn uniongyrchol â hyn problem set wythnos, camsillafiadau. 18 00:00:51,810 --> 00:00:54,680 Rydym yn mynd i fod yn mynd dros cysylltu rhestrau a thablau hash 19 00:00:54,680 --> 00:00:57,160 ar gyfer yr adran gyfan. 20 00:00:57,160 --> 00:01:02,490 Yr wyf yn rhoi rhestr hon bob wythnos, rhestr o adnoddau ar eich cyfer i'ch helpu gyda 21 00:01:02,490 --> 00:01:04,120 y deunydd ar y cwrs hwn. 22 00:01:04,120 --> 00:01:07,600 Os ar golled, neu os yn chwilio am rai rhagor o wybodaeth, ewch i un o 23 00:01:07,600 --> 00:01:09,930 adnoddau hyn. 24 00:01:09,930 --> 00:01:14,530 >> Unwaith eto, pset6 yn camsillafiadau, pset yr wythnos hon. 25 00:01:14,530 --> 00:01:17,690 Ac mae hefyd yn eich annog, ac yr wyf yn eich annog, i ddefnyddio rhai eraill 26 00:01:17,690 --> 00:01:20,320 adnoddau yn benodol ar gyfer pset hwn. 27 00:01:20,320 --> 00:01:23,390 Yn benodol, mae'r tri rydw i wedi a restrir ar y sgrîn - 28 00:01:23,390 --> 00:01:27,160 gdb, yr ydym wedi bod yn gyfarwydd â a bod yn ei ddefnyddio am sbel nawr, yn 29 00:01:27,160 --> 00:01:29,270 mynd i fod yn ddefnyddiol iawn yr wythnos hon. 30 00:01:29,270 --> 00:01:30,190 Felly, yr wyf yn rhoi bod hyd yma. 31 00:01:30,190 --> 00:01:32,910 Ond pryd bynnag y byddwch yn gweithio gyda C, dylech bob amser fod yn defnyddio gdb i 32 00:01:32,910 --> 00:01:34,430 dadfygio eich rhaglenni. 33 00:01:34,430 --> 00:01:36,660 Yr wythnos hon hefyd valgrind. 34 00:01:36,660 --> 00:01:38,535 A oes unrhyw un yn gwybod beth valgrind ei wneud? 35 00:01:38,535 --> 00:01:42,184 36 00:01:42,184 --> 00:01:43,890 >> GYNULLEIDFA: Mae'n gwirio am ollyngiadau cof? 37 00:01:43,890 --> 00:01:45,950 >> JASON Hirschhorn: Valgrind gwiriadau am ollyngiadau cof. 38 00:01:45,950 --> 00:01:49,970 Felly, os ydych rhywbeth malloc yn eich rhaglen, rydych yn gofyn am cof. 39 00:01:49,970 --> 00:01:52,920 Ar ddiwedd eich rhaglen, mae gennych i ysgrifennu am ddim ar bopeth ydych wedi 40 00:01:52,920 --> 00:01:54,800 malloced i roi'r cof yn ôl. 41 00:01:54,800 --> 00:01:58,420 Os na fyddwch yn ysgrifennu am ddim yn y diwedd a eich rhaglen yn dod i ben, 42 00:01:58,420 --> 00:02:00,000 popeth yn awtomatig gael ei ryddhau. 43 00:02:00,000 --> 00:02:02,340 Ac ar gyfer rhaglenni bach, mae'n nad yw fawr bargen. 44 00:02:02,340 --> 00:02:05,250 Ond os ydych chi'n ysgrifennu rhedeg hirach rhaglen nad yw'n rhoi'r gorau iddi, 45 00:02:05,250 --> 00:02:09,180 o reidrwydd, mewn ychydig o funudau neu cwpl o eiliadau, yna cof gollwng 46 00:02:09,180 --> 00:02:10,710 Gall fod yn fargen enfawr. 47 00:02:10,710 --> 00:02:14,940 >> Felly, ar gyfer pset6, y disgwyliad yw y bydd gennych sero gollwng cof gyda 48 00:02:14,940 --> 00:02:15,910 eich rhaglen. 49 00:02:15,910 --> 00:02:18,690 I wirio am ollyngiadau cof, valgrind rhedeg a bydd yn rhoi i chi rai 'n glws 50 00:02:18,690 --> 00:02:21,190 allbwn rhoi gwybod i chi a oes neu nid yw popeth yn rhad ac am ddim. 51 00:02:21,190 --> 00:02:23,940 Byddwn yn ymarfer ag ef yn ddiweddarach heddiw, gobeithio. 52 00:02:23,940 --> 00:02:25,790 >> Yn olaf, y gorchymyn diff. 53 00:02:25,790 --> 00:02:28,900 Rydych yn defnyddio rhywbeth tebyg iddo yn pset5 gyda'r offeryn peek. 54 00:02:28,900 --> 00:02:30,780 Caniateir i chi i edrych y tu mewn. 55 00:02:30,780 --> 00:02:33,400 Rydych hefyd yn defnyddio diff, hefyd, fesul y broblem a osodwyd fanyleb. 56 00:02:33,400 --> 00:02:35,950 Ond yn gadael i chi gymharu dwy ffeil. 57 00:02:35,950 --> 00:02:39,180 Gallech gymharu'r ffeil didfap a penawdau gwybodaeth o ateb staff a 58 00:02:39,180 --> 00:02:42,200 eich ateb yn pset5 os dewis i chi ei ddefnyddio. 59 00:02:42,200 --> 00:02:44,030 Bydd Diff yn eich galluogi i wneud hynny, hefyd. 60 00:02:44,030 --> 00:02:48,620 Gallwch gymharu yr ateb cywir ar gyfer problem yr wythnos hon yn gosod ar eich ateb 61 00:02:48,620 --> 00:02:52,210 a gweld os yw'n llinellau i fyny neu i weld Lle mae gwallau yn cael eu. 62 00:02:52,210 --> 00:02:55,870 >> Felly, y rhai tri offer da sy'n Dylid ei ddefnyddio ar gyfer yr wythnos hon, a 63 00:02:55,870 --> 00:02:58,130 yn bendant yn edrych ar eich rhaglen â'r tri offer 64 00:02:58,130 --> 00:03:00,520 cyn ei droi i mewn 65 00:03:00,520 --> 00:03:04,650 Unwaith eto, fel yr wyf wedi crybwyll bob wythnos, os oes gennych unrhyw adborth i mi - yn 66 00:03:04,650 --> 00:03:06,470 cadarnhaol ac adeiladol - 67 00:03:06,470 --> 00:03:09,930 croeso i fod yn bennaeth ar y wefan ar waelod y sleid hon 68 00:03:09,930 --> 00:03:11,270 a mewnbwn yno. 69 00:03:11,270 --> 00:03:13,440 Fi 'n sylweddol yn gwerthfawrogi unrhyw a phob adborth. 70 00:03:13,440 --> 00:03:17,360 Ac os byddwch yn rhoi pethau penodol mi fod Gallaf ei wneud i wella neu fy mod yn 71 00:03:17,360 --> 00:03:21,350 gwneud yn dda y byddech yn hoffi i mi yn parhau, yr wyf yn cymryd hynny o ddifrif ac 72 00:03:21,350 --> 00:03:24,040 wir yn ymdrechu'n galed i wrando at eich adborth. 73 00:03:24,040 --> 00:03:27,720 Ni allaf addo fy mod i'n mynd i wneud popeth, fodd bynnag, fel gwisgo 74 00:03:27,720 --> 00:03:30,700 pwmpen gwisg bob wythnos. 75 00:03:30,700 --> 00:03:34,020 >> Felly, rydym yn mynd i dreulio y rhan fwyaf o'r adran hon, fel y soniais, yn siarad am 76 00:03:34,020 --> 00:03:37,240 rhestrau cysylltiedig a thablau hash, a oedd yn Bydd yn uniongyrchol berthnasol i'r 77 00:03:37,240 --> 00:03:38,780 broblem a osodwyd yr wythnos hon. 78 00:03:38,780 --> 00:03:42,580 Rhestrau cysylltiedig byddwn yn mynd dros gymharol yn gyflym oherwydd ein bod wedi treulio cryn dipyn 79 00:03:42,580 --> 00:03:44,930 o amser yn mynd dros yn adran. 80 00:03:44,930 --> 00:03:48,680 Ac felly byddwn yn mynd yn syth i mewn i'r codio problemau ar gyfer rhestrau cysylltiedig. 81 00:03:48,680 --> 00:03:52,740 Ac yna ar y diwedd byddwn yn siarad am hash tablau a sut maent yn berthnasol i hyn 82 00:03:52,740 --> 00:03:55,280 problem yr wythnos yn gosod. 83 00:03:55,280 --> 00:03:57,560 >> Rydych chi wedi gweld y cod hwn o'r blaen. 84 00:03:57,560 --> 00:04:02,730 Mae hwn yn strwythur, ac mae'n cael ei diffinio rhywbeth o'r enw newydd yn nod. 85 00:04:02,730 --> 00:04:10,660 Ac y tu mewn nod mae gyfanrif i'r dde yma ac mae pwyntydd i 86 00:04:10,660 --> 00:04:11,830 nod arall. 87 00:04:11,830 --> 00:04:12,790 Rydym wedi gweld hyn o'r blaen. 88 00:04:12,790 --> 00:04:14,830 Mae hyn wedi bod yn dod i fyny ar gyfer ychydig o wythnosau bellach. 89 00:04:14,830 --> 00:04:18,680 Mae'n cyfuno awgrymiadau, yr ydym wedi bod yn gweithio gyda, a structs, sy'n caniatáu 90 00:04:18,680 --> 00:04:22,079 ni i gyfuno dau wahanol pethau i mewn i un math data. 91 00:04:22,079 --> 00:04:24,830 92 00:04:24,830 --> 00:04:26,490 >> Mae llawer yn digwydd ar ar y sgrîn. 93 00:04:26,490 --> 00:04:30,220 Ond dylai pob un fod yn gymharol gyfarwydd gyda chi. 94 00:04:30,220 --> 00:04:33,810 Ar y llinell gyntaf, yr ydym yn datgan nod newydd. 95 00:04:33,810 --> 00:04:41,650 Ac yna y tu mewn i'r nod newydd, yr wyf yn gosod y cyfanrif yn y nod i un. 96 00:04:41,650 --> 00:04:44,950 Rydym yn gweld ar y llinell nesaf rwyf yn gwneud printf gorchymyn, ond rwyf wedi llwyd 97 00:04:44,950 --> 00:04:48,080 y gorchymyn printf oherwydd bod y gwirionedd rhan bwysig yn y llinell hon yma - 98 00:04:48,080 --> 00:04:50,020 new_node.n. 99 00:04:50,020 --> 00:04:51,270 Beth yw ystyr y dot? 100 00:04:51,270 --> 00:04:53,810 101 00:04:53,810 --> 00:04:57,240 >> GYNULLEIDFA: Ewch i'r nod a asesu gwerth n ar ei gyfer. 102 00:04:57,240 --> 00:04:58,370 >> JASON Hirschhorn: Mae hynny'n yn union gywir. 103 00:04:58,370 --> 00:05:03,300 Dot yn golygu mynediad at y n rhan y nod newydd. 104 00:05:03,300 --> 00:05:05,690 Mae'r llinell nesaf sy'n gwneud beth? 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 >> GYNULLEIDFA: Mae'n creu nod arall a fydd yn tynnu sylw at y nod newydd. 108 00:05:21,910 --> 00:05:24,870 >> JASON Hirschhorn: Felly nid yw'n creu nod newydd. 109 00:05:24,870 --> 00:05:26,120 Mae'n creu beth? 110 00:05:26,120 --> 00:05:28,300 111 00:05:28,300 --> 00:05:29,300 >> GYNULLEIDFA: A pwyntydd. 112 00:05:29,300 --> 00:05:33,460 >> JASON Hirschhorn: A pwyntydd i nod, fel y nodir gan nod hwn * yma. 113 00:05:33,460 --> 00:05:34,800 Felly, mae'n creu pwyntydd i nod. 114 00:05:34,800 --> 00:05:37,490 A pha nod y mae'n pwyntio i, Michael? 115 00:05:37,490 --> 00:05:38,440 >> GYNULLEIDFA: nod sy'n Newydd? 116 00:05:38,440 --> 00:05:39,240 >> JASON Hirschhorn: nod Newydd. 117 00:05:39,240 --> 00:05:43,020 Ac mae'n pwyntio yno oherwydd rydym wedi ystyried ei gyfeiriad nod newydd. 118 00:05:43,020 --> 00:05:45,820 Ac yn awr yn y llinell hon rydym yn gweld dwy ffordd wahanol o 119 00:05:45,820 --> 00:05:46,910 mynegi yr un peth. 120 00:05:46,910 --> 00:05:49,650 Ac yr wyf yn awyddus i dynnu sylw at sut mae'r rhain yn dau beth yr un fath. 121 00:05:49,650 --> 00:05:54,740 Yn y llinell gyntaf, rydym yn dereference y pwyntydd. 122 00:05:54,740 --> 00:05:55,830 Felly, rydym yn mynd i'r nod. 123 00:05:55,830 --> 00:05:56,830 Dyna beth seren mae hyn yn golygu. 124 00:05:56,830 --> 00:05:57,930 Rydym wedi gweld bod o'r blaen gyda awgrymiadau. 125 00:05:57,930 --> 00:05:59,280 Ewch i'r nod. 126 00:05:59,280 --> 00:06:00,370 Dyna mewn cromfachau. 127 00:06:00,370 --> 00:06:04,610 Ac yna cael mynediad drwy'r gweithredwr dot yr elfen n y nod. 128 00:06:04,610 --> 00:06:08,430 >> Felly, mae hynny'n cymryd y gystrawen gwelsom yn iawn yma ac yn awr 129 00:06:08,430 --> 00:06:09,670 ddefnyddio gyda pwyntydd. 130 00:06:09,670 --> 00:06:13,730 Wrth gwrs, mae'n mynd yn fath o brysur os rydych yn ysgrifennu cromfachau hynny - 131 00:06:13,730 --> 00:06:14,940 y seren a bod y dot. 132 00:06:14,940 --> 00:06:16,220 Mae'n cael ychydig yn brysur. 133 00:06:16,220 --> 00:06:18,500 Felly, mae gennym ychydig o siwgr cystrawennol. 134 00:06:18,500 --> 00:06:19,920 Ac mae hyn yn llinell iawn yma - 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 Mae hynny'n gwneud yr un peth yn union. 138 00:06:28,000 --> 00:06:30,840 Felly, y rhai dwy linell o god yn cyfatebol a bydd yn gwneud 139 00:06:30,840 --> 00:06:31,650 yr un peth yn union. 140 00:06:31,650 --> 00:06:34,210 >> Ond yr wyf yn awyddus i dynnu sylw at hynny cyn rydym yn mynd ymhellach, felly eich bod yn deall 141 00:06:34,210 --> 00:06:39,000 y peth hyn yn iawn yma wir yn dim ond siwgr cystrawennol ar gyfer dereferencing 142 00:06:39,000 --> 00:06:44,200 y pwyntydd ac yna yn mynd i y n rhan o'r strwythur. 143 00:06:44,200 --> 00:06:45,525 Unrhyw gwestiynau am y sleid hon? 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 >> Felly, rydym yn mynd i fynd drwy un neu ddau o weithrediadau y gallwch ei wneud ar 147 00:06:58,510 --> 00:06:59,730 rhestrau cysylltiedig. 148 00:06:59,730 --> 00:07:05,770 Mae rhestr cysylltiedig, galw i gof, yn gyfres o nodau sy'n cyfeirio at ei gilydd. 149 00:07:05,770 --> 00:07:12,470 Ac rydym yn gyffredinol yn dechrau gyda pwyntydd a elwir yn pen, yn gyffredinol, sy'n awgrymu 150 00:07:12,470 --> 00:07:14,040 y peth cyntaf yn y rhestr. 151 00:07:14,040 --> 00:07:18,900 Felly, ar y llinell gyntaf yma, rydym yn wedi ein L gwreiddiol yn gyntaf. 152 00:07:18,900 --> 00:07:21,370 Er mwyn i beth gallwch chi feddwl - mae hyn yn testun i'r dde yma gallwch chi feddwl fel 153 00:07:21,370 --> 00:07:23,560 dim ond y pwyntydd rydym wedi storio bod pwyntiau rhywle 154 00:07:23,560 --> 00:07:24,670 at yr elfen gyntaf. 155 00:07:24,670 --> 00:07:27,500 Ac yn y rhestr gysylltiedig mae gennym bedwar nodau. 156 00:07:27,500 --> 00:07:29,530 Mae pob nod yw bocs mawr. 157 00:07:29,530 --> 00:07:33,430 Mae'r blwch mwy o faint y tu mewn i'r mawr blwch yn y rhan gyfanrif. 158 00:07:33,430 --> 00:07:37,400 Ac yna mae gennym ran pwyntydd. 159 00:07:37,400 --> 00:07:39,630 >> Nid yw'r blychau yn cael eu tynnu i eu maint, oherwydd pa mor fawr yn 160 00:07:39,630 --> 00:07:42,320 cyfanrif mewn bytes? 161 00:07:42,320 --> 00:07:43,290 Pa mor fawr nawr? 162 00:07:43,290 --> 00:07:43,710 Pedwar. 163 00:07:43,710 --> 00:07:45,470 A pha mor fawr yn pwyntydd? 164 00:07:45,470 --> 00:07:45,940 Pedwar. 165 00:07:45,940 --> 00:07:48,180 Felly mewn gwirionedd, pe baem yn tynnu hyn i raddfa y ddau flwch 166 00:07:48,180 --> 00:07:49,690 Byddai fod yr un maint. 167 00:07:49,690 --> 00:07:52,870 Yn yr achos hwn, rydym am i fewnosod rhywbeth yn y rhestr gysylltiedig. 168 00:07:52,870 --> 00:07:57,190 Fel y gallwch weld i lawr yma rydym yn gosod pump Rydym yn croesi drwy'r 169 00:07:57,190 --> 00:08:01,310 rhestr gysylltiedig, dod o hyd lle mae pump mynd, ac yna rhowch ef. 170 00:08:01,310 --> 00:08:03,560 >> Gadewch i ni dorri'r i lawr ac yn mynd ychydig yn fwy araf. 171 00:08:03,560 --> 00:08:05,510 Rydw i'n mynd i dynnu sylw at y bwrdd. 172 00:08:05,510 --> 00:08:09,930 Felly, rydym wedi ein nod pum sydd rydym wedi creu yn mallocs. 173 00:08:09,930 --> 00:08:11,190 Pam mae pawb yn chwerthin? 174 00:08:11,190 --> 00:08:12,130 Dim ond kidding. 175 00:08:12,130 --> 00:08:13,310 OK. 176 00:08:13,310 --> 00:08:14,820 Felly, rydym wedi malloced pump. 177 00:08:14,820 --> 00:08:16,310 Rydym wedi creu nod hwn rhywle arall. 178 00:08:16,310 --> 00:08:17,740 Yr ydym wedi ei barod i fynd. 179 00:08:17,740 --> 00:08:20,130 Rydym yn dechrau ar flaen y ein rhestr gyda dau. 180 00:08:20,130 --> 00:08:22,380 Ac rydym am i fewnosod mewn modd ddidoli. 181 00:08:22,380 --> 00:08:27,550 >> Felly, os byddwn yn gweld dau ac rydym yn awyddus i roi mewn pump, beth ydym yn ei wneud pan fyddwn yn gweld 182 00:08:27,550 --> 00:08:28,800 rhywbeth llai na ni? 183 00:08:28,800 --> 00:08:31,850 184 00:08:31,850 --> 00:08:33,520 Beth? 185 00:08:33,520 --> 00:08:36,750 Rydym am i fewnosod bump i mewn i hyn rhestr gysylltiedig, gan ei gadw datrys. 186 00:08:36,750 --> 00:08:37,520 Rydym yn gweld rhif dau. 187 00:08:37,520 --> 00:08:38,769 Felly, beth ydym yn ei wneud? 188 00:08:38,769 --> 00:08:39,179 Marcus? 189 00:08:39,179 --> 00:08:40,679 >> GYNULLEIDFA: Ffoniwch y pwyntydd i'r nod nesaf. 190 00:08:40,679 --> 00:08:42,530 >> JASON Hirschhorn: A pham mae rydym yn mynd i'r un nesaf? 191 00:08:42,530 --> 00:08:45,970 >> GYNULLEIDFA: Oherwydd ei fod yn y nod nesaf yn y rhestr. 192 00:08:45,970 --> 00:08:48,310 A dim ond yn gwybod bod lleoliad arall. 193 00:08:48,310 --> 00:08:50,410 >> JASON Hirschhorn: A phump yn fwy na dau, yn arbennig. 194 00:08:50,410 --> 00:08:51,600 Oherwydd ein bod am ei gadw eu sortio. 195 00:08:51,600 --> 00:08:52,730 Felly, pump yn fwy na dau. 196 00:08:52,730 --> 00:08:54,460 Felly, rydym yn symud ymlaen at yr un nesaf. 197 00:08:54,460 --> 00:08:55,240 Ac yn awr rydym yn cyrraedd pedwar. 198 00:08:55,240 --> 00:08:56,490 A beth fydd yn digwydd pan fyddwn yn cyrraedd pedwar? 199 00:08:56,490 --> 00:08:58,920 200 00:08:58,920 --> 00:09:00,310 >> Pump yn fwy na phedwar. 201 00:09:00,310 --> 00:09:01,460 Felly rydym yn cadw i fynd. 202 00:09:01,460 --> 00:09:03,110 Ac yn awr ein bod ni'n ar chwech. 203 00:09:03,110 --> 00:09:04,360 A beth ydym yn ei weld o chwech? 204 00:09:04,360 --> 00:09:08,672 205 00:09:08,672 --> 00:09:09,608 Ie, Carlos? 206 00:09:09,608 --> 00:09:10,544 >> GYNULLEIDFA: Chwech yn fwy na phump. 207 00:09:10,544 --> 00:09:11,480 >> JASON Hirschhorn: Chwech yn fwy na phump. 208 00:09:11,480 --> 00:09:13,660 Felly, dyna lle rydym am i fewnosod bump. 209 00:09:13,660 --> 00:09:17,320 Fodd bynnag, yn cadw mewn cof bod os ydym Dim ond un pwyntydd yma - 210 00:09:17,320 --> 00:09:19,840 mae hyn yn ein pwyntydd ychwanegol sy'n croesi drwy'r rhestr. 211 00:09:19,840 --> 00:09:21,860 Ac rydym yn pwyntio i chwech. 212 00:09:21,860 --> 00:09:25,010 Rydym wedi colli golwg ar yr hyn yn dod cyn chwech. 213 00:09:25,010 --> 00:09:29,130 Felly, os ydym am i fewnosod rhywbeth yn rhestr hon gadw'n didoli, yr ydym yn 214 00:09:29,130 --> 00:09:31,630 Mae'n debyg bod angen sawl awgrymiadau? 215 00:09:31,630 --> 00:09:32,280 >> GYNULLEIDFA: Dau. 216 00:09:32,280 --> 00:09:32,920 >> JASON HIRSCHORN: Dau. 217 00:09:32,920 --> 00:09:35,720 Un i gadw golwg ar y presennol un ac un i gadw golwg ar 218 00:09:35,720 --> 00:09:37,050 yr un blaenorol. 219 00:09:37,050 --> 00:09:38,450 Dim ond rhestr gysylltiedig yn unigol ydyw. 220 00:09:38,450 --> 00:09:39,670 Dim ond yn mynd i un cyfeiriad. 221 00:09:39,670 --> 00:09:43,220 Pe bai gennym rhestr gysylltiedig ddwbl, lle popeth yn pwyntio at y peth 222 00:09:43,220 --> 00:09:46,240 ar ôl iddo a'r peth cyn iddo, yna Ni fyddai angen i ni wneud hynny. 223 00:09:46,240 --> 00:09:49,350 Ond yn yr achos hwn nid ydym am golli golwg ar yr hyn a ddaeth ger ein bron rhag ofn 224 00:09:49,350 --> 00:09:53,350 mae angen i fewnosod pum rhywle yn y canol. 225 00:09:53,350 --> 00:09:55,610 Dywedwch ein bod yn gosod naw. 226 00:09:55,610 --> 00:09:57,260 Beth fyddai'n digwydd pan rydym yn cael i wyth? 227 00:09:57,260 --> 00:10:01,860 228 00:10:01,860 --> 00:10:04,880 >> GYNULLEIDFA: Byddwn yn rhaid i chi cael y pwynt null. 229 00:10:04,880 --> 00:10:07,820 Yn hytrach na chael pwynt null byddech yn cael i ychwanegu elfen ac wedyn yn cael 230 00:10:07,820 --> 00:10:09,216 bwyntio at naw. 231 00:10:09,216 --> 00:10:09,700 >> JASON HIRSCHORN: Yn union. 232 00:10:09,700 --> 00:10:10,600 Felly, rydym yn cael wyth. 233 00:10:10,600 --> 00:10:13,140 Rydym yn cyrraedd diwedd y rhestr oherwydd mae hyn yn pwyntio i null. 234 00:10:13,140 --> 00:10:16,330 Ac yn awr, yn hytrach na chael ei gyfeirio at null yr ydym wedi ei gyfeirio at ein nod newydd. 235 00:10:16,330 --> 00:10:19,870 Ac rydym yn gosod y pwyntydd yn ein nod newydd null. 236 00:10:19,870 --> 00:10:21,445 A oes unrhyw un gennych unrhyw gwestiynau am fewnosod? 237 00:10:21,445 --> 00:10:25,620 238 00:10:25,620 --> 00:10:28,100 Beth os nad wyf yn poeni am cadw'r rhestr datrys? 239 00:10:28,100 --> 00:10:31,701 240 00:10:31,701 --> 00:10:34,350 >> GYNULLEIDFA: Stick hynny ar y dechrau neu'r diwedd. 241 00:10:34,350 --> 00:10:35,510 >> JASON HIRSCHORN: Stick ei yn ddechrau neu y diwedd. 242 00:10:35,510 --> 00:10:37,276 Pa un ddylem ni ei wneud? 243 00:10:37,276 --> 00:10:38,770 Bobi? 244 00:10:38,770 --> 00:10:41,020 Pam y diwedd? 245 00:10:41,020 --> 00:10:43,250 >> GYNULLEIDFA: Oherwydd bod y dechrau eisoes yn llenwi. 246 00:10:43,250 --> 00:10:43,575 >> JASON HIRSCHORN: OK. 247 00:10:43,575 --> 00:10:44,360 Mae dechrau eisoes yn cael ei lenwi. 248 00:10:44,360 --> 00:10:46,090 Pwy sydd eisiau i ddadlau yn erbyn Bobby. 249 00:10:46,090 --> 00:10:47,290 Marcus. 250 00:10:47,290 --> 00:10:48,910 >> GYNULLEIDFA: Wel, eich bod eisiau lynu ar y dechrau oherwydd 251 00:10:48,910 --> 00:10:50,140 fel arall, os ydych yn ei roi ar diwedd y byddai'n rhaid i chi 252 00:10:50,140 --> 00:10:51,835 groesi'r rhestr gyfan. 253 00:10:51,835 --> 00:10:52,990 >> JASON HIRSCHORN: Yn union. 254 00:10:52,990 --> 00:10:57,970 Felly, os ydym yn meddwl am runtime, y Rhedeg o mewnosod ar y diwedd 255 00:10:57,970 --> 00:11:00,110 fyddai n, maint y. 256 00:11:00,110 --> 00:11:03,080 Beth yw'r O Rhedeg mawr o mewnosod ar y dechrau? 257 00:11:03,080 --> 00:11:04,170 Amser yn gyson. 258 00:11:04,170 --> 00:11:07,075 Felly, os nad ydych yn poeni am gadw rhywbeth didoli, llawer gwell i ddim ond 259 00:11:07,075 --> 00:11:08,420 mewnosoder ar y dechrau y rhestr hon. 260 00:11:08,420 --> 00:11:10,320 A gall ei wneud mewn amser cyson. 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 Gweithredu nesaf yn dod o hyd i, a eraill - rydym wedi geirio hyn fel chwilio. 264 00:11:18,870 --> 00:11:22,470 Ond rydym yn mynd i edrych drwy'r rhestr gysylltiedig ar gyfer rhai gwrthrych. 265 00:11:22,470 --> 00:11:26,000 Rydych guys wedi gweld cod ar gyfer chwilio o'r blaen yn ddarlith. 266 00:11:26,000 --> 00:11:29,490 Ond rydym yn fath o yn unig yn gwneud hynny gyda mewnosoder, neu o leiaf fewnosod 267 00:11:29,490 --> 00:11:30,580 rhywbeth didoli. 268 00:11:30,580 --> 00:11:36,350 Byddwch yn edrych drwy, nod mynd gan nod, nes i chi ddod o hyd i'r rhif eich bod yn 269 00:11:36,350 --> 00:11:37,780 chwilio amdano. 270 00:11:37,780 --> 00:11:39,670 Beth fydd yn digwydd os byddwch yn cyrraedd ddiwedd y rhestr? 271 00:11:39,670 --> 00:11:43,020 Dweud fy mod i'n chwilio am naw ac yr wyf yn cyrraedd diwedd y rhestr. 272 00:11:43,020 --> 00:11:44,270 Beth ydym ni'n ei wneud? 273 00:11:44,270 --> 00:11:47,147 274 00:11:47,147 --> 00:11:48,110 >> GYNULLEIDFA: Dychwelyd ffug? 275 00:11:48,110 --> 00:11:48,690 >> JASON HIRSCHORN: Dychwelyd ffug. 276 00:11:48,690 --> 00:11:49,960 Nid ydym yn ei chael yn. 277 00:11:49,960 --> 00:11:52,010 Os byddwch yn cyrraedd diwedd y rhestr a nad ydych yn dod o hyd i'r rhif ydych chi'n 278 00:11:52,010 --> 00:11:54,170 chwilio amdano, nid yw'n mewn 'na. 279 00:11:54,170 --> 00:11:55,420 Unrhyw gwestiynau am ddod o hyd i? 280 00:11:55,420 --> 00:11:59,530 281 00:11:59,530 --> 00:12:04,615 Pe bai hwn yn rhestr ddidoli, beth fyddai fod yn wahanol ar gyfer ein chwilio? 282 00:12:04,615 --> 00:12:07,370 283 00:12:07,370 --> 00:12:08,103 Yeah. 284 00:12:08,103 --> 00:12:10,600 >> GYNULLEIDFA: Byddai'n dod o hyd i'r gwerth cyntaf mae hynny'n fwy na'r un 285 00:12:10,600 --> 00:12:12,390 ydych yn chwilio am a wedyn yn dychwelyd ffug. 286 00:12:12,390 --> 00:12:13,190 >> JASON HIRSCHORN: Yn union. 287 00:12:13,190 --> 00:12:17,310 Felly, os yw'n rhestr ddidoli, os ydym yn cael i rhywbeth sy'n fwy na'r hyn 288 00:12:17,310 --> 00:12:20,180 rydym yn chwilio am, nid oes angen i ni gadw i fynd at ddiwedd y rhestr. 289 00:12:20,180 --> 00:12:24,060 Gallwn ar y pwynt hwnnw yn dychwelyd ffug oherwydd nad ydym yn mynd i ddod o hyd iddo. 290 00:12:24,060 --> 00:12:27,340 Mae'r cwestiwn yn awr, rydym wedi trafod cadw rhestrau cysylltiedig didoli, 291 00:12:27,340 --> 00:12:28,180 cadw'n heb eu didoli. 292 00:12:28,180 --> 00:12:30,050 Mae hynny'n mynd i fod yn rhywbeth yr ydych yn na thebyg yn mynd i gael i feddwl am 293 00:12:30,050 --> 00:12:34,240 wrth codio problem yn gosod pump os ydych yn dewis tabl hash â ar wahân 294 00:12:34,240 --> 00:12:36,360 gadwyno dull, a oedd yn byddwn yn siarad am hynny yn ddiweddarach. 295 00:12:36,360 --> 00:12:41,400 >> Ond a yw'n werth yr ymdrech i gadw'r rhestr datrys hynny ac wedyn yn gallu efallai wedi 296 00:12:41,400 --> 00:12:42,310 chwiliadau cyflymach? 297 00:12:42,310 --> 00:12:47,220 Neu a yw'n well i fewnosod yn gyflym rhywbeth yn Rhedeg cyson ond wedyn 298 00:12:47,220 --> 00:12:48,430 wedi chwilio yn hirach? 299 00:12:48,430 --> 00:12:52,250 Dyna tradeoff iawn yno eich bod yn cael penderfynu beth yn fwy priodol 300 00:12:52,250 --> 00:12:53,590 ar gyfer eich problem benodol. 301 00:12:53,590 --> 00:12:56,680 Ac nid oes o reidrwydd yn un ateb hollol gywir. 302 00:12:56,680 --> 00:12:59,520 Ond mae'n sicr yn benderfyniad byddwch yn cael i'w wneud, ac mae'n debyg da i amddiffyn 303 00:12:59,520 --> 00:13:05,270 hynny mewn, dyweder, sylw neu ddau pam byddwch yn dewis un dros y llall. 304 00:13:05,270 --> 00:13:06,490 >> Yn olaf, dileu. 305 00:13:06,490 --> 00:13:08,100 Rydym wedi gweld dileu. 306 00:13:08,100 --> 00:13:09,180 Mae'n debyg i chwilio. 307 00:13:09,180 --> 00:13:11,020 Rydym yn edrych am yr elfen. 308 00:13:11,020 --> 00:13:12,390 Dweud ein bod yn ceisio dileu chwech. 309 00:13:12,390 --> 00:13:14,450 Felly, rydym yn dod o hyd i chwech yma. 310 00:13:14,450 --> 00:13:18,860 Y peth y mae'n rhaid i ni wneud yn siwr ein bod wneud yw bod beth bynnag yn pwyntio i 311 00:13:18,860 --> 00:13:21,220 chwech - fel y gwelwn yn gam dau i lawr yma - 312 00:13:21,220 --> 00:13:26,500 beth bynnag sy'n pwyntio i chwe hanghenion er mwyn skip chwe awr ac yn cael ei newid i 313 00:13:26,500 --> 00:13:28,160 beth bynnag chwech yn pwyntio i. 314 00:13:28,160 --> 00:13:31,410 Nid ydym am i erioed amddifad gweddill ein rhestr drwy anghofio i osod y 315 00:13:31,410 --> 00:13:32,960 pwyntydd flaenorol. 316 00:13:32,960 --> 00:13:35,960 Ac yna weithiau, yn dibynnu ar y rhaglen, maent yn annhymerus 'yn unig 317 00:13:35,960 --> 00:13:37,380 dileu nod hwn yn llwyr. 318 00:13:37,380 --> 00:13:40,135 Weithiau, byddwch am ddychwelyd y gwerth sydd yn nod hwn. 319 00:13:40,135 --> 00:13:42,490 Felly dyna sut y bydd dileu yn gweithio. 320 00:13:42,490 --> 00:13:44,610 Unrhyw gwestiynau am ddileu? 321 00:13:44,610 --> 00:13:51,280 322 00:13:51,280 --> 00:13:53,850 >> GYNULLEIDFA: Felly, os ydych yn mynd i ddileu hynny, y byddech yn jyst arfer am ddim oherwydd 323 00:13:53,850 --> 00:13:55,655 yn ôl pob tebyg cafodd ei malloced? 324 00:13:55,655 --> 00:13:57,976 >> JASON HIRSCHORN: Os ydych am i ryddhau rhywbeth sy'n union iawn ac rydych yn 325 00:13:57,976 --> 00:13:58,540 malloced ei. 326 00:13:58,540 --> 00:14:00,410 Dywedwch ein bod eisiau dychwelyd y gwerth hwn. 327 00:14:00,410 --> 00:14:04,010 Efallai y byddwn yn dychwelyd chwech ac wedyn yn rhydd nod hwn a ffoniwch am ddim ar ei. 328 00:14:04,010 --> 00:14:06,180 Neu byddem yn ôl pob tebyg ffoniwch am ddim yn gyntaf ac yna'n dychwelyd chwech. 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 Felly, gadewch i ni symud ymlaen i ymarfer codio. 332 00:14:14,010 --> 00:14:16,090 Rydym yn mynd i cod tair swyddogaeth. 333 00:14:16,090 --> 00:14:18,260 Gelwir Mae'r un cyntaf wedi'i insert_node. 334 00:14:18,260 --> 00:14:22,170 Felly, mae gennych cod fy mod yn e-bostio i chi, a os ydych yn gwylio hyn yn nes ymlaen ar 335 00:14:22,170 --> 00:14:28,020 gallwch gael mynediad i'r cod yn linked.c ar y wefan CS50. 336 00:14:28,020 --> 00:14:30,880 Ond yn linked.c, mae rhywfaint cod sgerbwd sydd eisoes 337 00:14:30,880 --> 00:14:32,280 cael ei ysgrifennu i chi. 338 00:14:32,280 --> 00:14:34,560 Ac yna mae 'na swyddogaethau cwpl angen i chi ysgrifennu. 339 00:14:34,560 --> 00:14:36,380 >> Yn gyntaf rydym yn mynd i ysgrifennu insert_node. 340 00:14:36,380 --> 00:14:39,800 A beth insert_node yn ei wneud yw mewnosod yn gyfanrif. 341 00:14:39,800 --> 00:14:42,440 Ac rydych yn rhoi'r cyfanrif i mewn i restr cysylltiedig. 342 00:14:42,440 --> 00:14:45,470 Ac yn benodol, mae angen i chi i gadw'r rhestr didoli 343 00:14:45,470 --> 00:14:47,650 o'r lleiaf i'r mwyaf. 344 00:14:47,650 --> 00:14:51,360 Hefyd, os nad ydych am i rhowch unrhyw dyblygu. 345 00:14:51,360 --> 00:14:54,600 Yn olaf, fel y gallwch weld insert_node dychwelyd bool. 346 00:14:54,600 --> 00:14:57,140 Felly, rydych yn fod i adael i'r defnyddiwr wybod a oedd y mewnosodiad oedd neu beidio 347 00:14:57,140 --> 00:15:00,800 llwyddiannus trwy ddychwelyd gywir neu'n anghywir. 348 00:15:00,800 --> 00:15:02,580 Ar ddiwedd y rhaglen hon - 349 00:15:02,580 --> 00:15:05,750 ac ar gyfer y cam hwn nid oes angen i chi i chi boeni am unrhyw beth rhyddhau. 350 00:15:05,750 --> 00:15:11,790 Felly, i gyd rydych chi'n ei wneud yn cymryd yn gyfanrif a mewnosod i mewn i restr. 351 00:15:11,790 --> 00:15:13,890 >> Dyna beth rwy'n gofyn i chi wneud yn awr. 352 00:15:13,890 --> 00:15:17,620 Unwaith eto, yn y linked.c, yr ydych yn i gyd yn cael, yw'r cod sgerbwd. 353 00:15:17,620 --> 00:15:20,980 A dylech weld tuag at y gwaelod y datganiad swyddogaeth sampl. 354 00:15:20,980 --> 00:15:27,390 Fodd bynnag, cyn mynd i mewn i godio ei yn C, yr wyf yn gryf eich annog i fynd 355 00:15:27,390 --> 00:15:29,330 drwy'r camau yr ydym wedi bod yn ymarfer bob wythnos. 356 00:15:29,330 --> 00:15:31,100 Rydym eisoes wedi mynd trwy llun o hyn. 357 00:15:31,100 --> 00:15:33,380 Felly, dylech chi gael rhywfaint o ddealltwriaeth o sut mae hyn yn gweithio. 358 00:15:33,380 --> 00:15:36,590 Ond byddwn yn eich annog i ysgrifennu rhywfaint o pseudocode cyn plymio i mewn 359 00:15:36,590 --> 00:15:38,640 Ac rydym yn mynd i fynd dros pseudocode fel grŵp. 360 00:15:38,640 --> 00:15:41,470 Ac yna unwaith y byddwch wedi ysgrifennu eich pseudocode, ac unwaith y byddwn wedi ysgrifennu ein 361 00:15:41,470 --> 00:15:45,850 pseudocode fel grŵp, gallwch mynd i mewn i godio yn C. 362 00:15:45,850 --> 00:15:49,980 >> Fel pennau i fyny, y swyddogaeth insert_node Mae'n debyg mai dyma'r dyrys o 363 00:15:49,980 --> 00:15:53,550 y tri rydyn ni'n mynd i ysgrifennu am fy mod yn ychwanegu rhai cyfyngiadau ychwanegol i 364 00:15:53,550 --> 00:15:57,190 eich rhaglennu, yn arbennig nad ydych yn mynd i osod unrhyw 365 00:15:57,190 --> 00:15:59,880 dyblygu a bod y rhestr dylai aros eu sortio. 366 00:15:59,880 --> 00:16:02,660 Felly, mae hyn yn rhaglen heb fod yn ddibwys bod angen i chi i cod. 367 00:16:02,660 --> 00:16:06,470 A pham nad ydych yn cymryd 5-7 cofnodion yn unig i gael gweithio ar y 368 00:16:06,470 --> 00:16:07,640 pseudocode a'r cod. 369 00:16:07,640 --> 00:16:09,460 Ac yna byddwn yn dechrau mynd fel grŵp. 370 00:16:09,460 --> 00:16:11,680 Unwaith eto, os oes gennych unrhyw gwestiynau yn unig yn codwch eich llaw a byddaf yn dod o gwmpas. 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 >> Rydym hefyd yn gyffredinol yn gwneud hyn - 375 00:18:30,120 --> 00:18:32,070 neu os nad wyf yn dweud i chi yn benodol gallu gweithio gyda phobl. 376 00:18:32,070 --> 00:18:36,500 Ond yn amlwg, yr wyf yn gryf eich annog, os oes gennych gwestiynau, i ofyn i'r 377 00:18:36,500 --> 00:18:39,840 cymydog yn eistedd nesaf i chi neu hyd yn oed yn gweithio gyda rhywun 378 00:18:39,840 --> 00:18:40,510 arall os ydych yn dymuno. 379 00:18:40,510 --> 00:18:42,600 Nid oes rhaid i hyn fod yn unigolyn gweithgaredd dawel. 380 00:18:42,600 --> 00:20:11,770 381 00:20:11,770 --> 00:20:16,330 >> Gadewch i ni ddechrau gyda ysgrifennu rhai pseudocode ar y bwrdd. 382 00:20:16,330 --> 00:20:19,395 Pwy all roi llinell gyntaf i mi pseudocode gyfer y rhaglen hon? 383 00:20:19,395 --> 00:20:22,240 384 00:20:22,240 --> 00:20:23,640 Gyfer y swyddogaeth hon, yn hytrach - 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 >> GYNULLEIDFA: Felly, y peth cyntaf wnes i oedd creu pwyntydd newydd i'r nod ac yr wyf yn 388 00:20:36,560 --> 00:20:41,320 hymgychwyn mae'n pwyntio at yr un peth y rhestr yn pwyntio i. 389 00:20:41,320 --> 00:20:41,550 >> JASON HIRSCHORN: OK. 390 00:20:41,550 --> 00:20:45,190 Felly rydych yn creu pwyntydd newydd at y rhestr, nid i'r nod. 391 00:20:45,190 --> 00:20:45,420 >> GYNULLEIDFA: Iawn. 392 00:20:45,420 --> 00:20:46,150 Yeah. 393 00:20:46,150 --> 00:20:46,540 >> JASON HIRSCHORN: OK. 394 00:20:46,540 --> 00:20:48,221 Ac yna beth ydym ni eisiau ei wneud? 395 00:20:48,221 --> 00:20:49,163 Beth sydd ar ôl hynny? 396 00:20:49,163 --> 00:20:50,105 Beth am y nod? 397 00:20:50,105 --> 00:20:51,050 Nid oes gennym nod. 398 00:20:51,050 --> 00:20:52,300 Rydym yn unig o werth. 399 00:20:52,300 --> 00:20:55,918 400 00:20:55,918 --> 00:20:58,890 Os ydym am i fewnosod nod, beth ydyn ni angen iddynt ei wneud yn gyntaf cyn y gallwn hyd yn oed 401 00:20:58,890 --> 00:20:59,980 meddwl am ei roi i mewn? 402 00:20:59,980 --> 00:21:00,820 >> GYNULLEIDFA: O, mae'n ddrwg gennyf. 403 00:21:00,820 --> 00:21:02,160 mae angen i ni malloc lle ar gyfer nod. 404 00:21:02,160 --> 00:21:02,455 >> JASON HIRSCHORN: Ardderchog. 405 00:21:02,455 --> 00:21:03,210 Gadewch i ni ei wneud - 406 00:21:03,210 --> 00:21:04,628 OK. 407 00:21:04,628 --> 00:21:06,065 Methu cyrraedd mor uchel. 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 Rydym yn mynd i fynd i lawr, ac yna rydym yn defnyddio dwy golofn. 411 00:21:13,236 --> 00:21:13,732 Ni allaf fynd hynny - 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 Creu nod newydd. 415 00:21:25,130 --> 00:21:29,380 Gallwch greu pwyntydd arall i restru neu gallwch jyst arfer y rhestr fel y mae. 416 00:21:29,380 --> 00:21:30,720 Nid oes angen mewn gwirionedd i chi wneud hynny. 417 00:21:30,720 --> 00:21:31,750 >> Felly, rydym yn creu nod newydd. 418 00:21:31,750 --> 00:21:32,010 Great. 419 00:21:32,010 --> 00:21:32,840 Dyna beth rydym yn ei wneud yn gyntaf. 420 00:21:32,840 --> 00:21:34,870 Beth nesaf? 421 00:21:34,870 --> 00:21:35,080 >> GYNULLEIDFA: Aros. 422 00:21:35,080 --> 00:21:38,330 Dylem greu nod newydd nawr neu dylem aros i wneud yn siŵr bod 423 00:21:38,330 --> 00:21:42,260 does dim dyblygu y nod ar y rhestr cyn i ni greu? 424 00:21:42,260 --> 00:21:43,100 >> JASON HIRSCHORN: Cwestiwn da. 425 00:21:43,100 --> 00:21:47,770 Gadewch i ni dal y ar gyfer yn ddiweddarach oherwydd bod y y rhan fwyaf o'r amser byddwn yn creu 426 00:21:47,770 --> 00:21:48,220 yn nod newydd. 427 00:21:48,220 --> 00:21:49,110 Felly, byddwn yn cadw hynny yma. 428 00:21:49,110 --> 00:21:51,006 Ond mae hynny'n gwestiwn da. 429 00:21:51,006 --> 00:21:53,250 Os ydym yn creu ac rydym yn dod o hyd ddyblyg, dylai pa 430 00:21:53,250 --> 00:21:54,490 rydym yn ei wneud cyn dychwelyd? 431 00:21:54,490 --> 00:21:55,190 >> GYNULLEIDFA: Am ddim ei. 432 00:21:55,190 --> 00:21:55,470 >> JASON HIRSCHORN: Yeah. 433 00:21:55,470 --> 00:21:56,500 Mae'n debyg ei rhyddhau. 434 00:21:56,500 --> 00:21:56,760 OK. 435 00:21:56,760 --> 00:21:59,850 Beth rydym yn ei wneud ar ôl i ni creu nod newydd? 436 00:21:59,850 --> 00:22:02,260 Annie? 437 00:22:02,260 --> 00:22:04,780 >> GYNULLEIDFA: Rydym yn rhoi rhif yn y nod? 438 00:22:04,780 --> 00:22:05,140 >> JASON HIRSCHORN: Yn union. 439 00:22:05,140 --> 00:22:07,190 Rydym yn rhoi y nifer - rydym malloc gofod. 440 00:22:07,190 --> 00:22:08,160 Rydw i'n mynd i adael y i gyd fel un llinell. 441 00:22:08,160 --> 00:22:08,720 Ond rydych chi'n iawn. 442 00:22:08,720 --> 00:22:10,305 Rydym yn malloc gofod, ac yna rydym yn gosod y nifer mewn 443 00:22:10,305 --> 00:22:12,585 Gallwn hyd yn oed yn gosod y pwyntydd ran ohono i null. 444 00:22:12,585 --> 00:22:13,720 Dyna'n union gywir. 445 00:22:13,720 --> 00:22:17,400 Ac yna beth am ar ôl hynny? 446 00:22:17,400 --> 00:22:18,490 Rydym Tynnodd y llun ar y bwrdd. 447 00:22:18,490 --> 00:22:21,190 Felly, beth ydym yn ei wneud? 448 00:22:21,190 --> 00:22:22,680 >> GYNULLEIDFA: Rydym yn mynd drwy'r rhestr. 449 00:22:22,680 --> 00:22:23,930 >> JASON HIRSCHORN: Ewch drwy'r rhestr. 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 A beth ydym yn gwirio am o bob nod. 453 00:22:34,280 --> 00:22:35,955 Kurt, beth ydym yn gwirio am o bob nod? 454 00:22:35,955 --> 00:22:41,640 >> GYNULLEIDFA: Gweler a yw gwerth n o y nod yn fwy na gwerth n 455 00:22:41,640 --> 00:22:43,070 ein nod. 456 00:22:43,070 --> 00:22:43,340 >> JASON HIRSCHORN: OK. 457 00:22:43,340 --> 00:22:44,280 Rydw i'n mynd i wneud - 458 00:22:44,280 --> 00:22:45,855 yeah, OK. 459 00:22:45,855 --> 00:22:48,160 Felly mae'n n - 460 00:22:48,160 --> 00:22:59,040 Rydw i'n mynd i ddweud os gwerth yn fwy na nod hwn, yna beth ydym yn ei wneud? 461 00:22:59,040 --> 00:23:07,290 >> GYNULLEIDFA: Wel, yna rydym yn mewnosod y peth iawn cyn hynny. 462 00:23:07,290 --> 00:23:07,970 >> JASON HIRSCHORN: OK. 463 00:23:07,970 --> 00:23:09,410 Felly, os yw'n fwy na hyn, yna rydym eisiau i fewnosod. 464 00:23:09,410 --> 00:23:14,010 Ond rydym eisiau i fewnosod yn iawn cyn oherwydd byddai angen i ni hefyd fod yn 465 00:23:14,010 --> 00:23:16,070 cadw golwg, yna, o'r hyn oedd o'r blaen. 466 00:23:16,070 --> 00:23:22,690 Felly rhowch blaen. 467 00:23:22,690 --> 00:23:25,120 Felly, mae'n debyg ein bod yn colli rhywbeth yn gynharach. 468 00:23:25,120 --> 00:23:27,770 Rydym yn debyg y bydd angen i gael eu cadw golwg ar yr hyn sy'n digwydd. 469 00:23:27,770 --> 00:23:28,460 Ond fe ddown yn ôl yno. 470 00:23:28,460 --> 00:23:30,160 Felly, pa werth yn llai na? 471 00:23:30,160 --> 00:23:38,030 472 00:23:38,030 --> 00:23:39,710 Kurt, beth ydym yn ei wneud os gwerth yn llai na? 473 00:23:39,710 --> 00:23:43,000 >> GYNULLEIDFA: Yna, 'ch jyst cadw i fynd oni bai ei fod yn y cafodd yr un olaf. 474 00:23:43,000 --> 00:23:43,550 >> JASON HIRSCHORN: Rwy'n hoffi hynny. 475 00:23:43,550 --> 00:23:44,800 Felly, yn mynd i'r nod nesaf. 476 00:23:44,800 --> 00:23:47,410 477 00:23:47,410 --> 00:23:48,930 Oni bai ei fod yn y cafodd yr un olaf - 478 00:23:48,930 --> 00:23:51,100 yn ôl pob tebyg, rydym yn chwilio am y yn nhelerau'r amod. 479 00:23:51,100 --> 00:23:54,870 Ond yeah, nod nesaf. 480 00:23:54,870 --> 00:23:58,680 Ac mae hynny'n mynd yn rhy isel, felly byddwn yn symud dros yma. 481 00:23:58,680 --> 00:24:02,030 Ond os - 482 00:24:02,030 --> 00:24:03,280 Gall pawb yn gweld hyn? 483 00:24:03,280 --> 00:24:07,230 484 00:24:07,230 --> 00:24:11,610 Os ydym yn gyfartal beth ydym yn ei wneud? 485 00:24:11,610 --> 00:24:15,740 Os yw gwerth yr ydym yn ceisio i fewnosod yn hafal i werth nod hwn? 486 00:24:15,740 --> 00:24:16,320 Yeah? 487 00:24:16,320 --> 00:24:18,400 >> GYNULLEIDFA: [Anghlywadwy]. 488 00:24:18,400 --> 00:24:18,850 >> JASON HIRSCHORN: Yeah. 489 00:24:18,850 --> 00:24:19,290 O ystyried hyn - 490 00:24:19,290 --> 00:24:20,090 Marcus yn iawn. 491 00:24:20,090 --> 00:24:21,330 Gallem fod wedi gwneud efallai rhywbeth gwahanol. 492 00:24:21,330 --> 00:24:25,360 Ond o ystyried ein bod wedi creu ei, dyma dylem am ddim ac yna'n dychwelyd. 493 00:24:25,360 --> 00:24:26,774 Oh bachgen. 494 00:24:26,774 --> 00:24:30,080 A yw hynny'n well? 495 00:24:30,080 --> 00:24:31,850 Sut mae bod? 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 Rhad ac am ddim ac yna beth yr ydym yn dychwelyd, [Anghlywadwy]? 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 A ydym yn colli unrhyw beth? 502 00:24:45,360 --> 00:24:53,500 503 00:24:53,500 --> 00:24:59,650 Felly, lle yr ydym yn cadw golwg y nod blaenorol? 504 00:24:59,650 --> 00:25:02,370 >> GYNULLEIDFA: Yr wyf yn meddwl y byddai'n mynd ar ôl creu nod newydd. 505 00:25:02,370 --> 00:25:02,600 >> JASON HIRSCHORN: OK. 506 00:25:02,600 --> 00:25:03,940 Felly, ar y dechrau byddwn ni yn ôl pob tebyg - 507 00:25:03,940 --> 00:25:07,175 yeah, gallwn greu pwyntydd i newydd nod, fel pwyntydd nod blaenorol a 508 00:25:07,175 --> 00:25:09,600 pwyntydd nod ar hyn o bryd. 509 00:25:09,600 --> 00:25:12,640 Felly, gadewch i ni rhowch hynny yma. 510 00:25:12,640 --> 00:25:15,610 511 00:25:15,610 --> 00:25:26,900 Creu cyfredol a blaenorol awgrymiadau i'r nodau. 512 00:25:26,900 --> 00:25:28,955 Ond pan ydyn ni'n addasu awgrymiadau hynny? 513 00:25:28,955 --> 00:25:30,205 Ble rydym yn gwneud hynny yn y cod? 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 >> GYNULLEIDFA: - amodau gwerth? 517 00:25:35,170 --> 00:25:36,420 >> JASON HIRSCHORN: Pa un yn benodol? 518 00:25:36,420 --> 00:25:39,862 519 00:25:39,862 --> 00:25:40,720 >> GYNULLEIDFA: Rwy'n drysu. 520 00:25:40,720 --> 00:25:44,200 Os yw gwerth yn fwy na nod hwn, Nid yw hynny'n golygu eich bod am fynd 521 00:25:44,200 --> 00:25:45,320 i'r nod nesaf? 522 00:25:45,320 --> 00:25:49,515 >> JASON Hirschhorn: Felly, os ein gwerth yn fwy na gwerth y nod hwn. 523 00:25:49,515 --> 00:25:52,130 >> GYNULLEIDFA: Yeah, yna byddech eisiau fynd ymhellach i lawr y lein, dde? 524 00:25:52,130 --> 00:25:52,590 >> JASON Hirschhorn: Iawn. 525 00:25:52,590 --> 00:25:53,840 Felly, nid ydym yn mewnosod yma. 526 00:25:53,840 --> 00:25:58,430 527 00:25:58,430 --> 00:26:03,240 Os yw gwerth yn llai na nod hwn, yna rydym yn mynd i'r nod nesaf - neu yna rydym yn 528 00:26:03,240 --> 00:26:03,835 mewnosod o'r blaen. 529 00:26:03,835 --> 00:26:05,966 >> GYNULLEIDFA: Arhoswch, sef a yw hyn nod ac sydd yn werth? 530 00:26:05,966 --> 00:26:08,510 531 00:26:08,510 --> 00:26:09,280 >> JASON Hirschhorn: Cwestiwn da. 532 00:26:09,280 --> 00:26:13,260 Gwerth y diffiniad swyddogaeth hon yr hyn yr ydym yn ei roi. 533 00:26:13,260 --> 00:26:16,910 Felly gwerth yn y nifer rydym yn ei roi. 534 00:26:16,910 --> 00:26:21,120 Felly, os yw'r gwerth yn llai na hyn nod, mae angen amser i fewnosod. 535 00:26:21,120 --> 00:26:24,575 Os yw gwerth yn fwy na nod hwn, rydym yn mynd i'r nod nesaf. 536 00:26:24,575 --> 00:26:26,790 Ac yn ôl at y cwestiwn gwreiddiol, fodd bynnag, lle mae - 537 00:26:26,790 --> 00:26:29,060 >> GYNULLEIDFA: Os yw gwerth yn fwy na nod hwn. 538 00:26:29,060 --> 00:26:30,310 >> JASON Hirschhorn: Ac felly beth ydym yn ei wneud yma? 539 00:26:30,310 --> 00:26:36,790 540 00:26:36,790 --> 00:26:38,160 Melys. 541 00:26:38,160 --> 00:26:38,860 Mae hynny'n gywir. 542 00:26:38,860 --> 00:26:41,370 Im 'jyst yn mynd i ysgrifennu Diweddariad awgrymiadau. 543 00:26:41,370 --> 00:26:44,010 Ond ie, gyda'r un presennol byddech yn ei ddiweddaru i 544 00:26:44,010 --> 00:26:46,080 pwyntio i'r un nesaf. 545 00:26:46,080 --> 00:26:47,330 Unrhyw beth arall rydym yn ar goll? 546 00:26:47,330 --> 00:26:52,710 547 00:26:52,710 --> 00:26:54,940 Felly, yr wyf i'n mynd i deipio hwn cod i mewn i gedit. 548 00:26:54,940 --> 00:26:58,375 Ac er fy mod yn gwneud hyn, gallwch gael ychydig mwy o funudau i weithio ar godio 549 00:26:58,375 --> 00:28:19,240 hyn mewn C. 550 00:28:19,240 --> 00:28:20,940 >> Felly, yr wyf yn cael mewnbwn y pseudocode. 551 00:28:20,940 --> 00:28:22,940 Nodyn sydyn cyn i ni ddechrau arni. 552 00:28:22,940 --> 00:28:25,560 Efallai na fyddwn yn gallu i llwyr gorffen hyn ym mhob 553 00:28:25,560 --> 00:28:27,300 tri o'r swyddogaethau hyn. 554 00:28:27,300 --> 00:28:30,630 Mae atebion cywir iddyn nhw y byddaf yn e-bostio i chi guys 555 00:28:30,630 --> 00:28:33,730 ar ôl adran, a bydd yn yn cael eu postio ar CS50.net. 556 00:28:33,730 --> 00:28:35,640 Felly, nid wyf yn eich annog i mynd yn edrych ar yr adrannau. 557 00:28:35,640 --> 00:28:40,550 Yr wyf yn eich annog i roi cynnig ar y rhain ar eich yn berchen ar, ac yna defnyddio'r arfer 558 00:28:40,550 --> 00:28:41,760 problemau i wirio eich atebion. 559 00:28:41,760 --> 00:28:47,070 Mae'r rhain i gyd wedi eu cynllunio i agos ymwneud â, a chadw at yr hyn 560 00:28:47,070 --> 00:28:48,400 rhaid i chi wneud ar y broblem a osodwyd. 561 00:28:48,400 --> 00:28:53,820 Felly, yr wyf yn eich annog i ymarfer hyn ar eich pen eich hun ac yna defnyddiwch y cod i 562 00:28:53,820 --> 00:28:54,660 wirio eich atebion. 563 00:28:54,660 --> 00:28:57,060 Gan fy mod yn dymuno symud ymlaen i hash tablau ar ryw bwynt yn yr adran. 564 00:28:57,060 --> 00:28:58,150 Felly, efallai na fyddwn yn cael drwy'r cyfan. 565 00:28:58,150 --> 00:28:59,960 Ond byddwn yn gwneud cymaint y gallwn yn awr. 566 00:28:59,960 --> 00:29:00,370 >> OK. 567 00:29:00,370 --> 00:29:01,960 Gadewch i ni ddechrau. 568 00:29:01,960 --> 00:29:04,770 Asam, sut rydym yn creu nod newydd? 569 00:29:04,770 --> 00:29:06,810 >> GYNULLEIDFA: ydych yn strwythur *. 570 00:29:06,810 --> 00:29:09,640 >> JASON Hirschhorn: Felly, rydym yn cael bod hyd yma. 571 00:29:09,640 --> 00:29:10,040 O, mae'n ddrwg gennyf. 572 00:29:10,040 --> 00:29:13,530 Oeddech yn ei ddweud strwythur *. 573 00:29:13,530 --> 00:29:17,260 >> GYNULLEIDFA: Ac yna [? fath?] nod neu c nod. 574 00:29:17,260 --> 00:29:17,780 >> JASON Hirschhorn: OK. 575 00:29:17,780 --> 00:29:19,740 Rydw i'n mynd i alw new_node er mwyn i ni aros yn gyson. 576 00:29:19,740 --> 00:29:22,646 577 00:29:22,646 --> 00:29:33,180 >> GYNULLEIDFA: A ydych am osod y i fod yn bennaeth, y nod cyntaf. 578 00:29:33,180 --> 00:29:33,580 >> JASON Hirschhorn: OK. 579 00:29:33,580 --> 00:29:37,290 Felly nawr pwyntio hon i - felly mae hyn yn nid yw wedi creu nod newydd eto. 580 00:29:37,290 --> 00:29:41,380 Mae hyn yn unig yw pwyntio at y nod cyntaf yn y rhestr. 581 00:29:41,380 --> 00:29:42,630 Sut ydw i'n creu nod newydd? 582 00:29:42,630 --> 00:29:45,490 583 00:29:45,490 --> 00:29:48,070 Os oes angen lle i greu nod newydd. 584 00:29:48,070 --> 00:29:49,230 Malloc. 585 00:29:49,230 --> 00:29:51,710 A pha mor fawr? 586 00:29:51,710 --> 00:30:00,390 >> GYNULLEIDFA: Mae maint y strwythur. 587 00:30:00,390 --> 00:30:01,150 >> JASON Hirschhorn: Y maint y strwythur. 588 00:30:01,150 --> 00:30:02,400 A beth yw'r strwythur a elwir yn? 589 00:30:02,400 --> 00:30:09,670 590 00:30:09,670 --> 00:30:09,840 >> GYNULLEIDFA: Nôd? 591 00:30:09,840 --> 00:30:11,640 >> JASON Hirschhorn: Nôd. 592 00:30:11,640 --> 00:30:17,640 Felly malloc (sizeof (nod)); yn rhoi lle i ni. 593 00:30:17,640 --> 00:30:19,740 Ac a yw hyn lein - 594 00:30:19,740 --> 00:30:21,740 un peth yn anghywir ar y llinell hon. 595 00:30:21,740 --> 00:30:24,430 A new_node pwyntydd i strwythur? 596 00:30:24,430 --> 00:30:25,650 Dyna enw generig. 597 00:30:25,650 --> 00:30:26,520 Beth ydyw - 598 00:30:26,520 --> 00:30:27,450 nod, yn union. 599 00:30:27,450 --> 00:30:29,340 Mae'n nod *. 600 00:30:29,340 --> 00:30:33,010 A beth ydym yn ei wneud i'r dde ar ôl rydym yn malloc rhywbeth, Asan? 601 00:30:33,010 --> 00:30:34,476 Beth yw'r peth cyntaf rydym yn ei wneud? 602 00:30:34,476 --> 00:30:38,850 603 00:30:38,850 --> 00:30:40,320 Beth os nad yw'n gweithio? 604 00:30:40,320 --> 00:30:42,430 >> GYNULLEIDFA: O, gwiriwch os yw'n cyfeirio at y nod? 605 00:30:42,430 --> 00:30:43,310 >> JASON Hirschhorn: Yn union. 606 00:30:43,310 --> 00:30:46,750 Felly, os ydych new_node hafal hafal null, beth ydym yn ei wneud? 607 00:30:46,750 --> 00:30:51,650 608 00:30:51,650 --> 00:30:54,820 Mae hyn yn dychwelyd bool, swyddogaeth hon. 609 00:30:54,820 --> 00:30:57,760 Yn union. 610 00:30:57,760 --> 00:30:58,450 Yn edrych yn dda. 611 00:30:58,450 --> 00:30:59,680 Unrhyw beth i'w ychwanegu yno? 612 00:30:59,680 --> 00:31:00,670 Byddwn yn ychwanegu pethau ar y diwedd. 613 00:31:00,670 --> 00:31:03,160 Ond bod hyd yn hyn yn edrych yn dda. 614 00:31:03,160 --> 00:31:06,170 Creu awgrymiadau presennol a blaenorol. 615 00:31:06,170 --> 00:31:08,650 Michael, sut ydw i'n gwneud hyn? 616 00:31:08,650 --> 00:31:12,810 >> GYNULLEIDFA: Byddai gennych i wneud nod *. 617 00:31:12,810 --> 00:31:21,800 618 00:31:21,800 --> 00:31:25,502 Byddai'n rhaid i chi beidio â gwneud un ar gyfer new_node ond ar gyfer y 619 00:31:25,502 --> 00:31:26,905 nodau sydd gennym yn barod. 620 00:31:26,905 --> 00:31:27,230 >> JASON Hirschhorn: OK. 621 00:31:27,230 --> 00:31:29,255 Felly, y nod ar hyn o bryd rydym yn ar. 622 00:31:29,255 --> 00:31:30,505 'N annhymerus' galw hynny'n CURR. 623 00:31:30,505 --> 00:31:39,650 624 00:31:39,650 --> 00:31:39,770 Mae pob hawl. 625 00:31:39,770 --> 00:31:41,620 Rydym wedi penderfynu ein bod am gadw dau oherwydd mae angen i ni wybod 626 00:31:41,620 --> 00:31:42,870 beth sydd ger ei fron. 627 00:31:42,870 --> 00:31:45,770 628 00:31:45,770 --> 00:31:47,020 Beth maent yn cael ymgychwyn i? 629 00:31:47,020 --> 00:31:49,874 630 00:31:49,874 --> 00:31:54,180 >> GYNULLEIDFA: Mae eu gwerth yn ein rhestr. 631 00:31:54,180 --> 00:31:58,090 >> JASON Hirschhorn: Felly beth yw'r peth cyntaf ar ein rhestr? 632 00:31:58,090 --> 00:32:04,050 Neu sut rydym yn gwybod ble mae'r ddechrau ein rhestr yw? 633 00:32:04,050 --> 00:32:08,015 >> GYNULLEIDFA: Onid yw'n pasio i mewn i'r swyddogaeth? 634 00:32:08,015 --> 00:32:08,466 >> JASON Hirschhorn: Iawn. 635 00:32:08,466 --> 00:32:09,716 Cafodd ei basio yn y dde yma. 636 00:32:09,716 --> 00:32:15,910 637 00:32:15,910 --> 00:32:18,980 Felly, os caiff ei basio i mewn i'r swyddogaeth, y ar ddechrau'r rhestr, yr hyn y dylem 638 00:32:18,980 --> 00:32:21,270 gosod ar hyn o bryd yn hafal i? 639 00:32:21,270 --> 00:32:22,110 >> GYNULLEIDFA: Rhestr. 640 00:32:22,110 --> 00:32:22,900 >> JASON Hirschhorn: Rhestr. 641 00:32:22,900 --> 00:32:24,090 Dyna'n union gywir. 642 00:32:24,090 --> 00:32:26,290 Nawr mae wedi y cyfeiriad y dechrau ein rhestr. 643 00:32:26,290 --> 00:32:28,450 A beth am blaenorol? 644 00:32:28,450 --> 00:32:31,920 >> GYNULLEIDFA: Rhestr llai un? 645 00:32:31,920 --> 00:32:32,690 >> JASON Hirschhorn: Mae dim ger ei fron. 646 00:32:32,690 --> 00:32:34,580 Felly, beth allwn ni ei wneud i ddynodi dim byd? 647 00:32:34,580 --> 00:32:35,050 >> GYNULLEIDFA: Null. 648 00:32:35,050 --> 00:32:35,450 >> JASON Hirschhorn: Yeah. 649 00:32:35,450 --> 00:32:37,950 Mae hynny'n swnio fel syniad da. 650 00:32:37,950 --> 00:32:38,360 Perffaith. 651 00:32:38,360 --> 00:32:39,630 Diolch yn fawr. 652 00:32:39,630 --> 00:32:42,850 Ewch drwy'r rhestr. 653 00:32:42,850 --> 00:32:45,490 Constantine, pa mor hir yr ydym yn mynd i fynd drwy'r rhestr? 654 00:32:45,490 --> 00:32:49,010 >> GYNULLEIDFA: Nes Rydym yn cyrraedd null. 655 00:32:49,010 --> 00:32:49,390 >> JASON Hirschhorn: OK. 656 00:32:49,390 --> 00:32:50,430 Felly, os, er, ar gyfer dolen. 657 00:32:50,430 --> 00:32:52,200 Beth rydym yn ei wneud? 658 00:32:52,200 --> 00:32:53,320 >> GYNULLEIDFA: Efallai yn ar gyfer dolen? 659 00:32:53,320 --> 00:32:53,910 >> JASON Hirschhorn: Gadewch i ni wneud yn ar gyfer dolen. 660 00:32:53,910 --> 00:32:55,870 OK. 661 00:32:55,870 --> 00:33:02,465 >> GYNULLEIDFA: Ac yr ydym yn dweud am - 662 00:33:02,465 --> 00:33:09,764 663 00:33:09,764 --> 00:33:13,390 nes bod y pwyntydd ar hyn o bryd Nid yn hafal i null. 664 00:33:13,390 --> 00:33:19,160 >> JASON Hirschhorn: Felly, os ydym yn gwybod y cyflwr, sut y gallwn ysgrifennu dolen 665 00:33:19,160 --> 00:33:21,740 seiliedig oddi cyflwr hwnnw. 666 00:33:21,740 --> 00:33:24,380 Pa fath o dolen y dylem eu defnyddio? 667 00:33:24,380 --> 00:33:25,260 >> GYNULLEIDFA: Er. 668 00:33:25,260 --> 00:33:25,590 >> JASON Hirschhorn: Yeah. 669 00:33:25,590 --> 00:33:27,130 Mae hynny'n gwneud mwy o synnwyr yn seiliedig ar oddi ar yr hyn a ddywedasoch. 670 00:33:27,130 --> 00:33:29,430 Os ydym yn unig am fynd i mewn i ni y byddai jyst yn gwybod y peth, byddai'n gwneud 671 00:33:29,430 --> 00:33:31,680 synnwyr i wneud dolen gyfnod. 672 00:33:31,680 --> 00:33:39,880 Er bod ar hyn o bryd yn null nid gyfartal, os gwerth yn llai na nod hwn. 673 00:33:39,880 --> 00:33:41,650 AKSHAR, yn rhoi y llinell hon i mi. 674 00:33:41,650 --> 00:33:48,810 675 00:33:48,810 --> 00:33:56,955 >> GYNULLEIDFA: Os ar hyn o bryd-> n n yn llai na gwerth. 676 00:33:56,955 --> 00:34:00,170 677 00:34:00,170 --> 00:34:03,260 Neu wrthdroi hynny. 678 00:34:03,260 --> 00:34:06,140 Symud y braced. 679 00:34:06,140 --> 00:34:06,620 >> JASON Hirschhorn: Mae'n ddrwg gennyf. 680 00:34:06,620 --> 00:34:08,760 >> GYNULLEIDFA: Newid y braced. 681 00:34:08,760 --> 00:34:10,914 >> JASON Hirschhorn: Felly, os yw'n yn fwy na gwerth. 682 00:34:10,914 --> 00:34:18,719 683 00:34:18,719 --> 00:34:22,120 Oherwydd dyna ddryslyd gyda'r sylwadau uchod, dw i'n mynd i wneud hynny. 684 00:34:22,120 --> 00:34:22,480 Ond ie. 685 00:34:22,480 --> 00:34:25,125 Os yw ein gwerth yn llai na hyn nod, beth ydym yn ei wneud? 686 00:34:25,125 --> 00:34:25,540 Oh. 687 00:34:25,540 --> 00:34:26,710 Mae gen i yn iawn yma. 688 00:34:26,710 --> 00:34:27,960 Mewnosod blaen. 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 Sut ydym yn gwneud hynny? 692 00:34:33,933 --> 00:34:34,900 >> GYNULLEIDFA: A yw'n dal i mi? 693 00:34:34,900 --> 00:34:36,150 >> JASON Hirschhorn: Yeah. 694 00:34:36,150 --> 00:34:38,520 695 00:34:38,520 --> 00:34:39,770 >> GYNULLEIDFA: Chi - 696 00:34:39,770 --> 00:34:42,909 697 00:34:42,909 --> 00:34:44,159 new_node-> nesaf. 698 00:34:44,159 --> 00:34:46,770 699 00:34:46,770 --> 00:34:50,163 >> JASON Hirschhorn: Felly beth sydd bod yn mynd i fod yn gyfartal? 700 00:34:50,163 --> 00:34:52,070 >> GYNULLEIDFA: Mae'n mynd i ar hyn o bryd cyfartal. 701 00:34:52,070 --> 00:34:53,889 >> JASON Hirschhorn: Yn union. 702 00:34:53,889 --> 00:34:55,730 Ac felly y llall - 703 00:34:55,730 --> 00:34:56,730 beth arall y mae angen i ni i ddiweddaru? 704 00:34:56,730 --> 00:34:59,982 >> GYNULLEIDFA: Gwiriwch a oes yn y gorffennol yn dychwelyd null. 705 00:34:59,982 --> 00:35:01,870 >> JASON Hirschhorn: Os prev - 706 00:35:01,870 --> 00:35:03,730 felly os prev hafal null. 707 00:35:03,730 --> 00:35:05,990 >> GYNULLEIDFA: Mae hynny'n golygu ei fod yn mynd i ddod yn pen. 708 00:35:05,990 --> 00:35:06,780 >> JASON Hirschhorn: Mae hynny'n golygu mae wedi dod yn y pen. 709 00:35:06,780 --> 00:35:07,620 Felly, yna beth ydym yn ei wneud? 710 00:35:07,620 --> 00:35:12,510 >> GYNULLEIDFA: Rydym yn gwneud pen hafal new_node. 711 00:35:12,510 --> 00:35:16,690 >> JASON Hirschhorn: Pennaeth yn hafal i new_node. 712 00:35:16,690 --> 00:35:20,540 A pham pen yma, nid rhestru? 713 00:35:20,540 --> 00:35:24,940 >> GYNULLEIDFA: Oherwydd bod pen yn fyd-eang amrywiol, sef y man cychwyn. 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 A - 718 00:35:36,150 --> 00:35:53,796 >> GYNULLEIDFA: Yna byddwch yn arall prev-> nesaf yn dychwelyd new_node. 719 00:35:53,796 --> 00:35:55,080 Ac yna byddwch yn dychwelyd yn wir. 720 00:35:55,080 --> 00:35:59,560 721 00:35:59,560 --> 00:36:02,700 >> JASON Hirschhorn: O ble rydym yn gosod pen new_node? 722 00:36:02,700 --> 00:36:04,850 >> GYNULLEIDFA: Hoffwn - 723 00:36:04,850 --> 00:36:06,180 Yr wyf yn sefydlu hynny ar y dechrau. 724 00:36:06,180 --> 00:36:07,430 >> JASON Hirschhorn: Felly pa llinell? 725 00:36:07,430 --> 00:36:10,000 726 00:36:10,000 --> 00:36:12,598 >> GYNULLEIDFA: Ar ôl y datganiad os gwirio os yw'n hysbys. 727 00:36:12,598 --> 00:36:13,057 >> JASON Hirschhorn: Yma? 728 00:36:13,057 --> 00:36:18,335 >> GYNULLEIDFA: byddwn i'n ei wneud new_node-> n yn dychwelyd gwerth. 729 00:36:18,335 --> 00:36:19,585 >> JASON Hirschhorn: Swnio'n dda. 730 00:36:19,585 --> 00:36:21,740 731 00:36:21,740 --> 00:36:25,090 Mae'n debyg ei fod yn gwneud synnwyr - nid ydym yn ei wneud angen i ni wybod pa rhestr rydym ar 732 00:36:25,090 --> 00:36:26,280 oherwydd ein bod yn delio yn unig gydag un rhestr. 733 00:36:26,280 --> 00:36:29,560 Felly datganiad swyddogaeth gwell ar gyfer yn unig yw hwn i gael gwared ar y 734 00:36:29,560 --> 00:36:34,360 yn gyfan gwbl a dim ond rhowch gwerth i ben. 735 00:36:34,360 --> 00:36:35,930 Nid oes hyd yn oed angen i ni wybod pa rhestr rydym yn ynddo 736 00:36:35,930 --> 00:36:39,140 Ond byddaf yn ei gadw am y tro a yna newid ar diweddaru 737 00:36:39,140 --> 00:36:42,590 y sleidiau a chod. 738 00:36:42,590 --> 00:36:44,980 Felly mae hynny'n edrych yn dda ar hyn o bryd. 739 00:36:44,980 --> 00:36:46,560 Os yw gwerth - pwy all wneud y llinell hon? 740 00:36:46,560 --> 00:36:47,810 Pe bai - 741 00:36:47,810 --> 00:36:52,240 742 00:36:52,240 --> 00:36:53,840 beth ydym yn ei wneud yma, Noa. 743 00:36:53,840 --> 00:36:57,890 744 00:36:57,890 --> 00:37:07,100 >> GYNULLEIDFA: Os yw gwerth yn fwy na CURR-> n - 745 00:37:07,100 --> 00:37:16,830 746 00:37:16,830 --> 00:37:18,240 >> JASON Hirschhorn: Sut mae rydym yn mynd i'r nod nesaf? 747 00:37:18,240 --> 00:37:27,760 748 00:37:27,760 --> 00:37:30,530 >> GYNULLEIDFA: CURR-> n yn cyfartal i new_node. 749 00:37:30,530 --> 00:37:37,630 750 00:37:37,630 --> 00:37:39,195 >> JASON Hirschhorn: Felly n yw pa ran o'r strwythur? 751 00:37:39,195 --> 00:37:43,065 752 00:37:43,065 --> 00:37:46,020 Mae'r cyfanrif. 753 00:37:46,020 --> 00:37:50,420 Ac new_node yn pwyntydd i nod. 754 00:37:50,420 --> 00:37:51,880 Felly pa ran o CURR dylem diweddaru? 755 00:37:51,880 --> 00:38:03,900 756 00:38:03,900 --> 00:38:05,400 Os na n, yna beth yw'r rhan arall? 757 00:38:05,400 --> 00:38:21,680 758 00:38:21,680 --> 00:38:22,810 Noah, beth y rhan arall. 759 00:38:22,810 --> 00:38:23,570 >> GYNULLEIDFA: O, nesaf. 760 00:38:23,570 --> 00:38:25,645 >> JASON Hirschhorn: Nesaf, yn union. 761 00:38:25,645 --> 00:38:26,410 Yn union. 762 00:38:26,410 --> 00:38:28,770 Nesaf yw'r un cywir. 763 00:38:28,770 --> 00:38:31,540 A beth arall y mae angen i ni i ddiweddaru, Noa? 764 00:38:31,540 --> 00:38:32,840 >> GYNULLEIDFA: Y pwyntiau. 765 00:38:32,840 --> 00:38:34,840 >> JASON Hirschhorn: Felly gwnaethom ddiweddaru ar hyn o bryd. 766 00:38:34,840 --> 00:38:36,090 >> GYNULLEIDFA: Blaenorol-> nesaf. 767 00:38:36,090 --> 00:38:48,160 768 00:38:48,160 --> 00:38:49,410 >> JASON Hirschhorn: Yeah. 769 00:38:49,410 --> 00:38:57,465 770 00:38:57,465 --> 00:38:58,370 OK, byddwn yn oedi. 771 00:38:58,370 --> 00:39:02,200 Pwy all ein helpu allan yma? 772 00:39:02,200 --> 00:39:03,385 Manu, beth ddylem ei wneud? 773 00:39:03,385 --> 00:39:05,615 >> GYNULLEIDFA: Mae'n rhaid i chi osod mae'n cyfartal i CURR-> nesaf. 774 00:39:05,615 --> 00:39:09,110 775 00:39:09,110 --> 00:39:11,630 Ond gwneud hynny cyn i'r llinell flaenorol. 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 Unrhyw beth arall? 779 00:39:18,260 --> 00:39:19,170 AKSHAR. 780 00:39:19,170 --> 00:39:22,680 >> GYNULLEIDFA: Nid wyf yn meddwl eich bod yn i fod i newid CURR-> nesaf. 781 00:39:22,680 --> 00:39:29,270 Rwy'n credu eich bod i fod i'w wneud hafal CURR CURR-> nesaf i fynd i'r nod nesaf. 782 00:39:29,270 --> 00:39:30,500 >> JASON Hirschhorn: Felly ddrwg gennym, ble? 783 00:39:30,500 --> 00:39:32,680 Ar ba lein? 784 00:39:32,680 --> 00:39:33,420 Mae'r llinell hon? 785 00:39:33,420 --> 00:39:33,750 >> GYNULLEIDFA: Yeah. 786 00:39:33,750 --> 00:39:35,745 Gwneud CURR hafal CURR-> nesaf. 787 00:39:35,745 --> 00:39:39,690 788 00:39:39,690 --> 00:39:43,360 >> JASON Hirschhorn: Felly dyna gywir oherwydd ar hyn o bryd yn 789 00:39:43,360 --> 00:39:45,220 Pwyntydd at nod. 790 00:39:45,220 --> 00:39:48,550 Ac rydym am iddo i dynnu sylw at y nesaf nod yr hyn sy'n mynd ar hyn o bryd 791 00:39:48,550 --> 00:39:49,930 yn tynnu sylw at. 792 00:39:49,930 --> 00:39:54,410 CURR ei hun yn nesaf. 793 00:39:54,410 --> 00:39:58,620 Ond os ydym yn i ddiweddaru curr.next, rydym yn Byddai yn diweddaru'r nodyn gwirioneddol 794 00:39:58,620 --> 00:40:01,430 ei hun, nid lle mae hyn yn Roedd pwyntydd yn pwyntio. 795 00:40:01,430 --> 00:40:02,680 Beth am y llinell hon, er. 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 >> GYNULLEIDFA: Blaenorol-> nesaf hafal CURR. 799 00:40:09,590 --> 00:40:12,500 800 00:40:12,500 --> 00:40:19,440 >> JASON Hirschhorn: Felly eto, os prev yn pwyntydd i nod, prev-> nesaf yw'r 801 00:40:19,440 --> 00:40:23,020 pwyntydd gwirioneddol yn y nod. 802 00:40:23,020 --> 00:40:27,190 Felly byddai hyn yn cael ei diweddaru pwyntydd mewn nod i CURR. 803 00:40:27,190 --> 00:40:28,570 Nid ydym am i ddiweddaru pwyntydd mewn nod. 804 00:40:28,570 --> 00:40:30,570 Rydym eisiau i ddiweddaru blaenorol. 805 00:40:30,570 --> 00:40:31,850 Felly, sut rydym yn gwneud hynny? 806 00:40:31,850 --> 00:40:34,250 >> GYNULLEIDFA: Byddai'n fater syml o'u prev. 807 00:40:34,250 --> 00:40:34,565 >> JASON Hirschhorn: Iawn. 808 00:40:34,565 --> 00:40:35,560 Prev rhoi syniad i nod. 809 00:40:35,560 --> 00:40:38,750 Nawr rydym yn ei newid i pwyntydd newydd i nod. 810 00:40:38,750 --> 00:40:40,830 OK Gadewch i ni symud i lawr. 811 00:40:40,830 --> 00:40:41,940 Yn olaf, amod olaf hwn. 812 00:40:41,940 --> 00:40:44,896 Jeff, beth ydym yn ei wneud yma? 813 00:40:44,896 --> 00:40:47,515 >> GYNULLEIDFA: Os yw gwerth yn cyfartal i CURR-> n. 814 00:40:47,515 --> 00:40:51,030 815 00:40:51,030 --> 00:40:51,300 >> JASON Hirschhorn: Mae'n ddrwg gennyf. 816 00:40:51,300 --> 00:40:52,372 Oh fy daioni. 817 00:40:52,372 --> 00:40:54,330 Beth? 818 00:40:54,330 --> 00:40:55,580 Gwerth == CURR-> n. 819 00:40:55,580 --> 00:41:01,050 820 00:41:01,050 --> 00:41:02,300 Beth ydym ni'n ei wneud? 821 00:41:02,300 --> 00:41:04,760 822 00:41:04,760 --> 00:41:10,950 >> GYNULLEIDFA: Byddech yn rhad ac am ddim ein new_node, ac yna byddech yn dychwelyd ffug. 823 00:41:10,950 --> 00:41:21,410 824 00:41:21,410 --> 00:41:23,460 >> JASON Hirschhorn: Dyma beth rydym wedi ysgrifennu hyd yn hyn. 825 00:41:23,460 --> 00:41:25,710 A oes unrhyw un yn cael unrhyw beth i ychwanegu cyn i ni ei wneud? 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 Gadewch i ni roi cynnig arni. 829 00:41:36,960 --> 00:41:44,180 830 00:41:44,180 --> 00:41:46,110 Gall rheolaeth gyrraedd y diwedd swyddogaeth heb fod yn ddi-rym. 831 00:41:46,110 --> 00:41:48,310 Avi, beth sy'n mynd ymlaen? 832 00:41:48,310 --> 00:41:51,380 >> GYNULLEIDFA: A ydych yn fod i roi dychwelyd yn wir y tu allan i'r ddolen tra? 833 00:41:51,380 --> 00:41:53,900 834 00:41:53,900 --> 00:41:54,400 >> JASON Hirschhorn: Nid wyf yn gwybod. 835 00:41:54,400 --> 00:41:54,780 Ydych chi am i mi? 836 00:41:54,780 --> 00:41:55,520 >> GYNULLEIDFA: Peidiwch byth â meddwl. 837 00:41:55,520 --> 00:41:56,350 Rhif 838 00:41:56,350 --> 00:41:57,180 >> JASON Hirschhorn: AKSHAR? 839 00:41:57,180 --> 00:41:59,460 >> GYNULLEIDFA: Yr wyf yn meddwl eich bod i fod i rhoi ffug yn dychwelyd ar ddiwedd y 840 00:41:59,460 --> 00:42:02,230 o'r ddolen tra. 841 00:42:02,230 --> 00:42:03,270 >> JASON Hirschhorn: Felly, lle ydych chi eisiau iddo fynd? 842 00:42:03,270 --> 00:42:05,270 >> GYNULLEIDFA: Fel y tu allan i'r ddolen tra. 843 00:42:05,270 --> 00:42:08,800 Felly, os ydych yn gadael y ddolen tra mae hynny'n ei olygu eich bod wedi cyrraedd y diwedd a 844 00:42:08,800 --> 00:42:09,980 dim byd wedi digwydd. 845 00:42:09,980 --> 00:42:10,410 >> JASON Hirschhorn: OK. 846 00:42:10,410 --> 00:42:12,340 Felly, beth ydym yn ei wneud yma? 847 00:42:12,340 --> 00:42:13,702 >> GYNULLEIDFA: Yr ydych yn dychwelyd ffug yno yn ogystal. 848 00:42:13,702 --> 00:42:15,040 >> JASON Hirschhorn: O, rydym yn yn ei wneud yn y ddau le? 849 00:42:15,040 --> 00:42:15,650 >> GYNULLEIDFA: Yeah. 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 Dylem fynd? 853 00:42:26,160 --> 00:42:26,980 Oh fy daioni. 854 00:42:26,980 --> 00:42:27,290 Mae'n ddrwg gen i. 855 00:42:27,290 --> 00:42:28,480 Rwy'n ymddiheuro am y sgrin. 856 00:42:28,480 --> 00:42:30,530 Mae'n fath o ei freaking allan ar ni. 857 00:42:30,530 --> 00:42:31,520 Felly dewiswch opsiwn. 858 00:42:31,520 --> 00:42:35,260 Zero, fesul y cod, ymddiswyddo y rhaglen. 859 00:42:35,260 --> 00:42:36,700 Un mewnosod rhywbeth. 860 00:42:36,700 --> 00:42:37,990 Gadewch i ni mewnosod tri. 861 00:42:37,990 --> 00:42:42,900 862 00:42:42,900 --> 00:42:45,380 Nid y mewnosodiad yn llwyddiannus. 863 00:42:45,380 --> 00:42:46,500 Rydw i'n mynd i'w hargraffu. 864 00:42:46,500 --> 00:42:48,050 Nid oes gennyf unrhyw beth. 865 00:42:48,050 --> 00:42:48,450 OK. 866 00:42:48,450 --> 00:42:50,250 Efallai dyna yn unig oedd llyngyr. 867 00:42:50,250 --> 00:42:52,810 Mewnosod un. 868 00:42:52,810 --> 00:42:55,770 Ddim yn llwyddiannus. 869 00:42:55,770 --> 00:42:57,470 OK. 870 00:42:57,470 --> 00:43:02,400 Gadewch i ni redeg drwy GDB yn gyflym iawn i weld beth sy'n digwydd. 871 00:43:02,400 --> 00:43:06,055 >> Cofiwch gdb. / Enw eich rhaglen yn cael ni i GDB. 872 00:43:06,055 --> 00:43:07,610 Yw bod llawer i drin? 873 00:43:07,610 --> 00:43:08,560 Mae'r fflachio? 874 00:43:08,560 --> 00:43:10,400 Yn ôl pob tebyg. 875 00:43:10,400 --> 00:43:12,760 Caewch eich llygaid a chymryd rhai dwfn anadliadau os ydych yn cael blino 876 00:43:12,760 --> 00:43:13,580 o edrych arno. 877 00:43:13,580 --> 00:43:14,200 Im 'i mewn GDB. 878 00:43:14,200 --> 00:43:15,830 Beth yw'r peth cyntaf i mi ei wneud yn GDB? 879 00:43:15,830 --> 00:43:17,050 Mae gennym i chyfrif i maes beth sy'n digwydd yma. 880 00:43:17,050 --> 00:43:17,310 Gadewch i ni weld. 881 00:43:17,310 --> 00:43:21,650 Mae gennym chwe munud i ffigur gwybod beth sy'n mynd ymlaen. 882 00:43:21,650 --> 00:43:22,900 Egwyl prif. 883 00:43:22,900 --> 00:43:25,950 884 00:43:25,950 --> 00:43:28,130 Ac yna beth ddylwn i ei wneud? 885 00:43:28,130 --> 00:43:29,180 Carlos? 886 00:43:29,180 --> 00:43:31,060 Rhedeg. 887 00:43:31,060 --> 00:43:32,250 OK. 888 00:43:32,250 --> 00:43:34,160 Gadewch i ni ddewis opsiwn. 889 00:43:34,160 --> 00:43:36,330 A beth mae'n N ei wneud? 890 00:43:36,330 --> 00:43:38,480 Nesaf. 891 00:43:38,480 --> 00:43:38,950 Yeah. 892 00:43:38,950 --> 00:43:39,740 >> GYNULLEIDFA: Heb chi sôn - 893 00:43:39,740 --> 00:43:45,230 nad oeddech yn dweud bod y pennaeth, yr oedd yn ymgychwyn i null ar y dechrau. 894 00:43:45,230 --> 00:43:47,140 Ond yr wyf yn meddwl eich dweud hynny yn iawn. 895 00:43:47,140 --> 00:43:50,040 896 00:43:50,040 --> 00:43:52,640 >> JASON Hirschhorn: Gadewch i ni fynd - gadewch i ni edrych yn GDB, ac yna byddwn yn mynd yn ôl. 897 00:43:52,640 --> 00:43:54,910 Ond mae'n swnio fel chi eisoes wedi rhai syniadau am yr hyn sy'n digwydd. 898 00:43:54,910 --> 00:43:58,340 Felly, rydym am i fewnosod rhywbeth. 899 00:43:58,340 --> 00:43:59,390 OK. 900 00:43:59,390 --> 00:44:00,150 Rydym wedi mewnosod. 901 00:44:00,150 --> 00:44:00,770 Os gwelwch yn dda gofnodi int. 902 00:44:00,770 --> 00:44:01,990 Byddwn yn mewnosod tri. 903 00:44:01,990 --> 00:44:03,000 Ac yna dwi ar y llinell hon. 904 00:44:03,000 --> 00:44:07,030 Sut ydw i'n mynd dechrau debugging y mewnosodiad yn hysbys swyddogaeth? 905 00:44:07,030 --> 00:44:08,280 Oh fy daioni. 906 00:44:08,280 --> 00:44:10,990 907 00:44:10,990 --> 00:44:12,240 Mae hynny'n llawer. 908 00:44:12,240 --> 00:44:14,372 909 00:44:14,372 --> 00:44:16,445 A yw hynny'n freaking allan llawer? 910 00:44:16,445 --> 00:44:19,696 911 00:44:19,696 --> 00:44:21,680 >> GYNULLEIDFA: O, mae'n farw. 912 00:44:21,680 --> 00:44:22,930 >> JASON Hirschhorn: Fi jyst tynnu allan. 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 >> GYNULLEIDFA: Efallai ei fod yn y ben arall y wifren. 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 Felly y llinell waelod - 919 00:44:42,330 --> 00:44:43,470 beth wnaethoch chi ei ddweud? 920 00:44:43,470 --> 00:44:46,040 >> GYNULLEIDFA: Dywedais yr eironi o technegol anawsterau yn y dosbarth hwn. 921 00:44:46,040 --> 00:44:46,410 >> JASON Hirschhorn: Yr wyf yn gwybod. 922 00:44:46,410 --> 00:44:48,660 Os mai dim ond bu'n rhaid i mi reolaeth dros y rhan honno. 923 00:44:48,660 --> 00:44:49,910 [Anghlywadwy] 924 00:44:49,910 --> 00:44:54,430 925 00:44:54,430 --> 00:44:55,400 Mae hynny'n swnio'n wych. 926 00:44:55,400 --> 00:44:58,680 Pam na wnewch chi guys yn dechrau meddwl am yr hyn y gallem fod wedi ei wneud yn anghywir, 927 00:44:58,680 --> 00:45:01,140 a byddwn yn ôl mewn 90 eiliad. 928 00:45:01,140 --> 00:46:18,160 929 00:46:18,160 --> 00:46:23,010 >> Avica, dw i'n mynd i ofyn i chi sut i fynd insert_node y tu mewn i debug iddo. 930 00:46:23,010 --> 00:46:28,940 931 00:46:28,940 --> 00:46:31,460 Felly, mae hyn yw pan diwethaf rydym yn gadael i ffwrdd. 932 00:46:31,460 --> 00:46:35,110 Sut ydw i'n mynd y tu mewn insert_node, Avica, i edrych ar beth sy'n mynd ymlaen? 933 00:46:35,110 --> 00:46:36,360 Pa gorchymyn GDB? 934 00:46:36,360 --> 00:46:41,050 935 00:46:41,050 --> 00:46:42,390 Ni fyddai seibiant mynd â fi tu mewn. 936 00:46:42,390 --> 00:46:46,200 937 00:46:46,200 --> 00:46:47,130 Ydy Marquise gwybod? 938 00:46:47,130 --> 00:46:48,240 >> GYNULLEIDFA: Beth? 939 00:46:48,240 --> 00:46:51,780 >> JASON Hirschhorn: Beth GDB gorchymyn Rwy'n defnyddio i fynd i mewn y swyddogaeth hon? 940 00:46:51,780 --> 00:46:52,070 >> GYNULLEIDFA: Cam? 941 00:46:52,070 --> 00:46:55,140 >> JASON Hirschhorn: Camu drwy S. Mae hynny'n mynd â mi y tu mewn. 942 00:46:55,140 --> 00:46:55,476 OK. 943 00:46:55,476 --> 00:46:58,040 New_node mallocing rhywfaint o le. 944 00:46:58,040 --> 00:46:59,120 Bod yr holl edrych fel ei mynd. 945 00:46:59,120 --> 00:47:00,370 Gadewch i ni edrych new_node. 946 00:47:00,370 --> 00:47:03,270 947 00:47:03,270 --> 00:47:05,410 Mae'n cael rhai cyfeiriad cof. 948 00:47:05,410 --> 00:47:07,440 Gadewch i ni wirio - 949 00:47:07,440 --> 00:47:08,500 bod i gyd yn gywir. 950 00:47:08,500 --> 00:47:12,220 Felly popeth yma yn ymddangos i yn gweithio yn gywir. 951 00:47:12,220 --> 00:47:14,530 >> GYNULLEIDFA: Beth yw'r gwahaniaeth rhwng P ac arddangos? 952 00:47:14,530 --> 00:47:16,160 >> JASON Hirschhorn: P sefyll am argraffu. 953 00:47:16,160 --> 00:47:19,310 Ac felly ydych yn gofyn beth yw'r gwahaniaeth rhwng hynny a'r hyn? 954 00:47:19,310 --> 00:47:22,330 Yn yr achos hwn, dim byd. 955 00:47:22,330 --> 00:47:26,960 Ond yn gyffredinol mae rhai gwahaniaethau. 956 00:47:26,960 --> 00:47:28,220 A dylech edrych yn y llawlyfr GDB. 957 00:47:28,220 --> 00:47:29,560 Ond yn yr achos hwn, dim byd. 958 00:47:29,560 --> 00:47:31,460 Rydym yn tueddu i ddefnyddio print, fodd bynnag, oherwydd Nid oes angen inni wneud llawer mwy na 959 00:47:31,460 --> 00:47:33,960 argraffu gwerth sengl. 960 00:47:33,960 --> 00:47:34,640 >> OK. 961 00:47:34,640 --> 00:47:40,300 Felly rydym yn ar-lein 80 o'n cod, gosod nod * CURR cyfartal i rhestr. 962 00:47:40,300 --> 00:47:42,500 Gadewch i ni argraffu CURR. 963 00:47:42,500 --> 00:47:45,260 964 00:47:45,260 --> 00:47:46,840 Mae'n yn dychwelyd rhestr. 965 00:47:46,840 --> 00:47:48,850 Melys. 966 00:47:48,850 --> 00:47:49,340 Aros. 967 00:47:49,340 --> 00:47:50,590 Mae'n yn dychwelyd rhywbeth. 968 00:47:50,590 --> 00:47:53,680 969 00:47:53,680 --> 00:47:56,190 Nid yw hynny'n ymddangos yn iawn. 970 00:47:56,190 --> 00:47:56,840 Dyna ni fynd. 971 00:47:56,840 --> 00:47:59,470 Mae'n oherwydd yn GDB, ar y dde, os 'i' y llinell ydych chi ar ei 972 00:47:59,470 --> 00:48:00,330 nid yw wedi cyflawni eto. 973 00:48:00,330 --> 00:48:03,100 Felly mae angen i chi deipio mewn gwirionedd yn nesaf i gyflawni'r llinell 974 00:48:03,100 --> 00:48:05,230 cyn gweld ei ganlyniadau. 975 00:48:05,230 --> 00:48:06,680 Felly dyma ni. 976 00:48:06,680 --> 00:48:09,490 Rydym yn unig yn cyflawni y llinell hon, yn hafal blaenorol null. 977 00:48:09,490 --> 00:48:13,590 Felly eto, os ydym argraffu blaenorol ni fyddwn yn gweld unrhyw beth od. 978 00:48:13,590 --> 00:48:18,680 Ond os ydym mewn gwirionedd yn gweithredu y llinell, yna byddwn yn gweld 979 00:48:18,680 --> 00:48:20,380 bod y llinell yn gweithio. 980 00:48:20,380 --> 00:48:21,060 >> Felly, rydym wedi CURR. 981 00:48:21,060 --> 00:48:23,180 Y rhai yn dda. 982 00:48:23,180 --> 00:48:24,010 Iawn? 983 00:48:24,010 --> 00:48:28,130 Nawr ein bod ar y llinell hon iawn yma. 984 00:48:28,130 --> 00:48:29,310 Er nad CURR yn null cyfartal. 985 00:48:29,310 --> 00:48:31,110 Wel, beth mae CURR cyfartal? 986 00:48:31,110 --> 00:48:32,450 Rydym yn unig yn gweld ei fod yn gyfystyr null. 987 00:48:32,450 --> 00:48:33,210 Rydym hargraffu arni. 988 00:48:33,210 --> 00:48:35,110 'N annhymerus' ei hargraffu eto. 989 00:48:35,110 --> 00:48:36,720 Felly y mae, er bod dolen mynd i weithredu? 990 00:48:36,720 --> 00:48:37,270 >> GYNULLEIDFA: Na 991 00:48:37,270 --> 00:48:39,790 >> JASON Hirschhorn: Felly, pan fyddaf deipio bod lein, byddwch yn gweld ein bod yn neidio yr holl ffordd 992 00:48:39,790 --> 00:48:41,390 i lawr i waelod, yn dychwelyd ffug. 993 00:48:41,390 --> 00:48:44,520 Ac yna rydym yn mynd i ddychwelyd ffug a mynd yn ôl at ein rhaglen a 994 00:48:44,520 --> 00:48:48,020 yn y pen draw argraffu, fel y gwelsom, Nid y mewnosodiad yn llwyddiannus. 995 00:48:48,020 --> 00:48:51,010 Felly, unrhyw un gennych unrhyw syniadau ar yr hyn mae angen i ni ei wneud i atgyweiria hon? 996 00:48:51,010 --> 00:48:54,200 997 00:48:54,200 --> 00:48:57,570 Rydw i'n mynd i aros hyd nes i mi weld un neu ddau o ddwylo yn mynd i fyny. 998 00:48:57,570 --> 00:48:58,830 Doedden ni ddim yn gweithredu hyn. 999 00:48:58,830 --> 00:49:01,660 Cadwch mewn cof, dyma oedd y cyntaf beth yr ydym yn ei wneud. 1000 00:49:01,660 --> 00:49:02,430 Dydw i ddim yn mynd i wneud cwpl. 1001 00:49:02,430 --> 00:49:03,670 Rydw i'n mynd i wneud ychydig. 1002 00:49:03,670 --> 00:49:04,830 Gan fod cwpl yn golygu dau. 1003 00:49:04,830 --> 00:49:07,620 'N annhymerus' aros am fwy na dwy. 1004 00:49:07,620 --> 00:49:10,690 >> Gosod cyntaf, CURR, yn ddiofyn yn dychwelyd null. 1005 00:49:10,690 --> 00:49:14,050 Ac mae dolen hyn ond yn executes os nad CURR yn null. 1006 00:49:14,050 --> 00:49:18,740 Felly, sut galla i fynd o gwmpas hyn? 1007 00:49:18,740 --> 00:49:19,990 Rwy'n gweld tair llaw. 1008 00:49:19,990 --> 00:49:28,490 1009 00:49:28,490 --> 00:49:29,780 'N annhymerus' aros am fwy na thri. 1010 00:49:29,780 --> 00:49:33,460 1011 00:49:33,460 --> 00:49:35,940 Marcus, beth yn eich barn chi? 1012 00:49:35,940 --> 00:49:37,730 >> GYNULLEIDFA: Wel, os bydd ei angen arnoch i gweithredu mwy nag unwaith, 'ch jyst 1013 00:49:37,730 --> 00:49:39,948 newid i ddolen do-tra. 1014 00:49:39,948 --> 00:49:41,250 >> JASON Hirschhorn: OK. 1015 00:49:41,250 --> 00:49:44,240 A fydd yn datrys ein problem, er bod? 1016 00:49:44,240 --> 00:49:47,750 >> GYNULLEIDFA: Yn yr achos hwn ni oherwydd y ffaith bod y rhestr yn wag. 1017 00:49:47,750 --> 00:49:52,150 Felly, yna mae'n debyg, ond mae angen i ychwanegu datganiad, os bydd y allanfeydd ddolen 1018 00:49:52,150 --> 00:49:55,312 Yna, rhaid i chi fod ar ddiwedd y y rhestr, a phryd ydych 1019 00:49:55,312 --> 00:49:56,562 gall dim ond rhowch ei. 1020 00:49:56,562 --> 00:49:58,920 1021 00:49:58,920 --> 00:49:59,680 >> JASON Hirschhorn: Rwy'n hoffi hynny. 1022 00:49:59,680 --> 00:50:00,500 Mae hynny'n gwneud synnwyr. 1023 00:50:00,500 --> 00:50:03,390 Os yw'r ddolen allanfeydd - 1024 00:50:03,390 --> 00:50:04,800 oherwydd bydd yn dychwelyd ffug yma. 1025 00:50:04,800 --> 00:50:08,220 Felly, os bydd y allanfeydd ddolen, yna rydym ni mewn ddiwedd y rhestr, neu efallai y 1026 00:50:08,220 --> 00:50:10,690 dechrau o restr os nad oes unrhyw beth yn iddo, sef yr un fath ag y diwedd. 1027 00:50:10,690 --> 00:50:12,770 Felly, nawr rydym am i fewnosod rhywbeth yma. 1028 00:50:12,770 --> 00:50:17,380 Felly sut mae hynny'n cod edrych, Marcus? 1029 00:50:17,380 --> 00:50:21,600 >> GYNULLEIDFA: Os ydych eisoes yn cael y nod malloced, fe allech chi ddweud 1030 00:50:21,600 --> 00:50:25,400 new_node-> hafal nesaf null oherwydd mae'n rhaid iddo fod ar y diwedd. 1031 00:50:25,400 --> 00:50:27,510 Neu new_node-> nesaf hafal null. 1032 00:50:27,510 --> 00:50:27,765 >> JASON Hirschhorn: OK. 1033 00:50:27,765 --> 00:50:28,190 Mae'n ddrwg gennym. 1034 00:50:28,190 --> 00:50:35,760 New_node-> hafal null nesaf oherwydd ein bod ar y diwedd. 1035 00:50:35,760 --> 00:50:36,460 Nid yw hynny'n rhoi i mewn 1036 00:50:36,460 --> 00:50:37,710 Sut yr ydym yn ei roi yn y rhestr? 1037 00:50:37,710 --> 00:50:46,130 1038 00:50:46,130 --> 00:50:46,460 Iawn. 1039 00:50:46,460 --> 00:50:47,750 Dyna dim ond ei osod hafal i. 1040 00:50:47,750 --> 00:50:50,940 Na sut mae mewn gwirionedd roi yn y rhestr? 1041 00:50:50,940 --> 00:50:54,170 Beth sy'n pwyntio at y ddiwedd y rhestr? 1042 00:50:54,170 --> 00:50:56,090 >> GYNULLEIDFA: Head. 1043 00:50:56,090 --> 00:50:57,566 >> JASON Hirschhorn: Mae'n ddrwg gennyf? 1044 00:50:57,566 --> 00:50:59,440 >> GYNULLEIDFA: Pennaeth yn pwyntio at ddiwedd y rhestr. 1045 00:50:59,440 --> 00:51:01,480 >> JASON Hirschhorn: Os oes unrhyw beth yn y rhestr, pen yn pwyntio at y 1046 00:51:01,480 --> 00:51:04,170 ddiwedd y rhestr. 1047 00:51:04,170 --> 00:51:06,920 Felly bydd yn gweithio ar gyfer yr gosod cyntaf. 1048 00:51:06,920 --> 00:51:09,810 Beth am os oes gwpl pethau yn y rhestr? 1049 00:51:09,810 --> 00:51:12,470 Nag nad ydym am i osod pen cyfartal i new_node. 1050 00:51:12,470 --> 00:51:13,790 Beth ydym ni eisiau ei wneud yno? 1051 00:51:13,790 --> 00:51:15,610 Yeah? 1052 00:51:15,610 --> 00:51:16,860 Yn ôl pob tebyg blaenorol. 1053 00:51:16,860 --> 00:51:23,560 1054 00:51:23,560 --> 00:51:24,810 A fydd yn gweithio? 1055 00:51:24,810 --> 00:51:28,950 1056 00:51:28,950 --> 00:51:33,050 Dwyn i gof bod blaenorol yn unig pwyntydd i nod. 1057 00:51:33,050 --> 00:51:34,770 A blaenorol yn newidyn lleol. 1058 00:51:34,770 --> 00:51:38,080 Felly, bydd y llinell hon yn gosod newidyn lleol, blaenorol, yn hafal i neu'n 1059 00:51:38,080 --> 00:51:39,380 gan dynnu sylw at y nod newydd. 1060 00:51:39,380 --> 00:51:41,500 Ni fydd hynny mewn gwirionedd yn ei roi yn ein rhestr, er. 1061 00:51:41,500 --> 00:51:44,330 Sut yr ydym yn ei roi yn ein rhestr? 1062 00:51:44,330 --> 00:51:45,620 Akchar? 1063 00:51:45,620 --> 00:51:46,870 >> GYNULLEIDFA: Yr wyf yn meddwl eich wneud ar hyn o bryd-> nesaf. 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-> nesaf. 1067 00:51:54,010 --> 00:51:58,768 Felly eto, yr unig reswm rydym yn i lawr yma yw, beth mae ar hyn o bryd yn gyfartal? 1068 00:51:58,768 --> 00:51:59,760 >> GYNULLEIDFA: Equals null. 1069 00:51:59,760 --> 00:52:01,790 >> JASON Hirschhorn: Ac felly beth digwydd os ydym yn ei wneud null-> nesaf? 1070 00:52:01,790 --> 00:52:02,810 Beth ydym yn mynd i gael? 1071 00:52:02,810 --> 00:52:04,060 Byddwn yn cael wall. 1072 00:52:04,060 --> 00:52:06,600 1073 00:52:06,600 --> 00:52:08,880 >> GYNULLEIDFA: Do CURR hafal null. 1074 00:52:08,880 --> 00:52:10,760 >> JASON Hirschhorn: Dyna'r un peth fel cynt, fodd bynnag, oherwydd mae 1075 00:52:10,760 --> 00:52:12,820 newidyn lleol rydym yn gosod gyfartal i'r nod newydd. 1076 00:52:12,820 --> 00:52:16,680 1077 00:52:16,680 --> 00:52:20,920 Gadewch i ni fynd yn ôl at ein llun o mewnosod rhywbeth. 1078 00:52:20,920 --> 00:52:25,500 Dweud ein bod yn gosod ar y diwedd y rhestr, felly dde yma. 1079 00:52:25,500 --> 00:52:30,010 Mae gennym pwyntydd cyfredol sy'n pwyntio at null a phwynt blaenorol 1080 00:52:30,010 --> 00:52:32,800 mae hynny'n pwyntio i 8. 1081 00:52:32,800 --> 00:52:35,330 Felly, beth sydd angen i ni ei diweddaru, Avi? 1082 00:52:35,330 --> 00:52:36,680 >> GYNULLEIDFA: Blaenorol-> nesaf? 1083 00:52:36,680 --> 00:52:41,980 >> JASON Hirschhorn: Blaenorol-> nesaf yw beth rydym am i ddiweddaru oherwydd dyna 1084 00:52:41,980 --> 00:52:44,960 mewn gwirionedd fewnosod yn ddiwedd y rhestr. 1085 00:52:44,960 --> 00:52:47,220 Rydym yn dal i gael un nam, fodd bynnag, ein bod yn mynd i redeg i mewn. 1086 00:52:47,220 --> 00:52:50,090 Beth sy'n bod bug? 1087 00:52:50,090 --> 00:52:50,790 Yeah? 1088 00:52:50,790 --> 00:52:53,860 >> GYNULLEIDFA: Mae'n mynd i ddychwelyd ffug yn yr achos hwn? 1089 00:52:53,860 --> 00:52:56,380 >> JASON Hirschhorn: O, yn cael ei mynd i ddychwelyd ffug. 1090 00:52:56,380 --> 00:52:57,430 Ond mae nam arall. 1091 00:52:57,430 --> 00:52:58,930 Felly bydd angen i ni roi yn gyfnewid wir. 1092 00:52:58,930 --> 00:53:01,370 >> GYNULLEIDFA: A oes blaenorol cyfartal yn dal i null ar frig y rhestr? 1093 00:53:01,370 --> 00:53:03,645 >> JASON Hirschhorn: dal Felly blaenorol yn hafal null ar y dechrau. 1094 00:53:03,645 --> 00:53:07,480 1095 00:53:07,480 --> 00:53:10,440 Felly, sut y gallwn ddod dros hynny? 1096 00:53:10,440 --> 00:53:10,950 Yeah? 1097 00:53:10,950 --> 00:53:15,280 >> GYNULLEIDFA: Yr wyf yn meddwl y gallwch chi wneud siec cyn y ddolen amser i weld os yw'n 1098 00:53:15,280 --> 00:53:16,610 rhestr wag. 1099 00:53:16,610 --> 00:53:17,000 >> JASON Hirschhorn: OK. 1100 00:53:17,000 --> 00:53:17,710 Felly, gadewch i ni fynd yma. 1101 00:53:17,710 --> 00:53:18,530 Gwnewch siec. 1102 00:53:18,530 --> 00:53:19,380 Pe bai - 1103 00:53:19,380 --> 00:53:20,770 >> GYNULLEIDFA: Felly, os pen yn hafal hafal null. 1104 00:53:20,770 --> 00:53:24,300 1105 00:53:24,300 --> 00:53:26,320 >> JASON Hirschhorn: Os pen hafal hafal null - 1106 00:53:26,320 --> 00:53:27,790 bydd yn dweud wrthym os yw'n rhestr wag. 1107 00:53:27,790 --> 00:53:31,090 >> GYNULLEIDFA: Ac yna i chi gwneud pennaeth yn dychwelyd newydd. 1108 00:53:31,090 --> 00:53:34,740 >> JASON Hirschhorn: Pennaeth yn hafal i new_node? 1109 00:53:34,740 --> 00:53:35,730 A beth arall y mae angen i ni ei wneud? 1110 00:53:35,730 --> 00:53:37,020 >> GYNULLEIDFA: Ac yna byddwch yn dychwelyd yn wir. 1111 00:53:37,020 --> 00:53:37,535 >> JASON Hirschhorn: Ddim yn eithaf. 1112 00:53:37,535 --> 00:53:38,785 Ein bod ar goll yn un cam. 1113 00:53:38,785 --> 00:53:41,590 1114 00:53:41,590 --> 00:53:43,710 >> GYNULLEIDFA: New_node nesaf wedi i bwyntio at null. 1115 00:53:43,710 --> 00:53:44,570 >> JASON Hirschhorn: Yn union, Alden. 1116 00:53:44,570 --> 00:53:46,600 Ac yna gallwn ddychwelyd wir. 1117 00:53:46,600 --> 00:53:47,560 OK. 1118 00:53:47,560 --> 00:53:51,630 Ond mae'n dal i fod yn syniad da i wneud pethau ar ddiwedd y rhestr, dde? 1119 00:53:51,630 --> 00:53:51,950 Mae pob hawl. 1120 00:53:51,950 --> 00:53:54,450 Rydym efallai yn dal i gael mewn gwirionedd at ddiwedd y rhestr. 1121 00:53:54,450 --> 00:53:57,870 Felly yn y cod hwn dirwy os ydym yn y yn dod i ben y rhestr ac mae rhai 1122 00:53:57,870 --> 00:53:59,120 pethau yn y rhestr? 1123 00:53:59,120 --> 00:54:01,830 1124 00:54:01,830 --> 00:54:02,040 Iawn? 1125 00:54:02,040 --> 00:54:03,540 Oherwydd ein bod yn dal i gael syniad Marcus yn. 1126 00:54:03,540 --> 00:54:06,870 Efallai y byddwn yn gadael dolen hwn oherwydd rydym yn ar ddiwedd y rhestr. 1127 00:54:06,870 --> 00:54:09,308 Felly, yr ydym yn dal i fod eisiau hwn cod i lawr yma? 1128 00:54:09,308 --> 00:54:10,520 >> GYNULLEIDFA: Ydw. 1129 00:54:10,520 --> 00:54:11,000 >> JASON Hirschhorn: Yeah. 1130 00:54:11,000 --> 00:54:14,190 A beth mae angen i ni newid hyn i? 1131 00:54:14,190 --> 00:54:15,440 Gwir. 1132 00:54:15,440 --> 00:54:19,580 1133 00:54:19,580 --> 00:54:21,640 A yw hynny'n da cadarn i bawb hyd yn hyn? 1134 00:54:21,640 --> 00:54:22,420 Unrhyw un yn cael unrhyw - 1135 00:54:22,420 --> 00:54:23,480 Avi, a oes gennych rywbeth i'w ychwanegu? 1136 00:54:23,480 --> 00:54:23,920 >> GYNULLEIDFA: Na 1137 00:54:23,920 --> 00:54:25,276 >> JASON Hirschhorn: OK. 1138 00:54:25,276 --> 00:54:27,010 Felly, rydym wedi gwneud un neu ddau o newidiadau. 1139 00:54:27,010 --> 00:54:29,540 Rydym wedi gwneud y gwiriad hwn cyn i ni aeth i mewn am restr wag. 1140 00:54:29,540 --> 00:54:31,790 Felly, rydym wedi cymryd gofal o restr wag. 1141 00:54:31,790 --> 00:54:35,500 A dyma ni yn cymryd gofal o mewnosod rhywbeth ar ddiwedd y rhestr. 1142 00:54:35,500 --> 00:54:38,930 Felly, mae'n ymddangos fel hyn gymryd dolen tra gofalu am bethau yn y canol, 1143 00:54:38,930 --> 00:54:41,920 rhywle yn y rhestr os oes yn bethau yn y rhestr. 1144 00:54:41,920 --> 00:54:42,280 >> OK. 1145 00:54:42,280 --> 00:54:44,310 Gadewch i ni redeg y rhaglen hon eto. 1146 00:54:44,310 --> 00:54:50,170 1147 00:54:50,170 --> 00:54:50,755 Ddim yn llwyddiannus. 1148 00:54:50,755 --> 00:54:52,190 >> GYNULLEIDFA: Nid ydych yn gwneud hynny. 1149 00:54:52,190 --> 00:54:53,940 >> JASON Hirschhorn: O, Doeddwn i ddim yn gwneud hynny. 1150 00:54:53,940 --> 00:54:56,250 Bwynt da, Michael. 1151 00:54:56,250 --> 00:54:57,500 Gadewch i ni ychwanegu gwneud cysylltiedig. 1152 00:54:57,500 --> 00:55:01,590 1153 00:55:01,590 --> 00:55:04,830 Llinell 87 mae gwall. 1154 00:55:04,830 --> 00:55:05,420 Llinell 87. 1155 00:55:05,420 --> 00:55:06,600 Alden, dyma oedd y llinell roesoch i mi. 1156 00:55:06,600 --> 00:55:08,962 Beth sydd o'i le? 1157 00:55:08,962 --> 00:55:10,710 >> GYNULLEIDFA: Mae'n rhaid iddo fod i null. 1158 00:55:10,710 --> 00:55:11,000 >> JASON Hirschhorn: Ardderchog. 1159 00:55:11,000 --> 00:55:11,630 Yn union i'r dde. 1160 00:55:11,630 --> 00:55:13,290 Dylai fod yn nwl. 1161 00:55:13,290 --> 00:55:15,210 Gadewch i ni wneud eto. 1162 00:55:15,210 --> 00:55:17,220 Llunio. 1163 00:55:17,220 --> 00:55:17,890 OK. 1164 00:55:17,890 --> 00:55:19,400 Gadewch i ni mewnosod tri. 1165 00:55:19,400 --> 00:55:20,570 Y mewnosodiad yn llwyddiannus. 1166 00:55:20,570 --> 00:55:21,660 Gadewch i ni ei hargraffu. 1167 00:55:21,660 --> 00:55:23,590 Oh, os mai dim ond gallem edrych ar. 1168 00:55:23,590 --> 00:55:25,500 Ond nid ydym wedi gwneud y argraffu swyddogaeth eto. 1169 00:55:25,500 --> 00:55:27,840 Gadewch i ni fynd i mewn rhywbeth arall. 1170 00:55:27,840 --> 00:55:29,090 Beth ddylem ni fynd i mewn? 1171 00:55:29,090 --> 00:55:31,120 1172 00:55:31,120 --> 00:55:31,940 >> GYNULLEIDFA: Saith. 1173 00:55:31,940 --> 00:55:33,340 >> JASON Hirschhorn: Saith? 1174 00:55:33,340 --> 00:55:34,590 >> GYNULLEIDFA: Ydw. 1175 00:55:34,590 --> 00:55:38,680 1176 00:55:38,680 --> 00:55:39,780 >> JASON Hirschhorn: Mae gennym nam SEG. 1177 00:55:39,780 --> 00:55:43,760 Felly, rydym yn cael un, ond mae'n amlwg bod Ni allwch gael dau. 1178 00:55:43,760 --> 00:55:45,690 Mae'n 05:07. 1179 00:55:45,690 --> 00:55:48,370 Felly, gallem dadfygio hwn am dri munud. 1180 00:55:48,370 --> 00:55:51,240 Ond dw i'n mynd i adael ni yma a symud ymlaen i hash byrddau. 1181 00:55:51,240 --> 00:55:54,290 Ond unwaith eto, yr atebion ar gyfer y cod hwn Byddaf yn e-bostio i chi mewn ychydig. 1182 00:55:54,290 --> 00:55:55,440 Rydym yn agos iawn ato. 1183 00:55:55,440 --> 00:55:58,300 Fi 'n dal eich annog i chyfrif i maes beth sy'n digwydd yma ac yn atgyweiria '. 1184 00:55:58,300 --> 00:56:02,400 Felly, 'n annhymerus' e-bost y cod hwn i chi fel yn dda yn ogystal â'r ateb - 1185 00:56:02,400 --> 00:56:03,670 yn ôl pob tebyg yr ateb yn nes ymlaen. 1186 00:56:03,670 --> 00:56:05,110 Gyntaf y cod hwn. 1187 00:56:05,110 --> 00:56:08,290 >> Y peth arall yr wyf am ei wneud cyn i ni gorffeniad yn nad ydym wedi rhyddhau unrhyw beth. 1188 00:56:08,290 --> 00:56:10,370 Felly, yr wyf yn awyddus i ddangos i chi beth valgrind edrych fel. 1189 00:56:10,370 --> 00:56:14,310 Os byddwn yn cynnal ffiniau valgrind ar ein rhaglen,. / cysylltiedig. 1190 00:56:14,310 --> 00:56:22,540 Unwaith eto, yn ôl i'r sleid hwn, rydym Dylai redeg valgrind gyda rhyw fath o 1191 00:56:22,540 --> 00:56:26,410 opsiwn, yn yr achos hwn - Gollwng-siec = llawn. 1192 00:56:26,410 --> 00:56:27,660 Felly, gadewch i ni ysgrifennu valgrind - Gollwng-siec = llawn. 1193 00:56:27,660 --> 00:56:31,910 1194 00:56:31,910 --> 00:56:35,080 Felly, bydd hyn yn rhedeg valgrind ar ein rhaglen. 1195 00:56:35,080 --> 00:56:37,000 Ac yn awr y rhaglen mewn gwirionedd yn rhedeg. 1196 00:56:37,000 --> 00:56:40,190 Felly, rydym yn mynd i redeg yn union fel blaen, rhoi rhywbeth i mewn 1197 00:56:40,190 --> 00:56:40,830 Rydw i'n mynd i roi mewn tri. 1198 00:56:40,830 --> 00:56:41,790 Sy'n gweithio. 1199 00:56:41,790 --> 00:56:43,202 Dydw i ddim yn mynd i geisio rhoi rhywbeth arall oherwydd ein bod yn mynd i 1200 00:56:43,202 --> 00:56:44,710 gael ffug seg yn yr achos hwnnw. 1201 00:56:44,710 --> 00:56:46,700 Felly, Im 'jyst yn mynd i roi'r gorau iddi. 1202 00:56:46,700 --> 00:56:50,160 >> Ac yn awr byddwch yn gweld i lawr yma gollwng a chrynodeb domen. 1203 00:56:50,160 --> 00:56:52,310 Mae'r rhain yn y pethau da sy'n ydych am weld allan. 1204 00:56:52,310 --> 00:56:56,780 Felly, y crynodeb domen - mae'n ei ddweud, yn cael eu defnyddio wrth ymadael - wyth bytes mewn un bloc. 1205 00:56:56,780 --> 00:56:58,370 Dyna un bloc yn y nod yr ydym yn malloced. 1206 00:56:58,370 --> 00:57:02,230 Michael, dywedasoch cyn nod yw wyth brathiadau oherwydd ei fod wedi cyfanrif 1207 00:57:02,230 --> 00:57:02,680 a'r pwyntydd. 1208 00:57:02,680 --> 00:57:04,550 Felly dyna ein nod. 1209 00:57:04,550 --> 00:57:08,170 Ac yna mae'n dweud rydym yn defnyddio malloc saith gwaith ac rydym yn rhyddhau 1210 00:57:08,170 --> 00:57:08,940 rhywbeth chwe gwaith. 1211 00:57:08,940 --> 00:57:13,680 Ond ni fyddwn byth a elwir yn rhad ac am ddim, felly nid oes gennyf syniad beth mae hyn yn sôn am. 1212 00:57:13,680 --> 00:57:18,490 >> Ond digon yw dweud bod pan fydd eich yn rhedeg y rhaglen, malloc yn cael ei alw'n 1213 00:57:18,490 --> 00:57:20,330 mewn rhai mannau eraill yr ydym Nid oes angen i chi boeni am. 1214 00:57:20,330 --> 00:57:22,460 Felly, yn ôl pob tebyg malloc ei alw mewn rhai mannau. 1215 00:57:22,460 --> 00:57:24,480 Nid oes angen i ni boeni ble. 1216 00:57:24,480 --> 00:57:26,240 Ond mae hyn yn wir i ni. 1217 00:57:26,240 --> 00:57:27,380 Mae'r llinell gyntaf yn ni. 1218 00:57:27,380 --> 00:57:28,320 Rydym yn gadael y bloc hwnnw. 1219 00:57:28,320 --> 00:57:30,330 A gallwch weld bod yma yn y crynodeb gollyngiad. 1220 00:57:30,330 --> 00:57:31,950 Still gyraeddadwy - 1221 00:57:31,950 --> 00:57:32,930 wyth bytes mewn un bloc. 1222 00:57:32,930 --> 00:57:34,100 Mae hynny'n golygu y cof - 1223 00:57:34,100 --> 00:57:35,730 rydym wedi gollwng y cof. 1224 00:57:35,730 --> 00:57:37,570 Colli Yn bendant - 1225 00:57:37,570 --> 00:57:38,770 rhywbeth yn cael ei golli am byth. 1226 00:57:38,770 --> 00:57:40,590 Yn gyffredinol, ni fyddwch yn gweld dim yno. 1227 00:57:40,590 --> 00:57:44,780 Still gyraeddadwy yn gyffredinol lle byddwch yn gweld pethau, lle byddwch chi eisiau 1228 00:57:44,780 --> 00:57:48,900 i edrych i weld pa cod dylech wedi rhyddhau ond ydych wedi anghofio am ddim. 1229 00:57:48,900 --> 00:57:53,170 >> Ac yna os nad oedd hyn yn wir, pe baem yn gwneud popeth yn rhad ac am ddim, 1230 00:57:53,170 --> 00:57:54,360 gallwn gadarnhau hynny. 1231 00:57:54,360 --> 00:57:57,330 Gadewch i jyst yn rhedeg y rhaglen peidio â rhoi mewn unrhyw beth. 1232 00:57:57,330 --> 00:57:59,800 Byddwch yn gweld i lawr yma yn cael eu defnyddio wrth ymadael - 1233 00:57:59,800 --> 00:58:01,310 sero bytes yn sero blociau. 1234 00:58:01,310 --> 00:58:06,310 Mae hynny'n golygu ein bod wedi dim ar ôl pan wedi gadael y rhaglen hon. 1235 00:58:06,310 --> 00:58:12,090 Felly, cyn troi yn pset6, rhedeg valgrind a gwneud yn siŵr nad oes gennych 1236 00:58:12,090 --> 00:58:15,310 unrhyw cof gollyngiadau yn eich rhaglen. 1237 00:58:15,310 --> 00:58:17,910 Os oes gennych unrhyw gwestiynau valgrind, croeso i estyn allan. 1238 00:58:17,910 --> 00:58:18,700 Ond mae hyn yn sut yr ydych yn ei ddefnyddio. 1239 00:58:18,700 --> 00:58:20,890 Syml iawn - weld os ydych yn cael eu defnyddio ar hyn allanfa - 1240 00:58:20,890 --> 00:58:22,270 unrhyw bytes mewn unrhyw blociau. 1241 00:58:22,270 --> 00:58:27,890 1242 00:58:27,890 --> 00:58:29,580 >> Felly, rydym yn gweithio ar nodwch y nod. 1243 00:58:29,580 --> 00:58:33,840 Cefais ddau swyddogaethau eraill yma - argraffu nodau a nodau rhad ac am ddim. 1244 00:58:33,840 --> 00:58:37,780 Unwaith eto, mae'r rhain yn swyddogaethau sy'n cael eu mynd i fod yn dda i chi i ymarfer 1245 00:58:37,780 --> 00:58:40,990 oherwydd y byddant yn eich helpu nid yn unig gyda hyn ymarferion sampl, ond hefyd 1246 00:58:40,990 --> 00:58:42,180 ar y broblem a osodwyd. 1247 00:58:42,180 --> 00:58:44,230 Maent yn y map ar 'n bert agos i bethau eich bod yn mynd i gael ei wneud yn y 1248 00:58:44,230 --> 00:58:45,010 broblem a osodwyd. 1249 00:58:45,010 --> 00:58:47,640 Ond yr wyf am wneud yn siŵr rydym yn cyffwrdd ar bopeth. 1250 00:58:47,640 --> 00:58:50,400 A tablau hash hefyd yn hanfodol i yr hyn rydym yn ei wneud yn yr adran hon 1251 00:58:50,400 --> 00:58:51,980 wythnos - neu yn y broblem a osodwyd. 1252 00:58:51,980 --> 00:58:55,200 >> Felly, rydym yn mynd i orffen yr adran siarad am tablau hash. 1253 00:58:55,200 --> 00:58:58,140 Os ydych yn sylwi fy mod wedi gwneud ychydig o dabl hash. 1254 00:58:58,140 --> 00:59:00,020 Nid yw bod yr hyn yr ydym yn sôn am, fodd bynnag. 1255 00:59:00,020 --> 00:59:03,540 Yr ydym yn sôn am wahanol math o dablau hash. 1256 00:59:03,540 --> 00:59:07,300 Ac wrth ei graidd, tabl hash yn ddim mwy na 1257 00:59:07,300 --> 00:59:08,860 amrywiaeth yn ogystal â swyddogaeth hash. 1258 00:59:08,860 --> 00:59:11,150 Rydym yn mynd i siarad am ychydig yn unig i sicrhau bod pawb yn deall beth yw 1259 00:59:11,150 --> 00:59:12,110 swyddogaeth hash yn. 1260 00:59:12,110 --> 00:59:15,420 A dwi'n dweud wrthych yn awr ei fod yn dim mwy na dau beth - 1261 00:59:15,420 --> 00:59:18,590 yn swyddogaeth hash amrywiaeth a. 1262 00:59:18,590 --> 00:59:20,716 A dyma yw'r camau drwy mae hyn yn gweithredu. 1263 00:59:20,716 --> 00:59:31,560 1264 00:59:31,560 --> 00:59:32,810 >> Mae ein amrywiaeth. 1265 00:59:32,810 --> 00:59:38,460 1266 00:59:38,460 --> 00:59:39,460 Mae ein swyddogaeth. 1267 00:59:39,460 --> 00:59:43,180 Yn benodol, mae angen i swyddogaethau hash gwneud un neu ddau o bethau gyda hyn. 1268 00:59:43,180 --> 00:59:45,040 Rydw i'n mynd i siarad yn benodol am y broblem hon a osodwyd. 1269 00:59:45,040 --> 00:59:46,450 Yn ôl pob tebyg fod yn mynd i cymryd mewn llinyn. 1270 00:59:46,450 --> 00:59:50,570 1271 00:59:50,570 --> 00:59:51,770 A beth rwyt ti'n mynd i'w dychwelyd? 1272 00:59:51,770 --> 00:59:52,640 Pa fath data? 1273 00:59:52,640 --> 00:59:54,260 Alden? 1274 00:59:54,260 --> 00:59:55,760 Eich swyddogaeth hash dychwelyd? 1275 00:59:55,760 --> 00:59:58,760 Yn gyfanrif. 1276 00:59:58,760 --> 01:00:01,700 Felly, mae hyn yn yr hyn y mae'r hash tabl cynnwys - 1277 01:00:01,700 --> 01:00:05,430 tabl ar ffurf amrywiaeth a swyddogaeth hash. 1278 01:00:05,430 --> 01:00:06,010 Sut mae'n gweithio? 1279 01:00:06,010 --> 01:00:07,300 Mae'n gweithio mewn tri cham. 1280 01:00:07,300 --> 01:00:08,740 Rydym yn rhoi ei fod yn allweddol. 1281 01:00:08,740 --> 01:00:11,470 Yn yr achos hwn, byddwn yn rhoi ei fod yn llinyn. 1282 01:00:11,470 --> 01:00:18,140 Rydym yn galw y swyddogaeth hash fesul cam un ar yr allwedd ac rydym yn cael gwerth. 1283 01:00:18,140 --> 01:00:20,310 >> Yn benodol, byddwn yn dweud rydym yn cael yn gyfanrif. 1284 01:00:20,310 --> 01:00:25,630 Mae hynny'n cyfanrif, mae yn benodol iawn cyfyngiadau ar yr hyn y gellir cyfanrif fod. 1285 01:00:25,630 --> 01:00:28,880 Yn yr enghraifft hon, mae ein amrywiaeth o faint tri. 1286 01:00:28,880 --> 01:00:32,330 Felly, pa rifau y gellir cyfanrif fod. 1287 01:00:32,330 --> 01:00:35,970 Beth yw ystod o werthoedd dilys ar gyfer y cyfanrif, y math dychwelyd hwn 1288 01:00:35,970 --> 01:00:37,220 hash swyddogaeth? 1289 01:00:37,220 --> 01:00:40,440 1290 01:00:40,440 --> 01:00:42,110 Sero, un a dau. 1291 01:00:42,110 --> 01:00:46,060 Y pwynt y swyddogaeth hash yw chyfrif i maes y lle yn yr arae 1292 01:00:46,060 --> 01:00:47,790 lle mae ein allwedd yn mynd. 1293 01:00:47,790 --> 01:00:51,290 Dim ond tri bosibl lleoedd yma - 1294 01:00:51,290 --> 01:00:52,130 sero, un, neu ddau. 1295 01:00:52,130 --> 01:00:55,360 Felly, swyddogaeth hyn yn well dychwelyd sero, un, neu ddau. 1296 01:00:55,360 --> 01:00:58,740 Mae rhai indice dilys amrywiaeth hwn. 1297 01:00:58,740 --> 01:01:02,770 >> Ac yna yn dibynnu ar ble mae'n dychwelyd, gallwch weld yno amrywiaeth agored 1298 01:01:02,770 --> 01:01:03,730 braced gwerth. 1299 01:01:03,730 --> 01:01:05,800 Dyna lle rydym yn rhoi'r allweddol. 1300 01:01:05,800 --> 01:01:11,280 Felly rydym yn ei daflu yn y bwmpen, rydym yn mynd allan sero. 1301 01:01:11,280 --> 01:01:15,540 Ar braced array 0, rydym yn rhoi pwmpen. 1302 01:01:15,540 --> 01:01:21,070 Rydym yn taflu mewn cathod, rydym yn cael allan un. 1303 01:01:21,070 --> 01:01:24,110 Rydym yn rhoi cath yn un. 1304 01:01:24,110 --> 01:01:25,480 Rydym yn rhoi mewn pry cop. 1305 01:01:25,480 --> 01:01:26,710 Rydym yn cael dau. 1306 01:01:26,710 --> 01:01:30,200 Rydym yn rhoi pry cop yn y braced arae dau. 1307 01:01:30,200 --> 01:01:32,300 Byddai'n mor braf pe yn gweithio fel 'na. 1308 01:01:32,300 --> 01:01:35,570 Ond yn anffodus, fel y byddwn yn gweld, mae'n ychydig yn fwy cymhleth. 1309 01:01:35,570 --> 01:01:37,570 >> Cyn i ni fynd yno, unrhyw gwestiynau am hyn sylfaenol 1310 01:01:37,570 --> 01:01:38,820 sefydlu tabl hash? 1311 01:01:38,820 --> 01:01:49,050 1312 01:01:49,050 --> 01:01:51,940 Mae hyn yn ddelwedd yn union yr hyn yr ydym yn tynnu ar y bwrdd. 1313 01:01:51,940 --> 01:01:55,420 Ond ers i ni dynnu ar y bwrdd, yr wyf yn Nid wyf yn mynd i fynd i mewn iddo ymhellach. 1314 01:01:55,420 --> 01:02:00,430 Allweddi Yn y bôn, y blwch du hud - neu yn yr achos hwn, blwch corhwyaid - o 1315 01:02:00,430 --> 01:02:02,410 swyddogaeth hash yn eu rhoi mewn bwcedi. 1316 01:02:02,410 --> 01:02:04,690 Ac yn yr enghraifft hon rydym yn beidio â rhoi yr enw. 1317 01:02:04,690 --> 01:02:07,880 Rydym yn rhoi'r ffôn cysylltiedig nifer yr enw yn y bwced. 1318 01:02:07,880 --> 01:02:10,430 Ond fe allech chi yn dda iawn yn unig rhoi'r enw yn y bwced. 1319 01:02:10,430 --> 01:02:12,950 >> Mae hyn yn unig yw darlun o'r hyn rydym yn tynnu ar y bwrdd. 1320 01:02:12,950 --> 01:02:14,460 Mae gennym peryglon posibl, er. 1321 01:02:14,460 --> 01:02:17,470 Ac mae dau yn arbennig sleidiau fy mod eisiau mynd drosodd. 1322 01:02:17,470 --> 01:02:20,230 Mae'r un cyntaf yn ymwneud â swyddogaeth hash. 1323 01:02:20,230 --> 01:02:22,620 Felly gofynnais y cwestiwn, beth yn gwneud swyddogaeth hash da? 1324 01:02:22,620 --> 01:02:24,220 Yr wyf yn rhoi dau ateb. 1325 01:02:24,220 --> 01:02:26,630 Y cyntaf yw ei fod yn benderfynedig. 1326 01:02:26,630 --> 01:02:29,660 Yng nghyd-destun swyddogaethau hash, beth mae hyn yn ei olygu? 1327 01:02:29,660 --> 01:02:37,840 1328 01:02:37,840 --> 01:02:39,282 Ie? 1329 01:02:39,282 --> 01:02:42,850 >> GYNULLEIDFA: Gall dod o hyd i'r mynegai mewn amser yn gyson? 1330 01:02:42,850 --> 01:02:43,810 >> JASON Hirschhorn: Bod Nid yw yr hyn y mae'n ei olygu. 1331 01:02:43,810 --> 01:02:44,725 Ond mae hynny'n dyfalu da. 1332 01:02:44,725 --> 01:02:46,100 Unrhyw un arall yn cael dyfalu i beth mae hyn yn ei olygu? 1333 01:02:46,100 --> 01:02:47,780 Bod swyddogaeth hash da yn benderfynedig? 1334 01:02:47,780 --> 01:02:48,280 Annie? 1335 01:02:48,280 --> 01:02:51,680 >> GYNULLEIDFA: Bod gall allweddol yn unig eu mapio i un lle yn y tabl hash. 1336 01:02:51,680 --> 01:02:53,070 >> JASON Hirschhorn: Mae hynny'n yn union gywir. 1337 01:02:53,070 --> 01:02:57,430 Bob tro y byddwch yn rhoi mewn pwmpen, mae bob amser yn dychwelyd sero. 1338 01:02:57,430 --> 01:03:01,660 Os ydych yn rhoi mewn pwmpen a bod eich hash yn dychwelyd sero ond mae ganddo 1339 01:03:01,660 --> 01:03:06,060 tebygolrwydd o ddychwelyd rhywbeth arall yn fwy na sero - 1340 01:03:06,060 --> 01:03:09,280 felly efallai y gall ddychwelyd un weithiau neu ddau adegau eraill - 1341 01:03:09,280 --> 01:03:11,100 nid yw hynny'n swyddogaeth hash da. 1342 01:03:11,100 --> 01:03:11,800 Rydych chi'n union gywir. 1343 01:03:11,800 --> 01:03:15,680 Dylai eich swyddogaeth hash dychwelyd y yr un union cyfanrif, yn yr achos hwn, er 1344 01:03:15,680 --> 01:03:17,780 yr un peth union llinyn. 1345 01:03:17,780 --> 01:03:22,210 >> Efallai ei fod yn dychwelyd yr un peth union cyfanrif ar gyfer yr un union llinyn 1346 01:03:22,210 --> 01:03:24,430 waeth beth yw cyfalafu. 1347 01:03:24,430 --> 01:03:27,980 Ond yn yr achos hwnnw mae'n dal i fod penderfynedig fod pethau lluosog 1348 01:03:27,980 --> 01:03:29,350 eu mapio ar yr un gwerth. 1349 01:03:29,350 --> 01:03:30,170 Mae hynny'n iawn. 1350 01:03:30,170 --> 01:03:32,615 Cyn belled â bod un dim ond allbwn ar gyfer mewnbwn a roddir. 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 Yr ail beth yw ei fod yn dychwelyd mynegeion dilys. 1354 01:03:38,340 --> 01:03:40,220 Rydym yn dod i fyny hynny'n gynharach. 1355 01:03:40,220 --> 01:03:41,860 Mae'r swyddogaeth hash - 1356 01:03:41,860 --> 01:03:43,710 oh bachgen - 1357 01:03:43,710 --> 01:03:46,840 Dylai swyddogaeth hash dychwelyd mynegeion dilys. 1358 01:03:46,840 --> 01:03:47,740 Felly, yn dweud - 1359 01:03:47,740 --> 01:03:48,990 gadewch i ni fynd yn ôl at yr enghraifft hon. 1360 01:03:48,990 --> 01:03:52,580 1361 01:03:52,580 --> 01:03:57,540 Fy swyddogaeth hash yn cyfrif i fyny y llythrennau yn y gair. 1362 01:03:57,540 --> 01:03:58,380 Dyna swyddogaeth hash. 1363 01:03:58,380 --> 01:03:59,740 Ac yn dychwelyd y cyfanrif. 1364 01:03:59,740 --> 01:04:04,280 Felly os wyf yn cael y gair A, mae'n mynd i ddychwelyd un. 1365 01:04:04,280 --> 01:04:06,900 Ac mae'n mynd i roi Hawl yma. 1366 01:04:06,900 --> 01:04:09,430 Beth os byddaf yn ei roi yn y gair ystlumod? 1367 01:04:09,430 --> 01:04:11,310 Mae'n mynd i ddychwelyd tri. 1368 01:04:11,310 --> 01:04:12,560 Ble mae ystlumod yn mynd? 1369 01:04:12,560 --> 01:04:18,730 1370 01:04:18,730 --> 01:04:19,750 >> Nid yw'n addas. 1371 01:04:19,750 --> 01:04:21,000 Ond mae angen iddo fynd i rywle. 1372 01:04:21,000 --> 01:04:23,340 Mae hyn yn fy mwrdd hash wedi'r cyfan, a Mae angen popeth i fynd i rywle. 1373 01:04:23,340 --> 01:04:24,590 Felly, lle y dylai ystlumod fynd? 1374 01:04:24,590 --> 01:04:28,020 1375 01:04:28,020 --> 01:04:28,710 Unrhyw syniadau? 1376 01:04:28,710 --> 01:04:29,450 Dyfalu? 1377 01:04:29,450 --> 01:04:30,280 Dyfaliadau Da? 1378 01:04:30,280 --> 01:04:31,220 >> GYNULLEIDFA: Zero. 1379 01:04:31,220 --> 01:04:32,120 >> JASON Hirschhorn: Pam sero? 1380 01:04:32,120 --> 01:04:35,990 >> GYNULLEIDFA: Gan fod tri modwlo tri yn sero? 1381 01:04:35,990 --> 01:04:38,620 >> JASON Hirschhorn: Tri modwlo tri yw sero. 1382 01:04:38,620 --> 01:04:40,810 Mae hynny'n dyfalu mawr, ac mae hynny'n gywir. 1383 01:04:40,810 --> 01:04:43,870 Felly, yn yr achos hwn dylai yn ôl pob tebyg yn mynd ar sero. 1384 01:04:43,870 --> 01:04:51,080 Felly, yn ffordd dda o sicrhau bod y hash hwn swyddogaeth yn unig yn dychwelyd mynegeion dilys 1385 01:04:51,080 --> 01:04:54,580 i modwlo iddo gan faint y tabl. 1386 01:04:54,580 --> 01:04:57,360 Os ydych yn modwlo beth bynnag mae hyn yn dychwelyd gan tri, eich bod yn bob amser yn mynd i gael 1387 01:04:57,360 --> 01:05:00,930 rhywbeth rhwng sero, un, a dau. 1388 01:05:00,930 --> 01:05:05,160 Ac os yw hyn bob amser yn dychwelyd saith, a chi bob amser yn modwlo gan dri, rydych yn 1389 01:05:05,160 --> 01:05:06,030 bob amser yn mynd i gael yr un peth. 1390 01:05:06,030 --> 01:05:09,270 >> Felly, mae'n dal i fod penderfynedig os ydych yn modwlo. 1391 01:05:09,270 --> 01:05:11,420 Ond a fydd yn sicrhau eich bod yn byth yn cael rhywbeth - 1392 01:05:11,420 --> 01:05:12,940 diwydiant annilys. 1393 01:05:12,940 --> 01:05:16,840 Yn gyffredinol, dylai fod modwlo ddigwydd y tu mewn i'ch swyddogaeth hash. 1394 01:05:16,840 --> 01:05:18,240 Felly nid oes angen i chi boeni am hyn. 1395 01:05:18,240 --> 01:05:20,555 Gallwch dim ond sicrhau bod mae hwn yn indice dilys. 1396 01:05:20,555 --> 01:05:23,700 1397 01:05:23,700 --> 01:05:26,700 Unrhyw gwestiynau am hyn maen tramgwydd posibl? 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 Ac dyna ni. 1401 01:05:40,290 --> 01:05:42,890 Maen tramgwydd posibl nesaf, a mae hyn yn yr un mawr. 1402 01:05:42,890 --> 01:05:46,880 Beth os bydd map dau allweddi at yr un gwerth? 1403 01:05:46,880 --> 01:05:49,350 Felly, mae dwy ffordd o ymdrin â hyn. 1404 01:05:49,350 --> 01:05:53,140 1405 01:05:53,140 --> 01:05:56,020 Gelwir Mae'r un cyntaf wedi'i llinol stilio, ac rwy'n 1406 01:05:56,020 --> 01:05:57,300 ddim yn mynd i fynd dros. 1407 01:05:57,300 --> 01:06:01,120 Ond dylech fod yn gyfarwydd â sut sy'n gweithio a beth yw hynny. 1408 01:06:01,120 --> 01:06:05,610 >> Mae'r ail un yr wyf yn mynd i fynd dros oherwydd dyna yw'r un y mae llawer o 1409 01:06:05,610 --> 01:06:08,290 Mae'n debyg y bydd pobl yn y pen draw benderfynu i'w defnyddio yn eu set problem. 1410 01:06:08,290 --> 01:06:09,820 Wrth gwrs, nid oes rhaid i chi. 1411 01:06:09,820 --> 01:06:15,280 Ond ar gyfer y broblem a osodwyd, mae llawer o bobl yn tueddu i ddewis creu tabl hash 1412 01:06:15,280 --> 01:06:17,950 gyda gadwyno ar wahân i weithredu eu geiriadur. 1413 01:06:17,950 --> 01:06:21,390 Felly, rydym yn mynd i fynd dros yr hyn y mae'n ei olygu i greu tabl hash gyda 1414 01:06:21,390 --> 01:06:23,890 gadwyno ar wahân. 1415 01:06:23,890 --> 01:06:26,260 >> Felly, yr wyf yn rhoi pwmpen. 1416 01:06:26,260 --> 01:06:29,560 Mae'n dychwelyd sero. 1417 01:06:29,560 --> 01:06:31,410 Ac yr wyf yn rhoi pwmpen yma. 1418 01:06:31,410 --> 01:06:35,880 1419 01:06:35,880 --> 01:06:37,930 Yna, yr wyf yn rhoi i mewn - 1420 01:06:37,930 --> 01:06:39,922 beth sy'n beth arall Calan Gaeaf-thema? 1421 01:06:39,922 --> 01:06:42,200 >> GYNULLEIDFA: Candy. 1422 01:06:42,200 --> 01:06:42,770 >> JASON Hirschhorn: Candy! 1423 01:06:42,770 --> 01:06:43,910 Dyna un mawr. 1424 01:06:43,910 --> 01:06:47,760 Rwy'n rhoi mewn Candy, a candy hefyd yn rhoi sero mi. 1425 01:06:47,760 --> 01:06:49,350 Beth ddylwn i ei wneud? 1426 01:06:49,350 --> 01:06:51,940 Unrhyw syniadau? 1427 01:06:51,940 --> 01:06:53,940 Oherwydd chi i gyd math o yn gwybod pa gadwyno ar wahân. 1428 01:06:53,940 --> 01:06:55,190 Felly, unrhyw syniadau beth i'w wneud? 1429 01:06:55,190 --> 01:06:58,170 1430 01:06:58,170 --> 01:06:59,110 Yeah. 1431 01:06:59,110 --> 01:07:03,810 >> GYNULLEIDFA: Rhoi'r llinyn mewn gwirionedd yn y tabl hash. 1432 01:07:03,810 --> 01:07:08,910 >> JASON Hirschhorn: Felly, rydym yn mynd i tynnu syniad da dros yma. 1433 01:07:08,910 --> 01:07:09,340 OK. 1434 01:07:09,340 --> 01:07:12,290 >> GYNULLEIDFA: Cael y hashtable [Anghlywadwy] 1435 01:07:12,290 --> 01:07:16,640 y pwyntydd sy'n pwyntio at ddechrau rhestr. 1436 01:07:16,640 --> 01:07:20,930 Ac yna wedi pwmpen fydd gwerth cyntaf yn y rhestr a candy cysylltiedig yn 1437 01:07:20,930 --> 01:07:22,800 yr ail gwerth yn y rhestr gysylltiedig. 1438 01:07:22,800 --> 01:07:23,420 >> JASON Hirschhorn: OK. 1439 01:07:23,420 --> 01:07:24,670 Marcus, a oedd yn rhagorol. 1440 01:07:24,670 --> 01:07:26,160 Rydw i'n mynd i dorri'r hynny i lawr. 1441 01:07:26,160 --> 01:07:28,890 Marcus yn ei ddweud peidiwch â trosysgrifo pwmpen. 1442 01:07:28,890 --> 01:07:30,660 Byddai hynny'n ddrwg. 1443 01:07:30,660 --> 01:07:33,640 Peidiwch â rhoi Candy rhywle arall. 1444 01:07:33,640 --> 01:07:35,390 Rydym yn mynd i roi iddynt y ddau ar sero. 1445 01:07:35,390 --> 01:07:37,770 Ond rydym yn mynd i ddelio â eu rhoi ar sero gan 1446 01:07:37,770 --> 01:07:39,395 creu rhestr ar sero. 1447 01:07:39,395 --> 01:07:42,430 Ac rydym yn mynd i greu rhestr o popeth a mapio i sero. 1448 01:07:42,430 --> 01:07:47,960 A'r ffordd orau rydym yn dysgu i greu rhestr sy'n gallu tyfu ac yn crebachu 1449 01:07:47,960 --> 01:07:49,840 ddeinamig nid yw o fewn amrywiaeth arall. 1450 01:07:49,840 --> 01:07:51,510 Felly nid yw amrywiaeth aml-ddimensiwn. 1451 01:07:51,510 --> 01:07:54,080 Ond i ddim ond creu rhestr cysylltiedig. 1452 01:07:54,080 --> 01:07:55,330 >> Felly, yr hyn a gynigiwyd - 1453 01:07:55,330 --> 01:07:57,950 1454 01:07:57,950 --> 01:07:59,200 Rydw i'n mynd i gael newydd - 1455 01:07:59,200 --> 01:08:15,380 1456 01:08:15,380 --> 01:08:19,689 yn creu amrywiaeth gyda awgrymiadau, amrywiaeth o awgrymiadau. 1457 01:08:19,689 --> 01:08:20,580 OK. 1458 01:08:20,580 --> 01:08:24,180 Unrhyw syniad neu awgrym yr hyn y math Dylai hyn awgrymiadau fod? 1459 01:08:24,180 --> 01:08:26,290 Marcus? 1460 01:08:26,290 --> 01:08:27,250 >> GYNULLEIDFA: Awgrymiadau i - 1461 01:08:27,250 --> 01:08:28,609 >> JASON Hirschhorn: Oherwydd eich bod dywedodd rhestr gysylltiedig, felly - 1462 01:08:28,609 --> 01:08:29,520 >> GYNULLEIDFA: awgrymiadau Nôd? 1463 01:08:29,520 --> 01:08:30,670 >> JASON Hirschhorn: awgrymiadau Nôd. 1464 01:08:30,670 --> 01:08:32,830 Os yw'r bethau yn ein cysylltu rhestr yn nodau yna maent 1465 01:08:32,830 --> 01:08:34,370 Dylai fod yn ddangosyddion nod. 1466 01:08:34,370 --> 01:08:35,939 A beth maen nhw'n gyfartal i ddechrau? 1467 01:08:35,939 --> 01:08:36,990 >> GYNULLEIDFA: Null. 1468 01:08:36,990 --> 01:08:38,240 >> JASON Hirschhorn: Null. 1469 01:08:38,240 --> 01:08:44,540 1470 01:08:44,540 --> 01:08:46,080 Felly, mae ein beth wag. 1471 01:08:46,080 --> 01:08:47,170 Ffurflenni pwmpen sero. 1472 01:08:47,170 --> 01:08:48,569 Beth ydym ni'n ei wneud? 1473 01:08:48,569 --> 01:08:49,609 Mi gerdded drwyddo? 1474 01:08:49,609 --> 01:08:50,810 A dweud y gwir, Marcus eisoes roddodd i mi. 1475 01:08:50,810 --> 01:08:52,439 Rhywun arall yn cerdded i mi drwyddo. 1476 01:08:52,439 --> 01:08:54,760 Beth rydym yn ei wneud pan fyddwn yn - 1477 01:08:54,760 --> 01:08:56,609 hyn yn edrych yn debyg iawn i hyn yr oeddem yn dim ond gwneud. 1478 01:08:56,609 --> 01:08:57,396 Avi. 1479 01:08:57,396 --> 01:08:59,090 >> GYNULLEIDFA: Rydw i'n mynd i gymryd dyfalu. 1480 01:08:59,090 --> 01:09:01,250 Felly, pan fyddwch yn cael Candy. 1481 01:09:01,250 --> 01:09:01,640 >> JASON Hirschhorn: Yeah. 1482 01:09:01,640 --> 01:09:03,120 Wel, rydym yn cael pwmpen. 1483 01:09:03,120 --> 01:09:03,870 Gadewch i ni gael ein un cyntaf. 1484 01:09:03,870 --> 01:09:04,324 Rydym yn cael pwmpen. 1485 01:09:04,324 --> 01:09:04,779 >> GYNULLEIDFA: OK. 1486 01:09:04,779 --> 01:09:05,880 Ffurflenni pwmpen sero. 1487 01:09:05,880 --> 01:09:08,770 Felly rydych yn ei roi yn hynny. 1488 01:09:08,770 --> 01:09:10,810 Neu mewn gwirionedd, yr ydych yn ei roi yn y rhestr cysylltiedig. 1489 01:09:10,810 --> 01:09:13,550 >> JASON Hirschhorn: Sut ydym ni'n roi yn y rhestr gysylltiedig? 1490 01:09:13,550 --> 01:09:15,479 >> GYNULLEIDFA: O, mae'r gystrawen gwirioneddol? 1491 01:09:15,479 --> 01:09:16,240 >> JASON Hirschhorn: Dim ond cerdded - 1492 01:09:16,240 --> 01:09:16,740 dweud mwy. 1493 01:09:16,740 --> 01:09:19,310 Beth ydym ni'n ei wneud? 1494 01:09:19,310 --> 01:09:22,100 >> GYNULLEIDFA: Yr ydych rhowch fel y nod cyntaf. 1495 01:09:22,100 --> 01:09:22,675 >> JASON Hirschhorn: OK. 1496 01:09:22,675 --> 01:09:29,069 Felly, rydym wedi ein nod, pwmpen. 1497 01:09:29,069 --> 01:09:31,560 Ac yn awr sut ydw i'n mewnosod? 1498 01:09:31,560 --> 01:09:34,590 1499 01:09:34,590 --> 01:09:37,090 >> GYNULLEIDFA: Rydych yn neilltuo i'r pwyntydd. 1500 01:09:37,090 --> 01:09:37,970 >> JASON Hirschhorn: Pa pwyntydd? 1501 01:09:37,970 --> 01:09:39,620 >> GYNULLEIDFA: Y pwyntydd ar sero. 1502 01:09:39,620 --> 01:09:41,420 >> JASON Hirschhorn: Felly, lle yn gwneud y pwynt hwn? 1503 01:09:41,420 --> 01:09:42,810 >> GYNULLEIDFA: I null ar hyn o bryd. 1504 01:09:42,810 --> 01:09:43,529 >> JASON Hirschhorn: Wel, mae'n cyfeirio at null. 1505 01:09:43,529 --> 01:09:44,499 Ond dw i'n rhoi pwmpen. 1506 01:09:44,499 --> 01:09:46,053 Felly, lle y dylai bwyntio? 1507 01:09:46,053 --> 01:09:46,880 >> GYNULLEIDFA: I pwmpen. 1508 01:09:46,880 --> 01:09:47,399 >> JASON Hirschhorn: I pwmpen. 1509 01:09:47,399 --> 01:09:48,760 Yn union. 1510 01:09:48,760 --> 01:09:50,010 Felly, mae hyn yn cyfeirio at pwmpen. 1511 01:09:50,010 --> 01:09:52,500 1512 01:09:52,500 --> 01:09:54,250 A ble mae'r pwyntydd hwn ym mhwynt pwmpen? 1513 01:09:54,250 --> 01:09:57,986 1514 01:09:57,986 --> 01:09:58,340 I 1515 01:09:58,340 --> 01:09:58,590 >> GYNULLEIDFA: Null. 1516 01:09:58,590 --> 01:09:59,210 >> JASON Hirschhorn: I null. 1517 01:09:59,210 --> 01:10:00,460 Yn union. 1518 01:10:00,460 --> 01:10:03,570 1519 01:10:03,570 --> 01:10:05,140 Felly, rydym yn unig fewnosod rhywbeth i mewn i'r rhestr gysylltiedig. 1520 01:10:05,140 --> 01:10:07,210 Rydym newydd ei ysgrifennu y cod hwn i wneud hyn. 1521 01:10:07,210 --> 01:10:09,520 Mae bron rydym yn bron got it cracio yn gyfan gwbl. 1522 01:10:09,520 --> 01:10:10,790 Nawr rydym yn mewnosod Candy. 1523 01:10:10,790 --> 01:10:13,480 Mae ein Candy hefyd yn mynd i sero. 1524 01:10:13,480 --> 01:10:16,100 Felly, beth ydym yn ei wneud â Candy? 1525 01:10:16,100 --> 01:10:18,790 >> GYNULLEIDFA: Mae'n dibynnu ar p'un a nid ydym yn ceisio datrys hynny. 1526 01:10:18,790 --> 01:10:19,640 >> JASON Hirschhorn: Mae hynny'n yn union gywir. 1527 01:10:19,640 --> 01:10:21,070 Mae'n dibynnu ar p'un a yw rydym yn ceisio datrys hynny. 1528 01:10:21,070 --> 01:10:22,660 Gadewch i ni dybio nad ydym yn mynd i ddatrys y broblem. 1529 01:10:22,660 --> 01:10:24,880 >> GYNULLEIDFA: Wel, yna, fel y trafodwyd o'r blaen, mae'n symlaf dim ond i roi 1530 01:10:24,880 --> 01:10:28,590 i'r dde ar y dechrau felly mae'r pwyntydd o sero pwynt i Candy. 1531 01:10:28,590 --> 01:10:29,020 >> JASON Hirschhorn: OK. 1532 01:10:29,020 --> 01:10:29,380 Dal ar. 1533 01:10:29,380 --> 01:10:30,630 Gadewch i mi greu Candy hawl yma. 1534 01:10:30,630 --> 01:10:34,030 1535 01:10:34,030 --> 01:10:35,150 Felly pwyntydd hyn - 1536 01:10:35,150 --> 01:10:37,590 >> GYNULLEIDFA: Yeah, dylai bellach yn cael ei bwyntio at Candy. 1537 01:10:37,590 --> 01:10:40,580 Yna, rhaid i'r pwyntydd o pwynt Candy i pwmpen. 1538 01:10:40,580 --> 01:10:43,140 1539 01:10:43,140 --> 01:10:44,560 >> JASON Hirschhorn: Fel hynny? 1540 01:10:44,560 --> 01:10:47,380 A dweud rydym yn cael un arall beth i fapio i sero? 1541 01:10:47,380 --> 01:10:48,660 >> GYNULLEIDFA: Wel, 'ch jyst gwneud yr un peth? 1542 01:10:48,660 --> 01:10:50,290 >> JASON Hirschhorn: Gwnewch yr un peth. 1543 01:10:50,290 --> 01:10:53,700 Felly, yn yr achos hwn, os nad ydym yn ei wneud am ei gadw'n datrys ei 1544 01:10:53,700 --> 01:10:55,270 swnio braidd yn syml. 1545 01:10:55,270 --> 01:10:59,920 Rydym yn cymryd y pwyntydd yn y indice a roddir gan ein swyddogaeth hash. 1546 01:10:59,920 --> 01:11:03,830 Mae gennym y pwynt hwnnw at ein nod newydd. 1547 01:11:03,830 --> 01:11:07,830 Ac yna beth bynnag yr oedd yn pwyntio yn flaenorol - 1548 01:11:07,830 --> 01:11:10,620 yn yr null achos hwn, yn y ail pwmpen achos - 1549 01:11:10,620 --> 01:11:15,310 hynny, beth bynnag mae'n pwyntio at yn flaenorol, rydym yn ychwanegu i mewn i'r nesaf 1550 01:11:15,310 --> 01:11:17,810 ein nod newydd. 1551 01:11:17,810 --> 01:11:19,650 Rydym yn gosod rhywbeth yn y dechrau. 1552 01:11:19,650 --> 01:11:22,900 Mewn gwirionedd mae hyn yn llawer symlach na ceisio cadw'r rhestr didoli. 1553 01:11:22,900 --> 01:11:25,340 Ond unwaith eto, bydd chwilio fod yn gymhleth ar fwy yma. 1554 01:11:25,340 --> 01:11:28,300 Byddwn bob amser yn rhaid i ni fynd hyd y diwedd. 1555 01:11:28,300 --> 01:11:29,650 >> OK. 1556 01:11:29,650 --> 01:11:32,750 Unrhyw gwestiynau am gadwyno ar wahân? 1557 01:11:32,750 --> 01:11:34,690 Sut mae hynny'n gweithio? 1558 01:11:34,690 --> 01:11:35,820 Gofynnwch iddynt yn awr. 1559 01:11:35,820 --> 01:11:39,260 Rwy'n awyddus iawn i wneud yn siŵr bob un ohonoch deall hyn cyn i ni pen allan. 1560 01:11:39,260 --> 01:11:48,410 1561 01:11:48,410 --> 01:11:52,060 >> GYNULLEIDFA: Pam ydych yn ei roi pwmpen ac Candy i mewn i'r un 1562 01:11:52,060 --> 01:11:54,108 rhan o'r tabl hash? 1563 01:11:54,108 --> 01:11:55,860 >> JASON Hirschhorn: Cwestiwn da. 1564 01:11:55,860 --> 01:11:59,140 Pam rydym yn eu rhoi yn yr un rhan o'r tabl hash? 1565 01:11:59,140 --> 01:12:03,200 Wel, yn yr achos hwn ein swyddogaeth hash ffurflenni sero ar gyfer y ddau ohonynt. 1566 01:12:03,200 --> 01:12:05,310 Felly mae angen iddynt fynd ar sero indice oherwydd dyna lle'r ydym yn mynd i 1567 01:12:05,310 --> 01:12:07,420 chwilio amdanynt os ydym erioed am edrych i fyny. 1568 01:12:07,420 --> 01:12:11,750 Unwaith eto, gydag agwedd linellol treiddgar ni fyddem yn eu rhoi ar lefel sero. 1569 01:12:11,750 --> 01:12:13,900 Ond yn y dull gadwyn ar wahân, rydym yn mynd i roi nhw ar lefel sero 1570 01:12:13,900 --> 01:12:16,620 ac yna creu rhestr oddi ar sero. 1571 01:12:16,620 --> 01:12:20,140 >> Ac nid ydym am ysgrifennu dros pwmpen yn syml am hynny oherwydd wedyn byddwn ni 1572 01:12:20,140 --> 01:12:21,860 cymryd yn ganiataol bod pwmpen yn byth yn mewnosod. 1573 01:12:21,860 --> 01:12:25,230 Os ydym yn unig yn cadw un peth yn y lleoliad a fyddai'n ddrwg. 1574 01:12:25,230 --> 01:12:28,590 Yna, ni fyddai unrhyw cyfle ohonom erioed - 1575 01:12:28,590 --> 01:12:31,660 os ydym erioed wedi cael dyblyg, yna rydym yn fyddai dim ond dileu ein gwerth cychwynnol. 1576 01:12:31,660 --> 01:12:34,090 Felly dyna pam rydym yn gwneud y dull hwn. 1577 01:12:34,090 --> 01:12:36,580 Neu dyna pam rydym yn dewis - ond eto, yr ydym dewisodd y dull gadwyno ar wahân, 1578 01:12:36,580 --> 01:12:39,670 y mae llawer o ddulliau eraill gallai un ei ddewis. 1579 01:12:39,670 --> 01:12:41,185 A yw hynny'n ateb eich cwestiwn? 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 Byddai Llinellol treiddgar yn golygu - 1584 01:12:47,720 --> 01:12:51,913 os byddwn yn dod o hyd i gwrthdrawiad ar sero, rydym yn yn edrych yn y fan a'r lle nesaf i weld os 1585 01:12:51,913 --> 01:12:54,310 ei fod yn agored ac yn ei roi yno. 1586 01:12:54,310 --> 01:12:57,320 Ac yna rydym yn edrych yn y gamp nesaf ac weld a oedd yn agored a'i roi yno. 1587 01:12:57,320 --> 01:12:59,780 Felly, rydym yn dod o hyd i'r nesaf sydd ar gael fan a'r lle agored a'i roi yno. 1588 01:12:59,780 --> 01:13:02,580 1589 01:13:02,580 --> 01:13:03,890 Unrhyw gwestiynau eraill? 1590 01:13:03,890 --> 01:13:05,370 Yeah, Avi. 1591 01:13:05,370 --> 01:13:07,490 >> GYNULLEIDFA: Fel dilyniant i hynny, beth ydych chi'n ei olygu wrth fan a'r lle nesaf? 1592 01:13:07,490 --> 01:13:10,250 Yn y tabl hash neu mewn rhestr gysylltiedig. 1593 01:13:10,250 --> 01:13:12,100 >> JASON Hirschhorn: Ar gyfer llinol rhaglennu, dim rhestrau cysylltiedig. 1594 01:13:12,100 --> 01:13:13,400 Y fan a'r lle nesaf ar y bwrdd hash. 1595 01:13:13,400 --> 01:13:13,820 >> GYNULLEIDFA: OK. 1596 01:13:13,820 --> 01:13:17,570 Felly, byddai'r tabl hash yn ymgychwyn i faint - 1597 01:13:17,570 --> 01:13:19,560 fel y nifer o dannau eich bod yn mewnosod? 1598 01:13:19,560 --> 01:13:22,170 >> JASON Hirschhorn: Byddech am iddo fod yn fawr iawn. 1599 01:13:22,170 --> 01:13:23,910 Ie. 1600 01:13:23,910 --> 01:13:27,900 Dyma lun o'r hyn yr ydym dim ond tynnu ar y bwrdd. 1601 01:13:27,900 --> 01:13:29,470 Unwaith eto, mae gennym gwrthdrawiad yma. 1602 01:13:29,470 --> 01:13:30,710 ar 152. 1603 01:13:30,710 --> 01:13:33,570 A byddwch yn gweld ein creu rhestr cysylltiedig oddi ar hynny. 1604 01:13:33,570 --> 01:13:38,200 1605 01:13:38,200 --> 01:13:41,850 Unwaith eto, mae'r tabl hash gadwyno ar wahân Nid yw dull yw'r un rydych 1606 01:13:41,850 --> 01:13:45,590 rhaid iddynt gymryd ar gyfer problemau a osodwyd chwech ond yn un y mae llawer o 1607 01:13:45,590 --> 01:13:47,100 myfyrwyr yn tueddu i gymryd. 1608 01:13:47,100 --> 01:13:51,140 Felly, ar y nodyn hwnnw, gadewch i ni siarad yn fyr cyn i ni pen allan am broblem chwech, 1609 01:13:51,140 --> 01:13:52,160 ac yna byddaf yn rhannu stori gyda chi. 1610 01:13:52,160 --> 01:13:55,120 Mae gennym dri munud. 1611 01:13:55,120 --> 01:13:55,750 >> Problem gosod chwech. 1612 01:13:55,750 --> 01:13:57,790 Mae gennych pedair swyddogaeth - 1613 01:13:57,790 --> 01:14:02,430 llwyth, siec, maint, a dadlwytho. 1614 01:14:02,430 --> 01:14:03,380 Llwytho - 1615 01:14:03,380 --> 01:14:07,120 yn dda, rydym wedi bod yn mynd dros llwyth yn unig nawr. 1616 01:14:07,120 --> 01:14:09,330 Rydym yn tynnu llwyth ar y bwrdd. 1617 01:14:09,330 --> 01:14:13,230 Ac rydym hyd yn oed yn dechrau godio llawer o mewnosod i mewn i restr cysylltiedig. 1618 01:14:13,230 --> 01:14:18,020 Felly nid llwyth yn llawer mwy na hyn yr ydym wedi bod yn ei wneud yn unig. 1619 01:14:18,020 --> 01:14:21,070 >> Siec yn unwaith y byddwch wedi rhywbeth lwytho. 1620 01:14:21,070 --> 01:14:22,580 Mae yr un broses â hyn. 1621 01:14:22,580 --> 01:14:26,845 Mae'r un peth yn ddwy ran gyntaf lle rydych yn taflu rhywbeth yn y swyddogaeth hash 1622 01:14:26,845 --> 01:14:29,190 a chael ei werth. 1623 01:14:29,190 --> 01:14:30,700 Ond yn awr nid ydym yn ei roi i mewn. 1624 01:14:30,700 --> 01:14:33,350 Nawr rydym yn chwilio amdano. 1625 01:14:33,350 --> 01:14:37,130 Yr wyf wedi Cod sampl ysgrifenedig ar gyfer dod o hyd i rhywbeth mewn rhestr gysylltiedig. 1626 01:14:37,130 --> 01:14:38,250 Yr wyf yn eich annog i ymarfer hynny. 1627 01:14:38,250 --> 01:14:43,000 Ond yn reddfol dod o hyd i rhywbeth yn cael ei 'n bert debyg i fewnosod rhywbeth. 1628 01:14:43,000 --> 01:14:46,540 Yn wir, tynnwyd llun o ddod o hyd rhywbeth mewn rhestr gysylltiedig, gan symud 1629 01:14:46,540 --> 01:14:48,910 trwy nes i chi gyrraedd y diwedd. 1630 01:14:48,910 --> 01:14:52,430 Ac os ydych yn cael hyd y diwedd, ac ni allai yn ei chael yn, yna nid yw'n yno. 1631 01:14:52,430 --> 01:14:55,400 Felly dyna siec, yn y bôn. 1632 01:14:55,400 --> 01:14:57,030 >> Nesaf yw maint. 1633 01:14:57,030 --> 01:14:57,910 Gadewch i sgip maint. 1634 01:14:57,910 --> 01:15:00,040 Yn olaf, yr ydych wedi dadlwytho. 1635 01:15:00,040 --> 01:15:02,890 Dadlwytho yn un nad ydym wedi tynnu ar y bwrdd neu codio eto. 1636 01:15:02,890 --> 01:15:05,990 Ond yr wyf yn eich annog i roi cynnig codio ei yn ein sampl enghraifft rhestr gysylltiedig. 1637 01:15:05,990 --> 01:15:11,440 Ond dadlwytho reddfol yn debyg i rhad ac am ddim - 1638 01:15:11,440 --> 01:15:14,010 neu yr wyf yn golygu yn debyg i wirio. 1639 01:15:14,010 --> 01:15:17,350 Heblaw am hyn bob tro rydych chi'n mynd drwy, nad ydych yn unig gwirio i 1640 01:15:17,350 --> 01:15:19,090 weld a oes gennych eich gwerth chi yno. 1641 01:15:19,090 --> 01:15:22,490 Ond eich bod yn cymryd y nod a rhyddhau ei, yn y bôn. 1642 01:15:22,490 --> 01:15:23,610 Dyna beth dadlwytho yn gofyn i chi ei wneud. 1643 01:15:23,610 --> 01:15:24,670 Popeth am ddim i chi wedi malloced. 1644 01:15:24,670 --> 01:15:27,480 Felly, rydych yn mynd drwy'r rhestr gyfan unwaith eto, yn mynd drwy'r hash cyfan 1645 01:15:27,480 --> 01:15:27,760 tabl eto. 1646 01:15:27,760 --> 01:15:29,240 Nid yw'r amser yn gwirio i weld beth sydd yno. 1647 01:15:29,240 --> 01:15:31,080 Dim ond am ddim beth sydd yno. 1648 01:15:31,080 --> 01:15:33,260 >> Ac yn olaf maint. 1649 01:15:33,260 --> 01:15:34,350 Dylai maint yn cael ei rhoi ar waith. 1650 01:15:34,350 --> 01:15:35,590 Os nad ydych yn gweithredu maint - 1651 01:15:35,590 --> 01:15:36,250 'N annhymerus' yn dweud ei fod fel hyn. 1652 01:15:36,250 --> 01:15:39,740 Os nad ydych yn gweithredu maint yn yr union un llinell o god, gan gynnwys y 1653 01:15:39,740 --> 01:15:43,760 dychwelyd datganiad, yr ydych yn gwneud maint anghywir. 1654 01:15:43,760 --> 01:15:47,170 Felly gwnewch yn siwr faint, ar gyfer dylunio llawn pwyntiau, rydych chi'n ei wneud yn union yr un 1655 01:15:47,170 --> 01:15:49,970 llinell o god, gan gynnwys y datganiad dychwelyd. 1656 01:15:49,970 --> 01:15:52,450 >> Ac nid ydynt yn pecyn i fyny eto, Akchar. 1657 01:15:52,450 --> 01:15:53,700 Afanc Awyddus. 1658 01:15:53,700 --> 01:15:55,820 1659 01:15:55,820 --> 01:16:01,300 Roeddwn i eisiau dweud diolch guys am ddod i'r adran hon. 1660 01:16:01,300 --> 01:16:02,550 Cael Calan Gaeaf Hapus. 1661 01:16:02,550 --> 01:16:05,300 1662 01:16:05,300 --> 01:16:05,960 Mae hyn yn fy ngwisg. 1663 01:16:05,960 --> 01:16:08,850 Byddaf yn gwisgo hon ar ddydd Iau os wyf yn eich gweld yn ystod oriau swyddfa. 1664 01:16:08,850 --> 01:16:14,640 Ac os ydych yn chwilfrydig am rai mwy cefndir o ran gwisg hwn, yn teimlo 1665 01:16:14,640 --> 01:16:19,135 rhad ac am ddim i edrych ar adran 2011 am stori ar y rheswm pam rwy'n 1666 01:16:19,135 --> 01:16:20,900 gwisgo y wisg pwmpen. 1667 01:16:20,900 --> 01:16:23,680 Ac mae'n stori drist. 1668 01:16:23,680 --> 01:16:27,050 Felly, gwnewch yn siŵr eich bod wedi rhai meinweoedd cyfagos. 1669 01:16:27,050 --> 01:16:28,680 Ond ar hynny, os oes gennych unrhyw cwestiynau 'n annhymerus' ffon o gwmpas 1670 01:16:28,680 --> 01:16:29,960 y tu allan ar ôl adran hon. 1671 01:16:29,960 --> 01:16:31,510 Pob lwc ar y broblem a osodwyd chwech. 1672 01:16:31,510 --> 01:16:33,540 Ac fel bob amser, os oes gennych unrhyw cwestiynau, gadewch i mi wybod. 1673 01:16:33,540 --> 01:16:35,584