DAVID Malan: Tout dwa. Byenveni nan CS50. Sa a se kòmanse nan semèn 8. Men, sonje ke seri pwoblèm 5 te fini ak yon ti kras nan yon defi. Se konsa, an konsideran ou refè tout nan ou ansèyman Fellows ak foto CA a nan dosye a card.raw, ou elijib kounye a jwenn tout nan moun sa yo, ak yon sèl chans gayan yo ap mache al lakay yo ak yon sèl nan bagay sa yo, kwasans mouvman an aparèy ke ou ka itilize pou final pwojè, pou egzanp. Sa a, chak ane, mennen nan yon ti jan nan creepiness. Se konsa, sa mwen te panse mwen ta fè se pataje avèk ou kèk nan nòt yo ki gen ale retounen ak lide sou anplwaye lis la nan anreta. Pou egzanp, jis yè swa quote, unquote, ki soti nan youn nan anplwaye a manm yo, "Mwen jis te gen yon frape elèv sou pòt mwen an pran yon foto avè m '. Arseleur, m'ap di nou la. "Te kòmanse koupe san patipri deskriptif ak Lè sa a nou te deplase sou a, yon èdtan oswa konsa pita, "mwen te gen yon elèv ap tann pou m 'apre seksyon Li te vin gen tout nan non nou yo ak foto sou kèk fèy papye. "Tout dwa. Se konsa, òganize, men se pa tout sa ki grenpe ankò. Lè sa a, "Mwen te soti nan vil sa a nan fen semèn nan, epi lè mwen te tounen, te gen youn nan mwen chanm ou. "[ri] DAVID Malan: Next quote ki sòti nan yon anplwaye manm, "yon elèv vini lakay mwen nan Somerville nan 4 AM maten sa a. "Next anplwaye yo, "Mwen te rive nan otèl m 'ki nan San Francisco ak elèv yon te ap tann pou m 'nan gwoup la ki gen twa DSLRs. " Kalite kamera. "Mwen pa menm sou anplwaye sa a semès, men yon elèv te kraze nan kay mwen an sa a maten ak anrejistre tout bagay la ak Google Glass. "Lè sa a, alafen, "Omwen 12 moun yo te prese ap rete tann pou m 'lè mwen te soti nan mwen Limo, ak Lè sa a, mwen leve. "Tout dwa. Se konsa, nan mitan foto yo, kòm ou ka sonje, se nonm sa a isit la, ki moun ou ka konnen kòm Milo Bannann, ki moun ki rete nan menm kay ak Lauren Carvalho, ki an tèt nou anseye Kamarad. Milo, Milo, vin isit la ti gason. Milo. Milo. Lide ou, li te mete Google Glass, se konsa nou pral montre w tout bagay sa yo apre. Se konsa, sa a se Milo si ou ta renmen pran yon foto avè l 'apre sa. Si w ta renmen yo gade deyò nan odyans lan la. OK. Sa a pye bon. Oke, Milo Bannann. Oh, pa fè sa. [Ri] OK. Se konsa, yon mo Lè sa a, sou sa ki bay manti devan, paske kòm nou kòmanse tranzisyon, semèn sa a espesyalman, ki soti nan C nan yon lòd liy anviwònman PHP ak JavaScript ak SQL ak HTML ak CSS nan yon anviwònman ki baze sou wèb, nou pral ekipe ou ak nan tout plis konesans pou potansyèl pwojè final la. Se poutèt sa, kou a gen yon tradisyon nan kenbe seminè ki yo sou sijè tanjansyèl ak kou a. Very anpil ki gen rapò ak pwogram ak app devlopman ak pou fè, men pa nesesèman eksplore pa pwòp progranm kou a. Se konsa, si ou ka enterese nan yon sèl oswa plis nan seminè ane sa a, enskri nan cs50.net/seminar. Gen pi gran seminè nan cs50.net/seminars. Yo, epi sou lis la konsa byen lwen pou ane sa a yo Apps Web etonan ak Ruby sou Ray, ki se yon altènatif lang PHP. Lengwistik enfòmatik. Entwodiksyon nan iOS, ki se nan platfòm ki nan itilize pou iPhone ak iPad devlopman. JavaScript pou sit entènèt Apps, nou pral kouvri sa, men sa a nan seminè-a, ou pral ale nan plis detay. Kwasans Mouvman, se konsa nou pral aktyèlman gen kèk nan zanmi nou yo soti nan Mouvman kwasans, konpayi an tèt li, rantre nan nou. Denmen, an reyalite, yo bay yon men-sou seminè-a, si nan enterè ou. Meteor.js, yon teknik altènatif pou lè l sèvi avèk JavaScript pa nan yon navigatè, men sou yon sèvè. Node.js, ki se anpil nan ki venn yo tou. Dous android Design. Android ke yo te yon altènatif trè popilè iOS ak fenèt Telefòn ak lòt tribin mobil. Men, sit entènèt Sekirite aktif defans. Se konsa, an reyalite, si ou ta renmen angaje yo nan sa a, kite m ' fè nòt nan sa a. Nou trè kontan yo di ke zanmi nou an nan kwasans Mouvman, ki se yon demaraj - aparèy sa a vrèman jis rive soti yon kèk mwa de sa - te nèg bay 30 aparèy sa yo nan klas la pou kòm anpil elèv, si ou ta renmen prete pyès ki nan konpitè a rive sou fen semès la epi sèvi ak li pou yon vrè pwojè final la. Yo sipòte yon nimewo nan lang yo. Okenn nan yo C, pa youn nan yo PHP, se konsa reyalize youn oswa plis nan sa yo seminè ta ka pwouve nan enterè yo. Men, tout nan yo yo pral filme-li nan evènman an ki ou pa kapab ale nan nan moun. Dwe orè a te anonse via voye yon imèl jan nou consolider chanm. Epi anfen, si ou ale nan projects.cs.50.net, sa a se yon sit entènèt nou kenbe chak ane ke nou envite jan nan kominote a, pwofesè, depatman, anplwaye yo, ak tou de nan yon deyò nan CS50 pwopoze lide pwojè. Bagay sa yo nan enterè gwoup elèv. Bagay sa yo nan enterè depatman. Se konsa, vire gen si w ap gen difikilte ak ensèten tankou sa ki ou tèt ou ta renmen atake. Se konsa, dènye fwa nou prezante yon joui pi konplèks done estrikti pase nou ta wè nan semèn sot pase yo. Nou te konn lè l sèvi avèk ranje bèl san pwoblèm mwen tap kòm yon itil si senplist done estrikti. Lè sa a, nou prezante sa yo, ki nan kou ki asosye lis. Ak sa ki te youn nan motivasyon yo pou entwodwi estrikti sa a done? Yeah? Ki sa ki nan sa? ODYANS: dinamik gwosè. DAVID Malan: dinamik gwosè. Se konsa, Lè nou konsidere ke nan etalaj, ou gen konnen gwosè li nan avanse lè ou asiyen li. Nan lye lis, ou pa fè sa gen konnen ke. Ou ka jis malok, oswa plis jeneralman, asiyen yon lòt ne, se konsa pale, nenpòt ki lè ou vle insert plis done. Men, ne pa gen okenn Predetermined sans. Se jis nan yon tèm jenerik ki dekri kèk kalite veso ki nou ap lè l sèvi avèk nan estrikti done nou an nan magazen kèk atik nan enterè, ki nan sa a ka rive yo dwe nonm antye. Men, gen toujou yon konpwomi. Se konsa, nou jwenn gwosè dinamik nan done yo estrikti, men sa ki pri nou peye? Ki sa ki nan anba kote an nan lis lye? Yeah? ODYANS: Mande memwa plis. DAVID Malan: Li mande plis memwa, ki jan egzakteman? ODYANS: [fèbl]. DAVID Malan: Egzakteman. Se konsa, kounye a nou gen endikasyon pran plis memwa ke nou deja pa t 'bezwen, paske avantaj nan nan yon etalaj, nan kou, se ke tout bagay nan vwazen, tounen nan do nan do yo, ki ba ou aksè o aza. Paske jis lè l sèvi avèk kare bracket notasyon, oswa plis teknikman konsèy aritmetik, trè senp Anplis de sa, ou ka gen aksè a nenpòt ki eleman nan tan konstan. Men, an reyalite, sa a, se kalite Sa anpeche nan yon lòt pri ke nou ap peye ak yon lye lis la. Kisa k ap pase nan tan an kouri nan yon bagay tankou Search, si mwen vle jwenn kèk valè ak andedan nan yon lis lye? Ki lè kouri mwen vin? Big O n. Si li la Ranje fè? E si nan estrikti nan done Ranje? Èske mwen ka fè pi bon pase gwo O n pou chèche? Non, paske nan ka ki pi mal la li ta ka trè byen dwe klase, men kantite a w ap chèche ta ka gwo. Li ta ka nimewo a 100, ki ta ka rive yo dwe tout wout la nan fen an. Epi paske ou ka sèlman gen aksè a yon lye lis sa a nan aplikasyon pa fason pou ne premye li yo, w ap toujou kalite soti nan chans. Ou gen Traverse tout bagay la soti nan premye dire yo nan lòd yo jwenn ke valè gwo tankou 100. Oswa detèmine si li nan pa menm gen. Se konsa, nou pa ka fè sa ki algorithm nan yon done estrikti ki sanble ak sa a? Nou pa ka fè binè rechèch la, paske rechèch binè mande ke nou te o aza aksè. Nou te kapab jis kwasans ki soti nan kote kote san yo pa gen yo swiv sa yo pen ti kal pen nan fòm lan nan tout endikasyon sa yo. Koulye a, ki jan nou te aplike sa a? Bon, si nou ale nan ekran an isit la, si nou ka byen vit reimplement sa a done estrikti - ekriti mwen pa tout sa ki gwo isit la, men nou pral eseye. Se konsa, tipedèf struct, e ki sa te fè m ' vle rele bagay sa a moute isit la? Ne. Se konsa, mwen pral jwenn nou te kòmanse. Epi, koulye a, ki sa ki bezwen yo dwe andedan nan done estrikti a pou sa separeman lye lis? Konbyen jaden? Se konsa, de. Youn se trè fasil. Se konsa, Int n. Men, nou te ka rele n anyen nou vle, men li ta dwe gen yon Int si nou ap mete ann aplikasyon yon lis lye pou antye. Koulye a, kisa fè dezyèm lan jaden gen yo dwe? Struct ne *. Se konsa, si m 'fè struct ne *, ak Lè sa a, mwen ka rele sa a tou sa mwen vle, men jis yo dwe klè M ap rele yo li kap vini an, kòm nou ve yo te fè. Lè sa a, mwen pral fèmen aparèy òtopedik Curly mwen. Koulye a, kòm dènye fwa, Mwen mete ne desann isit la. Men, si mwen deklare sa a se kòm yon ne, poukisa mwen bezwen deranje yo te tèlman sil isit la nan deklare struct ne * kap vini an, tankou yo te opoze jis * ne kap vini yo? Yeah? ODYANS: [fèbl]. DAVID Malan: Egzakteman. Egzakteman. Paske C reyèlman pran ou literalman ak sèlman wè definisyon an nan ne fason desann isit la, ou pa kapab al gade nan li moute isit la. Se konsa, nou gen sa a sòt de jarèt deklarasyon isit la, ki se Byensir plis sil. Struct ne, sa vle di nou kapab kounye a gen aksè a li andedan nan estrikti a done. Men, kòm yon sou kote, paske sa se vin tounen yon ti kras pi plis subjectif, koulye a, zetwal la ka teknikman ale isit la, li ka ale isit la, li kapab menm ale nan mitan yo. Nou te adopte, nan gid-la style pou kou a, konvansyon an nan mete zetwal nan dwa akote done yo kalite, ki nan ka sa a, ta dwe ne struct. Men, reyalize nan yon anpil nan liv ak referans sou entènèt, ou ta ka tout bon wè li sou lòt bò a. Men, jis reyalize ke tou de pral aktyèlman travay ak ou ta dwe tou senpleman gen ki konsistan. Tout dwa. Se konsa, sa ki te deklarasyon nou an nan ne struct. Men, Lè sa a, nou te kòmanse fè plis bagay sa yo sofistike. Pou egzanp, nou te deside prezante yon bagay tankou yon tab regle. Se konsa, isit la se yon tab regle n gwosè, Catalogue soti nan 0 sou tèt la kite n mwens 1 sou anba a kite. Sa a te kapab yon regle tab pou anyen. Men, sa ki kalite bagay t 'nou pale sou lè l sèvi avèk yon tab regle pou? Sere ki sa? Non. Nou ta ka fè non tankou nou te fè dènye fwa. E reyèlman, ou ka magazen anyen. Epitou, n ap wè sa ankò nan PHP ak nan JavaScript. Yon tab regle se yon sòt bèl nan Swis Lame kouto ki pèmèt ou nan magazen bèl anpil tou sa ou vle andedan nan li pa asosye kle ak valè. Kle ak valè. Koulye a, nan ka sa a ki senp, nou kle yo se jis chif yo. Nou ap mete ann aplikasyon yon regle tab kòm yon etalaj. Se konsa, kle yo se 0, 1, 2, ak pou fè. Se konsa, nou menm, kòm moun, te deside dènye semèn ke ou konnen ki sa, si nou ap ale nan non magazen, kite yo jis abitrèman, men trè rezonab, asime ke Alice, yon Non A, pral jis pou Catalogue nan 0. Men, Bob, yon non B, yo pral Catalogue nan 1, ak pou fè. Se konsa, nou te gen yon kat ant entrées, ki se strings, ak regle la kote yo, ki se chif yo. Se konsa, se ke pwosesis jeneralman li te ye kòm yon fonksyon regle, epi ou ka vrèman aplike li nan kòd. Si mwen te vle aplike yon fonksyon regle ki fè ekzakteman ki sa nou jis dekri soti nan tan pase a, mwen ta ka deklare yon fonksyon ki pran, kòm D 'pou egzanp - e kite yo fè sa sa a sou ekran sou isit la. Si mwen te vle aplike yon regle fonksyon, mwen ta ka di yon bagay tankou sa. Li nan ale nan retounen yon Int. Li k ap pase yo dwe rele regle, epi li ale nan aksepte kòm yon agiman yon fisèl, oswa nou ka gen plis apwopriye, koulye a, epi di Char *, nou pral rele li s. Lè sa a, tout fonksyon sa a te fè, finalman, se retounen yon Int. Koulye a, ki jan li fè sa ki ta ka pa fèt konsa klè. Mwen pral aplike sa a san yo pa nenpòt fòme nan erè tcheke kounye a. Mwen jis ale nan je fèmen di, retounen tou sa ki nan s bracket 0, mwens, kite a di, kapital Yon virgules. Totalman kase. Li pa pafè, paske yon sèl, sa ki si yo se nil? Move bagay yo pral rive. De, ki sa si premye lèt la nan sa a Non se pa yon lèt kapital? Sa pa nan pral vire soti byen swa. Li ta kapab yon lèt miniskil oswa ou pa yon lèt nan tout. Se konsa, totalman chanm pou amelyorasyon isit la, men sa a se lide nan de baz yo. Ki sa nou dekri semèn pase a vèbalman kòm jis yon pwosesis pou gewografik Alice 0 ak Bob a 1 kapab eksprime sètènman plis formulaically kòm yon C fonksyone isit la. Rele ankò regle, pran yon fisèl kòm D ', ak Lè sa a, yon jan kanmenm fè yon bagay ak sa yo ki opinyon yo pwodwi yon pwodiksyon. Pa kontrèman ak nwa deskripsyon bwat nou ke nou te long fè. Mwen pa konnen ki jan sa a ta kapab ap travay anba kapo a. Pou seri pwoblèm, 6, youn nan defi yo se pou ou pou w deside ki sa ap fonksyon regle ou ap ye? Ki sa ki nan pral fè andedan nan ki nwa bwat postal, ak prezimableman, li pral yon ti kras pi plis enteresan pase sa a, ak definitivman plis tandans fè erè tcheke pase sa a an patikilye aplikasyon. Men, pwoblèm ka leve, dwa? Si nou gen yon estrikti done tankou sa a yon sèl, sa ki nan youn nan pwoblèm sa yo ou ka kouri nan yon sèten tan jan ou insert pi plis ak plis non nan la regle tab? Ou jwenn kolizyon, dwa? E si w gen Alice ak Arawon, de moun ki gen non ki te pase kòmanse ak A? Sa amèn kesyon an, kote ou mete dezyèm tankou yon Non a? Oke, ou ta ka naivman jis mete l ' kote Bob fè pati, men Lè sa a, Bob se kalite vise si ou eseye ekri non l 'yo vini yo ak gen nan pa gen plas pou li. Se konsa, ou ta ka mete Bob kote Charlie se, ak ou ka imajine sa a trè byen vit devolu nan yon ti jan nan yon dezòd. Yon bagay lineyè nan fen a, kote ou jis gen nan rechèch tout bagay la kap chèche Alice oswa Bob oswa Arawon oswa Charlie. Se konsa, olye nou pwopoze, olye pou yo jis linear sonde pou espas ki louvri ak plopping non yo la, nou pwopoze yon apwòch amateur. Yon tab regle aplike toujou ak yon etalaj nan endis, men ki kalite done nan sa yo endis kounye a yo te endikasyon. Endikasyon ki sa? Endikasyon lye li bay lis. Paske Sonje byen, yon lis ki lye se vrèman jis yon konsèy nan yon ne, ak ne la gen yon jaden kap vini yo, ak ne ki gen yon jaden kap vini yo, ak pou fè. Se konsa, ou kapab kounye a panse a sa a etalaj sou bò gòch-men nan yon tab regle kòm ki mennen ale nan yon lis lye. Avantaj nan ki se si ou jwenn yon kolizyon ant Alice ak Arawon, ki sa ou fè ak an dezyèm moun sa yo? Ou jis tache l nan la fen, oswa menm nan konmansman an nan ke lis lye. Men, aktyèlman, kite yo jis tèt nan ke pou jis dezyèm yon. Ki kote ta fè sans ki pi? Si m 'insert Alice epi li fini moute nan kote a an premye, Lè sa a, mwen eseye ekri non Arawon yo, ak gen nan evidamman yon kolizyon, mwen ta dwe mete l 'nan kòmansman an nan lis la lye? Sa a nan ki kote premye, oswa nan fen a? ODYANS: [fèbl]. DAVID Malan: OK. Mwen tande kòmanse. Poukisa nan kòmansman an? ODYANS: [fèbl]. DAVID Malan: OK. Li nan alfabetik, se konsa sa a, se bèl. Sa se yon pwopriyete bon. Li pral delivre m 'kèk tan potansyèlman. Li pa pral kite m 'fè rechèch binè, men mwen ta ka omwen kapab kraze soti nan yon bouk si mwen reyalize, byen, mwen se fason sot pase yo te Arawon ta dwe nan sa a Ranje lye lis la. Mwen pa oblije gaspiye tan mwen kap tout wout la nan fen an. Se konsa, sa a, se rezonab. Poukisa lòt bagay yo ka ou vle insert Non a fè kolizyon nan la kòmanse nan lis la? Ki sa ki nan sa? ODYANS: [fèbl]. DAVID Malan: Li te kapab pran yon tan long pou li ale nan fen a nan lis la. Men, an reyalite, pi long ak pi lontan. Non yo pi plis ou insert ki kòmanse ak A, ankò an ki chèn ki pral jwenn. Pi long la ki lye lis ki pral jwenn. Se konsa, ou ap reyèlman jis gaspiye tan ou. Petèt ou ap pi bon kenbe konstan ensèsyon tan, gwo O nan 1, pa toujou mete non an fè kolizyon nan nan konmansman an nan lis la lye, epi yo pa mangonmen kòm anpil sou klasman. Ki sa ki nan repons lan pi byen? Li nan klè. Li kalite depann de sa ki nan distribisyon se, ki sa ki modèl la se nan non yo w ap yo mete. Li pa nesesèman yon repons klè. Men, isit la a, ankò, se yon konsepsyon opòtinite. Se konsa, nou Lè sa a, gade bagay sa a, ki se reyèlman opòtinite pou lòt gwo pou p mete-6. Ak reyalize, si ou pa gen deja, Zamyla lè plonje nan tou de nan sa yo, regle tab ak ap eseye, nan plis detay. Men, solisyon an videyo ki entegre nan p-seri espèk. Sa se te yon trye - T-R-mwen-E. Ak sa ki te enteresan sou sa a te tan sa a nan kouri nan pou chèche yon non, tankou Maxwell dènye fwa, te gwo O nan ki sa? Ki sa ki nan sa? ODYANS: Nimewo a nan lèt yo. DAVID Malan: Nimewo lèt yo. Mwen tande de bagay sa yo. Nimewo nan lèt ak tan konstan. Se konsa, kite a ale ak ki an premye. Nimewo a nan lèt yo. Oke, estrikti sa a done, sonje, se renmen yon pye bwa, yon pye bwa fanmi, yo chak nan nœuds ki gen yo te fè leve nan ranje. Ak moun ki ranje yo endikasyon lòt nœuds sa yo, oswa lòt sa yo ranje nan pye bwa an. Se konsa, si nou te vle Lè sa a, detèmine si wi ou non Maxwell se nan isit la, mwen ta ka ale etalaj la an premye, nan tèt la anpil nan pye bwa a, rasin lan sa yo rele, tèt trye a, ak Lè sa a, swiv konsèy la m, Lè sa a, yon konsèy la, lè sa a x, w, e, L, l. Lè sa a, lè m 'wè kèk senbòl espesyal, deziye isit la kòm yon triyang. Nan kòd ou ap wè nou pwopoze ke ou aplike kòm yon bouleen, jis di repons lan se wi oswa ki pa gen, yon mo sispann isit la. Oke, yon fwa nou te ale nan M-A-X-W-E-L L-, santi l tankou sèt, petèt uit si nou ale yon sèl sot pase yo li, uit etap sa yo jwenn Maxwell. Oswa kite a rele l 'K. Men, sonje sot pase a tan, mwen te diskite ke si gen nan pli reyèlman yon longè maksimòm sou yon mo, tankou 40-kèk-enpè karaktè, yon maksimòm longè implique yon valè konstan. Se konsa, reyèlman, repons lan se wi, li la teknikman gwo O nan 8 oswa 7, oswa reyèlman gwo O nan K. Men, si gen yon bouchon fini sou sa ki K ta ka, li nan yon konstan. Se konsa, li nan gwo O nan 1 nan nan fen jounen an. Pa nan mond lan reyèl. Pa lè ou aktyèlman kòmanse ap gade revèy ou tankou ou kouri pwogram ou an. Li nan absoliman pral fè yon ti jan pi dousman pase se vre wi: konstan tan ak yon sèl etap. Li nan pral fè sèt oswa uit etap, men yo toujou sa a, se anpil, anpil pi bon pase yon algorithm tankou gwo O n ki depann sou gwosè a nan sa ki nan nan nan done estrikti. Avi tèt a isit la se nou ka insert yon milyon dola plis non nan sa a done estrikti, men ki jan anpil plis etap se li pral pran nou jwenn Maxwell nan ka sa a? Okenn. Li nan afekte. Men, nan dat, mwen pa panse ke nou te wè yon egzanp yon estrikti done oswa yon algorithm ki te konplètman afekte pa ekstèn konpòtman tankou sa. Men, sa pa ka dwòl. Sa a pa kapab solisyon a sèlman pou p mete nan- Epi li pa. Sa a se pa nesesèman done yo estrikti ou ta dwe gravitate a, paske tankou tab regle, konpwomi. Ki sa ki nan pri a ou peye isit la? Memwa. Mwen vle di, sa a se yon atròs kantite lajan pou memwa. Epi ou pa ka byen wè li isit la paske otè a nan foto sa a evidamman twonke tout ranje yo, epi nou pa ap wè anpil nan Yon a ak A B ak nan C ak nan K ak nan Y ak nan Z nan sa yo ranje. Men, yo ap la. Chak kote sa yo nœuds se yon etalaj antye nan kèk 26 oswa plis bytes, yo chak nan ki reprezante yon lèt. 27 nan ka nou an, pou nou ka sipòte apostrof nan mete nan pwoblèm. Se konsa, estrikti sa a done se reyèlman, vrèman dans epi lajè. Epi ki pou kont li ta ka fini ralanti bagay sa yo desann, oswa omwen Des ou yon anpil plis espas. Men, ankò, nou ka trase konparezon isit la. Sonje yon ti tan tounen, nou reyalize anpil plis enteresan tan kouri nan klasman lè nou sèvi ak plonje sòt, men pri a nou peye reyalize n ale n la pou plonje sòt mande pou nou depanse plis sa ki resous? Plis espas. Nou bezwen yon etalaj segondè yo kopi pèp la nan, jis tankou nou te fè isit la sou etap yo. Se konsa, ankò, pa gen ganyan klè, men jis subjectif konsepsyon desizyon yo dwe fè fè yo. Tout dwa. Se konsa, kouman sou sa a? Nenpòt moun ki rekonèt ki D-Hall? OK. Se konsa, twa nan nou fè. Mather House. Se konsa, sa a se pou manje Mather la. Mwen pral parye tout koulwa yo manje gen pil nan plato ki anba po tankou sa a. Lè sa a se aktyèlman reprezantan nan yon bagay nou te evidamman wè deja. Nou rele l 'literalman yon pil. Men, chemine a, an tèm de ou memwa òdinatè a, se kote done ale pandan y ap fonksyon yo te rele. Pou egzanp, ki kalite bagay sa yo ale sou chemine a ki gen rapò ak la Layout memwa nou te diskite nan semèn sot pase yo? Ki sa ki nan sa? ODYANS: rele nan zòrèy fonksyon. DAVID Malan: mwen regrèt. ODYANS: rele nan zòrèy fonksyon. DAVID Malan: rele nan zòrèy fonksyon, men espesyalman, sa ki andedan nan chak nan sa yo ankadreman? Ki kalite bagay sa yo? Yeah. Se konsa, varyab lokal yo. Nenpòt ki lè nou bezwen kèk depo lokal yo, tankou yon agiman, oswa Int mwen, oswa Int temp, oswa kèlkeswa sa lokal la varyab se, nou te te mete sa sou pil la. Men, nou rele li yon pil paske nan lide sa a stratifikasyon. Jis kalite alimèt moute ak reyalite, konsèp la ladan l '. Men, li sanble ke yon pil kapab tou kapab wè sa tankou yon estrikti done, yon altènativ a yon etalaj, yon altènatif nan yon lis lye. Yon bagay concept plis enteresan ki ka toujou gen aplike lè l sèvi avèk youn nan sa yo bagay sa yo, men li la yon lòt kalite done estrikti ki sipòte, reyèlman, sèlman de operasyon yo. Men, ou ka ajoute sou amateur karakteristik pase sa yo. Men, sa yo, se Basics yo - pouse e ki pòp. Men, lide a ak yon pil se ke si mwen gen isit la, avèk oswa san Annenberg konnen, yon plato soti nan pòt pwochen avèk nimewo a 9 sou li. Se konsa, jis yon Int. Apre sa, mwen vle pouse sa a sou done yo estrikti, ki kounye a a vid. Konsidere sa a anba a nan chemine a. Mwen ta pouse nimewo sa a 9 sou la chemine, epi kounye a li nan dwa gen. Men, bagay la enteresan sou yon pil se ke si mwen kounye a ou vle pouse kèk valè lòt, tankou 17, ak mwen pouse sa a sou chemine a, mwen pral fè sèlman entwisyon bagay la, mwen jis ale mete li dwa kote nou moun ta dwe enkline mete l ', sou tèt. Men, sa ki nan enteresan kounye a se, Kouman pou mwen jwenn nan 9? Ou konnen, mwen pa fè sa san yo pa gen kèk efò. Se konsa, sa ki nan enteresan sou yon pil se ke pa konsepsyon, li nan yon estrikti done LIFO. Komik fason pou dekri sot pase a nan, premye deyò. Se konsa, nimewo ki sot pase a nan nan moman sa a te 17. Se konsa, si mwen vle pòp yon bagay sou nan chemine a, li kapab fèt sèlman 17. Se konsa, gen yon lòd obligatwa nan operasyon isit la, kote atik ki sot pase a nan gen yo dwe premye yon sèl soti la. Pakonsekan akwonim a, LIFO. Se konsa, poukisa ta ka sa a kapab itil? Èske kontèks yo nan ki ou ta vle yon estrikti done tankou sa a? Oke, li la sètènman te itil andedan nan yon òdinatè. Se konsa, sistèm operasyon byen klè itilize sa a kalite estrikti done pou pil. Nou pral wè tou lide nan menm lè li rive paj wèb. Se konsa, semèn sa a ak semèn pwochèn ak pi lwen, ak jan ou kòmanse mete ann aplikasyon entènèt paj nan yon lang yo rele HTML, ou ka aktyèlman sèvi ak yon estrikti done tankou sa a detèmine si paj la se kòrèkteman fòma. Paske nou pral wè tout paj wèb swiv yon sòt de yerachi, yon dekoupaj ki pral, nan fen jounen an, gen yon estrikti pye bwa anba kapo a. Se konsa, plis sou sa nan jis ti jan yon. Men, pou kounye a, se pou yo pwopoze pou yon moman sa, ki jan nou ka ale sou ki reprezante ki sa yon pil se? Kite m 'pwopoze ke nou aplike yon pil ak kòd tankou sa a. Se konsa, yon pil ki pral gen andedan nan li de bagay sa yo, yon etalaj, ki rele plato, jis yo dwe konsistan avèk Demo la. Epitou, chak nan atik yo nan ki pozisyon ki pral gen yon Int kalite. Ak kapasite se prezimableman ki sa? Paske mwen pa te ekri a plen definisyon isit la. Li pwobableman kantite maksimòm la gwosè nan etalaj la. Men, li la pwobableman te deklare kòm yon byen file defini nan tèt la nan dosye a, gen kèk kalite konstan kòm enplisit pa lèt majiskil la sèlman. Se Se konsa, yon kote kapasite defini kòm maksimòm gwosè a posib. Pandan se tan, andedan nan estrikti a done li te ye kòm yon pil pral gen gen yon nonb antye ki pè jis li te ye tou senpleman kòm gwosè. Se konsa, si m 'te ki reprezante sa a kounye a pictorially, se pou yo ta kwè ke sa a bwat tout nwa reprezante chemine m 'yo. Anndan nan li se de varyab. Se konsa, mwen pral trase a an premye a yon kòm gwosè. Apre sa, yonn nan dezyèm Mwen pral trase kòm yon etalaj. Men, jis kenbe bagay sa yo lòd, nòmalman mwen ta trase yon etalaj tankou sa a, men kalite li a nan bèl si nou matche ak reyalite, oswa matche ak modèl la mantal. Se konsa, kite m 'olye trase etalaj la vètikal, ki se jis, ankò, pwononse atis la. pa reyèlman gen pwoblèm ki sa li se anba kapo a. Epitou, n ap di sa, pa default, kapasite ki pral gen pou pase twa. Se konsa, sa a pral, 0 kote sa a yo pral kote 1, sa a yo pral kote 2. Si m 'kòronp ak yon boul estrès, ta yon moun renmen vini leve, li kouri nan monte isit la sèlman pou moman yon? OK, wè men ou an premye. Vini non sou yo. Tout dwa. Se konsa, mwen kwè ke li Steven. Vini non sou yo. Tout dwa. Men, si koulye a nou remonte premye a eta nan mond lan kote mwen gen sèlman te deklare yon pil, epi li yo pral nan kapasite twa. Men, gwosè pa gen ankò yo te detèmine. Trays pa gen ankò yo te detèmine. Se konsa, yon koup nan kesyon an premye. Men, kite m 'ba ou MIC se konsa ou kapab patisipe pi plis aktivman nan sa. Se konsa, sa ki andedan nan gwosè nan moman sa a nan tan si tout bagay mwen te fè se te deklare yon pil ak yon sèl liy nan Kòd? STEVEN: Pa anpil. DAVID Malan: OK, pa anpil. nou konnen sa ki andedan nan gwosè, nou konnen sa ki andedan sa a etalaj isit la? STEVEN: Jis o aza Kòd, dwa? Jis - DAVID Malan: Yeah, mwen pral rele li Kòd, men o aza - STEVEN: bagay sa yo. DAVID Malan: Bagay sa yo tankou o aza STEVEN: miyèt moso. DAVID Malan: Bits, dwa? Se konsa, valè fatra, dwa? Se konsa, pèrmutasyon nan la 0 ak 1 a. Sold coutumes anvan yo sa a memwa. Epi nou pa vrèman konnen ki sa valè yo yo, se konsa nou tipikman trase yo kòm mak kesyon. Se konsa, nan premye bagay nou ap prezimableman ale nan vle fè isit la - ak kite m 'bay jaden sa a andedan nan gen yon non - plato. Kisa pou nou prezimableman inisyalize gwosè si nou vle kòmanse lè l sèvi avèk sa a chemine? STEVEN: Plato se sub 3. DAVID Malan: Se konsa, OK. Pou yo kapab klè, kapasite deklare yon lòt kote kòm twa. Epi sa a, ki sa mwen te itilize asiyen etalaj la. Size ki pral al gade nan ki jan anpil plato se kounye a sou pil la. STEVEN: Zewo. DAVID Malan: Se konsa, li ta dwe zewo. Se konsa, ale pi devan, ak nenpòt ki dwèt, trase yon zewo nan gwosè. Tout dwa. Se konsa, kounye a, sa ki andedan sa a isit la, nou pa konnen. Sa yo se vrèman jis valè fatra. Se konsa, nou te kapab trase mak kesyon, men an n kenbe tablo a pwòp pou kounye a paske li pa gen pwoblèm sa ki nan la. Nou pa bezwen inisyalize etalaj la anyen, paske si nou konnen ke gwosè a nan chemine a se zewo, byen, nou pa ta dwe gade nan anyen nan sa a etalaj de tout fason nan pwen sa a nan tan. Se konsa, kounye a ta kwè ke mwen pouse nan nimewo 9 sou pil la. Ki jan nou ta dwe mete ajou estrikti nan done andedan nan bwat sa a nwa? Ki sa ki valè bezwen chanje? STEVEN: Nan - gwosè a? DAVID Malan: OK. Size ta dwe vin ki sa? STEVEN: Size ta dwe yon sèl. DAVID Malan: OK. Se konsa, gwosè yo ta dwe vin yon sèl. Se konsa, ou ka fè sa nan yon fason koup. Kite m 'ba ou, kounye a ou dwèt se yon gonm. Tout dwa. Lè sa a, kounye a dwèt ou a se yon bwòs. Tout dwa. Epi, koulye a ki lòt bagay te chanje, evidamman, nan estrikti a done? STEVEN: Nou pral soti nan anba jiska 9. DAVID Malan: 9. OK, Bon. Se konsa, toujou pa gen pwoblèm sa a nan kote youn oubyen de paske yo ap valè fatra, men nou pa ta dwe deranje kap la, paske gwosè se di nou ke se sèlman eleman nan premye se aktyèlman lejitim. Se konsa, koulye a, mwen pouse 17 sou lis la. Kisa ki pral rive foto sa a? STEVEN: Se konsa, gwosè ki pral pou yo ale nan de. DAVID Malan: OK. Ou se gonm - Wouch. Ou se yon gonm. STEVEN: gonm. DAVID Malan: ou se yon bwòs. STEVEN: Bwòs. DAVID Malan: OK. Ak sa ki lòt bagay? STEVEN: Lè sa a, nou - DAVID Malan: Nou pouse 17. STEVEN: Nou bwa 17 sou tèt, se konsa - DAVID Malan: OK, bon. STEVEN: - lage li desann. DAVID Malan: Tout dwa. Li nan ap resevwa fasil. Mwen pa pwal ede ou tan sa a. Pouse 22. STEVEN: Done. Vin yon gonm. Mwen vin tounen yon bwòs. Lè sa a, mwen mete 22. DAVID Malan: 22. Ekselan. Se konsa, yon lòt fwa ankò. Mwen kounye a ale nan pouse sou chemine a 26. STEVEN: Ooh. Papa m,. Ou reyèlman kenbe m 'nan gad. DAVID Malan: Ou pa t ' wè sa k'ap vini an? STEVEN: Mwen pa t 'wè sa a ap vini an. Nou ka re-premye kapasite? DAVID Malan: Sa se yon bon kesyon. Se konsa, nou te kalite pentire tèt nou nan yon kwen isit la. Gen vrèman se pa soti bon pou Steven paske nou te resevwa lajan sa a etalaj statics, se konsa pale, andedan nan estrikti a done. Men, nou te esansyèlman difisil kode li nan dwe nan gwosè twa. Se konsa, nou pa ka vrèman aloue li. Nou te kapab si nou te ale tounen nan, nou rdefini plato yo dwe yon konsèy ki nou Lè sa a, sèvi ak malok nan memwa men nan. Paske si nou te resevwa memwa a soti nan pil wòch la via malok, nou te kapab Lè sa a, libere li. Men, anvan libere l ', nou te kapab aloue yon moso pi gwo nan memwa, mizajou nan konsèy la, ak pou fè. Men, pou kounye a, sa a se vrèman pi bon an nou kapab fè. Pouse ak pòp yo prezimableman pral gen siyal kèk erè. Se konsa, pou egzanp, nou aplikasyon nan pouse kapab retounen yon bouleen ki deja tounen vre, vre, vre. Men, tan nan katriyèm, li la pral gen retounen fo, pou egzanp. Tout dwa. Trè byen fè. Konpliman. Ou te touche boul estrès ou jodi a. [Aplodisman] STEVEN: Mèsi poutèt ou. DAVID Malan: Mèsi poutèt ou. OK, se konsa sa a sanble ap pa anpil nan yon etap pi devan, dwa? Nou te esplike estrikti sa a done. Li te konvenkan, dwa? Sistèm operasyon renmen li. Aparamman entènèt la ka fè pou sèvi ak sa a, ak aplikasyon pou lòt toujou. Men, sa ki yon limitasyon estipid ke nou ap Retounen nan sòt de semèn de limit kote nou te fiks ranje gwosè. Se konsa, gen tout bon yon koup la fason nou te ka rezoud sa a. Nou te kapab dynamique asiyen etalaj la, pa pa difisil kodaj li kòm mwen te fè isit la, men olye re-deklare sa a, jis yo dwe klè, kòm yon bagay tankou sa. Int plato *, pa n ap deside sou yon kapasite ankò. Men, lè mwen deklare chemine a yon lòt kote nan Kòd m 'yo, mwen te kapab Lè sa a, rele malok, jwenn adrès la nan yon ti moso nan memwa, ak mwen te kapab bay ki adrès plato. Lè sa a,, paske li nan jis yon ti moso nan memwa, mwen te kapab kontinye sèvi ak kare notasyon bracket nan chemen an dabitid. Paske ankò, gen nan sòt de sa a fonksyonèl ekivalan nan ranje ak fragman nan memwa ki vin tounen soti nan malok. Nou ka trete yon sèl tankou lòt la lè l sèvi avèk aritmetik konsèy oswa kare bracket notasyon. Se konsa, sa a, se yon sèl apwòch. Men, ki jan lòt moun ta ka nou aplike sa a menm done estrikti, ki kapab? Dwa? Mwen santi mwen tankou nou jis rezoud sa a pwoblèm tankou yon semèn de sa. Ki sa ki te solisyon an a pwoblèm sa a ki Steven li pran kouri nan? Se konsa, lye lis, dwat. Si pwoblèm nan se ke nou ap pentire tèt nou nan yon kwen pa allocation nan memwa davans twò piti pou nou Lè sa a, te yon jan kanmenm fè fas ak, byen, poukisa pa jis evite ki bay tout ansanm? Poukisa nou pa jis deklare plato yo dwe yon konsèy nan yon èrgo ne, yon lis lye, ak Lè sa a tou senpleman asiyen nœuds nouvo chak fwa Steven bezwen nan anfòm yon nimewo nan estrikti a done. Se konsa, foto a ta gen a chanje. Li pa nan pral fè kòm pwòp ak kòm senp kòm jis etalaj yon nan twa antye. Koulye a, li la pral gen yon konsèy nan yon struct, e ke sa struct ki pral gen yon Int ak yon konsèy kap vini an. Li nan ale nan mennen atravè ki konsèy nan yon lòt struct sa yo yon lòt struct sa yo. Se konsa, foto a ta aktyèlman jwenn yon messier ti jan. Men, nou ta te flèch mare tout bagay ansanm. Men, sa a amann, dwa, paske nou te wè ki jan yo fè sa. Men, yon fwa ou jwenn konfòtab mete ann aplikasyon yon bagay tankou yon lye lis, ki ou pral gen fè si w chwazi aplike yon tab regle ak apa Anchènman pou p mete-6, ou kapab sèvi ak li kòm yon blòk bilding, oswa yon engredyan, oswa nan scratches pale, yon pwosedi, yon bagay ke ou mete, ou kreye moso pwòp devinèt ou a ke ou ka Lè sa a, itilize yo ankò. Konpwomi Se konsa,, men solisyon potansyèl ke nou te aktyèlman wè anvan. Se konsa, byen souvan, ou wè sa a chak ane oswa de lè Apple degaje yon bagay nouvo, ansanm ak tout moun yo fou liy moute deyò nan Apple a magazen yo achte majinal yo ajou sou pyès ki nan konpitè. Mwen di sa, li la OK, paske Mwen se youn nan moun sa yo. Se konsa, ki kalite done estrikti ta ka reprezante reyalite sa a? Oke, kite la rele li yon keu, yon liy. Se konsa, Britanik ta rele l 'tipikman yon keu de tout fason, se konsa li a yon non bèl. Ak operasyon yo de ke yon keu va sipòte nou pral rele yon enqueue operasyon ak yon operasyon dequeue, ki se menm jan an nan Lespri Bondye pouse ak pòp. Se jis nan sòt de diferan nan konvansyon, ki sa nou ap rele sa yo. Men, yo enqueue yon bagay vle di yo ajoute oswa insert li nan estrikti a done. Dequeue vle di retire li. Men, Lè nou konsidere ke yon pil te yon done LIFO estrikti, yon keu se yon nan premye, premye soti done estrikti. Si ou se premye moun ki nan liy, ou yo pral premye moun ki jwenn soti nan liy yo epi achte aparèy nouvo ou. Imajine kijan fache moun sa yo ta dwe si Apple olye yo itilize yon pil, pou egzanp, aplike davwa an leve nan nouvo jwèt ou. Se konsa, ke moun kap kriye fè sans, sètènman, ak nou ka panse a tout kalite aplikasyon pou, prezimableman, pou ke moun kap kriye, espesyalman lè ou vle etidye ekite Règleman. Se konsa, kouman ta ka nou aplike sa yo kòm yon estrikti done? Bon, mwen pwopoze pou nou ka bezwen fè li fason sa a. Se konsa, mwen pral kounye a gen chif yo. Se konsa, nou pwal kenbe li senp epi yo pa nesesèman pale an tèm de plato. Jis nimewo ke gen moun ki nan vinn. Kapasite ki pral, ankò, ranje a kantite total moun ki ka nan liy sa a, kòm twa oswa nenpòt ki lòt valè. Men, mwen pwopoze ke mwen bezwen kenbe tras pa sèlman nan gwosè a nan la keu, konbyen bagay sa yo yo nan li. Se konsa, gwosè se gwosè kounye a, kapasite se gwosè a maksimòm. Jis ankò, nomanklatur pa konvansyon. Poukisa mwen bezwen yon Int plis andedan nan yon keu nan kenbe tras nan ki la nan devan nan liy lan? Poukisa mwen bezwen fè sa nan ka sa a? Oke, ki jan pou foto sa a pral chanje? Mwen ka pwobableman jam itilize pi nan foto sa a. Kite m 'ale pi devan epi efase sa ki nan isit la. Nou pral bay sa a yon ti kras diferan Non moute isit la. Se pou yo debarase m de 17 an, se pou yo debarase m nan 9 a, se pou yo debarase m de 3 a. Li kite yo ajoute yon lòt bagay. Mwen pwopoze ke mwen bezwen kenbe tras nan devan la nan lis la, ki se jis yo pral yon Int kòm byen. Men, nou pral kenbe li senp. Pa gen lis lye pou kounye a. Nou pral admèt ke nou pwal frape atake limit sa a. Men, sa m 'vle wè rive lè sa a? Se konsa, si mwen ale pi devan epi premye a moun vini leve nan liy, ak li nan nimewo a 9. Nou gen voye boul estrès. Èske mwen ka vòlè, di, de oswa twa moun? Youn, de, twa? Vini non sou yo. Dwa soti nan devan an, paske nou pral fè yon sèl sa a rapid. Chak nan nou se kounye a yo pral yon fanatik ti gason nan liy nan Apple. Ou pa pral resevwa Apple pyès ki nan konpitè nan fen sa a menm si. Tout dwa. Se konsa, ou se nimewo 9, w ap nimewo 17, nimewo 22. Sa yo se nimewo abitrè, tankou elèv idantite ki oswa etajèr. Ak nan jis moman sa yon, kite la kòmanse yo kòmanse ajoute bagay sa yo. Apre sa, mwen pral kouri tablo a isit la tan sa a. Se konsa, nan ka sa a, mwen te initialisé devan la yo dwe - Mwen aktyèlman pa reyèlman sousye sa a devan se, paske gwosè a se zewo. Se konsa, sa a ta ka kòm byen jis gen yon mak kesyon. Sa yo se tout mak kesyon. Se konsa, kounye a nou ap kòmanse aktyèlman wè kèk moun doubli nan magazen an. Se konsa, si nimewo 9, ou se youn nan premye gen nan 5 AM, ale pi devan epi liy moute, oswa nwit lan la anvan. OK. Se konsa, koulye 9 se isit la. Se konsa, 9 se nan devan la nan lis la. Se konsa, mwen pral ale pi devan epi mete ajou gwosè a nan sa a done aktyèl estrikti pa yo dwe 0 ankò, men yo dwe 1. Mwen pral mete 9 nan la devan lis la. Kite m 'ale pi devan epi aktive ekran an pou nou ka wè sot pase yo nou isit la. Koulye a, kisa mwen vle yo mete nan devan? Mwen pral kenbe tras ki la devan keu la kounye a se nan kote 0. Paske sa ki pwochen pral rive? Oke, ta kwè koulye a, mwen enqueue 17 kòm byen. Se konsa, hop nan liy la. Li di ankò: sòt nan pòt la magazen a pwal isit la. Se konsa, koulye a, mwen te ajoute 17. Men, menm si mesye sa yo bloke ekran an, ki nan OK, paske nou ka wè l 'isit la. M regrèt. ODYANS: Nou kapab deplase - DAVID Malan: Non, ke se ok. Li nan gwo moute a. Se konsa, 17 se kounye a andedan nan keu la. Mwen bezwen mete ajou ki jaden koulye a menm si? OK, definitivman gwosè. Ak ki jan sou devan? OK, pa gen. Front pa ta dwe chanje, paske kontrèman ak yon pil, nou vle kenbe etidye ekite Règleman. Se konsa, si 9yèm ane rive nan premye, nou vle 9yèm ane yo dwe soti nan premye nan liy lan ak nan magazen an. An reyalite, kite a wè sa. Anvan nou insert 22, se pou yo ale pi devan epi dequeue 9. Ki sa ki nan non ou ankò? ODYANS: Jake. DAVID Malan: Jake ki pral yo dwe dked kounye a. Se konsa, ou jwenn mache nan magazen an. Men, pretann ke magazen an se sou a. Se konsa, kounye a sa ki bezwen - dit-dit-dit! Ki sa ki bezwen rive kounye a? Desizyon Design. Se konsa, pa yon ensten move, men - sa ki nan non ou ankò? ODYANS: David la. DAVID Malan: David la. Se konsa, sa David te fè? Li te ap eseye sòt de ranje done yo estrikti yo epi li deplase soti nan kote li nan ansyen kote Jake la. Epi sa a, amann si nou ap vle aksepte ke kòm yon detay aplikasyon. Men, anvan, se pou yo mete ajou done yo estrikti anvan nou fè sa. Paske mwen pa senpati lide a nan tout moun yo déplacement nan liy sa a. Li nan okenn kontra gwo si David fè l 'ak yon sèl etap, men ankò, panse tounen nan lè nou te gen wit volontè sou la etap epi nou te fè tankou ensèsyon sòt, kote nou te kòmanse k ap deplase tout moun alantou. Sa te resevwa chè, dwa? Sa fè m 'sumilye sou gwo O n, gwo O n Squared ankò. Li pa nan santi tankou yon rezilta ideyal. Se konsa, kite yo jis mete ajou sa a. Se konsa, gwosè a nan keu la se pa 2. Li nan kounye a tou senpleman 1. Men, mwen kapab kounye a mete ajou yon bagay Mwen pa t 'mete anvan, nan devan lis la. Mwen te kapab jis di, se ke kote 1? Se konsa, kounye a nou gen valè fatra isit la, valè fatra isit la, ak David nan la mitan sa a fatra. Men, done estrikti a se toujou entak. Men, an reyalite, mwen pa menm bezwen chanje ansyen nimewo Jake a 9, paske ki sousye. Mwen gen ase enfòmasyon kounye a nan la gwosè ke mwen konnen gen nan yon sèl moun ki nan sa a keu. Apre sa, mwen konnen ke moun sa a se nan, 1 kote pa 0. Mwen pa konte. Se konsa, 1 tou. Se konsa, estrikti nan done la toujou OK. Oke, sa k ap pase answit? Enqueue Ann - sa ki nan non ou? ODYANS: Callen. DAVID Malan: Callen. Se pou yo enqueue yon Callen, ak 22 se kounye a nan keu la. Se konsa, kounye a sa ki te chanje isit la? Front a pa pral chanje, evidamman. Size ki pral chanje yo dwe 2 ankò. Ak 22 fini moute isit la, 9 se toujou prezan, men li la efektivman yon valè fatra kounye a. Se jis nan yon ti rès nan sot pase yo Jake. Se konsa, kounye a sa k ap pase si Mwen dequeue David li ye? Youn nan dènye operasyon an, dequeue David la. Nou te kapab chanjman, men mwen pwopoze a kite fè kòm travay ti kras ke posib. Koulye a, estrikti done m 'ale Retounen nan gwosè soti nan 2 a 1. Men, devan keu la kounye a vin tounen 2. Mwen pa bezwen chanje nimewo sa yo jis ankò, paske yo ap jis fatra valè. Men koulye a, sa k ap pase? Sipoze mwen enqueue tèt mwen, 26? Mwen santi mwen tankou mwen fè pati sou isit la. Se konsa, mwen te enqueued. Se konsa, mwen kalite fè pati isit la. Men, menm si ou pa fè sa byen apresye sa a vizyèlman sou sèn nan, paske nou gen anpil nan chanm, mwen ta dwe pa dwe kanpe isit la, poukisa? ODYANS: Ou se soti nan avèk limit. DAVID Malan: Dwa. Mwen se soti nan avèk limit. Mwen te Catalogue pi lwen pase a limit sa a etalaj. Mwen vrèman yo ta dwe nan youn nan la twa kote posib. Koulye a, kote ki pi natirèl yo ale? Mwen pwopoze nou exploitées yon semèn yon sèl Trick. Mod operatè a, pousantaj. Paske mwen teknikman kanpe nan , 3 kote men mwen fè 3 kapasite mod, se konsa 3, yon siy pousan, 3 - kapasite nan 3. Ki sa ki nan sa? Ki sa ki nan rès la lè ou divize 3 pa 3? 0. Se konsa, ki mete m 'te Jake te, ki se aktyèlman bon. Se konsa, koulye aplikasyon an nan bagay sa a nan ale nan gen yon ti jan nan yon tèt fè mal. Li nan reyèlman jis yon sèl liy nan tèt fè mal, nan kòd. Men, omwen kounye a gen nan fatra valè isit la, men gen nan de antye lejitim isit la. Apre sa, mwen reklamasyon ke kounye a nou te fè ekzakteman ki sa nou bezwen fè toutotan nou chanje sa a Jake valè te dwe 26. Nou kounye a gen ase enfòmasyon toujou yo kenbe entegrite nan nan estrikti sa a done. Nou toujou kalite soti nan chans lè nou vle insert kat oswa plis manm eleman, men mwen ka omwen fè bèl efikas pou sèvi ak sa a konstan tan, an reyalite. Mwen pa gen enkyete sou déplacement tout moun, kòm enklinasyon David la te. Nenpòt kesyon sou pil, oswa sa a keu? ODYANS: Eske rezon an pou kisa ou bezwen gwosè pou w konnen ki kote yo gen yon moun? DAVID Malan: Egzakteman. Mwen bezwen konnen gwosè a nan etalaj la paske mwen bezwen konnen egzakteman ki jan anpil nan sa yo valè yo lejitim, ak pou m 'ka jwenn kote yo mete moun kap vini an. Egzakteman. Gwosè a se - aktyèlman, nou pa t 'mete sa a ankò. Mwen te ajoute tèt mwen nan la 26. Gwosè a se kounye a, pa 1, men 2. Se konsa, kounye a sa a tout bon ede m 'jwenn nan tèt nan lis la, ki se pa 0, pa 1, men se 2. Devan la nan lis la se vre nimewo 22. Paske li te vini nan premye, se konsa li ta dwe dwe pèmèt nan magazen an anvan m 'yo, menm si vizyèlman mwen kanpe pi pre magazen an. Tout dwa? Yon wonn nan aplodisman pou mesye sa yo epi n ap kite yo soti nan la. [Aplodisman] DAVID Malan: mwen te kapab kite ou kenbe plato a. Nou te kapab wè sa ki rive si ou vle, men petèt pa. Tout dwa. Se konsa, sa kounye a ke kite nou fè? Oke, kite m 'pwopoze ki gen yon kèk estrikti lòt done nou te kapab kòmanse ajoute nan twous zouti nou an ki pral aktyèlman dwe byen, byen ki enpòtan kòm nou plonje nan bagay sou entènèt. Ki ankò, gen kèk kalite koneksyon nan pyebwa nan fòm lan nan yon bagay yo rele Dom, dokiman modèl objè. Men, nou pral wè plis nan ke anvan lontan. Kite m 'pwopoze definitionally ke nou rele pyebwa Koulye a, kisa ou ta ka konnen kòm plis nan yon pye bwa fanmi, kote ou gen kèk zansèt nan la rasin nan pyebwa a. Yon matron patriyakal oswa yon nan trè tèt la nan pye bwa an. San yo pa mari oswa madanm yo, nan ka sa a. Men, nou genyen kounye a ki sa nou ap rele timoun yo, ki se nœuds ki pann sou timoun nan gòch la oswa timoun nan dwa, flèch kòm montre isit la. Nan lòt mo, nan yon estrikti done pye bwa nan òdinatè, yon pye bwa gen zewo oswa plis nœuds. Si li gen omwen yon ne, ki rele rasin lan. Li nan bagay sa yo vizyèlman ki nou trase nan tèt la. Epi ki ne, tankou nenpòt ki ne ak lòt, ki kapab gen zewo, youn, oswa de, oswa twa, oswa sepandan gen anpil timoun ki nan done estrikti sipòte. Nan ka sa a, rasin a, estoke nan valè yon sèl, gen de timoun yo, 2 ak 3, se konsa nou jeneralman rele 2 bò gòch la pitit ak 3 pitit la dwat. Lè sa a, lè nou jwenn desann nan 5, 6, ak 7, 6 ta ka rele pitit la presegondè. Si ou gen kat timoun, li vin konfizyon. Se konsa, nou sispann lè l sèvi avèk ki kalite nan chemen kout vèbalman. Men, li la vrèman jis yon fanmi pye bwa. Men, fèy li yo yo isit la yo se nœuds yo ki tèt yo pa gen okenn timoun yo. Yo pann koupe anba a nan pye bwa an. Se konsa, kouman ta ka nou aplike yon pye bwa ki gen jis de timoun omaksimòm? Nou pral rele li yon pye bwa binè. Bi ankò ki vle di de, nan sa a ka, tankou ak binè. Se konsa, li ka gen zewo, yon sèl, oswa de timoun omaksimòm. Mwen pral pwopoze ke nou aplike ne la pou sa estrikti ak yon Int n, ak Lè sa a de pwent, yon sèl rele kite, yon sèl rele dwat. Men, moun yo se jis bèl konvansyon abitrè. Ak sa ki nan bèl kounye a, espesyalman si w kalite plede concept ak rkursyon, oswa te panse ke li pa t ' vrèman yon solisyon a anyen, espesyalman si ou te kapab kouri soti nan memwa. Kounye a ke nou ap pale de done estrikti ak algoritm ki pèmèt nou Traverse ak manipile yo, sanble ke rkursyon vini tounen nan yon pi plis irezistib si se pa bèl fason. Se konsa, sa a Mwen pwopoze a se aplikasyon an yon fonksyon rechèch la. Bay de entrain - se konsa panse a sa a kòm yon bwat nwa. Bay de entrain, n, Int yon, ak yon konsèy nan yon pye bwa, yon konsèy nan yon ne, oswa reyèlman rasin lan nan yon pye bwa, mwen reklamasyon ke fonksyon sa a ka retounen vrè oswa fo, ki valè n se andedan nan pyebwa sa a. Ki sa ki andedan nan bwat sa a nwa? Oke, kat branch. Jis nan premye chèk. Si pye bwa a se nil, jis retounen fo. Si gen nan pa gen ne, gen nan pa gen n, gen nan pa gen nimewo, jis retounen fo. Si menm si, n, valè w ap chèche pou li a, se mwens pase pyebwa flèch n, ak jis yo dwe klè, ki sa li vle di lè Mwen ekri pye bwa yo epi Lè sa a, flèch la notasyon, n? Egzakteman. Sa vle di dèreferans ki konsèy yo rele pye bwa. Ale la, ak Lè sa a, jwenn andedan nan ki ne epi pou yo jwenn jaden li yo rele n. Lè sa a, konpare n aktyèl la ki te pase nan Search kont li. Se konsa, si n se mwens pase, valè n nan ne an pye bwa tèt li, byen, ki sa sa vle di? Sa vle di pa gen anyen nan premye gade. Dwa? Jis tankou lè ou gen yon etalaj de valè yo, ou ta ka renmen aplike binè rechèch kòm yon fòm divize ak konkeri. Men, sa ki sipozisyon nou t ap bezwen fè pou rechèch binè nan travay nan tout nan liv telefòn ak egzanp pi bonè? Jan yo dwe klase. Se konsa, kite a rafine definisyon an nan pye bwa isit la pa yo dwe jis yon pye bwa, ki kapab gen nenpòt ki kantite timoun yo. Pa sèlman yon pye bwa binè, ki kapab gen 0, 1, oswa 2 omaksimòm. Men, kòm yon pye bwa rechèch binè, oswa le, ki se jis yon fason anpenpan nan di yon pye bwa binè sa yo ki chak ne a timoun gòch li yo, si prezan, se mwens pase ne la. E yo gen dwa pitit tout ne la, si prezan, se pi gwo pase ne nan tèt li. Se konsa, nan lòt mo, si ou te fè desen soti nan pyebwa yo, tout nan nimewo ki se ak anpil atansyon balanse tankou sa a se konsa ke si ou gen 55 kòm rasin lan, 33 ka ale sou bò goch li yo paske li nan mwens pase 55. 77 ka ale nan dwa li yo paske li nan pi wo pase 55. Men koulye a, avi, definisyon an menm, li nan yon definisyon repetitif vèbalman, gen pou aplike pou 33. Bò gòch pitit 33 an dwe pi piti pase li, e yo gen dwa pitit 33 an, 44, yo dwe pi gwo pase l '. Se konsa, sa a se yon pye bwa rechèch binè, ak Mwen pwopoze, lè l sèvi avèk yon ti kras nan rkursyon, nou kapab kounye a jwenn n. Se konsa, si n se mwens pase n nan valè sa a, se kounye a ne, mwen pral ale pi devan epi bote, se konsa pale, ak jis retounen tou sa repons lan se nan pou chèche n sou la bò gòch pitit pyebwa a. Avi ankò, fonksyon sa a jis espere yon etwal ne, yon konsèy nan yon ne. Se konsa, siman mwen jis ka fè pye bwa flèch gòch li yo, ki ap mennen m nan yon lòt ne. Men, sa ki se ke ne? Oke, dapre deklarasyon sa a, bò gòch se jis yon konsèy, se konsa ke jis vle di m ap pase fonksyone rechèch la yon konsèy diferan, sètadi yon sèl la ki reprezante pyebwa pitit bò gòch mwen an. Se konsa, nan ka sa a, konsèy la a 33, si sa a se opinyon echantiyon nou an Pandan se tan, si n pi gran pase n nan valè a nan kounye a ne nan pye bwa a, Lè sa a, mwen se ale nan ale pi devan epi bote nan lòt la direksyon ak jis di, mwen pa fè sa konnen si sa a n valè se nan pye bwa a, Men, mwen konnen si li se, li la desann mwen dwa branch, se konsa pale. Se konsa, kite m 'rele recursive rechèch, pase yon n ankò, men pase nan yon konsèy ak pitit dwat mwen. Nan lòt mo, si mwen se kounye a nan 55 ak m 'ap chache 99, mwen konnen ke 99 se pi gran pase 55, Se konsa, jis tankou mwen chire semèn yo liv telefòn de sa e nou ale dwat, menm se nou pwal ale dwa isit la. Apre sa, mwen pa konnen si li nan nan dwat mwen timoun, epi li pa, 77 ki gen la, men Mwen konnen li la nan ki direksyon. Se konsa, mwen rele rechèch sou pitit dwat mwen, 77, epi kite figi rechèch soti nan gen si 99 an sa a abitrè egzanp se aktyèlman la. Lòt Bagay, sa ki nan ka a final la? Si pye bwa a se nil se yon sèl pwosè. Si n se mwens pase la a kounye a ne valè a se yon lòt ka. Si n pi gran pase aktyèl la valè ne a se yon ka twazyèm. Ki sa ki nan ka a katriyèm ak final la? Mwen panse ke nou ap soti nan ka, dwa? Li dwe ki n se nan la kounye a ne ki mwen se sou. Se konsa, si mwen pou chèche 55 nan pwen sa a nan istwa a, ki branch nan la pye bwa ta pwal retounen vre. Se konsa, sa ki nan enteresan isit la se ke nou aktyèlman, kontrèman ak semèn sot pase yo, nou kalite nan gen de ka baz la. Apre sa, yo pa oblije gen tout nan tèt la. Tèt a se yon ka baz paske si la pye bwa a se nil, pa gen anyen fè. Jis retounen yon kode difisil valè de fo. Branch anba la se sòt de la default, annakò ak si nou te tcheke pou nil, nou te tcheke si li ta dwe kite, men li pa ta dwe, nou te tcheke si li ta dwe dwat, men li pa ta dwe, byen klè li te gen dwa kote nou ye. Sa se yon ka baz. Se konsa, gen nan de ka repetitif Sandwitch gen nan mitan yo. Men, mwen te kapab yo te ekri sa a nan nenpòt lòd. Mwen jis te panse li kalite te santi natirèl premye tcheke pou yon erè sa posib, Lè sa a, tcheke kite, lè sa a tcheke dwa, lè sa a asime ke ou se nan ne an w ap aktyèlman kap chèche. Se konsa, poukisa ta ka sa a kapab itil? Se konsa, li vire soti - ak kite m 'Ale nan yon kol isit la sa a, se nan entènèt la. Nou pral kòmanse lè l sèvi avèk pa yon pwogramasyon lang nan premye, men yon markeup lang. Yon markeup lang yo te youn ki nan menm jan an nan Lespri Bondye a pwogram lang, men li pa bay nan ou kapasite eksprime sa yo panse tèt ou ak lojik. Li sèlman ba ou kapasite nan eksprime tèt ou estriktirèl. Ki kote ou vle mete yon bagay sou paj la, paj wèb la? Ki koulè ou vle fè li? Ki sa ki font size ou vle fè li? Mo Ki sa ki fè ou aktyèlman vle sou paj wèb la? Se konsa, sa a, se yon lang markeup. Men, Lè sa a, nou pral trè byen vit prezante JavaScript, ki se yon plen véritable pwogramasyon lang. Sanble anpil syntactically nan aparans C, men li pral gen kèk bèl, plis pouvwa anpil, plis itilizatè karakteristik zanmitay. Ak youn nan fristrasyon yo nan sa a pwen nan semès la se ke nou pral pli vit aplike ortograf nan lwen mwens liy nan Kòd lè l sèvi avèk lòt lang yo pase C tèt li pèmèt, men pou rezon ki fè nan nou pral byento konprann. Sa a pral premye paj la tankou entènèt. Li pral konplètman underwhelming, youn nan premye nou fè. Li pral tou senpleman di, alo nan lemonn. Men, si ou pa janm te wè li anvan, sa a se HTML, Ipèrtèkst markeup lang. Si ou ale nan yon opsyon meni sèten nan pi nenpòt ki navigatè, sou nenpòt ki paj entènèt sou entènèt la, ou ka wè HTML nan ki gen kèk moun ki te ekri kreye ke paj entènèt. Epi li pwobableman pa gade kòm kout oswa kòm pwòp tankou sa a. Men, li pral swiv modèl la nan sa yo parantèz ouvè ak bar ak lèt ak ki kapab chif yo. Mwen te panse mwen ta ba ou yon kol nan sa ki ou pral kapab fè apre w pran CS50. Kite m 'ale nan cs.harvard.edu / Rob, Homepage pwòp nou Rob Bowden la. Li te fè sa a pou nou. Se konsa, ou pral byento kapab fè sa. Epi tou, ki sa ou tande maten sa a - ki sa ou tande pawòl sa yo maten - [Amstè mizik dans] - You'll kapab fè sa a. Sa ap tann nou nan Mèkredi. Nou pral wè ou lè sa a. [Amstè mizik dans] DAVID Malan: Nan CS50 kap vini an -