[MUSIC ifa]
DAVID J. MALAN: B眉t眉n h眉ququ.
Bu CS50 edir.
Bu h蓹ft蓹 be艧 davam edir v蓹 biz yax艧谋 x蓹b蓹r v蓹 pis x蓹b蓹r var.
Bel蓹 ki, yax艧谋 x蓹b蓹r CS50 edir bu c眉m蓹 ba艧lay谋r.
Siz biz蓹 qo艧ulmaq ist蓹yirsinizs蓹, Burada adi URL r蓹hb蓹rlik.
H蓹tta daha yax艧谋 x蓹b蓹rl蓹r, he莽 bir m眉hazir蓹 Bu 13 Bazar ert蓹si g蓹lir.
Az daha yax艧谋 x蓹b蓹rl蓹r, viktorina s谋f谋r n枚vb蓹ti 脟蓹r艧蓹nb蓹 edir.
Daha 蓹trafl谋 ola bil蓹r burada bu URL tap谋lmad谋.
V蓹 n枚vb蓹ti bir ne莽蓹 g眉n 蓹rzind蓹 biz blanklar谋n doldurulmas谋 olacaq
otaqlar il蓹 ba臒l谋 biz ay谋rd谋q ki.
Daha yax艧谋 x蓹b蓹rl蓹r var laz谋md谋r ki, kurs-geni艧 n蓹z蓹rd蓹n
sessiya bu g蓹l蓹n Ax艧am Bazar ert蓹si.
Kurs nin K枚kl蓹n蓹n qalmaq yeri v蓹 蓹trafl谋 m蓹lumat 眉莽眉n haqqinda.
Bir olsa B枚lm蓹, bayram, h蓹m莽inin g枚r眉艧蓹c蓹k.
茝n yax艧谋 x蓹b蓹rl蓹r, n枚vb蓹ti c眉m蓹 m眉hazir蓹.
Bel蓹 ki, bu 蓹n蓹n蓹 biz proqram谋 h蓹r var.
Yaln谋z var Bu g枚z蓹l olacaq.
Siz kimi 艧eyl蓹r g枚r蓹c蓹ksiniz daimi vaxt data strukturlar谋
v蓹 hash masalar v蓹 a臒ac v蓹 莽al谋艧谋r.
V蓹 biz ad probleml蓹ri haqq谋nda dan谋艧maq laz谋md谋r.
M蓹hsullar谋 A b眉t眉n d蓹st蓹 n枚vb蓹ti c眉m蓹 g枚zl蓹yir.
OK.
Af蓹rin.
>> Bel蓹likl蓹, biz etdik ki, xat谋rlay谋ram n蓹 bu 艧蓹kil diqq蓹t
bizim komp眉ter yadda艧 daxilind蓹.
Bel蓹 ki, yadda艧 v蓹 ya RAM yerl蓹艧ir proqramlar谋 Siz onlara etdiyiniz zaman m枚vcuddur.
Bir c眉t bas谋n icon bir proqram run
v蓹 ya c眉t bas谋n bir fayl a莽maq 眉莽眉n icon,
Sizin a臒谋r y眉kl眉 olub s眉r眉c眉 v蓹 ya b蓹rk d枚vl蓹t s眉r眉c眉
RAM, Random Access Memory, harada g眉c off gedir q蓹d蓹r ya艧ay谋r,
laptop qapaq ba臒lay谋b v蓹 ya proqram 莽谋xmaq.
>> 陌ndi yadda艧, v蓹 siz y蓹qin ki,
1 gigabyte bu g眉n, 2 qiqabayt, v蓹 ya h蓹tta daha 莽ox,
眉mumiyy蓹tl蓹 qoydu bir proqram 眉莽眉n
d眉zbucaql谋 bu c眉r konseptual model
biz alt谋ndak谋 y谋臒谋n谋 var qovu艧durma臒谋m谋z v蓹 眉st dig蓹r m蓹hsullar谋n谋n bir d蓹st蓹.
脟ox 眉st 艧ey bu 艧蓹kil g枚rd眉m
蓹vv蓹l he莽 dan谋艧d谋q s枚zd蓹 m蓹tn seqment deyil.
M蓹tn seqment yaln谋z bir x眉lya yoludur adet s谋f谋r v蓹 olanlar谋 dey蓹r蓹k ki,
faktiki t蓹rtib proqram daxildir.
>> Bel蓹 ki, siz c眉t bas谋n Mac v蓹 ya PC Microsoft Word,
Siz dot 莽al谋艧t谋rd谋臒谋n谋zda v蓹 ya Mario z蓹rb蓹 Sizin terminal p蓹nc蓹r蓹 Linux komp眉ter,
b蓹st蓹l蓹m蓹k ki, adet s谋f谋r v蓹 olanlar谋 Word v蓹 ya Mario m眉v蓹qq蓹ti saxlan谋l谋r
s枚zd蓹 sizin komp眉ter RAM x眉susi bir proqram 眉莽眉n m蓹tn seqment.
Ki, gedir A艧a臒谋da ba艧lat谋lm谋艧 v蓹 uninitialized data.
Bu qlobal d蓹yi艧蓹nl蓹r kimi stuff deyil, biz bir 莽ox istifad蓹 etdik ki,
lakin m眉nasib蓹til蓹 biz qlobal d蓹yi艧蓹nl蓹r var idi
v蓹 ya statik strings m眉蓹yy蓹n ki, a臒谋r "salam" kimi s枚zl蓹r kodlu
istifad蓹莽i q蓹bul deyil ki, ki, proqram a臒谋r kodlu olunur.
>> 陌ndi a艧a臒谋 alt谋ndak谋 biz s枚zd蓹 y谋臒谋n谋 var.
V蓹 y谋臒谋n谋, bu g眉n蓹 q蓹d蓹r biz oldum m蓹qs蓹dl蓹ri n蓹 c眉r istifad蓹?
Y谋臒谋n谋 n蓹 眉莽眉n istifad蓹 edilmi艧dir?
B蓹li?
>> Auditoriya: funksiyalar谋.
>> DAVID J. MALAN: funksiyalar谋 眉莽眉n?
Funksiyalar谋 眉莽眉n n蓹 m蓹nada?
>> Auditoriya: siz bir funksiyas谋 z蓹ng zaman, d蓹lill蓹ri y谋臒谋n谋 眉z蓹rin蓹 kopyalan谋r.
>> DAVID J. MALAN: Exactly.
Bir funksiyas谋 z蓹ng zaman, onun d蓹lill蓹ri y谋臒谋n谋 眉z蓹rin蓹 kopyalan谋r.
Bel蓹 ki, h蓹r hans谋 bir X v蓹 ya Y v蓹 ya A v蓹 ya B-nin bir funksiyas谋 ke莽蓹n edirik ki,
m眉v蓹qq蓹ti qoyulur s枚zd蓹 y谋臒谋n谋,
yaln谋z Annenberg biri kimi yemekhane qablar, v蓹 d蓹 h蓹r 艧eyi
yerli d蓹yi艧蓹nl蓹rin kimi.
茝g蓹r foo funksiyas谋 v蓹 ya svop funksiyas谋 yerli d蓹yi艧蓹nl蓹r var,
temp kimi, bu iki y谋臒谋n谋 ba艧a.
陌ndi biz 莽ox dan谋艧maq olmaz onlara, lakin bu m眉hit d蓹yi艧蓹nl蓹r
alt谋ndak谋 biz bir m眉dd蓹t 蓹vv蓹l g枚rd眉m M蓹n klaviatura bir g眉n futzing edilib
v蓹 M蓹n h蓹r 艧eyi daxil ba艧lad谋 argv 100 v蓹 ya argv 1000 kimi,
yaln谋z elementl蓹ri Unuda Bu numbers-- lakin
m蓹nim 蓹ld蓹 etm蓹k 眉莽眉n n蓹z蓹rd蓹 deyil.
Biz b蓹zi g枚r蓹n ba艧lad谋 ekranda funky r蓹mzl蓹ri.
H蓹min qondarma idi m眉hit d蓹yi艧蓹nl蓹r
qlobal parametrl蓹ri kimi m蓹nim proqram v蓹 ya m蓹nim komp眉ter, 眉莽眉n
son olmayan biz m眉zakir蓹 bug,
Shellshock ki, oldu bir ne莽蓹 komp眉ter ba艧谋na b蓹la.
>> 陌ndi n蓹hay蓹t, bu g眉n diqq蓹t m蓹rk蓹zind蓹 biz sonda y谋臒谋n olacaq.
Bu yadda艧 bir y谋臒谋n edir.
V蓹 蓹sasl谋 b眉t眉n bu yadda艧 eyni stuff deyil.
Bu eyni hardware var.
Biz sort yaln谋z edirik m眉xt蓹lif qruplar m眉alic蓹
m眉xt蓹lif m蓹qs蓹dl蓹r 眉莽眉n bayt.
Y谋臒谋n d蓹 oldu臒u olacaq siz t蓹l蓹b d蓹yi艧蓹nl蓹rin v蓹 yadda艧
茝m蓹liyyat sistemi m眉v蓹qq蓹ti saxlan谋l谋r.
>> Amma bir problem n枚v眉 var Burada, 艧蓹kil n蓹z蓹rd蓹 tutur kimi.
Biz sort iki var haqq谋nda g蓹mil蓹rin toqqu艧maq.
Daha 莽ox v蓹 daha 莽ox istifad蓹 kimi 莽眉nki biz bu g眉n g枚r眉r眉k y谋臒谋n谋, v蓹
ir蓹li, siz daha 莽ox istifad蓹 kimi y谋臒谋n, 艧眉bh蓹siz ki, pis 艧eyl蓹r ba艧 ver蓹 bil蓹r.
V蓹 h蓹qiq蓹t蓹n, biz vadar ed蓹 bil蓹r q蓹sd蓹n v蓹 ya bilm蓹d蓹n.
Son cliffhanger bel蓹 vaxt bu proqram idi,
h蓹r hans谋 bir funksional xidm蓹t olmayan n眉mayi艧 ba艧qa m蓹qs蓹di
nec蓹 bir pis o臒lan h蓹qiq蓹t蓹n ed蓹 bil蓹rsiniz kimi kimins蓹 proqram hatalar谋 眉st眉nl眉y眉
v蓹 h蓹tta bir proqram v蓹 ya 眉z蓹rind蓹 b眉t眉n komp眉ter sistemi v蓹 ya server.
Bel蓹 ki, yaln谋z bax谋艧da q谋sa, siz蓹 alt谋ndak谋 蓹sas f蓹rq
command line edir argv kimi d蓹lill蓹ri.
V蓹 bir funksiyas谋 f z蓹ng var, mahiyy蓹tc蓹 ads谋z funksiyas谋 adlan谋r
f, v蓹 argv ke莽蓹n [1].
>> Bel蓹 ki, ild蓹 n蓹 s枚z istifad蓹莽i n枚vl蓹ri Bu proqram谋n ad谋na tez,
v蓹 sonra bu ixtiyari funksiyas谋 top, f, simli, AKA char *
biz m眉zakir蓹 ba艧lay谋b etdiyiniz kimi, v蓹 yaln谋z "bar." 莽a臒谋r谋r
Amma biz bir 艧ey z蓹ng ed蓹 bil蓹r.
V蓹 sonra daxili, elan f, simvol bir s谋ra
12 bel蓹 simvol ace 莽a臒谋r谋b.
>> 陌ndi, hekay蓹 I izah edildi bir an 蓹vv蓹l oldu臒u yadda艧
c, v蓹 ya o 12 var ba艧a gedir Sand谋q谋?
Just ayd谋n olmal谋d谋r.
B蓹li?
>> Auditoriya: y谋臒谋n谋 On.
>> DAVID J. MALAN: y谋臒谋n谋 On.
Bel蓹 ki, c yerli d蓹yi艧ir.
Biz 12 chars v蓹 ya 12 bytes 眉莽眉n xahi艧 edirik.
O q蓹d蓹r ba艧a gedir s枚zd蓹 y谋臒谋n谋.
陌ndi n蓹hay蓹t bu dig蓹r funksiyas谋 ki, h蓹qiq蓹t蓹n olduqca faydal谋
lakin biz, h蓹qiq蓹t蓹n, istifad蓹 etdiyiniz 枚z眉m眉z眉, strncopy.
Bu string sur蓹ti dem蓹kdir, lakin yaln谋z m蓹ktublar, n simvol n.
Bel蓹 ki, n simvol olacaq c daxil bar kopyalan谋r.
V蓹 n蓹 q蓹d蓹r?
Bar uzunlu臒u.
Bel蓹 ki, ba艧qa s枚zl蓹, ki, bir line, strncopy,
sur蓹ti gedir s蓹m蓹r蓹li c 眉莽眉n bar.
>> 陌ndi, yaln谋z c眉r tahmin Bu hekay蓹 m蓹n蓹vi,
n蓹 burada potensial problemli?
Biz uzunlu臒u kontrol edirik baxmayaraq bar v蓹 strncopy onu ke莽蓹n,
n蓹 ba臒谋rsaq siz izah h蓹l蓹 bu proqram haqq谋nda s谋n谋q?
B蓹li?
>> Auditoriya: daxil deyil null xarakter 眉莽眉n otaq.
DAVID J. MALAN: daxil deyil null xarakter 眉莽眉n otaq.
Potensial f蓹rqli olaraq ke莽mi艧 t蓹cr眉b蓹 biz h蓹tta deyil
bir plus 1 q蓹d蓹r ki, null xarakter yerl蓹艧dirm蓹k.
Amma daha da pis deyil.
Ba艧qa Biz n蓹 u臒ursuz?
B蓹li?
>> Auditoriya: [i艧itilemez]
DAVID J. MALAN: Perfect.
Biz a臒谋r olduqca 枚zba艧谋na 12 kodlu etdik.
Ki, 莽ox deyil problem, lakin fakt
biz h蓹tta 蓹g蓹r yoxlan谋lmas谋 deyilik ki, bar uzunlu臒u az 12
bu halda olacaq yadda艧 onu qoymaq 眉莽眉n t蓹hl眉k蓹siz
Biz t蓹sis etdik ki, deyil蓹n c.
H蓹qiq蓹t蓹n, bar kimi, 蓹g蓹r Uzun 20 simvol,
bu funksiya 莽谋xarmaq 眉莽眉n g枚r眉n眉r Bununla c daxil bar, 20 simvol
蓹n az谋 8 bayt alaraq Bu olmamal谋d谋r.
Ki, burada dolay谋s谋 var.
>> Q谋sa, broken proqram,.
B枚y眉k bel蓹 deyil.
B蓹lk蓹 bir seqmentasiya g眉nah almaq.
Biz b眉t眉n proqramlar bugs etdik.
Biz b眉t眉n hatalar谋 ola bil蓹r indi proqramlar谋nda.
Lakin dolay谋s谋 n蓹 var?
Yax艧谋, burada bir zoomed-in versiyas谋 var m蓹nim komp眉ter yadda艧 艧蓹kil.
Bu, m蓹nim y谋臒谋n谋 alt edir.
V蓹 h蓹qiq蓹t蓹n, 莽ox alt谋nda var n蓹 adl谋 valideyn g眉nd蓹lik y谋臒谋n谋, x眉lya yolu
ki, 蓹sas dey蓹r蓹k.
Funksiyas谋 adlan谋r kim ki s枚hb蓹t edirik ki, f.
Bel蓹 ki, bu y谋臒谋n谋 alt edir.
Return 眉nvan谋 yeni bir 艧eydir.
O, h蓹mi艧蓹, olub h蓹mi艧蓹 艧蓹kil olmu艧dur.
Biz buna diqq蓹t adlanan he莽 vaxt.
Bu 莽谋x谋r, 莽眉nki c i艧l蓹ri yoldur bir funksiyas谋 ba艧qa 莽a臒谋r谋r ki,
yaln谋z ki arqumentl蓹r n蓹 funksiyas谋 y谋臒谋n谋 眉z蓹rin蓹 s枚vq almaq,
yaln谋z funksiyas谋 yerli yoxdur d蓹yi艧蓹nl蓹r y谋臒谋n谋 眉z蓹rin蓹 s枚vq almaq,
bir 艧ey return address adl谋 h蓹m莽inin y谋臒谋n谋 眉z蓹rin蓹 qoymaq olur.
X眉susil蓹, 蓹sas z蓹ngl蓹ri foo, 蓹sas Agentliyi yadda艧 枚z 眉nvan谋, 枚k眉z bir 艧ey,
s蓹m蓹r蓹li y谋臒谋n谋 眉z蓹rin蓹 qoymaq olur ki, f icra edilir zaman
m蓹tn geri jump bilir h蓹yata davam etm蓹k 眉莽眉n seqment.
>> Biz konseptual burada oldu臒unuz Bel蓹 ki, 蓹sas, onda f adl谋 olur.
F bilir nec蓹 kim geri 蓹l n蓹zar蓹t?
B蓹li, bu ki莽ik Burada q谋rm谋z谋 hier,
qaytar谋lmas谋 眉nvan adl谋, yaln谋z 莽ek ki, return address n蓹dir?
Oh, m蓹n蓹 burada 蓹sas geri jump ed蓹k.
V蓹 bir az var bir oversimplification,
Bu adet s谋f谋r v蓹 olanlar谋 莽眉nki 蓹sas 眉莽眉n texniki,
burada texnologiya seqmentind蓹 up.
Amma bu fikir var. f yaln谋z n蓹 bilm蓹k var
harada n蓹zar蓹t n蓹tic蓹d蓹 geri gedir.
>> Amma yol komp眉ter uzun 艧eyi qoydu
yerli d蓹yi艧蓹nl蓹rin kimi v蓹 arqumentl蓹r bu kimi.
Bu 艧蓹kil 眉st Bel蓹 ki, mavi bel蓹 ki, b眉t眉n, f y谋臒谋n谋 莽蓹r莽iv蓹sind蓹 deyil
yadda艧 ki, f x眉susi istifad蓹 edir.
Bel蓹 ki, buna g枚r蓹 qeyd bar bu 艧蓹kil.
Bar onun d蓹lil idi.
V蓹 biz iddia m眉bahis蓹l蓹r ki, funksiyalar谋 y谋臒谋n谋 眉z蓹rin蓹 s枚vq almaq.
V蓹 c, 蓹lb蓹tt蓹, bu 艧蓹kil.
>> V蓹 yaln谋z notational m蓹qs蓹dl蓹ri 眉莽眉n, sol 眉st k眉nc眉nd蓹 bildiri艧
bracket 0 c n蓹 olard谋 v蓹 sonra y眉ng眉l sol a艧a臒谋
c bracket 11.
Bel蓹 ki, ba艧qa s枚zl蓹, siz t蓹s蓹vv眉r ed蓹 bil蓹rsiniz bayt grid var ki,
orada ilk olan sol 眉st, alt olan
Bu 12 bayt son deyil.
>> Amma indi ir蓹li s眉r蓹tli 眉莽眉n c蓹hd edin.
Biz n蓹 ke莽m蓹k 蓹g蓹r n蓹 haqq谋nda c art谋q ki, bir string bar?
V蓹 biz 蓹g蓹r yoxlan谋lmas谋 deyilik h蓹qiq蓹t蓹n art谋q 12 daha var.
Bu 艧蓹kil hiss蓹si gedir bayt 0, 1, 2, 3 眉zerine almaq,
dot dot dot, 11, v蓹 sonra pis, 12, 19 13?
Bundan 蓹lav蓹, burada n蓹 olacaq Siz sifari艧 n蓹tic蓹 莽谋xarmaq 蓹g蓹r
c bracket 0 眉st edir v蓹 c bracket 11 a艧a臒谋 sort edir
do臒ru?
B蓹li?
>> Auditoriya: B蓹li, bu gedir char * bar yazmaq.
>> DAVID J. MALAN: B蓹li, bu kimi g枚r眉n眉r Siz char * bar 眉zerine olacaq.
V蓹 pis bir h蓹qiq蓹t蓹n uzun g枚nd蓹rm蓹k 蓹g蓹r simli, h蓹tta n蓹 眉zerine bil蓹r?
Qaytar谋lmas谋 眉nvan谋.
Hans谋 daha, yaln谋z bir kimi proqram yerl蓹艧ir dem蓹k hier
zaman f geri adlanan edilir.
>> Bel蓹 ki, pis u艧aqlar ad蓹t蓹n n蓹 Onlar bir proqram rast g蓹lm蓹k 蓹g蓹r
Onlar olub maraql谋 oldu臒unu bel蓹 bir 艧蓹kild蓹 istismar, arabas谋
o bil蓹r ki, ki, s蓹hv 眉st眉nl眉y眉,
眉mumiyy蓹tl蓹 onlar deyil Bu do臒ru ilk d蓹f蓹.
Onlar yaln谋z, m蓹s蓹l蓹n, g枚nd蓹rilm蓹si ba艧lamaq, Sizin proqram t蓹sad眉fi strings,
klaviatura olub, v蓹 ya s蓹mimi onlar y蓹qin ki,
bir az proqram yazmaq yaln谋z avtomatik strings yaratmaq,
v蓹 proqram dola艧aca臒谋z M眉xt蓹lif giri艧 莽ox g枚nd蓹rilm蓹si
m眉xt蓹lif uzunluqlu da.
>> Tez proqram q蓹zalar谋 kimi, ki, bir g枚z蓹l 艧ey var.
Bu o dem蓹kdir v蓹 ya o a艧kar etmi艧dir
hans谋 h蓹qiq蓹t蓹n y蓹qin ki, bir s蓹hv.
V蓹 sonra onlar daha a臒谋ll谋 蓹ld蓹 ed蓹 bil蓹rsiniz v蓹 ba艧lamaq daha dar diqq蓹t
ki, s蓹hv istifad蓹 etm蓹k nec蓹.
X眉susil蓹, n蓹 o bil蓹r n蓹 hello, 蓹n yax艧谋 halda, g枚nd蓹r.
No b枚y眉k.
Bu kifay蓹t q蓹d蓹r q谋sa bir simli var.
Amma n蓹 o g枚nd蓹rir 蓹g蓹r, v蓹 biz bunu kimi 眉mumil蓹艧dirm蓹k laz谋md谋r
h眉cum s谋f谋r bel蓹 kod v蓹 olanlar谋 艧eyi
rm-rf kimi, h蓹r 艧ey aradan qald谋r谋lmas谋 sabit v蓹 ya spam g枚nd蓹rm蓹k
v蓹 ya birt蓹h蓹r ma艧谋n h眉cum?
>> Bu h蓹r Bel蓹 ki, 蓹g蓹r m蓹ktublar A yaln谋z t蓹msil
konseptual, h眉cum, h眉cum, h眉cum, h眉cum, b蓹zi pis kodu
ba艧qas谋 yazd谋 ki, ancaq h蓹min 艧蓹xs kifay蓹t q蓹d蓹r a臒谋ll谋 deyil,
yaln谋z b眉t眉n daxil o rm-RFS, h蓹m d蓹
onun son bir ne莽蓹 bayt uy臒un ki, bir s谋ra ola
眉nvan谋na onun v蓹 ya 枚z h眉cum kodu
o yaln谋z ke莽di tez onu ver蓹r蓹k,
Siz s蓹m蓹r蓹li komp眉ter bezemek bil蓹r f icra edilir zaman hiss daxil,
oh, m蓹n蓹 tullanmaq 眉莽眉n vaxt var geri q谋rm谋z谋 qaytar谋lmas谋 眉nvan 眉莽眉n.
Amma o el蓹, 莽眉nki ki, geri 眉nvan overlapped
枚z say谋 il蓹, v蓹 onlar kifay蓹t q蓹d蓹r a臒谋ll谋 oldu臒unuz
yap谋land谋r谋lm谋艧 var s谋ra sizin kimi, istinad
super 眉st g枚r蓹c蓹ksiniz orada sol k眉nc眉nd蓹,
komp眉ter-ci ild蓹 faktiki 眉nvan谋 h眉cum kodu b蓹zi yadda艧,
pis o臒lan komp眉ter bezemek bil蓹r 枚z kodu icra daxil.
>> V蓹 code yen蓹, bir 艧ey ola bil蓹r.
Bu, 眉mumiyy蓹tl蓹 deyirl蓹r yaln谋z olan shell kodu,
bu deyil ki, bir yol rm-rf kimi sad蓹 眉mumiyy蓹tl蓹 bir 艧ey.
Bu, h蓹qiq蓹t蓹n Bash kimi bir 艧ey var v蓹 ya faktiki proqram谋nda onu verir ki,
v蓹 ya onun proqram n蓹zar蓹t icra onlar ist蓹yir蓹m ki, ba艧qa bir 艧ey.
Bel蓹 ki, q谋sa, bu, b眉t眉n sad蓹 fakt ir蓹li g蓹lir
m蓹艧臒ul bu s蓹hv yoxlan谋lmas谋 deyil ki, Sizin serial谋n s蓹rh蓹dl蓹ri.
V蓹 yolu 莽眉nki komp眉ter i艧 ki, onlar
olan y谋臒谋n谋 istifad蓹 s蓹m蓹r蓹li, konseptual,
up alt, lakin sonra elementl蓹ri Siz 眉st a艧a臒谋 inki艧af y谋臒谋n谋 眉z蓹rin蓹 basmaq
Bu olduqca problemlidir.
陌ndi, bu ke莽ici yollar var.
V蓹 s蓹mimi, dil var olan bu ke莽ici.
Java, m蓹s蓹l蓹n, immun edir bu m枚vzuda.
Onlar g枚st蓹ricil蓹rin蓹 vermir, 莽眉nki.
Onlar vermir birba艧a yadda艧 眉nvanlar谋.
Biz bu g眉c眉 il蓹 bel蓹 yadda艧 bir 艧ey toxunmaq
Biz etiraf, b枚y眉k risk, g蓹lir ist蓹yir蓹m.
>> Bel蓹 ki, bir g枚z saxlamaq.
S蓹mimi, 蓹g蓹r ay v蓹 ya il zaman g蓹lib
b蓹zi istismar haqq谋nda oxumaq proqram谋n v蓹 ya server,
茝g蓹r bir 艧ey bir i艧ar蓹 g枚r眉rs眉n眉zs蓹 bufer da艧q谋n h眉cum kimi,
v蓹 ya y谋臒谋n da艧q谋n bir n枚v眉 h眉cum, ruhda ox艧ar,
veb nin ruhland谋r谋r q蓹d蓹r Siz bunu 蓹g蓹r, ad谋n谋,
b眉t眉n yaln谋z s枚hb蓹t bir xarakter 枚l莽眉s眉 co艧臒un
array v蓹 ya daha 莽ox, 眉mumiyy蓹tl蓹, b蓹zi array.
Bu sonra h蓹r hans谋 bir sual谋n谋z,?
Evd蓹 c蓹hd etm蓹yin.
>> B眉t眉n h眉quqlar.
Bel蓹 ki, malloc g眉n蓹 q蓹d蓹r yeni olmu艧dur biz yadda艧 ay谋ra bil蓹r ki dost
biz m眉tl蓹q bilmir蓹m ki, biz bel蓹 biz ist蓹mirik ki, inki艧af
daxil a臒谋r kodu bizim 12 kimi proqram n枚mr蓹l蓹ri.
Istifad蓹莽i biz蓹 n蓹 q蓹d蓹r izah edir o daxil ist蓹yir data,
biz 莽ox yadda艧 malloc bil蓹r.
>> Bel蓹 ki, malloc bu 眉莽眉n 莽谋x谋r biz istifad蓹 etdik d蓹r蓹c蓹d蓹,
ayd谋n son d蓹f蓹 v蓹 sonra Siz u艧aqlar istifad蓹 edilmi艧dir
眉莽眉n bilm蓹y蓹r蓹k GetString bir ne莽蓹 h蓹ft蓹, malloc yadda艧 b眉t眉n
qondarma y谋臒谋n g蓹lir.
V蓹 bu, m蓹s蓹l蓹n, niy蓹 GetString edir dinamik yadda艧 ayr谋lmas谋 bil蓹r
Siz etdiyiniz n蓹 bilm蓹d蓹n 蓹vv蓹lc蓹d蓹n yaz谋n gedir,
ki, yadda艧 geri bir pointer Siz蓹 t蓹qdim, v蓹 yadda艧 sizin saxlamaq 眉莽眉n h蓹l蓹,
h蓹tta yekunlar谋 GetString sonra.
脟眉nki geri sonra b眉t眉n ki, y谋臒谋n谋 daim yuxar谋 v蓹 a艧a臒谋 gedir
yuxar谋 v蓹 a艧a臒谋.
V蓹 tezlikl蓹 gedir kimi a艧a臒谋, h蓹r hans谋 bir yadda艧 dem蓹kdir
istifad蓹 bu funksiya olmal谋d谋r ba艧qa h蓹r k蓹s t蓹r蓹find蓹n istifad蓹 edil蓹 bilm蓹z.
陌ndi zibil d蓹y蓹rl蓹r var.
>> Amma y谋臒谋n burada deyil.
V蓹 malloc ki, haqq谋nda g枚z蓹l n蓹 var malloc burada yadda艧 ay谋r谋r zaman,
Bu 眉莽眉n, t蓹sir deyil y谋臒谋n谋 蓹n hiss蓹si.
V蓹 h蓹r hans谋 bir funksiyas谋 蓹ld蓹 ed蓹 bil蓹rsiniz malloc'd edilmi艧dir ki, yadda艧,
h蓹tta GetString kimi bir funksiyas谋 il蓹, h蓹tta sonra qaytar谋l谋r.
>> 陌ndi, malloc converse pulsuz.
V蓹 h蓹qiq蓹t蓹n, qayda siz q蓹bul ba艧lamaq laz谋md谋r
h蓹r hans谋 bir h蓹r hans谋 bir, malloc istifad蓹 h蓹r zaman 脰z眉n眉z, n蓹hay蓹t, pulsuz istifad蓹 etm蓹lidir
h蓹min g枚st蓹rici.
Biz yaz谋l谋 edilmi艧dir B眉t眉n bu vaxt buggy, bir 莽ox s蓹b蓹bl蓹r蓹 g枚r蓹 arabas谋 kodu.
Amma biri olmu艧dur Bu CS50 kitabxana istifad蓹 ed蓹n
枚z眉 q蓹sd蓹n edir buggy, bu yadda艧 s谋z谋nt谋lar谋.
Siz GetString adl谋 etdik ist蓹nil蓹n vaxt Son bir ne莽蓹 h蓹ft蓹 蓹rzind蓹
Biz 蓹m蓹liyyat xahi艧 edirik sistemi, Linux, yadda艧 眉莽眉n.
V蓹 bir d蓹f蓹 geri he莽 vaxt.
V蓹 bu deyil, , yax艧谋 bir 艧ey t蓹cr眉b蓹.
>> V蓹 Valgrind, biri Pset 4 t蓹qdim tools,
siz蓹 yard谋m haqq谋nda b眉t眉n 陌ndi kimi hatalar谋 tapa bil蓹rsiniz.
Lakin t蓹艧蓹kk眉rl蓹 Pset 4 ehtiyac yoxdur Bu CS50 kitabxana v蓹 ya GetString istifad蓹 etm蓹k.
Bel蓹 ki, yadda艧 il蓹 ba臒l谋 h蓹r hans谋 bir hatalar var n蓹tic蓹d蓹 枚z olacaq.
>> Bel蓹 ki, malloc yaln谋z daha 莽ox Bu m蓹qs蓹dl蓹 rahat.
Biz, h蓹qiq蓹t蓹n, indi h蓹ll ed蓹 bil蓹r 蓹sasl谋 f蓹rqli probleml蓹r,
v蓹 蓹sasl谋 daha probleml蓹ri h蓹ll s蓹m蓹r蓹li h蓹ft蓹 s谋f谋r v蓹di kimi.
Bel蓹 ki, bu, seksual edir data strukturu biz etdik.
And data strukturu t蓹r蓹find蓹n yaln谋z dem蓹k konsepsiyalar谋n谋n yadda艧 yolu
yaln谋z dey蓹r蓹k k蓹nara 莽谋xan bir 艧蓹kild蓹, bu bir char, bir int edir.
Biz birlikd蓹 klaster 艧eyi ba艧laya bil蓹rsiniz.
>> Bel蓹 ki, bir s谋ra bu kimi baxd谋.
V蓹 haqq谋nda bir 蓹sas n蓹 idi array verir ki,
geri-to-geri chunks yadda艧, h蓹r hans谋
eyni tipli olacaq, int, int, int, int, v蓹 ya char, char, char,
char.
Amma bir ne莽蓹 downsides var.
Bu misal 眉莽眉n, 枚l莽眉s眉 alt谋 bir s谋ra.
Siz alt谋 il蓹 bu array doldurun d眉艧眉n蓹k n枚mr蓹l蓹ri v蓹 sonra, n蓹 s蓹b蓹bl蓹r蓹 g枚r蓹,
istifad蓹莽i verm蓹k ist蓹yir Bir yeddinci n枚mr蓹si.
Harada qoymaq bil蓹r蓹m?
>> 茝g蓹r siz h蓹ll n蓹dir y谋臒谋n谋 bir s谋ra yarad谋lm谋艧,
M蓹s蓹l蓹n, yaln谋z h蓹ft蓹 il蓹 biz t蓹qdim ki, iki notation,
daxilind蓹 bir s谋ra kvadrat m枚t蓹riz蓹?
Yax艧谋, siz alt谋 var bu qutular谋 n枚mr蓹l蓹ri.
Sizin instinktl蓹rd蓹n n蓹 ola bil蓹r?
Harada siz onu qoymaq ist蓹yirsiniz?
>> Auditoriya: [i艧itilemez]
>> DAVID J. MALAN: Ba臒谋艧lay谋n?
>> Auditoriya: sonunda qoyun.
>> DAVID J. MALAN: The sonunda qoyun.
Bel蓹 ki, yaln谋z sa臒 眉z蓹rind蓹, Bu qutusuna k蓹narda.
Hans谋 g枚z蓹l ola bil蓹r, lakin olard谋 siz bunu ed蓹 bil蓹rsiniz 莽谋x谋r.
Xahi艧 etdik, 莽眉nki yadda艧 bu y谋臒谋n,
Bu t蓹sad眉f ola bil蓹r b蓹zi dig蓹r d蓹yi艧蓹n istifad蓹 olunur
c蓹mi.
Biz qoydu zaman bel蓹 bir h蓹ft蓹 geri d眉艧眉n眉n v蓹 ya ZAMYLA v蓹 Davin v蓹 Gabe adlar谋 h蓹yata
yadda艧.
Onlar s枚z眉n idi geri geri geri.
Bel蓹likl蓹, biz m眉tl蓹q bilm蓹z ki, n蓹 var etibar
burada m蓹n蓹 istifad蓹 眉莽眉n m枚vcuddur.
>> Bel蓹likl蓹, siz ba艧qa n蓹 ola bil蓹r?
Yax艧谋, bir d蓹f蓹 h蓹yata , 枚l莽眉s眉 yeddi bir s谋ra laz谋md谋r
Yaln谋z bir yarada bil蓹r 枚l莽眉s眉 yeddi array sonra istifad蓹
bir loop v蓹 ya bir m眉dd蓹t loop 眉莽眉n, Yeni array daxil sur蓹ti,
v蓹 sonra el蓹 yaln谋z qurtarmaq Bu array v蓹 ya yaln谋z istifad蓹 dayand谋rmaq.
Amma ki, x眉susil蓹 s蓹m蓹r蓹li deyil.
Bir s枚zl蓹, seriallarda imkan vermir dinamik boyutland谋r.
>> Bel蓹 ki, bir t蓹r蓹fd蓹n siz almaq g枚z蓹l olan t蓹sad眉fi giri艧.
Bu imkan verir, 莽眉nki us 艧eyi par莽ala v蓹 f蓹th kimi,
Biz b眉t眉n olan ikili axtar谋艧, burada ekran haqq谋nda dan谋艧d谋.
Amma bir k眉nc蓹 枚z眉n眉z眉 boya.
Kimi tezlikl蓹 hit Sizin serial谋n sonu,
Bir 莽ox n蓹 var bahal谋 蓹m蓹liyyat
v蓹 kodu bir d蓹st蓹 yazmaq 陌ndi bu problem il蓹 m蓹艧臒ul.
>> Bel蓹 ki, 蓹v蓹zin蓹 biz n蓹 bir 艧ey bir siyah谋s谋n谋 adl谋,
v蓹 ya m眉蓹yy蓹n bir siyah谋s谋n谋 ba臒l谋d谋r?
N蓹 蓹v蓹zin蓹 olan d眉zbucaql谋, geri geri geri geri
biz bir az t蓹rk ki, d眉zbucaql谋 var Onlar谋n aras谋nda rahat durmamak otaq bit?
Baxmayaraq v蓹 bu t蓹rtib etdik 艧蓹kil v蓹 ya bu 艧蓹kil uy臒unla艧d谋r谋lm谋艧
m蓹tnl蓹rin biri burada geri olmaq geri 蓹slind蓹, 莽ox nizaml谋 geri,
o d眉zbucaql谋 biri burada yadda艧 ola bil蓹r.
Onlardan biri burada ola bil蓹r.
Onlardan biri, burada ola bil蓹r Burada, v蓹 s 眉z蓹rind蓹.
>> Amma biz 莽蓹kdi n蓹 varsa bu halda, oxlar
el蓹 bu ke莽id birlikd蓹 d眉zbucaql谋?
H蓹qiq蓹t蓹n, biz texniki g枚rd眉m Ox t蓹c蓹ss眉m.
N蓹 biz son istifad蓹 g眉n, ba艧l谋q alt谋nda,
Ox n眉may蓹nd蓹si?
A pointer, sa臒?
>> B蓹s 蓹g蓹r, 蓹v蓹zin蓹 yaln谋z n枚mr蓹l蓹ri saxlan谋lmas谋,
kimi 9, 17, 22, 26, 34, n蓹 biz saxlan谋l谋r 蓹g蓹r
yaln谋z bir s谋ra deyil, bir pointer H蓹r bir bel蓹 n枚mr蓹sinin yan谋nda?
Bel蓹 ki, 莽ox bir m枚vzu ist蓹yir蓹m par莽a bir d蓹st蓹 vasit蓹sil蓹 iyn蓹,
el蓹 tying 艧eyi birlikd蓹, eyni ed蓹 bil蓹rsiniz
g枚st蓹ricil蓹r kimi biz burada oxlar incarnated,
c眉r birlikd蓹 toxunu艧lu bu f蓹rdi d眉zbucaql谋
s蓹m蓹r蓹li bir pointer istifad蓹 ed蓹r蓹k, h蓹r bir n枚mr蓹 yan谋nda olan
ki, bir n枚vb蓹ti say谋 g枚st蓹rir , 枚z n枚vb蓹sind蓹, b蓹zi n枚vb蓹ti say谋 g枚st蓹rir?
Bel蓹 ki, ba艧qa s枚zl蓹, n蓹 Biz, h蓹qiq蓹t蓹n, ist蓹yirdi
bu kimi bir 艧ey h蓹yata?
Yax艧谋 t蓹蓹ss眉f ki, bu d眉zbucaql谋, 9 il蓹 蓹n az谋 bir, 17, 22,
v蓹 s, bu art谋q bir 蓹d蓹d il蓹 g枚z蓹l meydanlar谋n.
Alt, d眉zbucaql谋 9 a艧a臒谋da, m蓹s蓹l蓹n,
n蓹 t蓹msil olmal谋d谋r bir pointer, 32 bit.
陌ndi h蓹l蓹 h蓹r hans谋 bir veri n枚v眉 x蓹b蓹rdar deyil蓹m C ki, siz yaln谋z bir int verir
lakin bir g枚st蓹rici c蓹mi.
>> Biz ist蓹yirik ki, 蓹g蓹r h蓹ll n蓹 Bu bizim 枚z cavab icad?
B蓹li?
>> Auditoriya: [i艧itilemez]
>> DAVID J. MALAN: Bu n蓹dir?
>> Auditoriya: New qurulu艧u.
>> DAVID J. MALAN: B蓹li, niy蓹 bel蓹 biz yeni bir qurulu艧 yaratmaq deyil,
v蓹 ya C, bir struct?
Biz, 蓹g蓹r q谋sa 蓹vv蓹l structs g枚rd眉m biz t蓹l蓹b蓹 qurulu艧u il蓹 m蓹艧臒ul oldu臒u
bu kimi bir ad v蓹 bir ev idi.
Pset 3 breakout bir b眉t眉n istifad蓹 structs-- GRect v蓹 GOvals d蓹st蓹
Stanford 眉莽眉n yarad谋lm谋艧d谋r ki, birlikd蓹 cluster m蓹lumat.
Bel蓹 ki, n蓹 biz bu ideya 蓹g蓹r A莽ar s枚zl蓹r "typedef" v蓹 "struct,"
v蓹 sonra b蓹zi t蓹l蓹b蓹 x眉susi stuff, v蓹 a艧a臒谋dak谋 bu inki艧af:
typedef struct node v蓹 node edir bir 莽ox 眉mumi informatika
bir data strukturu bir 艧ey m眉dd蓹tli, data strukturunda bir konteyner.
M蓹n iddia A node 眉莽眉n gedir tamamil蓹 sad蓹 bir int n,
v蓹 daha 莽ox cryptically bir az, bu ikinci x蓹tti, struct node * N枚vb蓹ti.
Amma az texniki 艧蓹rtl蓹rl蓹, ikinci line n蓹
q谋vr谋m a艧谋rma daxilind蓹 kod?
B蓹li?
>> Auditoriya: [i艧itilemez]
DAVID J. MALAN: A ba艧qa node g枚st蓹rici.
Bel蓹 ki, etiraf, bir az sirli syntax.
Amma s枚z眉n oxumaq 蓹g蓹r, n枚vb蓹ti d蓹yi艧蓹n ad谋.
Onun data n枚v眉 n蓹dir?
Bu, bu d蓹f蓹 bir az verbose var lakin bu * n枚v眉 struct node var.
Biz bir 艧ey ulduz g枚rd眉m h蓹r hans谋 bir zaman ki, ki, data n枚v眉 bir g枚st蓹rici var dem蓹kdir.
Bel蓹 ki, n枚vb蓹ti y蓹qin edir bir struct node g枚st蓹rici.
>> 陌ndi, bir struct node n蓹dir?
B蓹li, siz o g枚rm蓹k bildiri艧 sa臒 眉st eyni s枚zl蓹ri.
V蓹 h蓹qiq蓹t蓹n, siz d蓹 s枚z眉 A艧a臒谋 burada alt sol "node".
V蓹 bu, h蓹qiq蓹t蓹n, yaln谋z bir rahatl谋臒谋 var.
Bizim t蓹l蓹b蓹 m眉蓹yy蓹n ed蓹k ki, yaln谋z bir d蓹f蓹 s枚z眉 "t蓹l蓹b蓹" var.
V蓹 bir t蓹l蓹b蓹, 莽眉nki obyekt 枚z-枚z眉n蓹 sened deyildi.
T蓹l蓹b蓹 daxilind蓹 he莽 bir 艧ey yoxdur ki, bir t蓹l蓹b蓹 眉莽眉n qeyd etm蓹k laz谋md谋r,
persay.
Ki, sort olacaq real d眉nyada q蓹rib蓹.
>> Amma bir node il蓹 ba臒l谋 siyah谋s谋, biz bir node ist蓹yir蓹m
ox艧ar obyekt sened olmaq.
V蓹 bel蓹 ki, burada d蓹yi艧iklik deyil fark yaln谋z n蓹 q谋vr谋m a艧谋rma daxilind蓹.
Amma biz "node" s枚z眉 蓹lav蓹 眉st habel蓹
alt谋na 蓹lav蓹 蓹v蓹zin蓹 "t蓹l蓹b蓹".
V蓹 bu yaln谋z bir texniki detal bel蓹 ki, yenid蓹n sizin data strukturu
, 枚z-枚z眉n蓹 sened ola bil蓹r ki, node ba艧qa c眉r node qeyd ed蓹 bil蓹rsiniz.
>> Bel蓹 ki, bu son n蓹tic蓹d蓹 n蓹 bizim 眉莽眉n dem蓹k gedir?
Yax艧谋, bir, bu stuff daxili bizim node m蓹zmunu edir.
Burada bu 艧ey, top sa臒, yaln谋z bel蓹
ki, yen蓹 biz 枚z眉m眉z m眉raci蓹t ed蓹 bil蓹rsiniz.
V蓹 sonra outermost stuff, node yeni bir m眉dd蓹tli olsa,
b蓹lk蓹, h蓹l蓹 var t蓹l蓹b蓹 v蓹 n蓹 kimi eyni
SPL ba艧l谋q alt谋nda idi.
>> Bel蓹likl蓹, biz indi ba艧lamaq ist蓹yirdi bu ba臒l谋 siyah谋 h蓹yata ke莽irilm蓹si,
biz nec蓹 t蓹rc眉m蓹 bil蓹r bu kimi bir 艧ey kod?
Yax艧谋, yaln谋z bir g枚r蓹k bir proqram n眉mun蓹si
h蓹qiq蓹t蓹n ba臒l谋 siyah谋s谋n谋 istifad蓹 edir.
Bug眉nk眉 distribution kodu aras谋nda List Zero adl谋 bir proqramd谋r.
M蓹n bu run 蓹g蓹r v蓹 m蓹n bir super yarad谋lm谋艧d谋r sad蓹 GUI, qrafik istifad蓹莽i interfeys,
lakin bu, h蓹qiq蓹t蓹n, yaln谋z printf edir.
V蓹 indi 枚z眉m眉 bir ne莽蓹 menyu t蓹qdim etdik Se莽iml蓹r Sil, Insert, Axtar谋艧,
v蓹 Traverse.
V蓹 莽谋x谋n.
Bu yaln谋z 眉mumi 蓹m蓹liyyatlar bir link siyah谋s谋 kimi tan谋nan data strukturu.
>> 陌ndi gedir sil siyah谋dan n枚mr蓹ni silm蓹k.
Daxil 蓹lav蓹 olacaq Siyah谋ya n枚mr蓹si.
Axtar baxmaq niyy蓹tind蓹dir Siyah谋da say谋.
V蓹 traverse bir x眉lya yoludur dey蓹r蓹k, siyah谋da vasit蓹sil蓹 g蓹zm蓹k,
莽ap, lakin bu.
H蓹r hans谋 bir 艧蓹kild蓹 d蓹yi艧iklik yoxdur.
>> Bel蓹 ki, bu c蓹hd ed蓹k.
Nin ir蓹li getm蓹k v蓹 2 yaz谋n ed蓹k.
V蓹 sonra m蓹n gedir蓹m say谋 daxil, 9 deyirl蓹r.
Daxil edin.
陌ndi m蓹nim proqram yaln谋z dem蓹k proqramla艧d谋r谋lm谋艧 siyah谋s谋 indi 9.
陌ndi m蓹n ir蓹li getm蓹k 蓹g蓹r v蓹 daha daxil yoxdur, qoy
M蓹n蓹 ir蓹li getm蓹k v蓹 h蓹yata zoom v蓹 17 yaz谋n.
陌ndi m蓹nim siyah谋s谋 sonra, 17 9.
M蓹n yen蓹 daxil 蓹g蓹r, birin蓹 ke莽m蓹k bildirin.
茝v蓹zind蓹 22, 艧蓹kil kimi biz Burada baxaraq, m蓹n蓹 ir蓹li jump ed蓹k
v蓹 n枚vb蓹ti 26 daxil edin.
M蓹n 26 yaz谋n gedir蓹m.
I g枚zl蓹m蓹k kimi siyah谋s谋.
Amma indi, yaln谋z bu kodu g枚rmek 眉莽眉n 莽evik olacaq, indi m蓹n蓹 bildirin
tipli 22 az谋 konseptual, biz 蓹g蓹r
Bu, h蓹qiq蓹t蓹n olan s谋ralan谋r saxlan谋lmas谋 indi ba艧qa qol olacaq,
17 v蓹 26 aras谋nda getm蓹lidir.
M蓹n Enter d眉ym蓹sini bas谋n.
H蓹qiq蓹t蓹n ki, i艧l蓹yir.
V蓹 indi m蓹n蓹 daxil ed蓹k son 艧蓹kil 34 per.
>> B眉t眉n h眉quqlar.
Bel蓹 ki, indi 眉莽眉n m蓹n蓹 m眉蓹yy蓹n ed蓹k Sil v蓹 Traverse v蓹 axtar谋艧 ed蓹,
蓹slind蓹 i艧.
M蓹n Axtar谋艧 run 蓹g蓹r 茝slind蓹, ed蓹k daxil edin, say谋 22 眉莽眉n axtar谋艧.
Bu 22 tap谋ld谋.
Bel蓹 ki, n蓹 bu proqram siyah谋s谋 Zero yoxdur.
>> Amma 蓹slind蓹 n蓹 gedir ki, bu h蓹yata ke莽irir?
B蓹li, ilk m蓹n, h蓹qiq蓹t蓹n bil蓹r Bir fayl list0.h adl谋, var.
V蓹 bu var, haradasa line, typedef struct node,
sonra m蓹n q谋vr谋m a艧谋rma var n int v蓹 sonra m眉蓹yy蓹n n蓹 struct--?
Struct node n枚vb蓹ti.
Bel蓹likl蓹, biz ulduz laz谋md谋r.
陌ndi texniki biz n蓹z蓹r蓹 almaq burada r蓹sm v蓹rdi艧.
Siz d蓹rslikl蓹r g枚rm蓹k bil蓹r v蓹 online istinadlar var bunu.
Bu funksional ekvivalent deyil.
茝slind蓹, bu bir az daha s蓹ciyy蓹vidir.
Amma n蓹 uy臒un olacaq Biz ke莽蓹n d蓹f蓹 idi v蓹 bunu.
V蓹 sonra n蓹hay蓹t, m蓹n bunu gedir蓹m.
>> Bir header fayl So haradasa, list0.h da
Bu g眉n struct m眉蓹yy蓹n edir, v蓹 b蓹lk蓹 b蓹zi dig蓹r stuff.
Eyni zamanda list0c var, bir ne莽蓹 艧ey olacaq.
Amma biz olacaq yaln谋z ba艧lamaq v蓹 bitirm蓹k deyil.
List0.h ist蓹yir蓹m fayl M蓹nim C fayl daxil.
V蓹 sonra bir n枚qt蓹d蓹 m蓹n deyil蓹m 蓹sas, int l蓹臒v etm蓹k niyy蓹tind蓹dir.
V蓹 sonra m蓹n gedir蓹m to-do b蓹zi burada var.
M蓹n d蓹 gedir蓹m prototip, etibars谋z, axtar谋艧, int kimi,
n, h蓹yat onun m蓹qs蓹di bir element axtarmaq 眉莽眉n.
V蓹 sonra a艧a臒谋 burada m蓹n iddia bug眉nk眉 kodu, etibars谋z, axtar谋艧, int, n,
He莽 bir n枚qt蓹li verg眉l a莽谋q q谋vr谋m a艧谋rma.
陌ndi m蓹n birt蓹h蓹r axtar谋艧 etm蓹k ist蓹yirsinizs蓹 Bu siyah谋da bir element 眉莽眉n.
Amma biz kifay蓹t q蓹d蓹r yoxdur h蓹l蓹 ekranda m蓹lumat.
M蓹n, h蓹qiq蓹t蓹n, siyah谋s谋n谋 枚z眉 t蓹msil etmi艧dir.
Bel蓹 bir yolu biz h蓹yata bil蓹r bir proqram bir ba臒l谋 siyah谋
I n枚v bir 艧ey ist蓹yir蓹m kimi burada siyah谋s谋n谋 ba臒l谋d谋r dey蓹c蓹y蓹m.
Sad蓹lik 眉莽眉n, m蓹n gedir蓹m Bu h蓹tta 眉mumi biz baxmayaraq, qlobal
Bu 莽ox laz谋m deyil.
Lakin bu n眉mun蓹 sad蓹l蓹艧dirm蓹k olacaq.
M蓹n b蓹yan etm蓹k ist蓹yir蓹m Burada bir ba臒l谋 siyah谋 up.
陌ndi, m蓹n nec蓹 ed蓹 bil蓹rik?
>> Burada bir ba臒l谋 siyah谋 艧蓹kil var.
M蓹n, h蓹qiq蓹t蓹n, yoxdur nec蓹 bu anda bilirsinizmi
M蓹n haqq谋nda getm蓹k 眉莽眉n gedir蓹m yaln谋z biri il蓹 莽ox 艧ey
yadda艧 d蓹yi艧蓹n.
Amma geri bir an d眉艧眉n眉r蓹m.
Biz etdik b眉t眉n bu vaxt strings, sonra biz
Diziler olmas谋 a艧kar simvol, sonra biz
yaln谋z bir g枚st蓹rici ortaya ilk xarakteri
simvol bir s谋ra ki, null l蓹臒v edir.
Ki m蓹ntiq, v蓹 bu il蓹 fikir 蓹kin 艧蓹kil c眉r,
biz, h蓹qiq蓹t蓹n, n蓹 yazmaq laz谋md谋r bizim kodu bir ba臒l谋 siyah谋 t蓹msil?
N蓹 q蓹d蓹r bu informasiya biz laz谋md谋r C kodu tutmaq, siz dey蓹c蓹ksiniz?
B蓹li?
>> Auditoriya: Biz bir node bir g枚st蓹rici laz谋md谋r.
DAVID J. MALAN: a node bir g枚st蓹rici.
X眉susil蓹, olan node sizin ki instinktl蓹rd蓹n bir pointer saxlamaq 眉莽眉n olacaq?
>> Auditoriya: 陌lk node.
>> DAVID J. MALAN: B蓹li, y蓹qin ki, yaln谋z ilk.
V蓹 ilk bildiri艧 node m眉xt蓹lif formal谋 edir.
Bu struct yaln谋z yar谋s谋 枚l莽眉s眉 var, 莽眉nki h蓹qiq蓹t蓹n yaln谋z bir g枚st蓹rici var.
Bel蓹likl蓹, siz h蓹qiq蓹t蓹n ed蓹 bil蓹rsiniz n蓹 b蓹yan edir bir ba臒l谋 siyah谋 * node olmaq.
V蓹 yaln谋z ilk z蓹ng ed蓹k v蓹 null ba艧lamaq.
Bel蓹 ki, null, yen蓹 g蓹lir burada 艧蓹kil.
Yaln谋z null x眉susi kimi istifad蓹 olunur GetString kimi 艧eyl蓹r 眉莽眉n qaytar谋lmas谋 d蓹y蓹ri
v蓹 malloc, null d蓹 s谋f谋r pointer, bir g枚st蓹rici olmamas谋,
Siz.
Bu, yaln谋z he莽 bir 艧ey h蓹l蓹 burada dem蓹kdir.
陌ndi ilk m蓹n var bil蓹r bu bir 艧ey deyil蓹n.
I "siyah谋s谋" adl谋 ola bil蓹r v蓹 ya ba艧qa 艧eyl蓹r h蓹r hans谋 bir say谋.
Amma ki, "ilk" z蓹ng al谋ram bu 艧蓹kil il蓹 x蓹tl蓹ri up.
Bel蓹 ki, yaln谋z bir string kimi t蓹msil oluna bil蓹r ilk byte 眉nvan谋 il蓹,
bel蓹 bir ba臒l谋 siyah谋 bil蓹rsiniz.
V蓹 biz dig蓹r m蓹lumatlar g枚r蓹c蓹ksiniz strukturlar谋 t蓹msil olunacaq
yaln谋z bir g枚st蓹rici il蓹, 32-bit arrow i艧ar蓹
strukturunda ilk node.
>> Amma indi bir problem tahmin imkan verir.
M蓹n yaln谋z xat谋rlayaraq al谋ram 蓹g蓹r m蓹nim proqram 眉nvan谋n谋
ilk node, ilk Bu data strukturu d眉zbucaql谋,
daha yax艧谋 idi 蓹laq蓹dar i艧i ola n蓹 M蓹nim siyah谋s谋 istirah蓹t h蓹yata ke莽irilm蓹si?
Olacaq ki, 蓹sas 蓹trafl谋 n蓹dir Bu h蓹qiq蓹t蓹n i艧l蓹yir t蓹min etm蓹k 眉莽眉n?
V蓹 m蓹n "h蓹qiq蓹t蓹n i艧l蓹yir" 莽ox bir string kimi dem蓹k,
us ilk xarakter getm蓹k imkan verir ikinci Davin ad谋,
眉莽眉nc眉 etm蓹k, d枚rd眉nc眉, 莽ox sonuna,
biz sonunda oldu臒unuzda biz bilirik n蓹 bu kimi g枚r眉n眉r ki, bir ba臒l谋 siyah谋?
Zaman null var.
V蓹 m蓹n bu c眉r t蓹msil etdik elektrik m眉h蓹ndisi g眉c眉 kimi,
ki莽ik torpaqlama il蓹 simvolu n枚v.
Amma yaln谋z bu halda null dem蓹kdir.
Siz h蓹r hans谋 bir say谋 c蓹lb ed蓹 bil蓹r yollar谋, lakin bu m眉蓹llif
Burada bu simvolu istifad蓹 etm蓹k oldu.
>> Biz stringing etdiyiniz kimi Bel蓹 ki, uzun birlikd蓹 bu qov艧aqlar谋n谋n b眉t眉n,
yaln谋z xat谋rlayaraq ilk, bel蓹 uzun
biz x眉susi simvolu qoymaq kimi Siyah谋da son node,
ki, 莽眉nki biz null istifad蓹 ed蓹c蓹yik Biz蓹 m枚vcud n蓹 biz,
Bu siyah谋 tam deyil.
V蓹 h蓹tta m蓹n yaln谋z 蓹g蓹r bir pointer verm蓹k ilk element, siz proqram莽谋,
蓹lb蓹tt蓹 ki, istirah蓹t ed蓹 bil蓹rsiniz.
Amma a臒谋l ed蓹k bir az gezmek,
onlar art谋q de臒ilseniz olduqca n蓹 wandered--
莽al谋艧an zaman olacaq Bu siyah谋da bir 艧ey tapmaq?
L蓹n蓹tl蓹m蓹k, bu n b枚y眉k O, olan 蓹dal蓹t, pis deyil.
Amma bu x蓹tti var.
Biz n蓹 x眉susiyy蓹t verilir daha h蓹r蓹k蓹t seriallar谋n
dinamik bu 艧蓹kil do臒ru birlikd蓹 toxunmu艧 v蓹 ya qov艧aqlar谋n谋n ba臒l谋d谋r?
Biz t蓹sad眉fi giri艧 imtina etdik.
Bir s谋ra 莽眉nki g枚z蓹l riyazi h蓹r 艧ey
geri geri geri geri.
H蓹tta bu 艧蓹kil olsa yara艧谋ql谋 g枚r眉n眉r, v蓹 h蓹tta
Bu qov艧aqlar谋n谋n kimi g枚r眉n眉r olsa q蓹艧蓹ng 蓹slind蓹, ayr谋 da臒谋t谋l谋r
onlar h蓹r yerd蓹 ola bil蓹r.
OX1, Ox50, ox123, Ox99, bu qov艧aqlar谋n谋n h蓹r yerd蓹 ola bil蓹r.
Malloc yadda艧 ayr谋lmas谋 莽眉nki y谋臒谋n, ancaq h蓹r hans谋 y谋臒谋n.
Siz m眉tl蓹q bu ki, bilmir蓹m geri olacaq geri geri.
V蓹 reall谋q nin bu 艧蓹kil olduqca bu olduqca olacaq deyil.
>> Bel蓹 ki, bir az almaq olacaq Bu funksiyan谋 h蓹yata 莽al谋艧谋r.
Bel蓹 ki, indi axtar谋艧 h蓹yata bildirin.
V蓹 biz bir c眉r g枚r蓹c蓹ksiniz bunu a臒谋ll谋 yol.
M蓹n bir axtar谋艧 funksiyas谋 am 蓹g蓹r Bel蓹 ki, M蓹n bir d蓹yi艧蓹n, tam n veril蓹n edir蓹m
axtarmaq 眉莽眉n, m蓹n bilm蓹k laz谋md谋r i莽蓹risind蓹 axtar谋r 眉莽眉n yeni sintaksis
ki, bir qurulu艧u , n tapmaq 眉莽眉n i艧ar蓹 etdi.
Bel蓹 ki, bunu ed蓹k.
>> Bel蓹 ki, ilk m蓹n getm蓹k 眉莽眉n gedir蓹m ir蓹li v蓹 * node elan.
M蓹n z蓹ng etm蓹k 眉莽眉n gedir蓹m yaln谋z konvensiya pointer.
M蓹n ilk onu ba艧lamaq 眉莽眉n gedir蓹m.
陌ndi m蓹n bunu ed蓹 bil蓹rsiniz yollarla bir s谋ra.
Amma ortaq yana艧ma gedir蓹m.
Pointer b蓹rab蓹r deyil is蓹 null ki, q眉vv蓹d蓹 olan sintaksis var.
V蓹 yaln谋z bel蓹, a艧a臒谋dak谋 dem蓹kdir uzun he莽 i艧ar蓹 deyilik kimi.
M蓹n n蓹 ist蓹yir蓹m?
>> Pointer dot n, m蓹n蓹 geri g蓹lsin ki, b蓹rab蓹rdir n蓹 b蓹rab蓹rdir?
N蓹 d蓹y蓹ri I axtar谋r am?
Ke莽di ki, faktiki n.
Bel蓹 ki, burada ba艧qa bir x眉susiyy蓹t var C v蓹 莽ox dil.
H蓹tta struktur adlan谋r node baxmayaraq d蓹y蓹ri n, tamamil蓹 qanuni var
H蓹m莽inin yerli arqument var v蓹 ya d蓹yi艧蓹n n 莽a臒谋r谋b.
H蓹tta biz, 莽眉nki insan g枚z眉, ay谋rd ed蓹
Bu n g眉man edir ki, Bu n f蓹rqli.
Sintaksis m眉xt蓹lif 莽眉nki.
Siz bir n枚qt蓹 v蓹 bir g枚st蓹rici var, bu bir halbuki bel蓹 艧ey var.
Bel蓹 ki, bu yax艧谋d谋r.
Ki, eyni 艧eyi onlara z蓹ng etm蓹k 眉莽眉n OK.
>> M蓹n siz蓹 bu tapa bil蓹r蓹m, m蓹n deyil蓹m bir 艧ey etm蓹k ist蓹yir蓹m olacaq
kimi biz n a艧kar ki, elan edir.
V蓹 biz kimi t蓹rk ed蓹c蓹yik 艧蓹rh v蓹 ya pseudocode kodu.
Else, burada var maraql谋 hiss蓹si, n蓹
M蓹n cari node 蓹g蓹r bunu etm蓹k ist蓹yir蓹m M蓹n qay臒谋 n olan deyil?
Nec蓹 a艧a臒谋dak谋 nail edirsiniz?
茝g蓹r m蓹nim barmaq an Ptr v蓹 bu
n蓹 i艧ar蓹 ilk i艧ar蓹 edir
M蓹n barmaq h蓹r蓹k蓹t nec蓹 kod n枚vb蓹ti node?
B蓹li, biz ist蓹yirik hier n蓹 Bu halda izl蓹m蓹k 眉莽眉n gedir?
Auditoriya: [i艧itilemez].
DAVID J. MALAN: B蓹li, bel蓹 g蓹l蓹c蓹k.
M蓹n geri getm蓹k 蓹g蓹r Bel蓹 ki, m蓹nim Burada kodu, h蓹qiq蓹t蓹n, M蓹n
, g枚st蓹rici ir蓹li getm蓹k v蓹 dem蓹k niyy蓹tind蓹 olan bu yaln谋z m眉v蓹qq蓹ti d蓹yi艧蓹n deyil
bir q蓹rib蓹 ad谋, Ptr, lakin yaln谋z temp-- kimi
M蓹n g枚st蓹rici m眉蓹yy蓹n gedir蓹m n蓹 pointer That b蓹rab蓹r
v蓹 yen蓹 bu olacaq n枚vb蓹ti bir anda n枚qt蓹 az arabas谋.
Ba艧qa s枚zl蓹, m蓹n gedir蓹m m蓹nim Bu node i艧ar蓹 barmaq
burada v蓹 m蓹n bilir蓹m, dem蓹k gedir蓹m n蓹 n枚vb蓹ti sah蓹sind蓹 bir n蓹z蓹r
v蓹 barmaq h蓹r蓹k蓹t n蓹 bu i艧ar蓹.
V蓹 bu gedir , t蓹krar, t蓹krar t蓹krar.
Amma zaman m蓹nim barmaq edir he莽 bir 艧ey bunu dayand谋rmaq?
Kimi tezlikl蓹 hans谋 kodu kicks line kimi?
Auditoriya: [i艧itilemez]
DAVID J. MALAN: 茝g蓹r point is蓹 pointer null b蓹rab蓹r deyil.
Bir n枚qt蓹d蓹 m蓹nim barmaq nin null i艧ar蓹 olacaq
v蓹 m蓹n h蓹yata gedir蓹m bu siyah谋n谋n sonu var.
陌ndi, bu bir az Sad蓹lik 眉莽眉n a臒 yalan.
Bel蓹 莽谋x谋r ki, baxmayaraq ki, biz yaln谋z bu dot notation 枚yr蓹nildi
strukturlar谋 眉莽眉n, pointer bir struct deyil.
Ptr n蓹dir?
Just daha nitpicky olacaq.
Bu node bir g枚st蓹rici var.
Bu node 枚z眉 deyil.
M蓹n burada he莽 bir ulduz olsayd谋, pointer absolutely-- bir node var.
Bu h蓹ft蓹 bir kimi d蓹yi艧蓹n elan,
h蓹tta "node" yeni olsa.
>> Amma biz t蓹qdim kimi tezlikl蓹 star, indi bir node bir g枚st蓹rici var.
V蓹 t蓹蓹ss眉f ki, siz istifad蓹 ed蓹 bil蓹rsiniz bir g枚st蓹rici 眉莽眉n dot notation.
Siz arrow istifad蓹 etm蓹k notation olan, 艧蓹f蓹qli,
ilk d蓹f蓹 h蓹r hans谋 bir par莽a sintaksis intuitiv g枚r眉n眉r.
Bu s枚z眉n bir ox kimi g枚r眉n眉r.
V蓹 bel蓹 ki, yax艧谋 bir 艧ey.
V蓹 burada s枚z眉n ox kimi g枚r眉n眉r.
Bel蓹 ki, m蓹n n蓹 la-- hesab M蓹n burada 莽ox t枚r蓹tm蓹kd蓹 edir蓹m m蓹n
son yeni par莽a hesab sintaksis biz g枚rm蓹k olacaq.
V蓹 t蓹艧蓹kk眉rl蓹, bu, h蓹qiq蓹t蓹n var bir az daha asan.
>> 陌ndi sizin 眉莽眉n olan k枚hn蓹 yol 眉st眉nl眉k bil蓹r,
siz h蓹l蓹 d蓹 dot notation istifad蓹 ed蓹 bil蓹rsiniz.
Amma ert蓹si nin ba艧谋na s枚hb蓹t, biz ilk
ki, gedin, orada getm蓹k laz谋md谋r m眉raci蓹t, v蓹 sonra sah蓹y蓹 daxil.
Bel蓹 ki, bu da do臒ru deyil.
V蓹 s蓹mimi, bu, daha x谋rda莽谋 az.
Siz s枚z眉n dey蓹r蓹k edirik, dereference g枚st蓹rici v蓹 orada getm蓹k.
Sonra n qamarlamaq sah蓹sind蓹 n 莽a臒谋r谋b.
Amma s蓹mimi, he莽 bir ist蓹yir yaz谋n v蓹 ya bu oxumaq.
V蓹 bel蓹 ki, d眉nya icad arrow notation olan
, eyni b蓹rab蓹rdir, yaln谋z sintaktik 艧蓹k蓹r var.
Bu dey蓹r蓹k bel蓹 bir x眉lya yolu daha yax艧谋 g枚r眉n眉r, v蓹 ya sad蓹 g枚r眉n眉r.
>> Bel蓹 ki, indi m蓹n ba艧qa bir 艧ey etm蓹k 眉莽眉n gedir蓹m.
M蓹n var bir d蓹f蓹 "fasil蓹" dem蓹k gedir蓹m Bu m蓹n onu axtar谋r saxlamaq yoxdur tapd谋.
Amma bu mahiyy蓹t da艧谋y谋r axtar谋艧 funksiyas谋.
Amma bu, bir 莽ox asand谋r end, kodu vasit蓹sil蓹 g蓹zm蓹k deyil.
Bu, h蓹qiq蓹t蓹n, formal h蓹yata ke莽irilm蓹si bug眉nk眉 distribution kodu axtar谋艧.
M蓹n insert deyil dem蓹k c蓹sar蓹t vasit蓹sil蓹 g蓹zm蓹k 眉莽眉n x眉susil蓹 蓹yl蓹nc蓹
vizual, n蓹 d蓹 h蓹tta, silm蓹k G眉n眉n sonunda olsa
Onlar kifay蓹t q蓹d蓹r a艧a臒谋 qaynatmaq sad蓹 heuristics.
>> Bel蓹 ki, bunu ed蓹k.
Burada yumor m蓹n蓹 laz谋md谋r, m蓹n etdim stress top bir d蓹st蓹 g蓹tirir.
M蓹n 蓹d蓹d bir d蓹st蓹 g蓹tirdi.
V蓹 biz yaln谋z bir ne莽蓹 k枚n眉ll眉 ala bil蓹r 9, 17, 20, 22, 29 v蓹 34 t蓹msil?
Bel蓹 ki, mahiyy蓹tc蓹 h蓹r k蓹s olan g眉n burada var.
Ki, bir, iki, 眉莽 oldu d枚rd, be艧, alt谋 n蓹f蓹r.
V蓹 m蓹n he莽 g枚rm蓹k go-- xahi艧 etdik geri bir 蓹ll蓹rini qald谋r谋r.
OK, bir, iki, 眉莽, d枚rd, five-- ox艧ar alt谋 balance-- y眉k bildirin.
OK, alt谋 q蓹d蓹r g蓹lib.
Biz dig蓹r insanlar laz谋md谋r.
Biz 蓹lav蓹 stress top g蓹tirdi.
V蓹 siz 蓹g蓹r, 眉莽眉n yaln谋z bir an, line
脰z眉n眉z眉 up yaln谋z burada bu 艧蓹kil kimi.
>> B眉t眉n h眉quqlar.
Sizin ad谋n谋z n蓹dir Baxaq?
>> Auditoriya: Andrew.
>> DAVID J. MALAN: Andrew, Siz say谋 9 var.
G枚r眉艧m蓹k Nice.
Burada getm蓹k.
Auditoriya: Jen.
DAVID J. MALAN: Jen.
David.
Say谋 17.
B蓹li?
>> Auditoriya: M蓹n Julia edir蓹m.
>> DAVID J. MALAN: Julia, David.
Say谋 20.
Auditoriya: Christian.
DAVID J. MALAN: Christian, David.
22 n枚mr蓹li.
V蓹?
>> Auditoriya: JP.
DAVID J. MALAN: JP.
29.
Bel蓹 ki, oh Uh ir蓹li getm蓹k v蓹 in-- almaq.
Oh Uh.
Adi.
20.
H蓹r k蓹s bir marker var?
Auditoriya: M蓹n bir Sharpie var.
DAVID J. MALAN: Siz Sharpie var?
OK.
V蓹 h蓹r k蓹s bir par莽a ka臒谋z var?
M蓹ruz蓹 edin.
Hadi.
Auditoriya: Biz bunu var.
DAVID J. MALAN: Biz bunu var?
B眉t眉n sa臒, t蓹艧蓹kk眉r edir蓹m.
Burada biz gedin.
Bu sizin idi?
Siz yaln谋z g眉n saxlan谋l谋r.
Bel蓹 ki, 29.
B眉t眉n h眉quqlar.
M蓹n 29 yanl谋艧, lakin OK.
Durmay谋n.
B眉t眉n h眉quqlar, m蓹n siz蓹 verm蓹k laz谋md谋r Sizin q蓹l蓹m geri anda.
Bel蓹likl蓹, biz burada bu mill蓹t var.
Dig蓹r bir var ed蓹k.
Gabe, siz oynamaq ist蓹yir蓹m Burada ilk element?
Biz qeyd etm蓹k laz谋md谋r Bu g枚z蓹l insanlar da.
Bel蓹 ki, 9, 17, 20, 22, sort 29, sonra 34.
Biz kims蓹 itirm蓹k mi?
M蓹n 34 var.
Harada ist蓹y蓹n did-- OK, 34 olacaq?
OK, 34, q蓹d蓹r g蓹lib.
B眉t眉n h眉quqlar, bu olacaq orgasm d蓹y蓹r.
Sizin ad谋n谋z n蓹dir?
>> Auditoriya: Peter.
>> DAVID J. MALAN: Peter q蓹d蓹r g蓹lib.
B眉t眉n h眉quqlar, bel蓹 ki, burada bir qov艧aqlar谋n谋n b眉t眉n d蓹st蓹.
Sizl蓹rin h蓹r t蓹msil Bu d眉zbucaql谋 biri.
V蓹 Gabe, az t蓹k h蓹yata insan, ilk t蓹msil edir.
Bel蓹 ki, onun g枚st蓹rici bir az ki莽ik h蓹r k蓹s 莽ox ekranda.
V蓹 bu halda, sizin h蓹r sol 蓹ll蓹ri a艧a臒谋 qeyd ya gedir
bununla bel蓹, null t蓹msil yaln谋z bir g枚st蓹rici olmamas谋,
v蓹 ya bu i艧ar蓹 olacaq siz yan谋nda bir node.
>> Bel蓹 ki, indi siz b蓹z蓹m蓹k 蓹g蓹r 艧蓹kil kimi 枚z眉n眉z眉
Burada, ir蓹li getm蓹k v蓹 point Gabe il蓹, bir-birin蓹
x眉susil蓹 i艧ar蓹 ed蓹n say谋 9 siyah谋s谋n谋 t蓹msil etm蓹k.
OK, v蓹 say谋 34, sol 蓹l yaln谋z m蓹rt蓹b蓹sind蓹 i艧ar蓹 etm蓹k laz谋md谋r.
>> OK, bel蓹 ki, bu ba臒l谋 siyah谋 deyil.
Bel蓹 ki, bu m蓹s蓹l蓹d蓹 ssenarisidir.
V蓹 h蓹qiq蓹t蓹n, bu n眉may蓹nd蓹si probleml蓹rin sinif
Siz kodu il蓹 h蓹ll etm蓹k 眉莽眉n c蓹hd ed蓹 bil蓹r ki,.
Siz n蓹tic蓹d蓹 daxil etm蓹k ist蓹yir蓹m siyah谋s谋na yeni element.
Bu halda, biz olacaq say谋 55 daxil edin.
Amma var olacaq m眉xt蓹lif hallarda hesab.
V蓹 h蓹qiq蓹t蓹n, bu bir olacaq b枚y眉k 艧蓹kil burada takeaways deyil,
m眉xt蓹lif hallarda n蓹.
艦蓹rtl蓹r v蓹 ya m眉xt蓹lif hans谋lard谋r proqram ola bil蓹r ki, filial?
>> Yax艧谋, say谋 莽al谋艧d谋臒谋n谋z biz 55 olmaq indi bilirik ki insert,
lakin Bildiyiniz olmasayd谋 蓹vv蓹lc蓹d蓹n, I daresay
蓹n az谋 眉莽 d眉艧眉r m眉mk眉n hallar.
Bir yeni element ola bil蓹r?
Auditoriya: V蓹 son v蓹 ya orta.
DAVID J. MALAN: sonunda da orta, v蓹 ya ba艧谋nda.
M蓹n 蓹n az谋 var t蓹sdiq 眉莽 problem h蓹ll etm蓹k laz谋md谋r.
B蓹lk蓹 n蓹 se莽m蓹k ed蓹k arguably sad蓹
bir, burada yeni element ba艧谋nda m蓹xsusdur.
M蓹n olduqca kod gedir蓹m kimi m蓹n yaln谋z yazd谋臒谋, axtar谋艧.
M蓹n, Ptr 眉莽眉n gedir蓹m olan M蓹n barmaq il蓹 burada t蓹msil ed蓹c蓹yik
adi kimi.
>> V蓹 n蓹 d蓹y蓹ri xat谋rlay谋ram biz Ptr ba艧lamaq idi?
Bel蓹 ki, biz 蓹vv蓹lc蓹 null 眉莽眉n ba艧lat谋lm谋艧.
Amma sonra biz biz bir d蓹f蓹 n蓹 etdi bizim axtar谋艧 funksiyas谋 daxilind蓹 idi?
Biz, ilk b蓹rab蓹r m眉蓹yy蓹n bunu dem蓹k deyil.
M蓹n ilk b蓹rab蓹r Ptr m眉蓹yy蓹n varsa, n蓹 M蓹nim 蓹l h蓹qiq蓹t蓹n i艧ar蓹 olmal谋d谋r?
Right.
Gabe v蓹 gedir, 蓹g蓹r bel蓹 Burada b蓹rab蓹r d蓹y蓹rl蓹r olmaq,
biz 9 n枚mr蓹d蓹 iki n枚qt蓹y蓹 laz谋md谋r.
>> Bel蓹 ki, bu, bizim hekay蓹 ba艧lan臒谋c谋 idi.
陌ndi bu, yaln谋z sad蓹 deyil baxmayaraq sintaksis yeni.
Konseptual bu, yaln谋z x蓹tti axtar谋艧 edir.
9 b蓹rab蓹r 55 edir?
Daha do臒rusu, 9 az dey蓹k.
M蓹n 莽al谋艧谋ram, 莽眉nki 55 qoymaq 眉莽眉n harada 艧ekillendirmek.
9 az az 17, az 20-d蓹n az, 22-d蓹n az 29,
az 34, no.
Bel蓹 ki, indi biz halda etdiyiniz 蓹n az谋 眉莽 bir.
>> M蓹n burada 55 蓹lav蓹 etm蓹k ist蓹yirsinizs蓹, siz蓹 n蓹 kodu ehtiyac x蓹tl蓹ri h蓹yata almaq?
Nec蓹 bu 艧蓹kil yoxdur insanlar d蓹yi艧dirm蓹k laz谋md谋r?
M蓹n sol 蓹li il蓹 n蓹 etm蓹liy蓹m?
Bu, ilkin null olmal谋d谋r M蓹n siyah谋da sonunda Ben 莽眉nki.
V蓹 n蓹 etm蓹lidir Burada Peter, bu idi?
O, a莽谋q-ayd谋n m蓹n蓹 qeyd ed蓹c蓹k.
M蓹n 蓹n az谋 iki x蓹tl蓹ri var t蓹sdiq Bu g眉nd蓹n etibar蓹n 枚rnek kod kodu
bu h蓹yata olacaq quyruq 55 蓹lav蓹 ssenari.
M蓹n kims蓹 hop ola bil蓹r v蓹 yaln谋z 55 t蓹msil edir?
B眉t眉n h眉quqlar, yeni 55.
>> Bel蓹 ki, indi n蓹 n枚vb蓹ti 蓹g蓹r ssenari, birlikd蓹 g蓹lir
v蓹 biz d蓹 daxil etm蓹k ist蓹yir蓹m ba艧layan v蓹 ya bu siyah谋dan r蓹hb蓹ri?
V蓹 ad谋, n枚mr蓹si 55 n蓹 var?
>> Auditoriya: Jack.
>> DAVID J. MALAN: Jack?
OK, siz cavab g枚z蓹l.
Xaricd蓹 xo艧 g蓹lmisiniz.
Bel蓹 ki, indi biz gedirik dem蓹k, say谋 5 daxil edin.
Burada ikinci halda 眉莽, biz 蓹vv蓹l g眉nd蓹m蓹 g蓹ldi.
Bel蓹 ki, 5 蓹vv蓹lind蓹 m蓹xsusdur, biz ki, tapmaq nec蓹 ed蓹k.
M蓹n Ptr ba艧lamaq daha say谋 9 pointer.
M蓹n 5-d蓹n az 9, oh, h蓹yata ke莽irilir.
Bel蓹 ki, bizim 眉莽眉n bu 艧蓹kil d眉zeltmek.
Kimin 蓹ll蓹ri, Gabe v蓹 ya David Agentliyi or-- say谋 9 ad谋 n蓹dir?
>> Auditoriya: Jen.
>> DAVID J. MALAN: Jen 蓹ll蓹ri bizim 蓹limizd蓹 hans谋 d蓹yi艧dirm蓹k laz谋md谋r?
OK, bel蓹 ki, Gabe indi n蓹 i艧ar蓹?
M蓹n蓹.
M蓹n yeni node edir蓹m.
M蓹n h蓹r蓹k蓹t yaln谋z c眉r laz谋md谋r Burada 蓹yani g枚rm蓹k 眉莽眉n.
V蓹 eyni zamanda n蓹 m蓹n ki, qeyd edirsiniz?
H蓹l蓹 d蓹 m蓹n i艧ar蓹 edir蓹m.
Bel蓹 ki, var.
Kodu d眉zeltmelerini Bel蓹 ki, yaln谋z h蓹qiq蓹t蓹n bir x蓹tt Bu m蓹s蓹l蓹, g枚r眉n眉r.
B眉t眉n h眉quqlar, bel蓹 ki, yax艧谋.
V蓹 kims蓹 5 眉莽眉n tutucu ola bil蓹r?
Q蓹d蓹r Hadi.
Biz siz蓹 n枚vb蓹ti d蓹f蓹 almaq laz谋md谋r.
>> B眉t眉n h眉quqlar, bel蓹 now-- v蓹 Bir k蓹nara, adlar谋 kimi
M蓹n sa臒 a莽谋q qeyd ed蓹n deyil蓹m indi proqnozu pointer, s蓹l蓹fi pointer
v蓹 yeni pointer ki, var yaln谋z adlar谋 verilir
g枚st蓹ricil蓹r 眉莽眉n n眉mun蓹 kodu v蓹 ya c眉r 蓹traf谋nda i艧ar蓹 ki, m蓹nim 蓹ll蓹ri.
Sizin ad谋n谋z n蓹dir?
>> Auditoriya: Christine.
>> DAVID J. MALAN: Christine.
Xaricd蓹 xo艧 g蓹lmisiniz.
B眉t眉n h眉quqlar, bel蓹 ki, indi hesab ed蓹k bir az daha annoying ssenari,
M蓹n daxil etm蓹k ist蓹yir蓹m vasit蓹si Bu daxil 26 kimi bir 艧ey.
20?
N蓹?
Bizim bu q蓹l蓹m yax艧谋 艧ey are--.
B眉t眉n sa臒, 20.
Kims蓹 bir par莽a almaq bil蓹r ka臒谋z yaln谋z b眉t眉n sa臒 iki halda da, haz谋r.
Oh, maraql谋.
Yax艧谋 bu bir n眉mun蓹 m眉hazir蓹 s蓹hv.
OK, bel蓹 ki, ad谋 daha n蓹 var?
Auditoriya: Julia.
DAVID J. MALAN: Julia, siz pop bil蓹r h蓹yata v蓹 iddia he莽 vaxt var idi?
OK, bu ba艧 he莽 vaxt.
T蓹艧蓹kk眉r edir蓹m.
Bel蓹likl蓹, biz daxil ist蓹yir蓹m G眉man Bu ba臒l谋 siyah谋 Julia.
O, say谋 20-dir.
V蓹 蓹lb蓹tt蓹 o var Bu da aid olacaq
begin-- h蓹l蓹 bir 艧ey qeyd etmir.
Bel蓹 ki, 蓹l c眉r ola bil蓹r a艧a臒谋 null ya b蓹zi zibil d蓹y蓹ri.
Nin tez hekay蓹 izah ed蓹k.
M蓹n say谋 5 bu d蓹f蓹 i艧ar蓹 edir蓹m.
Sonra 9 yoxlay谋n.
Sonra 17 yoxlay谋n.
Sonra 22 yoxlay谋n.
M蓹n, ooh, Julia h蓹yata 22 蓹vv蓹l getm蓹k laz谋md谋r.
Bel蓹 ki, n蓹 ba艧 verm蓹lidir?
Kimin 蓹ll蓹ri d蓹yi艧dirm蓹k laz谋md谋r?
Julia, mina, or-- ad谋 yen蓹 n蓹 var?
>> Auditoriya: Christian.
>> DAVID J. MALAN: Christian ya?
>> Auditoriya: Andy.
>> DAVID J. MALAN: Andy.
Christian ya Andy?
Andy da qeyd etm蓹k laz谋md谋r?
Julia.
B眉t眉n h眉quqlar.
Bel蓹 ki, Andy, siz Julia da qeyd etm蓹k ist蓹yirsiniz?
Amma bir d蓹qiq蓹 g枚zl蓹yin.
Bu g眉n蓹 q蓹d蓹r hekay蓹, M蓹n bir sort deyil蓹m
m蓹nada m蓹sul ki, pointer olan 艧ey
siyah谋s谋na vasit蓹sil蓹 h蓹r蓹k蓹t.
Biz Andy 眉莽眉n bir ad var, lakin bil蓹r Andy adl谋 d蓹yi艧蓹n var.
Biz yaln谋z dig蓹r d蓹yi艧蓹n ilk Gabe t蓹msil ed蓹n.
>> Bel蓹 ki, bu niy蓹 bel蓹likl蓹 蓹slind蓹 q蓹d蓹r biz bu laz谋m deyil etdik.
Amma indi ekranda var pred g枚st蓹rici daha qeyd.
M蓹n蓹 daha ayd谋n olsun.
Bu g枚st蓹rici, m蓹n daha yax艧谋 idi bir az daha a臒谋ll谋 almaq
M蓹nim iteration haqq谋nda.
Siz m蓹nim burada ke莽ir a臒la deyil yen蓹 burada i艧ar蓹, burada i艧ar蓹.
Amma m蓹n蓹 bir pred g枚st蓹rici ed蓹k, s蓹l蓹fi g枚st蓹rici ki, var
c眉r i艧ar蓹 element M蓹n yaln谋z idi.
M蓹n burada getm蓹k zaman, indi M蓹nim sol yenilikl蓹ri.
M蓹n burada sol yenilikl蓹ri getm蓹k zaman.
V蓹 indi m蓹n bir pointer yaln谋z var Julia sonra gedir ki, element,
M蓹n h蓹l蓹 bir g枚st蓹rici var Andy 蓹vv蓹l element.
Bel蓹 ki, mahiyy蓹tc蓹, imkan谋 var Haritalar谋, Siz,
z蓹ruri g枚st蓹ricil蓹r b眉t眉n.
>> M蓹n i艧ar蓹 edir蓹m 蓹g蓹r bel蓹 Andy v蓹 m蓹n d蓹 i艧ar蓹 edir蓹m
kimin 蓹lind蓹 Xa莽p蓹r蓹st, at indi ba艧qa bir yerd蓹 qeyd edilm蓹lidir?
Andy Bel蓹 ki, indi Julia da qeyd ed蓹 bil蓹rsiniz.
Julia indi Xa莽p蓹r蓹st qeyd ed蓹 bil蓹rsiniz.
O sur蓹ti bil蓹r, 莽眉nki m蓹nim sa臒 蓹l pointer.
Ki, s蓹m蓹r蓹li sizde geri burada bu yer蓹.
Bel蓹 ki, q谋sa, h蓹tta bu olsa 蓹b蓹di c眉r bizi g枚r眉r
h蓹qiq蓹t蓹n g眉ncellemek 眉莽眉n bir siyah谋s谋n谋 蓹laq蓹li h蓹yata
Bu 蓹m蓹liyyatlar nisb蓹t蓹n sad蓹dir.
Bu, iki, bir, 眉莽 n蓹tic蓹d蓹 kodu x蓹tl蓹ri.
Lakin h蓹min sar谋l谋 ehtimalla kodu x蓹tl蓹ri
m蓹ntiq bir az s蓹m蓹r蓹li sual谋na Biz burada soru艧ur?
Biz ba艧谋nda, orta v蓹 ya son?
>> 陌ndi, 蓹lb蓹tt蓹, b蓹zi dig蓹r var biz h蓹yata bil蓹r 蓹m蓹liyyatlar谋.
V蓹 burada bu 艧蓹kill蓹r yaln谋z t蓹svir n蓹 biz yaln谋z insanlar idi.
N蓹 aradan qald谋r谋lmas谋 haqq谋nda?
M蓹n ist蓹yir蓹m 蓹g蓹r, m蓹s蓹l蓹n, say谋 aradan qald谋r谋lmas谋 34 v蓹 ya 55,
M蓹n kodu eyni c眉r ola bil蓹r amma bir v蓹 ya iki add谋mlar laz谋md谋r gedir蓹m.
Yeni n蓹 var, 莽眉nki?
M蓹n sonunda kims蓹 aradan qald谋r谋lmas谋, say谋 kimi 55 sonra 34,
n蓹 d蓹 m蓹n bunu kimi d蓹yi艧dirm蓹k 眉莽眉n var?
M蓹n evict-- deyil var ad谋 yen蓹 n蓹 var?
>> Auditoriya: Jack.
>> DAVID J. MALAN: Jack.
I, evict-- pulsuz Jack yaln谋z var bel蓹 s枚z眉n 蓹n az谋 pulsuz Jack z蓹ng v蓹 ya
orada pointer 莽ox, lakin indi Peterl蓹 n蓹 il蓹 d蓹yi艧m蓹k laz谋md谋r?
Onun 蓹l daha a艧a臒谋 i艧ar蓹 ba艧lay谋n.
Tezlikl蓹 m蓹n pulsuz z蓹ng, 莽眉nki Jack, Peter h蓹l蓹 Jack i艧ar蓹 蓹g蓹r
M蓹n d蓹 traversing saxlamaq siyah谋s谋 v蓹 giri艧 bu g枚st蓹rici,
ki, zaman bizim k枚hn蓹 dost seqmentasiya var h蓹qiq蓹t蓹n salmaq bil蓹r g眉nah.
Biz t蓹qdim etdik, 莽眉nki Jack yadda艧 geri.
>> Siz orada qalmaq bil蓹r y枚nd蓹msiz yaln谋z bir an 眉莽眉n.
Biz yaln谋z bir ne莽蓹 var final 蓹m蓹liyyatlar谋 hesab.
Siyah谋s谋na r蓹hb蓹ri aradan qald谋r谋lmas谋, Bu beginning-- v蓹 bu, bir v蓹 ya
bir az annoying.
Biz bilirik ki, 莽眉nki Gabe c眉r x眉susi bu proqram var.
脟眉nki h蓹qiq蓹t蓹n, o, 枚z g枚st蓹rici var.
O, yaln谋z qeyd olan deyil Burada dem蓹k olar ki, h蓹r k蓹s kimi.
>> Bel蓹 ki, siyah谋da ba艧莽谋s谋 zaman , kimin 蓹lind蓹 indi d蓹yi艧dirm蓹k laz谋md谋r qald谋r谋ld谋?
Ad谋 yen蓹 n蓹dir?
>> Auditoriya: Christine.
>> DAVID J. MALAN: M蓹n d蓹h艧蓹tli deyil蓹m adlar da y蓹qin.
Bel蓹 ki, Christine v蓹 Gabe, kimin 蓹lind蓹 d蓹yi艧dirm蓹k laz谋md谋r
biz Christine aradan qald谋r谋lmas谋 眉莽眉n c蓹hd zaman, 艧蓹kil say谋 5?
OK, bel蓹 ki, Gabe ed蓹k.
Gabe qeyd ed蓹c蓹k, ehtimalla, say谋 9.
Lakin sonrak谋 n蓹 laz谋md谋r?
Auditoriya: Christine olmal谋d谋r [I艧itilemez] null ola bil蓹r.
DAVID J. MALAN: OK, biz y蓹qin ki, olmal谋d谋r make-- M蓹n haradasa "null" e艧itdim.
Auditoriya: Null v蓹 onun pulsuz.
DAVID J. MALAN: n蓹 null?
Auditoriya: Null v蓹 onun pulsuz.
DAVID J. MALAN: Null v蓹 onun pulsuz.
Bel蓹 ki, bu 莽ox asand谋r.
V蓹 indi sort edirik ki m眉k蓹mm蓹l m蓹nsub yoxdur duran.
Siz oldum, 莽眉nki siyah谋dan decoupled.
Siz s蓹m蓹r蓹li oldum siyah谋dan yetim.
V蓹 bel蓹 ki, biz indi daha yax艧谋 pulsuz z蓹ng etdi Christine yadda艧 geri verm蓹k.
茝ks halda biz h蓹r d蓹f蓹 Siyah谋dan bir node silm蓹k
biz siyah谋s谋na edilm蓹si ola bil蓹r q谋sa, lakin h蓹qiq蓹t蓹n azalm谋r
yadda艧 枚l莽眉s眉.
V蓹 bel蓹 ki, biz 蓹lav蓹 saxlamaq 蓹g蓹r 蓹lav蓹, siyah谋da 艧eyi 蓹lav蓹,
m蓹nim komp眉ter yava艧 蓹ld蓹 ed蓹 bil蓹r v蓹 yava艧 v蓹 yava艧,
M蓹n h蓹yata 莽al谋艧an edir蓹m, 莽眉nki yadda艧, m蓹n, h蓹qiq蓹t蓹n deyil蓹m, h蓹tta
Christine bayt istifad蓹 yadda艧 art谋q.
>> Bel蓹 ki, sonunda dig蓹r var kursu aradan qald谋r谋lmas谋 ssenaril蓹ri,
orta, aradan qald谋r谋lmas谋 sonunda, kimi g枚rd眉k.
Amma daha maraql谋 problem indi
gedir d蓹qiq hesab olmaq 莽al谋艧an zaman n蓹.
Bel蓹 ki, yaln谋z saxlamaq bil蓹rsiniz ka臒谋z par莽alar谋, Gabe, 蓹g蓹r,
verilm蓹si a臒la deyil h蓹r k蓹s bir stress topu.
Bizim ba臒l谋 siyah谋 莽ox t蓹艧蓹kk眉r edir蓹m Burada k枚n眉ll眉, siz bil蓹r.
>> [Alq谋艧]
>> DAVID J. MALAN: B眉t眉n h眉ququ.
Analitik bel蓹 bir ne莽蓹 sonra sual, M蓹n 蓹g蓹r.
Biz 蓹vv蓹l bu notation g枚rd眉m, big O v蓹 omega, yuxar谋 h蓹ddi
v蓹 a艧a臒谋 h蓹ddi bir alqoritm 莽al谋艧an zaman.
Bel蓹 ki, yaln谋z hesab ed蓹k suallar bir ne莽蓹.
>> One, v蓹 biz bunu etdi 蓹vv蓹l, 莽al谋艧an n蓹
bir 眉莽眉n axtar谋艧 vaxt谋 b枚y眉k O bax谋m谋ndan siyah谋s谋?
N蓹 莽al谋艧an bir 眉st bound var bir ba臒l谋 siyah谋 axtar谋艧 vaxt
burada k枚n眉ll眉l蓹r t蓹r蓹find蓹n h蓹yata kimi?
Bu n b枚y眉k O, x蓹tti var.
, 茝n pis halda, 莽眉nki Bu element, 55 kimi,
Biz burada ola bil蓹r axtar谋r bil蓹r Jack, sonunda b眉t眉n yolu idi.
V蓹 t蓹蓹ss眉f ki, bir s谋ra f蓹rqli biz bu d蓹f蓹 x眉lya almaq bilm蓹z.
Ekibimizden b眉t眉n baxmayaraq Ki莽ik elementl蓹ri, 5 s谋ralan谋r,
b枚y眉k element q蓹d蓹r b眉t眉n yol, 55, ad蓹t蓹n yax艧谋 bir 艧ey.
Amma ki, ehtimal n蓹 art谋q biz蓹 imkan?
Auditoriya: [i艧itilemez]
DAVID J. MALAN: Yen蓹 deyir蓹m?
Auditoriya: Random access.
DAVID J. MALAN: Random access.
V蓹 枚z n枚vb蓹sind蓹 ki, he莽 biz dem蓹kdir art谋q z蓹if adet s谋f谋r, intuisiya istifad蓹
ikili istifad蓹 v蓹 a艧karl谋q axtar谋艧 v蓹 b枚lm蓹k v蓹 f蓹th.
脟眉nki baxmayaraq biz insanlar a莽谋q-ayd谋n ola bil蓹r
Andy v蓹 ya xristian idi ki t蓹xmin蓹n siyah谋s谋 ortas谋nda,
biz yaln谋z kimi bilirik ki, siyah谋s谋n谋 skimming komp眉ter
蓹vv蓹ld蓹n.
Bel蓹 ki, t蓹sad眉fi giri艧 imtina etdik.
>> N bel蓹 b枚y眉k O indi yuxar谋 axtar谋艧 vaxt bound.
N蓹 bizim axtar谋艧 omega haqq谋nda?
A艧a臒谋 bound axtar谋艧 Neler Bu siyah谋da bir s谋ra 眉莽眉n?
Auditoriya: [i艧itilemez]
DAVID J. MALAN: Yen蓹 deyir蓹m?
Auditoriya: One.
DAVID J. MALAN: One.
Bel蓹 ki, daimi vaxt.
茝n yax艧谋 halda, Christine edir h蓹qiq蓹t蓹n siyah谋s谋n谋n ba艧谋nda.
V蓹 biz arad谋臒谋n谋z say谋 5, bel蓹 ki, biz onu tapd谋m.
Bel蓹 ki, he莽 bir b枚y眉k.
Lakin o olmaq var bu halda siyah谋 ba艧layan.
Kimi bir 艧ey haqq谋nda n蓹 sil?
Bir element silm蓹k 眉莽眉n n蓹 ist蓹yirsinizs蓹?
N蓹 眉st bound v蓹 a艧a臒谋 bound var ba臒l谋 bir 艧ey silinm蓹si haqq谋nda
siyah谋s谋?
Auditoriya: [i艧itilemez]
DAVID J. MALAN: Yen蓹 deyir蓹m?
Auditoriya: n.
DAVID J. MALAN: n bound h蓹qiq蓹t蓹n 眉st.
茝n pis halda, biz c蓹hd 莽眉nki biz yaln谋z kimi, Jack silm蓹k 眉莽眉n.
O, sonunda b眉t眉n yolu var.
茝b蓹di biz蓹 edir, v蓹 ya n add谋mlar onu tapmaq 眉莽眉n.
Bel蓹 ki, bir 眉st bound var.
茝min, x蓹tti var.
V蓹 蓹n yax艧谋 halda zaman 莽al谋艧an, v蓹 ya 蓹n yax艧谋 halda a艧a臒谋 h蓹ddi
daimi vaxt olacaq.
B蓹lk蓹 biz silm蓹k 眉莽眉n c蓹hd 莽眉nki Christine, v蓹 biz yaln谋z u臒urlu almaq
o ba艧谋nda var.
陌ndi bir d蓹qiq蓹 g枚zl蓹yin.
Gabe, ba艧谋nda idi v蓹 biz d蓹 Gabe yenil蓹m蓹 idi.
Bel蓹 ki, yaln谋z bir add谋m idi.
Bel蓹 ki, h蓹qiq蓹t蓹n sabit deyil zaman, 蓹n yax艧谋 halda,
ki莽ik element aradan qald谋r谋lmas谋 眉莽眉n nec蓹?
Iki ola bil蓹r, baxmayaraq ki,, deyil kodu 眉莽, v蓹 ya h蓹tta 100 x蓹tl蓹ri,
Bu eyni s谋ra 蓹g蓹r b蓹zi loop x蓹tl蓹ri,
v蓹 枚l莽眉s眉 m眉st蓹qil siyah谋s谋, tamamil蓹.
Element at silm蓹 Bu siyah谋n谋n ba艧谋nda,
biz il蓹 m蓹艧臒ul olsa bel蓹 Gabe, h蓹l蓹 daimi d蓹f蓹.
>> Bel蓹 ki, bu kimi g枚r眉n眉r geri k眉tl蓹vi add谋m.
V蓹 hans谋 bir tullant谋 , 蓹g蓹r h蓹ft蓹 bir v蓹 h蓹ft蓹
s谋f谋r biz yaln谋z idi pseudocode kodu ancaq faktiki kodu
log ki, bir 艧ey h蓹yata baza n, v蓹 ya giri艧, daha do臒rusu, n, baza 2,
onun 莽al谋艧an zaman bax谋m谋ndan.
Bel蓹 ki, heck, biz ba艧lamaq ist蓹yir蓹m ki, niy蓹 bir ba臒l谋 siyah谋s谋 kimi bir 艧ey istifad蓹?
B蓹li.
>> Auditoriya: Bel蓹 ki, 蓹lav蓹 ed蓹 bil蓹rsiniz array elementl蓹ri.
DAVID J. MALAN: Bel蓹 ki, siz array elementl蓹ri 蓹lav蓹 edin.
V蓹 bu 莽ox tematik edir.
V蓹 biz g枚rm蓹y蓹 davam ed蓹c蓹yik bu, ticar蓹t-off 莽ox
kimi biz g枚rd眉k bir birl蓹艧m蓹 n枚v il蓹 ticar蓹t-off.
Biz, h蓹qiq蓹t蓹n, s眉r蓹tl蓹ndirm蓹k bil蓹r daha do臒rusu, axtar谋艧 v蓹 ya 莽e艧idl蓹nm蓹si,
biz bir az daha 莽ox yer s蓹rf 蓹g蓹r bir yadda艧 蓹lav蓹 y谋臒谋n var
v蓹 ya birl蓹艧m蓹 sort 眉莽眉n bir s谋ra.
Amma biz daha 莽ox s蓹rf space, lakin biz zaman edin.
Bu halda, biz ist蓹yirik vaxt imtina lakin biz ist蓹yirik
rahatl谋q 蓹ld蓹, dinamizm Siz,
olan arguably m眉sb蓹t x眉susiyy蓹tidir.
>> Biz d蓹 yer s蓹rf edirik.
Hans谋 m蓹nada bir ba臒l谋d谋r daha bahal谋 siyah谋s谋
bir s谋ra daha m蓹kan bax谋m谋ndan?
Harada 蓹lav蓹 yer g蓹l蓹n?
B蓹li?
>> Auditoriya: [i艧itilemez] pointer.
>> DAVID J. MALAN: B蓹li, biz d蓹 g枚st蓹rici var.
Bel蓹 ki, bu minorly annoying edir ki art谋q am
M蓹n yaln谋z bir int saxlan谋lmas谋 bir int t蓹msil etm蓹k.
M蓹n bir int v蓹 saxlan谋lmas谋 al谋ram d蓹 32 bit olan g枚st蓹rici.
M蓹n s枚z眉n misli edir蓹m kosmik m蓹bl蓹臒i c蓹lb.
Bel蓹 ki, ticar蓹t-off var, lakin ki, int halda var.
Siz int saxlan谋lmas谋 deyilik Tutaq ki, lakin bu d眉zbucaql谋 h蓹r g眉man
v蓹 ya bu insanlar h蓹r t蓹msil olunub bir s枚z, 陌ngilis s枚z
be艧 simvol, 10 ola bil蓹r simvol, b蓹lk蓹 d蓹 daha 莽ox.
Sonra 32 daha bit 蓹lav蓹 bir b枚y眉k az ola bil蓹r.
>> N蓹 t蓹l蓹b蓹l蓹rin h蓹r 蓹g蓹r n眉mayi艧d蓹
idi sanki t蓹l蓹b蓹 structs ki b蓹lk蓹 adlar谋 v蓹 ev var
telefon n枚mr蓹l蓹ri v蓹 Twitter emal v蓹 kimi.
Bel蓹 ki, b眉t眉n sah蓹l蓹rind蓹 biz ba艧lad谋q dig蓹r g眉n s枚hb蓹t,
kimi bir b枚y眉k daha az bizim qov艧aqlar谋n谋n daha maraql谋 almaq
v蓹 b枚y眉k, eh, 蓹lav蓹 s蓹rf etm蓹k pointer yaln谋z onlara birlikd蓹 link.
Amma h蓹qiq蓹t蓹n, ticar蓹t-off var.
And olsun ki, kodu daha m眉r蓹kk蓹b, kimi laz谋md谋r
vasit蓹sil蓹 skimming bax谋n x眉susi n眉mun蓹sidir.
Amma n蓹 varm谋艧 burada b蓹zi m眉q蓹dd蓹s grail.
Biz bir add谋m, yoxsa n蓹 geri lakin k眉tl蓹vi add谋m
v蓹 m蓹lumatlar谋n h蓹yata strukturu vasit蓹sil蓹 biz
Jack v蓹 ya kimi elementl蓹ri tapa bil蓹rsiniz Christine v蓹 ya h蓹r hans谋 dig蓹r elementl蓹ri
do臒ru daimi vaxt bu serial谋n?
Axtar daimi deyil.
Sil sabit deyil.
Daxil daimi deyil.
B眉t眉n bu 蓹m蓹liyyatlar谋n daimi var.
Y蓹ni bizim m眉q蓹dd蓹s grail olard谋.
Ki, burada biz n枚vb蓹ti d蓹f蓹 aparacaqlar.
Sonra bax谋n.