>> [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.