1 00:00:00,000 --> 00:00:08,250 2 00:00:08,250 --> 00:00:12,680 >> JASON Hirschhorn: Velkomin á síðuna mína til kafla sjö. 3 00:00:12,680 --> 00:00:15,040 Við erum í viku sjö af námskeiðinu. 4 00:00:15,040 --> 00:00:18,440 Og þetta komandi Fimmtudagur er Halloween þannig að ég er 5 00:00:18,440 --> 00:00:21,420 klæddur upp eins og grasker. 6 00:00:21,420 --> 00:00:23,460 Ég gat ekki beygt sig niður til að setja á skóna mína, svo er það þess vegna sem ég er 7 00:00:23,460 --> 00:00:25,660 bara þreytandi sokkum. 8 00:00:25,660 --> 00:00:29,220 Ég er líka ekki þreytandi neitt undir þetta, svo ég get ekki tekið það af ef það er 9 00:00:29,220 --> 00:00:29,950 truflandi að þér. 10 00:00:29,950 --> 00:00:31,860 Ég afsökunar fyrirfram fyrir það. 11 00:00:31,860 --> 00:00:33,170 Þú þarft ekki að ímynda sér hvað er að gerast. 12 00:00:33,170 --> 00:00:34,240 Ég er þreytandi Boxer. 13 00:00:34,240 --> 00:00:36,170 Svo það er allt gott. 14 00:00:36,170 --> 00:00:41,120 >> Ég er með lengri sögu um hvers vegna ég er klæddur eins og grasker, en ég ætla að 15 00:00:41,120 --> 00:00:45,110 vista það fyrir síðar í þessum kafla vegna þess að ég vil til að byrja. 16 00:00:45,110 --> 00:00:47,720 Við höfum mikið af spennandi hlutum að fara yfir í þessari viku. 17 00:00:47,720 --> 00:00:51,810 Flest þeirra tengjast beint þessum viku Heimadæmi, stafsetningarvillur. 18 00:00:51,810 --> 00:00:54,680 Við erum að fara að vera að fara yfir tengd listum og kjötkássa matskeið 19 00:00:54,680 --> 00:00:57,160 fyrir allt hlutanum. 20 00:00:57,160 --> 00:01:02,490 Ég setti þessa lista upp í hverri viku, lista yfir úrræði fyrir þig að hjálpa þér með 21 00:01:02,490 --> 00:01:04,120 efni á þessu námskeiði. 22 00:01:04,120 --> 00:01:07,600 Ef með tapi eða ef útlit fyrir sumir Nánari upplýsingar, kíkja á eitt af 23 00:01:07,600 --> 00:01:09,930 þessar auðlindir. 24 00:01:09,930 --> 00:01:14,530 >> Aftur, pset6 er stafsetningarvillur, þessa viku pset. 25 00:01:14,530 --> 00:01:17,690 Og það hvetur þig líka, og ég hvetja þig til að nota einhver önnur 26 00:01:17,690 --> 00:01:20,320 auðlindir sérstaklega fyrir þessa pset. 27 00:01:20,320 --> 00:01:23,390 Sér í lagi þrjú ég hef skráð sig á skjánum - 28 00:01:23,390 --> 00:01:27,160 gdb, sem við höfum verið kunnugur og verið að nota fyrir a á meðan nú, er 29 00:01:27,160 --> 00:01:29,270 að fara að vera mjög hjálpsamur í þessari viku. 30 00:01:29,270 --> 00:01:30,190 Þannig að ég setti það upp hér. 31 00:01:30,190 --> 00:01:32,910 En þegar þú ert að vinna með C, þú ættir alltaf að vera með gdb til 32 00:01:32,910 --> 00:01:34,430 kemba þinn programs. 33 00:01:34,430 --> 00:01:36,660 Þessi vika einnig valgrind. 34 00:01:36,660 --> 00:01:38,535 Hefur einhver veit hvað valgrind gerir? 35 00:01:38,535 --> 00:01:42,184 36 00:01:42,184 --> 00:01:43,890 >> Áhorfendur: Það stöðva fyrir leka minni? 37 00:01:43,890 --> 00:01:45,950 >> JASON Hirschhorn: Valgrind stöðva fyrir leka minni. 38 00:01:45,950 --> 00:01:49,970 Þannig að ef þú malloc eitthvað í þinn program, þú ert að biðja um minni. 39 00:01:49,970 --> 00:01:52,920 Í lok program, hefur þú til að skrifa ókeypis á allt sem þú hefur 40 00:01:52,920 --> 00:01:54,800 malloced til þess að gefa minni til baka. 41 00:01:54,800 --> 00:01:58,420 Ef þú skrifar ekki frjáls í lok og program kemur að niðurstöðu, 42 00:01:58,420 --> 00:02:00,000 Allt mun sjálfkrafa vera leystur. 43 00:02:00,000 --> 00:02:02,340 Og fyrir lítil verkefnum, það er ekki það stór samningur. 44 00:02:02,340 --> 00:02:05,250 En ef þú ætlar að skrifa lengur í birtingu program þessi hjartarskinn ekki hætta, 45 00:02:05,250 --> 00:02:09,180 endilega, í nokkrar mínútur eða A nokkrar sekúndur, þá minni lekur 46 00:02:09,180 --> 00:02:10,710 getur orðið gríðarstór samningur. 47 00:02:10,710 --> 00:02:14,940 >> Svo fyrir pset6, von er að þú munt hafa núll minni lekur með 48 00:02:14,940 --> 00:02:15,910 forritið þitt. 49 00:02:15,910 --> 00:02:18,690 Að athuga fyrir leka minni, hlaupa valgrind og það mun gefa þér sumir ágætur 50 00:02:18,690 --> 00:02:21,190 framleiðsla láta þig vita hvort eða ekki allt var ókeypis. 51 00:02:21,190 --> 00:02:23,940 Við munum æfa með það seinna í dag, vonandi. 52 00:02:23,940 --> 00:02:25,790 >> Að lokum, breyting stjórn. 53 00:02:25,790 --> 00:02:28,900 Þú notaðir eitthvað svipað og það í pset5 við gægjast tól. 54 00:02:28,900 --> 00:02:30,780 Leyft þér að líta inn. 55 00:02:30,780 --> 00:02:33,400 Þú notaðir líka diff, of, fyrir vandamálið sett sérstakur. 56 00:02:33,400 --> 00:02:35,950 En í leyfa þér að bera saman tvær skrár. 57 00:02:35,950 --> 00:02:39,180 Þú getur bera saman punktamynd skrá og Upplýsa Hausar starfsmannafundi lausn og 58 00:02:39,180 --> 00:02:42,200 lausnin í pset5 ef þú velur að nota það. 59 00:02:42,200 --> 00:02:44,030 Diff mun leyfa þér að að gera það, eins vel. 60 00:02:44,030 --> 00:02:48,620 Þú getur borið saman rétta svarið fyrir vandamál þessa viku stillt á svarið þitt 61 00:02:48,620 --> 00:02:52,210 og sjá hvort það línur upp eða sjá þar sem villur eru. 62 00:02:52,210 --> 00:02:55,870 >> Þeir eru þrjár góðar tól sem þú ættir að nota fyrir þessa viku, og 63 00:02:55,870 --> 00:02:58,130 örugglega athuga program með þessum þremur verkfærum 64 00:02:58,130 --> 00:03:00,520 áður en þú kveikir það inn 65 00:03:00,520 --> 00:03:04,650 Aftur, eins og ég hef getið í hverri viku, ef þú hefur einhverjar athugasemdir fyrir mig - bæði 66 00:03:04,650 --> 00:03:06,470 jákvæð og uppbyggileg - 67 00:03:06,470 --> 00:03:09,930 ekki hika við að fara á vef neðst á þessari mynd 68 00:03:09,930 --> 00:03:11,270 og inntak það þar. 69 00:03:11,270 --> 00:03:13,440 Ég þakka virkilega allir og allt álit. 70 00:03:13,440 --> 00:03:17,360 Og ef þú gefur mér ákveðin atriði sem Ég get gert til að bæta eða að ég er 71 00:03:17,360 --> 00:03:21,350 gera vel að þú vilt mig til að halda áfram, ég tek það til hjarta og 72 00:03:21,350 --> 00:03:24,040 virkilega reyna erfitt að hlusta að álit þitt. 73 00:03:24,040 --> 00:03:27,720 Ég get ekki lofað að ég ætla að gera allt, þó, eins og að ganga inn 74 00:03:27,720 --> 00:03:30,700 grasker búning í hverri viku. 75 00:03:30,700 --> 00:03:34,020 >> Þannig að við erum að fara að eyða megnið af kafla, eins og ég nefndi, að tala um 76 00:03:34,020 --> 00:03:37,240 tengd listum og kjötkássa matskeið, sem verður beint við til 77 00:03:37,240 --> 00:03:38,780 Heimadæmi í þessari viku. 78 00:03:38,780 --> 00:03:42,580 Tengd listum við munum fara yfir tiltölulega fljótt vegna þess að við höfum eytt sanngjarn hluti 79 00:03:42,580 --> 00:03:44,930 tíma að fara yfir það í kafla. 80 00:03:44,930 --> 00:03:48,680 Og svo við munum fá beint inn í erfðaskrá vandamál fyrir tengd listum. 81 00:03:48,680 --> 00:03:52,740 Og þá í lok við munum tala um kjötkássa matskeið og hvernig þeir eiga að þetta 82 00:03:52,740 --> 00:03:55,280 viku Heimadæmi. 83 00:03:55,280 --> 00:03:57,560 >> Þú hefur séð þetta númer áður. 84 00:03:57,560 --> 00:04:02,730 Þetta er struct, og það er að skilgreina eitthvað nýtt kallað hnút. 85 00:04:02,730 --> 00:04:10,660 Og innan hnút það er heil tala hérna og er það bendi til 86 00:04:10,660 --> 00:04:11,830 annan hnút. 87 00:04:11,830 --> 00:04:12,790 Við höfum séð þetta áður. 88 00:04:12,790 --> 00:04:14,830 Þetta hefur verið að koma upp fyrir nokkrar vikur núna. 89 00:04:14,830 --> 00:04:18,680 Það sameinar ábendingum sem við höfum verið vinna með, og structs, sem leyfa 90 00:04:18,680 --> 00:04:22,079 okkur að blanda saman tveimur ólíkum hlutir í eina tegund gagna. 91 00:04:22,079 --> 00:04:24,830 92 00:04:24,830 --> 00:04:26,490 >> There 'a einhver fjöldi að gerast á skjánum. 93 00:04:26,490 --> 00:04:30,220 En allt það ætti að vera tiltölulega þekki þig. 94 00:04:30,220 --> 00:04:33,810 Á fyrstu línu, við lýsa nýja hnút. 95 00:04:33,810 --> 00:04:41,650 Og þá inni þessi nýjan hnút, setti ég heiltölunni í þeim hnút í eitt. 96 00:04:41,650 --> 00:04:44,950 Við sjáum á næstu línu sem ég er að gera printf skipunina, en ég hef óvirkir 97 00:04:44,950 --> 00:04:48,080 á printf skipunin því raunverulega mikilvægur hluti er þessi lína hér - 98 00:04:48,080 --> 00:04:50,020 new_node.n. 99 00:04:50,020 --> 00:04:51,270 Hvað þýðir punktur meina? 100 00:04:51,270 --> 00:04:53,810 101 00:04:53,810 --> 00:04:57,240 >> Áhorfendur: Farðu í hnút og meta n gildi fyrir það. 102 00:04:57,240 --> 00:04:58,370 >> JASON Hirschhorn: Það er nákvæmlega rétt. 103 00:04:58,370 --> 00:05:03,300 Punktur þýðir sjá N Part þessarar nýju hnút. 104 00:05:03,300 --> 00:05:05,690 Þessi næsta lína gerir hvað? 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 >> Áhorfendur: Það skapar annan hnút sem mun benda á nýja hnút. 108 00:05:21,910 --> 00:05:24,870 >> JASON Hirschhorn: Þannig að það skiptir ekki búa til nýja hnút. 109 00:05:24,870 --> 00:05:26,120 Það skapar hvað? 110 00:05:26,120 --> 00:05:28,300 111 00:05:28,300 --> 00:05:29,300 >> Áhorfendur: A músina. 112 00:05:29,300 --> 00:05:33,460 >> JASON Hirschhorn: bendi á hnút, eins og sýnt með þessu node * hér. 113 00:05:33,460 --> 00:05:34,800 Svo það skapar bendi á hnút. 114 00:05:34,800 --> 00:05:37,490 Og hvaða hnút er það bendir til, Michael? 115 00:05:37,490 --> 00:05:38,440 >> Áhorfendur: New hnútur? 116 00:05:38,440 --> 00:05:39,240 >> JASON Hirschhorn: New hnút. 117 00:05:39,240 --> 00:05:43,020 Og það er að benda þar vegna þess að við höfum gefið það veffang nýjan hnút. 118 00:05:43,020 --> 00:05:45,820 Og nú í þessari línu og við sjáum tvær mismunandi leiðir til 119 00:05:45,820 --> 00:05:46,910 tjá það sama. 120 00:05:46,910 --> 00:05:49,650 Og ég vildi að benda á hvernig þessir tveir hlutir eru eins. 121 00:05:49,650 --> 00:05:54,740 Í fyrstu línu, við dereference bendillinn. 122 00:05:54,740 --> 00:05:55,830 Svo förum við í hnút. 123 00:05:55,830 --> 00:05:56,830 Það er það sem þetta stjörnu þýðir. 124 00:05:56,830 --> 00:05:57,930 Við höfum séð það áður með ábendingum. 125 00:05:57,930 --> 00:05:59,280 Fara til hnút. 126 00:05:59,280 --> 00:06:00,370 Það er í sviga. 127 00:06:00,370 --> 00:06:04,610 Og þá aðgangur í gegnum punktur rekstraraðila n þáttur í þeirri hnút. 128 00:06:04,610 --> 00:06:08,430 >> Svo sem tekur setningafræði við sáum hér og nú 129 00:06:08,430 --> 00:06:09,670 nota það með músina. 130 00:06:09,670 --> 00:06:13,730 Auðvitað fær það frekar upptekinn ef þú ert að skrifa þá sviga - 131 00:06:13,730 --> 00:06:14,940 að stjörnu og að punktur. 132 00:06:14,940 --> 00:06:16,220 Það fær lítið upptekinn. 133 00:06:16,220 --> 00:06:18,500 Þannig að við höfum sumir Nokkur dæmi um setningarleg sykur. 134 00:06:18,500 --> 00:06:19,920 Og þessi lína hérna - 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 Það er sama nákvæmlega hlutur. 138 00:06:28,000 --> 00:06:30,840 Svo þessir tvær línur af kóða er jafngildar og mun gera 139 00:06:30,840 --> 00:06:31,650 nákvæmlega það sama. 140 00:06:31,650 --> 00:06:34,210 >> En ég vildi benda þeim út áður við förum lengra svo þú skiljir 141 00:06:34,210 --> 00:06:39,000 sem raunverulega er þetta hérna bara nokkur dæmi um setningarleg sykur fyrir dereferencing 142 00:06:39,000 --> 00:06:44,200 bendillinn og þá að fara að n hluti af því að strúktúrinn. 143 00:06:44,200 --> 00:06:45,525 Einhverjar spurningar um þessa mynd? 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 >> Þannig að við ætlum að fara í gegnum nokkra starfsemi sem þú getur gert á 147 00:06:58,510 --> 00:06:59,730 tengd listum. 148 00:06:59,730 --> 00:07:05,770 A tengda listanum, muna, er röð af hnúður sem benda til annars. 149 00:07:05,770 --> 00:07:12,470 Og við byrjum yfirleitt með músina kallað höfuð, almennt, sem bendir til 150 00:07:12,470 --> 00:07:14,040 The fyrstur hlutur í listanum. 151 00:07:14,040 --> 00:07:18,900 Svo á fyrstu línu hér, við hafa upprunalega L okkar fyrst. 152 00:07:18,900 --> 00:07:21,370 Þannig að hlutur sem þú getur hugsa um - þetta texta hérna sem þú getur hugsað sem 153 00:07:21,370 --> 00:07:23,560 bara bendillinn við höfum geymt einhvers staðar að stig 154 00:07:23,560 --> 00:07:24,670 að fyrsta frumefni. 155 00:07:24,670 --> 00:07:27,500 Og í þessu tengda listanum höfum við fjóra hnúta. 156 00:07:27,500 --> 00:07:29,530 Hver hnútur er stór kassi. 157 00:07:29,530 --> 00:07:33,430 Stærri kassi inni stór kassi er heiltala hluti. 158 00:07:33,430 --> 00:07:37,400 Og þá höfum við bendi hluta. 159 00:07:37,400 --> 00:07:39,630 >> Þessir kassar eru ekki vakin mælikvarði því hversu stór er 160 00:07:39,630 --> 00:07:42,320 heiltala í bætum? 161 00:07:42,320 --> 00:07:43,290 Hversu stór núna? 162 00:07:43,290 --> 00:07:43,710 Fjórir. 163 00:07:43,710 --> 00:07:45,470 Og hversu stór er bendillinn? 164 00:07:45,470 --> 00:07:45,940 Fjórir. 165 00:07:45,940 --> 00:07:48,180 Svo í raun, ef við vorum að teikna þetta að skala bæði kassa 166 00:07:48,180 --> 00:07:49,690 væri sama stærð. 167 00:07:49,690 --> 00:07:52,870 Í þessu tilfelli, við viljum að setja eitthvað inn í tengda listanum. 168 00:07:52,870 --> 00:07:57,190 Svo þú getur séð hérna við erum að setja fimm Við yfirferðar gegnum 169 00:07:57,190 --> 00:08:01,310 tengda listanum, finna hvar fimm fer, og þá setja það upp. 170 00:08:01,310 --> 00:08:03,560 >> Skulum brjóta þetta niður og fara svolítið hægar. 171 00:08:03,560 --> 00:08:05,510 Ég ætla að benda á borð. 172 00:08:05,510 --> 00:08:09,930 Þannig að við höfum hnút okkar fimm sem Við höfum búið í mallocs. 173 00:08:09,930 --> 00:08:11,190 Hvers vegna er allir hlæja? 174 00:08:11,190 --> 00:08:12,130 Bara að grínast. 175 00:08:12,130 --> 00:08:13,310 OK. 176 00:08:13,310 --> 00:08:14,820 Þannig að við höfum malloced fimm. 177 00:08:14,820 --> 00:08:16,310 Við höfum búið þennan hnút einhvers staðar annars. 178 00:08:16,310 --> 00:08:17,740 Við höfum það tilbúið til að fara. 179 00:08:17,740 --> 00:08:20,130 Við byrjum á framan lista okkar með tveimur. 180 00:08:20,130 --> 00:08:22,380 Og við viljum að setja í raðaða tísku. 181 00:08:22,380 --> 00:08:27,550 >> Þannig að ef við sjáum tvo og við viljum að setja fimm, hvað gerum við þegar við sjáum 182 00:08:27,550 --> 00:08:28,800 eitthvað minna en okkur? 183 00:08:28,800 --> 00:08:31,850 184 00:08:31,850 --> 00:08:33,520 Hvað? 185 00:08:33,520 --> 00:08:36,750 Við viljum setja fimm í þetta tengda listanum, halda það flokkað. 186 00:08:36,750 --> 00:08:37,520 Við sjáum númer tvö. 187 00:08:37,520 --> 00:08:38,769 Svo hvað gerum við? 188 00:08:38,769 --> 00:08:39,179 Marcus? 189 00:08:39,179 --> 00:08:40,679 >> Áhorfendur: Hringdu músina í næsta hnút. 190 00:08:40,679 --> 00:08:42,530 >> JASON Hirschhorn: Og hvers vegna ekki við förum til the næstur einn? 191 00:08:42,530 --> 00:08:45,970 >> Áhorfendur: Vegna þess að það er Næsta hnút í listanum. 192 00:08:45,970 --> 00:08:48,310 Og við vitum bara, að öðrum stað. 193 00:08:48,310 --> 00:08:50,410 >> JASON Hirschhorn: Og fimm er meiri en tveir, sér í lagi. 194 00:08:50,410 --> 00:08:51,600 Vegna þess að við viljum halda það flokkað. 195 00:08:51,600 --> 00:08:52,730 Svo er fimm hærri en tveir. 196 00:08:52,730 --> 00:08:54,460 Þannig að við hreyfa á til the næstur einn. 197 00:08:54,460 --> 00:08:55,240 Og nú erum við að ná fjórum. 198 00:08:55,240 --> 00:08:56,490 Og hvað gerist þegar við náð til? 199 00:08:56,490 --> 00:08:58,920 200 00:08:58,920 --> 00:09:00,310 >> Fimm er hærra en fjórum. 201 00:09:00,310 --> 00:09:01,460 Svo við höldum áfram. 202 00:09:01,460 --> 00:09:03,110 Og nú erum við klukkan sex. 203 00:09:03,110 --> 00:09:04,360 Og hvað sjáum við klukkan sex? 204 00:09:04,360 --> 00:09:08,672 205 00:09:08,672 --> 00:09:09,608 Já, Carlos? 206 00:09:09,608 --> 00:09:10,544 >> Áhorfendur: Sex er meiri en fimm. 207 00:09:10,544 --> 00:09:11,480 >> JASON Hirschhorn: Sex er meiri en fimm. 208 00:09:11,480 --> 00:09:13,660 Svo er það sem við viljum til að setja inn fimm. 209 00:09:13,660 --> 00:09:17,320 Hins vegar skaltu hafa í huga að ef við aðeins hafa eitt bendi hér - 210 00:09:17,320 --> 00:09:19,840 Þetta er auka músina okkar sem er fara yfir í gegnum listann. 211 00:09:19,840 --> 00:09:21,860 Og við erum að benda á sex. 212 00:09:21,860 --> 00:09:25,010 Við höfum misst utan um hvað kemur fyrir sex. 213 00:09:25,010 --> 00:09:29,130 Þannig að ef við viljum að setja eitthvað inn Þessi listi halda það flokkað, við 214 00:09:29,130 --> 00:09:31,630 líklega þurfa hversu margir ábendingar? 215 00:09:31,630 --> 00:09:32,280 >> Áhorfendur: Tveir. 216 00:09:32,280 --> 00:09:32,920 >> JASON HIRSCHORN: Tveir. 217 00:09:32,920 --> 00:09:35,720 Einn til að halda utan um núverandi einn og einn til að halda utan um 218 00:09:35,720 --> 00:09:37,050 fyrri einn. 219 00:09:37,050 --> 00:09:38,450 Þetta er aðeins ein sér tengda listanum. 220 00:09:38,450 --> 00:09:39,670 Það fer einungis einn átt. 221 00:09:39,670 --> 00:09:43,220 Ef við hefðum tvöfalt tengda listanum, þar allt var að benda til þings 222 00:09:43,220 --> 00:09:46,240 eftir það og málið áður en það, þá við myndum ekki þurfa að gera það. 223 00:09:46,240 --> 00:09:49,350 En í þessu tilfelli sem við viljum ekki missa utan um það sem kom á undan okkur ef 224 00:09:49,350 --> 00:09:53,350 við þurfum að setja fimm einhvers staðar í miðju. 225 00:09:53,350 --> 00:09:55,610 Segja að við vorum að setja níu. 226 00:09:55,610 --> 00:09:57,260 Hvað myndi gerast þegar fengum við átta? 227 00:09:57,260 --> 00:10:01,860 228 00:10:01,860 --> 00:10:04,880 >> Áhorfendur: Þú vilt hafa til fá þessi núll punkt. 229 00:10:04,880 --> 00:10:07,820 Í stað þess að hafa núll punkt sem þú vilt hafa að bæta þáttur og þá hafa 230 00:10:07,820 --> 00:10:09,216 það benda til níu. 231 00:10:09,216 --> 00:10:09,700 >> JASON HIRSCHORN: Einmitt. 232 00:10:09,700 --> 00:10:10,600 Svo við fáum átta. 233 00:10:10,600 --> 00:10:13,140 Við náð í lok listanum vegna þetta bendir til null. 234 00:10:13,140 --> 00:10:16,330 Og nú, í stað þess að hafa það benda til null við hafa það benda til nýjan hnút okkar. 235 00:10:16,330 --> 00:10:19,870 Og við setjum bendilinn í nýr hnútur okkar til null. 236 00:10:19,870 --> 00:10:21,445 Hefur einhver hefur einhverjar spurningar um að setja? 237 00:10:21,445 --> 00:10:25,620 238 00:10:25,620 --> 00:10:28,100 Hvað ef ég er ekki sama um halda lista raðað? 239 00:10:28,100 --> 00:10:31,701 240 00:10:31,701 --> 00:10:34,350 >> Áhorfendur: Stick það á upphafi eða lok. 241 00:10:34,350 --> 00:10:35,510 >> JASON HIRSCHORN: Stick það á upphaf eða endir. 242 00:10:35,510 --> 00:10:37,276 Hver einn ættum við að gera? 243 00:10:37,276 --> 00:10:38,770 Bobby? 244 00:10:38,770 --> 00:10:41,020 Hvers vegna enda? 245 00:10:41,020 --> 00:10:43,250 >> Áhorfendur: Þar sem upphaf er nú þegar fyllt. 246 00:10:43,250 --> 00:10:43,575 >> JASON HIRSCHORN: OK. 247 00:10:43,575 --> 00:10:44,360 Í upphafi er þegar fyllt. 248 00:10:44,360 --> 00:10:46,090 Hver vill halda því fram gegn Bobby. 249 00:10:46,090 --> 00:10:47,290 Marcus. 250 00:10:47,290 --> 00:10:48,910 >> Áhorfendur: Jæja þú vilt sennilega að stafur það í upphafi vegna þess að 251 00:10:48,910 --> 00:10:50,140 annars ef þú setur hana á í lok þú vilt hafa til 252 00:10:50,140 --> 00:10:51,835 fara yfir allan listann. 253 00:10:51,835 --> 00:10:52,990 >> JASON HIRSCHORN: Einmitt. 254 00:10:52,990 --> 00:10:57,970 Þannig að ef við erum að hugsa um Runtime, Runtime innsetning í lok 255 00:10:57,970 --> 00:11:00,110 væri n, the stærð af þessu. 256 00:11:00,110 --> 00:11:03,080 Hvað er stór O afturkreistingur innsetning í upphafi? 257 00:11:03,080 --> 00:11:04,170 Föstu tíma. 258 00:11:04,170 --> 00:11:07,075 Þannig að ef þú hefur ekki sama um að halda eitthvað raðað, miklu betra að bara 259 00:11:07,075 --> 00:11:08,420 að setja inn í upphafi þessum lista. 260 00:11:08,420 --> 00:11:10,320 Og það er hægt að gera í föstu tíma. 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 Næsta aðgerð er að finna, sem öðrum - við höfum orðaði þetta sem leit. 264 00:11:18,870 --> 00:11:22,470 En við erum að fara að horfa í gegnum tengda listanum fyrir nokkrum hlut. 265 00:11:22,470 --> 00:11:26,000 Þú krakkar hafa séð kóðann fyrir leita áður í fyrirlestrinum. 266 00:11:26,000 --> 00:11:29,490 En við svoleiðis bara gerði það með að setja inn, eða að minnsta kosti að setja 267 00:11:29,490 --> 00:11:30,580 eitthvað flokkað. 268 00:11:30,580 --> 00:11:36,350 Þú horfir í gegnum, fara hnút eftir hnút, þar til þú finnur númerið sem þú ert 269 00:11:36,350 --> 00:11:37,780 leita að. 270 00:11:37,780 --> 00:11:39,670 Hvað gerist ef þú nærð í lok listanum? 271 00:11:39,670 --> 00:11:43,020 Segja að ég er að leita að níu og ég ná í lok listanum. 272 00:11:43,020 --> 00:11:44,270 Hvað gerum við? 273 00:11:44,270 --> 00:11:47,147 274 00:11:47,147 --> 00:11:48,110 >> Áhorfendur: return false? 275 00:11:48,110 --> 00:11:48,690 >> JASON HIRSCHORN: return false. 276 00:11:48,690 --> 00:11:49,960 Við fundum hann ekki. 277 00:11:49,960 --> 00:11:52,010 Ef þú nærð í lok listanum og þú ekki finna númerið sem þú ert 278 00:11:52,010 --> 00:11:54,170 leita að, er það ekki þar. 279 00:11:54,170 --> 00:11:55,420 Einhverjar spurningar um finna? 280 00:11:55,420 --> 00:11:59,530 281 00:11:59,530 --> 00:12:04,615 Ef þetta var raðað lista, hvað myndi vera öðruvísi til að leita okkar? 282 00:12:04,615 --> 00:12:07,370 283 00:12:07,370 --> 00:12:08,103 Já. 284 00:12:08,103 --> 00:12:10,600 >> Áhorfendur: Það myndi finna fyrstu gildi sem er meiri en sá 285 00:12:10,600 --> 00:12:12,390 þú ert að leita að og þá return false. 286 00:12:12,390 --> 00:12:13,190 >> JASON HIRSCHORN: Einmitt. 287 00:12:13,190 --> 00:12:17,310 Þannig að ef það er raðað lista, ef við fáum að eitthvað sem er stærra en það sem 288 00:12:17,310 --> 00:12:20,180 við erum að leita að, þá þurfum við ekki að halda áfram til loka listanum. 289 00:12:20,180 --> 00:12:24,060 Við getum á þeim tímapunkti return false vegna þess að við erum ekki að fara að finna það. 290 00:12:24,060 --> 00:12:27,340 Spurningin er nú, höfum við talað um halda tengd listum raðað, 291 00:12:27,340 --> 00:12:28,180 halda þeim óflokkað. 292 00:12:28,180 --> 00:12:30,050 Það er að fara að vera eitthvað sem þú ert líklega að fara að þurfa að hugsa um 293 00:12:30,050 --> 00:12:34,240 þegar erfðaskrá vandamál setja fimm ef þú velja kjötkássa borð með aðskildum 294 00:12:34,240 --> 00:12:36,360 chaining nálgun, sem við munum tala um síðar. 295 00:12:36,360 --> 00:12:41,400 >> En er það þess virði að halda lista raðað og þá geta kannski hafa 296 00:12:41,400 --> 00:12:42,310 fljótari leit? 297 00:12:42,310 --> 00:12:47,220 Eða er betra að fljótt setja eitthvað í stöðugri afturkreistingur en þá 298 00:12:47,220 --> 00:12:48,430 hafa lengur að leita? 299 00:12:48,430 --> 00:12:52,250 Það er tradeoff rétt þar sem þér fá að ákveða hvað er meira viðeigandi 300 00:12:52,250 --> 00:12:53,590 fyrir tiltekna vandamál þitt. 301 00:12:53,590 --> 00:12:56,680 Og það er ekki endilega eitt algerlega rétt svar. 302 00:12:56,680 --> 00:12:59,520 En það er vissulega ákvörðun sem þú færð að gera, og líklega gott að verja 303 00:12:59,520 --> 00:13:05,270 að í, segjum, athugasemd eða tveir af hverju þú velur einn yfir annan. 304 00:13:05,270 --> 00:13:06,490 >> Að lokum, eyða. 305 00:13:06,490 --> 00:13:08,100 Við höfum séð að eyða. 306 00:13:08,100 --> 00:13:09,180 Það er svipað og að leita. 307 00:13:09,180 --> 00:13:11,020 Við erum að leita að frumefni. 308 00:13:11,020 --> 00:13:12,390 Segja að við erum að reyna að eyða sex. 309 00:13:12,390 --> 00:13:14,450 Þannig að við að finna sex hérna. 310 00:13:14,450 --> 00:13:18,860 Það sem við verðum að tryggja að við gera er að allt bendir til 311 00:13:18,860 --> 00:13:21,220 sex - eins og við sjáum í skrefi tveir hérna - 312 00:13:21,220 --> 00:13:26,500 hvað er að benda á sex þarf að sleppa sex núna og hægt að breyta til 313 00:13:26,500 --> 00:13:28,160 hvað sex bendir til. 314 00:13:28,160 --> 00:13:31,410 Við viljum ekki að alltaf munaðarlaus restina af lista okkar með að gleyma að setja sem 315 00:13:31,410 --> 00:13:32,960 Fyrri músina. 316 00:13:32,960 --> 00:13:35,960 Og þá stundum, eftir á dagskrá, þeir 'réttlátur 317 00:13:35,960 --> 00:13:37,380 eyða þennan hnút alveg. 318 00:13:37,380 --> 00:13:40,135 Stundum þú munt vilja til að fara aftur gildi sem er í þessum hnút. 319 00:13:40,135 --> 00:13:42,490 Svo er það hvernig eyða verk. 320 00:13:42,490 --> 00:13:44,610 Einhverjar spurningar um að eyða? 321 00:13:44,610 --> 00:13:51,280 322 00:13:51,280 --> 00:13:53,850 >> Áhorfendur: Svo ef þú ert að fara að eyða það, myndir þú nota bara ókeypis vegna 323 00:13:53,850 --> 00:13:55,655 væntanlega var það malloced? 324 00:13:55,655 --> 00:13:57,976 >> JASON HIRSCHORN: Ef þú vilt að losa eitthvað sem er nákvæmlega rétt og þú 325 00:13:57,976 --> 00:13:58,540 malloced það. 326 00:13:58,540 --> 00:14:00,410 Segja að við vildum að skila þetta gildi. 327 00:14:00,410 --> 00:14:04,010 Við gætum aftur sex og þá frjáls þennan hnút og kalla ókeypis á það. 328 00:14:04,010 --> 00:14:06,180 Eða við myndum líklega kalla frjáls fyrst og síðan aftur sex. 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 Þannig að við skulum fara að æfa forritun. 332 00:14:14,010 --> 00:14:16,090 Við erum að fara að kóða þrjár aðgerðir. 333 00:14:16,090 --> 00:14:18,260 Sú fyrsta er kallað insert_node. 334 00:14:18,260 --> 00:14:22,170 Svo þú ert númer sem ég sendi þér, og ef þú ert að horfa á þetta síðar 335 00:14:22,170 --> 00:14:28,020 þú getur fengið aðgang að kóða í linked.c á CS50 website. 336 00:14:28,020 --> 00:14:30,880 En í linked.c, það er sumir beinagrind númer sem er þegar 337 00:14:30,880 --> 00:14:32,280 verið skrifuð fyrir þig. 338 00:14:32,280 --> 00:14:34,560 Og þá er par HLUTVERK þar þú þarft að skrifa. 339 00:14:34,560 --> 00:14:36,380 >> Fyrst við erum að fara að skrifa insert_node. 340 00:14:36,380 --> 00:14:39,800 Og hvað insert_node gerir IS setur heiltölu. 341 00:14:39,800 --> 00:14:42,440 Og þú ert að gefa heiltölunni í tengda listanum. 342 00:14:42,440 --> 00:14:45,470 Og einkum, þú þarft að halda lista raðað 343 00:14:45,470 --> 00:14:47,650 frá smæstu til stærstu. 344 00:14:47,650 --> 00:14:51,360 Einnig, þú vilt ekki að setja neinar tvítekningar. 345 00:14:51,360 --> 00:14:54,600 Að lokum, eins og þú geta sjá insert_node skilar bool. 346 00:14:54,600 --> 00:14:57,140 Svo þú ert að ætlast til að láta notandann vita hvort sem innskotið var 347 00:14:57,140 --> 00:15:00,800 vel með því að skila satt eða ósatt. 348 00:15:00,800 --> 00:15:02,580 Í lok þessarar áætlunar - 349 00:15:02,580 --> 00:15:05,750 og fyrir þessu stigi að þú þarft ekki að hafa áhyggjur frjáls neitt. 350 00:15:05,750 --> 00:15:11,790 Svo er allt sem þú ert að gera að taka heiltölu og setja það inn í lista. 351 00:15:11,790 --> 00:15:13,890 >> Það er það sem ég er að biðja þig að gera núna. 352 00:15:13,890 --> 00:15:17,620 Aftur í linked.c, sem þú allir hafa, er beinagrind númer. 353 00:15:17,620 --> 00:15:20,980 Og þú ættir að sjá til the botn sýnið virka yfirlýsingu. 354 00:15:20,980 --> 00:15:27,390 Samt sem áður að fara í erfðaskrá það í C, ég hvet mjög þú að fara 355 00:15:27,390 --> 00:15:29,330 í gegnum skrefin sem við höfum verið æfa í hverri viku. 356 00:15:29,330 --> 00:15:31,100 Við höfum þegar farið í gegnum mynd af þessu. 357 00:15:31,100 --> 00:15:33,380 Svo þú ættir að hafa skilning um hvernig þetta virkar. 358 00:15:33,380 --> 00:15:36,590 En ég myndi hvetja þig til að skrifa sumir sauðakóðanum áður en köfun tommu 359 00:15:36,590 --> 00:15:38,640 Og við erum að fara að fara yfir sauðakóðanum sem hópur. 360 00:15:38,640 --> 00:15:41,470 Og síðan þegar þú hefur skrifað þinn sauðakóðanum, og þegar við höfum skrifað okkar 361 00:15:41,470 --> 00:15:45,850 sauðakóðanum sem hópur, þú getur fara í erfðaskrá það í C. 362 00:15:45,850 --> 00:15:49,980 >> Sem a heyrnartól upp, insert_node virka er líklega erfiðustu af 363 00:15:49,980 --> 00:15:53,550 þriggja við erum að fara að skrifa því ég bætt við nokkrum fleiri þvingun til 364 00:15:53,550 --> 00:15:57,190 Forritun, einkum að þú ert ekki að fara að setja einhverjar 365 00:15:57,190 --> 00:15:59,880 afrit og að listinn ætti að vera flokkað. 366 00:15:59,880 --> 00:16:02,660 Þannig að þetta er ekki léttvæg forrit að þú þarft að kóða. 367 00:16:02,660 --> 00:16:06,470 Og hvers vegna ertu ekki að 06:55 mínútur bara til að fá að vinna á 368 00:16:06,470 --> 00:16:07,640 sauðakóðanum og númer. 369 00:16:07,640 --> 00:16:09,460 Og þá munum við byrja fara sem hópur. 370 00:16:09,460 --> 00:16:11,680 Aftur, ef þú hefur einhverjar spurningar bara hækka hönd þína og ég kem í kring. 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 >> Við einnig gera almennt þetta - 375 00:18:30,120 --> 00:18:32,070 eða ég get ekki beinlínis sagt þér getur unnið með fólki. 376 00:18:32,070 --> 00:18:36,500 En vitanlega, hvetjum ég mjög, ef þú hefur einhverjar spurningar, til að spyrja 377 00:18:36,500 --> 00:18:39,840 Nágranni sat við hliðina á þér eða jafnvel vinna með einhverjum 378 00:18:39,840 --> 00:18:40,510 annars ef þú vilt. 379 00:18:40,510 --> 00:18:42,600 Þetta þarf ekki að vera einstaklingur hljóður virkni. 380 00:18:42,600 --> 00:20:11,770 381 00:20:11,770 --> 00:20:16,330 >> Við skulum byrja með að skrifa nokkrar sauðakóðanum á borðinu. 382 00:20:16,330 --> 00:20:19,395 Hver getur gefið mér fyrstu línu sauðakóðanum fyrir þetta forrit? 383 00:20:19,395 --> 00:20:22,240 384 00:20:22,240 --> 00:20:23,640 Fyrir þessa aðgerð, frekar - 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 >> Áhorfendur: Svo það fyrsta sem ég gerði var búa til nýtt bendi á hnút og ég 388 00:20:36,560 --> 00:20:41,320 frumstilla það vísa á sömu hlutur sem listi er bendir til. 389 00:20:41,320 --> 00:20:41,550 >> JASON HIRSCHORN: OK. 390 00:20:41,550 --> 00:20:45,190 Svo þú ert að búa til nýja músina á listann, ekki í hnút. 391 00:20:45,190 --> 00:20:45,420 >> Áhorfendur: Rétt. 392 00:20:45,420 --> 00:20:46,150 Já. 393 00:20:46,150 --> 00:20:46,540 >> JASON HIRSCHORN: OK. 394 00:20:46,540 --> 00:20:48,221 Og þá hvað við viljum gera? 395 00:20:48,221 --> 00:20:49,163 Hvað er eftir það? 396 00:20:49,163 --> 00:20:50,105 Hvað um hnút? 397 00:20:50,105 --> 00:20:51,050 Við höfum ekki hnút. 398 00:20:51,050 --> 00:20:52,300 Við höfum bara gildi. 399 00:20:52,300 --> 00:20:55,918 400 00:20:55,918 --> 00:20:58,890 Ef við viljum að setja hnút, hvað gerum við þarf að gera fyrst áður en við getum jafnvel 401 00:20:58,890 --> 00:20:59,980 hugsa um að setja það? 402 00:20:59,980 --> 00:21:00,820 >> Áhorfendur: Ó, fyrirgefðu. 403 00:21:00,820 --> 00:21:02,160 við þurfum að malloc pláss fyrir hnút. 404 00:21:02,160 --> 00:21:02,455 >> JASON HIRSCHORN: Excellent. 405 00:21:02,455 --> 00:21:03,210 Skulum gera - 406 00:21:03,210 --> 00:21:04,628 OK. 407 00:21:04,628 --> 00:21:06,065 Getur ekki náð að mikil. 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 Við ætlum að fara niður, og þá við erum að nota tvo dálka. 411 00:21:13,236 --> 00:21:13,732 Ég get ekki farið að - 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 Búa til nýjan hnút. 415 00:21:25,130 --> 00:21:29,380 Þú getur búið til annan músina til að skrá eða þú getur bara notað lista eins og það er. 416 00:21:29,380 --> 00:21:30,720 Þú gera ekki raunverulega þörf til að gera það. 417 00:21:30,720 --> 00:21:31,750 >> Svo við að búa til nýjan hnút. 418 00:21:31,750 --> 00:21:32,010 Great. 419 00:21:32,010 --> 00:21:32,840 Það er það sem við gerum fyrst. 420 00:21:32,840 --> 00:21:34,870 Hvað er næst? 421 00:21:34,870 --> 00:21:35,080 >> Áhorfendur: Bíddu. 422 00:21:35,080 --> 00:21:38,330 Ættum við að búa til nýjan hnút núna eða ættum við að bíða til að vera viss um að 423 00:21:38,330 --> 00:21:42,260 það er engin afrit af hnút á listanum áður en við búum til það? 424 00:21:42,260 --> 00:21:43,100 >> JASON HIRSCHORN: Góð spurning. 425 00:21:43,100 --> 00:21:47,770 Skulum halda að til seinna vegna þess að meirihlutinn af þeim tíma sem við munum vera að skapa 426 00:21:47,770 --> 00:21:48,220 í nýjum hnút. 427 00:21:48,220 --> 00:21:49,110 Þannig að við munum halda því hér. 428 00:21:49,110 --> 00:21:51,006 En það er góð spurning. 429 00:21:51,006 --> 00:21:53,250 Ef við búum hana og við finnum afrit, hvað ætti 430 00:21:53,250 --> 00:21:54,490 við gerum áður en aftur? 431 00:21:54,490 --> 00:21:55,190 >> Áhorfendur: frjáls það. 432 00:21:55,190 --> 00:21:55,470 >> JASON HIRSCHORN: Já. 433 00:21:55,470 --> 00:21:56,500 Sennilega losa hana. 434 00:21:56,500 --> 00:21:56,760 OK. 435 00:21:56,760 --> 00:21:59,850 Hvað gerum við eftir að við búa til nýjan hnút? 436 00:21:59,850 --> 00:22:02,260 Annie? 437 00:22:02,260 --> 00:22:04,780 >> Áhorfendur: Við setja tala í hnút? 438 00:22:04,780 --> 00:22:05,140 >> JASON HIRSCHORN: Einmitt. 439 00:22:05,140 --> 00:22:07,190 Við setja númer - við malloc pláss. 440 00:22:07,190 --> 00:22:08,160 Ég ætla að fara að allt sem einni línu. 441 00:22:08,160 --> 00:22:08,720 En þú ert rétt. 442 00:22:08,720 --> 00:22:10,305 Við malloc rúm, og þá við að setja númerið inn 443 00:22:10,305 --> 00:22:12,585 Við getum jafnvel sett bendilinn hluti af því að null. 444 00:22:12,585 --> 00:22:13,720 Það er einmitt rétt. 445 00:22:13,720 --> 00:22:17,400 Og þá hvað um eftir það? 446 00:22:17,400 --> 00:22:18,490 Við brá þessari mynd á borðinu. 447 00:22:18,490 --> 00:22:21,190 Svo hvað gerum við? 448 00:22:21,190 --> 00:22:22,680 >> Áhorfendur: Við förum í gegnum listann. 449 00:22:22,680 --> 00:22:23,930 >> JASON HIRSCHORN: Fara í gegnum listann. 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 Og hvað gera athuga við fyrir á hverjum hnút. 453 00:22:34,280 --> 00:22:35,955 Kurt, hvað eigum við að stöðva fyrir á hverjum hnút? 454 00:22:35,955 --> 00:22:41,640 >> Áhorfendur: Sjá hvort n gildi sem hnúturinn er meiri en n value 455 00:22:41,640 --> 00:22:43,070 tengipunktur okkar. 456 00:22:43,070 --> 00:22:43,340 >> JASON HIRSCHORN: OK. 457 00:22:43,340 --> 00:22:44,280 Ég ætla að gera - 458 00:22:44,280 --> 00:22:45,855 já, allt í lagi. 459 00:22:45,855 --> 00:22:48,160 Svo er það n - 460 00:22:48,160 --> 00:22:59,040 Ég ætla að segja ef gildið er hærra en þennan hnút, þá hvað gerum við? 461 00:22:59,040 --> 00:23:07,290 >> Áhorfendur: Jæja, þá erum við að setja hlutur rétt áður. 462 00:23:07,290 --> 00:23:07,970 >> JASON HIRSCHORN: OK. 463 00:23:07,970 --> 00:23:09,410 Þannig að ef það er meiri en þetta, þá viljum við setja. 464 00:23:09,410 --> 00:23:14,010 En við viljum setja það rétt áður vegna þess að við einnig þyrfti að vera 465 00:23:14,010 --> 00:23:16,070 halda utan þá, hvað var áður. 466 00:23:16,070 --> 00:23:22,690 Svo setja áður. 467 00:23:22,690 --> 00:23:25,120 Þannig að við ungfrú líklega eitthvað fyrr. 468 00:23:25,120 --> 00:23:27,770 Við þurfum líklega að halda utan um hvað er að gerast. 469 00:23:27,770 --> 00:23:28,460 En við munum fá til baka þar. 470 00:23:28,460 --> 00:23:30,160 Svo hvaða gildi er minna en? 471 00:23:30,160 --> 00:23:38,030 472 00:23:38,030 --> 00:23:39,710 Kurt, hvað gerum við ef gildið er minna en? 473 00:23:39,710 --> 00:23:43,000 >> Áhorfendur: Síðan sem þú halda bara að fara nema það er síðasta einn. 474 00:23:43,000 --> 00:23:43,550 >> JASON HIRSCHORN: Mér líkar það. 475 00:23:43,550 --> 00:23:44,800 Svo fara á næsta hnút. 476 00:23:44,800 --> 00:23:47,410 477 00:23:47,410 --> 00:23:48,930 Nema það er síðasta - 478 00:23:48,930 --> 00:23:51,100 við erum líklega að haka við að terms ástands. 479 00:23:51,100 --> 00:23:54,870 En já, næsta hnút. 480 00:23:54,870 --> 00:23:58,680 Og það er að fá of lágt, þannig að við munum fara yfir hérna. 481 00:23:58,680 --> 00:24:02,030 En ef - 482 00:24:02,030 --> 00:24:03,280 geta allir séð þetta? 483 00:24:03,280 --> 00:24:07,230 484 00:24:07,230 --> 00:24:11,610 Ef við erum jafnir hvað gerum við? 485 00:24:11,610 --> 00:24:15,740 Ef gildið við erum að reyna að setja inn er jafnt og gildi þetta hnúturinn er? 486 00:24:15,740 --> 00:24:16,320 Já? 487 00:24:16,320 --> 00:24:18,400 >> Áhorfendur: [inaudible]. 488 00:24:18,400 --> 00:24:18,850 >> JASON HIRSCHORN: Já. 489 00:24:18,850 --> 00:24:19,290 Í ljósi þessa - 490 00:24:19,290 --> 00:24:20,090 Marcus er rétt. 491 00:24:20,090 --> 00:24:21,330 Við gætum hafa kannski gert eitthvað öðruvísi. 492 00:24:21,330 --> 00:24:25,360 En í ljósi þess að við höfum skapað það, hér við ættum að losa og síðan heim aftur. 493 00:24:25,360 --> 00:24:26,774 Ó boj. 494 00:24:26,774 --> 00:24:30,080 Er það betra? 495 00:24:30,080 --> 00:24:31,850 Hvernig er það? 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 Frjáls og þá hvað gerum við aftur, [inaudible]? 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 Eru við vantar eitthvað? 502 00:24:45,360 --> 00:24:53,500 503 00:24:53,500 --> 00:24:59,650 Svo hvar erum við að halda utan úr áður hnút? 504 00:24:59,650 --> 00:25:02,370 >> Áhorfendur: Ég held að það myndi fara eftir að búa til nýjan hnút. 505 00:25:02,370 --> 00:25:02,600 >> JASON HIRSCHORN: OK. 506 00:25:02,600 --> 00:25:03,940 Svo í byrjun trulega - 507 00:25:03,940 --> 00:25:07,175 já, þá getum við búið bendi til nýtt hnút, eins og fyrri hnútabendinn og 508 00:25:07,175 --> 00:25:09,600 núverandi hnútabendinn. 509 00:25:09,600 --> 00:25:12,640 Svo skulum setja það hér. 510 00:25:12,640 --> 00:25:15,610 511 00:25:15,610 --> 00:25:26,900 Búa núverandi og fyrri ábendingum til hnúður. 512 00:25:26,900 --> 00:25:28,955 En þegar við stilla þeim ábendingum? 513 00:25:28,955 --> 00:25:30,205 Hvar gerum við það í kóða? 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 >> Áhorfendur: - gildi aðstæður? 517 00:25:35,170 --> 00:25:36,420 >> JASON HIRSCHORN: Hvaða einn í sérstakur? 518 00:25:36,420 --> 00:25:39,862 519 00:25:39,862 --> 00:25:40,720 >> Áhorfendur: Ég er bara að rugla. 520 00:25:40,720 --> 00:25:44,200 Ef gildið er stærra en þetta hnút, Er ekki að meina að þú vilt fara 521 00:25:44,200 --> 00:25:45,320 í næsta hnút? 522 00:25:45,320 --> 00:25:49,515 >> JASON Hirschhorn: Svo ef gildi okkar er meiri en gildi þessarar hnút. 523 00:25:49,515 --> 00:25:52,130 >> Áhorfendur: Já, þá þú vilt vilt fara neðar í línu, ekki satt? 524 00:25:52,130 --> 00:25:52,590 >> JASON Hirschhorn: Hægri. 525 00:25:52,590 --> 00:25:53,840 Svo við gerum setja hann inn hér. 526 00:25:53,840 --> 00:25:58,430 527 00:25:58,430 --> 00:26:03,240 Ef gildið er minna en þetta hnút, þá við förum á næsta hnút - eða þá erum við 528 00:26:03,240 --> 00:26:03,835 setja áður. 529 00:26:03,835 --> 00:26:05,966 >> Áhorfendur: Bíddu, hver er þetta hnút og sem er virði? 530 00:26:05,966 --> 00:26:08,510 531 00:26:08,510 --> 00:26:09,280 >> JASON Hirschhorn: Góð spurning. 532 00:26:09,280 --> 00:26:13,260 Virði þessi aðgerð skilgreiningu er það sem við erum að gefa. 533 00:26:13,260 --> 00:26:16,910 Svo er gildi fjöldi við erum gefið. 534 00:26:16,910 --> 00:26:21,120 Þannig að ef gildið er minna en þetta hnút, við þurfum tíma til að setja inn. 535 00:26:21,120 --> 00:26:24,575 Ef gildið er stærra en þetta hnút, við förum á næsta hnút. 536 00:26:24,575 --> 00:26:26,790 Og aftur að upprunalegu spurningunni, þó, þar sem - 537 00:26:26,790 --> 00:26:29,060 >> Áhorfendur: Ef gildið er stærra en þennan hnút. 538 00:26:29,060 --> 00:26:30,310 >> JASON Hirschhorn: Og svo hvað gerum við hér? 539 00:26:30,310 --> 00:26:36,790 540 00:26:36,790 --> 00:26:38,160 Sætur. 541 00:26:38,160 --> 00:26:38,860 Það er rétt. 542 00:26:38,860 --> 00:26:41,370 Ég ætla bara að fara að skrifa uppfæra ábendingum. 543 00:26:41,370 --> 00:26:44,010 En já, með núverandi Þú munt uppfæra það til 544 00:26:44,010 --> 00:26:46,080 benda til the næstur einn. 545 00:26:46,080 --> 00:26:47,330 Eitthvað annað sem við erum að missa? 546 00:26:47,330 --> 00:26:52,710 547 00:26:52,710 --> 00:26:54,940 Þannig að ég ætla að slá þessu kóða í gedit. 548 00:26:54,940 --> 00:26:58,375 Og á meðan ég gera þetta, getur þú hafa a par fleiri mínútur til að vinna á erfðaskrá 549 00:26:58,375 --> 00:28:19,240 þetta í C. 550 00:28:19,240 --> 00:28:20,940 >> Svo ég hef Inntak sauðakóðanum. 551 00:28:20,940 --> 00:28:22,940 A fljótur í huga áður en við að byrja. 552 00:28:22,940 --> 00:28:25,560 Við mega ekki vera fær til fullkomlega klára þetta í öllu 553 00:28:25,560 --> 00:28:27,300 þrír af þessum störfum. 554 00:28:27,300 --> 00:28:30,630 Það er rétt lausnir þeirra að ég mun senda út til ykkar 555 00:28:30,630 --> 00:28:33,730 eftir kafla, og það mun vera settar á CS50.net. 556 00:28:33,730 --> 00:28:35,640 Svo ég hvet ykkur ekki til fara að líta á köflum. 557 00:28:35,640 --> 00:28:40,550 Ég hvet þig til að reyna þetta á þinn eiga, og þá nota the æfa sig 558 00:28:40,550 --> 00:28:41,760 vandamál að athugað svörin. 559 00:28:41,760 --> 00:28:47,070 Þetta hafa öll verið hönnuð til að náið tengjast og fylgja því sem 560 00:28:47,070 --> 00:28:48,400 þú þarft að gera á Heimadæmi. 561 00:28:48,400 --> 00:28:53,820 Svo ég hvet ykkur til að æfa þetta á eigin spýtur og þá nota kóðann til 562 00:28:53,820 --> 00:28:54,660 athugað svörin. 563 00:28:54,660 --> 00:28:57,060 Því ég vil að fara á kjötkássa töflur á einhverjum tímapunkti í kaflanum. 564 00:28:57,060 --> 00:28:58,150 Þannig að við gætum ekki að komast í gegnum það allt. 565 00:28:58,150 --> 00:28:59,960 En við munum gera eins mikið og við getum nú. 566 00:28:59,960 --> 00:29:00,370 >> OK. 567 00:29:00,370 --> 00:29:01,960 Leyfðu okkur að byrja. 568 00:29:01,960 --> 00:29:04,770 Asam, hvernig eigum við að búa til nýjan hnút? 569 00:29:04,770 --> 00:29:06,810 >> Áhorfendur: Þú strúktúr *. 570 00:29:06,810 --> 00:29:09,640 >> JASON Hirschhorn: Svo við hafa þetta upp hér. 571 00:29:09,640 --> 00:29:10,040 Ó, fyrirgefðu. 572 00:29:10,040 --> 00:29:13,530 Þú varst að segja strúktúr *. 573 00:29:13,530 --> 00:29:17,260 >> Áhorfendur: Og svo [? góður?] hnútur eða c hnút. 574 00:29:17,260 --> 00:29:17,780 >> JASON Hirschhorn: OK. 575 00:29:17,780 --> 00:29:19,740 Ég ætla að kalla það new_node svo við getum vera í samræmi. 576 00:29:19,740 --> 00:29:22,646 577 00:29:22,646 --> 00:29:33,180 >> Áhorfendur: Og þú vilt setja það að höfuð, fyrsta hnút. 578 00:29:33,180 --> 00:29:33,580 >> JASON Hirschhorn: OK. 579 00:29:33,580 --> 00:29:37,290 Svo nú þetta benda til - þannig að þetta hefur ekki búið til nýja hnút ennþá. 580 00:29:37,290 --> 00:29:41,380 Þetta er bara að benda á að fyrsta hnút í listanum. 581 00:29:41,380 --> 00:29:42,630 Hvernig bý ég til nýjan hnút? 582 00:29:42,630 --> 00:29:45,490 583 00:29:45,490 --> 00:29:48,070 Ef ég þarf pláss til að búa til nýja hnút. 584 00:29:48,070 --> 00:29:49,230 Malloc. 585 00:29:49,230 --> 00:29:51,710 Og hversu stór? 586 00:29:51,710 --> 00:30:00,390 >> Áhorfendur: Stærð strúktúrinn. 587 00:30:00,390 --> 00:30:01,150 >> JASON Hirschhorn: The Stærð Struct. 588 00:30:01,150 --> 00:30:02,400 Og hvað er strúktúr sem heitir? 589 00:30:02,400 --> 00:30:09,670 590 00:30:09,670 --> 00:30:09,840 >> Áhorfendur: Hnútur? 591 00:30:09,840 --> 00:30:11,640 >> JASON Hirschhorn: Hnútur. 592 00:30:11,640 --> 00:30:17,640 Svo malloc (sizeof (node)); gefur okkur pláss. 593 00:30:17,640 --> 00:30:19,740 Og er þetta lína - 594 00:30:19,740 --> 00:30:21,740 eitt er rangt á þessari línu. 595 00:30:21,740 --> 00:30:24,430 Er new_node bendi til strúktúr? 596 00:30:24,430 --> 00:30:25,650 Það er samheiti. 597 00:30:25,650 --> 00:30:26,520 Hvað er það - 598 00:30:26,520 --> 00:30:27,450 hnút, einmitt. 599 00:30:27,450 --> 00:30:29,340 Það er hnút *. 600 00:30:29,340 --> 00:30:33,010 Og hvað gerum við rétt eftir við malloc eitthvað, Asan? 601 00:30:33,010 --> 00:30:34,476 Hvað er það fyrsta sem við gerum? 602 00:30:34,476 --> 00:30:38,850 603 00:30:38,850 --> 00:30:40,320 Hvað ef það virkar ekki? 604 00:30:40,320 --> 00:30:42,430 >> Áhorfendur: Ó, athuga hvort það bendir í hnút? 605 00:30:42,430 --> 00:30:43,310 >> JASON Hirschhorn: Einmitt. 606 00:30:43,310 --> 00:30:46,750 Þannig að ef þú new_node jafngildir jafn null, hvað gerum við? 607 00:30:46,750 --> 00:30:51,650 608 00:30:51,650 --> 00:30:54,820 Þetta skilar bool, þessi aðgerð. 609 00:30:54,820 --> 00:30:57,760 Nákvæmlega. 610 00:30:57,760 --> 00:30:58,450 Lítur vel út. 611 00:30:58,450 --> 00:30:59,680 Bæta einhverju við þarna? 612 00:30:59,680 --> 00:31:00,670 Við munum bæta við hlutum í lokin. 613 00:31:00,670 --> 00:31:03,160 En að svo langt er girnilegt. 614 00:31:03,160 --> 00:31:06,170 Búa núverandi og fyrri ábendingum. 615 00:31:06,170 --> 00:31:08,650 Michael, hvernig geri ég þetta? 616 00:31:08,650 --> 00:31:12,810 >> Áhorfendur: Þú þyrftir að gera hnút *. 617 00:31:12,810 --> 00:31:21,800 618 00:31:21,800 --> 00:31:25,502 Þú vilt verða að gera einn ekki fyrir new_node en fyrir 619 00:31:25,502 --> 00:31:26,905 hnúður við höfum nú þegar. 620 00:31:26,905 --> 00:31:27,230 >> JASON Hirschhorn: OK. 621 00:31:27,230 --> 00:31:29,255 Svo núverandi hnút við erum á. 622 00:31:29,255 --> 00:31:30,505 Ég kalla það Viðsk. 623 00:31:30,505 --> 00:31:39,650 624 00:31:39,650 --> 00:31:39,770 Allt í lagi. 625 00:31:39,770 --> 00:31:41,620 Við höfum ákveðið að við viljum halda tveir vegna þess að við þurfum að vita 626 00:31:41,620 --> 00:31:42,870 hvað er fyrir það. 627 00:31:42,870 --> 00:31:45,770 628 00:31:45,770 --> 00:31:47,020 Hvað gera þeir fá frumstilla að? 629 00:31:47,020 --> 00:31:49,874 630 00:31:49,874 --> 00:31:54,180 >> Áhorfendur: Verðmæti þeirra á lista okkar. 631 00:31:54,180 --> 00:31:58,090 >> JASON Hirschhorn: Svo hvað er fyrstur hlutur á listanum okkar? 632 00:31:58,090 --> 00:32:04,050 Eða hvernig vitum við hvar Byrjun upptalningar okkar er? 633 00:32:04,050 --> 00:32:08,015 >> Áhorfendur: Er það ekki staðist í aðgerðina? 634 00:32:08,015 --> 00:32:08,466 >> JASON Hirschhorn: Hægri. 635 00:32:08,466 --> 00:32:09,716 Það var samþykkt í hérna. 636 00:32:09,716 --> 00:32:15,910 637 00:32:15,910 --> 00:32:18,980 Þannig að ef það er liðin í aðgerð, byrja á listanum, hvað eigum við að 638 00:32:18,980 --> 00:32:21,270 setja núverandi jafnt? 639 00:32:21,270 --> 00:32:22,110 >> Áhorfendur: List. 640 00:32:22,110 --> 00:32:22,900 >> JASON Hirschhorn: List. 641 00:32:22,900 --> 00:32:24,090 Það er einmitt rétt. 642 00:32:24,090 --> 00:32:26,290 Nú hefur það veffang byrjunin á listanum okkar. 643 00:32:26,290 --> 00:32:28,450 Og hvað um fyrri? 644 00:32:28,450 --> 00:32:31,920 >> Áhorfendur: List mínus einn? 645 00:32:31,920 --> 00:32:32,690 >> JASON Hirschhorn: Það er ekkert fyrir það. 646 00:32:32,690 --> 00:32:34,580 Og hvað getum við gert til að signify ekkert? 647 00:32:34,580 --> 00:32:35,050 >> Áhorfendur: Null. 648 00:32:35,050 --> 00:32:35,450 >> JASON Hirschhorn: Já. 649 00:32:35,450 --> 00:32:37,950 Það hljómar eins og góð hugmynd. 650 00:32:37,950 --> 00:32:38,360 Fullkominn. 651 00:32:38,360 --> 00:32:39,630 Þakka þér. 652 00:32:39,630 --> 00:32:42,850 Fara í gegnum listann. 653 00:32:42,850 --> 00:32:45,490 Constantine, hversu lengi við erum að fara að fara í gegnum listann? 654 00:32:45,490 --> 00:32:49,010 >> Áhorfendur: fyrr en við náum null. 655 00:32:49,010 --> 00:32:49,390 >> JASON Hirschhorn: OK. 656 00:32:49,390 --> 00:32:50,430 Þannig að ef, á meðan, til hliðar. 657 00:32:50,430 --> 00:32:52,200 Hvað erum við að gera? 658 00:32:52,200 --> 00:32:53,320 >> Áhorfendur: Kannski for lykkju? 659 00:32:53,320 --> 00:32:53,910 >> JASON Hirschhorn: Við skulum gera for lykkju. 660 00:32:53,910 --> 00:32:55,870 OK. 661 00:32:55,870 --> 00:33:02,465 >> Áhorfendur: Og við segjum fyrir - 662 00:33:02,465 --> 00:33:09,764 663 00:33:09,764 --> 00:33:13,390 þar til núverandi músina er ekki jafnt null. 664 00:33:13,390 --> 00:33:19,160 >> JASON Hirschhorn: Svo ef við vitum að ástand, hvernig getum við skrifað lykkju 665 00:33:19,160 --> 00:33:21,740 byggt burt því ástandi. 666 00:33:21,740 --> 00:33:24,380 Hvers konar lykkju eigum við að nota? 667 00:33:24,380 --> 00:33:25,260 >> Áhorfendur: Þó. 668 00:33:25,260 --> 00:33:25,590 >> JASON Hirschhorn: Já. 669 00:33:25,590 --> 00:33:27,130 Það gerir meira vit byggt burt af því sem þú sagðir. 670 00:33:27,130 --> 00:33:29,430 Ef við viljum bara að fara inn í við það væri Bara vita að hlutur, myndi það gera 671 00:33:29,430 --> 00:33:31,680 vit í að gera meðan lykkja. 672 00:33:31,680 --> 00:33:39,880 Þó núverandi ekki jafn null, ef gildið er minna en þennan hnút. 673 00:33:39,880 --> 00:33:41,650 Akshar, gefa mér þessa línu. 674 00:33:41,650 --> 00:33:48,810 675 00:33:48,810 --> 00:33:56,955 >> Áhorfendur: Ef núverandi-> n n minna en gildi. 676 00:33:56,955 --> 00:34:00,170 677 00:34:00,170 --> 00:34:03,260 Eða snúa því. 678 00:34:03,260 --> 00:34:06,140 Rofi sem krappi. 679 00:34:06,140 --> 00:34:06,620 >> JASON Hirschhorn: Því miður. 680 00:34:06,620 --> 00:34:08,760 >> Áhorfendur: Breyttu krappi. 681 00:34:08,760 --> 00:34:10,914 >> JASON Hirschhorn: Svo ef það er meiri en verðmæti. 682 00:34:10,914 --> 00:34:18,719 683 00:34:18,719 --> 00:34:22,120 Því það er ruglingslegt með comment að ofan, ég ætla að gera það. 684 00:34:22,120 --> 00:34:22,480 En já. 685 00:34:22,480 --> 00:34:25,125 Ef gildi okkar er minna en þetta hnút, hvað gerum við? 686 00:34:25,125 --> 00:34:25,540 Oh. 687 00:34:25,540 --> 00:34:26,710 Ég hef það hérna. 688 00:34:26,710 --> 00:34:27,960 Setja áður. 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 Hvernig gerum við það? 692 00:34:33,933 --> 00:34:34,900 >> Áhorfendur: Er það enn mig? 693 00:34:34,900 --> 00:34:36,150 >> JASON Hirschhorn: Já. 694 00:34:36,150 --> 00:34:38,520 695 00:34:38,520 --> 00:34:39,770 >> Áhorfendur: Þú - 696 00:34:39,770 --> 00:34:42,909 697 00:34:42,909 --> 00:34:44,159 new_node-> næst. 698 00:34:44,159 --> 00:34:46,770 699 00:34:46,770 --> 00:34:50,163 >> JASON Hirschhorn: Svo er það að fara til að jafna? 700 00:34:50,163 --> 00:34:52,070 >> Áhorfendur: Það er að fara til að jafna núverandi. 701 00:34:52,070 --> 00:34:53,889 >> JASON Hirschhorn: Einmitt. 702 00:34:53,889 --> 00:34:55,730 Og svo hitt - 703 00:34:55,730 --> 00:34:56,730 Hvað annað þurfum við að uppfæra? 704 00:34:56,730 --> 00:34:59,982 >> Áhorfendur: Athugaðu hvort fortíð jafngildir null. 705 00:34:59,982 --> 00:35:01,870 >> JASON Hirschhorn: Ef prev - 706 00:35:01,870 --> 00:35:03,730 þannig að ef fyrri jafngildir null. 707 00:35:03,730 --> 00:35:05,990 >> Áhorfendur: Það þýðir að það er að fara til að verða yfirmaður. 708 00:35:05,990 --> 00:35:06,780 >> JASON Hirschhorn: það þýðir það er orðið höfuð. 709 00:35:06,780 --> 00:35:07,620 Svo þá hvað gerum við? 710 00:35:07,620 --> 00:35:12,510 >> Áhorfendur: Við gerum höfuð jafngildir new_node. 711 00:35:12,510 --> 00:35:16,690 >> JASON Hirschhorn: Head jafngildir new_node. 712 00:35:16,690 --> 00:35:20,540 Og hvers vegna höfuð hér, ekki lista? 713 00:35:20,540 --> 00:35:24,940 >> Áhorfendur: Vegna höfuð er alþjóðlegt breytu, sem er byrjun staður. 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 Og - 718 00:35:36,150 --> 00:35:53,796 >> Áhorfendur: Síðan sem þú ert annars prev-> Næsta jafngildir new_node. 719 00:35:53,796 --> 00:35:55,080 Og þá þú aftur satt. 720 00:35:55,080 --> 00:35:59,560 721 00:35:59,560 --> 00:36:02,700 >> JASON Hirschhorn: Hvar við setjum new_node enda? 722 00:36:02,700 --> 00:36:04,850 >> Áhorfendur: Ég myndi - 723 00:36:04,850 --> 00:36:06,180 Ég sett það í upphafi. 724 00:36:06,180 --> 00:36:07,430 >> JASON Hirschhorn: Svo hvaða línu? 725 00:36:07,430 --> 00:36:10,000 726 00:36:10,000 --> 00:36:12,598 >> Áhorfendur: Eftir ef yfirlýsingu stöðva ef það er vitað. 727 00:36:12,598 --> 00:36:13,057 >> JASON Hirschhorn: Hérna? 728 00:36:13,057 --> 00:36:18,335 >> Áhorfendur: Ég myndi gera new_node-> n jafnt gildi. 729 00:36:18,335 --> 00:36:19,585 >> JASON Hirschhorn: Hljómar vel. 730 00:36:19,585 --> 00:36:21,740 731 00:36:21,740 --> 00:36:25,090 Sennilega gerir það vit í - við gerum ekki þarf að vita hvað listi við erum á 732 00:36:25,090 --> 00:36:26,280 vegna þess að við erum aðeins að takast með einum lista. 733 00:36:26,280 --> 00:36:29,560 Svo betra virka yfirlýsingu fyrir þetta er bara til að losna við þetta 734 00:36:29,560 --> 00:36:34,360 algjörlega og bara setja gildi í höfuð. 735 00:36:34,360 --> 00:36:35,930 Við gerum ekki einu sinni að vita hvað listi við erum inn 736 00:36:35,930 --> 00:36:39,140 En ég mun halda það fyrir nú og þá breyta því á uppfærslu 737 00:36:39,140 --> 00:36:42,590 glæranna og kóða. 738 00:36:42,590 --> 00:36:44,980 Svo lítur það gott í bili. 739 00:36:44,980 --> 00:36:46,560 Ef gildi - sem getur gert þessa línu? 740 00:36:46,560 --> 00:36:47,810 Ef - 741 00:36:47,810 --> 00:36:52,240 742 00:36:52,240 --> 00:36:53,840 hvað gerum við hér, Noah. 743 00:36:53,840 --> 00:36:57,890 744 00:36:57,890 --> 00:37:07,100 >> Áhorfendur: Ef gildið er stærra en Viðsk-> n - 745 00:37:07,100 --> 00:37:16,830 746 00:37:16,830 --> 00:37:18,240 >> JASON Hirschhorn: Hvernig við förum í næsta hnút? 747 00:37:18,240 --> 00:37:27,760 748 00:37:27,760 --> 00:37:30,530 >> Áhorfendur: Viðsk-> n er jafnt new_node. 749 00:37:30,530 --> 00:37:37,630 750 00:37:37,630 --> 00:37:39,195 >> JASON Hirschhorn: Svo n er hvaða hluti af strúktúr? 751 00:37:39,195 --> 00:37:43,065 752 00:37:43,065 --> 00:37:46,020 The heiltölu. 753 00:37:46,020 --> 00:37:50,420 Og new_node er bendi á hnút. 754 00:37:50,420 --> 00:37:51,880 Svo hvaða hluti af Nota s ættum við að uppfæra? 755 00:37:51,880 --> 00:38:03,900 756 00:38:03,900 --> 00:38:05,400 Ef ekki n, þá er það annar hluti? 757 00:38:05,400 --> 00:38:21,680 758 00:38:21,680 --> 00:38:22,810 Nói, hvað er annar hluti. 759 00:38:22,810 --> 00:38:23,570 >> Áhorfendur: Oh, við hliðina. 760 00:38:23,570 --> 00:38:25,645 >> JASON Hirschhorn: Next, einmitt. 761 00:38:25,645 --> 00:38:26,410 Nákvæmlega. 762 00:38:26,410 --> 00:38:28,770 Næstur er the réttur einn. 763 00:38:28,770 --> 00:38:31,540 Og hvað annað þurfum við að uppfæra, Nói? 764 00:38:31,540 --> 00:38:32,840 >> Áhorfendur: The ábendingum. 765 00:38:32,840 --> 00:38:34,840 >> JASON Hirschhorn: Svo við uppfært straumur. 766 00:38:34,840 --> 00:38:36,090 >> Áhorfendur: Fyrri-> næst. 767 00:38:36,090 --> 00:38:48,160 768 00:38:48,160 --> 00:38:49,410 >> JASON Hirschhorn: Já. 769 00:38:49,410 --> 00:38:57,465 770 00:38:57,465 --> 00:38:58,370 OK, við munum gera hlé. 771 00:38:58,370 --> 00:39:02,200 Sem getur hjálpað okkur út hér? 772 00:39:02,200 --> 00:39:03,385 Manu, hvað eigum við að gera? 773 00:39:03,385 --> 00:39:05,615 >> Áhorfendur: Þú hefur got til að setja það jafn Nota s-> Næsta. 774 00:39:05,615 --> 00:39:09,110 775 00:39:09,110 --> 00:39:11,630 En gera það áður en fyrri línu. 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 Nokkuð fleira? 779 00:39:18,260 --> 00:39:19,170 Akshar. 780 00:39:19,170 --> 00:39:22,680 >> Áhorfendur: Ég held ekki að þú sért ætlað að breyta Viðsk-> Næsta. 781 00:39:22,680 --> 00:39:29,270 Ég held að þú ert ætlað að gera Viðsk jafn Viðsk-> hliðina til að fara á næsta hnút. 782 00:39:29,270 --> 00:39:30,500 >> JASON Hirschhorn: Fyrirgefðu, hvar? 783 00:39:30,500 --> 00:39:32,680 Á hvaða línu? 784 00:39:32,680 --> 00:39:33,420 Þessi lína? 785 00:39:33,420 --> 00:39:33,750 >> Áhorfendur: Já. 786 00:39:33,750 --> 00:39:35,745 Gerðu Viðsk jafngildir Viðsk-> næst. 787 00:39:35,745 --> 00:39:39,690 788 00:39:39,690 --> 00:39:43,360 >> JASON Hirschhorn: Svo er það rétt vegna þess að núverandi er 789 00:39:43,360 --> 00:39:45,220 bendi á hnút. 790 00:39:45,220 --> 00:39:48,550 Og við viljum það til að benda á næsta Hnúturinn í hvað er að fá nú 791 00:39:48,550 --> 00:39:49,930 benti á. 792 00:39:49,930 --> 00:39:54,410 Viðsk sjálft er næst. 793 00:39:54,410 --> 00:39:58,620 En ef við vorum að uppfæra curr.next, við myndi vera að uppfæra í raun huga 794 00:39:58,620 --> 00:40:01,430 sjálft, ekki þar sem þetta bendillinn var að benda. 795 00:40:01,430 --> 00:40:02,680 Hvað um þessa línu, þó. 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 >> Áhorfendur: Fyrri-> Næsta jafngildir Viðsk. 799 00:40:09,590 --> 00:40:12,500 800 00:40:12,500 --> 00:40:19,440 >> JASON Hirschhorn: Svo aftur, ef fyrri er bendi á hnút, prev> næst er 801 00:40:19,440 --> 00:40:23,020 Raunveruleg músina í hnút. 802 00:40:23,020 --> 00:40:27,190 Þannig að þetta myndi vera að uppfæra bendillinn í hnút Nota s. 803 00:40:27,190 --> 00:40:28,570 Við viljum ekki að uppfæra bendillinn í hnút. 804 00:40:28,570 --> 00:40:30,570 Við viljum að uppfæra fyrri. 805 00:40:30,570 --> 00:40:31,850 Svo hvernig gerum við það? 806 00:40:31,850 --> 00:40:34,250 >> Áhorfendur: Það myndi bara vera prev. 807 00:40:34,250 --> 00:40:34,565 >> JASON Hirschhorn: Hægri. 808 00:40:34,565 --> 00:40:35,560 Fyrri er bendi á hnút. 809 00:40:35,560 --> 00:40:38,750 Nú erum við að breyta því til að ný bendi á hnút. 810 00:40:38,750 --> 00:40:40,830 OK Höldum niður. 811 00:40:40,830 --> 00:40:41,940 Að lokum, þetta síðasta ástand. 812 00:40:41,940 --> 00:40:44,896 Jeff, hvað gerum við hér? 813 00:40:44,896 --> 00:40:47,515 >> Áhorfendur: Ef gildið er jafnt og CURR-> n. 814 00:40:47,515 --> 00:40:51,030 815 00:40:51,030 --> 00:40:51,300 >> JASON Hirschhorn: Því miður. 816 00:40:51,300 --> 00:40:52,372 Ó góðvild mína. 817 00:40:52,372 --> 00:40:54,330 Hvað? 818 00:40:54,330 --> 00:40:55,580 Gildi == Viðsk-> n. 819 00:40:55,580 --> 00:41:01,050 820 00:41:01,050 --> 00:41:02,300 Hvað gerum við? 821 00:41:02,300 --> 00:41:04,760 822 00:41:04,760 --> 00:41:10,950 >> Áhorfendur: Þú vilt losa new_node okkar, og þá þú vilt return false. 823 00:41:10,950 --> 00:41:21,410 824 00:41:21,410 --> 00:41:23,460 >> JASON Hirschhorn: Þetta er það sem við höfum skrifað hingað til. 825 00:41:23,460 --> 00:41:25,710 Hefur einhver hafa nokkuð að bæta áður en við tökum? 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 Skulum reyna það. 829 00:41:36,960 --> 00:41:44,180 830 00:41:44,180 --> 00:41:46,110 Eftirlit getur náð í lok af a non-void virkni. 831 00:41:46,110 --> 00:41:48,310 AVI, hvað er að gerast? 832 00:41:48,310 --> 00:41:51,380 >> Áhorfendur: Ert þú ætlast til að setja aftur satt utan while lykkju? 833 00:41:51,380 --> 00:41:53,900 834 00:41:53,900 --> 00:41:54,400 >> JASON Hirschhorn: Ég veit það ekki. 835 00:41:54,400 --> 00:41:54,780 Ert þú vilt að ég? 836 00:41:54,780 --> 00:41:55,520 >> Áhorfendur: Aldrei hugur. 837 00:41:55,520 --> 00:41:56,350 Nei 838 00:41:56,350 --> 00:41:57,180 >> JASON Hirschhorn: Akshar? 839 00:41:57,180 --> 00:41:59,460 >> Áhorfendur: Ég held að þú átt að setja aftur ósatt í lok 840 00:41:59,460 --> 00:42:02,230 á while lykkju. 841 00:42:02,230 --> 00:42:03,270 >> JASON Hirschhorn: Svo þar viltu það að fara? 842 00:42:03,270 --> 00:42:05,270 >> Áhorfendur: Eins utan while lykkju. 843 00:42:05,270 --> 00:42:08,800 Þannig að ef þú hættir í while lykkju sem þýðir að þú hefur náð í lok og 844 00:42:08,800 --> 00:42:09,980 ekkert hefur gerst. 845 00:42:09,980 --> 00:42:10,410 >> JASON Hirschhorn: OK. 846 00:42:10,410 --> 00:42:12,340 Svo hvað við gerum hérna? 847 00:42:12,340 --> 00:42:13,702 >> Áhorfendur: Þú return false þar sem vel. 848 00:42:13,702 --> 00:42:15,040 >> JASON Hirschhorn: Oh, við gera það á báðum stöðum? 849 00:42:15,040 --> 00:42:15,650 >> Áhorfendur: Já. 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 Ættum við að fara? 853 00:42:26,160 --> 00:42:26,980 Ó góðvild mína. 854 00:42:26,980 --> 00:42:27,290 Fyrirgefðu. 855 00:42:27,290 --> 00:42:28,480 Ég biðjumst velvirðingar á skjánum. 856 00:42:28,480 --> 00:42:30,530 Það er góður af stórfurðulegur út á okkur. 857 00:42:30,530 --> 00:42:31,520 Svo velja valkost. 858 00:42:31,520 --> 00:42:35,260 Zero, á kóða, kvittir forritið. 859 00:42:35,260 --> 00:42:36,700 Einn setur eitthvað. 860 00:42:36,700 --> 00:42:37,990 Skulum setja þrjú. 861 00:42:37,990 --> 00:42:42,900 862 00:42:42,900 --> 00:42:45,380 Innskotið var ekki vel. 863 00:42:45,380 --> 00:42:46,500 Ég ætla að prenta út. 864 00:42:46,500 --> 00:42:48,050 Ég hef ekki neitt. 865 00:42:48,050 --> 00:42:48,450 OK. 866 00:42:48,450 --> 00:42:50,250 Kannski var bara fluke. 867 00:42:50,250 --> 00:42:52,810 Settu einn. 868 00:42:52,810 --> 00:42:55,770 Ekki vel. 869 00:42:55,770 --> 00:42:57,470 OK. 870 00:42:57,470 --> 00:43:02,400 Við skulum hlaupa í gegnum gdb virkilega hratt að athuga hvað er að gerast. 871 00:43:02,400 --> 00:43:06,055 >> Mundu gdb. / Nafn þitt program kemur okkur inn gdb. 872 00:43:06,055 --> 00:43:07,610 Er að mikið að höndla? 873 00:43:07,610 --> 00:43:08,560 Blikkandi? 874 00:43:08,560 --> 00:43:10,400 Sennilega. 875 00:43:10,400 --> 00:43:12,760 Loka augunum og taka nokkuð djúpt andann ef þú færð þreytt 876 00:43:12,760 --> 00:43:13,580 að líta á það. 877 00:43:13,580 --> 00:43:14,200 Ég er í gdb. 878 00:43:14,200 --> 00:43:15,830 Hvað er það fyrsta sem ég geri í gdb? 879 00:43:15,830 --> 00:43:17,050 Við verðum að reikna út hvað er að gerast hér. 880 00:43:17,050 --> 00:43:17,310 Við skulum sjá. 881 00:43:17,310 --> 00:43:21,650 Við höfum sex mínútur til að reikna hvað er að gerast. 882 00:43:21,650 --> 00:43:22,900 Brjóta aðal. 883 00:43:22,900 --> 00:43:25,950 884 00:43:25,950 --> 00:43:28,130 Og þá hvað á ég að gera? 885 00:43:28,130 --> 00:43:29,180 Carlos? 886 00:43:29,180 --> 00:43:31,060 Hlaupa. 887 00:43:31,060 --> 00:43:32,250 OK. 888 00:43:32,250 --> 00:43:34,160 Skulum velja valkost. 889 00:43:34,160 --> 00:43:36,330 Og hvað þýðir N gera? 890 00:43:36,330 --> 00:43:38,480 Next. 891 00:43:38,480 --> 00:43:38,950 Já. 892 00:43:38,950 --> 00:43:39,740 >> Áhorfendur: Vissir þú ekki að nefna - 893 00:43:39,740 --> 00:43:45,230 sagðirðu að höfuð, það var frumstilla að null í upphafi. 894 00:43:45,230 --> 00:43:47,140 En ég hélt að þú sagðir að væri í lagi. 895 00:43:47,140 --> 00:43:50,040 896 00:43:50,040 --> 00:43:52,640 >> JASON Hirschhorn: Förum - við skulum líta í gdb, og þá munum við fara til baka. 897 00:43:52,640 --> 00:43:54,910 En það hljómar eins og þú hefur nú þegar nokkrar hugmyndir um hvað er að gerast. 898 00:43:54,910 --> 00:43:58,340 Þannig að við viljum að setja eitthvað. 899 00:43:58,340 --> 00:43:59,390 OK. 900 00:43:59,390 --> 00:44:00,150 Við höfum sett inn. 901 00:44:00,150 --> 00:44:00,770 Vinsamlegast sláðu inn int. 902 00:44:00,770 --> 00:44:01,990 Við munum setja þrjú. 903 00:44:01,990 --> 00:44:03,000 Og þá er ég á þessari línu. 904 00:44:03,000 --> 00:44:07,030 Hvernig fer ég að aflúsa innskotið þekkt virka? 905 00:44:07,030 --> 00:44:08,280 Ó góðvild mína. 906 00:44:08,280 --> 00:44:10,990 907 00:44:10,990 --> 00:44:12,240 Það er mikið. 908 00:44:12,240 --> 00:44:14,372 909 00:44:14,372 --> 00:44:16,445 Er að stórfurðulegur út mikið? 910 00:44:16,445 --> 00:44:19,696 911 00:44:19,696 --> 00:44:21,680 >> Áhorfendur: Oh, dó hann. 912 00:44:21,680 --> 00:44:22,930 >> JASON Hirschhorn: Ég bara draga það út. 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 >> Áhorfendur: Kannski er það Hinn endi vír. 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 Svo the botn lína - 919 00:44:42,330 --> 00:44:43,470 hvað sagðir þú? 920 00:44:43,470 --> 00:44:46,040 >> Áhorfendur: Ég sagði kaldhæðni tæknilega erfiðleikar í þessum flokki. 921 00:44:46,040 --> 00:44:46,410 >> JASON Hirschhorn: Ég veit. 922 00:44:46,410 --> 00:44:48,660 Bara ef ég hefði stjórn á þeim hluta. 923 00:44:48,660 --> 00:44:49,910 [Inaudible] 924 00:44:49,910 --> 00:44:54,430 925 00:44:54,430 --> 00:44:55,400 Sem hljómar frábærlega. 926 00:44:55,400 --> 00:44:58,680 Hví ekki þú krakkar byrja að hugsa um hvað við hefðum getað gert rangt, 927 00:44:58,680 --> 00:45:01,140 og við munum vera aftur í 90 sekúndur. 928 00:45:01,140 --> 00:46:18,160 929 00:46:18,160 --> 00:46:23,010 >> Avica, ég ætla að spyrja þig hvernig á að fara inni insert_node að kemba það. 930 00:46:23,010 --> 00:46:28,940 931 00:46:28,940 --> 00:46:31,460 Svo þetta er þar við fórum síðast burt. 932 00:46:31,460 --> 00:46:35,110 Hvernig fer ég inn insert_node, Avica, að kanna hvað er í gangi? 933 00:46:35,110 --> 00:46:36,360 Hvað GDB stjórn? 934 00:46:36,360 --> 00:46:41,050 935 00:46:41,050 --> 00:46:42,390 Break myndi ekki taka mig inni. 936 00:46:42,390 --> 00:46:46,200 937 00:46:46,200 --> 00:46:47,130 Er Marquise vita? 938 00:46:47,130 --> 00:46:48,240 >> Áhorfendur: Hvað? 939 00:46:48,240 --> 00:46:51,780 >> JASON Hirschhorn: Hvað GDB stjórn Ég nota til að fara inn þessa aðgerð? 940 00:46:51,780 --> 00:46:52,070 >> Áhorfendur: Skref? 941 00:46:52,070 --> 00:46:55,140 >> JASON Hirschhorn: Skref í gegnum S. Það tekur mig inni. 942 00:46:55,140 --> 00:46:55,476 OK. 943 00:46:55,476 --> 00:46:58,040 New_node mallocing pláss. 944 00:46:58,040 --> 00:46:59,120 Það allt lítur út eins og þess að fara. 945 00:46:59,120 --> 00:47:00,370 Skulum skoða new_node. 946 00:47:00,370 --> 00:47:03,270 947 00:47:03,270 --> 00:47:05,410 Það fengum minni heimilisfang. 948 00:47:05,410 --> 00:47:07,440 Skulum athuga - 949 00:47:07,440 --> 00:47:08,500 það er allt rétt. 950 00:47:08,500 --> 00:47:12,220 Svo allt hér virðist að vinna rétt. 951 00:47:12,220 --> 00:47:14,530 >> Áhorfendur: Hver er munurinn milli P og sýna? 952 00:47:14,530 --> 00:47:16,160 >> JASON Hirschhorn: P stendur fyrir prentun. 953 00:47:16,160 --> 00:47:19,310 Og svo þú ert að spyrja hvað er munur á milli sem og þetta? 954 00:47:19,310 --> 00:47:22,330 Í þessu tilviki, ekkert. 955 00:47:22,330 --> 00:47:26,960 En yfirleitt eru nokkur munur. 956 00:47:26,960 --> 00:47:28,220 Og þú ættir að líta í GDB handbók. 957 00:47:28,220 --> 00:47:29,560 En í þessu tilfelli, ekkert. 958 00:47:29,560 --> 00:47:31,460 Við hafa tilhneigingu til að nota prenta, þó, vegna þess að við þurfum ekki að gera mikið meira en 959 00:47:31,460 --> 00:47:33,960 prenta eitt gildi. 960 00:47:33,960 --> 00:47:34,640 >> OK. 961 00:47:34,640 --> 00:47:40,300 Þannig að við erum á línu 80 í númerið okkar, setja node * Viðsk jafnt á listann. 962 00:47:40,300 --> 00:47:42,500 Leyfðu okkur að prenta út Viðsk. 963 00:47:42,500 --> 00:47:45,260 964 00:47:45,260 --> 00:47:46,840 Það jafngildir lista. 965 00:47:46,840 --> 00:47:48,850 Sætur. 966 00:47:48,850 --> 00:47:49,340 Bíddu. 967 00:47:49,340 --> 00:47:50,590 Það jafngildir eitthvað. 968 00:47:50,590 --> 00:47:53,680 969 00:47:53,680 --> 00:47:56,190 Það virðist ekki rétt. 970 00:47:56,190 --> 00:47:56,840 Svona. 971 00:47:56,840 --> 00:47:59,470 Það er vegna þess að í gdb, hægri, ef það er línan sem þú ert á það 972 00:47:59,470 --> 00:48:00,330 hefur ekki framkvæmt ennþá. 973 00:48:00,330 --> 00:48:03,100 Svo þú þarft að raunverulega tegund hliðina til að framkvæma línuna 974 00:48:03,100 --> 00:48:05,230 áður að sjá niðurstöður hennar. 975 00:48:05,230 --> 00:48:06,680 Svo hér erum við. 976 00:48:06,680 --> 00:48:09,490 Við keyrð bara þessa línu, Fyrri jafngildir null. 977 00:48:09,490 --> 00:48:13,590 Svo aftur, ef við prentum fyrri við munum ekki sjá neitt undarlegt. 978 00:48:13,590 --> 00:48:18,680 En ef við framkvæmum reyndar að lína, þá munum við sjá 979 00:48:18,680 --> 00:48:20,380 að þessi lína uppnámi. 980 00:48:20,380 --> 00:48:21,060 >> Þannig að við höfum Viðsk. 981 00:48:21,060 --> 00:48:23,180 Þeir eru báðir vel. 982 00:48:23,180 --> 00:48:24,010 Satt? 983 00:48:24,010 --> 00:48:28,130 Núna erum við á þessari línu hérna. 984 00:48:28,130 --> 00:48:29,310 Þó Viðsk ekki jafn null. 985 00:48:29,310 --> 00:48:31,110 Jæja, hvað þýðir Viðsk jafnir? 986 00:48:31,110 --> 00:48:32,450 Við sáum bara að það jafn null. 987 00:48:32,450 --> 00:48:33,210 Við prentuðum það út. 988 00:48:33,210 --> 00:48:35,110 Ég prenta það út aftur. 989 00:48:35,110 --> 00:48:36,720 Svo er að á meðan lykkja fara að framkvæma? 990 00:48:36,720 --> 00:48:37,270 >> Áhorfendur: Nei 991 00:48:37,270 --> 00:48:39,790 >> JASON Hirschhorn: Svo þegar ég slóst að lína, þú sérð við hljóp alla leið 992 00:48:39,790 --> 00:48:41,390 niður á botn, return false. 993 00:48:41,390 --> 00:48:44,520 Og þá erum við að fara að fara aftur ósatt og fara aftur í prógrammi okkar og 994 00:48:44,520 --> 00:48:48,020 lokum prenta út, eins og við sáum, innskotið var ekki vel. 995 00:48:48,020 --> 00:48:51,010 Svo, einhver hafa einhverjar hugmyndir um hvað við þurfum að gera til að laga þetta? 996 00:48:51,010 --> 00:48:54,200 997 00:48:54,200 --> 00:48:57,570 Ég ætla að bíða þangað til ég sé a par af höndum fara upp. 998 00:48:57,570 --> 00:48:58,830 Við vildum ekki að framkvæma þetta. 999 00:48:58,830 --> 00:49:01,660 Hafðu í huga, þetta var fyrsta sem við vorum að gera. 1000 00:49:01,660 --> 00:49:02,430 Ég ætla ekki að fara að gera a par. 1001 00:49:02,430 --> 00:49:03,670 Ég ætla að gera nokkrar. 1002 00:49:03,670 --> 00:49:04,830 Vegna þess að par þýðir tvö. 1003 00:49:04,830 --> 00:49:07,620 Ég ætla að bíða í meira en tvö. 1004 00:49:07,620 --> 00:49:10,690 >> Fyrsta innsetning, Viðsk, Sjálfgefin jafngildir null. 1005 00:49:10,690 --> 00:49:14,050 Og þetta lykkja aðeins keyrir ef Viðsk er ekki núll. 1006 00:49:14,050 --> 00:49:18,740 Svo hvernig get ég fengið í kringum þetta? 1007 00:49:18,740 --> 00:49:19,990 Ég sé þrjá hendur. 1008 00:49:19,990 --> 00:49:28,490 1009 00:49:28,490 --> 00:49:29,780 Ég ætla að bíða í meira en þrjú. 1010 00:49:29,780 --> 00:49:33,460 1011 00:49:33,460 --> 00:49:35,940 Marcus, hvað finnst þér? 1012 00:49:35,940 --> 00:49:37,730 >> Áhorfendur: Jæja, ef þú þarft það til að framkvæma meira en einu sinni, þú bara 1013 00:49:37,730 --> 00:49:39,948 breyta því að gera-while lykkju. 1014 00:49:39,948 --> 00:49:41,250 >> JASON Hirschhorn: OK. 1015 00:49:41,250 --> 00:49:44,240 Mun að leysa vandamál okkar, þó? 1016 00:49:44,240 --> 00:49:47,750 >> Áhorfendur: Í þessu tilfelli ekki vegna sú staðreynd að listinn er tómur. 1017 00:49:47,750 --> 00:49:52,150 Svo þá þú sennilega bara þurft að bæta yfirlýsing þess efnis að ef lykkja hættir 1018 00:49:52,150 --> 00:49:55,312 þá verður þú að vera í lok lista, á hver benda þér 1019 00:49:55,312 --> 00:49:56,562 getur bara sett það. 1020 00:49:56,562 --> 00:49:58,920 1021 00:49:58,920 --> 00:49:59,680 >> JASON Hirschhorn: Mér líkar það. 1022 00:49:59,680 --> 00:50:00,500 Það er vit í. 1023 00:50:00,500 --> 00:50:03,390 Ef lykkja hættir - 1024 00:50:03,390 --> 00:50:04,800 því það verður return false hér. 1025 00:50:04,800 --> 00:50:08,220 Þannig að ef að lykkja hættir, þá erum við í lok listanum, eða kannski 1026 00:50:08,220 --> 00:50:10,690 byrja á lista ef það er ekkert í það, sem er það sama og á endanum. 1027 00:50:10,690 --> 00:50:12,770 Svo nú viljum við setja eitthvað hér. 1028 00:50:12,770 --> 00:50:17,380 Svo hvernig virkar þessi númer útlit, Marcus? 1029 00:50:17,380 --> 00:50:21,600 >> Áhorfendur: Ef þú got nú þegar hnúturinn malloced, þú bara að segja 1030 00:50:21,600 --> 00:50:25,400 new_node-> Næsta jafngildir null vegna það þarf að vera í lokin. 1031 00:50:25,400 --> 00:50:27,510 Eða new_node-> Næsta jafngildir null. 1032 00:50:27,510 --> 00:50:27,765 >> JASON Hirschhorn: OK. 1033 00:50:27,765 --> 00:50:28,190 Sorry. 1034 00:50:28,190 --> 00:50:35,760 New_node-> Næsta jafngildir null vegna þess að við erum í lok. 1035 00:50:35,760 --> 00:50:36,460 Það þýðir ekki að setja það inn 1036 00:50:36,460 --> 00:50:37,710 Hvernig eigum við að setja það í listanum? 1037 00:50:37,710 --> 00:50:46,130 1038 00:50:46,130 --> 00:50:46,460 Rétt. 1039 00:50:46,460 --> 00:50:47,750 Það er bara að setja það jafnt. 1040 00:50:47,750 --> 00:50:50,940 Nei hvernig við raunverulega setja það á listanum? 1041 00:50:50,940 --> 00:50:54,170 Hvað er að benda á að endir af listanum? 1042 00:50:54,170 --> 00:50:56,090 >> Áhorfendur: Head. 1043 00:50:56,090 --> 00:50:57,566 >> JASON Hirschhorn: Fyrirgefðu? 1044 00:50:57,566 --> 00:50:59,440 >> Áhorfendur: Head er að benda til loka listanum. 1045 00:50:59,440 --> 00:51:01,480 >> JASON Hirschhorn: Ef það er ekkert í listi, höfuð er að benda á að 1046 00:51:01,480 --> 00:51:04,170 lok lista. 1047 00:51:04,170 --> 00:51:06,920 Svo sem mun vinna fyrir Fyrsta innsetning. 1048 00:51:06,920 --> 00:51:09,810 Hvað um ef það eru nokkrar hlutir á listanum? 1049 00:51:09,810 --> 00:51:12,470 En við viljum ekki að setja höfuð jafn new_node. 1050 00:51:12,470 --> 00:51:13,790 Hvað viljum við að gera þar? 1051 00:51:13,790 --> 00:51:15,610 Já? 1052 00:51:15,610 --> 00:51:16,860 Sennilega fyrri. 1053 00:51:16,860 --> 00:51:23,560 1054 00:51:23,560 --> 00:51:24,810 Mun það virka? 1055 00:51:24,810 --> 00:51:28,950 1056 00:51:28,950 --> 00:51:33,050 Muna að fyrri er bara bendi á hnút. 1057 00:51:33,050 --> 00:51:34,770 Og fyrri er staðbundin breytu. 1058 00:51:34,770 --> 00:51:38,080 Þannig að fyrirsögnin mun setja a heimamaður breytu, fyrri, sem er jafn eða 1059 00:51:38,080 --> 00:51:39,380 benda til þessa nýja hnút. 1060 00:51:39,380 --> 00:51:41,500 Það mun í raun ekki setja það á listanum okkar, þó. 1061 00:51:41,500 --> 00:51:44,330 Hvernig eigum við að setja það í lista okkar? 1062 00:51:44,330 --> 00:51:45,620 Akchar? 1063 00:51:45,620 --> 00:51:46,870 >> Áhorfendur: Ég held að þú gera núverandi-> Næsta. 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 Viðsk-> næst. 1067 00:51:54,010 --> 00:51:58,768 Svo aftur, eina ástæðan að við erum niður hér er, hvað þýðir nú jafnir? 1068 00:51:58,768 --> 00:51:59,760 >> Áhorfendur: Jafnt null. 1069 00:51:59,760 --> 00:52:01,790 >> JASON Hirschhorn: Og hvað með það gerist ef við gerum null-> næst? 1070 00:52:01,790 --> 00:52:02,810 Hvað eigum við að fara að fá? 1071 00:52:02,810 --> 00:52:04,060 Við munum fá skiptingu kenna. 1072 00:52:04,060 --> 00:52:06,600 1073 00:52:06,600 --> 00:52:08,880 >> Áhorfendur: Ekki Viðsk jafngildir null. 1074 00:52:08,880 --> 00:52:10,760 >> JASON Hirschhorn: Það er það sama sem fyrra, þó, vegna þess að það er 1075 00:52:10,760 --> 00:52:12,820 a heimamaður breytu sem við erum að setja jafnt þessu nýja hnút. 1076 00:52:12,820 --> 00:52:16,680 1077 00:52:16,680 --> 00:52:20,920 Við skulum fara aftur til myndin okkar innsetning eitthvað. 1078 00:52:20,920 --> 00:52:25,500 Segja að við erum að setja í lok af listanum, svo hérna. 1079 00:52:25,500 --> 00:52:30,010 Við höfum núverandi músina sem er bendir til núll og fyrri lið 1080 00:52:30,010 --> 00:52:32,800 sem er bendir til 8.. 1081 00:52:32,800 --> 00:52:35,330 Svo hvað þurfum við að uppfæra, Avi? 1082 00:52:35,330 --> 00:52:36,680 >> Áhorfendur: Fyrri-> næst? 1083 00:52:36,680 --> 00:52:41,980 >> JASON Hirschhorn: Fyrri-> næsta er það við viljum að uppfæra vegna þess að 1084 00:52:41,980 --> 00:52:44,960 mun í raun setja það á í lok listanum. 1085 00:52:44,960 --> 00:52:47,220 Við höfum enn einum galla, þó, að við erum að fara að keyra inn. 1086 00:52:47,220 --> 00:52:50,090 Hvað er þetta galla? 1087 00:52:50,090 --> 00:52:50,790 Já? 1088 00:52:50,790 --> 00:52:53,860 >> Áhorfendur: Það er að fara að fara aftur rangar í þessu tilviki? 1089 00:52:53,860 --> 00:52:56,380 >> JASON Hirschhorn: Oh, er er fara að skila falskur. 1090 00:52:56,380 --> 00:52:57,430 En það er önnur padda. 1091 00:52:57,430 --> 00:52:58,930 Þannig að við munum þurfa að setja í staðinn satt. 1092 00:52:58,930 --> 00:53:01,370 >> Áhorfendur: Er fyrri enn jafnir null efst á listanum? 1093 00:53:01,370 --> 00:53:03,645 >> JASON Hirschhorn: Svo fyrri enn jafngildir null í upphafi. 1094 00:53:03,645 --> 00:53:07,480 1095 00:53:07,480 --> 00:53:10,440 Og hvernig getum við fengið yfir það? 1096 00:53:10,440 --> 00:53:10,950 Já? 1097 00:53:10,950 --> 00:53:15,280 >> Áhorfendur: Ég held að þú getur gert ávísun áður en á meðan lykkja til að sjá hvort það er 1098 00:53:15,280 --> 00:53:16,610 tómt lista. 1099 00:53:16,610 --> 00:53:17,000 >> JASON Hirschhorn: OK. 1100 00:53:17,000 --> 00:53:17,710 Svo skulum við fara hér. 1101 00:53:17,710 --> 00:53:18,530 Gera a stöðva. 1102 00:53:18,530 --> 00:53:19,380 Ef - 1103 00:53:19,380 --> 00:53:20,770 >> Áhorfendur: Svo ef höfuðið jafngildir jafngildir null. 1104 00:53:20,770 --> 00:53:24,300 1105 00:53:24,300 --> 00:53:26,320 >> JASON Hirschhorn: Höfuð jafngildir jafngildir null - 1106 00:53:26,320 --> 00:53:27,790 sem mun segja okkur ef það er tómt lista. 1107 00:53:27,790 --> 00:53:31,090 >> Áhorfendur: Og þá er gera höfuð jafngildir nýtt. 1108 00:53:31,090 --> 00:53:34,740 >> JASON Hirschhorn: Head jafngildir new_node? 1109 00:53:34,740 --> 00:53:35,730 Og hvað annað þurfum við að gera? 1110 00:53:35,730 --> 00:53:37,020 >> Áhorfendur: Og þá aftur að veruleika. 1111 00:53:37,020 --> 00:53:37,535 >> JASON Hirschhorn: Ekki alveg. 1112 00:53:37,535 --> 00:53:38,785 Við erum vantar eitt skref. 1113 00:53:38,785 --> 00:53:41,590 1114 00:53:41,590 --> 00:53:43,710 >> Áhorfendur: New_node næstu þarf að benda á núll. 1115 00:53:43,710 --> 00:53:44,570 >> JASON Hirschhorn: Einmitt, Alden. 1116 00:53:44,570 --> 00:53:46,600 Og þá getum við aftur satt. 1117 00:53:46,600 --> 00:53:47,560 OK. 1118 00:53:47,560 --> 00:53:51,630 En það er samt góð hugmynd að gera hlutina í lok listanum, ekki satt? 1119 00:53:51,630 --> 00:53:51,950 Allt í lagi. 1120 00:53:51,950 --> 00:53:54,450 Við enn gæti raunverulega fá til loka listanum. 1121 00:53:54,450 --> 00:53:57,870 Svo er þetta númer í lagi ef við erum á því lok lista og það eru sumir 1122 00:53:57,870 --> 00:53:59,120 hlutir á listanum? 1123 00:53:59,120 --> 00:54:01,830 1124 00:54:01,830 --> 00:54:02,040 Satt? 1125 00:54:02,040 --> 00:54:03,540 Þar sem við höfum enn hugmynd Marcus er. 1126 00:54:03,540 --> 00:54:06,870 Við gætum loka þessa lykkju þar við erum í lok listanum. 1127 00:54:06,870 --> 00:54:09,308 Svo viljum við enn þetta kóðann hér niðri? 1128 00:54:09,308 --> 00:54:10,520 >> Áhorfendur: Já. 1129 00:54:10,520 --> 00:54:11,000 >> JASON Hirschhorn: Já. 1130 00:54:11,000 --> 00:54:14,190 Og hvað þurfum við að breyta því í? 1131 00:54:14,190 --> 00:54:15,440 True. 1132 00:54:15,440 --> 00:54:19,580 1133 00:54:19,580 --> 00:54:21,640 Hefur þessi hljóð gott til alla svo langt? 1134 00:54:21,640 --> 00:54:22,420 Einhver hafa allir - 1135 00:54:22,420 --> 00:54:23,480 AVI, þú þarft eitthvað til að bæta? 1136 00:54:23,480 --> 00:54:23,920 >> Áhorfendur: Nei 1137 00:54:23,920 --> 00:54:25,276 >> JASON Hirschhorn: OK. 1138 00:54:25,276 --> 00:54:27,010 Þannig að við höfum gert nokkrar breytingar. 1139 00:54:27,010 --> 00:54:29,540 Við höfum gert þessa athugun áður en við fór í fyrir tóma listann. 1140 00:54:29,540 --> 00:54:31,790 Þannig að við höfum gætt tóman lista. 1141 00:54:31,790 --> 00:54:35,500 Og hér við hugsað um að setja eitthvað í lok listanum. 1142 00:54:35,500 --> 00:54:38,930 Svo það virðist eins og þetta á meðan lykkja taka sjá um hlutina á milli, 1143 00:54:38,930 --> 00:54:41,920 einhvers staðar á listanum ef það eru hlutir á listanum. 1144 00:54:41,920 --> 00:54:42,280 >> OK. 1145 00:54:42,280 --> 00:54:44,310 Leyfðu okkur að keyra þetta forrit aftur. 1146 00:54:44,310 --> 00:54:50,170 1147 00:54:50,170 --> 00:54:50,755 Ekki vel. 1148 00:54:50,755 --> 00:54:52,190 >> Áhorfendur: Þú komst ekki. 1149 00:54:52,190 --> 00:54:53,940 >> JASON Hirschhorn: Ó, Ég vissi ekki að gera það. 1150 00:54:53,940 --> 00:54:56,250 Góður punktur, Michael. 1151 00:54:56,250 --> 00:54:57,500 Skulum bæta Gerðu tengd. 1152 00:54:57,500 --> 00:55:01,590 1153 00:55:01,590 --> 00:55:04,830 Lína 87 Það er villa. 1154 00:55:04,830 --> 00:55:05,420 Lína 87. 1155 00:55:05,420 --> 00:55:06,600 Alden, þetta var línan sem þú gafst mér. 1156 00:55:06,600 --> 00:55:08,962 Hvað er rangt? 1157 00:55:08,962 --> 00:55:10,710 >> Áhorfendur: Það hlýtur að vera að null. 1158 00:55:10,710 --> 00:55:11,000 >> JASON Hirschhorn: Excellent. 1159 00:55:11,000 --> 00:55:11,630 Nákvæmlega rétt. 1160 00:55:11,630 --> 00:55:13,290 Það ætti að vera núll. 1161 00:55:13,290 --> 00:55:15,210 Skulum gera aftur. 1162 00:55:15,210 --> 00:55:17,220 Safna saman. 1163 00:55:17,220 --> 00:55:17,890 OK. 1164 00:55:17,890 --> 00:55:19,400 Skulum setja þrjú. 1165 00:55:19,400 --> 00:55:20,570 Innskotið var vel. 1166 00:55:20,570 --> 00:55:21,660 Skulum prenta það út. 1167 00:55:21,660 --> 00:55:23,590 Ó, ef aðeins við gætum stöðva. 1168 00:55:23,590 --> 00:55:25,500 En við höfum ekki gert það prenta virka ennþá. 1169 00:55:25,500 --> 00:55:27,840 Skulum setja eitthvað annað. 1170 00:55:27,840 --> 00:55:29,090 Hvað eigum við að koma inn? 1171 00:55:29,090 --> 00:55:31,120 1172 00:55:31,120 --> 00:55:31,940 >> Áhorfendur: Sjö. 1173 00:55:31,940 --> 00:55:33,340 >> JASON Hirschhorn: Seven? 1174 00:55:33,340 --> 00:55:34,590 >> Áhorfendur: Já. 1175 00:55:34,590 --> 00:55:38,680 1176 00:55:38,680 --> 00:55:39,780 >> JASON Hirschhorn: Við höfum seg kenna. 1177 00:55:39,780 --> 00:55:43,760 Svo við fengum einn, en við greinilega getur ekki fengið tvö. 1178 00:55:43,760 --> 00:55:45,690 Það er 05:07. 1179 00:55:45,690 --> 00:55:48,370 Þannig að við gætum kemba þetta í þrjár mínútur. 1180 00:55:48,370 --> 00:55:51,240 En ég ætla að láta okkur hér og hreyfa á til kjötkássa matskeið. 1181 00:55:51,240 --> 00:55:54,290 En aftur, svör fyrir þessum kóða Ég mun senda það til þín í smá. 1182 00:55:54,290 --> 00:55:55,440 Við erum mjög nálægt því. 1183 00:55:55,440 --> 00:55:58,300 Ég hvet mjög þú að reikna út hvað er að gerast hér og festa það. 1184 00:55:58,300 --> 00:56:02,400 Þannig að ég ætla að senda þér þennan kóða sem vel auk lausnin - 1185 00:56:02,400 --> 00:56:03,670 sennilega lausnin síðar. 1186 00:56:03,670 --> 00:56:05,110 Fyrst þetta númer. 1187 00:56:05,110 --> 00:56:08,290 >> The annar hlutur sem ég vil gera áður en við klára er að við höfum ekki leystur neitt. 1188 00:56:08,290 --> 00:56:10,370 Svo vil ég að sýna þér hvað valgrind lítur út. 1189 00:56:10,370 --> 00:56:14,310 Ef við hlaupum valgrind mörk um kerfi okkar,. / tengd. 1190 00:56:14,310 --> 00:56:22,540 Again, í samræmi við þessa mynd, sem við ætti að keyra valgrind með einhvers konar 1191 00:56:22,540 --> 00:56:26,410 valkostur, í þessu tilfelli - Leka-stöðva = fullur. 1192 00:56:26,410 --> 00:56:27,660 Svo skulum skrifa valgrind - Leka-stöðva = fullur. 1193 00:56:27,660 --> 00:56:31,910 1194 00:56:31,910 --> 00:56:35,080 Þannig að þetta mun keyra valgrind um kerfi okkar. 1195 00:56:35,080 --> 00:56:37,000 Og nú forritið keyrir í raun. 1196 00:56:37,000 --> 00:56:40,190 Þannig að við erum að fara að keyra hana bara svona áður, setja eitthvað inn 1197 00:56:40,190 --> 00:56:40,830 Ég ætla að setja í þremur. 1198 00:56:40,830 --> 00:56:41,790 Sem virkar. 1199 00:56:41,790 --> 00:56:43,202 Ég ætla ekki að reyna að setja á eitthvað annars vegna þess að við erum að fara að 1200 00:56:43,202 --> 00:56:44,710 fá seg RANGT því tilfelli. 1201 00:56:44,710 --> 00:56:46,700 Þannig að ég ætla bara að fara að hætta. 1202 00:56:46,700 --> 00:56:50,160 >> Og nú þú sérð hérna leka og hrúga samantekt. 1203 00:56:50,160 --> 00:56:52,310 Þetta eru góðir hlutir sem þú vilt kíkja. 1204 00:56:52,310 --> 00:56:56,780 Svo hrúga samantekt - það segir, í notkun á brottför - átta bæti í einu blokk. 1205 00:56:56,780 --> 00:56:58,370 Að ein húsaröð er hnút við malloced. 1206 00:56:58,370 --> 00:57:02,230 Michael, þú sagðir áður en hnútur er átta bit vegna þess að það hefur fyrir heiltöluna 1207 00:57:02,230 --> 00:57:02,680 og bendilinn. 1208 00:57:02,680 --> 00:57:04,550 Svo er það hnút okkar. 1209 00:57:04,550 --> 00:57:08,170 Og þá segir hún við notuðum malloc sjö sinnum og við leystur 1210 00:57:08,170 --> 00:57:08,940 eitthvað sex sinnum. 1211 00:57:08,940 --> 00:57:13,680 En við kölluðum aldrei ókeypis, þannig að ég hef engin hugmynd hvað þetta er að tala um. 1212 00:57:13,680 --> 00:57:18,490 >> En nægja að segja að þegar þinn forritið keyrir, malloc er kallað 1213 00:57:18,490 --> 00:57:20,330 í sumum öðrum stöðum sem við þarft ekki að hafa áhyggjur. 1214 00:57:20,330 --> 00:57:22,460 Svo malloc var líklega kallað í sumum stöðum. 1215 00:57:22,460 --> 00:57:24,480 Við þurfum ekki að hafa áhyggjur þar. 1216 00:57:24,480 --> 00:57:26,240 En þetta er í raun okkur. 1217 00:57:26,240 --> 00:57:27,380 Þessi fyrsta lína er okkur. 1218 00:57:27,380 --> 00:57:28,320 Við fórum að loka. 1219 00:57:28,320 --> 00:57:30,330 Og þú getur séð að hér í leka samantekt. 1220 00:57:30,330 --> 00:57:31,950 Enn náðist - 1221 00:57:31,950 --> 00:57:32,930 átta bæti í einum reitnum. 1222 00:57:32,930 --> 00:57:34,100 Það þýðir að minni - 1223 00:57:34,100 --> 00:57:35,730 við höfum lekið að minni. 1224 00:57:35,730 --> 00:57:37,570 Ákveðið glatað - 1225 00:57:37,570 --> 00:57:38,770 eitthvað er glataður til góðs. 1226 00:57:38,770 --> 00:57:40,590 Almennt, þú vilja ekki sjá neitt þar. 1227 00:57:40,590 --> 00:57:44,780 Enn náðist almennt þar þú munt sjá það, þar sem þú munt vilja 1228 00:57:44,780 --> 00:57:48,900 að leita að sjá hvaða númer ætti að hafa frelsi en þú gleymdir að losa. 1229 00:57:48,900 --> 00:57:53,170 >> Og þá ef þetta var ekki raunin, ef við gerðum ókeypis allt, 1230 00:57:53,170 --> 00:57:54,360 við getum stöðva það. 1231 00:57:54,360 --> 00:57:57,330 Skulum hlaupa bara forritið ekki setja í neinu. 1232 00:57:57,330 --> 00:57:59,800 Þú munt sjá hér niðri í notkun á brottför - 1233 00:57:59,800 --> 00:58:01,310 Núll bæti í núll blokkir. 1234 00:58:01,310 --> 00:58:06,310 Það þýðir að við höfðum ekkert til vinstri Þegar þessi áætlun lauk. 1235 00:58:06,310 --> 00:58:12,090 Svo áður en þú kveikir í pset6, hlaupa valgrind og ganga úr skugga um að þú ert ekki 1236 00:58:12,090 --> 00:58:15,310 hvaða minni lekur í forritinu. 1237 00:58:15,310 --> 00:58:17,910 Ef þú hefur einhverjar spurningar með valgrind, ekki hika við að ná út. 1238 00:58:17,910 --> 00:58:18,700 En þetta er hvernig þú notar það. 1239 00:58:18,700 --> 00:58:20,890 Mjög einfalt - að sjá hvort þú hafa í notkun á brottför - 1240 00:58:20,890 --> 00:58:22,270 allir bæti í hvaða blokkum. 1241 00:58:22,270 --> 00:58:27,890 1242 00:58:27,890 --> 00:58:29,580 >> Þannig að við vorum að vinna á insert hnút. 1243 00:58:29,580 --> 00:58:33,840 Ég átti tvo aðra valkosti hér - prenta hnúður og frjáls hnúður. 1244 00:58:33,840 --> 00:58:37,780 Aftur, þetta eru aðgerðir sem eru að fara að vera gott fyrir þig að æfa 1245 00:58:37,780 --> 00:58:40,990 vegna þess að þeir munu hjálpa þér ekki aðeins með þessi sýnishorn æfingar en einnig 1246 00:58:40,990 --> 00:58:42,180 á vandamálinu stillt. 1247 00:58:42,180 --> 00:58:44,230 Þeir kortinu á nokkuð náið að hlutum þú ert að fara til verða að gera í 1248 00:58:44,230 --> 00:58:45,010 Heimadæmi. 1249 00:58:45,010 --> 00:58:47,640 En ég vil vera viss um við snertingu á allt. 1250 00:58:47,640 --> 00:58:50,400 Og kjötkássa matskeið eru einnig mikilvægt að hvað við erum að gera í kafla þessum 1251 00:58:50,400 --> 00:58:51,980 viku - eða í Heimadæmi. 1252 00:58:51,980 --> 00:58:55,200 >> Þannig að við ætlum að klára kafla tala um kjötkássa matskeið. 1253 00:58:55,200 --> 00:58:58,140 Ef þú tekur eftir að ég gerði lítið kjötkássa borð. 1254 00:58:58,140 --> 00:59:00,020 Það er ekki það sem við erum að tala um, þó. 1255 00:59:00,020 --> 00:59:03,540 Við erum að tala um mismunandi tegund af kjötkássa matskeið. 1256 00:59:03,540 --> 00:59:07,300 Og á kjarna þess, kjötkássa borð er ekkert annað en 1257 00:59:07,300 --> 00:59:08,860 array auk kjötkássa virka. 1258 00:59:08,860 --> 00:59:11,150 Við erum að fara að tala um hluti bara til að ganga úr skugga um að allir skilji hvað A 1259 00:59:11,150 --> 00:59:12,110 kjötkássa virka er. 1260 00:59:12,110 --> 00:59:15,420 Og ég ætla að segja þér núna að það er ekkert meira en tvo hluti - 1261 00:59:15,420 --> 00:59:18,590 fylki og kjötkássa virka. 1262 00:59:18,590 --> 00:59:20,716 Og hér eru skref í gegnum sem þetta rekur. 1263 00:59:20,716 --> 00:59:31,560 1264 00:59:31,560 --> 00:59:32,810 >> Það er array okkar. 1265 00:59:32,810 --> 00:59:38,460 1266 00:59:38,460 --> 00:59:39,460 Það er hlutverk okkar. 1267 00:59:39,460 --> 00:59:43,180 Sér í lagi þarf kjötkássa aðgerðir til að gera nokkra hluti með þessu. 1268 00:59:43,180 --> 00:59:45,040 Ég ætla að tala sérstaklega um þetta vandamál setja. 1269 00:59:45,040 --> 00:59:46,450 Það er líklega að fara að taka í streng. 1270 00:59:46,450 --> 00:59:50,570 1271 00:59:50,570 --> 00:59:51,770 Og hvað er það að fara að koma aftur? 1272 00:59:51,770 --> 00:59:52,640 Hvaða gögn tegund? 1273 00:59:52,640 --> 00:59:54,260 Alden? 1274 00:59:54,260 --> 00:59:55,760 Kjötkássa virka aftur? 1275 00:59:55,760 --> 00:59:58,760 Heiltala. 1276 00:59:58,760 --> 01:00:01,700 Svo er þetta það sem kjötkássa Tafla samanstendur af - 1277 01:00:01,700 --> 01:00:05,430 borð í formi array og kjötkássa virka. 1278 01:00:05,430 --> 01:00:06,010 Hvernig það virkar? 1279 01:00:06,010 --> 01:00:07,300 Það virkar í þremur skrefum. 1280 01:00:07,300 --> 01:00:08,740 Við gefa það a takkann. 1281 01:00:08,740 --> 01:00:11,470 Í þessu tilfelli, munum við gefa það a band. 1282 01:00:11,470 --> 01:00:18,140 Við köllum kjötkássa virka á skrefi eitt á takkann og við fáum gildi. 1283 01:00:18,140 --> 01:00:20,310 >> Sérstaklega munum við segja fáum við heiltölu. 1284 01:00:20,310 --> 01:00:25,630 That heiltala, eru mjög sérstakar takmörk fyrir því hvað þessi tala getur verið. 1285 01:00:25,630 --> 01:00:28,880 Í þessu dæmi, array okkar af stærð þrjú. 1286 01:00:28,880 --> 01:00:32,330 Svo hvaða tölur geta að heiltala vera. 1287 01:00:32,330 --> 01:00:35,970 Hvað er á bilinu Leyfð gildi fyrir sem heiltala, aftur gerð þessa 1288 01:00:35,970 --> 01:00:37,220 kjötkássa virka? 1289 01:00:37,220 --> 01:00:40,440 1290 01:00:40,440 --> 01:00:42,110 Núll, einn og tveir. 1291 01:00:42,110 --> 01:00:46,060 Að benda á kjötkássa virka er að reikna út stað í fylkinu 1292 01:00:46,060 --> 01:00:47,790 þar lykill okkar er að fara. 1293 01:00:47,790 --> 01:00:51,290 Það eru bara þrjú möguleg stöðum hér - 1294 01:00:51,290 --> 01:00:52,130 núll, einn, eða tveir. 1295 01:00:52,130 --> 01:00:55,360 Þannig að þetta virka betur aftur núll, einn, eða tveir. 1296 01:00:55,360 --> 01:00:58,740 Sumir gild Índice í þessu fylki. 1297 01:00:58,740 --> 01:01:02,770 >> Og þá eftir því hvar það skilar, þú getur séð það array opinn 1298 01:01:02,770 --> 01:01:03,730 krappi gildi. 1299 01:01:03,730 --> 01:01:05,800 Það er þar sem við setja takkann. 1300 01:01:05,800 --> 01:01:11,280 Þannig að við henda í grasker, við fá út núll. 1301 01:01:11,280 --> 01:01:15,540 Á array krappi 0, leggjum grasker. 1302 01:01:15,540 --> 01:01:21,070 Við henda köttum, fáum við út einn. 1303 01:01:21,070 --> 01:01:24,110 Við setjum köttur á einn. 1304 01:01:24,110 --> 01:01:25,480 Við setja í kónguló. 1305 01:01:25,480 --> 01:01:26,710 Við fáum út tvo. 1306 01:01:26,710 --> 01:01:30,200 Við setjum kónguló á array krappi tvö. 1307 01:01:30,200 --> 01:01:32,300 Það væri svo gott ef það í uppnámi eins og þessi. 1308 01:01:32,300 --> 01:01:35,570 En því miður, eins og við munum sjá, það er dálítið flóknara. 1309 01:01:35,570 --> 01:01:37,570 >> Áður en við fáum það, einhverjar spurningar um þetta undirstöðu 1310 01:01:37,570 --> 01:01:38,820 sett upp af kjötkássa borð? 1311 01:01:38,820 --> 01:01:49,050 1312 01:01:49,050 --> 01:01:51,940 Þetta er mynd af nákvæmlega hvað við brá á borðinu. 1313 01:01:51,940 --> 01:01:55,420 En þar sem við dró hana á borð, ég ætla ekki að fara inn í það frekar. 1314 01:01:55,420 --> 01:02:00,430 Í raun takkana, töfra svartur kassi - eða í þessu tilfelli, Teal Box - Með 1315 01:02:00,430 --> 01:02:02,410 kjötkássa virka setur þá í fötunum. 1316 01:02:02,410 --> 01:02:04,690 Og í þessu dæmi erum við ekki að setja nafn. 1317 01:02:04,690 --> 01:02:07,880 Við erum að setja tilheyrandi símann fjöldi nafni í fötu. 1318 01:02:07,880 --> 01:02:10,430 En þú getur mjög vel bara setja nafn í fötu. 1319 01:02:10,430 --> 01:02:12,950 >> Þetta er bara mynd af því sem við brá á borðinu. 1320 01:02:12,950 --> 01:02:14,460 Við höfum hugsanlega komu, þó. 1321 01:02:14,460 --> 01:02:17,470 Og það eru tveir sérstaklega renna að ég vil fara yfir. 1322 01:02:17,470 --> 01:02:20,230 Sú fyrsta er um kjötkássa virka. 1323 01:02:20,230 --> 01:02:22,620 Svo ég spurði, hvað gerir gott kjötkássa virka? 1324 01:02:22,620 --> 01:02:24,220 Ég gef tvö svör. 1325 01:02:24,220 --> 01:02:26,630 Hið fyrra er að það er deterministic. 1326 01:02:26,630 --> 01:02:29,660 Í tengslum við kjötkássa aðgerðir, hvað þýðir þetta? 1327 01:02:29,660 --> 01:02:37,840 1328 01:02:37,840 --> 01:02:39,282 Já? 1329 01:02:39,282 --> 01:02:42,850 >> Áhorfendur: Það má finna á neysluverðs í föstu tíma? 1330 01:02:42,850 --> 01:02:43,810 >> JASON Hirschhorn: Það er ekki hvað það þýðir. 1331 01:02:43,810 --> 01:02:44,725 En það er góð ágiskun. 1332 01:02:44,725 --> 01:02:46,100 Einhver annar hafa giska að hvað þetta þýðir? 1333 01:02:46,100 --> 01:02:47,780 Að góð kjötkássa virka er deterministic? 1334 01:02:47,780 --> 01:02:48,280 Annie? 1335 01:02:48,280 --> 01:02:51,680 >> Áhorfendur: Það lykill getur aðeins verið varpað einum stað í kjötkássa töflunni. 1336 01:02:51,680 --> 01:02:53,070 >> JASON Hirschhorn: Það er nákvæmlega rétt. 1337 01:02:53,070 --> 01:02:57,430 Hvert skipti sem þú setja í grasker, það skilar alltaf núll. 1338 01:02:57,430 --> 01:03:01,660 Ef þú setur í grasker og kjötkássa þinn skilar núll en hefur 1339 01:03:01,660 --> 01:03:06,060 líkur á að skila eitthvað annars er hærri en núll - 1340 01:03:06,060 --> 01:03:09,280 svo kannski getur það aftur einn stundum eða tveir aðrir tímar - 1341 01:03:09,280 --> 01:03:11,100 það er ekki góð kjötkássa virka. 1342 01:03:11,100 --> 01:03:11,800 Þú ert alveg rétt. 1343 01:03:11,800 --> 01:03:15,680 Kjötkássa virka skal skila sama nákvæmlega heiltala, í þessu tilfelli, fyrir 1344 01:03:15,680 --> 01:03:17,780 sama nákvæmlega band. 1345 01:03:17,780 --> 01:03:22,210 >> Kannski skilar það sama nákvæmlega heiltölu fyrir sama nákvæmlega band 1346 01:03:22,210 --> 01:03:24,430 óháð hástöfum. 1347 01:03:24,430 --> 01:03:27,980 En í því tilviki er það enn deterministic því margar hlutir 1348 01:03:27,980 --> 01:03:29,350 eru varpað á sama gildi. 1349 01:03:29,350 --> 01:03:30,170 Það er allt í lagi. 1350 01:03:30,170 --> 01:03:32,615 Svo lengi sem það er aðeins einn framleiðsla fyrir tiltekið inntak. 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 The second hlutur er að það skilar gild vísitölur. 1354 01:03:38,340 --> 01:03:40,220 Við tókum upp að fyrr. 1355 01:03:40,220 --> 01:03:41,860 Þetta kjötkássa virka - 1356 01:03:41,860 --> 01:03:43,710 ó drengur - 1357 01:03:43,710 --> 01:03:46,840 kjötkássa fall ætti aftur gild vísitölur. 1358 01:03:46,840 --> 01:03:47,740 Svo segja - 1359 01:03:47,740 --> 01:03:48,990 við skulum fara aftur til þessa dæmis. 1360 01:03:48,990 --> 01:03:52,580 1361 01:03:52,580 --> 01:03:57,540 Kjötkássa virka minn telur upp stafina í orðinu. 1362 01:03:57,540 --> 01:03:58,380 Það er kjötkássa virka. 1363 01:03:58,380 --> 01:03:59,740 Og skilar það heiltölu. 1364 01:03:59,740 --> 01:04:04,280 Svo ef ég hef orðið er, það er að fara að fara aftur einn. 1365 01:04:04,280 --> 01:04:06,900 Og það er að fara að setja hérna. 1366 01:04:06,900 --> 01:04:09,430 Hvað ef ég setti í orðinu kylfu? 1367 01:04:09,430 --> 01:04:11,310 Það er að fara að skila þremur. 1368 01:04:11,310 --> 01:04:12,560 Hvar er kylfu fara? 1369 01:04:12,560 --> 01:04:18,730 1370 01:04:18,730 --> 01:04:19,750 >> Það passar ekki. 1371 01:04:19,750 --> 01:04:21,000 En það þarf að fara eitthvað. 1372 01:04:21,000 --> 01:04:23,340 Þetta er kjötkássa borð mitt eftir allt saman, og allt þarf að fara eitthvað. 1373 01:04:23,340 --> 01:04:24,590 Svo hvar ætti kylfu fara? 1374 01:04:24,590 --> 01:04:28,020 1375 01:04:28,020 --> 01:04:28,710 Allir hugsun? 1376 01:04:28,710 --> 01:04:29,450 Giskar? 1377 01:04:29,450 --> 01:04:30,280 Góður giska? 1378 01:04:30,280 --> 01:04:31,220 >> Áhorfendur: Zero. 1379 01:04:31,220 --> 01:04:32,120 >> JASON Hirschhorn: Hvers vegna núll? 1380 01:04:32,120 --> 01:04:35,990 >> Áhorfendur: Vegna þriggja modulo þrjú er núll? 1381 01:04:35,990 --> 01:04:38,620 >> JASON Hirschhorn: Three modulo þrjú er núll. 1382 01:04:38,620 --> 01:04:40,810 Það er frábær giska, og það er rétt. 1383 01:04:40,810 --> 01:04:43,870 Þannig að í þessu tilviki það ætti sennilega fara á núlli. 1384 01:04:43,870 --> 01:04:51,080 Svo góð leið til að tryggja að þessi tæti virka aðeins skilar gild vísitölur er 1385 01:04:51,080 --> 01:04:54,580 til modulo það með stærð á töflunni. 1386 01:04:54,580 --> 01:04:57,360 Ef þú modulo hvað sem Þetta skilar því þrír, þú ert alltaf að fara að fá 1387 01:04:57,360 --> 01:05:00,930 eitthvað á milli núll, einn og tveir. 1388 01:05:00,930 --> 01:05:05,160 Og ef þetta alltaf skilar sjö, og þú modulo alltaf um þrjár, þú ert 1389 01:05:05,160 --> 01:05:06,030 alltaf að fara til að fá það sama. 1390 01:05:06,030 --> 01:05:09,270 >> Svo það er enn deterministic ef þú modulo. 1391 01:05:09,270 --> 01:05:11,420 En það mun tryggja að þú aldrei fá eitthvað - 1392 01:05:11,420 --> 01:05:12,940 ógild iðnaður. 1393 01:05:12,940 --> 01:05:16,840 Almennt, að modulo ætti að gerast inni kjötkássa virka. 1394 01:05:16,840 --> 01:05:18,240 Svo þú þarft ekki að hafa áhyggjur af þessu. 1395 01:05:18,240 --> 01:05:20,555 Þú bara að tryggja að þetta er gild Índice. 1396 01:05:20,555 --> 01:05:23,700 1397 01:05:23,700 --> 01:05:26,700 Einhverjar spurningar um þetta möguleiki pitfall? 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 Og þar sem við förum. 1401 01:05:40,290 --> 01:05:42,890 Næsta möguleiki pitfall, og þetta er ein stór. 1402 01:05:42,890 --> 01:05:46,880 Hvað ef tveir lyklar kort að sama gildi? 1403 01:05:46,880 --> 01:05:49,350 Þannig að það eru tvær leiðir til að höndla þetta. 1404 01:05:49,350 --> 01:05:53,140 1405 01:05:53,140 --> 01:05:56,020 Sú fyrsta er kallað línulegt leit, sem ég er 1406 01:05:56,020 --> 01:05:57,300 ekki að fara yfir. 1407 01:05:57,300 --> 01:06:01,120 En þú ættir að þekkja hvernig það virkar og hvað það er. 1408 01:06:01,120 --> 01:06:05,610 >> Annað sem ég er að fara að fara yfir því að það er eitt sem margir 1409 01:06:05,610 --> 01:06:08,290 fólk mun líklega á endanum að ákveða til að nota í vandamál sín. 1410 01:06:08,290 --> 01:06:09,820 Auðvitað, þú þarft ekki að. 1411 01:06:09,820 --> 01:06:15,280 En fyrir Heimadæmi, margir hafa tilhneigingu til að velja að búa til kjötkássa borð 1412 01:06:15,280 --> 01:06:17,950 með sérstakri chaining að hrinda í framkvæmd orðabók þeirra. 1413 01:06:17,950 --> 01:06:21,390 Þannig að við ætlum að fara yfir hvað það þýðir til að búa til kjötkássa borð með 1414 01:06:21,390 --> 01:06:23,890 aðskilin chaining. 1415 01:06:23,890 --> 01:06:26,260 >> Svo ég setti í grasker. 1416 01:06:26,260 --> 01:06:29,560 Það skilar núll. 1417 01:06:29,560 --> 01:06:31,410 Og ég setti grasker hér. 1418 01:06:31,410 --> 01:06:35,880 1419 01:06:35,880 --> 01:06:37,930 Þá er ég setja í - 1420 01:06:37,930 --> 01:06:39,922 hvað er annað Halloween-þema hlutur? 1421 01:06:39,922 --> 01:06:42,200 >> Áhorfendur: Candy. 1422 01:06:42,200 --> 01:06:42,770 >> JASON Hirschhorn: Candy! 1423 01:06:42,770 --> 01:06:43,910 Það er a mikill einn. 1424 01:06:43,910 --> 01:06:47,760 Ég setti í sælgæti og sælgæti einnig gefur mér núll. 1425 01:06:47,760 --> 01:06:49,350 Hvað á ég að gera? 1426 01:06:49,350 --> 01:06:51,940 Einhverjar hugmyndir? 1427 01:06:51,940 --> 01:06:53,940 Vegna þess að þú allir tegund af vita hvað sérstakt chaining er. 1428 01:06:53,940 --> 01:06:55,190 Svo einhverjar hugmyndir hvað ég á að gera? 1429 01:06:55,190 --> 01:06:58,170 1430 01:06:58,170 --> 01:06:59,110 Já. 1431 01:06:59,110 --> 01:07:03,810 >> Áhorfendur: Pútt the band reyndar í kjötkássa töflunni. 1432 01:07:03,810 --> 01:07:08,910 >> JASON Hirschhorn: Þannig að við erum að fara að draga góða hugmynd hérna. 1433 01:07:08,910 --> 01:07:09,340 OK. 1434 01:07:09,340 --> 01:07:12,290 >> Áhorfendur: Hafa Hashtable [Inaudible] 1435 01:07:12,290 --> 01:07:16,640 bendillinn sem bendir til upphafið af lista. 1436 01:07:16,640 --> 01:07:20,930 Og þá hafa grasker vera fyrsta gildi í því tengda listanum og sælgæti vera 1437 01:07:20,930 --> 01:07:22,800 annað gildi í þeim tengda listanum. 1438 01:07:22,800 --> 01:07:23,420 >> JASON Hirschhorn: OK. 1439 01:07:23,420 --> 01:07:24,670 Marcus, sem var framúrskarandi. 1440 01:07:24,670 --> 01:07:26,160 Ég ætla að brjóta það niður. 1441 01:07:26,160 --> 01:07:28,890 Marcus er að segja ekki skrifa grasker. 1442 01:07:28,890 --> 01:07:30,660 Það væri slæmt. 1443 01:07:30,660 --> 01:07:33,640 Ekki setja nammi annars staðar. 1444 01:07:33,640 --> 01:07:35,390 Við erum að fara að setja þá bæði á núlli. 1445 01:07:35,390 --> 01:07:37,770 En við erum að fara að takast á við setja þau á núlli með 1446 01:07:37,770 --> 01:07:39,395 búa til lista á núlli. 1447 01:07:39,395 --> 01:07:42,430 Og við erum að fara að búa til lista yfir allt sem varpað á núll. 1448 01:07:42,430 --> 01:07:47,960 Og besta leiðin til að við lærðum að búa til listi sem geta vaxið og skreppa 1449 01:07:47,960 --> 01:07:49,840 virk er ekki innan annað array. 1450 01:07:49,840 --> 01:07:51,510 Svo ekki multi-víddar array. 1451 01:07:51,510 --> 01:07:54,080 En bara að búa til tengda listanum. 1452 01:07:54,080 --> 01:07:55,330 >> Svo hvað hann lagði - 1453 01:07:55,330 --> 01:07:57,950 1454 01:07:57,950 --> 01:07:59,200 Ég ætla að fá nýja - 1455 01:07:59,200 --> 01:08:15,380 1456 01:08:15,380 --> 01:08:19,689 er að búa til fylki með ábendingum, fjölda ábendinga. 1457 01:08:19,689 --> 01:08:20,580 OK. 1458 01:08:20,580 --> 01:08:24,180 Einhver hugmynd eða vísbending hvað tegund þessa ábendingum ætti að vera? 1459 01:08:24,180 --> 01:08:26,290 Marcus? 1460 01:08:26,290 --> 01:08:27,250 >> Áhorfendur: ábendingum til - 1461 01:08:27,250 --> 01:08:28,609 >> JASON Hirschhorn: Þar sem þú sagði tengda listanum, svo - 1462 01:08:28,609 --> 01:08:29,520 >> Áhorfendur: Hnútur ábendingum? 1463 01:08:29,520 --> 01:08:30,670 >> JASON Hirschhorn: Hnútur ábendingum. 1464 01:08:30,670 --> 01:08:32,830 Ef hlutir í tengdir okkar lista eru hnútar þá þeir 1465 01:08:32,830 --> 01:08:34,370 ætti að vera hnút ábendingum. 1466 01:08:34,370 --> 01:08:35,939 Og hvað gera þeir jafnir í upphafi? 1467 01:08:35,939 --> 01:08:36,990 >> Áhorfendur: 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 Þannig að það er tóm hlutur okkar. 1471 01:08:46,080 --> 01:08:47,170 Grasker skilar núll. 1472 01:08:47,170 --> 01:08:48,569 Hvað gerum við? 1473 01:08:48,569 --> 01:08:49,609 Ganga mér í gegnum það? 1474 01:08:49,609 --> 01:08:50,810 Reyndar Marcus þegar gaf mér. 1475 01:08:50,810 --> 01:08:52,439 Einhver annar ganga mér í gegnum það. 1476 01:08:52,439 --> 01:08:54,760 Hvað við gerum þegar við - 1477 01:08:54,760 --> 01:08:56,609 þetta lítur mjög svipað það sem við vorum bara að gera. 1478 01:08:56,609 --> 01:08:57,396 Avi. 1479 01:08:57,396 --> 01:08:59,090 >> Áhorfendur: Ég ætla að taka giska. 1480 01:08:59,090 --> 01:09:01,250 Svo þegar þú færð nammi. 1481 01:09:01,250 --> 01:09:01,640 >> JASON Hirschhorn: Já. 1482 01:09:01,640 --> 01:09:03,120 Jæja, við fengum grasker. 1483 01:09:03,120 --> 01:09:03,870 Skulum fá fyrst einn okkar. 1484 01:09:03,870 --> 01:09:04,324 Við fengum grasker. 1485 01:09:04,324 --> 01:09:04,779 >> Áhorfendur: OK. 1486 01:09:04,779 --> 01:09:05,880 Grasker skilar núll. 1487 01:09:05,880 --> 01:09:08,770 Svo þú setja það í það. 1488 01:09:08,770 --> 01:09:10,810 Eða í raun, þú setur það í tengda listanum. 1489 01:09:10,810 --> 01:09:13,550 >> JASON Hirschhorn: Hvernig eigum við setja það í tengda listanum? 1490 01:09:13,550 --> 01:09:15,479 >> Áhorfendur: Oh, í raun setningafræði? 1491 01:09:15,479 --> 01:09:16,240 >> JASON Hirschhorn: Bara ganga - 1492 01:09:16,240 --> 01:09:16,740 segja meira. 1493 01:09:16,740 --> 01:09:19,310 Hvað gerum við? 1494 01:09:19,310 --> 01:09:22,100 >> Áhorfendur: Þú settu bara það sem fyrsta hnút. 1495 01:09:22,100 --> 01:09:22,675 >> JASON Hirschhorn: OK. 1496 01:09:22,675 --> 01:09:29,069 Þannig að við höfum hnút okkar, grasker. 1497 01:09:29,069 --> 01:09:31,560 Og nú hvernig ég setja það? 1498 01:09:31,560 --> 01:09:34,590 1499 01:09:34,590 --> 01:09:37,090 >> Áhorfendur: Þú framselja það til bendillinn. 1500 01:09:37,090 --> 01:09:37,970 >> JASON Hirschhorn: Hvaða músina? 1501 01:09:37,970 --> 01:09:39,620 >> Áhorfendur: Bendillinn á núlli. 1502 01:09:39,620 --> 01:09:41,420 >> JASON Hirschhorn: Svo þar er þetta lið? 1503 01:09:41,420 --> 01:09:42,810 >> Áhorfendur: Til null núna. 1504 01:09:42,810 --> 01:09:43,529 >> JASON Hirschhorn: Jæja, það er að benda á að null. 1505 01:09:43,529 --> 01:09:44,499 En ég er að setja í grasker. 1506 01:09:44,499 --> 01:09:46,053 Svo hvar ætti það að benda? 1507 01:09:46,053 --> 01:09:46,880 >> Áhorfendur: Til grasker. 1508 01:09:46,880 --> 01:09:47,399 >> JASON Hirschhorn: Til grasker. 1509 01:09:47,399 --> 01:09:48,760 Nákvæmlega. 1510 01:09:48,760 --> 01:09:50,010 Svo bendir þetta til grasker. 1511 01:09:50,010 --> 01:09:52,500 1512 01:09:52,500 --> 01:09:54,250 Og hvar er þetta bendi í grasker lið? 1513 01:09:54,250 --> 01:09:57,986 1514 01:09:57,986 --> 01:09:58,340 Að 1515 01:09:58,340 --> 01:09:58,590 >> Áhorfendur: Null. 1516 01:09:58,590 --> 01:09:59,210 >> JASON Hirschhorn: Til null. 1517 01:09:59,210 --> 01:10:00,460 Nákvæmlega. 1518 01:10:00,460 --> 01:10:03,570 1519 01:10:03,570 --> 01:10:05,140 Svo við sett bara eitthvað í tengda listanum. 1520 01:10:05,140 --> 01:10:07,210 Við skrifuðum bara þennan kóða til að gera þetta. 1521 01:10:07,210 --> 01:10:09,520 Næstum við fengum hana nánast alveg klikkaður. 1522 01:10:09,520 --> 01:10:10,790 Nú erum við að setja nammi. 1523 01:10:10,790 --> 01:10:13,480 Nammi okkar fer einnig í núll. 1524 01:10:13,480 --> 01:10:16,100 Svo hvað við gerum með nammi? 1525 01:10:16,100 --> 01:10:18,790 >> Áhorfendur: Það fer eftir því hvort eða ekki að við erum að reyna að flokka það. 1526 01:10:18,790 --> 01:10:19,640 >> JASON Hirschhorn: Það er nákvæmlega rétt. 1527 01:10:19,640 --> 01:10:21,070 Það fer eftir því hvort eða ekki við erum að reyna að flokka það. 1528 01:10:21,070 --> 01:10:22,660 Skulum gera ráð við erum ekki fara að flokka það. 1529 01:10:22,660 --> 01:10:24,880 >> Áhorfendur: Jæja þá, eins og við ræddum áður, það er einfaldast að setja það 1530 01:10:24,880 --> 01:10:28,590 rétt í byrjun svo bendillinn frá núll stig í sælgæti. 1531 01:10:28,590 --> 01:10:29,020 >> JASON Hirschhorn: OK. 1532 01:10:29,020 --> 01:10:29,380 Bíddu. 1533 01:10:29,380 --> 01:10:30,630 Leyfðu mér að búa nammi hérna. 1534 01:10:30,630 --> 01:10:34,030 1535 01:10:34,030 --> 01:10:35,150 Þannig að þetta bendiprik - 1536 01:10:35,150 --> 01:10:37,590 >> Áhorfendur: Já, ætti nú vera að benda sælgæti. 1537 01:10:37,590 --> 01:10:40,580 Þá hafa músina frá nammi benda til grasker. 1538 01:10:40,580 --> 01:10:43,140 1539 01:10:43,140 --> 01:10:44,560 >> JASON Hirschhorn: Svona? 1540 01:10:44,560 --> 01:10:47,380 Og segja að við fengum annan hlutur til landakort á núll? 1541 01:10:47,380 --> 01:10:48,660 >> Áhorfendur: Jæja, þú bara gera það sama? 1542 01:10:48,660 --> 01:10:50,290 >> JASON Hirschhorn: Ekki það sama. 1543 01:10:50,290 --> 01:10:53,700 Svo í þessu tilfelli, ef við gerum ekki vilja til að halda það flokkað það 1544 01:10:53,700 --> 01:10:55,270 hljómar frekar einfalt. 1545 01:10:55,270 --> 01:10:59,920 Við tökum bendilinn í Índice gefið með kjötkássa virka okkar. 1546 01:10:59,920 --> 01:11:03,830 Við höfum sem benda á nýjan hnút okkar. 1547 01:11:03,830 --> 01:11:07,830 Og þá hvað sem það var að benda að áður - 1548 01:11:07,830 --> 01:11:10,620 í þessu tilfelli null, Í Annað mál grasker - 1549 01:11:10,620 --> 01:11:15,310 að, hvað það er að benda á að áður, bæta við inn í the næstur af 1550 01:11:15,310 --> 01:11:17,810 nýr hnútur okkar. 1551 01:11:17,810 --> 01:11:19,650 Við erum að setja eitthvað í upphafi. 1552 01:11:19,650 --> 01:11:22,900 Í raun er þetta mikið einfaldara en reyna að halda lista raðað. 1553 01:11:22,900 --> 01:11:25,340 En aftur, að leita verður flóknari hér. 1554 01:11:25,340 --> 01:11:28,300 Við munum alltaf þurfa að fara til enda. 1555 01:11:28,300 --> 01:11:29,650 >> OK. 1556 01:11:29,650 --> 01:11:32,750 Einhverjar spurningar um aðskilda chaining? 1557 01:11:32,750 --> 01:11:34,690 Hvernig það virkar? 1558 01:11:34,690 --> 01:11:35,820 Vinsamlegast biðja þá núna. 1559 01:11:35,820 --> 01:11:39,260 Ég vil virkilega að ganga úr skugga um að þú allur skilja þetta áður en við förum. 1560 01:11:39,260 --> 01:11:48,410 1561 01:11:48,410 --> 01:11:52,060 >> Áhorfendur: Hví freistið þér grasker og nammi í sama 1562 01:11:52,060 --> 01:11:54,108 hluti af kjötkássa töflunni? 1563 01:11:54,108 --> 01:11:55,860 >> JASON Hirschhorn: Góð spurning. 1564 01:11:55,860 --> 01:11:59,140 Hvers vegna eigum við að setja þá í sama hluti af kjötkássa töflunni? 1565 01:11:59,140 --> 01:12:03,200 Jæja, í þessu tilfelli kjötkássa virka okkar skilar núll fyrir þau bæði. 1566 01:12:03,200 --> 01:12:05,310 Svo þeir þurfa að fara á Índice núll vegna þess að þar sem við erum að fara að 1567 01:12:05,310 --> 01:12:07,420 leita að þeim ef við alltaf langar að líta þær upp. 1568 01:12:07,420 --> 01:12:11,750 Again, með línulegum leit nálgun við myndum ekki setja þá báða á núlli. 1569 01:12:11,750 --> 01:12:13,900 En í sérstakri keðju nálgun, við erum að fara að setja þá bæði á núlli 1570 01:12:13,900 --> 01:12:16,620 og síðan að búa til lista af núll. 1571 01:12:16,620 --> 01:12:20,140 >> Og við viljum ekki að skrifa grasker einfaldlega fyrir að því þá munum við 1572 01:12:20,140 --> 01:12:21,860 gera ráð fyrir að grasker var aldrei sett inn. 1573 01:12:21,860 --> 01:12:25,230 Ef við höldum bara eitt í staðsetningu sem væri slæmt. 1574 01:12:25,230 --> 01:12:28,590 Þá væri ekki tækifæri af okkur alltaf - 1575 01:12:28,590 --> 01:12:31,660 ef við hefðum alltaf afrit, þá erum við myndi bara eyða fyrstu gildi okkar. 1576 01:12:31,660 --> 01:12:34,090 Svo að hvers vegna við gerum þessa nálgun. 1577 01:12:34,090 --> 01:12:36,580 Eða það er hvers vegna við völdum - en aftur, við valdi sérstakt chaining nálgun, 1578 01:12:36,580 --> 01:12:39,670 sem það eru mörg önnur aðferðir einn gæti valið. 1579 01:12:39,670 --> 01:12:41,185 Er að svara spurningunni þinni? 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 Línuleg leit myndi fela - 1584 01:12:47,720 --> 01:12:51,913 ef við fundum árekstur á núlli, við myndi líta í næsta stað til að sjá hvort 1585 01:12:51,913 --> 01:12:54,310 það var opið og setja það þar. 1586 01:12:54,310 --> 01:12:57,320 Og þá erum við að líta á næstu íþrótt og sjá ef það var opið og setja það þar. 1587 01:12:57,320 --> 01:12:59,780 Þannig að við að finna næsta boði opinn blettur og setja það þar. 1588 01:12:59,780 --> 01:13:02,580 1589 01:13:02,580 --> 01:13:03,890 Aðrar spurningar? 1590 01:13:03,890 --> 01:13:05,370 Já, AVI. 1591 01:13:05,370 --> 01:13:07,490 >> Áhorfendur: Til að fylgja að því, hvað áttu við með næstu blettur? 1592 01:13:07,490 --> 01:13:10,250 Þegar um er að kjötkássa töflunni eða í tengda listanum. 1593 01:13:10,250 --> 01:13:12,100 >> JASON Hirschhorn: Fyrir línuleg forritun, engin tengd listum. 1594 01:13:12,100 --> 01:13:13,400 Næsta blettur á kjötkássa töflunni. 1595 01:13:13,400 --> 01:13:13,820 >> Áhorfendur: OK. 1596 01:13:13,820 --> 01:13:17,570 Svo kjötkássa borð væri frumstilla að stærð - 1597 01:13:17,570 --> 01:13:19,560 eins og fjöldi strengi sem þú varst að setja inn? 1598 01:13:19,560 --> 01:13:22,170 >> JASON Hirschhorn: Þú myndir vilja það til að vera mjög stór. 1599 01:13:22,170 --> 01:13:23,910 Já. 1600 01:13:23,910 --> 01:13:27,900 Hér er mynd af því sem við bara brá á borðinu. 1601 01:13:27,900 --> 01:13:29,470 Aftur höfum við árekstur hérna. 1602 01:13:29,470 --> 01:13:30,710 á 152. 1603 01:13:30,710 --> 01:13:33,570 Og þú munt sjá að við bjuggum A tengda listanum burt af því. 1604 01:13:33,570 --> 01:13:38,200 1605 01:13:38,200 --> 01:13:41,850 Again, tætið borð aðskilið chaining nálgun er ekki það sem þú 1606 01:13:41,850 --> 01:13:45,590 að taka fyrir vandamál setja sex en er eitt sem mikið af 1607 01:13:45,590 --> 01:13:47,100 nemendur hafa tilhneigingu til að taka. 1608 01:13:47,100 --> 01:13:51,140 Svo á að huga, láttu okkur að tala stuttlega Áður en við höldum út um vandamál sex, 1609 01:13:51,140 --> 01:13:52,160 og svo skal ég segja sögu með þér. 1610 01:13:52,160 --> 01:13:55,120 Við höfum þrjár mínútur. 1611 01:13:55,120 --> 01:13:55,750 >> Heimadæmi sex. 1612 01:13:55,750 --> 01:13:57,790 Þú hefur fjóra valkosti - 1613 01:13:57,790 --> 01:14:02,430 hlaða, athuga, stærð, og afferma. 1614 01:14:02,430 --> 01:14:03,380 Load - 1615 01:14:03,380 --> 01:14:07,120 Jæja, höfum við verið að fara yfir álagi bara núna. 1616 01:14:07,120 --> 01:14:09,330 Við brá álag á borðinu. 1617 01:14:09,330 --> 01:14:13,230 Og við byrjuðum jafnvel kóðun mikið af setja í tengda listanum. 1618 01:14:13,230 --> 01:14:18,020 Svo er ekki mikið meira en hlaða það sem við höfum bara verið að gera. 1619 01:14:18,020 --> 01:14:21,070 >> Stöðva er þegar þú ert búinn eitthvað hlaðinn. 1620 01:14:21,070 --> 01:14:22,580 Það er sama ferli og þetta. 1621 01:14:22,580 --> 01:14:26,845 Sömu Fyrstu tveir hlutar þar sem þú kasta eitthvað inn í kjötkássa virka 1622 01:14:26,845 --> 01:14:29,190 og fá gildi þess. 1623 01:14:29,190 --> 01:14:30,700 En nú erum við ekki að setja það. 1624 01:14:30,700 --> 01:14:33,350 Nú erum við að leita að því. 1625 01:14:33,350 --> 01:14:37,130 Ég hef dæmi um kóða skrifað til að finna eitthvað í tengda listanum. 1626 01:14:37,130 --> 01:14:38,250 Ég hvet þig til að æfa það. 1627 01:14:38,250 --> 01:14:43,000 En innsær finna eitthvað er nokkuð svipað því að setja eitthvað. 1628 01:14:43,000 --> 01:14:46,540 Reyndar dró við mynd af finna eitthvað í tengda listanum, færa 1629 01:14:46,540 --> 01:14:48,910 gegnum þar til þú got til enda. 1630 01:14:48,910 --> 01:14:52,430 Og ef þú got til enda og gat ekki finna það, þá er það ekki þar. 1631 01:14:52,430 --> 01:14:55,400 Svo er það stöðva, í raun. 1632 01:14:55,400 --> 01:14:57,030 >> Næst er stærð. 1633 01:14:57,030 --> 01:14:57,910 Skulum sleppa stærð. 1634 01:14:57,910 --> 01:15:00,040 Að lokum þarftu að afferma. 1635 01:15:00,040 --> 01:15:02,890 Afferma er eitt sem við höfum ekki dregið á borð eða dulmáli ennþá. 1636 01:15:02,890 --> 01:15:05,990 En ég hvet þig til að reyna erfðaskrá það í úrtaki okkar tengda listanum td. 1637 01:15:05,990 --> 01:15:11,440 En afferma innsær er svipað frjáls - 1638 01:15:11,440 --> 01:15:14,010 eða ég meina er svipuð að athuga. 1639 01:15:14,010 --> 01:15:17,350 Nema nú hvert skipti sem þú ert að fara gegnum, þú ert ekki bara að haka við 1640 01:15:17,350 --> 01:15:19,090 sjá hvort þú hefur gildi þar. 1641 01:15:19,090 --> 01:15:22,490 En þú ert að taka þessi hnút og frjáls það, í raun. 1642 01:15:22,490 --> 01:15:23,610 Það er það sem afferma biður þig að gera. 1643 01:15:23,610 --> 01:15:24,670 Frjáls allt sem þú hefur malloced. 1644 01:15:24,670 --> 01:15:27,480 Svo þú ert að fara í gegnum allan listann aftur, að fara í gegnum allt kjötkássa 1645 01:15:27,480 --> 01:15:27,760 Tafla aftur. 1646 01:15:27,760 --> 01:15:29,240 Í þetta sinn hakar ekki til að sjá hvað er þarna. 1647 01:15:29,240 --> 01:15:31,080 Bara losa hvað er þar. 1648 01:15:31,080 --> 01:15:33,260 >> Og að lokum stærð. 1649 01:15:33,260 --> 01:15:34,350 Stærð ætti að vera framkvæmd. 1650 01:15:34,350 --> 01:15:35,590 Ef þú framkvæma ekki stærð - 1651 01:15:35,590 --> 01:15:36,250 Ég segi það eins og þetta. 1652 01:15:36,250 --> 01:15:39,740 Ef þú framkvæma ekki stærð í nákvæmlega ein lína af kóða þar á meðal 1653 01:15:39,740 --> 01:15:43,760 skila yfirlýsingu, ert þú gera stærð rangt. 1654 01:15:43,760 --> 01:15:47,170 Svo tryggja stærð, fyrir fullt hönnun stig, ert þú að gera það á nákvæmlega einn 1655 01:15:47,170 --> 01:15:49,970 lína af kóða, þar á meðal aftur yfirlýsingu. 1656 01:15:49,970 --> 01:15:52,450 >> Og pakki ekki upp enn, Akchar. 1657 01:15:52,450 --> 01:15:53,700 Uppveðraður nemandinn. 1658 01:15:53,700 --> 01:15:55,820 1659 01:15:55,820 --> 01:16:01,300 Mig langaði til að segja þakka ykkur fyrir að koma til kafla. 1660 01:16:01,300 --> 01:16:02,550 Hafa Happy Halloween. 1661 01:16:02,550 --> 01:16:05,300 1662 01:16:05,300 --> 01:16:05,960 Þetta er búningur minn. 1663 01:16:05,960 --> 01:16:08,850 Ég ætla að klæðast þetta á fimmtudaginn ef ég sé þig á skrifstofutíma. 1664 01:16:08,850 --> 01:16:14,640 Og ef þú ert forvitinn um meira bakgrunnur og að þessu búning, finnst 1665 01:16:14,640 --> 01:16:19,135 frjáls til skrá sig út 2011 kafla að sögum um af hverju ég er 1666 01:16:19,135 --> 01:16:20,900 þreytandi grasker búning. 1667 01:16:20,900 --> 01:16:23,680 Og það er sorgleg saga. 1668 01:16:23,680 --> 01:16:27,050 Svo tryggja þú hafa sumir vefi nágrenninu. 1669 01:16:27,050 --> 01:16:28,680 En um það, ef þú hefur einhverjar spurningar sem ég ætla að vera kyrr 1670 01:16:28,680 --> 01:16:29,960 úti eftir kafla. 1671 01:16:29,960 --> 01:16:31,510 Gangi þér vel á Heimadæmi sex. 1672 01:16:31,510 --> 01:16:33,540 Og eins og alltaf, ef þú hefur einhverjar spurningar, láttu mig vita. 1673 01:16:33,540 --> 01:16:35,584