1 00:00:00,000 --> 00:00:11,460 2 00:00:11,460 --> 00:00:12,250 >> DAVID Malan: Yaxşı. 3 00:00:12,250 --> 00:00:13,860 CS50 geri salamlayıram. 4 00:00:13,860 --> 00:00:16,190 Bu həftə 8 başlayın. 5 00:00:16,190 --> 00:00:21,320 Və problem set 5 sona çatdı geri bir problem bir az. 6 00:00:21,320 --> 00:00:25,210 Belə ki, sizin bütün bərpa hərfinin tədris əməkdaşları və CA fotoşəkillər 7 00:00:25,210 --> 00:00:30,480 ki, card.raw fayl, siz uyğun İndi insanların bütün tapmaq və 8 00:00:30,480 --> 00:00:34,510 bir xoşbəxt qalibi biri ilə ev gəzmək bu şeyi, sıçrayış hərəkət 9 00:00:34,510 --> 00:00:37,450 Siz final üçün istifadə edə bilərsiniz ki, cihaz Misal üçün layihələr. 10 00:00:37,450 --> 00:00:39,860 >> Bu, hər il gətirib çıxarır creepiness bir bit. 11 00:00:39,860 --> 00:00:43,480 Və buna nə Mən bunu istədiyiniz fikir payı sizinlə olan qeydlərindən bəzi 12 00:00:43,480 --> 00:00:47,370 artıq geri və irəli getdi gec heyəti siyahısı. 13 00:00:47,370 --> 00:00:51,110 Məsələn, yalnız dünən gecə quote üçün heyəti bir-birinə dırnağı bağlamaq 14 00:00:51,110 --> 00:00:55,000 üzvləri, "Mən yalnız bir tələbə knock idi mənim qapısını mənə bir şəkil çəkmək üçün. 15 00:00:55,000 --> 00:00:59,020 Stalkers, Mən sizə deyə. "Başladı biz köçürülüb sonra ədalətli təsviri və 16 00:00:59,020 --> 00:01:02,830 üçün, bir saat və ya sonra, "Mən idi Tələbə dünyası sonra məni gözləyir 17 00:01:02,830 --> 00:01:06,080 və o, bizim adları və şəkilləri bütün idi kağız bəzi vərəqələri. "Yaxşı. 18 00:01:06,080 --> 00:01:09,230 Belə ki, təşkil, lakin hələ bütün ürpertici. 19 00:01:09,230 --> 00:01:12,520 >> Sonra, "Mən bu həftə sonu, şəhər olub və geri əldə zaman, bir var idi 20 00:01:12,520 --> 00:01:12,630 mənim 21 00:01:12,630 --> 00:01:16,740 yataq otağı. "[gülüş] 22 00:01:16,740 --> 00:01:20,410 DAVID Malan: a heyəti Sonrakı quote üzvü, "Bir tələbə mənim evinə gəldi 23 00:01:20,410 --> 00:01:25,330 4 Somerville bu səhər AM. "Next heyəti, "Mən San mənim otel var 24 00:01:25,330 --> 00:01:30,016 Francisco və tələbə gözləyirdi üç DSLRs ilə lobbisi mənə. " 25 00:01:30,016 --> 00:01:31,510 Kamera növü. 26 00:01:31,510 --> 00:01:34,980 "Mən heyət Bu dövr belə deyiləm lakin bir tələbə mənim ev bu qırdı 27 00:01:34,980 --> 00:01:40,480 bütün şey səhər və qeyd . Google Cam "və sonra nəhayət, 28 00:01:40,480 --> 00:01:43,650 "Ən azı 12 nəfər maraqla idi Mən həyata əldə zaman mənim üçün gözləyir 29 00:01:43,650 --> 00:01:44,800 limo, sonra 30 00:01:44,800 --> 00:01:46,970 oyandım. "Yaxşı. 31 00:01:46,970 --> 00:01:57,690 Belə ki, fotoşəkillər arasında kimi ola bilər Xatırladaq ki, bu fellow Sən kimsən burada, 32 00:01:57,690 --> 00:02:01,850 yaşayan Milo Banana kimi bilirik bilər Lauren Carvalho, bizim başçısı ilə 33 00:02:01,850 --> 00:02:02,905 Fellow tədris. 34 00:02:02,905 --> 00:02:05,170 Milo, Milo, burada oğlan gəlir. 35 00:02:05,170 --> 00:02:06,320 Milo. 36 00:02:06,320 --> 00:02:08,650 Milo. 37 00:02:08,650 --> 00:02:12,230 Ağla, o, Google Glass qalıcı oldu Bu, bütün sonra göstərilir. 38 00:02:12,230 --> 00:02:16,190 Əgər istəyirsinizsə Belə ki, bu Milo edir Sonra onunla bir fotoşəkil edir. 39 00:02:16,190 --> 00:02:18,240 Siz baxmaq istəyirsinizsə, orada tamaşaçı. 40 00:02:18,240 --> 00:02:19,430 OK. 41 00:02:19,430 --> 00:02:20,200 Yaxşı görüntülər var. 42 00:02:20,200 --> 00:02:22,556 Yaxşı, Milo Banana. 43 00:02:22,556 --> 00:02:23,941 Oh, bu nə yoxdur. 44 00:02:23,941 --> 00:02:29,020 >> [Gülüş] 45 00:02:29,020 --> 00:02:29,470 >> OK. 46 00:02:29,470 --> 00:02:34,550 Irəli yalan nə sonra bir söz Belə ki, biz keçid başlayacaq kimi, çünki, 47 00:02:34,550 --> 00:02:38,410 bu həftə xüsusilə, bir C-dən command line PHP üçün ətraf mühit və 48 00:02:38,410 --> 00:02:42,720 JavaScript və SQL və HTML və CSS-ci ildə bir web-based mühit, biz olacaq 49 00:02:42,720 --> 00:02:44,490 bütün ilə təchiz üçün daha çox bilik 50 00:02:44,490 --> 00:02:46,010 potensial final layihələr. 51 00:02:46,010 --> 00:02:49,240 Ki, sonuna doğru, kurs bir var seminarlar keçirilməsi ənənə olan 52 00:02:49,240 --> 00:02:50,950 teğetsel mövzular haqqında seyrinə. 53 00:02:50,950 --> 00:02:54,330 Çox proqramlaşdırma ilə əlaqədar app inkişaf və s, lakin 54 00:02:54,330 --> 00:02:57,010 mütləq tərəfindən tədqiq deyil Kursun öz proqramı. 55 00:02:57,010 --> 00:03:00,250 >> Bir maraqlı ola bilər Belə ki, əgər bu il seminarların və ya daha çox 56 00:03:00,250 --> 00:03:02,530 cs50.net/seminar qeydiyyatdan. 57 00:03:02,530 --> 00:03:06,170 Older seminarlar var cs50.net/seminars edir. 58 00:03:06,170 --> 00:03:10,620 Bu il üçün bu günə qədər Kadrosu haqqında Ruby ilə Amazing web apps var 59 00:03:10,620 --> 00:03:13,580 Alternativ olan relslər, PHP dili. 60 00:03:13,580 --> 00:03:14,900 Computational Dilçilik. 61 00:03:14,900 --> 00:03:18,710 Da olan iOS, Giriş və iPhone üçün istifadə ki, platforma 62 00:03:18,710 --> 00:03:19,850 iPad inkişafı. 63 00:03:19,850 --> 00:03:22,890 JavaScript Web Apps üçün, biz əhatə edəcəyik ki, lakin bu seminar, siz gedəcəyəm 64 00:03:22,890 --> 00:03:24,070 daha ətraflı daxil. 65 00:03:24,070 --> 00:03:27,390 >> Motion atılmaq, belə ki, biz, həqiqətən, bəzi olacaq Leap Motion bizim dostlar, 66 00:03:27,390 --> 00:03:29,160 Şirkət özü, bizə qoşul. 67 00:03:29,160 --> 00:03:31,800 Sabah, əslində, təmin etmək üçün bir praktiki seminar, əgər 68 00:03:31,800 --> 00:03:33,320 Əgər maraq. 69 00:03:33,320 --> 00:03:38,770 Meteor.js üçün alternativ texnika bir brauzerinizin JavaScript istifadə edərək, 70 00:03:38,770 --> 00:03:39,970 lakin bir server. 71 00:03:39,970 --> 00:03:42,110 Çox olan Node.js, Bu baxımdan, o cümlədən. 72 00:03:42,110 --> 00:03:43,650 Hamar Android Design. 73 00:03:43,650 --> 00:03:46,990 Android bir çox məşhur alternativ olan iOS və Windows Phone üçün 74 00:03:46,990 --> 00:03:48,790 və digər mobil platformalar. 75 00:03:48,790 --> 00:03:51,180 Və Web Təhlükəsizlik Aktiv Müdafiə. 76 00:03:51,180 --> 00:03:54,590 >> Belə ki, əslində, istədiyiniz əgər Bu məşğul olmaq, mənə bildirin 77 00:03:54,590 --> 00:03:55,840 Bu qeyd edir. 78 00:03:55,840 --> 00:03:57,790 Biz ki, çox memnun Leap bizim dostlarımız 79 00:03:57,790 --> 00:03:59,140 Başlanğıc olan Motion - 80 00:03:59,140 --> 00:04:01,300 Bu cihaz həqiqətən yalnız gəldi bir neçə ay əvvəl out - 81 00:04:01,300 --> 00:04:05,960 graciously 30 Belə cihazları hədiyyə etmişdir bir çox tələbə kimi sinif, əgər 82 00:04:05,960 --> 00:04:08,670 Siz hardware borc istiyorum semestr sonuna doğru və üçün istifadə 83 00:04:08,670 --> 00:04:10,390 faktiki son layihəsi. 84 00:04:10,390 --> 00:04:11,890 Onlar dil bir sıra dəstəkləyir. 85 00:04:11,890 --> 00:04:16,040 Onların heç biri belə C, onların heç biri PHP, həyata bu seminarların bir və ya daha çox 86 00:04:16,040 --> 00:04:16,899 maraq sübut ola bilər. 87 00:04:16,899 --> 00:04:19,730 Və onların hamısı lentə olunacaq edə olmayan hadisə 88 00:04:19,730 --> 00:04:21,380 şəxsən iştirak etmək. 89 00:04:21,380 --> 00:04:25,000 Cədvəli vasitəsilə açıqlanacaq biz otaqlar bərkimək kimi e-poçt. 90 00:04:25,000 --> 00:04:28,460 >> Və nəhayət, siz getmək əgər projects.cs.50.net, bu haqqinda 91 00:04:28,460 --> 00:04:31,450 biz dəvət hər il saxlamaq ictimaiyyət fakültəsini dən insanlar 92 00:04:31,450 --> 00:04:36,420 şöbələri, kadr, həm CS50 üçün bir kənarda 93 00:04:36,420 --> 00:04:37,730 layihə ideyaları təklif. 94 00:04:37,730 --> 00:04:39,050 Tələbə qruplarının maraq şeylər. 95 00:04:39,050 --> 00:04:40,600 Şöbələri maraq şeylər. 96 00:04:40,600 --> 00:04:43,990 Siz mübarizə istəyirsinizsə Belə ki, orada tövbə yoxdur nə kimi qeyri-müəyyənlik ilə 97 00:04:43,990 --> 00:04:46,700 özünüz həll etmək istəyirik. 98 00:04:46,700 --> 00:04:51,760 >> Belə ki, sonuncu dəfə biz arguably təqdim daha mürəkkəb data structure biz had çox 99 00:04:51,760 --> 00:04:53,300 son həftə görüldü. 100 00:04:53,300 --> 00:04:56,550 Biz olduqca seriallarda istifadə edilmişdir ediyorum Əgər məsud kimi faydalı 101 00:04:56,550 --> 00:04:58,160 basitçe data structure. 102 00:04:58,160 --> 00:05:00,570 Sonra, bu tətbiq edən əlbəttə siyahıları bağlıdır. 103 00:05:00,570 --> 00:05:05,470 Üçün və motivasiya biri nə idi Bu data strukturu tətbiq? 104 00:05:05,470 --> 00:05:06,930 Bəli? 105 00:05:06,930 --> 00:05:07,250 Nə olub? 106 00:05:07,250 --> 00:05:08,080 >> Auditoriya: Dinamik ölçüsü. 107 00:05:08,080 --> 00:05:09,040 >> DAVID Malan: Dinamik ölçüsü. 108 00:05:09,040 --> 00:05:11,890 Array isə Belə ki, sizə qabaqcadan onun ölçüsü ne zaman 109 00:05:11,890 --> 00:05:12,740 siz onu ayırırlar. 110 00:05:12,740 --> 00:05:14,380 Bağlı siyahısında, deyil bilirik ki, var. 111 00:05:14,380 --> 00:05:17,610 Siz ümumiyyətlə yalnız malloc, və ya, bilər əlavə ayrılması 112 00:05:17,610 --> 00:05:20,720 node, belə danışmaq, hər hansı bir zaman daha çox məlumat əlavə etmək istəyirəm. 113 00:05:20,720 --> 00:05:22,670 Və node heç bir mənası müəyyən etmişdir. 114 00:05:22,670 --> 00:05:25,580 Bu, sadəcə izah ümumi bir müddət var Biz istəyirik ki, konteyner bir növ 115 00:05:25,580 --> 00:05:29,610 saxlamaq üçün bizim data structure istifadə bu maraq bəzi maddə olan 116 00:05:29,610 --> 00:05:31,750 halda integers olmaq nə. 117 00:05:31,750 --> 00:05:33,160 >> Amma bir tradeoff həmişə var. 118 00:05:33,160 --> 00:05:38,070 Beləliklə, biz məlumatların dinamik ölçüləri almaq strukturu, amma biz nə qiymət ödəmək edirsiniz? 119 00:05:38,070 --> 00:05:40,040 Bağlı siyahıların İşin mənfi tərəfi odur nədir? 120 00:05:40,040 --> 00:05:41,006 Bəli? 121 00:05:41,006 --> 00:05:41,980 >> Auditoriya: daha çox yaddaş tələb edir. 122 00:05:41,980 --> 00:05:44,240 >> DAVID Malan: Bu daha çox tələb edir yaddaş, necə? 123 00:05:44,240 --> 00:05:46,440 >> Auditoriya: [işitilemez]. 124 00:05:46,440 --> 00:05:47,050 >> DAVID Malan: Eynilə elə. 125 00:05:47,050 --> 00:05:50,460 Belə ki, indi biz göstəricilərinə alaraq ki, əlavə yaddaş daha əvvəl ki, 126 00:05:50,460 --> 00:05:53,040 ehtiyac yox idi, çünki üstünlüyü bir sıra, əlbəttə, ki, 127 00:05:53,040 --> 00:05:54,860 hər şey bitişik, geri geri yükləndiyindən, bu 128 00:05:54,860 --> 00:05:56,380 Siz təsadüfi imkanı verir. 129 00:05:56,380 --> 00:06:00,710 Çünki yalnız kvadrat mötərizə istifadə edərək, notation və ya daha çox texniki pointer 130 00:06:00,710 --> 00:06:03,580 hesab, çox sadə Bundan əlavə, Əgər hər hansı bir istifadə edə bilərsiniz 131 00:06:03,580 --> 00:06:05,700 daimi zaman elementləri. 132 00:06:05,700 --> 00:06:08,975 Və əslində, ki, imalı növü var biz ilə ödənilməsi edirik ki, bir qiymət 133 00:06:08,975 --> 00:06:09,760 bağlı siyahısı. 134 00:06:09,760 --> 00:06:13,890 >> Nə çalışan zaman olur Axtarış kimi bir şey, mən istəyirsinizsə 135 00:06:13,890 --> 00:06:17,270 bəzi dəyəri və daxili tapmaq bir bağlı siyahı? 136 00:06:17,270 --> 00:06:20,290 Mənim çalışan zaman nə olmaq edir? 137 00:06:20,290 --> 00:06:21,560 N böyük Ç. 138 00:06:21,560 --> 00:06:24,060 Bu sıralanır olur? 139 00:06:24,060 --> 00:06:25,440 Nə data structure sıralanır olur? 140 00:06:25,440 --> 00:06:28,640 Böyük daha yaxşı edə bilərsiniz Axtarmaq üçün n O? 141 00:06:28,640 --> 00:06:31,700 Xeyr, çünki ən pis halda bu ola bilər çox yaxşı sorted, lakin sayı 142 00:06:31,700 --> 00:06:32,950 Siz böyük ola bilər arıyoruz. 143 00:06:32,950 --> 00:06:35,370 Bu, sayı 100 ola bilər bütün olmaq nə bilər 144 00:06:35,370 --> 00:06:36,410 sonunda yolu. 145 00:06:36,410 --> 00:06:39,950 Və yalnız bir bağlı əldə edə bilərsiniz, çünki bu həyata keçirilməsində siyahısı 146 00:06:39,950 --> 00:06:42,690 ilk node yolu, sen uğurlar həyata hələ cür. 147 00:06:42,690 --> 00:06:47,450 Siz bütün şey axır var ilk tapmaq üçün davam 148 00:06:47,450 --> 00:06:49,150 100 kimi böyük dəyəri. 149 00:06:49,150 --> 00:06:51,350 Bu və ya müəyyən etmək üçün belə var. 150 00:06:51,350 --> 00:06:55,960 >> Beləliklə, biz məlumatların nə alqoritm edə bilməz strukturu kimi görünür ki? 151 00:06:55,960 --> 00:06:59,460 Biz binar axtarış edə bilməz, çünki ikili search ki, tələb 152 00:06:59,460 --> 00:07:00,740 rasgele erişim. 153 00:07:00,740 --> 00:07:04,500 Biz yalnız yer üçün atılmaq bilər riayət olmadan yer 154 00:07:04,500 --> 00:07:07,080 şəklində bu çörək qırıntıları Bütün bu göstəricilər edir. 155 00:07:07,080 --> 00:07:08,300 >> İndi necə bu həyata idi? 156 00:07:08,300 --> 00:07:12,830 Yaxşı, biz burada ekran getmək halda, əgər biz tez Bu data reimplement bilər 157 00:07:12,830 --> 00:07:13,440 strukturu - 158 00:07:13,440 --> 00:07:15,670 mənim yazı bütün deyil burada böyük, ancaq biz çalışacağıq. 159 00:07:15,670 --> 00:07:22,030 Belə ki typedef struct və nə etdi mən Bu şey burada zəng etmək istəyirsiniz? 160 00:07:22,030 --> 00:07:22,960 Node. 161 00:07:22,960 --> 00:07:24,580 Belə ki, mən açılmış almaq lazımdır. 162 00:07:24,580 --> 00:07:27,860 İndi nə daxilində olmalıdır ki story üçün veri strukturu 163 00:07:27,860 --> 00:07:28,430 siyahısı bağlıdır? 164 00:07:28,430 --> 00:07:29,950 Necə bir çox sahələrdə? 165 00:07:29,950 --> 00:07:30,450 >> Iki SO. 166 00:07:30,450 --> 00:07:31,570 Bir olduqca asandır. 167 00:07:31,570 --> 00:07:33,050 N Belə ki, int. 168 00:07:33,050 --> 00:07:35,930 Və biz istəyirik n bir şey zəng edə bilər biz əgər ancaq int olmalıdır 169 00:07:35,930 --> 00:07:37,660 ints üçün bağlı siyahı həyata keçirilməsi. 170 00:07:37,660 --> 00:07:41,920 İndi nə ikinci edir sahəsində lazımdır? 171 00:07:41,920 --> 00:07:43,460 Struct node *. 172 00:07:43,460 --> 00:07:50,570 Mən struct node *, sonra mən əgər Mən də istəyirəm nə bu zəng edə bilərsiniz, 173 00:07:50,570 --> 00:07:53,510 ancaq mən zəng edəcəyik aydın olacaq gələn, biz bunu olduğunuz kimi. 174 00:07:53,510 --> 00:07:55,270 Və sonra mən buruq aşırma yaxın olacaq. 175 00:07:55,270 --> 00:08:00,700 >> İndi, son dəfə olaraq, Burada node yazmaq. 176 00:08:00,700 --> 00:08:03,830 Amma bu elan alıram əgər kimi node, nə mən olan narahat idi 177 00:08:03,830 --> 00:08:07,320 burada struct elan ci verbose node * Növbəti kimi fərqli 178 00:08:07,320 --> 00:08:09,210 Növbəti yalnız node * üçün? 179 00:08:09,210 --> 00:08:09,904 Bəli? 180 00:08:09,904 --> 00:08:12,810 >> Auditoriya: [işitilemez]. 181 00:08:12,810 --> 00:08:14,050 >> DAVID Malan: Eynilə elə. 182 00:08:14,050 --> 00:08:14,530 Eynilə elə. 183 00:08:14,530 --> 00:08:18,320 C, həqiqətən, sizin sözün edir və Çünki yalnız node müəyyən görür 184 00:08:18,320 --> 00:08:21,230 burada yolla, siz bilməzsiniz burada qədər baxın. 185 00:08:21,230 --> 00:08:24,760 Beləliklə, biz preemptive bu növ var admittedly olan burada bəyannamə, 186 00:08:24,760 --> 00:08:25,390 daha ayrıntılı. 187 00:08:25,390 --> 00:08:27,810 Struct node o deməkdir ki, indi gedə bilərsiniz 188 00:08:27,810 --> 00:08:29,760 məlumatların strukturu daxilində. 189 00:08:29,760 --> 00:08:33,370 >> Və bir kənara kimi, bu, çünki , indi bir az daha subyektiv olmaq 190 00:08:33,370 --> 00:08:36,230 ulduz texniki burada bilərsiniz, burada getmək olar, ola bilər 191 00:08:36,230 --> 00:08:37,179 hətta orta gedir. 192 00:08:37,179 --> 00:08:39,890 Biz üçün stil təlimatda qəbul etdik gedişində qoyulması qurultayının 193 00:08:39,890 --> 00:08:42,299 məlumatların hüququ yanındakı ulduz növü, bu halda ki, 194 00:08:42,299 --> 00:08:43,460 struct node olardı. 195 00:08:43,460 --> 00:08:46,620 Lakin dərsliklərin bir çox dərk edir və online istinadlar, həqiqətən, qüdrət 196 00:08:46,620 --> 00:08:48,450 digər tərəfdə görürəm. 197 00:08:48,450 --> 00:08:52,200 Lakin əslində hər iki həyata işləmək və sadəcə olmalıdır 198 00:08:52,200 --> 00:08:52,970 ardıcıl. 199 00:08:52,970 --> 00:08:53,580 >> Bütün hüquqlar. 200 00:08:53,580 --> 00:08:55,630 Beləliklə, bizim bəyannamə idi ki, struct node. 201 00:08:55,630 --> 00:08:59,430 Amma sonra biz çox iş başladı müasir şeylər. 202 00:08:59,430 --> 00:09:03,410 Məsələn, biz tətbiq qərar verdi bir hash masa kimi bir şey. 203 00:09:03,410 --> 00:09:08,160 Belə ki, burada ölçüsü n bir hash masa edir n yuxarı sol 0 endekslenen 204 00:09:08,160 --> 00:09:09,690 minus altındakı 1 buraxdı. 205 00:09:09,690 --> 00:09:11,640 Bu hash ola bilər bir şey üçün masa. 206 00:09:11,640 --> 00:09:15,340 Amma biz şeyi cür danışmaq nə bir hash masa istifadə haqqında? 207 00:09:15,340 --> 00:09:18,370 Nə saxlanılması? 208 00:09:18,370 --> 00:09:18,800 >> Adlar. 209 00:09:18,800 --> 00:09:20,870 Biz kimi adları edə bilər Biz son dəfə idi. 210 00:09:20,870 --> 00:09:22,200 Və həqiqətən, heç bir şey saxlaya bilərsiniz. 211 00:09:22,200 --> 00:09:24,640 Və biz yenə bu görürsünüz PHP və JavaScript. 212 00:09:24,640 --> 00:09:28,550 A hash masa İsveçrə gözəl bir növ Siz saxlamaq üçün imkan verir ki, Ordu bıçaq 213 00:09:28,550 --> 00:09:33,690 olduqca çox siz daxilində istədiyiniz hər hansı dəyərləri ilə düymələri şərik tərəfindən. 214 00:09:33,690 --> 00:09:34,770 Dəyərləri ilə Keys. 215 00:09:34,770 --> 00:09:37,800 >> İndi bu sadə halda, bizim düymələri yalnız nömrələr. 216 00:09:37,800 --> 00:09:40,380 Biz hash həyata edirik bir sıra kimi masa. 217 00:09:40,380 --> 00:09:43,500 Və belə açarları 0 var, 1, 2, və s. 218 00:09:43,500 --> 00:09:47,200 Və beləliklə, biz insanlar kimi, son qərar Əgər istəyirsinizsə nə bilirik həftə ki, 219 00:09:47,200 --> 00:09:50,410 mağaza adları gedən edək yalnız özbaşına, lakin olduqca məntiqi, 220 00:09:50,410 --> 00:09:54,680 güman ki, Alice, A adı, yalnız 0 daxil dizine olacaq. 221 00:09:54,680 --> 00:09:58,030 Və Bob B adı, indexed olunacaq 1 dilinə və s. 222 00:09:58,030 --> 00:10:02,490 Beləliklə, biz, giriş arasında mapping idi olan strings və hash 223 00:10:02,490 --> 00:10:04,560 ədəd olan yerlərdə. 224 00:10:04,560 --> 00:10:07,740 >> Belə ki, prosesi ümumiyyətlə kimi tanınır bir hash funksiyası, və siz həqiqətən bilərsiniz 225 00:10:07,740 --> 00:10:09,130 bu kodu həyata keçirir. 226 00:10:09,130 --> 00:10:12,080 Mən hash funksiyası həyata keçirmək istəyirdi ki, dəqiq nə biz edir 227 00:10:12,080 --> 00:10:17,070 yalnız keçən zaman təsvir, mən güc kimi, görür ki, bir funksiyası elan 228 00:10:17,070 --> 00:10:18,330 Misal üçün giriş - 229 00:10:18,330 --> 00:10:22,190 və Gəlin bu barədə bunu buraya ekran. 230 00:10:22,190 --> 00:10:26,180 Mən hash həyata keçirmək istəyirdi funksiyası, mən demək olar 231 00:10:26,180 --> 00:10:27,410 bu kimi bir şey. 232 00:10:27,410 --> 00:10:29,030 >> Bu int geri olacaq. 233 00:10:29,030 --> 00:10:33,600 Bu hash adlı olacaq, və bu bir dəlil kimi qəbul etmək niyyətindədir 234 00:10:33,600 --> 00:10:38,920 simli, və ya, indi daha çox uyğun ola bilər və char * demək, biz bu s zəng edəcəyik. 235 00:10:38,920 --> 00:10:43,840 Və sonra bütün bu funksiya, nə var nəticə etibarilə, bir int qayıtmaq edir. 236 00:10:43,840 --> 00:10:45,990 İndi, necə ki, güc belə aydın deyil. 237 00:10:45,990 --> 00:10:49,510 Mən heç bir olmadan bu həyata gidiyorum İndi yoxlanılması səhv təşkil edir. 238 00:10:49,510 --> 00:10:55,740 Mən kor-koranə demək gedirəm, qayıtmaq s bracket 0 nə edir, mənfi 239 00:10:55,740 --> 00:10:58,850 qoy paytaxtı A nöqtəli vergül, deyirlər. 240 00:10:58,850 --> 00:10:59,960 >> Ümumilikdə qırıldı. 241 00:10:59,960 --> 00:11:02,620 Bu mükəmməl deyil, çünki bir, s null nə olur? 242 00:11:02,620 --> 00:11:04,000 Bad şeylər edir. 243 00:11:04,000 --> 00:11:07,940 Iki, nə bu ilk məktub adı kapital məktub deyil? 244 00:11:07,940 --> 00:11:09,860 Çevirmək niyyətində deyil ki, həyata yaxşı ya. 245 00:11:09,860 --> 00:11:11,970 Bu kiçik məktub ola bilər və ya heç bir məktubu. 246 00:11:11,970 --> 00:11:15,520 Burada yaxşılaşdırılması üçün Belə ki, tamamilə otağı, lakin bu əsas fikirdir. 247 00:11:15,520 --> 00:11:19,010 >> Biz şifahi keçən həftə açıqlanan nə üçün Alice birdən bir proses 248 00:11:19,010 --> 00:11:23,360 1 0 Bob ifadə etmək olar əlbəttə daha formulaically C kimi 249 00:11:23,360 --> 00:11:24,320 burada fəaliyyət göstərir. 250 00:11:24,320 --> 00:11:28,630 Yenidən hash adlı kimi simli edir giriş, və sonra birtəhər bir şey yoxdur 251 00:11:28,630 --> 00:11:31,020 bir çıxış istehsal üçün giriş ilə. 252 00:11:31,020 --> 00:11:34,130 Bizim qara qutusu təsviri fərqli biz uzun etdik ki,. 253 00:11:34,130 --> 00:11:36,550 Mən bu ola bilər necə bilmirəm başlıq altında işləyir. 254 00:11:36,550 --> 00:11:40,120 >> Problem set 6, problemlərdən biri üçün Əgər qərar qəbul etmək üçün nə 255 00:11:40,120 --> 00:11:41,920 sizin hash funksiyası olacaq? 256 00:11:41,920 --> 00:11:45,760 Ki, qara daxilində olacaq nə qutusu, və ehtimalla, bu olacaq 257 00:11:45,760 --> 00:11:50,380 az daha bu daha maraqlı və səhv mütləq daha çox meylli 258 00:11:50,380 --> 00:11:53,180 bu artıq yoxlanılması həyata keçirilməsi. 259 00:11:53,180 --> 00:11:54,580 >> Amma problemlər hüququ yarana bilər? 260 00:11:54,580 --> 00:11:57,760 Biz bu kimi bir veri strukturu varsa biri problemlərdən biri var 261 00:11:57,760 --> 00:12:01,600 daxil etməzdən kimi zamanla daxil edə bilərsiniz daxil daha çox adları 262 00:12:01,600 --> 00:12:02,880 hash table? 263 00:12:02,880 --> 00:12:04,630 Siz sağ, toqquşma almaq? 264 00:12:04,630 --> 00:12:07,560 Nə Alice Harun varsa, adları baş iki nəfər 265 00:12:07,560 --> 00:12:08,190 A ilə başlayacaq? 266 00:12:08,190 --> 00:12:11,660 Harada ki, siz, sual begs ikinci bir ad qoymaq? 267 00:12:11,660 --> 00:12:15,050 >> Yaxşı, siz naively yalnız qoymaq bilər Bob aid olduğu, lakin sonra Bob edir 268 00:12:15,050 --> 00:12:17,300 Siz cəhd Əgər cür berbat Növbəti onun adını daxil edin və 269 00:12:17,300 --> 00:12:18,240 Onun üçün heç bir otaq yoxdur. 270 00:12:18,240 --> 00:12:21,400 Belə ki, Charlie olduğu Bob qoymaq bilər və bu çox tez təsəvvür edə bilərsiniz 271 00:12:21,400 --> 00:12:23,020 bir mess bir qədər daxil devolving. 272 00:12:23,020 --> 00:12:25,600 Sonunda xətti bir şey hara yalnız bütün şey axtarmaq lazımdır 273 00:12:25,600 --> 00:12:28,190 Alice ya Bob axtarır və ya Harun və ya Charlie. 274 00:12:28,190 --> 00:12:33,230 >> Belə ki, əvəzinə yerine yalnız təklif xətti açıq fəzalarında probing 275 00:12:33,230 --> 00:12:36,450 və biz orada adları plopping bir meraklısı yanaşma təklif edir. 276 00:12:36,450 --> 00:12:41,740 Bir ilə hələ də həyata bir hash table indeksləri dizi, amma məlumatların növü 277 00:12:41,740 --> 00:12:44,500 bu göstəriciləri indi göstəricilərinə idi. 278 00:12:44,500 --> 00:12:47,360 Nə Pointers? 279 00:12:47,360 --> 00:12:48,730 Bağlı siyahıları Pointers. 280 00:12:48,730 --> 00:12:53,330 >> Çünki bağlı siyahısı Xatırladaq ki, həqiqətən yalnız bir node pointer və 281 00:12:53,330 --> 00:12:57,110 düyün növbəti sahəsində və node var bir sonrakı yatağı var və s. 282 00:12:57,110 --> 00:13:00,690 Belə ki, indi bu array hesab edə bilər bir hash masa kimi sol tərəfində 283 00:13:00,690 --> 00:13:01,820 bir bağlı siyahısına aparıcı. 284 00:13:01,820 --> 00:13:07,000 Bir almaq olan üstünlüyü Alice Harun arasında toqquşma, 285 00:13:07,000 --> 00:13:09,300 Siz ilə nə etməliyəm ikinci şəxs? 286 00:13:09,300 --> 00:13:14,150 Siz yalnız onu əlavə və ya onun sonunda, hətta əvvəlinə 287 00:13:14,150 --> 00:13:15,490 ki, bağlı siyahısı. 288 00:13:15,490 --> 00:13:17,340 >> Və faktiki vasitəsilə yalnız əriştə edək ki, yalnız ikinci edir. 289 00:13:17,340 --> 00:13:18,640 Harada ən mənada edəcək? 290 00:13:18,640 --> 00:13:22,060 Mən Alice daxil edin və o qədər başa əgər İlk yeri, sonra cəhd 291 00:13:22,060 --> 00:13:25,310 Harunun adını daxil edin və var açıq-aydın bir toqquşma, mən qoymaq lazımdır 292 00:13:25,310 --> 00:13:27,400 Onun başında bağlı siyahıda? 293 00:13:27,400 --> 00:13:30,944 Ki, birinci yer var və ya sonunda? 294 00:13:30,944 --> 00:13:31,440 >> Auditoriya: [işitilemez]. 295 00:13:31,440 --> 00:13:31,990 >> DAVID Malan: OK. 296 00:13:31,990 --> 00:13:32,490 Mən başlayan eşitdim. 297 00:13:32,490 --> 00:13:33,903 Nə başında? 298 00:13:33,903 --> 00:13:34,750 >> Auditoriya: [işitilemez]. 299 00:13:34,750 --> 00:13:34,940 >> DAVID Malan: OK. 300 00:13:34,940 --> 00:13:36,520 Bu əlifba var, gözəl var ki. 301 00:13:36,520 --> 00:13:37,330 Yaxşı bir əmlak var. 302 00:13:37,330 --> 00:13:39,335 Bu, mənim potensial bir neçə dəfə qənaət edəcək. 303 00:13:39,335 --> 00:13:43,290 Bu, mənim ikili axtarış qoy, lakin deyil mən ən azı çıxmaq edə bilər 304 00:13:43,290 --> 00:13:47,340 Mən həyata bir loop, yaxşı, mən yol Ben keçmiş idi Harun bu olacaq 305 00:13:47,340 --> 00:13:48,310 bağlı siyahı çeşidlənir. 306 00:13:48,310 --> 00:13:50,360 Mən axtarır mənim vaxt sərf yoxdur sonuna bütün yol. 307 00:13:50,360 --> 00:13:51,530 Belə ki, ağlabatan deyil. 308 00:13:51,530 --> 00:13:54,710 Niyə başqa siz daxil edə bilərsiniz müəssisələrdə vuruşan adı 309 00:13:54,710 --> 00:13:56,660 siyahısı başlayan? 310 00:13:56,660 --> 00:13:57,397 Nə olub? 311 00:13:57,397 --> 00:13:58,680 >> Auditoriya: [işitilemez]. 312 00:13:58,680 --> 00:14:00,820 >> DAVID Malan: Bu uzun bir müddət bilər siyahının sonuna almaq üçün. 313 00:14:00,820 --> 00:14:02,490 Və əslində, daha uzun və daha uzun. 314 00:14:02,490 --> 00:14:04,920 Daxil etməzdən çox adları ki, A, artıq başlamaq 315 00:14:04,920 --> 00:14:06,280 zəncir almaq üçün gedir. 316 00:14:06,280 --> 00:14:07,890 Uzun bağlı ki, siyahısını almaq üçün gedir. 317 00:14:07,890 --> 00:14:09,420 Beləliklə, siz həqiqətən yalnız istəyirik zaman israf. 318 00:14:09,420 --> 00:14:14,070 Bəlkə saxlanması daha yaxşı off istəyirik daimi durub zaman, 1 böyük O, 319 00:14:14,070 --> 00:14:18,470 həmişə vuruşan adı qoyaraq bağlı siyahının başında 320 00:14:18,470 --> 00:14:21,230 və çox narahat deyil çeşidlənməsi haqqında. 321 00:14:21,230 --> 00:14:22,600 >> Ən yaxşı cavab nədir? 322 00:14:22,600 --> 00:14:23,320 Aydın deyil. 323 00:14:23,320 --> 00:14:26,140 Bu cür asılıdır nə paylanması modeli nə edir 324 00:14:26,140 --> 00:14:27,850 adları siz daxil edilir. 325 00:14:27,850 --> 00:14:29,430 Bu mütləq deyil açıq-aydın cavab. 326 00:14:29,430 --> 00:14:33,100 Amma burada, təkrar edir bir dizayn imkanı. 327 00:14:33,100 --> 00:14:37,220 >> Beləliklə, biz, sonra bu şey baxdı olan həqiqətən digər böyük imkandır 328 00:14:37,220 --> 00:14:38,180 p-set 6. 329 00:14:38,180 --> 00:14:41,770 Və siz artıq varsa, dərk Hash bu həm daxil Zamyla dalış, 330 00:14:41,770 --> 00:14:43,260 masalar və daha ətraflı çalışır. 331 00:14:43,260 --> 00:14:45,630 Və video gözden geçirmek edir p-set spec ilə əlaqədar. 332 00:14:45,630 --> 00:14:46,590 Bu trie idi - 333 00:14:46,590 --> 00:14:51,670 T-R-I-E. Haqqında maraqlı nə idi Bu, çalışan dəfə 334 00:14:51,670 --> 00:14:59,510 Maxwell kimi, adı axtarmaq son dəfə nə böyük O idi? 335 00:14:59,510 --> 00:15:01,040 Nə olub? 336 00:15:01,040 --> 00:15:01,920 >> Auditoriya: məktublar sayı. 337 00:15:01,920 --> 00:15:02,550 >> DAVID Malan: məktublar sayı. 338 00:15:02,550 --> 00:15:03,210 Mən iki şeyi eşitdim. 339 00:15:03,210 --> 00:15:04,630 Məktubları və daimi vaxt sayı. 340 00:15:04,630 --> 00:15:05,540 Belə ki, ilk getmək bildirin. 341 00:15:05,540 --> 00:15:06,410 Məktublar sayı. 342 00:15:06,410 --> 00:15:10,195 Bəli, bu data structure, geri ki, bir ağac, bir ailə ağac, hər istəyirəm 343 00:15:10,195 --> 00:15:12,860 olan qovşaqlarının serialları təşkil edir. 344 00:15:12,860 --> 00:15:16,300 Və bu diziler göstəricilərinə var bu kimi digər qovşaqlarının və ya digər 345 00:15:16,300 --> 00:15:17,670 ağac dizilerin. 346 00:15:17,670 --> 00:15:22,890 >> Sonra müəyyən etmək istəyirdi Belə ki, əgər Maxwell burada olub, mən getmək bilər 347 00:15:22,890 --> 00:15:26,890 çox üst ilk sıra üçün ağac, sözdə kök, üst 348 00:15:26,890 --> 00:15:30,521 sonra trie və m pointer edin sonra bir göstərici, x, 349 00:15:30,521 --> 00:15:31,710 w, e, l, l. 350 00:15:31,710 --> 00:15:34,910 Və sonra, bəzi xüsusi simvolu görəndə bir üçbucaq kimi burada adlandırılmışdır. 351 00:15:34,910 --> 00:15:38,480 Kodu biz təklif görürsünüz ki, yalnız bəli deyərək, bir bool kimi həyata keçirilir 352 00:15:38,480 --> 00:15:40,540 və ya heç bir söz burada dayanır. 353 00:15:40,540 --> 00:15:45,270 >> Yaxşı, bir dəfə biz M-A-X-W-E-L-L getdi sonra, bəlkə yeddi kimi hiss 354 00:15:45,270 --> 00:15:48,910 səkkiz biz bu son bir, səkkiz Əgər Maxwell tapmaq üçün addımlar. 355 00:15:48,910 --> 00:15:53,050 Yoxsa İT K. deyirik Lakin son geri zaman, mən varsa iddia etdi ki, 356 00:15:53,050 --> 00:15:57,540 A real maksimum uzunluğu söz, 40-bəzi küsər simvol kimi, 357 00:15:57,540 --> 00:16:00,810 maksimum uzunluğu nəzərdə tutur daimi dəyər. 358 00:16:00,810 --> 00:16:05,770 Belə ki, həqiqətən, bəli, bu, texniki böyük O Amma 8 və ya 7, və ya K. həqiqətən böyük O 359 00:16:05,770 --> 00:16:09,420 nə bir məhdud cap varsa K ola bilər, bu, daimi var. 360 00:16:09,420 --> 00:16:12,080 Və bu 1 böyük O da var Günün sonu. 361 00:16:12,080 --> 00:16:13,040 >> Deyil, real dünyada. 362 00:16:13,040 --> 00:16:15,960 Həqiqətən seyr başlamaq deyil Proqram çalışan kimi saat. 363 00:16:15,960 --> 00:16:20,690 Bu, tamamilə bir az olacaq həqiqətən daimi ləng 364 00:16:20,690 --> 00:16:21,840 bir addım vaxt. 365 00:16:21,840 --> 00:16:25,540 Bu, yeddi və ya səkkiz addımlar olacaq lakin hələ ki, çox, daha yaxşı 366 00:16:25,540 --> 00:16:30,080 ki, n böyük Ey kimi alqoritm daha da ne ölçüsündən asılıdır 367 00:16:30,080 --> 00:16:31,220 data structure. 368 00:16:31,220 --> 00:16:34,970 >> Burada ayaq biz əlavə edə bilərsiniz fark bu bir milyon ad daha 369 00:16:34,970 --> 00:16:38,170 data structure, amma necə bir çox addımlar tapmaq üçün bizi gedir 370 00:16:38,170 --> 00:16:40,480 Bu halda Maxwell? 371 00:16:40,480 --> 00:16:40,780 Heç biri. 372 00:16:40,780 --> 00:16:41,820 O, səmimi deyil. 373 00:16:41,820 --> 00:16:45,480 Və bu günə qədər, biz gördük düşünmürəm məlumat strukturu və ya bir nümunəsi 374 00:16:45,480 --> 00:16:48,560 tamamilə idi ki, alqoritmi xarici ilə səmimi 375 00:16:48,560 --> 00:16:50,040 kimi davranışlar. 376 00:16:50,040 --> 00:16:51,160 Amma bu gözəl ola bilməz. 377 00:16:51,160 --> 00:16:52,900 Bu yalnız həll ola bilməz p-set üçün 378 00:16:52,900 --> 00:16:53,570 >> Və bu deyil. 379 00:16:53,570 --> 00:16:55,980 Bu data mütləq deyil strukturu üçün çekilmek lazımdır 380 00:16:55,980 --> 00:16:58,220 çünki hash masaları kimi tradeoff. 381 00:16:58,220 --> 00:17:00,500 Burada ödəmək qiyməti nədir? 382 00:17:00,500 --> 00:17:00,940 Yaddaş. 383 00:17:00,940 --> 00:17:02,890 Mən demək, bu dəhşətli deyil yaddaş məbləği. 384 00:17:02,890 --> 00:17:05,569 Və kifayət qədər burada görmək bilməz, çünki Bu şəkil müəllifidir 385 00:17:05,569 --> 00:17:09,420 Aydındır ki, serialların bütün qaralar və biz A çox görən və deyilik 386 00:17:09,420 --> 00:17:12,700 B və C və Q və Y-in və Z-nin bu Diziler edir. 387 00:17:12,700 --> 00:17:13,630 Lakin onlar orada istəyirik. 388 00:17:13,630 --> 00:17:17,660 >> Bu qovşaqlarının hər biri bütün array edir bir 26 və ya daha çox bayt, hər 389 00:17:17,660 --> 00:17:19,170 bir məktub təmsil edir. 390 00:17:19,170 --> 00:17:22,920 Biz kömək edə bilər ki, bizim halda 27 problem dəsti apostrophes. 391 00:17:22,920 --> 00:17:27,030 Bu data strukturu həqiqətən Belə ki, həqiqətən sıx və geniş. 392 00:17:27,030 --> 00:17:30,880 Və tək yavaşlatan başa bilər şeylər down, və ya ən azı bir qiymətqoyma 393 00:17:30,880 --> 00:17:32,240 çox daha çox yer. 394 00:17:32,240 --> 00:17:34,020 Ancaq yenə də, biz cəlb edə bilər Burada müqayisə. 395 00:17:34,020 --> 00:17:39,190 >> Geri bir müddət Xatırladaq, biz çox əldə çeşidlənməsi daha maraqlı çalışan zaman 396 00:17:39,190 --> 00:17:42,880 biz birləşməsi sort, lakin qiymət istifadə edərkən biz birləşməsi üçün n nail olmaq n daxil ödənilmiş 397 00:17:42,880 --> 00:17:46,930 sort biz sərf ki, tələb daha nə resurs? 398 00:17:46,930 --> 00:17:47,690 Daha çox yer. 399 00:17:47,690 --> 00:17:50,530 Biz ikinci array lazım kimi, insanları surəti 400 00:17:50,530 --> 00:17:51,620 Biz səhnədə burada idi. 401 00:17:51,620 --> 00:17:55,880 Belə ki, yenə də, heç bir aydın qalibləri ancaq subyektiv dizayn 402 00:17:55,880 --> 00:17:57,710 qərarlar qəbul ediləcək. 403 00:17:57,710 --> 00:17:58,060 >> Bütün hüquqlar. 404 00:17:58,060 --> 00:17:59,130 Belə ki, necə bu barədə? 405 00:17:59,130 --> 00:18:02,050 Hər kəs D-Hall tanımaq? 406 00:18:02,050 --> 00:18:02,440 OK. 407 00:18:02,440 --> 00:18:03,170 Belə ki, bizim üç yoxdur. 408 00:18:03,170 --> 00:18:03,750 Mather House. 409 00:18:03,750 --> 00:18:05,070 Beləliklə, bu Mather yemək üçün. 410 00:18:05,070 --> 00:18:09,650 Mən bütün yemək zalı var bahis olacaq Bu kimi tepsiler destesi. 411 00:18:09,650 --> 00:18:11,950 Və bu həqiqətən nümayəndəsi biz etdik şey 412 00:18:11,950 --> 00:18:13,050 açıq-aydın artıq görülür. 413 00:18:13,050 --> 00:18:14,850 Biz sanki bir yığın adlandırıb. 414 00:18:14,850 --> 00:18:18,970 Sizin baxımından və yığını data gedir kompüter yaddaş edir 415 00:18:18,970 --> 00:18:20,460 funksiyaları çağrıldığını edilir. 416 00:18:20,460 --> 00:18:23,410 >> Məsələn, hər şeyi nə cür getmək ilə bağlı yığını haqqında 417 00:18:23,410 --> 00:18:27,420 biz müzakirə etdik yaddaş layout son həftə? 418 00:18:27,420 --> 00:18:28,736 Nə olub? 419 00:18:28,736 --> 00:18:29,670 >> Auditoriya: funksiyaları çağırır. 420 00:18:29,670 --> 00:18:30,260 >> DAVID Malan: Üzgünüm. 421 00:18:30,260 --> 00:18:31,210 >> Auditoriya: funksiyaları çağırır. 422 00:18:31,210 --> 00:18:33,590 >> DAVID Malan: funksiyaları zənglər, lakin xüsusilə, hər daxilində var 423 00:18:33,590 --> 00:18:35,340 o çərçivələri? 424 00:18:35,340 --> 00:18:37,220 Şeyi nə cür? 425 00:18:37,220 --> 00:18:37,460 Bəli. 426 00:18:37,460 --> 00:18:38,500 Yerli dəyişənlər belə. 427 00:18:38,500 --> 00:18:43,080 Anytime biz bəzi yerli storage lazım bir dəlil kimi və ya int I, və ya int 428 00:18:43,080 --> 00:18:45,940 temp, və ya hər hansı yerli dəyişən, biz olduğunuz edir 429 00:18:45,940 --> 00:18:47,210 yığını ki qoymuşdur. 430 00:18:47,210 --> 00:18:49,610 Və biz bunu bir yığın zəng çünki ki, layering fikir. 431 00:18:49,610 --> 00:18:52,940 Reallığı ilə matçlarda yalnız cür, onun konsepsiyası. 432 00:18:52,940 --> 00:18:56,650 >> Amma bu, çıxır bir yığın da ki məlumat strukturu kimi görünür, bir 433 00:18:56,650 --> 00:19:00,110 bir sıra alternativ, alternativ bir bağlı siyahısına. 434 00:19:00,110 --> 00:19:02,770 Konseptual daha maraqlı bir şey hələ də ola bilər ki, 435 00:19:02,770 --> 00:19:06,030 o ya istifadə həyata şeylər, ancaq fərqli növü var 436 00:19:06,030 --> 00:19:09,140 data structure, həqiqətən, dəstəklənməsi yalnız iki əməliyyatları. 437 00:19:09,140 --> 00:19:11,000 Amma meraklısı əlavə edə bilərsiniz Bu çox xüsusiyyətləri. 438 00:19:11,000 --> 00:19:12,180 Amma bu əsasları var - 439 00:19:12,180 --> 00:19:13,510 itələmək və pop. 440 00:19:13,510 --> 00:19:19,240 >> Və bir yığın fikir ki, əgər mən və ya Annenberg olmadan, burada 441 00:19:19,240 --> 00:19:22,880 növbəti qapı bir tray bilmədən bu sayı 9. 442 00:19:22,880 --> 00:19:23,870 Belə ki, yalnız bir int. 443 00:19:23,870 --> 00:19:26,990 Mən data üzərinə bu basmaq istəyirəm Hal-hazırda boş olan strukturu. 444 00:19:26,990 --> 00:19:28,790 Bu yığını alt düşünün. 445 00:19:28,790 --> 00:19:33,150 Mən üzərinə bu sayı 9 təkan olardı yığın, indi sağ var. 446 00:19:33,150 --> 00:19:36,040 >> Amma bir yığın haqqında maraqlı şey İndi basmaq istəyirsinizsə ki, 447 00:19:36,040 --> 00:19:40,210 digər bəzi dəyəri kimi 17 və mən push yığını üzərinə bu, Mən gedirəm 448 00:19:40,210 --> 00:19:43,290 , yalnız gedirəm yalnız intuitiv şey sağ qoymaq üçün harada biz insanların 449 00:19:43,290 --> 00:19:45,180 üst, qoyun meylli olardı. 450 00:19:45,180 --> 00:19:48,850 Bəs indi Maraqlıdır , necə 9 alıram olunur? 451 00:19:48,850 --> 00:19:50,670 Bilirsiniz, mən bir səy olmadan deyil. 452 00:19:50,670 --> 00:19:54,070 >> Belə ki, nə haqqında maraqlı bir yığın ki, dizayn edir 453 00:19:54,070 --> 00:19:56,330 bir LIFO data structure var. 454 00:19:56,330 --> 00:19:59,680 Izah Silly yolu son, ilk. 455 00:19:59,680 --> 00:20:03,280 Belə ki, son sayı Bu zaman 17 oldu. 456 00:20:03,280 --> 00:20:07,540 Mən bir şey off pop istəyirəm əgər yığını, o yalnız 17 ola bilər. 457 00:20:07,540 --> 00:20:11,890 Belə ki, məcburi qaydada var burada əməliyyatları, burada son maddə 458 00:20:11,890 --> 00:20:14,260 ilk biri olmalıdır. 459 00:20:14,260 --> 00:20:16,440 Beləliklə abbreviaturadır, LIFO. 460 00:20:16,440 --> 00:20:19,160 >> Belə ki, niyə bu faydalı ola bilər? 461 00:20:19,160 --> 00:20:22,690 Onların məzmunları siz had olan bu kimi bir data structure istəyirsiniz? 462 00:20:22,690 --> 00:20:24,810 Bəli, əlbəttə ki, faydalı oldu kompüter daxilində. 463 00:20:24,810 --> 00:20:29,050 Belə ki, əməliyyat sistemləri aydın şəkildə istifadə çıxarıcı borular üçün bir veri strukturunun növ. 464 00:20:29,050 --> 00:20:32,800 Biz də eyni fikri görürsünüz web pages gəldikdə. 465 00:20:32,800 --> 00:20:35,890 Bu həftə və gələn həftə Belə və kənarda, və web həyata başlamaq kimi 466 00:20:35,890 --> 00:20:39,490 bir dildə pages HTML, siz adlı həqiqətən kimi data structure istifadə 467 00:20:39,490 --> 00:20:42,690 Bu müəyyən etmək üçün əgər səhifə düzgün biçimli edir. 468 00:20:42,690 --> 00:20:47,170 Görəcəyik Çünki bütün web pages edin iyerarxiya bir növ, bir abzas 469 00:20:47,170 --> 00:20:52,030 , günün sonunda bir olacaq başlıq altında ağac strukturu. 470 00:20:52,030 --> 00:20:53,620 Yalnız bir az ki, belə daha çox. 471 00:20:53,620 --> 00:20:56,560 >> Amma indi üçün, üzrə üçün təklif bildirin an, biz necə getmək bilər 472 00:20:56,560 --> 00:20:58,830 bir yığın nədir? təmsil 473 00:20:58,830 --> 00:21:03,370 Biz həyata ki, mənə təklif edək bu kimi kodunu yığın. 474 00:21:03,370 --> 00:21:07,990 Belə ki, bir yığın onun daxilində sahib olur iki şeyi, bir sıra adlı qablar, 475 00:21:07,990 --> 00:21:09,510 yalnız demo uyğun olmalıdır. 476 00:21:09,510 --> 00:21:12,660 Və sıra maddələrin hər bir növü int olacaq. 477 00:21:12,660 --> 00:21:14,740 Və tutum ehtimalla nədir? 478 00:21:14,740 --> 00:21:18,796 Mən yazılmışdır etdik Çünki Burada tam təyini. 479 00:21:18,796 --> 00:21:21,535 >> Bu yəqin ki, maksimum var serialın ölçüsü. 480 00:21:21,535 --> 00:21:25,150 Və yəqin ki, kəskin elan edir bəzi fayl üst müəyyən 481 00:21:25,150 --> 00:21:28,450 daimi cür nəzərdə tutulan sadəcə kapitallaşma. 482 00:21:28,450 --> 00:21:32,250 Belə ki, haradasa gücü müəyyən edilir maksimum ölçüsü kimi. 483 00:21:32,250 --> 00:21:35,590 Eyni zamanda, daxili məlumatların strukturu bir yığın kimi tanınan orada olacaq 484 00:21:35,590 --> 00:21:38,630 yalnız məlum bir tamsayı sadəcə ölçüsü kimi. 485 00:21:38,630 --> 00:21:43,400 >> Mən indi bu təmsil etmək idi əgər pictorially, bu Güman edək ki, bu 486 00:21:43,400 --> 00:21:48,070 bütün black box mənim yığını təmsil edir. 487 00:21:48,070 --> 00:21:50,070 Bu Inside iki dəyişənlər var. 488 00:21:50,070 --> 00:21:54,780 Mən cəlb etmək gidiyorum ölçüsü kimi ilk biridir. 489 00:21:54,780 --> 00:21:57,420 Və gedirəm ikinci bir sıra kimi cəlb etmək. 490 00:21:57,420 --> 00:22:01,060 >> Lakin, hər şeyi nizamlı saxlamaq adətən mən kimi bir sıra çəkmək olardı 491 00:22:01,060 --> 00:22:04,910 gözəl bu, ancaq bu cür biz reallıq uyğun və ya 492 00:22:04,910 --> 00:22:06,230 ruhi model uyğun. 493 00:22:06,230 --> 00:22:12,880 Mənə əvəzinə array cəlb edək şaquli, olan yalnız, yenə, 494 00:22:12,880 --> 00:22:13,840 Sənətçinin ifa. 495 00:22:13,840 --> 00:22:16,610 Həqiqətən nə etməz başlıq altında. 496 00:22:16,610 --> 00:22:20,350 Və biz, ismarıcları ki, demək lazımdır gücü üç olacaq. 497 00:22:20,350 --> 00:22:23,480 Belə ki, bu yeri 0, bu olacaq yeri 1, bu olacaq 498 00:22:23,480 --> 00:22:25,740 yeri 2 olacaq. 499 00:22:25,740 --> 00:22:29,330 >> Mən stress topu rüşvət varsa, ki, kimsə gəlib və işlətmək istəyirəm 500 00:22:29,330 --> 00:22:30,870 yalnız bir an üçün buraya minməyə? 501 00:22:30,870 --> 00:22:31,960 OK, ilk əl gördüm. 502 00:22:31,960 --> 00:22:33,950 Up Hadi. 503 00:22:33,950 --> 00:22:36,500 Bütün hüquqlar. 504 00:22:36,500 --> 00:22:38,760 Mən Steven olduğuna inanıram. 505 00:22:38,760 --> 00:22:40,035 Up Hadi. 506 00:22:40,035 --> 00:22:40,770 Bütün hüquqlar. 507 00:22:40,770 --> 00:22:46,760 >> Amma indi biz ilkin geri Güman Dünyanın dövlət harada 508 00:22:46,760 --> 00:22:52,180 yalnız bir yığın elan etdi, bu var gücü üç olacaq. 509 00:22:52,180 --> 00:22:54,470 Amma ölçüsü hələ müəyyən olunmayıb. 510 00:22:54,470 --> 00:22:56,100 Qablar hələ müəyyən olunmayıb. 511 00:22:56,100 --> 00:22:57,300 Ilk sual bir neçə belə. 512 00:22:57,300 --> 00:23:01,310 Və mənə mic verək siz belə Bu daha fəal iştirak. 513 00:23:01,310 --> 00:23:05,190 >> Belə ki, ölçüsü daxilində bu anda nə vaxt mən görülən bütün əgər 514 00:23:05,190 --> 00:23:09,340 ilə bir yığın elan kodu bir line? 515 00:23:09,340 --> 00:23:10,100 >> Steven: çox deyil. 516 00:23:10,100 --> 00:23:12,080 >> DAVID Malan: OK, çox deyil. 517 00:23:12,080 --> 00:23:14,410 Biz, ölçüsü daxilində nə bilirsinizmi biz daxili ne bilirik 518 00:23:14,410 --> 00:23:16,330 Bu serialın? 519 00:23:16,330 --> 00:23:18,630 >> Steven: Just təsadüfi kodu, sağ? 520 00:23:18,630 --> 00:23:20,220 Just - 521 00:23:20,220 --> 00:23:23,230 >> DAVID Malan: Bəli, mən gedirəm şifrəsini zəng, lakin təsadüfi - 522 00:23:23,230 --> 00:23:23,820 >> Steven: Things. 523 00:23:23,820 --> 00:23:28,290 >> DAVID Malan: təsadüfi kimi şeylər 524 00:23:28,290 --> 00:23:28,870 >> Steven: Bits. 525 00:23:28,870 --> 00:23:29,530 >> DAVID Malan: Bits, sağ? 526 00:23:29,530 --> 00:23:31,190 Zibil dəyərlər Belə ki, sağ? 527 00:23:31,190 --> 00:23:33,470 Belə ki, 0 və 1-nin permutations. 528 00:23:33,470 --> 00:23:35,920 Əvvəlki bulges qalıqları Bu yaddaş. 529 00:23:35,920 --> 00:23:38,150 Və biz həqiqətən bilmirəm nə dəyərlər , biz adətən onları cəlb edir 530 00:23:38,150 --> 00:23:38,930 sual işarələri kimi. 531 00:23:38,930 --> 00:23:41,990 >> Biz güman etdiyiniz Belə ki, ilk şey burada etmək istəyirəm gedən - 532 00:23:41,990 --> 00:23:46,630 və mənə içərisində bu sahədə verim qablar - bir adı. 533 00:23:46,630 --> 00:23:49,540 Biz güman nə başlamaq lazımdır ölçüsü biz istəyirik əgər 534 00:23:49,540 --> 00:23:51,040 Bu yığını istifadə başlamaq? 535 00:23:51,040 --> 00:23:53,070 >> Steven: Tablası sub 3. 536 00:23:53,070 --> 00:23:53,910 >> DAVID Malan: Belə ki, OK. 537 00:23:53,910 --> 00:23:56,710 Aydın olmaq üçün, potensialın elan başqa yerdə üç. 538 00:23:56,710 --> 00:23:58,570 Və mən istifadə etdiyiniz nə var serialın ayrılacaq. 539 00:23:58,570 --> 00:24:03,535 Size istinad gedir nə qədər qablar yığını hazırda var. 540 00:24:03,535 --> 00:24:03,880 >> Steven: Zero. 541 00:24:03,880 --> 00:24:04,460 >> DAVID Malan: Belə ki, sıfır olmalıdır. 542 00:24:04,460 --> 00:24:07,760 Belə ki, davam və hər hansı bir barmaq ilə, ölçüsü sıfır cəlb edir. 543 00:24:07,760 --> 00:24:08,440 Bütün hüquqlar. 544 00:24:08,440 --> 00:24:10,920 Belə ki, indi, bu daxilində var Burada, biz bilmirik. 545 00:24:10,920 --> 00:24:12,160 Bu, həqiqətən, yalnız zibil dəyərlərdir. 546 00:24:12,160 --> 00:24:14,800 Beləliklə, biz sual işarələri çəkmək, lakin bilər indi üçün board təmiz saxlamaq edək 547 00:24:14,800 --> 00:24:16,300 əhəmiyyətli deyil, çünki orada nə var. 548 00:24:16,300 --> 00:24:19,130 Biz serialın başlamaq lazım deyil bir şey, biz bilirik ki, çünki 549 00:24:19,130 --> 00:24:23,100 yığını həcmi sıfır, yaxşı, biz bir şey baxaraq lazım deyil 550 00:24:23,100 --> 00:24:25,590 hər halda bu array Bu baxımdan zaman. 551 00:24:25,590 --> 00:24:29,970 >> Belə ki, indi mən təkan güman ki, yığını üzərinə sayı 9. 552 00:24:29,970 --> 00:24:33,750 Necə data structure yeniləmək lazımdır bu qara qutu daxilində? 553 00:24:33,750 --> 00:24:35,540 Nə dəyərlər dəyişdirmək lazımdır? 554 00:24:35,540 --> 00:24:36,200 >> Steven: Within - 555 00:24:36,200 --> 00:24:37,400 ölçüsü? 556 00:24:37,400 --> 00:24:37,650 >> DAVID Malan: OK. 557 00:24:37,650 --> 00:24:38,770 Size nə olmalıdır? 558 00:24:38,770 --> 00:24:39,580 >> Steven: Ölçü biri olacaq. 559 00:24:39,580 --> 00:24:39,870 >> DAVID Malan: OK. 560 00:24:39,870 --> 00:24:41,110 Belə ki, ölçüsü bir olmalıdır. 561 00:24:41,110 --> 00:24:42,540 Belə ki, bir neçə yollarla bunu edə bilərsiniz. 562 00:24:42,540 --> 00:24:46,920 Indi mənə vermək imkan verir barmaq Silgi edir. 563 00:24:46,920 --> 00:24:47,260 Bütün hüquqlar. 564 00:24:47,260 --> 00:24:49,960 Sonra artıq sizin barmaq bir fırça edir. 565 00:24:49,960 --> 00:24:50,330 Bütün hüquqlar. 566 00:24:50,330 --> 00:24:52,820 İndi nə dəyişdirmək var Aydındır ki, data strukturu? 567 00:24:52,820 --> 00:24:57,060 >> Steven: Biz gedirik 9 alt up. 568 00:24:57,060 --> 00:24:57,760 >> DAVID Malan: 9. 569 00:24:57,760 --> 00:24:58,420 OK, Yaxşı. 570 00:24:58,420 --> 00:25:01,550 Belə ki, hələ də nə etməz yeri bir və ya iki onlar istəyirik, çünki 571 00:25:01,550 --> 00:25:04,520 zibil dəyərlər, amma biz narahat olmamalıdır ölçüsü, çünki orada axtarır 572 00:25:04,520 --> 00:25:07,540 izah edir ki, yalnız ilk element həqiqətən qanunidir. 573 00:25:07,540 --> 00:25:10,400 Belə ki, indi mən siyahı üzərinə 17 basmaq. 574 00:25:10,400 --> 00:25:11,830 Bu şəkil olur? 575 00:25:11,830 --> 00:25:14,720 >> Steven: Yəni ölçüsü iki getmək üçün gedir. 576 00:25:14,720 --> 00:25:15,300 >> DAVID Malan: OK. 577 00:25:15,300 --> 00:25:16,070 Siz pozan etdiyiniz - 578 00:25:16,070 --> 00:25:16,810 oops. 579 00:25:16,810 --> 00:25:18,026 Siz pozan istəyirik. 580 00:25:18,026 --> 00:25:18,840 >> Steven: Eraser. 581 00:25:18,840 --> 00:25:19,720 >> DAVID Malan: Siz bir fırça istəyirik. 582 00:25:19,720 --> 00:25:20,560 >> Steven: fırçalayın. 583 00:25:20,560 --> 00:25:20,920 >> DAVID Malan: OK. 584 00:25:20,920 --> 00:25:21,600 Və daha nəyi? 585 00:25:21,600 --> 00:25:22,600 >> Sonra biz -: Steven 586 00:25:22,600 --> 00:25:22,915 >> DAVID Malan: Biz 17 itələdi. 587 00:25:22,915 --> 00:25:24,760 >> Steven: Biz belə üst 17 Stik - 588 00:25:24,760 --> 00:25:25,710 >> DAVID Malan: OK, yaxşı. 589 00:25:25,710 --> 00:25:27,040 >> Steven: - Bu açılır. 590 00:25:27,040 --> 00:25:27,530 >> DAVID Malan: Yaxşı. 591 00:25:27,530 --> 00:25:27,940 Bu, asan əldə. 592 00:25:27,940 --> 00:25:29,300 Mən sizə bu dəfə kömək fikrində deyiləm. 593 00:25:29,300 --> 00:25:30,510 22 basın. 594 00:25:30,510 --> 00:25:31,720 >> Steven: Done. 595 00:25:31,720 --> 00:25:34,870 Silgi olmuşdur. 596 00:25:34,870 --> 00:25:37,340 Mən bir fırça olmaq alıram. 597 00:25:37,340 --> 00:25:39,340 Və sonra 22 qoyaraq edirəm. 598 00:25:39,340 --> 00:25:40,100 >> DAVID Malan: 22. 599 00:25:40,100 --> 00:25:40,620 Əla. 600 00:25:40,620 --> 00:25:41,380 Belə ki, bir dəfə daha. 601 00:25:41,380 --> 00:25:44,280 İndi təkan gidiyorum yığını 26 üzərində. 602 00:25:44,280 --> 00:25:46,350 >> Steven: Ooh. 603 00:25:46,350 --> 00:25:50,278 Gosh Oh. 604 00:25:50,278 --> 00:25:52,520 Siz, həqiqətən, qarovul off məni tutdu. 605 00:25:52,520 --> 00:25:53,703 >> DAVID Malan: Siz vermədi Bu gələn görmək? 606 00:25:53,703 --> 00:25:55,930 >> Steven: Bu gələn görmədim. 607 00:25:55,930 --> 00:25:58,756 Biz yenidən ilkin buraxılış qabiliyyəti bilər? 608 00:25:58,756 --> 00:25:59,790 >> DAVID Malan: Bu yaxşı bir sual. 609 00:25:59,790 --> 00:26:02,360 Beləliklə, biz növ özümüzü boyalı etdik Burada bir küncündə. 610 00:26:02,360 --> 00:26:06,740 Həqiqətən Steven üçün yaxşı yoxdur biz bu array ayrılan etdik, çünki 611 00:26:06,740 --> 00:26:09,130 statik, belə ki, içəridə danışmaq məlumatların strukturu. 612 00:26:09,130 --> 00:26:12,170 Və biz mahiyyətcə çətin kodlu etdik bu ölçüsü üç olmalıdır. 613 00:26:12,170 --> 00:26:14,170 Beləliklə, biz, həqiqətən, təkrar bölüşdürə bilməz. 614 00:26:14,170 --> 00:26:20,020 >> Biz, geri getdi bilər qablar bir göstərici ola yenidən təyin 615 00:26:20,020 --> 00:26:22,300 sonra əl xatirəsinə malloc istifadə edin. 616 00:26:22,300 --> 00:26:25,050 Çünki biz yaddaş var, əgər malloc vasitəsilə yığın, biz 617 00:26:25,050 --> 00:26:26,430 sonra onu azad edə bilər. 618 00:26:26,430 --> 00:26:29,630 Lakin bu azad əvvəl biz bilər , yaddaş daha yığın təkrar bölüşdürə 619 00:26:29,630 --> 00:26:31,330 göstərici yeniləmək və s. 620 00:26:31,330 --> 00:26:33,500 Amma indi, bu həqiqətən ən yaxşı biz edə bilərsiniz. 621 00:26:33,500 --> 00:26:36,360 Push və pop ehtimalla gedir bəzi səhv siqnal var. 622 00:26:36,360 --> 00:26:40,270 >> Belə ki, məsələn, bizim həyata push bir bool qayıtmaq bilər hansı 623 00:26:40,270 --> 00:26:42,390 əvvəllər doğru, gerçək, doğru döndü. 624 00:26:42,390 --> 00:26:48,390 Ancaq dördüncü dəfə, o, var olacaq Məsələn, saxta qayıtmaq üçün. 625 00:26:48,390 --> 00:26:48,540 Bütün hüquqlar. 626 00:26:48,540 --> 00:26:49,540 Çox yaxşı. 627 00:26:49,540 --> 00:26:50,060 Tebrik edirik. 628 00:26:50,060 --> 00:26:52,160 Bu gün stress top əldə etdik. 629 00:26:52,160 --> 00:26:53,110 >> [Alqış] 630 00:26:53,110 --> 00:26:54,382 >> Steven: Təşəkkür edirəm. 631 00:26:54,382 --> 00:26:55,680 >> DAVID Malan: Təşəkkür edirəm. 632 00:26:55,680 --> 00:26:59,740 OK, belə ki, bu çox deyil görünür irəliyə doğru addım, sağ? 633 00:26:59,740 --> 00:27:01,410 Biz Bu data strukturu təsvir. 634 00:27:01,410 --> 00:27:02,320 Bu doğru, çekici oldu? 635 00:27:02,320 --> 00:27:03,200 Əməliyyat sistemləri bunu istəyirəm. 636 00:27:03,200 --> 00:27:06,360 Göründüyü web, bu istifadə edə bilərsiniz hələ də və digər applications. 637 00:27:06,360 --> 00:27:10,870 Amma biz istəyirik ki, bir axmaq məhdudiyyət növ həftə iki məhdudiyyətlər geri 638 00:27:10,870 --> 00:27:12,880 Biz ölçüsü Diziler müəyyən etmişdir. 639 00:27:12,880 --> 00:27:15,010 >> Belə ki, bir neçə həqiqətən var yolları biz bu həll edə bilər. 640 00:27:15,010 --> 00:27:18,750 Biz dinamik serialın ayıra bilər Mən var tərəfindən çətin ki, kodlaşdırma deyil 641 00:27:18,750 --> 00:27:22,600 burada görülmüş, lakin əvəzinə yenidən elan Bu, kimi, aydın olmaq 642 00:27:22,600 --> 00:27:23,830 bu kimi bir şey. 643 00:27:23,830 --> 00:27:29,040 Int * qablar, həlledici deyil hələ gücü. 644 00:27:29,040 --> 00:27:35,460 Amma başqa yığını bəyan edərkən Mənim kodu, mən, sonra malloc zəng edə bilər 645 00:27:35,460 --> 00:27:38,250 bir yığın üçün ünvan almaq yaddaş, və mən təyin edə bilər 646 00:27:38,250 --> 00:27:39,980 qablar ki, ünvanı. 647 00:27:39,980 --> 00:27:43,340 >> Və sonra, çünki yalnız bir yığın var yaddaş, mən kvadrat istifadə davam edə bilər 648 00:27:43,340 --> 00:27:45,450 adi qaydada bracket notation. 649 00:27:45,450 --> 00:27:49,020 Yenə də, bu cür var, çünki funksional serialları ekvivalent və 650 00:27:49,020 --> 00:27:50,820 gəlib ki, yaddaş chunks geri malloc edir. 651 00:27:50,820 --> 00:27:53,090 Biz digər bir müalicə edə bilərsiniz göstərici hesab istifadə və ya 652 00:27:53,090 --> 00:27:54,440 kvadrat mötərizə notation. 653 00:27:54,440 --> 00:27:55,660 Belə ki, bir yanaşma. 654 00:27:55,660 --> 00:28:00,120 >> Amma necə başqa biz bu həyata bilər Eyni data structure, potensial? 655 00:28:00,120 --> 00:28:00,280 Sağ? 656 00:28:00,280 --> 00:28:04,530 Biz yalnız bu həll kimi mən hiss edirəm bir həftə əvvəl kimi problem. 657 00:28:04,530 --> 00:28:08,860 Bu problemin həlli nə idi Steven qaçdı ki? 658 00:28:08,860 --> 00:28:10,370 Beləliklə bağlı siyahıları, doğru. 659 00:28:10,370 --> 00:28:13,410 >> Problem biz rəsm edirik ki, əgər ayrılması bir küncə özümüzü 660 00:28:13,410 --> 00:28:17,580 əvvəlcədən çox az yaddaş ki, biz sonra birtəhər, yaxşı, ilə məşğul olmaq 661 00:28:17,580 --> 00:28:19,880 niyə yalnız qarşısını almaq deyil cəmi vermək? 662 00:28:19,880 --> 00:28:26,170 Niyə yalnız tepsiler bir olmaq elan bir node, bundan dolayı bir əlaqəli siyahısına pointer 663 00:28:26,170 --> 00:28:30,740 və sonra sadəcə yeni qovşaqlarının ayrılması Steven bir uyğun üçün lazım hər dəfə 664 00:28:30,740 --> 00:28:32,400 məlumatların strukturuna daxil nömrəsini. 665 00:28:32,400 --> 00:28:34,200 >> Belə ki, şəkil dəyişdirmək lazımdır. 666 00:28:34,200 --> 00:28:38,220 Bu təmiz və olacaq deyil üç ints yalnız bir sıra kimi sadə. 667 00:28:38,220 --> 00:28:42,970 İndi bir göstərici olacaq struct ki, struct gedir 668 00:28:42,970 --> 00:28:44,830 bir int və növbəti göstərici var. 669 00:28:44,830 --> 00:28:47,670 Bu göstərici vasitəsilə səbəb olacaq başqa cür struct üçün 670 00:28:47,670 --> 00:28:48,600 başqa cür struct. 671 00:28:48,600 --> 00:28:50,560 Belə ki, şəkil həqiqətən ki, bir az Messier almaq. 672 00:28:50,560 --> 00:28:52,950 Və biz oxlar tying var ediyorum birlikdə hər şey. 673 00:28:52,950 --> 00:28:55,280 >> Amma ki, sağ gözəl Bunu necə gördüm. 674 00:28:55,280 --> 00:28:58,180 Və sonra rahat olsun Bağlantılı kimi həyata bir şey 675 00:28:58,180 --> 00:29:01,450 Siz bilərsiniz siyahısı, əgər bir hash masa həyata keçirmək üçün seçin 676 00:29:01,450 --> 00:29:05,120 p-set 6 ayrı chaining, siz bir bina blok, və ya kimi istifadə 677 00:29:05,120 --> 00:29:08,870 tərkib hissəsi və ya sıfırdan bir danışmaq, qaydası, siz qoymaq ki, bir şey 678 00:29:08,870 --> 00:29:12,560 Öz puzzle parça yaradıldı Əgər yenidən istifadə edə bilərsiniz ki. 679 00:29:12,560 --> 00:29:17,090 Belə ki, əvəzetmələr, lakin potensial həllər Biz, həqiqətən, əvvəl gördüm ki. 680 00:29:17,090 --> 00:29:20,560 >> Belə ki, tez-tez, bu, hər görmək iki il zaman Apple relizlər 681 00:29:20,560 --> 00:29:23,060 yeni və bütün crazy insanlar bir Apple kənarda xətti 682 00:29:23,060 --> 00:29:27,050 onların marjinal almaq saxlaya hardware yükseltin. 683 00:29:27,050 --> 00:29:30,420 Mən deyirəm, çünki, OK Mən insanlardan biri deyiləm. 684 00:29:30,420 --> 00:29:35,140 Belə ki, nə cür data strukturu Bu reallığı əks bilər? 685 00:29:35,140 --> 00:29:36,980 >> Bəli, bu bir sıra xətti zəng edək. 686 00:29:36,980 --> 00:29:40,270 Belə ki, Britaniya bu adətən zəng növbə hər halda, belə bir gözəl ad var. 687 00:29:40,270 --> 00:29:44,960 Və bir sıra iki əməliyyatları biz enqueue arayacaðým yardım edirlər 688 00:29:44,960 --> 00:29:48,900 əməliyyat və dequeue əməliyyat, olan oxşar 689 00:29:48,900 --> 00:29:50,120 itələmək və pop ruh. 690 00:29:50,120 --> 00:29:54,060 Bu müxtəlif yalnız sort var Konvensiya, nə biz bu zəng edirik. 691 00:29:54,060 --> 00:29:57,680 Amma bir şey enqueue əlavə etmək deməkdir ya veri strukturu onu daxil edin. 692 00:29:57,680 --> 00:29:59,570 Dequeue üçün aradan qaldırılması deməkdir. 693 00:29:59,570 --> 00:30:05,170 Amma bir yığın bir LIFO data olduğu halda, strukturu, bir sıra, ilk deyil 694 00:30:05,170 --> 00:30:06,740 data structure həyata ilk. 695 00:30:06,740 --> 00:30:10,050 >> Siz uyğun olaraq ilk şəxs varsa, siz almaq üçün ilk şəxs olacaq 696 00:30:10,050 --> 00:30:12,420 line həyata və yeni cihaz almaq. 697 00:30:12,420 --> 00:30:18,070 Bu insanlar necə narahat olacağını təsəvvür Apple əvəzinə bir yığın istifadə etdikdə üçün 698 00:30:18,070 --> 00:30:21,250 Məsələn, bu picking həyata keçirilməsi Yeni oyuncaq up. 699 00:30:21,250 --> 00:30:24,310 Belə sıralarında əlbəttə ki, hissi və biz bütün növ hesab edə bilər 700 00:30:24,310 --> 00:30:27,480 ərizə, ehtimalla sıralarında üçün, Əgər ədalət istəyirik xüsusilə. 701 00:30:27,480 --> 00:30:30,040 Belə ki, necə biz bu həyata bilər məlumat strukturu kimi? 702 00:30:30,040 --> 00:30:33,680 >> Yaxşı, mən ki, biz güc təklif bu yolu etmək lazımdır. 703 00:30:33,680 --> 00:30:35,225 Beləliklə, mən indi nömrələri üçün gedirəm. 704 00:30:35,225 --> 00:30:38,190 Beləliklə, biz bu sadə və davam edəcəyik mütləq qablar baxımından danışmaq. 705 00:30:38,190 --> 00:30:40,220 Insanlar kazanılmış Just ədəd edir. 706 00:30:40,220 --> 00:30:43,760 Tutum yenə gedir ki, düzeltmek ola bilər ki, insanların ümumi sayı 707 00:30:43,760 --> 00:30:46,900 Bu xətt, üç və ya digər hər hansı dəyər. 708 00:30:46,900 --> 00:30:50,760 >> Amma mən track saxlamaq lazımdır ki, təklif nın ölçüsü yalnız 709 00:30:50,760 --> 00:30:52,370 növbə, bu nə qədər şeylər var. 710 00:30:52,370 --> 00:30:56,310 Belə ki, ölçüsü cari ölçüsü, potensialı maksimum ölçüsü. 711 00:30:56,310 --> 00:30:58,540 Yalnız təkrar nomenklaturası Konvensiya ilə. 712 00:30:58,540 --> 00:31:03,680 Neden bir əlavə int daxilində lazımdır var kim takip sıranın 713 00:31:03,680 --> 00:31:05,365 xətti qarşısında? 714 00:31:05,365 --> 00:31:07,930 715 00:31:07,930 --> 00:31:10,910 Niyə bu halda bunu etmək lazımdır? 716 00:31:10,910 --> 00:31:14,750 717 00:31:14,750 --> 00:31:16,190 >> Bəli, bu şəkil necə dəyişdirmək üçün gedir? 718 00:31:16,190 --> 00:31:19,280 Mən yəqin ki, ən çox təkrar edə bilərsiniz bu şəkil. 719 00:31:19,280 --> 00:31:21,480 Mənə irəli getmək və burada nə silmək edək. 720 00:31:21,480 --> 00:31:24,580 Biz bu qədər verəcəyik Burada müxtəlif adını. 721 00:31:24,580 --> 00:31:28,930 17 qurtarmaq Gəlin, Gəlin qurtarmaq 9, bu 3 xilas edək. 722 00:31:28,930 --> 00:31:30,410 Və biri başqa bir şey əlavə edək. 723 00:31:30,410 --> 00:31:34,710 Mən track saxlamaq lazımdır ki, təklif siyahının ön, hansı yalnız 724 00:31:34,710 --> 00:31:35,570 eləcə də int olacaq. 725 00:31:35,570 --> 00:31:36,550 Və biz bu sadə saxlamaq olacaq. 726 00:31:36,550 --> 00:31:37,740 Henüz bağlıdır siyahısı. 727 00:31:37,740 --> 00:31:40,900 >> Biz olacaq etiraf edəcəyik bu limiti qarşı qabar. 728 00:31:40,900 --> 00:31:43,720 Amma görmək nə istəyirsiniz Bu zaman baş? 729 00:31:43,720 --> 00:31:47,240 Mən irəli getmək və ilk Belə güman nəfər line up gəlir və 730 00:31:47,240 --> 00:31:48,560 bu sayı 9 var. 731 00:31:48,560 --> 00:31:49,680 Biz stress toplar var. 732 00:31:49,680 --> 00:31:51,330 Mən, demək, iki və ya üç nəfər oğurlamaq edə bilərəmmi? 733 00:31:51,330 --> 00:31:52,690 Bir, iki, üç? 734 00:31:52,690 --> 00:31:53,120 Up Hadi. 735 00:31:53,120 --> 00:31:56,022 Sağ ön, çünki Bu bir tez etmək lazımdır. 736 00:31:56,022 --> 00:31:59,415 >> Hər indi olacaq Apple line bir fan oğlan. 737 00:31:59,415 --> 00:32:03,970 738 00:32:03,970 --> 00:32:06,210 Siz Apple hardware qəbul olunmayacaq Bu baxmayaraq sonunda. 739 00:32:06,210 --> 00:32:06,500 Bütün hüquqlar. 740 00:32:06,500 --> 00:32:09,430 Siz sayı 9 etdiyiniz Belə ki, sen 17 saylı, 22 nömrəli. 741 00:32:09,430 --> 00:32:12,130 Bu kimi, özbaşına nömrələr tələbə şəxsiyyət vəsiqələrini və ya etajer. 742 00:32:12,130 --> 00:32:14,550 Və yalnız bir anda, bu başlasın şeylər əlavə başlamaq üçün. 743 00:32:14,550 --> 00:32:16,000 Və mən burada bu dəfə board run lazımdır. 744 00:32:16,000 --> 00:32:19,570 >> Belə ki, bu halda, mən başlatılmış etdik ön olacaq - 745 00:32:19,570 --> 00:32:22,380 Mən, həqiqətən, həqiqətən, qayğı yoxdur nə ölçüsü sıfır, çünki ön edir. 746 00:32:22,380 --> 00:32:24,480 Beləliklə, bu həmçinin yalnız bilər sual işarəsi ola bilər. 747 00:32:24,480 --> 00:32:26,170 Bu bütün sual işarələri var. 748 00:32:26,170 --> 00:32:29,880 Belə ki, indi biz həqiqətən bəzi görmək başlamaq lazımdır nəfər mağaza astarlı. 749 00:32:29,880 --> 00:32:33,320 >> Belə ki, 9 saylı, əgər birinci istəyirik orada AM 5, davam və sıralamaq 750 00:32:33,320 --> 00:32:34,210 və ya gecə əvvəl. 751 00:32:34,210 --> 00:32:34,580 OK. 752 00:32:34,580 --> 00:32:35,940 Belə ki, indi 9 burada. 753 00:32:35,940 --> 00:32:37,940 Belə ki, 9 siyahı qarşısında. 754 00:32:37,940 --> 00:32:41,440 Beləliklə, mən irəli getmək və yeniləmək üçün gidiyorum bu cari məlumatların ölçüsü 755 00:32:41,440 --> 00:32:44,740 strukturu, artıq 0 ola lakin 1 olmalıdır. 756 00:32:44,740 --> 00:32:47,630 Mən 9 qoymaq gidiyorum siyahısının ön. 757 00:32:47,630 --> 00:32:51,020 Mənə davam və ekran keçid edək belə ki, biz burada bizi keçmiş bilərsiniz. 758 00:32:51,020 --> 00:32:53,220 >> İndi nə istəyirsən ön qoymaq? 759 00:32:53,220 --> 00:32:56,240 Mən track saxlamaq gidiyorum ki, İndi növbə qarşısında 760 00:32:56,240 --> 00:32:58,570 yeri 0 edir. 761 00:32:58,570 --> 00:33:00,510 Sonra nə hazırlaşır çünki? 762 00:33:00,510 --> 00:33:03,000 Yaxşı, mən enqueue indi Güman 17 həmçinin. 763 00:33:03,000 --> 00:33:04,510 Belə ki, orada line hop. 764 00:33:04,510 --> 00:33:07,060 Və yenə qapı sıralama ilə mağaza burada olacaq. 765 00:33:07,060 --> 00:33:08,700 Belə ki, indi mən 17 ekledik. 766 00:33:08,700 --> 00:33:10,810 Və bu uşaqlar blok baxmayaraq OK ki, ekran, 767 00:33:10,810 --> 00:33:12,300 Biz burada bu qədər edə bilərsiniz, çünki. 768 00:33:12,300 --> 00:33:12,910 Bağışlayın. 769 00:33:12,910 --> 00:33:13,810 >> Auditoriya: Biz hərəkət edə bilər - 770 00:33:13,810 --> 00:33:14,660 >> DAVID Malan: Xeyr, o OK. 771 00:33:14,660 --> 00:33:16,000 Bu var böyük var. 772 00:33:16,000 --> 00:33:18,580 Belə ki, 17-daxilində sıranın indi. 773 00:33:18,580 --> 00:33:21,332 Mən güncellemeniz lazımdır sahələrdə indi necə? 774 00:33:21,332 --> 00:33:23,210 OK, mütləq ölçüsü. 775 00:33:23,210 --> 00:33:26,430 Və necə ön haqqında? 776 00:33:26,430 --> 00:33:27,040 OK, no. 777 00:33:27,040 --> 00:33:30,200 Ön, dəyişmək lazım deyil, çünki bir yığın fərqli olaraq, biz 778 00:33:30,200 --> 00:33:31,370 ədalət saxlamaq istəyirik. 779 00:33:31,370 --> 00:33:35,150 9 birinci gəldi Belə ki, biz 9 istəyirik xəttin ilk olmaq 780 00:33:35,150 --> 00:33:36,420 və mağaza daxil. 781 00:33:36,420 --> 00:33:37,220 >> Əslində, ki, görək. 782 00:33:37,220 --> 00:33:42,235 Biz 22 daxil əvvəl, edək davam və dequeue 9. 783 00:33:42,235 --> 00:33:42,970 Adınız ne yenidən? 784 00:33:42,970 --> 00:33:43,680 >> Auditoriya: Jake. 785 00:33:43,680 --> 00:33:45,440 >> DAVID Malan: Jake gedir İndi dequeued olunacaq. 786 00:33:45,440 --> 00:33:48,050 Belə ki, mağaza daxil gəzmək almaq. 787 00:33:48,050 --> 00:33:49,880 Və iddia edən mağaza orada. 788 00:33:49,880 --> 00:33:51,970 Belə ki, indi lazımdır nə - Dit-Dit-Dit! 789 00:33:51,970 --> 00:33:53,400 İndi nə etmək lazımdır? 790 00:33:53,400 --> 00:33:54,490 Design qərar. 791 00:33:54,490 --> 00:33:56,825 Belə ki, pis bir instinkt, ancaq - Adınız ne yenidən? 792 00:33:56,825 --> 00:33:57,090 >> Auditoriya: David. 793 00:33:57,090 --> 00:33:57,500 >> DAVID Malan: David. 794 00:33:57,500 --> 00:33:58,810 Davud nə idi? 795 00:33:58,810 --> 00:34:02,590 O data düzeltmek növ çalışırdı onun yer quruluşu və hərəkət 796 00:34:02,590 --> 00:34:04,100 Jake keçmiş yeri daxil. 797 00:34:04,100 --> 00:34:06,740 Biz istediğiniz əgər ki, gözəl bir kimi qəbul 798 00:34:06,740 --> 00:34:08,199 həyata ətraflı. 799 00:34:08,199 --> 00:34:11,100 Lakin birincisi, bu və veri yeniləmə imkan biz quruluşu əvvəl. 800 00:34:11,100 --> 00:34:14,139 Mən bütün ideyası sevən deyiləm Çünki insanlar bu istiqamətdə dəyişir. 801 00:34:14,139 --> 00:34:17,360 >> David ilə əgər Bu, heç böyük var bir addım, lakin yenə geri hesab edirəm ki, 802 00:34:17,360 --> 00:34:20,360 biz səkkiz könüllü yaşadım zaman mərhələ və biz durub kimi etdik 803 00:34:20,360 --> 00:34:22,600 biz başlamaq üçün olduğu sort, ətrafında hər kəs hərəkət. 804 00:34:22,600 --> 00:34:23,790 Bu doğru, bahalı var? 805 00:34:23,790 --> 00:34:28,330 Bu böyük O mənə yarınmaq edir n, n böyük O yenə kvadrat. 806 00:34:28,330 --> 00:34:30,650 Bu kimi hiss deyil ideal nəticəsi. 807 00:34:30,650 --> 00:34:32,080 >> Elə məhz bu yeniləmə imkan verir. 808 00:34:32,080 --> 00:34:35,120 Belə ki, növbə həcmi artıq 2-dir. 809 00:34:35,120 --> 00:34:37,090 İndi sadəcə 1 var. 810 00:34:37,090 --> 00:34:40,360 Amma indi bir şey təkmilləşdirə bilər Mən əvvəl yeniləmə vermədi 811 00:34:40,360 --> 00:34:41,130 siyahısının ön. 812 00:34:41,130 --> 00:34:45,420 Mən demək olar ki, yer 1? 813 00:34:45,420 --> 00:34:49,770 Belə ki, indi biz burada zibil dəyəri zibil burada dəyəri və David 814 00:34:49,770 --> 00:34:51,469 Bu zibil orta. 815 00:34:51,469 --> 00:34:54,980 Amma data structure hələ də bütöv deyil. 816 00:34:54,980 --> 00:34:58,540 >> Və əslində, mən hətta lazım deyil Jake sabiq sayı dəyişə 817 00:34:58,540 --> 00:35:00,460 9, umurunda kim çünki. 818 00:35:00,460 --> 00:35:04,470 Mən indi kifayət qədər məlumat var Mən var bir şəxs bilirik ölçüsü 819 00:35:04,470 --> 00:35:05,030 Bu növbə. 820 00:35:05,030 --> 00:35:08,340 Və bilirəm ki, həmin şəxs yeri 1, 0 edir. 821 00:35:08,340 --> 00:35:09,760 Mən sayılması deyiləm. 822 00:35:09,760 --> 00:35:11,300 O cümlədən 1 belə. 823 00:35:11,300 --> 00:35:13,410 Belə ki, data structure hələ OK. 824 00:35:13,410 --> 00:35:14,330 >> Yaxşı, sonra nə olacaq? 825 00:35:14,330 --> 00:35:15,010 Edək enqueue - 826 00:35:15,010 --> 00:35:15,370 Sizin adınız nədir? 827 00:35:15,370 --> 00:35:16,160 >> Auditoriya: Callen. 828 00:35:16,160 --> 00:35:16,580 >> DAVID Malan: Callen. 829 00:35:16,580 --> 00:35:20,770 Üzrə Callen enqueue edək və 22 növbə indi. 830 00:35:20,770 --> 00:35:22,300 Belə ki, indi burada dəyişdirə nə? 831 00:35:22,300 --> 00:35:24,380 Ön niyyətində deyil Aydındır ki, dəyişir. 832 00:35:24,380 --> 00:35:27,160 Size daha 2 olmaq dəyişdirmək üçün gedir. 833 00:35:27,160 --> 00:35:31,590 Və 22 burada bitər, 9, hələ də mövcuddur lakin səmərəli A 834 00:35:31,590 --> 00:35:32,600 indi zibil dəyəri. 835 00:35:32,600 --> 00:35:35,910 Bu, sadəcə Jake keçmişin qalığı var. 836 00:35:35,910 --> 00:35:39,200 >> Belə ki, indi baş verərsə, nə Mən David dequeue? 837 00:35:39,200 --> 00:35:41,560 Son əməliyyat, dequeue David. 838 00:35:41,560 --> 00:35:46,070 Biz keçmək bilər, lakin mən edək təklif mümkün qədər az iş kimi edirik. 839 00:35:46,070 --> 00:35:50,280 İndi data structure gedir 2 1 ölçüsü geri. 840 00:35:50,280 --> 00:35:53,730 Amma queue qarşısında İndi 2 olur. 841 00:35:53,730 --> 00:35:56,640 Mən bu nömrələri dəyişdirmək lazım deyil onlar etdiyiniz yalnız hələ, çünki 842 00:35:56,640 --> 00:35:58,230 yalnız zibil dəyərlər. 843 00:35:58,230 --> 00:35:59,720 >> Amma indi nə olar? 844 00:35:59,720 --> 00:36:03,280 Mən, 26 özümü enqueue güman edirlər? 845 00:36:03,280 --> 00:36:05,890 Mən buraya aid kimi hiss edirəm. 846 00:36:05,890 --> 00:36:06,890 Beləliklə, mən enqueued olunur alıram. 847 00:36:06,890 --> 00:36:08,760 Belə ki, I növ burada məxsusdur. 848 00:36:08,760 --> 00:36:11,300 Və kifayət qədər belə olsa səhnədə vizual bunu yüksək qiymətləndiririk, 849 00:36:11,300 --> 00:36:15,075 biz oda çox var, çünki mən olmalıdır Burada daimi ola bilməz, niyə? 850 00:36:15,075 --> 00:36:16,290 >> Auditoriya: Siz həddi bitti. 851 00:36:16,290 --> 00:36:16,370 >> DAVID Malan: Sağ. 852 00:36:16,370 --> 00:36:16,940 Mən həddi həyata edirəm. 853 00:36:16,940 --> 00:36:19,330 Mən kənarda dizine sonra Bu serialın həddi. 854 00:36:19,330 --> 00:36:23,420 Mən, həqiqətən, biri olmalıdır üç mümkün yer. 855 00:36:23,420 --> 00:36:25,150 İndi getmək harada ən təbii var? 856 00:36:25,150 --> 00:36:27,760 Edirəm ki, biz kullanılarak geliştirilebiliyor təklif həftədə bir oyun. 857 00:36:27,760 --> 00:36:30,150 Bu mod operator, faizlə. 858 00:36:30,150 --> 00:36:36,850 Mən texniki duran alıram Çünki yeri 3, amma 3 mod tutumu etmək 859 00:36:36,850 --> 00:36:40,250 belə 3 faiz işarə, 3 - 860 00:36:40,250 --> 00:36:40,970 tutumu 3 var. 861 00:36:40,970 --> 00:36:41,720 Nə olub? 862 00:36:41,720 --> 00:36:43,700 Qalan nə var 3 3 bölmək? 863 00:36:43,700 --> 00:36:44,070 0. 864 00:36:44,070 --> 00:36:48,140 >> Mənə qoyur Belə ki, Jake idi hansı həqiqətən yaxşıdır. 865 00:36:48,140 --> 00:36:50,370 Belə ki, indi həyata keçirilməsi bu şey olacaq və 866 00:36:50,370 --> 00:36:51,250 baş ağrısı bir az ola bilər. 867 00:36:51,250 --> 00:36:53,740 Bu, həqiqətən, yalnız bir xətt var baş ağrısı, kodu. 868 00:36:53,740 --> 00:36:56,580 Lakin ən azı indi zibil var dəyər burada, lakin iki var 869 00:36:56,580 --> 00:36:57,910 burada qanuni ints. 870 00:36:57,910 --> 00:37:04,160 Və mən indi biz görmüşük ki iddia biz belə uzun kimi nə etmək lazımdır dəqiq nə 871 00:37:04,160 --> 00:37:08,600 biz nə Jake nin dəyişdirmək dəyəri 26 olmaq idi. 872 00:37:08,600 --> 00:37:12,110 >> İndi hələ də kifayət qədər məlumat var bütövlüyünü qorumaq üçün 873 00:37:12,110 --> 00:37:13,060 Bu data quruluşu. 874 00:37:13,060 --> 00:37:17,160 Biz hələ cür uğurlar həyata olduğunuzda, biz dörd və ya daha çox məlumat əlavə etmək istəyirəm 875 00:37:17,160 --> 00:37:20,740 elementləri, amma ən azı göyçəkləşdirmək bilər bu daimi səmərəli istifadə 876 00:37:20,740 --> 00:37:21,740 zaman, əslində. 877 00:37:21,740 --> 00:37:27,150 Mən dəyişkən narahat yoxdur David meyl kimi hər kəs idi. 878 00:37:27,150 --> 00:37:30,816 >> Çıxarıcı borular hər hansı bir sual, və ya bu növbə? 879 00:37:30,816 --> 00:37:32,184 >> Auditoriya: səbəbi nə Bilirsiniz ki, siz ölçüsü lazımdır 880 00:37:32,184 --> 00:37:34,010 bir şəxs üçün harada? 881 00:37:34,010 --> 00:37:34,770 >> DAVID Malan: Eynilə elə. 882 00:37:34,770 --> 00:37:38,230 Mən serialın ölçüsünü bilmək lazımdır Mən dəqiq necə bilmək lazımdır, çünki 883 00:37:38,230 --> 00:37:41,940 bu dəyərlər bir çox qanuni, qoymaq harada və mən tapa bilərsiniz ki, 884 00:37:41,940 --> 00:37:42,800 növbəti şəxs. 885 00:37:42,800 --> 00:37:43,300 Eynilə elə. 886 00:37:43,300 --> 00:37:44,580 Ölçüsü - 887 00:37:44,580 --> 00:37:46,360 Əslində, biz hələ bu verməmişdir. 888 00:37:46,360 --> 00:37:48,380 Mən 26 özümü əlavə edib. 889 00:37:48,380 --> 00:37:51,760 Ölçüsü, indi 1, lakin 2. 890 00:37:51,760 --> 00:37:57,780 Belə ki, indi bu, həqiqətən məni tapmaq kömək edir siyahısının rəhbəri olan 0 deyil, deyil 891 00:37:57,780 --> 00:37:59,250 1, lakin 2-dir. 892 00:37:59,250 --> 00:38:01,665 Siyahısının ön həqiqətən sayı 22-dir. 893 00:38:01,665 --> 00:38:05,120 O, ilk gəldi, belə ki, o, çünki Məndən əvvəl mağaza daxil icazə verilə, 894 00:38:05,120 --> 00:38:08,780 olsa da vizual I duran alıram yaxın mağaza. 895 00:38:08,780 --> 00:38:09,220 >> Bütün hüquqlar? 896 00:38:09,220 --> 00:38:12,410 Bu uşaqlar üçün alqış dəyirmi və biz onları orada buraxmaq lazımdır. 897 00:38:12,410 --> 00:38:17,090 >> [Alqış] 898 00:38:17,090 --> 00:38:18,150 >> DAVID Malan: Mən bildirin bilər Siz tray saxlayın. 899 00:38:18,150 --> 00:38:20,760 Biz ne olur görmək olar istədiyiniz, amma bəlkə deyil. 900 00:38:20,760 --> 00:38:21,590 Bütün hüquqlar. 901 00:38:21,590 --> 00:38:25,380 Bəs indi bizi tərk edir? 902 00:38:25,380 --> 00:38:28,900 Bəli, bir var ki, mənə təklif edək biz ola bilər bir neçə digər məlumatlar strukturları 903 00:38:28,900 --> 00:38:33,810 olacaq ki, bizim alət dəsti əlavə başlamaq həqiqətən, çox, olduqca müvafiq kimi 904 00:38:33,810 --> 00:38:35,270 biz web məhsulları daxil Dive. 905 00:38:35,270 --> 00:38:38,150 Yenə əlaqədar bir növ var şəklində ağaclar 906 00:38:38,150 --> 00:38:40,550 DOM, sənəd deyilən şey obyekt modeli. 907 00:38:40,550 --> 00:38:42,370 Amma biz daha çox görürsünüz ki, uzun əvvəl. 908 00:38:42,370 --> 00:38:46,260 >> Mənə definitionally təklif edək ki, indi kimi bilirik hansı ağac zəng 909 00:38:46,260 --> 00:38:48,820 bir ailə ağac, siz daha çox olan bəzi ulu var 910 00:38:48,820 --> 00:38:49,790 Ağacın kökləri. 911 00:38:49,790 --> 00:38:54,480 A patriarxal və ya matriarch Ağac çox üst. 912 00:38:54,480 --> 00:38:56,700 Öz həyat yoldaşı olmadan, bu halda. 913 00:38:56,700 --> 00:39:00,940 Amma biz indi zəng edəcəyik nə var asmaq ki, qovşaqlarının olan uşaqlar, 914 00:39:00,940 --> 00:39:05,480 sol uşaq və ya sağ uşaq off, burada təsvir kimi oxlar. 915 00:39:05,480 --> 00:39:10,490 >> Bir ağac data structure başqa sözlə, kompüter, bir ağac sıfır var 916 00:39:10,490 --> 00:39:11,480 və ya daha çox qovşaqlarının. 917 00:39:11,480 --> 00:39:13,500 Ən azı bir node varsa, ki, kök deyirlər. 918 00:39:13,500 --> 00:39:15,700 Bu vizual ki, hər şeyi var biz üst cəlb edir. 919 00:39:15,700 --> 00:39:20,280 Və node, hər hansı digər node kimi bilərsiniz , sıfır, bir və ya iki, ya üç 920 00:39:20,280 --> 00:39:23,600 və ya lakin bir çox uşaqlar data structure dəstəkləyir. 921 00:39:23,600 --> 00:39:29,150 Bu halda, kök də saxlama anbarları dəyər bir, iki uşaq, 2 və 3 var 922 00:39:29,150 --> 00:39:33,020 belə ki, biz ümumiyyətlə, 2 sol zəng uşaq və 3 hüququna uşaq. 923 00:39:33,020 --> 00:39:36,940 >> Və sonra, biz 5-6-aşağı almaq və zaman 7, 6 orta uşaq cəlb oluna bilər. 924 00:39:36,940 --> 00:39:38,940 Dörd uşaq varsa, bu confusing olur. 925 00:39:38,940 --> 00:39:42,260 Beləliklə, biz bu cür istifadə dayandırmaq şifahi qısa edir. 926 00:39:42,260 --> 00:39:44,580 Amma həqiqətən, yalnız bir ailə ağac var. 927 00:39:44,580 --> 00:39:48,880 Və burada tərk edən qovşaqlarının var özlərini heç bir övladı var. 928 00:39:48,880 --> 00:39:52,540 Onlar ağac altındakı off Restoran. 929 00:39:52,540 --> 00:39:56,940 >> Belə ki, necə biz bir ağac ki, həyata bilər maksimum iki övladı var? 930 00:39:56,940 --> 00:39:58,410 Biz bu ikili ağac zəng edəcəyik. 931 00:39:58,410 --> 00:40:00,960 Bi yenə bu iki məna binar ilə kimi halda. 932 00:40:00,960 --> 00:40:04,830 Və belə ki, sıfır, bir ola bilər maksimum və ya iki övladı var. 933 00:40:04,830 --> 00:40:08,650 >> Hesab edirəm ki, node həyata ki, təklif edəcəyik bir int n ki, strukturu, 934 00:40:08,650 --> 00:40:11,910 və sonra iki göstəricilərinə, bir adlı sol bir sağ çağırıb. 935 00:40:11,910 --> 00:40:14,830 Ancaq o yalnız gözəl ixtiyari konvensiya. 936 00:40:14,830 --> 00:40:18,170 Və indi xüsusilə gözəl nə var növü ilə konseptual mübarizə 937 00:40:18,170 --> 00:40:21,300 recursion və ya deyil idi ki, bir şey, həqiqətən, bir həll 938 00:40:21,300 --> 00:40:23,120 Xüsusilə bilər yaddaş tökülmək. 939 00:40:23,120 --> 00:40:26,600 Verileri haqqında danışıqlar indi strukturları və imkan verən alqoritmlər 940 00:40:26,600 --> 00:40:31,030 bizə axır və onlara manipulyasiya recursion geri gəlir çıxır ki, 941 00:40:31,030 --> 00:40:34,240 daha çekici gözəl şəkildə əgər. 942 00:40:34,240 --> 00:40:38,670 >> Mən təklif bu həyata keçirilməsidir Belə ki, Axtarış funksiyası. 943 00:40:38,670 --> 00:40:39,870 Iki giriş nəzərə alaraq - 944 00:40:39,870 --> 00:40:41,570 belə bir qara qutu kimi düşünün. 945 00:40:41,570 --> 00:40:46,560 Iki giriş, n, bir int və nəzərə alaraq bir ağac göstərici, bir bir göstərici 946 00:40:46,560 --> 00:40:50,020 bir ağac node və ya həqiqətən kök, mən Bu funksiya ola bilər ki, iddia 947 00:40:50,020 --> 00:40:53,530 doğru və ya yalan ki, dəyəri n bu ağacın daxilində. 948 00:40:53,530 --> 00:40:55,210 >> Bu qara qutu içərisində nedir? 949 00:40:55,210 --> 00:40:57,440 Yaxşı, dörd filialları. 950 00:40:57,440 --> 00:40:58,385 İlk yalnız yoxlayır. 951 00:40:58,385 --> 00:41:00,490 Ağac null deyil, yalnız yalan qaytarın. 952 00:41:00,490 --> 00:41:04,580 Heç bir node varsa, heç n var heç bir nömrə var, yalnız saxta qaytarın. 953 00:41:04,580 --> 00:41:12,330 Siz aradığınız olsa da, n, dəyəri varsa, üçün, ağac arrow n az və 954 00:41:12,330 --> 00:41:15,180 yalnız aydın olması üçün, zaman nə deməkdir Mən sonra ağac və arrow yazmaq 955 00:41:15,180 --> 00:41:18,150 notation, n? 956 00:41:18,150 --> 00:41:18,690 Eynilə elə. 957 00:41:18,690 --> 00:41:21,970 Bu dereference deməkdir ki, göstərici ağac çağırıb. 958 00:41:21,970 --> 00:41:26,750 Ki, daxilində almaq sonra orada getmək və node və n adlı sahəsində almaq. 959 00:41:26,750 --> 00:41:30,810 Və sonra idi ki, faktiki n müqayisə buna qarşı Search keçdi. 960 00:41:30,810 --> 00:41:35,390 >> N n dəyər azdır Belə ki, əgər ağac node özü də, 961 00:41:35,390 --> 00:41:36,720 ki, nə deməkdir? 962 00:41:36,720 --> 00:41:40,690 Bu ilk baxışda heç bir şey deməkdir. 963 00:41:40,690 --> 00:41:40,900 Sağ? 964 00:41:40,900 --> 00:41:45,560 Siz bir sıra zaman kimi dəyərlər, siz ikili müraciət etmək istəyirəm bilər 965 00:41:45,560 --> 00:41:48,290 uçurum bir forması kimi axtarış və fəth. 966 00:41:48,290 --> 00:41:51,790 Amma biz nə ehtimal lazımdır idi binar axtarış bütün iş üçün 967 00:41:51,790 --> 00:41:54,510 telefon kitab və əvvəllər nümunələri? 968 00:41:54,510 --> 00:41:55,530 >> Sıralanır necə. 969 00:41:55,530 --> 00:41:59,490 Elə ağac anlayışına saflaşdırmaq qoy burada olan bilər yalnız bir ağac olmaq 970 00:41:59,490 --> 00:42:00,880 uşaqların hər hansı bir sayı vardır. 971 00:42:00,880 --> 00:42:04,700 Yalnız ikili ağac, hansı bilər maksimum 0, 1, ya 2 var. 972 00:42:04,700 --> 00:42:09,700 Lakin ikili axtarış ağac, və ya TSİ kimi olan yalnız bir söz bir xülya yoludur 973 00:42:09,700 --> 00:42:15,430 belə ikili ağac hər node in sol uşaq, indiki halda ki, 974 00:42:15,430 --> 00:42:16,830 node azdır. 975 00:42:16,830 --> 00:42:20,170 Hər node hüququ uşaq, Hazırda halda, böyükdür 976 00:42:20,170 --> 00:42:21,740 node özü çox. 977 00:42:21,740 --> 00:42:25,200 >> Belə ki, başqa sözlə, əgər çəkmək üçün idi ağac həyata, nömrələrin bütün 978 00:42:25,200 --> 00:42:30,620 diqqətlə bu kimi tarazlaşdırılmış ki, əgər Əgər kök kimi 55 var, 33 bilərsiniz 979 00:42:30,620 --> 00:42:33,090 onun sol onu 55-dən az, çünki. 980 00:42:33,090 --> 00:42:36,430 77 hüququndan çünki bilərsiniz 55-dən çox deyil. 981 00:42:36,430 --> 00:42:40,750 Amma indi, eyni definition qeyd ki, şifahi bir recursive sözünün var 982 00:42:40,750 --> 00:42:42,600 33 üçün müraciət var. 983 00:42:42,600 --> 00:42:47,610 33 sol uşaq, bu az olmalıdır və 33 sağ uşaq, 44, olmalıdır 984 00:42:47,610 --> 00:42:48,580 bu daha böyük. 985 00:42:48,580 --> 00:42:51,670 >> Beləliklə, bu bir ikili axtarış ağac və Mən bir az istifadə edərək, təklif 986 00:42:51,670 --> 00:42:53,910 recursion, indi n tapa bilərsiniz. 987 00:42:53,910 --> 00:42:59,160 N ki, dəyəri n azdır Belə ki, əgər cari node, mən getmək gidiyorum 988 00:42:59,160 --> 00:43:04,090 irəli və ayaqla zərbə, belə danışmaq, və yalnız cavab nə qayıtmaq 989 00:43:04,090 --> 00:43:08,470 üzrə n üçün axtarış ağacın sol uşaq. 990 00:43:08,470 --> 00:43:11,370 Yenidən bildiriş, bu funksiya yalnız bir node ulduz, gözləyir 991 00:43:11,370 --> 00:43:12,780 bir node göstərici. 992 00:43:12,780 --> 00:43:17,360 Belə ki, Həqiqətən, Mən ağac olduğu edə bilər gətirəcək arrow sol, hidrogücləndirici, 993 00:43:17,360 --> 00:43:18,400 mənə bir node. 994 00:43:18,400 --> 00:43:19,480 Amma bu node nədir? 995 00:43:19,480 --> 00:43:22,820 >> Bəli, bu bəyannamə görə, sol belə ki, yalnız, yalnız bir göstəricisidir 996 00:43:22,820 --> 00:43:27,090 Mən axtarış funksiyası keçməsi alıram deməkdir fərqli bir göstərici, yəni 997 00:43:27,090 --> 00:43:30,750 təmsil bir mənim sol uşaq ağac. 998 00:43:30,750 --> 00:43:36,040 Belə ki, bu halda, pointer, əgər 33 bu, bizim nümunə giriş Eyni zamanda, əgər 999 00:43:36,040 --> 00:43:40,740 n da dəyəri n daha böyük ağac mövcud node, sonra Ben 1000 00:43:40,740 --> 00:43:43,370 digər qabaqda və ayaqla zərbə getmək davam istiqamət və yalnız demək, mən bunu 1001 00:43:43,370 --> 00:43:47,280 Bu dəyər n ağac olduğu halda bilirsiniz, lakin əgər mən bilirəm ki, bu, aşağı mənim 1002 00:43:47,280 --> 00:43:49,090 sağ filialı, belə danışmaq. 1003 00:43:49,090 --> 00:43:53,120 Mənə recursively axtarış zəng edək, yenidən n keçən, lakin keçən 1004 00:43:53,120 --> 00:43:54,580 mənim sağ uşaq pointer. 1005 00:43:54,580 --> 00:44:00,020 >> Başqa sözlə, Hal-hazırda Ben əgər 55 və mən 99 arıyorum, mən bilirəm ki, 99 1006 00:44:00,020 --> 00:44:04,270 Mən parçaladı belə kimi, 55-dən çox deyil telefon kitab həftə öncə və biz 1007 00:44:04,270 --> 00:44:07,140 haqlı çıxdıq, eyni biz Burada getmək üçün gedir. 1008 00:44:07,140 --> 00:44:11,960 Mənim sağ var, əgər bilmirəm uşaq və bu deyil, 77 var, lakin 1009 00:44:11,960 --> 00:44:13,210 Hesab edirəm ki, bu istiqamətdə bilirik. 1010 00:44:13,210 --> 00:44:18,770 Beləliklə, mən, mənim sağ uşaq axtarış zəng 77, və axtarış rəqəm buraxmaq 1011 00:44:18,770 --> 00:44:24,950 orada bu ixtiyari 99 Məsələn, orada əslində. 1012 00:44:24,950 --> 00:44:26,900 >> Başqa, son halda nə var? 1013 00:44:26,900 --> 00:44:28,620 Ağac Əgər null bir haldır. 1014 00:44:28,620 --> 00:44:31,890 N cari node daha az olarsa dəyəri başqa haldır. 1015 00:44:31,890 --> 00:44:35,120 N cari büyükse node dəyəri üçüncü haldır. 1016 00:44:35,120 --> 00:44:38,250 Dördüncü və son halda nədir? 1017 00:44:38,250 --> 00:44:39,480 Mən, biz hallarda bitti mi? 1018 00:44:39,480 --> 00:44:44,690 Bu n ki olmalıdır Mən Ben cari node. 1019 00:44:44,690 --> 00:44:49,640 >> Mən bu nöqtədə 55 üçün axtarış alıram Belə ki, əgər Bu hekayə ki, filialı 1020 00:44:49,640 --> 00:44:51,780 ağac doğru qayıtmaq olardı. 1021 00:44:51,780 --> 00:44:55,380 Beləliklə, nə maraqlı edir ki, həqiqətən, həftə fərqli olaraq keçmiş, biz cür 1022 00:44:55,380 --> 00:44:56,740 iki baza hallarda var. 1023 00:44:56,740 --> 00:44:58,300 Onlar yoxdur üst bütün ola bilər. 1024 00:44:58,300 --> 00:45:01,390 Üst bir baza halda, çünki əgər ağac null ki, heç bir əlaqəsi yoxdur. 1025 00:45:01,390 --> 00:45:03,410 Bir ağır kodlu qayıtmaq saxta dəyəri. 1026 00:45:03,410 --> 00:45:07,400 >> Alt filialı növ edir Default, qovuşdurmağımız biz yoxlanılır olsanız 1027 00:45:07,400 --> 00:45:11,550 bu olmalıdır, əgər null, biz işaretlediğinizden sol, lakin bu ola bilməz, biz var 1028 00:45:11,550 --> 00:45:14,640 doğru olmalıdır yoxlanılır, lakin o, olmamalıdır, aydın olmalıdır 1029 00:45:14,640 --> 00:45:15,870 doğru yerləşir biz. 1030 00:45:15,870 --> 00:45:16,780 Bir baza halda var. 1031 00:45:16,780 --> 00:45:19,920 Belə ki, iki recursive hallarda var ortada var sandwiched. 1032 00:45:19,920 --> 00:45:21,630 Amma yazılı bilərdi Bu hər hansı bir sırada. 1033 00:45:21,630 --> 00:45:24,520 Mən yalnız növ təbii hiss fikir İlk mümkün səhv kontrol etmək üçün, 1034 00:45:24,520 --> 00:45:28,340 sonra sol yoxlamaq, sonra, sağ yoxlamaq Siz node da olduğunu güman 1035 00:45:28,340 --> 00:45:30,630 həqiqətən, aradığınız. 1036 00:45:30,630 --> 00:45:36,240 >> Belə ki, niyə bu faydalı ola bilər? 1037 00:45:36,240 --> 00:45:37,910 Belə çıxır - 1038 00:45:37,910 --> 00:45:42,110 və mənə bir iltifat Keç bildirin burada internet var. 1039 00:45:42,110 --> 00:45:44,920 Biz istifadə edərək başlamaq olacaq proqramlaşdırma ilk dil, lakin 1040 00:45:44,920 --> 00:45:46,030 biçimlendirme dili. 1041 00:45:46,030 --> 00:45:48,740 Ki, bir olan bir biçimlendirme dili proqramlaşdırma ruhda oxşar 1042 00:45:48,740 --> 00:45:51,715 dil, ancaq vermir qabiliyyəti məntiqi özünüzü bildirirəm. 1043 00:45:51,715 --> 00:45:55,070 Bu yalnız sizə imkan verir struktur özünüzü bildirirəm. 1044 00:45:55,070 --> 00:45:57,960 >> Harada bir şey qoymaq istəyirsiniz sayfada, web page? 1045 00:45:57,960 --> 00:45:59,200 Nə rəng onu istəyirsiniz? 1046 00:45:59,200 --> 00:46:00,950 Nə font size onu istəyirsiniz? 1047 00:46:00,950 --> 00:46:02,970 Hansı sözləri həqiqətən siz web page istəyirsiniz? 1048 00:46:02,970 --> 00:46:04,060 Belə ki, bir biçimlendirme dili var. 1049 00:46:04,060 --> 00:46:07,690 Amma sonra biz bunu çox sürətlə tətbiq edəcəyik Tamhüquqlu olan JavaScript, 1050 00:46:07,690 --> 00:46:08,560 dil proqramlaşdırma. 1051 00:46:08,560 --> 00:46:12,530 Syntactically görünüşləri çox oxşar C, ancaq bəzi olacaq 1052 00:46:12,530 --> 00:46:15,200 gözəl, daha güclü, daha istifadəçi dostu funksiyalar. 1053 00:46:15,200 --> 00:46:18,050 >> Və bu da frustrations biri dövr nöqtəsi biz edəcəyik ki, 1054 00:46:18,050 --> 00:46:22,065 tezliklə çox az ilə speller həyata başqa dillərdə istifadə kodu xətləri 1055 00:46:22,065 --> 00:46:25,580 C özü imkan verir çox, lakin səbəbi üçün biz tezliklə başa bilərsiniz. 1056 00:46:25,580 --> 00:46:27,750 Bu, birinci belə web page olacaq. 1057 00:46:27,750 --> 00:46:30,120 Bu, tamamilə underwhelming olacaq biz birinci. 1058 00:46:30,120 --> 00:46:31,400 Bu, sadəcə dünya hello, deyəcəklər. 1059 00:46:31,400 --> 00:46:34,010 Amma siz onu görməmişəm, əgər əvvəl bu, HTML 1060 00:46:34,010 --> 00:46:35,670 Hypertext Markup Language. 1061 00:46:35,670 --> 00:46:39,310 >> Siz müəyyən bir menyu seçimi getmək Əgər hər hansı bir web page ən çox hansı brauzer, 1062 00:46:39,310 --> 00:46:43,160 internet, siz HTML bilərsiniz bəzi insanlar yazdı 1063 00:46:43,160 --> 00:46:44,400 web səhifə yaratmaq. 1064 00:46:44,400 --> 00:46:47,850 Və yəqin ki, kimi baxmaq deyil qısa və ya bu kimi səliqəli. 1065 00:46:47,850 --> 00:46:51,400 Amma bu modeli izləyəcək açıq mötərizədə və slashes və 1066 00:46:51,400 --> 00:46:53,660 məktubları və potensial nömrələri. 1067 00:46:53,660 --> 00:46:56,770 >> Mən sizə bir teaser vermək istədiyiniz fikir Siz edə bilərsiniz nə 1068 00:46:56,770 --> 00:46:57,950 CS50 sonra. 1069 00:46:57,950 --> 00:47:02,620 Mənə cs.harvard.edu / rob gedək, öz Rob Bowden ana. 1070 00:47:02,620 --> 00:47:06,080 O, bizim üçün bu etmişdir. 1071 00:47:06,080 --> 00:47:07,490 Belə ki, tezliklə bunu edə bilərsiniz. 1072 00:47:07,490 --> 00:47:10,660 Və həmçinin, nə eşitdim Bu səhər - 1073 00:47:10,660 --> 00:47:12,480 Siz bu gün səhər eşitdim nə - 1074 00:47:12,480 --> 00:47:13,780 >> [Hamster DANCE MUSIC] 1075 00:47:13,780 --> 00:47:15,702 >> - You'll bu edə bilər. 1076 00:47:15,702 --> 00:47:16,790 Bu barədə çərşənbə günü bizi gözləyir. 1077 00:47:16,790 --> 00:47:17,791 Biz sizə sonra görəcəksiniz. 1078 00:47:17,791 --> 00:47:22,950 >> [Hamster DANCE MUSIC] 1079 00:47:22,950 --> 00:47:24,300 DAVID Malan: növbəti CS50 hazırda - 1080 00:47:24,300 --> 00:47:31,670