[Musika jotzen] HIZLARIA 1: Guztiak eskubidea. Guztiek ongi etorria itzuli atala. Zara guztiak behar bezala espero dut Galdetegi berreskuratu astetik. Ezagutzen dut pixka bat crazy aldiz da. Aurretik esaten ari nintzen, bazaude As desbiderapen estandarraren barruan, ez benetan kezkatu, batez ere, atala gutxiago eroso. Hori non egon behar duzun buruz. Handia, ondoren, awesome egin baduzu. Duzu Kudos. Eta uste baduzu gustatzen behar duzu pixka bat laguntza gehiago, mesedez sentitzen free iristeko TFS Edozein out. Hemen guztiei laguntzeko gaude. 

Horregatik irakasten dugu. Horregatik, hemen nago astelehenero zuretzat ostegunetan mutil eta bulegoan ordu. Beraz, mesedez sentitzen free me know utzi Oraindik kezkaren bat izanez gero, edo zerbait galdetegiaren bada litzaidake benetan aurre gustatzen. 

Beraz, gaur egun, agenda da guztiak datuen egitura buruz. Horietako batzuk besterik ez dira, besterik gabe, izango da ezagutu horiek ohituta duzu. Baliteke inoiz ez ezartzea klase honetan horiek. Horiek izango dituzu batzuk, Zure speller pset bezala. 

Zure aukera izango duzu hash taulak eta saiatzen artean. Beraz, behin betiko horiek pasa. Behin betiko mota gehiago izango da maila handiko atal bat du gaur egun, ordea, horietako asko daudelako, eta bada joan ezartzeko xehetasunak sartu dugu horiek guztiak, ez genuke nahiz eta lotutako zerrendak bidez lortu eta, agian, hash taulak pixka bat. 

Beraz, nirekin hartu. Ez dugu behar egiten joan bezainbeste denbora honen kodifikazioa. Bada, horri buruz zalantzarik izanez edo ezarri ikusi nahi baduzu edo saiatu it yourself, Zalantzarik gabe gomendatzen dut , study.cs50.net joan bertan horien guztien adibide ditu. Nire powerpoints izango da ohar batera dugun ohi baita erabili programazio batzuk ariketak, batez ere, gauzak lotutako zerrendak eta bitarra bezalakoa zuhaitzak pilak eta estimulu. Gehiago maila handia Beraz, txiki, zaudete polita izan daiteke. 

Beraz, Hasteko dugu. Eta, gainera, yes-- galdetegiak. Duzun gehienak nork daude uste dut Nire atalean izan zure galdetegiak, baina inor edo arrazoiren batengatik dator duzu ez, hemen aurrean daudela. 

Beraz, zerrendak lotuta. Ezagutzen dut mota honetako doa zure quiz aurretik atzera. Hori izan zen lehenago asteko ikasi dugu honi buruz duten. Baina kasu honetan, besterik ez dugu joan sakonki pixka bat gehiago. 

Beraz, zergatik bat aukeratzen dugu lotutako zerrenda array bat baino gehiago? Besteengandik bereizten? Bai? 

Ikusleak: zabaltzeko dezakezu lotuta Zerrenda array baten tamaina finkoa versus. HIZLARIA: 1 Eskuin. Array bat tamaina finkatu du berriz lotutako zerrenda Neurri aldakorra dauka. Beraz, ez badugu ezagutzen nola Askoz ere gorde nahi dugu, lotutako zerrenda bat ematen digu handia horrela egin dela besterik ezin dugulako gehitu nodoa beste batean eta gehitu on beste nodo eta gehitu nodoa beste. Baina zer gertatzen da merkataritza-off bat izan liteke? Norbaitek gogoratu merkataritza-off array eta zerrendak lotutako artean? Mmhmm? 

Ikusleak: hau egin behar duzu bide guztietan zehar joan lotuta zerrenda bidez Zerrenda bateko elementu bat aurkitzeko. Array batean, ahal duzun elementu bat soilik aurkitu. 

HIZLARIA: 1 Eskuin. Beraz, array batera 

IKUSLEEN: [INAUDIBLE]. 

HIZLARIA: 1 Array, daukagu zer ari ausazko sarbidea izeneko. Esan nahi du, nahi badugu, zer da inoiz bosgarren zerrenda puntua edo bosgarren puntuan gure array, besterik ez dugu har daiteke. Lotuta zerrenda bat bada, behar dugu bidez batetik bestera joateko, ezta? Beraz, elementu bat sartzean Array bat, etengabeko denbora da, lotuta litzateke zerrenda batekin, berriz, da seguruenik denbora lineala, agian delako gure elementu amaieran modu guztiak. Guztia bidez bilatu behar dugu. Beraz, datu horiek guztiak egiturak goaz egon denbora gehiago pixka bat igarotzeko, zer dira pluses eta negatiboak. Noiz liteke nahi dugu erabili bata bestearen gainean? Eta hori da mota Gauza handiagoa eramateko. 

Beraz, hemen daukagu nodo baten definizioa. Izan ere, elementu bat bezalakoa da gure lotutako zerrenda, ezta? Beraz, guztiak ezagutzen gara gure typedef structs batera, horren gainean joan ginen berrikuspena azken aldiz. Funtsean zen besterik sortzeko datu-mota beste erabili izan dugu. 

Eta, kasu honetan, nodo batzuk da duten osoko batzuk antolatzen ditu. Eta gero, zer da bigarren zatian? Edonork? 

IKUSLEEN: [INAUDIBLE]. 

HIZLARIA 1: Bai. Hurrengo nodo erakuslea da. Beraz, hau benetan izan behar du hemen. Hau motako erakuslea da hurrengo gauza nodo. Eta hori zer dute gure nodo Pilotariak. Cool. 

Ondo da, beraz, bilaketa batera, ginen besterik eskuko aurretik esaten, ez bazaude ikastaroa egingo, Benetan batetik bestera joateko aukera izango duzu zure zerrendako lotuta bidez. Ari gara kopuruarengatik Beraz, bada begira 9, gure burua etan hasiko genuke eta hori seinalatzen digu hasieran gure zerrendan lotuta, ezta? Eta esaten dugu, OK, ez du nodo eduki 9 zenbakia? Ez? 

Ondo da, joan hurrengo bat. Jarrai ezazu. Du kopurua 9 eduki du? No. Jarraitu hurrengo bat. 

Beraz, egia esan, batetik bestera joateko dugun gure lotuta zerrenda bidez. Ezin da besterik gabe joaten gara zuzenean, bertan 9 da. Eta baduzu guys benetan nahi ikusi sasi-kodea batzuk ez. Bilaketa-funtzio batzuk ditugu hemen eramango in-- zer du hartu bertan? Zer deritzozu? Alde hain erraza. Zer da hau? IKUSLEEN: [INAUDIBLE]. HIZLARIA: 1 kopurua bilatzen ari gara. Eskuin? Eta zer dagokio nahi? Erakuslea da? 

Ikusleak: nodo bat. 

HIZLARIA: 1 zerrendara Nodo bat ari gara, eskuinera begira? Beraz, nodo batzuk erakuslea dira hemen dugu. Hau da joan puntu bat da benetan gure zerrendan batetik bestera joateko. Zerrendara berdintasuna ezarri dugu hori besterik ez delako berdina ezarriz gure zerrendan lotuta hasteko. 

Eta ez da NULL bitartean, berriz, jarraitzen dugu gure zerrendan gauzak, egiaztatu nodo hori badu ikusteko kopuruaren bilatzen ari gara. Itzultzeko egia. Bestela, eguneratzeko, ezta? 

NULL bada, irteteko dugu gure berriz, begizta eta itzultzeko faltsuak horrek esan nahi duelako ez dugu aurkitu. Denek eskuratu nola lan egiten duen? OK. 

Txertatze-rekin Beraz, hiru modu desberdinak. Gunearen aurretik dezakezu, erantsi dezakezu eta txertatu dezakezu askotariko sartu. Kasu honetan, ez gara itxi bat egin. Norbaitek ezagutzen nola horiek Hiru kasu agian ez etortzea? 

Beraz, itxi esan nahi jarri duzun Zure zerrendan aurrean da. Beraz, horrek esan nahiko luke axola Zein da zure nodoa, Gaia ez dago zer balioa, bazoazela Jarri hementxe aurrean, OK? Honez lehena izango da Zure zerrendan elementurik. 

Horri erantsi baduzu, joan da zure zerrenda atzealdean joan. Eta sartu sartu askotariko esan nahi benetan jarri leku sartzen joan bertan mantentzen zure zerrenda lotutako sailkatuko da. Berriz ere, nola erabiltzen denean horiek eta erabiltzen dituzun zure kasua araberakoa izango ditu. Ez du behar bada ordenatuko, itxi joera zer jende gehienak izan nahi du erabili ez duzulako zerrendan osoa pasatzen dute amaieran gehitu on aurkitzeko, ezta? Besterik ez dezakezu makila da eskubide osoz. 

Beraz, bat igaroko dugu txertatzeko 1 oraintxe. Gauza beraz, ez naiz joan oso pset honetan gomendatu da, gauzak marraztu out, beti bezala. Oso garrantzitsua da eguneratzea Zure erakusleak orden egokian Horietako eguneratzen baduzu delako zertxobait out ordena, azkenean joan zaren Zure zerrendan zatiak galdu. 

Beraz, adibidez, kasu honetan, ez gara puntu bakar burua kontatzea 1era. Egiten dugu bada besterik ez da aurrezteko 1 hori gabe, Ideia ez dugu zer Orain 1 seinalatu behar den dugu galdu dut delako zer buruan adierazi du. Beraz, gauza bat gogoratu denean itxi bat egiten ari zarenean zer gorde burua lehen puntuak, gero berriro ezar, eta gero eguneratu zure nodo zer seinalatu behar da. Kasu honetan, hau egiteko modu bat da. 

Zuen Beraz badugu, modu honetan egiten da non burua reassigned besterik ez dugu, funtsean, gure galtzen dugu zerrenda osoa, ezta? Egiteko modu bat da, 1 puntu izatea nahi hurrengo, eta, ondoren, burua puntu 1. Edo bezala mota egin dezakezu aldi baterako biltegiratze, eta bertan hitz egin dut. 

Baina zure kentzea zuzena izateko erakusleak hau da, oso, oso izango da pset honetan garrantzitsua. Bestela, ari egiaztapen bat izan behar duzu taula edo hori besterik izango da saiatu Hitzak zati bakarra duzula Nahi eta ondoren zauden mmhmm? AUDIENCE: Zer da aldi baterako izan zen biltegiratze gauza buruz ari zinen? HIZLARIA: 1 aldi baterako gordetzeko. Beraz, funtsean, beste modu horretan egin ahal izango duzu Zerbait buruan gordetzeko da, atsegin gorde da aldi baterako aldagaia. Esleitu 1 eta ondoren eguneratzeko 1 seinalatuko edozein dela ere seinalatu erabil burua. Horrela da, jakina, dotoreago duzulako ez aldi baterako balio behar du, baina besterik ez da egin behar beste modu bat eskainiz. Eta benetan egiten dugun honetan kodea batzuk. Beraz lotutako zerrenda da, guk benetan kodea batzuk. Beraz, hemen txertatu, hau da ezeztatu. Beraz, hau sartzen da burua. 

Beraz, lehenik eta behin, behar duzu zure nodo berria sortu du, noski, eta NULL egiaztatzeko. Beti ona. Eta gero balioak esleitu behar duzu. Nodo berri bat sortu Bakoitzean duzu, ez dakit zer hurrengo da seinalatuz, beraz abiarazi NULL nahi duzun. Bertan, azkenean, ez bada zerbait seinalatuz bestela, reassigned lortzen da eta fina da. Lehen gauza bada zerrendan, berau behar delako NULL seinalatu nahi zerrendaren amaieran. 

Orduan txertatzeko, hemen ikusten dugu guk dira hurrengo gure nodo balioa esleitzea Burua da dena delakoa izan, hau da, zer da hemen izan genuen. Horixe besterik ez genuen. Eta gero puntu buru esleitzea ari gara gure nodo berria, gogoratu delako, berria erakuslea batzuk nodo bat, eta hori zehazki burua zer den. Horregatik dugu gezi hau accessor dute. Cool? Mmhmm? 

IKUSLEEN: Ba izan dugu hasieratu hurrengo berriaren lehen NULL da, edo ezin abiarazi dugu, besterik ez da burua? 

HIZLARIA: 1 hurrengo New behar NULL hasteko izateko ez dakizu delako bertan izan da joan. Era berean, hau da, mota besterik ez den arren. NULL berdina besterik ez dela uste dut, ezar daitezke Ziurtatu zure bases guztiak estalita daude beraz, edozein reassignment egin aurretik Beti zu bermatuta izango dela egingo balio espezifikoa seinalatuz zabor balio bat bezalakoa versus. Zeren eta bai, esleitu dugu berria hurrengo automatikoki, baina justuago bat bezalakoa da Ohitura ona abiarazi horrela eta, ondoren, berriro ezar. 

Ados, beraz, bi aldiz lotuta zerrendak orain. Zer egin dugu? Zer da desberdina bi aldiz lotuta zerrendak? 

Beraz, gure lotuta zerrendak ere, ahal dugun norabide bakar batean mugitzen, ezta? Besterik ez dugu hurrengo. Bakarra dugu joan daiteke aurrera. 

Bi aldiz lotuta zerrenda batekin, Era berean, ezin dugu atzera egiten. Beraz, ez bakarrik daukagu gorde nahi dugun zenbakia, non puntu ondoan egon behar dugu eta nondik etorri besterik ez dugu. Beraz, hau egiteko aukera ematen du zeharkako hobe batzuk. 

Beraz, bi aldiz lotuta nodo, oso antzekoa da, ezta? Soilik ezberdintasuna da gaur egun dugun hurrengo eta aurreko bat. Ezberdintasun bakarra da. 

Beraz gunearen aurretik bagenitu edo append-- dugu ez honentzako kodea edozein izan up hemen baina saiatu zinen eta sartu, garrantzitsuena da egin behar duzun Ziur esleitzea zu bai aurreko eta zure hurrengo erakuslea bezala. Beraz, kasu honetan, nahi duzun ez bakarrik hasieratu ondoan, Aurreko hasieratu duzu. Oraindik dugu zerrendako buru da bada, guk ez litzateke bakarrik egin burua berdinak berriak, baina gure aurreko berria egin beharko lukete burua seinalatu, ezta? 

Diferentzia bakarra da. Eta praktika gehiago nahi izanez gero horiek lotuta zerrendak, txertatuta dituena eta, ezabatu, txertatze batera askotariko zerrenda bat sartu, sar zaitez study.cs50.net. Badira ariketa handia sorta bat da. Gomendatzen dut horiek. Denbora horiek egin behar izan zion nahi dut baina ez dago datu-egitura asko entzat izan da. 

Ados, beraz, hash taulak. Hau da, ziurrenik gehien zure pset pixka erabilgarria hemen izan zaren joan delako saiatu horietako bat, edo ezartzeko. Gustatzen zait hash taulak. Pretty cool Oraindik dute. 

Beraz, funtsean, zer Gertatzen hash taula bat da denean benetan behar dugu azkarra txertatzeko, ezabatzeko, eta bilaketak. Horiek ari garen gauzetako Hash taula batean lehentasuna emanez. Nahiko handia lortu ahal izango dute, baina saiatzen ikusi dugu, direla askoz handiagoa gauza daude. 

Baina, batez ere, egiaztapen bat guztiak taula hash funtzio bat da esaten dizu bakoitzak bere ontzi jarri Zure datuak, zure elementu bakoitza. Hash taula bat pentsatzeko modu sinple bat gauza kubo besterik ez dela, ezta? Beraz, gauzak ordenatzeko ari zaren arabera beren izena lehenengo letra bezala, hori da mota hash taula bat bezala. 

Beraz banintz taldera baduzu guys da duenak izena hasten taldetan A hemen baino gehiago, edo duenarentzat da urtebetetze Urtarrila, Otsaila, Martxoa, en edozein dela ere, hori da modu eraginkorrean Hash taula bat sortuz. Besterik kuboak sortzeko duten zure elementuak ordenatzeko sartu duzu horiek errazago aurkitu ahal izango duzu, beraz. Beraz, modu horretan behar dudanean duzu bat aurkitzeko, Nik ez dut bilatu Zure izen bakoitzaren bidez. Ahal dut, oh bezala izan, ezagutzen dut Danielle urtebetetzea in-- da Ikusleak: --April. HIZLARIA: 1 April. Beraz, begiratu dut nire apirilean ontzi, eta zorte edozein batera, ez dagoen bakarra izango dela eta Nire denbora zentzu horretan etengabea izan zen, begiratzen badut, berriz, pertsonen sorta osoa bidez, nik askoz gehiago hartu du. Beraz, hash taulak benetan kuboak besterik ez dira. Horietako pentsatzea Erraza modu. 

Beraz buruz gauza oso garrantzitsu bat Hash taula hash funtzio bat da. Beraz, gauzak buruz hitz egin dut, atsegin Zure lehen izenaren lehenengo letra edo zure urtebetetzea hilabetea, horien ideiak direla Benetan hash funtzio bat erlazionatzeko. Besterik ez erabakitzeko modu bat da bertan ontzi bazara elementu doa, OK? Beraz pset honetan, begiratu dezakezu nahiko askoz nahi duzun edozein hash funtzioa. 

Ez dauka propioak izan. Badira batzuk benetan cool out zoro matematika-mota guztiak egin. Eta zure egin nahi baduzu spellchecker super azkarra, Behin betiko nuke horietako bat begiratu. 

Baina badira, halaber, sinpleak dira, Kalkulu bezala Hitzak, batuketa bezala letra bakoitza zenbaki bat dauka. Kontatu batura. Hori ontzi zehazten du. Era berean, erraz batzuk direla dira besterik gabe, A-argazki guztiak bezala, B guztia hemen. Horietako edozein bat. 

Funtsean, kontatzen besterik ez duzu bertan array indizea zure elementu behar sartu. Just bucket-- erabakitzeko hash funtzio bat guztia da da. Hortaz, hona hemen adibide bat da dugun besterik katea lehen letra I besterik ez dela buruz hitz egiten. 

Beraz hash batzuetan hori besterik ez duzu zure katea minus A lehenengo letra, horrek emango dizu batzuk 0 eta 25 arteko kopurua. Eta zer egin nahi duzun da ziurtatu hau adierazten duela Hash tamaina table-- zenbat kuboak daude. Horietako asko With hash funtzioak, ari dira joan litzateke balio itzuli agian far kuboak kopurua gainetik egon duzula benetan hash taula batean, beraz, egin behar duzun Ziur eta horiek by mod. Bestela, esan behar da, oh, ontzian 5.000 behar da baina soilik 30 duzu Hash taula kuboak. Eta, jakina, denok dakigu hori, zoro akatsak batzuk eragin egingo da. Beraz, ziurtatu behar dituen mod hash taula tamaina. Cool. Beraz, talkak. Guztion ona orain arte? Mmhmm? 

IKUSLEEN: Zergatik da itzultzeko balio masiboak, hala nola? 

HIZLARIA: 1 arabera algoritmoari buruz Hash funtzioa erabiltzen du. Horietako batzuk egingo zoro biderkatzeko. Eta hori guztia da lortzean buruz are gehiago, banaketa bat, beraz, batzuk ez dute benetan crazy gauza batzuetan. Hori da dena. Beste ezer? OK. 

Beraz, talkak. Funtsean, lehenago esan dudan bezala, kasurik onenean, Edozein ontzi begiratu sartu nintzen da gauza bat izan da, beraz, ez daukat batere begiratu behar, ezta? Bai dut ezagutzen ez da edo ari Ez, eta hori da benetan zer nahi dugun. Baina dozenaka mila of badugu datuak puntu eta kopuru hori baino gutxiago kuboak, behar goaz talkak non azkenean zerbait amaitzeko batean izan da joan ontzi dagoeneko elementu bat du. 

Beraz, galdera da, zer egiten dugu egoera horretan? Zer egiten dugu? Dagoeneko zerbait? Ez bota besterik ez dugu atera? 

No. Biak mantendu behar dugu. Beraz, modu garela normalean egin hori, zer? Zer da datu-egitura hitz egin dugu, besterik gabe, zer? Ikusleak: Linked zerrenda. HIZLARIA: 1 lotuta zerrenda bat. Beraz, gaur egun, horren ordez, horietako bakoitzaren kuboak besterik elementu bat izatea, nik lotuta zerrenda bat eduki behar ziren sartu hashed elementuak. OK, duela edonorekin motatako lortzeko ideia hori? Zeren ezin dugu array bat ez dugulako gauzak nola asko ezagutu dira, ez dago egingo zela. Lotuta zerrenda bat ematen digu kopuru zehatza besterik ez dugula diren ontzi sartu hashed, ezta? 

Beraz, lineal Haztatzeko da funtsean, ideia hau to talka aurre egiteko modu bat da. Zer egin dezakezu bada, hau ere kasuan, berry 1 sartu hashed zen eta dagoeneko badugu zerbait ez dago, besterik ez duzu mantentzeko jaisterakoan arte slot huts bat aurkituko duzu. Hori hura kudeatzeko modu bat da. Kudeatzeko beste modu da egiten duguna besterik Lotuta izeneko Zerrenda kateatzea deitzen zaio. 

Beraz, ideia hori bada lan egiten hash taula uste duzu dena baino askoz handiagoa Zure datuak edo gai bazara eta saiatu minimizatu kateatzea nahi guztiz beharrezkoa da. arte Beraz, gauza bat da lineala probak, jakina, esan nahi du Hash funtzioa duten ez da nahiko erabilgarria zu amaitzeko erabiltzen delako joan Hash funtzioa, puntu bat jarriz, lineala Probatu duzu behera eskuragarri dagoela leku batzuk. Baina orain, noski, ezer bestela ondorioz sortu badira, nahi izan zaren joan bilatu are gehiago behera. 

Eta ez da askoz gehiago Bilaketa-gastua dela elementu bat inputting doa hash taula orain ere, ezta? Eta orain, joan eta saiatu eta aurkituko txarrak berriro, ari hash zoazen, eta nik esan, oh, ontzi 1 begiratu, eta ez da izango ontzi 1, beraz Oraindik zeharkatuko dute joan Horietako gainerako jarraibideak. Beraz, batzuetan, erabilgarria da, baina kasu gehienetan, Hori esan goaz kateatzea da, zer egin nahi duzun. 

Beraz, hitz egin zuen lehenago gara. Aurretik neure burua apur bat lortu nuen. Baina kateatzea da, funtsean, zure hash taula ontzi bakoitzak lotuta zerrenda bat da. 

Beraz, beste era bat, edo gehiago, teknikoa horrela, hash taula bat pentsatzea besterik ez da array bat dela lotuta zerrendak, zeinek zure hiztegi idazten ari zaren eta kargatzeko saiatzen ari bazara, bat bezala pentsatzen zerrendak lotuta array askoz errazago egingo hasieratzeko zuretzat. 

IKUSLEEN: Beraz, hash taula Aldez aurretik finkatutako tamaina bat du, bat [INAUDIBLE] kuboak bezala? 

HIZLARIA: 1 Eskuin. Beraz, multzo kopuru bat du zuk determine-- duten kuboak eta zuk guys egin beharko lukete free jolastu sentitzen. Pretty cool izan daiteke Zer gertatzen den ikusi Zure kuboak kopurua aldatu ahala. Baina bai, ez du bat ezarri kuboak kopurua. Zer uzten dugu bezala moldatzen Beharrezkoa den elementu asko da kateatzea bereizi honetan bertan duzu zerrendak batu dira ontzi bakoitzean. Hori da zure hash taula esan nahi du zehazki tamaina izango da da, ezta izan behar duzula? Hori lotuta zerrendak puntu osoa da. Cool. 

Beraz, denek OK dago? Guztiak eskubidea. Ah. Zer gertatu da? Benetan orain. Asmatu norbait me hil. 

OK goaz sartu joango saiatzen dira, pixka bat crazy. Gustatzen zait hash taulak. Benetan cool daudela uste dut. Saiatuko cool dira, gehiegi. 

Beraz, ez du gogoratzen edonork saiatu bat zer den? Joan behar duzu baino gehiago hitzaldia laburki da? Ez nola funtzionatzen mota gogoratzen duzu? IKUSLEEN: besterik ez naiz nodding baina ez dugu gehiago joan. HIZLARIA 1: ez dugu gehiago joan. Ados, ari gara benetan joan baino gehiago orain dela esaten ari gara. 

IKUSLEEN: Hori berreskuratze zuhaitz bat da. 

HIZLARIA 1: Bai. Berreskuratze zuhaitz bat da. Awesome. Beraz, gauza hemen nabarituko dela dugu dira banakako pertsonaiak begira hemen, ezta? 

Beraz, gure hash funtzioa aurretik, dugu ziren hitzak osotasunean begira, eta orain ari gehiago ari gara pertsonaiak, ezta? Beraz Maxwell dute hemen eta Mendel baino gehiago dugu. Beraz, funtsean Saiatuko bat modu batean pentsatzeko honi buruz, maila guztietan, hemen letren array bat da. Beraz, hau da zure erro-nodoa da hemen, ezta? Hau pertsonaia guztiek ditu alfabetoa hitz bakoitzaren hasieran. 

Eta zer egin nahi duzun da esan, OK, M hitza batzuk ditugu. Maxwell bilatzen ari gara, beraz, joan M. Eta M puntura dugu oso bat beste array bat non behin hitza, betiere, A du hitza da Bigarren gutun-bezala, betiere, hitz bat dela B bigarren letra gisa, erakuslea izango du hurrengo array batzuk joan. 

Ez da seguruenik ez da Hitz MP zerbait, P honetan posizioan orain array, besterik ez litzateke izango NULL. Esango litzateke, OK, ez hitza ez da dela M atzetik P bat, OK? Beraz, bakoitzak pentsatzen badugu Gauza txikiagoa horietako bat benetan da horietako bat Z. bidez A-tik array handi Beraz, zer gauza bat izan liteke horretan saiatu eragozpen baten antzeko zerbait da? 

Ikusleak: memoria asko. 

HIZLARIA: 1 memoria tona bat da, ezta? Bakoitzak bloke horietako bat hemen 26 espazio, 26 elementu array adierazten du. Beraz saiatzen lortu oso espazio heavy. 

Baina oso azkarrak dira. Beraz, oso azkarra, baina Benetan espazio eraginkorra. Kind dute irudikatu zein den nahi duzun. Hauek benetan zure pset cool, baina memoria asko egin dute, beraz, merkataritza duzu off. Bai? 

Ikusleak: Posible ote da saiatu bat ezarri eta gero behin behar duzu guztia need-- duzula, datuak Ez dakit zentzurik litzateke bada. Nintzen lortzean kentzeko guztia Karaktere NULL, baina gero ez duzu indizea them-- gai 

HIZLARIA 1: oraindik ez duzu behar horiek. 

Ikusleak: - Era berean, aldi bakoitzean. HIZLARIA 1: Bai. Utzi NULL karaktere behar duzu badakizu ez bada, ez da hitz bakar bat ere ez. Ben zuen nahi duzu zerbait behar duzu? OK. Ondo da, beraz, goazen pixka bat gehiago joan atzean xehetasun teknikoak alde bat saiatu eta adibide baten bidez funtzionatzen. 

Ados, beraz, hau gauza bera da. Berriz lotuta zerrenda batean, gure nagusiak mota horretako zer nahi dudan hitza? - eraikitzeko bloke bezala, nodo bat izan zen. Saiatu ere, nodo bat ere izan dugu, baina modu ezberdinean definitzen dira. 

Beraz bool batzuk izan ditugun du hitz bat ote den benetan kokaleku honetan existitzen da, eta, ondoren, array batzuk izan hemen edo, hobeto esanda dugu, hau bat erakuslea da 27 karaktere array. Eta hau da, kasu honetan, honi 27-- bakoitza euro Ziur guztiek bezala naiz, itxaron, alfabetoa 26 letrak daude. Zergatik behar dugu 27? 

Beraz arabera Modu honetan ezartzeko, hau pset batetik da apostrophes onartzen. Beraz, zergatik bat estra da. Aukera izango duzu batzuetan dute Kasu null amaierako bat bezala sartzen da dela onartzen ahal pertsonaiak, eta hori, nola egiaztatu behar dute Ikus hitza amaieran bada. Oraindik nahi izanez gero, begiratu Kevin bideo study.cs50 on, baita Wikipedia du gisa Zenbait baliabide ona dago. 

Baina ari gara, besterik gabe mota bidez joan nola saiatu bidez dezakezun lan egiteko Ari bat ematen baduzu. Beraz, super simple bat behar dugu hemen, hitzak "bat" eta "zoom" du horietan. Eta sortu ikusiko dugu hemen, espazio txiki honetan hemen Gure bool adierazten duen dio, bai, hau hitz bat da. Eta gero, hau da, gure dauka karaktere array, ezta? 

Beraz, bidez joan behar dugu saiatu honetan "bat" aurkitzeko. Beraz, goiko aldean hasten da, ezta? Eta badakigu b que corresponde Bigarren indizea, bigarren elementu array honetan, eta b delako. Beraz, gutxi gorabehera, bigarrena. 

Eta esaten du, OK, cool, jarraitzen duten sartu hurrengo array, gogoratzen dugunean, ez da horietako bakoitzak benetan elementu ditu. Bakoitzak arrayak horietako bat erakuslea dauka, ezta? Bereizketa garrantzitsu bat egin da. 

Hau da jolasten saiatzen dira ezagutzen dut Benetan gogorra lehen aldiz lortzeko, beraz, hau da, nahiz eta bigarren edo hirugarren aldiz eta da nolako oraindik zaila seeming, Agintzen dut joan behar watch bada labur berriro bihar, baliteke zentzurik askoz gehiago. Asko digeritzeko behar izaten ditu. Oraindik I batzuetan am bezala, itxaron, zer saiatu? Nola erabili hau? 

Beraz, kasu honetan b dugunez, bertan gure bigarren indizea da. Bagenu, esan genezake, c edo d edo beste edozein letra, indizea itzuliz hori mapatu behar dugu gure array hori dagokio. Beraz rchar bezala hartuko genuke, eta besterik ez dugu kendu off bat mapatzeko 0 sartu 25era. Denek onak ditugu Gure pertsonaiak mapatzeko? OK. 

Beraz, bat bigarren eta guk nahi dugun ikusi, hori bai, ez da NULL. Mugitu ahal izango dugu hurrengo array honetan. Beraz, joan hurrengo array hau dugu hemen. 

Eta esaten dugu, Ados, gaur egun dugun bat bada hemen ikusi behar. A null ala bai benetan aurrera egin? Beraz, benetan mugitzen array honetan birbideratzeko. Eta esaten dugu OK, t gure azken letra da. Beraz, t jo genuen indizea. Eta gero, aurrera egiten dugu ez beste bat delako. Eta hau dio, funtsean, hori bai, ez dagoela hitz bat da esaten du hemen hau jarraitzen baduzu bidea, etorri zarela Hitz batean, eta badakigu "bat da." Bai? 

IKUSLEEN: ikusi handia dute estandarra egiten da dute indizea 0 eta gero jo 1ean moduko bat edo amaieran izan? 

HIZLARIA: 1 No. Beraz, atzera begiratu dugu at bada gure deklarazio hemen, bool bat da, beraz, bere zure nodoa elementu propioa da. Beraz, ez da array zati da. Cool. Beraz, gure hitza bukatuko dugu eta gara array hau begira, zer egin nahi dugun da txeke bat egin hitz bat da horretarako. Eta, kasu honetan, bai itzuliko litzateke. 

Beraz, ohar horretan, badakigu "Zoo" - gizakiak bezala "zoo" den hitz bat da, badakigu, ezta? Baina saiatu dira hemen litzateke esan, ez, ez da. Eta hori dela esaten dugulako ez dute hitz bat hemen bezala izendatu du. Nahiz zeharkatzeko aukera izango dugu, nahiz eta array honen bidez, Saiatu hori esango, ez, Zoo ez dago zure hiztegian ez dugulako hala nola gisa izendatzen da. 

Beraz, modu batean -bere egin Oh, barkatu, hau. Beraz, kasu honetan, "Zoo" ez da hitz bat, baina baita gure saiatu da. Baina hau ere, esan nahi dugu Hitzaren aurkeztera "bainu", zer gertatzen da b, bidez, a, t jarraituko dugu. Oraindik ez dugu array honetan, eta bilatu h goaz. 

Kasu honetan, dugunean erakuslea begiratu h, Da NULL seinalatuz, OK? Beraz, esplizituki salbu array beste seinalatuz, bere gain hartzen duzu erakusleak, guztiak hori array honetan daude null seinalatuz. Beraz, kasu honetan, h seinalatuz nuluak beraz, ezin dugu ezer egin, horrela, gainera itzuliko litzateke faltsua, "bainu" ez da hemen. Beraz, orain benetan gara to bidez joan nola litzateke benetan esaten dugu duenez, "Zoo" gure saiatu da. Nola txertatu dugu "Zoo" gure saioan sartu? Beraz, hasi ginen modu berean gure lotutako zerrenda, Erro hasiko dugu. Zalantzarik, etan hasiko da Gauza horien sustraia. 

Eta esan dugu, OK, z. z honetan existitzen da, eta gertatzen. Beraz, mugitzen ari zaren Zure hurrengo array, OK? Eta gero, hurrengo batean, esaten dugu OK, existitzen o? Egiten du. Hau berriro. 

Eta beraz, gure inor ondoan, esan dugu, OK, "Zoo" Dagoeneko hemen lehendik. Guztiak egin behar dugu berdintasunaren hau ezarri Egia da, ez dagoela hitz bat dago. Duzun guztia jarraitzea erabaki izan balute Puntu hori baino lehen, gehienez, hitz bat baino ez da, besterik gabe, berdina, hala nola da. Bai? 

IKUSLEEN: Beraz, ondoren, ez dela esan nahi "ba" den hitz bat ere? 

HIZLARIA: 1 No. Beraz, kasu honetan, "ba" lortuko genuke Hemen, esan hitz bat da genuke, eta oraindik litzateke ez izan. OK? Mmhmm? 

IKUSLEEN: Beraz, behin duzu bat hitza eta baietz esan duzu, gero m joan edukiko du? 

HIZLARIA: 1 Beraz, hau egin du with-- hau kargatzen ari zaren. Esaten duzu "Zoo" hitza da. Noiz check-- joan beharko duzu bezala, esan esan nahi duzun, duela "Zoo" hiztegi honetan existitzen? Zu bakarrik ", zoologiko" bilatzeko joan eta ondoren egiaztatu hitz bat bada ikusteko. Ez duzu inoiz mugitu egingo m arte, hori ez da delako da zer bilatzen ari zaren. 

Beraz, benetan dugu nahi izanez gero gehitu "bainu" saiatu honetan sartu, Gauza bera egin nahi dugu genuen bezala "Zoo" salbu dugun ikusi nahi dugunean saiatu eta h lortu, ez du existitzen. Beraz, hau pentsa dezakezu saiatzen nodo berria gehitzeko lotuta zerrenda bat sartu da, beraz, beste bat gehitu beharko genuke arrayak horietako bat, eta, beraz bezala. Eta gero, zer egiten dugu da ezarri besterik ez dugu h array honetan hau seinalatuz elementurik. 

Eta gero, hemen egin nahi dugu? Gehitu berdinak egia da hori! hitz bat delako. Cool. Ezagutzen dut. Saiatzen ez dira gehien zirraragarria. Sinestu, badakit. 

Beraz, gauza bat saiatzen da konturatzen, , Esan nuen, oso eraginkorrak ari dira. Beraz, ikusi dugu dute hartzen dute espazio tona bat. Mota Oraindik nahasia dute. Beraz, zergatik litzateke inoiz erabiltzen ditugu hauek? Horiek erabili dugu dute delako oso eraginkorra. 

Beraz, zu inoiz bilatzen bada hitz bat, zaude bakarrik hitzaren luzera mugatzen. Beraz, bada bat bilatzen ari hitz horren luzera bost da, Zu bakarra izan behar joan bost gehien konparaketak egiteko, OK? Beraz, funtsean konstante bat egiten du. Txertatzeko eta bilatu Like funtsean etengabeko denbora. 

Beraz, inoiz ahal izango duzu bada denbora etengabe zerbait, hori bezain ona lortzen gisa. Ezin duzu baino hobeto lortu gauza horiek denbora etengabe. Beraz, hori da bat saiatzen pluses erraldoia. 

Baina leku asko da. Beraz, mota horretako erabakitzen zuretzako garrantzitsua zer da. Eta gaur egungo ordenagailuetan dagokion Espazio saiatu gara ditzaketen sortu agian ez du eraginik askoz duzu, baina agian zerbait ari zaren aurre duten gauza urrun, urrun gehiago ditu, eta saiatu bat besterik ez da arrazoizkoa. Bai? 

IKUSLEEN: Itxaron, beraz, behar duzu 26 bakar bat behin letrak? 

HIZLARIA: 1 Mmhmm. Bai, duzu 26. Zenbait hitz-markatzailea eta gero da behar duzu Alde bakoitzean 26 erakusleak duzu. Eta point-- ari dira 

IKUSLEEN: Eta 26 egunero, ez dute bakoitzak behar 26? 

HIZLARIA 1: Bai. Eta horregatik, ahal duzun ikusi, oso azkar zabaldu da. Guztiak eskubidea. Beraz, ari zuhaitzak sartu, dugu bertan Errazagoa gustatzen sentitzen dut da, eta ziurrenik, Apur reprieve polita izan Saiakera bertatik. Beraz, espero duzun gehienak zuhaitz bat ikusi ahal izan aurretik. Ez da gustatzen polita kanpo ere bai, eta hori dut ez dute inor bada jakin joan outdoors berriki. Sagar asteburu honetan biltzen joan nintzen, eta oh my gosh, ederra izan zen. Ez nekien hostoak hori nahiko itxura izan. 

Beraz, hau da, zuhaitz bat besterik ez da, ezta? Besterik nodo batzuk da, eta horrekin beste nodo sorta bat puntu. Hemen ikusten duzun bezala, hau da, errepikatutako gaia bat mota da. Nodoak nodo seinalatuz motatako da Datu-egitura asko esentzia. Nola dugu araberakoa seinalatu elkarri horiek izan eta nola zeharkatuko dugu horien bitartez eta nola egiten dugu gauzak sartzea zehazten duen beren ezaugarri ezberdinak. 

Beraz, besterik terminologia batzuk, bertan I, erabili izan. Beraz, erro da edozein dela ere, oso goian dago. non beti hasten gara da. Dezakezu uste ahal burua ere gisa. Baina zuhaitzak, joera dugu da erreferentzia erro gisa. 

Beheko hemen ezer oso, oso, beheko at jotzen hostoak dira. Beraz batera doa batera egiten zuhaitz osoa gauza, ezta? Leaves zure zuhaitz ertzetan daude. 

Eta gero, pare bat ere izan dugu Termino aldean nodo buruz hitz elkarri. Beraz, guraso ditugu, seme-alabak, eta anai-arrebak. Beraz, kasu honetan, 3 da 5, 6, eta 7. gurasoa. Gauza bera gertatzen da guraso edozein dela Oraindik dena delakoa gainetik urrats bat aipatuz, eta, beraz, besterik gabe, familia zuhaitz bat bezala. Zorionez, hori txiki bat da bit saiatzen baino intuitiboa. 

Anai-arrebak dira edozein duten guraso berdina, ezta? Maila berean, hemen ari dira. Eta gero, izan dudan bezala esanez, haur besterik ez dira edozein dela ere urrats bat azpitik dago galdera nodo, OK? Cool. Beraz, zuhaitz bitar bat. Ezin inor Arriskuen asmatzeko baten gainean zuhaitz bitarrak ezaugarriak? 

Ikusleak: Max bi hostoak. 

HIZLARIA: 1 Eskuin. Beraz, bi hosto max. Beraz, hau, aurretik ere, hau izan genuen Eta hiru izan dira, baina zuhaitz bitar batean, bi gehienez duzu Guraso bakoitzak seme-alaba, ezta? Ez dago beste ezaugarri interesgarri. Ez edonork jakin hori? Binary zuhaitz. 

Beraz, zuhaitz bitar bat guztia izango the-- on bat, hau ez da ordenatuko baina ordenatuko zuhaitz bitar batean, dena eskuin hegaletik gurasoa baino handiagoa da, eta dena ezkerrean gurasoa baino gutxiago. Eta hori galdetegi bat izan da Galdera aurretik, beraz, ona da jakitea. Beraz, modu honetan zehazten ditugu berriro ere, nodo bat behar dugu. Hau oso antzekoa? Bi aldiz 

Ikusleak: Loturarik zerrendak 

HIZLARIA: 1 lotuta zerrenda bikoitza, ezta? Beraz, hau ordezkatzeko badugu Aurreko eta hurrengo batera, hau bi aldiz lotuta zerrenda bat izango litzateke. Baina kasu honetan, benetan dugu ezker eta eskuin eta hori da. Bestela, gauza berdina da. Oraindik elementua daukagu bilatzen ari zaren, eta bi erakusle besterik ez duzu edozein dela ere joan da hurrengoa. Bai, beraz bitar bilaketa zuhaitza. , Dena nabarituko badugu hementxe hau baino handiagoa da edo dena berehala eskubidea hemen , dena baino handiagoa da hemen baino gutxiago. 

Beraz bilatzeko bagenu, berau oso bilaketa bitarra hurbil begiratu behar hemen, ezta? Ordez bila ezik array erdian, bai ezkerrean, besterik ez dugu bilatzen dira Bigarren mailako edo zuhaitzaren eskuinaldean. Beraz, pixka bat errazagoa egingo du, uste dut. 

Beraz, zure root NULL bada, jakina, besterik gabe, faltsua da. Eta ez bada, jakina, egia da. Baino gutxiago izanez gero, ezkerretara bilatzen dugu. Baino handiagoa bada, eskubidea bilatzen dugu. Zehazki, bilaketa bitarra bezalakoa da, besterik Datuak ezberdinak egitura Idazteko erabiltzen ari gara. Horren ordez array bat, zuhaitz bitar bat besterik ez da. 

OK, pilak. Eta, gainera, itxura dugun bezala Denbora pixka bat izan dezake. Egiten badugu, pozik joan naiz honen edozein berriz. Ados, beraz, pilak. Norbaitek gogoratzen zer stacks-- pila bat ezaugarri edozein? 

OK, gurekin gehienak, beraz, uste dut, jangela jan halls-- bezainbeste dugu ez nahi bezala. Baina, jakina, pila bat dela pentsa dezakezu literalki erretiluak pila bat bezala edo gauza pila bat. Eta zer da garrantzitsua konturatzen da hori zerbait ezaugarria it by-- deitu dugun LIFO da. Norbaitek ezagutzen zer dela nabarmentzen? Mmhmm? 

Ikusleak: Azken batean, lehena inprimatu. 

HIZLARIA 1: Eskuin, iraun ere, lehena inprimatu. Beraz, bada, ezagutzen garenean, gauzak pilatzeko bazabiltza up, gauzarik errazena off har eta, agian, gauza bakarra har dezakegu off gure pila enough-- handia bada Goiko elementua dela. Beraz, edozein izanda ere egin zuten, last-- Hemen ikusten dugun bezala, edozein dela ere bultzatu zen gehienetan recently-- da lehena izango da Gauza off pop dugu, OK? 

Beraz, zer dugu hemen dago typedef struct beste bat. Hau da, benetan gustatzen bat kraska noski datu-egitura, beraz, ez duzu guys bota asko. Ezagutzen dut. Beraz, oraindik struct beste bat. Egituren Yay. 

Eta, kasu honetan, erakusle batzuk da duten ahalmen batzuk ditu array bat. Beraz, gure pila adierazten hemen, gure benetako array bezala dela gure elementu ustiategi. Eta gero, hara tamaina batzuk ditugu. 

Eta normalean, beti gorde nahi duzun zure pila nola big da pista zer da baimendu joan delako ditu neurri ezagutu behar da egin behar duzu, esateko aukera ematen du, Ados, nago edukiera at? Ezin dut ezer gehiago gehitzeko? Eta kontatzen ere duzu non zure pila goialdean da, beraz, badakizu zer duzu benetan hartu daiteke off. Eta hori da benetan joan Egon pixka bat argiagoa hemen. 

Beraz, push, gauza bat, baduzu ziren inoiz push ezartzeko, besterik ez dut esaten zen bezala, zure pila tamaina mugatu bat du, ezta? Gure array edukiera zeukaten. Array bat da. Tamaina finkoa da, beraz, behar dugu ziurtatu ari gara, ez gehiago jarriz genuena baino gure array sartu benetan lekua izan. 

Beraz, bultzada bat sortzen ari zara funtzioa, egin nahi duzu esan, OK lehen gauza, Egin lekua izan dut nire pila? Ez badut, barkatu delako, Ezin dut zure elementua gordetzeko. Dut egin bada, ondoren, gorde nahi duzun pila goialdean, ezta? 

Eta horregatik daukagu gure tamaina segimendua egiteko. Ez badugu segimendua gure tamaina, ez dakigu non jarri. Ez dugu gauzak nola asko ezagutu gure array dagoeneko idatzi dituzte. Jakina Like ez dira modu agian egin ahal izango duzu. Guztia hasieratu ezin duzu NULL eta ondoren egiaztatu azken NULL, baina gauza askoz errazagoa da, besterik gabe, erraitea, OK, mantendu tamaina jarraipena. Badakit Like lau elementu behar dut nire array, beraz, hurrengo gauza Horretan jarri dugu, gu gara indize 4 gordetzeko joan. Eta gero, jakina, horrek esan nahi du Arrakastaz duzun zerbaitek bultza zure pila gainean, zuk tamaina handitu nahi beraz, badakizu non zauden beraz, duten gauza gehiago bultza dezakezu. 

Pop saiatzen ari gara gero? pila off zerbait, zer da lehen gauza izan liteke egiaztatu nahi dugun? Hartu nahian ari zara zure pila off zerbait. Ziur al zaude ez dago zure pila zerbait? No. Beraz, zer begiratu nahi dugu? 

IKUSLEEN: [INAUDIBLE]. HIZLARIA: 1 tamaina dagoen begiratu? Tamaina. Beraz, nahi izanez gero, ikus egiaztatu nahi dugu gure tamaina 0 baino handiagoa, OK? Eta bada, ondoren jaisteko nahi dugu 0 gure tamaina eta itzuli dela. Zergatik? 

Lehenengoan ginen bultzaka, bultzatu dugu tamaina eta tamaina gero eguneratu gainean. Kasu honetan, tamaina decrementing ari gara eta, ondoren, hartu off, plucking gure array from. Zergatik izan liteke hori egin dugu? Beraz, gauza bat daukat nire pila bada, zer puntu horretan nire tamaina izango litzateke? 1. 

Eta non gordetzen den elementu 1? Zer indizea? Ikusleak: 0. HIZLARIA: 1 0. Beraz, kasu honetan, dugu beti behar egiteko sure-- ordez itzultzeko tamaina ken 1, garelako Badakizu gure elementu dela Eta 1 gutxiago gordeko joan edozein dela ere gure tamaina da hau besterik laguntza hartzen da. Modu apur bat gehiago dotorea da. Edo gutxiagotzeko besterik ez dugu gure tamaina eta, ondoren, tamaina itzultzeko. Mmhmm? 

IKUSLEEN: besterik ez, oro har, uste dut, Horregatik datu-egitura hau litzateke izan onuragarria? 

HIZLARIA: 1 araberakoa zure testuinguruaren da. Beraz, teoria batzuk, zu OK with-- lan egiten bada, let me ikusi ez onuragarria izanez gero hori da kanpotik baino gehiago onuragarria CS. Pilak, behar duzun edozein unetan zerbait pista mantentzeko duten da gehien azkenaldian gehitutako denean pila bat erabili nahi joan zaren. 

Eta ezin dut ona dela pentsa horren adibide oraintxe. Baina, betiere, berrienak Gauza zuretzako garrantzitsuenak da, hori denean pila bat da erabilgarria izango. Nahi izanez gero pentsatzen ari naiz Ba hau ona da bat. Uste dut adibide on bat badu hurrengoan 20 minutuan, zalantzarik gabe esango dizut. 

Baina, oro har, ez dago ezer bada, atsegin gehien, non berriena esan nuen da garrantzitsuena, hori non pila bat sartzen da jokoan. Ilarak, berriz, kontrakoa mota daude. Eta txakur txiki guztiak. Ez al handi hau, ezta? I behar bezala sentitzen naiz besterik ez dute bunny bideo bat eskuineko erdian zaudete atalean Atal bizia delako. 

Beraz, ilara batean. Funtsean, ilara batean lerro bat bezalakoa da. Zaudete ziur erabilera naiz eguneroko hau, besterik gabe, gure jantokiak bezala. Beraz, joan behar dugu eta gure erretiluak, naiz Ziur lerro itxaron behar duzu mugitu edo zure janaria lortzen. 

Beraz, hemen diferentzia da, hau da FIFO. Beraz LIFO azken bazen, lehenik out, FIFO irteten lehena lehenengoa da. Beraz, hau da, non duzuna jarri Lehenengo on da zure garrantzitsuena. Beraz, bada, itxaroten ez balego lerroan batean ahal duzun imajinatu joan bada duzun joan iPhone berria lortu eta pila bat izan zen, non Line pertsona azken lortu du lehenengo, jendeak elkarren hiltzen. 

Beraz, FIFO, guztiak gara oso ezagunak mundu errealean hemen, eta benetan egin ditu guztiak nolako lerro hau osoa birsortzeko eta egitura ilaran. Beraz, pila, berriz, bultza eta pop behar dugu. Ilara batean, daukagu enqueue eta adierazten. Beraz enqueue esanahi du ipini atzeko aldera, eta adierazten bide hartu aurrealdean off. Beraz, gure datu-egitura bat Pixka bat zailagoa da. Bigarren gauza bat segimendua egiteko behar dugu. 

Beraz, burua gabe, da hain zuzen ere pila bat, ezta? Horrek egitura bera pila bat bezala da. Desberdina den gauza bakarra da orain dugun buru hori, zer uste duzu da segimendua egingo da? 

Ikusleak: Lehena. 

HIZLARIA 1: Eskuin, the lehenengo gauza jarri genituen. Gure ilara burua. Edonor da lehen lerroan. Ondo da, beraz enqueue egiten badugu. Berriz ere, edozein datu-egitura horiek, array bat aurre ari gara geroztik, Espazio badugu egiaztatu behar dugu. 

Hau da, mota me kontatzea bezalako you guys, fitxategi bat irekitzen baduzu, null egiaztatzeko behar duzu. Pilak hauek edozein eta ilarak, behar duzun espazioa bada garelako ikusteko tamaina finkoa array bat aurre, ikusiko dugu hemen, 0, 1 5 gehienez ere. Beraz, zer egiten dugu, kasu horretan check da jarraitzen dugu espazio bada ikusteko. Gure tamaina edukiera baino txikiagoa da? 

Hala bada, gorde behar dugu buztana eta gure tamaina eguneratu dugu. Beraz, zer agian buztana kasu honetan? Ez da esplizituki idatzizko out. Nola litzateke gordetzen dugu? Zer buztana izango litzateke? 

Hargatik oinez adibide honen bidez. Beraz, honen tamaina 6 array bat da, ezta? Eta behar dugu oraintxe bertan, gure tamaina 5 da. Eta noiz jarri dugu, joan da bosgarren indizea, eskuinera joan? Beraz buztana at gordetzeko. 

Another litzateke buztana idazteko modu besterik Gure tamainaren indizea array izan, ezta? Hau 5 neurria da. Hurrengo gauza da 5 sartzen joango gara. Cool? OK. Apur bat zailagoa daukala Burua aldatzeari hasten gara. Bai? 

Ikusleak: Honek esan nahi dugun array bat deklaratu zukeen zen bost elementu luze eta orduan guk da kalera gehitzen ari? 

HIZLARIA: 1 No. Beraz, kasu honetan, hau pila bat dauka. Hau deklaratu beharko litzateke tamaina 6 array gisa. Eta, kasu honetan, dugu besterik ez dute leku bat. 

Ados, beraz, gauza bat horretan da kasuan, gure burua 0 bada, ondoren, besterik gehitu ahal izango dugu tamaina. Baina apur bat trickier daukala benetan delako, dute ez diapositiba bat dute horretarako, orain noa bat marraztu ez delako oso erraza dela behin hasteko gauzak kentzeko. Beraz, pila bat berriz bakarrik inoiz ez baduzu to tamaina da kezkatu denean zerbait gehitzen ari zaren, ilara batean, halaber, egin behar duzun Ziurtatu zure burua da kontabilizatu dela, delako ilarak buruz gauza cool da eta ez zara ahalmena dela, benetan egin dezakezu inguruan biltzea da. 

Ados, beraz, gauza bat oi, hori klarion terrible da. Kontuan hartu beharreko gauza bat gertatzen da. Egin besterik ez dugu bost. Ados, beraz ari gara arte Esan burua da hemen. Hau da, 0, 1, 2, 3, 4. 

Burua dago, eta mesedez dituzten gauzak. Eta zerbait gehitzeko, eskubidea nahi dugu? Beraz, gauza bat behar dugu ezagutzen da buru dela beti Modu honetan, mugitu eta joan gero loop atzera inguruan, OK? 

Beraz ilara hau espazio du, ezta? Espazio ditu oso hasiera-hasieratik, horren kontrakoa mota da. Beraz, zer egin behar dugu guk da buztana kalkulatu behar. Ezagutzen baduzu, zure Burua ez du mugitu, buztana besterik gabe, zure array da tamainaren indizea. 

Baina, egia esan, duzu ilara bat erabiltzen ari bazara, Zure burua, seguruenik ari da eguneratzen. Beraz, zer egin behar duzun da benetan buztana kalkulatzeko. Beraz, zer egiten dugun formula hau da: hemen, eta ez naiz dizu joan badakizu Mutil pentsatzen, eta ondoren, horri buruz hitz egin dugu. Beraz, honen ahalmena. 

Beraz, hau benetan egiteko modu bat eman zaitzake. Kasu honetan delako, zer? Gure burua da 1ean, gure tamaina 4 da. Duten MOD 5 egin bada, lortu dugu, 0, hau da, non sarrera hori behar dugu. 

Beraz, ondoren, hurrengo kasu horretan, hau egin nahi badugu, esaten dugu, Ados, dezagun adierazten zerbait. Hau adierazten dugu. Hartuko dugu elementu honen, ezta? 

Eta orain, gure burua seinalatuz hemen, eta gehitu beharreko beste gauza bat ere nahi dugu. Hau da, funtsean, gure atzeko lerroa, ezta? Colas array inguruan biltzeko daiteke. Hori da ezberdintasun nagusietako bat. Pilak, ezin duzu hori egin. 

Ilarak, dezakezu gai hori guztia delako da badakiela zer azkenaldian gehien gehitu zen. Geroztik dena gehitu behar joan ezkerrera, norabide honetan, kasu honetan, eta, ondoren, inguruan biltzea, ahal duzu elementu berriak jarriz jarraitzen Array aurrean ez da benetan delako array aurrean jada. You-hasieran pentsa dezakezu array non zure burua benetan den bezala. 

Beraz, formula hau da, nola zure buztana kalkulatzeko. Ez du zentzua? OK. Ados, adierazten du, eta, ondoren, you guys 10 minutu galdetu zidan edozein argitzeko galderak , nahi duzun jakin dut crazy delako. 

Guztiak eskubidea, eta, modu berean, beraz, Ez dakit asko guys ohartu, baina CS guztiak ereduei buruz. Gauzak nahiko askoz du antzekoa zen, Tweaks txiki-txiki batekin. Gauza Beraz bera hemen. Dugu benetan bada ikusteko berriro egiaztatu behar dugu gure ilaran zerbait, ezta? Esan, OK, ez da 0 baino gure tamaina handiagoan? Cool. 

Egiten badugu, gure burua, mugitu gara eta horrek Hemen, erakutsi besterik ez dut. Gure burua eguneratu dugu bat gehiago izan. Eta gero gutxiagotzeko dugu gure tamaina eta elementu itzultzeko. 

Ez dago askoz gehiago hormigoizko study.cs50.net on-kodea, eta gomendatzen dut joan da denbora badaukazu bidez, nahiz da bakarrik sasi-kode bat baduzu. Eta zuk guys bidez hitz egin nahi baduzu que me bat on batekin, please let me ezagutzen. Zoriontsu izan. Datuen egiturak, bada CS 124 hartu duzu, ikusiko duzu Badakizu oso datu-egitura hori lortzeko fun eta hori besterik ez da hasieratik. 

Beraz Badakit zaila dela. OK da. Borrokatzen dugu. Egin behar dut oraindik. Beraz, ez kezkatu gehiegi horri buruz. 

Baina hori da, funtsean, zure kraska ikastaroa datuen egitura ere. Ezagutzen dut asko da. Zerbait dugun zehar berriro joan nahi? Ezer bidez hitz egin nahi dugu? Bai? 

Ikusleak: adibide dela eta, beraz, buztana berria 0 hori baino gehiago da? HIZLARIA 1: Bai. Ikusleak: OK. Orduan igaro, duzuna 1 plus 4 or-- 

HIZLARIA: 1 Beraz, esaten ari zaren noiz joan nahi dugun Berriro egin? IKUSLEEN: Bai. Beraz, bada out-- kalkulatzen zinen non dauden horretan buztanerainoko kalkulatzeko duzu? 

HIZLARIA: 1 Beraz, buztana zen in-- hau aldatu dut. Beraz, hemen adibide honetan, hau izan zen Array ari gara, at OK bila? Beraz, gauzak bertan, 1, 2, 3, eta 4. Beraz, gure burua berdina da 1 to at daukagu Puntu honetan, eta gure tamaina 4 berdina da Puntu honetan, ezta? 

Hori horrela Duten guztiak ados? Beraz, burua plus tamaina, egiten dugu eta horrek ematen digu, 5, eta gero MOD 5. Lortuko dugu 0, hau kontatzen digu 0 non gure buztana, non espazio behar dugu. 

AUDIENCE: Zer da txano bat? 

HIZLARIA: 1 ahalmena. Barkatu. Beraz, zure array tamaina da. Bai? 

IKUSLEEN: [INAUDIBLE] aurretik elementua itzuliko gara? 

HIZLARIA: 1 Beraz, mugitzen gara buru edo itzultzeko unea? Beraz, inork mugitzen badugu, decrement tamaina? Hold on. Behin betiko beste bat ahaztu dut. Never mind. Ez dago formula bat. Bai, itzuli nahi zenuke Burua eta gero eraman atzera. 

Ikusleak: OK, honetan delako puntua, buruan 0 izan zen, eta, ondoren, itzuli nahi duzu indizea 0 eta gero, burua 1? 

HIZLARIA: 1 Eskuin. Uste dut ez da beste formula honetan bezala mota. Nik ez dut, goian, nire buru gisa Ez dut nahi duzu oker bat emateko. Baina uste dut primeran baliozko esan, OK, gordetzeko elementu hau edozein izanda buru-aren elementu is-- gutxiagotzeko zure tamaina, gainera mugitu zure burua, eta trukean edozein dela ere, elementu hori da. Hori da baliogarria. OK. Sentitzen dut, hau ez da atsegin most-- bezala ez zara ateratzeko hemen oinez joan bezala, bai, saiatzen da ezagutzen dut. Dena lortu nuen. Hori da OK. I agintzen. Baina datu-egitura zerbait direla erabili ahal izateko denbora asko hartzen du. Seguruenik zailenetako bat , gauzak, uste dut ikastaroan. 

Beraz, behin betiko hartzen du errepikapena eta I at-- bila ez benetan jakin lotutako zerrendak gehiegi egin nuen haiekin arte, Modu berean horretan ez nuen benetan ulertzen erakusleak Izan dut arte irakasteko bi lagunentzako urte eta nire psets egin berarekin. Errepikapena eta denbora asko hartzen du. Eta, azkenean, izango motatako klik. 

Baina, bien bitartean, mota baldin baduzu maila handia ulertzeko bat zer horiek, beren pros eta cons-- horixe Benetan joera dugu azpimarratzen, batez ere intro ikastaroan. Atsegin dut, zergatik erabiliko genuke a array bat baino gehiago saiatu? Atsegin dut, zer dira positibo eta horietako bakoitzean negatiboak? 

Eta konpentsazioak ulertzeko Egitura horiek bakoitzaren artean da zer da askoz ere garrantzitsuagoa oraintxe. Ez dago bat crazy izan daiteke hori da galdera edo bi push ezartzeko eskatu joan edo pop edo enqueue eta adierazten ezartzea. Baina gehienak, hori izatea Maila ulermen handiagoa eta intuitiboa eusten da gehiago benetan baino garrantzitsuagoa jartzera gai izatea. 

Benetan awesome da litzaidake duzun guztia bada ibil zitekeen, eta joan saiatu bat ezartzea, baina ez dugu ulertzen ez da zertan gehien zentzuzko gauza oraintxe. Baina zure pset dezakezu, nahi izanez gero nahi du, eta, ondoren, praktika dituzu, eta, gero, agian, ikusiko duzu ulertu ahal izateko. Bai? 

Ikusleak: Ados, beraz, zeintzuk dira pset erabili esan nahi dugu? Ez horietako bat erabili behar dut? HIZLARIA 1: Bai. Beraz, zure aukera duzu. Asmatzen, kasu honetan, I, ahal dugun pset pixka bat buruz hitz egin horiek zeharkatzen zuen dudalako. Beraz, zure pset, zure egin behar duzu saiatzen edo hash taulak aukeratzean. Batzuek saiatu egingo eta erabili Bloom iragazkiak, baina horiek teknikoki ez da zuzena. Bere probabilitate natura, batzuetan positibo faltsuak ematen dute. Look cool sartu ari dira, nahiz eta. Gomendatzen bila horietan, gutxienez. Baina zure aukera duzu hash taula bat eta saiatu bitartean. Eta hori non izango da Zure hiztegian kargatu. 

Eta aukeratu behar duzu Hash funtzioa, aukeratu zenbat behar duzu kuboak duzu, eta aldatu egingo da. Kuboak gehiago badituzu bezala, agian azkarragoa izango da. Baina agian alferrik galtzen ari zara leku asko horrela, baina. Irudikatu nahi izan duzu. Mmhmm? 

Ikusleak: horren aurretik esan duzu beste hash funtzioak erabili ahal izango dugu, ez dugula behar hash funtzio bat sortzen? 

HIZLARIA 1: Bai, eskubidea. Beraz, literalki zure hash funtzioa, google bezalako "hash funtzio" eta batzuetan cool bilatzeko. Ez zaude eraikitzeko espero Zeure hash funtzioak. Jendea igarotzen dute Gauza horiek on-tesiak. 

Beraz, ez zeure eraikitzeko kezkatu. Aurkitu online bat hasteko. Horietako batzuk izan behar duzu Pixka bat manipulatzen ziurtatu bueltan mota dator bat sortu eta whatnot, hasieran eta beraz, Zerbait erabiliz gomendatzen nuke Benetan erraza, agian, besterik gabe, lehenengo letra egiaztapenekin. Eta gero, behin lan hori baduzu, Hash funtzioa freskoago bat sartuz. Mmhmm? 

AUDIENCE: Nahi bat saiatu izan edo eraginkorrak dira, baina besterik ez, antzeko gogorragoa 

HIZLARIA: 1 Beraz, saiatu bat, nire ustez, intuizioa da zaila ezartzea baina oso azkarra da. Hala ere, leku gehiago hartzen duelako. Berriz ere, horiek biak optimizatu ahal izango duzu modu ezberdinetan, eta ez dira modu zaie IKUSLEEN: Nola dira kalifikatu honetako dugu? Du matter-- 

HIZLARIA: 1 Beraz zu kalifikatu modu normal. Diseinu kalifikatzen izango duzu. Edozein modu egin nahi duzu, nahi duzun lekuan ziurtatu dotore bezala da gisa izan daiteke eta eraginkor gisa, ezin izan. Baina saiatu bat edo hash aukeratu baduzu mahaia, betiere funtzionatzen duen bezala, horrekin pozik gaude. Eta zerbait erabiltzen baduzu egiaztapenekin lehenengo letra, fina, agian diseinu-wise bezala. Gainera, ari gara iritsi seihilekoan honetan point Ez dakit baduzu Mutil bazaude noticed-- pset kalifikazio gainbehera pixka bat diseinua eta whatnot delako, primeran fina. Honez puntu bat jarriz non zure programak zailagoa lortzean. Toki gehiago daude hobetu ahal izango duzu. 

Beraz, erabat normala da. Ez da ari zaren okerrago egiten zure pset on. Besterik zailagoa izateaz ari gara duzu on. Beraz, guztion sentitzen. Zure psets guztiak kalifikatzen dut. Ezagutzen dut denek sentitzen da. 

Beraz, ez izan kezkatuta. Eta buruz edozein zalantza izanez gero, aldez aurretik psets edo hobetu ahal izango duzu modu, Saiatzen naiz eta komentatu espezifikoa lekuak, baina, batzuetan berandu da eta nekatuta iritsi nintzen. Ba al dago beste gauza batzuk datuen inguruko egiturak? Ziur ez duzu guys, benetan naiz haiei buruz hitz egiteko gehiago nahi, baina badaude gero, pozik nago haien gainean, baita ezer Hitzaldia hau iragan astean edo azken astean. 

Ezagutzen dut joan den astean berrikuspen guztiak zegoenez, berrikuspena batzuk baino gehiago izan dezakegu Saltatu hitzaldia. Beste edozein galdera daiteke erantzun dut? OK, eskubidea. Beno, guys 15 minutuan irten goiz. 

Espero dut hau izan zen erdi-lagungarria behintzat, eta you guys ikusiko dut datorren astean, edo ostegunean bulego orduetan. Ba pintxoak eskaerak Datorren astean, gauza da? Gozokiak ahaztu dut gaur egun delako. Eta gozokiak azkena ekarri dut astean, baina Columbus Day izan da, beraz, ez da sei pertsona bezalakoak ziren nor lau gozoki poltsa bakarrik izan dute. Starbursts ekarri ahal dut Berriro nahi duzu bada. Starbursts? Ados, ona soinuak. Egun handia, guys.