[Powered by Google Translate] [Alt 6] [Ar lean Compordach]
[Rob Bowden] [Ollscoil Harvard]
[Tá sé seo CS50.] [CS50.TV]
>> Is féidir linn a ceann go dtí ár rannóg de na ceisteanna.
Chuir mé an URL as an spás roimh.
An tús don rannóg de na ceisteanna rá-
cosúil nach bhfuil mé go hiomlán unsick é, i gcás ceist an-éasca
díreach cad atá valgrind?
Cad a dhéanann valgrind a dhéanamh?
Duine ar bith ag iarraidh a rá cad a dhéanann valgrind?
[Mac Léinn] Seiceálacha cuimhne leaks.
Yeah, tá valgrind a checker cuimhne ginearálta.
Tá sé, sa deireadh, insíonn tú má tá tú aon leaks cuimhne,
arb é is mó cad tá muid ag úsáid le haghaidh mar gheall ar más mian leat
a dhéanamh go maith sa tacar fhadhb nó más mian leat a
a fháil ar an mbord mór, is gá duit a bhfuil aon leaks cuimhne ar bith,
agus i gcás go bhfuil tú ar sceitheadh ​​cuimhne nach féidir leat a fháil,
freisin a choinneáil i gcuimhne go bhfuil aon uair a osclaíonn tú comhad
agus más rud é nach bhfuil tú dhúnadh, go bhfuil sceitheadh ​​cuimhne.
>> A lán daoine ag lorg roinnt nód nach bhfuil siad ag freeing
nuair i ndáiríre, ní raibh siad a dhúnadh an foclóir sa chéim gcéad.
Insíonn sé chomh maith leat léann má tá aon neamhbhailí nó scríobhann,
rud a chiallaíonn má tá tú iarracht a dhéanamh agus luach a leagtar
go bhfuil níos faide ná deireadh an gcarn agus ní dhéanann sé a tharlóidh do locht seg
ach gabhálacha valgrind é, mar ní ba chóir duit i ndáiríre a bheith ag scríobh ann,
agus mar sin tú nár chóir a bheith cinnte aon cheann de na ach an oiread.
Conas a úsáideann tú valgrind?
>> Is ceist ghinearálta
de chineál ar rith sé agus féach ar an aschur.
Is é an t-aschur ollmhór a lán de uaire.
Níl freisin earráidí spraoi nuair a má tá tú rud éigin terribly mícheart
ag tarlú i lúb, ansin beidh sé a rá ar deireadh thiar, "earráidí Bealach an iomarca.
Tá mé ag dul chun stop a chomhaireamh anois. "
Tá sé go bunúsach aschur téacs go bhfuil tú a pharsáil.
Sa deireadh, beidh sé insint duit aon leaks cuimhne go bhfuil tú,
cé mhéad bloic, is féidir a bheith úsáideach mar gheall ar
má tá sé ar cheann unfreed bloc, ansin tá sé de ghnáth níos éasca a fháil
ná mar a unfreed 1,000 bloic.
1,000 bloic unfreed ciallaíonn is dócha nach bhfuil tú ag freeing
do liostaí nasctha go cuí nó rud éigin.
Sin valgrind.
>> Anois, ní mór dúinn ár rannóg de na ceisteanna,
nach gá duit a íoslódáil.
Is féidir leat cliceáil ar mo ainm agus iad a tharraingt suas sa spás.
Anois cliceáil ar dom.
Beidh Athbhreithniú 1 chairn, a tá ag éirí linn ar dtús.
Beidh Athbhreithniú 2 scuaine, agus beidh Athbhreithniú 3 a bheith ar an liosta ina n-aonar nasctha.
Ag tosú amach leis an ár chairn.
Mar a deir sé anseo, tá Stack ar cheann de na is bunúsaí,
struchtúir sonraí bunúsacha na heolaíochta ríomhaireachta.
Is é an sampla an-prototypical
an chairn na tráidirí sa halla bia.
Tá sé go bunúsach aon uair is tú á dtabhairt isteach le Stack,
duine éigin ag dul a rá, "Oh, cosúil le Stack de tráidirí."
Tá tú chairn na tráidirí suas.
Ansin, nuair a théann tú a tharraingt tráidire,
Is é an tráidire sin den chéad uair tá dul tharraing an ceann deireanach a cuireadh ar an chruach.
Deir an chairn freisin-mhaith anseo-
ní mór dúinn an chuid den chuimhne ar a dtugtar an chairn.
Agus cén fáth sé ar a dtugtar an chairn?
>> Mar gheall ar cosúil le struchtúr Stack sonraí,
pushes sé Vox agus frámaí Stack ar an chruach,
i gcás ina bhfuil frámaí chairn cosúil le glao ar leith a chomhlíonadh.
Agus cosúil le Stack, beidh ort i gcónaí a thabhairt ar ais
ó glao feidhm sula féidir leat a fháil síos i frámaí Stack níos ísle arís.
Ní féidir leat a bheith príomh-ghlao barra glaoch foo agus seol ar ais barra go díreach is mó.
Tá sé seo fuair i gcónaí chun leanúint leis an chairn cheart brú agus popping.
Is iad an dá oibríochtaí, mar a dúirt mé, a bhrú agus pop.
Tá na téarmaí uilíoch.
Ba chóir duit a fhios a bhrú agus pop i dtéarmaí cruacha is cuma cén.
Feicfimid scuainí atá de chineál ar éagsúla.
Ní chuireann sé a bheith i ndáiríre ar feadh téarma uilíoch, ach a bhrú agus pop iad uilíoch do cruacha.
Brúigh é a chur díreach ar an chruach.
Pop é a chur as an chairn.
Agus a fheicimid anseo ní mór dúinn ár chairn struct Rialú an,
ionas go mbeidh muid teaghráin ** Char.
Ná fháil scanraithe ag aon **.
Tá sé seo ag dul chun deireadh suas a bheith le sraith de teaghráin
nó le sraith de leideanna chun carachtair, i gcás ina
claonadh leideanna chun carachtair a bheith teaghráin.
Ní chuireann sé a bheith teaghráin, ach anseo, tá siad ag dul a bheith teaghráin.
>> Tá sraith de teaghráin.
Tá méid, rud a léiríonn cé mhéad gnéithe faoi láthair ar an chruach,
agus ansin ní mór dúinn an cumas, a bhfuil conas is féidir go leor gnéithe a bheith ar an chruach.
Ba chóir an toilleadh tús a chur amach mar rud níos mó ná 1,
ach tá an méid dul chun tús a chur amach mar 0.
Anois, tá bunúsach trí bhealaí éagsúla is féidir leat smaoineamh ar chairn.
Bhuel, tá dócha níos mó, ach an dá bhealach is mó atá
is féidir leat a chur chun feidhme ag baint úsáide as eagar, nó is féidir é a chur i bhfeidhm tú ag baint úsáide liosta nasctha.
Tá liostaí Nasctha chineál fánach le cruacha a dhéanamh as.
Tá sé an-éasca a dhéanamh Stack ag baint úsáide as liostaí nasctha,
mar sin anseo, táimid ag dul a dhéanamh Stack arrays úsáid a bhaint as,
agus ansin arrays úsáid a bhaint as, níl freisin dhá bhealach is féidir leat smaoineamh ar é.
Roimhe sin, nuair a dúirt mé ní mór dúinn a cumas an chairn,
ionas gur féidir linn oiriúnach gné ar an chruach.
>> Is é an bealach amháin a d'fhéadfadh sé tarlú chomh luath agus a bhuail tú 10 heilimintí, ansin tú ag déanamh.
D'fhéadfá a fhios agat go bhfuil uachtair cheangal de 10 rudaí ar fud an domhain
riamh go mbainfidh tú a bheith níos mó ná 10 rudaí ar do Stack,
agus sa chás sin is féidir leat a bheith acu uachtair cheangal ar an méid do chairn.
Nó d'fhéadfadh tú do Stack a unbounded,
ach má tá tú ag déanamh le sraith, ciallaíonn sé sin go gach uair amháin bhuail tú 10 eilimintí,
ansin tá tú ag dul a bheith ag fás le 20 heilimintí, agus nuair a bhuail tú 20 eilimintí,
bhfuil tú ag dul a bheith ar do raon ag fás go 30 eilimintí nó eilimintí 40.
Tá tú ag dul go mór chun cur le cumas, a bhfuil cad táimid ag dul a dhéanamh anseo.
Gach uair amháin a bhaint amach againn ar an méid is mó d'ár chairn,
nuair a bhrú rud éigin eile ar aghaidh, tá muid ag dul go mór chun cur le cumas.
Anseo, ní mór dúinn a bhrú dhearbhú mar bhrú bool (ruabhric * str).
Is é str * Char an teaghrán go bhfuil muid ag brú isteach ar an chairn,
agus deir bool díreach cé acu d'éirigh linn nó ar theip.
>> Conas is féidir linn a theipeann?
Cad é an imthoisc amháin gur féidir leat smaoineamh ar
i gcás ina mbeadh orainn a thabhairt ar ais bréagach?
Yeah.
[Mac Léinn] Má tá sé go hiomlán agus táimid ag baint úsáide as cur chun feidhme teoranta.
Yeah, mar sin conas is féidir linn a shainiú-fhreagair sé go
má tá sé go hiomlán agus táimid ag baint úsáide as cur i bhfeidhm bounded.
Ansin, beidh muid ar ais cinnte bréagach.
Chomh luath agus a bhuail muid 10 rudaí sa réimse, ní féidir linn oiriúnach 11, agus mar sin ar ais dúinn bréagach.
Cad a tharlaíonn má tá sé unbounded? Yeah.
Más rud é nach féidir leat a leathnú an eagar ar chúis éigin.
Yeah, mar sin tá cuimhne acmhainn teoranta,
agus diaidh ar ndiaidh, más rud é a choinneáil linn rudaí ag brú isteach ar an chairn arís agus arís eile,
táimid ag dul chun iarracht a leithdháileadh raon níos mó a d'oirfeadh
Is é an cumas níos mó, agus malloc nó cibé táimid ag baint úsáide as ag dul ar ais bréagach.
Bhuel, beidh malloc ar ais null.
>> Cuimhnigh, gach uair amháin leat glaoch riamh malloc, ba chóir duit a sheiceáil a fheiceáil má tá sé
tuairisceáin null nó eile go bhfuil asbhaint cirte.
Ós rud é ba mhaith linn go mbeadh chairn unbounded,
Is é an cás ach táimid ag dul a bheith ag filleadh bréagach má iarracht muid a
acmhainn agus malloc nó cibé tuairisceáin bréagach.
Ansin Bíonn pop aon argóintí,
agus tugann sé an teaghrán atá ar bharr an chairn.
Cibé rud a bhí an chuid is mó le déanaí bhrú ar an chruach cad pop ag filleadh,
agus é a mbainfidh freisin as an chairn.
Agus faoi deara go bhfilleann sé null má tá aon rud ar an chruach.
Tá sé indéanta i gcónaí go bhfuil an chairn folamh.
I Java, má tá tú ag úsáid chun sin, nó teangacha eile,
D'fhéadfadh iarraidh a pop ó chairn folamh bheith ina chúis le eisceacht nó rud éigin.
>> Ach i C, tá nialasach de chineál ar go leor de na cásanna conas a láimhseáil na fadhbanna seo.
Ag filleadh null é an chaoi a bhfuil muid ag dul chun signify go raibh an chairn folamh.
Táimid tar éis soláthar cód a thástáil do Stack ar fheidhmiúlacht,
chur i bhfeidhm a bhrú agus a pop.
Ní Beidh sé seo a lán de chód.
Agam go mbeidh-i ndáiríre, roimh a dhéanann muid go bhfuil, leid, leid-
más rud é nach bhfuil tú ag feiceáil air, nach bhfuil malloc an fheidhm amháin
go leithdháiltear cuimhne ar an gcarn ar do shon.
Tá teaghlaigh de fheidhmeanna leithdháileadh.
Is é an chéad malloc, a bhfuil tú ag úsáid chun.
Ansin, níl calloc, a dhéanann an rud céanna mar malloc,
ach beidh sé náid gach rud amach duit.
Má tá tú ag iarraidh riamh gach rud a shocrú nialasach tar éis mallocing rud éigin
ba chóir duit a úsáid ach calloc sa chéad áit in ionad na scríbhneoireachta
a d'lúb go nialas amach an bloc ar fad de chuimhne.
>> Realloc Is cosúil malloc agus tá a lán de na cásanna speisialta,
ach go bunúsach cad a dhéanann realloc
a thógann sé ar pointeoir go raibh leithdháileadh cheana féin.
Is é Realloc an fheidhm is mian leat a bheith ag tabhairt aird ar anseo.
Bíonn sé pointeoir go raibh ar ais cheana féin ó malloc.
Ligean le rá a iarraidh tú ó malloc a pointeoir de 10 bytes.
Ansin, ina dhiaidh tuigeann tú a raibh tú 20 bytes,
mar sin a ghlaonn tú realloc ar an pointeoir le 20 bytes,
agus beidh realloc chóipeáil go huathoibríoch thar gach rud ar do shon.
Má d'iarr tú díreach malloc arís, mar tá mé bloc de 10 bytes.
Anois, is gá dom a bloc de 20 bytes,
mar sin má malloc mé 20 bytes, ansin tá mé a chóipeáil de láimh thar na 10 bytes ó an chéad rud
isteach sa dara rud agus ansin saor in aisce an chéad rud.
Beidh Realloc láimhseáil ar do shon.
>> Fógra go bhfuil an síniú ag dul a bheith ar neamhní *,
atá ag filleadh ach pointeoir chuig an bloc cuimhne,
ansin neamhní * PTR.
Is féidir leat smaoineamh * neamhní mar pointeoir cineálach.
Go ginearálta riamh, tú ag déileáil le * neamhní,
ach tá malloc comhairimh * neamhní, agus ansin tá sé in úsáid go díreach mar a
seo ag dul i ndáiríre a bheith ina * Char.
An * neamhní roimhe sin a bhí ar ais malloc
tá sé ag dul anois a chur ar aghaidh chuig realloc, agus ansin méid
Is é an líon nua na mbeart is mian leat a leithdháileadh, agus mar sin do chumas nua.
Feicfidh mé a thabhairt duit cúpla nóiméad, agus é a dhéanamh in ár spás.
Tosaigh le Athbhreithniú 1.
Feicfidh mé stad tú tar éis tá súil againn faoi am go leor a bhrú a chur i bhfeidhm,
agus ansin beidh mé a thabhairt duit eile sos pop a dhéanamh.
Ach nach bhfuil sé i ndáiríre an cód i bhfad ar chor ar bith.
Tá an cód an chuid is mó dócha go bhfuil an stuif ag leathnú, leathnú an cumas.
Maith go leor, aon bhrú a dhéanamh go hiomlán,
ach chomh fada agus a bhraitheann tú mar atá tú ar an gcosán ceart, go maith.
>> An bhfuil aon duine aon chód mbraitheann siad compordach le tarraingt mé suas?
Yeah, beidh mé, ach ní duine ar bith a bhfuil aon chód is féidir liom a tharraingt suas?
Maith go leor, is féidir leat tosú, ach amháin é, is cuma cad é?
Mé dearmad i gcónaí go bhfuil céim.
Maith go leor, ag féachaint ar bhrú,
ar mhaith leat a mhíniú do chód?
[Mac Léinn] Gcéad dul síos, mhéadaigh mé an méid.
Buille faoi thuairim mé b'fhéidir ba chóir dom a rá-sin féin, mhéadaigh mé an méid,
agus féach mé má tá sé níos lú ná an acmhainn.
Agus má tá sé níos lú ná an acmhainn, mé a chur leis an eagar atá againn cheana féin.
Agus más rud é nach bhfuil sé, mé a iolrú ar an acmhainn faoi 2,
agus athdháileadh mé an sraith teaghráin chun rud éigin le méid toilleadh níos mó anois.
Agus ansin má theipeann sin, inis mé an t-úsáideoir agus seol ar ais bréagach,
agus má tá sé fíneáil, ansin chuir mé an teaghrán i láthair nua.
>> [Rob B.] Chomh maith leis sin faoi deara a úsáid againn deas bitwise oibreoir anseo
a iolrú faoi 2.
Cuimhnigh, tá athrú chlé ag dul i gcónaí a bheith méadaithe faoi 2.
Tá athrú Ceart roinnt ar 2 chomh fada agus cuimhnigh go bhfuil tú ciallaíonn sé
roinnt de 2 mar atá i slánuimhir roinnt ar 2.
D'fhéadfadh sé a teascadh ar a 1 anseo nó ann.
Ach tá athrú fágtha faoin 1 dul i gcónaí a bheith méadaithe faoi 2,
mura sceite tú an bounds an slánuimhir, agus ansin ní bheidh sé.
A comment taobh.
Is maith liom a dhéanamh-é seo nach bhfuil ag dul a athrú ar an códú aon tslí ar bith,
ach is maith liom a dhéanamh rud éigin mar seo.
Tá sé i ndáiríre ag dul a dhéanamh níos faide sé beagán.
B'fhéidir nach é seo an cás foirfe seo a léiriú,
ach is maith liom a deighleog sé isteach ar na bloic-
ceart go leor, más rud é seo a tharlaíonn má, ansin tá mé ag dul rud éigin a dhéanamh,
agus is é an fheidhm a dhéanamh ansin.
Ní gá dom a scrollbharra ansin mo shúile léir ar an mbealach síos an fheidhm
a fheiceáil cad a tharlaíonn tar éis an duine eile.
Tá sé más rud é seo a tharlaíonn más rud é, ansin mé ar ais díreach.
Tá sé freisin ar an tairbhe deas breise gach rud níos faide ná seo
Tá bhog fágtha anois uair amháin.
Mé a thuilleadh gá a-más rud é in aice leat riamh ridiculously línte fada,
ansin is féidir iad siúd 4 bytes cabhrú, agus freisin go bhfuil an rud éigin níos mó ar chlé,
an lú léigear dar leat más mian-ceart go leor, tá mé le cuimhneamh
Tá mé faoi láthair i lúb agus taobh istigh de taobh istigh eile de do lúb.
Áit ar bith is féidir leat é seo a dhéanamh ar ais láithreach, mé cineál cosúil.
Tá sé go hiomlán roghnach agus nach bhfuiltear ag súil in aon slí.
>> [Mac Léinn] Ar chóir go mbeadh méid - sa riocht theipeann?
Is é an coinníoll theipeann anseo theip orainn realloc, mar sin tá.
Fógra conas sa riocht teip, is dócha,
mura againn stuif saor in aisce ina dhiaidh sin, táimid ag dul i gcónaí a theipeann
is cuma cé mhéad uair a iarracht muid rud éigin a bhrú.
Má choinneáil orainn ag brú, a choinneáil orainn méid incriminteach,
cé nach bhfuil muid ag cur rud ar bith ar an chairn.
De ghnáth, ní féidir linn a incrimint an méid go dtí go
tar éis a mór dúinn a chur go rathúil é ar an chruach.
Ba mhaith linn é a dhéanamh, a rá, bíodh anseo agus anseo.
Agus ansin, in ionad ag rá s.size ≤ acmhainn, tá sé níos lú ná cumas,
ach amháin mar gheall ar bhog muid nuair a bhí gach rud.
>> Agus cuimhnigh, an áit ach amháin go raibh muid ar ais, b'fhéidir, bréagach
Is anseo, áit ar ais realloc nialasach,
agus má tharlaíonn tú chun cuimhneamh ar earráid chaighdeánach,
b'fhéidir go dtiocfadh leat a mheas an gcás seo a áit ar mhaith leat a phriontáil earráid chaighdeánach,
stderr sin fprintf seachas díreach a phriontáil go díreach amach caighdeánach.
Arís, ní go ag súil, ach má tá sé ar earráid,
cineál printf, ansin b'fhéidir gur mhaith leat a dhéanamh é a phriontáil go earráid chaighdeánach ionad amach caighdeánach.
>> Duine ar bith a bheith aon rud eile a thabhairt faoi deara? Tá.
[Mac Léinn] An féidir leat dul thar an [inaudible]?
[Rob B.] Sea, an binariness iarbhír é nó díreach cad é?
[Mac Léinn] sin, tá tú iolrú dó le 2?
[Rob B.] Yeah, go bunúsach.
I talamh dénártha, ní mór dúinn i gcónaí ar ár sraith de digití.
Aistriú an taobh clé de 1 go bunúsach cuireann sé anseo ar an taobh dheis.
Ar ais leis seo, ag cuimhneamh ach go bhfuil gach rud i dénártha
Is cumhachta 2, agus mar sin is ionann 2 a ghabhann leis an 0,
an 2 a ghabhann leis 1, an 2 a ghabhann leis 2.
Trí chur isteach ar 0 go dtí an taobh dheis anois, tá muid ag athrú ach gach rud os a chionn.
Cad a úsáidtear a bheith 2 a ghabhann leis an 0 anois 2 a ghabhann leis an 1, 2 a ghabhann leis 2.
An taobh deas go isteach againn
ag dul gá a bheith 0,
a dhéanann ciall.
Má tá tú iolrú riamh ar roinnt de 2, níl sé ag dul chun deireadh suas corr,
mar sin ba chóir a bheith ar an 2 go dtí an áit 0 0,
agus tá sé seo cad a rabhadh mé leath faoi roimh má dhéanann tú a tharlóidh a athrú
thar líon na píosaí i slánuimhir,
ansin tá an 1 ag dul go dtí deireadh suas ag dul amach.
Sin an imní ach amháin má tharlaíonn leat a bheith ag déileáil le toilleadh i ndáiríre mór.
Ach ag an bpointe sin, ansin tá tú ag déileáil le sraith de na billiúin rudaí,
ní a d'fhéadfadh a oiriúnach i gcuimhne ar aon nós.
>> Anois is féidir linn a fháil chun pop, a bhfuil fiú níos éasca.
D'fhéadfá é a dhéanamh maith má tharlaíonn tú a pop a bunch iomlán,
agus anois tá tú ag leath acmhainn arís.
D'fhéadfaí tú a realloc chun Laghdaigh an méid cuimhne agat,
ach ní gá duit a bheith buartha faoi go bhfuil, mar sin an cás realloc ach amháin ag dul a bheith
ag fás chuimhne, ní crapadh chuimhne,
atá ag dul a dhéanamh Super pop éasca.
Anois scuainí, atá ag dul a bheith cosúil le stoic,
ach an t-ordú go bhfuil tú rudaí a thógáil amach droim ar ais.
Is é an sampla prototypical de scuaine líne,
mar sin buille faoi thuairim mé má bhí tú Béarla, ba mhaith liom a rá
Is sampla prototypical de scuaine scuaine.
Mar sin, cosúil le líne, má tá tú an chéad duine i líne,
bhfuil súil agat a bheith ar an chéad duine amach as an líne.
Má tá tú an duine deireanach sa líne, tá tú ag dul a bheith ar an duine deireanach seirbhísithe.
Glaoch orainn gur patrún FIFO, cé go raibh Stack LIFO patrún.
Tá na focail go leor uilíoch.
>> Cosúil le stoic agus murab ionann agus arrays, scuainí ghnáth ní féidir rochtain a cheadú ar eilimintí i lár.
Anseo, Stack, ní mór dúinn a bhrú agus pop.
Anseo, a tharlóidh dúinn a bheith ar a dtugtar iad a enqueue agus dequeue.
Tá sé cloiste agam ar a dtugtar freisin dóibh athrú agus unshift.
Chuala mé daoine a rá bhrú agus pop do freisin maidir le scuainí.
Tá sé cloiste agam isteach, a bhaint,
mar sin a bhrú agus a pop, má tá tú ag caint faoi stacks, tá tú ag brú agus popping.
Má tá tú ag caint faoi scuainí, d'fhéadfaí tú a roghnaigh na focail is mian leat a úsáid
do chur isteach agus a bhaint, agus níl aon chomhaontú ar cad ba cheart a bheith ar a dtugtar.
Ach anseo, ní mór dúinn enqueue agus dequeue.
Anois, féachann an struct beagnach comhionann leis an struct Stack.
Ach ní mór dúinn súil a choinneáil ar cheann.
Buille faoi thuairim mé a deir sé síos anseo, ach cén fáth nach gá dúinn an ceann?
Is iad na fréamhshamhlacha go bunúsach comhionann a bhrú agus pop.
Is féidir leat smaoineamh ar é mar a bhrú agus pop.
Is é an difríocht amháin pop ag filleadh-ionad an ceann deireanach, tá ar ais ar an gcéad.
2, 1, 3, 4, nó rud éigin.
Agus anseo an tús.
Is é ár scuaine go hiomlán go hiomlán, mar sin níl ceithre ghné ann.
Is é an deireadh ár scuaine faoi láthair 2,
agus anois táimid ag dul a chur isteach i rud éigin eile.
>> Nuair a ba mhaith linn a chur isteach go bhfuil rud éigin eile, cad a rinne muid le haghaidh an leagan Stack
Tá leathnú ár bloc cuimhne.
Cad é an fhadhb atá leis seo?
[Mac Léinn] bogadh tú an 2.
Cad a dúirt mé roimh mar gheall ar an deireadh an scuaine,
ní hionann sin ciall a bhaint as go dtosaíonn muid ag 1,
ansin ba mhaith linn a dequeue 1, ansin dequeue 3, ansin dequeue 4,
ansin dequeue 2, dequeue ansin an gceann seo.
Ní féidir linn úsáid a bhaint as realloc anois,
nó ar a laghad an-, tá tú realloc a úsáid ar bhealach difriúil.
Ach tú nár chóir is dócha a úsáid ach realloc.
Tá tú ag dul a bheith acu a chóipeáil de láimh do chuimhne.
>> Tá dhá fheidhm cuimhne a chóipeáil.
Níl memcopy agus memmove.
Tá mé ag léamh faoi láthair ar na leathanaigh fear a fheiceáil atá ar cheann tú ag dul go dtí gur mian a úsáid.
Maith go leor, memcopy is é an difríocht
go Láimhseálann memcopy agus memmove, ceann an cás i gceart
áit a bhfuil tú a chóipeáil isteach i réigiún a tharlaíonn forluí ar an réigiún
bhfuil tú ag chóipeáil ó.
Ní Memcopy é a láimhseáil. Memmove dhéanann.
Is féidir leat smaoineamh ar an bhfadhb mar-
ligean le rá ba mhaith liom a chóipeáil Guy seo,
na ceithre leis an Guy os a chionn.
Sa deireadh, cad ba cheart an eagar breathnú cosúil le
tar éis an chóip 2, 1, 2, 1, 3, 4, agus ansin roinnt rudaí ag an deireadh.
Ach tá sé seo ag brath ar an ord ina againn a chóipeáil i ndáiríre,
ós rud é más rud é nach bhfuil muid ag smaoineamh ar an bhfíric go bhfuil an réigiún tá muid a chóipeáil isteach
forluí an ceann táimid ag chóipeáil ó,
ansin d'fhéadfadh linn a dhéanamh cosúil le tús anseo, an 2 chóipeáil isteach ar an áit ba mhaith linn dul,
ansin bogadh ar ár leideanna chun cinn.
>> Anois, tá muid ag dul a bheith anseo agus anseo, agus anois ba mhaith linn a chóipeáil
Guy seo thar an Guy agus bogadh ar ár leideanna chun cinn.
Cad é táimid ag dul go dtí deireadh ag dul suas 2, 1, 2, 1, 2, 1
in ionad an 2 cuí, 1, 2, 1, 3, 4 mar gheall ar
2, 1 overrode an 3 bunaidh, 4.
Memmove Láimhseálann sin i gceart.
Sa chás seo, go bunúsach ach i gcónaí úsáid a bhaint as memmove
mar gheall ar láimhseáil i gceart.
Go ginearálta níl aon fheidhm níos measa.
Is é an smaoineamh in áit ag tosú ón tús agus a chóipeáil an mbealach seo
mar a rinne muid ach anseo, a thosaíonn sé ó dheireadh agus cóipeanna i,
agus sa chás sin, ní féidir leat a bheith ina fhadhb.
Níl a cailleadh aon fheidhmíocht.
A úsáid i gcónaí memmove. Ná bíodh imní ort faoi memcopy.
Agus sin an áit a bhfuil tú ag dul a bheith acu chun memmove ar leithligh
an chuid fillte ar fud do scuaine.
Uimh imní mura bhfuil sé déanta go hiomlán.
Tá sé seo níos deacra ná mar chairn, a bhrú pop, agus.
>> Duine ar bith a bheith ar aon chód d'fhéadfadh muid ag obair leis?
Fiú má hiomlán neamhiomlán?
[Mac Léinn] Sea, tá sé go hiomlán easnamhach, cé.
Go hiomlán neamhiomlán Is fíneáil chomh fada is is féidir linn-leat a shábháil an t-athbhreithniú?
Dearmad go gach uair amháin.
Maith go leor, a tharlaíonn neamhaird cad é nuair is gá dúinn chun rudaí a athrú.
Go hiomlán neamhaird a athrú.
Mínigh an cód.
Tá mé ag seiceáil an gcéad de gach má tá an méid níos lú ná an chéad chóip de gach
agus ansin ina dhiaidh sin, tá mé isteach-mé ceann + mhéid,
agus a dhéanamh mé cinnte go wraps sé thart ar acmhainn an eagar,
agus mé isteach an teaghrán nua ag an suíomh.
Ansin mé ag cur an méid agus ar ais fíor.
>> [Rob B.] Tá sé seo cinnte ar cheann de na cásanna sin ina bhfuil tú ag dul a iarraidh a bheith ag baint úsáide as mod.
Aon chineál ar chás má tá tú ag timfhilleadh timpeall, má cheapann tú timfhilleadh timpeall,
Ba chóir go mbeadh an smaoinimh láithreach mod.
Mar leas iomlán a bhaint mear / a dhéanamh do chód líne amháin níos giorra,
thugann tú faoi deara go bhfuil an líne díreach tar éis an ceann seo
ach méid + +, agus mar sin chumasadh tú go bhfuil i líne seo, méid + +.
Anois síos anseo, ní mór dúinn an cás
i gcás nach bhfuil againn cuimhne go leor,
mar sin táimid ag méadú ár n-acmhainn ar 2.
Buille faoi thuairim mé d'fhéadfá a bheith an fhadhb chéanna anseo, ach is féidir linn neamhaird a dhéanamh air anois,
i gcás má theip ort a mhéadú do chumas,
ansin tá tú ag dul a iarraidh a laghdú do chumas ag 2 arís.
Eile is ea an nóta gearr díreach mar is féidir leat a dhéanamh + =,
féidir leat a dhéanamh freisin <<.
Is féidir le beagnach aon rud is ionann agus dul os comhair, + =, | =, & =, << =.
Tá Carachtar * nua ár bloc nua de chuimhne.
Oh, thar anseo.
>> Cad a dhéanann daoine smaoineamh ar an gcineál ár bloc nua de chuimhne?
[Mac Léinn] Ba chóir a thabhairt ** ruabhreac.
Ag smaoineamh ar ais go dtí ár struct suas anseo,
teaghráin cad tá muid ag athdháileadh.
Táimid ag déanamh a stóráil ar fad dinimiciúil nua do na heilimintí sa scuaine.
Cad táimid ag dul a bheith a shannadh do teaghráin cad tá muid ag mallocing ceart anois,
agus mar sin tá nua ag dul a bheith ina ** ruabhreac.
Tá sé seo ag dul a bheith le sraith de teaghráin.
Ansin, cad é an cás faoina táimid ag dul a thabhairt ar ais bréagach?
[Mac Léinn] Ar chóir dúinn a bheith ag déanamh an * Char?
[Rob B.] Sea, glaoch maith.
[Mac Léinn] Cad é sin?
[Rob B.] Theastaigh uainn a dhéanamh ar mhéid * ruabhreac mar go bhfuil muid a thuilleadh-
go mbeadh sé seo a bheith i ndáiríre fadhb an-mhór toisc go mbeadh deachúlach (ruabhric) a 1.
Tá Is uimhir Char * ag dul a bheith 4,
mar sin a lán de amanna nuair a bhíonn tú ag déileáil le ints,
claonadh a bhíonn tú a fháil amach le sé mar gheall ar mhéid na slánuimhir agus méid * o
ar chóras 32-giotán ag dul a bheith ar an rud céanna.
Ach anseo, is féidir MÉID a (Char) agus deachúlach (ruabhric *) ag dul anois a bheith ar an rud céanna.
>> Cad é an staid nuair a fhilleann muid bréagach?
[Mac Léinn] Nua Eolas faoin margadh saothair.
Yeah, má tá nua faoin margadh saothair, ar ais dúinn bréagach,
agus tá mé ag dul le caith síos anseo-
[Mac Léinn] [inaudible]
[Rob B.] Yeah, is é seo fíneáil.
D'fhéadfá a dhéanamh ceachtar 2 uair acmhainn nó 1 athrú acmhainne agus ansin leag sé síos anseo nó cibé.
Beidh muid é a dhéanamh mar a bhí againn uirthi.
Cumas >> = 1.
Agus riamh tá tú ag dul a bheith buartha faoi chailliúint an 1 ar siúl
mar gheall ar d'fhág tú bhog faoin 1, is é sin an 1 ar siúl gá gur 0,
sin ceart aistriú faoin 1, tá tú fós ag dul a bheith fíneáil.
[Mac Léinn] An bhfuil gá duit a dhéanamh go roimh ais?
[Rob B.] Sea, a dhéanann an fíor aon chiall.
>> Anois, glacadh againn ag dul chun deireadh suas ar ais fíor go deireadh.
An bealach táimid ag dul a dhéanamh ar na memmoves,
ní mór dúinn a bheith cúramach leis an gcaoi a ndéanaimid iad.
An bhfuil aon duine aon mholtaí maidir le conas a dhéanann muid iad?
Seo ár tús.
Níl dul thairis, ba mhaith linn tús a chur ag an tús arís
rudaí a chóipeáil agus a i ó ann, 1, 3, 4, 2.
Conas a dhéanann tú sin?
Gcéad dul síos, tá mé chun breathnú ar an leathanach fear do memmove arís.
Memmove é, a ordú na n-argóintí i gcónaí tábhachtach.
Ba mhaith linn ár gceann scríbe chéad, an dara foinse, an tríú méid.
Tá a lán de na feidhmeanna a athrú fhoinse agus an ceann scríbe.
Is nós le Ceann Scríbe, foinse a bheith comhsheasmhach beagán.
Bog, cad é a sheoladh ar ais?
Tuairisceáin sé pointeoir go dtí an sprioc, ar chúis ar bith b'fhéidir gur mhaith leat go.
Is féidir liom pictiúr a léamh, ach ba mhaith linn chun bogadh isteach ár gceann scríbe.
>> Cad é ár gceann scríbe ag dul a bheith?
[Mac Léinn] Nua.
[Rob B.] Tá, agus i gcás ina bhfuil chóipeáil againn ó?
Is é an chéad rud a táimid ag chóipeáil seo 1, 3, 4.
Cad é an-seo 1, 3, 4.
Cad é an seoladh seo a 1?
Cad é an seoladh an 1?
[Mac Léinn] [inaudible]
[Rob B.] Ceann + seoladh an chéad eilimint.
Conas is féidir linn a fháil ar an chéad eilimint sa eagar?
[Mac Léinn] Ciú.
[Rob B.] Sea, q.strings.
Cuimhnigh, anseo is é ár ceann 1.
Darn é. I mo thuairimse, ach tá sé magically-
Anseo, is é ár ceann 1. Tá mé ag dul a athrú ar mo dath freisin.
Agus is é anseo teaghráin.
Seo, is féidir linn a scríobh ceachtar sé mar a rinne muid thar anseo
le ceannairí + q.strings.
A lán daoine a scríobh freisin agus q.strings [ceann].
Níl sé seo i ndáiríre ar bith níos lú éifeachtach.
D'fhéadfá smaoineamh ar é mar atá tú dereferencing é agus ansin dul ar an seoladh,
ach tá an tiomsaitheoir ag dul go dtí é a aistriú leis an méid a bhí againn roimh aon nós, q.strings + ceann.
Slí amháin nó slí is mian leat chun smaoineamh ar é.
>> Agus cé mhéad bytes ar mian linn a chóipeáil?
[Mac Léinn] Cumas - ceann.
Cumas - ceann.
Agus ansin d'fhéadfaí tú a scríobh i gcónaí, mar shampla
chun an figiúr amach más rud é go ceart.
[Mac Léinn] Caithfidh sé a bheith roinnte ar 2 ansin.
Yeah, mar sin buille faoi thuairim mé féidir linn a úsáid méid.
Tá muid go fóill méid arb éard í-
ag baint úsáide as méid, ní mór dúinn méid is ionann agus 4.
Is é ár méid 4. Is é ár ceann 1.
Ba mhaith linn a chóipeáil ar na 3 eilimint.
Sin é an sanity seiceáil go size - ceann i gceart 3.
Agus ag teacht ar ais anseo, mar a dúirt muid roimh,
más rud é a úsáid le linn acmhainn, ansin ba mhaith linn a roinnt ar 2
mar tá muid tar éis fás cheana féin ar ár gcumas, mar sin ina ionad sin, táimid ag dul méid a úsáid.
Go cóipeanna an chuid sin.
Anois, ní mór dúinn a chóipeáil an chuid eile, an chuid atá fágtha ó thús.
>> Sin an dul chun memmove i cad seasamh?
[Mac Léinn] Plus size - ceann.
Sea, mar sin ní mór dúinn a chóipeáil cheana féin i méid - bytes ceann,
agus mar sin nuair ba mhaith linn a chóipeáil na bearta atá fágtha is nua
agus ansin méid lúide-maith, líon na mbeart atá déanta againn cheana féin a chóipeáil isteach
Agus ansin i gcás ina bhfuil chóipeáil againn ó?
[Mac Léinn] Q.strings [0].
[Rob B.] Sea, q.strings.
D'fhéadfadh muid a dhéanamh ceachtar & q.strings [0].
Tá sé seo i bhfad níos lú coitianta ná seo.
Má tá sé ag dul ach a bheith 0, ansin beidh tú claonadh a bhíonn le q.strings fheiceáil.
Sin an áit a bhfuil muid ag chóipeáil ó.
Cé mhéad bytes dhéanamh ní mór dúinn a d'fhág a chóipeáil? >> [Mac Léinn] 10.
Ceart.
[Mac Léinn] An bhfuil muid ag a iolrú 5 - 10 uair an méid de na bearta nó rud éigin?
Yeah, mar sin tá sé seo i gcás-cad go díreach atá chóipeáil againn?
[Mac Léinn] [inaudible]
Cad é an cineál an rud táimid ag chóipeáil?
[Mac Léinn] [inaudible]
Yeah, sin an * s Char go bhfuil muid ag cóipeáil, níl a fhios againn i gcás ina bhfuil sin ag teacht as.
Bhuel, nuair a bhíonn siad ag dírithe, cosúil leis an teaghráin, ní mór dúinn deireadh suas ag brú sé isteach ar an scuaine
nó enqueuing ar an scuaine.
I gcás ina mbeidh sin a thagann as, ní mór dúinn aon smaoineamh.
Ní mór dúinn ach súil a choinneáil ar an * s Char féin.
Nílimid ag iarraidh a chóipeáil size - bytes ceann.
Ba mhaith linn a chóipeáil size - ceann s * Char,
mar sin táimid ag dul chun méadú seo trí deachúlach (ruabhric *).
Same síos anseo, ceann * Is uimhir (Char *).
>> [Mac Léinn] Cad mar gheall ar [inaudible]?
An ceart anseo?
[Mac Léinn] No, faoi bhun, an méid - ceann.
[Rob B.] an ceart anseo?
Uimhríochtúil phointeora.
Conas a uimhríochtúil pointeoir ag dul ag obair is
multiplies sé go huathoibríoch ag an méid den chineál go bhfuil muid ag déileáil le.
Díreach mar thar anseo, nua + (size - ceann)
é go díreach comhionann & [size - ceann] nua
go dtí go táimid ag súil go a bheith ag obair i gceart,
ós rud é má tá muid ag déileáil le sraith slánuimhir, ansin ní dhéanaimid innéacs int-
nó má tá sé ar mhéid an 5 agus is mian leat an ghné 4ú, ansin innéacs muid isteach ar an
slánuimhir eagar [4].
Tá tú don't-[4] * méid slánuimhir.
Go Láimhseálann sé go huathoibríoch, agus sa chás seo
Tá literally comhionann, mar sin an chomhréir scriosaidh
tá sé ag dul ach a bheith athraithe go dtí seo chomh luath agus is tú a thiomsú.
Sin rud éigin is gá duit a bheith cúramach go
nuair a bhíonn tú ag cur méid - ceann
bhfuil tú ag cur ní amháin beart.
Tá tú ag cur amháin * ruabhreac, is féidir a bheith ar cheann mbeart nó cibé.
>> Ceisteanna eile?
Maith go leor, tá dequeue ag dul a bheith níos éasca.
Feicfidh mé a thabhairt duit nóiméad a chur i bhfeidhm.
Ó, agus buille faoi thuairim mé é seo an staid chéanna ina
cad é an cás enqueue, má táimid enqueuing null,
b'fhéidir ba mhaith linn a láimhseáil é, b'fhéidir nach bhfuil againn.
Ní bheidh muid é a dhéanamh arís anseo, ach is ionann ár gcás chairn.
Má enqueue againn faoin margadh saothair, d'fhéadfadh muid ag iarraidh a neamhaird a thabhairt air.
Duine ar bith go bhfuil roinnt cód is féidir liom a tharraingt suas?
[Mac Léinn] Tá mé díreach tar éis dequeue.
Is Leagan 2 go-maith.
Ba mhaith leat a mhíniú?
[Mac Léinn] Ar dtús, a dhéanann tú cinnte go bhfuil rud éigin sa scuaine
agus go bhfuil an méid dul síos ag 1.
Ní mór duit é sin a dhéanamh, agus ansin leat filleadh ar an ceann
agus ansin bogadh an ceann suas 1.
Maith go leor, mar sin tá cás cúinne ní mór dúinn a bhreithniú. Yeah.
[Mac Léinn] Má tá do cheann ar an ghné dheireanach,
ansin nach mian leat ceann a chur in iúl lasmuigh den eagar.
>> Yeah, mar sin amas chomh luath agus is ceann deireadh ár sraith,
nuair dequeue againn, ba chóir ár ceann a modded ar ais go dtí 0.
Ar an drochuair, ní féidir linn é sin a dhéanamh in aon chéim amháin.
Buille faoi thuairim mé ar an mbealach gur mhaith liom a shocrú is dócha go bhfuil sé
tá sé seo dul chun bheith ina * ruabhreac, cad tá muid ag filleadh,
is cuma cad ba mhaith do ainm athraitheach a bheith.
Ansin ba mhaith linn a mod ceann ag ár n-acmhainn
agus seol ar ais ansin ret.
A lán daoine anseo a d'fhéadfadh siad a dhéanamh-
seo an cás seo a leanas-you'll a fheiceáil daoine a dhéanamh má tá ceann
níos mó ná cumas, an bhfuil ceann - acmhainne.
Agus tá go obair ach timpeall cad é mod.
Is é Ceann mod = cumas i bhfad níos glaine
de timfhilleadh timpeall ná mar a bheadh ​​ceann níos mó ná ceann acmhainne - acmhainne.
>> Ceisteanna?
Maith go leor, is é an rud deireanach ní mór dúinn d'fhág ár liosta nasctha.
D'fhéadfá a bheith in úsáid le cuid de na iompar liosta nasctha más rud é go raibh tú
nasctha liostaí i do táblaí hash, más rud é go raibh tú tábla hash.
Liom a mholadh go láidir a dhéanamh tábla hash.
D'fhéadfá a bheith déanta cheana féin trie,
ach tá iarracht a níos deacra.
Go teoiriciúil, tá siad asymptotically níos fearr.
Ach ach breathnú ar an mbord mór,
agus iarracht riamh a dhéanamh níos fearr, agus tabharfaidh siad suas cuimhne níos mó.
Gach rud a dhéanann iarracht faoi chríochnaíonn suas a bheith níos measa le haghaidh obair níos mó.
Tá sé cad é réiteach David MALAN s i gcónaí
Tá sé i gcónaí post a réiteach trie, agus a ligean ar a fheiceáil áit a bhfuil sé.
Cad a bhí sé faoi, David J?
'S Sé # 18, mar sin ní go terribly olc,
agus déanann go ag dul a bheith ar cheann de na fearr is féidir leat smaoineamh ar
nó iarracht ar cheann de na fearr de trie.
Nach bhfuil sé fiú a réiteach bunaidh?
Dar liom an claonadh a réitigh trie a bheith níos mó sa réimse seo a bhaineann le húsáid RAM.
>> Téigh síos go dtí an barr an-, agus tá sé RAM úsáid i na digití aonair.
Téigh síos i dtreo an ghrinnill, agus ansin a thosaíonn tú ag féachaint ar iarracht
nuair a gheobhaidh tú úsáid RAM go hiomlán ollmhór,
agus tá iarracht a níos deacra.
Ní go hiomlán fiú é ach taithí oideachais má rinne tú amháin.
Is é an rud deireanach ar ár liosta nasctha,
agus na trí rudaí, stacks, scuainí, agus liostaí nasctha,
aon rud sa todhchaí a dhéanann tú riamh san eolaíocht ríomhaireachta
Beidh glacadh leis go bhfuil tú cur amach ar na rudaí seo.
Tá siad ach tábhacht bhunúsach do gach rud.
>> Liostaí Nasctha, agus anseo againn é a bheith ar liosta ina n-aonar ceangailte ag dul a bheith ar ár chur i bhfeidhm.
Cad a dhéanann nasctha ina n-aonar chiallaíonn seachas doubly nasctha? Tá.
[Mac Léinn] Léiríonn sé ach an pointeoir eile seachas na leideanna,
cosúil leis an cheann roimhe sin é agus an ceann tar éis dó.
Yeah, mar sin i bhformáid pictiúr, cad a rinne mé díreach tar éis?
Tá mé dhá rud. Tá mé pictiúr agus pictiúr.
I bhformáid pictiúr, ár liostaí nasctha ina n-aonar,
dosheachanta, tá roinnt de chineál pointeoir chuig ceann ár liosta,
agus ansin, laistigh de ár liosta, ní mór dúinn ach threo,
agus b'fhéidir seo pointí nialasach.
Tá sé seo ag dul a bheith do líníocht tipiciúil de liosta gceann agus ina gceann nasctha.
Tá liosta doubly nasctha, is féidir leat dul ar gcúl.
Má tá mé a thabhairt duit aon nód ar an liosta, ansin is féidir leat a fháil gá go
aon nód eile ar an liosta má tá sé liosta doubly nasctha.
Ach má fhaigheann mé tú an nód tríú ar an liosta agus tá sé ina liosta ina n-aonar nasctha,
aon bhealach bhfuil tú ag dul riamh a fháil chun an nóid chéad agus an dara.
Agus tá buntáistí agus na detriments, agus ceann amháin soiléir
Tá tú i chun méid níos mó, agus tá tú súil a choinneáil ar an áit ina bhfuil na rudaí seo dírithe anois.
Ach táimid cúram ach thart ar nasctha ina n-aonar.
>> Tá roinnt rudaí táimid ag dul a bheith acu a chur i bhfeidhm.
Do nód struct Rialú an, slánuimhir i: struct nód * eile; nód.
Ba cheart go mbeadh Rialú an a dhó i do intinn.
Ba chóir Tráth na gCeist 1 a buíochas a thabhairt Rialú an de nód liosta nasctha,
agus ba chóir duit a bheith in ann Scribble láithreach síos
gan smaoineamh fiú faoi.
Buille faoi thuairim mé ceisteanna lánúin, cén fáth go bhfuil ag teastáil uainn struct anseo?
Ní féidir Cén fáth a rá linn * nód?
[Mac Léinn] [inaudible]
Yeah.
An rud amháin a shainmhíníonn nód mar rud
Is é an Rialú an féin.
Ach mar an phointe seo, nuair a bhíonn muid de chineál ar parsáil tríd an sainmhíniú nód struct,
ní mór dúinn críochnaithe ár Rialú an fóill, mar sin ós rud é nach bhfuil an Rialú an críochnaithe,
Ní nód ann.
Ach struct ní nód, agus an nód i anseo,
fhéadfaí é seo a dtugtar freisin aon rud eile.
D'fhéadfaí é seo a dtugtar n.
D'fhéadfadh sé a bheith ar a dtugtar nód liosta nasctha.
D'fhéadfadh sé a bheith ar a dtugtar rud ar bith.
Ach ní mór an nód struct ar a dtabharfar an rud céanna leis an nód struct.
Cad a ghlaonn tú é seo tar éis a bheith anseo freisin,
agus mar sin freagraí go chomh maith leis an dara pointe ar an gceist
agus sin an fáth-a lán de uaire nuair a fheiceann tú structs agus typedefs de structs,
Feicfidh tú a fheiceáil structs gan ainm gcás ina mbainfidh tú a fheiceáil ach struct Rialú an,
chur i bhfeidhm foclóir struct,, nó cibé.
>> Cén fáth anseo dhíth orainn nód a rá?
Cén fáth nach féidir é a bheith ina struct gan ainm?
Tá sé beagnach an freagra céanna.
[Mac Léinn] Ní mór duit chun tagairt a dhéanamh dó laistigh den struct.
Yeah, laistigh den struct, is gá duit a tharchur chuig an struct féin.
Mura bhfuil tú a thabhairt ar an struct ainm, má tá sé struct gan ainm, ní féidir leat tagairt a dhéanamh dó.
Agus anuas ach ní a laghad-na Ba chóir go mbeadh gach simplí beagán,
agus ba chóir dóibh cabhrú leat a bhaint amach má tá tú seo a scríobh síos
go bhfuil tú ag déanamh rud éigin mícheart mura mbíonn na cineál rudaí ciall a bhaint as.
Last ach ní a laghad, cén fáth nach é seo a bheith * nód struct?
Cén fáth nach féidir sé ach a struct nód seo chugainn?
[Mac Léinn] phointeora ar an struct eile.
Sin gan dabht cad ba mhaith linn.
D'fhéadfadh riamh Cén fáth go mbeadh sé nód struct seo chugainn?
Cén fáth a bhfuil sé a bheith struct nód * chugainn? Yeah.
[Mac Léinn] Tá sé cosúil le lúb gan teorainn.
Yeah.
[Mac Léinn] Bheadh ​​sé go léir i gceann.
Yeah, ach smaoineamh ar conas ba mhaith linn a dhéanamh ar mhéid nó rud éigin.
Tá méid struct bunúsach + nó - roinnt patrún anseo nó ann.
Tá sé seo ag dul go bunúsach a bheith ar suim na méideanna de na rudaí sa struct.
An ceart anseo, gan athrú rud ar bith, tá an méid dul a bheith éasca.
Tá Méid an nód struct ag dul a bheith méid i méid + de seo chugainn.
Tá Méid mé ag dul a bheith 4. Tá Méid an chéad dul a bheith 4.
Tá Méid an nód struct ag dul a bheith 8.
Más rud é nach bhfuil againn an *, ag smaoineamh ar deachúlach,
ansin is féidir MÉID a (i) ag dul a bheith 4.
Méid na nód struct bhfuil seo chugainn ag dul a bheith méid i + méid nód struct eile
+ Méid i méid + de nód struct seo chugainn.
Bheadh ​​sé ina athchúrsáil éigríochta de nóid.
Seo é an fáth go bhfuil sé seo conas a bhfuil rudaí a bheith.
>> Arís, memorize cinnte go bhfuil,
nó ar a laghad a thuiscint go leor gur féidir leat a bheith in ann a
chúis tríd an méid a ba cheart dó breathnú cosúil le.
Na rudaí táimid ag dul a iarraidh a chur i bhfeidhm.
Má fad na liosta-
d'fhéadfaí tú a cheat agus a choinneáil thart ar
fad domhanda nó rud éigin, ach ní táimid ag dul a dhéanamh sin.
Táimid ag dul a chomhaireamh fad an liosta.
Tá Táimid tar éis, mar sin go bunúsach cosúil le cuardach,
ionas go mbeidh muid liosta nasctha de slánuimhreacha a fheiceáil má tá sé seo slánuimhir ar an liosta nasctha.
Réamhcheangail ag dul a chur isteach ag tús an liosta.
Iarcheangail ag dul a chur isteach ag an deireadh.
Insert_sorted ag dul a chur isteach sa suíomh curtha in eagar ar an liosta.
Glacann chineál Insert_sorted de riamh a d'úsáid tú réamhcheangal nó iarcheangal ar bhealaí dona.
>> Insert_sorted nuair a bhíonn tú i bhfeidhm insert_sorted-
ligean le rá ní mór dúinn ár liosta nasctha.
Tá sé seo cad tá sé faoi láthair cosúil le, 2, 4, 5.
Ba mhaith liom a chur isteach i 3, chomh fada is a bheidh an liosta féin curtha in eagar cheana féin,
tá sé éasca a fháil i gcás ina mbaineann 3.
Tosóidh mé ag 2.
Maith go leor, tá 3 níos mó ná 2, agus mar sin ba mhaith liom a choinneáil ag dul.
Ó, is é 4 ró-mhór, mar sin tá a fhios agam 3 ag dul chun dul i idir 2 agus 4,
agus tá mé a shocrú leideanna agus go léir stuif sin.
Ach más rud é nach raibh againn a úsáid go docht insert_sorted,
Is maith a ligean ach a rá réamhcheangal mé 6,
ansin tá mo liosta nasctha ag dul a bheith leis seo.
Déanann sé ciall ar bith anois, agus mar sin le haghaidh insert_sorted, is féidir leat glacadh leis go díreach
go bhfuil an liosta in eagar, cé ann oibríochtaí
is féidir a chur faoi deara nach é a bheith curtha in eagar, agus go bhfuil sé.
Aimsigh cabhrach isteach-sin, sin iad na rudaí is mó go bhfuil tú ag dul a bheith acu a chur i bhfeidhm.
>> Chun anois, nóiméad a ghlacadh fad a dhéanamh Tá agus,
agus ba chóir dóibh siúd a bheith réasúnta tapaidh.
Beagnach am dúnta, agus mar sin aon duine aon rud d'fhad bhfuil nó?
Tá siad ag dul a bheith beagnach mar an gcéanna.
[Mac Léinn] Fad.
A ligean ar a fheiceáil, athbhreithniú.
Maith go leor.
Ba mhaith leat a mhíniú?
[Mac Léinn] mé a chruthú ach nód pointeoir agus é a thúsú sa chéad, a bhfuil ár athróg domhanda,
agus ansin mé ag seiceáil a fheiceáil má tá sé null mar sin ní féidir liom a fháil locht seg agus 0 ar ais má tá sin an cás.
Seachas sin, tá mé lúb tríd, súil a choinneáil ar laistigh slánuimhir
cé mhéad uair a bhí mé rochtain ar an chéad bhall eile ón liosta
agus i bhfeidhmiú incrimint céanna rochtain a fháil ar chomh maith go eilimint iarbhír,
agus ansin mé a dhéanamh go leanúnach ar an seic a fheiceáil má tá sé faoin margadh saothair,
agus má tá sé faoin margadh saothair, ansin aborts sé agus díreach ar ais ar an líon de na gnéithe mé rochtain.
>> [Rob B.] An bhfuil aon duine aon tuairimí ar rud ar bith?
Breathnaíonn sé seo cirte fíneáil ciallmhar.
[Mac Léinn] Ní dóigh liom go mór duit an nód == null.
Yeah, mar sin má nód == 0 ais null.
Ach má nód == null ansin é seo-OH, tá ceist cirte.
Bhí sé ach tá tú ag filleadh i, ach níl sé i raon feidhme ceart anois.
Ní mór duit ach slánuimhir i, mar sin i = 0.
Ach má tá nód nialasach, ansin ag dul i gcónaí a bheith 0,
agus táimid ag dul a thabhairt ar ais 0, mar sin tá an cás seo comhionann.
Is ea an rud is coiteann do choinneáil ar an dearbhú
taobh istigh den nód le haghaidh lúb.
D'fhéadfá a rá-ó, uimh.
A ligean ar é a choimeád mar seo.
Ba mhaith liom a chur dócha slánuimhir i = 0 anseo,
ansin nód * nód = chéad uair i anseo.
Agus is é seo is dócha conas-a fháil haitheantas coibhneasta an anois.
Is dócha conas ba mhaith liom a scríobh sé.
D'fhéadfá freisin-ag féachaint ar sé mar seo.
Sé seo do struchtúr lúb ar dheis anseo
Ba chóir go mbeadh beagnach nádúrtha a thabhairt duit mar do slánuimhir i = 0
Tá mé níos lú ná fad eagar i + +.
Más rud é go conas tú iterate thar eagar, is é seo conas tú iterate thar liosta nasctha.
>> Ba chóir go mbeadh an dara cineál ag pointe áirithe.
Agus sin san áireamh, tá sé seo ag dul a bheith beagnach an rud céanna.
Tá tú ag dul go dtí mhaith a iterate thar liosta nasctha.
Más rud é an nód-I bhfuil aon smaoineamh cad é an luach ar a dtugtar.
Nód i.
Má tá an luach ag an nód = ais i fíor, agus go bhfuil sé.
Fógra go bhfuil an t-aon bhealach táimid ar ais riamh bréagach
Is é má táimid iterate ar an liosta iomlán nasctha agus ní ar ais fíor,
ionas go mbeidh ar cad a dhéanann seo.
Mar taobh nótaí againn nach mbeidh a fháil is dócha go gceangal nó réamhcheangal.
>> Nóta deiridh tapaidh.
Má fheiceann tú an eochairfhocal statach, mar sin a ligean le rá statach slánuimhir count = 0,
ansin a dhéanann muid count + +, is féidir leat smaoineamh bunúsach é mar athróg domhanda,
cé a dúirt mé díreach tar éis nach bhfuil sé seo conas a táimid ag dul fad a chur i bhfeidhm.
Tá mé ag déanamh seo anseo, agus ansin comhaireamh + +.
Aon slí is féidir linn dul isteach i nód i ár liosta nasctha táimid ag ár n-incriminteach a chomhaireamh.
Is é an pointe seo cad a chiallaíonn an eochairfhocal statach.
Má bhí mé díreach tar éis líon slánuimhir = 0 a bheadh ​​athróg rialta domhanda d'aois.
Cad iad na modhanna líon statach slánuimhir é go bhfuil sé athróg domhanda do chomhad seo.
Tá sé dodhéanta do roinnt comhad eile,
Is maith smaoineamh ar pset 5, más rud é go bhfuil tú tosaithe.
Tá tú araon speller.c, agus tá tú dictionary.c,
agus má tá tú a dhearbhú ach an rud domhanda, ansin ní i speller.c
Is féidir teacht i dictionary.c agus vice versa.
Tá athróga domhanda inrochtana comhad ar bith. C,
ach tá athróg statach amháin a bheidh rochtain ó laistigh de na comhaid féin,
sin taobh istigh de spell checker nó taobh istigh de dictionary.c,
Is é an cineál seo conas ba mhaith liom a dhearbhú mo athróg do mhéid mo eagar
nó an méid mo líon na bhfocal san fhoclóir.
Ós rud é nach bhfuil mé ag iarraidh a dhearbhú athróg domhanda go bhfuil duine ar bith a rochtain,
I ndáiríre ach cúram faoi do mo gcríoch féin.
>> Is é an rud go maith faoi seo chomh maith leis an stuif imbhualadh ar fad ainm.
Má iarracht éigin comhad eile a úsáid athróg domhanda ar a dtugtar líon, théann rudaí an-, an-mícheart,
mar sin coimeádann seo nicely rudaí sábháilte, agus gan ach is féidir leat rochtain a fháil air,
agus is féidir aon duine eile, agus má dhearbhaíonn duine eile a athróg domhanda ar a dtugtar líon,
ansin ní bheidh sé isteach ar do athróg statach a dtugtar count.
Sin a bhfuil statach. Tá sé athróg comhad domhanda.
>> Ceisteanna ar rud ar bith?
Gach leagan síos. Fodhlíthe.
[CS50.TV]