[Musika jotzen] DOUG LLOYD: Ados, agian, hain Jakina, puntu honetan, Nik C. oinarriak asko estaltzen dugu Aldagaiak, arrayak asko ezagutzen dugu, erakusleak, gauza ona da hori guztia. Horiek guztiak moduko eraiki in oinarriak bezala ikusten, baina gehiago egin ahal izango dugu, ezta? Gauzak konbinatu ahal izango dugu elkarrekin modu interesgarri batean. Eta beraz, utzi egin dutela, has gaitezen C zer ematen digu koka, eta hasi gure datu propioak sortzeko Eraikin horiek erabilita egiturak blokeak elkarrekin zerbait egin behar benetan baliotsu, erabilgarria. Hau egin ahal izango dugu modu bat da Bildumak buruz hitz egiteko. Beraz, orain arte ditudan datuak moduko bat izan genuen Bildumak ordezkari egitura gustatzen balioak, antzeko balioak. Hori bateria izango litzateke. Osoko zenbaki bildumak daukagu, edo pertsonaiak eta abar bildumak. Egiturak dira, halaber, datu moduko informazioa biltzeko egitura, baina ez da balioak biltzeko. Izan ohi da, datu mota desberdinak nahasten elkarrekin kutxa bakar baten barruan. Baina ez da berez kate erabil elkarrekin edo konektatzen elkarrekin antzeko elementuak, array bat bezala. Arrayak handia elementu itxura eman, baina gogoratzen Oso zaila da hori array batean txertatzeko, ezean dugun txertatzen ari Array hori oso amaieran. Eta adibide onena daukat horretarako txertatzeko ordena. Gure bideo Gogoratzen baduzu txertatzeko ordenatu on, Han asko izan zen izatea parte hartzen duten gastu jasotzeko elementuak, eta filmea horiek Bidean zerbait egokitzeko daudelarik Zure array erdian sartu. Arrayak beste jasaten Arazoa, bertan zurruna da. Array bat aldarrikatzen dugu, jaurtiketa bat egiten lortuko dugu. Erran nahi lortuko dugu, nahi dut elementu asko hau. 100 izan liteke, agian izan 1.000, baliteke non x zenbaki bat erabiltzaileari dela x izan eman zigun gonbita batean edo komando at lerroan. Baina jaurtiketa bat bakarrik lortuko ditugula, dugu ez dute lortu, orduan esan oi, benetan I Beharrezko 101, edo x plus 20 behar nuen. Beranduegi, dagoeneko deklaratu gara array, eta 101 edo lortu nahi badugu x plus 20, deklaratzeko daukagu array zeharo ezberdina, array elementu guztiak kopiatu baino gehiago, eta, ondoren, nahikoa dugu. Eta zer gaizki gara berriro bada, zer Egia esan, ez dugu behar 102, edo x plus 40 bada, hau berriro egin behar izan dugu. Beraz, oso inflexible ari dira Gure datuak tamainaz aldatzeko, baina elkarrekin batzuk konbinatzen badugu oinarriak dagoeneko Nik dugu erakusleak eta egiturak buruz ikasi, bereziki, memoria dinamikoa erabiliz malloc esleipena, dugu pieza horiek bildu dezakezu datu berriak structure-- bat sortzeko banaka lotuta zerrenda liteke esaten dugu duela hazten aukera ematen digu eta balioen bilduma bat txikitu eta ez dugu alferrik galdu espazio edozein. Beraz, berriro ere, ideia hau deitu dugu, nozio hau, lotuta zerrenda. Hain zuzen ere, bideo honetan gaude banaka lotuta zerrenda buruz hitz egiten, eta, ondoren, beste bideo hitz egingo dugu buruzko bi aldiz lotuta zerrendak, besterik gai bat hemen aldaera bat da. Banaka lotuta zerrenda bat, baina Nodoen osatua, nodo besterik term-- abstraktu bat izatetik besterik zerbait deitzen naiz da duten mota bat da egitura, funtsean, naiz? Just nodo bat eta hau deitu behar nodo bi kidek, edo bi eremu ditu. Datuak, normalean bat dauka osokoa, pertsonaia mugikor bat, edo beste zenbait datu-mota izan daiteke Mota def batekin duzula definitu. Eta erakuslea bat dauka Mota bereko nodo beste. Beraz, barruan bi gauza egin behar dugu nodo honetan, datuak eta erakuslea nodo beste. Eta ikusteko hasten bazara hau, pentsatu ahal izango duzu nodo-kate bat bezalakoa dela elkarrekin lotuta daude. Lehen nodo daukagu, hura datuak, eta erakuslea dauka Bigarren nodoa, bertan biltzen den datuak, eta hirugarren nodo erakuslea. Eta beraz, horregatik da deritzogu Zerrenda lotuta, elkarrekin lotuta ari dira. Zer esan nahi du berezi honetan nodo egitura itxura? Beno, gogoratzen duzu gure bideo batetik bada mota pertsonalizatua definitzeko, mota def batera, structure-- bat defini dezakegu eta Idazten egitura bat definitzen dute hau. Eta egitura sllist tyepdef, eta, ondoren, naiz Hemen arbitrarioki hitza balioa erabiliz datu-mota edozein adierazteko benetan. Zenbaki oso bat edo karroza pasatzeko izan duzu, nahi duzuna izan dezakezu. Ez da bakarrik mugatzen osokoak, edo horrelako zerbait. Beraz, balio besterik ez da arbitrarioa bat datu-mota, eta, ondoren, erakuslea Mota bereko nodo beste. Orain, harrapaketa apur bat Hemen egitura bat definitzeko denean, auto erreferentziala egitura bat da. Aldi baterako izan behar dut Nire egitura izen. Egun nintzen bukaeran Argi eta garbi deitu nahi SLL node, hori da, azken finean berria of my motaren definizioa parte izendatzeko, baina ezin dut SLL node erabili honen erdian. Arrazoia izanik, ez daukat mota izeneko SLL nodo bat sortu Azken puntu hau sakatu dut hemen arte. Puntu hori bete arte, izan behar dut den datu mota hau izendatzeko beste modu bat. Eta hau auto bat da erreferentziala datu-mota. Ditu; datu-mota bat s egitura datuak bat dauka, eta beste erakuslea Mota bereko egitura. Beraz, erreferentzia izan behar dut Mota honetako datuak aldi baterako gutxienez, beraz, aldi baterako emanez Eta egitura sllist izena aukera ematen zidan orduan esan nahi dut Eta egitura sllist beste erakuslea, Eta egitura sllist izar bat, eta, ondoren, definizioa amaitu Nik egin ondoren, Orain I mota honetako SLL nodo bat deitu daiteke. Beraz, horregatik ikusten duzu, ez da Aldi baterako izen bat hemen, baina izen iraunkorra hemen. Batzuetan, ikus daitezke egituraren definizioak, adibidez, ez direla auto kontsultako, hori ez dute zehaztasun izen bat hemen. Besterik ez litzateke esatea Typedef egiturari, ireki kizkur eta ondoren definitzen da. Baina ez bazaude, egiturari auto da erreferentziala da, hau da, bezala, a zehaztu behar duzu Aldi baterako eredu horrekin. Baina, azken finean, orain Nik egin dugun honetan, Besterik ezin dugu erreferentzia nodo horiek, unitate hauek, helburuetarako SLL nodo gisa Bideo honen gainerakoa. Ondo da, beraz, badakigu nola lotutako zerrenda nodo bat sortzea. Nola definituko Badakigu zerrenda lotuta nodo. Orain, bada, ari gara martxan jarriko horiek erabilita, informazioa biltzeko, ebakuntza pare bat dugu ulertzeko eta elkarrekin lan egin behar. Nola sortu jakin behar dugu lotutako zerrenda bat aire mehe. Han zerrenda ez bada dagoeneko, bat hasi nahi dugu. Beraz, gai izan behar dugu lotutako zerrenda bat sortzea, ziurrenik bilatu behar dugu link zerrendan zehar bilatzen ari gara elementu bat aurkitzeko. Txertatzeko gai izan behar dugu zerrendan sartu gauza berriak, Gure zerrendan hazteko gai izan nahi dugu. Eta, era berean, gai izan nahi dugu Gure zerrendatik gauzak ezabatzeko, Gure zerrendan txikitu ahal izan dadin nahi dugu. Eta amaieran, gure programak, batez ere, Gogora garela bada dinamikoki memoria esleitzean zerrenda horiek eraikitzeko normalean, memoria hori guztia askatu nahi dugu Bukatutakoan dugu berarekin lanean. Eta beraz, ezabatzeko gai izan behar dugu lotuta bateko osoa zerrenda huts egiten swoop. Beraz, goazen bidez Eragiketa horiek batzuk eta nola liteke ikustarazi dugu, pseudocode kodea beregi hizketan. Beraz, sortu nahi dugu Zerrenda lotuta, beraz, agian dugu Funtzio bat definitu nahi prototipoa honekin. SLL nodo izar, sortu, eta pasatzen ari naiz argumentu bat, datu batzuk arbitrarioak Idatzi berriro, datu-mota arbitrarioa batzuk. Baina funtzio honetan returning-- naiz behar me itzultzeko erakuslea, banaka bat lotutako zerrenda nodo. Berriz ere, Sortu nahi dugu lotutako zerrenda bat aire mehe, beraz erakuslea behar dut Zerrenda horretan Noiz egin dut. Beraz, zer dira hemen hartzen duten urratsak? Beno, lehenik eta behin naiz joan egin dinamikoki da esleitu espazioa nodo berri bat da. Berriz ere, ari da sortzen dugun mehe airea, beraz, malloc da espazio behar dugu. Eta, jakina, berehala malloc dugu ondoren, Beti egiaztatu dugu ziurtatu gure erakuslea ez genuen lortu nulua. Saiatzen bagara, zeren eta begirunez null erakuslea, jasango goaz segfault eta ez dugu nahi hori. Ondoren, eremua bete nahi dugu, balio eremua hasieratu nahi dugu eta hasieratu hurrengo eremua. Eta gero zaie azkenean nahi dugu funtzioa prototipoa indicates-- nahi dugu erakuslea itzuli SLL nodo bat da. Beraz, zer egin hau ikusmen itxura? Beno, lehenik goaz dinamikoki esleitu espazioa SLL nodo berri bat, beraz Malloc dugun hori da bisuala ordezkaritza bat nodoaren sortu besterik ez dugu. Eta ziur egiaztatu dugu ez da kasu honetan null--, Irudian, ez luke izan agerian eman nulua balitz, oroimen gabe genuke exekutatu dute, hain onak ez joan behar gara. Beraz, gaur egun ari gara C urratsa, hasieratu nodes balio eremua. Beno, oinarritutako eragiketa hau deitu erabiltzen dut hemen, Itxura 6 gainditu nahi dut atsegin, beraz, balio eremuan 6 garrantzitsua dela. Orain, hasieratu hurrengo eremua. Beno, zer naiz han egin da joan, ez dago ezer datozen, eskuinera, hau zerrenda honetan gauza bakarra da. Beraz, zein da zerrendako hurrengo gauza da? Ez luke ezer puntu, eskubidea. Ez dago beste ezer ez du, beraz, zer da kontzeptua ezagutzen dugun da ezer Ezer ez erakusleak? Izan behar du, agian nahi dugu null erakuslea jarri nahi ez, eta nulua adierazten dut erakuslea kutxa gorri bat bezala besterik ez, Ezin gara, edozein gehiago. Ikusiko dugun bezala, pixka bat geroago, azkenean kateak aukera izango dugu geziak konektatzean nodo horiek elkarrekin, baina hit duzu koadro gorri, hori da nulua, Ezin gara urrunago, den zerrendan bukaera da. Eta, azkenik, besterik ez dugu nahi itzuli erakuslea nodo honetarako. Beraz dugun berria deitu, eta berria itzuliko da beraz, erabili ahal izango dira edozein dela ere funtzio sortu da. Beraz, hor dugu, banaka bat sortu dugu lotutako zerrenda nodo aire mehe, eta orain zerrenda bat lan egin ahal izango dugu. Orain, demagun dugu dagoeneko kate handi bat izan, eta bertan zerbait aurkitu nahi dugu. Eta hori gertatzen funtzio bat nahi dugu egia edo gezurra itzuli, arabera balio bat zerrenda horretan existitzen den ala ez. Funtzioa prototipoa, edo Funtzio horren adierazpena, agian itxura boolearra aurkitu Halako, eta ondoren, bi argumentu pasa nahi dugu. Lehena, erakuslea da Zerrenda lotuta lehenengo elementua. Hau da, benetan zerbait dituzu Beti segimendua egiteko nahi, eta benetan zerbait izan liteke hori nahiz aldagai global bat jarri duzu. Behin zerrenda bat sortzen duzunean, Beti, beti segimendua egiteko, oso nahi zerrendako lehenengo elementua. Era horretan beste guztiak aipatzeko ditzakezu kate jarraituz by elementuak, erakusleak mantentzeko beharrik gabe elementu bakoitza oso-osorik. Soilik lehen segimendua egiteko behar duzun bat bada ari dira guztiak kateatutako elkarrekin. Eta gero, bigarren gauza ari gara berriz pasatzen da arbitrarioki some-- datu-mota edozein dela ere gaude han bila, barruan da zorionez zerrendako nodo bat. Beraz, zer dira urratsak? Beno, lehenik eta behin egiten dugu transversal erakuslea bat sortu dugu zerrendak burua seinalatuz. Beno, zergatik egiten dugu hori, dagoeneko dugu erakuslea izan zerrendetako buruan, Bat inguruan zergatik ez mugitzen gara? Tira, esan bezala, benetan guretzat garrantzitsua da den pista beti egon Zerrendako elementu oso lehen. Eta, beraz, egia esan, hobeto Horren bikoiztuak bat sortzeko, eta ez dugu inoiz mugitu orain erabiltzen dituzten ustekabean, urrundu, edo beti dugu Hori da uneren erakuslea izan eskuineko zerrendan lehenengo elementua orrian. Beraz, hobe da bat sortzeko bigarrena mugitzeko erabiltzen ditugun. Ondoren ala konparatu besterik ez dugu balio nodo hartan eremuan da zer bilatzen ari gara, eta hori da, bada Ez, hurrengo nodo besterik ez dugu mugitzeko. Eta hori egiten jarraituko dugu baino gehiago, eta berriro, eta berriro, bai dugu aurkitu arte elementua, edo hit dugu null-- Nik bukaerara iritsi gara Zerrendaren eta ez da han. Hau zorionez du jotzen beharko kanpai bat duzun bilaketa lineala bezala besterik ez, Ari gara replicating ere banaka lotuta zerrenda egitura bat ordez array bat erabiliz egin ahal izateko. Hortaz, hona hemen adibide bat banaka lotuta zerrenda bat. Honek bat osatzen bost nodo, eta daukagun buru erakuslea zerrenda, hau da, zerrenda deitzen. Lehenengo gauza egin nahi dugu, Berriro, sortu zeharkako erakuslea. Beraz, orain bi erakusle dugu Gauza bera puntu horretan. Orain, konturatu hemen, gainera, ez nuen trav lekurik malloc behar. Nik ez dut esan trav berdinen malloc zerbait, nodo hori existitzen da, memoria espazio hori existitzen da dagoeneko. Beraz, guztiak benetan egiten ari naiz da hura erakuslea beste sortuz. Ez dut gehigarri bat mallocing espazioa, besterik ez dute, orain bi erakusleak Gauza bera seinalatuz. Beraz, 2 da zer bilatzen ari naiz? Beno, ez, beraz, horren ordez naiz hurrengo bat mugitu egingo da. Beraz, funtsean, esango nuke, trav berdinen trav hurrengo. Da 3, para no zer bilatzen ari naiz. Beraz, joan jarraitzen dut bidez, azkenean arte 6 eskuratu hau da, zer egiten dit oinarritutako funtzio deia on Dute goialdean dut han, eta orain egin dut. Orain, zer elementua naiz bada bila ez dago zerrendan, da lanera joan? Beno, zerrenda hori nabarituko Hemen da fin ezberdinak, eta hori da beste gauza bat da zerrendak lotuta garrantzitsua, ez duzu, gordetzea jakin ahal izateko haiek. Nahi izanez gero, egin dezakezu, baina Dagoeneko konturatuko ahal izango duzu ari ez garela jarraipena zer zenbakia elementu zagoz dugu. Eta hori da, bat merkataritza-mota hori dugu Zerrenda lotuta arrayak bertsoekin dute, da, ez dugu ausazko sarbidea jada. Ezin besterik esan dugu, nahi dut to 0. elementu joateko, edo nire array 6an elementua, bertan sorta bat egin ahal izango dut. Ezin dut esan nahi du joan nahi dut Elementu 0. edo 6an elementua, edo 25an nire zerrenda lotutako elementua, ez dago indize horiek lotutako da. Eta beraz, ez du benetan axola Gure zerrendan babesteko dugu bada ordena. Zuk nahi badituzu Zalantzarik gabe, ahal, baina ez dago inolako arrazoirik behar dute den ordenan mantenduta. Beraz, berriro ere, dezagun saiatu eta aurkituko 6 zerrenda honetan. Beno, hasteko at dugu hasita, ez dugu aurkituko 6 eta orduan ez du jarraituko dugu aurkitzeko 6 hemen azkenean genuen lortu arte. Orain txalupa b nodo Hona hemen puntu Sei dituen 8, eta ez dago ere. Beraz, hurrengo urratsa izango litzateke den hurrengo erakuslea joan, beraz, esan trav berdinen trav hurrengo. Beno, txalupa b hurrengo bidez adierazten koadro gorri dago, nulua da. Beraz, ez da inon den joan, eta, beraz, puntu honetan Nik hori iritsi gara ondoriozta dezakegu lotuta zerrendaren amaieran, eta 6 ez da hor. Eta itzuli beharko litzateke Kasu honetan faltsua. Ados, nola ez berri bat sartzen dugu nodo lotuta zerrenda? Beraz, sortzeko gai izan gara lotutako zerrenda bat ezerezetik, baina, ziurrenik, nahi dugu kate bat eraiki eta ez zerrendak desberdin mordo bat sortzeko. Zerrenda bat izan nahi dugu, bertan nodo sorta bat du, Ez zerrendak sorta bat nodo bakar batekin. Beraz, ezin dugu besterik gabe, gorde Sortu erabiliz Funtzio lehenago definitu dugu, orain dugu ra batean sartu nahi Zerrenda hori existitzen da dagoeneko. Beraz, kasu honetan, goazen bi argumentuak pasatzeko, horren buru erakuslea lotzen zerrenda gehitu nahi dugu. Berriz ere, horregatik hain da garrantzitsua dugu hori beti da segimendua, zeren modu bakarra dugu benetan to zerrenda osoa da erreferentzia izan besterik lehenengo elementu erakuslea arabera. Beraz, nahi bat pasa nahi dugu lehen elementu hori erakuslea, eta edozein dela ere balio dugu to zerrendari gehitu nahi. Eta, azkenean, funtzio honetan da erakuslea itzuli joan lotuta zerrenda buru berria da. Zer dira hemen hartzen duten urratsak? Beno, besterik sortzen dituzten bezala, dinamikoki esleitu behar dugu Nodo berria espazioa, eta egiaztatu egin Ziur ez dugu memoria agortu, berriro, malloc erabiltzen ari garelako. Ondoren Populatu nahi dugu eta sartu nodoaren, beraz, jarri zenbakia, zernahi val da, nodo sartu. Nodoa txertatzeko nahi dugu Zerrenda lotuta hasieran. Ez dago arrazoi bat dela I Hau egin nahi, eta hura Merezi bigarren bat hartu izan liteke Bideo eteteko hemen, eta zergatik nahi nuke nahi pentsatu a lotua hasieran txertatzeko Zerrenda. Berriz ere, lehenago aipatu dut ez dela benetan axola hark iraun dugu baldin badaude ere Ordena, beraz, agian, gakoetako bat. Eta guk zer gertatuko litzateke ikusi duzu nahi zaie edo bigarren bat besterik ez Duela denean gindoazen bilaketa bidez, zer ikusi izan liteke gertatuko ginen saiatzen bada zerrendaren amaieran txertatzeko. Ez dugulako dute bat Zerrenda amaieran erakuslea. Beraz, arrazoia zuela nahi dut to hasieran txertatzeko, da I berehala egin ahal izango delako. Hasieran erakuslea izan dut, eta hau ikusiko dugu bisuala bigarren bat ere. Baina amaieran txertatu nahi badut, Hasieran hasi behar dut, zeharkatuko du modu guztiak amaieran, eta, ondoren, Tack gainean. Beraz, hori dela esan nahi du Zerrendaren amaieran txertatzeak n O bat bihurtuko litzateke eragiketa, atzera egingo Gure eztabaida konplexutasun konputazionala. N eragiketa, non o bihurtu litzaidake Zerrenda handiagoa, eta handiagoa lortu, eta handiagoa, gero eta zailagoa izango da eta Zerbait Tack zailagoa amaieran. Baina beti da benetan erraza Tack zerbait hasieran, Beti ari zara hasieran. Eta honen bisuala ikusiko dugu berriro. Eta gero, behin egin gaude, behin nodo berria txertatuko ditugu, Gure erakuslea nahi itzultzeko dugu lotuta zerrenda buru berria, eta horrek dugu bertan txertatzen ari geroztik hasita, benetan izan Sortu berri dugun nodoaren erakuslea. Dezagun Ikusteko honetan, Nik uste dut lagundu egingo duelako. Hortaz, hona hemen gure zerrenda, datzan lau elementuak, nodo bat 15 adabegi bat seinalatzen daukan 9, bertan 13 nodo bat darama, bertan duten nodo bat seinalatzen 10, eta nulua du erakuslea bere hurrengo erakuslea gisa beraz den zerrendan bukaera da. Beraz, sartu nahi dugu 12 balioa nodo berria honen hasieran Zerrenda, zer egiten dugu? Beno, lehenengo espazio malloc dugu alde node, eta, ondoren, 12 jarri ditugu han. Beraz, gaur egun iritsi gara bat Erabaki puntua, ezta? Pare bat daukagu erakusleak genezakeela mugitu, zein den lehenengo mugitu behar dugu? Baldin eta 12 puntu egin dugu list-- buru berria edo Barkatu, egin behar dugu 12 zerrenda burua zaharra apuntatzen? Edo behar dela esan genezake dela Zerrenda orain 12etan hasiko da. Ez dago bereizketa bat da han, eta egingo begiratzen dugu biak bigarren batean zer gertatzen den. Baina hau bat dakar sidebar dagoen gaia handia, horietatik bat dela zerrendak lotuta trickiest gauzak da erakusleak antolatu zuzena izateko. Gauzak mugitzen duzun ordena bada, ustekabean azkenean dezakezu Zerrenda gainerako orphaning. Eta hemen horren adibide bat. Beraz, goazen ideiarekin of-- bai, besterik ez dugu sortu 12. Badakigu 12 izango da zerrendako buru berria, eta, beraz, zergatik ez mugitu besterik ez dugu dagoela seinalatu zerrenda erakuslea da. Ados, beraz, hori da ona. Beraz, gaur bertan, 12 hurrengo puntua egiten du? Esan nahi dut, ikusmen ikusi ahal izango dugu egingo dela 15 apuntatzen, gizakiak benetan guri begi-bistakoa da. Nola ordenagailu jakin? Ez dugu ezer 15 gehiago apuntatzen da, ezta? To 15 erreferentzia duen gaitasuna galdu dugu. Ezin dugu gezi berria hurrengo berdinen esan zerbait, ez dago ezer ez dago. Izan ere, umezurtz utzi ditugu Zerrenda gainerako hori eginez, dugu ustekabean katea hautsi. Eta ez dugu zalantzarik ez dugun egin nahi. Beraz, goazen atzera eta saiatu berriro. Agian eskuineko gauza egin da 12 hurrengo erakuslea ezartzeko zerrenda burua zahar hau lehen aldiz, zerrenda mugitu ahal izango dugun baino gehiago. Eta hain zuzen ere, horixe da orden egokian dugun jarraitu Oraindik ez dugu behar den banaka lotuta zerrenda batekin lanean. Beti konektatu nahi dugu Elementu berri zerrendan sartu, mota hori hartuko dugu aurretik aldatuz pauso garrantzitsua non lotuta zerrenda burua da. Berriz ere, besteak beste, funtsezko gauza bat da, Ez dugu pista galdu nahi. Beraz, ziurtatu egin nahi dugu dena batera kateatu da, erakuslea mugitzen dugu aurretik. Eta, beraz, hau ordena zuzena izango litzateke, hau da, 12 konektatzeko zerrendan, gero esan zerrendan hasten dela 12 a. Dugu esan zerrenda 12etan hasten bada, eta Saiatu ondoren 12 konektatzeko zerrendan, Dagoeneko ikusi dugu zer gertatzen den. Zerrenda galtzen dugun akatsa. Ados, beraz, gauza bat gehiago hitz egin. Zer kendu nahi badugu oso bat lotuta zerrenda aldi berean? Berriz ere, ari gara mallocing espazio hori guztia, eta, beraz, ez dugu libratzeko egiten gaude denean behar. Beraz, orain ezabatu nahi dugun loturiko zerrenda osoa. Beno, zer egin nahi dugu? Nik dugu iritsi null erakuslea bada, ez dugu gelditu nahi, bestela, besterik ezabatu Zerrendako gainerako zehar eta ondoren askatu me. Gainerako ezabatu Zerrendako, eta, ondoren, uneko adabegiaren askatzeko. Soinu horrelako Zer esan nahi du, zer teknika dute hitz egin dugu Aurretik buruz bezalako soinu hori? Ezabatu besteek, orduan itzuli eta niri ezabatzeko. Hori errekurtsio, egin genuen Arazoa pixka bat txikiagoa, Oraindik denek ezabatu esanez dugu bestela, gero niri ezabatzeko aukera izango duzu. Eta are gehiago, errepidean behera, nodo hori esango dute, denek ezabatu beste. Baina azkenean lortu dugu Puntu non zerrendan nulua da, eta hori gure base kasu. Beraz, dezagun begirada bat, eta hori nola lan egin dezake. Hortaz, hona hemen gure zerrenda, bera da zerrendatu besterik ez ginen buruz hitz egiten, eta han pausoak da. Badira testu asko dago hemen, baina zorionez bistaratzea lagunduko du. Beraz, egun ditugun eta ere bota dut gure pila fotograma ilustrazioa eman Gure dei pilak buruzko bideo-tik, eta espero dugu hau guztia elkarrekin erakutsiko dizu zer gertatzen den. Hortaz, hona hemen gure pseudocode kodea. Nulua bat lortzen badugu erakuslea, gelditzeko, bestela, Gainerako ezabatu Zerrendako, ondoren, gaur egungo nodo askatzeko. Beraz, oraintxe bertan, list-- erakuslea gaude igaroz puntuak suntsitzeko 12ra. 12 ez da null erakuslea, beraz, ez gara Zerrendako gainerako ezabatu behar. Zer da ezabatzen du inplikatutako gainerako gurekin? Beno, bat egiten dela esan nahi du deitzeko suntsitu, esanez 15 hori hasieratik da zerrendan suntsitu nahi dugu gainerako. Eta beraz deia suntsitzeko 12 motatako da atxikitu. Honez ez izoztu du, zain deitu suntsitu 15, bere lana amaitzeko. Beno, 15 ez da null erakuslea, eta beraz, esan behar, eskubidea, bai, ezabatu zerrendako gainerako. Zerrendako gainerako zehar hasten 9etan, eta beraz, besterik ez dugu itxaron guztia ezabatu arte dagoela gauza, ondoren, itzuli eta niri ezabatzeko. Beno 9, esan nahi baita joan, Ez nago null erakuslea, beraz, ezabatu gainerako zerrendan hemendik. Eta beraz, saiatu eta suntsitu 13. 13 dio, ez naiz null erakuslea, Gauza bera, Buck pasatzen da. 10 ez da nulua erakuslea, 10 null erakuslea dauka, baina 10 ez bera da null oraintxe erakuslea, eta beraz, Buck gehiegi pasatzen da. Eta orain zerrendatu puntuak ez, hura Benetan some-- seinalatu litzateke leku gehiago izan nuen irudia ere bada, ausazko espazio batzuk seinalatu litzateke ez dugun dakit zer den. Da null erakuslea arren, zerrendan literalki orain ezarri balioak nulua da. Honez eskuineko kutxa gorri barruan seinalatuz. Null erakuslea erdietsi dugu, beraz, gelditu ahal izango dugu, eta egiten gaude. Eta beraz, fotograma morea dela da gaur egun dauden stack-- goian dagoela koadro aktiboan da, baina kitto. Null erakuslea izan dugu lortu ezean, gelditzeko. Ez dugu ezer egin, ez dugu Ezin askatzeko null erakuslea, ez genuen malloc edozein espazioa, eta, beraz, egiten ari gara. Beraz, funtzio marko suntsitu, eta guk resume-- jaso dugu non utzi dugun hurrengo altuenarekin, batez off bertan urdin iluna markoa hau da hemen. Beraz jasotzeko eskubidea non utzi dugun ditugu. Gainerako ezabatu egiten dugu Zerrenda dagoeneko, beraz, orain gaude Gaur egungo nodo askatzeko joan. Beraz, orain nodo hau askatu ahal izango dugu, eta orain, Nik funtzioa bukaerara iritsi ginen. Eta beraz, funtzio fotograma hori suntsitu, eta jaso dugu, bat argi urdina at. Beraz says-- dagoeneko done-- dut Zerrendako gainerako ezabatzen, beraz, uneko adabegiaren askatzeko. Eta orain, marko horia da pila gainean atzera. Eta beraz, ikusten duzun bezala, orain gaude Ezkerretik zerrendan suntsitzen dabil. Zer gertatuko litzateke, ordea, ditugu gauzak egin izan balitu, okerreko bidea? Just like denean saiatu ginen elementu bat gehitzeko. Messed dugu katean, baldin bada guk ez dugu erakusleak konektatu zuzena izateko, bagenu besterik lehenengo elementu aske, libratuko dugu, besterik ez bada egin zerrenda-burua, gaur egun dugun to aipatzeko modurik ez dute Zerrendako gainerako zehar. Eta horrela izango genuke umezurtz utzi dena, izan genuen zer da memoria leak deitzen. Gogoratzen baduzu, gure bideo-tik memoria dinamikoa esleipena on, hori ez da gauza ona. Beraz, esan nuen ez hainbat eragiketa daude Lanera erabili behar ditugu modu eraginkorrean lotutako zerrenda. Eta konturatuko ahal izango duzu bat zehazten ez dut, a lotuta elementu bakar bat ezabatzea Zerrenda. Arrazoia, ez dut da da benetan mota delikatua nola ezabatu pentsatzen banaka batetik elementu bakar bat Zerrenda lotuta. Gainetik salto egiteko gai izan behar dugu zerrendan, zerbait bertan esan nahi lortu point-- dugu bat dugu nodo hau ezabatu nahi baina horren dadin dugu ez dute inolako informazio galduko, hau konexioa egin behar dugu hemen baino nodo, hemen. Beraz, ziurrenik oker hori egin nuen bisual ikuspuntutik. Oraindik, beraz, hasieran izan dugu gure zerrenda, aurrera jarraitu bidez ari gara, nodo hau ezabatu nahi dugu. Bada besterik ezabatu dugu, katearen hautsi dugu. Hementxe nodo hau beste guztia egiten dio erreferentzia, Hemen egindako aurrera kate daukalako. Beraz, zer da benetan egin behar dugu lortu ondoren dugu, puntu honetan, da atzera urratsa bat behar dugu, eta nodo hau konektatu baino node honetarako, beraz, ondoren, ezabatu ahal erdian bat egin. Baina banaka lotuta zerrendak ez atzeraka joateko modu bat eskaintzen digu. Beraz, bai mantentzeko behar dugu bi erakusleak, eta eraman off urrats moduko, atzetik beste, joaten gara edo puntu bat lortu eta, ondoren, bidaliko erakuslea beste bidez. Eta zuk ikusiko den bezala, hura narratsa pixka bat lor daiteke. Zorionez, ez dugu Beste modu batera hori konpontzeko, denean bi aldiz lotuta zerrendak buruz hitz egin dugu. Naiz Doug Lloyd, hau CS50 da.