1 00:00:00,000 --> 00:00:12,610 2 00:00:12,610 --> 00:00:12,900 >> DAVID J. MALAN: Bütün hüququ. 3 00:00:12,900 --> 00:00:16,790 Ilk Belə ki, xoş gəlmisiniz Bir viktorina üçün CS50 postmortem. 4 00:00:16,790 --> 00:00:18,340 Biz açılışında istədiyiniz fikir Bu ənənə bu il. 5 00:00:18,340 --> 00:00:20,960 Bu bir fürsət olacaq vasitəsilə gəzmək 6 00:00:20,960 --> 00:00:22,220 viktorina həllər. 7 00:00:22,220 --> 00:00:26,160 Və biz sürətləndirmək və ya əsaslanır aşağı yavaş olacaq burada o faiz. 8 00:00:26,160 --> 00:00:29,730 >> Siz etdiyiniz çünki Beləliklə, siz yəqin ki, burada edirik siz ola bilər necə maraqlı və ya 9 00:00:29,730 --> 00:00:31,170 bir cavab olmalıdır Bu problemlərin. 10 00:00:31,170 --> 00:00:33,300 Belə ki, niyə biz bir nəzər yoxdur ilk bu bölmə? 11 00:00:33,300 --> 00:00:34,450 Belə ki, strings əldə. 12 00:00:34,450 --> 00:00:37,600 Bu üç müxtəlif versiyaları verdi idi ki, bir proqram, nəticədə, 13 00:00:37,600 --> 00:00:39,650 bir istifadəçi bir string almaq üçün nəzərdə. 14 00:00:39,650 --> 00:00:42,530 Idi ki, etdi və ya müəyyən etmək üçün sizə üçün sol. 15 00:00:42,530 --> 00:00:45,150 >> Və biz, Sual 0 istədi version 1 Güman 16 00:00:45,150 --> 00:00:46,400 tərtib və icra. 17 00:00:46,400 --> 00:00:48,860 Niyə proqram segfault bilər? 18 00:00:48,860 --> 00:00:51,150 İlk baxışdan, heç bir təklif kimi nə üçün? 19 00:00:51,150 --> 00:00:54,012 20 00:00:54,012 --> 00:00:54,489 Bəli. 21 00:00:54,489 --> 00:00:59,260 >> Auditoriya: Mən bu görən xatırlayıram baxaraq bir əvvəlki nümunəsi 22 00:00:59,260 --> 00:01:05,506 char * s və s scan görən və bu bir göstərici, necə çünki görən 23 00:01:05,506 --> 00:01:07,971 Siz skanerdən nə təsir etdi? 24 00:01:07,971 --> 00:01:10,940 S və ya s ünvanı? 25 00:01:10,940 --> 00:01:11,180 >> DAVID J. MALAN: OK. 26 00:01:11,180 --> 00:01:11,480 Yaxşı. 27 00:01:11,480 --> 00:01:14,830 Belə ki, son nəticədə, hər hansı bir problem qaynağı ehtimalla azaltmaq niyyətindədir 28 00:01:14,830 --> 00:01:16,210 ki, dəyişən s. 29 00:01:16,210 --> 00:01:17,280 Və bu, həqiqətən bir dəyişən var. 30 00:01:17,280 --> 00:01:19,900 Ki, dəyişən data növü char * olan o olacaq deməkdir 31 00:01:19,900 --> 00:01:22,570 bir xarakter ünvanını ehtiva edir. 32 00:01:22,570 --> 00:01:23,850 Və orada fikir yatır. 33 00:01:23,850 --> 00:01:28,330 Bu ünvanını ehtiva olacaq ümumiyyətlə bir xarakter, yaxud 34 00:01:28,330 --> 00:01:32,110 ilk xarakterli ünvanı simvol bütün blok. 35 00:01:32,110 --> 00:01:36,680 >> Amma tutmaq olduğunu scan s, məqsədi ilə həyat bir ünvan verilir və verilir 36 00:01:36,680 --> 00:01:40,960 bir format kodu,% s kimi, oxumaq yığın bir string 37 00:01:40,960 --> 00:01:42,330 bu ünvanda yaddaş. 38 00:01:42,330 --> 00:01:46,040 Amma heç bərabər işarəsi əvvəl var, çünki ilk ki nöqtəli vergül 39 00:01:46,040 --> 00:01:49,310 kodu xətt, biz, həqiqətən, yoxdur, çünki hər hansı bir yaddaş ayrılması 40 00:01:49,310 --> 00:01:53,020 malloc, olmadı, çünki həqiqətən bir ölçüsü bir sıra, bütün ayrılması 41 00:01:53,020 --> 00:01:57,620 Siz yapýyorsun istifadəçinin oxumaq bəzi tam daxil klaviatura input 42 00:01:57,620 --> 00:02:00,490 zibil dəyəri olan default s edir. 43 00:02:00,490 --> 00:02:04,480 Belə ki, odds segfault olacaq əgər ki, ünvanı yalnız belə baş vermir 44 00:02:04,480 --> 00:02:08,009 Siz ki, bir dəyər olmaq, əslində, yazın. 45 00:02:08,009 --> 00:02:10,889 Ayrılması belə pis deyil orada yaddaş. 46 00:02:10,889 --> 00:02:13,150 >> Belə ki, 1-ci, biz xahiş, version 2 Güman 47 00:02:13,150 --> 00:02:14,230 tərtib və icra. 48 00:02:14,230 --> 00:02:15,900 Niyə bu proqram segfault bilər? 49 00:02:15,900 --> 00:02:17,990 Belə ki, bu bir az arabası deyil. 50 00:02:17,990 --> 00:02:21,470 Və yalnız bir həqiqətən var Aşkar yol harada siz 51 00:02:21,470 --> 00:02:22,810 Burada bir segfault tetikler. 52 00:02:22,810 --> 00:02:23,730 Bu tematik edir. 53 00:02:23,730 --> 00:02:28,180 Biz yaddaş c istifadə etdiyiniz istənilən vaxt, nə Bir segfault vadar edə bilər 54 00:02:28,180 --> 00:02:30,718 versiya 2? 55 00:02:30,718 --> 00:02:35,560 >> Auditoriya: Əgər ki daxil istifadə edin 49-dən artıq ki, bir string 56 00:02:35,560 --> 00:02:35,975 simvol. 57 00:02:35,975 --> 00:02:37,260 >> DAVID J. MALAN: Exactly. 58 00:02:37,260 --> 00:02:41,420 Siz müəyyən bir şey uzunluğu hər hansı vaxt bu bir sıra gəldiyi zaman, sizin 59 00:02:41,420 --> 00:02:44,650 radar bu ola bilər ki, off getmək lazımdır problemli Siz yoxlanılması deyil edirsinizsə 60 00:02:44,650 --> 00:02:45,810 bir sıra sərhədləri. 61 00:02:45,810 --> 00:02:46,650 Və burada problem var. 62 00:02:46,650 --> 00:02:47,910 Biz hələ scanf istifadə edirik. 63 00:02:47,910 --> 00:02:52,200 Biz hələ də cəhd deməkdir,% s istifadə etdiyiniz istifadəçi bir string oxumaq. 64 00:02:52,200 --> 00:02:56,300 Ki, olan, s daxil oxumaq olacaq bu nöqtədə, səmərəli edir 65 00:02:56,300 --> 00:02:58,570 yaddaş yığın ünvanı və ya ekvivalent var. 66 00:02:58,570 --> 00:03:02,080 Bu serialın adı var yaddaş simvol. 67 00:03:02,080 --> 00:03:07,610 >> Amma dəqiq ki, siz bir string oxumaq 49 simvol, 49-dən artıq var 68 00:03:07,610 --> 00:03:10,440 Siz backslash üçün otaq lazımdır, çünki 0, siz daşqın olacaq 69 00:03:10,440 --> 00:03:11,390 ki, bufer. 70 00:03:11,390 --> 00:03:16,410 Və uğurlu almaq və edə bilər bir 51 xarakter, 52-ci, 53-cü yazın. 71 00:03:16,410 --> 00:03:18,560 Lakin bəzi nöqtədə, OS demək gedir, no. 72 00:03:18,560 --> 00:03:21,270 Bu, mütləq yaddaş deyil Siz toxunmaq icazə edirik. 73 00:03:21,270 --> 00:03:23,380 Və proqram segfault gedir. 74 00:03:23,380 --> 00:03:26,650 >> Belə ki, orada heuristics bir olmalıdır Siz sabit uzunluğu var zaman, siz var 75 00:03:26,650 --> 00:03:30,150 Siz uzunluğu kontrol edirik etmək bu çalışdığınız olursa olsun 76 00:03:30,150 --> 00:03:31,090 onu oxumaq üçün. 77 00:03:31,090 --> 00:03:35,110 >> Auditoriya: Belə ki, siz həll etsin həqiqətən yoxlanılması şərh var 78 00:03:35,110 --> 00:03:37,140 uzunluğu böyükdür çox və ya az? 79 00:03:37,140 --> 00:03:37,730 >> DAVID J. MALAN: Absolutely. 80 00:03:37,730 --> 00:03:41,706 Siz yalnız bir şərt var deyir, əgər ki, - 81 00:03:41,706 --> 00:03:46,080 daha doğrusu siz mütləq bilmirəm əvvəlcədən neçə simvol 82 00:03:46,080 --> 00:03:49,060 istifadəçi yazın gedir, çünki Əgər toyuq və yumurta var. 83 00:03:49,060 --> 00:03:51,860 Siz scanf ilə oxumaq etdik qədər siz necə uzun anlamaq olar. 84 00:03:51,860 --> 00:03:54,500 Amma bu nöqtədə, bu, çox gec deyil Əgər siz artıq oxumaq etdik çünki 85 00:03:54,500 --> 00:03:55,710 yaddaş bəzi blok. 86 00:03:55,710 --> 00:03:59,590 Bir kənara, CS50 kitabxana yayınır kimi belə bu məsələ tamamilə, geri 87 00:03:59,590 --> 00:04:01,060 fgetc istifadə edərək. 88 00:04:01,060 --> 00:04:05,390 Və bu, bir zaman bir xarakteri oxuyur tip-toeing bilmədən, birlikdə ki, 89 00:04:05,390 --> 00:04:08,060 Bir xarakter əgər daşqın bilməz Siz bir-bir oxuyun. 90 00:04:08,060 --> 00:04:11,580 >> Tutmaq GetString geri ilə deyil biz daim yenidən ölçüsü var 91 00:04:11,580 --> 00:04:13,590 yaddaş ki, yığın olan yalnız bir ağrı deyil. 92 00:04:13,590 --> 00:04:15,310 Bu xətləri bir çox var bunu kodu. 93 00:04:15,310 --> 00:04:18,779 Belə ki, başqa yanaşma olardı əslində bir cousin istifadə, belə ki, 94 00:04:18,779 --> 00:04:19,790 scanf, danışmaq. 95 00:04:19,790 --> 00:04:22,820 Bu bir çox variantlar var həqiqətən yoxlamaq funksiyaları 96 00:04:22,820 --> 00:04:25,870 uzunluğu neçə simvol maksimum oxumaq bilər. 97 00:04:25,870 --> 00:04:29,430 Və oxumaq deyil, müəyyən edə bilər 50-dən çox simvol. 98 00:04:29,430 --> 00:04:34,110 Belə ki, bir yanaşma ola bilərdi böyük vəsaitlərin uydurmuşdur. 99 00:04:34,110 --> 00:04:37,040 >> Belə ki versiyası güman soruşur, 2 sual 3 tərtib və icra edilir. 100 00:04:37,040 --> 00:04:39,960 Niyə proqram segfault bilər? 101 00:04:39,960 --> 00:04:42,650 Belə ki, bu həqiqətən eyni , cavab olsa belə 102 00:04:42,650 --> 00:04:43,590 bir az meraklısı görünür. 103 00:04:43,590 --> 00:04:46,440 Biz kimi hiss malloc istifadə etdiyiniz biz özümüz daha çox seçim ötürür. 104 00:04:46,440 --> 00:04:48,030 Və sonra biz azad edirik sonunda yaddaş. 105 00:04:48,030 --> 00:04:49,580 Bu hələ yaddaş yalnız 50 bytes var. 106 00:04:49,580 --> 00:04:53,620 Belə ki, biz hələ də oxumaq üçün cəhd edə bilərsiniz 51, 52, 1000 bayt. 107 00:04:53,620 --> 00:04:55,830 Bu üçün segfault olacaq eyni səbəb. 108 00:04:55,830 --> 00:04:57,530 >> Amma başqa səbəb də var. 109 00:04:57,530 --> 00:05:03,890 Başqa qaytarılması malloc bilər nə yaddaş yığın ünvanı? 110 00:05:03,890 --> 00:05:04,920 Bu null qayıtmaq bilər. 111 00:05:04,920 --> 00:05:07,560 Və biz kontrol deyilik, çünki ki, biz bir şey bunu bilər 112 00:05:07,560 --> 00:05:11,350 ki, başqa bir səbəbdən, axmaq biz scanf izah edilə bilər, oxumaq 113 00:05:11,350 --> 00:05:16,050 klaviatura istifadəçi input 0 yerini daxil AKA null. 114 00:05:16,050 --> 00:05:18,890 Və ki, bu da mütləq bir segfault tetikler. 115 00:05:18,890 --> 00:05:21,590 Belə ki, viktorina var məqsədlə, biz ki, kimi o da qəbul 116 00:05:21,590 --> 00:05:22,740 üzrlü səbəb. 117 00:05:22,740 --> 00:05:23,420 Bir eynidir. 118 00:05:23,420 --> 00:05:25,720 Bir az daha ehtiva edir. 119 00:05:25,720 --> 00:05:28,975 >> Nəhayət, proqram ilə əlaqədar yaddaş istifadə, necə versiya 2 və 120 00:05:28,975 --> 00:05:30,350 3 versiyasını fərqlənir? 121 00:05:30,350 --> 00:05:35,070 Belə ki, dəyər nə üçün, gördük bir mümkün zahirən sonsuz təchizatı 122 00:05:35,070 --> 00:05:35,770 Bu cavablar. 123 00:05:35,770 --> 00:05:39,300 Və xalq cavab arasında, biz nə idi ümid, lakin biz digər qəbul 124 00:05:39,300 --> 00:05:42,250 şeylər, bəzi oğlu versiya 2 istifadə edir ki, fakt 125 00:05:42,250 --> 00:05:44,560 sözdə yığını. 126 00:05:44,560 --> 00:05:46,710 Version 3 yığın istifadə edir. 127 00:05:46,710 --> 00:05:50,060 Və funksional, bu, həqiqətən deyil bir fərq ki, bütün çox etmək. 128 00:05:50,060 --> 00:05:54,040 Günün sonunda, biz hələ istəyirik yalnız yaddaş 50 bytes əldə. 129 00:05:54,040 --> 00:05:56,640 >> Amma bu mümkün cavab biri idi biz axtarır ki,. 130 00:05:56,640 --> 00:05:59,730 Siz sınavlar almaq kimi, siz görəcəksiniz geri TFS, biz ki, 131 00:05:59,730 --> 00:06:04,330 digər müzakirələr qəbul onların disparate yaddaş istifadə həmçinin. 132 00:06:04,330 --> 00:06:08,600 Amma yığın və yığın olardı ilə getmək üçün asan bir cavab. 133 00:06:08,600 --> 00:06:11,150 Hər hansı bir sualınız? 134 00:06:11,150 --> 00:06:12,400 Mən sizə Rob verir. 135 00:06:12,400 --> 00:06:18,360 136 00:06:18,360 --> 00:06:20,210 >> Rob Bowden: Belə problem 4. 137 00:06:20,210 --> 00:06:21,985 Bu doldurmaq üçün olduğu biridir bütün həyata bayt sayı 138 00:06:21,985 --> 00:06:23,460 istifadə edilən bu müxtəlif növləri. 139 00:06:23,460 --> 00:06:24,830 Görürük Belə ki, ilk şey. 140 00:06:24,830 --> 00:06:27,930 32-bit memarlıq daşımır, Bu CS50 cihaz kimi. 141 00:06:27,930 --> 00:06:33,530 Haqqında fundamental şeyi belə bir 32-bit arxitekturaya, bizə deyir ki, 142 00:06:33,530 --> 00:06:37,490 tam olaraq necə böyük bir pointer gedir memarlıq olmaq. 143 00:06:37,490 --> 00:06:43,020 >> Belə ki, dərhal, biz bilirik ki, hər hansı bir pointer tipli 32-bit və ya 4 bayt edir. 144 00:06:43,020 --> 00:06:46,010 Belə ki, bu masada axtarır, bir node * bir göstərici növüdür. 145 00:06:46,010 --> 00:06:47,250 4 bayt olacaq. 146 00:06:47,250 --> 00:06:51,640 Struct node * ki, sözün node ulduz eyni. 147 00:06:51,640 --> 00:06:53,590 Və belə ki, 4 bayt olacaq. 148 00:06:53,590 --> 00:06:58,270 String, belə ki, bir kimi baxmaq deyil hələ göstərici, lakin typedef, bir 149 00:06:58,270 --> 00:07:01,590 string yalnız bir char * olan bir göstərici növüdür. 150 00:07:01,590 --> 00:07:03,550 Belə ki, 4 bayt olacaq. 151 00:07:03,550 --> 00:07:06,150 >> Beləliklə, bu üç bütün 4 bayt var. 152 00:07:06,150 --> 00:07:09,350 İndi node və tələbə bir az daha mürəkkəb. 153 00:07:09,350 --> 00:07:15,160 Belə ki, node və tələbə baxaraq, biz görürük bir tam və bir göstərici kimi node. 154 00:07:15,160 --> 00:07:18,050 Və tələbə iki göstəricilərinə Bunun içərisində. 155 00:07:18,050 --> 00:07:23,340 Belə ki, ən azı, burada bizim halda, yol biz ölçüsü hesablanması başa ki, 156 00:07:23,340 --> 00:07:27,020 Bu struct yalnız hər şeyi qədər əlavə edin ki, struct daxilində. 157 00:07:27,020 --> 00:07:30,690 >> Belə ki node üçün, biz tam var, 4 bayt edir. 158 00:07:30,690 --> 00:07:32,830 Biz 4 bayt olan bir göstərici var. 159 00:07:32,830 --> 00:07:35,820 Və belə bir node gedir 8 bayt almaq. 160 00:07:35,820 --> 00:07:39,490 Və eyni tələbə üçün, biz var 4 bayt və başqa ki pointer 161 00:07:39,490 --> 00:07:40,770 4 bayt var ki pointer. 162 00:07:40,770 --> 00:07:43,180 Belə ki, son olacaq 8 bayt olan. 163 00:07:43,180 --> 00:07:45,480 Belə ki, node və tələbə 8 bayt var. 164 00:07:45,480 --> 00:07:48,950 Və bu üç bütün 4 bayt var. 165 00:07:48,950 --> 00:07:50,240 Ki Suallar? 166 00:07:50,240 --> 00:07:54,640 167 00:07:54,640 --> 00:07:54,990 Bəli. 168 00:07:54,990 --> 00:07:58,413 >> Auditoriya: bir 64-bit oldu memarlıq, əgər 169 00:07:58,413 --> 00:07:59,880 Onların bütün ikiqat? 170 00:07:59,880 --> 00:08:01,790 >> Rob Bowden: Bu ki Onların bütün ikiqat. 171 00:08:01,790 --> 00:08:05,830 Belə ki, 64-bit memarlıq, o, yenə, dəyişikliklər fundamental şey ki, bir 172 00:08:05,830 --> 00:08:08,910 pointer indi 64 bit edir. 173 00:08:08,910 --> 00:08:09,290 Bəli. 174 00:08:09,290 --> 00:08:10,930 Belə bir göstərici 8 bayt edir. 175 00:08:10,930 --> 00:08:15,420 Belə ki, bu 4 bayt olduğunu 8 bayt olacaq. 176 00:08:15,420 --> 00:08:18,617 Iki göstəricilərinə olan şagird, yaxşı, indi olacaq 177 00:08:18,617 --> 00:08:19,800 8 bytes, 8 bayt ola. 178 00:08:19,800 --> 00:08:21,980 16 bayt etmək olacaq. 179 00:08:21,980 --> 00:08:25,710 >> Amma bir node hələ 4 bayt edir. 180 00:08:25,710 --> 00:08:27,800 Belə ki, bu göstərici gedir 8 bayt olacaq. 181 00:08:27,800 --> 00:08:28,930 Bu 4 bayt edir. 182 00:08:28,930 --> 00:08:30,870 Belə ki, bir node yalnız gedir 12 bytes olmalıdır. 183 00:08:30,870 --> 00:08:36,309 184 00:08:36,309 --> 00:08:39,280 Ki, bir hər hansı digər suallar? 185 00:08:39,280 --> 00:08:44,500 Belə ki, növbəti bir, bunlar HTTP durum kodları. 186 00:08:44,500 --> 00:08:48,000 Və halları təsvir idi altında bu hünəri 187 00:08:48,000 --> 00:08:49,810 sizə qaytarılır. 188 00:08:49,810 --> 00:08:56,730 Mən bəzi tələbələrin eşitdim ki, bir problem onlar etməyə çalışmışıq ki, bu da 189 00:08:56,730 --> 00:08:58,950 səhvlər müştərinin sonunda olmaq. 190 00:08:58,950 --> 00:09:02,320 Biz tələb etmək üçün cəhd Belə ki, server, bir şey gedir 191 00:09:02,320 --> 00:09:03,820 bizim sonunda səhv. 192 00:09:03,820 --> 00:09:07,660 Amma ümumiyyətlə, bu kodları var server tərəfindən geri qaytarılır. 193 00:09:07,660 --> 00:09:11,720 Beləliklə, biz nə anlamaq istəyirəm yanlış və ya doğru server ki, 194 00:09:11,720 --> 00:09:14,280 Bu şeylər qaytarılacaq səbəb olur. 195 00:09:14,280 --> 00:09:18,670 Belə ki, niyə bir server returns bilər status kodu 200? 196 00:09:18,670 --> 00:09:19,920 Hər hansı bir fikir? 197 00:09:19,920 --> 00:09:23,360 198 00:09:23,360 --> 00:09:23,730 >> Bəli. 199 00:09:23,730 --> 00:09:27,850 Belə ki, bir şey haqqında uğurla sorğu yolu ilə getdi. 200 00:09:27,850 --> 00:09:30,260 Onlar qayıtmaq edirik Siz xahiş nə. 201 00:09:30,260 --> 00:09:32,240 Belə ki, hər şey gözəl idi. 202 00:09:32,240 --> 00:09:35,662 302 haqqında nə tapılmadı? 203 00:09:35,662 --> 00:09:36,618 Bəli. 204 00:09:36,618 --> 00:09:39,008 >> Auditoriya: The server axtarır Istədiyiniz nə üçün. 205 00:09:39,008 --> 00:09:40,442 Amma onu tapa bilmədi. 206 00:09:40,442 --> 00:09:42,850 Belə ki, bir səhv var. 207 00:09:42,850 --> 00:09:47,720 >> Rob Bowden: Belə server idi istəyirdi nə axtarır. 208 00:09:47,720 --> 00:09:51,682 Belə ki, yalnız burada axtarır, 302 tapdı onu tapmaq üçün bacardı. 209 00:09:51,682 --> 00:09:53,035 >> Auditoriya: Üzgünüm. 210 00:09:53,035 --> 00:09:54,388 Tapılmışdır onu tapa etdi deməkdir. 211 00:09:54,388 --> 00:09:55,638 Üzr istəyirik. 212 00:09:55,638 --> 00:09:58,120 213 00:09:58,120 --> 00:10:00,160 >> Rob Bowden: Belə 302 tapmışlar. 214 00:10:00,160 --> 00:10:02,350 Bu server tapa istəyirdi nə. 215 00:10:02,350 --> 00:10:04,640 >> Auditoriya: Amma onu tapılanlar deyil? 216 00:10:04,640 --> 00:10:08,180 >> Rob Bowden: arasındakı fərq Bu 302 və 200 bu 217 00:10:08,180 --> 00:10:09,280 Istədiyiniz bilir. 218 00:10:09,280 --> 00:10:12,000 Amma bu dəqiq deyil Siz soruşmaq istəyirdi. 219 00:10:12,000 --> 00:10:14,580 Belə ki, 302 tipik yönlendirme. 220 00:10:14,580 --> 00:10:16,510 Belə ki, bir səhifə tələb. 221 00:10:16,510 --> 00:10:19,590 Bu oh, mən istəyirəm bilir, Bu qayıtmaq üçün. 222 00:10:19,590 --> 00:10:21,070 Lakin bu fərqli URL edir. 223 00:10:21,070 --> 00:10:23,534 Belə ki, hey, siz həqiqətən bunu istəyirik. 224 00:10:23,534 --> 00:10:26,950 >> DAVID J. MALAN: O dedi ki, bir parça var biz sizə uşaqlar bir yönlendirme verdi 225 00:10:26,950 --> 00:10:30,830 mövzu funksiyası istifadə funksiyası ki, öz növbəsində, yer çap 226 00:10:30,830 --> 00:10:34,110 kolon, sonra URL olan Siz istifadəçi rədd etmək istəyirəm. 227 00:10:34,110 --> 00:10:37,480 Siz 302 görmədim baxmayaraq açıq-aydın var ki, nə PHP edir 228 00:10:37,480 --> 00:10:41,550 magically mövzu kimi daxil olacaq Rob orada tam olaraq nə deyə - 229 00:10:41,550 --> 00:10:41,930 tapılmadı. 230 00:10:41,930 --> 00:10:43,180 Lakin əvəzinə burada getmək. 231 00:10:43,180 --> 00:10:45,960 232 00:10:45,960 --> 00:10:46,160 >> Rob Bowden: OK. 233 00:10:46,160 --> 00:10:47,630 Belə ki, 403 haqqında nə haram etdi? 234 00:10:47,630 --> 00:10:52,240 235 00:10:52,240 --> 00:10:57,120 >> Auditoriya: Mən hesab edirəm ki, server əsasən olduğunu söyləyən müştəri 236 00:10:57,120 --> 00:10:59,970 ana səhifə gedə bilməz. 237 00:10:59,970 --> 00:11:03,260 >> Rob Bowden: Belə ki, bəli. 238 00:11:03,260 --> 00:11:07,670 Yaxşı, tipik cavab idik gözləyirik bir şey kimi, faylları 239 00:11:07,670 --> 00:11:08,920 müvafiq chmodded deyil. 240 00:11:08,920 --> 00:11:11,590 Bu yəqin ki, altında hansı şərtlər Əgər siz onları gördüm. 241 00:11:11,590 --> 00:11:18,920 Amma bir səbəb var ki, müştəri burada günah ola bilər. 242 00:11:18,920 --> 00:11:20,440 Başqa status kodu həqiqətən var - 243 00:11:20,440 --> 00:11:21,210 401. 244 00:11:21,210 --> 00:11:22,820 Belə ki, bu çox oxşardır. 245 00:11:22,820 --> 00:11:24,590 >> 401 icazəsiz. 246 00:11:24,590 --> 00:11:26,130 Və 403 qadağandır. 247 00:11:26,130 --> 00:11:31,890 Və belə icazəsiz Siz yalnız Siz daxil olmamısınız deyilik əgər almaq 248 00:11:31,890 --> 00:11:34,520 Lakin giriş demək bilər Əgər səlahiyyətli olunur. 249 00:11:34,520 --> 00:11:37,930 Amma artıq daxil və əgər hələ sonra, icazəniz yoxdur 250 00:11:37,930 --> 00:11:40,140 siz də qadağan əldə edə bilərsiniz. 251 00:11:40,140 --> 00:11:45,320 Belə ki, daxil və yoxsa icazə, qadağan da 252 00:11:45,320 --> 00:11:47,164 Siz əldə edə bilərsiniz bir şey. 253 00:11:47,164 --> 00:11:48,900 >> DAVID J. MALAN: Və mexanizmi ilə bu problemlər adətən olan 254 00:11:48,900 --> 00:11:53,100 server edir həll nə komanda ilə? 255 00:11:53,100 --> 00:11:57,700 Chmod, bu əgər, həqiqətən, bir icazələrin fayl və ya kataloq vermək. 256 00:11:57,700 --> 00:11:59,220 >> Rob Bowden: Sonra 404 tapılmadı. 257 00:11:59,220 --> 00:12:03,100 258 00:12:03,100 --> 00:12:03,470 Bəli. 259 00:12:03,470 --> 00:12:10,150 Belə ki, 302 fərqli olduğu dəqiq deyil Siz ancaq xahiş olduğunuz nə bilir 260 00:12:10,150 --> 00:12:12,710 Siz istəyirsinizsə, bu, yalnız var istədiyiniz nə heç bir fikir. 261 00:12:12,710 --> 00:12:15,648 Və tələb olunur etibarlı bir şey. 262 00:12:15,648 --> 00:12:18,580 263 00:12:18,580 --> 00:12:22,310 418 Mən bir çaynik Ben və 500 daxili server. 264 00:12:22,310 --> 00:12:24,870 Beləliklə, nə siz ki, ola bilər? 265 00:12:24,870 --> 00:12:26,120 >> Belə ki, segfault - 266 00:12:26,120 --> 00:12:28,760 267 00:12:28,760 --> 00:12:30,640 Mən, həqiqətən, grading bilmirəm Bunun üçün standart. 268 00:12:30,640 --> 00:12:34,850 Lakin PHP kodu bir şey olsaydı bu səhv nəzəriyyə, bu ola bilər 269 00:12:34,850 --> 00:12:39,650 həqiqətən, segfault olan halda, bu 500 daxili server səhv, bir şey 270 00:12:39,650 --> 00:12:41,400 Sizin server ilə səhv konfiqurasiya. 271 00:12:41,400 --> 00:12:44,320 Və ya bir syntax error var Sizin PHP kodu. 272 00:12:44,320 --> 00:12:46,095 Və ya pis bir şey gedir. 273 00:12:46,095 --> 00:12:48,320 >> DAVID J. MALAN: Biz segfault gördünüz bir neçə xalq cavab arasında. 274 00:12:48,320 --> 00:12:49,490 Və texniki, bu, ola bilər. 275 00:12:49,490 --> 00:12:53,820 Amma bir PHP, proqram olacaq həqiqətən, digər insanlar tərəfindən yazılı 276 00:12:53,820 --> 00:12:57,790 segfaulted, yalnız əgər insanların qıfıllar və arabası kodu yazdı 277 00:12:57,790 --> 00:13:00,680 onların interpreter ki PHP özü segfault. 278 00:13:00,680 --> 00:13:06,460 500 segfault kimi Belə ki, baxmayaraq ruhunda, demək olar ki, həmişə var 279 00:13:06,460 --> 00:13:10,490 bir konfiqurasiya faylı məsələnin nəticə web server və ya, Rob dediyi kimi, 280 00:13:10,490 --> 00:13:13,200 sizin kimi bir syntax error, Teklif yaxın etməyib. 281 00:13:13,200 --> 00:13:16,180 Və ya haradasa bir nöqtəli vergül itirdi. 282 00:13:16,180 --> 00:13:23,677 >> Auditoriya: Belə Shuttle pset üçün, mən Mən bunu zaman tıklayan dəfə düşünürəm 283 00:13:23,677 --> 00:13:26,300 browser, lakin heç bir şey, gündəmə gəldi Onlar ağ səhifə adlı nə. 284 00:13:26,300 --> 00:13:28,056 Lakin, çünki kodu idi. 285 00:13:28,056 --> 00:13:29,440 Mən JavaScript idi, sağ? 286 00:13:29,440 --> 00:13:29,770 >> Rob Bowden: Bəli. 287 00:13:29,770 --> 00:13:31,180 >> Auditoriya: Kaş ki, səhv hələ gəlib? 288 00:13:31,180 --> 00:13:34,290 >> Rob Bowden: Beləliklə, siz kazanılmış olmazdılar Bu səhv çünki hər şey 289 00:13:34,290 --> 00:13:36,930 web server baxımdan tamamilə gözəl idi. 290 00:13:36,930 --> 00:13:39,090 Amma index.html tələb. 291 00:13:39,090 --> 00:13:42,000 Siz shuttle.js tələb və service.js. 292 00:13:42,000 --> 00:13:44,580 Və uğurla qayıtmaq bacardı sizin o şeyi bütün - 293 00:13:44,580 --> 00:13:44,980 200. 294 00:13:44,980 --> 00:13:45,680 OK. 295 00:13:45,680 --> 00:13:49,330 Bu brauzer üçün cəhd yalnız var JavaScript kodunu şərh edən 296 00:13:49,330 --> 00:13:51,370 kimi, gözləyin ki, bu deyil etibarlı JavaScript səhv. 297 00:13:51,370 --> 00:13:55,720 298 00:13:55,720 --> 00:13:58,210 Hər hansı digər suallar? 299 00:13:58,210 --> 00:14:00,750 Bütün hüquqlar. 300 00:14:00,750 --> 00:14:04,120 >> DAVID J. MALAN: Belə ki, növbəti up sayı 11 oldu. 301 00:14:04,120 --> 00:14:07,610 Və 11 scariest idi bir çox insanlar üçün. 302 00:14:07,610 --> 00:14:14,620 303 00:14:14,620 --> 00:14:18,570 Belə ki, ən mühüm şey burada qeyd etmək Bu, həqiqətən, haqqında idi ki, 304 00:14:18,570 --> 00:14:19,840 bir ikiqat bağlı siyahısı. 305 00:14:19,840 --> 00:14:23,160 Amma bu ötən il eyni deyil ikiqat bağlı siyahısı problem, 306 00:14:23,160 --> 00:14:27,170 Hansı verirlər vermədi siyahısı, əslində, çeşidlənməmiş ola bilər. 307 00:14:27,170 --> 00:14:29,640 >> Siyahısı çeşidlənməmiş idi ki, fakt və söz idi ki, 308 00:14:29,640 --> 00:14:32,930 çatdırmaq üçün var nəzərdə vurğuladı Bu, həqiqətən bir sadələşdirilməsi ki, 309 00:14:32,930 --> 00:14:35,430 başqa olardı nə bir daha çətin problem 310 00:14:35,430 --> 00:14:36,600 və bir daha. 311 00:14:36,600 --> 00:14:40,760 Belə ki, burada bir ümumi səhv qoymaq idi Sizin bir keçən ilki həll 312 00:14:40,760 --> 00:14:45,580 çağrı cihazı və sonra yalnız kor-koranə ki, surəti doğru olan cavab kimi aşağı 313 00:14:45,580 --> 00:14:48,520 fərqli bir suala cavab ruhda oxşar. 314 00:14:48,520 --> 00:14:51,340 Amma burada incəliklərini aşağıdakı kimi olmuşdur. 315 00:14:51,340 --> 00:14:55,200 >> Bir sözlə, biz bir node elan etmiş və burada adi şəkildə müəyyən edilmişdir. 316 00:14:55,200 --> 00:14:59,230 Sonra biz siyahısı qlobal müəyyən pointer null başlatılmış. 317 00:14:59,230 --> 00:15:02,150 Sonra yəqin, iki funksiyaları var biz burada prototipləri var, insert 318 00:15:02,150 --> 00:15:03,240 və aradan qaldırılması. 319 00:15:03,240 --> 00:15:06,600 Və sonra biz burada bir neçə nümunə kodu var bir insertions bir dəstə edir. 320 00:15:06,600 --> 00:15:09,930 Və sonra biz başa çatdırmaq üçün xahiş belə aşağıda daxil həyata keçirilməsi 321 00:15:09,930 --> 00:15:14,380 bu siyahısına daxil n edər ki, bir yol daimi vaxt, həmçinin vurğuladı, 322 00:15:14,380 --> 00:15:15,730 hətta artıq varsa. 323 00:15:15,730 --> 00:15:20,600 >> Belə ki, daxil edə olan gözəllik daimi vaxt bu nəzərdə tutur ki, 324 00:15:20,600 --> 00:15:23,060 daxil etmək lazımdır ki, yeni node harada? 325 00:15:23,060 --> 00:15:23,690 Önünə. 326 00:15:23,690 --> 00:15:27,760 Belə ki, təşəkkürlə, aradan qaldırır azı tələb üçün istifadə ki, hallarda bir 327 00:15:27,760 --> 00:15:30,520 bu kimi kodu daha xətləri etdi Keçən il və hətta sinif zaman biz 328 00:15:30,520 --> 00:15:34,040 şey bu cür vasitəsilə söhbət insanlar və bəzi 329 00:15:34,040 --> 00:15:35,250 şifahi yalançı kodu. 330 00:15:35,250 --> 00:15:39,190 Belə ki, burada həll, üzərində keçmək bildirin ki, bir vizual var 331 00:15:39,190 --> 00:15:40,480 ekran. 332 00:15:40,480 --> 00:15:42,230 >> Biz aşağıdakı edirik ki, görürsünüz. 333 00:15:42,230 --> 00:15:45,140 Və başqa sadələşdirilməsi qeyd idi ki, belə 334 00:15:45,140 --> 00:15:48,280 artıq indiki, bu deməkdir hətta əgər sayı bilərsiniz, var artıq, 335 00:15:48,280 --> 00:15:50,280 yalnız kor-koranə başqa daxil bu surəti. 336 00:15:50,280 --> 00:15:52,560 Və ki, bu da, bir olmaq üçün nəzərdə edilmişdir sadələşdirilməsi, ola bilər ki, 337 00:15:52,560 --> 00:15:54,940 , daha həqiqətən, bəzi diqqət intellektual maraqlı hissəsi və 338 00:15:54,940 --> 00:15:58,090 yoxlanılması bəzi əlavə səhv yalnız məhdud vaxt verilir. 339 00:15:58,090 --> 00:16:02,880 >> Belə ki, bu nümunə həllində, biz ayrılması sol-əl bir pointer 340 00:16:02,880 --> 00:16:04,510 bir node burada yan. 341 00:16:04,510 --> 00:16:07,190 İndi kimi, pointer həyata Rob bildirib, yalnız 32 bit edir. 342 00:16:07,190 --> 00:16:09,060 Və həqiqətən ehtiva etmir sizin qədər ünvanı 343 00:16:09,060 --> 00:16:09,970 bu ünvan təyin. 344 00:16:09,970 --> 00:16:13,220 Və biz sağ tərəfdən bunu malloc vasitəsilə yan. 345 00:16:13,220 --> 00:16:16,550 Yaxşı bir vətəndaş kimi, biz yoxlamaq malloc deyil, əslində, null, belə ki, 346 00:16:16,550 --> 00:16:18,690 biz təsadüfən yaratmaq deyil Burada bir segfault. 347 00:16:18,690 --> 00:16:22,840 Və heç bir zaman, həyat sizə malloc istifadə deyə, null yoxlanılması edilməlidir 348 00:16:22,840 --> 00:16:24,090 bir incə səhv var. 349 00:16:24,090 --> 00:16:28,460 >> Sonra biz ki null başlamaq n və əvvəlki və sonrakı təyin. 350 00:16:28,460 --> 00:16:32,450 Və burada bu halda, mən başlatılmış çünki bu yeni, null əvvəlki 351 00:16:32,450 --> 00:16:34,780 node yeni olacaq mənim siyahısı başlayan. 352 00:16:34,780 --> 00:16:37,050 Belə ki, var olacaq əvvəl heç bir şey. 353 00:16:37,050 --> 00:16:42,010 Mən mahiyyətcə əlavə etmək istədiyiniz yeni node mövcud siyahısı 354 00:16:42,010 --> 00:16:44,700 özünü siyahısı yanında bərabər yaradılması. 355 00:16:44,700 --> 00:16:47,120 Amma yalnız hələ həyata deyiləm. 356 00:16:47,120 --> 00:16:51,780 Siyahısını özü artıq mövcud Belə ki, əgər və ən azı bir node var idi 357 00:16:51,780 --> 00:16:57,070 artıq yerdə, bu siyahı əgər burada və mən, burada yeni node daxil 358 00:16:57,070 --> 00:17:01,840 əmin etmək lazımdır mənim keçmiş node mənim yeni node geri işarə, 359 00:17:01,840 --> 00:17:04,260 Bu, yenidən, çünki bir ikiqat bağlı siyahısı. 360 00:17:04,260 --> 00:17:05,460 >> Beləliklə, biz bir ağlı başında olma çek yoxdur. 361 00:17:05,460 --> 00:17:10,109 Artıq var, əgər siyahısı, null deyilsə sonra bir və ya daha çox qovşaqlarının, 362 00:17:10,109 --> 00:17:12,470 belə danışmaq istinad geri əlavə edin. 363 00:17:12,470 --> 00:17:15,420 Və sonra biz lazım olan son şey etmək üçün həqiqətən qlobal yeniləmə edir 364 00:17:15,420 --> 00:17:20,329 qeyd etmək dəyişən siyahısını özü ki, yeni node. 365 00:17:20,329 --> 00:17:21,790 Bəli. 366 00:17:21,790 --> 00:17:26,579 >> Auditoriya: pointer arrow [Işitilemez] yoxdur, null bərabərdir ki, 367 00:17:26,579 --> 00:17:30,420 siyahısı ilə məşğul çünki siyahısı null? 368 00:17:30,420 --> 00:17:30,596 >> DAVID J. MALAN: Xeyr. 369 00:17:30,596 --> 00:17:34,500 Ki, fəal olmaq sadəcə mənə Bu mənim əgər ki, ehtiyatlı 370 00:17:34,500 --> 00:17:38,730 bəlkə bir daha qovşaqlarının ilə orijinal siyahısı burada və mən daxil alıram mənim 371 00:17:38,730 --> 00:17:42,380 burada yeni node, var olacaq burada heç bir şey olacaq. 372 00:17:42,380 --> 00:17:44,720 Və mən bu fikri tutmaq istəyirəm əvvəlki qəbulu ilə 373 00:17:44,720 --> 00:17:47,740 yeni node null. 374 00:17:47,740 --> 00:17:51,410 Və ehtimalla, mənim kodu doğru əgər və daxil başqa heç bir yol var 375 00:17:51,410 --> 00:17:54,970 Bu funksiya başqa qovşaqlarının, ehtimalla, hətta siyahısı artıq var 376 00:17:54,970 --> 00:18:00,090 bu bir və ya daha çox qovşaqlarının, güman siyahısı, ilk node, olardı 377 00:18:00,090 --> 00:18:02,750 null özü əvvəlki göstərici. 378 00:18:02,750 --> 00:18:03,550 >> Auditoriya: Və yalnız bir takip. 379 00:18:03,550 --> 00:18:08,139 Siz növbəti bərabər pointer qoyulan səbəbi siyahısı göstərici edirik edir 380 00:18:08,139 --> 00:18:13,579 bu işarə ki, siyahı əvvəl növbəti hərhalda - 381 00:18:13,579 --> 00:18:14,980 I dəfndə - 382 00:18:14,980 --> 00:18:15,450 yalnız siyahıları? 383 00:18:15,450 --> 00:18:16,400 >> DAVID J. MALAN: Exactly. 384 00:18:16,400 --> 00:18:19,400 Və belə ki, həqiqətən iki işi hesab edək burada, həqiqətən, baxmayaraq 385 00:18:19,400 --> 00:18:22,070 biz onları hesab edəcəyik sifariş deyil kodu kimi çox eyni. 386 00:18:22,070 --> 00:18:26,250 Amma yüksək səviyyədə, əgər bu təmsil siyahısı və bu 32-bit edir 387 00:18:26,250 --> 00:18:29,560 pointer, sadə ssenari Bu default null edir. 388 00:18:29,560 --> 00:18:33,010 Mən əlavə etmək istəyirəm güman edirlər 50 nömrə oldu. 389 00:18:33,010 --> 00:18:37,640 Mən irəli getmək və ayrılması gedirəm ehtiva edir bir node, 390 00:18:37,640 --> 00:18:38,770 üç sahələri - 391 00:18:38,770 --> 00:18:42,070 n, əvvəlki, və növbəti. 392 00:18:42,070 --> 00:18:44,580 >> Mən sayı 50 qoymaq gedirəm burada, bu n olacaq. 393 00:18:44,580 --> 00:18:46,130 Bu yanında olacaq. 394 00:18:46,130 --> 00:18:48,530 Bu əvvəlki olacaq. 395 00:18:48,530 --> 00:18:50,910 Və mən bu halda nə etməliyəm? 396 00:18:50,910 --> 00:18:53,900 Yaxşı, mən yalnız burada line 1 etdik. 397 00:18:53,900 --> 00:18:55,400 Pointer n n olur. 398 00:18:55,400 --> 00:18:57,740 Mən əvvəlki deyərək alıram null almaq lazımdır. 399 00:18:57,740 --> 00:18:59,470 Belə ki, bu null olacaq. 400 00:18:59,470 --> 00:19:01,365 Sonra növbəti demək gedirəm siyahısını almaq üçün gedir. 401 00:19:01,365 --> 00:19:05,150 >> Və bu, yalnız yaxşı işləyir. 402 00:19:05,150 --> 00:19:06,500 Bu null edir. 403 00:19:06,500 --> 00:19:10,620 Və mən yeni node növbəti deyərək alıram sahəsində bu nə almaq lazımdır. 404 00:19:10,620 --> 00:19:12,570 Belə ki, orada başqa null qoyur. 405 00:19:12,570 --> 00:19:14,510 Və sonra son şey Mən burada yoxlamaq edirik. 406 00:19:14,510 --> 00:19:17,870 Siyahısı null bərabər deyil, əgər null bərabərdir, belə ki, biz keçmək 407 00:19:17,870 --> 00:19:18,470 cəmi. 408 00:19:18,470 --> 00:19:23,520 Və mən bütün növbəti siyahısını alır pictorially nəticələnən pointer, 409 00:19:23,520 --> 00:19:25,570 kimi bir şəkil. 410 00:19:25,570 --> 00:19:26,620 Belə ki, bir ssenari var. 411 00:19:26,620 --> 00:19:30,490 >> Və haqqında xahiş edilmişdir ki, bir xüsusilə bu kimi bir vəziyyət, 412 00:19:30,490 --> 00:19:33,190 biz artıq bir-node siyahısını olduğu. 413 00:19:33,190 --> 00:19:36,240 Mən orijinal geri getmək əgər problem şərhdə, biz will növbəti 414 00:19:36,240 --> 00:19:39,320 yalnız, demək 34 daxil müzakirə naminə. 415 00:19:39,320 --> 00:19:46,210 Mən yalnız rahat gedirəm burada ki, cəlb edir. 416 00:19:46,210 --> 00:19:47,540 Mən yalnız malloced etdik. 417 00:19:47,540 --> 00:19:49,310 Mən null yoxlanılması alıram daşımır. 418 00:19:49,310 --> 00:19:51,870 >> İndi başlamaq üçün gedirəm n 34 olmalıdır. 419 00:19:51,870 --> 00:19:53,040 Bu n olacaq. 420 00:19:53,040 --> 00:19:54,670 Bu yanında olacaq. 421 00:19:54,670 --> 00:19:57,100 Bu əvvəlki olacaq. 422 00:19:57,100 --> 00:19:59,370 Nin əmin I etmədi edək geri bu almaq. 423 00:19:59,370 --> 00:20:01,110 Əvvəlki birinci gəlir tərifində. 424 00:20:01,110 --> 00:20:03,070 Mənə bu düzeltmek bildirin. 425 00:20:03,070 --> 00:20:04,410 Bu, əvvəlki deyil. 426 00:20:04,410 --> 00:20:05,780 Bu növbəti edir. 427 00:20:05,780 --> 00:20:08,620 Bu eynidir, baxmayaraq üzrə ardıcıl qalsın. 428 00:20:08,620 --> 00:20:09,450 >> Əvvəlki. 429 00:20:09,450 --> 00:20:11,030 Bu növbəti edir. 430 00:20:11,030 --> 00:20:16,310 Mən yalnız yoxlanılır, mənim qeyd malloced etdik null node daxil 34 təyin. 431 00:20:16,310 --> 00:20:17,570 Əvvəlki null olur. 432 00:20:17,570 --> 00:20:19,480 Belə ki, mənə verir. 433 00:20:19,480 --> 00:20:21,010 Next siyahısı olur. 434 00:20:21,010 --> 00:20:22,370 Belə ki, siyahı bu. 435 00:20:22,370 --> 00:20:26,520 Belə ki, indi eyni rəsm kimi onlar bir işarə ki, arrow 436 00:20:26,520 --> 00:20:27,940 eyni. 437 00:20:27,940 --> 00:20:30,400 Və sonra mən yoxlanılması alıram siyahısı null bərabər deyil. 438 00:20:30,400 --> 00:20:31,740 Və bu vaxt deyil. 439 00:20:31,740 --> 00:20:35,580 Sonra siyahısı gedirəm Əvvəlki göstərici olur. 440 00:20:35,580 --> 00:20:39,700 >> Belə ki, əvvəlki siyahısı PTR olur. 441 00:20:39,700 --> 00:20:44,300 Belə ki, bu qoyaraq təsiri var Burada bir qrafik arrow. 442 00:20:44,300 --> 00:20:46,930 Və bir az əldə dalğalı, xətləri. 443 00:20:46,930 --> 00:20:50,780 Və sonra, nəhayət, Mən yeniləmək göstərici qeyd etmək edin. 444 00:20:50,780 --> 00:20:55,560 Belə ki, indi bu oğlan göstərir. 445 00:20:55,560 --> 00:20:57,170 İndi, bir sürətli edək ağlı başında olma kontrol. 446 00:20:57,170 --> 00:20:59,470 >> Burada siyahısı olan var qlobal dəyişən. 447 00:20:59,470 --> 00:21:02,850 İlk node, həqiqətən, 34 çünki Mən arrow aşağıdakı edirəm. 448 00:21:02,850 --> 00:21:05,210 Mən istəyirəm, çünki doğru siyahısının əvvəlində daxil 449 00:21:05,210 --> 00:21:06,070 bütün yeni qovşaqlarının. 450 00:21:06,070 --> 00:21:08,860 Onun növbəti sahəsində bu oğlan mənə gətirib çıxarır. 451 00:21:08,860 --> 00:21:10,710 Mən davam, mən növbəti null təşkil edib. 452 00:21:10,710 --> 00:21:11,760 Belə ki, artıq siyahı var. 453 00:21:11,760 --> 00:21:14,460 Mən əvvəlki hit varsa, mən almaq Mən gözləyirik geri. 454 00:21:14,460 --> 00:21:16,435 >> Belə ki, bir neçə göstəricilər hələ də var, açıq-aydın, manipulyasiya. 455 00:21:16,435 --> 00:21:19,870 Amma bunu bildirib ki, Bu daimi vaxt yalnız deməkdir 456 00:21:19,870 --> 00:21:22,910 şeyi bir sonlu sayı var Siz icazə edirik. 457 00:21:22,910 --> 00:21:24,290 Və ki sayı nə qədərdir? 458 00:21:24,290 --> 00:21:25,185 Bu, bir addım ola bilər. 459 00:21:25,185 --> 00:21:25,700 Bu iki ola bilər. 460 00:21:25,700 --> 00:21:26,820 1000 addımlar ola bilər. 461 00:21:26,820 --> 00:21:30,500 Ancaq bilməz deməkdir ki, məhdud loop hər cür gedən var 462 00:21:30,500 --> 00:21:32,010 burada heç recursion, heç bir loops. 463 00:21:32,010 --> 00:21:37,390 Bu, yalnız ağır kodlu xətləri var bu nümunə var kodu kimi. 464 00:21:37,390 --> 00:21:42,330 >> Belə ki, növbəti problem 12 etməmizi istədi çıxarırıq həyata keçirilməsini başa 465 00:21:42,330 --> 00:21:46,740 Bu rədd ki, belə bir şəkildə aşağıda n xətti vaxt siyahıdan. 466 00:21:46,740 --> 00:21:48,740 Beləliklə, siz bir az daha çox rahat durmamak otaq indi. 467 00:21:48,740 --> 00:21:52,380 Siz n kəsb edə bilər, əgər bu Siyahıda, hazır olacaq 468 00:21:52,380 --> 00:21:53,340 heç bir dəfədən. 469 00:21:53,340 --> 00:21:56,770 Və çox viktorina-based olmaq deməkdir sadələşdirilməsi ehtimal ki, 470 00:21:56,770 --> 00:21:59,780 ki, siz sayı 50 haradasa tapmaq əgər Siyahıda, siz də yoxdur 471 00:21:59,780 --> 00:22:02,890 davam narahat hər cür axtarır, təkrarlamaq 472 00:22:02,890 --> 00:22:06,990 yalnız qalmaq olan 50 surəti, Sınırlı bir zaman bəzi minutia daxil. 473 00:22:06,990 --> 00:22:10,460 >> Belə ki, aradan qaldırılması ilə, bu bir mütləq idi daha çətin və daha çox 474 00:22:10,460 --> 00:22:11,640 yazmaq kodu. 475 00:22:11,640 --> 00:22:14,990 Lakin ilk baxışda, səmimi, güc böyük və bir şey kimi baxmaq 476 00:22:14,990 --> 00:22:17,060 siz ola bilər heç bir yol var viktorina ilə gəlmək. 477 00:22:17,060 --> 00:22:22,450 Amma biz fərdi addımlar diqqət əgər, ümid edirəm ki, birdən-birə olacaq 478 00:22:22,450 --> 00:22:26,060 Siz tətil ki, bu fərdi hər addımlar Aşkar anlamlı 479 00:22:26,060 --> 00:22:27,080 retrospect. 480 00:22:27,080 --> 00:22:28,200 Belə ki, bir nəzər salaq. 481 00:22:28,200 --> 00:22:32,570 >> Belə ki, birinci, biz göstərici başlamaq özü siyahısı. 482 00:22:32,570 --> 00:22:36,040 Mən xətti vaxt istəyirəm, çünki o deməkdir ki Mən bəzi loop üçün gedirəm. 483 00:22:36,040 --> 00:22:39,730 Və ortaq bir yol üzərində təkrarlamaq siyahısı strukturu və ya hər hansı bir qovşaqlarının 484 00:22:39,730 --> 00:22:43,860 strukturunun iteratively etmək məlumatların qarşısında bir pointer 485 00:22:43,860 --> 00:22:46,990 strukturu və sonra yalnız yenilənməsi başlayın bu və yol gəzmək 486 00:22:46,990 --> 00:22:48,650 məlumat strukturu vasitəsilə. 487 00:22:48,650 --> 00:22:50,040 Mən məhz bunu gedirəm. 488 00:22:50,040 --> 00:22:54,260 >> Pointer, mənim müvəqqəti dəyişən, edək, null bərabər deyil 489 00:22:54,260 --> 00:22:55,660 irəli getmək və yoxlamaq. 490 00:22:55,660 --> 00:22:56,910 Mən xoşbəxt almaq mı? 491 00:22:56,910 --> 00:23:01,740 Hal-hazırda Ben node olan n sahədir Bu bərabər baxaraq 492 00:23:01,740 --> 00:23:03,380 sayı I arıyorum? 493 00:23:03,380 --> 00:23:05,410 Və əgər, bir şey edək. 494 00:23:05,410 --> 00:23:10,020 İndi bu bildiriş əgər vəziyyət hamısını əhatə 495 00:23:10,020 --> 00:23:11,520 kod sətirləri. 496 00:23:11,520 --> 00:23:14,610 Bu qayğı yalnız bir şey - sual bir sıra tapmaq. 497 00:23:14,610 --> 00:23:18,010 Belə ki, heç başqa, asanlaşdırır var konseptual şeylər bir az. 498 00:23:18,010 --> 00:23:22,040 >> Amma indi, mən həyata, və siz ola bilər yalnız düşüncə sonra bu həyata keçirilir 499 00:23:22,040 --> 00:23:24,720 bir az vasitəsilə var əslində iki hallar burada. 500 00:23:24,720 --> 00:23:28,060 Bu node olduğu biridir bir olan siyahısında başlayan 501 00:23:28,060 --> 00:23:31,040 ki, çünki, az annoying bir xüsusi halda, siz məşğul, çünki 502 00:23:31,040 --> 00:23:33,340 bu şey, olan yalnız anomaliya deyil. 503 00:23:33,340 --> 00:23:35,720 Hər yerdə başqa siyahıda, eyni şey var. 504 00:23:35,720 --> 00:23:38,050 Bir əvvəlki node və növbəti var node, əvvəlki node, növbəti node. 505 00:23:38,050 --> 00:23:40,940 Amma bu oğlan bir az xüsusi o başında varsa. 506 00:23:40,940 --> 00:23:48,710 >> Belə ki, pointer siyahısını bərabərdir əgər özü, mən başında Ben əgər 507 00:23:48,710 --> 00:23:53,960 siyahısı və mən n gördük, mən lazım hər şeyi bir neçə etmək. 508 00:23:53,960 --> 00:23:59,230 Bir, mən siyahısını dəyişdirmək lazımdır Növbəti sahəsində, 50 işarə. 509 00:23:59,230 --> 00:24:01,270 Mən çalışıram Güman 34 aradan qaldırılması üçün. 510 00:24:01,270 --> 00:24:03,560 Belə ki, bu oğlan getmək üçün var üz yalnız bir anda. 511 00:24:03,560 --> 00:24:07,210 >> Mən demək gedirəm, siyahı Növbəti göstərici olur. 512 00:24:07,210 --> 00:24:08,570 Bəli, bu göstəricisidir. 513 00:24:08,570 --> 00:24:10,360 Next burada işarə edir. 514 00:24:10,360 --> 00:24:17,470 Belə ki, bu arrow hüququ dəyişir indi burada bu oğlan qeyd etmək. 515 00:24:17,470 --> 00:24:19,580 İndi, biz, xatırlayıram müvəqqəti dəyişən. 516 00:24:19,580 --> 00:24:23,520 Belə ki, biz hər hansı bir qovşaqlarının yetim deyil, Mən də bu oğlan var, çünki mənim 517 00:24:23,520 --> 00:24:25,010 çıxarırıq həyata keçirilməsi. 518 00:24:25,010 --> 00:24:29,600 Belə ki, indi əgər siyahısını özü, null deyil Mən bir az bir şey düzeltmek lazımdır. 519 00:24:29,600 --> 00:24:32,690 >> Mən indi əmin bu arrow etmək lazımdır, əvvəllər işarə edir hansı 520 00:24:32,690 --> 00:24:36,830 34 50-dən, bu, getmək üçün var çünki qurtarmaq üçün çalışıram əgər 521 00:24:36,830 --> 00:24:41,910 34, 50 daha yaxşı bir saxlamaq yox idi kimi ona cür geri istinad 522 00:24:41,910 --> 00:24:42,820 arrow irəli sürdü. 523 00:24:42,820 --> 00:24:44,820 Mən yalnız bu xətt. 524 00:24:44,820 --> 00:24:46,520 Beləliklə mən bitirdim. 525 00:24:46,520 --> 00:24:48,040 Bu halda, həqiqətən, olduqca asandır. 526 00:24:48,040 --> 00:24:51,010 Siyahısı başını Doğrama nisbətən sadə deyil. 527 00:24:51,010 --> 00:24:52,980 >> Təəssüf ki, bu var başqa annoying blok. 528 00:24:52,980 --> 00:24:56,170 Belə ki, indi mən baxılması üçün ortada bir şey var olduğu. 529 00:24:56,170 --> 00:24:59,880 Amma bu istisna olmaqla, çox dəhşətli deyil bu kimi sintaksis. 530 00:24:59,880 --> 00:25:03,080 Mən başında deyiləm əgər siyahısı, Mən haradasa ortasında deyiləm. 531 00:25:03,080 --> 00:25:08,160 Və burada bu xətt, deyib start Siz etdiyiniz hər hansı node at. 532 00:25:08,160 --> 00:25:11,210 533 00:25:11,210 --> 00:25:18,550 Əvvəlki node növbəti sahəsində getmək və göstərici işarə. 534 00:25:18,550 --> 00:25:20,390 >> Nin pictorially bunu bildirin. 535 00:25:20,390 --> 00:25:21,640 Bu mürəkkəb əldə edilib. 536 00:25:21,640 --> 00:25:30,480 537 00:25:30,480 --> 00:25:37,990 Mən burada bir əvvəlki sahələri varsa - Bu nə edək - burada növbəti yataqları. 538 00:25:37,990 --> 00:25:41,200 Mən daha çox mənim göstəricilərinə asanlaşdırmaq üçün gedirəm bütün dəstə çəkmək çox 539 00:25:41,200 --> 00:25:45,710 geri və irəli şeylər crisscrossing bir-birinə. 540 00:25:45,710 --> 00:25:50,870 Və indi, yalnız bu 1, 2 deyək Müzakirə naminə 3, hətta 541 00:25:50,870 --> 00:25:53,410 ki sıralamaq deyil, baxmayaraq söz mövzusu problem. 542 00:25:53,410 --> 00:25:55,900 >> Belə ki, burada mənim bağlı siyahı var. 543 00:25:55,900 --> 00:25:59,300 Mən bu iki aradan qaldırılması üçün çalışıram hekayə xüsusi versiyası. 544 00:25:59,300 --> 00:26:01,960 Belə ki, I pointer yeniləndi etdik bu oğlan işarə etmək. 545 00:26:01,960 --> 00:26:03,315 Belə ki, bu PTR edir. 546 00:26:03,315 --> 00:26:04,530 O, burada işarə edir. 547 00:26:04,530 --> 00:26:07,170 Bu mövcud olan, siyahısı qlobal əvvəlki kimi. 548 00:26:07,170 --> 00:26:09,200 O nə olursa olsun burada işarə edir. 549 00:26:09,200 --> 00:26:10,800 İndi, mən iki aradan qaldırılması üçün çalışıram. 550 00:26:10,800 --> 00:26:13,850 >> Pointer burada işarə edir, belə ki, mən deyiləm , yəqin, təqib gedir 551 00:26:13,850 --> 00:26:17,110 1 mənə qoyur əvvəlki göstərici. 552 00:26:17,110 --> 00:26:22,290 Mən demək gedirəm ki, növbəti Bu mənə üzərində gətirən sahə, 553 00:26:22,290 --> 00:26:25,410 burada qutusu, gedir bərabər pointer növbəti. 554 00:26:25,410 --> 00:26:28,400 Belə ki, bu göstərici, bu yanında. 555 00:26:28,400 --> 00:26:31,840 O deməkdir ki, bu arrow ehtiyacları bu oğlan qeyd etmək. 556 00:26:31,840 --> 00:26:35,140 >> Belə kodu ki, xətt yalnız nə var bu bir az daşıyır. 557 00:26:35,140 --> 00:26:37,500 İndi, bu kimi baxır düzgün istiqamətdə addım. 558 00:26:37,500 --> 00:26:41,390 Biz mahiyyətcə 2 out snip istəyirəm 1 və 3 orta. 559 00:26:41,390 --> 00:26:44,400 Belə ki, biz istəyirik ki, hissi verir onun ətrafında marşrut bu göstərici. 560 00:26:44,400 --> 00:26:50,400 Belə ki, bu növbəti line yoxlanılması əgər pointer Növbəti null deyil, var 561 00:26:50,400 --> 00:26:54,200 2 sağ həqiqətən kimsə, ki, biz də nə etmək lazımdır deməkdir 562 00:26:54,200 --> 00:26:55,850 bir az burada snip. 563 00:26:55,850 --> 00:27:00,590 >> Mən indi bu göstərici riayət etmək lazımdır və əvvəlki göstərici yeniləmə 564 00:27:00,590 --> 00:27:05,410 bir bir az etmək üçün bu oğlan burada burada nöqtə puç. 565 00:27:05,410 --> 00:27:07,100 İndi, bu vizual gözəl. 566 00:27:07,100 --> 00:27:11,930 Var ki, bu bir az messy var artıq 2 işarə yoxdur. 567 00:27:11,930 --> 00:27:13,600 2 sol işarə edir. 568 00:27:13,600 --> 00:27:14,980 Və 2 sağ işarə edir. 569 00:27:14,980 --> 00:27:17,480 Lakin, o, istəyir nə edə bilər, çünki o azad almaq haqqında. 570 00:27:17,480 --> 00:27:19,480 Və nə etməz bu dəyərlər artıq. 571 00:27:19,480 --> 00:27:23,040 >> Nə vacibdir qalan ki uşaqlar yuxarıda marşrutlaşdırma olunur 572 00:27:23,040 --> 00:27:24,280 və indi onu aşağıda. 573 00:27:24,280 --> 00:27:25,810 And olsun ki, biz gələn nə var. 574 00:27:25,810 --> 00:27:29,360 Biz demək deməkdir biz pulsuz göstərici, əməliyyat sistemi, xoş gəlmisiniz 575 00:27:29,360 --> 00:27:30,906 Bu düzəltmək üçün. 576 00:27:30,906 --> 00:27:34,900 Və sonra nəhayət, biz qayıtmaq. 577 00:27:34,900 --> 00:27:37,220 Else dolayısı, əgər biz hələ geri deyil, 578 00:27:37,220 --> 00:27:38,290 biz axtarır saxlamaq üçün var. 579 00:27:38,290 --> 00:27:41,485 Belə ki, pointer yalnız növbəti göstərici bərabərdir burada bu oğlan hərəkət deməkdir. 580 00:27:41,485 --> 00:27:42,600 Burada bu oğlan keçin. 581 00:27:42,600 --> 00:27:45,400 Burada bu oğlan hərəkət əgər, əslində, biz sayı tapmadı 582 00:27:45,400 --> 00:27:46,960 biz hələ aradığınız. 583 00:27:46,960 --> 00:27:49,630 >> Belə səmimi, bu, tamamilə görünür böyük, mən ilk, düşünmək 584 00:27:49,630 --> 00:27:52,180 nəzər, xüsusilə mübarizə əgər Bu viktorina ərzində sonra bax 585 00:27:52,180 --> 00:27:52,850 bu kimi bir şey. 586 00:27:52,850 --> 00:27:55,050 Və siz geri özünüz Pat. 587 00:27:55,050 --> 00:27:57,080 Bəli, mən ola bilər heç bir yol var viktorina ilə gəlmək. 588 00:27:57,080 --> 00:28:00,470 Amma siz, müdafiə edirəm siz qırmaq əgər bu fərdi daxil aşağı 589 00:28:00,470 --> 00:28:04,400 yalnız hallar və onun vasitəsilə gəzmək diqqətlə, etiraf, altında olsa da, 590 00:28:04,400 --> 00:28:06,300 stres hallar. 591 00:28:06,300 --> 00:28:09,470 >> Təşəkkürlə, şəkil etdi xoşbəxt hər şey. 592 00:28:09,470 --> 00:28:11,050 Siz bu cəlb edə bilər yollar bir sıra. 593 00:28:11,050 --> 00:28:12,760 Siz crisscrossing etmək yoxdur burada bir şey. 594 00:28:12,760 --> 00:28:14,520 Siz düz ilə bunu edə bilər bu kimi xətləri. 595 00:28:14,520 --> 00:28:18,790 Amma bu problemin mahiyyət, Ümumiyyətlə, həyata idi ki, 596 00:28:18,790 --> 00:28:22,060 sonunda şəkil bir az baxmaq lazımdır bu kimi bir şey, çünki 597 00:28:22,060 --> 00:28:25,030 daimi zaman saxlamaq ki, nəzərdə tutulmuş parazit və parazit və parazit burada 598 00:28:25,030 --> 00:28:29,900 başında yeni qovşaqlarının siyahısı. 599 00:28:29,900 --> 00:28:31,960 Hər hansı bir sualınız? 600 00:28:31,960 --> 00:28:34,565 Yəqin ki, ən çətin əlbəttə coding suallar. 601 00:28:34,565 --> 00:28:37,690 >> Auditoriya: Belə oxşar siyahısı əvvəlki nümunələri başı. 602 00:28:37,690 --> 00:28:39,640 >> DAVID J. MALAN: Məhz, dəqiq. 603 00:28:39,640 --> 00:28:43,130 Yalnız fərqli bir ad qlobal dəyişən. 604 00:28:43,130 --> 00:28:44,380 Dünya geniş nə? 605 00:28:44,380 --> 00:28:48,880 606 00:28:48,880 --> 00:28:49,730 >> Rob Bowden: OK. 607 00:28:49,730 --> 00:28:52,020 Belə ki, bu siz biridir Bu paraqraf yazmaq idi. 608 00:28:52,020 --> 00:28:56,060 Bəzi insanlar oçerklər yazmışdır Bu sual üçün. 609 00:28:56,060 --> 00:29:00,230 Amma yalnız bu altı terminlərdən istifadə etmək lazımdır zaman nə təsvir etmək 610 00:29:00,230 --> 00:29:02,440 Siz facebook.com əlaqə üçün cəhd edin. 611 00:29:02,440 --> 00:29:07,930 Mən yalnız prosesi vasitəsilə danışmaq lazımdır bütün bu şərtləri istifadə. 612 00:29:07,930 --> 00:29:11,290 Belə ki, bizim browser, biz facebook.com yazın və Enter düyməsini basın. 613 00:29:11,290 --> 00:29:17,280 Belə ki, bizim browser bir inşa edəcək HTTP göndərmək olacaq ki, tələb 614 00:29:17,280 --> 00:29:22,220 Facebook bəzi prosesi Facebook ilə bizə cavab 615 00:29:22,220 --> 00:29:24,450 Öz page HTML. 616 00:29:24,450 --> 00:29:28,800 >> Belə ki, prosesi nədir olan HTTP sorğu 617 00:29:28,800 --> 00:29:30,730 Facebook həqiqətən olur? 618 00:29:30,730 --> 00:29:32,790 Belə ki, birinci, biz tərcümə etmək lazımdır Facebook.com. 619 00:29:32,790 --> 00:29:38,780 Belə ki, yalnız adı Facebook.com verilir əslində HTTP isteği yoxdur yerləşir 620 00:29:38,780 --> 00:29:39,940 getmək lazımdır? 621 00:29:39,940 --> 00:29:44,120 Beləliklə, biz Facebook.com tərcümə etmək lazımdır bir IP ünvan, hansı benzersiz 622 00:29:44,120 --> 00:29:47,620 nə maşın biz, həqiqətən, müəyyən Bu sorğu göndərmək istəyirəm. 623 00:29:47,620 --> 00:29:49,310 Sizin laptop bir IP ünvanı var. 624 00:29:49,310 --> 00:29:52,240 Internetə bağlı bir şey bir IP ünvanı var. 625 00:29:52,240 --> 00:29:59,030 >> Belə ki, DNS, Domain Name System ki, nə tərcümə idarə etmək olacaq 626 00:29:59,030 --> 00:30:03,750 facebook.com bir IP ünvan ki, Siz, həqiqətən, müraciət etmək istəyirəm. 627 00:30:03,750 --> 00:30:08,075 Beləliklə, biz DNS server əlaqə və demək, facebook.com nədir? 628 00:30:08,075 --> 00:30:16,560 Bu oh, bu IP ünvanı 190,212 var, deyir bir şey, bir şey, bir şey. 629 00:30:16,560 --> 00:30:16,900 Bütün hüquqlar. 630 00:30:16,900 --> 00:30:18,850 İndi nə maşın Mən müraciət etmək istəyirəm. 631 00:30:18,850 --> 00:30:22,360 >> Beləliklə, sizin HTTP sorğu göndərin ki, maşın üzərində. 632 00:30:22,360 --> 00:30:24,140 Belə ki, necə ki, maşın almaq deyil? 633 00:30:24,140 --> 00:30:27,200 Yaxşı, sorğu gedir router dönen üçün router. 634 00:30:27,200 --> 00:30:32,630 Sinfində nümunə saxla, harada biz, həqiqətən marşrutu gördüm ki, 635 00:30:32,630 --> 00:30:35,340 biz cəhd zaman paket etdi ünsiyyət. 636 00:30:35,340 --> 00:30:38,460 Biz Atlantik üzərində jump gördüm Bir nöqtə və ya hər hansı at Ocean. 637 00:30:38,460 --> 00:30:42,820 >> Belə ki, ötən dövr port. 638 00:30:42,820 --> 00:30:46,520 Belə ki, bu kompüter indi. 639 00:30:46,520 --> 00:30:49,970 Hal-hazırda çox şeylər ola bilər internet ilə ünsiyyət. 640 00:30:49,970 --> 00:30:53,730 Mən, demək, Skype çalışan ola bilər. 641 00:30:53,730 --> 00:30:55,670 Mən açıq bir web browser ola bilər. 642 00:30:55,670 --> 00:30:59,010 Mən bir şey ola bilər ki, faylları Torrenting. 643 00:30:59,010 --> 00:31:00,880 Belə ki, bu şeyi bütün ilə ünsiyyət 644 00:31:00,880 --> 00:31:02,600 bir şəkildə internet. 645 00:31:02,600 --> 00:31:08,070 >> Sizin kompüter müəyyən məlumatlar alır zaman internet, necə yoxdur 646 00:31:08,070 --> 00:31:10,130 nə proqram həqiqətən məlumat istəyir? 647 00:31:10,130 --> 00:31:12,610 Bu olub necə bilir məlumat üçün nəzərdə tutulur 648 00:31:12,610 --> 00:31:16,070 qarşı tətbiq Torrenting web browser? 649 00:31:16,070 --> 00:31:20,980 Belə ki, bu portların məqsədi Bu applications bütün var 650 00:31:20,980 --> 00:31:22,720 bilgisayarınızda bir port iddia etdi. 651 00:31:22,720 --> 00:31:27,580 Belə ki, web browser, hey deyir Mən port 1000 dinləmək alıram. 652 00:31:27,580 --> 00:31:32,240 Və Torrenting proqram deyib, Mən port 3000 dinləmək alıram. 653 00:31:32,240 --> 00:31:34,770 Və Skype I port 4000 istifadə edirəm, deyir. 654 00:31:34,770 --> 00:31:41,950 >> Bəzi məlumatları almaq zaman məxsusdur Bu applications biri məlumatlarına 655 00:31:41,950 --> 00:31:45,510 olan port ilə qeyd olunur ki, əslində birlikdə göndərilməlidir. 656 00:31:45,510 --> 00:31:47,950 Belə ki, bu oh, mən məxsusdur deyir port 1000. 657 00:31:47,950 --> 00:31:50,950 Mən bundan sonra bu irəli lazımdır bilirik mənim web browser boyunca. 658 00:31:50,950 --> 00:31:56,440 Belə ki, səbəb burada müvafiq web server edirlər ki, 659 00:31:56,440 --> 00:31:58,240 port 80 qulaq asmaq. 660 00:31:58,240 --> 00:32:02,420 Mən Facebook.com əlaqə Belə ki, mən deyiləm bəzi maşın ilə ünsiyyət. 661 00:32:02,420 --> 00:32:06,390 Amma hansı port demək lazımdır Mən ünsiyyət istəyirəm maşın. 662 00:32:06,390 --> 00:32:09,160 Və web server olmaq üçün edirlər port 80 dinləmək. 663 00:32:09,160 --> 00:32:14,010 >> Onlar istəyirdi, onlar müəyyən edə bilər up belə ki port 7000 kimi siyahıları. 664 00:32:14,010 --> 00:32:19,090 Və sonra bir web browser, mən bilər üçün 7000: əl Facebook.com yazın 665 00:32:19,090 --> 00:32:24,600 port 7000 üçün sorğu göndər Facebook web server. 666 00:32:24,600 --> 00:32:26,820 >> DAVID J. MALAN: Və bu halda, hətta biz tələb etməyib, baxmayaraq ki, insanlar 667 00:32:26,820 --> 00:32:30,000 Bu qeyd, bu halda, nə port sorğu həqiqətən getmək istəyirsiniz? 668 00:32:30,000 --> 00:32:36,630 669 00:32:36,630 --> 00:32:37,880 Yenidən cəhd edin. 670 00:32:37,880 --> 00:32:42,810 671 00:32:42,810 --> 00:32:44,300 Məhz. 672 00:32:44,300 --> 00:32:47,960 Bir incelik üçün axtarır, lakin ki heç biri son var. 673 00:32:47,960 --> 00:32:51,770 >> Rob Bowden: Belə HTTPS, bu ildən üçün xüsusi dinləmək 674 00:32:51,770 --> 00:32:55,180 şifrelenir, bu port 4430 var. 675 00:32:55,180 --> 00:32:57,680 >> Auditoriya: Və e-poçt 25 var, sağ? 676 00:32:57,680 --> 00:33:00,670 >> DAVID J. MALAN: Giden e-poçt, 25, yep. 677 00:33:00,670 --> 00:33:03,760 >> Rob Bowden: Mən hətta ən bilmirəm - bu aşağı olanları bütün olmaq üçün edirlər 678 00:33:03,760 --> 00:33:06,310 şeylər üçün qorunur. 679 00:33:06,310 --> 00:33:09,260 Mən hər şey edirəm altında 1024 qorunur. 680 00:33:09,260 --> 00:33:13,450 >> Auditoriya: Niyə dedin 3 yanlış sayı idi? 681 00:33:13,450 --> 00:33:18,820 >> Rob Bowden: Çünki bir IP ünvanı, rəqəm dörd qruplar var. 682 00:33:18,820 --> 00:33:21,090 Onlar 0-dan 255 istəyirik. 683 00:33:21,090 --> 00:33:28,060 Belə ki, 192.168.2.1 bir ümumi yerli şəbəkə IP ünvanı. 684 00:33:28,060 --> 00:33:30,840 O bütün 255-dən azdır edək. 685 00:33:30,840 --> 00:33:33,570 Mən 300 ilə başlayan zaman ki, bəlkə ola bilməz 686 00:33:33,570 --> 00:33:35,210 nömrələri biri olmuşdur. 687 00:33:35,210 --> 00:33:38,170 >> DAVID J. MALAN: Lakin silly clip - bu onlar bir olduğu CSI idi 688 00:33:38,170 --> 00:33:39,970 sayı çox böyük idi IP ünvan üçün. 689 00:33:39,970 --> 00:33:42,940 690 00:33:42,940 --> 00:33:46,110 >> Rob Bowden: Bu hər hansı suallar? 691 00:33:46,110 --> 00:33:51,710 Növbəti bir, belə tam dəyişiklik mövzu, lakin biz bu PHP array var 692 00:33:51,710 --> 00:33:53,270 Dörd ildə evlər. 693 00:33:53,270 --> 00:33:56,360 Və biz bir unordered siyahısı var. 694 00:33:56,360 --> 00:33:59,550 Və biz hər elementi çap etmək istəyirəm yalnız ev adı olan. 695 00:33:59,550 --> 00:34:09,090 696 00:34:09,090 --> 00:34:11,870 Beləliklə, biz bir foreach loop var. 697 00:34:11,870 --> 00:34:17,540 Belə ki, sintaksis foreach unutmayın, array maddə kimi array. 698 00:34:17,540 --> 00:34:22,360 Belə ki, loop hər iteration vasitəsilə, ev bir almaq üçün gedir 699 00:34:22,360 --> 00:34:24,060 serialın içərisində dəyərlər. 700 00:34:24,060 --> 00:34:26,530 >> Ilk iteration, ev Cabot House olacaq. 701 00:34:26,530 --> 00:34:30,370 Ikinci iteration, ev olacaq belə Courier House və. 702 00:34:30,370 --> 00:34:34,370 Belə ki, ev kimi hər dörd, biz istəyirik yalnız çap üçün gedir - 703 00:34:34,370 --> 00:34:37,250 siz də dəstəklənmişdir bilərdi - 704 00:34:37,250 --> 00:34:42,199 sonra siyahısı maddə və ev adı və sonra siyahısı maddə bağlayın. 705 00:34:42,199 --> 00:34:45,210 Bu qıvrım aşırma burada isteğe bağlıdır. 706 00:34:45,210 --> 00:34:49,480 >> Və sonra biz də sual etdi özü, yaxın unutmayın 707 00:34:49,480 --> 00:34:50,770 Rəqəmsiz siyahı tag. 708 00:34:50,770 --> 00:34:53,949 Beləliklə, biz PHP rejimindən çıxmaq lazımdır Bunu etmək üçün. 709 00:34:53,949 --> 00:35:00,280 Yoxsa biz dəstəklənmişdir bilərdi Rəqəmsiz siyahı tag yaxın. 710 00:35:00,280 --> 00:35:02,380 >> DAVID J. MALAN: burada da gözəl olardı bir köhnə məktəb istifadə etmək olmuşdur 711 00:35:02,380 --> 00:35:07,340 = 0 0 $ i ilə loop və sayar istifadə Bu ray uzunluğu anlamaq. 712 00:35:07,340 --> 00:35:09,240 Ümumilikdə gözəl çox, bir az wordier. 713 00:35:09,240 --> 00:35:12,170 714 00:35:12,170 --> 00:35:14,742 >> Auditoriya: Belə ki, üçün gedir, əgər [Işitilemez], sən nə olardı - 715 00:35:14,742 --> 00:35:16,734 Mən loop [işitilemez] nə unutmayın. 716 00:35:16,734 --> 00:35:21,380 Siz dörd bracket i $ istəyirsiniz? 717 00:35:21,380 --> 00:35:21,850 >> DAVID J. MALAN: Exactly. 718 00:35:21,850 --> 00:35:23,100 Bəli, dəqiq. 719 00:35:23,100 --> 00:35:26,650 720 00:35:26,650 --> 00:35:27,900 >> Rob Bowden: Başqa bir şey? 721 00:35:27,900 --> 00:35:31,350 722 00:35:31,350 --> 00:35:32,010 >> DAVID J. MALAN: Bütün hüququ. 723 00:35:32,010 --> 00:35:32,300 Ticarət-off. 724 00:35:32,300 --> 00:35:38,290 Belə ki, cavab dəstələri var idi Bu hər biri üçün mümkün. 725 00:35:38,290 --> 00:35:40,510 Biz, həqiqətən, yalnız aradığınız bir ayaq və məcburedici bir şey 726 00:35:40,510 --> 00:35:41,100 bir İşin mənfi tərəfi odur. 727 00:35:41,100 --> 00:35:44,830 Və sayı 16 users 'doğrulama, xahiş input klient, JavaScript kimi, 728 00:35:44,830 --> 00:35:47,280 əvəzinə server-yan, PHP kimi. 729 00:35:47,280 --> 00:35:49,450 Belə ki, nə bir ayaq var bunu klient? 730 00:35:49,450 --> 00:35:53,780 >> Yaxşı, biz təklif şeyi biridir gizlilik azaltmaq ki, siz, çünki 731 00:35:53,780 --> 00:35:56,750 əlaqə narahat yoxdur bir neçə bilər server olan 732 00:35:56,750 --> 00:36:00,390 ms və ya saniyə hətta bir neçə ki, aradan qaldırılması və yalnız 733 00:36:00,390 --> 00:36:04,670 istifadəçilərin giriş klient tərəfindən doğrulama bir on-təqdim handler tetiklemesini və 734 00:36:04,670 --> 00:36:06,650 yalnız onlar yazın idi yoxlanılması Ad şey? 735 00:36:06,650 --> 00:36:08,080 Onlar bir şey yazın mi e-mail ünvanı üçün? 736 00:36:08,080 --> 00:36:10,950 Onlar bir yurt seçdin açılan menyu? 737 00:36:10,950 --> 00:36:14,360 >> Siz onlara ani rəy verə bilər Bu GHz kompüter istifadə edərək, 738 00:36:14,360 --> 00:36:16,770 və ya onlar ki, nə olursa olsun həqiqətən onların stolüstü. 739 00:36:16,770 --> 00:36:19,310 Belə ki, yalnız daha yaxşı bir istifadəçi var adətən yaşamağa. 740 00:36:19,310 --> 00:36:24,460 Amma klient bunu bir İşin mənfi tərəfi odur qiymətləndirmə, siz də olmadan bunu əgər 741 00:36:24,460 --> 00:36:29,860 server-side doğrulama edir ki, CS50 gələn ən hər kəs bilir 742 00:36:29,860 --> 00:36:33,980 Siz yalnız istədiyiniz məlumat göndərə bilərsiniz ki, bir server yollar bir sıra. 743 00:36:33,980 --> 00:36:37,030 Açığı, ən hər hansı bir browser, siz parametrləri və yalnız ətrafında basın 744 00:36:37,030 --> 00:36:40,110 JavaScript söndürmək, hansı ki, Buna görə də, hər hansı formada aradan 745 00:36:40,110 --> 00:36:41,080 qiymətləndirmə. 746 00:36:41,080 --> 00:36:44,460 >> Amma siz də geri bilər ki, hətta mən istifadə sinif bəzi gizli şeylər etdi 747 00:36:44,460 --> 00:36:47,790 telnet və həqiqətən iddia GET göndərməklə browser ola 748 00:36:47,790 --> 00:36:49,240 bir server sorğu. 749 00:36:49,240 --> 00:36:51,030 Və əlbəttə deyil bir JavaScript istifadə. 750 00:36:51,030 --> 00:36:53,290 Yalnız mənə əmrləri yazaraq oldu bir klaviatura. 751 00:36:53,290 --> 00:36:57,410 Belə ki, həqiqətən, kifayət qədər hər hansı bir proqramçı web və HTTP ilə rahatlıq 752 00:36:57,410 --> 00:37:01,690 o istəyir nə data göndərə bilər qiymətləndirmə olmadan server. 753 00:37:01,690 --> 00:37:05,470 Və server də yoxlanılması deyil əgər, onlar mənə bir ad vermək idi ki, 754 00:37:05,470 --> 00:37:08,930 Bu, həqiqətən, cari e-mail etdi onlar bir yurt seçmək, son bilər 755 00:37:08,930 --> 00:37:12,800 up daxil saxta və ya yalnız boş data Sizin bazasında olan yəqin ki, 756 00:37:12,800 --> 00:37:15,450 yaxşı bir şey olacaq deyil əgər Siz orada idi fərz edilmişdir. 757 00:37:15,450 --> 00:37:16,770 >> Belə ki, bu annoying reallıqdır. 758 00:37:16,770 --> 00:37:19,890 Lakin general, müştəri tərəfində qiymətləndirmə böyükdür. 759 00:37:19,890 --> 00:37:21,810 Amma bu iki dəfə çox iş deməkdir. 760 00:37:21,810 --> 00:37:25,970 Müxtəlif mövcud var baxmayaraq üçün kitabxanaların, JavaScript kitabxana 761 00:37:25,970 --> 00:37:28,830 Məsələn, bu çox etmək baş ağrısı daha az. 762 00:37:28,830 --> 00:37:31,940 Və siz kodu bəzi təkrar edə bilərsiniz server-side, klient. 763 00:37:31,940 --> 00:37:35,980 Amma bu adətən olduğunu dərk edirsiniz əlavə iş. 764 00:37:35,980 --> 00:37:36,415 Bəli. 765 00:37:36,415 --> 00:37:37,792 >> Auditoriya: Belə ki, biz yalnız az təhlükəsiz bildirib - 766 00:37:37,792 --> 00:37:39,205 >> DAVID J. MALAN: [gülür] 767 00:37:39,205 --> 00:37:39,680 Uf. 768 00:37:39,680 --> 00:37:43,105 Həmin həmişə çətindir qərar olanlar. 769 00:37:43,105 --> 00:37:44,480 >> Rob Bowden: Bu ki qəbul edilmişdir. 770 00:37:44,480 --> 00:37:44,810 >> DAVID J. MALAN: Nə? 771 00:37:44,810 --> 00:37:45,810 >> Rob Bowden: Mən bu problem yaratdı. 772 00:37:45,810 --> 00:37:46,735 Ki, qəbul edərdi. 773 00:37:46,735 --> 00:37:47,220 >> DAVID J. MALAN: Bəli. 774 00:37:47,220 --> 00:37:47,830 >> Auditoriya: Cool. 775 00:37:47,830 --> 00:37:51,770 >> Rob Bowden: Amma biz qəbul etmədi ilk bir - 776 00:37:51,770 --> 00:37:53,630 yaxşı, nə biz aradığınız edir sizin kimi bir şey yoxdur 777 00:37:53,630 --> 00:37:55,270 server ilə ünsiyyət. 778 00:37:55,270 --> 00:37:58,355 Biz yalnız daha sürətli qəbul etmədi. 779 00:37:58,355 --> 00:38:00,080 >> Auditoriya: haqqında səhifə yeniden yoxdur? 780 00:38:00,080 --> 00:38:00,430 >> Rob Bowden: Bəli. 781 00:38:00,430 --> 00:38:03,000 Yəni qəbul cavab idi. 782 00:38:03,000 --> 00:38:06,300 >> DAVID J. MALAN: biz hiss Anything Bu ehtimal deyil daha çox ehtimal idi 783 00:38:06,300 --> 00:38:09,780 Siz nə bilirdi ki, çətin olan deyərək 784 00:38:09,780 --> 00:38:13,500 bəzən çəkmək line. 785 00:38:13,500 --> 00:38:16,000 Əvəzinə bağlı siyahısını istifadə edərək qorumaq üçün bir sıra bir 786 00:38:16,000 --> 00:38:17,590 integers siyahısı sıralanır. 787 00:38:17,590 --> 00:38:21,000 Bağlı ilə belə bir ayaq biz tez-tez istinad onların bütün motivasiya ki, siyahıları 788 00:38:21,000 --> 00:38:22,370 giriş siz dinamizm almaq idi. 789 00:38:22,370 --> 00:38:23,030 Onlar inkişaf edə bilər. 790 00:38:23,030 --> 00:38:23,950 Onlar shrink. 791 00:38:23,950 --> 00:38:27,370 Beləliklə, siz hoops vasitəsilə jump yoxdur həqiqətən daha çox yaddaş yaratmaq 792 00:38:27,370 --> 00:38:28,140 bir sıra ilə. 793 00:38:28,140 --> 00:38:30,310 Yoxsa yoxdur yalnız demək, sorry, istifadəçi. 794 00:38:30,310 --> 00:38:31,410 Bu array doldurulur. 795 00:38:31,410 --> 00:38:35,850 Siyahısı belə dinamik artım. 796 00:38:35,850 --> 00:38:37,210 Bağlı siyahıları olsa İşin mənfi tərəfi odur? 797 00:38:37,210 --> 00:38:40,916 798 00:38:40,916 --> 00:38:43,356 >> Auditoriya: Bu xətti var. 799 00:38:43,356 --> 00:38:45,800 Bağlı siyahı axtarış xətti yerine daxil nə 800 00:38:45,800 --> 00:38:46,360 >> DAVID J. MALAN: Exactly. 801 00:38:46,360 --> 00:38:50,160 Bir bağlı siyahı axtarış xətti, sıralanır belə, siz, çünki 802 00:38:50,160 --> 00:38:53,170 yalnız bu çörək qırıntıları edin, bu göstəricilərinə, siyahının başlanğıc 803 00:38:53,170 --> 00:38:53,570 sonuna. 804 00:38:53,570 --> 00:38:57,970 Siz təsadüfi giriş və leverage bilməz, beləliklə, ikili axtarış, bu, hətta 805 00:38:57,970 --> 00:39:00,740 sıralanır, ola bilər ki, bir sıra ilə. 806 00:39:00,740 --> 00:39:02,390 Və bir dəyəri də var. 807 00:39:02,390 --> 00:39:02,966 Bəli. 808 00:39:02,966 --> 00:39:03,800 >> Auditoriya: Yaddaş səmərəsiz? 809 00:39:03,800 --> 00:39:04,130 >> DAVID J. MALAN: Bəli. 810 00:39:04,130 --> 00:39:06,940 Bəli, mən mütləq deyil ki səmərəsiz deyirlər. 811 00:39:06,940 --> 00:39:10,110 Amma bu daha çox yaddaş başa etmir, hər üçün 32 bit lazımdır, çünki 812 00:39:10,110 --> 00:39:13,400 əlavə göstərici node, at story bağlı siyahı ən. 813 00:39:13,400 --> 00:39:16,660 İndi, yalnız integers saxlanılması edirsinizsə Siz göstərici əlavə edirik ki, var 814 00:39:16,660 --> 00:39:17,830 həqiqətən cür qeyri-mənasız. 815 00:39:17,830 --> 00:39:19,340 Bu yaddaş həcmini ikiqat oldu. 816 00:39:19,340 --> 00:39:22,330 Amma əslində, əgər saxlanılması edirik bir ola bilər ki, structs və əlaqəli siyahısı 817 00:39:22,330 --> 00:39:25,540 8 bytes, 16 bytes, daha çox, bəlkə az 818 00:39:25,540 --> 00:39:26,500 marjinal bir dəyəri. 819 00:39:26,500 --> 00:39:28,320 Amma bu yenə bir dəyəri var. 820 00:39:28,320 --> 00:39:31,880 Belə ki, o ya var ki downsides kimi gözəl olmuşdur. 821 00:39:31,880 --> 00:39:32,110 >> 18. 822 00:39:32,110 --> 00:39:36,100 Yazmaq PHP əvəzinə C istifadə bir command-line proqramı. 823 00:39:36,100 --> 00:39:41,890 Belə ki, burada istifadə etmək tez-tez sürətli bir PHP və ya Ruby və ya Python kimi dil. 824 00:39:41,890 --> 00:39:43,700 Siz yalnız tez açmaq bir mətn redaktoru up. 825 00:39:43,700 --> 00:39:45,900 Siz daha çox funksiyaları var sizin üçün. 826 00:39:45,900 --> 00:39:49,325 PHP funksiyaları mətbəx sink var, C, halbuki 827 00:39:49,325 --> 00:39:50,420 çox, çox az var. 828 00:39:50,420 --> 00:39:53,820 Əslində, uşaqlar ağır yol bilirik Siz hash masalar yoxdur. 829 00:39:53,820 --> 00:39:55,000 Siz siyahıları bağlıdır yoxdur. 830 00:39:55,000 --> 00:39:57,470 Bu istəyirsinizsə, sizə onlara özünüzü həyata. 831 00:39:57,470 --> 00:40:00,950 >> PHP belə bir ayaq və ya, həqiqətən, hər hansı bir şərh dil sürətlilik edir 832 00:40:00,950 --> 00:40:02,920 olan Əgər kodunu yaza bilərsiniz. 833 00:40:02,920 --> 00:40:06,660 Amma bir İşin mənfi tərəfi odur, biz bu görəndə mən tez bir misspeller qədər çırpılmış 834 00:40:06,660 --> 00:40:11,780 PHP istifadə mühazirə təzahürüdür ki, bir şərh dil istifadə 835 00:40:11,780 --> 00:40:13,570 adətən gec. 836 00:40:13,570 --> 00:40:18,420 Və biz bir ilə aşkar olduğunu gördüm 3 0.3 saniyə zaman artacaq 837 00:40:18,420 --> 00:40:24,440 çünki şərh saniyə, ki, həqiqətən olur. 838 00:40:24,440 --> 00:40:27,060 >> Digər ayaq idi ki, siz tərtib etmək yoxdur. 839 00:40:27,060 --> 00:40:30,130 Belə ki, bu da inkişaf hızlandırır Yeri gəlmişkən, siz yoxdur, çünki 840 00:40:30,130 --> 00:40:31,360 bir proqram çalışan iki addımlar. 841 00:40:31,360 --> 00:40:32,140 Siz yalnız bir var. 842 00:40:32,140 --> 00:40:35,260 Və belə ki, olduqca çekici həmçinin. 843 00:40:35,260 --> 00:40:38,450 Bir SQL verilənlər bazası istifadə edərək əvəzinə məlumat saxlamaq üçün bir CSV faylı. 844 00:40:38,450 --> 00:40:40,230 Belə ki, SQL verilənlər bazası pset7 üçün istifadə olunur. 845 00:40:40,230 --> 00:40:42,060 CSV faylları çox istifadə etməyib. 846 00:40:42,060 --> 00:40:45,960 Amma kimi pset7 dolayı istifadə yaxşı Yahoo Maliyyə söhbət. 847 00:40:45,960 --> 00:40:49,330 >> Amma CSV yalnız bir Excel fayl kimi, lakin super sadə, sütunlar olduğu 848 00:40:49,330 --> 00:40:54,010 yalnız daxili vergüllə demarked bir başqa mətn faylı. 849 00:40:54,010 --> 00:40:56,740 Və bir SQL verilənlər bazası istifadə edir bir az daha çekici. 850 00:40:56,740 --> 00:41:00,060 Siz hər şeyi almaq, çünki bu, bir ayaq var kimi seçin və daxil edin və silin. 851 00:41:00,060 --> 00:41:03,790 Və siz, ehtimalla, indekslər almaq MySQL və kimi digər məlumat bazaları, 852 00:41:03,790 --> 00:41:07,510 Oracle, yaddaş sizin üçün qurmaq olan Sizin seçin yəqin deyil deməkdir 853 00:41:07,510 --> 00:41:09,000 alt xətti üst olacaq. 854 00:41:09,000 --> 00:41:11,300 Bu, həqiqətən bir şey olacaq Binar axtarış və ya bir şey kimi 855 00:41:11,300 --> 00:41:12,520 ruhda oxşar. 856 00:41:12,520 --> 00:41:13,930 Belə ki, onlar ümumiyyətlə daha sürətli istəyirik. 857 00:41:13,930 --> 00:41:16,040 >> Amma bir İşin mənfi tərəfi odur ki, yalnız daha çox iş var. 858 00:41:16,040 --> 00:41:16,730 Bu daha çox səy var. 859 00:41:16,730 --> 00:41:18,140 Siz verilənlər bazası anlamaq lazımdır. 860 00:41:18,140 --> 00:41:18,940 Siz qurmaq lazımdır. 861 00:41:18,940 --> 00:41:20,840 Siz çalıştırmak üçün bir server lazımdır ki, verilənlər bazası. 862 00:41:20,840 --> 00:41:22,750 Siz anlamaq lazımdır konfiqurasiya. 863 00:41:22,750 --> 00:41:24,930 Belə ki, bu yalnız bu ticarət-off növləri. 864 00:41:24,930 --> 00:41:27,860 Bir CSV fayl, siz Halbuki gedit ilə yaradır. 865 00:41:27,860 --> 00:41:28,770 Və siz getmək iyi. 866 00:41:28,770 --> 00:41:31,550 Kənarda heç bir mürəkkəblik var. 867 00:41:31,550 --> 00:41:34,870 >> Əvəzinə hash masa bir trie istifadə edərək saxlamaq üçün ayrı zəncirləmə ilə 868 00:41:34,870 --> 00:41:37,490 xatırladan sözlərin lüğət pset5 edir. 869 00:41:37,490 --> 00:41:42,480 Belə ki, bir nəzəriyyə, ayaq çalışır ən azı, nədir? 870 00:41:42,480 --> 00:41:46,380 Constant zaman, ən azı değilseniz fərdi hər hashing 871 00:41:46,380 --> 00:41:48,990 sizin kimi bir söz məktublar, pset5 üçün ola bilər. 872 00:41:48,990 --> 00:41:52,720 Beş hashes, altı ola bilər beş və ya altı var əgər hashes 873 00:41:52,720 --> 00:41:53,900 söz məktublar. 874 00:41:53,900 --> 00:41:54,580 Və olduqca yaxşı. 875 00:41:54,580 --> 00:41:56,910 Və bir üst bound var əgər necə uzun sözləri ola bilər ki, var 876 00:41:56,910 --> 00:41:59,320 həqiqətən asymptotically daimi vaxt. 877 00:41:59,320 --> 00:42:05,180 >> Halbuki ayrı bir hash table ki orada problem chaining 878 00:42:05,180 --> 00:42:09,070 məlumat strukturunun növ ki, Sizin alqoritmlərinin performans adətən 879 00:42:09,070 --> 00:42:12,700 şeyi sayından asılıdır artıq data strukturunda. 880 00:42:12,700 --> 00:42:15,660 Ki, mütləq ilə işi var zəncirlər, qovuşdurmağımız qoymaq daha stuff 881 00:42:15,660 --> 00:42:18,800 bir hash masa daxil, artıq o zəncirlər ən pis deməkdir ki, getmək 882 00:42:18,800 --> 00:42:21,960 halda, siz axtarır bilər şey bütün yol bir sonunda 883 00:42:21,960 --> 00:42:26,000 o zəncirlər təsirli olan xətti bir şey daxil devolves. 884 00:42:26,000 --> 00:42:29,450 >> İndi, təcrübədə, bu, tamamilə ola bilər ki, bir hash table ilə işi 885 00:42:29,450 --> 00:42:32,820 zəncirlər bir müvafiq daha sürətli trie həyata keçirilməsi. 886 00:42:32,820 --> 00:42:35,570 Amma arasında, müxtəlif səbəblərə görə çalışır, bir çox istifadə olan 887 00:42:35,570 --> 00:42:39,240 yaddaş göstərir ki, əslində, yavaş şeylər aşağı, siz gözəl deyil, çünki 888 00:42:39,240 --> 00:42:42,410 caching deyilən bir şey faydaları, birlikdə yaxın olan şeylər 889 00:42:42,410 --> 00:42:45,420 yaddaş əldə edə bilərsiniz tez-tez daha tez. 890 00:42:45,420 --> 00:42:48,180 Və bəzən ilə gəlmək olar həqiqətən yaxşı hash funksiyası. 891 00:42:48,180 --> 00:42:51,060 Siz bir az sərf olsa belə yaddaş, siz, həqiqətən, ola bilər 892 00:42:51,060 --> 00:42:54,430 sürətli və şeyi tapmaq kimi pis xətti. 893 00:42:54,430 --> 00:42:58,410 >> Belə ki, qısa, mütləq yox idi bu bir və ya hətta iki hər hansı 894 00:42:58,410 --> 00:43:00,050 biz aradığınız xüsusi şeylər. 895 00:43:00,050 --> 00:43:03,080 Inandırıcı həqiqətən bir şey bir ayaq və mənfi kimi 896 00:43:03,080 --> 00:43:04,800 ümumiyyətlə, bizim göz tutuldu. 897 00:43:04,800 --> 00:43:11,840 >> Rob Bowden: Belə ayaq üçün, biz öz qəbul "sürətli". Siz 898 00:43:11,840 --> 00:43:14,540 bu barədə bir şey demək idi. 899 00:43:14,540 --> 00:43:17,910 Siz nəzəri sürətli olsa da, biz sizə cür aydın bilirdi ki, 900 00:43:17,910 --> 00:43:19,470 Bu 1 0 var ki. 901 00:43:19,470 --> 00:43:22,820 Və hash table, nəzəri, 1 0 deyil. 902 00:43:22,820 --> 00:43:26,550 Uzunluğu haqqında bir şey qeyd ümumiyyətlə xal var. 903 00:43:26,550 --> 00:43:32,640 Amma "sürətli" həllər ən çox çalışır idi ki, böyük board 904 00:43:32,640 --> 00:43:34,990 həllər daha obyektiv yavaş ki, hash masalar idi. 905 00:43:34,990 --> 00:43:37,250 Belə ki, daha sürətli və özü həqiqətən doğru deyil. 906 00:43:37,250 --> 00:43:41,550 907 00:43:41,550 --> 00:43:44,380 >> DAVID J. MALAN: Dom de dom dom. 908 00:43:44,380 --> 00:43:46,686 Mən yəqin ki, həyata keçirir ki, yalnız bir deyiləm ki, ehtimal ne var 909 00:43:46,686 --> 00:43:47,500 sağ, elan edilə? 910 00:43:47,500 --> 00:43:50,400 >> Rob Bowden: Mən, həqiqətən yox idi. 911 00:43:50,400 --> 00:43:51,650 >> DAVID J. MALAN: Bu etdi başımda mənada. 912 00:43:51,650 --> 00:43:53,830 913 00:43:53,830 --> 00:43:57,580 >> Rob Bowden: Mən bu yapýyorum. 914 00:43:57,580 --> 00:43:58,020 OK. 915 00:43:58,020 --> 00:44:04,243 Belə ki, bu heç-heçə olduğu biridir sizə bənzər diagram bilər 916 00:44:04,243 --> 00:44:06,040 keçmiş imtahanlarında gördük. 917 00:44:06,040 --> 00:44:12,200 Belə ki, yalnız bu baxaq. 918 00:44:12,200 --> 00:44:18,170 Belə ki, HTML node, biz iki uşaqlar, baş və bədən. 919 00:44:18,170 --> 00:44:20,570 Beləliklə, biz filial - baş və bədən. 920 00:44:20,570 --> 00:44:22,280 Başçısı adı tag var. 921 00:44:22,280 --> 00:44:23,710 Beləliklə, biz bir adı var. 922 00:44:23,710 --> 00:44:28,450 >> İndi, bir şey bir çox insan unuttum Bu mətn qovşaqlarının ki 923 00:44:28,450 --> 00:44:30,430 Bu ağac çərçivəsində elementləri. 924 00:44:30,430 --> 00:44:36,260 Belə ki, burada biz oval kimi onlara çəkmək üçün baş Bu onları fərqləndirmək üçün 925 00:44:36,260 --> 00:44:37,380 qovşaqlarının növləri. 926 00:44:37,380 --> 00:44:41,450 Ancaq xəbərdarlıq, həmçinin burada biz üst var, orta və alt olan qədər başa çatacaq 927 00:44:41,450 --> 00:44:42,560 mətn qovşaqlarının. 928 00:44:42,560 --> 00:44:46,250 Belə ki, o unutmadan qədər idi bir ümumi səhv. 929 00:44:46,250 --> 00:44:48,770 >> Bədən üç övladı var - Bu üç divs. 930 00:44:48,770 --> 00:44:53,340 Belə ki, div, div, div və sonra mətn o DIVS üzvü node uşaqlar. 931 00:44:53,340 --> 00:44:55,900 Ki, olduqca çox var ki, suallara. 932 00:44:55,900 --> 00:44:57,860 >> DAVID J. MALAN: Və qeyd dəyər, biz bu dayanmaq yoxdur, baxmayaraq ki, 933 00:44:57,860 --> 00:45:01,040 biz sərf vaxt ətraflı Sifariş ki, JavaScript, ildə 934 00:45:01,040 --> 00:45:02,290 ki, məsələ texniki. 935 00:45:02,290 --> 00:45:06,330 Belə ki, baş bədənə əvvəl gəlir əgər HTML, onda görünür olmalıdır 936 00:45:06,330 --> 00:45:08,860 faktiki DOM orqanının buraxdı. 937 00:45:08,860 --> 00:45:12,265 Onun yalnız Bilginize, ümumiyyətlə, ki, sənəd üçün deyilən bir şey, burada 938 00:45:12,265 --> 00:45:13,260 Bu məsələ yoxdur. 939 00:45:13,260 --> 00:45:17,470 Və siz bir parser həyata əgər, binasında HTML deyilir ki, bir proqram 940 00:45:17,470 --> 00:45:20,960 yaddaş ağac qədər, vicdanlı olmaq, yəqin ki, daxilən nə siz 941 00:45:20,960 --> 00:45:24,720 hər halda bunu - alt üst, sağ. 942 00:45:24,720 --> 00:45:26,116 >> Rob Bowden: Ki Suallar? 943 00:45:26,116 --> 00:45:29,080 944 00:45:29,080 --> 00:45:30,000 Mən növbəti bir nə lazımdır? 945 00:45:30,000 --> 00:45:32,380 >> DAVID J. MALAN: Sure. 946 00:45:32,380 --> 00:45:33,810 >> Rob Bowden: OK. 947 00:45:33,810 --> 00:45:39,320 Belə ki, bu dağıtmaq bu bufer hücum sual. 948 00:45:39,320 --> 00:45:43,740 Burada tanımaq üçün əsas şey, yaxşı, necə ola bilər bir rəqib oyun 949 00:45:43,740 --> 00:45:46,170 həyata bu proqram ixtiyari kodu? 950 00:45:46,170 --> 00:45:51,860 Belə ki argv1, ilk command line bu proqram dəlil ki, ola bilər 951 00:45:51,860 --> 00:45:53,920 özbaşına uzun. 952 00:45:53,920 --> 00:45:59,160 Lakin burada biz surəti memcpy istifadə etdiyiniz argv1, burada bar edir. 953 00:45:59,160 --> 00:46:00,165 Biz arqument kimi keçən edirik. 954 00:46:00,165 --> 00:46:02,050 Və belə ki, adı bar alaraq. 955 00:46:02,050 --> 00:46:08,040 >> Beləliklə, biz bar memcpying edirik Bu bufer c daxil. 956 00:46:08,040 --> 00:46:09,400 Biz neçə bytes çıxarmaq olunur? 957 00:46:09,400 --> 00:46:14,040 Yaxşı lakin bir çox bytes bar olur ki, dəlil uzunluğu istifadə. 958 00:46:14,040 --> 00:46:17,930 Amma c yalnız 12 bytes genişdir. 959 00:46:17,930 --> 00:46:22,280 Beləliklə, biz bir command line arqument yazın əgər 12 bayt daha artıq, biz istəyirik 960 00:46:22,280 --> 00:46:25,470 Bu daşqın gedir xüsusi bufer. 961 00:46:25,470 --> 00:46:31,000 İndi, necə bir rəqib bezemek bilər əsassız kodu icra daxil proqram? 962 00:46:31,000 --> 00:46:34,910 >> Belə ki, burada xatırlamaq əsas foo çağırır. 963 00:46:34,910 --> 00:46:37,340 Və sonra əsas zəngləri foo. 964 00:46:37,340 --> 00:46:40,408 Bu cəlb edək. 965 00:46:40,408 --> 00:46:44,720 966 00:46:44,720 --> 00:46:46,990 Belə ki, biz yığını var. 967 00:46:46,990 --> 00:46:49,090 Və əsas bir yığını çərçivəsində var alt. 968 00:46:49,090 --> 00:46:51,860 969 00:46:51,860 --> 00:46:53,250 Bir nöqtədə, əsas zəngləri foo. 970 00:46:53,250 --> 00:46:55,390 Yaxşı, dərhal, əsas zəngləri foo. 971 00:46:55,390 --> 00:46:57,130 Və foo öz yığını çərçivəsində olur. 972 00:46:57,130 --> 00:46:59,650 973 00:46:59,650 --> 00:47:02,220 >> İndi, bir anda, foo geri gedir. 974 00:47:02,220 --> 00:47:06,810 Və foo yekunları getdi, biz bilmək lazımdır Əsas biz daxilində nə kodu xətt 975 00:47:06,810 --> 00:47:10,610 bilmək üçün olduğu biz əsas davam etməlidir. 976 00:47:10,610 --> 00:47:13,100 Biz bütövlükdə foo zəng edə bilərsiniz müxtəlif yerlərdə dəstə. 977 00:47:13,100 --> 00:47:14,620 Necə harada qayıtmaq bilirik? 978 00:47:14,620 --> 00:47:16,460 Yaxşı, biz ki, haradasa saxlamaq lazımdır. 979 00:47:16,460 --> 00:47:23,010 >> Belə ki, haradasa sağ buralara, biz saxlamaq biz bir dəfə qayıtmaq lazımdır 980 00:47:23,010 --> 00:47:24,070 foo qaytarır. 981 00:47:24,070 --> 00:47:26,350 Və bu qaytarılması ünvanı. 982 00:47:26,350 --> 00:47:30,490 Belə ki, necə bir rəqib faydalana bilər bu faktdır ki, 983 00:47:30,490 --> 00:47:37,550 Bu bufer c saxlanılır, edək burada c, demək. 984 00:47:37,550 --> 00:47:39,690 Beləliklə, biz c 12 bayt var. 985 00:47:39,690 --> 00:47:40,540 Bu c. 986 00:47:40,540 --> 00:47:43,030 Və bu foo nin yığını ring edir. 987 00:47:43,030 --> 00:47:49,970 Zərərli istifadəçi daxil olur, belə ki, əgər 12-dən çox bayt və ya onlar bir komanda daxil 988 00:47:49,970 --> 00:47:54,570 12 artıq ki line arqument simvol, sonra biz olacaq 989 00:47:54,570 --> 00:47:57,540 Bu bufer daşqın. 990 00:47:57,540 --> 00:47:59,910 >> Biz davam edə bilər. 991 00:47:59,910 --> 00:48:02,220 Və bir anda, biz uzaq getmək biz başlamaq ki, kifayət qədər 992 00:48:02,220 --> 00:48:05,120 bu qaytarılması ünvanı overwriting. 993 00:48:05,120 --> 00:48:08,310 Belə ki, bir dəfə biz geri ünvanı üzerine Bu o deməkdir ki, zaman foo 994 00:48:08,310 --> 00:48:14,220 qaytarır, biz hər yerdə dönən etdiyiniz Pisniyyətli istifadəçi ilə izah olunur 995 00:48:14,220 --> 00:48:19,490 Bu nə ilə daxil nə dəyəri simvol istifadəçi daxil. 996 00:48:19,490 --> 00:48:24,320 Və belə zərərli istifadəçi edilir əgər xüsusilə ağıllı, o, bu ola bilər 997 00:48:24,320 --> 00:48:29,255 Bu printDef haradasa qayıtmaq funksiyası və ya malloc yerdə 998 00:48:29,255 --> 00:48:31,830 funksiyası, yalnız hər yerdə ixtiyari. 999 00:48:31,830 --> 00:48:38,420 >> O nə əgər hətta daha ağıllı deyil istifadəçi burada qayıt. 1000 00:48:38,420 --> 00:48:41,920 Və sonra həyata başlamaq Bu kodu xətləri kimi. 1001 00:48:41,920 --> 00:48:46,610 Belə ki nöqtədə, istifadəçi daxil edə bilərsiniz o, bu regiona istəyir nə. 1002 00:48:46,610 --> 00:48:52,210 O tam nəzarət var proqram üzərində. 1003 00:48:52,210 --> 00:48:53,460 Ki Suallar? 1004 00:48:53,460 --> 00:48:56,380 1005 00:48:56,380 --> 00:49:00,970 Belə ki, növbəti sual tam deyil belə bir şəkildə foo reimplementation 1006 00:49:00,970 --> 00:49:02,620 artıq həssas ki. 1007 00:49:02,620 --> 00:49:03,870 >> Belə ki, yolları bir neçə var Bunu bilərdi. 1008 00:49:03,870 --> 00:49:10,900 1009 00:49:10,900 --> 00:49:13,330 Biz hələ yalnız c var uzunluğu 12 olan. 1010 00:49:13,330 --> 00:49:16,480 Bu bilərdi Sizin həll hissəsi kimi. 1011 00:49:16,480 --> 00:49:18,930 Biz də etmək üçün bir çek əlavə əmin bar null deyildi. 1012 00:49:18,930 --> 00:49:24,460 Sizə lazım deyil, baxmayaraq tam kredit. 1013 00:49:24,460 --> 00:49:27,690 Beləliklə, biz ilk yoxlanılması olduğunuz bar simli uzunluğu. 1014 00:49:27,690 --> 00:49:31,650 Sonra, 12 daha əgər həqiqətən surəti yoxdur. 1015 00:49:31,650 --> 00:49:33,010 Belə ki, bu təyinat bir yoldur. 1016 00:49:33,010 --> 00:49:36,750 >> Təyinat başqa bir yolu əvəzinə c olan yalnız uzunluğu 12 ola, bu, 1017 00:49:36,750 --> 00:49:39,310 uzunluğu strlen (bar) ola bilər. 1018 00:49:39,310 --> 00:49:43,370 Təyinat bir yoldur həqiqətən, yalnız qayıtmaq üçün. 1019 00:49:43,370 --> 00:49:46,690 Belə ki, yalnız bütün xilas kazanılmış əgər Bu, yalnız bütün silindi əgər 1020 00:49:46,690 --> 00:49:51,830 kodu xətləri, siz kazanılmış olardı tam kredit, bu funksiya bəri 1021 00:49:51,830 --> 00:49:54,150 həqiqətən bir şey yerinə yetirmək deyil. 1022 00:49:54,150 --> 00:49:57,650 Bu command line çıxarmaq oldu bəzi array daxil arqument 1023 00:49:57,650 --> 00:49:59,960 onun yerli yığını çərçivəsində. 1024 00:49:59,960 --> 00:50:01,310 Və sonra bir şey qayıdır. 1025 00:50:01,310 --> 00:50:04,020 Və nə bu həyata getdi. 1026 00:50:04,020 --> 00:50:09,740 Belə ki, geri dönüşü də kifayət qədər idi tam kredit əldə yol. 1027 00:50:09,740 --> 00:50:13,425 >> DAVID J. MALAN: Not olduqca ruhunun sual ancaq başına məqbul 1028 00:50:13,425 --> 00:50:15,580 Buna baxmayaraq spec. 1029 00:50:15,580 --> 00:50:18,260 >> Rob Bowden: ki, hər hansı haqqında suallar? 1030 00:50:18,260 --> 00:50:22,270 Bir şey ki, siz ən azı kodu tərtib etmək lazımdır. 1031 00:50:22,270 --> 00:50:24,810 Texniki siz deyil ki, baxmayaraq ki, həssas və sizin kodu deyil, əgər 1032 00:50:24,810 --> 00:50:29,130 tərtib, biz qəbul etmədi. 1033 00:50:29,130 --> 00:50:31,350 No suallar? 1034 00:50:31,350 --> 00:50:33,320 OK. 1035 00:50:33,320 --> 00:50:34,580 >> DAVID J. MALAN: Siz istəyirsiniz bu mövzu demək? 1036 00:50:34,580 --> 00:50:37,230 >> Rob Bowden: Xeyr 1037 00:50:37,230 --> 00:50:40,470 >> DAVID J. MALAN: Belə ki, bu bir, bu yaxşı xəbər və ya pis xəbər ya idi. 1038 00:50:40,470 --> 00:50:43,870 Bu sözün eyni problem deyil ilk viktorina kimi. 1039 00:50:43,870 --> 00:50:46,140 Və demək olar ki, eyni pset1 kimi problem. 1040 00:50:46,140 --> 00:50:49,980 Amma bu qəsdən olmaq sadələşdirilmiş edilmişdir sadə piramida, ola bilər ki, bir 1041 00:50:49,980 --> 00:50:52,330 bir az ilə həll sadə iteration. 1042 00:50:52,330 --> 00:50:55,680 Və həqiqətən, nə biz əldə edilmişdir burada, çox məntiqi deyil 1043 00:50:55,680 --> 00:50:58,100 yəqin ki, bu baxımdan, siz istəyirik, çünki idi daha çox rahat 1044 00:50:58,100 --> 00:51:01,850 loops və ya niyə loops üçün ilə həftə bir, lakin həqiqətən ki, ayrı tease üçün 1045 00:51:01,850 --> 00:51:04,790 Siz bir az rahat olduğunuzu PHP yalnız nə deyil ki, anlayışı 1046 00:51:04,790 --> 00:51:05,290 proqramlaşdırma. 1047 00:51:05,290 --> 00:51:07,820 Bu, həqiqətən bir dil kimi istifadə edilə bilər command line proqramları yazmaq üçün. 1048 00:51:07,820 --> 00:51:10,060 >> And olsun ki, biz çalışırıq nə var diqqət çəkmək üçün. 1049 00:51:10,060 --> 00:51:12,060 Bu command line PHP proqramdır. 1050 00:51:12,060 --> 00:51:16,690 Belə ki, burada C kodu edərkən doğru C, PHP üçün doğru deyil. 1051 00:51:16,690 --> 00:51:17,940 Amma kodu həqiqətən eyni. 1052 00:51:17,940 --> 00:51:21,720 Siz Quiz həllər müqayisə etsək Quiz 1 qarşı 0, siz ki, tapa bilərsiniz 1053 00:51:21,720 --> 00:51:25,630 Bu istisna olmaqla, demək olar ki, eyni deyil Bəzi dollar əlamətləri və üçün 1054 00:51:25,630 --> 00:51:27,250 bir veri növü olmaması. 1055 00:51:27,250 --> 00:51:31,720 Xüsusilə, biz burada bir nəzər, Bu, biz təkrarlamaq ki, görürsünüz 1056 00:51:31,720 --> 00:51:33,730 halda, 1-dən 7 ilə qədər. 1057 00:51:33,730 --> 00:51:34,910 >> Biz bunu 0 index edə bilərdi. 1058 00:51:34,910 --> 00:51:37,320 Amma bəzən, mən yalnız hesab şeylər haqqında düşünmək əqli asan 1059 00:51:37,320 --> 00:51:38,200 1-dən 7. 1060 00:51:38,200 --> 00:51:40,300 Siz bir blok istəyirsinizsə, sonra iki blokları, sonra üç, sonra 1061 00:51:40,300 --> 00:51:41,770 nöqtə, nöqtə, yeddi nöqtə. 1062 00:51:41,770 --> 00:51:45,960 Biz 1 j başlatılmış etdirilir və sonra i qədər hesablanması. 1063 00:51:45,960 --> 00:51:48,150 Və burada hər şey başqa eyni. 1064 00:51:48,150 --> 00:51:49,790 Lakin qeyd edilir şeyi bir neçə. 1065 00:51:49,790 --> 00:51:53,230 Biz bu iki xətləri, bu ilk vermək goofily bir shebang kimi adlı bir, 1066 00:51:53,230 --> 00:51:54,560 kəskin Bang. 1067 00:51:54,560 --> 00:51:58,770 Və yalnız yol ifadə etdiyini bir proqram ola bilər qovluq, 1068 00:51:58,770 --> 00:52:02,160 Siz istifadə etmək istədiyiniz ki, Bu fayl şərh. 1069 00:52:02,160 --> 00:52:04,710 >> Və ki, sonra xətti, Əlbəttə ki, PHP rejimində daxil deməkdir. 1070 00:52:04,710 --> 00:52:07,740 Və çox alt xətt exit PHP rejimi deməkdir. 1071 00:52:07,740 --> 00:52:09,740 Və bu, ümumiyyətlə, işləyir languages ​​şərh. 1072 00:52:09,740 --> 00:52:14,370 Yazmaq əgər bu cür annoying bir foo.php adlı bir fayl proqram. 1073 00:52:14,370 --> 00:52:17,320 Və sonra users üçün yalnız , bu proqram çalıştırmak üçün, OK xatırlayıram, mən 1074 00:52:17,320 --> 00:52:22,320 yazın "php kosmik foo.php." Cür başqa bir şey varsa annoying. 1075 00:52:22,320 --> 00:52:25,270 Və bu da göstərir ki, proqram bütün olmayan PHP, yazılı 1076 00:52:25,270 --> 00:52:27,060 ki, istifadəçi üçün İşıqlandırıcı. 1077 00:52:27,060 --> 00:52:30,100 >> Beləliklə, siz tamamilə. Php kaldırabilirsiniz mühazirə xatırlayıram. 1078 00:52:30,100 --> 00:52:35,690 Və həqiqətən. / Foo edə bilərsiniz əgər Siz edərək onu chmodded etdik 1079 00:52:35,690 --> 00:52:36,500 çalıştırılabilir. 1080 00:52:36,500 --> 00:52:39,630 Belə ki, chmod a + x foo ki edərdi. 1081 00:52:39,630 --> 00:52:41,460 Və siz də shebang burada əlavə edin. 1082 00:52:41,460 --> 00:52:45,320 Lakin, həqiqətən, problem əldə edilib bu kimi bir şey həyata çap. 1083 00:52:45,320 --> 00:52:51,100 No HTML, əlbəttə ki, heç C-kodu, yalnız bəzi PHP. 1084 00:52:51,100 --> 00:52:54,100 Belə ki, Milo sonra problem 25 döndü. 1085 00:52:54,100 --> 00:52:58,050 Və 25, aşağıdakı verildi bir olan skelet kodu, 1086 00:52:58,050 --> 00:52:59,730 olduqca sadə web page. 1087 00:52:59,730 --> 00:53:04,230 Və sulu hissəsi HTML-müdrik aşağı idi burada, biz bədən daxilində var 1088 00:53:04,230 --> 00:53:09,160 giriş unikal ID edir ki, bir forma içərisində iki giriş, biri idi 1089 00:53:09,160 --> 00:53:11,950 adı, biri bir fikir düyməsini bir fikir. 1090 00:53:11,950 --> 00:53:14,240 >> Ilk, növü, mətn idi tipli ikinci təqdim. 1091 00:53:14,240 --> 00:53:16,930 Və biz, həqiqətən, daha sizə verdi Siz yalnız belə, lazım çox maddələr 1092 00:53:16,930 --> 00:53:19,230 Sizlərin olan variantları idi Bu problemi həll etmək. 1093 00:53:19,230 --> 00:53:21,130 Siz ciddi ehtiyac yoxdur bu kimlikleri bütün. 1094 00:53:21,130 --> 00:53:23,580 Ancaq həll etməyə imkan verir Bu müxtəlif yollarla. 1095 00:53:23,580 --> 00:53:27,050 Və üst, qeyd edir ki, obyektiv tetiklemek üçün idi 1096 00:53:27,050 --> 00:53:27,960 bu kimi bir pəncərə - 1097 00:53:27,960 --> 00:53:28,780 Hello, Milo - 1098 00:53:28,780 --> 00:53:31,270 istifadə edərək brauzerinizin açılır əgər super sadə 1099 00:53:31,270 --> 00:53:33,190 çirkin deyil, siqnalı funksiyası. 1100 00:53:33,190 --> 00:53:37,480 Və belə ki, nəticədə, bu sonunda aşağı konseptual birtəhər üçün dinləmək 1101 00:53:37,480 --> 00:53:41,290 formu klient müraciətlərinə , Birtəhər deyil server-side, 1102 00:53:41,290 --> 00:53:45,640 ki, təqdim cavab istifadəçi yazdığınız dəyəri qənimətçilik 1103 00:53:45,640 --> 00:53:50,120 adı sahəyə, sonra bir uyarı orqanı tapılanlar. 1104 00:53:50,120 --> 00:53:53,460 >> Beləliklə, siz bunu edə bilərsiniz bir yol ilə bir az görünür jQuery, 1105 00:53:53,460 --> 00:53:56,880 ilk syntactically şaşırtıcı. 1106 00:53:56,880 --> 00:54:00,760 Siz təmiz DOM kodu ilə bunu edə bilərsiniz - ID document.getelement. 1107 00:54:00,760 --> 00:54:02,530 Lakin bu versiya bir nəzər salaq. 1108 00:54:02,530 --> 00:54:05,110 Mən əhəmiyyətli bir neçə var xətləri ilk. 1109 00:54:05,110 --> 00:54:09,460 Bir sözlə, biz olan bu xətt var Siz görmüşəm bilər nə üçün eynidir 1110 00:54:09,460 --> 00:54:13,830 Mən inanıram ki,, form2.html Həftə 9 sinif. 1111 00:54:13,830 --> 00:54:16,960 Və bu, yalnız icra deyib aşağıdakı kodu zaman 1112 00:54:16,960 --> 00:54:18,430 sənəd hazırdır. 1113 00:54:18,430 --> 00:54:21,770 Bu əhəmiyyətli olan yalnız çünki HTML pages üst oxunur 1114 00:54:21,770 --> 00:54:23,280 sağ sol alt. 1115 00:54:23,280 --> 00:54:27,910 >> Ona görə də, Siz cəhd əgər bəzi DOM qədər burada kodu şey 1116 00:54:27,910 --> 00:54:31,560 element, bəzi HTML tag ki, aşağı burada, çox tezliklə bunu edirik, 1117 00:54:31,560 --> 00:54:34,220 Bu belə deyil, çünki yaddaş daxil oxundu. 1118 00:54:34,220 --> 00:54:37,740 Belə ki, bu document.ready deyərək line, deyirdik edirik, 1119 00:54:37,740 --> 00:54:39,040 burada kodu, browser var. 1120 00:54:39,040 --> 00:54:42,440 Lakin bütövlükdə qədər bu icra etmir sənəd hazır ki, DOM edir 1121 00:54:42,440 --> 00:54:44,320 ağac yaddaş mövcuddur. 1122 00:54:44,320 --> 00:54:47,110 Bu bir az daha çox syntactically bir halda, sadə 1123 00:54:47,110 --> 00:54:51,890 bit müxtəlif, mən deyirəm harada grab onun unikal HTML element 1124 00:54:51,890 --> 00:54:53,560 identifikator giriş edir. 1125 00:54:53,560 --> 00:54:56,220 Ki, nə hash tag var , unikal ID bildirir. 1126 00:54:56,220 --> 00:54:58,070 Və sonra mən zəng edirəm. Təqdim edir. 1127 00:54:58,070 --> 00:55:01,660 >> Belə ki,. Burada təqdim bir funksiyası başqa, edir üsulu kimi tanınan, ki 1128 00:55:01,660 --> 00:55:05,850 sol-əl obyekt daxili Mən qeyd etməyib ki, orada yan. 1129 00:55:05,850 --> 00:55:08,990 Bir obyekt kimi giriş düşünmək belə əgər yaddaş - və həqiqətən edir. 1130 00:55:08,990 --> 00:55:10,440 Bu ağac bir node var - 1131 00:55:10,440 --> 00:55:16,580 . Vasitələrini təqdim zaman bu forma ilə Bu ID təqdim olunur, icra 1132 00:55:16,580 --> 00:55:17,700 Aşağıdakı kodu. 1133 00:55:17,700 --> 00:55:20,290 Mən qayğı yoxdur nə adı funksiyası icra edirəm ki,. 1134 00:55:20,290 --> 00:55:23,760 Belə ki, burada nə kimi əvvəl, istifadə edirəm Bu lambda funksiyası və ya çağırıb 1135 00:55:23,760 --> 00:55:24,720 anonim funksiyası. 1136 00:55:24,720 --> 00:55:27,640 Bu, bütün intellektual deyil heç bir adı var maraqlı başqa, 1137 00:55:27,640 --> 00:55:30,220 yalnız əgər gözəl olan heç bir dəfə zəng etmək üçün gedir. 1138 00:55:30,220 --> 00:55:34,490 Və içəridə Mən, həqiqətən, idarə şəklində təqdim. 1139 00:55:34,490 --> 00:55:36,810 Mən ilk bir dəyişən elan dəyəri adlanır. 1140 00:55:36,810 --> 00:55:40,610 Və sonra bu təsiri nədir burada hissəsi artıq qeyd? 1141 00:55:40,610 --> 00:55:44,755 Ki, bir at nə Mənim üçün yüksək səviyyəli? 1142 00:55:44,755 --> 00:55:48,539 >> Auditoriya: Bu dəyəri olur ki, istifadəçi aşağıdakı HTML etmədi. 1143 00:55:48,539 --> 00:55:50,920 O ki, ID alır və Bunun qiymətini tapır. 1144 00:55:50,920 --> 00:55:51,590 >> DAVID J. MALAN: Exactly. 1145 00:55:51,590 --> 00:55:54,300 O, unikal, node Polip identifikator adı. 1146 00:55:54,300 --> 00:55:56,900 Bu, orada dəyər alır deyil, ehtimalla, nə istifadəçi 1147 00:55:56,900 --> 00:55:58,190 onu və ya özü yazılmış. 1148 00:55:58,190 --> 00:56:01,020 Və sonra saklar ki, bu dəyişən dəyəri adlanır. 1149 00:56:01,020 --> 00:56:03,720 Bir kənara kimi, siz də ola bilər bir az fərqli bu işlər. 1150 00:56:03,720 --> 00:56:09,250 Bir şey etməklə tamamilə məqbul yalan var dəyər alır 1151 00:56:09,250 --> 00:56:10,500 document.getElementById. 1152 00:56:10,500 --> 00:56:12,860 1153 00:56:12,860 --> 00:56:15,460 Bir az görə və bu jQuery istifadə etmək yorucu. 1154 00:56:15,460 --> 00:56:16,710 "Adı". Dəyər. 1155 00:56:16,710 --> 00:56:18,330 1156 00:56:18,330 --> 00:56:19,620 Belə ki, tamamilə məqbul. 1157 00:56:19,620 --> 00:56:22,770 Bunu etmək üçün müxtəlif yolları. jQuery yalnız bir az daha yığcam və olmağa çalışır 1158 00:56:22,770 --> 00:56:25,230 mütləq daha populyar proqramçılar arasında. 1159 00:56:25,230 --> 00:56:27,590 >> İndi bir ağlı başında olma bir az edirəm çünki problem, yoxlamaq 1160 00:56:27,590 --> 00:56:30,820 Şərhdə biz aydın şəkildə ifadə edərək, əgər istifadəçi hələ tipli deyil onun 1161 00:56:30,820 --> 00:56:32,580 bir siqnallar göstərmək deyil, ad. 1162 00:56:32,580 --> 00:56:35,390 Amma sadəcə, bunun üçün kontrol edə bilərsiniz bir boş string üçün yoxlanılması 1163 00:56:35,390 --> 00:56:37,850 var əgər quote-dırnağı bağlamaq həqiqətən var heç bir şey. 1164 00:56:37,850 --> 00:56:40,880 Amma bu quote-dırnağı bağlamaq bərabər deyil, əgər, Uyarıları zəng etmək istəyirəm. 1165 00:56:40,880 --> 00:56:45,610 Və burada maraqlı hissəsi ki, biz plus operator istifadə etdiyiniz hansı 1166 00:56:45,610 --> 00:56:48,130 JavaScript nə edir? 1167 00:56:48,130 --> 00:56:48,740 Concatenate. 1168 00:56:48,740 --> 00:56:50,690 Belə ki, PHPs dot operator kimi. 1169 00:56:50,690 --> 00:56:52,820 Eyni fikir, az fərqli syntax. 1170 00:56:52,820 --> 00:56:55,280 Mən yalnız simli yaradılması edirəm ki, Siz ekran shot gördüm - 1171 00:56:55,280 --> 00:56:57,750 Salam, filan. 1172 00:56:57,750 --> 00:56:59,200 >> Və sonra keçən ətraflı bu. 1173 00:56:59,200 --> 00:57:04,970 Niyə yalan içini qayıtmaq yoxdur bu anonim funksiya? 1174 00:57:04,970 --> 00:57:07,420 >> Auditoriya: heç bir dəyəri var. 1175 00:57:07,420 --> 00:57:09,380 Siz formada qoymaq. 1176 00:57:09,380 --> 00:57:12,320 1177 00:57:12,320 --> 00:57:16,730 Dəyəri, əgər yalnız deyir boş bərabər, sonra bunu. 1178 00:57:16,730 --> 00:57:20,040 1179 00:57:20,040 --> 00:57:20,940 Ki, təqdim boş var idi. 1180 00:57:20,940 --> 00:57:21,170 >> DAVID J. MALAN: OK. 1181 00:57:21,170 --> 00:57:21,640 Baxmayaraq ehtiyatlı. 1182 00:57:21,640 --> 00:57:22,830 Burada başqa heç bir var. 1183 00:57:22,830 --> 00:57:25,510 Və qaytarılması yalan xaricində şərtlər əgər. 1184 00:57:25,510 --> 00:57:29,470 Belə ki, bu, saxta qayıtmaq xətti qeyd nə olursa olsun zaman həyata 1185 00:57:29,470 --> 00:57:32,310 şəklində təqdim edilir. 1186 00:57:32,310 --> 00:57:36,810 Bu nə yalan daxilində qaytarılması etmir Bu deyilən kimi, hadisə handler, 1187 00:57:36,810 --> 00:57:38,450 söz mövzusu hadisə təqdim olan? 1188 00:57:38,450 --> 00:57:42,350 1189 00:57:42,350 --> 00:57:44,470 >> Auditoriya: Çünki yalnız bir dəfə olur. 1190 00:57:44,470 --> 00:57:45,320 >> DAVID J. MALAN: Yalnız bir dəfə olur. 1191 00:57:45,320 --> 00:57:46,821 Olduqca. 1192 00:57:46,821 --> 00:57:47,292 Bəli? 1193 00:57:47,292 --> 00:57:50,589 >> Auditoriya: Bu formu qarşısını alır , u mənim davranış təqdim 1194 00:57:50,589 --> 00:57:52,480 səhifə yenidən olardı. 1195 00:57:52,480 --> 00:57:53,110 >> DAVID J. MALAN: Exactly. 1196 00:57:53,110 --> 00:57:56,490 Mən, müddəti burada təqdim həddindən artıq alıram Mən söyləyirəm, çünki forması 1197 00:57:56,490 --> 00:57:57,670 təqdim edilir. 1198 00:57:57,670 --> 00:58:02,240 Siz təklif kimi, bu, həqiqətən deyil əsl HTTP şəkildə təqdim edilmişdir. 1199 00:58:02,240 --> 00:58:06,870 Siz, çünki, tarixi basın zaman bizim onSubmit handler, biz intercepting edirik 1200 00:58:06,870 --> 00:58:09,040 ki, formada təqdim belə danışmaq. 1201 00:58:09,040 --> 00:58:11,290 Biz sonra bizim şey yapýyorsun JavaScript kodu ilə. 1202 00:58:11,290 --> 00:58:14,070 Amma qəsdən yalan qaytarılması alıram Mən nə istəyirəm nə çünki 1203 00:58:14,070 --> 00:58:18,430 split ikinci sonra bütün forma üçün özü web təqdim olunacaq 1204 00:58:18,430 --> 00:58:22,800 dəyişdirilməsi ilə əsas dəyər cüt ilə server kimi bir şey olmaq URL 1205 00:58:22,800 --> 00:58:26,180 q = pişik və ya nə biz, Məsələn, sinif. 1206 00:58:26,180 --> 00:58:29,640 Hesab edirəm ki, baş istəmirəm, çünki Bu heç bir server dinləmə var 1207 00:58:29,640 --> 00:58:30,690 təqdim təşkil edir. 1208 00:58:30,690 --> 00:58:32,320 Bu sırf JavaScript kodu görülən. 1209 00:58:32,320 --> 00:58:35,760 Mən hətta yox idi ki, var bir hərəkət, mənim formada atribut çünki 1210 00:58:35,760 --> 00:58:38,870 üçün bu düşünmürük Heç server gedin. 1211 00:58:38,870 --> 00:58:40,780 >> Belə ki, təqdim olunur. 1212 00:58:40,780 --> 00:58:44,340 Amma biz formu ələ edirik təqdim və default qarşısını almaq 1213 00:58:44,340 --> 00:58:47,477 həqiqətən olan davranış, bütün yol server gedin. 1214 00:58:47,477 --> 00:58:48,730 >> Auditoriya: Belə ki, klient saxlanılması. 1215 00:58:48,730 --> 00:58:49,780 >> DAVID J. MALAN: saxlayaraq Bu klient. 1216 00:58:49,780 --> 00:58:51,030 Məhz hüququ. 1217 00:58:51,030 --> 00:58:53,240 1218 00:58:53,240 --> 00:58:55,757 Sonrakı qədər MySQL oh my idi. 1219 00:58:55,757 --> 00:59:00,000 1220 00:59:00,000 --> 00:59:00,430 >> Rob Bowden: OK. 1221 00:59:00,430 --> 00:59:04,990 Beləliklə, bu ilk sual ümumiyyətlə idi insanlar üçün kobud. 1222 00:59:04,990 --> 00:59:07,270 Sonra isə daha yaxşı keçmişdir. 1223 00:59:07,270 --> 00:59:12,260 Beləliklə, siz düzgün məlumatların seçmək idi Bu sütun üçün növləri. 1224 00:59:12,260 --> 00:59:17,750 Və bu həm də bəzi var onlar haqqında şeylər 1225 00:59:17,750 --> 00:59:20,620 seçimi çətinləşdirir. 1226 00:59:20,620 --> 00:59:24,430 Belə ki, int bir etibarlı deyil sayı yazın. 1227 00:59:24,430 --> 00:59:29,410 12-rəqəmli account olan səbəbi sayı, bir int üçün kifayət qədər böyük deyil 1228 00:59:29,410 --> 00:59:31,070 məlumat rəqəm saxlamayın. 1229 00:59:31,070 --> 00:59:36,570 Belə ki, cari seçim böyük olardı Siz bilirsiniz ki, nə əgər int. 1230 00:59:36,570 --> 00:59:42,090 Başqa bir seçim ola bilərdi uzunluğu 12 bir char sahəsində. 1231 00:59:42,090 --> 00:59:44,560 Belə ki, o ya çalışmışdır olardı. 1232 00:59:44,560 --> 00:59:46,100 Int deyil. 1233 00:59:46,100 --> 00:59:50,170 >> İndi balans geri pset7 düşünürəm. 1234 00:59:50,170 --> 00:59:59,540 Belə ki, biz xüsusi decimal istifadə səhmlərin və ya dəyəri saxlamaq - 1235 00:59:59,540 --> 01:00:00,550 >> DAVID J. MALAN: Cash. 1236 01:00:00,550 --> 01:00:01,060 >> Rob Bowden: Cash. 1237 01:00:01,060 --> 01:00:05,710 Biz məbləğin saxlamaq üçün Ondalık istifadə istifadəçi hazırda var ki, pul. 1238 01:00:05,710 --> 01:00:10,950 Belə ki, nə səbəb olur xatırlayıram, çünki, üzüb gedirdi. 1239 01:00:10,950 --> 01:00:12,480 Dəqiq üzən point var. 1240 01:00:12,480 --> 01:00:18,200 Bu dəqiq pul saxlaya bilməz biz kimi dəyərlər istəyirik. 1241 01:00:18,200 --> 01:00:23,630 Belə decimal dəqiq mağaza edə , demək bir şey, iki decimal yerlərdə. 1242 01:00:23,630 --> 01:00:27,630 Balans, biz bunu istəyirik ki float decimal deyil olmalıdır. 1243 01:00:27,630 --> 01:00:30,230 >> DAVID J. MALAN: Və həmçinin, çox olsa digər ağıllı ola bilər 1244 01:00:30,230 --> 01:00:32,760 düşünmək kontekstlərdə, bəlkə bu int üçün bir şansdır. 1245 01:00:32,760 --> 01:00:34,420 Mən yalnız takip bilərsiniz pennies şeylər. 1246 01:00:34,420 --> 01:00:38,670 Biz aydın şəkildə default göstərdi, çünki , 100.00 olan dəyəri 1247 01:00:38,670 --> 01:00:40,380 yalnız bir int ola bilər deməkdir. 1248 01:00:40,380 --> 01:00:45,310 Və çox sayda başqa incelik o demək deyil ki, 1249 01:00:45,310 --> 01:00:46,180 bir oyun sual olacaq. 1250 01:00:46,180 --> 01:00:49,860 Amma geri MySQL bir int, kimi C, ən azı ildə 1251 01:00:49,860 --> 01:00:51,440 cihaz, 32-bit edir. 1252 01:00:51,440 --> 01:00:53,960 Və biz sizə gözləmək yoxdur, baxmayaraq ki, dəqiq bilirəm neçə rəqəm ki, 1253 01:00:53,960 --> 01:00:56,910 vasitələri, geri ki, ən böyük sayı Siz potensial təmsil edə bilər 1254 01:00:56,910 --> 01:01:00,710 32-bit sayı təxminən nədir? 1255 01:01:00,710 --> 01:01:02,760 >> Biz həmişə nə sayı deyirsiniz? 1256 01:01:02,760 --> 01:01:04,530 2 təxminən nə olan 32 üçün? 1257 01:01:04,530 --> 01:01:07,492 1258 01:01:07,492 --> 01:01:08,780 Siz dəqiq bilmək yoxdur. 1259 01:01:08,780 --> 01:01:10,580 Amma təxminən həyat faydalıdır. 1260 01:01:10,580 --> 01:01:12,200 Bu təxminən 4 milyard var. 1261 01:01:12,200 --> 01:01:14,430 Beləliklə, biz bir neçə dəfə bildirib ki etdik. 1262 01:01:14,430 --> 01:01:16,360 Mən bilirəm Mən bir neçə dəfə demişəm. 1263 01:01:16,360 --> 01:01:17,670 Və təxminən 4 mlrd. 1264 01:01:17,670 --> 01:01:19,710 Və yaxşı bir qayda var thumb bilmək. 1265 01:01:19,710 --> 01:01:21,880 8 bit, 256 varsa sehrli sayı. 1266 01:01:21,880 --> 01:01:24,160 Siz 32 bit 4 varsa milyard vermək və ya almaq. 1267 01:01:24,160 --> 01:01:27,140 Belə ki, yalnız aşağı 4 milyard yazmaq əgər, Siz daha az rəqəm deyil ki, görürsünüz 1268 01:01:27,140 --> 01:01:30,970 Ki, aydın deyil deməkdir 12, tutmaq üçün kifayət qədər ifadəlilik bir 1269 01:01:30,970 --> 01:01:34,220 12-rəqəmli hesab nömrəsi. 1270 01:01:34,220 --> 01:01:34,940 >> Rob Bowden: OK. 1271 01:01:34,940 --> 01:01:38,520 Belə ki, digər olanları daha yaxşı getdi. 1272 01:01:38,520 --> 01:01:40,900 Belə güman ki, bank $ 20 aylıq qoyur 1273 01:01:40,900 --> 01:01:42,400 bütün hesabları üzrə xidmət haqqı. 1274 01:01:42,400 --> 01:01:45,506 Nə SQL sorğu edə bilər bank ilə olsa belə, hər Count $ 20 çıxa 1275 01:01:45,506 --> 01:01:47,520 bəzi mənfi qalıqlarında nəticələri? 1276 01:01:47,520 --> 01:01:50,380 Belə ki, əsasən, dörd var sorğu əsas növləri - 1277 01:01:50,380 --> 01:01:52,840 , daxil seçin, yeniləmə, və silin. 1278 01:01:52,840 --> 01:01:56,080 Belə ki, biz istəyirik nə düşünürsünüz Burada istifadə etmək niyyətindədir? 1279 01:01:56,080 --> 01:01:57,000 Update. 1280 01:01:57,000 --> 01:01:58,260 >> Belə ki, bir nəzər salaq. 1281 01:01:58,260 --> 01:02:04,290 1282 01:02:04,290 --> 01:02:05,870 Belə ki, burada biz yenilənməsi edirik. 1283 01:02:05,870 --> 01:02:09,900 Nə masa biz hesabları təzələyirik? 1284 01:02:09,900 --> 01:02:11,670 Belə ki, hesabları yenilənməsi. 1285 01:02:11,670 --> 01:02:15,390 Və sonra syntax deyir hesablarında biz yenilənməsi olunur? 1286 01:02:15,390 --> 01:02:19,520 Yaxşı, biz bərabər balans yaradılması edirik balans minus 20 cari dəyəri. 1287 01:02:19,520 --> 01:02:22,860 Belə ki, bütün satır yeniləmə olacaq hesablarının, subtracting 1288 01:02:22,860 --> 01:02:26,250 Balansından 20 $. 1289 01:02:26,250 --> 01:02:29,260 >> DAVID J. MALAN: Burada ümumi səhv, biz bəzən bağışladı, baxmayaraq ki, 1290 01:02:29,260 --> 01:02:32,990 həqiqətən, burada PHP kodu var idi sorğu funksiyası zəng və ya qoyaraq 1291 01:02:32,990 --> 01:02:35,460 hər şey ətrafında quotes ki, orada olmaq lazım deyildi. 1292 01:02:35,460 --> 01:02:39,780 >> Rob Bowden: MySQL olduğunu unutmayın PHP ayrı bir dil. 1293 01:02:39,780 --> 01:02:42,410 Biz PHP MySQL yazılı üçün baş. 1294 01:02:42,410 --> 01:02:46,180 Və PHP sonra göndərir MySQL server üzərində. 1295 01:02:46,180 --> 01:02:51,120 Üçün Amma PHP ehtiyac yoxdur bir MySQL server ilə ünsiyyət. 1296 01:02:51,120 --> 01:02:51,730 >> DAVID J. MALAN: Exactly. 1297 01:02:51,730 --> 01:02:54,240 Dollar əlamətləri ilə belə heç dəyişənlərin bu çərçivədə olmalıdır. 1298 01:02:54,240 --> 01:02:59,550 Bu, yalnız riyaziyyat bütün edə bilərsiniz verilənlər bazası daxilində. 1299 01:02:59,550 --> 01:03:00,080 >> Rob Bowden: OK. 1300 01:03:00,080 --> 01:03:01,300 Belə ki, növbəti bir. 1301 01:03:01,300 --> 01:03:02,731 Bu növbəti biridir? 1302 01:03:02,731 --> 01:03:03,210 Bəli. 1303 01:03:03,210 --> 01:03:06,570 Nə SQL sorğu edə bilər bank ilə belə onun hesab nömrələri almaq 1304 01:03:06,570 --> 01:03:09,300 zəngin müştərilər, olanlar 1000 daha çox qalıqlar? 1305 01:03:09,300 --> 01:03:13,280 Belə ki, dörd əsas növ olan biz burada istədiyiniz gedir? 1306 01:03:13,280 --> 01:03:14,430 Seçin. 1307 01:03:14,430 --> 01:03:16,650 Beləliklə, biz seçin istəyirəm. 1308 01:03:16,650 --> 01:03:17,610 Nə biz seçmək istəyirsiniz? 1309 01:03:17,610 --> 01:03:19,380 Biz seçin nə sütun istəyirsiniz? 1310 01:03:19,380 --> 01:03:20,970 Biz xüsusi istəyirəm sayı seçin. 1311 01:03:20,970 --> 01:03:23,910 Amma ulduz, dedik əgər də qəbul. 1312 01:03:23,910 --> 01:03:25,820 >> Belə ki, nə masa sayı seçin? 1313 01:03:25,820 --> 01:03:26,640 Hesablama. 1314 01:03:26,640 --> 01:03:28,370 Və sonra biz vəziyyəti istəyirsiniz? 1315 01:03:28,370 --> 01:03:30,140 Harada 1000 daha çox balans. 1316 01:03:30,140 --> 01:03:31,720 Biz də böyük qəbul çox və ya bərabər. 1317 01:03:31,720 --> 01:03:35,230 1318 01:03:35,230 --> 01:03:36,190 Son bir. 1319 01:03:36,190 --> 01:03:42,940 Nə SQL sorğu edə bilər bank ilə yaxın, İ.E., hər hesabı silmək 1320 01:03:42,940 --> 01:03:44,480 $ 0 balans var? 1321 01:03:44,480 --> 01:03:47,620 Belə ki, dörd olan biz istifadə etmək istədiyiniz gedir? 1322 01:03:47,620 --> 01:03:48,320 Silin. 1323 01:03:48,320 --> 01:03:50,180 Belə ki, üçün sintaksis? 1324 01:03:50,180 --> 01:03:51,890 Nə masa sil? 1325 01:03:51,890 --> 01:03:53,550 Hesablama. 1326 01:03:53,550 --> 01:03:55,790 Və sonra vəziyyəti olan biz silmək istəyirəm - 1327 01:03:55,790 --> 01:03:57,280 balans sıfır bərabərdir yerləşir. 1328 01:03:57,280 --> 01:04:03,050 Belə ki, hesabları bütün satır silmək balans sıfır olduğu. 1329 01:04:03,050 --> 01:04:04,300 Bu hər hansı bir Suallar? 1330 01:04:04,300 --> 01:04:08,840 1331 01:04:08,840 --> 01:04:10,260 Növbə istəyirsiniz? 1332 01:04:10,260 --> 01:04:11,200 >> DAVID J. MALAN: Queue guide. 1333 01:04:11,200 --> 01:04:17,110 Belə ki, bu bir, biz bir qədər verdi Biz tədqiq ki, tanış strukturu 1334 01:04:17,110 --> 01:04:20,450 Structs yanaşı sinif bit, məlumat olan 1335 01:04:20,450 --> 01:04:21,910 ruhunda əlaqəli quruluşu. 1336 01:04:21,910 --> 01:04:24,670 Bir növbə ilə olsa fərq biz elə xatırlamaq idi ki, kim 1337 01:04:24,670 --> 01:04:27,900 böyük, növbə qarşısında idi biz daha çox ola bilər deyil ki, 1338 01:04:27,900 --> 01:04:30,530 yaddaş səmərəli istifadə, ən azı biz bir sıra istifadə əgər. 1339 01:04:30,530 --> 01:04:35,460 >> Çünki geri, biz bir sıra var, əgər, Məsələn, bu ön 1340 01:04:35,460 --> 01:04:38,470 Növbədə, mən burada növbə almaq, və sonra kimsə xətt olur 1341 01:04:38,470 --> 01:04:42,710 arxamda arxamda mənə, və arxasında bir nəfər xəttinin həyata addımlar, siz 1342 01:04:42,710 --> 01:04:45,930 bilər, biz insan bəzi gördüm kimi sinif könüllüləri, hər kəs 1343 01:04:45,930 --> 01:04:47,100 Bu yol keçmək. 1344 01:04:47,100 --> 01:04:50,880 Amma, ümumiyyətlə, hər kəs bunu edərək bir şey zaman ən yaxşı istifadə deyil 1345 01:04:50,880 --> 01:04:54,600 bir proqramda, çünki o deməkdir sizin alqoritm nə çalışan 1346 01:04:54,600 --> 01:04:56,520 asimptotik çalışan zaman? 1347 01:04:56,520 --> 01:04:57,420 Bu xətti var. 1348 01:04:57,420 --> 01:04:59,600 >> Bu cür axmaq kimi və mən hiss edirəm. 1349 01:04:59,600 --> 01:05:02,890 Line növbəti şəxs növbəti əgər daxil getmək üçün nəzərdə şəxs 1350 01:05:02,890 --> 01:05:04,660 mağaza, onlar bütün yoxdur birlikdə hərəkət etmək. 1351 01:05:04,660 --> 01:05:08,200 Just şəxs off yoluq imkan zaman, məsələn, gəlir. 1352 01:05:08,200 --> 01:05:09,870 Belə ki, biz orada vaxt bir az saxlaya bilərsiniz. 1353 01:05:09,870 --> 01:05:14,840 Və bunu ki, baxmayaraq ki, o deməkdir ki ki, növbə rəhbəri və ya 1354 01:05:14,840 --> 01:05:18,060 Növbədə ön gedir tədricən dərin və daha dərin hərəkət 1355 01:05:18,060 --> 01:05:23,340 massivinə və nəticədə güc biz istifadə edirsinizsə, həqiqətən, ətrafında kesmek 1356 01:05:23,340 --> 01:05:25,790 insanları saxlamaq üçün array bu növbəyə. 1357 01:05:25,790 --> 01:05:28,390 Beləliklə, siz demək olar ki, hesab edə bilər dairəvi data kimi array 1358 01:05:28,390 --> 01:05:29,880 o mənada strukturu. 1359 01:05:29,880 --> 01:05:33,970 >> Belə ki, elə takip var Bunun ölçüsü və ya bu həqiqətən sonu 1360 01:05:33,970 --> 01:05:36,250 və sonra başlanğıcı olduğu. 1361 01:05:36,250 --> 01:05:39,490 Beləliklə, biz bəyan təklif belə bir queue, zəng 1362 01:05:39,490 --> 01:05:41,330 bu q, yalnız bir məktub. 1363 01:05:41,330 --> 01:05:44,570 Sonra biz ön olması təklif sıfıra və başlatılmış ölçüsü 1364 01:05:44,570 --> 01:05:45,470 sıfıra başlatılmış. 1365 01:05:45,470 --> 01:05:47,770 >> Belə ki, indi heç bir şey yoxdur ki, növbə daxilində. 1366 01:05:47,770 --> 01:05:50,910 Və biz başa çatdırmaq üçün xahiş aşağıda enqueue həyata keçirilməsi 1367 01:05:50,910 --> 01:05:55,250 funksiyası n edir ki, belə bir yol sonra q sonu və doğru qayıdır. 1368 01:05:55,250 --> 01:05:58,690 Amma q tam və ya mənfi olduqda, funksiyası yerinə saxta qaytarmalıdır. 1369 01:05:58,690 --> 01:06:01,060 Və biz bir neçə verdi fərziyyələr. 1370 01:06:01,060 --> 01:06:04,320 Lakin onlar həqiqətən funksional deyilik müvafiq, yalnız bool, mövcud 1371 01:06:04,320 --> 01:06:06,690 texniki, bool deyil, çünki Siz daxil halda C mövcud bir 1372 01:06:06,690 --> 01:06:07,310 müəyyən header file. 1373 01:06:07,310 --> 01:06:09,350 Belə ki, yalnız əmin etmək edilib heç bir bu bir oyun deyil edildi 1374 01:06:09,350 --> 01:06:10,940 şey sual cür. 1375 01:06:10,940 --> 01:06:16,280 >> Belə ki, enqueue, biz nümunə təklif aşağıdakı kimi həllər həyata keçirmək. 1376 01:06:16,280 --> 01:06:20,420 One, biz ilk rahatlığı kontrol, aşağı asma meyvə. 1377 01:06:20,420 --> 01:06:23,820 Növbədə tam və ya sayı Əgər Siz daxil çalışdığınız az 1378 01:06:23,820 --> 01:06:26,380 biz demişdi sıfır, daha problemin dəqiqləşdirilməsi olmalıdır 1379 01:06:26,380 --> 01:06:30,320 biz yalnız istəyirəm, çünki icazə qeyri-mənfi dəyərlər, sonra olmalıdır 1380 01:06:30,320 --> 01:06:31,640 yalnız dərhal yalan qaytarın. 1381 01:06:31,640 --> 01:06:33,820 Belə ki, bəzi nisbətən asan yoxlanılması səhv. 1382 01:06:33,820 --> 01:06:38,720 Ki, faktiki əlavə etmək istəyirsinizsə olsa əgər sayı, siz bir az etmək idi 1383 01:06:38,720 --> 01:06:39,440 burada düşünür. 1384 01:06:39,440 --> 01:06:41,330 Bir az annoying olduğu və bu əqli, Siz, çünki 1385 01:06:41,330 --> 01:06:43,000 saran idarə etmək üçün necə anlamaq. 1386 01:06:43,000 --> 01:06:46,870 >> Amma fikir bakterioloji burada var bizə maraq saran edir 1387 01:06:46,870 --> 01:06:51,480 tez-tez modul hesab nəzərdə tutur və MOD operator, yüzdə yan, 1388 01:06:51,480 --> 01:06:55,140 daha böyük bir dəyər getmək bilər sıfır geri və sonra bir və iki və 1389 01:06:55,140 --> 01:06:58,650 üç və sonra geri ətrafında sıfır, bir və iki və irəli üç və 1390 01:06:58,650 --> 01:06:59,380 təkrar. 1391 01:06:59,380 --> 01:07:02,880 Belə ki, biz bunu təklif yoldur biz daxil index istəyirəm ki, 1392 01:07:02,880 --> 01:07:05,850 ədəd adlı array bizim integers yalan. 1393 01:07:05,850 --> 01:07:10,740 Amma almaq üçün, biz ilk etmək istəyirəm növbə ölçüsü lakin nə 1394 01:07:10,740 --> 01:07:14,080 sonra əlavə nə siyahısı ön edir. 1395 01:07:14,080 --> 01:07:17,880 Və təsiri bizə qoymaq üçün sağ növbə mövqeyi və 1396 01:07:17,880 --> 01:07:20,970 güman ki line ilk şəxs başında, o, və ya 1397 01:07:20,970 --> 01:07:24,130 o tamamilə ola bilər, əgər biz də hər kəsi dəyişkən edilmişdir. 1398 01:07:24,130 --> 01:07:26,710 Amma biz yalnız iş yaratmaq edirik özümüz üçün atdıq əgər 1399 01:07:26,710 --> 01:07:27,800 ki, xüsusi yol. 1400 01:07:27,800 --> 01:07:29,330 >> Belə ki, biz nisbətən sadə saxlaya bilərsiniz. 1401 01:07:29,330 --> 01:07:32,180 Biz yadda var ki, biz yalnız Növbədə bir int əlavə edib. 1402 01:07:32,180 --> 01:07:35,850 Və sonra biz yalnız doğru qayıtmaq. 1403 01:07:35,850 --> 01:07:38,560 Eyni zamanda, dequeue, biz xahiş Siz aşağıdakı etmək. 1404 01:07:38,560 --> 01:07:42,260 Belə bir şəkildə onu həyata ki dequeues ki, rədd və dönər 1405 01:07:42,260 --> 01:07:44,190 queue qarşısında da int. 1406 01:07:44,190 --> 01:07:46,410 Int aradan qaldırılması üçün, bu kifayət onu unutmaq. 1407 01:07:46,410 --> 01:07:47,650 Siz az yalnış ehtiyac yoxdur. 1408 01:07:47,650 --> 01:07:48,820 Belə ki, əslində hələ də var. 1409 01:07:48,820 --> 01:07:51,930 Bir sabit data kimi biz yalnız həqiqəti gözardı edirik 1410 01:07:51,930 --> 01:07:52,970 orada indi ki. 1411 01:07:52,970 --> 01:07:55,520 Q boş olduqda, biz olmalıdır əvəzinə mənfi 1 qayıtmaq. 1412 01:07:55,520 --> 01:07:56,750 Belə ki, bu ixtiyari hiss edir. 1413 01:07:56,750 --> 01:08:01,640 Niyə mənfi 1 qayıtmaq əvəzinə yalan? 1414 01:08:01,640 --> 01:08:02,620 Bəli. 1415 01:08:02,620 --> 01:08:05,070 >> Auditoriya: Q saxlanılması müsbət dəyərlər. 1416 01:08:05,070 --> 01:08:10,950 Siz yalnız müsbət dəyərlər saxlaya ildən Bu q, mənfi bir səhv edir. 1417 01:08:10,950 --> 01:08:11,510 >> DAVID J. MALAN: OK, doğru. 1418 01:08:11,510 --> 01:08:14,850 Biz yalnız müsbət saxlanılması edirik, çünki dəyərlər və ya sıfır, sonra bu gözəl var 1419 01:08:14,850 --> 01:08:18,050 bir keşikçi kimi mənfi dəyər qayıtmaq dəyəri, xüsusi bir simvoludur. 1420 01:08:18,050 --> 01:08:21,630 Amma, orada tarixi yeniden edirik çünki biz yalnız olmamızın səbəbi 1421 01:08:21,630 --> 01:08:25,890 qeyri-mənfi dəyərlər qaytarılması biz istəyirik, çünki 1422 01:08:25,890 --> 01:08:27,670 bir sentinel dəyəri var. 1423 01:08:27,670 --> 01:08:32,617 Belə ki, daha konkret desək, niyə yalnız səhvlər hallarda saxta qayıtmaq? 1424 01:08:32,617 --> 01:08:33,099 Bəli. 1425 01:08:33,099 --> 01:08:35,510 >> Auditoriya: Siz uğursuz etdik bir tam geri. 1426 01:08:35,510 --> 01:08:36,630 >> DAVID J. MALAN: Exactly. 1427 01:08:36,630 --> 01:08:38,569 C olur və bu burada olduqca sıxıntılı. 1428 01:08:38,569 --> 01:08:40,590 Siz olacaq deyərək edirsinizsə bir int geri, siz var 1429 01:08:40,590 --> 01:08:41,279 bir int geri. 1430 01:08:41,279 --> 01:08:43,689 Siz xülya almaq və qaytarılması başlamaq bilməz bir bool və ya bir float və ya bir 1431 01:08:43,689 --> 01:08:45,040 string və ya kimi bir şey. 1432 01:08:45,040 --> 01:08:49,370 İndi isə, JavaScript və PHP və bəzi digər dillərdə bilər, əslində, 1433 01:08:49,370 --> 01:08:51,310 Müxtəlif qaytarılması var dəyərlərin növləri. 1434 01:08:51,310 --> 01:08:54,819 Və həqiqətən, faydalı ola bilər Əgər müsbət ints, adet sıfır qayıtmaq bilər, 1435 01:08:54,819 --> 01:08:59,439 mənfi ints, və ya yanlış və ya null hətta səhv demek. 1436 01:08:59,439 --> 01:09:01,890 Amma biz yoxdur ki, C. yönlü 1437 01:09:01,890 --> 01:09:04,569 >> Belə ki, dequeue ilə, biz heç nə təklif - 1438 01:09:04,569 --> 01:09:07,350 1439 01:09:07,350 --> 01:09:09,830 >> Rob Bowden: Siz yalan ola bilər. 1440 01:09:09,830 --> 01:09:13,189 Bu hash yalnız yalan var sıfır yalan müəyyən edir. 1441 01:09:13,189 --> 01:09:16,000 Belə ki, yalan qayıtmaq, Siz sıfır qaytarılması edirik. 1442 01:09:16,000 --> 01:09:25,470 Və sıfır, bizim queue etibarlı şey mənfi 1 deyil, halbuki əgər 1443 01:09:25,470 --> 01:09:27,000 yalan mənfi 1 oldu. 1444 01:09:27,000 --> 01:09:29,972 Amma hətta lazımdır ki, bilmək lazımdır. 1445 01:09:29,972 --> 01:09:32,399 >> DAVID J. MALAN: var Mən bunu niyə demədim. 1446 01:09:32,399 --> 01:09:36,450 >> Rob Bowden: Lakin bu doğru deyil Siz yalan geri edə bilər ki. 1447 01:09:36,450 --> 01:09:37,700 >> DAVID J. MALAN: Sure. 1448 01:09:37,700 --> 01:09:40,920 1449 01:09:40,920 --> 01:09:44,240 Belə ki, dequeue, biz qəbul bildiriş onun arqument kimi ləğv. 1450 01:09:44,240 --> 01:09:45,479 Biz deyilik, çünki ki daxil bir şey keçən 1451 01:09:45,479 --> 01:09:48,359 Biz yalnız element aradan qaldırılması istəyirəm queue qarşısında. 1452 01:09:48,359 --> 01:09:49,819 Belə ki, necə biz bunu haqqında getmək bilər? 1453 01:09:49,819 --> 01:09:51,290 Bəli, ilk, bunu edək tez ağlı başında olma çek. 1454 01:09:51,290 --> 01:09:53,350 Növbənin 0 olduqda, var ediləcək heç bir iş. 1455 01:09:53,350 --> 01:09:54,210 1 mənfi qayıt. 1456 01:09:54,210 --> 01:09:54,800 Done. 1457 01:09:54,800 --> 01:09:56,340 Belə ki, mənim proqram bir neçə xətləri var. 1458 01:09:56,340 --> 01:09:58,180 Belə ki, yalnız dörd xətləri qalır. 1459 01:09:58,180 --> 01:10:01,310 >> Belə ki, burada azalma qərar ölçüsü. 1460 01:10:01,310 --> 01:10:04,620 Və səmərəli ölçüsü decrementing unutmadan alıram o deməkdir ki, 1461 01:10:04,620 --> 01:10:06,010 bir şey deyil. 1462 01:10:06,010 --> 01:10:09,910 Amma mən də yeniləmə var nömrələri ön var. 1463 01:10:09,910 --> 01:10:11,620 Belə ki, bunu, mən lazım iki şeyi. 1464 01:10:11,620 --> 01:10:16,390 Mən ilk nə sayı xatırlamaq lazımdır queue qarşısında deyil, 1465 01:10:16,390 --> 01:10:17,860 Mən şey qayıtmaq lazımdır, çünki. 1466 01:10:17,860 --> 01:10:20,910 Mən təsadüfən unutmaq istəmirəm bu barədə və sonra yazmaq. 1467 01:10:20,910 --> 01:10:22,840 Mən yalnız bir int yadda gedirəm. 1468 01:10:22,840 --> 01:10:27,310 >> Və indi mən yeniləmək istəyirəm q.front +1 q.front ediləcək. 1469 01:10:27,310 --> 01:10:30,070 Bu ilk şəxs idi ki, əgər line, indi mən plus 1 etmək istəyirəm 1470 01:10:30,070 --> 01:10:31,930 line növbəti şəxs qeyd. 1471 01:10:31,930 --> 01:10:33,420 Amma saran idarə etmək üçün var. 1472 01:10:33,420 --> 01:10:37,270 Və gücü qlobal daimi əgər, ki, mənə əmin etmək üçün imkan olacaq 1473 01:10:37,270 --> 01:10:41,140 Mən son şəxs qeyd kimi xətti, modulo əməliyyat gətirəcək 1474 01:10:41,140 --> 01:10:43,840 Bu sıfır mənə geri Növbədə ön. 1475 01:10:43,840 --> 01:10:46,050 Və burada saran yapar. 1476 01:10:46,050 --> 01:10:48,950 Və sonra mən n qayıtmaq üçün davam. 1477 01:10:48,950 --> 01:10:51,530 >> İndi, ciddi desək, mən etmədi n elan var. 1478 01:10:51,530 --> 01:10:53,880 Mən onu qapmaq və onu saxlamaq üçün yox idi müvəqqəti, dəyəri çünki 1479 01:10:53,880 --> 01:10:54,740 hələ var. 1480 01:10:54,740 --> 01:10:57,490 Mən yalnız sağ hesab edə bilər keçmiş baş qayıtmaq 1481 01:10:57,490 --> 01:10:58,450 Növbədə. 1482 01:10:58,450 --> 01:11:01,850 Amma yalnız bu daha aydın idi ki, hiss əslində int qamarlamaq üçün, qoyun 1483 01:11:01,850 --> 01:11:04,320 n, sonra qayıtmaq aydınlıq xatirinə lakin 1484 01:11:04,320 --> 01:11:05,735 ciddi lazım deyil. 1485 01:11:05,735 --> 01:11:09,313 1486 01:11:09,313 --> 01:11:12,130 Psst. 1487 01:11:12,130 --> 01:11:13,410 Onlar bütün başımda pronounceable istəyirik. 1488 01:11:13,410 --> 01:11:15,940 1489 01:11:15,940 --> 01:11:19,110 >> Rob Bowden: Belə ki, ilk sual ikili ağac problem deyil. 1490 01:11:19,110 --> 01:11:22,140 Belə ki, ilk sual, biz istəyirik ki, bu nömrələri verilir. 1491 01:11:22,140 --> 01:11:27,160 Və biz birtəhər onları daxil etmək istəyirəm bu qovşaqlarının bu ki, belə bir 1492 01:11:27,160 --> 01:11:30,110 etibarlı ikili axtarış ağac. 1493 01:11:30,110 --> 01:11:36,260 Belə ki, bir şey haqqında unutmayın ikili axtarış ağac deyil ki 1494 01:11:36,260 --> 01:11:39,800 yalnız sol şey daha az və şeydir 1495 01:11:39,800 --> 01:11:41,120 sağ böyükdür. 1496 01:11:41,120 --> 01:11:44,580 Bu olmalıdır ki, bütün ağac sol az, və bütün ağac 1497 01:11:44,580 --> 01:11:45,740 sağ böyükdür. 1498 01:11:45,740 --> 01:11:55,260 >> Mən üst burada 34 qoymaq, və əgər Mən burada 20 qoymaq, belə ki etibarlı 1499 01:11:55,260 --> 01:11:56,970 uzaq, çünki 34 burada. 1500 01:11:56,970 --> 01:11:57,920 20 sol gedir. 1501 01:11:57,920 --> 01:11:58,950 Belə ki, az deyil. 1502 01:11:58,950 --> 01:12:03,640 Amma sonra, burada 59 qoymaq çünki 59 20 doğru deyil, baxmayaraq 1503 01:12:03,640 --> 01:12:06,140 34 sol hələ də var. 1504 01:12:06,140 --> 01:12:10,760 Nəzərə ki sıxıntı ilə, belə ki, yəqin ki, bu həll en asan yol 1505 01:12:10,760 --> 01:12:14,330 problem yalnız sort bu nömrələr - 1506 01:12:14,330 --> 01:12:18,720 , 20, 34, 36, 52, 59, 106. 1507 01:12:18,720 --> 01:12:21,640 Və sonra o daxil soldan sağa. 1508 01:12:21,640 --> 01:12:23,390 >> Belə ki, 20 burada gedir. 1509 01:12:23,390 --> 01:12:24,630 34 Burada gedir. 1510 01:12:24,630 --> 01:12:25,830 36 Burada gedir. 1511 01:12:25,830 --> 01:12:29,360 52, 59, 106. 1512 01:12:29,360 --> 01:12:34,730 Və siz də fiqurlu ola bilər bəzi sayede və həyata keçirilməsi, 1513 01:12:34,730 --> 01:12:38,830 oh, mən kifayət qədər nömrələri yoxdur, gözləyin burada bu doldurun. 1514 01:12:38,830 --> 01:12:42,170 Mən reshift lazımdır nə mənim marşrut qeyd olacaq. 1515 01:12:42,170 --> 01:12:47,490 Lakin, son üç fark soldan sağa oxumaq, bu edir 1516 01:12:47,490 --> 01:12:48,740 artan sifariş. 1517 01:12:48,740 --> 01:12:52,150 1518 01:12:52,150 --> 01:12:56,540 >> Belə ki, indi biz bəyan etmək istəyirəm nə struct üçün olacaq 1519 01:12:56,540 --> 01:12:58,300 bu ağac qovşaqlarının. 1520 01:12:58,300 --> 01:13:02,720 Bir ikili ağac Beləliklə, biz nə lazımdır? 1521 01:13:02,720 --> 01:13:05,830 Beləliklə, biz tipli dəyəri var int, belə ki, bəzi int dəyər. 1522 01:13:05,830 --> 01:13:07,220 Mən biz adlı nə bilmirəm həllində it - 1523 01:13:07,220 --> 01:13:08,500 n int. 1524 01:13:08,500 --> 01:13:13,570 Biz sol uşaq bir pointer lazımdır və sağ uşaq bir göstərici. 1525 01:13:13,570 --> 01:13:17,540 Belə ki, bu kimi baxmaq olacaq. 1526 01:13:17,540 --> 01:13:20,510 Və həqiqətən əvvəl baxmaq lazımdır ikiqat bağlı zaman 1527 01:13:20,510 --> 01:13:25,090 siyahısı stuff, belə bildiriş - 1528 01:13:25,090 --> 01:13:27,860 Mən hərəkət etmək üçün gedirəm bütün yol geri problem 11. 1529 01:13:27,860 --> 01:13:30,980 1530 01:13:30,980 --> 01:13:36,390 >> Belə ki, bu eyni görünür fark biz yalnız bu zəng nə istisna olmaqla 1531 01:13:36,390 --> 01:13:38,590 müxtəlif adlar. 1532 01:13:38,590 --> 01:13:41,440 Biz hələ tam var dəyəri və iki göstəricilərinə. 1533 01:13:41,440 --> 01:13:44,850 Əvəzinə müalicə yalnız var növbəti şey işarə kimi göstəricilər 1534 01:13:44,850 --> 01:13:47,955 və əvvəlki şey, biz müalicə edirik Bu göstəricilər bir sol uşaq qeyd etmək 1535 01:13:47,955 --> 01:13:49,205 və sağ uşaq. 1536 01:13:49,205 --> 01:13:57,372 1537 01:13:57,372 --> 01:13:57,860 OK. 1538 01:13:57,860 --> 01:13:59,650 Belə ki, bizim struct node var. 1539 01:13:59,650 --> 01:14:03,920 İndi, yalnız funksiyası biz lazımdır Bu traverse üçün, həyata olan 1540 01:14:03,920 --> 01:14:08,320 biz ağac, çap üzərində getmək istəyirəm üçün ağac dəyərləri həyata. 1541 01:14:08,320 --> 01:14:15,241 >> Belə ki, burada axtarır, biz çap etmək istəyirəm out 20, 34, 36, 52, 59, və 106. 1542 01:14:15,241 --> 01:14:17,970 Necə ki, nail olurlar? 1543 01:14:17,970 --> 01:14:18,890 Belə ki, olduqca oxşar. 1544 01:14:18,890 --> 01:14:22,910 Əgər ötən imtahan gördüm Əgər problem Siz çap istəyirdi ki, 1545 01:14:22,910 --> 01:14:25,940 arasında virgül ilə bütün ağac hər şey, hətta həqiqətən idi 1546 01:14:25,940 --> 01:14:27,320 ki, daha asan. 1547 01:14:27,320 --> 01:14:30,950 Belə ki, burada həll edir. 1548 01:14:30,950 --> 01:14:33,110 Bu əhəmiyyətli asan idi Siz recursively bunu əgər. 1549 01:14:33,110 --> 01:14:36,650 Hər kəs cəhd əgər mən bilmirəm iteratively bunu. 1550 01:14:36,650 --> 01:14:38,340 >> Lakin ilk, biz baza halda var. 1551 01:14:38,340 --> 01:14:39,660 Nə kök null olur? 1552 01:14:39,660 --> 01:14:40,610 Sonra biz yalnız geri olacaq. 1553 01:14:40,610 --> 01:14:42,300 Biz bir şey çap etmək istəmirəm. 1554 01:14:42,300 --> 01:14:45,940 Else biz axır olacaq recursively aşağı. 1555 01:14:45,940 --> 01:14:48,140 Bütün sol subtree çap. 1556 01:14:48,140 --> 01:14:51,440 Belə ki, az şeyi çap Mənim cari dəyəri daha. 1557 01:14:51,440 --> 01:14:53,930 Və sonra mən özümü çap gedirəm. 1558 01:14:53,930 --> 01:14:57,310 Və sonra mən aşağı recurse gedirəm mənim bütün sağ subtree, belə ki, hər şey 1559 01:14:57,310 --> 01:14:58,810 Mənim dəyəri daha çox. 1560 01:14:58,810 --> 01:15:03,870 Bu çap edir üçün hər şey həyata. 1561 01:15:03,870 --> 01:15:05,860 Necə bu həqiqətən Suallar ki, həyata? 1562 01:15:05,860 --> 01:15:09,892 1563 01:15:09,892 --> 01:15:12,545 >> Auditoriya: Mən bir sual var Bu [işitilemez] haqqında. 1564 01:15:12,545 --> 01:15:15,090 1565 01:15:15,090 --> 01:15:23,550 >> Rob Bowden: yaxınlaşan Belə bir yolu bir recursive problem yalnız hesab edir 1566 01:15:23,550 --> 01:15:26,275 bu kimi haqqında düşünmək lazımdır bütün künc hallarda. 1567 01:15:26,275 --> 01:15:32,150 1568 01:15:32,150 --> 01:15:38,110 Beləliklə, biz istəyirik ki, hesab bütün bu ağac çap. 1569 01:15:38,110 --> 01:15:42,030 Belə ki, bütün biz diqqət gedir bu node edir - 1570 01:15:42,030 --> 01:15:43,740 36. 1571 01:15:43,740 --> 01:15:47,420 Bu recursive zənglər, biz iddia o yalnız iş. 1572 01:15:47,420 --> 01:15:54,000 Belə ki, burada bu recursive zəng traverse, biz hətta düşünmədən 1573 01:15:54,000 --> 01:15:58,640 bu barədə, yalnız sol traversing üç, artıq 20 yazdıran təsəvvür 1574 01:15:58,640 --> 01:16:00,730 və bizim üçün 34. 1575 01:16:00,730 --> 01:16:03,350 Və sonra biz nəhayət recursively üzrə Traverse zəng 1576 01:16:03,350 --> 01:16:07,890 sağ ki, düzgün çap edəcək 52, 59, və bizim üçün 106. 1577 01:16:07,890 --> 01:16:13,620 >> Belə ki, bu 20, 34 çap edə bilərsiniz ki, verilmiş, və digər 52, 59, 108 çap edə bilərsiniz 1578 01:16:13,620 --> 01:16:17,180 biz nə etmək lazımdır bütün çap ki, ortasında özümüz. 1579 01:16:17,180 --> 01:16:21,250 Belə ki, bizdən əvvəl hər şeyi çap. 1580 01:16:21,250 --> 01:16:27,710 Özümüz çap, belə ki, cari node print 36, müntəzəm printf, və sonra 1581 01:16:27,710 --> 01:16:31,170 bizdən sonra hər şeyi çap. 1582 01:16:31,170 --> 01:16:32,730 >> DAVID J. MALAN: Bu harada recursion edir həqiqətən gözəl olur. 1583 01:16:32,730 --> 01:16:36,270 Bu, iman bu gözəl sıçrayış olduğu Siz iş tiniest bit etmək. 1584 01:16:36,270 --> 01:16:38,460 Və sonra qoy kimsə başqa istirahət edəcəyik. 1585 01:16:38,460 --> 01:16:40,180 Və başqası Siz istehza edir. 1586 01:16:40,180 --> 01:16:44,260 1587 01:16:44,260 --> 01:16:48,360 Ciddi kek xal üçün, əgər belə Siz suallara üzrə diyirləyin - 1588 01:16:48,360 --> 01:16:50,530 >> Rob Bowden: suallarını On? 1589 01:16:50,530 --> 01:16:53,490 >> DAVID J. MALAN: Və bir az aşağı burada nömrələri, hər kəs bilir 1590 01:16:53,490 --> 01:16:55,190 bu nömrələri gəlir? 1591 01:16:55,190 --> 01:16:56,610 >> Rob Bowden: Mən sözün heç bir fikrim yoxdur. 1592 01:16:56,610 --> 01:16:59,794 >> DAVID J. MALAN: Onlar görünür Viktorina ərzində. 1593 01:16:59,794 --> 01:17:01,150 >> Auditoriya: onlar eyni ədəd edirsiniz? 1594 01:17:01,150 --> 01:17:01,910 >> DAVID J. MALAN: Həmin nömrələr. 1595 01:17:01,910 --> 01:17:03,260 Bir az Pasxa yumurta. 1596 01:17:03,260 --> 01:17:08,100 Belə ki, online izləmək sizin üçün ev, siz e-poçt vasitəsilə bizə deyə bilərsiniz əgər 1597 01:17:08,100 --> 01:17:12,680 heads@CS50.net nə əhəmiyyəti bu təkrarlanan altı ədəd var 1598 01:17:12,680 --> 01:17:18,560 Quiz 1 boyunca, biz sizə duş edəcək son gözəl diqqət ilə 1599 01:17:18,560 --> 01:17:21,610 mühazirə və stress top. 1600 01:17:21,610 --> 01:17:25,460 1601 01:17:25,460 --> 01:17:27,790 Incə, gözəl. 1602 01:17:27,790 --> 01:17:29,570 >> Rob Bowden: Any Son suallar viktorina bir şey haqqında? 1603 01:17:29,570 --> 01:17:32,608