[Powered by Google Translate] [Alt 6: Lúide Compordach]
[Nate Hardison] [Ollscoil Harvard]
[Tá sé seo CS50.] [CS50.TV]
Gach ceart. Fáilte go dtí alt 6.
An tseachtain seo, táimid ag dul a bheith ag caint faoi struchtúir sonraí in alt,
go príomha mar gheall seachtaine seo fhadhb a leagtar ar spellr
dhéanann a bunch iomlán de taiscéalaíochta struchtúr éagsúla sonraí.
Tá a bunch de bhealaí éagsúla is féidir leat dul leis an leagan fhadhb,
agus na struchtúir níos mó sonraí a fhios agat faoi, na rudaí níos cool is féidir leat a dhéanamh.
>> Mar sin a ligean tús a chur leis. An Chéad táimid ag dul chun labhairt faoi stacks,
na sonraí Stack agus scuaine struchtúir a táimid ag dul chun labhairt faoi.
Tá stacks agus scuainí i ndáiríre cabhrach nuair a thosaíonn muid ag caint faoi graif,
nach bhfuil muid ag dul a dhéanamh an oiread sin de cheart anois.
Ach tá siad i ndáiríre go maith chun tuiscint a fháil ar cheann de na struchtúir mór bunúsacha sonraí CS.
Cur síos sa tsonraíocht atá leagtha fhadhb,
má tá tú tharraingt suas, cainteanna faoi cruacha mar cosúil le
an carn na tráidirí bia go bhfuil tú sa Caifitéire ag na hallaí bia
i gcás nuair a thagann an fhoireann bia agus cuireann an tráidirí bia amach tar éis tá siad glanta iad,
siad chairn iad a ceann ar bharr an taobh eile.
Agus ansin nuair a thagann na páistí i mbia a fháil,
tharraingt siad an tráidirí amach, ar dtús leis an ceann is fearr, ansin an ceann thíos é, ansin an ceann faoi bhun.
Mar sin, i ndáiríre, is é an tráidire chéad a chur ar an bhfoireann bia síos an ceann deireanach go bhfaigheann déanta as.
Is é an ceann deireanach a chuir an fhoireann bia ar an chéad cheann go bhfaigheann tógadh amach le haghaidh dinnéir.
Sa tacar fhadhb ar spec, ar féidir leat a íoslódáil más rud é nach bhfuil tú cheana féin,
labhairt linn faoi samhaltú a stucture sonraí Stack ag baint úsáide as an gcineál seo struct.
>> Mar sin, cad tá muid fuair anseo, is é seo cosúil leis an méid a cuireadh i láthair i léacht,
ach amháin i léacht i láthair againn seo le ints seachas * s Char.
Tá sé seo dul chun bheith ina chairn go siopaí cad é?
Daniel? Cad é atá a stóráil againn sa chairn?
[Daniel] Teaghráin? >> Tá muid ag teaghráin a stóráil sa chairn, go díreach.
Tá gach ní mór duit a bheith i d'fhonn a chruthú Stack eagar
de thoilleadh ar leith, atá sa chás seo,
acmhainn ag dul a bheith i ngach caipíní mar tá sé ina tairiseach.
Agus ansin sa bhreis ar an eagar, tá gach ní mór dúinn a rianú ar an méid atá ann faoi láthair ar an eagar.
Rud amháin a thabhairt faoi deara anseo go bhfuil de chineál ar fionnuar
Tá go bhfuil muid ag chruthú ar an struchtúr sonraí Cruachta ar bharr eile struchtúr sonraí, ar an eagar.
Tá bealaí éagsúla chun stoic i bhfeidhm.
Ní bheidh muid é a dhéanamh go leor go fóill, ach táthar ag súil a dhéanamh tar éis na fadhbanna nasctha-liosta,
Feicfidh tú a fheiceáil conas is féidir leat chun feidhme go héasca Stack ar bharr an liosta nasctha chomh maith.
Ach do anois, beidh muid ag cloí leis na arrays.
Mar sin, arís, tá gach ní mór dúinn le sraith agus ní mór dúinn ach a rianú an méid de na eagar.
[Sam] Tá brón orainn, cén fáth go bhfuil sé go dúirt tú Tá an chairn ar bharr an teaghráin?
Chun dom is cosúil sé cosúil go bhfuil an teaghráin laistigh den chairn.
[Hardison] Yeah. Táimid ag a chruthú, táimid ag cur ár sraith sonraí a struchtúr -
Tá go ceist mhór. Mar sin, tá an cheist cén fáth, do na daoine atá ag faire seo ar líne,
cén fáth a bhfuil á rá againn go bhfuil an chairn ar bharr an teaghráin,
toisc go anseo tá sé cosúil go bhfuil an teaghráin taobh istigh an chairn?
Cé acu is go hiomlán leis an gcás.
Cad a bhí mé ag tagairt do go raibh againn fuair an struchtúr sonraí eagar.
Táimid agam le sraith de ruabhric * s, seo sraith de teaghráin,
agus táimid ag dul chun cur leis go bhfuil d'fhonn a chruthú ar an struchtúr sonraí Cruachta.
>> Mar sin, tá Stack beagán níos casta ná eagar.
Is féidir linn úsáid le sraith a thógáil Stack.
Mar sin, i gcás go deirimid go bhfuil an chairn a tógadh ar bharr eagar.
Mar an gcéanna, mar a dúirt mé níos luaithe, is féidir linn a thógáil Stack ar bharr an liosta nasctha.
In áit a úsáid a bhaint as le sraith de bheith i seilbh ár gcuid eilimintí,
féidir linn a úsáid ar liosta nasctha de bheith i seilbh ár gnéithe agus an chairn a thógáil thart ar an.
A ligean ar siúl tríd cúpla samplaí, ag féachaint ar roinnt cód,
a fheiceáil cad atá ag tarlú i ndáiríre anseo.
Ar thaobh na láimhe clé, tá mé thrown síos cad a bheadh ​​struct Stack cuma mhaith i gcuimhne
más rud é acmhainn a bhí sainithe # bheith ceathair.
Táimid iontach fuair ár ceithre-eilimint eagar * Char.
Táimid agam strings [0], strings [1], strings [2], strings [3],
agus ansin an spás seo caite le haghaidh ár slánuimhir méid.
An bhfuil an ciall a bhaint as? Maith go leor.
Tá sé seo cad a tharlaíonn má cad a dhéanfaidh mé ar dheis,
a bheidh mo cód é, a dhearbhú ach struct, a struct Cruachta ar a dtugtar s.
Is é seo a fháil againn. Leagann sé síos an lorg i gcuimhne.
Is í an chéad cheist anseo cad iad ábhar an struct chairn?
Ceart anois tá siad rud ar bith, ach ní bhíonn siad go hiomlán rud ar bith.
Tá siad den chineál seo truflais. Tá aon smaoineamh cad atá iontu.
Nuair a dhearbhú s chairn, tá muid ag caitheamh go díreach síos ar bharr chuimhne.
Tá sé cineál cosúil dhearbhú o i agus ní initializing é.
Níl a fhios agat cad atá in ann. Is féidir leat léamh cad atá in ann,
ach ní fhéadfadh sé a bheith Super cabhrach.
Rud amháin ba mhaith leat a mheabhrú i gcónaí a dhéanamh thúsú cibé is gá a initialized.
Sa chás seo, táimid ag dul a thúsú an méid a bheith nialas,
mar gheall ar sin ag dul chun dul amach a bheith an-tábhachtach dúinn.
D'fhéadfadh muid dul ar aghaidh agus gach ceann de na leideanna, na s * Char thúsú,
a bheith le roinnt luach intuigthe, is dócha null.
Ach nach bhfuil sé go hiomlán riachtanach go ndéanaimid sin.
>> Anois, tá an dá hoibríochtaí is mó ar stoic?
Éinne cuimhin as léacht cad a dhéanann tú le cruacha? Tá?
[Stella] Brú agus popping? >> Go díreach.
Tá brú agus popping an dá hoibríochtaí is mó ar stoic.
Agus cad a bhrú a dhéanamh? >> Cuireann sé rud éigin ar an barr
an chairn, agus ansin a thógann popping sé as.
[Hardison] díreach. Mar sin, ag brú pushes rud éigin ar bharr an chairn.
Tá sé cosúil leis an bhfoireann bia a chur ar tráidire bia síos ar an gcuntar.
Agus is é popping ag cur tráidire bia as an chairn.
A ligean ar siúl tríd cúpla samplaí de cad a tharlaíonn
nuair a rudaí a bhrú isteach sa an chairn.
Más rud é go raibh muid a bhrú ar an teaghrán 'hello' isteach ar ár Stack,
is é seo an méid a bheadh ​​ár léaráid cuma mhaith anois.
Féach cad a tharlaíonn?
Bhrúigh muid isteach an chéad eilimint ar ár eagar teaghráin
agus upped ár count méid a bheidh le 1.
Mar sin, má táimid ar an difríocht idir an dá sleamhnáin, bhí anseo 0, Tá anseo roimh an bhrú.
Seo tar éis an bhrú.
Roimh an bhrú, tar éis an bhrú.
Agus anois tá muid ar cheann eilimint in ár chairn.
Tá sé an teaghrán "hello", agus go bhfuil sé.
Gach rud eile sa sraith, inár eagar teaghráin, fós truflais.
Ní Tá initialized é.
Ligean le rá againn a bhrú eile teaghrán isteach ar ár chairn.
Táimid ag dul a bhrú "domhan" ar an am seo.
Mar sin, is féidir leat a fheiceáil "domhan" Téann anseo ar bharr "hello",
agus téann an líon méid suas go dtí 2.
Anois is féidir linn a bhrú "CS50", agus beidh a théann ar bharr arís.
Má théann muid ar ais, is féidir leat a fheiceáil conas tá muid rudaí ag brú ar bharr an chairn.
Agus anois a fháil againn a pop.
Nuair a popped muid rud éigin as an chairn, cad a tharla?
Aon duine a fheiceáil ar an difríocht? Tá sé deas subtle.
[Mac Léinn] An méid. >> Yeah, d'athraigh an méid.
>> Cad eile leat a bheith ag súil a athrú?
[Mac Léinn] Tá teaghráin, freisin. >> Ceart. Na teaghráin chomh maith.
Casadh sé amach go nuair a bhíonn tú ag déanamh sé ar an mbealach seo,
toisc nach bhfuil muid ag cóipeáil na heilimintí i ár Stack,
againn i ndáiríre ní gá aon rud a dhéanamh; is féidir linn a úsáid ach an méid
súil a choinneáil ar líon na rudaí i ár sraith
ionas gur nuair a pop againn arís, arís muid decrement ach ár méid síos go dtí 1.
Níl aon ghá le dul i ndáiríre i agus rud ar bith scríobh.
Cineál ar funky.
Casadh sé amach go bhfuil muid de ghnáth fhágáil ach rudaí ina n-aonar mar tá sé ag obair níos lú le linn a dhéanamh.
Más rud é nach bhfuil againn chun dul ar ais agus rud éigin a scríobh, ansin cén fáth a dhéanann sé?
Mar sin, nuair a pop againn faoi dhó as an chairn, is léir go ndéanann decrement an méid cúpla uair.
Agus arís, tá sé seo ach toisc nach bhfuil muid rudaí a chóipeáil isteach inár chairn.
Tá? Téigh amach romhainn.
[Mac Léinn, dothuigthe] >> Agus ansin cad a tharlaíonn nuair a dhéanann tú a bhrú rud éigin arís?
Nuair a bhrú tú rud éigin arís, ní áit a bhfuil sé dul?
I gcás ina dtéann sé, Basil? >> Isteach strings [1]? >> Ceart.
Cén fáth nach é a dul isteach strings [3]?
[Basil] Mar gheall ar Forgot sé go raibh aon ní i strings [1] agus [2]?
[Hardison] díreach. Ár chairn, go bunúsach, "dearmad" go raibh a bhfuil sé ar rud ar bith
i strings [1] nó strings [2], mar sin nuair a bhrú "woot",
cuireann sé sin go díreach isteach sa ghné ag strings [1].
An bhfuil aon cheisteanna maidir le conas a oibríonn seo, ag leibhéal bunúsach?
[Sam] Mar sin nach bhfuil sé seo dinimiciúil ar bhealach ar bith, i dtéarmaí an méid
nó ó thaobh mhéid an chairn?
[Hardison] díreach. Tá sé seo - an pointe ná nach raibh an chairn dinimiciúil growning.
Is é seo an chairn is féidir a shealbhú, ar a mhéad, ceithre * s Char, ar a mhéad ceithre rudaí.
Más rud é go raibh muid chun iarracht a dhéanamh agus a bhrú ar an rud cúigiú, cad a cheapann tú ba chóir tarlú?
[Mic léinn, dothuigthe]
[Hardison] díreach. Tá roinnt rudaí a d'fhéadfadh tarlú.
D'fhéadfadh seg sé, b'fhéidir, locht, ag brath ar cad a bhí againn -
conas go díreach a bhí i bhfeidhm againn ar an ais-deireadh.
D'fhéadfadh sé a forscríobh. D'fhéadfadh sé a bheith go thar maoil maolán gur labhair linn faoi sa rang.
Cad é an rud is soiléire d'fhéadfadh a bheith overwritten
má rinne muid a bhrú ar an rud breise ar ár Stack?
Mar sin luaite tú thar maoil maolán.
D'fhéadfadh a bheith Cad é an rud a bheadh ​​a fháil i scríbhinn os a chionn nó stomped ar
má overflowed muid thaisme ag iarraidh a bhrú ar rud breise?
[Daniel, dothuigthe] Féideartha >>.
Ach ar dtús, d'fhéadfadh cad a tharlóidh? Cad a tharlaíonn má iarracht muid a bhrú rud ceathrú?
D'fhéadfadh sé a scríobh ar an méid, ar a laghad leis an léaráid cuimhne go atá againn fuair.
>> Sa tsonraíocht atá leagtha fhadhb, tá a cad táimid ag dul a bheith i bhfeidhm sa lá atá inniu,
cad a dhéanann muid ag iarraidh a dhéanamh ná a sheoladh ar ais díreach bréagach.
Is é ár modh bhrú ag dul ar ais ar luach Boole,
agus go mbeidh luach Boole a bheith fíor má éiríonn leis an bhrú
agus bréagach más rud é nach féidir linn aon rud níos mó a bhrú toisc go bhfuil an chairn iomlán.
A ligean ar siúl tríd le beagán de chód ceart anois.
Seo ár bhfeidhm a bhrú.
Is é ár fheidhm a bhrú le haghaidh Stack ag dul a ghlacadh sa téad a chur ar an chruach.
Tá sé seo ag dul ar ais fíor má tá an teaghrán a bhí bhrú go rathúil
ar shlí eile chruach agus bréagach.
D'fhéadfadh go mbeadh aon mholtaí a gur rud maith é an chéad a dhéanamh anseo?
[Sam] Má ionann méid acmhainne ar ais ansin bréagach?
[Hardison] Bingo. Nice job.
Má tá an méid an cumas, táimid ag dul a thabhairt ar ais bréagach.
Ní féidir linn a chur ar rud ar bith níos mó in ár chairn.
Seachas sin, ba mhaith linn rud éigin a chur ar bharr an chairn.
Cad is "barr an chairn," ar dtús?
[Daniel] Méid 0? >> Size 0.
Cad é an barr an chairn tar éis tá rud amháin i an chairn? Missy, an bhfuil a fhios agat?
[Missy] One. Tá Méid >> amháin, go díreach. Tú a choinneáil ag cur leis an méid,
agus gach uair a bhfuil tú ag a chur ar an ngné nua ag an méid innéacs ar an eagar.
Is féidir linn é a dhéanamh leis an chineál sin de línéar aon-, má dhéanann chiall sin.
Mar sin, tá muid fuair ár teaghráin eagar, táimid ag dul chun rochtain a fháil air ag an innéacs méid,
agus táimid ag dul go díreach chun a stóráil ár * Char in ann.
Fógra conas a bhfuil aon cóipeáil téad ar siúl i anseo,
aon leithdháileadh dinimiciúil de chuimhne?
Agus ansin thug Missy suas cad atá againn anois a dhéanamh,
mar tá muid ag stóráil an teaghrán san áit chuí sa réimse,
agus dúirt sí go raibh muid a incrimint an méid trí cheann amháin ionas go bhfuil muid réidh le haghaidh an bhrú seo chugainn.
Sin, is féidir linn a dhéanamh go bhfuil s.size + +.
Ag an bpointe seo, tá muid a bhrú isteach inár eagar. Cad é an rud deireanach ní mór dúinn a dhéanamh?
[Mac Léinn] Tuairisceán fíor. >> Tuairisceán fíor.
Mar sin, tá sé simplí go leor, cód simplí go leor. Ní iomarca.
Nuair atá tú fillte do cheann timpeall conas a oibríonn an chairn,
tá sé seo deas simplí a chur i bhfeidhm.
>> Anois, tá an chuid eile den popping ar shraith as an chairn.
Tá mé ag dul a thabhairt guys duit roinnt ama a bheith ag obair ar an beagán beag.
Tá sé beagnach go bunúsach a mhalairt de méid atá déanta againn anseo i bhrú.
Cad mé a rinneadh i ndáiríre - Oops.
Tá mé booted suas fearas thar anseo, agus i fearas,
Tá mé ceirteacha tarraingthe suas an fhadhb atá leagtha 5 tsonraíocht.
Má táimid zúmáil isteach anseo, is féidir linn a fheiceáil mé ag cdn.cs50.net/2012/fall/psets/pset5.pdf.
An bhfuil íoslódáil tú guys an gcód seo go sé suite anseo, section6.zip?
Gach ceart. Más rud é nach bhfuil déanta agat go bhfuil, é sin a dhéanamh ceart anois, i ndáiríre go tapa.
Feicfidh mé é a dhéanamh i mo fhuinneog teirminéil.
Rinne mé i ndáiríre sé suas anseo. Yeah.
Sea, Sam? >> Tá mé ceist faoi cén fáth go raibh tú ag rá lúibíní s.string 's size = str?
Cad é str? An bhfuil a shainmhínítear áit éigin roimh, nó - ó, sa str * Char?
[Hardison] Sea, go díreach. Ba é sin an argóint. >> Oh, maith go leor. Tá brón orm.
[Hardison] Táimid ag sonrú an teaghrán a bhrú isteach
An cheist eile a d'fhéadfadh teacht suas nach raibh muid ag labhairt i ndáiríre faoi anseo bhí
thógamar do dheonú go raibh muid an athróg ar a dtugtar s
a bhí i scóip agus inrochtana a chur chugainn.
Chuir muid talamh slán de go raibh s seo struct chairn.
Mar sin, ag breathnú siar ar an gcód seo a bhrú,
Is féidir leat a fheiceáil go bhfuil muid ag déanamh rudaí leis an teaghrán fuair pas i
ach ansin ar fad ar tobann, tá muid ag teacht ar s.size, cosúil le, áit a raibh s teacht ó?
Sa an cód go bhfuil muid ag dul chun breathnú ar sa chartlann alt
agus leagann sé ansin an stuif go mbainfidh tú a dhéanamh i do fhadhb,
atá déanta againn ar ár Stack struct athróg domhanda
ionas gur féidir linn rochtain a bheith i ngach ceann dár bhfeidhmeanna éagsúla
gan dul de láimh é thart agus é a pas a fháil trí thagairt a dhéanamh,
gach ní chineál sin de stuif dó.
Táimid ag cheating ach beagán, más maith leat, chun rudaí a dhéanamh nicer.
Agus go bhfuil rud éigin táimid ag déanamh anseo mar tá sé le haghaidh spraoi, tá sé níos éasca.
Go minic, beidh tú daoine a fheiceáil seo a dhéanamh má tá siad ar cheann mór sonraí a struchtúr
go tá á n-oibriú ar laistigh dá chlár.
>> A ligean ar dul ar ais go dtí an fearas.
An raibh gach duine a fháil go rathúil leis an section6.zip?
Gach duine unzip é ag baint úsáide as section6.zip dízipeáil?
Má théann tú isteach an t-eolaire alt 6 -
AAH, ar fud na háite -
agus tú liosta cad atá i anseo, a fheiceann tú go bhfuil tú trí éagsúla. comhaid c.
Tá sé agat scuaine, ar SLL, atá ina n-aonar-nasctha liosta, agus Stack.
Má osclaíonn tú suas stack.c,
féidir leat a fheiceáil go atá againn fuair an struct sainithe dúinn,
an struct cruinn gur labhair muid díreach faoi na sleamhnáin.
Táimid iontach fuair ár athróg domhanda le haghaidh an chairn,
tá muid fuair ár bhfeidhm a bhrú,
agus ansin tá muid fuair ár bhfeidhm pop.
Feicfidh mé a chur ar an cód le haghaidh a bhrú ar ais ar bun ar an sleamhnán anseo,
ach cad ba mhaith liom tú guys a dhéanamh, mar is fearr de do chumas,
dul agus an fheidhm pop i bhfeidhm.
Nuair atá tú a chur i bhfeidhm, is féidir leat a thiomsú seo le a dhéanamh Stack,
agus a rith ansin ar an inrite Stack mar thoradh air,
agus a reáchtáil ar fad an cód tástála síos anseo go bhfuil i is mó.
Agus tógann sé príomh-aire i ndáiríre a dhéanamh ar an bhrú agus pop glaonna
agus a chinntiú go dtéann gach rud trí gach ceart.
Initializes sé freisin ar an méid Stack dheis anseo
sin ní gá duit a bheith buartha faoi initializing sin.
Is féidir leat glacadh leis go bhfuil sé curtha initialized i gceart
ag an am go bhfuil tú rochtain a fháil air san fheidhm pop.
An dhéanamh go chiall?
Mar sin anseo a théann muid. Níl an cód a bhrú.
Feicfidh mé a thabhairt duit guys 5 nó 10 nóiméad.
Agus má tá aon cheist agat idir an dá linn fad a bhíonn tú ag códú,
le do thoil iarr orthu amach os ard.
Mar sin, má fhaigheann tú go pointe sticking, ach a iarraidh.
Bíodh a fhios agam, a ligean ar gach duine eile a fhios.
Obair le do chomharsa chomh maith.
[Daniel] Táimid ag cur ach pop ceart anois? >> Just a pop.
Cé is féidir leat cóip le cur chun feidhme a bhrú más mian leat
ionas go mbeidh an tástáil ag obair.
Toisc go bhfuil sé deacair a thástáil rudaí ag dul isteach -
nó, tá sé deacair a thástáil rudaí a popping amach as chairn más rud é nach bhfuil aon rud i an chairn chun tús a chur leis.
>> Cad é pop ceaptha a bheith ag filleadh? An eilimint ó bharr an chairn.
Tá sé seo ceaptha a fháil ar an ngné as an barr an chairn
agus decrement ansin méid an chairn,
agus anois tá tú caillte an ghné ar an mbarr.
Agus ansin tú ar ais leis an ngné ar an mbarr.
[Mac Léinn, dothuigthe]
[Hardison] Mar sin, cad a tharlaíonn má dhéanann tú é sin? [Mac Léinn, dothuigthe]
Cad chríochnaíonn suas ag tarlú tá tú rochtain a fháil ar dócha go
nach bhfuil gné bhfuil curtha initialized fóill, mar sin do ríomh
áit a bhfuil an ghné seo is déanaí ar ceal.
Mar sin anseo, má thugann tú, i bhrú, tá muid ag teaghráin rochtain ar an eilimint s.size
mar tá sé ina innéacs nua.
Tá sé an barr nua ar an chairn.
De bharr an méid i pop, tá s.size ag dul a bheith ar an spás seo chugainn,
an spás sin ar bharr na gnéithe uile i do chairn.
Mar sin, nach bhfuil an ghné barr-is mó s.size,
ach, tá sé faoi bhun sé.
>> Is é an rud eile a dhéanamh nuair a dhéanann tú - i pop,
Tá gá duit a decrement an méid.
Má tá tú ag cuimhneamh ar ais go dtí ár n-léaráid beag ar dheis anseo,
i ndáiríre, an rud amháin go chonaic muid ag tarlú nuair a d'iarr muid pop
gur thit an méid, ar an gcéad go 2, agus ansin go dtí an 1.
Ansin, nuair a bhrú orainn gné nua ar, bheadh ​​sé dul ar ag an láthair ceart.
[Basil] Má tá an s.size 2, ní bheadh ​​ansin é a dul chun eilimint 2,
agus ansin gur mhaith leat a pop an eilimint amach?
Mar sin, má chuaigh muid go dtí - >> ligean Mar sin, breathnú ar seo arís.
Más é seo ár n-chairn ag an bpointe seo
agus tugaimid pop,
ar dá réir is innéacs an ghné barr-chuid is mó?
[Basil] Ar 2, ach tá sé ag dul a pop 3. >> Ceart.
Mar sin, i gcás go bhfuil ár méid 3, ach ba mhaith linn a pop an eilimint ag innéacs 2.
Tá sé gur de chineál tipiciúil de thalamh trí cheann amháin go bhfuil tú leis an innéacsú náid-de arrays.
Mar sin bhfuil tú ag iarraidh a pop an tríú gné, ach nach bhfuil an tríú gné ar innéacs 3.
Agus ar an gcúis nach bhfuil againn é sin a dhéanamh 1 lúide nuair a bhíonn muid ag brú
toisc ceart anois, thugann tú faoi deara go bhfuil an ghné barr-chuid is mó,
más rud é go raibh muid a bhrú rud éigin eile ar an chairn ag an bpointe seo,
ba mhaith linn ag iarraidh a bhrú ar innéacs 3.
Agus a tharlaíonn sé ach ionas go mbeidh an méid agus na hinnéacsanna líne suas nuair a bhíonn tú ag brú.
>> Cé a fuair a chur chun feidhme Stack ag obair?
Tá sé agat Stack ag obair amháin. An bhfuil tú pop ag obair go fóill?
[Daniel] Tá. I mo thuairimse, mar sin.
Tá >> Clár reatha agus nach seg éascadh, tá a phriontáil amach é?
An é a phriontáil amach "rath" nuair a ritheann tú é?
Yeah. Déan chairn, sé ar siúl, más rud é priontaí sé amach "rath" agus ní théann sé borradh,
ansin go léir go maith.
Gach ceart. Ligean ar dul go dtí an fearas i ndáiríre go tapa,
agus beidh muid ag siúl tríd an.
Má táimid ar cad atá ar siúl anseo le pop,
Daniel, cad a bhí an chéad rud a rinne tú?
[Daniel] Má tá s.size níos mó ná 0.
[Hardison] Maith go leor. Agus cén fáth go raibh a dhéanann tú é sin?
[Daniel] Chun a chinntiú go raibh rud éigin taobh istigh an chairn.
[Hardison] Ceart. Ba mhaith leat a thástáil chun a chinntiú go bhfuil s.size níos mó ná 0;
ar shlí eile, cad ba mhaith leat a bheith tarlú?
[Daniel] null Tuairisceán? Null Tuairisceán >>, go díreach.
Mar sin, más rud é s.size níos mó ná 0. Ansin, cad tá muid ag dul a dhéanamh?
Cad a dhéanaimid mura bhfuil an chairn folamh?
[Stella] tú decrement an méid? >> Tú decrement an méid, ceart go leor.
Mar sin, conas a rinne tú é sin? >> S.size--.
[Hardison] Breataine. Agus ansin cad a rinne tú?
[Stella] Agus ansin dúirt mé ar ais s.string [s.size].
[Hardison] Breataine.
Seachas sin tú ar ais null. Sea, Sam?
[Sam] Cén fáth nach gá é a bheith s.size + 1?
[Hardison] Plus 1? >> Yeah. >> Fuair ​​sé.
[Sam] Shíl mé toisc go bhfuil tú ag cur 1 as,
ansin tá tú ag dul a bheith ag filleadh ní an ceann a d'iarr siad do.
[Hardison] Agus bhí sé seo ach cad a bhí muid ag caint faoi leis an gceist ar fad de 0 innéacsanna.
Mar sin, má táimid zúmáil ar ais thar anseo.
Má táimid ar an Guy ar dheis anseo, is féidir leat a fheiceáil nuair a pop againn,
táimid ag popping an eilimint ag innéacs 2.
>> Mar sin, táimid ag laghdú ár méid dtús, ansin oireann ár méid ár n-innéacs.
Más rud é nach bhfuil muid decrement an méid dtús, ansin ní mór dúinn méid sin a dhéanamh -1 agus ansin decrement.
Great. Gach maith?
Ceisteanna ar bith ar seo?
Tá roinnt bealaí éagsúla chun é seo a scríobh chomh maith.
Go deimhin, is féidir linn a dhéanamh rud éigin fiú - is féidir linn a dhéanamh ar aon-liner.
Féidir linn a dhéanamh ar ais aon-líne.
Mar sin, is féidir linn a decrement ndáiríre roimh muid ar ais ag déanamh sin.
Mar sin, a chur ar an - roimh an s.size.
Sin a dhéanann an líne dlúth i ndáiríre.
I gcás an difríocht idir an - size s agus. S.size--
is é sin an postfix - glaoch siad é postfix mar gheall ar an - Tagann tar éis an s.size--
Ciallaíonn sé sin go bhfuil s.size mheas maidir leis na críocha a aimsiú an t-innéacs
mar go bhfuil sé faoi láthair nuair a bhíonn an líne seo a fhorghníomhú,
agus ansin seo - a tharlaíonn tar éis faigheann an líne gcrích.
Tar éis an eilimint ag s.size innéacs rochtain.
Agus ní go cad ba mhaith linn, mar ba mhaith linn an decrement a tharlóidh ar dtús.
Othewise, tá muid ag dul a bheith ag teacht ar an raon, go héifeachtach, as bounds.
Táimid ag dul a bheith rochtain a fháil ar an eilimint os cionn an ceann a ba mhaith linn i ndáiríre a rochtain.
Yeah, Sam? >> An bhfuil níos tapúla é nó a úsáid RAM níos lú a dhéanamh ar líne amháin nó nach bhfuil?
[Hardison] Macánta, braitheann sé i ndáiríre.
[Sam, dothuigthe] >> Yeah, braitheann sé. Is féidir leat a dhéanamh cleasanna tiomsaitheoir
a fháil ar an tiomsaitheoir a aithint go, de ghnáth, a shamhlú mé.
>> Mar sin, tá muid a luaitear le beagán faoi an stuif leas iomlán a bhaint tiomsaitheoir
gur féidir leat a dhéanamh a thiomsú,
agus sin é an saghas rud go bhféadfaí Tiomsaitheoir bheith in ann a figiúr amach,
cosúil ó, hug, b'fhéidir gur féidir liom a dhéanamh seo go léir in aon oibríocht,
i gcomparáid le luchtú an athróg mhéid, i ó RAM,
decrementing é, a stóráil sé ar ais amach, agus ansin luchtú sé ar ais i arís
a phróiseáil an chuid eile den oibríocht.
Ach de ghnáth, ní, nach é seo an saghas rud
go ag dul a dhéanamh do chlár i bhfad níos tapúla.
Ceisteanna ar bith níos mó ar cruacha?
>> Mar sin, ag brú agus popping. Más mian leat guys triail a bhaint as an eagrán hacker,
cad atá déanta againn in eagrán hacker atá imithe i ndáiríre
agus rinne an chairn ag fás dinimiciúil.
Is é an dúshlán go bhfuil go príomha suas anseo san fheidhm a bhrú,
chun an figiúr amach conas a dhéanamh go eagar ag fás
mar a gcoinníonn tú ag brú gnéithe níos mó agus níos mó ar an chairn.
Níl sé i ndáiríre cód i bhfad ró-breise.
Just a glaoch chun - caithfidh tú cuimhneamh ar an glaonna a fháil chun malloc ann i gceart,
agus figiúr sin amach nuair a bhíonn tú ag dul realloc a ghlaoch.
Sin dúshlán spraoi má tá tú suim acu ann.
>> Ach de thuras na huaire, a ligean ar bogadh ar aghaidh, agus a ligean ar labhairt faoi scuainí.
Scrollaigh trí anseo.
Is é an scuaine deartháir nó deirfiúr deireadh an chairn.
Mar sin, i an chairn, cuireadh rudaí i deireanach
Bhí na rudaí chéad a aisghabháil ansin.
Táimid iontach fuair an deireanach i, amach ar dtús, nó LIFO, a ordú.
De bharr an méid sa scuaine, mar gur mhaith leat ag súil ó nuair a bhíonn tú ag seasamh i líne,
an chéad duine a fháil i líne, an chéad rud a dul isteach ar an scuaine,
Is é an chéad rud go bhfaigheann aisghabháil ó na scuaine.
Scuainí iad freisin a úsáidtear go minic nuair a bhíonn muid ag déileáil le graif,
cosúil le phléamar go hachomair le stacks,
agus go bhfuil siad scuainí chomh maith handy a bunch de rudaí eile.
Tá Rud amháin a thagann suas go minic ag iarraidh a choimeád ar bun, mar shampla,
liosta curtha in eagar na n-eilimintí.
Agus is féidir leat é seo a bhfuil eagar. Is féidir leat a choimeád ar bun liosta in eagar de na rudaí i sraith,
ach áit a bhfuil go bhfaigheann tricky ansin caithfidh tú i gcónaí chun teacht ar
an áit chuí a chur isteach ar an rud eile.
Mar sin, má tá tú le sraith de uimhreacha, 1 trí 10,
agus ansin ba mhaith leat a bhfuil a leathnú chuig gach na huimhreacha 1 trí 100,
agus tá tú ag fáil na huimhreacha in ord randamach agus ag iarraidh gach rud a choinneáil
curtha in eagar mar a théann tú tríd, deireadh tú suas a bhfuil a dhéanamh ar a lán aistriú.
Le cineálacha áirithe scuainí agus cineálacha áirithe struchtúir sonraí bunúsacha,
Is féidir leat a choimeád i ndáiríre simplí go cothrom.
Ní gá duit rud éigin a chur agus ansin a athordófar, gach uair an rud ar fad.
Ná gá duit a dhéanamh a lán de a aistriú de na heilimintí inmheánacha timpeall.
Nuair a fhéachaimid ar scuaine, tú a fheiceáil go - freisin i queue.c sa chód alt seo -
Is é an struct go atá againn a thabhairt duit i ndáiríre cosúil leis an struct gur thug muid tú do chairn.
>> Níl aon eisceacht leis seo, agus gur eisceacht amháin
Tá go bhfuil an slánuimhir breise ar a dtugtar an ceann,
agus is é an ceann anseo chun taifead a choinneáil ar an barr an chuí,
nó an chéad eilimint sa scuaine.
Le chairn, bhí muid in ann súil a choinneáil ar an eilimint go raibh muid ar tí é a fháil,
nó barr an chairn, ag baint úsáide as ach an méid,
ach le scuaine, tá muid ag déileáil le taobh eile.
Táimid ag iarraidh a tack rudaí ar ag an deireadh, ach ansin rudaí ar ais ó na tosaigh.
Mar sin, go héifeachtach, leis an ceann, ní mór dúinn an t-innéacs ar an tús an scuaine,
agus tugann sé an méid dúinn an t-innéacs ar an deireadh na scuaine
ionas gur féidir linn rudaí a aisghabháil ó an ceann agus rudaí a chur ar aghaidh go dtí an eireaball.
De bharr an méid leis an chairn, bhí muid ach ag déileáil riamh le barr an chairn.
Táimid riamh go raibh rochtain a fháil ar bun an chairn.
Chuir muid ach rudaí go dtí barr agus rudaí a thóg as an barr
mar sin ní raibh muid gá réimse sin sa bhreis taobh istigh dár struct.
An dhéanamh go chiall go ginearálta?
Gach ceart. Sea, Charlotte? [Charlotte, dothuigthe]
[Hardison] Sin ceist mhór, agus go raibh ceann a tháinig suas i léacht.
B'fhéidir go mbeidh ag siúl trí roinnt samplaí a léiriú cén fáth
nach bhfuil muid ag iarraidh úsáid a bhaint strings [0] mar cheann an scuaine.
>> Mar sin a shamhlú go bhfuil muid ár scuaine, táimid ag dul a ghlaoch air scuaine.
Ag an tús, nuair a againn instantiated ach é,
nuair atá againn dhearbhú ach é, ní mór dúinn initialized rud ar bith.
Tá sé ar fad truflais. Mar sin, ar ndóigh, ba mhaith linn a dhéanamh cinnte go bhfuil muid thúsú
araon an méid agus na réimsí ceann a bheith 0, rud réasúnta.
D'fhéadfadh muid dul freisin ar aghaidh agus nialasach na heilimintí in ár scuaine amach.
Agus seo a dhéanamh oiriúnach léaráid, faoi deara go bhfuil anois is féidir ár n-scuaine a shealbhú ach trí ghné;
cé go bhféadfadh ár n-chairn shealbhú ceithre, is féidir ár scuaine a shealbhú ach trí cinn.
Agus sin ach a dhéanamh an cuí léaráid.
Is é an chéad rud a tharlaíonn anseo againn enqueue an teaghrán "Hi".
Agus díreach mar a rinne muid leis an chairn, rud terribly éagsúla anseo,
caith againn ar an téad ar ar strings [0] agus incrimint ár méid faoi 1.
Enqueue muid "beannacht", faigheann sé a chur ar.
Mar sin, Breathnaíonn seo cosúil le Stack den chuid is mó.
Thosaigh muid amach anseo, gné nua, eilimint nua, coimeádann méid dul suas.
Cad a tharlaíonn ag an bpointe seo nuair is mian linn rud éigin a dequeue?
Nuair a ba mhaith linn a dequeue, a bhfuil an ghné sin ba mhaith linn a dequeue?
[Basil] Teaghráin [0]. >> Nialais. Go díreach ceart, Basil.
Táimid ag iarraidh fáil réidh leis an teaghrán chéad, an ceann seo, "Dia duit".
Mar sin, cad a bhí an rud eile a athrú?
Fógra nuair a popped muid rud éigin as an chairn, d'athraigh muid ach an méid,
ach anseo, tá muid fuair cúpla rudaí a athrú.
Ní amháin a dhéanann an t-athrú méid, ach na hathruithe ceann.
Tá sé seo ag dul ar ais go dtí pointe Charlotte níos luaithe:
cén fáth a bhfuil againn an ceann chomh maith?
An bhfuil sé ciall anois, Charlotte? Cineál >> de.
[Hardison] Cineál? Mar sin, cad a tharla nuair a dequeued againn?
Cad é a rinne an ceann is é sin anois suimiúil?
[Charlotte] Oh, toisc go athraigh sé - ceart go leor. Feicim.
Mar gheall ar an ceann - ina bhfuil an ceann atá dírithe ar athruithe i dtéarmaí an suíomh.
Tá sé a thuilleadh i gcónaí an ceann innéacs nialas. >> Yeah, go díreach.
Cad a tharla a bhí más rud é dequeueing an eilimint ard
Rinneadh agus nach raibh againn sa réimse seo ceann
toisc go raibh ag iarraidh againn i gcónaí leis an teaghrán ag 0 innéacs ceann dár scuaine,
ansin ba mhaith linn a athrú an chuid eile den scuaine síos.
Ba mhaith linn a athrú "beannacht" ó ó strings [1] an teaghráin [0].
Agus strings [2] síos go dtí strings [1].
Agus ba mhaith linn sin a dhéanamh le haghaidh liosta iomlán na n-eilimintí,
an raon iomlán na n-eilimintí.
Agus nuair a tá ag éirí linn seo a dhéanamh le eagar, faigheann sin i ndáiríre costasach.
Mar sin anseo, nach bhfuil sé le déileáil go mór. Tá muid díreach trí ghné i ár eagar.
Ach má bhí againn le scuaine de míle eilimintí nó eilimintí milliún,
agus ansin go léir a tobann, tús a chur muid ag déanamh a bunch de dequeue glaonna ar fad i lúb,
rudaí ag dul i ndáiríre go mall síos mar shifts sé gach rud síos i gcónaí.
Tá a fhios agat, athrú ag 1, athrú trí athrú 1, faoin 1, athrú ag 1.
Ina áit sin, úsáidimid an gceann seo, tugaimid sé ar "pointeoir" cé nach bhfuil sé i ndáiríre pointeoir
sa chiall go docht; nach bhfuil sé cineál pointeoir.
Níl sé * o nó * ruabhric nó aon rud mar sin.
Ach tá dírithe é nó a léiríonn ceann dár scuaine. Yeah?
>> [Mac Léinn] Cén chaoi a dequeue a fhios a pop díreach in aice leis is cuma cad é an ceann?
[Hardison] Cén chaoi a dequeue a fhios conas a pop amach cibé tá ag ceann? Ceart >>, yeah.
>> Cad é a breathnú ar ach is cuma cén réimse an ceann a leagtar ar.
Mar sin, sa chéad chás, má táimid ar dheis anseo,
Is é ár ceann 0, innéacs 0. >> Ceart.
[Hardison] Mar sin a deir sé ach ceart go leor, go maith, an ghné ar innéacs 0, an teaghrán "Hi",
Is é an ghné ag ceann dár scuaine.
Mar sin, táimid ag dul a dequeue go Guy.
Agus beidh go bhfuil an ghné go bhfaigheann ar ais chuig an té atá ag glaoch.
Sea, Saad? >> Mar sin, leagann an ceann go bunúsach an - áit a bhfuil tú ag dul chun innéacs é?
Sin tús é? >> Yeah. >> Maith go leor.
[Hardison] Sin ag éirí leis an tús nua le haghaidh ár eagar.
Mar sin, nuair a dequeue tú rud éigin, tá gach leat a dhéanamh teacht ar an eilimint ag innéacs q.head,
agus beidh sé go bhfuil an ghné gur mian leat a dequeue.
Tá tú freisin chun decrement an méid.
Beidh muid a fheiceáil i beagán nuair a fháil rudaí a bhí beagán tricky leis seo.
Dequeue againn, agus anois, má enqueue againn arís,
nuair a dhéanann muid enqueue?
I gcás nach an ghné eile a théann in ár scuaine?
Abair ba mhaith linn a enqueue an teaghrán "CS".
Beidh Isteach a innéacs sé dul? [Mic Léinn] Teaghráin [2]. >> Dó.
Cén fáth 2 lá agus nach 0?
[Basil] Toisc anois tá an ceann 1, agus mar sin go bhfuil cosúil leis an tús an liosta?
[Hardison] Ceart. Agus seasann cad é an deireadh an liosta?
Cad a bhí ag baint úsáide as againn in iúl ar an deireadh ár scuaine?
Is é an ceann ceann dár scuaine, tús na ár scuaine.
Cad é an deireadh ár scuaine? [Mic Léinn] Size. >> Méid, go díreach.
Mar sin dul ar ár n-gnéithe nua i ag méid, agus na heilimintí sin a chur orainn teacht amach amach ag ceann.
Nuair a enqueue againn ar an ngné seo chugainn, tá muid ag chur i ag méid.
[Mac Léinn] Sula a chuir tú go bhfuil i áfach, bhí méid 1, ceart?
[Hardison] Ceart. Mar sin, ní leor ag méid. + Ní Méid, 1, ach ceann +.
Mar gheall ar bhog muid gach rud ag an méid ceann.
Mar sin anseo, anois tá muid fuair scuaine de mhéid 1 a thosaíonn ag innéacs 1.
Is é an eireaball innéacs 2. Tá?
>> [Mac Léinn] Cad a tharlaíonn nuair a dhéanann tú dequeue strings [0], agus an teaghráin 'sliotán i gcuimhne
a fháil fholmhú go díreach, go bunúsach, nó díreach dearmad?
[Hardison] Yeah. Sa chiall seo, tá muid ag forgetting go díreach leo.
Má bhí a stóráil againn cóipeanna díobh le haghaidh -
Beidh struchtúir sonraí a stóráil go leor go minic a gcuid cóipeanna féin ar na gnéithe
ionas go ndéanfaidh an duine a bhainistiú an struchtúr sonraí a bheith buartha
faoin áit a bhfuil sin go léir leideanna ag dul.
Tá an struchtúr sonraí ar gach rud i seilbh, ar aghaidh go dtí na cóipeanna,
a dhéanamh cinnte go leanann gach rud i gceart.
Mar sin féin, sa chás seo, tá na struchtúir sonraí ach, ar mhaithe le simplíocht,
nach bhfuil ag déanamh cóipeanna de rud ar bith go bhfuil muid a stóráil iontu.
[Mac Léinn] Mar sin, seo sraith leanúnach -? >> Tá.
Má fhéachaimid siar ar an méid a bhí an sainmhíniú an struchtúir seo, tá sé.
Tá sé ach sraith caighdeán cosúil tá tú ag feiceáil,
le sraith de * s Char.
An bhfuil sin -? >> Yeah, bhí mé wondering díreach
más rud é go mbainfidh tú ag rith sa deireadh as cuimhne, go pointe áirithe,
má tá tú go léir na spotaí folamh i do eagar?
[Hardison] Sea, tá go pointe maith.
>> Má táimid ar cad a tharla anois ag an bpointe seo,
tá muid líonadh suas ár scuaine, tá sé cosúil.
Ach ní mór dúinn a líonadh i ndáiríre suas ár n-scuaine
toisc go bhfuil muid scuaine go méid 2, ach tosaíonn sé ag innéacs 1,
mar gheall ar go bhfuil ár n-pointeoir ceann.
Cosúil bhí á rá leat, an ghné sin ag strings [0], ag innéacs 0, nach bhfuil i ndáiríre ansin.
Níl sé i ár scuaine níos mó.
Táimid ní raibh bodhraigh chun dul i agus é a scríobh nuair a dequeued muid é.
Mar sin, cé tá sé cosúil againn siúl as an chuimhne, ní mór dúinn nach bhfuil i ndáiríre.
Sin an láthair ar fáil dúinn a úsáid.
An iompar oiriúnach, más rud é go raibh muid chun iarracht a dhéanamh agus an chéad dequeue rud éigin
cosúil le "beannacht", a bheadh ​​pop beannacht as.
Anois tosaíonn ár n-scuaine ag innéacs 2 agus atá ar mhéid 1.
Agus anois má táimid iarracht a dhéanamh agus enqueue rud éigin arís, a rá 50,
Ba chóir go 50 a théann i láthair seo ag innéacs 0
mar tá sé fós ar fáil dúinn. Sea, Saad?
[Saad] An bhfuil a tharlaíonn go huathoibríoch?
[Hardison] Ní chuireann sé tarlú go leor go huathoibríoch. Tá tú a dhéanamh ar an mata
chun é a dhéanamh ag obair, ach go bunúsach cad atá déanta againn go bhfuil againn fillte ach timpeall.
[Saad] Agus sé ceart go leor má tá sé seo le poll i lár na sé?
[Hardison] Tá sé más féidir linn a dhéanamh ar an mata ag obair i gceart.
>> Agus casadh sé amach go ní go ndáiríre go crua chun a dhéanamh leis an oibreoir mod.
Mar sin, díreach mar a rinne muid le Caesar agus an stuif rialaithe criptithe,
ag baint úsáide as mod, is féidir linn a fháil rudaí a wrap thart agus a choinneáil ag dul
timpeall agus timpeall agus timpeall leis an ár scuaine,
a choinneáil go ceann pointeoir ag gluaiseacht timpeall.
Fógra go bhfuil méid meas i gcónaí ar an líon de na gnéithe iarbhír laistigh den scuaine.
Agus tá sé ach an pointeoir ceann a choimeádann rothaíocht tríd.
Má táimid ar an méid a tharla anseo, má théann muid ar ais go dtí an tús,
agus tú ag féachaint ar díreach cad a tharlaíonn leis an ceann
nuair enqueue muid rud éigin, a tharla rud ar bith ar an ceann.
Nuair a enqueued muid rud éigin eile, a tharla rud ar bith ar an ceann.
Go gairid mar a dequeued muid rud éigin, téann an ceann ar bun ar cheann.
Enqueued muid rud éigin, a tharlaíonn aon rud ar an ceann.
Nuair a dequeue muid rud éigin, faigheann ar fad ar tobann an ceann incrimintithe.
Nuair a enqueue muid rud éigin, a tharlaíonn aon rud ar an ceann.
>> Cad a tharlódh ag an bpointe seo más rud é go raibh muid rud éigin a dequeue arís?
Aon smaointe? Cad a tharlódh ar an ceann?
Cad ba chóir a tharlóidh do na ceann
más rud é go raibh muid chun dequeue rud éigin eile?
An ceann ceart anois ag innéacs 2,
rud a chiallaíonn go bhfuil ceann an scuaine strings [2].
[Mac Léinn] Cén tuairisceáin 0? >> Ba chóir filleadh ar 0. Ba chóir a wrap ar ais timpeall, go díreach.
Go dtí seo, gach uair a d'iarr muid dequeue, tá muid ag a haon a chur leis an ceann,
amháin a chur leis an ceann, ceann amháin a chur leis an ceann, ceann amháin a chur leis an ceann.
Chomh luath agus a fhaigheann an pointeoir ceann ar an innéacs seo caite in ár réimse,
ansin ní mór dúinn a wrap sé ar ais timpeall ar an tús, dul ar ais go dtí 0.
[Charlotte] Cad gcinnfidh an cumas an scuaine i Stack?
[Hardison] Sa chás seo, tá muid ach ag baint úsáide as ar tairiseach # sainithe. >> Maith go leor.
[Hardison] I an comhad iarbhír. C, is féidir leat dul i agus muck le sé beagán
agus é a dhéanamh chomh mór nó chomh beag agus is mian leat.
[Charlotte] Mar sin nuair a bhíonn tú ag déanamh sé scuaine, conas a dhéanann tú a dhéanamh ar an ríomhaire a fhios
cé chomh mór is mian leat an chairn a bheith?
[Hardison] Sin ceist mhór.
Tá cúpla bealaí. Is é ceann a shainmhíniú ach é suas chun tosaigh
agus tá sé a rá seo dul chun bheith ina scuaine a bhfuil 4 eilimintí nó eilimintí 50 nó 10,000.
Is é an bealach eile a dhéanamh cad iad na folks Eagrán hacker a dhéanamh
agus a chruthú feidhmeanna a bheith acu do scuaine ag fás dinimiciúil mar rudaí níos mó a fháil seo a leanas isteach
>> [Charlotte] Mar sin, chun dul leis an chéad rogha, cad error mbaineann tú úsáid
Is é a rá leis an gclár cad é méid an scuaine?
[Hardison] Ah. Mar sin a ligean ar a fháil amach as seo.
Tá mé fós i stack.c anseo, mar sin tá mé ag dul díreach tar éis a scrollú suas go dtí an barr anseo.
An féidir leat é seo a fheiceáil ar dheis anseo? Is é seo an sainmhíniú # toilleadh 10.
Agus é seo nach mór an chomhréir ceannann céanna atá againn le haghaidh scuaine.
Ach amháin i scuaine, tá muid fuair an réimse sin struct breise i anseo.
[Charlotte] Ó, shíl mé an cumas i gceist an cumas an teaghrán.
[Hardison] Ah. >> Sin é an fad uasta na bhfocal. >> Fuair ​​sé.
Yeah. Tá an cumas anseo - tá go pointe iontach.
Agus is é an rud go bhfuil tricky
toisc go bhfuil an méid atá againn a dhearbhú anseo le sraith de * s Char.
Le sraith de leideanna.
Is é seo le sraith de carachtair.
Is dócha cad tá tú ag féachaint nuair a tá tú ag dhearbhú do maoláin do chomhad I / O,
nuair atá tú ag teaghráin a chruthú de láimh ar an chruach.
Mar sin féin, cad a fuair anseo le sraith de ruabhric * s.
Mar sin tá sé le sraith de leideanna.
I ndáiríre, má táimid ar ais zúmáil amach agus táimid ag cad atá ar siúl anseo
sa chur i láthair, a fheiceann tú go bhfuil na gnéithe iarbhír, na sonraí carachtar
nach stóráil laistigh eagar féin.
Tá Cad atá stóráilte laistigh dár sraith anseo leideanna ar na sonraí carachtar.
Maith go leor. Mar sin, atá feicthe againn conas an méid de na scuaine díreach cosúil leis an chairn,
an méid meas i gcónaí ar líon na n-eilimintí atá sa scuaine.
Tar éis a dhéanamh 2 enqueues, is é an méid 2.
Tar éis a dhéanamh ar dequeue go bhfuil an méid anois 1.
Tar éis a dhéanamh eile enqueue Is é an méid ar ais go dtí 2.
Mar sin, urramaíonn an méid cinnte an líon na n-eilimintí sa scuaine,
agus ansin coimeádann an ceann amháin rothaíocht.
Téann sé ó 0-1-2, 0-1-2, 0-1-2.
Agus gach uair a tugaimid dequeue faigheann, an pointeoir ceann incrimintithe leis an innéacs seo chugainn.
Agus má tá an ceann ar tí dul os a chionn, lúba sé ar ais timpeall 0.
Sin, leis sin, is féidir linn a scríobh an fheidhm dequeue.
Agus táimid ag dul a fhágáil ar an fheidhm enqueue chun tú guys a chur i bhfeidhm ina ionad.
>> Nuair a dequeue muid gné amach as ár scuaine,
cad a bhí an chéad rud a rinne Daniel nuair a thosaigh muid ag scríobh an fheidhm pop do cruacha?
Lig dom a chloisteáil ó dhuine nach mbeidh labhartha go fóill.
A ligean ar a fheiceáil, Saad, a dhéanann tú dearmad cad a rinne Daniel mar an chéad rud nuair a scríobh sé pop?
[Saad] Ní raibh, go raibh sé - >> tástáil sé as rud éigin.
[Saad] Má tá méid níos mó ná 0. >> Go díreach.
Agus cad a bhí go tástáil?
[Saad] Go raibh tástáil a fheiceáil má tá rud ar bith taobh istigh den eagar.
[Hardison] Yeah. Go díreach. Mar sin, ní féidir leat pop rud ar bith amach as an chairn má tá sé folamh.
Mar an gcéanna, ní féidir leat dequeue aon rud ó scuaine má tá sé folamh.
Cad é an chéad rud ba chóir dúinn a dhéanamh i ár bhfeidhm dequeue anseo, é do bharúil?
[Saad] Má tá méid níos mó ná 0? >> Yeah.
Sa chás seo, tá mé i ndáiríre a thástáil ach a fheiceáil má tá sé 0.
Má tá sé 0, is féidir linn ar ais null.
Ach loighic céanna cruinn.
Agus a ligean ar aghaidh leis seo.
Mura bhfuil an méid 0, áit a bhfuil an ghné sin ba mhaith linn a dequeue?
[Saad] Ag an ceann? >> Go díreach.
Is féidir linn a tharraingt díreach amach an chéad eilimint i ár scuaine
trí rochtain a fháil eilimint ag an ceann.
Ní dhéanfaidh aon ní dÚsachtach.
Tar éis sin, cad ba cheart dúinn a dhéanamh? Cad tá ag tarlú?
Cad é an rud eile a phléamar i dequeue?
Tá dhá rud a tharlóidh, mar gheall ar go bhfuil ár scuaine athrú.
[Daniel] Laghdú ar an méid. >> Tá muid chun laghdú ar an méid, agus an ceann a mhéadú? Go díreach.
Chun cur an ceann, ní féidir linn ach a mhéadú blindly an ceann, cuimhneamh orthu.
Ní féidir linn ach a dhéanamh queue.head + +.
Ní mór dúinn san áireamh chomh maith leis an mod ag an acmhainn.
Agus cén fáth go bhfuil muid ag mod ag an cumas, Stella?
[Stella] Toisc go bhfuil sé le timfhillteach. >> Go díreach.
Mod muid an cumas toisc go bhfuil sé a wrap ar ais timpeall 0.
Mar sin anois, ag an bpointe seo, is féidir linn a dhéanamh cad a dúirt Daniel.
Is féidir linn a decrement an méid.
Agus ansin is féidir linn ar ais ach an eilimint a bhí ag barr na scuaine.
Breathnaíonn sé de chineál ar gnarly ar dtús. B'fhéidir go bhfuil ceist. Tá brón orm?
>> [Sam] Cén fáth Tá an chéad ag barr na scuaine? I gcás nach bhfuil dul?
[Hardison] Tagann sé as an ceathrú líne ó bhun.
Tar éis tástáil a dhéanamh ar muid a dhéanamh cinnte go bhfuil ár n-scuaine folamh,
táimid ag tarraingt amach * ruabhreac ar dtús, ní mór dúinn a tharraingt amach an eilimint sin tá suí ag an innéacs ceann
ar ár raon, ar ár teaghráin >> eagar, agus glao a chéad?
[Hardison] Agus tugaimid dtús. Yeah.
Just a leanúint suas ar sin, cén fáth a cheapann tú a bhí againn a dhéanamh?
[Sam] gach gcéad ag filleadh go díreach q.strings [q.head]? >> Yeah.
>> Mar gheall ar táimid ag déanamh an athrú ar an q.head leis an bhfeidhm mod,
agus níl aon bhealach chun é sin a dhéanamh laistigh de líne fillte freisin.
[Hardison] díreach. Tá tú ar an láthair ar. Sam tá láthair go hiomlán ar.
An chúis a bhí againn a tharraingt amach an chéad eilimint i ár scuaine agus é a stóráil i athróg
mar gheall ar líne seo áit a raibh q.head againn ach,
níl nach bhfuil an t-oibreoir mod i rud éigin gur féidir linn a dhéanamh
agus tá sé i bhfeidhm ar an ceann gan - ar líne amháin.
Mar sin, ní mór dúinn i ndáiríre a tharraingt amach an chéad eilimint, a choigeartú agus ansin an ceann,
i dtaithí ar an méid, agus ansin an eilimint sin ceirteacha tarraingthe amach againn ar ais.
Agus is é an rud go beidh orainn a fheiceann teacht suas níos déanaí le
liostaí nasctha, mar a imríonn muid timpeall leo.
Is minic nuair a bhíonn tú freeing nó a dhiúscairt liostaí nasctha
is gá duit cuimhneamh ar an eilimint seo chugainn, an pointeoir eile den liosta nasctha
roimh dhiúscairt an ceann reatha.
Mar gheall ar shlí eile a chaitheann tú ar shiúl an t-eolas ar cad atá fágtha ar an liosta.
Anois, má théann tú le do fearas, a osclaíonn tú suas queue.c--x as seo.
Mar sin má oscailt mé suas queue.c, lig dom súmáil isteach i anseo,
Feicfidh tú a fheiceáil go bhfuil tú comhad den chineál céanna-lorg.
Similar-lorg comhad leis an méid a bhí againn níos luaithe le stack.c.
Táimid iontach fuair ár struct do scuaine a shainmhínítear díreach mar a chonaic muid ar na sleamhnáin.
>> Tá ár n-fheidhm enqueue atá le déanamh agat.
Agus ní mór dúinn an fheidhm dequeue anseo.
Is é an fheidhm dequeue sa chomhad unimplemented,
ach beidh mé é a chur suas ar ais ar an PowerPoint ionas gur féidir leat cineál sé isteach, más rud é gur mhaith leat.
Mar sin, don chéad 5 nóiméad seo chugainn nó mar sin, tá tú guys ag obair ar enqueue
a bhfuil beagnach díreach os coinne na dequeue.
Ní gá duit ceann a choigeartú nuair a bhíonn tú enqueueing, ach cad a dhéanann tú a choigeartú?
Méid. Mar sin, nuair a dhéanann tú enqueue tréimhsí, an ceann untouched faigheann, an méid a athrú.
Ach a thógann sé le beagán de - beidh ort a imirt ar fud leis an mod
chun an figiúr amach go díreach cad ba chóir innéacs an ghné nua seo a leanas ag.
Mar sin, beidh mé a thabhairt guys tú beagán, a chur dequeue suas ar ais ar an sleamhnán,
agus mar atá tú guys ceisteanna agat, shout amach iad ionas gur féidir linn
ar fad caint mar gheall orthu mar ghrúpa.
Chomh maith leis sin, leis an méid leat don't - nuair leat a choigeartú an méid, is féidir leat i gcónaí díreach -
gá duit a mod an méid riamh? [Daniel] Uimh >> Ní gá duit a mod ar mhéid, ar dheis.
Toisc go mbeidh an méid i gcónaí, más rud é you're - ag glacadh leis go bhfuil tú rudaí a bhainistiú go cuí,
Beidh an méid a bheith i gcónaí idir 0 agus 3.
Cá bhfuil tú a mod nuair a bhíonn tú ag déanamh enqueue?
[Mac Léinn] I le haghaidh an ceann. >> Ach amháin le haghaidh an ceann, go díreach.
Agus cén fáth a bhfuil tú a mod ar chor ar bith i enqueue?
Nuair a bhíonn staid ina gur mhaith leat a mod?
[Mac Léinn] Má tá tú rudaí ag spásanna, cosúil le spásanna ag 1 agus 2,
agus ansin is gá duit rud éigin a chur ag 0.
[Hardison] Yeah, go díreach. Mar sin, má tá do phointeoir ceann ag deireadh an-,
nó má tá do méid móide do cheann níos mó é, nó in áit, ag dul a Timfhilleadh ar fud an scuaine.
>> Mar sin, sa staid seo go atá againn fuair suas anseo ar an sleamhnán ceart anois,
más mian liom rud éigin a enqueue ceart anois,
ba mhaith linn rud éigin a enqueue ag innéacs 0.
Mar sin, má fhéachann tú ar áit a dtéann an 50, agus glaoim enqueue 50,
Téann sé síos ansin ag bun an leathanaigh. Téann sé i 0 innéacs.
Tagann sé in ionad an 'hi' go raibh dequeued cheana féin.
[Daniel] Ná tú cúram a ghlacadh de sin i dequeue cheana féin?
Cén fáth a dhéanann sé aon rud a dhéanamh leis an ceann i enqueue?
[Hardison] Oh, ionas nach bhfuil tú ag athrú an ceann, brón orm.
Ach caithfidh tú a úsáid an t-oibreoir mod nuair a bhíonn tú rochtain a fháil ar
an ghné gur mian leat a enqueue nuair a bhíonn tú rochtain a fháil ar
an ghné eile i do scuaine.
[Basil] Ní raibh mé é sin a dhéanamh, agus fuair mé "rath" ar ann.
[Daniel] Oh, tuigim cad tá tú ag rá.
[Hardison] didn't sin, tá tú - a rinne tú díreach ag q.size?
[Basil] Yeah. Athraigh mé díreach tar thaobh, ní raibh mé aon rud a dhéanamh leis an ceann.
[Hardison] Ní gá duit iarbhír a athshocrú an ceann a bheith rud ar bith,
ach nuair a innéacs tú isteach an eagar teaghráin,
tá tú i ndáiríre chun dul ar aghaidh agus a ríomh nuair atá an ghné seo chugainn,
mar gheall ar withe an chairn, bhí an ghné seo chugainn i do Stack i gcónaí
ag an t-innéacs a fhreagraíonn do na méid.
Má táimid ar ais ar bun ag ár n-fheidhm a bhrú Stack,
d'fhéadfadh muid a plunk i gcónaí in ár gné nua ar dheis ag méid innéacs.
De bharr an méid leis an scuaine, ní féidir linn é sin a dhéanamh
mar má táimid ag an staid seo,
más rud é go enqueued againn go mbeadh 50 ár n-teaghrán nua téigh ar dheis ag strings [1]
nach bhfuil muid ag iarraidh a dhéanamh.
Ba mhaith linn go mbeadh an teaghrán nua dul ar innéacs 0.
>> An bhfuil aon duine - yes? [Mac Léinn] Tá mé ceist, ach nach bhfuil sé i ndáiríre a bhaineann leo.
Cad a chiallaíonn sé nuair a iarrann duine éigin ach rud éigin cosúil le pointeoir pred?
Cad é an t-ainm gearr do? Tá a fhios agam tá sé ach ainm.
[Hardison] pointeoir Pred? A ligean ar a fheiceáil. Cén comhthéacs?
[Mac Léinn] Bhí sé don chur isteach. Is féidir liom a iarraidh ort níos déanaí más mian leat
toisc nach bhfuil sé i ndáiríre a bhaineann, ach tá mé díreach tar éis -
[Hardison] Ó cód isteach David ó léacht?
Is féidir linn a tharraingt go raibh suas agus labhairt faoi sin.
Beidh muid labhairt faoi sin chugainn, nuair a fhaigheann muid do liostaí nasctha.
>> Mar sin a ligean i ndáiríre go tapa breathnú ar cad Breathnaíonn an fheidhm enqueue mhaith.
Cad é an chéad rud a rinne daoine a dhéanamh i do líne enqueue? Isteach sa scuaine?
Cosúil le cad a rinne tú do Stack brú.
Cad a rinne tú, Stella?
[Stella, dothuigthe]
[Hardison] díreach. Más rud é (q.size == CUMAS) -
Is gá dom a chur ar mo braces san áit cheart - ar ais bréagach.
Zoom i beagán. Maith go leor.
Tá Anois, cad é an chéad rud eile a bhí againn a dhéanamh?
Díreach cosúil leis an chairn, agus a cuireadh isteach ag an áit cheart.
Agus mar sin cad a bhí an áit ceart a chur isteach go?
Leis an chairn a bhí sé méid innéacs, leis an nach bhfuil sé go leor sin.
[Daniel] Tá mé q.head--nó - q.strings >>? >> Yeah.
q.strings [q.head + q.size mod CUMAS]?
[Hardison] Ba mhaith linn is dócha go lúibíní a chur timpeall
ionas go bhfuil muid ag dul ar an tosaíocht is cuí agus mar sin go cleart do gach duine.
Agus atá leagtha go cothrom? >> A str? >> A str. Great.
Agus anois cad é an rud deireanach go bhfuil muid a dhéanamh?
Díreach mar a rinne muid i chairn. >> Incrimint an méid? >> Incrimint an méid.
Boom. Agus ansin, ós rud é an cód tosaithe ar ais ach bréagach trí mhainneachtain,
ba mhaith linn seo a athrú go fíor má théann gach trí agus gach a théann go maith.
Gach ceart. Sin go leor eolais ar fáil do ailt.
Níl muid go leor os a chionn. Is mian linn a labhairt i ndáiríre go tapa ar ina n-aonar-nasctha liostaí.
Feicfidh mé seo a chur ar bun ionas gur féidir linn dul ar ais air níos déanaí.
Ach a ligean ar dul ar ais go dtí ár láthair le haghaidh ach cúpla níos mó sleamhnáin.
Mar sin, tá enqueue TODO, anois againn déanta air.
>> Anois, a ligean ar ghlacadh le breathnú ar ina n-aonar-nasctha liostaí.
Labhair muid faoi na níos mó le beagán i léacht.
Cé mhéad de tú guys chonaic an taispeántas nuair a bhí againn le daoine
awkwardly dírithe ar gach uimhreacha eile agus gabháltas? >> Bhí mé i sin.
>> Cad a cheapann tú guys? An raibh sin, tá súil againn go demystify na beagán beag?
Le liosta, casadh sé amach go muid ag déileáil leis an gcineál sin táimid ag dul chun glaoch ar nód.
De bharr an méid leis an scuaine agus an chairn a bhí againn structs gur mhaith linn a ghlaoch scuaine i chairn,
bhí againn na scuaine nua i gcineálacha Stack,
anseo tá liosta i ndáiríre déanta suas díreach a bunch de nóid.
Ar an mbealach céanna go bhfuil teaghráin ach a bunch de carachtair lined suas go léir in aice le gach eile.
Tá liosta nasctha ach nód agus ceann eile nód agus ceann eile nód agus ceann eile nód.
Agus seachas Adaimh gach nód le chéile agus iad a stóráil contiguously
gach ceart aice le gach eile i gcuimhne,
a bhfuil an pointeoir eile ligeann dúinn a stóráil na nóid cibé áit, go randamach.
Agus ansin cineál na sreinge iad go léir le chéile a chur in iúl ó cheann go chéile.
>> Agus cad a bhí an buntáiste mór go raibh an níos mó ná eagar?
Thar gach rud a stóráil contiguously bhfostú díreach in aice le gach eile?
Cuimhin leat? Yeah? >> Leithdháileadh cuimhne Dinimiciúla?
>> Leithdháileadh cuimhne Dinimiciúla i cén chiall?
[Mac Léinn] I gur féidir leat a choinneáil ag déanamh níos mó é agus ní gá duit chun gluaiseacht do eagar ar fad?
[Hardison] díreach. Mar sin, le sraith, nuair is mian leat a chur ina ghné nua isteach sa lár na sé,
tá tú gach rud a athrú spás a dhéanamh.
Agus mar a labhair muid faoi leis an scuaine,
sin an fáth a choinneáil orainn go pointeoir ceann,
ionas nach bhfuil muid ag athrú go seasta rudaí.
Toisc go bhfaigheann daor má tá tú bhí sraith mór
agus atá tú a dhéanamh i gcónaí ar na insertions randamach.
De bharr an méid le liosta, tá gach leat a dhéanamh le caith sé ar nód nua,
i dtaithí ar an leideanna, agus tú ag déanamh.
Cad Sucks faoi seo?
Chomh maith as an bhfíric go bhfuil nach bhfuil sé chomh furasta a bheith ag obair le mar eagar? Yeah?
[Daniel] Bhuel, buille faoi thuairim mé tá sé i bhfad níos deacra rochtain a fháil ar ghné ar leith ar an liosta nasctha?
[Hardison] Ní féidir leat léim díreach eilimint treallach i lár do liosta nasctha.
Cén chaoi a bhfuil tú chun é a dhéanamh áit? >> Tá tú chun céim tríd an rud ar fad.
[Hardison] Yeah. Tá tú dul tríd amháin ag an am, ceann amháin ag an am.
Tá sé ina ollmhór - tá sé ina pian.
Cad é an ceann eile - níl ceann eile downfall seo.
[Basil] Ní féidir leat dul ar aghaidh agus ar gcúl? Tá tú le dul aon treo?
[Hardison] Yeah. Mar sin, conas is féidir linn a réiteach go, uaireanta?
[Basil]-nasctha doubly liostaí? >> Go díreach. Tá liostaí-nasctha doubly.
Tá - tá brón orainn?
>> [Sam] An é sin mar an gcéanna ag baint úsáide as an rud pred go -
Cuimhne mé díreach tar éis é nach bhfuil an méid an rud pred do?
Nach bhfuil i idir doubly agus ina n-aonar?
Cuma [Hardison] Let ag cad é go díreach a bhí á dhéanamh aige.
Mar sin anseo a théann muid. Seo é an cód liosta.
Anseo atá againn predptr, i anseo. An é seo cad a bhí tú ag caint faoi?
Mar sin, ba é seo - tá sé ag freeing liosta agus tá sé ag iarraidh le pointeoir a stóráil leis.
Ní hé seo an doubly, ina n-aonar nasctha-liostaí.
Is féidir linn labhairt níos mó faoi seo níos déanaí toisc go bhfuil an caint faoi freeing an liosta
agus ba mhaith liom a thaispeáint roinnt rudaí eile ar dtús.
ach tá sé ach - tá sé ag cuimhneamh ar an luach PTR
[Mac Léinn] Ó, tá sé pointeoir roimhe seo? >> Yeah.
Ionas gur féidir linn incrimint ansin PTR féin roimh saor in aisce againn ansin cad é predptr.
Toisc nach féidir linn a PTR saor in aisce agus ansin glaoch PTR = PTR eile, ceart?
Bheadh ​​sé sin dona.
Mar sin a ligean ar féach, ar ais go dtí an Guy.
>> Is é an rud eile dona faoi liostaí sin ná cé go bhfuil eagar
ní mór dúinn ach go léir na heilimintí Cruachta iad féin in aice le gach eile,
anseo dúinn a tugadh isteach chomh maith leis an pointeoir.
Mar sin, tá smután breise cuimhne go bhfuil muid ag úsáid a bhaint as
do gach gné sin tá muid ag a stóráil i ár liosta.
Faighimid solúbthacht, ach a thagann sé ar chostas.
Tagann sé leis an gcostas am,
agus a thagann sé leis an gcostas cuimhne freisin.
Am sa chiall go bhfuil muid anois dul trí gach eilimint sa eagar
chun teacht ar an ceann ag innéacs 10, nó go mbeadh a bheith innéacs 10 in eagar.
>> Díreach go tapa i ndáiríre, nuair a léaráid muid amach na liostaí seo,
de ghnáth atá againn ar cheann an liosta nó an pointeoir chéad liosta
agus faoi deara go bhfuil an pointeoir fíor.
Tá sé díreach 4 bytes. Níl sé nód iarbhír féin.
Mar sin, a fheiceann tú nach bhfuil aon luach slánuimhir ann, ní pointeoir eile ann.
Tá sé literally ach pointeoir.
Tá sé seo ag dul a chur in iúl rud éigin go bhfuil struct nód iarbhír.
[Sam] A pointeoir ar a dtugtar nód? >> Is é seo an - uimh. Is é seo an pointeoir le rud éigin de nód chineál.
Tá sé pointeoir a struct nód. >> Oh, maith go leor.
Léaráid maidir leis an gcód chlé, ar dheis.
Is féidir linn é a shocrú chun margadh saothair, a bhfuil ar bhealach maith le tosú.
Nuair a bheidh léaráid tú é, a scríobh tú ceachtar é mar null nó a chuir tú ar líne tríd mar sin.
>> Ceann de na bealaí is éasca a bheith ag obair le liostaí,
agus iarraimid a dhéanann tú an dá cuir i gceangal agus a fheiceáil ar na difríochtaí idir an dá,
ach tá prepending cinnte níos éasca.
Nuair a réamhcheangal tú, is é seo áit a bhfuil tú - nuair a bhíonn tú cuir (7),
théann tú, agus a chruthú ar an struct nód
agus atá leagtha duit an chéad a chur in iúl dó, mar anois, ós rud é prepended dúinn é,
tá sé ag dul a bheith ag tús an liosta.
Má thagann againn cuir (3), a chruthaíonn eile nód, ach anois 3 roimh an 7.
Mar sin, táimid ag brú go bunúsach rudaí ar ár liosta.
Anois, is féidir leat a fheiceáil go cuir, uaireanta glaoch ar dhaoine é a bhrú,
toisc go bhfuil tú ag brú ar eilimint nua ar do liosta.
Tá sé éasca freisin a scriosadh ag tosach liosta.
Mar sin, beidh daoine glaoch go minic go pop.
Agus ar an mbealach sin, is féidir leat aithris a dhéanamh ar Stack ag baint úsáide as liosta nasctha.
Whoops. Tá brón orainn, anois táimid ag dul i iarcheangail. Anseo prepended Mar sin, táimid (7), anois táimid ag cuir (3).
Má prepended muid rud éigin eile ar an liosta seo, más rud é prepended againn (4),
ansin gur mhaith linn a bheith 4 agus ansin 3 agus ansin 7.
Mar sin, ansin d'fhéadfadh muid a pop agus 4 a bhaint, a thógáil ar shiúl 3, a bhaint 7.
Is minic an bealach níos iomasach chun smaoineamh faoi seo le iarcheangail.
Mar sin, tá mé diagrammed amach cad a bheadh ​​sé cuma mhaith le gceangal anseo.
, I gceangal Anseo nach bhfuil (7) breathnú ar bith éagsúla
mar níl ach gné amháin ar an liosta.
Agus cuireann ceangal (3) ag an deireadh.
B'fhéidir gur féidir leat a fheiceáil ceart anois an cleas le iarcheangail
is é sin ós rud é a fhios againn ach amháin sa chás go bhfuil an tús an liosta,
a iarcheangal le liosta a bhfuil tú ag siúl go léir ar an mbealach tríd an liosta
a fháil go dtí deireadh, stad, a thógáil ansin do nód agus gach rud plunk síos.
Sreang go léir an stuif suas.
Mar sin, le cuir, mar a sracadh muid díreach tríd seo i ndáiríre go tapa,
nuair réamhcheangal tú chuig liosta, tá sé simplí go cothrom.
>> A dhéanann tú do nód nua, i gceist le roinnt leithdháileadh cuimhne dinimiciúil.
Mar sin anseo táimid ag déanamh struct nód ag baint úsáide as malloc.
Mar sin, malloc tá muid ag baint úsáide toisc go mbainfidh go leataobh cuimhne linn le haghaidh níos déanaí
toisc nach bhfuil muid ag iarraidh seo - ba mhaith linn an chuimhne go seasfaidh siad ar feadh i bhfad.
Agus a fháil againn pointeoir chun an spás i gcuimhne go bhfuil leithdháilte againn ach.
Bainimid úsáid as méid nód, ní féidir linn suim na réimsí sin.
Ní chuirimid a ghiniúint de láimh líon na mbeart,
ina ionad sin a úsáid againn o, ionas go mbeidh a fhios againn táimid ag dul ar an líon cuí na mbeart.
Déanaimid cinnte a thástáil go bhfuil ár glaoch malloc éirigh.
Is é an rud is mian leat a dhéanamh i gcoitinne.
Ar meaisíní nua-aimseartha, nach bhfuil ag rith amach as cuimhne rud éigin go bhfuil sé éasca
mura bhfuil tú ag leithdháileadh a ton de rudaí agus a dhéanamh ar liosta ollmhór,
ach má tá tú ag tógáil stuif le haghaidh, abair, cosúil le iPhone nó Android,
tú an bhfuil acmhainní cuimhne teoranta, go háirithe má tá tú ag déanamh rud éigin dian.
Mar sin tá sé maith a fháil i gcleachtas.
>> Fógra go bhfuil mé úsáid as feidhmeanna cúpla difriúil anseo
go atá tú ag feiceáil go bhfuil de chineál ar nua.
Mar sin, fprintf bhfuil díreach cosúil le printf
ach amháin a chéad argóint go bhfuil an sruth a ba mhaith leat a phriontáil.
Sa chás seo, ba mhaith linn a phriontáil ar an teaghrán earráid chaighdeánach
atá difriúil ó na outstream caighdeánach.
De réir réamhshocraithe taispeánann sé suas ar an áit chéanna.
Priontaí sé freisin chun an teirminéal, ach is féidir leat -
baint úsáide as na n-orduithe d'fhoghlaim tú faoi, na teicnící atreorú
d'fhoghlaim tú faoi i físeán Tommy ar feadh 4 sraith fhadhb, is féidir tú a threorú é a
le limistéir éagsúla; scoir, ar dheis anseo, bealaí amach do chlár.
Tá sé go bunúsach cosúil le filleadh ó is mó,
ach amháin linn a úsáid scoir toisc nach mbeidh anseo ar ais aon ní a dhéanamh.
Níl muid i is mó, ní mar sin ar ais éirí as an gclár mar ba mhaith linn.
Mar sin, úsáidimid an fheidhm scoir agus tabharfaidh sé cód earráide.
Ansin anseo a leag muid réimse luach an nód nua, dá réimse liom a bheith comhionann le i, agus ansin dúinn sreang sé suas.
Leagtha síos againn an nód nua pointeoir in aice le pointe chéad,
agus ansin beidh an chéad pointe anois leis an nód nua.
Tá na línte chéad cód, tá muid ag tógáil iarbhír an nód nua.
Gan an dá deireanach línte na feidhme seo ach an chéad cinn.
Is féidir leat a tharraingt i ndáiríre amach ar a chomhlíonadh, i feidhm cúntóir.
Sin é go minic cad a dhéanfaidh mé, tá mé tharraingt amach a chomhlíonadh,
Glaoch mé é rud éigin cosúil le nód a thógáil,
agus coimeádann go bhfuil an fheidhm cuir beag go leor, tá sé ach 3 línte sin.
A dhéanamh liom glaoch ar mo fheidhm nód a thógáil, agus ansin gach rud sreang mé suas.
>> Is é an rud deireanach Ba mhaith liom a thaispeáint duit,
agus beidh mé in iúl a dhéanann tú iarcheangail agus go léir ar do chuid féin,
é an chaoi a iterate thar liosta.
Tá a bunch de bhealaí éagsúla chun iterate thar liosta.
Sa chás seo, táimid ag dul a fháil ar an fad liosta.
Mar sin, tús a chur againn le fad = 0.
Tá sé seo an-chosúil le scríobh strlen ar theaghrán.
Tá sé seo cad ba mhaith liom a thaispeáint duit, seo le haghaidh lúb ar dheis anseo.
Breathnaíonn sé kinda funky; nach bhfuil sé an gnáth slánuimhir i = 0, i <cibé, i + +.
Ina áit sin tá sé ar ár n initializing athróg a bheith ar an tús an liosta.
Agus ansin cé nach bhfuil ár n-athróg iterator Eolas faoin margadh saothair, a choinneáil orainn ag dul.
Tá sé seo toisc, de réir an ghnáis, beidh an deireadh ar ár liosta null.
Agus ansin chun incrimintí, seachas ag déanamh + +,
atá comhionann le liosta nasctha de + é + n = n-> seo chugainn.
>> Feicfidh mé in iúl duit a líonadh isteach na bearnaí anseo toisc go bhfuil muid amach as an am.
Ach seo a choinneáil i gcuimhne agus tú ag obair ar do psets spellr.
Liostaí Nasctha, má tá tú a chur i bhfeidhm tábla hash,
Beidh teacht cinnte i handy an-.
Agus beidh a bhfuil an idiom haghaidh looping níos mó ná rudaí a dhéanamh saol a lán níos éasca, tá súil againn.
Ceisteanna ar bith, go tapa?
[Sam] An mbeidh tú a sheoladh amach ar an SLL i gcrích agus sc?
[Hardison] Yeah. Feicfidh mé a sheoladh amach sleamhnáin i gcrích agus Stack SLL i gcrích agus queue.cs.
[CS50.TV]