JASON HIRSCHHORN: Byenveni tout moun nan Seksyon la Sèt panyen. Nou se nan semèn sèt nan kou an. Lè sa a kap vini Jedi se Halloween Se konsa, mwen menm abiye tankou yon joumou. Mwen pa t 'kapab pliye sou epi mete yo sou soulye mwen an, se konsa Se poutèt sa mwen se jis mete chosèt. Mwen tou pa mete anyen anba sa a, se konsa mwen pa ka pran li koupe si li nan distrè ou. Mwen regrete davans pou sa. Ou pa bezwen imajine sa a pral sou. Mwen mete bokseur. Se konsa, li la tout bon. Mwen gen yon istwa pi long sou rezon ki fè mwen se abiye tankou yon joumou, men mwen pral delivre sa pou pita nan seksyon sa a paske mwen vle jwenn te kòmanse. Nou gen yon bann bagay sa yo enteresan ale sou semèn sa a. Pifò nan yo gen rapò dirèkteman nan sa a seri pwoblèm semèn nan, Misspellings. Nou pwal yo dwe ale sou lye lis ak tablo yo hash pou tout seksyon an. Mwen mete lis sa a moute chak semèn, yon lis resous pou ou pou w ede w ak materyèl la sou kou sa a. Si nan yon pèt oswa si kap chèche kèk plis enfòmasyon, tcheke deyò youn nan resous sa yo. Yon fwa ankò, pset6 se fot dòtograf, pset semèn sa a la. Apre sa, li tou ankouraje w, epi mwen ankouraje w, yo sèvi ak kèk lòt resous espesyalman pou pset sa a. An patikilye, twa nan mwen te yo ki nan lis moute sou ekran an - gdb, ki nou ve yo te abitye ak ak te lè l sèvi avèk pou yon ti tan kounye a, se pral fè trè itil semèn sa a. Se konsa, mwen mete sa moute isit la. Men, chak fwa w ap travay ak C, ou ta dwe toujou lè l sèvi avèk gdb debug pwogram ou an. Semèn sa a tou valgrind. okenn moun konnen ki sa valgrind fè? ODYANS: Li chèk pou fwit memwa? JASON HIRSCHHORN: Valgrind chèk pou fwit memwa. Se konsa, si ou malok yon bagay nan ou pwogram nan, w ap mande pou memwa. Nan fen pwogram ou an, ou gen yo ekri gratis sou tout bagay ou te malloced bay memwa la tounen. Si ou pa ekri gratis nan fen an ak pwogram ou a rive nan yon konklizyon, tout bagay pral otomatikman dwe libere. Ak pou pwogram piti, li nan pa sa ki gwo yon kontra. Men, si w ap ekri yon kouri pi long pwogram ki pa kite fimen, nesesèman, nan yon koup la minit oswa yon koup la segonn, Lè sa a, memwa fwit ka vin yon kontra gwo. Se konsa, pou pset6, tann lan se ke w ap gen zewo fwit memwa ak pwogram ou an. Pou tcheke pou fwit memwa, kouri valgrind epi li pral ba ou kèk bèl pwodiksyon kite ou konnen si oswa ou pa tout bagay te gratis. Nou pral pratike ak li pita jodi a, èspere ke. Finalman, yo lòd, ki diff. Ou te itilize yon bagay ki sanble ak li nan pset5 ak zouti nan gade vit. Nou pèmèt yo ta fè yon gade anndan an. Ou te itilize diff, tou, pou chak pwoblèm nan mete espèk. Men, nan pèmèt ou konpare de dosye. Ou te kapab konpare dosye a bitmap ak Tèt info nan yon solisyon manm pèsonèl la ak solisyon ou a nan pset5 si ou te chwazi yo sèvi ak li. Diff pral pèmèt ou fè sa, tou. Ou ka konpare repons ki bon pou pwoblèm yo semenn sa a mete nan repons ou an ak wè si li liy monte oswa wè kote erè yo ki yo ye. Se konsa, sa yo se twa zouti bon pou ou ta dwe itilize pou semèn sa a, epi definitivman tcheke pwogram ou an ki gen twa zouti sa yo anvan ou vire li pous Yon fwa ankò, jan mwen te mansyone chak semèn, si ou gen nenpòt fidbak pou m '- tou de pozitif ak konstriktif - santi yo lib nan tèt sou sit entènèt la nan fon an nan glise sa a ak opinyon li la. Mwen vrèman apresye nenpòt ki ak tout fidbak. Men, si ou ban m 'bagay sa yo espesifik ki Mwen kapab fè amelyore oswa ki mwen se ap fè byen ke ou ta renmen m ' kontinye, mwen pran ki nan kè ak reyèlman eseye difisil yo koute sou fidbak ou. Mwen pa ka pwomèt mwen pral fè tout bagay, menm si, tankou mete yon joumou kostim chak semèn. Se konsa, nou pral depanse èstime nan seksyon, jan mwen mansyone, pale sou bay lis lye ak tablo yo hash, ki yo pral dirèkteman aplikab a nan pwoblèm mete semèn sa a. Bay lis Te lye nou pral ale sou relativman byen vit paske nou te pase yon ti jan ki jis nan tan ale sou li nan seksyon. Se konsa, nou pral jwenn tou dwat nan la kodaj pwoblèm pou bay lis lye. Lè sa a, nan fen a nou pral pale sou Hash tab ak ki jan yo aplike nan sa a pwoblèm semèn nan mete. Ou te wè kòd sa a anvan. Sa a se yon konstri, e li defini yon bagay nouvo yo te rele yon ne. Ak andedan yon ne gen yon nonb antye ki pè dwa isit la epi gen yon konsèy yon lòt ne. Nou te wè sa a anvan. Sa ki te vini pou yon koup la semèn kounye a. Li konbine endikasyon, ki nou ve yo te k ap travay avèk, ak strukt, ki pèmèt nou nan konbine de diferan bagay sa yo nan yon sèl kalite done. Genyen yon anpil ale sou sou ekran an. Men, tout nan li ta dwe relativman abitye avèk ou. Sou liy ki an premye, nou deklare yon nouvo ne. Lè sa a, andedan ke nouvo ne, mwen mete nonb antye ki pè a nan ki ne nan yon sèl. Nou wè sou liy ki vin apre a m ap fè yon printf lòd, men mwen te grize soti yo lòd, ki printf paske vrèman la pati enpòtan se liy sa a isit la - new_node.n. Ki sa ki dot la vle di? ODYANS: Go to ne a ak evalye valè a n pou li. JASON HIRSCHHORN: Sa se egzakteman dwat. Dot vle di aksè a pati a n nan nouvo ne sa a. Liy pwochen sa-a fè ki sa? Mikayèl la. ODYANS: Li kreye yon lòt ne ki pral lonje dwèt sou ne a nouvo. JASON HIRSCHHORN: Se konsa, li fè sa ki pa kreye yon nouvo ne. Li kreye yon ki sa? ODYANS: A konsèy. JASON HIRSCHHORN: A konsèy nan yon ne, jan sa endike nan ne sa a * isit la. Se konsa, li kreye yon konsèy nan yon ne. Apre sa, ki ne se li montre a, Michael? ODYANS: New ne? JASON HIRSCHHORN: New ne. Apre sa, li nan lonje dwèt la, paske nou te bay li adrès la nan nouvo ne. Epi, koulye a nan liy sa a nou wè de fason diferan nan eksprime menm bagay la. Apre sa, mwen te vle pwen soti ki jan sa yo de bagay sa yo se menm bagay la. Nan liy la an premye, nou dèreferans konsèy la. Se konsa, nou ale nan ne an. Sa a ki sa zetwal sa a vle di. Nou te wè ke anvan ak endikasyon. Ale nan ki ne. Sa a ekri ant parantèz. Lè sa a, jwenn aksè nan via operatè a dot eleman ki n nan ki ne. Se konsa, ki nan pran sentaks la nou te wè dwa isit la e kounye a, lè l sèvi avèk li ak yon konsèy. Natirèlman, li vin kalite okipe si w ap ekri sa yo parantèz - ki zetwal yo ak ki dot. Li vin yon ti kras okipe yo. Se konsa, nou gen kèk sik sentaktik. Apre sa, liy sa a dwa isit la - ptr_node-> n. Ki fè menm bagay la egzak. Se konsa, moun de liy nan kòd yo ekivalan epi yo pral fè egzak menm bagay la. Men, mwen te vle montre sa yo deyò anvan n 'al jwenn nenpòt ki plis se konsa ou konprann ki vrèman bagay sa a isit la se jis sentaksik sik pou dereferencing konsèy la ak Lè sa a, ale nan pati nan n nan ki konstri. Nenpòt kesyon sou glise sa a? OK. Se konsa, nou ap ale nan ale nan yon koup nan operasyon ke ou ka fè sou lye lis. Yon lis lye, sonje, se yon seri de nœuds ke pwen youn ak lòt. Lèfini, nou jeneralman kòmanse avèk yon konsèy rele tèt yo, jeneralman, ki lonje dwèt nan premye bagay la nan lis la. Se konsa, sou liy lan premye isit la, nou gen L orijinal nou an premye. Se konsa, ki bagay ou ka panse a - sa a tèks dwa isit la ou ka panse a kòm jis konsèy la nou te sere yon kote ki pwen eleman a an premye. Apre sa, nan lis sa a lye nou gen kat nœuds. Chak ne se yon gwo bwat. Bwat la pi gwo andedan gwo a bwat la se yon pati nan nonb antye ki pè. Lè sa a, nou gen yon pati konsèy. Bwat sa yo yo pa desine sou yon echèl paske ki jan gwo se yon nonb antye relatif nan bytes? Kòman gwo kounye a? Kat. Apre sa, ki jan gwo nan yon konsèy? Kat. Se konsa, reyèlman, si nou te trase sa a selon echèl la tou de bwat ta dwe menm gwosè. Nan ka sa a, nou vle insert yon bagay nan lis la lye. Se konsa, ou ka wè desann isit la nou ap yo mete senk Nou travèse a nan lis lye, jwenn kote senk ale, ak Lè sa a, insert li. Se pou yo kraze ki desann epi ale yon ti jan pi dousman. Mwen pral lonje dwèt sou tablo a. Se konsa, nou gen ne nou an senk ki nou te kreye nan mallocs. Poukisa se tout moun ri? Jis plèzantri. OK. Se konsa, nou te malloced senk. Nou te kreye ne sa a yon lòt kote. Nou gen li pare ale. Nou kòmanse an de sou devan lis nou an ak de. Apre sa, nou vle insert nan yon tan tri. Se konsa, si nou wè de ak nou vle mete nan senk, sa nou fè lè nou wè yon bagay pi piti pase nou? Ki sa? Nou vle insert senk nan sa a lis lye, kenbe li klase. Nou wè nimewo de. Se konsa, sa nou fè? Marcus? ODYANS: Rele konsèy la ne nan pwochen an. JASON HIRSCHHORN: Epi poukisa fè nou ale nan youn nan pwochen? ODYANS: Paske li a nan ne pwochen nan lis la. E nou ka konnen sèlman ke lòt kote. JASON HIRSCHHORN: Apre sa, senk ki pi konsekan pase de, an patikilye. Paske nou vle kenbe l 'tri. Se konsa, senk gen plis pouvwa pase de. Se konsa, nou deplase sou youn nan pwochen. Epi, koulye a nou rive nan kat. Apre sa, sa ki pase lè nou rive nan kat? Senk gen plis pouvwa pase kat. Se konsa, nou kenbe prale. Epi, koulye a nou ap nan sis. Apre sa, sa nou wè nan sis? Wi, Carlos? ODYANS: Sis gen plis pouvwa pase senk. JASON HIRSCHHORN: Sis se pi gran pase senk. Se konsa, sa a, se kote nou vle insert senk. Sepandan, kenbe nan tèt ou ke si nou sèlman gen yon sèl konsèy isit la - sa a se konsèy siplemantè nou ki nan Travelers nan lis la. Apre sa, n ap lonje dwèt nan sis. Nou te pèdi tras nan sa ki vini anvan sis. Se konsa, si nou vle insert yon bagay nan lis sa a kenbe li klase, nou pwobableman ou bezwen konbyen endikasyon? ODYANS: De. JASON HIRSCHORN: De. Youn nan kenbe tras nan aktyèl la yon sèl ak youn nan kenbe tras nan yon sèl anvan an. Sa a se sèlman yon lis separeman lye. Li sèlman ale yon sèl direksyon. Si nou te gen yon lis doubl lye, kote tout bagay te montre bagay la apre li fin ak bagay la anvan li, lè sa a nou pa ta bezwen fè sa. Men, nan ka sa a nou pa vle pèdi tras nan sa ki te vin anvan nou nan ka nou bezwen insert senk yon kote nan mitan yo. Di nou tout nou te yo mete nèf. Ki sa ki ta rive lè nou te rive nan uit? ODYANS: Ou ta gen jwenn pwen sa nil. Olye pou yo gen nil pwen ou ta gen yo ajoute yon eleman ak Lè sa a, gen li lonje dwèt sou nèf. JASON HIRSCHORN: Egzakteman. Se konsa, nou jwenn uit. Nou rive nan fen an nan lis la paske sa a se montre nil. Koulye a, olye pou yo gen li lonje dwèt sou nil nou genyen li lonje dwèt sou nouvo ne nou an. Lèfini, nou mete konsèy la nan nouvo ne nou yo nil. okenn moun gen nenpòt kesyon sou yo mete? E si mwen pa pran swen sou kenbe lis la Ranje? ODYANS: Baton li nan la kòmanse oswa nan fen an. JASON HIRSCHORN: Baton li nan nan konmansman an oswa nan fen an. Ki yon sèl nou dwe fè? Bobby? Poukisa fen a? ODYANS: Paske nan konmansman an se deja plen. JASON HIRSCHORN: OK. Se nan konmansman an deja plen. Ki moun ki vle diskite kont Bobby. Marcus. ODYANS: Byen ou pwobableman vle bwa li nan kòmansman an paske otreman si ou mete li nan fen a ou ta gen Traverse lis la tout antye. JASON HIRSCHORN: Egzakteman. Se konsa, si nou ap panse sou ègzekutabl, nan ègzekutabl nan yo mete nan fen ta dwe n, gwosè a nan sa a. Ki sa ki nan O ègzekutabl an gwo nan yo mete nan kòmansman an? Constant tan. Se konsa, si ou pa pran swen sou kenbe yon bagay Ranje, pi bon nan jis insert nan konmansman an nan lis sa a. Apre sa, ki ka fè nan tan konstan. OK. Se pwochen operasyon jwenn, ki lòt - nou te formule sa a kòm rechèch la. Men, nou ap ale nan gade nan nan lis lye pou kèk objè. Ou mesye te wè kòd pou rechèch anvan nan konferans. Men, nou sòt de jis te fè li ak insert, oswa omwen yo mete yon bagay Ranje. Ou gade nan, ale ne pa ne, jiskaske ou jwenn nimewo a ke w ap kap chèche. Kisa kap rive si ou rive nan fen a nan lis la? Di m 'ap chache nèf ak mwen rive nan fen an nan lis la. Kisa n'ap fè? ODYANS: Retounen fo? JASON HIRSCHORN: Retounen fo. Nou pa t 'jwenn li ankò. Si ou rive nan fen an nan lis la ak nou pa t 'jwenn kantite w ap chèche pou yo, li pa nan la. Nenpòt kesyon sou jwenn? Si sa a se te yon lis klase, sa ki ta kapab diferan pou chache nou an? Yeah. ODYANS: Li ta jwenn valè a an premye sa a, se pi plis pase youn nan w ap chèche ak Lè sa a, retounen fo. JASON HIRSCHORN: Egzakteman. Se konsa, si li nan yon lis klase, si nou jwenn nan yon bagay ki pi konsekan pase sa ki nou ap chèche pou yo, nou pa bezwen kenbe ale nan fen a nan lis la. Nou ka nan pwen sa retounen fo paske nou pa ap ale nan jwenn li ankò. Kesyon an se kounye a, nou te pale osijè de kenbe lis lye Ranje, kenbe yo triye. Sa a pral fè yon bagay w ap pwobableman pral fè yo panse osijè de lè kodaj pwoblèm mete senk si ou chwazi yon tab hash ak separe Anchènman apwòch, ki nou pral pale sou pita. Men, se li vo li kenbe lis la klase epi Lè sa a, pral kapab petèt gen pi vit rechèch? Oubyen èske se pi bon yo byen vit insert yon bagay nan ègzekutabl konstan men Lè sa a, gen pi long chache? Sa se yon arbitraj dwa gen ke ou jwenn yo deside ki sa ki pi apwopriye pou pwoblèm espesifik ou. Apre sa, gen nan pa nesesèman yon sèl absoliman dwat repons lan. Men, li la sètènman yon desizyon ou jwenn fè, ak pwobableman bon nan defann ke nan, di, yon kòmantè oswa de poukisa ou te chwazi yon sèl sou lòt la. Finalman, yo elimine. Nou te wè efase. Li nan menm jan ak chèche. Nou gade pou eleman an. Di nou ap eseye efase sis. Se konsa, nou jwenn sis dwa isit la. Bagay la ke nou gen a asire w nou fè se ke kèlkeswa sa ki montre sis - jan nou wè nan etap de desann isit la - tou sa a montre nan sis bezwen sote sis kounye a yo epi yo dwe chanje a tou sa sis ap montre yo. Nou pa vle tout tan tout tan on òfelen rès la nan lis nou an pa bliye yo mete ki konsèy anvan yo. Lè sa a, pafwa, tou depann sou pwogram lan, yo pral jis efase ne sa a nèt. Pafwa ou pral vle tounen valè a ki nan nan ne sa a. Se konsa, sa a, se ki jan efase travay. Nenpòt kesyon sou efase? ODYANS: Se konsa, si w ap ale nan efase li, ou ta jis itilize gratis paske prezimableman li te malloced? JASON HIRSCHORN: Si ou vle libere yon bagay sa a, se egzakteman dwa, epi ou malloced li. Di nou te vle retounen valè sa a. Nou ka retounen sis ak Lè sa a, gratis ne sa a epi rele gratis sou li. Oswa nou ta pwobableman rele gratis premye ak Lè sa a, retounen sis. OK. Se konsa, kite a deplase sou pratik kodaj. Nou pral kòd twa fonksyon. Se youn nan premye rele insert_node. Se konsa, ou gen kòd ki mwen par ou, epi si w ap gade sa a pita sou ou ka jwenn kòd la nan linked.c sou sit entènèt la CS50. Men, nan linked.c, gen nan kèk kilè eskèlèt Kòd sa a, se deja te ekri pou ou. Lè sa a, gen yon fonksyon koup ou bezwen ekri. Premye nou ap ale nan ekri insert_node. Ak sa ki insert_node fè se foure yon nonb antye relatif. Apre sa, w ap bay nonb antye ki pè a nan yon lis lye. Apre sa, an patikilye, ou bezwen kenbe lis la klase soti nan pi piti rive pi gran. Epitou, ou pa vle insert nenpòt ki Doublon. Finalman, jan ou ka wè insert_node retounen yon bouleen. Se konsa, w ap sipoze kite itilizatè a konnen si ou pa insert a te siksè pa retounen vre oubyen fo. Nan fen pwogram sa a - ak pou etap sa a ou pa bezwen enkyete sou libere anyen. Se konsa, tout sa ou ap fè se pran yon nonb antye relatif ak mete li nan yon lis. Sa se sa m ap mande ou fè kounye a. Yon fwa ankò, nan linked.c a, ki ou tout gen, se kòd la kilè eskèlèt. Apre sa, ou ta dwe wè nan direksyon pou anba a echantiyon fonksyon deklarasyon an. Sepandan, anvan ou ale nan kod li nan C, Mwen trè ankouraje w ale nan etap sa yo nou te ap pratike chak semèn. Nou te deja ale nan yon foto nan sa a. Se konsa, ou ta dwe genyen kèk konpreyansyon nan ki jan sa a travay. Men, mwen ta ankouraje w ekri kèk pseudocode anvan plonje pous Apre sa, nou pral ale sou pseudocode kòm yon gwoup. Lè sa a, yon fwa ou te ekri ou pseudocode, ak yon fwa nou te ekri nou an pseudocode tankou yon gwoup, ou kapab ale nan kodaj l 'nan C. Kòm yon chèf leve, fonksyon an insert_node se pwobableman trickiest a nan twa nan nou ap ale nan ekri paske mwen te ajoute kèk kontrent anplis nan pwogram ou an, an patikilye ki ou pa ap ale nan insert nenpòt ki Doublon e ke lis la ta dwe rete klase. Se konsa, sa a se yon pwogram ki pa trivial ke ou bezwen kòd. Apre sa, poukisa ou pa pran senk a sèt minit jis jwenn travay sou la pseudocode ak kòd la. Lè sa a, nou pral kòmanse ale kòm yon gwoup. Yon fwa ankò, si ou gen nenpòt kesyon jis leve men ou epi mwen pral vini alantou. . Nou menm tou nou jeneralman fè sa yo - oswa mwen pa klèman di ou ka travay avèk moun. Men, evidamman, Mwen trè ankouraje w, si w gen kesyon, mande a frè parèy chita bò kote ou oswa menm travay avèk yon moun lòt moun si ou vle. Sa a pa dwe fè yon moun an silans aktivite. Ann kòmanse ak ekri kèk pseudocode sou tablo a. Ki moun ki ka ban m 'liy lan premye nan pseudocode pou pwogram sa a? Pou fonksyon sa a, olye - insert_node. Alden? ODYANS: Se konsa, premye bagay la mwen te fè te kreye yon nouvo konsèy ne la ak mwen initialisé li montre menm bagay la tou bagay ki lis ki montre. JASON HIRSCHORN: OK. Se konsa, w ap kreye yon nouvo konsèy nan lis la, nou pa ne la. ODYANS: Dwa. Yeah. JASON HIRSCHORN: OK. Lè sa a, sa nou vle fè? Ki sa ki nan apre sa? Ki sa ki sou ne a? Nou pa gen yon ne. Nou jis gen yon valè. Si nou vle mete yon ne, sa nou fè bezwen fè premye anvan nou kapab menm panse osijè de mete li? ODYANS: Oh, regrèt. nou bezwen malok espas pou yon ne. JASON HIRSCHORN: ekselan. Se pou yo fè - OK. Pa kapab jwenn ki segondè. OK. Nou pwal desann ale, ak Lè sa a, nou ap lè l sèvi avèk de kolòn. Mwen pa ka mache sa - OK. Kreye yon nouvo ne. Ou ka kreye yon lòt konsèy nan lis oswa ou ka jis itilize lis kòm li egziste. Ou pa reyèlman bezwen fè sa. Se konsa, nou kreye yon nouvo ne. Great. Sa a ki sa nou fè an premye. Ki sa ki nan pwochen? ODYANS: Rete tann. Eske nou ta dwe kreye yon nouvo ne a kounye a oswa èske nou dwe tann a asire w ke gen nan pa gen Doublon nan ne an sou lis la anvan nou kreye li? JASON HIRSCHORN: Bon kesyon. Se pou yo kenbe ki pou pita paske nan majorite nan tan an nou pral kreye yon nouvo ne. Se konsa, nou pwal kenbe ki isit la. Men, sa a yon kesyon bon. Si nou kreye li, epi nou jwenn yon kopi, ki sa ki ta dwe nou fè anvan yo tounen? ODYANS: GRATIS li. JASON HIRSCHORN: Yeah. Pwobableman gratis li. OK. Ki sa nou fè apre nou fin kreye yon nouvo ne? Annie? ODYANS: Nou mete nan nimewo nan ne an? JASON HIRSCHORN: Egzakteman. Nou mete nimewo a - nou malok espas. Mwen pral kite ki tout kòm yon liy. Men, w ap dwat. Nou malok espas, ak Lè sa a, nou mete nimewo a pous Nou ka menm mete konsèy la yon pati nan li a nil. Se egzakteman dwat. Lè sa a, sa ki sou apre sa? Nou te trase foto sa a sou tablo a. Se konsa, sa nou fè? ODYANS: Nou ale nan lis la. JASON HIRSCHORN: Ale nan lis la. OK. Apre sa, ki sa nou tcheke pou nan chak ne. Kurt, ki sa nou tcheke pou nan chak ne? ODYANS: Gade si wi ou non valè a n nan ki ne gen plis pouvwa pase valè a n nan ne nou an. JASON HIRSCHORN: OK. Mwen pral fè - yeah, OK. Se konsa, li n - Mwen pral di si valè ki pi konsekan pase ne sa a, Lè sa a, sa nou fè? ODYANS: Bon, lè sa a nou insert bagay ki dwat anvan sa. JASON HIRSCHORN: OK. Se konsa, si li nan pi gran pase sa a, Lè sa a, nou vle insert. Men, nou vle insert li dwat anvan paske nou menm tou nou ta bezwen yo dwe kenbe tras, lè sa a, nan sa ki te ye anvan an. Se konsa, insert anvan. Se konsa, nou pwobableman manke yon bagay pi bonè sou. Nou pwobableman bezwen kenbe tras nan sa a pral sou. Men, nou pral jwenn lan laba a. Se konsa, sa valè se mwens pase? Kurt, ki sa nou fè si valè se mwens pase? ODYANS: Lè sa a, ou jis kenbe ale sof si li nan yon sèl ki sot pase a. JASON HIRSCHORN: Mwen renmen sa. Se konsa, ale nan ne nan pwochen an. Sòf si li nan yon sèl ki sot pase a - nou ap pwobableman kont kouran pou sa nan kondisyon ki nan yon kondisyon. Men, yeah, pwochen ne. Epi sa a, ap resevwa twò ba, Se konsa, nou pral avanse pou pi sou isit la. Men, si - ka tout moun wè sa a? Si nou ap egal sa nou fè? Si valè a nou ap eseye insert ki egal a valè ne sa a? Yeah? ODYANS: [fèbl]. JASON HIRSCHORN: Yeah. Bay sa a - Marcus ki dwat. Nou te kapab petèt fè yon bagay diferan. Men, bay yo ke nou te kreye li, isit la nou ta dwe gratis ak Lè sa a, retounen. Oh ti gason. Eske se sa ke pi byen? Ki jan nan sa? OK. Gratis ak Lè sa a, sa nou fè retounen, [fèbl]? OK. Èske nou manke anyen? Se konsa, ki kote ke nou kenbe tras nan ne la anvan? ODYANS: Mwen panse ke li ta ale apre kreye yon nouvo ne. JASON HIRSCHORN: OK. Se konsa, nan kòmansman an nou ap pwobableman - yeah, nou ka kreye yon konsèy nan yon nouvo ne, tankou yon konsèy ne anvan ak yon ne aktyèl konsèy. Se konsa, kite a insert ki isit la. Kreye aktyèl yo ak anvan endikasyon nœuds yo. Men, lè nou ajiste sa yo endikasyon? Ki kote nou fè sa nan kòd la? Jeff? ODYANS: - kondisyon valè? JASON HIRSCHORN: Ki yon sèl an patikilye? ODYANS: Mwen jis gen konfizyon. Si valè ki pi gran pase ne sa a, pa sa ki vle di ke ou vle ale ne nan pwochen? JASON HIRSCHHORN: Se konsa, si valè nou an, se pi gran pase valè a nan ne sa a. ODYANS: Yeah, Lè sa a, ou ta vle ale pi lwen desann liy lan, dwa? JASON HIRSCHHORN: Dwa. Se konsa, nou pa insert l 'isit la. Si valè se mwens pase ne sa a, Lè sa a, nou ale nan ne nan pwochen - oswa lè sa a nou insert anvan. ODYANS: Rete tann, ki se sa a ne ak ki se valè? JASON HIRSCHHORN: Bon kesyon. Valè pou chak definisyon fonksyon sa a se sa nou ap bay yo. Se konsa, valè se nimewo a nou ap bay yo. Se konsa, si valè a se mwens pase sa a ne, nou bezwen tan yo insert. Si valè ki pi gran pase ne sa a, nou ale nan ne nan pwochen an. Apre sa, tounen nan kesyon orijinal la, menm si, kote - ODYANS: Si valè ki pi konsekan pase ne sa a. JASON HIRSCHHORN: Se konsa, sa nou fè la a? Dous. Sa se kòrèk. Mwen jis pral ekri aktyalizasyon endikasyon. Men, repons lan se wi, avèk yon aktyèl la ou ta mete li nan pwen nan yon sèl kap vini an. Nenpòt lòt bagay nou ap manke? Se konsa, mwen pral tape sa a kòd nan jdi. Epi pandan ke y m 'fè sa a, ou ka gen yon koup plis minit nan travay sou kod sa a nan C. Se konsa, mwen gen opinyon-pseudocode la. Yon nòt rapid anvan nou jwenn te kòmanse. Nou pa kapab konplètman fini sa a nan tout twa nan fonksyon sa yo. Gen solisyon kòrèk la yo ke mwen pral voye yon imèl ba soti vin jwenn nou mesye apre seksyon, epi li pral ap afiche sou CS50.net. Se konsa, mwen pa ankouraje w ale gade nan seksyon yo ki. Mwen ankouraje w eseye sa yo sou ou posede, ak Lè sa a, sèvi ak pratik la a pwoblèm yo tcheke repons ou yo. Sa yo te tout te fèt yo byen gen rapò ak ak konfòme yo ak sa ki sa ou dwe fè sou pwoblèm gwoup la. Se konsa, mwen ankouraje w pratike sa a sou pwòp ou a ak Lè sa a sèvi ak Kòd la tcheke repons ou yo. Paske mwen vle pou avanse pou sou Hash tab nan kèk pwen nan seksyon la. Se konsa, nou pa ta ka jwenn atravè li tout. Men, nou pral fè kòm anpil nou kapab kounye a. OK. Se pou nou kòmanse. Asam, ki jan nou kreye yon nouvo ne? ODYANS: Ou konstri *. JASON HIRSCHHORN: Se konsa, nou genyen ki moute isit la. Oh, regrèt. Ou t'ap di: konstri *. ODYANS: Lè sa a, [? kalite?] ne oswa c ne. JASON HIRSCHHORN: OK. Mwen pral rele li new_node pou nou ka rete konsistan. ODYANS: Apre sa, ou vle mete ke nan tèt, ne a an premye. JASON HIRSCHHORN: OK. Se konsa, kounye a sa a montre - se konsa sa a pa te kreye yon nouvo ne ankò. Sa a se jis montre nan premye ne nan lis la. Kouman pou mwen kreye yon nouvo ne? Si mwen bezwen espas yo kreye yon nouvo ne. Malok. Ak ki jan gwo? ODYANS: Gwosè a nan konstri la. JASON HIRSCHHORN: a gwosè nan konstri la. Ak sa ki nan konstri a rele? ODYANS: neu? JASON HIRSCHHORN: neu. Se konsa, malok (sizof (ne)); ba nou espas. Apre sa, se liy sa a - yon sèl bagay se kòrèk sou liy sa a. Èske new_node yon konsèy nan yon konstri? Sa se yon non jenerik. Ki sa li - ne, egzakteman. Li se yon ne *. Apre sa, ki sa nou fè sa ki dwat apre nou malok yon bagay, Asan? Ki sa ki nan premye bagay nou fè? E si li pa travay? ODYANS: Oh, tcheke si li lonje dwèt nan ne an? JASON HIRSCHHORN: Egzakteman. Se konsa, si ou new_node egal egal nil, ki sa nou fè? Sa a retounen yon bouleen, fonksyon sa a. Egzakteman. Sanble bon. Nenpòt bagay yo ajoute genyen? Nou pral ajoute bagay sa yo nan fen an. Men, ki byen lwen tèlman sanble bon. Kreye endikasyon kounye a ak anvan yo. Michael, ki jan mwen fè sa? ODYANS: Ou ta gen fè yon ne *. Ou ta gen fè yon moun pa pou new_node men pou la nœuds nou deja genyen. JASON HIRSCHHORN: OK. Se konsa, ne aktyèl la nou ap sou. M ap rele ke curr. Tout dwa. Nou te deside nou vle kenbe de paske nou bezwen konnen sa ki nan devan li. Ki sa yo jwenn initialisé a? ODYANS: valè yo nan lis nou an. JASON HIRSCHHORN: Se konsa, sa a se nan Premye bagay sou lis nou an? Oswa ki jan nou konnen ki kote an kòmanse nan lis nou an, se? ODYANS: Nou pa li te pase nan fonksyon an? JASON HIRSCHHORN: Dwa. Li te te pase nan dwa isit la. Se konsa, si li nan te pase nan fonksyon an, nan kòmanse nan lis la, ki sa nou ta dwe mete aktyèl egal a? ODYANS: Lis. JASON HIRSCHHORN: Lis. Se egzakteman dwat. Koulye a, li gen adrès ki nan kòmanse nan lis nou an. Ak sa ki sou anvan yo? ODYANS: Lis mwens youn? JASON HIRSCHHORN: Genyen pa gen anyen devan li. Se konsa, sa nou ka fè siyifi pa gen anyen? ODYANS: nil. JASON HIRSCHHORN: Yeah. Ke son tankou yon bon lide. Pafè. Mèsi poutèt ou. Ale nan lis la. Constantine, depi konbyen tan nou pral yo ale nan lis la? ODYANS: Jouk Nou rive nan nil. JASON HIRSCHHORN: OK. Se konsa, si, pandan y ap, pou bouk. Kisa n'ap fè? ODYANS: Petèt yon pou bouk? JASON HIRSCHHORN: Se pou yo fè yon pou bouk. OK. ODYANS: E nou di pou - jouk konsèy aktyèl la se pa egal a nil. JASON HIRSCHHORN: Se konsa, si nou konnen an kondisyon, ki jan nou ka ekri yon bouk ki baze sou ki kondisyon. Ki kalite yon bouk nou ta dwe itilize? ODYANS: Pandan ke. JASON HIRSCHHORN: Yeah. Sa fè plis sans ki baze koupe nan sa ou te di. Si nou jis vle ale nan nou li ta jis konnen ke bagay, li ta fè sans nan fè yon bouk ti tan. Pandan ke aktyèl fè sa ki pa egal nil, si valè se mwens pase ne sa a. Akshar, ban m 'liy sa a. ODYANS: Si kounye a-> n n mwens pase valè. Oswa ranvèse sa a. Chanje ki bracket. JASON HIRSCHHORN: M regrèt. ODYANS: Chanje bracket la. JASON HIRSCHHORN: Se konsa, si li nan pi gran pase valè. Paske sa a, se konfizyon ak nan kòmantè pi wo a, mwen pral fè sa. Men, repons lan se wi. Si valè nou an, se mwens pase sa a ne, ki sa nou fè? Oh. Mwen gen li dwa isit la. Antre anvan. OK. Ki jan nou fè sa? ODYANS li: Eske se toujou m 'konsa? JASON HIRSCHHORN: Yeah. ODYANS: Ou - new_node-> kap vini an. JASON HIRSCHHORN: Se konsa, sa ki nan ki ale nan egal a? ODYANS: Li pral egal kounye a. JASON HIRSCHHORN: Egzakteman. Se konsa, lòt la - ki lòt bagay nou bezwen mete? ODYANS: Tcheke si sot pase yo egal nil. JASON HIRSCHHORN: Si Prev - Se konsa, si Prev egal nil. ODYANS: Sa vle di li pral yo vin nan tèt la. JASON HIRSCHHORN: Sa vle di li nan tounen wòch la. Se konsa, Lè sa a, sa nou fè? ODYANS: Nou fè tèt egal new_node. JASON HIRSCHHORN: Head egal new_node. Epi poukisa tèt isit la, pa mete? ODYANS: Paske tèt se yon mondyal varyab, ki se plas la kòmanse. JASON HIRSCHHORN: dous. OK. Apre sa, - ODYANS: Lè sa a, ou lòt moun Prev-> pwochen egal new_node. Lè sa a, ou retounen vre. JASON HIRSCHHORN: Ki kote fè nou mete fen new_node? ODYANS: Mwen ta - Mwen mete ke nan kòmansman an. JASON HIRSCHHORN: Se konsa, sa liy? ODYANS: Apre la si deklarasyon tcheke si li li te ye. JASON HIRSCHHORN: Dwa isit la? ODYANS: Mwen ta fè new_node-> n egal valè. JASON HIRSCHHORN: Son bon. Pwobableman li fè sans - nou pa fè sa bezwen konnen ki sa lis nou ap sou paske nou ap sèlman fè fas ak yon sèl lis. Se konsa, yon deklarasyon fonksyon pi bon pou sa a se jis debarase m de sa a antyèman ak jis insert yon valè nan tèt yo. Nou pa menm bezwen konnen sa ki lis nou ap pous Men, m'ap kenbe l 'pou kounye a epi yo Lè sa a, chanje l 'sou à glisad yo ak kòd. Se konsa, ki sanble bon pou kounye a. Si valè - ki moun ki ka fè liy sa a? Si - sa nou fè isit la, Noe. ODYANS: Si valè ki pi konsekan pase curr-> n - JASON HIRSCHHORN: Ki jan fè nou ale nan ne nan pwochen? ODYANS: Curr-> n se egal a new_node. JASON HIRSCHHORN: Se konsa, n se sa ki pati nan konstri a? Nonb antye ki pè a. Apre sa, new_node se yon konsèy nan yon ne. Se konsa, sa yon pati nan curr èske nou dwe mete? Si ou pa n, Lè sa a, sa ki nan pati nan lòt? Noe, Noe te sa ki nan pati a ak lòt. ODYANS: Oh, kap vini an. JASON HIRSCHHORN: Apre sa, egzakteman. Egzakteman. Next se youn nan dwa. Apre sa, ki lòt bagay nou bezwen nan aktyalizasyon, Noe? ODYANS: endikasyon la. JASON HIRSCHHORN: Se konsa, nou mete ajou kounye a. ODYANS: Prev-> kap vini an. JASON HIRSCHHORN: Yeah. OK, nou pral pran yon poz. Ki moun ki ka ede nou soti isit la? Manu, sa ki ta dwe nou fè? ODYANS: Ou te gen yo mete li egal a curr-> kap vini an. Men, fè sa anvan liy lan anvan yo. JASON HIRSCHHORN: OK. Nenpòt lòt bagay? Akshar. ODYANS: Mwen pa panse w ap vle di ke yo chanje curr-> kap vini an. Mwen panse ke w ap vle di ke yo fè egal curr curr-> pwochen pou yo ale nan ne nan pwochen an. JASON HIRSCHHORN: Se konsa, regrèt sa, ki kote? Nan ki liy? Liy sa a? ODYANS: Yeah. Fè curr egal curr-> kap vini an. JASON HIRSCHHORN: Se konsa, sa a, se kòrèk paske kounye a se yon konsèy nan yon ne. Apre sa, nou vle l 'bay lonje dwèt sou pwochen an ne nan sa ki ap resevwa kounye a pwente nan. Curr tèt li a gen yon kap vini an. Men, si nou tout nou te nan aktyalizasyon curr.next, nou ta dwe à nòt aktyèl la tèt li, pa gen kote sa a konsèy te montre. Ki sa ki sou liy sa a, menm si. Avi? ODYANS: Prev-> pwochen egal curr. JASON HIRSCHHORN: Se konsa, ankò, si Prev se yon konsèy nan yon ne, Prev-> pwochen se la konsèy aktyèl nan ne an. Se konsa, sa a ta dwe à yon konsèy nan yon ne curr. Nou pa vle mete yon konsèy nan yon ne. Nou vle mete anvan yo. Se konsa, kouman nou fè sa? ODYANS: Li ta jis pou Prev. JASON HIRSCHHORN: Dwa. Prev se yon konsèy nan yon ne. Koulye a, nou ap chanje li nan yon nouvo konsèy nan yon ne. OK Se pou nou avanse pou pi desann. Finalman, kondisyon sa a pase. Jeff, sa nou fè la a? ODYANS: Si valè egal a curr-> n. JASON HIRSCHHORN: M regrèt. Oh mwen bonte. Ki sa? Valè == curr-> n. Kisa n'ap fè? ODYANS: Ou ta gratis new_node nou an, ak Lè sa a, ou ta retounen fo. JASON HIRSCHHORN: Sa a se sa ki nou te ekri twò lwen. okenn moun gen anyen yo ajoute anvan nou fè? OK. Ann eseye li. Kontwòl kapab rive nan fen an nan yon fonksyon ki pa anile. Avi, sa k ap pase sou? ODYANS: Èske ou ta sipoze mete retounen vre deyò nan bouk la pandan y ap? JASON HIRSCHHORN: Mwen pa konnen. ou vle m '? ODYANS: Pa janm tèt ou. No JASON HIRSCHHORN: Akshar? ODYANS: Mwen panse ke ou vle di ke yo mete retounen fo nan fen nan bouk la pandan y ap. JASON HIRSCHHORN: Se konsa, kote ou vle l 'yo ale? ODYANS: Menm jan ak deyò bouk la pandan y ap. Se konsa, si ou sòti bouk la pandan y ap ki vle di ke ou te rive nan fen an ak pa gen anyen te pase a. JASON HIRSCHHORN: OK. Se konsa, sa nou fè nan isit la? ODYANS: Ou tounen fo gen kòm byen. JASON HIRSCHHORN: Oh, nou fè l 'nan tou de kote? ODYANS: Yeah. JASON HIRSCHHORN: OK. Eske nou ta dwe ale? Oh mwen bonte. Mwen regrèt. Mwen regrete pou ekran an. Li nan kalite frikin soti sou nou. Se konsa, chwazi yon opsyon. Zewo, pou chak kòd la, kit pwogram nan. Yon foure yon bagay. Se pou yo insert twa. Sipleman ki an pa t 'siksè. Mwen pral enprime soti. Mwen pa gen anyen. OK. Petèt ki te jis yon trematòd. Antre youn. Pa siksè. OK. Se pou yo kouri nan gdb vrèman byen vit yo tcheke soti ki sa ki pwal sou. Sonje gdb. / Non an nan ou pwogram vin nou antre nan gdb. Eske se sa ke yon anpil okipe? Kap flache a? Pwobableman. Fèmen je ou epi pran kèk gwo twou san fon souf si ou jwenn fatige nan gade li. Mwen se nan gdb. Ki sa ki nan premye bagay la mwen fè nan gdb? Nou te gen figi konnen sa a pral sou isit la. Ann wè. Nou gen sis minit nan figi konnen ki sa ki k ap pase sou. Kraze prensipal la. Lè sa a, ki sa mwen fè? Carlos? Kouri. OK. Se pou yo chwazi yon opsyon. Ak sa ki N fè? Kap vini an. Yeah. ODYANS: Èske ou te pa mansyone - ou pa t 'di ke tèt la, li te initialisé nil nan kòmansman an. Men, mwen te panse ou te di ke te OK. JASON HIRSCHHORN: Ann ale - kite pou yo gade nan gdb, ak Lè sa a, nou pral tounen. Men, li son tankou ou deja gen kèk lide sou sa kap pral sou. Se konsa, nou vle insert yon bagay. OK. Nou te insert. Tanpri antre yon Int. Nou pral insert twa. Lè sa a, mwen se sou liy sa a. Kouman pou mwen ale kòmanse debogaj insert la li te ye fonksyon? Oh mwen bonte. Sa se yon anpil. Eske se sa ke frikin soti anpil? ODYANS: Oh, li te mouri. JASON HIRSCHHORN: Mwen jis rale li soti. OK. ODYANS: Petèt li nan lòt fen nan fil la. JASON HIRSCHHORN: Wow. Se konsa, liy la anba - ki sa ou t 'di nou fè? ODYANS: m 'te di paradoks a nan teknik difikilte nan klas sa a. JASON HIRSCHHORN: mwen konnen. Si sèlman mwen te gen kontwòl sou pati sa a. [Fèbl] Sa ki son gwo. Poukisa ou pa nèg kòmanse reflechi sou ki sa nou te kapab fè sa ki mal, epi nou pral tounen nan 90 segonn. Avica, mwen pral mande w ki jan yo ale andedan insert_node debug li. Se konsa, sa a se kote nou sot pase a sispann. Kouman pou mwen ale andedan insert_node, Avica, egzaminen sa k ap pase sou? Ki sa ki gdb komand yo ye? Pak pa ta pran m 'anndan an. Marquis konnen? ODYANS: Ki sa? JASON HIRSCHHORN: Ki sa ki gdb lòd Mwen sèvi ak yo ale andedan fonksyon sa a? ODYANS: Etap? JASON HIRSCHHORN: Etap atravè S. Sa pran m 'anndan an. OK. New_node mallocing kèk espas. Konsa, tout sanble li yo prale. Ann egzaminen new_node. Li te rive gen kèk adrès memwa. Se pou yo tcheke - se sa ki tout kòrèk. Se konsa, tout bagay isit la sanble yo ap travay kòrèkteman. ODYANS: Ki diferans ki genyen ant P ak ekspozisyon? JASON HIRSCHHORN: P kanpe pou ekri ak lèt ​​detache. Se konsa, w ap mande sa ki nan la diferans ki genyen ant sa ki epi sa a? Nan ka sa a, pa gen anyen. Men, jeneralman gen kèk diferans. Apre sa, ou ta dwe gade nan manyèl la gdb. Men, nan ka sa a, pa gen anyen. Nou gen tandans sèvi ak ekri ak lèt ​​detache, menm si, paske nou pa bezwen fè pi plis pase ekri ak lèt ​​detache yon valè sèl. OK. Se konsa, nou yo se sou liy 80 nan kòd nou yo, mete ne * curr egal a lis. Se pou nou enprime soti curr. Li egal lis. Dous. Rete tann. Li egal yon bagay. Sa pa sanble dwat. Gen nou ale. Li nan paske nan gdb, dwa, si li nan liy lan ou se sou li pa te egzekite ankò. Se konsa, ou bezwen aktyèlman tape pwochen nan egzekite liy lan anvan wè rezilta li yo. Se konsa, isit la nou yo. Nou jis egzekite liy sa a, anvan egal nil. Se konsa, ankò, si nou ekri ak lèt ​​detache anvan nou pa pral wè anyen etranj. Men, si nou aktyèlman egzekite ki liy, Lè sa a, nou pral wè sa a, liy ki te travay. Se konsa, nou gen curr. Moun sa yo ki tou de se bon. Dwa? Koulye a, nou ap sou liy sa a isit la menm. Pandan ke curr fè sa ki pa egal nil. Oke, sa fè curr egal? Nou jis wè sa egal nil. Nou enprime li soti. Mwen pral enprime li ankò. Se konsa, se ke pandan ke bouk ale nan egzekite? ODYANS: No JASON HIRSCHHORN: Se konsa, lè mwen tape ki liy, ou wè nou te sote tout wout la desann nan pati anba a, retounen fo. Lè sa a, nou pral retounen fo ak tounen nan pwogram nou an ak evantyèlman enprime soti, tankou nou te wè, insert a pa t 'siksè. Se konsa, okenn moun gen nenpòt lide sou sa nou bezwen pou fè pou ranje sa a? Mwen pral rete tann jiskaske mwen wè yon koup la men moute lavil Jerizalèm. Nou pa t 'egzekite sa a. Kenbe nan tèt ou, sa a te premye a bagay nou te fè a. Mwen pa pral fè yon koup. Mwen pral fè yon kèk. Paske yon koup vle di de. Mwen pral rete tann pou plis pase de. Ensèsyon an premye, curr, pa default egal nil. Lè sa a bouk sèlman ègzekutra si curr se pa nil. Se konsa, kouman mwen ka jwenn alantou sa a? Mwen wè twa men yo. M ap tann pou plis pase twa. Marcus, ki sa ou panse? ODYANS: Bon, si ou bezwen li nan egzekite plis pase yon fwa, ou jis chanje li nan yon bouk fè-pandan y ap. JASON HIRSCHHORN: OK. Sa a ap rezoud pwoblèm nou, menm si? ODYANS: Nan ka sa a pa gen okenn paske yo te lefèt ke lis la se vid. Se konsa, Lè sa a, pwobableman ou jis bezwen ajoute yon deklarasyon ki di si sòti yo bouk Lè sa a, ou dwe fè nan fen lis la, nan ki pwen ou ka jis insert li. JASON HIRSCHHORN: Mwen renmen sa. Ki fè sans. Si bouk la sòti - paske li pral retounen fo isit la. Se konsa, si sòti yo bouk, lè sa a nou ap nan fen a nan lis la, oswa petèt la kòmanse nan yon lis si gen nan pa gen anyen nan li, ki se menm bagay la kòm fen an. Se konsa, koulye a nou vle insert yon bagay isit la. Se konsa, kouman ke Kòd gade, Marcus? ODYANS: Si ou deja gen ne la malloced, ou ta ka jis di new_node-> pwochen egal nil paske li te gen nan fen an. Oswa new_node-> pwochen egal nil. JASON HIRSCHHORN: OK. M regrèt. New_node-> pwochen egal nil paske nou ap nan fen an. Sa pa mete l 'pous Ki jan nou mete l 'nan lis la? Dwat. Se jis mete li egal a. Pa gen ki jan fè nou aktyèlman mete l 'nan lis la? Ki sa ki montre nan fen nan lis la? ODYANS: Head. JASON HIRSCHHORN: M regrèt? ODYANS: Head ap montre nan fen a nan lis la. JASON HIRSCHHORN: Si pa gen anyen nan lis la, ki an tèt se montre nan fen nan lis la. Se konsa, ki ap travay pou la premye ensèsyon. Ki sa ki sou si gen yon koup bagay sa yo nan lis la? Pase nou pa vle yo mete tèt egal a new_node. Ki sa nou vle fè a? Yeah? Pwobableman anvan yo. Sa a ap travay? Sonje byen, anvan yo se jis yon konsèy nan yon ne. Apre sa, anvan an se yon varyab lokal yo. Se konsa, liy sa a pral mete yon varyab lokal yo, anvan, egal a oswa ki montre nan nouvo ne sa a. Ki pa pral aktyèlman mete l ' nan lis nou an, menm si. Ki jan nou mete l 'nan lis nou an? Akchar? ODYANS: Mwen panse ke ou fè kounye a-> kap vini an. JASON HIRSCHHORN: OK. curr-> kap vini an. Se konsa, ankò, rezon ki fè la sèlman nou ap desann isit la se, ki sa ki fè kounye a egal? ODYANS: pèr nil. JASON HIRSCHHORN: Se konsa, sa ki k ap pase si nou fè nil-> vini yo? Ki sa nou pral jwenn? Nou pral jwenn yon fay segmentation. ODYANS: Èske curr egal nil. JASON HIRSCHHORN: Sa se menm bagay la kòm Prev, menm si, paske gen nan yon varyab lokal nou ap mete egal a nouvo ne sa a. Se pou yo tounen nan foto nou yo nan yo mete yon bagay. Di nou ap yo mete nan fen nan lis la, se konsa isit la menm. Nou gen yon konsèy kounye a sa a, se montre nil epi yon pwen anvan ki nan lonje dwèt a 8. Se konsa, sa nou bezwen mete, Avi? ODYANS: Previous-> vini yo? JASON HIRSCHHORN: Previous-> pwochen se sa ki nou vle mete paske sa aktyèlman ap insert li nan fen a nan lis la. Nou toujou gen yon sèl ensèk, menm si, ke nou ap ale nan kouri antre nan. Ki sa ki nan ke ensèk? Yeah? ODYANS: Li pral retounen fo nan ka sa a? JASON HIRSCHHORN: Oh, se se ale nan retounen bay manti. Men, gen nan yon lòt ensèk. Se konsa, nou pral bezwen mete an retou vre. ODYANS: anvan toujou egal nil nan tèt yo nan lis la? JASON HIRSCHHORN: toujou Se konsa, anvan yo egal nil nan konmansman an anpil. Se konsa, kouman nou ka jwenn sou sa? Yeah? ODYANS: Mwen panse ke ou ka fè yon chèk anvan bouk la pandan y ap yo wè si li nan yon lis vid. JASON HIRSCHHORN: OK. Pito n 'al isit la. Fè yon chèk la. Si - ODYANS: Se konsa, si tèt egal egal nil. JASON HIRSCHHORN: Si tèt egal egal nil - ki pral di nou si li nan yon lis vid. ODYANS: Lè sa a, ou fè tèt egal nouvo. JASON HIRSCHHORN: Head egal new_node? Apre sa, ki lòt bagay nou bezwen fè? ODYANS: Lè sa a, ou retounen vre. JASON HIRSCHHORN: Pa byen. Nou ap manke youn etap. ODYANS: New_node pwochen te lonje dwèt sou nil. JASON HIRSCHHORN: Egzakteman, Alden. Lè sa a, nou ka retounen vre. OK. Men, li la toujou yon bon lide yo fè bagay sa yo nan fen a nan lis la, dwa? Tout dwa. Nou toujou ka aktyèlman jwenn nan fen a nan lis la. Se konsa, sa a se amann Kòd si nou ap nan la fini nan lis la ak gen kèk bagay sa yo nan lis la? Dwa? Paske nou toujou gen lide Marcus a. Nou ka sòti sa a bouk paske nou ap nan fen a nan lis la. Se konsa, nou toujou vle sa a kòd desann isit la? ODYANS: Wi. JASON HIRSCHHORN: Yeah. Ak sa ki nou bezwen chanje sa a? Vre. Èske sa bon son a tout moun byen lwen tèlman? Okenn moun gen nenpòt - Avi, ou gen yon bagay yo ajoute? ODYANS: No JASON HIRSCHHORN: OK. Se konsa, nou te fè yon koup la fè chanjman yo. Nou te fè chèk sa-a anvan nou antre nan pou yon lis vid. Se konsa, nou te pran swen nan yon lis vid. Apre sa, isit la nou te pran swen nan yo mete yon bagay nan fen a nan lis la. Se konsa, li sanble tankou sa a pran pandan y ap bouk swen de bagay sa yo nan ant, yon kote nan lis la si gen yo se bagay sa yo nan lis la. OK. Se pou nou kouri pwogram sa a ankò. Pa siksè. ODYANS: Ou pa t 'fè li. JASON HIRSCHHORN: Oh, Mwen pa t 'fè l'. Bon pwen, Mikayèl la. Se pou yo ajoute yon fè lye. Liy 87 gen nan yon erè. Liy 87. Alden, sa a te liy lan ou te ban mwen. Ki sa ki nan mal? ODYANS: Li te gen yo dwe yo nil. JASON HIRSCHHORN: ekselan. Egzakteman dwat. Li ta dwe nil. Se pou yo fè ankò. Sanble. OK. Se pou yo insert twa. Sipleman ki an te gen siksè. Se pou yo enprime li. Oh, si sèlman nou te kapab chèk la. Men, nou pa t 'fè a ekri ak lèt ​​detache fonksyon ankò. Se pou yo antre nan yon lòt bagay. Ki sa nou ta dwe antre nan? ODYANS: Sèt panyen. JASON HIRSCHHORN: Sèt? ODYANS: Wi. JASON HIRSCHHORN: Nou gen yon fay seg. Se konsa, nou te resevwa yon sèl, men nou klè pa ka jwenn de. Li se 5:07. Se konsa, nou te ka debug sa a pou twa minit. Men, mwen pral kite nou isit la ak deplase sou Hash tab. Men, ankò, repons yo pou Kòd sa a Mwen pral voye yon imèl ba l 'bay ou nan yon ti jan. Nou trè fèmen nan li. Mwen trè ankouraje w konnen sa a pral sou isit la ak fikse li. Se konsa, mwen pral voye yon imèl ba ou Kòd sa a kòm byen plis solisyon an - pwobableman solisyon an pita sou. Premye Kòd sa a. Bagay la lòt Mwen vle fè anvan nou fini an se nou pa te libere anyen. Se konsa, mwen vle montre w sa valgrind sanble. Si nou kouri limit valgrind sou pwogram nou an,. / lye. Yon fwa ankò, dapre glise sa a, nou ta dwe kouri valgrind ak kèk di ki kalite opsyon, nan ka sa a - Fuit radyasyon-chèk = plen. Se konsa, kite a ekri valgrind - Fuit radyasyon-chèk = plen. Se konsa, sa a pral kouri valgrind sou pwogram nou an. Epi, koulye a pwogram lan aktyèlman kouri. Se konsa, nou ap ale nan kouri li jis tankou anvan, mete yon bagay pous Mwen pral mete nan twa. Ki travay. Mwen pa pwal pou yo eseye mete nan yon bagay lòt moun paske nou ap ale nan jwenn yon fo seg nan ka sa a. Se konsa, mwen jis ale nan kite fimen. Epi, koulye a ou wè desann isit la genyen fuit ak rezime pil wòch. Sa yo se bon bagay sa yo ke ou vle yo tcheke deyò. Se konsa, rezime an pil wòch - li di, nan itilize nan sòti - uit bytes nan yon blòk. Sa yon blòk an se nan ne nou malloced. Michael, ou te di anvan yon ne se uit mòde paske li gen nonb antye ki pè a ak konsèy la. Se konsa, sa a, se ne nou an. Lè sa a, li di nou itilize malok sèt fwa e nou te libere yon bagay sis fwa. Men, nou pa janm rele gratis, se konsa mwen pa gen okenn lide ki sa sa a ap pale de. Men, sufi li vle di ke lè ou kouri pwogram nan, malok se ke yo te rele nan kèk lòt kote ke nou pa bezwen enkyete sou. Se konsa, malok te pwobableman rele nan kèk kote. Nou pa bezwen enkyete kote. Men, sa a se vrèman nou. Liy premye Sa a se nou. Nou te kite ke blòk. Apre sa, ou ka wè ke isit la nan rezime an koule. Toujou ou kab rive atenn - uit bytes nan yon blòk. Sa vle di ke memwa - nou te fwit ki memwa. Definitivman pèdi - se yon bagay pèdi pou tout bon. Anjeneral, ou pa pral wè anyen la. Toujou ou kab rive atenn se jeneralman kote ou pral wè bagay sa yo, kote ou pral vle yo gade yo wè sa ki Kòd ou ta dwe yo te libere men ou bliye gratis. Lè sa a, si sa a pa t 'ka a, si nou te fè sa gratis tout bagay, nou ka tcheke sa a. Se pou nou jis kouri pwogram nan pa mete nan anyen. Ou pral wè desann isit la nan sèvi ak nan sòti - zewo bytes nan zewo blòk. Sa vle di nou te gen pa gen anyen kite lè pwogram sa a quitté. Se konsa, anvan ou vire nan pset6, kouri valgrind , epi fè sèten ou pa gen nenpòt ki memwa fwit nan pwogram ou an. Si w gen nenpòt kesyon ak valgrind, santi yo lib yo rive jwenn deyò. Men, sa a se ki jan ou sèvi ak li. Trè senp - wè si ou gen nan itilize nan sòti - nenpòt ki bytes nan nenpòt blòk. Se konsa, nou tout nou te ap travay sou insert ne. Mwen te gen de lòt fonksyon isit la - ekri ak lèt ​​detache nœuds ak nœuds gratis. Yon fwa ankò, sa yo, se fonksyon ki gen pral yo dwe bon pou ou pou w pratike paske yo pral ede w pa sèlman ak echantiyon egzèsis sa yo, men tou sou pwoblèm nan mete. Yo kat jeyografik sou bèl byen nan bagay sa yo w ap ale nan te fè nan la pwoblèm mete. Men, mwen vle asire nou manyen sou tout bagay. Ak tablo yo hash yo tou enpòtan sa n ap fè nan seksyon sa a semèn - oswa nan pwoblèm gwoup la. Se konsa, nou ap ale nan fini seksyon an pale sou tab hash. Si w remake mwen te fè yon ti kras hash tab. Sa se pa sa nou ap pale sou, sepandan. Nou ap pale de yon lòt di ki kalite tab hash. Apre sa, nan nwayo, yon tab hash li yo se pa gen anyen plis pase yon etalaj plis yon fonksyon hash. Nou pral pale pou yon ti jan jis yo asire w ke tout moun konprann ki sa yon fonksyon hash se. Apre sa, mwen di nou sa koulye a ke li se pa gen anyen plis pase de bagay sa yo - yon etalaj ak yon fonksyon hash. Apre sa, isit la yo se etap sa yo nan ki sa a opere. Genyen etalaj nou an. Genyen fonksyon nou an. An patikilye, fonksyon hash bezwen fè yon koup de bagay sa yo ak sa. Mwen pral pale espesyalman sou pwoblèm sa a mete. Li la pwobableman ale nan pran nan yon kòd. Ak sa ki nan li ale nan retounen? Ki sa ki done di ki kalite? Alden? Fonksyon hash ou retounen? Yon nonb antye relatif. Se konsa, sa a se sa hash la tab konsiste de - yon tab nan fòm lan nan etalaj ak yon fonksyon hash. Ki jan li fonksyone? Li travay nan twa etap. Nou bay li yon kle. Nan ka sa a, nou pral bay li yon fisèl. Nou rele fonksyon an hash pou chak etap yon sèl sou kle a ak nou jwenn yon valè. Espesyalman, nou pral di nou jwenn yon nonb antye relatif. Sa nonb antye ki pè, gen trè espesifik limit nan sa ki nonb antye ki pè kapab. Nan egzanp sa a, etalaj nou se nan gwosè twa. Se konsa, sa nimewo ka ke nonb antye ki pè dwe. Ki sa ki se seri a nan valè valab pou ki nonb antye ki pè, kalite a retounen nan sa a Hash fonksyon? Zewo, youn ak de. Pwen an nan fonksyon an hash se figi konnen plas la nan etalaj la kote kle nou an, se prale. Te gen sèlman twa posib kote isit la - zewo, youn, oswa de. Se konsa, fonksyon sa a pi bon retounen zewo, youn, oswa de. Gen kèk endis valab nan etalaj sa a. Lè sa a, sa depann de kote li retounen, ou ka wè etalaj gen louvri bracket valè an. Sa a kote nou mete kle a. Se konsa, nou voye jete nan joumou an, nou jwenn soti zewo. Nan etalaj bracket 0, nou mete joumou. Nou jete nan chat, nou jwenn soti yon sèl. Nou mete chat nan yon sèl. Nou mete nan Spider. Nou jwenn soti de. Nou mete Spider nan etalaj bracket de. Li ta konsa nice si li te travay tankou sa. Men, malerezman, menm jan nou pral wè, li nan yon ti jan pi plis konplike. Anvan nou jwenn la, nenpòt kesyon sou sa a debaz mete-up nan yon tab hash? Sa a se yon imaj de egzakteman ki sa nou te trase sou tablo a. Men, depi nou te li sou tablo a, mwen mwen pa ale nan antre nan li pi lwen. Esansyèlman kle, ti bwat la majik nwa - oswa nan ka sa a, bwat Teal - nan yon fonksyon hash mete yo nan bokit. Apre sa, nan egzanp sa a nou ap pa mete non an. Nou ap mete telefòn nan ki asosye kantite non an nan bokit la. Men, ou te kapab trè byen jis mete non an nan bokit la. Sa a se jis yon foto nan sa ki nou te sou tablo a. Nou gen enkonvenyans potansyèl, menm si. Apre sa, ki te gen de an patikilye glisad ke mwen vle ale sou. Youn nan premye se sou yon fonksyon hash. Se konsa, mwen poze kesyon sa a, ki sa ki fè yon fonksyon hash sa ki bon? Mwen bay de repons yo. Premye a se ke li nan detèrminist. Nan kontèks la nan fonksyon hash, ki sa sa a vle di? Wi? ODYANS: Li ka jwenn nan endèks nan tan yo? JASON HIRSCHHORN: Sa se pa sa li vle di. Men, sa a yon bon devine. Okenn moun lòt moun gen yon devine nan sa sa vle di? Sa yon fonksyon hash bon se detèrminist? Annie? ODYANS: Sa ka yon kle fèt sèlman trase nan yon sèl kote nan tablo a hash. JASON HIRSCHHORN: Sa se egzakteman dwat. Chak fwa ou mete nan joumou, li toujou retounen zewo. Si ou mete nan joumou ak hash ou fonksyon retounen zewo, men li gen yon pwobabilite pou yo retounen yon bagay lòt moun ki pi konsekan pase zewo - Se konsa, petèt li ka retounen yon sèl pafwa oubyen de lòt fwa - ki pa yon fonksyon hash bon. Ou se egzakteman dwat. Fonksyon hash ou a ta dwe retounen nan menm nonb antye ki pè egzak, nan ka sa a, pou menm fisèl la egzak. Petèt li retounen menm nonb antye ki pè an egzak pou menm fisèl la egzak kèlkeswa lèt majiskil. Men, nan ka sa a li la toujou detèrminist paske plizyè bagay yo retrase menm valè a. Sa a amann. Osi lontan ke gen yon sèl pwodiksyon pou yon D 'bay yo. OK. Bagay la dezyèm se ke li retounen endis ki valid. Nou pote moute ki pi bonè. Sa a fonksyon hash - oh ti gason - yon fonksyon hash ta dwe retounen endis ki valid. Se konsa, di - kite a tounen nan egzanp sa a. Fonksyon hash mwen konte moute lèt ki nan mo a. Sa a fonksyon an hash. Apre sa, retounen ke nonb antye ki pè. Se konsa, si mwen gen pawòl A a, li nan pral retounen yon sèl. Apre sa, li pral mete yon dwa isit la. E si mwen mete nan mo baton an? Li pral retounen twa. Ki kote baton 'al jwenn? Li pa anfòm. Men, li bezwen yo ale yon kote. Sa a se tab hash mwen apre tout, ak tout bagay bezwen ale yon kote. Se konsa, kote yo ta dwe baton 'al jwenn? Nenpòt panse? Eseye devine? Bon eseye devine? ODYANS: Zewo. JASON HIRSCHHORN: Poukisa zewo? ODYANS: Paske twa modulo twa se zewo? JASON HIRSCHHORN: Twa modulo twa se zewo. Sa se yon gwo devine, e ke sa a kòrèk. Se konsa, nan ka sa a li ta dwe pwobableman ale nan zewo. Se konsa, yon bon fason asire ke hash sa a fonksyon sèlman retounen endis ki valab ki modulo li pa gwosè a nan tab la. Si ou modulo tou sa sa a retounen pa twa, w ap toujou pwal jwenn yon bagay ant zewo, yon sèl, ak de. Men, si sa a toujou retounen sèt, ak ou toujou modulo pa twa, w ap toujou pral jwenn menm bagay la. Se konsa, li la toujou detèrminist si ou modulo. Men, ki pral asire ke ou pa janm jwenn yon bagay - yon endistri valab. An jeneral, ki modulo ta dwe rive andedan fonksyon hash ou. Se konsa, ou pa bezwen enkyete sou sa a. Ou jis kapab asire yo ke sa a se yon endis ki valid. Nenpòt kesyon sou sa a potansyèl pyèj? OK. Apre sa, nou ale. Next pyèj potansyèl, ak sa a se youn nan gwo. E si de kle kat jeyografik a valè a menm? Se konsa, gen de fason yo okipe sa a. Se youn nan premye rele lineyè sonde, ki mwen se pa ale nan ale sou. Men, ou ta dwe abitye avèk ki jan ki travay epi ki sa se sa ki. Yon sèl nan dezyèm m 'prale ale sou paske sa se yon sèl la ki anpil moun ki pral pwobableman fini n ap deside yo itilize nan seri pwoblèm yo. Natirèlman, ou pa bezwen. Men, pou pwoblèm mete nan, anpil moun yo gen tandans yo chwazi yo kreye yon tab hash ak separe Anchènman aplike diksyonè yo. Se konsa, nou ap ale nan ale sou sa li vle di yo kreye yon tab hash ak apa Anchènman. Se konsa, mwen mete nan joumou. Li retounen zewo. Apre sa, mwen mete joumou isit la. Lè sa a, mwen mete nan - sa ki nan yon lòt bagay Halloween-tematik? ODYANS: sirèt. JASON HIRSCHHORN: sirèt! Sa a se yon yon sèl gwo. Mwen mete nan sirèt, ak sirèt tou ki ban m 'zewo. Kisa pou mwen fè? Nenpòt ki ide? Paske nou tout sòt de konnen sa ki apa Anchènman se. Se konsa, nenpòt ki ide sa yo dwe fè? Yeah. ODYANS: Mete fisèl la aktyèlman nan tablo a hash. JASON HIRSCHHORN: Se konsa, nou ap ale nan trase bon lide a sou isit la. OK. ODYANS: Fè hashtable la [Fèbl] konsèy la ki lonje dwèt nan nan konmansman an nan yon lis. Lè sa a, te joumou gen valè nan premye nan ke lis lye ak sirèt gen valè a dezyèm nan ke lis lye. JASON HIRSCHHORN: OK. Marcus, sa ki te eksepsyonèl. Mwen pral kraze ki desann. Marcus ap di pa fè sa recouvrir joumou. Ki ta ka move. pa mete sirèt yon lòt kote. Nou pral mete yo tou de nan zewo. Men, nou pral fè fas ak mete yo nan zewo pa kreye yon lis nan zewo. Apre sa, nou pral kreye yon lis tout bagay ki trase a zewo. Apre sa, fason ki pi bon nou te aprann yo kreye yon lis ki ka grandi ak retresi dynamique se pa nan yon lòt etalaj. Se konsa, pa yon etalaj milti-dimansyon. Men, yo jis kreye yon lis lye. Se konsa, sa li te pwopoze - Mwen pral jwenn yon nouvo - se kreye yon etalaj ak endikasyon, yon etalaj de pwent. OK. Nenpòt lide oswa allusion ki kalite a nan sa a endikasyon yo ta dwe? Marcus? ODYANS: Pointers a - JASON HIRSCHHORN ou: Paske ou di yon lis lye, se konsa - ODYANS: endikasyon neu? JASON HIRSCHHORN: endikasyon neu. Si bagay sa yo nan nou an lye lis yo se nœuds lè sa a yo yo ta dwe endikasyon ne. Ak sa yo egal a okòmansman? ODYANS: nil. JASON HIRSCHHORN: nil. Se konsa, gen nan bagay vid nou an. Retounen joumou zewo. Kisa n'ap fè? Mache m 'nan li? Aktyèlman, Marcus deja te ban m '. Yon lòt moun mache m 'nan li. Kisa nou fè lè nou - sa a sanble anpil menm jan ak sa nou te jis ap fè. Avi. ODYANS: Mwen pral pran yon devine. Se konsa, lè ou jwenn sirèt. JASON HIRSCHHORN: Yeah. Oke, nou te resevwa joumou. Se pou yo jwenn premye yon sèl nou yo. Nou gen joumou. ODYANS: OK. Retounen joumou zewo. Se konsa, ou mete l 'nan sa. Oswa aktyèlman, ou mete l ' nan lis la lye. JASON HIRSCHHORN: Ki jan nou fè mete l 'nan lis la lye? ODYANS: Oh, sentaks aktyèl la? JASON HIRSCHHORN: Jis mache - di plis. Kisa n'ap fè? ODYANS: Ou jis insert li kòm ne a an premye. JASON HIRSCHHORN: OK. Se konsa, nou gen ne nou an, joumou. Epi, koulye a jan mwen insert li? ODYANS: Ou bay li nan konsèy la. JASON HIRSCHHORN: Ki konsèy? ODYANS: konsèy la nan zewo. JASON HIRSCHHORN: Se konsa, kote fè pwen sa a? ODYANS: Pou nil kounye a. JASON HIRSCHHORN: Bon, li nan montre nil. Men, mwen mete nan joumou. Se konsa, kote yo ta dwe li montre? ODYANS: Pou joumou. JASON HIRSCHHORN: Pou joumou. Egzakteman. Se konsa, sa a lonje dwèt nan joumou. Ak ki kote fè konsèy sa a nan pwen joumou? ODYANS: nil. JASON HIRSCHHORN: Pou nil. Egzakteman. Se konsa, nou jis antre yon bagay nan lis la lye. Nou jis te ekri kòd sa a nan fè sa. Prèske nou prèske te resevwa li konplètman fann. Koulye a, nou insert sirèt. Sirèt nou tou ale nan zewo. Se konsa, sa nou fè ak sirèt? ODYANS: Sa depann de si wi ou pa nou ap eseye sòt li. JASON HIRSCHHORN: Sa se egzakteman dwat. Sa depann de si wi ou non nou ap eseye sòt li. Se pou yo asime nou pa ale nan sòt li. ODYANS: Bon lè sa a, kòm nou diskite anvan, li la pi senp jis yo mete l ' dwa nan kòmansman an pou konsèy la soti nan zewo pwen sirèt. JASON HIRSCHHORN: OK. Kenbe sou. Kite m 'kreye sirèt dwa isit la. Se konsa, konsèy sa a - ODYANS: Yeah, yo ta dwe kounye a dwe montre sirèt. Lè sa a, gen konsèy ki soti nan pwen sirèt joumou. JASON HIRSCHHORN: Menm jan ak sa? W'a di nou te resevwa yon lòt bagay yo kat jeyografik a zewo? ODYANS: Bon, ou jis fè menm bagay la? JASON HIRSCHHORN: Èske menm bagay la. Se konsa, nan ka sa a, si nou pa fè sa vle kenbe l 'Ranje li son olye ki senp. Nou pran konsèy la nan endis la yo bay nan fonksyon hash nou an. Nou gen pwen sa yo ak nouvo ne nou an. Lè sa a, tou sa li te montre deja - nan sa a nil ka, nan la dezyèm ka joumou - sa a, tou sa li te montre deja, nou ajoute nan pwochen an nan nouvo ne nou an. Nou ap yo mete yon bagay depi nan konmansman an. An reyalite sa a se yon anpil pi fasil pase ap eseye kenbe lis la klase. Men, ankò, chache yo pral pi konplike sou isit la. Nou pral toujou gen pou yo ale nan fen an. OK. Nenpòt kesyon sou Anchènman apa? Ki jan ki travay? Tanpri mande yo koulye a. Mwen vrèman vle asire w ke ou tout konprann sa a anvan nou mete tèt yo deyò. ODYANS: Poukisa ou mete joumou ak sirèt nan menm bagay la tou yon pati nan tablo a hash? JASON HIRSCHHORN: Bon kesyon. Poukisa nou mete yo nan menm bagay la tou yon pati nan tablo a hash? Oke, nan ka sa a fonksyon hash nou retounen zewo pou tou de nan yo. Se konsa, yo bezwen ale nan endis zewo paske se sa kote nou ap ale nan gade pou yo si nou tout tan tout tan vle gade yo moute. Yon fwa ankò, avèk yon apwòch lineyè sonde nou pa ta mete yo tou de nan zewo. Men, nan apwòch la chèn ki apa a, nou pral mete yo tou de nan zewo ak Lè sa a, kreye yon lis koupe nan zewo. Apre sa, nou pa vle recouvrir joumou tou senpleman pou sa paske lè sa a nou pral asime ke joumou te pa janm eleman. Si nou jis kenbe yon sèl bagay nan la kote ki ta ka move. Lè sa a, ta gen pa gen okenn chans pou nou tout tan tout tan - si nou te janm fè yon kopi, lè sa a nou ta jis efase valè inisyal nou an. Se konsa, Se poutèt sa nou fè apwòch sa a. Oswa Se poutèt sa nou te chwazi - men ankò, nou te chwazi apwòch la Anchènman ki apa a, ki gen anpil lòt fason yon sèl te kapab chwazi. ki reponn kesyon ou a? OK. Carlos. Lineyè sonde ta enplike - si nou jwenn yon kolizyon nan zewo, nou ta gade nan plas ki vin apre a yo wè si li te louvri, epi li mete l 'la. Lè sa a, nou gade nan espò nan pwochen ak wè si sa ki te louvri, epi li mete l 'la. Se konsa, nou jwenn pwochen disponib nan tach louvri, epi li mete l 'la. Nenpòt lòt kesyon? Yeah, Avi. ODYANS: Kòm yon swiv jiska sa a, sa ou vle di pa tach vini yo? Nan tablo ki hash oswa nan yon lis lye. JASON HIRSCHHORN: Pou lineyè pwogram, pa gen bay lis lye. Plas nan pwochen sou tab la hash. ODYANS: OK. Se konsa, tab la hash ta dwe initialisé nan gwosè a - tankou nimewo a nan strings ke ou te yo mete? JASON HIRSCHHORN: Ou ta vle li yo dwe reyèlman gwo. Wi. Isit la se yon foto nan ki sa nou jis te trase sou tablo a. Yon fwa ankò, nou gen yon kolizyon dwa isit la. nan 152. Apre sa, ou pral wè nou te kreye yon lis lye koupe nan li. Yon fwa ankò, tab hash Anchènman la separe apwòch se pa yon sèl nan ou dwe pran pou pwoblèm mete sis men se youn ki yon anpil nan elèv yo gen tandans pran. Se konsa, sou ki nòt, se pou nou fè yon ti pale anvan nou mete tèt yo deyò sou pwoblèm sis, ak Lè sa a, mwen pral pataje yon istwa avèk ou. Nou gen twa minit. Pwoblèm mete sis. Ou gen kat fonksyon - chaj, tcheke, gwosè li, e dechaje. Chaj - byen, nou ve yo te ale sou chaj jis kounye a. Nou te trase chaj sou tablo a. Epi nou menm te kòmanse kodaj yon anpil nan yo mete nan yon lis lye. Se konsa, chay se pa pi plis pase ki sa nou te jis te fè. Tcheke se yon fwa ou gen yon bagay chaje. Li nan menm pwosesis la tankou sa a. Menm de premye pati pyès sa yo kote ou voye jete yon bagay nan fonksyon an hash epi pou yo jwenn valè li yo. Men koulye a, nou pa mete li. Koulye a, nou ap chèche pou li. Mwen te echantiyon Kòd ekri pou jwenn yon bagay nan yon lis lye. Mwen ankouraje w pratike sa. Men, entwitif jwenn yon bagay ki trè menm jan ak yo mete yon bagay. Vreman vre, nou te yon foto nan jwenn yon bagay nan yon lis lye, k ap deplase nan jiskaske ou te rive nan fen an. Men, si ou te rive nan fen an ak pa t 'kapab jwenn li, Lè sa a, li la pa la. Se konsa, sa a, se chèk, esansyèlman. Next se gwosè. Se pou yo sote gwosè. Finalman ou te dechaje. Debake se youn nou pa te trase sou tablo a oswa kode ankò. Men, mwen ankouraje ou eseye kod li nan echantiyon nou an lye lis egzanp. Men, dechaje entwitif se menm jan ak gratis - oswa mwen vle di se menm jan ak chèk la. Eksepte pou kounye a chak fwa w ap ale nan, w ap pa tou senpleman tcheke wè si ou gen menm valè ou gen. Men, ou ap pran ki ne ak libere l ', esansyèlman. Sa a ki sa debake mande ou fè. Tout bagay gratis ou te malloced. Se konsa, w ap ale nan lis la antye ankò, ale atravè tout hash a tout antye tab ankò. Tan sa a pa tcheke yo wè sa ki nan la. Jis gratis sa ki nan la. Epi finalman gwosè. Size yo ta dwe aplike. Si ou pa aplike gwosè - Mwen pral di l 'tankou sa a. Si ou pa aplike gwosè nan egzakteman yon sèl liy nan Kòd ki gen ladan an retounen deklarasyon, se ou ki fè gwosè mal. Se konsa, asire w ke gwosè, pou konsepsyon plen pwen, w ap fè l 'nan egzakteman yon liy nan Kòd, ki gen ladan deklarasyon an retou. Epi yo pa pake moute ankò, Akchar. Anvi Beaver. Mwen te vle di di ou mèsi mesye pou vini nan seksyon. Fè yon Ala bon sa bon Halloween. Sa a se kostim m 'yo. Mwen pral mete sa a nan Jedi si mwen wè ou nan lè biwo louvri. Epi si w ap kirye de kèk plis background tankou kostim sa a, santi gratis yo tcheke soti 2011 seksyon pou yon istwa sou poukisa mwen se mete joumou kostim lan. Epi li se yon istwa tris. Se konsa, asire w ke ou gen kèk tisi ki tou pre. Men, sou sa, si ou gen nenpòt kesyon mwen pral bwa ozalantou deyò apre seksyon. Bon chans sou pwoblèm mete sis. Apre sa, tankou toujou, si ou gen nenpòt kesyon, kite m 'konnen.