[MUSIC PLAYING] HOPARLÖR 1: Bütün hüququ. Hər kəs geri bölməsində salamlayıram. Mən sizə bütün uğurla ümid Sizin viktorina bərpa Keçən həftə. Mən bu dəfə bir az crazy bilirik. Siz değilseniz, əvvəl deyirdi kimi, standart sapma ərzində həqiqətən, xüsusilə, bu barədə narahat olmayın bir az rahat bölüm üçün. Ki, olmalıdır harada haqqında. Əgər zəhmli, böyük idi əgər. Sizə şeref. Və hiss əgər sizə lazım kimi bir az daha çox yardım edin çatmaq üçün çekinmeyin TFS hər hansı bir həyata. Biz bütün kömək etmək üçün burada. Biz öyrətmək görə. Mən sizin üçün burada hər bazar ertəsi Ben Ona görə də cümə axşamı uşaqlar və ofis saat. Belə ki, Mənə bildirin çekinmeyin Əgər bir şey haqqında narahat əgər və ya viktorina bir şey varsa var ki, siz həqiqətən həll etmək istərdim. Belə ki, bu gün gündəmə bütün data strukturları. Bunlardan bəziləri yalnız olacaq Bu ilə tanış olmaq. Əgər həyata bilər Bu sinif onlara. Siz Bəziləri, Sizin speller pset kimi. Siz seçim lazımdır hash masalar və çalışır arasında. Beləliklə, biz mütləq o üzərində gedən olacaq. Bu cür mütləq daha olacaq yüksək səviyyədə hissəsinin bu gün, baxmayaraq ki, çünki onların bir çox var, və əgər biz həyata detalların girdi Bu bütün, biz ki hətta bağlı siyahıları vasitəsilə almaq və bəlkə hash masalar bir az. Belə ki, mənimlə daşıyırlar. Biz bunu etmək fikrində deyilik qədər bu dəfə kodlaşdırma. Bu barədə hər hansı bir sualınız varsa, və ya onu həyata görmək istəyirəm və ya özünüz üçün cəhd edin, Mən mütləq gəlir , study.cs50.net niyyətində olan bütün bu nümunələr var. Bu, mənim PowerPoints lazımdır qeydləri ilə biz bəzi proqramlaşdırma habelə istifadə edirlər təlimlər, xüsusilə şeylər üçün bağlı siyahıları və ikili kimi ağac bacalar və Istekaları. Belə ki, az daha yüksək səviyyədə olan uşaqlar üçün gözəl ola bilər. Belə ki, biz başlamaq lazımdır. Və həmçinin, yes-- sınavlar. Mən olan sizin çox düşünürəm Mənim ikibölməli, sınavlar var lakin hər kəs və ya bir səbəblə gəlir deyil, onlar burada ön istəyirik. Belə ki, siyahıları bağlıdır. Gedir Mən bu cür bilirəm Sizin viktorina əvvəl geri. Ki, əvvəl həftə idi biz bu barədə öyrənildi. Lakin bu halda, biz yalnız lazımdır dərin bir az daha gedin. Belə ki, niyə biz bir seçə bilərsiniz bir sıra üzərində siyahısını bağlıdır? Onlara nə ilə fərqlənir? Bəli? Auditoriya: Siz genişləndirmək bilər bağlıdır bir serialın sabit ölçüsü qarşı siyahısı. HOPARLÖR 1: Right. Bir sıra halbuki ölçüsü müəyyən edib bağlı siyahı dəyişən ölçüsü var. Biz bilmirsinizsə Belə ki, necə qədər saxlamaq istəyirəm, bir bağlı siyahı bizə böyük verir yol yoxdur ki, biz yalnız, çünki başqa node əlavə və əlavə başqa node və başqa node əlavə edin. Amma nə ticarət-off ola bilər? Hər kəs ticarət-off yadda varmı seriallarda və bağlı siyahıları arasında? Mmhmm? Auditoriya: Siz var bütün yolu ilə getmək bağlı siyahı vasitəsilə siyahısı bir element tapa bilərsiniz. Bir sıra, siz yalnız bir element tapa bilərsiniz. HOPARLÖR 1: Right. Belə ki, serialları ilə Auditoriya: [işitilemez]. HOPARLÖR 1: Diziler ilə, biz nə random access deyirlər. Biz istəyirsinizsə nə deməkdir siyahısı heç beşinci nöqtə və ya beşinci nöqtə bizim array, biz yalnız onu qapmaq. Bu bir bağlı siyahı varsa, biz Sağ vasitəsilə təkrarlamaq? Belə ki, bir element erişmekte bir sıra, daimi vaxt Bu ki, bir bağlı siyahısı ilə isə çox güman ki, çünki bəlkə xətti vaxt ola Bizim element sonunda bütün yoldur. Biz hər şeyi vasitəsilə axtarış. Bütün bu məlumatları So gedirik strukturları bir az daha çox vaxt sərf etmək, müsbət və neqativlər nə. Biz edə bilərsiniz zaman digər üzərində bir istifadə? Və cür böyük şey üz etmək. Beləliklə, biz burada var bir node müəyyən. Bu, bir element kimi bizim bağlı siyahısı, sağ? Beləliklə, biz bütün tanış edirik Bizim typedef structs ilə, Biz keçən dəfə baxış üzərində getdi. Yalnız yaradılması Bu, əsasən idi biz istifadə edə bilər ki, başqa data type. Və bu halda, bəzi node var ki, bir tam təşkil edəcək. Və sonra ikinci hissəsi burada nə var? Hər kəs? Auditoriya: [işitilemez]. HOPARLÖR 1: Bəli. Bu növbəti node bir göstərici var. Belə ki, bu, həqiqətən, burada olmalıdır. Bu tip bir göstəricisidir növbəti şey node. Və nə onlar bizim node əhatə edir. Cool. Axtarış Bütün sağ, belə ki, biz kimi Siz değilseniz yalnız əl əvvəl söyləyərək vasitəsilə axtarış gedir, Siz, həqiqətən, təkrarlamaq lazımdır bağlı siyahı vasitəsilə. Biz sayı arıyorsanız Belə ki, 9, biz baş başlayacaq ki, başında bizi göstərir bizim bağlı siyahı, sağ? Və biz OK, bu yoxdur, demək node sayı 9 ehtiva edir? No? Bütün hüquqlar, növbəti bir gedin. Edin. Bu sayı 9 varmı? No. Növbəti bir edin. Belə ki, biz, həqiqətən, təkrarlamaq lazımdır bizim bağlı siyahısı ilə. Biz yalnız 9 olduğu birbaşa getmək bilməz. Və uşaqlar həqiqətən istəyirsinizsə bəzi yalançı kodu up görmək. Biz burada bir axtarış funksiyası var ki, almaq nə in-- edir? Siz nə düşünürsünüz? Belə ki, asan bir. Bu nədir? Auditoriya: [işitilemez]. HOPARLÖR 1: biz aradığınız sayı. Right? Və nə bu uyğun olardı? Bu bir göstərici var? Auditoriya: A node. HOPARLÖR 1: siyahısına A node biz doğru, baxırıq ki? Beləliklə, biz bəzi qovşaqlarının burada pointer var. Bu olacaq ki, bir nöqtə həqiqətən, bizim siyahısını təkrarlamaq. Biz siyahısı bərabər müəyyən yalnız çünki Bu bərabər qəbulu bizim bağlı siyahı başlayın. Və bu NULL deyil isə, isə biz hələ, bizim siyahıda şeylər var ki node var görmek üçün yoxlamaq biz aradığınız sayı. Doğru qayıdın. Əks halda, sağ, onu yeniləmək? Bu NULL varsa, biz çıxmaq bizim isə loop və saxta qayıtmaq o deməkdir ki, çünki biz bunu aşkar deyil. Hər kəs işləri necə almaq olar? OK. Siz durub ilə belə üç müxtəlif yolları var. Siz əlavə edə bilərsiniz, başına bilər çeşidlənərək daxil və siz əlavə edə bilərsiniz. Bu halda, biz istəyirik bir başına edəcəyik. Hər kəs necə o bilir üç hallarda fərqlənə bilər? Belə ki, başına qoymaq o deməkdir ki, Sizin siyahısı qarşısında. Belə ki, deməkdir olursa olsun Sizin node, heç nə dəyəri nə, siz olacaq OK, qarşısında sağ burada qoymaq? Bu ilk olacaq Sizin siyahısında element. Siz əlavə, bu, olacaq Sizin siyahısını geri getmək üçün. Və müxtəlif etdiyiniz deməkdir daxil yerə həqiqətən qoymaq niyyətindədir saxlayır harada bağlı siyahı sıralanır. Yenə, necə istifadə o zaman istifadə Onlara halda asılı olaraq dəyişir. Bu lazım deyil sıralanır, başına çalışır nə insanların çoxu olmaq siz deyil, çünki istifadə bütün siyahısı vasitəsilə getmək üçün var sağ, onu əlavə etmək üçün son tapmaq üçün? Siz yalnız sağ qalmaq bilər. Beləliklə, biz bir vasitəsilə gedəcək durub 1 indi. Mən gedirəm ki, bir şey yüksək pset gəlir həmişə olduğu kimi, şeyi cəlb edir. Siz yeniləmə ki, çox vacibdir Düzgün qaydada sizin göstəricilərinə Əgər siz onları yeniləmə, çünki qədər üçün həyata, Siz başa olacaq Sizin siyahısı hissələri itirmək. Belə ki, məsələn, bu halda, biz istəyirik 1 yalnız nöqtəsinə baş izah. Biz yalnız ki, əgər Bu 1 qənaət olmadan, biz heç bir fikrim yoxdur nə 1 artıq qeyd olmalıdır itirdiyimiz çünki baş işarə etdi. Belə ki, bir şey xatırlayıram zaman başına edirik hansı saxlamaq üçün ilk baş sayı, sonra redesign, sonra yeniləmə nə yeni node qeyd edilməlidir. Bu halda, bu bunu bir yoldur. Biz bu yolu həyata əgər Belə ki, biz yalnız baş dəyiĢdirilmiĢ Biz əsasən itirmək bütün siyahısı, sağ? Bunu bir yolu 1 bal var növbəti və sonra 1 baş nöqtə var. Yoxsa kimi növ edə bilərsiniz mən danışdı müvəqqəti saxlama. Lakin reassigning Düzgün qaydada göstəricilərinə çox olacaq bu pset üçün əhəmiyyətli. Əks halda, bir hash olacaq masa və ya yalnız olacaq ki, bir cəhd sözləri yalnız bir hissəsidir ki, you're-- mmhmm sonra istədiyiniz və? Auditoriya: müvəqqəti nə idi storage şey söhbət? HOPARLÖR 1: müvəqqəti saxlama. Belə ki, əsasən başqa Siz bunu edə bilər şəkildə kimi, bir şey baş saxlamaq edilir bu müvəqqəti dəyişən saxlamaq. 1 təyin və sonra qeyd yeniləmə 1 nə baş qeyd üçün istifadə olunur. Bu yolla açıq-aydın daha zərif çünki müvəqqəti dəyər lazımdır, deyil, yalnız bunu üçün başqa bir yol təklif. Və biz, həqiqətən, var Bu bəzi kodu. Bağlı siyahı Belə ki, biz həqiqətən bir kodu var. Belə ki, bu prepending, burada daxil edin. Belə ki, bu baş girdiyi. Belə ki, ilk şey, lazımdır Əlbəttə, yeni node yaratmaq və NULL kontrol. Həmişə yaxşı. Və sonra dəyərləri təyin etmək lazımdır. Zaman, siz yeni node yaratmaq növbəti işarə nə bilmirəm, belə ki, null başlamaq istəyirəm. Bir şey işarə sona deyilsə başqa, bu atanır və bu gözəl var olur. Bu ilk şey varsa Siyahıda, ehtiyacı çünki null qeyd etmək ki, siyahının sonu var. Belə ki, sonra daxil etmək üçün, biz burada bax Bizim node növbəti dəyər təyin olunur baş nə olacaq, biz burada nə edir. Yəni biz yalnız nə var. Və sonra biz nöqtəyə baş təyin edirik yeni node, xatırlayıram çünki, yeni, bir node bir göstərici və dəqiq baş nə var. Ki, məhz niyə biz, bu arrow Accessor var. Cool? Mmhmm? Auditoriya: biz var ilk null yeni gələn başlamaq, və ya biz yalnız baş başlamaq olar? HOPARLÖR 1: Növbəti New başlamaq üçün NULL olmalıdır Siz bilmirəm, çünki harada olacaq. Həmçinin, bu cür deyil bir paradiqma kimi. Siz null bərabər yalnız etmək üçün müəyyən əmin bütün əsasları əhatə olunur ki, Siz ki, hər hansı dəyişdirmə əvvəl Siz həmişə olacaq ki, təmin edirik xüsusi dəyər işarə etmək bir zibil dəyəri kimi qarşı. Bəli, biz təyin, çünki avtomatik olaraq növbəti yeni, lakin yalnız bir kimi daha çox yaxşı təcrübə başlamaq yol və sonra redesign. OK, belə ki, ikiqat indi siyahıları bağlıdır. Biz nə düşünürsünüz? Nə müxtəlif var ikiqat siyahıları bağlıdır? Belə ki, bizim bağlı siyahıları, biz yalnız sağ, bir istiqamətdə hərəkət? Biz yalnız növbəti var. Biz yalnız irəli getmək olar. Ikiqat bağlı siyahısı ilə, biz də geri hərəkət edə bilər. Beləliklə, biz yalnız var biz saxlamaq istəyirəm ki, sayı, növbəti işarə biz var və biz yalnız gəlib burada. Belə ki, bu imkan verir bəzi yaxşı traversal. Belə ki, ikiqat bağlı qovşaqlarının, çox oxşar, sağ? Yeganə fərq biz indi növbəti və əvvəlki var. Bu yalnız fərq var. Biz Belə ki, əgər başına və ya append-- biz burada bu heç bir kod up yoxdur lakin siz cəhd etmək olsaydı və , əhəmiyyətli şey onu daxil edin etmək lazımdır Siz təyin etdiyiniz həm sizin əvvəlki və sevimli doğru növbəti pointer. Belə ki, bu halda, siz ki yalnız növbəti başlamaq deyil, Əvvəlki başlamaq. Biz siyahısına rəhbəri istəyirik, biz Baş bərabər yeni edəcəklərini deyil, lakin yeni əvvəlki olmalıdır sağ rəhbəri qeyd? Ki, yalnız fərq var. Və daha çox təcrübə istəyirsinizsə daxil ilə bağlı siyahıları, bu, insert ilə, silinməsi ilə bir müxtəlif siyahısına daxil, study.cs50.net kontrol edin. Böyük təlimlər bir dəstə var. Mən onlara tövsiyə. Mən biz onların vasitəsilə getmək üçün vaxt var idi arzulayıram lakin data strukturlarının bir çox var vasitəsilə almaq üçün. OK, hash masalar belə. Bu yəqin ki, ən çox Sizin pset üçün faydalı bit burada olacaq, çünki bu bir, və ya cəhd həyata keçirir. Mən, həqiqətən, hash masalar kimi. Onlar olduqca sərin istəyirik. Belə ki, əsasən nə olur hash masa Biz, həqiqətən, sürətli lazım deyil durub, silinməsi, və axtarış. O biz istəyirik ki, hər şeyi var bir hash masa prioritetləşdirilməsi. Onlar olduqca böyük əldə edə bilərsiniz lakin biz çalışır ilə görəcəksiniz kimi, daha böyük olan şeylər var. Amma əsasən, bütün hash masa hash funksiyası hər qoymaq üçün bucket sizə deyir Sizin data, sizin elementlərin hər. A sadə yolu hash masa hesab Bu şeyi buketler var ki, sağ? Siz şeyi çeşidlənməsi belə zaman onların adının ilk hərf kimi, bu cür bir hash masa kimi. I qrup olsaydı Belə ki, uşaqlar deyil Adı başlayır kim qrupa burada A, və ya ad kim var , yanvar, fevral, mart deyil nə ki, səmərəli bir hash masa yaratmaq. Bu yalnız buketler yaradılması ki, Siz daxil elementləri sort onlara daha asan tapa bilərsiniz ki. Mən lazım bu şəkildə Belə ki, Siz tapmaq üçün, Mən axtarış yoxdur Sizin adları hər vasitəsilə. Mən oh, kimi ola bilər, mən bilirəm ki, Danielle ad in-- edir Auditoriya: --April. HOPARLÖR 1: April. Belə ki, mən aprel baxmaq bucket, və hər hansı uğurlar ilə, o yalnız bir olacaq və mənim vaxt ki, mənada daimi idi Mən baxmaq var, halbuki insanların bütün dəstə ilə, bu, çox uzun olacaq. Belə ki, hash masalar, həqiqətən, yalnız buketler var. Easy yol düşünmək. Belə ki, çox əhəmiyyətli bir şey haqqında bir hash masa hash funksiyası var. Belə ki, şeylər kimi, haqqında söhbət ilk adı ilk məktubu və ya ad günü ay, Bu ideyaları həqiqətən bir hash funksiyası ilə əlaqədar. Bu qərar yalnız bir yolu var olan OK, etdiyiniz element gider bucket? Belə ki, bu pset üçün, siz baxmaq edə bilərsiniz Siz istədiyiniz hər hansı bir hash funksiyası olduqca çox. Öz olmaq yoxdur. Bəzi həqiqətən cool olanları var crazy riyaziyyat bütün növ ki,. Və sizin etmək istəyirsinizsə super sürətli imla kontrolü yapma, Mən mütləq ki o biri baxmaq. Həm də var Compute kimi sadə olanları, sözləri, məbləği kimi Hər bir məktub bir sıra var. Məbləği hesablamaq. Bu bucket müəyyən edir. Onlar həmçinin asan olanları var ki, yalnız A buradan bütün kimi, B bütün burada. O hər hansı bir. Əsasən, bu, yalnız sizə deyir array index daxil olmalıdır element. Yalnız bucket-- qərar bütün bir hash funksiyası edir. Belə ki, burada biz bir misal var simli yalnız ilk məktub Mən yalnız söhbət. Belə ki, yalnız var ki, bəzi hash var Sizin string minus A ilk məktubu, bəzi verəcək 0 və 25 arasında sayı. Və nə etmək istəyirəm Bu təmsil əmin olun Sizin hash ölçüsü Masa neçə buketler var. Bu çox hash funksiyaları, onlar gedir ki, ola bilər dəyərlər qaytarılması üçün qədər buketler sayı yuxarıda Siz həqiqətən ki, Sizin hash masa, belə ki, etmək lazımdır əmin və həmin mod. Əks halda, bu demək olacaq, oh, bu bucket 5000 olmalıdır lakin yalnız 30 var Sizin hash cədvəldə buketler. Və əlbəttə, biz bütün bilirik ki, bəzi crazy səhvlər səbəb olacaq. Belə ki mod üçün əmin olun Sizin hash masa ölçüsü. Cool. Toqquşma belə. Hər kəs bu günə qədər yaxşı? Mmhmm? Auditoriya: Niyə ki Belə bir böyük dəyər qayıtmaq? HOPARLÖR 1: alqoritm asılı olaraq Sizin hash funksiyası istifadə edir. Bəziləri edəcəyik crazy vurma. Və əldə haqqında bütün var hətta distribution, onlar həqiqətən bəzi bəzən crazy şeyi. Vəssalam. Başqa bir şey? OK. Toqquşma belə. Ümumiyyətlə, mən əvvəllər dediyi kimi, Ən yaxşı halda, mən baxmaq hər hansı bir bucket edir bir şey üçün gedir, mən sağ, bütün baxmaq yoxdur? Mən ya bu var bilirik və ya bu deyil ki, biz, həqiqətən istəyirəm nə. Amma biz on minlərlə varsa data xal və sayı az buketler, biz olacaq toqquşma harada nəhayət bir şey Bir başa gedir Artıq bir element var ki, bucket. Belə ki, sual, nə biz bu halda nə etməliyəm? Biz nə etməliyəm? Biz artıq orada bir şey var? Biz yalnız onu atmaq edirsiniz? No. Biz onların hər ikisi saxlamaq lazımdır. Belə ki, yol ki, biz adətən nə edir? Bu data strukturu nədir biz yalnız danışdıq? Auditoriya: Əlaqəli siyahısı. HOPARLÖR 1: A bağlı siyahı. Belə ki, indi, əvəzinə bu hər buketler yalnız bir element olan bu bir bağlı siyahı ehtiva olacaq onu hashed ki, elementləri. OK, hər kəs cür ki, fikir almaq deyil? Biz bir sıra ola bilər, çünki biz necə çox şeyi bilmirəm, çünki orada olacaq. A bağlı siyahı imkan verir yalnız dəqiq sayı var ki, sağ ki, bucket daxil hashed olunur? Probing Belə xətti əsasən bu fikirdir bir toqquşma ilə məşğul bir yol var. Siz nə edə bilərsiniz bu, əgər halda, giləmeyvə 1-hashed edildi biz artıq bir şey var, yalnız qədər aşağı davam Əgər boş slot tapa bilərsiniz. Yəni onu idarə etmək üçün bir yoldur. Idarə etmək üçün başqa bir yolu Bu ilə biz yalnız bağlı called-- siyahısı chaining adlanır. Belə ki, bu fikir işləyir Sizcə sizin hash table çox böyük sizin data set və ya əgər cəhd və zəncirləmə minimuma endirmək istəyirəm tamamilə zəruri qədər. Belə bir şey xətti açıq-aydın o deməkdir probing Sizin hash funksiyası ki, olduqca kimi faydalı deyil istifadə başa olacaq, çünki Sizin hash funksiyası, bir nöqtəyə almaq, Siz aşağı sonda xətti mövcud bir yer. Amma indi, əlbəttə, bir şey , orada bitir ki, başqa Siz olacaq daha da aşağı axtarış. Və çox daha çox var Axtarış xərc ki, bir element giren gider İndi hash masa, sağ? İndi siz getmək və cəhd və tapmaq zaman giləmeyvə, yenidən, bu hash olacaq, və, demək olacaq oh, bucket 1 baxmaq, və olacaq deyil bucket 1, belə ki, istəyirik axır gedir bu qalan vasitəsilə. Belə ki, bəzən faydalı lakin əksər hallarda, biz demək olacaq chaining nə etmək istəyirəm nə. Beləliklə, biz bu əvvəllər danışdıq. Mən özüm bir az qabaqda var. Amma chaining əsasən ki, Sizin hash cədvəldə hər bir bucket Yalnız bir bağlı siyahısı. Belə ki başqa bir yol, və ya daha çox texniki yol, bir hash masa düşünmək yalnız bir sıra var ki, bağlı siyahıları, hansı zaman sizin lüğət yazılı edirik və onu yüklemek üçün çalışdığınız, bir kimi düşünür bağlı siyahıları array bu, çox asan olacaq Siz başlamaq üçün. Auditoriya: Belə hash table müəyyən bir ölçüsü var, buketler bir [Işitilemez] kimi? HOPARLÖR 1: Right. Belə ki, bir sıra var Siz determine-- ki, buketler siz uşaqlar olmalıdır ilə oynamaq üçün pulsuz hiss edirəm. Bu olduqca sərin ola bilər nə görmək üçün buketler nömrənizi dəyişdirmək kimi. Lakin Bəli, bu bir buketler sayı müəyyən. Nə kimi uyğun imkan verir Siz kimi çox elementləri Bu ayrı-ayrı chaining harada edir hər bucket siyahıları birləşdiriblər. Ki, hash masa deməkdir tam ölçüsü olacaq Əgər doğru olmaq lazımdır ki? Ki, bağlı siyahıları bütün point var. Cool. Orada hər kəs OK? Bütün hüquqlar. Ah. Nə oldu? Həqiqətən indi. Kimsə mənə həlak oldu Guess. OK, biz daxil olacaq bir az crazy olan çalışır. Mən hash masalar kimi. Mən, həqiqətən, sərin olduğunuzu düşünürəm. Çalışır çox, sərin var. Belə ki, hər kəs bir cəhd nə yadda bilər? Siz üzərində getdi olmalıdır Bu qısa mühazirə? Siz bu işləri necə cür yadınızdadırmı? Auditoriya: Mən yalnız noddede alıram biz artıq getmək ki. HOPARLÖR 1: Biz artıq getmək yoxdur. OK, biz, həqiqətən getmək olacaq indi artıq biz nə dediyini. Auditoriya: Bu axtarış ağac var. HOPARLÖR 1: Bəli. Bu axtarış ağac var. Awesome. Belə ki, burada qeyd etmək bir şey ki, biz fərdi simvol axtarır Burada, sağ? Belə ki, bizim hash funksiyası ilə əvvəl, biz bütövlükdə sözləri baxaraq, və indi biz daha aradığınız simvol, sağ? Beləliklə, biz burada və Mendel üzərində Maxwell var. Belə ki, əsasən bir Cəhd bir yol düşünmək bu barədə hər səviyyədə burada məktublar bir sıra edir. Belə ki, bu kök node sağ, burada? Bu bütün simvol var hər sözü başlaması üçün əlifba. Və nə etmək istəyirəm demək, OK, biz bəzi M söz var. Biz Maxwell üçün baxmaq olacaq, belə ki, edirik biz bütün M. Və M xal getmək digər array hər kimi uzun kimi söz, A var ki, bir söz ikinci məktubunda, kimi uzun bir söz ki, var kimi ikinci məktub B, bir göstərici olacaq Bəzi növbəti array gedir. Yəqin ki, bir yoxdur söz MP bir şey, Bu P mövqe belə array, yalnız NULL olardı. Bu, heç bir söz var, OK, deyərdim M OK, bir P izlədi etdi? Beləliklə, biz bu, hər barədə düşünmək əgər bu kiçik şeyi bir həqiqətən bu bir deyil Z. vasitəsilə A böyük Diziler Belə ki, hər biri ola bilər ki, bir cəhd bir günah növü? Auditoriya: yaddaş var. HOPARLÖR 1: Bu doğru, yaddaş ton var? Burada bu blokları hər biri 26 fəzalarında, 26 element array təmsil edir. Belə ki, çalışır kosmik ağır inanılmaz almaq. Lakin onlar çox sürətli. Belə ki, inanılmaz sürətli lakin həqiqətən kosmik səmərəsiz. Cür anlamaq lazımdır bir həyata istədiyiniz. Bu, sizin pset üçün həqiqətən sərin var lakin onlar yaddaş bir çox almaq yoxdur, belə ki, off ticarət. Bəli? Auditoriya: Bu mümkün olacaq sonra bir cəhd qurmaq və Siz bütün bir dəfə Siz lazım ki bu veri Ki, mənada ki, əgər mən bilmirəm. Mən xilas oldu bütün NULL simvol, lakin sonra Siz index them-- edə bilməz HOPARLÖR 1: Siz hələ lazımdır. Auditoriya: - Eyni şəkildə hər dəfə. HOPARLÖR 1: Bəli. Siz imkan NULL simvol lazımdır bir söz yoxdur, əgər bilirsiniz. Istədiyiniz bir şey var Ben idi? OK. Bütün hüquqlar, belə ki, biz gedirik bir az daha getmək arxasında texniki ətraflı Bir cəhd və bir nümunə ilə işləmək. OK, belə ki, bu eyni şeydir. Bir bağlı siyahı, bizim əsas Halbuki ? növ var istəyirəm sözü nə var - blok bina kimi bir node idi. Bir cəhd, biz də, bir node var lakin bu fərqli müəyyən edir. Beləliklə, biz bir bool var ki, Bir sözlə olub həqiqətən təmsil Bu yerdə mövcud, və sonra biz burada daha doğrusu bir sıra var bu bir göstəricisidir 27 simvol array. Və bu, bu halda, üçün 27-- Mən sizin bütün kimi əmin deyiləm, gözləyin əlifbası 26 məktublar var. Niyə biz 27 var? Belə ki, asılı olaraq Bu həyata yol, Bu pset edir ki, apostrophes üçün icazə. Belə ki, niyə əlavə biridir. Siz həmçinin bəzi lazımdır hallarda null terminator biri kimi daxil edilir Bu icazə ki, simvol, və onlar yoxlamaq necə Bu sözün sonu oldu. Əgər istəyirsinizsə, kontrol Study.cs50 Kevin video, həmçinin Wikipedia var bəzi yaxşı resursları. Amma biz yalnız cür keçmək olacaq Bir cəhd vasitəsilə iş ola bilər necə bir sunulur əgər. Belə ki, burada bir super sadə bir var onlara sözləri "yarasa" və "zoom" var. Və biz burada görmək kimi, burada bu kiçik kosmik Bizim bool təmsil Bəli, bu bir söz deyir. Və sonra bu bizim var simvol Diziler, sağ? Belə ki, biz vasitəsilə getmək üçün gedir Bu cəhd "yarasa" tapmaq. Belə ki, sağ üst başlayır? Və biz b uyğundur bilirik ki, İkinci index, ikinci element Bu array, bir və b çünki. Belə ki, təxminən ikinci. Və OK, o sərin edin deyir növbəti array, biz yadda, çünki, bu ki, hər deyil əslində element ehtiva edir. Bu serialların hər biri sağ, bir pointer var? Bu etmək üçün əhəmiyyətli bir fərq var. Mən bu çalışır var be-- gedir bilirəm ilk dəfə almaq üçün həqiqətən çətin, bu olsa ikinci və ya üçüncü dəfə və bu cür hələ çətin zahiri ki, Siz watch getmək əgər mən söz verirəm qısa yenə sabah, yəqin ki, bir çox mənada etmək lazımdır. Bu həzm üçün bir çox edir. Mən hələ bəzən am kimi, gözləyin, bir cəhd nədir? Mən bu istifadə edə bilərəm? Beləliklə, biz bu halda b var, olan ikinci göstəricidir. Biz idi varsa, demək, c və ya d və ya hər hansı digər məktub, Biz index geri xəritəsi lazımdır bizim serialın ki uyğundur. Beləliklə, biz rchar kimi edəcək və biz 25 0 onu xəritəyə off çıxmaq. Yaxşı Hamı necə, biz Bizim simvol xəritəsi? OK. Beləliklə, biz ikinci və biz getmək ki, bəli, bu null deyil. Biz bu növbəti array üçün hərəkət edə bilər. Beləliklə, biz burada bu növbəti array getmək. Və biz indi, OK, demək biz Burada əgər görmək lazımdır. A null ya yoxdur həqiqətən irəli hərəkət? Belə ki, bir həqiqətən edir Bu array irəli. Və biz OK, t bizim son məktubu, deyirlər. Beləliklə, biz index t gedin. Və sonra biz irəli hərəkət Çünki başqa bir var. Və bu, bəli, əsasən deyir ki, bir söz olduğunu deyir burada Bu edin ki, əgər yol, siz gəliblər Bir sözlə, biz bilirik "yarasa" dir. Bəli? Auditoriya: ki, var üçün standart deyilmi sonra index 0 və 1 bir növ var və ya sonunda var? HOPARLÖR 1: No. Biz geri baxmaq əgər Belə ki, bizim burada bəyannamə, bir bool var, belə ki, sizin node öz element var. Belə ki, serialın bir hissəsi deyil. Cool. Biz söz bitirmək zaman Belə ki, biz Bu array, biz nə istəyirik Bu söz üçün bir çek var. Və bu halda, bəli qayıtmaq istəyirəm. Belə ki qeyd, biz ki, "zoo" bilirik - "zoo" bir söz olduğunu insanlar kimi, biz bilirik sağ? Amma burada edirəm çalışırlar yox, bu deyil, deyirlər. Və deyərdim ki, çünki biz burada bir söz kimi təyin deyil. Hətta biz axır bilər baxmayaraq Bu array vasitəsilə, Bu cəhd, heç deyərdim ki zoo sizin lüğət deyil biz yoxdur, çünki bu kimi təyin. Belə bir yolu that-- etmək oh, sorry, bu bir. Belə ki, bu halda, "zoo" deyil bir söz, lakin bu, bizim cəhd edir. Amma bu bir, biz bunu istəyirik demək "hamamı," nə olar sözü təqdim biz through-- b, a, t əməl edir. Biz bu array istəyirik, və biz saat axtarmaq üçün getmək. Bu halda, biz h göstərici baxmaq, OK, null işarə? Bu aydın var əgər Beləliklə, başqa array işarə edərək, güman bütün göstəricilərinə ki Bu array null işarə edilir. Bu halda belə, h işarə edir biz bir şey edə bilməz, belə ki, null, o da qayıtmaq yalan, "vanna" burada deyil. Belə ki, indi biz həqiqətən istəyirik ilə getmək niyyətində Biz həqiqətən demək olardı ki, "zoo" bizim cəhd edir. Necə ki, biz cəhd daxil "zoo" daxil edə bilərəm? Biz başlayan eyni şəkildə belə bizim bağlı siyahısı, biz kök başlamaq. Şübhə, başlamaq zaman, bunlar kök. Və biz, OK, z demək lazımdır. z bu var, və bunu edir. Belə ki, hərəkət edirik növbəti array, OK? Və sonra növbəti bir, Biz OK, o mövcud deyil, demək? Bu yoxdur. Bu bir daha. Və növbəti bir, biz, deyib sonra OK, "zoo" artıq burada mövcud. Biz nə etmək lazımdır Bütün bu bərabər müəyyən edilir doğru, bir söz var. Siz hər şeyi təqib olsaydı o nöqtəyə gəlmədən əvvəl qədər, Bu, bir söz belə yalnız Belə bərabər müəyyən. Bəli? Auditoriya: Belə ki, o yoxdur "ba" sözü də o demək? HOPARLÖR 1: No. Belə ki, bu halda, "ba" biz almaq olardı Burada, biz bir söz deyərdim və hələ heç bir olardı. OK? Mmhmm? Auditoriya: siz bir dəfə Belə ki, bir söz və sonra, bəli demək m getmək ehtiva edir? HOPARLÖR 1: Belə ki, bu nə var with-- Siz bu loading edirik. Siz "zoo" bir söz demək. Siz yoxlamaq üçün getmək zaman kimi, demək istəyirəm demək, "zoo" Bu lüğət mövcud? Siz yalnız ", zoo" üçün axtarış olacaq və sonra bir söz var görmek üçün yoxlamaq. Siz heç hərəkət olacaq ki, deyil, çünki m vasitəsilə nə üçün aradığınız. Belə ki, biz, həqiqətən, istəyirdi Bu cəhd daxil "vanna" əlavə, biz eyni şey olardı biz kimi "zoo," zaman biz görərik ki, istisna olmaqla, cəhd və saat almaq, mövcud deyil. Çalışırıq Beləliklə, siz hesab edə bilər bir bağlı siyahı yeni node əlavə, belə ki, biz başqa əlavə etmək lazımdır ki, belə kimi bu Diziler biri. Və sonra biz yalnız h müəyyən edilir, biz nə Bu işarə bu serialın element. Və sonra nə biz burada nə istəyirsiniz? Doğru bərabər əlavə çünki bir söz var. Cool. Mən bilirəm. Çalışır deyil ən maraqlı var. Mənə etibar, mən bilirəm. Belə ki, bir şey çalışır ilə həyata keçirmək, Mən onlar çox səmərəli istəyirik, bildirib. Beləliklə, biz onlar gördüm kosmik bir ton almaq. Onlar cür çaşdırıcı edirik. Belə ki, niyə biz heç bu istifadə edir? Onlar çünki biz bu istifadə olduqca səmərəli. Əgər arıyorsanız Belə ki, Bir sözlə up, siz yalnız sözün uzunluğu ilə həmsərhəddir. Belə ki, bir aradığınız uzunluğu beş edir ki, söz, Siz yalnız heç olacaq OK, ən çox beş müqayisələr etmək? Belə ki, əsasən sabit edir. Durub və axtarış kimi əsasən daimi vaxt var. Əgər əldə edə bilərsiniz Belə ki, əgər daimi vaxt bir şey, ki, olur kimi yaxşı. Siz daha yaxşı almaq bilməz bu şeylər üçün daimi vaxt. Belə ki biridir Çalışır böyük müsbət. Amma bu yer bir çox deyil. Siz cür qərar qəbul etmək nə üçün daha vacibdir. Və bu gün kompüter haqqında, kosmik cəhd bilər ki, bəlkə təsir etmir Siz çox, lakin bəlkə Əgər bir şey ilə məşğul ki, uzaq şeylər var və bir cəhd yalnız ağlabatan deyil. Bəli? Auditoriya: gözləyin, belə ki, 26 var hər biri məktublar? HOPARLÖR 1: Mmhmm. Bəli, siz 26 var. Siz bəzi sonra söz marker və var Hər biri 26 göstəricilərinə var. Onlar nöqtəsi edirik Auditoriya: Və hər 26, onlar hər 26 var? HOPARLÖR 1: Bəli. Siz kimi və ki, nə var kifayət qədər sürətlə genişləndirir, baxın. Bütün hüquqlar. Beləliklə, biz, ağac daxil olacaq olan Mən istəyirəm asan hiss və yəqin ki, bir gözəl az möhlət vermək ola orada çalışır olan. Belə ki, inşallah sizin ən əvvəl bir ağac görmüşəm. Olduqca kimi deyil kənarda olanları, mən hər kəs əgər bilmirəm Bu yaxınlarda açıq havada getdi. Mən alma bu həftə sonu aldığınız getdi, və Gosh mənim oh, gözəl idi. Mən yarpaqları bilmirdim ki, olduqca baxmaq bilər. Belə ki, bu yalnız bir ağac mı? Bu yalnız bir neçə node var və bu, digər qovşaqlarının bir dəstə göstərir. Burada görmək kimi, bu bir təkrarlanan mövzusu cür. Qovşaqlarının qovşaqlarının işarə cür deyil çox data strukturlarının mahiyyəti. Bu, yalnız biz necə asılıdır Onlara bir-birinə qeyd var və necə biz axır Onların vasitəsilə və necə ki, müəyyən şeylər daxil onların müxtəlif xüsusiyyətləri. Belə ki, yalnız bir terminologiya, Mən əvvəl istifadə etdik. Belə ki, kök çox üst nə edir. biz həmişə başlamaq harada var. Siz həmçinin rəhbəri kimi hesab edə bilər. Lakin ağaclar üçün, biz edirlər kök kimi baxın. Alt burada da bir şey çox çox bottom-- at hesab yarpaqları var. Belə ki, birlikdə gedir bütün ağac şey, sağ? Yarpaqları ağac kənarları var. Və sonra biz də bir neçə var şərtləri bağlı qovşaqlarının haqqında danışmaq bir-birinə. Belə ki, biz, valideyn var uşaq və bacı. Belə ki, bu halda, 3 edir 5, 6, və 7 valideyn. Belə ki, valideyn nə edir Siz etdiyiniz nə yuxarıda bir addım belə ki, yalnız, istinad bir ailə ağac kimi. İnşallah, bu bir az bit qalxsa daha asan. Qardaşları hər hansı var hüququ eyni valideyn? Onlar burada eyni səviyyədə deyilik. Və sonra mən kimi deyərək, uşaqlar yalnız var aşağıda bir addım nə edir sual node, OK? Cool. Belə ki, bir ikili ağac. Hər biri bir tahmin Risk bilər ikili ağac xüsusiyyətləri? Auditoriya: Max iki yarpaqları. HOPARLÖR 1: Right. Belə ki, iki yarpağı max. Belə ki, bu bir əvvəl, biz bu idi ki, üç idi, lakin bir ikili ağac Iki max var valideyn başına uşaqlar, sağ? Bir var maraqlı xarakterik. Hər kəs ki, bilir? Ikili ağac. Belə ki, bir ikili ağac hər şey olacaq the-- bu bir sıralanır deyil lakin sıralanır ikili ağac, sağ hər şey , valideyn daha böyük və sol hər şey ana azdır. Və bir viktorina olmuşdur sual əvvəl, belə yaxşı bilmək. Beləliklə, biz bu müəyyən yolu, yenə biz başqa bir node var. Bu nə çox oxşar görünür? Birə-iki Auditoriya: Əlaqəli siyahıları HOPARLÖR 1: A ikiqat bağlı siyahısı, sağ? Beləliklə, biz bu əvəz əgər əvvəlki və sonrakı ilə, bu bir ikiqat bağlı siyahısı olacaq. Lakin bu halda, biz, həqiqətən, sol və sağ və bu var. Əks halda, bu, tam eyni deyil. Biz hələ element var Siz aradığınız və yalnız iki göstəricilərinə malik nə gedən növbəti var. Bəli, belə ikili axtarış ağac. Biz hər şey fark etsəniz Burada daha than-- edir dərhal və ya hər şey Burada sağ , hər şeydən daha böyükdür burada azdır. Beləliklə, biz vasitəsilə axtarış olsaydı, onu Binar axtarış çox yaxın baxmaq lazımdır Burada, sağ? Əvəzinə axtarır istisna olmaqla yarım array, biz yalnız ya sol baxaraq yan və ya ağac sağ. Bir az sadə olur ki, düşünürəm. Kök NULL Belə ki, açıq-aydın yalnız yalan var. Orada varsa, təbii ki, bu doğrudur. Bu az varsa, biz sol axtarış. Bu daha çox varsa, Biz hüququ axtarış. Bu, məhz ikili axtarış kimi yalnız müxtəlif data struktur ki, biz istifadə edirik. Bunun əvəzinə bir sıra, yalnız bir ikili ağac var. OK, borular. Və həmçinin, biz kimi görünür vaxt bir az ola bilər. Biz nə varsa, mən getmək üçün xoşbəxtəm Bu hər hansı bir təkrar. OK, belə ki, borular. Hər kəs nə yadda varmı stacks-- bir yığın hər hansı bir xüsusiyyətləri? OK, bizim ən ki, mən hesab edirəm ki, yemək yemək halls-- biz kimi ola bilər kimi kimi çox. Lakin aydındır ki, siz bir yığın hesab edə bilər sözün yalnız qablar bir yığın kimi və ya şeyi bir yığın. Və nə vacibdir həyata keçirmək üçün bu ki, xarakterik şey biz by-- zəng LIFO edir. Hər kəs üçün dayanır nə bilir? Mmhmm? Auditoriya: ilk, həyata davam. HOPARLÖR 1: sağ, ilk həyata davam. Biz bilirik ki, biz hər şeyi yığma edirsinizsə qədər asan şey off-- qamarlamaq üçün və bəlkə yalnız biz qamarlamaq bilər bizim yığını böyük enough-- əgər off ki, üst element edir. Belə ki, nə qoyuldu Biz burada bax last--, nə sövq edildi ən çox recently-- edir ilk olacaq biz off pop ki, bir şey, OK? Belə ki, nə biz burada var başqa typedef struct. Bu, həqiqətən, yalnız bir istəyirəm edir data strukturunda kurs qəza, belə ki, uşaqlar da atılan bir çox var. Mən bilirəm. Belə ki, başqa bir struct. Strukturları üçün Yay. Və bu halda, bəzi göstərici deyil bəzi qabiliyyəti var ki, bir sıra. Belə ki, bu, bizim yığını təmsil Burada, bizim faktiki array kimi ki, elementləri keçirilməsi. Və sonra biz burada bəzi ölçüsü var. Və adətən, saxlamaq istədiyiniz Sizin yığını necə böyük track Bu imkan neler çünki Siz ölçüsü bilirsinizsə etmək, Bu demək üçün imkan verir, OK, Mən gücü am? Mən daha bir şey əlavə edə bilərsiniz? Və bu da sizə deyir sizin yığını üst belə siz nə həqiqətən off bilər. Və əslində olacaq burada bir az daha aydın ola bilər. Belə təkan, bir şey üçün, əgər təkan həyata heç idi, Mən deyirdim ki, sizin yığını sağ, məhdud ölçüsü var? Bizim array bəzi qabiliyyəti var idi. Bu bir sıra var. Bu sabit ölçüsü var, belə ki, biz lazımdır daha çox qoyulması deyil əmin olun biz artıq bizim array həqiqətən üçün yer var. Belə ki, zaman bir təkan yaradılması edirik funksiyası, siz OK, demək bunu ilk şey, Mən yığını yer var? Mən deyilsə, sorry çünki Mən sizin element saxlamaq olmaz. Mən, onda siz saxlamaq istəyirəm Bu yığını üst, sağ? Bu biz nə ölçüsü takip. Biz ölçüsü takip deyilsə, biz onu qoymaq üçün harada bilmirəm. Biz necə çox şey bilmirəm artıq bizim array var. Açıq-aydın Like yolları var ki, bəlkə bunu edə bilər. Siz null hər şeyi başlamaq bilər və sonra son NULL kontrol, lakin daha asan şey yalnız OK, ölçüsü takip, demək. Mən bilirəm kimi mən dörd elementləri var Mənim array, növbəti şey belə biz qoymaq ki, biz istəyirik index 4 saxlamaq olacaq. Və sonra, əlbəttə, bu o deməkdir ki, Uğurla bir şey sövq etdik Sizin yığını üzərinə, siz ölçüsünü artırmaq istəyirik Bildiyiniz ki, belə olduğu Siz çox şey təkan bilər. Biz pop çalışırıq, əgər belə yığını off bir şey, ilk şey ola bilər nə Biz kontrol etmək istəyirəm ki? Siz almaq üçün çalışdığınız Sizin yığını off bir şey. Siz əmin var var Sizin yığını bir şey? No. Belə ki, nə biz yoxlamaq istəyirsiniz? Auditoriya: [işitilemez]. HOPARLÖR 1: ölçüsü yoxlayın? Size. Beləliklə, biz görmek üçün yoxlamaq istəyirəm ölçüsü OK, 0 daha çox? Bu, onda biz azaltmaq istəyirəm 0 ölçüsü və qayıtmaq. Niyə? Birinci biz idi basmaqla, biz bunu basdı ölçüsü və sonra yenilənir ölçüsü üzərində. Bu halda, biz ölçüsü decrementing edirik və sonra Yolma, onu alaraq bizim array. Niyə biz edə bilər? Mən mənim yığını bir şey varsa, o nöqtədə mənim ölçüsü nə olardı? 1. Və element 1 saxlanılır? Nə index-hazırda? Auditoriya: 0. HOPARLÖR 1: 0. Bu halda belə, biz həmişə sure-- etmək lazımdır yerinə qaytarılması ölçüsü minus 1, Çünki biz Bizim element olduğunu bilirik 1 az saxlanılır gedir bizim ölçüsü nə olursa olsun, bu yalnız qayğı. Bu bir az daha zərif yolu var. Və biz yalnız bizim azalma sonra ölçüsü və ölçüsü qayıtmaq. Mmhmm? Auditoriya: Mən yalnız ümumi tahmin niyə bu data structure ki faydalı ola? HOPARLÖR 1: Bu kontekstdə asılıdır. Nəzəriyyəsinin bəzi, belə ki, Siz OK with-- çalışırıq, bir faydalı bir var, əgər mənə görək kənarda daha çox faydalı CS. Baca ilə, istənilən vaxt sizə lazım bir şey takip ki, ən son əlavə zaman Siz bir yığın istifadə etmək istədiyiniz olacaq. Və mən bir yaxşı hesab edə bilməz İndi ki, nümunə. Amma zaman ən son şey, sizin üçün çox vacibdir ki, bir yığın var faydalı olacaq. Mən hesab edirəm ki, çalışıram bu yaxşı bir var. Mən növbəti bir yaxşı nümunə hesab əgər 20 dəqiqə, mən mütləq sizə xəbər verəcəkdir. Lakin ümumi bir şey var, kimi mən ən tapa ən son dedi ki, ən əhəmiyyətli oldu deyil bir yığın dövrəyə girir. Sıralarında isə qarşı cür. Və bütün kiçik itlər. Sağ, bu böyük deyilmi? Mən olmalıdır kimi hiss edirəm bir bunny video sağ ortasında uşaqlar üçün bölmə Bu sıx bir bölmə çünki. Belə ki, bir sıra. Əsasən bir sıra bir xətt kimi. Sizlərin bu gündəlik əmin istifadə edirəm, bizim yemək zalı kimi. Beləliklə, biz getmək lazımdır və mən bizim qablar almaq Siz uyğun gözləmək lazımdır çalmak və ya ərzaq almaq üçün. Burada fərq Bu FIFO olmasıdır. Belə ki LIFO ilk son idi həyata, FIFO İlk out, edir. Belə ki, bu qoymaq nə deyil ilk ən vacibdir. Gözləyir, əgər Belə ki, bir xətt siz bilərsiniz Siz getdi əgər təsəvvür Yeni iPhone almaq getmək və bir yığın olduğu line sonuncu adam, ilk var insanlar bir-birini öldürmək olardı. Belə ki, FIFO, biz bütün çox tanış edirik Burada real dünya ilə, və bütün həqiqətən nə var cür bu bütün xətt yeniden və strukturu kuyruk. Yığını ilə isə, biz təkan və pop var. Növbə ilə, biz enqueue və dequeue. Belə ki, enqueue əsasən deməkdir geri üzərinə qoyun, və dequeue vasitələri almaq ön off. Belə ki, bizim data strukturu bir az daha mürəkkəbdir. Biz takip ikinci bir şey var. Bu, baş olmadan doğru, dəqiq bir yığın edir? Bu yığını kimi eyni strukturu. Müxtəlif yalnız bir şey, indi biz deyil Siz nə düşünürsünüz bu baş var takip gedir? Auditoriya: Birinci. HOPARLÖR 1: Sağ, biz qoymaq ki, ilk şey. Bizim növbə rəisi. Kim line ilk var. Bütün hüquqlar, belə ki, biz enqueue əgər. Yenə, hər hansı bu data strukturları, biz bir sıra ilə məşğul olduğunuz ildən, biz yer yoxlamaq lazımdır. Bu mənə izah kimi növ edir Siz uşaqlar, bir fayl açmaq əgər, Siz null yoxlamaq lazımdır. Bu borular hər hansı və sıralarında, sizə lazım biz istəyirik, çünki yer var görmek üçün sabit ölçülü array ilə məşğul, biz bütün qədər 5 burada 0, 1 görmək kimi. Belə ki, halda nə çek edir biz hələ yer var görmek üçün. Ölçüsü gücü az? Əgər belədirsə, biz onu saxlamaq lazımdır biz ölçüsü yeniləmək və quyruq. Belə ki, quyruq, bu halda nə ola bilər? Bu aydın yazılı deyil. Biz bunu necə saxlamaq olardı? Quyruq nə olardı? Belə ki, bu misal vasitəsilə gəzmək edək. Belə ki, bu, ölçüsü 6 bir sıra mı? Və biz indi, bizim ölçüsü 5 var. Biz bunu qoymaq zaman, gedir sağ beşinci indeksi, getmək üçün? Belə ki, quyruq saxlamayın. Quyruq yazmaq üçün başqa bir yolu ki, yalnız ölçüsü index bizim array, doğru ola? Bu ölçüsü 5. Next şey 5 getmək üçün gedir. Cool? OK. Bu bir az daha mürəkkəb olur Biz baş ilə messing başlamaq zaman. Bəli? Auditoriya: o deməkdirmi ki, biz bir sıra elan olardı ki, Beş elementləri uzun idi və sonra biz üzərinə əlavə edirik? HOPARLÖR 1: No. Belə ki, bu halda, bu bir yığın edir. Bu elan olunacaq ölçüsü 6 bir sıra kimi. Və bu halda, biz Yalnız bir kosmik sol var. OK, belə ki, bir şey bu deyil halda, bizim baş 0 əgər, sonra biz yalnız ölçüsü əlavə edə bilərsiniz. Amma bir az trickier olur həqiqətən, çünki onlar slayd yoxdur Bunun üçün mən gedirəm bu deyil, çünki bir çəkmək kifayət qədər sadə bir dəfə şeyi kurtulmanın başlamaq. Bir yığını ilə isə belə Siz yalnız heç var ölçüsü nə narahat zaman bir şey əlavə edirik, növbə ilə siz də etmək lazımdır baş uçota əmin, Çünki sıralarında haqqında bir sərin şey ki, siz gücü ilə değilseniz, Siz, həqiqətən, ətrafında kesmek edə bilərsiniz. OK, belə bir şey oh, Bu dəhşətli təbaşir edir. Hesab bir şey belədir. Biz yalnız beş edəcəyik. OK, belə ki, biz olacaq baş Burada demək. Bu 0, 1, 2, 3, 4. Baş var, və Onlara hər şeyi edin. Və biz doğru, bir şey əlavə etmək istəyirsiniz? Belə ki, şey etmək lazımdır ki, bilirik baş həmişə ki, Bu şəkildə hərəkət və sonra loop geri ətrafında, OK? Belə ki, bu queue, sağ yer var? Bu, əvvəldən yer var Bu qarşı cür. Beləliklə, biz nə etmək lazımdır biz quyruq hesablamaq lazımdır. Siz bilirik ki, əgər sizin baş köçürülüb deyil, quyruq yalnız sizin array edir ölçüsü index. Amma əslində, bir sıra istifadə edirsinizsə, sizin baş yəqin ki yenilənir olunur. Beləliklə, siz nə etmək lazımdır nə əslində quyruq hesablamaq. Belə ki, nə biz nə bu formula edir burada, mən sizə imkan gidiyorum olan uşaqlar haqqında düşünmək, və sonra biz bu barədə danışacağıq. Belə ki, bu gücü. Belə ki, bu, həqiqətən olacaq siz bunu etmək üçün bir yol verir. Çünki bu halda, nə? Bizim baş 1-də, bizim ölçüsü 4 edir. Biz 5 mod ki, əgər biz 0 almaq, olan biz bu giriş olmalıdır edir. Belə ki, sonra növbəti halda, Bunu olsaydı, Biz OK, bir şey dequeue edək deyirlər. Biz bu dequeue. Biz sağ, bu element almaq? İndi baş, burada işarə edir və biz başqa şey əlavə etmək istəyirəm. Bu əsasən deyil geri xətt, sağ? Sıralarında array ətrafında kesmek olar. Ki, əsas fərqlər biridir. Depo, siz bunu edə bilməz. Kuyrukları ilə siz bilərsiniz ki, bütün məsələlər, çünki Bilirsiniz ki, nə ən son əlavə edildi. Hər şey əlavə olacaq ildən Bu leftward istiqamətdə, bu halda, və sonra ətrafında kesmek, siz yeni elementlər qoyulması davam serialın qarşısında həqiqətən deyil, çünki artıq serialın ön. Siz əvvəlində hesab edə bilər başını həqiqətən olduğu kimi array. Belə ki, bu formula necə Sizin quyruq hesablamaq. Ki, hissi verir mu? OK. OK, dequeue, və sonra Sizlərin 10 dəqiqə var Mənə hər hansı bir aydınlaşdırıcı sual Mən crazy var bilirik, çünki siz, istədiyiniz. Eyni yolla belə bütün hüququ Sizlərin qeyd əgər mən bilmirəm lakin CS bütün nümunələri haqqında. Things olduqca çox var yalnız kiçik tweaks ilə, eyni. Burada belə eyni şey. Biz, əgər biz həqiqətən görmək yoxlamaq lazımdır sağ bizim növbə bir şey var? OK, 0-dən ölçüsü böyükdür, demək? Cool. Əgər belə etsək, onda biz baş, hərəkət edən Mən burada nümayiş edir. Biz bir daha olmaq üçün baş yeniləmə. Və sonra biz azalma bizim ölçüsü və element qaytarın. Daha konkret var study.cs50.net haqqında code, və Mən gedən gəlir Əgər vaxt varsa vasitəsilə, hətta yalnız bir yalançı kodu var əgər. Və uşaqlar ilə danışmaq istəyirsinizsə Mənə bir-biri ilə, mənə bildirin ki, bilirik. Mən xoşbəxt olarıq. Data strukturları, əgər Siz CS 124 almaq, siz lazımdır data strukturları çox almaq bilirik ki, fun və bu, yalnız başlayır. Mən çətin olduğunu bilirik. OK. Biz mübarizə. Mən hələ yoxdur. Belə ki, haqqında çox narahat olmayın. Amma ki, əsasən deyil data strukturları kursu qəza. Mən bir çox bilirik. Bir şey var, biz daha çox getmək istəyirəm? Biz vasitəsilə danışmaq istədiyiniz bir şey? Bəli? Auditoriya: Məsələn, belə Yeni quyruq ki, artıq 0 edir? HOPARLÖR 1: Bəli. Auditoriya: OK. Beləliklə, keçir 1 plus 4 or-- istiyorum HOPARLÖR 1: Beləliklə, siz deyirsiniz ki, biz getmək istədiyiniz zaman yenidən bunu? Auditoriya: Bəli. Siz yazaraq figuring əgər Belə ki, var Siz ki, olan quyruq hesablanması? HOPARLÖR 1: Beləliklə, quyruq Mən bu dəyişdi in-- idi. Belə ki, burada bu nümunə, bu idi Biz OK, aradığınız array? Beləliklə, biz 1, 2, 3, və 4 şeylər var. Belə ki, biz rəhbəri 1 bərabər var Bu nöqtədə, bizim ölçüsü 4 bərabərdir Bu nöqtədə, sağ? Siz ki, bütün halda razıyam? Belə ki, biz baş plus ölçüsü, hansı Bizə 5 verir, sonra biz 5 mod. Biz 0 ki, bizə deyir ki, 0 almaq biz yer bizim quyruq edir. Auditoriya: bir cap nədir? HOPARLÖR 1: gücü. Sorry. Belə ki, serialın ölçüsü. Bəli? Auditoriya: [işitilemez] əvvəl Biz element qayıtmaq? HOPARLÖR 1: Beləliklə, biz hərəkət rəhbərlik və ya an qayıtmaq? Biz bir hərəkət əgər Belə ki, ölçüsü azalma? Tutun. Mən mütləq bir unuttum. Ağla heç. Başqa formula yoxdur. Bəli, siz qayıtmaq istəyirəm baş və sonra geri hərəkət. Auditoriya: OK, çünki bu At point, baş, 0 idi və sonra qayıtmaq istəyirəm index 0 və sonra baş 1 etmək? HOPARLÖR 1: Right. Mən bir var hesab edirəm bu kimi formula cür. Mən üst mənim baş yoxdur Mən sizə yanlış bir vermək istəmirəm. Amma bu mükəmməl etibarlı hesab demək, OK, bu element saxlamaq nə rəhbərinin element azalma That sizin ölçüsü, başını üzərində hərəkət, və qaytarılması hansı ki elementidir. Ki, mükəmməl etibarlı. OK. Bu kimi hiss edirəm Bu most-- kimi deyilik buradan çıxmaq niyyətindədir kimi, bəli, mən çalışır bilirik. Mən bunu bütün var. Ki, OK. Mən söz verirəm. Amma data strukturları bir şey var ki, Bu vaxt bir çox istifadə almaq edir. Ağır yəqin ki şeyi, Mən əlbəttə, düşünürəm. Belə ki, mütləq edir təkrar və at-- I axtarır Həqiqətən bağlı siyahıları bilmirəm Mən onlara çox çox nə qədər, eyni şəkildə mən deyil həqiqətən göstəricilərinə anlamaq Mən yaşadım qədər iki öyrətməkdir il və bu mənim öz Psets yoxdur. Bu təkrar və çox vaxt alır. Və nəhayət, bu cür basın olacaq. Lakin bu vaxt, siz cür varsa yüksək səviyyədə anlaşma nə Bu onların müsbət, nə və nə olan cons-- Biz, həqiqətən vurğulamaq edirlər, xüsusilə intro kurs. Kimi, niyə biz istifadə edəcək bir bir sıra üzərində cəhd? Kimi, müsbət nə və o hər neqativlər? Və ticarət-off dərk Bu strukturların hər arasında İndi çox daha əhəmiyyətli nə edir. Crazy bir ola bilər ki, sual və ya iki təkan həyata xahiş gedən və ya pop və ya enqueue və dequeue həyata keçirir. Amma çox hissəsi üçün, ki, olan yüksək səviyyədə anlaşma və daha çox intuitiv grasp edir əslində daha əhəmiyyətli onu həyata edə. Bu, həqiqətən zəhmli olarıq siz əgər çıxmaq və bir cəhd həyata getmək bilər, lakin biz mütləq deyil anlamaq hazırda ən ağlabatan şey. Amma siz istəyirsinizsə, sizin pset bilərsiniz və sonra təcrübə almaq lazımdır, və sonra bəlkə lazımdır həqiqətən başa düşürük. Bəli? Auditoriya: olanlardır OK, hansı ki, Biz pset istifadə üçün nəzərdə? Mən onlardan birini istifadə etmək lazımdır? HOPARLÖR 1: Bəli. Belə ki, sizin seçimi var. Mən biz bu halda tapmaq pset bir az haqqında danışmaq Mən bu yolu qaçdı, çünki. Sizin pset Belə ki, sizin var çalışır və ya hash masalar seçimi. Bəzi insanlar çalışacağıq və çiçəklənmə filtreleri istifadə lakin o cəhətdən düzgün deyil. Çünki onların ehtimal xarakterli, Onlar bəzən yalan pozitivlər verir. Onlar baxmayaraq, sərin baxmaq istəyirik. Yüksək axtarır gəlir Onlara ən azı. Amma siz seçimi var bir hash masa və bir cəhd arasında. Və harada olacaq Siz lüğət yük. Və siz seçmək lazımdır Sizin hash funksiyası, Siz necə çox seçmək lazımdır Siz vedrələri və bu dəyişir. Daha çox buketler var əgər kimi, bəlkə daha sürətli run lazımdır. Amma bəlkə bir israf edirik yer çox olsa ki, yol. Siz anlamaq lazımdır. Mmhmm? Auditoriya: Siz əvvəl bildirib digər hash funksiyaları istifadə edə bilərsiniz, biz yoxdur ki, bir hash funksiyası yaratmaq? HOPARLÖR 1: sağ, Bəli. Belə ki, sözün hash funksiyası üçün, Google kimi "hash funksiyası" və bəzi sərin olanlar üçün baxmaq. Siz qurmaq gözlənilmir Öz hash funksiyaları. İnsanlar sərf onların Bu şeyi tezis. Belə ki, öz tikinti haqqında narahat olmayın. Ilə başlamaq üçün bir tap online. Onlardan bəziləri var bir az manipulyasiya etmək üçün əmin qaytarılması növləri uyğun və etajer, əvvəlində belə, Mən bir şey istifadə məsləhətdir həqiqətən asan ki, bəlkə yalnız ilk məktub hashes. Və sonra ki, iş bir dəfə, bir soyuducu hash funksiyası daxil. Mmhmm? Auditoriya: bir cəhd istəyirsiniz və ya səmərəli, lakin qədərdir yalnız daha HOPARLÖR 1: Belə bir cəhd, mən hesab edirəm ki, həyata daxilən çətindir lakin çox sürətli. Lakin, daha çox yer tutur. Yenə də, bu, həm də optimize edə bilərsiniz müxtəlif yolları və yolları var to-- Auditoriya: Biz bu barədə pilləli var? Bu matter-- mu HOPARLÖR 1: Beləliklə, siz normal şəkildə pilləli edirik. Siz dizayn pilləli olacaq. Hansı nə yolla, istədiyiniz Bu ola bilər kimi zərif əmin olun və səmərəli ola bilər. Amma bir cəhd və ya hash seçerseniz masa, kimi uzun işləyir, ki, memnun. Əgər bir şey istifadə əgər və hashes ilk məktub ki, gözəl kimi bəlkə dizayn-müdrik kimi. Biz də çatan edirik Bu dövr nöqtəsi Bilmirəm əgər Siz əgər noticed-- uşaqlar pset notları bir az imtina çünki dizayn və etajer, ki, mükəmməl gözəl var. Bu nöqtəyə əldə harada proqramlar daha mürəkkəb alır. Daha çox yerlərdə var Siz inkişaf edə bilər. Belə ki, mükəmməl normal deyil. Bu istəyirik ki, deyil Sizin pset pis edir. Bu yalnız biz indi sizə daha çox olan edirik oldu. Belə ki, hər kəs hiss edir. Mən bütün psets pilləli. Mən hər kəs hiss bilirik. Belə ki, narahat olmayın. Və haqqında hər hansı bir sualınız varsa, əvvəl psets və ya inkişaf edə bilər yolları, Mən cəhd və xüsusi şərh yerlərdə, lakin bəzən gec deyil Mən yorğun almaq. Hər hansı digər şeylər var haqqında məlumat strukturları? Mən sizə uşaqlar həqiqətən əmin deyiləm Artıq onlar haqqında danışmaq istəyirəm, var, mən xoşbəxtəm bir şey, habelə onların üzərində getmək mühazirə bu keçmiş həftə və ya ötən həftə. Mən, ötən həftə bütün baxış idi bəzi nəzərdən üzərində atlandı bilər mühazirə. Mən cavab bilər hər hansı digər suallar? OK, bütün hüququ. Yaxşı, uşaqlar erkən 15 dəqiqə çıxmaq. Mən bu ən azı yarı faydalı idi ümid edirik Mən gələn həftə uşaqlar görəcəksiniz, və ya Cümə axşamı ofis saat. Qəlyanaltılar üçün sorğu var Növbəti həftə üçün, bu bir şey var? Mən bu gün konfet unuttum çünki. Mən son konfet gətirdi həftə, lakin, Columbus Day idi belə altı insanlar kimi var olan özləri konfet dörd yastıqları idi. Mən Starbursts gətirə bilər Istədiyiniz təkrar. Starbursts? OK, yaxşı səslənir. , Böyük bir gün uşaqlar var.