[Powered by Google Translate] [Seksyon 7: pi konfòtab]
[Rob Bowden] [Inivèsite Harvard]
[Sa a se CS50] [CS50.TV]
Tout dwa. Se konsa, tankou mwen te di nan imel mwen an,
sa a se pral gen yon seksyon binè-pyebwa-entansif.
Men, gen pa ki anpil kesyon.
Se konsa, nou pwal eseye ak trase soti chak kesyon
epi ale nan detay ki fè mal nan tout fason yo pi bon nan fè bagay.
Se konsa, dwa nan kòmansman an, nou ale nan desen echantiyon nan pyebwa binè ak lòt bagay.
Se konsa, isit la, "Sonje ke yon pye bwa binè gen nœuds menm jan ak sa yo ki nan yon lis lye,
eksepte olye de yon konsèy ki te gen de: youn pou 'pitit' bò gòch la
ak yonn pou 'timoun nan' dwa. "
Se konsa, yon pye bwa binè se jis tankou yon lis lye,
eksepte struct a pral gen de pwent.
Genyen nan pye bwa trinary, ki fè yo pral gen twa endikasyon,
gen N-ari pye bwa, ki jis gen yon konsèy jenerik
ke ou Lè sa a, gen malok yo dwe gwo ase gen
endikasyon ase nan tout timoun yo posib.
Se konsa, pyebwa binè jis k ap pase gen yon nimewo konstan nan de.
Si ou vle, ou kapab bay yon lis lye kòm yon pye bwa unèr,
men mwen pa panse ke nenpòt moun ki rele l sa.
"Trase yon dyagram bwat-ak-flèch nan yon ne pyebwa binè
ki gen pi renmen nimewo Nate a, 7, kote chak konsèy timoun se nil. "
Se konsa, iPad mòd.
>> Li k ap pase yo dwe trè senp.
Nou jis ap pral gen yon ne, mwen pral trase li kòm yon kare.
Apre sa, m'a fè desen valè yo nan isit la.
Se konsa, valè a pral ale nan isit la,
ak Lè sa a, desann isit la n ap gen konsèy gòch la sou bò gòch la ak konsèy nan dwa sou bò dwat la.
E li se anpil se konsa konvansyon yo rele li kite la ak dwa, non yo konsèy.
Tou de sa yo yo ale nan pral nil.
Ki pral jis pral nil, e ke yo pral jis pral nil.
Oke. Se konsa, tounen nan isit la.
"Ak yon lis lye, nou sèlman te gen nan magazen yon konsèy
ne nan premye nan lis la nan lòd yo sonje tout lis la lye, oswa lis nan tout antye.
Menm jan an tou, ak pye bwa, nou gen sèlman yo estoke yon konsèy
nan yon ne sèl yo nan lòd yo sonje pyebwa a tout antye.
Sa a ne se CALLE 'rasin lan' nan pyebwa sa a.
Bati sou dyagram ou yo devan oubyen desine yon nouvo
tankou ke ou gen yon ilistrasyon bwat-ak-flèch nan yon pyebwa binè
ak nan valè a 7, Lè sa a, 3 nan bò gòch lan,
Lè sa a, 9 sou bò dwat la, ak Lè sa a, 6 sou bò dwat la nan 3 a. "
Ann gade pou wè si mwen ka sonje nan tout sa nan tèt mwen.
Se konsa, sa a se pral fè rasin nou moute isit la.
Nou pral gen kèk konsèy yon kote, yon bagay ke nou ap rele rasin,
epi li lonje dwèt sa a nèg.
Koulye a, fè yon ne nouvo,
sa nou genyen, 3 sou bò gòch la?
Se konsa, yon ne nouvo ak 3, epi li okòmansman pwen nil.
Mwen pral jis mete N.
Koulye a, nou vle fè ki ale nan kite nan 7.
Se konsa, nou chanje sa a konsèy kounye a lonje dwèt sou sa a Guy.
E nou fè menm bagay la. Nou vle yon 9 sou isit la
ki okòmansman jis di nil.
Nou pwal chanje sa a konsèy, pwen nan 9,
e kounye a, nou vle mete 6 a dwat a 3.
Se konsa, li pral - fè yon 6.
Ak ke nèg ap pwen la.
Oke. Se konsa, ki nan tout sa li mande nou fè.
>> Koulye a, kite a ale sou kèk tèminoloji.
Nou deja te pale osijè de ki jan rasin nan pyebwa a se ne nan tèt-pi nan pyebwa sa a.
Yon sèl la ki gen 7. Nœuds yo nan fon an nan pye bwa a yo rele fèy yo.
Nenpòt ne ki jis gen nil tankou yon timoun li yo se yon fèy.
Se konsa, li se posib, si pye bwa binè nou se jis yon ne sèl,
ki yon pyebwa se yon fèy, ak sa a, se li.
"'Wotè nan' nan pye bwa a se nimewo a nan so ou gen fè
jwenn nan tèt la nan yon fèy. "
Nou pral jwenn nan, nan yon dezyèm fwa, diferans lan
ant pyebwa balanse ak dezekilib binè,
men pou kounye a, wotè an jeneral nan pye bwa sa a
Mwen ta ka di se 3, byenke si ou konte kantite so
ou te fè yo nan lòd pou li ale nan 9, Lè sa a, li vrèman se sèlman yon wotè ki 2.
Kounye a sa a se yon pyebwa binè dezekilib,
men nou pwal pale sou balanse lè li vin gen ki enpòtan.
Se konsa, kounye a nou ka pale de nœuds nan yon pye bwa nan tèm
relatif nan nœuds yo ak lòt nan pyebwa sa a.
Se konsa, kounye a nou gen paran yo, timoun yo, frè ak sè, zansèt yo, ak pitit pitit.
Yo se bèl bon sans, ki sa yo vle di.
Si nou mande - paran li a.
Se konsa, sa se paran an sou 3?
[Elèv yo] 7. >> Yeah. Paran an se jis pral fè sa ki pwen ou.
Lè sa a, ki sa yo se timoun yo nan 7 la?
[Elèv yo] 3 ak 9. >> Yeah.
Remake "timoun" literalman vle di timoun yo,
se konsa 6 pa t 'vle aplike yo, paske li nan tankou yon pitit pitit.
Men, Lè sa a, si n 'al jwenn pitit pitit, se konsa ki sa yo se pitit pitit yo nan 7?
[Elèv yo] 3, 6 ak 9. >> Yeah.
Pitit pitit yo nan ne an rasin a pwal tout sa ki nan pye bwa a,
eksepte petèt ne nan rasin tèt li, si ou pa vle konsidere ke yon pitit.
Epi finalman, zansèt, kidonk li a direksyon opoze a.
Se konsa, sa yo se zansèt yo nan 6?
[Elèv yo] 3 ak 7. >> Yeah. 9 se pa sa enkli ladan li.
Se jis nan do a filiation dirèk nan rasin lan
a pwal zansèt nou yo.
>> "Nou di ke se yon pye bwa binè 'te bay lòd', si pou chak ne nan pyebwa a,
tout pitit pitit li yo sou bò gòch la gen pi piti valè
ak tout nan yo menm ki sou bò dwat la yo gen pi gwo valè.
Pou egzanp, yon pyebwa ki pi wo a te bay lòd men li pa aranjman an sèlman posib bay lòd la. "
Anvan nou jwenn ak sa yo ki,
se yon pyebwa binè te bay lòd ke yo rele tou yon pye bwa rechèch binè.
Isit la nou rive yo dwe rele li yon pyebwa binè te bay lòd,
Men, mwen pa janm tande li rele yon pyebwa binè te bay lòd anvan,
yo, epi sou yon egzamen nou yo se pi plis chans yo mete binè pyebwa rechèch.
Yo ap yon sèl ak menm bagay la tou,
ak li enpòtan ou rekonèt distenksyon ki genyen ant pyebwa binè ak pyebwa rechèch binè.
Yon pye bwa binè se jis yon pye bwa ki pwen a de bagay sa yo.
Chak ne pwen a de bagay sa yo.
Pa gen okenn rezònman sou valè yo ke li lonje dwèt yo.
Se konsa, renmen sou isit la, depi li nan yon pyebwa rechèch binè,
nou konnen ke si nou ale rete nan 7,
Lè sa a, tout valè sa yo ke nou ka pètèt rive jwenn
pa ale rete nan 7 gen yo dwe pi piti pase 7.
Remake tout valè yo mwens pase 7 se 3 ak 6.
Moun sa yo se tout nan kite nan 7.
Si nou ale a dwat a 7, tout bagay te ka pi plis pase 7,
Se konsa 9 se a dwat a 7, konsa nou ap bon.
Sa a se pa ka a pou yon pye bwa binè,
pou yon pye bwa binè regilye nou ka jis gen 3 nan tèt la, 7 a gòch la,
9 nan kite nan 7; gen nan pa gen kòmann-nan nan valè tou.
Koulye a, nou pa pral aktyèlman fè sa a paske li nan fatigan ak nesesè,
men "eseye trase kòm anpil te bay lòd pye bwa kòm ou ka panse a
lè l sèvi avèk chif yo 7, 3, 9, ak 6.
Konbyen aranjman distenk ki genyen? Ki sa ki se wotè a nan chak yon sèl? "
>> Nou pral fè yon koup, men lide prensipal se,
sa a se nan okenn fason yon reprezantasyon inik nan yon pye bwa ki gen binè valè sa yo.
Tout sa nou bezwen se kèk pyebwa binè ki gen 7, 3, 6, ak 9.
Yon lòt posib yon sèl ki valab ta dwe rasin lan se 3,
ale nan bò gòch la ak li nan 6, ale nan bò gòch la ak li nan 7,
ale nan bò gòch la ak li nan 9.
Sa se yon binè pyebwa parfe ki valab rechèch.
Li pa trè itil, paske li nan jis tankou yon lis lye
ak tout moun sa yo endikasyon yo se jis nil.
Men, li se yon pyebwa ki valid. Yeah?
[Elèv] Eske pa valè yo gen yo dwe pi gwo sou bò dwat la?
Oswa se sa a -? >> Sa yo mwen vle di ke yo ale nan lòt fason.
Genyen tou - yeah, kite la chanje sa.
9, 7, 6, 3. Bon peche.
Li toujou gen yo obeyi sa ki yon rechèch pyebwa binè sipoze fè.
Se konsa, tout bagay sa yo bò gòch la gen li dwe mwens pase nenpòt ne bay yo.
Nou te ka jis deplase, di, sa a 6 li mete l 'isit la.
Non, nou pa kapab. Poukisa mwen kontinye ap fè sa?
Se pou nou fè - isit la se 6, isit la se 7, 6 pwen nan 3.
Sa se toujou yon binè pyebwa ki valab rechèch.
Sa ki mal si mwen - kite a wè si mwen ka vini ak yon aranjman.
Yeah, oke. Se konsa, sa ki mal ak pye bwa sa a?
Mwen devine mwen te deja ba ou yon allusion ki di ke gen yon bagay mal ak li.
Poukisa mwen kontinye ap fè sa?
Oke. Sa a sanble rezonab.
Si nou gade nan chak ne, tankou 7, Lè sa a, nan kite nan 7 se yon 3.
Se konsa, nou gen 3, bagay la a dwat a 3 se yon 6.
Men, si ou gade nan 6, bagay la a dwat a 6 se yon 9.
Se konsa, poukisa sa a pa yon binè pyebwa ki valab rechèch?
[Elèv yo] 9 se toujou nan kite nan 7. >> Yeah.
Li fèt pou laverite ke tout valè ou ka posib rive jwenn pa ale nan kite nan 7 yo gen mwens pase 7.
Si nou ale rete nan 7, nou jwenn nan 3 epi nou ka toujou jwenn a 6,
nou ka toujou jwenn a 9, men si w ale mwens pase 7,
nou pa ta dwe kapab jwenn nan yon nimewo ki nan pi gran pase 7.
Se konsa, sa a se pa yon binè pyebwa ki valab rechèch.
>> Frè m 'lan aktyèlman te gen yon kesyon entèvyou
sa yo ki te fondamantalman sa a, jis kòd moute yon bagay yo valide
si yon pyebwa se yon pye bwa rechèch binè,
e konsa nan premye bagay li te fè te jis tcheke wè
si bò gòch la ak dwa yo se kòrèk, epi li Lè sa a, repekte anba isit la.
Men, ou pa ka jis fè sa; ou gen nan kenbe tras
nan lefèt ke kounye a ke mwen te ale rete nan 7,
tout bagay nan sa a subtree dwe pi piti pase 7.
Algorithm ki kòrèk la bezwen kenbe tras
nan avèk limit yo ki valè yo ka pètèt tonbe pous
Nou pa pral ale nan tout nan yo.
Gen yon relasyon ankò bèl,
byenke nou pa gen vinn bay moun, oswa nou pa pral jwenn nan sa yo,
defini ki jan anpil gen aktyèlman yo.
Se konsa, gen 14 nan yo.
Lide a nan kijan ou ta fè li nan matematik, se tankou,
ou ka chwazi nenpòt yon sèl yo dwe ne nan rasin,
ak Lè sa a, si mwen chwazi 7 yo dwe ne nan rasin,
Lè sa a, gen, di, kèk nimewo ki ka ale pou ne gòch mwen an,
e gen kèk nimewo ki kapab ne dwat mwen,
Men, si mwen te N nimewo total, Lè sa a, kantite lajan sa a ki ka ale nan bò gòch la
plis lajan ke yo ka ale nan dwa a ap n - 1.
Se konsa, nan nimewo ki rete yo, yo gen pou kapab ale swa a gòch la oswa dwa a.
Li sanble difisil sa, si mwen mete 3 premye Lè sa a, tout bagay gen pou yo ale nan bò gòch lan,
Men, si mwen mete 7, Lè sa a, kèk bagay ka ale bò gòch la a ak kèk bagay ka ale nan bò dwat la.
Ak pa '3 'premye fwa mwen te vle di tout bagay ka ale nan bò dwat la.
Li nan reyèlman, ou jis gen panse osijè de li kòm,
konbyen bagay sa yo ka ale sou nivo kap vini an nan pyebwa sa a.
Ak li vini soti nan gen 14; oswa ou ka rale tout nan yo,
ak Lè sa a, ou pral jwenn 14.
>> Ale tounen isit la,
"Lòd pou fè pye bwa binè yo fre paske nou kapab fè rechèch nan yo
nan yon fason yo chèche sou yon etalaj Ranje trè sanblab.
Pou fè sa, nou kòmanse nan rasin lan ak travay wout nou desann pye bwa a
nan direksyon pou fèy yo, tcheke valè chak ne a kont valè yo nou 're chache.
Si valè ne yo ye a se mwens pase valè an ke nou ap chèche pou yo,
ou ale bò kote dwa timoun ne la.
Sinon, ou ale nan pitit gòch ne la.
Nan kèk pwen, ou pral swa jwenn valè nan w ap chèche pou yo, oswa ou pral kouri antre nan yon nil,
ki endike valè a se pa nan pyebwa sa a. "
Mwen dwe rdesine pyebwa sa a nou te gen anvan; ki ap pran yon dezyèm fwa.
Men, nou vle gade moute si 6, 10, ak 1 yo nan pyebwa sa a.
Se konsa, sa li te, 7, 9, 3, 6. Oke.
Nimewo sa yo ou vle gade leve, nou vle yo gade jiska 6.
Kòman sa fèt algorithm?
Oke, nou menm tou nou gen kèk konsèy rasin pyebwa nou yo.
E nou ta ale nan rasin lan ak di, se sa a valè ki egal ak valè an ke nou ap chèche pou?
Se konsa, nou ap chèche pou 6, se konsa li pa egal.
Se konsa, nou kenbe prale a, e kounye a, nou di, oke, se konsa 6 se mwens pase 7.
sa vle di nou vle pou yo ale nan bò gòch la, oswa nou vle pou yo ale nan dwa a?
[Elèv] Left. >> Yeah.
Li nan siyifikativman pi fasil, tout sa ou dwe fè se desine yon posib ne nan pye bwa a
ak Lè sa a, ou don't - olye pou yo ap eseye panse nan tèt ou,
oke, si li nan mwens, m 'ale nan bò gòch la oswa ale dwat la,
jis gade nan foto sa a, li trè klè ke mwen gen pou yo ale nan bò gòch la
si sa a ne se pi gran pase valè a ke mwen kap chèche.
Se konsa, ou fè bò dwat, kounye a mwen nan 3.
Mwen vle - 3 se mwens pase valè a mwen kap chèche, ki se 6.
Se konsa, nou ale nan dwa an, epi koulye a, mwen fini nan 6,
ki se valè a mwen kap chèche, se konsa mwen retounen vre.
Valè nan pwochen mwen pral gade pou se 10.
Oke. Se konsa, 10, koulye a, ki pral - koupe sa - ale nan swiv rasin lan.
Koulye a, 10 a pwal pi gran pase 7, Se konsa, mwen vle gade a dwat la.
Mwen pral vin sou isit la, 10 a pwal pi gran pase 9,
se konsa mwen pral vle gade a dwat la.
Mwen vin sou isit la, men isit la sou kounye a Mwen nan nil.
Kisa pou mwen fè si mwen frape nil?
[Elèv] Retounen fo? >> Yeah. Mwen pa t 'jwenn 10.
1 a pwal yon ka prèske idantik,
eksepte li jis yo pral ranvèrse; olye pou yo kap
desann bò dwat la, mwen pral gade desann bò gòch la.
>> Koulye a, mwen panse ke nou aktyèlman jwenn kòd.
Isit la nan kote - louvri moute aparèy la CS50 ak navige fason ou a,
men ou ka tou jis fè li nan espas la.
Li pwobableman ideyal yo fè li nan espas la,
paske nou ka travay nan espas la.
"Premye nou pral bezwen yon definisyon kalite nouvo pou yon ne pyebwa binè ki gen valè int.
Lè l sèvi avèk boilerplate nan tipedèf anba a,
kreye yon definisyon kalite nouvo pou yon ne nan yon pyebwa binè.
Si ou jwenn kole. . . "Bla, bla, bla. Okay.
Se konsa, kite a mete boilerplate a isit la,
tipedèf struct ne, ak ne. Yeah, oke.
Se konsa, sa yo se jaden yo nou pral vle nan ne nou an?
[Elèv] Int ak Lè sa a, de pwent?
>> Int valè, de pwent? Kouman pou mwen ekri pwent yo?
[Elèv] struct. >> M 'ta dwe rale pous Yeah, se konsa struct ne * kite,
ak struct ne * dwat.
Epi sonje diskisyon an soti nan tan sot pase yo,
ke sa a pa fè okenn sans, sa a pa fè okenn sans,
sa a pa fè okenn sans.
Ou bezwen tout bagay gen yo nan lòd yo defini sa a struct repetitif.
Oke, kidonk se sa ki pyebwa nou ki pral sanble.
Si nou te fè sa yon pyebwa trinary, lè sa a yon ne ta ka gade tankou b2 b1,, struct ne * B3,
kote b se yon branch - aktyèlman, mwen te plis tande l 'kite, mwayen, dwat, men tou sa.
Nou sèlman swen sou binè, se konsa dwat, kite.
"Kounye a, deklare yon ne mondyal varyab * pou rasin lan pyebwa sa a."
Se konsa, nou pa ale fè sa.
Nan lòd fè bagay sa yo yon ti kras pi difisil ak plis ankò jeneralize,
nou pa pral gen yon varyab ne mondyal.
Olye de sa, nan prensipal nou pral esplike nou tout bagay ne nou an,
ak ki vle di ke anba a, lè nou kòmanse ap kouri
fonksyon konprann nou yo ak fonksyon insert nou an,
olye pou yo konprann nou fonksyon jis lè l sèvi avèk sa a varyab ne mondyal,
nou pral genyen li pran kòm yon agiman pyebwa a ke nou vle li nan travay sou.
Èske w gen varyab mondyal la te sipoze fè bagay sa yo pi fasil.
Nou pral fè bagay sa yo pi rèd.
Koulye a, pran yon minit oswa konsa jis fè sa a sòt de bagay sa,
kote andedan nan prensipal ou vle kreye pye bwa sa a, ak ki nan tout sa ou vle fè.
Eseye ak konstwi pye bwa sa a nan fonksyon prensipal ou an.
>> Oke. Se konsa, ou pa menm gen yo te konstwi pyebwa sa a wout la tout antye ankò.
Men, nenpòt moun ki gen yon bagay mwen te kapab rale moute
yo montre ki jan yon moun ka kòmanse konstwi tankou yon pyebwa?
[Elèv] tapan Yon moun a, ap eseye jwenn deyò.
[Bowden] Nenpòt moun ki konfòtab ak konstriksyon pyebwa yo?
[Elèv] Sure. Li pa nan fè. >> Li nan amann. Nou ka jis fini -
oh, èske ou kapab sove li? Hooray.
Se konsa, isit la nou genyen - o, mwen yon ti kras koupe.
Èske mwen agrandi nan?
Rale nan, woulo liv deyò. >> Mwen gen yon kesyon. >> Yeah?
[Elèv] Lè ou defini struct, se bagay sa yo tankou inisyalizèd anyen?
[Bowden] No >> Okay. Se konsa, ou ta gen yo inisyalize -
[Bowden] No Lè ou defini, oswa lè ou deklare yon struct,
ki sa li pa inisyalizèd pa default; li nan jis tankou si ou deklare yon int.
Li nan egzakteman menm bagay la. Se tankou chak nan jaden endividyèl li yo
ka gen yon valè fatra nan li. >> Epi se li posib defini - oswa yo deklare yon struct
nan yon fason ki li fè sa inisyalize yo?
[Bowden] Wi. Se konsa, rakoursi inisyalizasyon sentaks
ki pral gade tankou -
Genyen de fason nou ka fè sa. Mwen panse ke nou ta dwe konpile li
asire w sonnen tou sa a.
Lòd la nan agiman ki vini nan struct a,
ou mete kòm lòd la nan agiman andedan nan sa yo aparèy òtopedik Curly.
Se konsa, si ou vle inisyalize li nan 9, epi yo kite yo nil epi Lè sa a, dwa pral nil,
li ta 9, nil, nil.
Altènatif a se, ak editè nan pa renmen sa a sentaks,
epi li panse mwen vle yon blòk nouvo,
men altènatif la se yon bagay tankou -
isit la, mwen pral mete l 'sou yon liy nouvo.
Ou ka klèman di, mwen bliye sentaks an egzak.
Se konsa, ou ka klèman adrese yo pa non yo, epi w'a di,
. C, oswa. Valè = 9,. Gòch = nil.
Mwen devine sa yo bezwen yo dwe vigil.
. Dwa = nil, se konsa nan fason sa a ou pa fè sa
aktyèlman bezwen konnen lòd la struct a,
ak ki lè ou ap li sa a, li la pi plis eksplisit
sou sa k valè a ke yo te inisyalizèd a.
>> Sa rive yo dwe youn nan bagay sa yo ke -
se konsa, pou pati ki pi, C + + se yon suransanbl nan C.
Ou ka pran C kòd, deplase li nan men C + +, epi li ta dwe konpile.
Sa a se youn nan bagay sa yo ke C + + pa sipòte, se konsa moun yo gen tandans pa fè li.
Mwen pa konnen si sa a, se rezon ki fè la sèlman moun ki gen tandans pa fè li,
men ka a kote mwen te bezwen sèvi ak li bezwen yo travay avèk C + + ak Se konsa, mwen pa t 'kapab sèvi ak sa a.
Yon lòt egzanp sou yon bagay ki pa travay avèk C + + se
ki jan malok retounen yon "* anile," teknikman,
men ou ta ka jis di Char * x = tou sa malok,
epi li pral otomatikman yo jete nan yon * Char.
Sa jete otomatik pa rive nan C + +.
Sa pa t 'vle konpile, ak ou ta fòmèlman bezwen di
Char *, malok, kèlkeswa sa, nan voye l 'jete nan yon * Char.
Pa gen anpil bagay ki C ak C + + dakò sou li a,
men sa yo se de.
Se konsa, nou pral ale ak sa a sentaks.
Men, menm si nou pa t 'ale ak sa sentaks,
ki sa ki - ta ka sa ki mal ak sa a?
[Elèv] mwen pa bezwen dèreferans li? >> Yeah.
Sonje ke flèch la gen yon dèreferans enplisit,
epi konsa lè nou jis ap fè fas ak yon struct,
nou vle itilize. jwenn nan yon jaden andedan nan struct la.
Menm lè a, sèlman fè nou itilize flèch se lè nou vle fè -
byen, flèch ki ekivalan a -
se sa li ta vle di ke si mwen te itilize flèch.
Tout vle di flèch la, dèreferans sa a, kounye a mwen nan yon struct, e mwen ka jwenn jaden an.
Swa jwenn jaden an dirèkteman oswa dèreferans epi pou yo jwenn jaden an -
Mwen devine sa a ta dwe valè.
Men, isit la mwen fè fas ak jis struct yon, se pa yon konsèy nan yon struct,
Se poutèt sa mwen pa ka sèvi ak flèch la.
Men, sa a sòt de bagay sa nou ka fè pou tout nœuds.
Oh Bondye mwen an.
Sa a se 6, 7, ak 3.
Lè sa a, nou ka mete kanpe branch yo nan pyebwa nou yo, nou ka gen 7 -
nou ka fè sa, bò gòch li yo ta dwe lonje dwèt sou 3.
Se konsa, kouman nou fè sa?
[Elèv yo, enkonpreansibl] >> Yeah. Adrès postal la nan node3,
epi si ou pa t 'gen adrès li, Lè sa a, li jis pa t' vle konpile.
Men, sonje ke sa yo se endikasyon nœuds kap vini yo.
Dwa a ta dwe lonje dwèt sou 9,
ak 3 yo ta dwe lonje dwèt sou bò dwat la a 6.
Mwen panse ke sa a se tout ansanm. Nenpòt kòmantè oswa kesyon?
[Elèv yo, enkonpreansibl] rasin nan a pwal 7.
Nou ka jis di ne * ptr =
oswa rasin, = & node7.
>> Pou rezon nou yo, nou ap pral fè fas ak insert,
pou nou ap ale nan vle ekri yon fonksyon insert nan pye bwa sa a binè
ak insert se inevitableman ale nan rele malok yo kreye yon ne nouvo pou pyebwa sa a.
Se konsa, bagay yo pral jwenn sal ak lefèt ke kèk nœuds
yo se kounye a sou chemine a
ak nœuds lòt yo ale nan fini moute sou pil wòch la, lè nou antre yo.
Sa a se parfe ki valab, men rezon ki fè la sèlman
nou ap kapab fè sa a sou chemine a
se paske li nan tankou yon egzanp parvenus ke nou konnen
se pye bwa a sipoze konstwi kòm 7, 3, 6, 9.
Si nou pa t 'gen sa a, lè sa a nou pa ta gen yo malok an plas an premye.
Kòm nou pral wè yon ti jan pita, nou ta dwe malloc'ing.
Kounye a li nan parfe rezonab mete yo sou chemine a,
Men, kite a chanje sa a nan yon aplikasyon malok.
Se konsa, chak nan sa yo se kounye a pral fè yon bagay tankou
ne * node9 = malok (sizof (ne)).
Epi, koulye a nou pral gen fè chèk nou an.
si (node9 == nil) - Mwen pa t 'vle ke -
retounen 1, ak Lè sa a, nou ka fè node9-> paske kounye a li nan yon konsèy,
valè = 6, node9-> kite = nil,
node9-> dwa = nil,
e nou pral gen fè sa pou chak nan sa yo nœuds.
Se konsa, olye, kite la mete l 'anndan yon fonksyon ki apa a.
Se pou nou rele li ne * build_node,
ak sa a se yon ti jan ki sanble ak APIs a nou bay pou Huffman kodaj.
Nou ba ou fonksyon inisyalizasyon pou yon pye bwa
ak deconstructor "fonksyon" pou moun ki pye bwa ak menm bagay la pou forè.
>> Se konsa, isit la nou pwal gen yon fonksyon inisyalizasyon
jis bati yon ne pou nou.
Epi li pral gade bèl anpil egzakteman tankou sa a.
Apre sa, mwen ap menm pral fè parese epi yo pa chanje non an nan varyab la,
menm si node9 pa fè okenn sans ankò.
Oh, mwen devine valè node9 a pa ta dwe te 6.
Koulye a, nou ka retounen node9.
Ak isit la nou ta dwe retounen nil.
Tout moun dakò sou ki fonksyon bati-yon-ne?
Se konsa, kounye a nou ka jis rele ke yo bati nenpòt ne ki gen yon valè yo bay ak endikasyon nil.
Koulye a, nou ka rele sa, nou ka fè ne * node9 = build_node (9).
Li kite yo fè. . .
, 6, 3, 7, 6, 3, 7.
Epi, koulye a nou vle yo mete kanpe endikasyon yo menm,
eksepte kounye a tout bagay ap deja an tèm de pwent
Se konsa pa bezwen adrès la nan.
Oke. Se konsa, sa ki nan bagay la pase mwen vle fè?
Genyen nan yon erè-w tcheke ke mwen pa fè.
Ki sa ki bati retounen ne?
[Elèv yo, enkonpreansibl] >> Yeah. Si malok echwe, li pral retounen nil.
Se konsa, mwen pral paresezman mete l 'desann isit la olye pou yo fè yon kondisyon pou yo chak.
Si (node9 == nil, oswa - menm senpl,
sa a se ekivalan a jis si node9 pa.
Se konsa, si pa node9, oswa ou pa node6, oswa ou pa node3, oswa ou pa node7, retounen 1.
Petèt nou ta dwe enprime malok echwe, oswa yon bagay.
[Elèv] Èske fo egal a nil kòm byen?
[Bowden] Nenpòt valè zewo se fo.
Se konsa, nil se yon valè zewo.
Zewo se yon valè zewo. Fo se yon valè zewo.
Nenpòt - bèl anpil sèlman 2 valè yo zewo se nil epi zewo,
fo se jis regle defini kòm zewo.
Sa a aplike tou si nou deklare mondyal varyab.
Si nou te gen rasin * ne moute isit la,
Lè sa a, - bagay la bèl sou varyab mondyal se yo ke yo toujou gen yon valè inisyal.
Sa se pa vre nan fonksyon, ki jan andedan nan isit la,
si nou gen, tankou, ne * oswa x ne.
Nou pa gen okenn lide ki sa x.value, x.whatever,
oswa nou te ka enprime yo, li yo ta kapab abitrè.
Sa a se pa vre nan varyab mondyal.
Se konsa, ne rasin oswa x ne.
Pa default, tout bagay ki nan mondyal, si li pa trete keksyon inisyalizèd nan kèk valè,
te gen yon valè zewo kòm valè li yo.
Se konsa, isit la, ne rasin *, nou pa trete keksyon inisyalize li nan anyen,
se konsa valè default li yo pral nil, ki se valè a zewo nan pwent.
Valè a default pou x ki pral vle di ke x.value se zewo,
x.left se nil, ak x.right se nil.
Se konsa, depi li se yon struct, nan tout jaden ki te andeyò struct a pral zewo valè.
Nou pa bezwen sèvi ak ki isit la, menm si.
[Elèv] strukt yo se diferan pase varyab lòt, epi varyab yo lòt yo
valè fatra; sa yo, se zewo?
[Bowden] valè Lòt tou. Se konsa, nan x, x yo pral zewo.
Si li la nan dimansyon mondyal, li gen yon valè inisyal. >> Okay.
[Bowden] Swa valè inisyal la ou te bay li oswa zewo.
Mwen panse ke pran swen de tout bagay sa yo.
>> Oke. Se konsa, yon pati nan pwochen nan kesyon an mande ou,
"Koulye a, nou vle ekri yon fonksyon rele gen
ak yon pwototip nan bouleen gen valè int. "
Nou pa pral fè bouleen gen valè int.
Pwototip nou an ki pral gade tankou
bouleen gen (valè int.
Lè sa a, n ap tou ale nan pase l pye bwa a
ke li ta dwe tcheke yo wè si li gen ki valè.
Se konsa, ne * pyebwa). Oke.
Lè sa a, nou ka rele l 'ak yon bagay tankou,
petèt nou pral vle printf oswa yon bagay.
Gen 6, rasin nou an.
Ki ta dwe retounen yon sèl, oswa vre,
Lè nou konsidere ke gen 5 rasin yo ta dwe retounen fo.
Se konsa, pran yon dezyèm pour enplimant sa.
Ou kapab fè l swa iterativman oswa recursive.
Bagay nan bon sou wout la nou te mete bagay yo se ke
li prèt tèt li solisyon repetitif nou pi fasil
pase fason Mondyal la-varyab te fè sa.
Paske si nou jis gen gen valè Int, lè sa a nou pa gen okenn fason pou recursing desann subtrees.
Nou ta gen gen yon fonksyon lòt moun sanble apa ke recurses desann subtrees yo pou nou.
Men, depi nou te chanje li nan pran pye bwa an kòm yon agiman,
ki li ta dwe te toujou an plas an premye,
kounye a nou kapab recurse pi fasil.
Se konsa, repete oswa repetitif, nou pral ale sou toude,
men nou pwal wè ke bout repetitif yo te byen fasil.
Oke. nenpòt moun ki gen yon bagay nou ka travay avèk?
>> [Elèv] mwen te gen yon repete solisyon an. >> Tout dwa, repete.
Okay, sa a sanble bon.
Se konsa, vle mache nou nan li?
[Elèv] Sure. Se konsa, mwen mete yon varyab tanporèr jwenn ne an premye nan pyebwa sa a.
Lè sa a, mwen jis boukl nan pandan y ap tanporèr pa nil egal,
Se konsa, pandan te toujou nan bwa a, mwen devine.
Men, si valè a ki egal a valè a ki tanporèr a montre a,
Lè sa a, li retounen ke valè.
Sinon, li tcheke si li nan sou bò dwat la oswa bò gòch la.
Si ou janm jwenn yon sitiyasyon kote gen nan pa gen pyebwa pi plis,
Lè sa a, li retounen - li sòti riban a ak retounen fo.
[Bowden] Okay. Se konsa, ki sanble bon.
Nenpòt moun ki gen nenpòt kòmantè sou anyen?
Mwen pa gen okenn kòmantè ekzaktitid nan tout.
Youn nan bagay nou ka fè se nèg sa a.
Oh, li pral ale yon longish ti kras.
Mwen pral ranje ki leve. Oke.
>> Tout moun ta dwe sonje ki jan tèrsyèr travay.
Gen definitivman te ti tès nan tan lontan an
ki ba ou yon fonksyon ki gen yon operatè tèrsyèr,
epi di, tradwi sa a, fè yon bagay ki pa sèvi ak tèrsyèr.
Se konsa, sa a se yon ka trè komen nan lè mwen ta panse yo sèvi ak tèrsyèr,
kote si gen kèk kondisyon mete yon varyab ak yon bagay,
lòt bagay mete varyab sa a menm yo yon lòt bagay.
Sa a se yon bagay ki trè souvan yo ka transfòme nan sa a sòt de bagay
kote mete varyab sa a sa a - oswa, byen, se sa a vre? Lè sa a, sa a, lòt bagay sa a.
[Elèv] youn nan premye se si se laverite, dwa?
[Bowden] Yeah. Wout la mwen toujou li li l 'se, tanporèr egal valè ki pi konsekan pase valè tanporèr,
Lè sa a, sa a, lòt bagay sa a. Li nan mande yon kesyon.
Èske li pi gran? Lè sa a, fè bagay la an premye. Lòt Bagay fè menm bagay la dezyèm fwa.
Mwen prèske toujou - kolon an, mwen jis - nan tèt mwen, mwen li kòm lòt bagay.
>> nenpòt moun ki gen yon solisyon repetitif?
Oke. Yon sèl sa a nou pral - li te kapab deja vin yon grannèg,
men nou pwal fè li menm pi bon.
Sa a se bèl anpil lide nan menm egzak.
Se jis nan, byen, ou vle eksplike?
[Elèv] Sure. Se konsa, nou ap fè si ke pyebwa a pa nil an premye,
paske si pyebwa a se nil Lè sa a, li pral retounen fo paske nou pa te jwenn li.
Men, si gen nan toujou yon pye bwa, nou antre nan - nou premye tcheke si valè a se ne aktyèl la.
Retounen vre si li se, ak si se pa nou recurse sou bò gòch la oswa dwa.
Èske sa son ki apwopriye? >> MWA-hmm. (AKÒ)
Se konsa, remake ke sa a se prèske - estriktirèl anpil menm jan ak solisyon an repete.
Se jis ke olye pou yo recursing, nou te gen yon riban pandan y ap.
Ak baz ka a isit la kote pye bwa a pa nil egal
te kondisyon la anba ki nou te kraze yon riban a pandan y ap.
Yo ap trè sanblab. Men, nou ap ale nan pran etap sa a yon sèl pli lwen.
Koulye a, nou fè menm bagay la isit la.
Avi nou ap retounen menm bagay la nan tou de nan liy sa yo,
eksepte pou yon sèl agiman se diferan.
Se konsa, nou pwal fè ki nan yon tèrsyèr.
Mwen frape yon bagay opsyon, epi li te fè yon senbòl. Oke.
Se konsa, nou ap ale nan retounen a ki gen ladan.
Sa a se ap resevwa yo dwe liy miltip, byen, agrandi nan li ye.
Anjeneral, kòm yon bagay stil, mwen pa panse ke gen anpil moun ki
mete yon espas apre flèch la, men mwen devine si ou se ki konsistan, li la amann.
Si valè se mwens pase valè pyebwa, nou vle recurse sou bò gòch pyebwa,
lòt bagay nou vle recurse sou bò dwat pyebwa.
Se konsa, sa ki te etap youn nan fè sa a gade pi piti.
Etap de nan fè sa a gade ki pi piti -
nou ka separe sa a nan liy miltip.
Oke. Etap de nan fè li gade ki pi piti se isit la,
se konsa valè retounen egal valè pyebwa, oswa gen tou sa.
>> Sa a se yon bagay enpòtan.
Mwen pa si si li te di li klèman nan klas la,
men sa yo rele kout-sikwi evalyasyon.
Lide a isit la se valè == valè pyebwa.
Si se sa ki se verite, Lè sa a, sa a se laverite, e nou vle 'oswa' ke ak tou sa se sou isit la.
Se konsa, san yo pa menm panse sou tou sa se sou isit la,
ki sa ki ekspresyon nan tout pral retounen?
[Elèv] vre? >> Yeah, paske vre nan anyen,
or'd - or'd oswa laverite ak anyen se nesesèman verite.
Se konsa, le pli vit ke nou wè valè retounen = valè pyebwa,
nou ap jis pral retounen vre.
Pa menm ale nan recurse plis gen desann liy lan.
Nou ka pran etap sa a yon sèl pli lwen.
Pyebwa yo ap Retounen pa nil egal ak tout bagay sa yo.
Li te fè li yon fonksyon yon sèl-liy.
Sa a se tou yon egzanp sou kout-sikwi evalyasyon.
Men koulye a, li nan lide la menm -
olye pou yo - Se konsa, si pyebwa a pa nil egal - oswa, byen,
si pye bwa fè sa ki nil egal, ki se ka a move,
si pyebwa egal nil, lè sa a kondisyon an premye a pwal fo.
Se konsa, fo anded ak anyen a pwal ki sa?
[Elèv] Fo. >> Yeah. Sa a se lòt mwatye a nan kout-sikwi evalyasyon,
kote si pyebwa pa egal nil, lè sa a nou pa pral menm ale -
oswa si pye bwa fè sa ki nil egal, Lè sa a, nou pa pral fè valè == valè pyebwa.
Nou jis ap ale nan imedyatman retounen fo.
Ki se yon bagay enpòtan, depi li si li pa t 'kout-sikwi evalye,
Lè sa a, si pye bwa fè sa ki nil egal, kondisyon sa a dezyèm ki pral fòt segman,
paske pyebwa-> valè a dereferencing nil.
Se konsa, sa a, se sa. Ka fè sa a - chanje yon fwa sou.
Sa a se yon bagay trè komen tou, pa fè liy sa a yon sèl ak sa a,
men li la yon bagay ki komen nan kondisyon yo, petèt pa dwa isit la,
Men, si (pyebwa! nil =, ak pye bwa-> valè == valè), fè tout sa.
Sa se yon kondisyon trè komen, kote olye pou yo gen
kraze sa a an de ifs, kote renmen, se nil nan pyebwa?
Oke, sa se pa nil, pou kounye a se valè a pyebwa ki egal ak valè? Fè sa.
Olye de sa, kondisyon sa a, sa a pa janm ap segman fòt
paske li pral kraze konnen si sa a k ap pase yo nil.
Oke, Mwen devine si pyebwa ou a se yon konsèy konplètman envalid, li toujou kapab segman fòt,
men li pa ka segman fòt si pyebwa se nil.
Si se te nil, li ta kraze deyò anvan ou te janm dereferenced konsèy la nan plas an premye.
[Elèv] Èske sa se evalyasyon yo rele parese?
>> [Bowden] evalyasyon Parese se yon bagay ki apa a.
Evalyasyon parese se plis tankou ou mande pou gen yon valè,
ou mande kalkile yon valè, kalite, men ou pa bezwen li imedyatman.
Se konsa, jiskaske ou aktyèlman bezwen li, ki sa li pa evalye.
Sa a se pa egzakteman menm bagay la, men nan Huffman pset a,
li di ke nou "paresezman" ekri.
Rezon ki fè nou fè sa se paske nou ap aktyèlman bufe ekri a -
nou pa vle ekri Bits endividyèl nan yon moman,
oswa bytes moun nan yon moman, nou olye vle jwenn yon ti moso nan bytes.
Lè sa a, yon fwa nou gen yon ti moso nan bytes, lè sa a nou pral ekri li soti.
Menm si ou mande li nan ekri - epi fwrite ak frèd fè sòt nan menm nan bagay sa yo.
Yo tanpon li ou ak ekri.
Menm si ou mande li nan ekri imedyatman, li pwobableman pa pral.
Epi ou pa ka asire w ke bagay yo ap mache dwe ekri
jiskaske ou rele hfclose oswa kèlkeswa sa li ye,
ki lè sa a di, oke, mwen fèmen dosye m 'yo,
sa vle di mwen ta pi bon ekri tout bagay mwen pa te ekri ankò.
Li te gen pa gen okenn bezwen ekri tout bagay soti
jiskaske ou yo fèmen dosye a, ak Lè sa a, li bezwen yo.
Se konsa, sa se sèlman sa ki parese - li tann jouk li gen rive.
Sa a - pran 51 epi ou pral antre andedan li nan plis detay,
paske okanl ak tou sa ki 51, tout bagay se rkursyon.
Pa gen okenn repete solisyon, fondamantalman.
Tout se rkursyon, ak evalyasyon parese
a pwal enpòtan pou yon anpil nan sikonstans
kote, si ou pa t 'paresezman evalye, ki ta ka vle di -
Egzanp la se sous dlo yo, ki se enfiniman lontan.
Nan teyori, ou ka panse nan nimewo ki natirèl kòm yon kouran nan 1-2-3-4-5-6-7,
Se konsa, paresezman evalye bagay yo amann.
Si mwen di mwen vle nimewo a dizyèm, lè sa a mwen ka evalye jiska nimewo a dizyèm.
Si m 'vle nimewo a santyèm, lè sa a mwen ka evalye jiska nimewo a santyèm.
San yo pa evalyasyon parese, Lè sa a, li pral pou yo eseye evalye tout nimewo imedyatman.
W ap evalye nimewo enfiniman anpil, ak sa a, se jis pa posib.
Se konsa, gen yon anpil nan sikonstans kote parese evalyasyon
se jis esansyèl nan trape bagay sa yo travay.
>> Koulye a, nou vle ekri insert kote insert a pwal
Menm jan an chanje nan definisyon li yo.
Se konsa, kounye a li nan insert bouleen (Int valè).
Nou pwal chanje sa insert bouleen (Int valè, ne * pyebwa).
Nou ap aktyèlman pral chanje ke ankò nan yon ti jan, nou pral wè pou ki rezon.
Ak nan kite deplase build_node, jis pou èk an nan li,
pi wo a insert pou nou pa oblije ekri yon pwototip fonksyon.
Ki se yon allusion ke ou ap pral lè l sèvi avèk build_node nan insert.
Oke. Pran yon minit pou sa.
Mwen panse mwen sove dat revizyon an si ou vle rale de sa,
oswa, omwen, mwen te fè kounye a.
Mwen te vle pran yon ti repo ti tay bezwen panse osijè de lojik nan insert,
si ou pa kapab panse a li.
Fondamantalman, ou pral sèlman toujou ap mete nan fèy bwa.
Tankou, si mwen insert 1, Lè sa a, mwen inevitableman yo pral mete 1 -
Mwen pral chanje an nwa - I'll dwe mete 1 sou isit la.
Oswa si mwen insert 4, mwen vle yo mete 4 sou isit la.
Se konsa, pa gen pwoblèm sa ou fè sa, w ap ale nan dwe mete nan yon fèy.
Tout sa ou dwe fè se repekte desann pyebwa a jiskaske ou jwenn yo ne la
ki ta dwe paran ne la, paran ne nan nouvo a,
ak Lè sa a, chanje konsèy agoch ​​oswa adwat li yo, tou depann de si wi ou non
li nan pi gran pase oswa mwens pase ne aktyèl la.
Chanje ki konsèy nan pwen ne nouvo ou.
Se konsa, repekte desann pyebwa a, fè pwen nan fèy ne nan nouvo.
Panse tou ke sou rezon ki fè ke entèdi ki kalite sitiyasyon anvan yo,
kote mwen konstwi pyebwa a binè kote li te kòrèk
si ou sèlman gade yon ne sèl,
men 9 te nan kite nan 7 si ou iteratif desann tout wout la.
Se konsa, sa a, se enposib nan senaryo sa a, depi -
Reflechi sou inséré 9 oswa yon bagay; nan ne an trè premye,
Mwen pral wè 7 ak mwen jis pral pou yo ale nan bò dwat la.
Se konsa, pa gen pwoblèm sa m 'fè, si mwen mete pa ale nan yon fèy,
ak nan yon fèy lè l sèvi avèk algorithm ki apwopriye a,
li pral yo dwe enposib pou m 'nan insert 9 nan kite nan 7
paske le pli vit ke mwen frape 7 Mwen pral pou yo ale nan bò dwat la.
nenpòt moun ki gen yon bagay yo kòmanse avèk?
[Elèv] m 'fè. >> Sure.
[Elèv yo, enkonpreansibl]
[Lòt elèv yo, enkonpreansibl]
[Bowden] Li nan apresye. Oke. Vle eksplike?
>> [Elèv] Depi nou konnen ke nou te mete
nœuds nouvo nan fen pyebwa a,
Mwen boukl nan pye bwa a iterativman
jouk tan mwen te rive nan yon ne ki pwente nil.
Lè sa a, mwen deside mete l 'swa sou bò dwat la oswa bò gòch la
lè l sèvi avèk sa a varyab dwa; li te di m 'ki kote yo mete li.
Lè sa a,, ki esansyèlman, mwen jis te fè ki dire -
pwen sa a ne tanporèr ne nan nouvo sa yo ki te kreye,
swa sou bò gòch la oswa sou bò dwat la, depann sou sa ki valè a dwa te ye a.
Finalman, mwen mete valè a ne nouvo nan valè a nan tès li yo.
[Bowden] Okay, Se konsa, mwen wè yon pwoblèm isit la.
Sa a se tankou 95% nan wout la a.
Pwoblèm nan yon sèl ki mwen wè, byen, nenpòt lòt moun wè yon pwoblèm?
Ki sa ki sikonstans la anba kote yo kraze soti nan riban an?
[Elèv] Si tanporèr se nil? >> Yeah. Se konsa, kouman ou kase soti nan riban an se si tanporèr se nil.
Men, sa m 'fè sa ki dwat isit la?
Mwen dèreferans tanporèr, ki se inevitableman nil.
Se konsa, bagay la lòt sa ou bezwen fè se pa sèlman kenbe tras jouk tanporèr se nil,
ou vle kenbe tras nan paran an nan tout fwa.
Nou menm tou nou vle paran * ne, mwen devine nou ka kenbe yo ke nan nil nan premye.
Sa a se pral gen etranj konpòtman pou rasin pyebwa a,
men nou pwal jwenn ak sa yo ki.
Si valè a pi konsekan pase tou sa, lè sa a tanporèr = tanporèr dwat.
Men, anvan nou fè sa, paran = tanporèr.
Oswa yo paran yo toujou ale nan tanporèr egal? Se ke ka a?
Si tanporèr se pa nil, lè sa a mwen pral pou avanse pou pi desann, pa gen pwoblèm sa,
nan yon ne pou ki tanporèr se paran an.
Se konsa, paran k ap pase yo dwe tanporèr, ak Lè sa a, mwen demenaje tanporèr desann.
Koulye a, tanporèr se nil, men pwen pou paran pou paran an nan bagay la ki se nil.
Se konsa, desann isit la, mwen pa vle yo mete dwa egal 1.
Se konsa, mwen te deplase sou bò dwat la, kidonk si dwa = 1,
ak mwen devine nou menm tou nou vle fè -
si ou deplase a gòch la, ou vle mete dwa egal a 0.
Oswa lòt moun si ou te janm deplase a dwat la.
Se konsa, dwa = 0. Si dwa 1 =,
kounye a nou vle fè paran dwa newnode nan konsèy,
lòt bagay nou vle fè paran gòch newnode a konsèy.
Kesyon sou sa?
Oke. Se konsa, sa se yon fason a nou - byen, aktyèlman, olye pou yo fè sa,
nou mwatye espere ou itilize build_node.
Lè sa a, si newnode egal nil, retounen fo.
Sa a se sa. Koulye a, sa a se sa nou espere ou fè.
>> Sa a se sa solisyon yo anplwaye fè.
Mwen dakò avèk sa a kòm wout la "dwa" pou yo ale sou li
men sa a se parfe amann epi li pral travay.
Youn nan bagay ki se yon dwa ti kras etranj kounye a se
si pye bwa la kòmanse koupe kòm nil, nou pase nan yon pyebwa nil.
Mwen devine li depann de ki jan ou defini konpòtman an nan pase nan yon pyebwa nil.
Mwen ta panse ke si w pase nan yon pyebwa nil,
Lè sa a, yo mete valè a nan yon pyebwa nil
ta dwe jis retounen yon pye bwa kote valè a sèlman se ke ne sèl.
moun dakò ak sa? Ou te kapab, si ou te vle,
si ou pase nan yon pyebwa nil
, epi ou vle insert yon valè nan li, retounen fo.
Li nan jiska ou defini sa.
Pou w fè nan premye bagay mwen di ak Lè sa a, -
byen, w ap ale nan gen pwoblèm pou fè sa, paske
li ta pi fasil si nou te gen yon konsèy mondyal ak bagay an,
men nou pa, kidonk si pyebwa se nil, pa gen anyen nou ka fè sou sa.
Nou ka jis retounen fo.
Se konsa, mwen pral chanje insert.
Nou teknikman te kapab jis chanje dwa sa a isit la,
li montre kouman li a iteration sou bagay sa yo,
men mwen m 'pral chanje insert pran yon ne ** pyebwa.
Endikasyon doub.
Ki sa sa vle di?
Olye pou yo fè fas ak endikasyon nœuds,
bagay la mwen pral yo dwe manipile se sa a konsèy.
Mwen pral yo dwe manipile sa a konsèy.
Mwen pral yo dwe manipile endikasyon dirèkteman.
Sa a fè sans depi, panse sou desann -
byen, kounye a sa a pwen nil.
Ki sa mwen vle fè se manipile sa a konsèy nan pwen pa nil.
Mwen vle li nan lonje dwèt sou ne nouvo mwen an.
Si m 'jis kenbe tras nan pwent bagèt m' yo,
Lè sa a, mwen pa bezwen nan kenbe tras nan yon konsèy paran yo.
Mwen ka jis kenbe tras yo wè si konsèy la ap lonje dwèt nil,
epi si konsèy la ap lonje dwèt nil,
chanje li nan pwen ne la mwen vle yo.
Apre sa, mwen kapab chanje li depi mwen gen yon konsèy konsèy la.
Ann wè sa a kounye a.
Ou ka aktyèlman fè li recursive trè fasil.
nou vle fè sa?
Wi, nou fè.
>> Ann gade pou wè li recursive.
Premyèman, ki sa ki ka baz nou an pral fè?
Prèske toujou ka baz nou yo; men aktyèlman, sa a se kalite difisil.
Bagay sa yo premye premye, si (pyebwa == nil)
Mwen devine nou ap jis pral retounen fo.
Sa a se diferan de nil pyebwa ou ke yo te.
Sa a se konsèy nan konsèy rasin ou yo te nil
ki vle di ke konsèy rasin ou a pa egziste.
Se konsa, desann isit la, si mwen fè
* ne - kite yo jis jam itilize sa a.
Ne * rasin = nil,
ak Lè sa a, mwen pral rele insert nan fè yon bagay tankou,
insert 4 nan & rasin.
Se konsa, & rasin, si rasin se yon * ne
Lè sa a, & rasin a pwal yon ** ne.
Sa a se valid. Nan ka sa a, pye bwa, moute isit la,
pyebwa a pa nil - oswa insert.
Isit la. Tree se pa nil; * pyebwa se nil, ki se amann
paske si pyebwa * se nil, lè sa a mwen ka manipile li
kounye a lonje dwèt sou sa m 'vle li nan pwen yo.
Men, si pye bwa se nil, sa vle di mwen jis te desann isit la, li di nil.
Sa pa fè sans. Mwen pa ka fè anyen ak sa.
Si pye bwa a se nil, retounen fo.
Se konsa, mwen fondamantalman deja di sa ki ka baz reyèl nou an se.
Ak sa ki se ke pral fè?
[Elèv yo, enkonpreansibl]
[Bowden] Wi. Se konsa, si (* pyebwa == nil).
Sa a gen rapò ak ka a sou isit la
kote si konsèy wouj mwen, se yon konsèy la mwen konsantre sou,
konsa tankou mwen konsantre sou sa a konsèy, kounye a mwen konsantre sou sa a konsèy.
Koulye a, mwen konsantre sou sa a konsèy.
Se konsa, si konsèy wouj m 'yo, ki se ** ne m' yo,
se tout tan - si *, konsèy wouj m 'yo, se tout tan nil,
sa vle di se mwen menm ki nan ka a kote mwen konsantre sou yon konsèy ki pwen -
sa a se yon konsèy sa ki nan yon fèy.
Mwen vle chanje sa a konsèy nan pwen ne nouvo mwen an.
Vini non tounen sou isit la.
Newnode m 'yo va jis pou ne * n = build_node (valè)
Lè sa a, n, si n nil =, retounen fo.
Lòt Bagay nou vle chanje sa konsèy la se kounye a lonje dwèt
kounye a lonje dwèt sou fèk bati ne nou an.
Nou ka aktyèlman fè sa isit la.
Olye pou yo di n, nou di * pyebwa = si * pyebwa.
Tout moun konprann sa? Sa pa fè fas ak endikasyon endikasyon,
nou kapab chanje endikasyon nil nan pwen yo ak bagay nou vle yo lonje dwèt sou.
Sa a ka baz nou an.
>> Koulye a, ankò nou an, oswa rkursyon nou an,
a pwal trè menm jan ak tout lòt recursions nou te toujou ap fè.
Nou pwal vle insert valè,
e kounye a, mwen pral sèvi ak tèrsyèr ankò, men ki sa ki kondisyon nou an pral fè?
Ki sa ki li nou ap chèche pou deside si nou vle ale agoch ​​oswa adwat?
Se pou nou fè l 'nan etap apa.
Si (valè <) ki sa?
[Elèv] valè pyebwa a?
[Bowden] Se konsa, sonje ke mwen kounye a -
[Elèv yo, enkonpreansibl]
[Bowden] Yeah, se konsa isit la, se pou yo di ke sa a flèch vèt
ki se yon egzanp ki sa pyebwa kounye a se, se yon konsèy sa a konsèy.
Se konsa, sa vle di mwen se yon konsèy nan yon konsèy nan 3.
Dèreferans la de fwa kònen klewon bon.
Ki sa mwen - ki jan mwen fè sa?
[Elèv] dèreferans yon fwa, ak Lè sa a, fè flèch ki fason?
[Bowden] Se konsa, (* pyebwa) se dèreferans a yon fwa, -> valè
ki pral ban m 'valè a nan ne an ke mwen endirèkteman lonje dwèt yo.
Se konsa, mwen kapab tou ekri li ** tree.value si ou prefere sa.
Swa travay.
Si se ka a, Lè sa a, mwen vle rele insert ak valè.
Ak ki sa ki ne mete ajou mwen ** pral fè?
Mwen vle pou yo ale nan bò gòch la, se konsa ** tree.left a pwal bò gòch mwen an.
Apre sa, mwen vle konsèy la ak sa yo ki bagay
pou ke si bò gòch la fini moute yo te konsèy la nil,
Mwen ka chanje li nan pwen ne nouvo mwen an.
>> Epi ka-a lòt ka trè sanblab.
Se pou nou aktyèlman fè ki tèrsyèr mwen kounye a.
Antre valè si valè <(** pyebwa). Valè.
Lè sa a, nou vle mete ajou ** nou yo bò gòch la,
lòt bagay nou vle mete ajou ** nou a dwat la.
[Elèv] ki resevwa konsèy nan konsèy la?
[Bowden] Sonje ke - ** tree.right se yon etwal ne.
[Elèv yo, enkonpreansibl] >> Yeah.
** Tree.right, se tankou sa a konsèy oswa yon bagay.
Se konsa, lè yo pran yon konsèy ak sa yo ki, ki ban m 'sa m' vle
nan konsèy la ke nèg.
[Elèv] t 'kapab n' al jwenn lòt peyi sou ankò poutèt sa nou lè l sèvi avèk pwent yo de?
[Bowden] Yeah. Se konsa, - pa gen, ou ka, ak solisyon ke anvan
se te yon fason pou fè li san yo pa fè de pwent.
Ou bezwen pou kapab konprann lè l sèvi avèk de pwent,
ak sa a se yon solisyon cleaner.
Epitou, remake ke, ki sa ki pral rive si pyebwa mwen -
ki sa k ap pase si rasin mwen te nil? Kisa k ap pase si mwen fè ka sa a dwa isit la?
Se konsa, ne * rasin = nil, insert 4 nan & rasin.
Ki sa ki rasin pral fè apre sa a?
[Elèv yo, enkonpreansibl] >> Yeah.
Valè rasin a pwal 4.
Gòch rasin a pwal nil, dwa rasin a pwal nil.
Nan ka kote nou pa t 'pase rasin pa adrès li,
nou pa t 'kapab modifye rasin.
Nan ka kote pye bwa a - kote rasin te nil,
nou jis te gen retounen fo. Pa gen anyen nou te ka fè.
Nou pa ka insert yon ne nan yon pyebwa vid.
Men koulye a, nou kapab; nou jis fè yon pyebwa vid nan yon pyebwa yon sèl-ne.
Ki se nòmalman wout la prévu ke li nan sipoze nan travay.
>> Anplis de sa, sa a se siyifikativman pi kout pase
tou kenbe tras de paran an, ak pou ou répétèr desann tout wout la.
Koulye a, mwen gen paran mwen, mwen menm jis gen konsèy paran dwat mwen mèt fè tout sa a.
Olye de sa, si nou te fè sa iterativman, li ka d 'lide a menm ki gen yon riban pandan y ap.
Men, olye pou yo gen fè fas ak konsèy paran m 'yo,
olye konsèy mwen ye kounye a ta dwe bagay la
ke mwen dirèkteman modifye nan pwen ne nouvo mwen an.
Mwen pa gen fè fas ak si wi ou non li nan lonje dwèt sou bò goch la.
Mwen pa gen fè fas ak si wi ou non li nan lonje dwèt a dwat la.
Se jis nan tou sa sa a konsèy la, mwen pral mete l 'nan pwen ne nouvo mwen an.
Tout moun konprann ki jan li fonksyone?
Si ou pa rezon sa a nou vle fè l 'fason sa a,
men omwen ke sa a travay kòm yon solisyon?
[Elèv] Ki kote nou retounen vre?
[Bowden] Sa a pwobableman dwa isit la.
Si nou kòrèkteman insert li, retounen vre.
Lòt Bagay, desann isit la nou ap ale nan vle retounen tou sa retounen insert.
>> Ak sa ki nan espesyal sou sa a fonksyon repetitif?
Li nan ke repetitif, se konsa osi lontan ke nou konpile ak kèk Optimization,
li pral rekonèt ke epi ou pa janm ap jwenn yon debòde chemine de sa a,
menm si pyebwa nou an ki gen yon wotè ki 10,000 oswa 10 milyon dola.
[Elèv yo, enkonpreansibl]
[Bowden] Mwen panse ke li fè li nan Dash - nan ki nivo Optimization
sa yo mande pou yon rkursyon ke yo dwe rekonèt.
Mwen panse ke li rekonèt - GCC ak rezone
yo te genyen tou siyifikasyon diferan pou nivo Optimization yo.
Mwen vle di li nan, 2 DashO pou asire w ke li pral rekonèt ke rkursyon.
Men, nou - ou ta ka konstwi tankou yon egzanp Fibonocci oswa yon bagay.
Li pa fasil li teste ak sa-a, paske li difisil yo konstwi
yon pye bwa binè sa a, se konsa gwo.
Men, yeah, mwen panse ke li la, 2 DashO ki
si ou konpile ak DashO 2, li pral gade pou rkursyon ke
ak optimalize ki deyò.
Se pou nou tounen nan - insert nan literalman bagay la pase li bezwen.
Se pou nou tounen nan sipleman ki an plis pase isit la
kote n ap pral fè lide a menm.
Li pral toujou gen defo nan pa te kapab antyèman okipe
lè rasin nan tèt li se nil, oswa antre ki sot pase a se nil,
men olye pou yo fè fas ak yon konsèy paran,
kite a aplike lojik la menm pou kenbe endikasyon endikasyon.
Si isit la nou kenbe ne nou ** akt,
epi nou pa bezwen kenbe tras nan dwa ankò,
men ne ** akt = & pyebwa.
Epi, koulye a riban pandan y ap nou an a pwal pandan y ap akt * pa nil egal.
pa bezwen nan kenbe tras nan paran yo ankò.
pa bezwen nan kenbe tras nan kite la ak dwa.
Apre sa, m'a rele l 'tanporèr, paske n ap deja lè l sèvi avèk tanporèr.
Oke. Se konsa, si (valè> * tanporèr),
Lè sa a, & (* tanporèr) -> dwa
lòt tanporèr = & (* tanporèr) -> kite.
Epi, koulye a, nan pwen sa a, apre yo fin sa a pandan y ap riban,
Mwen sèlman fè sa paske petèt li pi fasil panse osijè de iterativman pase recursive,
men apre sa a pandan y ap riban,
* Tanporèr se konsèy nan nou vle chanje.
>> Anvan nou te gen paran yo, epi nou te vle chanje swa bò gòch paran oswa paran dwat,
men si nou vle chanje dwa paran yo,
Lè sa a, * tanporèr se dwa paran yo, epi nou kapab chanje li dirèkteman.
Se konsa, desann isit la, nou ka fè * tanporèr = newnode, ak sa a, se li.
Se konsa, avi, tout sa nou te fè nan sa a te pran liy nan kòd.
Yo nan lòd yo kenbe tras nan paran an nan tout sa se efò anplis.
Isit la, si nou jis kenbe tras nan konsèy la konsèy la,
e menm si nou te vle debarase m de tout bagay sa yo aparèy òtopedik Curly kounye a,
fè li parèt pi kout.
Sa a kounye a se solisyon an egzak menm,
men mwens liy nan kòd.
Yon fwa ou kòmanse rekonèt sa a kòm yon solisyon ki valab,
li la tou pi fasil rezon sou pase tankou, oke,
poutèt sa mwen gen sa a drapo nan dwa int?
Kisa sa vle di? Oh, li nan tapral ki
chak fwa mwen ale dwat, mwen bezwen mete l ',
lòt bagay si mwen ale kite mwen bezwen mete l 'a zewo.
Isit la, mwen pa oblije rezon sou sa; li nan jis pi fasil yo reflechi sou.
Kesyon?
[Elèv yo, enkonpreansibl] >> Yeah.
Oke, kidonk nan ti jan nan dènye -
Mwen devine yon fonksyon rapid ak pi fasil nou ka fè se,
let's - ansanm, mwen devine, eseye epi ekri yon fonksyon gen
ki pa pran swen si li se yon pye bwa rechèch binè.
Sa a gen fonksyon yo ta dwe retounen vre
si nenpòt kote nan pye bwa sa a binè jeneral se valè a nou ap chèche pou.
Se konsa, kite a premye fè li recursive ak Lè sa a, nou pwal fè li iterativman.
Nou ka aktyèlman jis fè li ansanm, paske sa a a pwal vrèman kout.
>> Ki sa ki ka baz mwen yo pral?
[Elèv yo, enkonpreansibl]
[Bowden] Se konsa, si (pyebwa == nil), Lè sa a, ki sa?
[Elèv] Retounen fo.
[Bowden] Lòt Bagay, byen, mwen pa bezwen lòt bagay la.
Si te ka lòt baz m 'yo.
Valè [Elèv] Tree an? >> Yeah.
Se konsa, si (pyebwa-> valè == valè.
Avi nou ap tounen nan * ne, pa ne ** s?
Konprann pa janm ap bezwen sèvi ak yon ** ne,
depi nou pa yo modifye endikasyon.
Nou jis ap travèse yo.
Si sa rive, lè sa a nou vle tounen vre.
Lòt Bagay nou vle Traverse timoun yo.
Se konsa, nou pa ka lojik sou si tout bagay sa yo bò gòch la ki pi piti a
ak tout bagay sa yo dwa a se pi plis la.
Se konsa, sa ki kondisyon nou an pral fè isit la - oswa, ki sa ki nou pral?
[Elèv yo, enkonpreansibl] >> Yeah.
Tounen gen (valè, pyebwa-> agoch)
oswa gen (valè, pyebwa-> dwa). Epi sa a, li.
Ak Avi a gen kèk evalyasyon kout-sikwi,
kote si nou rive jwenn valè a nan pye bwa a gòch,
nou pa janm bezwen gade pye bwa a dwat.
Sa a fonksyon a tout antye.
Koulye a, kite a fè l 'iterativman,
ki a pwal mwens bèl.
Nou pral pran nan kòmansman an abityèl yo akt ne * = pyebwa.
Pandan ke (akt! = Nil).
Byen vit pral wè yon pwoblèm.
Si akt - soti isit la, si nou janm kase soti nan sa a,
Lè sa a, nou te kouri soti nan bagay sa yo fè yon gade nan, se konsa retounen fo.
Si (akt-> valè == valè), retounen vre.
Se konsa, kounye a, nou se nan yon kote ki -
nou pa konnen si nou vle ale agoch ​​oswa adwat.
Se konsa, abitrèman, kite la jis ale kite.
Mwen te evidamman kouri antre nan yon pwoblèm kote mwen te konplètman abandone tout bagay -
Mwen pral sèlman janm tcheke bò gòch la nan yon pyebwa.
Mwen pa janm pral tcheke pou wè anyen ki se yon pitit dwat Bondye ki gen anyen.
Kouman pou mwen ranje sa a?
[Elèv] Ou gen nan kenbe tras nan bò gòch la ak dwa nan yon pil.
[Bowden] Yeah. Se konsa, kite a fè l '
struct lis, ne * n, ak Lè sa a, ne ** vin apre a?
Mwen panse ke ap travay amann.
Nou vle ale sou bò gòch la, oswa let's - moute isit la.
= Struct lis lis, sa ap kòmanse
soti nan lis sa a struct.
* Lis = nil. Se konsa, ki k ap pase yo dwe lis lye nou
nan subtrees ke nou te sote sou.
Nou pral Traverse kite kounye a,
men depi nou inevitableman bezwen tounen vin jwenn dwa a,
Nou pwal kenbe bò dwat la andedan nan lis struct nou an.
Lè sa a, n ap gen new_list oswa struct,
struct lis *, new_list = malok (sizof (lis)).
Mwen pral inyore erè-tcheke sa, men ou ta dwe tcheke yo wè nil si li la.
New_list ne a li pral lonje dwèt sou -
oh, sa se poutèt sa mwen te vle l 'kanpe isit la. Li k ap pase nan pwen nan yon lis struct dezyèm fwa.
Sa a se jis ki jan lye lis travay.
Sa a se menm bagay la tou kòm yon lis int lye
eksepte nou ap jis ranplase int ak * ne.
Li nan ekzakteman menm bagay la.
Se konsa, new_list, valè ne new_list nou an,
a pwal akt-> dwat.
Valè a nan nou new_list-> pwochen a pwal lis orijinal nou an,
ak Lè sa a, nou pral mete ajou lis nou an nan pwen new_list.
>> Koulye a, nou bezwen kèk sòt de fason pou rale bagay sa yo,
tankou nou te travèse tout bò gòch subtree la.
Koulye a, nou bezwen rale bagay soti nan li,
tankou akt se nil; nou pa vle jis retounen fo.
Nou vle kounye a rale deyò nan lis nouvo nou an.
Yon fason pratik pou fè sa - byen, aktyèlman, gen nan fason miltip nan fè sa.
Nenpòt moun ki gen yon sijesyon?
Ki kote pou mwen ta dwe fè sa a oswa ki jan mwen ta dwe fè sa?
Nou sèlman gen yon minit koup, men nenpòt sijesyon?
Olye pou yo - yon fason, olye pou yo kondisyon nou an ke yo te pandan y ap,
sa n ap kounye a kap nan se pa nil,
olye nou pwal pou l kontinye ale jouk lis nou an li menm se nil.
Se konsa, si lis nou an fini moute yo te nil,
Lè sa a, nou te kouri soti nan bagay sa yo nan gade pou li a, nan rechèch sou.
Men, sa vle di ke bagay la an premye nan lis nou an se jis pwal ne la an premye.
Bagay la trè premye yo pral - nou pa bezwen wè sa.
Se konsa, lis-> n ap gen pye bwa nou yo.
lis-> pwochen a pwal nil.
Epi, koulye a pandan y ap lis pa nil egal.
Akt ki pral rale yon bagay nan lis nou an.
Se konsa, akt ki pral egal lis-> n.
Lè sa a, lis ki pral egal lis-> n, oswa lis-> kap vini an.
Se konsa, si valè akt egal valè.
Koulye a, nou ka ajoute tou de konsèy dwa nou yo ak konsèy gòch nou an
osi lontan ke yo ap pa nil.
Desann isit la, mwen devine nou ta dwe te fè sa nan plas an premye.
Si (akt-> dwat! = Nil)
Lè sa a, nou pral insert ki ne nan lis nou an.
Si (akt-> agòch), sa a se yon ti kras nan travay siplemantè, men li la amann.
Si (akt-> goch! = Nil),
epi nou ap ale nan insert gòch la nan lye lis nou an,
e ke yo ta dwe li.
Nou répétèr - osi lontan ke nou gen yon bagay nan lis nou an,
nou gen yon lòt ne fè yon gade nan.
Se konsa, nou gade nan ki ne,
nou avanse lis nou an nan yon sèl kap vini an.
Si se sa ki ne se valè a nou ap chèche pou yo, nou ka retounen vre.
Lòt Bagay insert tou de subtrees kite la ak dwa nou an,
osi lontan ke yo ap pa nil, nan lis nou an
pou nou inevitableman ale sou yo.
Se konsa, si yo pa t 'nil,
si konsèy rasin nou pwente nan de bagay sa yo,
Lè sa a, an premye nou rale yon bagay ki soti pou lis nou an fini moute yo te nil.
Lè sa a, nou mete de bagay sa yo tounen nan sa, koulye a lis nou an, se nan gwosè 2.
Lè sa a, nou pral riban tounen moute ak nou ap jis pral rale,
kite a di, konsèy gòch nan ne rasin nou an.
E ke pral jis kenbe pase, nou pral fini loupin sou tout bagay.
>> Remake sa a te siyifikativman pi konplike
nan solisyon an repetitif.
Apre sa, mwen te di ke plizyè fwa
ki solisyon an repetitif anjeneral gen anpil nan komen avèk repete nan solisyon an.
Isit la sa a se egzakteman sa solisyon an repetitif ap fè.
Chanjman nan sèlman se ke olye pou yo lè l sèvi avèk chal chemine a, chemine a pwogram lan,
kòm fason ou nan kenbe tras de sa ki nœuds ou toujou bezwen pou vizite, pou
kounye a ou gen klèman sèvi ak yon lis lye.
Nan de ka nou ap swiv sa ki ne toujou bezwen yo dwe vizite.
Nan ka repetitif li nan jis pi fasil paske yon pil
se aplike pou ou tankou chemine pwogram lan.
Remake lis sa a lye, li se yon pil.
Kèlkeswa sa nou jis mete yo sou chemine a
se imedyatman ki sa nou ap ale nan rale desann chemine a ale nan pwochen.
Nou se soti nan tan, men nenpòt kesyon?
[Elèv yo, enkonpreansibl]
[Bowden] Yeah. Se konsa, si nou gen lis lye nou an,
aktyèl ki pral lonje dwèt sou sa a Guy,
e kounye a, nou ap jis avanse lis lye nou yo konsantre sou sa a Guy.
Nou ap travèse sou lis la lye nan ki liy.
Lè sa a, mwen devine nou ta dwe libere lis lye nou ak lòt bagay
yon fwa anvan yo tounen vre oubyen fo, nou bezwen
repekte sou lye lis nou an epi toujou desann isit la, mwen devine,
si nou akt dwa se pa egal a, ajoute li, pou kounye a nou vle libere
akt paske, byen, nou te konplètman bliye sou lis la? Yeah.
Se konsa, sa a, se sa nou vle fè isit la.
Ki kote nan konsèy la?
Akt te Lè sa a, - nou vle yon lis struct * 10 egal lis kap vini an.
Gratis lis, lis = tanporèr.
Ak nan ka a kote nou retounen vre, nou bezwen répétèr
sou rès lis lye nou libere bagay sa yo.
Bagay nan bon sou solisyon an repetitif la libere bagay sa yo
jis vle di eklate factorings koupe chemine a ki pral rive pou ou.
Se konsa, nou te ale soti nan yon bagay ki tankou 3 liy nan difisil-a-panse-sou kòd
yon bagay ki se siyifikativman anpil plis difisil-a-panse-sou liy nan kòd.
Nenpòt piplis kesyon?
Tout dwa. Nou se bon. Bye!
[CS50.TV]