DOUG LLOYD: Ondo da, Puntu honetan zaudenean by orain
seguruenik nahiko ezaguna matrizeak eta zerrendak lotuta
horietatik bi lehen da Datu-egitura dugu
aipatu multzo mantenduz antzeko datu motak datuak antolatuta.
>> Orain ari gara hitz egin aldakuntzak pare bat inguru
array eta zerrendak lotutako on.
Bideo honetan goaz pilak buruz hitz egiteko.
Hain zuzen ere ari gara hitz joan buruz pila bat izeneko datu-egitura bat.
Aurreko eztabaidak Gogoratu erakusleak eta memoria buruz,
pila da, halaber, hori memoria segmentu baten izena
non estatikoki deklaratu Bat memoria memoria duzula
izendatzeko, zuk izendatu duten aldagaiak, et cetera eta funtzio markoak eta horrek ere dugu
pila fotograma deiaren existitzen.
Beraz, hau pila datu-egitura bat da Ez pila memoria segmentu bat.
ONDO DA.
>> Baina zer pila bat da?
Beraz, nahiko askoz besterik da egitura mota berezi
duten datuak mantentzen modu antolatuan.
Eta ez da bi oso modu komun ezartzea
pilak bi datu egiturak erabiliz Dagoeneko ezagutzen ari garela,
array eta zerrendak lotutako.
Zer egiten pila berezi bat da modu horretan, informazioa jarri dugu
pila, eta horrela egiten dugu sartu pila informazio kendu.
Bereziki pilak ere araua da gehien bakarrik
Azkenaldian gehitutako elementu kendu daitezke.
>> Beraz, pentsatu balitz bezala pila bat da.
Informazio pilatzen ari gara beraren gainean,
eta bakarrik goialdean gauza pila kendu daitezke.
Ezin dugu gauza kendu azpian beste guztia ez litzateke izango duelako
kolapso eta erori baino.
Beraz, benetan ari pila bat eraikitzen dugun orduan dugun pieza kendu pieza.
Hori dela eta, normalean erreferentzia dugu pila bat LIFO egitura gisa,
iraungo, lehena inprimatu.
LIFO, iraun ere, lehen egindako.
>> Beraz delako murrizketarik honetan nola informazioa gehitu daiteke
eta pila bat kendu, ez da benetan bi gauza besterik ez dugu pila bat egin dezake.
Bultza dezakegu, hau da, gehituz erabiltzen dugun terminoa
goiko aldean den elementu berri bat pilatu, edo pila du existitzen ez bada
eta egiten ari sortzeko dugu hutsetik, lehenik eta behin pila sortzen
bultzaka litzateke.
Eta gero pop, hori CS moduko Epe Azen kentzeko erabiltzen dugu
elementu gehitu pila goitik.
>> Beraz, bai, itxura joan inplementazioak, bai array oinarritutako
eta lotutako zerrenda oinarrituta.
Eta goaz array oinarritutako batekin hasteko.
Hortaz, hona hemen oinarrizko ideia da, zer Array oinarritutako pila datu egitura
itxura litzateke.
Idatzitako definizio bat dugu hemen.
Horren barruan bi kidek daukagu edo egitura arloetan.
Array bat daukagu.
Eta berriro ere, naiz erabiliz arbitrarioa datu-mota balio.
>> Beraz, hau datu-mota edozein izan daiteke, int char edo beste datu batzuk
Aurretik sortutako duzu idatzi.
Beraz, tamaina ahalmena array bat izan dugu.
Aforoa ari libra bat definitzen konstante, agian beste nonbait gure fitxategian.
Beraz, konturatu dagoeneko zehatz honekin ezartzeko jauzika ari gara
zen bezala geure normalean hilarak kasuan,
horietatik ezin dugu dinamikoki tamainaz, non dago kopuru jakin bat da
elementuen gehienezko dagoela dugu gure pila jarri daiteke.
Kasu honetan edukiera elementu da.
>> Halaber, segimendua egiteko pilaren goialdean.
Elementu zer da gehien Duela gutxi gehitu pila?
Eta honen jarraipena dugu goi aldakorra izeneko batean.
Eta hori guztia erabat bilduta elkarrekin pila bat izeneko datu-mota berri bat sartu.
Eta sortu ari gara, behin datu-mota berri hau
Gustatu tratatu ahal izango dugu beste edozein datu-mota.
Pila s deklaratu ahal izango dugu, bezala int x, edo char y egin genezake.
Eta noiz pilatu esan dugu s, ondo zer gertatzen
da multzo bat lortuko dugu memoria albo batera guretzat.
>> Kasu Gaitasun honetan Nik itxuraz erabaki
10 da dut lortu delako bat mota pila aldagai bakar
dituen bi eremuak gogoratzen.
Array bat, kasu honetan, va zenbaki osoen array bat izan nahi du
Nire adibide gehienetan gertatzen den bezala.
Eta zenbaki oso aldagai bat goian gordetzeko gai,
azkena gehitu pila elementu.
Beraz, inork pila bakar zer dugu besterik honelako itxura definitzen.
Kutxa bat da 10 array bat zer
Kasu honetan osokoa izan beharko du eta beste zenbaki oso aldakorra han berdean
pilaren goialdean adierazteko.
>> Goiko aldean ezartzeko pila esan besterik ez dugu s.top.
Hori batera nola iritsi garen egitura estaldura eremuan.
s.top funtzioak 0 eraginkortasunez Hau ez da, gure pila bat.
Beraz, berriro ere, bi eragiketak daukagu orain egin ahal izango dugun.
Bultza eta pop dezakegu ahal dugu.
Hasteko bultzada Dezagun.
Berriz ere, bultzaka berri bat gehitzea pila goian elementu.
>> Beraz, zer egin egin behar dugu array honetan oinarritutako ezartzeko?
Beno orokorrean push funtzioa va
bat onartu behar den pilaren erakuslea.
Orain, hartu bigarren eta pentsatu.
Zergatik onartu nahi dugu pilaren erakuslea?
Aurreko bideoekin Berreskuratu esparrua eta erakusleak aldakorra,
bidaliko dugu, besterik ez bada, zer gertatuko litzateke pila, s baizik parametro gisa ere?
Zer izango litzateke benetan han pasatzen?
Gogoratu kopia bat sortzen ari gara denean, gainditu dugu funtzio bat
erakusleak erabili ezean.
Eta, beraz, funtzio hau bultzatu beharrak pilaren erakuslea onartzeko
benetan ari gara aldatzen da, beraz, pila aldatzeko asmoa dugu.
>> Beste gauza bultzada ziurrenik nahi du Onartzen datu-mota balio-elementu bat da.
Kasu honetan, berriz ere, zenbaki oso bat dagoela gehitu pila goialdean goaz.
Beraz, gure bi parametroak lortu dugu.
Zer dira joan den dugu orain, bultza barruan egin?
Beno, besterik gabe, besterik ez gara gehitzen joan pilaren goialdean elementua
eta, ondoren, aldatu non goialdean pila da, s goi balio dot.
Beraz, zer funtzio bat da bultzada deklarazioa
agian itxura batean array oinarritutako ezartzeko.
>> Berriz ere, hau ez da arau zorrotz bat hori aldatu ahal izango duzu, eta behar
aldatu egiten dira modu ezberdinetan egiten.
Agian s globalean deklaratu da.
Eta, beraz, nahiz eta ez izan behar duzu parametro bezala da gainditzeko.
Hau da, berriro ere, besterik bat Push kasu orokorra.
Eta desberdinak daude Modu jartzera.
Baina kasu honetan, gure Push joan hartu
Bi argumentu, pila bat erakuslea eta Datu mota balio, zenbaki oso elementu bat
kasu honetan.
>> Beraz s deklaratu dugu, dugu esan s.top funtzioak 0.
Orain dezagun bultza kopurua 28 pila gainean.
Beno, zer esan nahi du horrek?
Beno, gaur egun, pilaren goialdean 0 da.
Eta beraz, zer da, funtsean, gertatuko da
kopuruaren itsasten goaz 28 array kokapena 0 markagailuan.
Nahiko erraza da, ezta, hori goian zegoen eta orain onak joan gara.
Eta gero, zer aldatu behar dugu pilaren goialdean izango da.
Beraz, hurrengo aldian elementu bat bultzatu dugu,
gordetzeko goaz array kokapena, ziurrenik, ez da 0.
Ez dugu gainidatzi nahi zer jarri besterik ez dugu.
Eta, beraz, besterik ez dugu Gora 1 mugitu.
Hau seguruenik zentzurik.
>> Orain beste elementu bat jarri nahi badugu pila gainean, esan 33 bultza nahi dugu,
bai orain ari gara 33 hartu du eta ipini array kokapena zenbakian
1, eta, ondoren, goiko aldean, aldaketa gure pilatu array kokapena kopurua bi izan.
Beraz, hurrengo denbora bada nahi dugu elementu bat bultza pila gainean,
da array kokapena 2 zaizu jarri.
Eta egin dezagun denbora gehiago bat dagoela utzi.
Bultza egingo dugu 19 pilak off.
Jarriko dugu 19 array kokapena 2 eta gure pila goialdean aldatu
array kokapena 3 izango da beraz, denbora hurrengo bagenu
bultzada bat ona joan Oraindik dugu egin behar.
>> Ados, beraz, hori hitz batean bultzaka.
Zer leihoa buruz?
Beraz leihoa sailkatu da bultzaka zeuden.
It nola pila datuak kendu dugu.
Eta pop beharrak orokorrean Honako hau egin behar.
Erakuslea onartu behar du pilatu, berriro kasu orokorra.
Beste kasu batzuetan, gerta daiteke Izan pila orokorrean deklaratu,
Zuk ez eta kasu horretan behar pasatzeko delako dagoeneko sarbidea du
aldagai global gisa.
Baina orduan zer gehiago egin behar dugu?
Beno Incrementing ari ginen bultzada pila goialdean,
beraz, ziurrenik ari gara nahi joan pilaren goialdean decrement
pop, ezta?
Eta gero, jakina gainera gara nahi joan
balio hori kendu dugu itzultzeko.
Dugu elementu gehitzen ari bazara, nahi dugun geroago elementu ateratzeko,
ziurrenik benetan dugu horiek, beraz, ez dugu gorde nahi
ez da beraiekin ezabatu batetik pilatu eta gero, ez da ezer egin haiekin.
Oro bagaude bultzaka eta hemen leihoa
hau gorde nahi dugu modu esanguratsu batean informazio
eta beraz, ez du egin Zentzu besterik baztertu.
Beraz, funtzio hau egin beharko lukete seguruenik balio bat itzuli du guretzat.
>> Beraz, hau da zer bat deklarazio pop egiteko agian ez itxurarik goiko ezkerreko.
Funtzio honek itzultzen mota balio datuak.
Berriz erabiliz Izan dugu integers zehar.
Eta pila bat bezala erakuslea onartu egiten du Bere argudio bakarrarekin edo parametro bakarrarekin.
Beraz, zer da pop egin?
Demagun orain nahi dugu elementu bat irekiko s off.
Beraz, gogoratu pilak duten azken direla esan dut ere, lehen egindako, LIFO datuen egitura.
Zein elementu dago joan da kendu pila?
Asmatzen Ba al 19?
Zuk eskubidea izango litzaidake delako.
19 gehitu behar diogu azken elementua izan zen pilatu denean elementu bultzaka ari gara,
eta, beraz, lehena da joan Lortzen kendu elementu.
Balitz bezala esan genuen 28 eta ondoren, 33 jarri dugu gainean,
eta 19 jarri ditugu horren gainean.
Hartu ahal izango dugu off elementu bakarra 19 da.
>> Orain Diagraman hemen zer egin dut moduko deleted 19 array batetik.
Hori ez da zer ari gara egiten joan.
Ari gara nolako joan ren asmoa ez da han.
Oraindik ere ez da hor Memoriaren,
baina besterik ez gara baztertu egingo da gure pila goialdean aldatuz
3 izateaz 2 etara.
Beraz bagenitu orain bultza pila gainean beste elementu bat,
gorako litzateke idatzi 19.
>> Baina ez dezagun arazoak bitartez joan pila 19 ezabatzen.
Besterik ezin dugu gehiegi sakondu, ez da han.
Pila helburuetarako kendu badute goi aldatu dugu 2 3 ordez izateko.
Ondo da, beraz, hori izan zen, nahiko asko.
Hori da egin behar dugun guztia elementu bat pop off.
Berriro egin dezagun.
Beraz, nabarmendu dut gorriz hemen adierazi dugun beste dei bat egiten ari zara.
Gauza bera egin behar izan dugu.
>> Beraz, zer gertatuko da?
Beno, gordetzeko goaz 33 x eta goaz
pilaren goialdean aldatzeko 1era.
Beraz, orain ginen bat bultza bada pila gaude sartu elementu
oraintxe egin behar dugu, zer gertatuko
Oraindik gainidazteko goaz array kokapena kopurua 1.
Beraz, 33 Ordena geratzen zela Atzean bestela itxura besterik ez dugu
da, ez dago jada, besterik goaz hura gainean idazteko eta jarri 40 dago beharrean.
Eta gero, jakina, bultzada bat ditugunez,
Kontatzailea goaz pilaren goialdean etik 1 eta 2
beraz, bada, gaur egun dugu gehitzeko Lurra gainera beste elementu
array kokapena kopurua bi sartu.
>> Orain zerrendak lotuta daude beste Bide pilak ezartzeko.
Eta definizio honen gaineko bada pantaila hemen begiratzen duzu ezagutzen,
da ia itxura duelako berdinak, hain zuzen ere,
nahiko asko da, hain zuzen banaka lotuta zerrenda bat bezalakoa dela,
Gogora gure eztabaida batetik bada banaka lotuta zerrendak beste bideo bat.
Bakarrik Debeku hemen Gurekin da programatzaileak bezala,
ez dugu onartzen txertatu edo ausaz ezabatu
banaka lotuta dauden zerrendatik horrek aldez aurretik egin izan.
Ezin dugu bakarrik orain txertatu eta ezabatu aurrean edo guztiz lotuak goiko aldean
Zerrenda.
Hori da benetan bakarrak aldea arren.
Hau da, bestela banaka lotuta zerrenda bat.
Baldintza bakarra da geure burua ordezkatuz
programatzaileak gisa aldatzen da pila bat sartu.
>> Hemen araua da, beti mantendu a lotuta zerrenda burua erakuslea.
Hau, jakina, oro har, Lehenengo garrantzitsua arau.
For banaka lotuta zerrenda hala dituzu bakarrik erakuslea behar buruan
izateko duten ere kate izan aipatzeko gai
beste elementu bat behin lotuta zerrendan.
Baina bereziki da pila batekin garrantzitsua.
Eta, beraz, oro har Oraindik joan den benetan nahi
Hau erakuslea aldagai global bat izan nahi du.
Nonbait joan izan are errazagoa era horretan.
Beraz, zer dira bultza eta pop analogs du?
Eskuin.
Beraz, berriro ere bultzaka gehituz pila elementu berririk.
Lotutako zerrenda bat ere, esan behar goaz
Nodo berria gauden egiterako gehitu lotuta zerrendan sartu,
eta, gero, kontu handiz ibili urratsak jarraitu aurrez planteaturiko dugu
banaka lotuta zerrendak ere egiten gehitzeko kate hautsi gabe kateko
eta galduz edo edozein orphaning Zerrenda lotuta elementu.
Eta hori da, funtsean, zer dela Testu blob txiki laburbiltzen.
Eta dezagun begirada bat egiten diagrama batean bezala.
>> Hortaz, hona hemen gure lotutako zerrenda da.
Konkurrentzia lau elementuak ditu.
Eta gehiago ezin hobeto, hemen gure lau osagaiak dituzten pilatu.
Eta demagun orain nahi dugu Elementu berri bat bultza pila honen gainean.
Eta berri bat bultzatu nahi dugu elementua datuak balioa 12 da.
Beno, zer ari gara egin?
Beno lehen gabiltza joan malloc espazioa, dinamikoki
esleitu espazioa nodo berri bat da.
Eta, jakina, berehala ondoren Dei bat egiten dugu dugu malloc beti
ziurtatu null egiaztatzeko, delako null lortu dugu atzera
han arazo nolabaiteko zen.
Ez dugu nulua duten erreferentzia kenduta nahi erakuslea edo zuk seg matxura bat jasaten du.
Hori ez da ona.
Beraz, egoera berriaren malloced dugu.
Kontsideratuko dugu hemen izan dugu arrakasta.
12 jartzea goaz Datu nodo horren esparruan.
Orain gogoan al duzue gure erakusleak bertan hurrengo beraz, ez dugu katea hautsi mugitzen?
Aukera pare bat hemen dugu baina ko duten segurua izango da soilik
Berri hurrengo erakuslea ezarri zerrenda burua zaharraren puntu
edo zer laster izango du zerrenda burua zaharra.
Eta orain, guztia dela gure elementu elkarri kateatuta daude,
Besterik ezin dugu mugitu zerrenda seinalatuko eragina duela new leku berera.
Eta orain eraginkortasunez bultzatu dugu bat Elementu berri pila aurrean kalera.
>> Dugu pop besterik nahi lehen elementu hori ezabatu.
Eta, beraz, funtsean, zer Hemen egin behar dugu,
baita bigarren elementua aurkitu behar dugu.
Azkenean hori berria izango buru lehenengoa ezabatu dugu ondoren.
Beraz, besterik gabe hasi behar dugu Hasieran, aurrera egin du.
Lortu dugu behin atxikitu batetik non dugu aurrera unean
dira lehenengoa segurtasunez ezabatu ahal izango dugu eta, ondoren, besterik ezin dugu burua mugitu
Zein izan da apuntatzen du bigarren epe eta gero orain
da lehenengo horren ondoren nodo ezabatu egin da.
>> Beraz, berriro ere, begirada bat hartu egiten diagrama batean bezala dugu
Nahi orain bat irekiko elementu pila honen off.
Beraz, zer egiten dugu?
Beno goaz Sortuko joan erakuslea berri hori joan
buruan jo Leku berera apuntatu.
Posizio bat mugitzen ari gara Aurrera trav berdinen esanez
Trav hurrengo adibidez, bertan trav erakuslea bat aurrera litzateke
Posizio aurrera.
Orain dugula dut bat Lehenengo elementua eduki
izeneko erakuslea zerrenda, eta bidez izeneko bigarren elementu erakuslea bidez
trav, ziurtasunez ezabatu ditzakezula, pila lehen elementu
Gainerako galdu gabe katearen dugulako
aipatzeko modu bat bigarren elementu
horren bidez helaraziko erakuslea izeneko txalupa b.
>> Beraz, orain nodo hori askatu ahal izango dugu.
Zerrenda askatu ahal izango dugu.
Eta gero, orain egin behar dugun guztia da mugitu zerrenda puntuari leku berera
trav egiten duen, eta ordenatu gaude atzealdean non hasi ginen 12 bultzatu dugu aurretik
lehenik eta behin, eskubidea.
Hau da, zehazki non ginen.
Lau elementu hau pila izan genuen.
Bosgarren bat gehitu dugu.
Bosgarren bat bultzatu dugu elementu, eta, ondoren, dugu
idatz berrienek gehitu elementu atzera off.
>> Hori da benetan nahiko askoz hor, pilak.
Horiek ezartzeko dezakezu array gisa.
Horiek ezartzeko dezakezu lotuta zerrendak bezala.
Badira, noski, beste Modu horiek martxan jarri behar baita.
Funtsean arrazoia erabiliko genuke pilak da modu bat, hala ere, datu mantentzea
azkena gehitu duenez elementu lehenengo gauza garela da
Atzera lortu nahi du.
Naiz Doug Lloyd, hau CS50 da.