1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:11,137 [MUSIC ifa] 3 00:00:11,137 --> 00:00:12,220 DAVID J. MALAN: Bütün hüququ. 4 00:00:12,220 --> 00:00:13,950 Bu CS50 edir. 5 00:00:13,950 --> 00:00:18,560 Bu həftə beş davam edir və biz yaxşı xəbər və pis xəbər var. 6 00:00:18,560 --> 00:00:21,140 Belə ki, yaxşı xəbər CS50 edir bu cümə başlayır. 7 00:00:21,140 --> 00:00:24,430 Siz bizə qoşulmaq istəyirsinizsə, Burada adi URL rəhbərlik. 8 00:00:24,430 --> 00:00:28,670 Hətta daha yaxşı xəbərlər, heç bir mühazirə Bu 13 Bazar ertəsi gəlir. 9 00:00:28,670 --> 00:00:31,970 Az daha yaxşı xəbərlər, viktorina sıfır növbəti Çərşənbə edir. 10 00:00:31,970 --> 00:00:33,840 Daha ətraflı ola bilər burada bu URL tapılmadı. 11 00:00:33,840 --> 00:00:36,340 Və növbəti bir neçə gün ərzində biz blankların doldurulması olacaq 12 00:00:36,340 --> 00:00:39,234 otaqlar ilə bağlı biz ayırdıq ki. 13 00:00:39,234 --> 00:00:41,400 Daha yaxşı xəbərlər var lazımdır ki, kurs-geniş nəzərdən 14 00:00:41,400 --> 00:00:43,570 sessiya bu gələn Axşam Bazar ertəsi. 15 00:00:43,570 --> 00:00:46,270 Kurs nin Köklənən qalmaq yeri və ətraflı məlumat üçün haqqinda. 16 00:00:46,270 --> 00:00:49,290 Bir olsa Bölmə, bayram, həmçinin görüşəcək. 17 00:00:49,290 --> 00:00:50,490 18 00:00:50,490 --> 00:00:52,940 Ən yaxşı xəbərlər, növbəti cümə mühazirə. 19 00:00:52,940 --> 00:00:56,220 Belə ki, bu ənənə biz proqramı hər var. 20 00:00:56,220 --> 00:00:58,100 Yalnız var Bu gözəl olacaq. 21 00:00:58,100 --> 00:01:02,510 Siz kimi şeylər görəcəksiniz daimi vaxt data strukturları 22 00:01:02,510 --> 00:01:04,730 və hash masalar və ağac və çalışır. 23 00:01:04,730 --> 00:01:07,150 Və biz ad problemləri haqqında danışmaq lazımdır. 24 00:01:07,150 --> 00:01:09,440 Məhsulları A bütün dəstə növbəti cümə gözləyir. 25 00:01:09,440 --> 00:01:11,212 26 00:01:11,212 --> 00:01:12,200 OK. 27 00:01:12,200 --> 00:01:13,190 Afərin. 28 00:01:13,190 --> 00:01:17,080 >> Beləliklə, biz etdik ki, xatırlayıram nə bu şəkil diqqət 29 00:01:17,080 --> 00:01:18,980 bizim kompüter yaddaş daxilində. 30 00:01:18,980 --> 00:01:22,875 Belə ki, yaddaş və ya RAM yerləşir proqramları Siz onlara etdiyiniz zaman mövcuddur. 31 00:01:22,875 --> 00:01:25,215 Bir cüt basın icon bir proqram run 32 00:01:25,215 --> 00:01:27,520 və ya cüt basın bir fayl açmaq üçün icon, 33 00:01:27,520 --> 00:01:30,430 Sizin ağır yüklü olub sürücü və ya bərk dövlət sürücü 34 00:01:30,430 --> 00:01:34,190 RAM, Random Access Memory, harada güc off gedir qədər yaşayır, 35 00:01:34,190 --> 00:01:36,700 laptop qapaq bağlayıb və ya proqram çıxmaq. 36 00:01:36,700 --> 00:01:38,960 >> İndi yaddaş, və siz yəqin ki, 37 00:01:38,960 --> 00:01:41,950 1 gigabyte bu gün, 2 qiqabayt, və ya hətta daha çox, 38 00:01:41,950 --> 00:01:44,420 ümumiyyətlə qoydu bir proqram üçün 39 00:01:44,420 --> 00:01:47,170 düzbucaqlı bu cür konseptual model 40 00:01:47,170 --> 00:01:50,860 biz altındakı yığını var qovuşdurmağımız və üst digər məhsullarının bir dəstə. 41 00:01:50,860 --> 00:01:53,140 Çox üst şey bu şəkil gördüm 42 00:01:53,140 --> 00:01:55,670 əvvəl heç danışdıq sözdə mətn seqment deyil. 43 00:01:55,670 --> 00:01:58,419 Mətn seqment yalnız bir xülya yoludur adet sıfır və olanları deyərək ki, 44 00:01:58,419 --> 00:02:01,150 faktiki tərtib proqram daxildir. 45 00:02:01,150 --> 00:02:03,910 >> Belə ki, siz cüt basın Mac və ya PC Microsoft Word, 46 00:02:03,910 --> 00:02:08,030 Siz dot çalıştırdığınızda və ya Mario zərbə Sizin terminal pəncərə Linux kompüter, 47 00:02:08,030 --> 00:02:12,460 bəstələmək ki, adet sıfır və olanları Word və ya Mario müvəqqəti saxlanılır 48 00:02:12,460 --> 00:02:16,610 sözdə sizin kompüter RAM xüsusi bir proqram üçün mətn seqment. 49 00:02:16,610 --> 00:02:19,080 Ki, gedir Aşağıda başlatılmış və uninitialized data. 50 00:02:19,080 --> 00:02:22,655 Bu qlobal dəyişənlər kimi stuff deyil, biz bir çox istifadə etdik ki, 51 00:02:22,655 --> 00:02:24,910 lakin münasibətilə biz qlobal dəyişənlər var idi 52 00:02:24,910 --> 00:02:28,819 və ya statik strings müəyyən ki, ağır "salam" kimi sözlər kodlu 53 00:02:28,819 --> 00:02:31,860 istifadəçi qəbul deyil ki, ki, proqram ağır kodlu olunur. 54 00:02:31,860 --> 00:02:34,230 >> İndi aşağı altındakı biz sözdə yığını var. 55 00:02:34,230 --> 00:02:37,665 Və yığını, bu günə qədər biz oldum məqsədləri nə cür istifadə? 56 00:02:37,665 --> 00:02:39,706 57 00:02:39,706 --> 00:02:40,997 Yığını nə üçün istifadə edilmişdir? 58 00:02:40,997 --> 00:02:41,160 Bəli? 59 00:02:41,160 --> 00:02:42,070 >> Auditoriya: funksiyaları. 60 00:02:42,070 --> 00:02:43,320 >> DAVID J. MALAN: funksiyaları üçün? 61 00:02:43,320 --> 00:02:44,980 Funksiyaları üçün nə mənada? 62 00:02:44,980 --> 00:02:48,660 >> Auditoriya: siz bir funksiyası zəng zaman, dəlilləri yığını üzərinə kopyalanır. 63 00:02:48,660 --> 00:02:49,660 >> DAVID J. MALAN: Exactly. 64 00:02:49,660 --> 00:02:52,650 Bir funksiyası zəng zaman, onun dəlilləri yığını üzərinə kopyalanır. 65 00:02:52,650 --> 00:02:56,330 Belə ki, hər hansı bir X və ya Y və ya A və ya B-nin bir funksiyası keçən edirik ki, 66 00:02:56,330 --> 00:02:58,680 müvəqqəti qoyulur sözdə yığını, 67 00:02:58,680 --> 00:03:02,000 yalnız Annenberg biri kimi yemekhane qablar, və də hər şeyi 68 00:03:02,000 --> 00:03:03,190 yerli dəyişənlərin kimi. 69 00:03:03,190 --> 00:03:06,290 Əgər foo funksiyası və ya svop funksiyası yerli dəyişənlər var, 70 00:03:06,290 --> 00:03:08,602 temp kimi, bu iki yığını başa. 71 00:03:08,602 --> 00:03:11,560 İndi biz çox danışmaq olmaz onlara, lakin bu mühit dəyişənlər 72 00:03:11,560 --> 00:03:15,690 altındakı biz bir müddət əvvəl gördüm Mən klaviatura bir gün futzing edilib 73 00:03:15,690 --> 00:03:20,050 və Mən hər şeyi daxil başladı argv 100 və ya argv 1000 kimi, 74 00:03:20,050 --> 00:03:22,320 yalnız elementləri Unuda Bu numbers-- lakin 75 00:03:22,320 --> 00:03:24,330 mənim əldə etmək üçün nəzərdə deyil. 76 00:03:24,330 --> 00:03:26,581 Biz bəzi görən başladı ekranda funky rəmzləri. 77 00:03:26,581 --> 00:03:28,330 Həmin qondarma idi mühit dəyişənlər 78 00:03:28,330 --> 00:03:32,390 qlobal parametrləri kimi mənim proqram və ya mənim kompüter, üçün 79 00:03:32,390 --> 00:03:37,090 son olmayan biz müzakirə bug, 80 00:03:37,090 --> 00:03:39,670 Shellshock ki, oldu bir neçə kompüter başına bəla. 81 00:03:39,670 --> 00:03:42,960 >> İndi nəhayət, bu gün diqqət mərkəzində biz sonda yığın olacaq. 82 00:03:42,960 --> 00:03:44,864 Bu yaddaş bir yığın edir. 83 00:03:44,864 --> 00:03:47,030 Və əsaslı bütün bu yaddaş eyni stuff deyil. 84 00:03:47,030 --> 00:03:48,040 Bu eyni hardware var. 85 00:03:48,040 --> 00:03:49,956 Biz sort yalnız edirik müxtəlif qruplar müalicə 86 00:03:49,956 --> 00:03:51,460 müxtəlif məqsədlər üçün bayt. 87 00:03:51,460 --> 00:03:56,540 Yığın də olduğu olacaq siz tələb dəyişənlərin və yaddaş 88 00:03:56,540 --> 00:03:58,810 Əməliyyat sistemi müvəqqəti saxlanılır. 89 00:03:58,810 --> 00:04:01,890 >> Amma bir problem növü var Burada, şəkil nəzərdə tutur kimi. 90 00:04:01,890 --> 00:04:05,261 Biz sort iki var haqqında gəmilərin toqquşmaq. 91 00:04:05,261 --> 00:04:08,010 Daha çox və daha çox istifadə kimi çünki biz bu gün görürük yığını, və 92 00:04:08,010 --> 00:04:11,800 irəli, siz daha çox istifadə kimi yığın, şübhəsiz ki, pis şeylər baş verə bilər. 93 00:04:11,800 --> 00:04:15,054 Və həqiqətən, biz vadar edə bilər qəsdən və ya bilmədən. 94 00:04:15,054 --> 00:04:16,970 Son cliffhanger belə vaxt bu proqram idi, 95 00:04:16,970 --> 00:04:20,570 hər hansı bir funksional xidmət olmayan nümayiş başqa məqsədi 96 00:04:20,570 --> 00:04:24,750 necə bir pis oğlan həqiqətən edə bilərsiniz kimi kiminsə proqram hataları üstünlüyü 97 00:04:24,750 --> 00:04:28,460 və hətta bir proqram və ya üzərində bütün kompüter sistemi və ya server. 98 00:04:28,460 --> 00:04:31,660 Belə ki, yalnız baxışda qısa, sizə altındakı əsas fərq 99 00:04:31,660 --> 00:04:34,510 command line edir argv kimi dəlilləri. 100 00:04:34,510 --> 00:04:38,480 Və bir funksiyası f zəng var, mahiyyətcə adsız funksiyası adlanır 101 00:04:38,480 --> 00:04:40,250 f, və argv keçən [1]. 102 00:04:40,250 --> 00:04:43,960 >> Belə ki, ildə nə söz istifadəçi növləri Bu proqramın adına tez, 103 00:04:43,960 --> 00:04:49,310 və sonra bu ixtiyari funksiyası top, f, simli, AKA char * 104 00:04:49,310 --> 00:04:51,720 biz müzakirə başlayıb etdiyiniz kimi, və yalnız "bar." çağırır 105 00:04:51,720 --> 00:04:53,310 Amma biz bir şey zəng edə bilər. 106 00:04:53,310 --> 00:04:57,470 Və sonra daxili, elan f, simvol bir sıra 107 00:04:57,470 --> 00:04:59,930 12 belə simvol ace çağırıb. 108 00:04:59,930 --> 00:05:03,580 >> İndi, hekayə I izah edildi bir an əvvəl olduğu yaddaş 109 00:05:03,580 --> 00:05:06,720 c, və ya o 12 var başa gedir Sandıqı? 110 00:05:06,720 --> 00:05:07,570 Just aydın olmalıdır. 111 00:05:07,570 --> 00:05:08,070 Bəli? 112 00:05:08,070 --> 00:05:08,590 >> Auditoriya: yığını On. 113 00:05:08,590 --> 00:05:09,420 >> DAVID J. MALAN: yığını On. 114 00:05:09,420 --> 00:05:10,720 Belə ki, c yerli dəyişir. 115 00:05:10,720 --> 00:05:14,079 Biz 12 chars və ya 12 bytes üçün xahiş edirik. 116 00:05:14,079 --> 00:05:16,120 O qədər başa gedir sözdə yığını. 117 00:05:16,120 --> 00:05:18,530 İndi nəhayət bu digər funksiyası ki, həqiqətən olduqca faydalı 118 00:05:18,530 --> 00:05:20,571 lakin biz, həqiqətən, istifadə etdiyiniz özümüzü, strncopy. 119 00:05:20,571 --> 00:05:21,550 120 00:05:21,550 --> 00:05:25,200 Bu string surəti deməkdir, lakin yalnız məktublar, n simvol n. 121 00:05:25,200 --> 00:05:31,990 Belə ki, n simvol olacaq c daxil bar kopyalanır. 122 00:05:31,990 --> 00:05:32,980 Və nə qədər? 123 00:05:32,980 --> 00:05:34,110 Bar uzunluğu. 124 00:05:34,110 --> 00:05:36,330 Belə ki, başqa sözlə, ki, bir line, strncopy, 125 00:05:36,330 --> 00:05:39,500 surəti gedir səmərəli c üçün bar. 126 00:05:39,500 --> 00:05:42,340 >> İndi, yalnız cür tahmin Bu hekayə mənəvi, 127 00:05:42,340 --> 00:05:44,750 nə burada potensial problemli? 128 00:05:44,750 --> 00:05:49,710 Biz uzunluğu kontrol edirik baxmayaraq bar və strncopy onu keçən, 129 00:05:49,710 --> 00:05:53,145 nə bağırsaq siz izah hələ bu proqram haqqında sınıq? 130 00:05:53,145 --> 00:05:54,410 131 00:05:54,410 --> 00:05:55,220 Bəli? 132 00:05:55,220 --> 00:05:57,491 >> Auditoriya: daxil deyil null xarakter üçün otaq. 133 00:05:57,491 --> 00:05:59,990 DAVID J. MALAN: daxil deyil null xarakter üçün otaq. 134 00:05:59,990 --> 00:06:02,073 Potensial fərqli olaraq keçmiş təcrübə biz hətta deyil 135 00:06:02,073 --> 00:06:04,810 bir plus 1 qədər ki, null xarakter yerləşdirmək. 136 00:06:04,810 --> 00:06:06,649 Amma daha da pis deyil. 137 00:06:06,649 --> 00:06:07,940 Başqa Biz nə uğursuz? 138 00:06:07,940 --> 00:06:08,432 Bəli? 139 00:06:08,432 --> 00:06:09,307 >> Auditoriya: [işitilemez] 140 00:06:09,307 --> 00:06:15,440 141 00:06:15,440 --> 00:06:16,440 DAVID J. MALAN: Perfect. 142 00:06:16,440 --> 00:06:18,490 Biz ağır olduqca özbaşına 12 kodlu etdik. 143 00:06:18,490 --> 00:06:19,497 144 00:06:19,497 --> 00:06:21,330 Ki, çox deyil problem, lakin fakt 145 00:06:21,330 --> 00:06:25,630 biz hətta əgər yoxlanılması deyilik ki, bar uzunluğu az 12 146 00:06:25,630 --> 00:06:28,530 bu halda olacaq yaddaş onu qoymaq üçün təhlükəsiz 147 00:06:28,530 --> 00:06:30,260 Biz təsis etdik ki, deyilən c. 148 00:06:30,260 --> 00:06:32,960 Həqiqətən, bar kimi, əgər Uzun 20 simvol, 149 00:06:32,960 --> 00:06:39,010 bu funksiya çıxarmaq üçün görünür Bununla c daxil bar, 20 simvol 150 00:06:39,010 --> 00:06:41,310 ən azı 8 bayt alaraq Bu olmamalıdır. 151 00:06:41,310 --> 00:06:42,690 Ki, burada dolayısı var. 152 00:06:42,690 --> 00:06:44,347 >> Qısa, broken proqram,. 153 00:06:44,347 --> 00:06:45,180 Böyük belə deyil. 154 00:06:45,180 --> 00:06:46,360 Bəlkə bir seqmentasiya günah almaq. 155 00:06:46,360 --> 00:06:47,651 Biz bütün proqramlar bugs etdik. 156 00:06:47,651 --> 00:06:50,196 Biz bütün hataları ola bilər indi proqramlarında. 157 00:06:50,196 --> 00:06:51,320 Lakin dolayısı nə var? 158 00:06:51,320 --> 00:06:54,390 Yaxşı, burada bir zoomed-in versiyası var mənim kompüter yaddaş şəkil. 159 00:06:54,390 --> 00:06:56,230 Bu, mənim yığını alt edir. 160 00:06:56,230 --> 00:06:59,644 Və həqiqətən, çox altında var nə adlı valideyn gündəlik yığını, xülya yolu 161 00:06:59,644 --> 00:07:00,560 ki, əsas deyərək. 162 00:07:00,560 --> 00:07:03,772 Funksiyası adlanır kim ki söhbət edirik ki, f. 163 00:07:03,772 --> 00:07:05,230 Belə ki, bu yığını alt edir. 164 00:07:05,230 --> 00:07:06,640 Return ünvanı yeni bir şeydir. 165 00:07:06,640 --> 00:07:08,810 O, həmişə, olub həmişə şəkil olmuşdur. 166 00:07:08,810 --> 00:07:10,440 Biz buna diqqət adlanan heç vaxt. 167 00:07:10,440 --> 00:07:15,290 Bu çıxır, çünki c işləri yoldur bir funksiyası başqa çağırır ki, 168 00:07:15,290 --> 00:07:18,780 yalnız ki arqumentlər nə funksiyası yığını üzərinə sövq almaq, 169 00:07:18,780 --> 00:07:22,470 yalnız funksiyası yerli yoxdur dəyişənlər yığını üzərinə sövq almaq, 170 00:07:22,470 --> 00:07:26,820 bir şey return address adlı həmçinin yığını üzərinə qoymaq olur. 171 00:07:26,820 --> 00:07:33,330 Xüsusilə, əsas zəngləri foo, əsas Agentliyi yaddaş öz ünvanı, öküz bir şey, 172 00:07:33,330 --> 00:07:38,240 səmərəli yığını üzərinə qoymaq olur ki, f icra edilir zaman 173 00:07:38,240 --> 00:07:43,630 mətn geri jump bilir həyata davam etmək üçün seqment. 174 00:07:43,630 --> 00:07:47,760 >> Biz konseptual burada olduğunuz Belə ki, əsas, onda f adlı olur. 175 00:07:47,760 --> 00:07:50,200 F bilir necə kim geri əl nəzarət? 176 00:07:50,200 --> 00:07:52,020 Bəli, bu kiçik Burada qırmızı hier, 177 00:07:52,020 --> 00:07:54,978 qaytarılması ünvan adlı, yalnız çek ki, return address nədir? 178 00:07:54,978 --> 00:07:57,039 Oh, mənə burada əsas geri jump edək. 179 00:07:57,039 --> 00:07:59,080 Və bir az var bir oversimplification, 180 00:07:59,080 --> 00:08:00,750 Bu adet sıfır və olanları çünki əsas üçün texniki, 181 00:08:00,750 --> 00:08:01,967 burada texnologiya seqmentində up. 182 00:08:01,967 --> 00:08:03,800 Amma bu fikir var. f yalnız nə bilmək var 183 00:08:03,800 --> 00:08:06,680 harada nəzarət nəticədə geri gedir. 184 00:08:06,680 --> 00:08:09,790 >> Amma yol kompüter uzun şeyi qoydu 185 00:08:09,790 --> 00:08:12,320 yerli dəyişənlərin kimi və arqumentlər bu kimi. 186 00:08:12,320 --> 00:08:17,180 Bu şəkil üst Belə ki, mavi belə ki, bütün, f yığını çərçivəsində deyil 187 00:08:17,180 --> 00:08:19,630 yaddaş ki, f xüsusi istifadə edir. 188 00:08:19,630 --> 00:08:22,990 Belə ki, buna görə qeyd bar bu şəkil. 189 00:08:22,990 --> 00:08:23,980 Bar onun dəlil idi. 190 00:08:23,980 --> 00:08:27,240 Və biz iddia mübahisələr ki, funksiyaları yığını üzərinə sövq almaq. 191 00:08:27,240 --> 00:08:29,910 Və c, əlbəttə, bu şəkil. 192 00:08:29,910 --> 00:08:33,520 >> Və yalnız notational məqsədləri üçün, sol üst küncündə bildiriş 193 00:08:33,520 --> 00:08:37,020 bracket 0 c nə olardı və sonra yüngül sol aşağı 194 00:08:37,020 --> 00:08:38,220 c bracket 11. 195 00:08:38,220 --> 00:08:41,240 Belə ki, başqa sözlə, siz təsəvvür edə bilərsiniz bayt grid var ki, 196 00:08:41,240 --> 00:08:44,380 orada ilk olan sol üst, alt olan 197 00:08:44,380 --> 00:08:48,360 Bu 12 bayt son deyil. 198 00:08:48,360 --> 00:08:49,930 >> Amma indi irəli sürətli üçün cəhd edin. 199 00:08:49,930 --> 00:08:55,580 Biz nə keçmək əgər nə haqqında c artıq ki, bir string bar? 200 00:08:55,580 --> 00:08:59,130 Və biz əgər yoxlanılması deyilik həqiqətən artıq 12 daha var. 201 00:08:59,130 --> 00:09:03,146 Bu şəkil hissəsi gedir bayt 0, 1, 2, 3 üzerine almaq, 202 00:09:03,146 --> 00:09:07,890 dot dot dot, 11, və sonra pis, 12, 19 13? 203 00:09:07,890 --> 00:09:11,820 Bundan əlavə, burada nə olacaq Siz sifariş nəticə çıxarmaq əgər 204 00:09:11,820 --> 00:09:14,790 c bracket 0 üst edir və c bracket 11 aşağı sort edir 205 00:09:14,790 --> 00:09:15,812 doğru? 206 00:09:15,812 --> 00:09:16,796 Bəli? 207 00:09:16,796 --> 00:09:19,260 >> Auditoriya: Bəli, bu gedir char * bar yazmaq. 208 00:09:19,260 --> 00:09:22,260 >> DAVID J. MALAN: Bəli, bu kimi görünür Siz char * bar üzerine olacaq. 209 00:09:22,260 --> 00:09:26,245 Və pis bir həqiqətən uzun göndərmək əgər simli, hətta nə üzerine bilər? 210 00:09:26,245 --> 00:09:27,460 211 00:09:27,460 --> 00:09:28,570 Qaytarılması ünvanı. 212 00:09:28,570 --> 00:09:31,380 Hansı daha, yalnız bir kimi proqram yerləşir demək hier 213 00:09:31,380 --> 00:09:34,060 zaman f geri adlanan edilir. 214 00:09:34,060 --> 00:09:37,140 >> Belə ki, pis uşaqlar adətən nə Onlar bir proqram rast gəlmək əgər 215 00:09:37,140 --> 00:09:41,290 Onlar olub maraqlı olduğunu belə bir şəkildə istismar, arabası 216 00:09:41,290 --> 00:09:43,550 o bilər ki, ki, səhv üstünlüyü, 217 00:09:43,550 --> 00:09:45,720 ümumiyyətlə onlar deyil Bu doğru ilk dəfə. 218 00:09:45,720 --> 00:09:48,590 Onlar yalnız, məsələn, göndərilməsi başlamaq, Sizin proqram təsadüfi strings, 219 00:09:48,590 --> 00:09:50,260 klaviatura olub, və ya səmimi onlar yəqin ki, 220 00:09:50,260 --> 00:09:52,740 bir az proqram yazmaq yalnız avtomatik strings yaratmaq, 221 00:09:52,740 --> 00:09:55,430 və proqram dolaşacağız Müxtəlif giriş çox göndərilməsi 222 00:09:55,430 --> 00:09:56,340 müxtəlif uzunluqlu da. 223 00:09:56,340 --> 00:09:58,990 >> Tez proqram qəzaları kimi, ki, bir gözəl şey var. 224 00:09:58,990 --> 00:10:01,020 Bu o deməkdir və ya o aşkar etmişdir 225 00:10:01,020 --> 00:10:02,660 hansı həqiqətən yəqin ki, bir səhv. 226 00:10:02,660 --> 00:10:05,830 Və sonra onlar daha ağıllı əldə edə bilərsiniz və başlamaq daha dar diqqət 227 00:10:05,830 --> 00:10:07,420 ki, səhv istifadə etmək necə. 228 00:10:07,420 --> 00:10:11,480 Xüsusilə, nə o bilər nə hello, ən yaxşı halda, göndər. 229 00:10:11,480 --> 00:10:12,210 No böyük. 230 00:10:12,210 --> 00:10:14,750 Bu kifayət qədər qısa bir simli var. 231 00:10:14,750 --> 00:10:18,100 Amma nə o göndərir əgər, və biz bunu kimi ümumiləşdirmək lazımdır 232 00:10:18,100 --> 00:10:20,890 hücum sıfır belə kod və olanları şeyi 233 00:10:20,890 --> 00:10:25,150 rm-rf kimi, hər şey aradan qaldırılması sabit və ya spam göndərmək 234 00:10:25,150 --> 00:10:27,000 və ya birtəhər maşın hücum? 235 00:10:27,000 --> 00:10:29,570 >> Bu hər Belə ki, əgər məktublar A yalnız təmsil 236 00:10:29,570 --> 00:10:32,380 konseptual, hücum, hücum, hücum, hücum, bəzi pis kodu 237 00:10:32,380 --> 00:10:36,410 başqası yazdı ki, ancaq həmin şəxs kifayət qədər ağıllı deyil, 238 00:10:36,410 --> 00:10:40,790 yalnız bütün daxil o rm-RFS, həm də 239 00:10:40,790 --> 00:10:46,100 onun son bir neçə bayt uyğun ki, bir sıra ola 240 00:10:46,100 --> 00:10:50,540 ünvanına onun və ya öz hücum kodu 241 00:10:50,540 --> 00:10:53,820 o yalnız keçdi tez onu verərək, 242 00:10:53,820 --> 00:10:58,760 Siz səmərəli kompüter bezemek bilər f icra edilir zaman hiss daxil, 243 00:10:58,760 --> 00:11:02,400 oh, mənə tullanmaq üçün vaxt var geri qırmızı qaytarılması ünvan üçün. 244 00:11:02,400 --> 00:11:06,070 Amma o elə, çünki ki, geri ünvan overlapped 245 00:11:06,070 --> 00:11:09,602 öz sayı ilə, və onlar kifayət qədər ağıllı olduğunuz 246 00:11:09,602 --> 00:11:11,560 yapılandırılmış var sıra sizin kimi, istinad 247 00:11:11,560 --> 00:11:13,740 super üst görəcəksiniz orada sol küncündə, 248 00:11:13,740 --> 00:11:18,020 kompüter-ci ildə faktiki ünvanı hücum kodu bəzi yaddaş, 249 00:11:18,020 --> 00:11:21,740 pis oğlan kompüter bezemek bilər öz kodu icra daxil. 250 00:11:21,740 --> 00:11:23,700 >> Və code yenə, bir şey ola bilər. 251 00:11:23,700 --> 00:11:26,120 Bu, ümumiyyətlə deyirlər yalnız olan shell kodu, 252 00:11:26,120 --> 00:11:29,030 bu deyil ki, bir yol rm-rf kimi sadə ümumiyyətlə bir şey. 253 00:11:29,030 --> 00:11:32,340 Bu, həqiqətən Bash kimi bir şey var və ya faktiki proqramında onu verir ki, 254 00:11:32,340 --> 00:11:37,230 və ya onun proqram nəzarət icra onlar istəyirəm ki, başqa bir şey. 255 00:11:37,230 --> 00:11:40,210 Belə ki, qısa, bu, bütün sadə fakt irəli gəlir 256 00:11:40,210 --> 00:11:44,490 məşğul bu səhv yoxlanılması deyil ki, Sizin serialın sərhədləri. 257 00:11:44,490 --> 00:11:47,250 Və yolu çünki kompüter iş ki, onlar 258 00:11:47,250 --> 00:11:49,430 olan yığını istifadə səmərəli, konseptual, 259 00:11:49,430 --> 00:11:54,830 up alt, lakin sonra elementləri Siz üst aşağı inkişaf yığını üzərinə basmaq 260 00:11:54,830 --> 00:11:56,624 Bu olduqca problemlidir. 261 00:11:56,624 --> 00:11:58,290 İndi, bu keçici yollar var. 262 00:11:58,290 --> 00:12:00,800 Və səmimi, dil var olan bu keçici. 263 00:12:00,800 --> 00:12:03,100 Java, məsələn, immun edir bu mövzuda. 264 00:12:03,100 --> 00:12:04,110 Onlar göstəricilərinə vermir, çünki. 265 00:12:04,110 --> 00:12:05,943 Onlar vermir birbaşa yaddaş ünvanları. 266 00:12:05,943 --> 00:12:08,560 Biz bu gücü ilə belə yaddaş bir şey toxunmaq 267 00:12:08,560 --> 00:12:11,580 Biz etiraf, böyük risk, gəlir istəyirəm. 268 00:12:11,580 --> 00:12:12,430 >> Belə ki, bir göz saxlamaq. 269 00:12:12,430 --> 00:12:14,596 Səmimi, əgər ay və ya il zaman gəlib 270 00:12:14,596 --> 00:12:17,740 bəzi istismar haqqında oxumaq proqramın və ya server, 271 00:12:17,740 --> 00:12:22,370 Əgər bir şey bir işarə görürsünüzsə bufer daşqın hücum kimi, 272 00:12:22,370 --> 00:12:25,390 və ya yığın daşqın bir növü hücum, ruhda oxşar, 273 00:12:25,390 --> 00:12:28,770 veb nin ruhlandırır qədər Siz bunu əgər, adını, 274 00:12:28,770 --> 00:12:33,170 bütün yalnız söhbət bir xarakter ölçüsü coşğun 275 00:12:33,170 --> 00:12:36,200 array və ya daha çox, ümumiyyətlə, bəzi array. 276 00:12:36,200 --> 00:12:38,822 Bu sonra hər hansı bir sualınız,? 277 00:12:38,822 --> 00:12:39,780 Evdə cəhd etməyin. 278 00:12:39,780 --> 00:12:41,620 279 00:12:41,620 --> 00:12:42,300 >> Bütün hüquqlar. 280 00:12:42,300 --> 00:12:47,270 Belə ki, malloc günə qədər yeni olmuşdur biz yaddaş ayıra bilər ki dost 281 00:12:47,270 --> 00:12:50,540 biz mütləq bilmirəm ki, biz belə biz istəmirik ki, inkişaf 282 00:12:50,540 --> 00:12:52,920 daxil ağır kodu bizim 12 kimi proqram nömrələri. 283 00:12:52,920 --> 00:12:55,550 Istifadəçi bizə nə qədər izah edir o daxil istəyir data, 284 00:12:55,550 --> 00:12:58,000 biz çox yaddaş malloc bilər. 285 00:12:58,000 --> 00:13:01,484 >> Belə ki, malloc bu üçün çıxır biz istifadə etdik dərəcədə, 286 00:13:01,484 --> 00:13:03,900 aydın son dəfə və sonra Siz uşaqlar istifadə edilmişdir 287 00:13:03,900 --> 00:13:08,160 üçün bilməyərək GetString bir neçə həftə, malloc yaddaş bütün 288 00:13:08,160 --> 00:13:09,820 qondarma yığın gəlir. 289 00:13:09,820 --> 00:13:13,852 Və bu, məsələn, niyə GetString edir dinamik yaddaş ayrılması bilər 290 00:13:13,852 --> 00:13:16,060 Siz etdiyiniz nə bilmədən əvvəlcədən yazın gedir, 291 00:13:16,060 --> 00:13:21,520 ki, yaddaş geri bir pointer Sizə təqdim, və yaddaş sizin saxlamaq üçün hələ, 292 00:13:21,520 --> 00:13:24,080 hətta yekunları GetString sonra. 293 00:13:24,080 --> 00:13:27,450 Çünki geri sonra bütün ki, yığını daim yuxarı və aşağı gedir 294 00:13:27,450 --> 00:13:27,950 yuxarı və aşağı. 295 00:13:27,950 --> 00:13:30,230 Və tezliklə gedir kimi aşağı, hər hansı bir yaddaş deməkdir 296 00:13:30,230 --> 00:13:33,030 istifadə bu funksiya olmalıdır başqa hər kəs tərəfindən istifadə edilə bilməz. 297 00:13:33,030 --> 00:13:34,570 İndi zibil dəyərlər var. 298 00:13:34,570 --> 00:13:36,120 >> Amma yığın burada deyil. 299 00:13:36,120 --> 00:13:39,360 Və malloc ki, haqqında gözəl nə var malloc burada yaddaş ayırır zaman, 300 00:13:39,360 --> 00:13:42,070 Bu üçün, təsir deyil yığını ən hissəsi. 301 00:13:42,070 --> 00:13:46,000 Və hər hansı bir funksiyası əldə edə bilərsiniz malloc'd edilmişdir ki, yaddaş, 302 00:13:46,000 --> 00:13:49,120 hətta GetString kimi bir funksiyası ilə, hətta sonra qaytarılır. 303 00:13:49,120 --> 00:13:51,700 >> İndi, malloc converse pulsuz. 304 00:13:51,700 --> 00:13:53,900 Və həqiqətən, qayda siz qəbul başlamaq lazımdır 305 00:13:53,900 --> 00:13:58,950 hər hansı bir hər hansı bir, malloc istifadə hər zaman Özünüz, nəhayət, pulsuz istifadə etməlidir 306 00:13:58,950 --> 00:14:00,280 həmin göstərici. 307 00:14:00,280 --> 00:14:03,289 Biz yazılı edilmişdir Bütün bu vaxt buggy, bir çox səbəblərə görə arabası kodu. 308 00:14:03,289 --> 00:14:05,580 Amma biri olmuşdur Bu CS50 kitabxana istifadə edən 309 00:14:05,580 --> 00:14:09,010 özü qəsdən edir buggy, bu yaddaş sızıntıları. 310 00:14:09,010 --> 00:14:11,410 Siz GetString adlı etdik istənilən vaxt Son bir neçə həftə ərzində 311 00:14:11,410 --> 00:14:13,870 Biz əməliyyat xahiş edirik sistemi, Linux, yaddaş üçün. 312 00:14:13,870 --> 00:14:15,780 Və bir dəfə geri heç vaxt. 313 00:14:15,780 --> 00:14:17,730 Və bu deyil, , yaxşı bir şey təcrübə. 314 00:14:17,730 --> 00:14:20,330 >> Və Valgrind, biri Pset 4 təqdim tools, 315 00:14:20,330 --> 00:14:22,900 sizə yardım haqqında bütün İndi kimi hataları tapa bilərsiniz. 316 00:14:22,900 --> 00:14:27,060 Lakin təşəkkürlə Pset 4 ehtiyac yoxdur Bu CS50 kitabxana və ya GetString istifadə etmək. 317 00:14:27,060 --> 00:14:31,220 Belə ki, yaddaş ilə bağlı hər hansı bir hatalar var nəticədə öz olacaq. 318 00:14:31,220 --> 00:14:34,060 >> Belə ki, malloc yalnız daha çox Bu məqsədlə rahat. 319 00:14:34,060 --> 00:14:37,420 Biz, həqiqətən, indi həll edə bilər əsaslı fərqli problemlər, 320 00:14:37,420 --> 00:14:41,640 və əsaslı daha problemləri həll səmərəli həftə sıfır vədi kimi. 321 00:14:41,640 --> 00:14:44,720 Belə ki, bu, seksual edir data strukturu biz etdik. 322 00:14:44,720 --> 00:14:47,804 And data strukturu tərəfindən yalnız demək konsepsiyalarının yaddaş yolu 323 00:14:47,804 --> 00:14:50,720 yalnız deyərək kənara çıxan bir şəkildə, bu bir char, bir int edir. 324 00:14:50,720 --> 00:14:52,930 Biz birlikdə klaster şeyi başlaya bilərsiniz. 325 00:14:52,930 --> 00:14:54,460 >> Belə ki, bir sıra bu kimi baxdı. 326 00:14:54,460 --> 00:14:57,270 Və haqqında bir əsas nə idi array verir ki, 327 00:14:57,270 --> 00:14:59,724 geri-to-geri chunks yaddaş, hər hansı 328 00:14:59,724 --> 00:15:02,765 eyni tipli olacaq, int, int, int, int, və ya char, char, char, 329 00:15:02,765 --> 00:15:03,330 char. 330 00:15:03,330 --> 00:15:04,496 Amma bir neçə downsides var. 331 00:15:04,496 --> 00:15:06,570 Bu misal üçün, ölçüsü altı bir sıra. 332 00:15:06,570 --> 00:15:10,650 Siz altı ilə bu array doldurun düşünək nömrələri və sonra, nə səbəblərə görə, 333 00:15:10,650 --> 00:15:13,187 istifadəçi vermək istəyir Bir yeddinci nömrəsi. 334 00:15:13,187 --> 00:15:14,020 Harada qoymaq bilərəm? 335 00:15:14,020 --> 00:15:15,490 336 00:15:15,490 --> 00:15:18,990 >> Əgər siz həll nədir yığını bir sıra yaradılmış, 337 00:15:18,990 --> 00:15:22,030 Məsələn, yalnız həftə ilə biz təqdim ki, iki notation, 338 00:15:22,030 --> 00:15:23,730 daxilində bir sıra kvadrat mötərizə? 339 00:15:23,730 --> 00:15:25,160 340 00:15:25,160 --> 00:15:27,260 Yaxşı, siz altı var bu qutuları nömrələri. 341 00:15:27,260 --> 00:15:28,530 Sizin instinktlərdən nə ola bilər? 342 00:15:28,530 --> 00:15:29,973 Harada siz onu qoymaq istəyirsiniz? 343 00:15:29,973 --> 00:15:30,860 >> Auditoriya: [işitilemez] 344 00:15:30,860 --> 00:15:31,315 >> DAVID J. MALAN: Bağışlayın? 345 00:15:31,315 --> 00:15:32,380 >> Auditoriya: sonunda qoyun. 346 00:15:32,380 --> 00:15:33,796 >> DAVID J. MALAN: The sonunda qoyun. 347 00:15:33,796 --> 00:15:35,880 Belə ki, yalnız sağ üzərində, Bu qutusuna kənarda. 348 00:15:35,880 --> 00:15:38,710 Hansı gözəl ola bilər, lakin olardı siz bunu edə bilərsiniz çıxır. 349 00:15:38,710 --> 00:15:41,350 Xahiş etdik, çünki yaddaş bu yığın, 350 00:15:41,350 --> 00:15:44,490 Bu təsadüf ola bilər bəzi digər dəyişən istifadə olunur 351 00:15:44,490 --> 00:15:45,030 cəmi. 352 00:15:45,030 --> 00:15:49,210 Biz qoydu zaman belə bir həftə geri düşünün və ya ZAMYLA və Davin və Gabe adları həyata 353 00:15:49,210 --> 00:15:49,930 yaddaş. 354 00:15:49,930 --> 00:15:51,638 Onlar sözün idi geri geri geri. 355 00:15:51,638 --> 00:15:53,550 Beləliklə, biz mütləq bilməz ki, nə var etibar 356 00:15:53,550 --> 00:15:55,800 burada mənə istifadə üçün mövcuddur. 357 00:15:55,800 --> 00:15:56,990 >> Beləliklə, siz başqa nə ola bilər? 358 00:15:56,990 --> 00:16:00,282 Yaxşı, bir dəfə həyata , ölçüsü yeddi bir sıra lazımdır 359 00:16:00,282 --> 00:16:02,490 Yalnız bir yarada bilər ölçüsü yeddi array sonra istifadə 360 00:16:02,490 --> 00:16:05,950 bir loop və ya bir müddət loop üçün, Yeni array daxil surəti, 361 00:16:05,950 --> 00:16:09,680 və sonra elə yalnız qurtarmaq Bu array və ya yalnız istifadə dayandırmaq. 362 00:16:09,680 --> 00:16:12,130 Amma ki, xüsusilə səmərəli deyil. 363 00:16:12,130 --> 00:16:15,340 Bir sözlə, seriallarda imkan vermir dinamik boyutlandır. 364 00:16:15,340 --> 00:16:17,900 >> Belə ki, bir tərəfdən siz almaq gözəl olan təsadüfi giriş. 365 00:16:17,900 --> 00:16:20,108 Bu imkan verir, çünki us şeyi parçala və fəth kimi, 366 00:16:20,108 --> 00:16:23,100 Biz bütün olan ikili axtarış, burada ekran haqqında danışdı. 367 00:16:23,100 --> 00:16:24,950 Amma bir küncə özünüzü boya. 368 00:16:24,950 --> 00:16:27,810 Kimi tezliklə hit Sizin serialın sonu, 369 00:16:27,810 --> 00:16:29,980 Bir çox nə var bahalı əməliyyat 370 00:16:29,980 --> 00:16:33,910 və kodu bir dəstə yazmaq İndi bu problem ilə məşğul. 371 00:16:33,910 --> 00:16:36,680 >> Belə ki, əvəzinə biz nə bir şey bir siyahısını adlı, 372 00:16:36,680 --> 00:16:38,820 və ya müəyyən bir siyahısını bağlıdır? 373 00:16:38,820 --> 00:16:41,930 Nə əvəzinə olan düzbucaqlı, geri geri geri geri 374 00:16:41,930 --> 00:16:45,730 biz bir az tərk ki, düzbucaqlı var Onların arasında rahat durmamak otaq bit? 375 00:16:45,730 --> 00:16:49,670 Baxmayaraq və bu tərtib etdik şəkil və ya bu şəkil uyğunlaşdırılmış 376 00:16:49,670 --> 00:16:54,696 mətnlərin biri burada geri olmaq geri əslində, çox nizamlı geri, 377 00:16:54,696 --> 00:16:56,820 o düzbucaqlı biri burada yaddaş ola bilər. 378 00:16:56,820 --> 00:16:58,028 Onlardan biri burada ola bilər. 379 00:16:58,028 --> 00:17:00,420 Onlardan biri, burada ola bilər Burada, və s üzərində. 380 00:17:00,420 --> 00:17:02,910 >> Amma biz çəkdi nə varsa bu halda, oxlar 381 00:17:02,910 --> 00:17:05,650 elə bu keçid birlikdə düzbucaqlı? 382 00:17:05,650 --> 00:17:08,170 Həqiqətən, biz texniki gördüm Ox təcəssüm. 383 00:17:08,170 --> 00:17:09,839 384 00:17:09,839 --> 00:17:13,710 Nə biz son istifadə gün, başlıq altında, 385 00:17:13,710 --> 00:17:15,210 Ox nümayəndəsi? 386 00:17:15,210 --> 00:17:16,290 387 00:17:16,290 --> 00:17:17,349 A pointer, sağ? 388 00:17:17,349 --> 00:17:19,780 >> Bəs əgər, əvəzinə yalnız nömrələri saxlanılması, 389 00:17:19,780 --> 00:17:23,130 kimi 9, 17, 22, 26, 34, nə biz saxlanılır əgər 390 00:17:23,130 --> 00:17:27,079 yalnız bir sıra deyil, bir pointer Hər bir belə nömrəsinin yanında? 391 00:17:27,079 --> 00:17:30,690 Belə ki, çox bir mövzu istəyirəm parça bir dəstə vasitəsilə iynə, 392 00:17:30,690 --> 00:17:32,950 elə tying şeyi birlikdə, eyni edə bilərsiniz 393 00:17:32,950 --> 00:17:35,550 göstəricilər kimi biz burada oxlar incarnated, 394 00:17:35,550 --> 00:17:38,550 cür birlikdə toxunuşlu bu fərdi düzbucaqlı 395 00:17:38,550 --> 00:17:41,780 səmərəli bir pointer istifadə edərək, hər bir nömrə yanında olan 396 00:17:41,780 --> 00:17:46,065 ki, bir növbəti sayı göstərir , öz növbəsində, bəzi növbəti sayı göstərir? 397 00:17:46,065 --> 00:17:47,940 Belə ki, başqa sözlə, nə Biz, həqiqətən, istəyirdi 398 00:17:47,940 --> 00:17:49,820 bu kimi bir şey həyata? 399 00:17:49,820 --> 00:17:53,610 Yaxşı təəssüf ki, bu düzbucaqlı, 9 ilə ən azı bir, 17, 22, 400 00:17:53,610 --> 00:17:57,040 və s, bu artıq bir ədəd ilə gözəl meydanların. 401 00:17:57,040 --> 00:17:59,960 Alt, düzbucaqlı 9 aşağıda, məsələn, 402 00:17:59,960 --> 00:18:04,330 nə təmsil olmalıdır bir pointer, 32 bit. 403 00:18:04,330 --> 00:18:09,460 İndi hələ hər hansı bir veri növü xəbərdar deyiləm C ki, siz yalnız bir int verir 404 00:18:09,460 --> 00:18:11,630 lakin bir göstərici cəmi. 405 00:18:11,630 --> 00:18:15,020 >> Biz istəyirik ki, əgər həll nə Bu bizim öz cavab icad? 406 00:18:15,020 --> 00:18:15,760 Bəli? 407 00:18:15,760 --> 00:18:16,640 >> Auditoriya: [işitilemez] 408 00:18:16,640 --> 00:18:17,360 >> DAVID J. MALAN: Bu nədir? 409 00:18:17,360 --> 00:18:17,880 >> Auditoriya: New quruluşu. 410 00:18:17,880 --> 00:18:19,590 >> DAVID J. MALAN: Bəli, niyə belə biz yeni bir quruluş yaratmaq deyil, 411 00:18:19,590 --> 00:18:20,920 və ya C, bir struct? 412 00:18:20,920 --> 00:18:25,990 Biz, əgər qısa əvvəl structs gördüm biz tələbə quruluşu ilə məşğul olduğu 413 00:18:25,990 --> 00:18:27,780 bu kimi bir ad və bir ev idi. 414 00:18:27,780 --> 00:18:31,980 Pset 3 breakout bir bütün istifadə structs-- GRect və GOvals dəstə 415 00:18:31,980 --> 00:18:34,810 Stanford üçün yaradılmışdır ki, birlikdə cluster məlumat. 416 00:18:34,810 --> 00:18:38,580 Belə ki, nə biz bu ideya əgər Açar sözlər "typedef" və "struct," 417 00:18:38,580 --> 00:18:42,890 və sonra bəzi tələbə xüsusi stuff, və aşağıdakı bu inkişaf: 418 00:18:42,890 --> 00:18:46,210 typedef struct node və node edir bir çox ümumi informatika 419 00:18:46,210 --> 00:18:49,980 bir data strukturu bir şey müddətli, data strukturunda bir konteyner. 420 00:18:49,980 --> 00:18:53,900 Mən iddia A node üçün gedir tamamilə sadə bir int n, 421 00:18:53,900 --> 00:18:58,810 və daha çox cryptically bir az, bu ikinci xətti, struct node * Növbəti. 422 00:18:58,810 --> 00:19:01,300 Amma az texniki şərtlərlə, ikinci line nə 423 00:19:01,300 --> 00:19:02,980 qıvrım aşırma daxilində kod? 424 00:19:02,980 --> 00:19:03,737 Bəli? 425 00:19:03,737 --> 00:19:04,851 >> Auditoriya: [işitilemez] 426 00:19:04,851 --> 00:19:06,600 DAVID J. MALAN: A başqa node göstərici. 427 00:19:06,600 --> 00:19:09,910 Belə ki, etiraf, bir az sirli syntax. 428 00:19:09,910 --> 00:19:13,250 Amma sözün oxumaq əgər, növbəti dəyişən adı. 429 00:19:13,250 --> 00:19:14,410 Onun data növü nədir? 430 00:19:14,410 --> 00:19:18,206 Bu, bu dəfə bir az verbose var lakin bu * növü struct node var. 431 00:19:18,206 --> 00:19:22,960 Biz bir şey ulduz gördüm hər hansı bir zaman ki, ki, data növü bir göstərici var deməkdir. 432 00:19:22,960 --> 00:19:26,810 Belə ki, növbəti yəqin edir bir struct node göstərici. 433 00:19:26,810 --> 00:19:28,310 >> İndi, bir struct node nədir? 434 00:19:28,310 --> 00:19:31,044 Bəli, siz o görmək bildiriş sağ üst eyni sözləri. 435 00:19:31,044 --> 00:19:33,960 Və həqiqətən, siz də sözü Aşağı burada alt sol "node". 436 00:19:33,960 --> 00:19:35,640 Və bu, həqiqətən, yalnız bir rahatlığı var. 437 00:19:35,640 --> 00:19:39,930 Bizim tələbə müəyyən edək ki, yalnız bir dəfə sözü "tələbə" var. 438 00:19:39,930 --> 00:19:42,510 Və bir tələbə, çünki obyekt öz-özünə sened deyildi. 439 00:19:42,510 --> 00:19:45,340 Tələbə daxilində heç bir şey yoxdur ki, bir tələbə üçün qeyd etmək lazımdır, 440 00:19:45,340 --> 00:19:45,610 persay. 441 00:19:45,610 --> 00:19:47,630 Ki, sort olacaq real dünyada qəribə. 442 00:19:47,630 --> 00:19:50,880 >> Amma bir node ilə bağlı siyahısı, biz bir node istəyirəm 443 00:19:50,880 --> 00:19:53,970 oxşar obyekt sened olmaq. 444 00:19:53,970 --> 00:19:57,900 Və belə ki, burada dəyişiklik deyil fark yalnız nə qıvrım aşırma daxilində. 445 00:19:57,900 --> 00:20:00,800 Amma biz "node" sözü əlavə üst habelə 446 00:20:00,800 --> 00:20:02,930 altına əlavə əvəzinə "tələbə". 447 00:20:02,930 --> 00:20:06,000 Və bu yalnız bir texniki detal belə ki, yenidən sizin data strukturu 448 00:20:06,000 --> 00:20:11,380 , öz-özünə sened ola bilər ki, node başqa cür node qeyd edə bilərsiniz. 449 00:20:11,380 --> 00:20:13,840 >> Belə ki, bu son nəticədə nə bizim üçün demək gedir? 450 00:20:13,840 --> 00:20:17,560 Yaxşı, bir, bu stuff daxili bizim node məzmunu edir. 451 00:20:17,560 --> 00:20:19,360 Burada bu şey, top sağ, yalnız belə 452 00:20:19,360 --> 00:20:20,860 ki, yenə biz özümüz müraciət edə bilərsiniz. 453 00:20:20,860 --> 00:20:23,401 Və sonra outermost stuff, node yeni bir müddətli olsa, 454 00:20:23,401 --> 00:20:25,500 bəlkə, hələ var tələbə və nə kimi eyni 455 00:20:25,500 --> 00:20:27,520 SPL başlıq altında idi. 456 00:20:27,520 --> 00:20:31,095 >> Beləliklə, biz indi başlamaq istəyirdi bu bağlı siyahı həyata keçirilməsi, 457 00:20:31,095 --> 00:20:33,220 biz necə tərcümə bilər bu kimi bir şey kod? 458 00:20:33,220 --> 00:20:35,350 Yaxşı, yalnız bir görək bir proqram nümunəsi 459 00:20:35,350 --> 00:20:36,840 həqiqətən bağlı siyahısını istifadə edir. 460 00:20:36,840 --> 00:20:40,870 Bugünkü distribution kodu arasında List Zero adlı bir proqramdır. 461 00:20:40,870 --> 00:20:44,980 Mən bu run əgər və mən bir super yaradılmışdır sadə GUI, qrafik istifadəçi interfeys, 462 00:20:44,980 --> 00:20:46,460 lakin bu, həqiqətən, yalnız printf edir. 463 00:20:46,460 --> 00:20:50,930 Və indi özümü bir neçə menyu təqdim etdik Seçimlər Sil, Insert, Axtarış, 464 00:20:50,930 --> 00:20:51,750 və Traverse. 465 00:20:51,750 --> 00:20:52,630 Və çıxın. 466 00:20:52,630 --> 00:20:55,970 Bu yalnız ümumi əməliyyatlar bir link siyahısı kimi tanınan data strukturu. 467 00:20:55,970 --> 00:20:58,409 >> İndi gedir sil siyahıdan nömrəni silmək. 468 00:20:58,409 --> 00:21:00,200 Daxil əlavə olacaq Siyahıya nömrəsi. 469 00:21:00,200 --> 00:21:02,181 Axtar baxmaq niyyətindədir Siyahıda sayı. 470 00:21:02,181 --> 00:21:04,930 Və traverse bir xülya yoludur deyərək, siyahıda vasitəsilə gəzmək, 471 00:21:04,930 --> 00:21:06,245 çap, lakin bu. 472 00:21:06,245 --> 00:21:07,720 Hər hansı bir şəkildə dəyişiklik yoxdur. 473 00:21:07,720 --> 00:21:08,570 >> Belə ki, bu cəhd edək. 474 00:21:08,570 --> 00:21:10,160 Nin irəli getmək və 2 yazın edək. 475 00:21:10,160 --> 00:21:12,710 Və sonra mən gedirəm sayı daxil, 9 deyirlər. 476 00:21:12,710 --> 00:21:13,620 Daxil edin. 477 00:21:13,620 --> 00:21:17,480 İndi mənim proqram yalnız demək proqramlaşdırılmış siyahısı indi 9. 478 00:21:17,480 --> 00:21:20,190 İndi mən irəli getmək əgər və daha daxil yoxdur, qoy 479 00:21:20,190 --> 00:21:23,680 Mənə irəli getmək və həyata zoom və 17 yazın. 480 00:21:23,680 --> 00:21:25,770 İndi mənim siyahısı sonra, 17 9. 481 00:21:25,770 --> 00:21:27,750 Mən yenə daxil əgər, birinə keçmək bildirin. 482 00:21:27,750 --> 00:21:32,400 Əvəzində 22, şəkil kimi biz Burada baxaraq, mənə irəli jump edək 483 00:21:32,400 --> 00:21:34,630 və növbəti 26 daxil edin. 484 00:21:34,630 --> 00:21:36,230 Mən 26 yazın gedirəm. 485 00:21:36,230 --> 00:21:37,755 I gözləmək kimi siyahısı. 486 00:21:37,755 --> 00:21:40,630 Amma indi, yalnız bu kodu görmek üçün çevik olacaq, indi mənə bildirin 487 00:21:40,630 --> 00:21:43,520 tipli 22 azı konseptual, biz əgər 488 00:21:43,520 --> 00:21:46,520 Bu, həqiqətən olan sıralanır saxlanılması indi başqa qol olacaq, 489 00:21:46,520 --> 00:21:48,690 17 və 26 arasında getməlidir. 490 00:21:48,690 --> 00:21:50,270 Mən Enter düyməsini basın. 491 00:21:50,270 --> 00:21:51,380 Həqiqətən ki, işləyir. 492 00:21:51,380 --> 00:21:54,950 Və indi mənə daxil edək son şəkil 34 per. 493 00:21:54,950 --> 00:21:55,450 >> Bütün hüquqlar. 494 00:21:55,450 --> 00:21:58,980 Belə ki, indi üçün mənə müəyyən edək Sil və Traverse və axtarış edə, 495 00:21:58,980 --> 00:21:59,760 əslində iş. 496 00:21:59,760 --> 00:22:04,180 Mən Axtarış run əgər Əslində, edək daxil edin, sayı 22 üçün axtarış. 497 00:22:04,180 --> 00:22:05,010 Bu 22 tapıldı. 498 00:22:05,010 --> 00:22:07,580 Belə ki, nə bu proqram siyahısı Zero yoxdur. 499 00:22:07,580 --> 00:22:10,230 >> Amma əslində nə gedir ki, bu həyata keçirir? 500 00:22:10,230 --> 00:22:14,530 Bəli, ilk mən, həqiqətən bilər Bir fayl list0.h adlı, var. 501 00:22:14,530 --> 00:22:16,540 502 00:22:16,540 --> 00:22:20,690 Və bu var, haradasa line, typedef struct node, 503 00:22:20,690 --> 00:22:24,850 sonra mən qıvrım aşırma var n int və sonra müəyyən nə struct--? 504 00:22:24,850 --> 00:22:26,530 505 00:22:26,530 --> 00:22:28,545 Struct node növbəti. 506 00:22:28,545 --> 00:22:29,920 507 00:22:29,920 --> 00:22:31,045 Beləliklə, biz ulduz lazımdır. 508 00:22:31,045 --> 00:22:33,420 İndi texniki biz nəzərə almaq burada rəsm vərdiş. 509 00:22:33,420 --> 00:22:35,670 Siz dərsliklər görmək bilər və online istinadlar var bunu. 510 00:22:35,670 --> 00:22:36,660 Bu funksional ekvivalent deyil. 511 00:22:36,660 --> 00:22:37,980 Əslində, bu bir az daha səciyyəvidir. 512 00:22:37,980 --> 00:22:40,563 Amma nə uyğun olacaq Biz keçən dəfə idi və bunu. 513 00:22:40,563 --> 00:22:42,350 Və sonra nəhayət, mən bunu gedirəm. 514 00:22:42,350 --> 00:22:45,550 >> Bir header fayl So haradasa, list0.h da 515 00:22:45,550 --> 00:22:49,200 Bu gün struct müəyyən edir, və bəlkə bəzi digər stuff. 516 00:22:49,200 --> 00:22:52,580 Eyni zamanda list0c var, bir neçə şey olacaq. 517 00:22:52,580 --> 00:22:54,740 Amma biz olacaq yalnız başlamaq və bitirmək deyil. 518 00:22:54,740 --> 00:22:59,690 List0.h istəyirəm fayl Mənim C fayl daxil. 519 00:22:59,690 --> 00:23:03,910 Və sonra bir nöqtədə mən deyiləm əsas, int ləğv etmək niyyətindədir. 520 00:23:03,910 --> 00:23:06,530 Və sonra mən gedirəm to-do bəzi burada var. 521 00:23:06,530 --> 00:23:10,620 Mən də gedirəm prototip, etibarsız, axtarış, int kimi, 522 00:23:10,620 --> 00:23:13,610 n, həyat onun məqsədi bir element axtarmaq üçün. 523 00:23:13,610 --> 00:23:18,310 Və sonra aşağı burada mən iddia bugünkü kodu, etibarsız, axtarış, int, n, 524 00:23:18,310 --> 00:23:21,020 Heç bir nöqtəli vergül açıq qıvrım aşırma. 525 00:23:21,020 --> 00:23:25,049 İndi mən birtəhər axtarış etmək istəyirsinizsə Bu siyahıda bir element üçün. 526 00:23:25,049 --> 00:23:27,340 Amma biz kifayət qədər yoxdur hələ ekranda məlumat. 527 00:23:27,340 --> 00:23:29,800 Mən, həqiqətən, siyahısını özü təmsil etmişdir. 528 00:23:29,800 --> 00:23:33,070 Belə bir yolu biz həyata bilər bir proqram bir bağlı siyahı 529 00:23:33,070 --> 00:23:37,520 I növ bir şey istəyirəm kimi burada siyahısını bağlıdır deyəcəyəm. 530 00:23:37,520 --> 00:23:40,520 Sadəlik üçün, mən gedirəm Bu hətta ümumi biz baxmayaraq, qlobal 531 00:23:40,520 --> 00:23:41,645 Bu çox lazım deyil. 532 00:23:41,645 --> 00:23:43,260 Lakin bu nümunə sadələşdirmək olacaq. 533 00:23:43,260 --> 00:23:45,890 Mən bəyan etmək istəyirəm Burada bir bağlı siyahı up. 534 00:23:45,890 --> 00:23:47,010 İndi, mən necə edə bilərik? 535 00:23:47,010 --> 00:23:48,810 536 00:23:48,810 --> 00:23:50,750 >> Burada bir bağlı siyahı şəkil var. 537 00:23:50,750 --> 00:23:53,030 Mən, həqiqətən, yoxdur necə bu anda bilirsinizmi 538 00:23:53,030 --> 00:23:56,710 Mən haqqında getmək üçün gedirəm yalnız biri ilə çox şey 539 00:23:56,710 --> 00:23:58,040 yaddaş dəyişən. 540 00:23:58,040 --> 00:23:59,160 Amma geri bir an düşünürəm. 541 00:23:59,160 --> 00:24:00,830 Biz etdik bütün bu vaxt strings, sonra biz 542 00:24:00,830 --> 00:24:02,913 Diziler olması aşkar simvol, sonra biz 543 00:24:02,913 --> 00:24:05,740 yalnız bir göstərici ortaya ilk xarakteri 544 00:24:05,740 --> 00:24:08,890 simvol bir sıra ki, null ləğv edir. 545 00:24:08,890 --> 00:24:13,530 Ki məntiq, və bu ilə fikir əkin şəkil cür, 546 00:24:13,530 --> 00:24:17,964 biz, həqiqətən, nə yazmaq lazımdır bizim kodu bir bağlı siyahı təmsil? 547 00:24:17,964 --> 00:24:21,130 Nə qədər bu informasiya biz lazımdır C kodu tutmaq, siz deyəcəksiniz? 548 00:24:21,130 --> 00:24:22,654 549 00:24:22,654 --> 00:24:23,154 Bəli? 550 00:24:23,154 --> 00:24:24,738 >> Auditoriya: Biz bir node bir göstərici lazımdır. 551 00:24:24,738 --> 00:24:26,237 DAVID J. MALAN: a node bir göstərici. 552 00:24:26,237 --> 00:24:29,320 Xüsusilə, olan node sizin ki instinktlərdən bir pointer saxlamaq üçün olacaq? 553 00:24:29,320 --> 00:24:30,026 >> Auditoriya: İlk node. 554 00:24:30,026 --> 00:24:31,942 >> DAVID J. MALAN: Bəli, yəqin ki, yalnız ilk. 555 00:24:31,942 --> 00:24:34,030 Və ilk bildiriş node müxtəlif formalı edir. 556 00:24:34,030 --> 00:24:37,690 Bu struct yalnız yarısı ölçüsü var, çünki həqiqətən yalnız bir göstərici var. 557 00:24:37,690 --> 00:24:44,650 Beləliklə, siz həqiqətən edə bilərsiniz nə bəyan edir bir bağlı siyahı * node olmaq. 558 00:24:44,650 --> 00:24:47,780 Və yalnız ilk zəng edək və null başlamaq. 559 00:24:47,780 --> 00:24:49,910 Belə ki, null, yenə gəlir burada şəkil. 560 00:24:49,910 --> 00:24:53,620 Yalnız null xüsusi kimi istifadə olunur GetString kimi şeylər üçün qaytarılması dəyəri 561 00:24:53,620 --> 00:24:57,770 və malloc, null də sıfır pointer, bir göstərici olmaması, 562 00:24:57,770 --> 00:24:58,430 Siz. 563 00:24:58,430 --> 00:25:00,309 Bu, yalnız heç bir şey hələ burada deməkdir. 564 00:25:00,309 --> 00:25:02,100 İndi ilk mən var bilər bu bir şey deyilən. 565 00:25:02,100 --> 00:25:04,200 I "siyahısı" adlı ola bilər və ya başqa şeylər hər hansı bir sayı. 566 00:25:04,200 --> 00:25:06,960 Amma ki, "ilk" zəng alıram bu şəkil ilə xətləri up. 567 00:25:06,960 --> 00:25:10,280 Belə ki, yalnız bir string kimi təmsil oluna bilər ilk byte ünvanı ilə, 568 00:25:10,280 --> 00:25:11,280 belə bir bağlı siyahı bilərsiniz. 569 00:25:11,280 --> 00:25:13,480 Və biz digər məlumatlar görəcəksiniz strukturları təmsil olunacaq 570 00:25:13,480 --> 00:25:16,700 yalnız bir göstərici ilə, 32-bit arrow işarə 571 00:25:16,700 --> 00:25:18,740 strukturunda ilk node. 572 00:25:18,740 --> 00:25:20,340 >> Amma indi bir problem tahmin imkan verir. 573 00:25:20,340 --> 00:25:23,230 Mən yalnız xatırlayaraq alıram əgər mənim proqram ünvanını 574 00:25:23,230 --> 00:25:27,220 ilk node, ilk Bu data strukturu düzbucaqlı, 575 00:25:27,220 --> 00:25:31,760 daha yaxşı idi əlaqədar işi ola nə Mənim siyahısı istirahət həyata keçirilməsi? 576 00:25:31,760 --> 00:25:35,820 Olacaq ki, əsas ətraflı nədir Bu həqiqətən işləyir təmin etmək üçün? 577 00:25:35,820 --> 00:25:39,250 Və mən "həqiqətən işləyir" çox bir string kimi demək, 578 00:25:39,250 --> 00:25:42,180 us ilk xarakter getmək imkan verir ikinci Davin adı, 579 00:25:42,180 --> 00:25:44,755 üçüncü etmək, dördüncü, çox sonuna, 580 00:25:44,755 --> 00:25:47,880 biz sonunda olduğunuzda biz bilirik nə bu kimi görünür ki, bir bağlı siyahı? 581 00:25:47,880 --> 00:25:50,035 582 00:25:50,035 --> 00:25:50,660 Zaman null var. 583 00:25:50,660 --> 00:25:53,640 Və mən bu cür təmsil etdik elektrik mühəndisi gücü kimi, 584 00:25:53,640 --> 00:25:56,420 kiçik torpaqlama ilə simvolu növ. 585 00:25:56,420 --> 00:25:58,246 Amma yalnız bu halda null deməkdir. 586 00:25:58,246 --> 00:26:00,370 Siz hər hansı bir sayı cəlb edə bilər yolları, lakin bu müəllif 587 00:26:00,370 --> 00:26:02,800 Burada bu simvolu istifadə etmək oldu. 588 00:26:02,800 --> 00:26:06,260 >> Biz stringing etdiyiniz kimi Belə ki, uzun birlikdə bu qovşaqlarının bütün, 589 00:26:06,260 --> 00:26:08,600 yalnız xatırlayaraq ilk, belə uzun 590 00:26:08,600 --> 00:26:11,760 biz xüsusi simvolu qoymaq kimi Siyahıda son node, 591 00:26:11,760 --> 00:26:15,130 ki, çünki biz null istifadə edəcəyik Bizə mövcud nə biz, 592 00:26:15,130 --> 00:26:16,480 Bu siyahı tam deyil. 593 00:26:16,480 --> 00:26:20,190 Və hətta mən yalnız əgər bir pointer vermək ilk element, siz proqramçı, 594 00:26:20,190 --> 00:26:22,486 əlbəttə ki, istirahət edə bilərsiniz. 595 00:26:22,486 --> 00:26:24,360 Amma ağıl edək bir az gezmek, 596 00:26:24,360 --> 00:26:26,140 onlar artıq değilseniz olduqca nə wandered-- 597 00:26:26,140 --> 00:26:28,723 çalışan zaman olacaq Bu siyahıda bir şey tapmaq? 598 00:26:28,723 --> 00:26:30,450 599 00:26:30,450 --> 00:26:33,470 Lənətləmək, bu n böyük O, olan ədalət, pis deyil. 600 00:26:33,470 --> 00:26:34,800 Amma bu xətti var. 601 00:26:34,800 --> 00:26:37,980 Biz nə xüsusiyyət verilir daha hərəkət serialların 602 00:26:37,980 --> 00:26:43,130 dinamik bu şəkil doğru birlikdə toxunmuş və ya qovşaqlarının bağlıdır? 603 00:26:43,130 --> 00:26:44,970 604 00:26:44,970 --> 00:26:46,687 Biz təsadüfi giriş imtina etdik. 605 00:26:46,687 --> 00:26:48,770 Bir sıra çünki gözəl riyazi hər şey 606 00:26:48,770 --> 00:26:50,340 geri geri geri geri. 607 00:26:50,340 --> 00:26:52,370 Hətta bu şəkil olsa yaraşıqlı görünür, və hətta 608 00:26:52,370 --> 00:26:55,830 Bu qovşaqlarının kimi görünür olsa qəşəng əslində, ayrı dağıtılır 609 00:26:55,830 --> 00:26:56,830 onlar hər yerdə ola bilər. 610 00:26:56,830 --> 00:27:01,590 OX1, Ox50, ox123, Ox99, bu qovşaqlarının hər yerdə ola bilər. 611 00:27:01,590 --> 00:27:05,960 Malloc yaddaş ayrılması çünki yığın, ancaq hər hansı yığın. 612 00:27:05,960 --> 00:27:09,080 Siz mütləq bu ki, bilmirəm geri olacaq geri geri. 613 00:27:09,080 --> 00:27:12,460 Və reallıq nin bu şəkil olduqca bu olduqca olacaq deyil. 614 00:27:12,460 --> 00:27:16,140 >> Belə ki, bir az almaq olacaq Bu funksiyanı həyata çalışır. 615 00:27:16,140 --> 00:27:17,880 Belə ki, indi axtarış həyata bildirin. 616 00:27:17,880 --> 00:27:20,250 Və biz bir cür görəcəksiniz bunu ağıllı yol. 617 00:27:20,250 --> 00:27:24,660 Mən bir axtarış funksiyası am əgər Belə ki, Mən bir dəyişən, tam n verilən edirəm 618 00:27:24,660 --> 00:27:28,490 axtarmaq üçün, mən bilmək lazımdır içərisində axtarır üçün yeni sintaksis 619 00:27:28,490 --> 00:27:32,400 ki, bir quruluşu , n tapmaq üçün işarə etdi. 620 00:27:32,400 --> 00:27:33,210 Belə ki, bunu edək. 621 00:27:33,210 --> 00:27:36,030 >> Belə ki, ilk mən getmək üçün gedirəm irəli və * node elan. 622 00:27:36,030 --> 00:27:39,400 Mən zəng etmək üçün gedirəm yalnız konvensiya pointer. 623 00:27:39,400 --> 00:27:41,710 Mən ilk onu başlamaq üçün gedirəm. 624 00:27:41,710 --> 00:27:43,770 İndi mən bunu edə bilərsiniz yollarla bir sıra. 625 00:27:43,770 --> 00:27:45,436 Amma ortaq yanaşma gedirəm. 626 00:27:45,436 --> 00:27:50,180 Pointer bərabər deyil isə null ki, qüvvədə olan sintaksis var. 627 00:27:50,180 --> 00:27:54,550 Və yalnız belə, aşağıdakı deməkdir uzun heç işarə deyilik kimi. 628 00:27:54,550 --> 00:27:55,800 Mən nə istəyirəm? 629 00:27:55,800 --> 00:28:01,939 >> Pointer dot n, mənə geri gəlsin ki, bərabərdir nə bərabərdir? 630 00:28:01,939 --> 00:28:03,105 Nə dəyəri I axtarır am? 631 00:28:03,105 --> 00:28:04,920 632 00:28:04,920 --> 00:28:06,590 Keçdi ki, faktiki n. 633 00:28:06,590 --> 00:28:09,020 Belə ki, burada başqa bir xüsusiyyət var C və çox dil. 634 00:28:09,020 --> 00:28:13,705 Hətta struktur adlanır node baxmayaraq dəyəri n, tamamilə qanuni var 635 00:28:13,705 --> 00:28:17,530 Həmçinin yerli arqument var və ya dəyişən n çağırıb. 636 00:28:17,530 --> 00:28:20,085 Hətta biz, çünki insan gözü, ayırd edə 637 00:28:20,085 --> 00:28:22,087 Bu n güman edir ki, Bu n fərqli. 638 00:28:22,087 --> 00:28:23,420 Sintaksis müxtəlif çünki. 639 00:28:23,420 --> 00:28:26,211 Siz bir nöqtə və bir göstərici var, bu bir halbuki belə şey var. 640 00:28:26,211 --> 00:28:27,290 Belə ki, bu yaxşıdır. 641 00:28:27,290 --> 00:28:29,120 Ki, eyni şeyi onlara zəng etmək üçün OK. 642 00:28:29,120 --> 00:28:32,380 >> Mən sizə bu tapa bilərəm, mən deyiləm bir şey etmək istəyirəm olacaq 643 00:28:32,380 --> 00:28:35,000 kimi biz n aşkar ki, elan edir. 644 00:28:35,000 --> 00:28:37,930 Və biz kimi tərk edəcəyik şərh və ya pseudocode kodu. 645 00:28:37,930 --> 00:28:40,190 Else, burada var maraqlı hissəsi, nə 646 00:28:40,190 --> 00:28:47,320 Mən cari node əgər bunu etmək istəyirəm Mən qayğı n olan deyil? 647 00:28:47,320 --> 00:28:50,700 Necə aşağıdakı nail edirsiniz? 648 00:28:50,700 --> 00:28:53,710 Əgər mənim barmaq an Ptr və bu 649 00:28:53,710 --> 00:28:55,920 nə işarə ilk işarə edir 650 00:28:55,920 --> 00:28:59,290 Mən barmaq hərəkət necə kod növbəti node? 651 00:28:59,290 --> 00:29:01,915 Bəli, biz istəyirik hier nə Bu halda izləmək üçün gedir? 652 00:29:01,915 --> 00:29:03,464 653 00:29:03,464 --> 00:29:04,380 Auditoriya: [işitilemez]. 654 00:29:04,380 --> 00:29:05,630 DAVID J. MALAN: Bəli, belə gələcək. 655 00:29:05,630 --> 00:29:06,640 656 00:29:06,640 --> 00:29:09,824 Mən geri getmək əgər Belə ki, mənim Burada kodu, həqiqətən, Mən 657 00:29:09,824 --> 00:29:12,990 , göstərici irəli getmək və demək niyyətində olan bu yalnız müvəqqəti dəyişən deyil 658 00:29:12,990 --> 00:29:15,320 bir qəribə adı, Ptr, lakin yalnız temp-- kimi 659 00:29:15,320 --> 00:29:19,234 Mən göstərici müəyyən gedirəm nə pointer That bərabər 660 00:29:19,234 --> 00:29:22,150 və yenə bu olacaq növbəti bir anda nöqtə az arabası. 661 00:29:22,150 --> 00:29:23,551 662 00:29:23,551 --> 00:29:26,550 Başqa sözlə, mən gedirəm mənim Bu node işarə barmaq 663 00:29:26,550 --> 00:29:31,247 burada və mən bilirəm, demək gedirəm nə növbəti sahəsində bir nəzər 664 00:29:31,247 --> 00:29:33,330 və barmaq hərəkət nə bu işarə. 665 00:29:33,330 --> 00:29:35,163 Və bu gedir , təkrar, təkrar təkrar. 666 00:29:35,163 --> 00:29:37,630 Amma zaman mənim barmaq edir heç bir şey bunu dayandırmaq? 667 00:29:37,630 --> 00:29:40,095 Kimi tezliklə hansı kodu kicks line kimi? 668 00:29:40,095 --> 00:29:40,970 Auditoriya: [işitilemez] 669 00:29:40,970 --> 00:29:43,060 DAVID J. MALAN: Əgər point isə pointer null bərabər deyil. 670 00:29:43,060 --> 00:29:44,900 Bir nöqtədə mənim barmaq nin null işarə olacaq 671 00:29:44,900 --> 00:29:47,070 və mən həyata gedirəm bu siyahının sonu var. 672 00:29:47,070 --> 00:29:48,910 İndi, bu bir az Sadəlik üçün ağ yalan. 673 00:29:48,910 --> 00:29:51,580 Belə çıxır ki, baxmayaraq ki, biz yalnız bu dot notation öyrənildi 674 00:29:51,580 --> 00:29:55,220 strukturları üçün, pointer bir struct deyil. 675 00:29:55,220 --> 00:29:56,580 Ptr nədir? 676 00:29:56,580 --> 00:29:58,350 Just daha nitpicky olacaq. 677 00:29:58,350 --> 00:29:59,720 678 00:29:59,720 --> 00:30:01,360 Bu node bir göstərici var. 679 00:30:01,360 --> 00:30:03,120 Bu node özü deyil. 680 00:30:03,120 --> 00:30:06,650 Mən burada heç bir ulduz olsaydı, pointer absolutely-- bir node var. 681 00:30:06,650 --> 00:30:08,650 Bu həftə bir kimi dəyişən elan, 682 00:30:08,650 --> 00:30:10,120 hətta "node" yeni olsa. 683 00:30:10,120 --> 00:30:13,860 >> Amma biz təqdim kimi tezliklə star, indi bir node bir göstərici var. 684 00:30:13,860 --> 00:30:17,960 Və təəssüf ki, siz istifadə edə bilərsiniz bir göstərici üçün dot notation. 685 00:30:17,960 --> 00:30:21,070 Siz arrow istifadə etmək notation olan, şəfəqli, 686 00:30:21,070 --> 00:30:23,470 ilk dəfə hər hansı bir parça sintaksis intuitiv görünür. 687 00:30:23,470 --> 00:30:25,245 Bu sözün bir ox kimi görünür. 688 00:30:25,245 --> 00:30:26,370 Və belə ki, yaxşı bir şey. 689 00:30:26,370 --> 00:30:28,995 Və burada sözün ox kimi görünür. 690 00:30:28,995 --> 00:30:31,870 Belə ki, mən nə la-- hesab Mən burada çox törətməkdə edirəm mən 691 00:30:31,870 --> 00:30:34,120 son yeni parça hesab sintaksis biz görmək olacaq. 692 00:30:34,120 --> 00:30:36,500 Və təşəkkürlə, bu, həqiqətən var bir az daha asan. 693 00:30:36,500 --> 00:30:40,090 >> İndi sizin üçün olan köhnə yol üstünlük bilər, 694 00:30:40,090 --> 00:30:42,550 siz hələ də dot notation istifadə edə bilərsiniz. 695 00:30:42,550 --> 00:30:45,380 Amma ertəsi nin başına söhbət, biz ilk 696 00:30:45,380 --> 00:30:50,530 ki, gedin, orada getmək lazımdır müraciət, və sonra sahəyə daxil. 697 00:30:50,530 --> 00:30:51,897 Belə ki, bu da doğru deyil. 698 00:30:51,897 --> 00:30:53,730 Və səmimi, bu, daha xırdaçı az. 699 00:30:53,730 --> 00:30:56,530 Siz sözün deyərək edirik, dereference göstərici və orada getmək. 700 00:30:56,530 --> 00:30:59,320 Sonra n qamarlamaq sahəsində n çağırıb. 701 00:30:59,320 --> 00:31:01,370 Amma səmimi, heç bir istəyir yazın və ya bu oxumaq. 702 00:31:01,370 --> 00:31:03,620 Və belə ki, dünya icad arrow notation olan 703 00:31:03,620 --> 00:31:06,980 , eyni bərabərdir, yalnız sintaktik şəkər var. 704 00:31:06,980 --> 00:31:10,570 Bu deyərək belə bir xülya yolu daha yaxşı görünür, və ya sadə görünür. 705 00:31:10,570 --> 00:31:12,296 >> Belə ki, indi mən başqa bir şey etmək üçün gedirəm. 706 00:31:12,296 --> 00:31:15,420 Mən var bir dəfə "fasilə" demək gedirəm Bu mən onu axtarır saxlamaq yoxdur tapdı. 707 00:31:15,420 --> 00:31:17,620 Amma bu mahiyyət daşıyır axtarış funksiyası. 708 00:31:17,620 --> 00:31:21,710 Amma bu, bir çox asandır end, kodu vasitəsilə gəzmək deyil. 709 00:31:21,710 --> 00:31:25,570 Bu, həqiqətən, formal həyata keçirilməsi bugünkü distribution kodu axtarış. 710 00:31:25,570 --> 00:31:30,530 Mən insert deyil demək cəsarət vasitəsilə gəzmək üçün xüsusilə əyləncə 711 00:31:30,530 --> 00:31:33,180 vizual, nə də hətta, silmək Günün sonunda olsa 712 00:31:33,180 --> 00:31:35,460 Onlar kifayət qədər aşağı qaynatmaq sadə heuristics. 713 00:31:35,460 --> 00:31:36,330 >> Belə ki, bunu edək. 714 00:31:36,330 --> 00:31:39,250 Burada yumor mənə lazımdır, mən etdim stress top bir dəstə gətirir. 715 00:31:39,250 --> 00:31:40,620 Mən ədəd bir dəstə gətirdi. 716 00:31:40,620 --> 00:31:46,562 Və biz yalnız bir neçə könüllü ala bilər 9, 17, 20, 22, 29 və 34 təmsil? 717 00:31:46,562 --> 00:31:48,270 Belə ki, mahiyyətcə hər kəs olan gün burada var. 718 00:31:48,270 --> 00:31:50,170 719 00:31:50,170 --> 00:31:52,760 Ki, bir, iki, üç oldu dörd, beş, altı nəfər. 720 00:31:52,760 --> 00:31:55,740 Və mən heç görmək go-- xahiş etdik geri bir əllərini qaldırır. 721 00:31:55,740 --> 00:32:01,910 OK, bir, iki, üç, dörd, five-- oxşar altı balance-- yük bildirin. 722 00:32:01,910 --> 00:32:03,051 OK, altı qədər gəlib. 723 00:32:03,051 --> 00:32:04,050 Biz digər insanlar lazımdır. 724 00:32:04,050 --> 00:32:05,460 Biz əlavə stress top gətirdi. 725 00:32:05,460 --> 00:32:08,200 Və siz əgər, üçün yalnız bir an, line 726 00:32:08,200 --> 00:32:10,490 Özünüzü up yalnız burada bu şəkil kimi. 727 00:32:10,490 --> 00:32:15,200 728 00:32:15,200 --> 00:32:15,959 >> Bütün hüquqlar. 729 00:32:15,959 --> 00:32:17,125 Sizin adınız nədir Baxaq? 730 00:32:17,125 --> 00:32:17,550 >> Auditoriya: Andrew. 731 00:32:17,550 --> 00:32:18,800 >> DAVID J. MALAN: Andrew, Siz sayı 9 var. 732 00:32:18,800 --> 00:32:19,540 Görüşmək Nice. 733 00:32:19,540 --> 00:32:20,400 Burada getmək. 734 00:32:20,400 --> 00:32:21,593 735 00:32:21,593 --> 00:32:22,176 Auditoriya: Jen. 736 00:32:22,176 --> 00:32:22,662 DAVID J. MALAN: Jen. 737 00:32:22,662 --> 00:32:23,162 David. 738 00:32:23,162 --> 00:32:23,765 Sayı 17. 739 00:32:23,765 --> 00:32:24,950 740 00:32:24,950 --> 00:32:25,450 Bəli? 741 00:32:25,450 --> 00:32:26,400 >> Auditoriya: Mən Julia edirəm. 742 00:32:26,400 --> 00:32:26,980 >> DAVID J. MALAN: Julia, David. 743 00:32:26,980 --> 00:32:27,545 Sayı 20. 744 00:32:27,545 --> 00:32:28,507 745 00:32:28,507 --> 00:32:29,340 Auditoriya: Christian. 746 00:32:29,340 --> 00:32:30,715 DAVID J. MALAN: Christian, David. 747 00:32:30,715 --> 00:32:31,541 22 nömrəli. 748 00:32:31,541 --> 00:32:32,040 Və? 749 00:32:32,040 --> 00:32:32,649 >> Auditoriya: JP. 750 00:32:32,649 --> 00:32:33,440 DAVID J. MALAN: JP. 751 00:32:33,440 --> 00:32:34,880 29. 752 00:32:34,880 --> 00:32:37,080 Belə ki, oh Uh irəli getmək və in-- almaq. 753 00:32:37,080 --> 00:32:38,486 754 00:32:38,486 --> 00:32:38,985 Oh Uh. 755 00:32:38,985 --> 00:32:39,650 756 00:32:39,650 --> 00:32:40,150 Adi. 757 00:32:40,150 --> 00:32:41,360 758 00:32:41,360 --> 00:32:42,390 20. 759 00:32:42,390 --> 00:32:43,682 Hər kəs bir marker var? 760 00:32:43,682 --> 00:32:44,890 Auditoriya: Mən bir Sharpie var. 761 00:32:44,890 --> 00:32:45,660 DAVID J. MALAN: Siz Sharpie var? 762 00:32:45,660 --> 00:32:46,159 OK. 763 00:32:46,159 --> 00:32:47,577 764 00:32:47,577 --> 00:32:49,160 Və hər kəs bir parça kağız var? 765 00:32:49,160 --> 00:32:51,562 766 00:32:51,562 --> 00:32:52,270 Məruzə edin. 767 00:32:52,270 --> 00:32:53,810 768 00:32:53,810 --> 00:32:55,362 Hadi. 769 00:32:55,362 --> 00:32:56,320 Auditoriya: Biz bunu var. 770 00:32:56,320 --> 00:32:57,600 DAVID J. MALAN: Biz bunu var? 771 00:32:57,600 --> 00:32:58,577 Bütün sağ, təşəkkür edirəm. 772 00:32:58,577 --> 00:33:01,380 773 00:33:01,380 --> 00:33:02,520 Burada biz gedin. 774 00:33:02,520 --> 00:33:03,582 Bu sizin idi? 775 00:33:03,582 --> 00:33:04,540 Siz yalnız gün saxlanılır. 776 00:33:04,540 --> 00:33:05,670 777 00:33:05,670 --> 00:33:07,220 Belə ki, 29. 778 00:33:07,220 --> 00:33:10,510 779 00:33:10,510 --> 00:33:11,110 Bütün hüquqlar. 780 00:33:11,110 --> 00:33:13,360 781 00:33:13,360 --> 00:33:14,890 Mən 29 yanlış, lakin OK. 782 00:33:14,890 --> 00:33:15,720 Durmayın. 783 00:33:15,720 --> 00:33:18,114 Bütün hüquqlar, mən sizə vermək lazımdır Sizin qələm geri anda. 784 00:33:18,114 --> 00:33:19,280 Beləliklə, biz burada bu millət var. 785 00:33:19,280 --> 00:33:20,330 Digər bir var edək. 786 00:33:20,330 --> 00:33:23,750 Gabe, siz oynamaq istəyirəm Burada ilk element? 787 00:33:23,750 --> 00:33:25,705 Biz qeyd etmək lazımdır Bu gözəl insanlar da. 788 00:33:25,705 --> 00:33:26,930 789 00:33:26,930 --> 00:33:31,030 Belə ki, 9, 17, 20, 22, sort 29, sonra 34. 790 00:33:31,030 --> 00:33:32,160 791 00:33:32,160 --> 00:33:33,325 Biz kimsə itirmək mi? 792 00:33:33,325 --> 00:33:33,950 Mən 34 var. 793 00:33:33,950 --> 00:33:36,730 Harada istəyən did-- OK, 34 olacaq? 794 00:33:36,730 --> 00:33:37,605 OK, 34, qədər gəlib. 795 00:33:37,605 --> 00:33:39,280 796 00:33:39,280 --> 00:33:41,220 Bütün hüquqlar, bu olacaq orgasm dəyər. 797 00:33:41,220 --> 00:33:41,550 Sizin adınız nədir? 798 00:33:41,550 --> 00:33:42,040 >> Auditoriya: Peter. 799 00:33:42,040 --> 00:33:43,456 >> DAVID J. MALAN: Peter qədər gəlib. 800 00:33:43,456 --> 00:33:46,810 Bütün hüquqlar, belə ki, burada bir qovşaqlarının bütün dəstə. 801 00:33:46,810 --> 00:33:49,060 Sizlərin hər təmsil Bu düzbucaqlı biri. 802 00:33:49,060 --> 00:33:51,930 Və Gabe, az tək həyata insan, ilk təmsil edir. 803 00:33:51,930 --> 00:33:54,850 Belə ki, onun göstərici bir az kiçik hər kəs çox ekranda. 804 00:33:54,850 --> 00:33:58,120 Və bu halda, sizin hər sol əlləri aşağı qeyd ya gedir 805 00:33:58,120 --> 00:34:01,085 bununla belə, null təmsil yalnız bir göstərici olmaması, 806 00:34:01,085 --> 00:34:03,210 və ya bu işarə olacaq siz yanında bir node. 807 00:34:03,210 --> 00:34:05,440 >> Belə ki, indi siz bəzəmək əgər şəkil kimi özünüzü 808 00:34:05,440 --> 00:34:07,585 Burada, irəli getmək və point Gabe ilə, bir-birinə 809 00:34:07,585 --> 00:34:11,030 xüsusilə işarə edən sayı 9 siyahısını təmsil etmək. 810 00:34:11,030 --> 00:34:14,050 OK, və sayı 34, sol əl yalnız mərtəbəsində işarə etmək lazımdır. 811 00:34:14,050 --> 00:34:15,750 >> OK, belə ki, bu bağlı siyahı deyil. 812 00:34:15,750 --> 00:34:17,580 Belə ki, bu məsələdə ssenarisidir. 813 00:34:17,580 --> 00:34:20,210 Və həqiqətən, bu nümayəndəsi problemlərin sinif 814 00:34:20,210 --> 00:34:21,929 Siz kodu ilə həll etmək üçün cəhd edə bilər ki,. 815 00:34:21,929 --> 00:34:25,020 Siz nəticədə daxil etmək istəyirəm siyahısına yeni element. 816 00:34:25,020 --> 00:34:27,494 Bu halda, biz olacaq sayı 55 daxil edin. 817 00:34:27,494 --> 00:34:28,500 818 00:34:28,500 --> 00:34:30,860 Amma var olacaq müxtəlif hallarda hesab. 819 00:34:30,860 --> 00:34:34,409 Və həqiqətən, bu bir olacaq böyük şəkil burada takeaways deyil, 820 00:34:34,409 --> 00:34:35,659 müxtəlif hallarda nə. 821 00:34:35,659 --> 00:34:39,120 Şərtlər və ya müxtəlif hansılardır proqram ola bilər ki, filial? 822 00:34:39,120 --> 00:34:42,024 >> Yaxşı, sayı çalışdığınız biz 55 olmaq indi bilirik ki insert, 823 00:34:42,024 --> 00:34:44,650 lakin Bildiyiniz olmasaydı əvvəlcədən, I daresay 824 00:34:44,650 --> 00:34:47,840 ən azı üç düşür mümkün hallar. 825 00:34:47,840 --> 00:34:49,717 Bir yeni element ola bilər? 826 00:34:49,717 --> 00:34:51,050 Auditoriya: Və son və ya orta. 827 00:34:51,050 --> 00:34:54,150 DAVID J. MALAN: sonunda da orta, və ya başında. 828 00:34:54,150 --> 00:34:56,650 Mən ən azı var təsdiq üç problem həll etmək lazımdır. 829 00:34:56,650 --> 00:34:58,691 Bəlkə nə seçmək edək arguably sadə 830 00:34:58,691 --> 00:35:01,090 bir, burada yeni element başında məxsusdur. 831 00:35:01,090 --> 00:35:04,040 Mən olduqca kod gedirəm kimi mən yalnız yazdığı, axtarış. 832 00:35:04,040 --> 00:35:07,670 Mən, Ptr üçün gedirəm olan Mən barmaq ilə burada təmsil edəcəyik 833 00:35:07,670 --> 00:35:08,370 adi kimi. 834 00:35:08,370 --> 00:35:12,430 >> Və nə dəyəri xatırlayıram biz Ptr başlamaq idi? 835 00:35:12,430 --> 00:35:15,300 Belə ki, biz əvvəlcə null üçün başlatılmış. 836 00:35:15,300 --> 00:35:16,410 837 00:35:16,410 --> 00:35:19,770 Amma sonra biz biz bir dəfə nə etdi bizim axtarış funksiyası daxilində idi? 838 00:35:19,770 --> 00:35:20,940 839 00:35:20,940 --> 00:35:24,870 Biz, ilk bərabər müəyyən bunu demək deyil. 840 00:35:24,870 --> 00:35:25,890 841 00:35:25,890 --> 00:35:30,570 Mən ilk bərabər Ptr müəyyən varsa, nə Mənim əl həqiqətən işarə olmalıdır? 842 00:35:30,570 --> 00:35:31,070 Right. 843 00:35:31,070 --> 00:35:33,290 Gabe və gedir, əgər belə Burada bərabər dəyərlər olmaq, 844 00:35:33,290 --> 00:35:34,760 biz 9 nömrədə iki nöqtəyə lazımdır. 845 00:35:34,760 --> 00:35:36,420 >> Belə ki, bu, bizim hekayə başlanğıcı idi. 846 00:35:36,420 --> 00:35:38,700 İndi bu, yalnız sadə deyil baxmayaraq sintaksis yeni. 847 00:35:38,700 --> 00:35:40,580 Konseptual bu, yalnız xətti axtarış edir. 848 00:35:40,580 --> 00:35:42,750 9 bərabər 55 edir? 849 00:35:42,750 --> 00:35:45,559 Daha doğrusu, 9 az deyək. 850 00:35:45,559 --> 00:35:47,600 Mən çalışıram, çünki 55 qoymaq üçün harada şekillendirmek. 851 00:35:47,600 --> 00:35:51,270 9 az az 17, az 20-dən az, 22-dən az 29, 852 00:35:51,270 --> 00:35:52,510 az 34, no. 853 00:35:52,510 --> 00:35:55,080 Belə ki, indi biz halda etdiyiniz ən azı üç bir. 854 00:35:55,080 --> 00:35:59,910 >> Mən burada 55 əlavə etmək istəyirsinizsə, sizə nə kodu ehtiyac xətləri həyata almaq? 855 00:35:59,910 --> 00:36:01,890 Necə bu şəkil yoxdur insanlar dəyişdirmək lazımdır? 856 00:36:01,890 --> 00:36:03,181 Mən sol əli ilə nə etməliyəm? 857 00:36:03,181 --> 00:36:04,530 858 00:36:04,530 --> 00:36:07,360 Bu, ilkin null olmalıdır Mən siyahıda sonunda Ben çünki. 859 00:36:07,360 --> 00:36:09,318 Və nə etməlidir Burada Peter, bu idi? 860 00:36:09,318 --> 00:36:10,520 861 00:36:10,520 --> 00:36:12,430 O, açıq-aydın mənə qeyd edəcək. 862 00:36:12,430 --> 00:36:15,580 Mən ən azı iki xətləri var təsdiq Bu gündən etibarən örnek kod kodu 863 00:36:15,580 --> 00:36:18,570 bu həyata olacaq quyruq 55 əlavə ssenari. 864 00:36:18,570 --> 00:36:20,950 Mən kimsə hop ola bilər və yalnız 55 təmsil edir? 865 00:36:20,950 --> 00:36:22,200 Bütün hüquqlar, yeni 55. 866 00:36:22,200 --> 00:36:23,580 867 00:36:23,580 --> 00:36:27,054 >> Belə ki, indi nə növbəti əgər ssenari, birlikdə gəlir 868 00:36:27,054 --> 00:36:29,720 və biz də daxil etmək istəyirəm başlayan və ya bu siyahıdan rəhbəri? 869 00:36:29,720 --> 00:36:31,100 Və adı, nömrəsi 55 nə var? 870 00:36:31,100 --> 00:36:31,420 >> Auditoriya: Jack. 871 00:36:31,420 --> 00:36:32,295 >> DAVID J. MALAN: Jack? 872 00:36:32,295 --> 00:36:33,585 OK, siz cavab gözəl. 873 00:36:33,585 --> 00:36:34,210 Xaricdə xoş gəlmisiniz. 874 00:36:34,210 --> 00:36:36,640 Belə ki, indi biz gedirik demək, sayı 5 daxil edin. 875 00:36:36,640 --> 00:36:39,840 Burada ikinci halda üç, biz əvvəl gündəmə gəldi. 876 00:36:39,840 --> 00:36:43,050 Belə ki, 5 əvvəlində məxsusdur, biz ki, tapmaq necə edək. 877 00:36:43,050 --> 00:36:46,310 Mən Ptr başlamaq daha sayı 9 pointer. 878 00:36:46,310 --> 00:36:49,140 Mən 5-dən az 9, oh, həyata keçirilir. 879 00:36:49,140 --> 00:36:50,880 Belə ki, bizim üçün bu şəkil düzeltmek. 880 00:36:50,880 --> 00:36:54,820 Kimin əlləri, Gabe və ya David Agentliyi or-- sayı 9 adı nədir? 881 00:36:54,820 --> 00:36:55,740 >> Auditoriya: Jen. 882 00:36:55,740 --> 00:36:58,406 >> DAVID J. MALAN: Jen əlləri bizim əlimizdə hansı dəyişdirmək lazımdır? 883 00:36:58,406 --> 00:36:58,905 884 00:36:58,905 --> 00:37:00,970 OK, belə ki, Gabe indi nə işarə? 885 00:37:00,970 --> 00:37:01,640 Mənə. 886 00:37:01,640 --> 00:37:02,750 Mən yeni node edirəm. 887 00:37:02,750 --> 00:37:04,870 Mən hərəkət yalnız cür lazımdır Burada əyani görmək üçün. 888 00:37:04,870 --> 00:37:06,435 Və eyni zamanda nə mən ki, qeyd edirsiniz? 889 00:37:06,435 --> 00:37:07,910 890 00:37:07,910 --> 00:37:09,020 Hələ də mən işarə edirəm. 891 00:37:09,020 --> 00:37:10,000 Belə ki, var. 892 00:37:10,000 --> 00:37:13,717 Kodu düzeltmelerini Belə ki, yalnız həqiqətən bir xətt Bu məsələ, görünür. 893 00:37:13,717 --> 00:37:14,800 Bütün hüquqlar, belə ki, yaxşı. 894 00:37:14,800 --> 00:37:17,580 Və kimsə 5 üçün tutucu ola bilər? 895 00:37:17,580 --> 00:37:18,080 Qədər Hadi. 896 00:37:18,080 --> 00:37:20,270 897 00:37:20,270 --> 00:37:21,320 Biz sizə növbəti dəfə almaq lazımdır. 898 00:37:21,320 --> 00:37:24,280 >> Bütün hüquqlar, belə now-- və Bir kənara, adları kimi 899 00:37:24,280 --> 00:37:28,510 Mən sağ açıq qeyd edən deyiləm indi proqnozu pointer, sələfi pointer 900 00:37:28,510 --> 00:37:31,260 və yeni pointer ki, var yalnız adları verilir 901 00:37:31,260 --> 00:37:35,280 göstəricilər üçün nümunə kodu və ya cür ətrafında işarə ki, mənim əlləri. 902 00:37:35,280 --> 00:37:36,060 Sizin adınız nədir? 903 00:37:36,060 --> 00:37:36,700 >> Auditoriya: Christine. 904 00:37:36,700 --> 00:37:37,100 >> DAVID J. MALAN: Christine. 905 00:37:37,100 --> 00:37:38,090 Xaricdə xoş gəlmisiniz. 906 00:37:38,090 --> 00:37:42,180 Bütün hüquqlar, belə ki, indi hesab edək bir az daha annoying ssenari, 907 00:37:42,180 --> 00:37:46,350 Mən daxil etmək istəyirəm vasitəsi Bu daxil 26 kimi bir şey. 908 00:37:46,350 --> 00:37:47,090 20? 909 00:37:47,090 --> 00:37:47,590 Nə? 910 00:37:47,590 --> 00:37:50,510 Bizim bu qələm yaxşı şey are--. 911 00:37:50,510 --> 00:37:51,955 Bütün sağ, 20. 912 00:37:51,955 --> 00:37:53,640 913 00:37:53,640 --> 00:37:57,570 Kimsə bir parça almaq bilər kağız yalnız bütün sağ iki halda da, hazır. 914 00:37:57,570 --> 00:37:58,370 Oh, maraqlı. 915 00:37:58,370 --> 00:37:59,760 916 00:37:59,760 --> 00:38:02,390 Yaxşı bu bir nümunə mühazirə səhv. 917 00:38:02,390 --> 00:38:03,894 OK, belə ki, adı daha nə var? 918 00:38:03,894 --> 00:38:04,560 Auditoriya: Julia. 919 00:38:04,560 --> 00:38:07,559 DAVID J. MALAN: Julia, siz pop bilər həyata və iddia heç vaxt var idi? 920 00:38:07,559 --> 00:38:09,040 OK, bu baş heç vaxt. 921 00:38:09,040 --> 00:38:09,680 Təşəkkür edirəm. 922 00:38:09,680 --> 00:38:12,180 Beləliklə, biz daxil istəyirəm Güman Bu bağlı siyahı Julia. 923 00:38:12,180 --> 00:38:13,780 O, sayı 20-dir. 924 00:38:13,780 --> 00:38:15,530 Və əlbəttə o var Bu da aid olacaq 925 00:38:15,530 --> 00:38:17,521 begin-- hələ bir şey qeyd etmir. 926 00:38:17,521 --> 00:38:20,020 Belə ki, əl cür ola bilər aşağı null ya bəzi zibil dəyəri. 927 00:38:20,020 --> 00:38:21,210 Nin tez hekayə izah edək. 928 00:38:21,210 --> 00:38:22,980 Mən sayı 5 bu dəfə işarə edirəm. 929 00:38:22,980 --> 00:38:23,880 Sonra 9 yoxlayın. 930 00:38:23,880 --> 00:38:25,130 Sonra 17 yoxlayın. 931 00:38:25,130 --> 00:38:26,247 Sonra 22 yoxlayın. 932 00:38:26,247 --> 00:38:27,650 933 00:38:27,650 --> 00:38:32,485 Mən, ooh, Julia həyata 22 əvvəl getmək lazımdır. 934 00:38:32,485 --> 00:38:33,580 935 00:38:33,580 --> 00:38:34,660 Belə ki, nə baş verməlidir? 936 00:38:34,660 --> 00:38:35,786 937 00:38:35,786 --> 00:38:36,910 Kimin əlləri dəyişdirmək lazımdır? 938 00:38:36,910 --> 00:38:38,360 Julia, mina, or-- adı yenə nə var? 939 00:38:38,360 --> 00:38:39,230 >> Auditoriya: Christian. 940 00:38:39,230 --> 00:38:40,060 >> DAVID J. MALAN: Christian ya? 941 00:38:40,060 --> 00:38:40,560 >> Auditoriya: Andy. 942 00:38:40,560 --> 00:38:40,905 >> DAVID J. MALAN: Andy. 943 00:38:40,905 --> 00:38:41,654 Christian ya Andy? 944 00:38:41,654 --> 00:38:44,280 945 00:38:44,280 --> 00:38:45,690 Andy da qeyd etmək lazımdır? 946 00:38:45,690 --> 00:38:46,780 947 00:38:46,780 --> 00:38:47,341 Julia. 948 00:38:47,341 --> 00:38:47,840 Bütün hüquqlar. 949 00:38:47,840 --> 00:38:48,960 Belə ki, Andy, siz Julia da qeyd etmək istəyirsiniz? 950 00:38:48,960 --> 00:38:50,120 Amma bir dəqiqə gözləyin. 951 00:38:50,120 --> 00:38:53,260 Bu günə qədər hekayə, Mən bir sort deyiləm 952 00:38:53,260 --> 00:38:56,800 mənada məsul ki, pointer olan şey 953 00:38:56,800 --> 00:38:57,850 siyahısına vasitəsilə hərəkət. 954 00:38:57,850 --> 00:39:00,800 Biz Andy üçün bir ad var, lakin bilər Andy adlı dəyişən var. 955 00:39:00,800 --> 00:39:04,320 Biz yalnız digər dəyişən ilk Gabe təmsil edən. 956 00:39:04,320 --> 00:39:07,690 >> Belə ki, bu niyə beləliklə əslində qədər biz bu lazım deyil etdik. 957 00:39:07,690 --> 00:39:10,846 Amma indi ekranda var pred göstərici daha qeyd. 958 00:39:10,846 --> 00:39:11,970 Mənə daha aydın olsun. 959 00:39:11,970 --> 00:39:14,820 Bu göstərici, mən daha yaxşı idi bir az daha ağıllı almaq 960 00:39:14,820 --> 00:39:15,950 Mənim iteration haqqında. 961 00:39:15,950 --> 00:39:19,580 Siz mənim burada keçir ağla deyil yenə burada işarə, burada işarə. 962 00:39:19,580 --> 00:39:22,500 Amma mənə bir pred göstərici edək, sələfi göstərici ki, var 963 00:39:22,500 --> 00:39:24,740 cür işarə element Mən yalnız idi. 964 00:39:24,740 --> 00:39:27,330 Mən burada getmək zaman, indi Mənim sol yenilikləri. 965 00:39:27,330 --> 00:39:29,370 Mən burada sol yenilikləri getmək zaman. 966 00:39:29,370 --> 00:39:33,090 Və indi mən bir pointer yalnız var Julia sonra gedir ki, element, 967 00:39:33,090 --> 00:39:36,300 Mən hələ bir göstərici var Andy əvvəl element. 968 00:39:36,300 --> 00:39:39,430 Belə ki, mahiyyətcə, imkanı var Haritaları, Siz, 969 00:39:39,430 --> 00:39:41,500 zəruri göstəricilər bütün. 970 00:39:41,500 --> 00:39:43,710 >> Mən işarə edirəm əgər belə Andy və mən də işarə edirəm 971 00:39:43,710 --> 00:39:47,105 kimin əlində Xaçpərəst, at indi başqa bir yerdə qeyd edilməlidir? 972 00:39:47,105 --> 00:39:48,770 973 00:39:48,770 --> 00:39:51,960 Andy Belə ki, indi Julia da qeyd edə bilərsiniz. 974 00:39:51,960 --> 00:39:54,460 Julia indi Xaçpərəst qeyd edə bilərsiniz. 975 00:39:54,460 --> 00:39:56,950 O surəti bilər, çünki mənim sağ əl pointer. 976 00:39:56,950 --> 00:40:00,044 Ki, səmərəli sizde geri burada bu yerə. 977 00:40:00,044 --> 00:40:02,460 Belə ki, qısa, hətta bu olsa əbədi cür bizi görür 978 00:40:02,460 --> 00:40:04,510 həqiqətən güncellemek üçün bir siyahısını əlaqəli həyata 979 00:40:04,510 --> 00:40:06,580 Bu əməliyyatlar nisbətən sadədir. 980 00:40:06,580 --> 00:40:10,030 Bu, iki, bir, üç nəticədə kodu xətləri. 981 00:40:10,030 --> 00:40:12,780 Lakin həmin sarılı ehtimalla kodu xətləri 982 00:40:12,780 --> 00:40:16,350 məntiq bir az səmərəli sualına Biz burada soruşur? 983 00:40:16,350 --> 00:40:18,970 Biz başında, orta və ya son? 984 00:40:18,970 --> 00:40:21,890 >> İndi, əlbəttə, bəzi digər var biz həyata bilər əməliyyatları. 985 00:40:21,890 --> 00:40:24,880 Və burada bu şəkillər yalnız təsvir nə biz yalnız insanlar idi. 986 00:40:24,880 --> 00:40:26,080 Nə aradan qaldırılması haqqında? 987 00:40:26,080 --> 00:40:30,650 Mən istəyirəm əgər, məsələn, sayı aradan qaldırılması 34 və ya 55, 988 00:40:30,650 --> 00:40:34,680 Mən kodu eyni cür ola bilər amma bir və ya iki addımlar lazımdır gedirəm. 989 00:40:34,680 --> 00:40:36,110 Yeni nə var, çünki? 990 00:40:36,110 --> 00:40:40,460 Mən sonunda kimsə aradan qaldırılması, sayı kimi 55 sonra 34, 991 00:40:40,460 --> 00:40:42,995 nə də mən bunu kimi dəyişdirmək üçün var? 992 00:40:42,995 --> 00:40:44,870 Mən evict-- deyil var adı yenə nə var? 993 00:40:44,870 --> 00:40:45,380 >> Auditoriya: Jack. 994 00:40:45,380 --> 00:40:46,255 >> DAVID J. MALAN: Jack. 995 00:40:46,255 --> 00:40:49,770 I, evict-- pulsuz Jack yalnız var belə sözün ən azı pulsuz Jack zəng və ya 996 00:40:49,770 --> 00:40:53,530 orada pointer çox, lakin indi Peterlə nə ilə dəyişmək lazımdır? 997 00:40:53,530 --> 00:40:55,510 Onun əl daha aşağı işarə başlayın. 998 00:40:55,510 --> 00:40:59,300 Tezliklə mən pulsuz zəng, çünki Jack, Peter hələ Jack işarə əgər 999 00:40:59,300 --> 00:41:02,530 Mən də traversing saxlamaq siyahısı və giriş bu göstərici, 1000 00:41:02,530 --> 00:41:05,650 ki, zaman bizim köhnə dost seqmentasiya var həqiqətən salmaq bilər günah. 1001 00:41:05,650 --> 00:41:07,860 Biz təqdim etdik, çünki Jack yaddaş geri. 1002 00:41:07,860 --> 00:41:10,760 >> Siz orada qalmaq bilər yöndəmsiz yalnız bir an üçün. 1003 00:41:10,760 --> 00:41:13,410 Biz yalnız bir neçə var final əməliyyatları hesab. 1004 00:41:13,410 --> 00:41:15,600 Siyahısına rəhbəri aradan qaldırılması, Bu beginning-- və bu, bir və ya 1005 00:41:15,600 --> 00:41:16,349 bir az annoying. 1006 00:41:16,349 --> 00:41:19,640 Biz bilirik ki, çünki Gabe cür xüsusi bu proqram var. 1007 00:41:19,640 --> 00:41:21,440 Çünki həqiqətən, o, öz göstərici var. 1008 00:41:21,440 --> 00:41:24,860 O, yalnız qeyd olan deyil Burada demək olar ki, hər kəs kimi. 1009 00:41:24,860 --> 00:41:28,112 >> Belə ki, siyahıda başçısı zaman , kimin əlində indi dəyişdirmək lazımdır qaldırıldı? 1010 00:41:28,112 --> 00:41:29,070 Adı yenə nədir? 1011 00:41:29,070 --> 00:41:29,450 >> Auditoriya: Christine. 1012 00:41:29,450 --> 00:41:31,408 >> DAVID J. MALAN: Mən dəhşətli deyiləm adlar da yəqin. 1013 00:41:31,408 --> 00:41:34,011 Belə ki, Christine və Gabe, kimin əlində dəyişdirmək lazımdır 1014 00:41:34,011 --> 00:41:36,510 biz Christine aradan qaldırılması üçün cəhd zaman, şəkil sayı 5? 1015 00:41:36,510 --> 00:41:37,550 1016 00:41:37,550 --> 00:41:38,820 OK, belə ki, Gabe edək. 1017 00:41:38,820 --> 00:41:40,950 Gabe qeyd edəcək, ehtimalla, sayı 9. 1018 00:41:40,950 --> 00:41:42,230 1019 00:41:42,230 --> 00:41:44,642 Lakin sonrakı nə lazımdır? 1020 00:41:44,642 --> 00:41:46,600 Auditoriya: Christine olmalıdır [Işitilemez] null ola bilər. 1021 00:41:46,600 --> 00:41:50,244 DAVID J. MALAN: OK, biz yəqin ki, olmalıdır make-- Mən haradasa "null" eşitdim. 1022 00:41:50,244 --> 00:41:51,410 Auditoriya: Null və onun pulsuz. 1023 00:41:51,410 --> 00:41:51,855 DAVID J. MALAN: nə null? 1024 00:41:51,855 --> 00:41:53,074 Auditoriya: Null və onun pulsuz. 1025 00:41:53,074 --> 00:41:54,490 DAVID J. MALAN: Null və onun pulsuz. 1026 00:41:54,490 --> 00:41:55,422 Belə ki, bu çox asandır. 1027 00:41:55,422 --> 00:41:58,380 Və indi sort edirik ki mükəmməl mənsub yoxdur duran. 1028 00:41:58,380 --> 00:42:00,430 Siz oldum, çünki siyahıdan decoupled. 1029 00:42:00,430 --> 00:42:02,820 Siz səmərəli oldum siyahıdan yetim. 1030 00:42:02,820 --> 00:42:07,770 Və belə ki, biz indi daha yaxşı pulsuz zəng etdi Christine yaddaş geri vermək. 1031 00:42:07,770 --> 00:42:10,240 Əks halda biz hər dəfə Siyahıdan bir node silmək 1032 00:42:10,240 --> 00:42:14,230 biz siyahısına edilməsi ola bilər qısa, lakin həqiqətən azalmır 1033 00:42:14,230 --> 00:42:15,096 yaddaş ölçüsü. 1034 00:42:15,096 --> 00:42:17,720 Və belə ki, biz əlavə saxlamaq əgər əlavə, siyahıda şeyi əlavə, 1035 00:42:17,720 --> 00:42:19,280 mənim kompüter yavaş əldə edə bilər və yavaş və yavaş, 1036 00:42:19,280 --> 00:42:21,740 Mən həyata çalışan edirəm, çünki yaddaş, mən, həqiqətən deyiləm, hətta 1037 00:42:21,740 --> 00:42:25,580 Christine bayt istifadə yaddaş artıq. 1038 00:42:25,580 --> 00:42:28,500 >> Belə ki, sonunda digər var kursu aradan qaldırılması ssenariləri, 1039 00:42:28,500 --> 00:42:30,640 orta, aradan qaldırılması sonunda, kimi gördük. 1040 00:42:30,640 --> 00:42:32,348 Amma daha maraqlı problem indi 1041 00:42:32,348 --> 00:42:34,770 gedir dəqiq hesab olmaq çalışan zaman nə. 1042 00:42:34,770 --> 00:42:36,640 Belə ki, yalnız saxlamaq bilərsiniz kağız parçaları, Gabe, əgər, 1043 00:42:36,640 --> 00:42:38,640 verilməsi ağla deyil hər kəs bir stress topu. 1044 00:42:38,640 --> 00:42:42,100 Bizim bağlı siyahı çox təşəkkür edirəm Burada könüllü, siz bilər. 1045 00:42:42,100 --> 00:42:45,320 >> [Alqış] 1046 00:42:45,320 --> 00:42:46,700 >> DAVID J. MALAN: Bütün hüququ. 1047 00:42:46,700 --> 00:42:51,110 Analitik belə bir neçə sonra sual, Mən əgər. 1048 00:42:51,110 --> 00:42:59,670 Biz əvvəl bu notation gördüm, big O və omega, yuxarı həddi 1049 00:42:59,670 --> 00:43:02,520 və aşağı həddi bir alqoritm çalışan zaman. 1050 00:43:02,520 --> 00:43:04,950 Belə ki, yalnız hesab edək suallar bir neçə. 1051 00:43:04,950 --> 00:43:07,090 >> One, və biz bunu etdi əvvəl, çalışan nə 1052 00:43:07,090 --> 00:43:10,647 bir üçün axtarış vaxtı böyük O baxımından siyahısı? 1053 00:43:10,647 --> 00:43:13,480 Nə çalışan bir üst bound var bir bağlı siyahı axtarış vaxt 1054 00:43:13,480 --> 00:43:16,340 burada könüllülər tərəfindən həyata kimi? 1055 00:43:16,340 --> 00:43:17,820 Bu n böyük O, xətti var. 1056 00:43:17,820 --> 00:43:20,630 , Ən pis halda, çünki Bu element, 55 kimi, 1057 00:43:20,630 --> 00:43:23,830 Biz burada ola bilər axtarır bilər Jack, sonunda bütün yolu idi. 1058 00:43:23,830 --> 00:43:28,250 Və təəssüf ki, bir sıra fərqli biz bu dəfə xülya almaq bilməz. 1059 00:43:28,250 --> 00:43:31,820 Ekibimizden bütün baxmayaraq Kiçik elementləri, 5 sıralanır, 1060 00:43:31,820 --> 00:43:35,900 böyük element qədər bütün yol, 55, adətən yaxşı bir şey. 1061 00:43:35,900 --> 00:43:38,815 Amma ki, ehtimal nə artıq bizə imkan? 1062 00:43:38,815 --> 00:43:39,775 1063 00:43:39,775 --> 00:43:40,650 Auditoriya: [işitilemez] 1064 00:43:40,650 --> 00:43:40,920 DAVID J. MALAN: Yenə deyirəm? 1065 00:43:40,920 --> 00:43:41,800 Auditoriya: Random access. 1066 00:43:41,800 --> 00:43:43,049 DAVID J. MALAN: Random access. 1067 00:43:43,049 --> 00:43:46,330 Və öz növbəsində ki, heç biz deməkdir artıq zəif adet sıfır, intuisiya istifadə 1068 00:43:46,330 --> 00:43:49,365 ikili istifadə və aşkarlıq axtarış və bölmək və fəth. 1069 00:43:49,365 --> 00:43:51,240 Çünki baxmayaraq biz insanlar açıq-aydın ola bilər 1070 00:43:51,240 --> 00:43:54,610 Andy və ya xristian idi ki təxminən siyahısı ortasında, 1071 00:43:54,610 --> 00:43:57,670 biz yalnız kimi bilirik ki, siyahısını skimming kompüter 1072 00:43:57,670 --> 00:43:59,029 əvvəldən. 1073 00:43:59,029 --> 00:44:00,570 Belə ki, təsadüfi giriş imtina etdik. 1074 00:44:00,570 --> 00:44:04,380 >> N belə böyük O indi yuxarı axtarış vaxt bound. 1075 00:44:04,380 --> 00:44:07,920 Nə bizim axtarış omega haqqında? 1076 00:44:07,920 --> 00:44:11,535 Aşağı bound axtarış Neler Bu siyahıda bir sıra üçün? 1077 00:44:11,535 --> 00:44:12,410 Auditoriya: [işitilemez] 1078 00:44:12,410 --> 00:44:13,040 DAVID J. MALAN: Yenə deyirəm? 1079 00:44:13,040 --> 00:44:13,420 Auditoriya: One. 1080 00:44:13,420 --> 00:44:13,800 DAVID J. MALAN: One. 1081 00:44:13,800 --> 00:44:14,760 Belə ki, daimi vaxt. 1082 00:44:14,760 --> 00:44:17,020 Ən yaxşı halda, Christine edir həqiqətən siyahısının başında. 1083 00:44:17,020 --> 00:44:19,020 Və biz aradığınız sayı 5, belə ki, biz onu tapdım. 1084 00:44:19,020 --> 00:44:19,787 Belə ki, heç bir böyük. 1085 00:44:19,787 --> 00:44:22,370 Lakin o olmaq var bu halda siyahı başlayan. 1086 00:44:22,370 --> 00:44:23,745 Kimi bir şey haqqında nə sil? 1087 00:44:23,745 --> 00:44:24,717 1088 00:44:24,717 --> 00:44:26,300 Bir element silmək üçün nə istəyirsinizsə? 1089 00:44:26,300 --> 00:44:29,200 Nə üst bound və aşağı bound var bağlı bir şey silinməsi haqqında 1090 00:44:29,200 --> 00:44:29,699 siyahısı? 1091 00:44:29,699 --> 00:44:35,195 1092 00:44:35,195 --> 00:44:36,070 Auditoriya: [işitilemez] 1093 00:44:36,070 --> 00:44:36,420 DAVID J. MALAN: Yenə deyirəm? 1094 00:44:36,420 --> 00:44:37,067 Auditoriya: n. 1095 00:44:37,067 --> 00:44:38,900 DAVID J. MALAN: n bound həqiqətən üst. 1096 00:44:38,900 --> 00:44:41,700 Ən pis halda, biz cəhd çünki biz yalnız kimi, Jack silmək üçün. 1097 00:44:41,700 --> 00:44:43,050 O, sonunda bütün yolu var. 1098 00:44:43,050 --> 00:44:45,419 Əbədi bizə edir, və ya n addımlar onu tapmaq üçün. 1099 00:44:45,419 --> 00:44:46,460 Belə ki, bir üst bound var. 1100 00:44:46,460 --> 00:44:47,430 Əmin, xətti var. 1101 00:44:47,430 --> 00:44:50,970 Və ən yaxşı halda zaman çalışan, və ya ən yaxşı halda aşağı həddi 1102 00:44:50,970 --> 00:44:51,975 daimi vaxt olacaq. 1103 00:44:51,975 --> 00:44:54,600 Bəlkə biz silmək üçün cəhd çünki Christine, və biz yalnız uğurlu almaq 1104 00:44:54,600 --> 00:44:55,558 o başında var. 1105 00:44:55,558 --> 00:44:56,350 İndi bir dəqiqə gözləyin. 1106 00:44:56,350 --> 00:44:59,370 Gabe, başında idi və biz də Gabe yeniləmə idi. 1107 00:44:59,370 --> 00:45:01,150 Belə ki, yalnız bir addım idi. 1108 00:45:01,150 --> 00:45:04,210 Belə ki, həqiqətən sabit deyil zaman, ən yaxşı halda, 1109 00:45:04,210 --> 00:45:06,345 kiçik element aradan qaldırılması üçün necə? 1110 00:45:06,345 --> 00:45:07,360 1111 00:45:07,360 --> 00:45:10,960 Iki ola bilər, baxmayaraq ki,, deyil kodu üç, və ya hətta 100 xətləri, 1112 00:45:10,960 --> 00:45:14,000 Bu eyni sıra əgər bəzi loop xətləri, 1113 00:45:14,000 --> 00:45:16,577 və ölçüsü müstəqil siyahısı, tamamilə. 1114 00:45:16,577 --> 00:45:18,660 Element at silmə Bu siyahının başında, 1115 00:45:18,660 --> 00:45:21,940 biz ilə məşğul olsa belə Gabe, hələ daimi dəfə. 1116 00:45:21,940 --> 00:45:24,220 >> Belə ki, bu kimi görünür geri kütləvi addım. 1117 00:45:24,220 --> 00:45:27,000 Və hansı bir tullantı , əgər həftə bir və həftə 1118 00:45:27,000 --> 00:45:30,250 sıfır biz yalnız idi pseudocode kodu ancaq faktiki kodu 1119 00:45:30,250 --> 00:45:35,780 log ki, bir şey həyata baza n, və ya giriş, daha doğrusu, n, baza 2, 1120 00:45:35,780 --> 00:45:37,150 onun çalışan zaman baxımından. 1121 00:45:37,150 --> 00:45:40,710 Belə ki, heck, biz başlamaq istəyirəm ki, niyə bir bağlı siyahısı kimi bir şey istifadə? 1122 00:45:40,710 --> 00:45:41,517 Bəli. 1123 00:45:41,517 --> 00:45:44,022 >> Auditoriya: Belə ki, əlavə edə bilərsiniz array elementləri. 1124 00:45:44,022 --> 00:45:46,230 DAVID J. MALAN: Belə ki, siz array elementləri əlavə edin. 1125 00:45:46,230 --> 00:45:47,550 Və bu çox tematik edir. 1126 00:45:47,550 --> 00:45:49,740 Və biz görməyə davam edəcəyik bu, ticarət-off çox 1127 00:45:49,740 --> 00:45:51,573 kimi biz gördük bir birləşmə növ ilə ticarət-off. 1128 00:45:51,573 --> 00:45:54,606 Biz, həqiqətən, sürətləndirmək bilər daha doğrusu, axtarış və ya çeşidlənməsi, 1129 00:45:54,606 --> 00:45:57,480 biz bir az daha çox yer sərf əgər bir yaddaş əlavə yığın var 1130 00:45:57,480 --> 00:45:58,760 və ya birləşmə sort üçün bir sıra. 1131 00:45:58,760 --> 00:46:01,270 Amma biz daha çox sərf space, lakin biz zaman edin. 1132 00:46:01,270 --> 00:46:04,820 Bu halda, biz istəyirik vaxt imtina lakin biz istəyirik 1133 00:46:04,820 --> 00:46:08,170 rahatlıq əldə, dinamizm Siz, 1134 00:46:08,170 --> 00:46:10,280 olan arguably müsbət xüsusiyyətidir. 1135 00:46:10,280 --> 00:46:11,520 >> Biz də yer sərf edirik. 1136 00:46:11,520 --> 00:46:13,710 Hansı mənada bir bağlıdır daha bahalı siyahısı 1137 00:46:13,710 --> 00:46:15,700 bir sıra daha məkan baxımından? 1138 00:46:15,700 --> 00:46:18,379 1139 00:46:18,379 --> 00:46:19,920 Harada əlavə yer gələn? 1140 00:46:19,920 --> 00:46:20,460 Bəli? 1141 00:46:20,460 --> 00:46:21,800 >> Auditoriya: [işitilemez] pointer. 1142 00:46:21,800 --> 00:46:23,310 >> DAVID J. MALAN: Bəli, biz də göstərici var. 1143 00:46:23,310 --> 00:46:25,560 Belə ki, bu minorly annoying edir ki artıq am 1144 00:46:25,560 --> 00:46:27,780 Mən yalnız bir int saxlanılması bir int təmsil etmək. 1145 00:46:27,780 --> 00:46:30,990 Mən bir int və saxlanılması alıram də 32 bit olan göstərici. 1146 00:46:30,990 --> 00:46:33,470 Mən sözün misli edirəm kosmik məbləği cəlb. 1147 00:46:33,470 --> 00:46:36,040 Belə ki, ticarət-off var, lakin ki, int halda var. 1148 00:46:36,040 --> 00:46:39,580 Siz int saxlanılması deyilik Tutaq ki, lakin bu düzbucaqlı hər güman 1149 00:46:39,580 --> 00:46:43,290 və ya bu insanlar hər təmsil olunub bir söz, İngilis söz 1150 00:46:43,290 --> 00:46:46,430 beş simvol, 10 ola bilər simvol, bəlkə də daha çox. 1151 00:46:46,430 --> 00:46:49,940 Sonra 32 daha bit əlavə bir böyük az ola bilər. 1152 00:46:49,940 --> 00:46:52,160 >> Nə tələbələrin hər əgər nümayişdə 1153 00:46:52,160 --> 00:46:55,107 idi sanki tələbə structs ki bəlkə adları və ev var 1154 00:46:55,107 --> 00:46:57,065 telefon nömrələri və Twitter emal və kimi. 1155 00:46:57,065 --> 00:46:59,564 Belə ki, bütün sahələrində biz başladıq digər gün söhbət, 1156 00:46:59,564 --> 00:47:02,410 kimi bir böyük daha az bizim qovşaqlarının daha maraqlı almaq 1157 00:47:02,410 --> 00:47:05,972 və böyük, eh, əlavə sərf etmək pointer yalnız onlara birlikdə link. 1158 00:47:05,972 --> 00:47:07,180 Amma həqiqətən, ticarət-off var. 1159 00:47:07,180 --> 00:47:09,560 And olsun ki, kodu daha mürəkkəb, kimi lazımdır 1160 00:47:09,560 --> 00:47:11,770 vasitəsilə skimming baxın xüsusi nümunəsidir. 1161 00:47:11,770 --> 00:47:14,302 Amma nə varmış burada bəzi müqəddəs grail. 1162 00:47:14,302 --> 00:47:17,010 Biz bir addım, yoxsa nə geri lakin kütləvi addım 1163 00:47:17,010 --> 00:47:19,180 və məlumatların həyata strukturu vasitəsilə biz 1164 00:47:19,180 --> 00:47:22,870 Jack və ya kimi elementləri tapa bilərsiniz Christine və ya hər hansı digər elementləri 1165 00:47:22,870 --> 00:47:25,870 doğru daimi vaxt bu serialın? 1166 00:47:25,870 --> 00:47:26,920 Axtar daimi deyil. 1167 00:47:26,920 --> 00:47:28,320 Sil sabit deyil. 1168 00:47:28,320 --> 00:47:29,570 Daxil daimi deyil. 1169 00:47:29,570 --> 00:47:32,260 Bütün bu əməliyyatların daimi var. 1170 00:47:32,260 --> 00:47:33,750 Yəni bizim müqəddəs grail olardı. 1171 00:47:33,750 --> 00:47:36,690 Ki, burada biz növbəti dəfə aparacaqlar. 1172 00:47:36,690 --> 00:47:38,600 Sonra baxın. 1173 00:47:38,600 --> 00:47:39,371