1 00:00:00,000 --> 00:00:08,250 2 00:00:08,250 --> 00:00:12,680 >> JASON Hirschhorn: hər kəs xoş gəlmisiniz Bölmə Yeddi. 3 00:00:12,680 --> 00:00:15,040 Biz əlbəttə həftə yeddi var. 4 00:00:15,040 --> 00:00:18,440 Bu qarşıdakı axşamı Halloween mən am 5 00:00:18,440 --> 00:00:21,420 bir balqabaq kimi Giydirdiğim. 6 00:00:21,420 --> 00:00:23,460 Mən artıq əyilmək və qoymaq bilmədi Mən niyə mənim ayaqqabı, belə ki, 7 00:00:23,460 --> 00:00:25,660 yalnız corab geymək. 8 00:00:25,660 --> 00:00:29,220 Mən də altında bir şey qalıcı deyiləm bu bu, mən onu edə bilməz 9 00:00:29,220 --> 00:00:29,950 sizə yayındırır. 10 00:00:29,950 --> 00:00:31,860 Mən ki, əvvəlcədən üzr istəyirik. 11 00:00:31,860 --> 00:00:33,170 Siz təsəvvür etmək lazım deyil nə olacaq. 12 00:00:33,170 --> 00:00:34,240 Mən boksçular qalıcı edirəm. 13 00:00:34,240 --> 00:00:36,170 Belə ki, bütün yaxşı. 14 00:00:36,170 --> 00:00:41,120 >> Mən deyiləm nə haqqında bir uzun hekayə var bir balqabaq kimi geyimli, lakin mən gedirəm 15 00:00:41,120 --> 00:00:45,110 sonra bu bölməsində saxlaya Mən başlamaq istəyirəm, çünki. 16 00:00:45,110 --> 00:00:47,720 Biz maraqlı çox şey var Bu həftə üzərində getmək üçün. 17 00:00:47,720 --> 00:00:51,810 Onların əksəriyyəti bu birbaşa aid həftə problem set, imla. 18 00:00:51,810 --> 00:00:54,680 Biz bağlı üzərində gedən olacaq siyahıları və hash masalar 19 00:00:54,680 --> 00:00:57,160 bütün bölüm üçün. 20 00:00:57,160 --> 00:01:02,490 Mən hər həftə bir siyahısını bu siyahı qoymaq Siz ilə sizə yardım etmək üçün resurslar 21 00:01:02,490 --> 00:01:04,120 bu kursu üzrə material. 22 00:01:04,120 --> 00:01:07,600 Bir zərər və ya əgər bəzi axtarır Daha çox məlumat, biri oldu 23 00:01:07,600 --> 00:01:09,930 bu resurslar. 24 00:01:09,930 --> 00:01:14,530 >> Yenə pset6 imla edir, bu həftəki pset. 25 00:01:14,530 --> 00:01:17,690 Və bu da həvəsləndirir və mən bəzi digər istifadə etmək, təşviq 26 00:01:17,690 --> 00:01:20,320 ehtiyatları xüsusilə bu pset üçün. 27 00:01:20,320 --> 00:01:23,390 Xüsusilə, üç etdik ekranda listelenen - 28 00:01:23,390 --> 00:01:27,160 biz ilə tanış olmuşdur etdiyiniz gdb, və artıq bir müddət üçün istifadə edir 29 00:01:27,160 --> 00:01:29,270 bu həftə çox faydalı olacaq. 30 00:01:29,270 --> 00:01:30,190 Mən burada qablaşdırılmış. 31 00:01:30,190 --> 00:01:32,910 Amma zaman C çalışırıq, həmişə gdb üçün istifadə edilməlidir 32 00:01:32,910 --> 00:01:34,430 proqramları debug. 33 00:01:34,430 --> 00:01:36,660 Bu həftə də valgrind. 34 00:01:36,660 --> 00:01:38,535 Heç valgrind nə bilir? 35 00:01:38,535 --> 00:01:42,184 36 00:01:42,184 --> 00:01:43,890 >> Auditoriya: Bu yaddaş sızıntıları üçün yoxlayır? 37 00:01:43,890 --> 00:01:45,950 >> JASON Hirschhorn: Valgrind yaddaş sızıntıları üçün yoxlayır. 38 00:01:45,950 --> 00:01:49,970 Belə ki, əgər siz malloc bir şey sizin proqram, yaddaş üçün xahiş edirik. 39 00:01:49,970 --> 00:01:52,920 Proqram sonunda, siz var Siz hər şeyi pulsuz yazmaq 40 00:01:52,920 --> 00:01:54,800 geri yaddaş vermək malloced. 41 00:01:54,800 --> 00:01:58,420 Əgər sonunda pulsuz yazmaq və yoxsa Proqram bir nəticəyə gəlir, 42 00:01:58,420 --> 00:02:00,000 hər şey avtomatik olacaq azad etmək lazımdır. 43 00:02:00,000 --> 00:02:02,340 Və kiçik proqramlar üçün, bu ki, böyük bir müqavilə. 44 00:02:02,340 --> 00:02:05,250 Amma uzun çalışan yazılı edirsinizsə çıxmaq deyil ki, proqramı, 45 00:02:05,250 --> 00:02:09,180 mütləq, dəqiqə və ya a bir neçə saniyə neçə, sonra yaddaş sızması 46 00:02:09,180 --> 00:02:10,710 böyük bir şey ola bilər. 47 00:02:10,710 --> 00:02:14,940 >> Belə ki pset6 üçün gözləntimiz odur Siz sıfır yaddaş sızıntıları olacaq 48 00:02:14,940 --> 00:02:15,910 Proqram. 49 00:02:15,910 --> 00:02:18,690 Yaddaş sızması kontrol, run valgrind və bəzi gözəl verəcəyik 50 00:02:18,690 --> 00:02:21,190 çıxış siz olub bildirdiğiniz və ya hər şey pulsuz idi. 51 00:02:21,190 --> 00:02:23,940 Biz sonra ilə təcrübə lazımdır Bu gün, inşallah. 52 00:02:23,940 --> 00:02:25,790 >> Nəhayət, fərq əmr. 53 00:02:25,790 --> 00:02:28,900 Siz ona oxşar bir şey üçün istifadə Bu peek alət ilə pset5 da. 54 00:02:28,900 --> 00:02:30,780 Daxili baxmaq üçün icazə. 55 00:02:30,780 --> 00:02:33,400 Siz həmçinin başına çox, fərq istifadə Bu problem spec seçin. 56 00:02:33,400 --> 00:02:35,950 Amma siz icazə iki faylları müqayisə. 57 00:02:35,950 --> 00:02:39,180 Siz bitmap fayl və müqayisə bilər info bir əməkdaş həll mövzular və 58 00:02:39,180 --> 00:02:42,200 pset5 sizin həll əgər Siz onu istifadə seçdi. 59 00:02:42,200 --> 00:02:44,030 Fərqləri sizə imkan verir eləcə də, bunu. 60 00:02:44,030 --> 00:02:48,620 Siz düzgün cavab müqayisə edə bilərsiniz Sizin cavab üçün müəyyən bu həftə problem 61 00:02:48,620 --> 00:02:52,210 və görmək əgər up xətləri və ya görmək Bu səhvlər olduğu. 62 00:02:52,210 --> 00:02:55,870 >> Beləliklə, bu üç yaxşı tools ki, Bu həftə üçün istifadə etməlidir 63 00:02:55,870 --> 00:02:58,130 mütləq sizin proqram kontrol Bu üç alətləri ilə 64 00:02:58,130 --> 00:03:00,520 bu da dönüş əvvəl 65 00:03:00,520 --> 00:03:04,650 Yenə hər həftə qeyd etdiyim kimi, həm - Mənim üçün heç bir əlaqə, 66 00:03:04,650 --> 00:03:06,470 müsbət və konstruktiv - 67 00:03:06,470 --> 00:03:09,930 saytına baş çekinmeyin Bu slayd altındakı 68 00:03:09,930 --> 00:03:11,270 və giriş bu. 69 00:03:11,270 --> 00:03:13,440 Mən, həqiqətən, hər hansı bir təşəkkür Bütün Əlaqə. 70 00:03:13,440 --> 00:03:17,360 Və mənə xüsusi şeyi verir ki, Mən deyiləm ki yaxşılaşdırılması üçün nə edə bilərsiniz və ya 71 00:03:17,360 --> 00:03:21,350 Siz məni istəyirəm ki, yaxşı Mən ürək ki, almaq və davam 72 00:03:21,350 --> 00:03:24,040 həqiqətən qulaq asmaq üçün çətin keçir geribildirim. 73 00:03:24,040 --> 00:03:27,720 Mən gedirəm vəd edə bilməz hər şey, baxmayaraq ki, bir qalıcı kimi 74 00:03:27,720 --> 00:03:30,700 hər həftə kostyum balqabaq. 75 00:03:30,700 --> 00:03:34,020 >> Beləliklə, biz hissəsini sərf edir ikibölməli, dediyim kimi, söhbət 76 00:03:34,020 --> 00:03:37,240 bağlı siyahıları və hash masalar, olan Bu birbaşa tətbiq olacaq 77 00:03:37,240 --> 00:03:38,780 problem bu həftə müəyyən. 78 00:03:38,780 --> 00:03:42,580 Əlaqəli siyahıları biz nisbətən artıq getmək lazımdır biz ədalətli bit sərf etdik, çünki tez 79 00:03:42,580 --> 00:03:44,930 vaxt bölməsində artıq gedir. 80 00:03:44,930 --> 00:03:48,680 Və belə ki, biz düz nəzərə almaq lazımdır bağlı siyahıları üçün problemlər kodlaşdırma. 81 00:03:48,680 --> 00:03:52,740 Və sonra sonunda biz haqqında danışmaq lazımdır bu necə tətbiq masalar hash və 82 00:03:52,740 --> 00:03:55,280 həftə problem müəyyən. 83 00:03:55,280 --> 00:03:57,560 >> Siz əvvəl bu kodu gördüm. 84 00:03:57,560 --> 00:04:02,730 Bu struct, və müəyyən olunur yeni bir şey bir node çağırıb. 85 00:04:02,730 --> 00:04:10,660 Və bir node daxilində tam var burada və bir göstərici var 86 00:04:10,660 --> 00:04:11,830 başqa node. 87 00:04:11,830 --> 00:04:12,790 Biz əvvəl bu gördüm. 88 00:04:12,790 --> 00:04:14,830 Bu üçün gələn edilmişdir İndi bir neçə həftə. 89 00:04:14,830 --> 00:04:18,680 Biz olmuşdur etdiyiniz göstəricilərinə birləşdirir imkan olan və structs ilə iş 90 00:04:18,680 --> 00:04:22,079 us iki müxtəlif birləşdirmək bir veri növü daxil şeylər. 91 00:04:22,079 --> 00:04:24,830 92 00:04:24,830 --> 00:04:26,490 >> Ekranda gedən bir çox var. 93 00:04:26,490 --> 00:04:30,220 Amma bütün nisbətən olmalıdır Sizinlə tanış. 94 00:04:30,220 --> 00:04:33,810 Ilk line, biz yeni node elan. 95 00:04:33,810 --> 00:04:41,650 Və sonra yeni node daxilində, mən müəyyən bir node-ci ildə tam. 96 00:04:41,650 --> 00:04:44,950 Biz bir yapýyorum növbəti line bax printf komanda, amma gri etdik 97 00:04:44,950 --> 00:04:48,080 Bu printf komanda həqiqətən çünki mühüm hissəsi burada bu xətt - 98 00:04:48,080 --> 00:04:50,020 new_node.n. 99 00:04:50,020 --> 00:04:51,270 Dot nə deməkdir? 100 00:04:51,270 --> 00:04:53,810 101 00:04:53,810 --> 00:04:57,240 >> Auditoriya: node gedin və bunun üçün n dəyərini qiymətləndirmək. 102 00:04:57,240 --> 00:04:58,370 >> JASON Hirschhorn: var doğru. 103 00:04:58,370 --> 00:05:03,300 Dot n Part daxil deməkdir Bu yeni node. 104 00:05:03,300 --> 00:05:05,690 Bu, növbəti line nə edir? 105 00:05:05,690 --> 00:05:16,140 106 00:05:16,140 --> 00:05:17,050 Michael. 107 00:05:17,050 --> 00:05:21,910 >> Auditoriya: Bu başqa bir node yaradır ki, yeni node qeyd edəcək. 108 00:05:21,910 --> 00:05:24,870 >> JASON Hirschhorn: Belə ki, deyil yeni node yaratmaq. 109 00:05:24,870 --> 00:05:26,120 Bu nə yaradır? 110 00:05:26,120 --> 00:05:28,300 111 00:05:28,300 --> 00:05:29,300 >> Auditoriya: A pointer. 112 00:05:29,300 --> 00:05:33,460 >> JASON Hirschhorn: bir node bir göstərici, burada bu node * tərəfindən göstərilən. 113 00:05:33,460 --> 00:05:34,800 Belə ki, bir node bir göstərici yaradır. 114 00:05:34,800 --> 00:05:37,490 Və node bu işarə olunur Michael, üçün? 115 00:05:37,490 --> 00:05:38,440 >> Auditoriya: Yeni node? 116 00:05:38,440 --> 00:05:39,240 >> JASON Hirschhorn: New node. 117 00:05:39,240 --> 00:05:43,020 Biz etdik, çünki orada işarə bu yeni node-mail verilir. 118 00:05:43,020 --> 00:05:45,820 İndi bu istiqamətdə görürük iki müxtəlif yolları 119 00:05:45,820 --> 00:05:46,910 eyni şey ifadə. 120 00:05:46,910 --> 00:05:49,650 Mən qeyd etmək istəyirdi necə bu iki şey eynidir. 121 00:05:49,650 --> 00:05:54,740 İlk olaraq, biz dereference göstərici. 122 00:05:54,740 --> 00:05:55,830 Belə ki, biz node getmək. 123 00:05:55,830 --> 00:05:56,830 Bu ulduz nə deməkdir var. 124 00:05:56,830 --> 00:05:57,930 Biz göstəricilər ilə əvvəl ki, gördük. 125 00:05:57,930 --> 00:05:59,280 Ki node gedin. 126 00:05:59,280 --> 00:06:00,370 Bu mötərizə var. 127 00:06:00,370 --> 00:06:04,610 Və sonra dot operator vasitəsilə daxil olmaq ki, node n element. 128 00:06:04,610 --> 00:06:08,430 >> Belə ki, sintaksis alaraq Biz burada və indi gördüm 129 00:06:08,430 --> 00:06:09,670 bir göstərici ilə istifadə. 130 00:06:09,670 --> 00:06:13,730 Əlbəttə ki, bu halda məşğul cür olur o parantez yazıyoruz - 131 00:06:13,730 --> 00:06:14,940 ki, ulduz və dot. 132 00:06:14,940 --> 00:06:16,220 Bu bir az məşğul olur. 133 00:06:16,220 --> 00:06:18,500 Belə ki, biz bəzi sintaktik şəkər var. 134 00:06:18,500 --> 00:06:19,920 Və burada bu line - 135 00:06:19,920 --> 00:06:21,170 ptr_node-> n. 136 00:06:21,170 --> 00:06:25,400 137 00:06:25,400 --> 00:06:28,000 Ki, eyni dəqiq şey yoxdur. 138 00:06:28,000 --> 00:06:30,840 Belə kodu bu iki xətləri var ekvivalent və edəcəyik 139 00:06:30,840 --> 00:06:31,650 eyni şey. 140 00:06:31,650 --> 00:06:34,210 >> Amma mən həmin işarə etmək istədik biz belə başa düşürük hər hansı bir getmək 141 00:06:34,210 --> 00:06:39,000 həqiqətən burada bu şey olduğunu dereferencing üçün yalnız sintaktik şəkər 142 00:06:39,000 --> 00:06:44,200 göstərici və sonra gedən ki, struct n hissəsidir. 143 00:06:44,200 --> 00:06:45,525 Bu slayd haqqında hər hansı bir sualınız? 144 00:06:45,525 --> 00:06:53,020 145 00:06:53,020 --> 00:06:54,390 OK. 146 00:06:54,390 --> 00:06:58,510 >> Beləliklə, biz bir neçə ilə getmək olacaq Siz edə bilərsiniz ki, əməliyyatların 147 00:06:58,510 --> 00:06:59,730 bağlı siyahıları. 148 00:06:59,730 --> 00:07:05,770 A bağlı siyahısı, geri, bir sıra edir bir-birinə işarə edən qovşaqlarının. 149 00:07:05,770 --> 00:07:12,470 Və biz ümumiyyətlə bir göstərici ilə başlamaq adlı baş, ümumiyyətlə, ki, işarə 150 00:07:12,470 --> 00:07:14,040 Siyahıda ilk şey. 151 00:07:14,040 --> 00:07:18,900 Burada ilk line Belə ki, biz ilk bizim orijinal L var. 152 00:07:18,900 --> 00:07:21,370 Belə ki, bir şey hesab edə bilər - bu Burada mətn kimi hesab edə bilər 153 00:07:21,370 --> 00:07:23,560 biz saxlanılır sonra yalnız pointer bir yerdə ki, bal 154 00:07:23,560 --> 00:07:24,670 ilk element. 155 00:07:24,670 --> 00:07:27,500 Və bu bağlı siyahısında biz dörd qovşaqlarının var. 156 00:07:27,500 --> 00:07:29,530 Hər node böyük bir qutusu edir. 157 00:07:29,530 --> 00:07:33,430 Böyük daxilində böyük qutusu qutusu tam hissəsidir. 158 00:07:33,430 --> 00:07:37,400 Və sonra biz bir pointer hissəsi var. 159 00:07:37,400 --> 00:07:39,630 >> Bu qutular tərtib deyil miqyaslı necə böyük, çünki 160 00:07:39,630 --> 00:07:42,320 bayt bir tam? 161 00:07:42,320 --> 00:07:43,290 Necə böyük indi? 162 00:07:43,290 --> 00:07:43,710 Dörd. 163 00:07:43,710 --> 00:07:45,470 Və bir göstərici necə böyük var? 164 00:07:45,470 --> 00:07:45,940 Dörd. 165 00:07:45,940 --> 00:07:48,180 Belə ki, həqiqətən, biz cəlb etmək olsaydı Bu həm qutuları miqyaslı 166 00:07:48,180 --> 00:07:49,690 eyni ölçüdə olacaq. 167 00:07:49,690 --> 00:07:52,870 Bu halda, biz daxil etmək istəyirəm bağlı siyahısına daxil bir şey. 168 00:07:52,870 --> 00:07:57,190 Belə ki, biz daxil olduğunuz burada edə bilərsiniz Beş Biz vasitəsilə axır 169 00:07:57,190 --> 00:08:01,310 bağlı siyahı, tapa yerləşir beş gedir, və sonra daxil. 170 00:08:01,310 --> 00:08:03,560 >> Ki qırmaq və gidelim bir az daha yavaş-yavaş. 171 00:08:03,560 --> 00:08:05,510 Mən board qeyd etmək gedirəm. 172 00:08:05,510 --> 00:08:09,930 Belə ki, biz node var beş ki, biz mallocs da yaratdıq. 173 00:08:09,930 --> 00:08:11,190 Niyə hamı gülür? 174 00:08:11,190 --> 00:08:12,130 Yalnız söylüyorum. 175 00:08:12,130 --> 00:08:13,310 OK. 176 00:08:13,310 --> 00:08:14,820 Belə ki, biz beş malloced etdik. 177 00:08:14,820 --> 00:08:16,310 Biz bu node yaratdıq başqa bir yerdə. 178 00:08:16,310 --> 00:08:17,740 Biz getmək üçün hazır var. 179 00:08:17,740 --> 00:08:20,130 Biz qarşısında da başlayacaq iki ilə siyahısı. 180 00:08:20,130 --> 00:08:22,380 Və biz daxil etmək istəyirəm sıralanır moda. 181 00:08:22,380 --> 00:08:27,550 >> Beləliklə, biz iki görmək və biz qoymaq istəyirsinizsə biz görəndə beş, biz nə etməliyəm 182 00:08:27,550 --> 00:08:28,800 bizdən daha az bir şey? 183 00:08:28,800 --> 00:08:31,850 184 00:08:31,850 --> 00:08:33,520 Nə? 185 00:08:33,520 --> 00:08:36,750 Biz bu beş əlavə etmək istəyirsiniz bağlı siyahı, sıralanır saxlanılması. 186 00:08:36,750 --> 00:08:37,520 Biz sayı iki görürük. 187 00:08:37,520 --> 00:08:38,769 Beləliklə, biz nə etməliyəm? 188 00:08:38,769 --> 00:08:39,179 Marcus? 189 00:08:39,179 --> 00:08:40,679 >> Auditoriya: göstərici zəng növbəti node. 190 00:08:40,679 --> 00:08:42,530 >> JASON Hirschhorn: Və nə üçün biz növbəti bir getmək? 191 00:08:42,530 --> 00:08:45,970 >> Auditoriya: Bu Çünki Siyahıda növbəti node. 192 00:08:45,970 --> 00:08:48,310 Və biz yalnız digər yer bilirik. 193 00:08:48,310 --> 00:08:50,410 >> JASON Hirschhorn: Və beş böyükdür iki çox, xüsusilə. 194 00:08:50,410 --> 00:08:51,600 Biz sorted saxlamaq istəyirəm, çünki. 195 00:08:51,600 --> 00:08:52,730 Belə ki, beş Iki daha böyükdür. 196 00:08:52,730 --> 00:08:54,460 Belə ki, biz növbəti bir hərəkət. 197 00:08:54,460 --> 00:08:55,240 İndi biz dörd çatmaq. 198 00:08:55,240 --> 00:08:56,490 Biz dörd çatdıqda və nə olur? 199 00:08:56,490 --> 00:08:58,920 200 00:08:58,920 --> 00:09:00,310 >> Beş dörd daha böyükdür. 201 00:09:00,310 --> 00:09:01,460 Beləliklə, biz davam. 202 00:09:01,460 --> 00:09:03,110 İndi biz altı istəyirik. 203 00:09:03,110 --> 00:09:04,360 Və biz altı nə görürük? 204 00:09:04,360 --> 00:09:08,672 205 00:09:08,672 --> 00:09:09,608 Bəli, Carlos? 206 00:09:09,608 --> 00:09:10,544 >> Auditoriya: Six beş daha böyükdür. 207 00:09:10,544 --> 00:09:11,480 >> JASON Hirschhorn: Six edir beş daha çox. 208 00:09:11,480 --> 00:09:13,660 Biz istədiyiniz Belə ki, beş daxil etmək üçün. 209 00:09:13,660 --> 00:09:17,320 Lakin unutmayın ki, əgər biz Yalnız burada bir göstərici var - 210 00:09:17,320 --> 00:09:19,840 Bu ki, bizim əlavə göstərici siyahısını traversing. 211 00:09:19,840 --> 00:09:21,860 Və biz altı işarə edirik. 212 00:09:21,860 --> 00:09:25,010 Biz nə itirib etdik altı əvvəl gəlir. 213 00:09:25,010 --> 00:09:29,130 Beləliklə, biz bir şey daxil etmək istəyirsinizsə onu saxlamaq bu siyahı, çeşidlənir biz 214 00:09:29,130 --> 00:09:31,630 yəqin ki, neçə göstəricilərinə lazımdır? 215 00:09:31,630 --> 00:09:32,280 >> Auditoriya: iki. 216 00:09:32,280 --> 00:09:32,920 >> JASON HIRSCHORN: iki. 217 00:09:32,920 --> 00:09:35,720 Biri cari track saxlamaq üçün bir və bir track saxlamaq üçün 218 00:09:35,720 --> 00:09:37,050 Əvvəlki. 219 00:09:37,050 --> 00:09:38,450 Bu yalnız bir story bağlı siyahı deyil. 220 00:09:38,450 --> 00:09:39,670 Bu, yalnız bir istiqamətdə gedir. 221 00:09:39,670 --> 00:09:43,220 Biz ikiqat bağlı siyahı varsa, harada hər şey şey işarə 222 00:09:43,220 --> 00:09:46,240 bu və ondan əvvəlki şey sonra biz bunu lazım deyil. 223 00:09:46,240 --> 00:09:49,350 Lakin bu halda biz itirmək istəmirəm halda bizdən əvvəl gəlib nə track 224 00:09:49,350 --> 00:09:53,350 biz beş haradasa daxil etmək lazımdır ortada. 225 00:09:53,350 --> 00:09:55,610 Biz doqquz daxil olub. 226 00:09:55,610 --> 00:09:57,260 Zaman nə baş verəcək biz səkkiz var? 227 00:09:57,260 --> 00:10:01,860 228 00:10:01,860 --> 00:10:04,880 >> Auditoriya: Siz istədiyiniz ki null point almaq. 229 00:10:04,880 --> 00:10:07,820 Əvəzində null nöqtəsi olan var ediyorum bir element əlavə və sonra üçün 230 00:10:07,820 --> 00:10:09,216 bu doqquz qeyd. 231 00:10:09,216 --> 00:10:09,700 >> JASON HIRSCHORN: Exactly. 232 00:10:09,700 --> 00:10:10,600 Beləliklə, biz səkkiz almaq. 233 00:10:10,600 --> 00:10:13,140 Biz siyahısı sonuna çatmaq çünki Bu null işarə edir. 234 00:10:13,140 --> 00:10:16,330 İndi əvəzinə olan bu işarə null biz yeni node qeyd var. 235 00:10:16,330 --> 00:10:19,870 Və biz də göstərici müəyyən null yeni node. 236 00:10:19,870 --> 00:10:21,445 Heç bir sualınız varmı daxil haqqında? 237 00:10:21,445 --> 00:10:25,620 238 00:10:25,620 --> 00:10:28,100 Haqqında nə vecimə deyil əgər sıralaması siyahısını saxlamaq? 239 00:10:28,100 --> 00:10:31,701 240 00:10:31,701 --> 00:10:34,350 >> Auditoriya: onu qalmaq başlayan və ya sonu. 241 00:10:34,350 --> 00:10:35,510 >> JASON HIRSCHORN: onu qalmaq əvvəlində və ya sonunda. 242 00:10:35,510 --> 00:10:37,276 Hansı bir nə etmək lazımdır? 243 00:10:37,276 --> 00:10:38,770 Bobby? 244 00:10:38,770 --> 00:10:41,020 Niyə sonu? 245 00:10:41,020 --> 00:10:43,250 >> Auditoriya: Çünki başlanğıcı artıq doldurulur. 246 00:10:43,250 --> 00:10:43,575 >> JASON HIRSCHORN: OK. 247 00:10:43,575 --> 00:10:44,360 Başlanğıcı artıq doldurulur. 248 00:10:44,360 --> 00:10:46,090 Kim Bobby qarşı mübahisə etmək istəyir. 249 00:10:46,090 --> 00:10:47,290 Marcus. 250 00:10:47,290 --> 00:10:48,910 >> Auditoriya: Yaxşı yəqin ki, istəyirəm başında qalmaq çünki 251 00:10:48,910 --> 00:10:50,140 Siz onu qoymaq əgər başqa Siz istədiyiniz son 252 00:10:50,140 --> 00:10:51,835 bütün siyahısını axır. 253 00:10:51,835 --> 00:10:52,990 >> JASON HIRSCHORN: Exactly. 254 00:10:52,990 --> 00:10:57,970 Biz uzunluğu haqqında düşünür istəyirsinizsə, belə ki, əgər sonunda daxil uzunluğu 255 00:10:57,970 --> 00:11:00,110 n olacaq, bu ölçüsü. 256 00:11:00,110 --> 00:11:03,080 Daxil olan böyük O uzunluğu nədir başında? 257 00:11:03,080 --> 00:11:04,170 Sabit vaxt. 258 00:11:04,170 --> 00:11:07,075 Beləliklə, siz saxlanılması haqqında qayğı yoxsa bir şey, yalnız daha yaxşı sıralanır 259 00:11:07,075 --> 00:11:08,420 Bu siyahının əvvəlində daxil. 260 00:11:08,420 --> 00:11:10,320 Və daimi vaxt edilə bilər. 261 00:11:10,320 --> 00:11:13,900 262 00:11:13,900 --> 00:11:14,690 >> OK. 263 00:11:14,690 --> 00:11:18,870 Sonrakı əməliyyat tapmaq, digər olunur - biz axtarış kimi bu ifadə etdik. 264 00:11:18,870 --> 00:11:22,470 Amma biz vasitəsilə baxmaq olacaq bir obyekt üçün bağlı siyahı. 265 00:11:22,470 --> 00:11:26,000 Siz uşaqlar üçün kod gördük mühazirə əvvəl axtarış. 266 00:11:26,000 --> 00:11:29,490 Amma biz sort yalnız ilə bunu daxil, və ya ən azı daxil 267 00:11:29,490 --> 00:11:30,580 bir şey sıralanır. 268 00:11:30,580 --> 00:11:36,350 Siz vasitəsilə baxmaq, node node gedən, Siz olduğunuzu sayı tapmaq qədər 269 00:11:36,350 --> 00:11:37,780 axtarır. 270 00:11:37,780 --> 00:11:39,670 Olmaq ne olur siyahısı sonu? 271 00:11:39,670 --> 00:11:43,020 Mən doqquz və I arıyorum De siyahının sonuna çatmaq. 272 00:11:43,020 --> 00:11:44,270 Nə edəcəyik? 273 00:11:44,270 --> 00:11:47,147 274 00:11:47,147 --> 00:11:48,110 >> Auditoriya: yalan qayıt? 275 00:11:48,110 --> 00:11:48,690 >> JASON HIRSCHORN: yalan qayıt. 276 00:11:48,690 --> 00:11:49,960 Biz bunu tapa bilmədi. 277 00:11:49,960 --> 00:11:52,010 Siz siyahısı sonuna çatmaq və əgər Siz etdiyiniz sayı tapmadı 278 00:11:52,010 --> 00:11:54,170 axtarır, orada deyil. 279 00:11:54,170 --> 00:11:55,420 Haqqında hər hansı bir sual tapmaq? 280 00:11:55,420 --> 00:11:59,530 281 00:11:59,530 --> 00:12:04,615 Bu bir sorted siyahısı idi, hansı ki bizim axtarış üçün müxtəlif ola? 282 00:12:04,615 --> 00:12:07,370 283 00:12:07,370 --> 00:12:08,103 Bəli. 284 00:12:08,103 --> 00:12:10,600 >> Auditoriya: Bu ilk dəyəri tapmaq olardı ki, bir daha çox var 285 00:12:10,600 --> 00:12:12,390 Sizin etdiyiniz sonra saxta qayıtmaq. 286 00:12:12,390 --> 00:12:13,190 >> JASON HIRSCHORN: Exactly. 287 00:12:13,190 --> 00:12:17,310 Belə ki, bir sorted siyahısı, biz almaq əgər nə daha çox var ki, bir şey 288 00:12:17,310 --> 00:12:20,180 biz aradığınız, biz ehtiyac yoxdur siyahısı başa davam. 289 00:12:20,180 --> 00:12:24,060 Biz nöqtədə yalan ola bilər biz bunu tapa niyyətində deyilik, çünki. 290 00:12:24,060 --> 00:12:27,340 Bu sual indi, biz söhbət etdik olunur sıralanır bağlı siyahıları saxlanılması, 291 00:12:27,340 --> 00:12:28,180 çeşidlənməmiş saxlamaq. 292 00:12:28,180 --> 00:12:30,050 Ki, siz etdiyiniz bir şey olacaq yəqin ki, düşünmək üçün gedir 293 00:12:30,050 --> 00:12:34,240 Əgər kodlaşdırma problem beş müəyyən zaman ayrı-ayrı bir hash masa seçmək 294 00:12:34,240 --> 00:12:36,360 chaining yanaşma olan Biz sonra haqqında danışmaq lazımdır. 295 00:12:36,360 --> 00:12:41,400 >> Amma siyahısını saxlamaq üçün dəyər sonra sorted və bəlkə malik ola 296 00:12:41,400 --> 00:12:42,310 sürətli axtarış? 297 00:12:42,310 --> 00:12:47,220 Və ya tez daxil etmək daha yaxşıdır sonra daimi uzunluğu bir şey, lakin 298 00:12:47,220 --> 00:12:48,430 axtarış artıq var? 299 00:12:48,430 --> 00:12:52,250 Bu doğru bir tradeoff var ki, siz daha uyğun nə qərar almaq 300 00:12:52,250 --> 00:12:53,590 xüsusi problem. 301 00:12:53,590 --> 00:12:56,680 Və mütləq bir yox tamamilə düzgün cavab. 302 00:12:56,680 --> 00:12:59,520 Amma əlbəttə siz almaq bir qərar var etmək, və yəqin ki, yaxşı müdafiə etmək 303 00:12:59,520 --> 00:13:05,270 ki, demək, bir comment və ya iki niyə Siz bir-biri seçdi. 304 00:13:05,270 --> 00:13:06,490 >> Nəhayət, silmə. 305 00:13:06,490 --> 00:13:08,100 Biz silmə gördük. 306 00:13:08,100 --> 00:13:09,180 Bu axtarış oxşar deyil. 307 00:13:09,180 --> 00:13:11,020 Biz element üçün baxmaq. 308 00:13:11,020 --> 00:13:12,390 Biz altı silmək çalışdığınız demək. 309 00:13:12,390 --> 00:13:14,450 Beləliklə, biz burada altı tapa bilərsiniz. 310 00:13:14,450 --> 00:13:18,860 Biz əmin biz etmək ki, bir şey nə işarə edir ki, 311 00:13:18,860 --> 00:13:21,220 altı - biz addım görmək kimi aşağı burada iki - 312 00:13:21,220 --> 00:13:26,500 altı ehtiyaclarına işarə nə İndi altı keçmək və dəyişdirilə 313 00:13:26,500 --> 00:13:28,160 nə altı işarə edir. 314 00:13:28,160 --> 00:13:31,410 Biz heç qalan yetim istəmirəm ki, təyin etmək unutmadan ilə siyahısı 315 00:13:31,410 --> 00:13:32,960 Əvvəlki göstərici. 316 00:13:32,960 --> 00:13:35,960 Və sonra bəzən asılı olaraq, proqram, onlar yalnız lazımdır 317 00:13:35,960 --> 00:13:37,380 tamamilə bu node silin. 318 00:13:37,380 --> 00:13:40,135 Bəzən qayıtmaq lazımdır Bu node var ki, dəyəri. 319 00:13:40,135 --> 00:13:42,490 Belə ki, işləri silmə necə. 320 00:13:42,490 --> 00:13:44,610 Hər hansı suallar silmək? 321 00:13:44,610 --> 00:13:51,280 322 00:13:51,280 --> 00:13:53,850 >> Auditoriya: Belə ki, silmək olacaq əgər Bu, yalnız pulsuz istifadə, çünki 323 00:13:53,850 --> 00:13:55,655 ehtimalla bu malloced idi? 324 00:13:55,655 --> 00:13:57,976 >> JASON HIRSCHORN: Əgər azad istəyirsinizsə doğru və siz ki, bir şey 325 00:13:57,976 --> 00:13:58,540 onu malloced. 326 00:13:58,540 --> 00:14:00,410 Biz bu dəyər qayıtmaq istədiyini deyirlər. 327 00:14:00,410 --> 00:14:04,010 Biz geri bilər altı və sonra pulsuz bu bu node və zəng pulsuz. 328 00:14:04,010 --> 00:14:06,180 Yoxsa biz yəqin ki, ilk pulsuz zəng istədiyiniz və sonra altı qayıtmaq. 329 00:14:06,180 --> 00:14:11,210 330 00:14:11,210 --> 00:14:11,580 >> OK. 331 00:14:11,580 --> 00:14:14,010 Belə ki, kodlaşdırma praktiki hərəkət edək. 332 00:14:14,010 --> 00:14:16,090 Biz üç funksiyaları kod olacaq. 333 00:14:16,090 --> 00:14:18,260 Birinci insert_node adlanır. 334 00:14:18,260 --> 00:14:22,170 Belə ki, mən sizə e-poçt ki, kodu var və daha sonra bu seyr etdiyiniz halda 335 00:14:22,170 --> 00:14:28,020 Siz linked.c kodunu əldə edə bilərsiniz CS50 saytında. 336 00:14:28,020 --> 00:14:30,880 Amma linked.c, bəzi var artıq ki, skelet kodu 337 00:14:30,880 --> 00:14:32,280 sizin üçün yazılmışdır. 338 00:14:32,280 --> 00:14:34,560 Və sonra bir neçə funksiyaları var yazmaq lazımdır. 339 00:14:34,560 --> 00:14:36,380 >> Birinci biz olacaq insert_node yazın. 340 00:14:36,380 --> 00:14:39,800 Və nə insert_node yoxdur bir tam edər. 341 00:14:39,800 --> 00:14:42,440 Və siz tam ötürür bir bağlı siyahısına daxil. 342 00:14:42,440 --> 00:14:45,470 Və xüsusilə, sizə lazım sıralaması siyahısını saxlamaq üçün 343 00:14:45,470 --> 00:14:47,650 kiçik olan böyük üçün. 344 00:14:47,650 --> 00:14:51,360 Ayrıca, istəmirəm bir cüt daxil edin. 345 00:14:51,360 --> 00:14:54,600 Nəhayət, insert_node bilərsiniz kimi bir bool qaytarır. 346 00:14:54,600 --> 00:14:57,140 Belə ki, istifadəçi bildirin ehtimal edirik daxil idi və ya 347 00:14:57,140 --> 00:15:00,800 doğru və ya yalan qaytarılması ilə uğurlu. 348 00:15:00,800 --> 00:15:02,580 Bu proqramın sonunda - 349 00:15:02,580 --> 00:15:05,750 və bu mərhələdə üçün ehtiyac yoxdur bir şey azad narahat. 350 00:15:05,750 --> 00:15:11,790 Belə ki, siz yapýyorsun bütün bir tam atır və bir siyahısına daxil daxil. 351 00:15:11,790 --> 00:15:13,890 >> Mən indi sizə soruşuram nə. 352 00:15:13,890 --> 00:15:17,620 Yenə linked.c da, siz bütün, skelet kodu. 353 00:15:17,620 --> 00:15:20,980 Və siz aşağı doğru görməlisiniz nümunə funksiyası bəyannamə. 354 00:15:20,980 --> 00:15:27,390 Lakin, kodlaşdırma daxil davam əvvəl C, Mən getmək üçün təşviq 355 00:15:27,390 --> 00:15:29,330 addımlar vasitəsilə biz oldum hər həftə təcrübə. 356 00:15:29,330 --> 00:15:31,100 Biz artıq vasitəsilə getdi sonra bu bir şəkil. 357 00:15:31,100 --> 00:15:33,380 Belə ki, bəzi anlaşma olmalıdır bu işləri necə. 358 00:15:33,380 --> 00:15:36,590 Amma yazmaq tavsiye ederim daxil dalğıc əvvəl bir pseudocode 359 00:15:36,590 --> 00:15:38,640 Və biz artıq getmək olacaq bir qrup kimi pseudocode. 360 00:15:38,640 --> 00:15:41,470 Və sonra yazdıq dəfə sizin pseudocode və biz yazdıq dəfə bizim 361 00:15:41,470 --> 00:15:45,850 bir qrup kimi pseudocode, siz C. kodlaşdırma daxil 362 00:15:45,850 --> 00:15:49,980 >> Rəhbərləri qədər insert_node funksiyası kimi yəqin trickiest edir 363 00:15:49,980 --> 00:15:53,550 üç biz yazmaq olacaq, çünki mən bəzi əlavə məhdudiyyətlər əlavə 364 00:15:53,550 --> 00:15:57,190 proqramlaşdırma, xüsusi ki, Əgər hər hansı bir daxil fikrində deyilik 365 00:15:57,190 --> 00:15:59,880 dublikatları və siyahısı sorted qalmalıdır. 366 00:15:59,880 --> 00:16:02,660 Belə ki, bu qeyri-mənasız proqramı Siz kod etmək lazımdır ki,. 367 00:16:02,660 --> 00:16:06,470 Və niyə yeddi beş etmirlər dəqiqə yalnız üzərində iş üçün 368 00:16:06,470 --> 00:16:07,640 pseudocode və kodu. 369 00:16:07,640 --> 00:16:09,460 Və sonra biz başlayacaq bir qrup kimi gedir. 370 00:16:09,460 --> 00:16:11,680 Yenə, yalnız hər hansı bir sualınız varsa, əl qaldırmaq və mən ətrafında gəlmək lazımdır. 371 00:16:11,680 --> 00:16:15,258 372 00:16:15,258 --> 00:16:16,508 . 373 00:16:16,508 --> 00:18:28,370 374 00:18:28,370 --> 00:18:30,120 >> Biz də ümumiyyətlə bu nə - 375 00:18:30,120 --> 00:18:32,070 və ya açıq-aşkar sizə demək deyil insanlar ilə işləyə bilər. 376 00:18:32,070 --> 00:18:36,500 Amma təbii ki, mən yüksək təşviq Əgər suallarınız varsa, xahiş 377 00:18:36,500 --> 00:18:39,840 siz yanında oturan qonşu və ya hətta kimsə ilə işləmək 378 00:18:39,840 --> 00:18:40,510 başqa istəyirsinizsə. 379 00:18:40,510 --> 00:18:42,600 Bu fərdi olmaq yoxdur səssiz fəaliyyəti. 380 00:18:42,600 --> 00:20:11,770 381 00:20:11,770 --> 00:20:16,330 >> Bəzi yazı ilə başlamaq edək board pseudocode. 382 00:20:16,330 --> 00:20:19,395 Kim mənə ilk xətti verə bilər Bu proqram üçün pseudocode? 383 00:20:19,395 --> 00:20:22,240 384 00:20:22,240 --> 00:20:23,640 Bu funksiya, daha - insert_node. 385 00:20:23,640 --> 00:20:29,960 386 00:20:29,960 --> 00:20:31,830 Alden? 387 00:20:31,830 --> 00:20:36,560 >> Auditoriya: Mən nə ilk şey idi node və I yeni pointer yaratmaq 388 00:20:36,560 --> 00:20:41,320 eyni işarə başlatılmış siyahısı işarə edir ki, bir şey. 389 00:20:41,320 --> 00:20:41,550 >> JASON HIRSCHORN: OK. 390 00:20:41,550 --> 00:20:45,190 Belə ki, yeni göstərici yaratmaq edirik siyahısına deyil, node. 391 00:20:45,190 --> 00:20:45,420 >> Auditoriya: Sağ. 392 00:20:45,420 --> 00:20:46,150 Bəli. 393 00:20:46,150 --> 00:20:46,540 >> JASON HIRSCHORN: OK. 394 00:20:46,540 --> 00:20:48,221 Və sonra biz nə istəyirik? 395 00:20:48,221 --> 00:20:49,163 Bundan sonra nə var? 396 00:20:49,163 --> 00:20:50,105 Nə node haqqında? 397 00:20:50,105 --> 00:20:51,050 Biz bir node yoxdur. 398 00:20:51,050 --> 00:20:52,300 Biz yalnız bir dəyəri var. 399 00:20:52,300 --> 00:20:55,918 400 00:20:55,918 --> 00:20:58,890 Biz bir node daxil etmək istəyirsinizsə, biz nə biz hətta bilərsiniz əvvəl ilk nə etmək lazımdır 401 00:20:58,890 --> 00:20:59,980 O daxil düşünmək? 402 00:20:59,980 --> 00:21:00,820 >> Auditoriya: Oh, sorry. 403 00:21:00,820 --> 00:21:02,160 biz bir node üçün yer malloc lazımdır. 404 00:21:02,160 --> 00:21:02,455 >> JASON HIRSCHORN: Əla. 405 00:21:02,455 --> 00:21:03,210 Nə edək - 406 00:21:03,210 --> 00:21:04,628 OK. 407 00:21:04,628 --> 00:21:06,065 Yüksək çata bilməz. 408 00:21:06,065 --> 00:21:08,939 409 00:21:08,939 --> 00:21:09,897 OK. 410 00:21:09,897 --> 00:21:13,236 Biz aşağı getmək üçün gedir və sonra edirik biz iki sütun istifadə edirik. 411 00:21:13,236 --> 00:21:13,732 Mən getmək bilməz - 412 00:21:13,732 --> 00:21:14,982 OK. 413 00:21:14,982 --> 00:21:23,660 414 00:21:23,660 --> 00:21:25,130 Yeni node yaratmaq. 415 00:21:25,130 --> 00:21:29,380 Siz Siyahısına başqa göstərici yarada mövcud kimi və ya sadəcə siyahısını istifadə edə bilərsiniz. 416 00:21:29,380 --> 00:21:30,720 Siz, həqiqətən, bunu etmək lazım deyil. 417 00:21:30,720 --> 00:21:31,750 >> Beləliklə, biz yeni node yaratmaq. 418 00:21:31,750 --> 00:21:32,010 Böyük. 419 00:21:32,010 --> 00:21:32,840 Yəni biz ilk nə var. 420 00:21:32,840 --> 00:21:34,870 Növbəti nədir? 421 00:21:34,870 --> 00:21:35,080 >> Auditoriya: gözləyin. 422 00:21:35,080 --> 00:21:38,330 Biz indi yeni node yaratmaq və ya olmalıdır biz əmin etmək gözləmək lazımdır 423 00:21:38,330 --> 00:21:42,260 node heç bir dublikatları var siyahıda əvvəl biz bunu yaratmaq? 424 00:21:42,260 --> 00:21:43,100 >> JASON HIRSCHORN: Yaxşı sualdır. 425 00:21:43,100 --> 00:21:47,770 Sonrakı çünki ki keçirilməsi edək biz yaratmaq olacaq zaman əksəriyyəti 426 00:21:47,770 --> 00:21:48,220 yeni node. 427 00:21:48,220 --> 00:21:49,110 Belə ki, burada davam edəcəyik. 428 00:21:49,110 --> 00:21:51,006 Amma yaxşı bir sual var. 429 00:21:51,006 --> 00:21:53,250 Biz bunu yaratmaq və biz tapmaq Əgər bir cüt, nə olmalıdır 430 00:21:53,250 --> 00:21:54,490 biz qaytarılması əvvəl bunu? 431 00:21:54,490 --> 00:21:55,190 >> Auditoriya: Bu pulsuz. 432 00:21:55,190 --> 00:21:55,470 >> JASON HIRSCHORN: Bəli. 433 00:21:55,470 --> 00:21:56,500 Yəqin ki, onu azad. 434 00:21:56,500 --> 00:21:56,760 OK. 435 00:21:56,760 --> 00:21:59,850 Biz sonra biz nə etməliyəm yeni node yaratmaq? 436 00:21:59,850 --> 00:22:02,260 Annie? 437 00:22:02,260 --> 00:22:04,780 >> Auditoriya: Biz qoymaq node sayı? 438 00:22:04,780 --> 00:22:05,140 >> JASON HIRSCHORN: Exactly. 439 00:22:05,140 --> 00:22:07,190 Biz sayı qoymaq - biz kosmik malloc. 440 00:22:07,190 --> 00:22:08,160 Mən tərk gedirəm bütün bir xətt kimi. 441 00:22:08,160 --> 00:22:08,720 Amma doğru istəyirik. 442 00:22:08,720 --> 00:22:10,305 Biz sonra yer malloc və biz daxil sayı qoymaq 443 00:22:10,305 --> 00:22:12,585 Biz hətta göstərici bilərsiniz null bir hissəsi. 444 00:22:12,585 --> 00:22:13,720 Dəqiq doğru. 445 00:22:13,720 --> 00:22:17,400 Və sonra nə sonra? 446 00:22:17,400 --> 00:22:18,490 Biz board bu şəkil çəkdi. 447 00:22:18,490 --> 00:22:21,190 Beləliklə, biz nə etməliyəm? 448 00:22:21,190 --> 00:22:22,680 >> Auditoriya: Biz siyahı ilə getmək. 449 00:22:22,680 --> 00:22:23,930 >> JASON HIRSCHORN: siyahısını gedin. 450 00:22:23,930 --> 00:22:30,620 451 00:22:30,620 --> 00:22:31,100 OK. 452 00:22:31,100 --> 00:22:34,280 Və biz hər node üçün nə kontrol yoxdur. 453 00:22:34,280 --> 00:22:35,955 Kurt, nə biz yoxlamaq yoxdur hər node üçün? 454 00:22:35,955 --> 00:22:41,640 >> Auditoriya: baxın n dəyər olub ki, node n dəyəri daha böyükdür 455 00:22:41,640 --> 00:22:43,070 bizim node. 456 00:22:43,070 --> 00:22:43,340 >> JASON HIRSCHORN: OK. 457 00:22:43,340 --> 00:22:44,280 Mən gedirəm - 458 00:22:44,280 --> 00:22:45,855 OK, evet. 459 00:22:45,855 --> 00:22:48,160 Belə ki, n var - 460 00:22:48,160 --> 00:22:59,040 Mən dəyər əgər demək gedirəm Bu node daha sonra nə edəcəyik? 461 00:22:59,040 --> 00:23:07,290 >> Auditoriya: Yaxşı, onda biz daxil doğru əvvəl şey. 462 00:23:07,290 --> 00:23:07,970 >> JASON HIRSCHORN: OK. 463 00:23:07,970 --> 00:23:09,410 Belə ki, bu daha çox var əgər, sonra biz daxil etmək istəyirik. 464 00:23:09,410 --> 00:23:14,010 Amma biz doğru əvvəl o əlavə etmək istəyirsiniz biz də olmaq lazımdır, çünki 465 00:23:14,010 --> 00:23:16,070 track saxlanılması, sonra, əvvəl nə. 466 00:23:16,070 --> 00:23:22,690 Belə ki, əvvəl daxil edin. 467 00:23:22,690 --> 00:23:25,120 Beləliklə, biz yəqin ki, bir şey buraxılmış əvvəllər haqqında. 468 00:23:25,120 --> 00:23:27,770 Biz yəqin ki, saxlanılması lazımdır haqqında neler track. 469 00:23:27,770 --> 00:23:28,460 Amma biz orada geri almaq lazımdır. 470 00:23:28,460 --> 00:23:30,160 Belə ki, nə dəyəri azdır? 471 00:23:30,160 --> 00:23:38,030 472 00:23:38,030 --> 00:23:39,710 Kurt, biz nə edəcəyik dəyəri az deyil? 473 00:23:39,710 --> 00:23:43,000 >> Auditoriya: Sonra yalnız davam Bu son bir halda. 474 00:23:43,000 --> 00:23:43,550 >> JASON HIRSCHORN: Mən ki, istəyirəm. 475 00:23:43,550 --> 00:23:44,800 Belə ki, növbəti node getmək. 476 00:23:44,800 --> 00:23:47,410 477 00:23:47,410 --> 00:23:48,930 Bu son bir halda - 478 00:23:48,930 --> 00:23:51,100 biz yəqin ki, yoxlanılması edirik vəziyyəti baxımından. 479 00:23:51,100 --> 00:23:54,870 Lakin Bəli, növbəti node. 480 00:23:54,870 --> 00:23:58,680 Və ki, çox aşağı əldə edir belə ki, biz burada hərəkət edəcəyik. 481 00:23:58,680 --> 00:24:02,030 Amma əgər - 482 00:24:02,030 --> 00:24:03,280 hamı bu edə bilərsiniz? 483 00:24:03,280 --> 00:24:07,230 484 00:24:07,230 --> 00:24:11,610 Biz bərabər edirsinizsə biz nə etməliyəm? 485 00:24:11,610 --> 00:24:15,740 Dəyəri biz daxil çalışdığınız Əgər Bu node dəyərinə bərabərdir? 486 00:24:15,740 --> 00:24:16,320 Bəli? 487 00:24:16,320 --> 00:24:18,400 >> Auditoriya: [işitilemez]. 488 00:24:18,400 --> 00:24:18,850 >> JASON HIRSCHORN: Bəli. 489 00:24:18,850 --> 00:24:19,290 Bunu nəzərə alaraq - 490 00:24:19,290 --> 00:24:20,090 Marcus doğru deyil. 491 00:24:20,090 --> 00:24:21,330 Biz bəlkə edə bilərdi fərqli bir şey. 492 00:24:21,330 --> 00:24:25,360 Amma burada, biz onu yaratdıq ki, verilmiş biz azad və sonra qaytarmalıdır. 493 00:24:25,360 --> 00:24:26,774 Boy Oh. 494 00:24:26,774 --> 00:24:30,080 Ki, daha yaxşıdır? 495 00:24:30,080 --> 00:24:31,850 Necə ki? 496 00:24:31,850 --> 00:24:33,100 OK. 497 00:24:33,100 --> 00:24:35,360 498 00:24:35,360 --> 00:24:37,640 Biz nə sonra pulsuz və [Işitilemez] qayıtmaq? 499 00:24:37,640 --> 00:24:41,330 500 00:24:41,330 --> 00:24:44,110 OK. 501 00:24:44,110 --> 00:24:45,360 Biz bir şey eksik? 502 00:24:45,360 --> 00:24:53,500 503 00:24:53,500 --> 00:24:59,650 Beləliklə, biz track saxlanılır əvvəlki node? 504 00:24:59,650 --> 00:25:02,370 >> Auditoriya: Mən getmək olardı sonra yeni bir node yaratmaq. 505 00:25:02,370 --> 00:25:02,600 >> JASON HIRSCHORN: OK. 506 00:25:02,600 --> 00:25:03,940 Belə ki, başında biz yəqin ki, will - 507 00:25:03,940 --> 00:25:07,175 Bəli, biz yeni bir pointer yaratmaq bilər əvvəlki node göstərici kimi node və 508 00:25:07,175 --> 00:25:09,600 cari node göstərici. 509 00:25:09,600 --> 00:25:12,640 Belə ki, burada daxil edək. 510 00:25:12,640 --> 00:25:15,610 511 00:25:15,610 --> 00:25:26,900 Yaratmaq cari və əvvəlki qovşaqlarının göstəricilər. 512 00:25:26,900 --> 00:25:28,955 Amma biz o göstəricilərinə tənzimləmək edirsiniz? 513 00:25:28,955 --> 00:25:30,205 Biz ki, kodu harada etməliyəm? 514 00:25:30,205 --> 00:25:33,830 515 00:25:33,830 --> 00:25:34,160 Jeff? 516 00:25:34,160 --> 00:25:35,170 >> Auditoriya: - dəyər şərait? 517 00:25:35,170 --> 00:25:36,420 >> JASON HIRSCHORN: Hansı xüsusi bir? 518 00:25:36,420 --> 00:25:39,862 519 00:25:39,862 --> 00:25:40,720 >> Auditoriya: yalnız qarışıq alıram. 520 00:25:40,720 --> 00:25:44,200 Dəyəri, bu node-dən çox olduqda ki, siz getmək istəyirəm ki, demək deyil 521 00:25:44,200 --> 00:25:45,320 növbəti node? 522 00:25:45,320 --> 00:25:49,515 >> JASON Hirschhorn: Belə ki, bizim dəyər əgər Bu node dəyəri daha çox. 523 00:25:49,515 --> 00:25:52,130 >> Auditoriya: Bəli, sonra istəyirəm sağ, xətti aşağı daha getmək? 524 00:25:52,130 --> 00:25:52,590 >> JASON Hirschhorn: Right. 525 00:25:52,590 --> 00:25:53,840 Beləliklə, biz burada daxil etməyin. 526 00:25:53,840 --> 00:25:58,430 527 00:25:58,430 --> 00:26:03,240 Dəyəri, sonra bu node azdırsa biz növbəti node getmək - sonra və ya biz 528 00:26:03,240 --> 00:26:03,835 əvvəl daxil edin. 529 00:26:03,835 --> 00:26:05,966 >> Auditoriya: Bu olan, gözləyin node və dəyəri? 530 00:26:05,966 --> 00:26:08,510 531 00:26:08,510 --> 00:26:09,280 >> JASON Hirschhorn: Yaxşı sualdır. 532 00:26:09,280 --> 00:26:13,260 Dəyər bu funksiya müəyyən faizlə biz sunulur nə. 533 00:26:13,260 --> 00:26:16,910 Belə ki, dəyər biz sunulur sayı. 534 00:26:16,910 --> 00:26:21,120 Belə ki, onun dəyəri, bu az olduqda node, biz daxil üçün vaxt lazımdır. 535 00:26:21,120 --> 00:26:24,575 Dəyəri, bu node-dən çox olduqda biz növbəti node getmək. 536 00:26:24,575 --> 00:26:26,790 Və geri orijinal sual, baxmayaraq ki, burada - 537 00:26:26,790 --> 00:26:29,060 >> Auditoriya: dəyər Əgər Bu node daha. 538 00:26:29,060 --> 00:26:30,310 >> JASON Hirschhorn: Və biz burada nə etməliyəm? 539 00:26:30,310 --> 00:26:36,790 540 00:26:36,790 --> 00:26:38,160 Sweet. 541 00:26:38,160 --> 00:26:38,860 Bu doğru deyil. 542 00:26:38,860 --> 00:26:41,370 Mən yalnız yazmaq üçün gedirəm yeniləmə göstəricilər. 543 00:26:41,370 --> 00:26:44,010 Amma bəli, cari ilə siz onu yeniləmə olacaq 544 00:26:44,010 --> 00:26:46,080 növbəti bir qeyd. 545 00:26:46,080 --> 00:26:47,330 Başqa bir şey itkin etdiyiniz? 546 00:26:47,330 --> 00:26:52,710 547 00:26:52,710 --> 00:26:54,940 Mən bu yazın gedirəm gedit daxil kodu. 548 00:26:54,940 --> 00:26:58,375 Mən bunu isə, siz bir ola bilər kodlaşdırma işləmək üçün neçə dəqiqə daha 549 00:26:58,375 --> 00:28:19,240 Bu C. 550 00:28:19,240 --> 00:28:20,940 >> Mən giriş pseudocode var. 551 00:28:20,940 --> 00:28:22,940 Başlamadan əvvəl tez qeyd. 552 00:28:22,940 --> 00:28:25,560 Biz edə tamamilə ola bilər bütün bu başa 553 00:28:25,560 --> 00:28:27,300 Bu funksiyaların üç. 554 00:28:27,300 --> 00:28:30,630 Onlara doğru həllər var Mən sizə uşaqlar üçün e-poçt ki, 555 00:28:30,630 --> 00:28:33,730 bölmə sonra və bu olacaq CS50.net yerləşdiriləcək. 556 00:28:33,730 --> 00:28:35,640 Mən sizə təşviq etmir bölmələrdə baxmaq getmək. 557 00:28:35,640 --> 00:28:40,550 Mən bu cəhd təşviq sizin öz, sonra təcrübə istifadə 558 00:28:40,550 --> 00:28:41,760 cavab yoxlamaq üçün problemləri. 559 00:28:41,760 --> 00:28:47,070 Bu bütün hazırlanmışdır yaxından aid və riayət nə 560 00:28:47,070 --> 00:28:48,400 Siz problem set var. 561 00:28:48,400 --> 00:28:53,820 Mən bu təcrübə təşviq yoxdur öz və sonra üçün kodu istifadə 562 00:28:53,820 --> 00:28:54,660 cavab yoxlamaq. 563 00:28:54,660 --> 00:28:57,060 Mən hash hərəkət etmək istəyirəm, çünki bölməsində bir nöqtədə masalar. 564 00:28:57,060 --> 00:28:58,150 Beləliklə, biz bütün vasitəsilə almaq bilər. 565 00:28:58,150 --> 00:28:59,960 Amma biz indi kimi çox edəcəyik. 566 00:28:59,960 --> 00:29:00,370 >> OK. 567 00:29:00,370 --> 00:29:01,960 Us başlasın. 568 00:29:01,960 --> 00:29:04,770 Asam, necə biz yeni node yaratmaq edirsiniz? 569 00:29:04,770 --> 00:29:06,810 >> Auditoriya: Siz * struktur yoxdur. 570 00:29:06,810 --> 00:29:09,640 >> JASON Hirschhorn: Beləliklə, biz burada up var. 571 00:29:09,640 --> 00:29:10,040 Oh, sorry. 572 00:29:10,040 --> 00:29:13,530 Siz * struct deyirdik. 573 00:29:13,530 --> 00:29:17,260 >> Auditoriya: Və sonra [? cür?] node və ya c node. 574 00:29:17,260 --> 00:29:17,780 >> JASON Hirschhorn: OK. 575 00:29:17,780 --> 00:29:19,740 Mən bunu new_node zəng etmək üçün gedirəm belə ki, biz ardıcıl qalmaq bilər. 576 00:29:19,740 --> 00:29:22,646 577 00:29:22,646 --> 00:29:33,180 >> Auditoriya: Və siz qurmaq istəyirik ilk node rəhbərlik. 578 00:29:33,180 --> 00:29:33,580 >> JASON Hirschhorn: OK. 579 00:29:33,580 --> 00:29:37,290 Belə ki, indi bu işarə edən - bu hələ yeni node yaratmayıb. 580 00:29:37,290 --> 00:29:41,380 Bu yalnız işarə edir Siyahıda ilk node. 581 00:29:41,380 --> 00:29:42,630 Nasıl yeni node yaratmaq edirsiniz? 582 00:29:42,630 --> 00:29:45,490 583 00:29:45,490 --> 00:29:48,070 Mən yeni node yaratmaq üçün yer lazımdır. 584 00:29:48,070 --> 00:29:49,230 Malloc. 585 00:29:49,230 --> 00:29:51,710 Və necə böyük? 586 00:29:51,710 --> 00:30:00,390 >> Auditoriya: struct ölçüsü. 587 00:30:00,390 --> 00:30:01,150 >> JASON Hirschhorn: The struct ölçüsü. 588 00:30:01,150 --> 00:30:02,400 Və struct nə deyirlər? 589 00:30:02,400 --> 00:30:09,670 590 00:30:09,670 --> 00:30:09,840 >> Auditoriya: Node? 591 00:30:09,840 --> 00:30:11,640 >> JASON Hirschhorn: Node. 592 00:30:11,640 --> 00:30:17,640 Belə ki, malloc (sizeof (node)); bizə yer verir. 593 00:30:17,640 --> 00:30:19,740 Və bu xətt - 594 00:30:19,740 --> 00:30:21,740 bir şey bu xətt düzgün deyil. 595 00:30:21,740 --> 00:30:24,430 Bir struct bir pointer new_node mı? 596 00:30:24,430 --> 00:30:25,650 Ki, ümumi bir adı var. 597 00:30:25,650 --> 00:30:26,520 Bu nədir - 598 00:30:26,520 --> 00:30:27,450 node, dəqiq. 599 00:30:27,450 --> 00:30:29,340 Bu * Bir node var. 600 00:30:29,340 --> 00:30:33,010 Və biz sağ sonra nə etməliyəm biz Asan bir şey malloc? 601 00:30:33,010 --> 00:30:34,476 Biz nə ilk şey nədir? 602 00:30:34,476 --> 00:30:38,850 603 00:30:38,850 --> 00:30:40,320 Nə iş deyil, əgər? 604 00:30:40,320 --> 00:30:42,430 >> Auditoriya: Oh, yoxlamaq əgər node işarə? 605 00:30:42,430 --> 00:30:43,310 >> JASON Hirschhorn: Exactly. 606 00:30:43,310 --> 00:30:46,750 Beləliklə, siz new_node əgər bərabərdir bərabərdir null, biz nə edəcəyik? 607 00:30:46,750 --> 00:30:51,650 608 00:30:51,650 --> 00:30:54,820 Bu bool, bu funksiyanı qaytarır. 609 00:30:54,820 --> 00:30:57,760 Məhz. 610 00:30:57,760 --> 00:30:58,450 Yaxşı görünür. 611 00:30:58,450 --> 00:30:59,680 Orada əlavə bir şey? 612 00:30:59,680 --> 00:31:00,670 Biz sonunda şeyi əlavə edəcəyik. 613 00:31:00,670 --> 00:31:03,160 Amma bu günə qədər yaxşı görünür. 614 00:31:03,160 --> 00:31:06,170 Cari və əvvəlki göstəricilərinə yaradın. 615 00:31:06,170 --> 00:31:08,650 Michael, bu necə etməliyəm? 616 00:31:08,650 --> 00:31:12,810 >> Auditoriya: Siz olardı bir node etmək *. 617 00:31:12,810 --> 00:31:21,800 618 00:31:21,800 --> 00:31:25,502 Siz bir deyil etmək istədiyiniz new_node lakin üçün 619 00:31:25,502 --> 00:31:26,905 qovşaqlarının biz artıq var. 620 00:31:26,905 --> 00:31:27,230 >> JASON Hirschhorn: OK. 621 00:31:27,230 --> 00:31:29,255 Belə ki, cari node biz istəyirik. 622 00:31:29,255 --> 00:31:30,505 Hesab edirəm ki, proq zəng edəcəyik. 623 00:31:30,505 --> 00:31:39,650 624 00:31:39,650 --> 00:31:39,770 Bütün hüquqlar. 625 00:31:39,770 --> 00:31:41,620 Biz saxlamaq istədiyiniz karar biz bilmək lazımdır iki çünki 626 00:31:41,620 --> 00:31:42,870 nə əvvəl var. 627 00:31:42,870 --> 00:31:45,770 628 00:31:45,770 --> 00:31:47,020 Nə üçün başlatılmış almaq edirsiniz? 629 00:31:47,020 --> 00:31:49,874 630 00:31:49,874 --> 00:31:54,180 >> Auditoriya: bizim siyahıda Onların dəyəri. 631 00:31:54,180 --> 00:31:58,090 >> JASON Hirschhorn: The Belə ki, nə bizim siyahıda ilk şey? 632 00:31:58,090 --> 00:32:04,050 Və ya necə biz bilirik olduğu bizim siyahıda başlayan? 633 00:32:04,050 --> 00:32:08,015 >> Auditoriya: o keçdi deyil funksiyası daxil? 634 00:32:08,015 --> 00:32:08,466 >> JASON Hirschhorn: Right. 635 00:32:08,466 --> 00:32:09,716 Bu sağ burada keçildi. 636 00:32:09,716 --> 00:32:15,910 637 00:32:15,910 --> 00:32:18,980 Bu funksiyası keçdi belə əgər siyahısı başlamaq, nə biz olmalıdır 638 00:32:18,980 --> 00:32:21,270 bərabər cari müəyyən? 639 00:32:21,270 --> 00:32:22,110 >> Auditoriya: Siyahı. 640 00:32:22,110 --> 00:32:22,900 >> JASON Hirschhorn: Siyahı. 641 00:32:22,900 --> 00:32:24,090 Dəqiq doğru. 642 00:32:24,090 --> 00:32:26,290 İndi ünvanı malikdir bizim siyahısı start. 643 00:32:26,290 --> 00:32:28,450 Və nə Əvvəlki haqqında? 644 00:32:28,450 --> 00:32:31,920 >> Auditoriya: Siyahı minus bir? 645 00:32:31,920 --> 00:32:32,690 >> JASON Hirschhorn: var əvvəl heç bir şey. 646 00:32:32,690 --> 00:32:34,580 Belə ki, biz heç bir şey demek üçün nə edə bilər? 647 00:32:34,580 --> 00:32:35,050 >> Auditoriya: Null. 648 00:32:35,050 --> 00:32:35,450 >> JASON Hirschhorn: Bəli. 649 00:32:35,450 --> 00:32:37,950 Bu yaxşı bir fikir kimi səslənir. 650 00:32:37,950 --> 00:32:38,360 Perfect. 651 00:32:38,360 --> 00:32:39,630 Təşəkkür edirəm. 652 00:32:39,630 --> 00:32:42,850 Siyahısını gedin. 653 00:32:42,850 --> 00:32:45,490 Constantine, nə qədər biz gedir siyahısını getmək? 654 00:32:45,490 --> 00:32:49,010 >> Auditoriya: Biz null çatmaq qədər. 655 00:32:49,010 --> 00:32:49,390 >> JASON Hirschhorn: OK. 656 00:32:49,390 --> 00:32:50,430 Belə ki, əgər loop üçün isə. 657 00:32:50,430 --> 00:32:52,200 Biz nə edirik? 658 00:32:52,200 --> 00:32:53,320 >> Auditoriya: Bəlkə bir loop üçün? 659 00:32:53,320 --> 00:32:53,910 >> JASON Hirschhorn: nin loop üçün nə edək. 660 00:32:53,910 --> 00:32:55,870 OK. 661 00:32:55,870 --> 00:33:02,465 >> Auditoriya: Və biz demək - 662 00:33:02,465 --> 00:33:09,764 663 00:33:09,764 --> 00:33:13,390 cari göstərici qədər null bərabər deyil. 664 00:33:13,390 --> 00:33:19,160 >> JASON Hirschhorn: Biz bilirik əgər vəziyyəti, necə biz bir loop yaza bilərsiniz 665 00:33:19,160 --> 00:33:21,740 bu şərtlə ki, off əsaslanır. 666 00:33:21,740 --> 00:33:24,380 Biz bir loop hansı istifadə etməli? 667 00:33:24,380 --> 00:33:25,260 >> Auditoriya: baxmayaraq. 668 00:33:25,260 --> 00:33:25,590 >> JASON Hirschhorn: Bəli. 669 00:33:25,590 --> 00:33:27,130 Based çox əhəmiyyət kəsb edir Siz bildirib nə off. 670 00:33:27,130 --> 00:33:29,430 Biz yalnız biz getmək istəyirsinizsə edəcəyini yalnız şey bilirik, bunu edəcək 671 00:33:29,430 --> 00:33:31,680 bir müddət loop etmək mənada. 672 00:33:31,680 --> 00:33:39,880 Cari bərabər null yoxdur, baxmayaraq dəyəri bu node az olduqda. 673 00:33:39,880 --> 00:33:41,650 Akshar, mənə bu xətti vermək. 674 00:33:41,650 --> 00:33:48,810 675 00:33:48,810 --> 00:33:56,955 >> Auditoriya: Əgər cari-> n n dəyərindən az. 676 00:33:56,955 --> 00:34:00,170 677 00:34:00,170 --> 00:34:03,260 Və ya tərsinə. 678 00:34:03,260 --> 00:34:06,140 Ki, bracket keçin. 679 00:34:06,140 --> 00:34:06,620 >> JASON Hirschhorn: Sorry. 680 00:34:06,620 --> 00:34:08,760 >> Auditoriya: bracket dəyişdirin. 681 00:34:08,760 --> 00:34:10,914 >> JASON Hirschhorn: Belə ki, əgər dəyərindən artıq. 682 00:34:10,914 --> 00:34:18,719 683 00:34:18,719 --> 00:34:22,120 Ki, ilə confusing çünki Yuxarıda şərh, mən gedirəm. 684 00:34:22,120 --> 00:34:22,480 Amma bəli. 685 00:34:22,480 --> 00:34:25,125 Bizim dəyəri bu azdırsa node, biz nə edəcəyik? 686 00:34:25,125 --> 00:34:25,540 Oh. 687 00:34:25,540 --> 00:34:26,710 Mən burada var. 688 00:34:26,710 --> 00:34:27,960 Əvvəl daxil edin. 689 00:34:27,960 --> 00:34:32,080 690 00:34:32,080 --> 00:34:32,370 OK. 691 00:34:32,370 --> 00:34:33,933 Necə ki, biz etməliyəm? 692 00:34:33,933 --> 00:34:34,900 >> Auditoriya: o mənə hələ də varmı? 693 00:34:34,900 --> 00:34:36,150 >> JASON Hirschhorn: Bəli. 694 00:34:36,150 --> 00:34:38,520 695 00:34:38,520 --> 00:34:39,770 >> Auditoriya: Siz - 696 00:34:39,770 --> 00:34:42,909 697 00:34:42,909 --> 00:34:44,159 new_node-> gələn. 698 00:34:44,159 --> 00:34:46,770 699 00:34:46,770 --> 00:34:50,163 >> JASON Hirschhorn: Belə ki, nə var ki, bərabər gedir? 700 00:34:50,163 --> 00:34:52,070 >> Auditoriya: Bu bərabər cari olacaq. 701 00:34:52,070 --> 00:34:53,889 >> JASON Hirschhorn: Exactly. 702 00:34:53,889 --> 00:34:55,730 Və belə ki, digər - 703 00:34:55,730 --> 00:34:56,730 biz yeniləmək başqa nə lazımdır? 704 00:34:56,730 --> 00:34:59,982 >> Auditoriya: keçmiş null bərabər yoxlayın. 705 00:34:59,982 --> 00:35:01,870 >> JASON Hirschhorn: prev varsa - 706 00:35:01,870 --> 00:35:03,730 əgər prev null bərabərdir. 707 00:35:03,730 --> 00:35:05,990 >> Auditoriya: Bu gedən deməkdir müdiri olmaq üçün. 708 00:35:05,990 --> 00:35:06,780 >> JASON Hirschhorn: Deməkdir Bu baş olmaq var. 709 00:35:06,780 --> 00:35:07,620 Beləliklə biz nə etməliyəm? 710 00:35:07,620 --> 00:35:12,510 >> Auditoriya: Biz baş yoxdur new_node bərabərdir. 711 00:35:12,510 --> 00:35:16,690 >> JASON Hirschhorn: Head new_node bərabərdir. 712 00:35:16,690 --> 00:35:20,540 Və niyə siyahı, burada baş? 713 00:35:20,540 --> 00:35:24,940 >> Auditoriya: başçısı qlobal Çünki başlanğıc yeri olan dəyişən,. 714 00:35:24,940 --> 00:35:26,190 >> JASON Hirschhorn: Sweet. 715 00:35:26,190 --> 00:35:33,750 716 00:35:33,750 --> 00:35:34,170 OK. 717 00:35:34,170 --> 00:35:36,150 Və - 718 00:35:36,150 --> 00:35:53,796 >> Auditoriya: Sonra başqa yoxdur prev> Növbəti new_node bərabərdir. 719 00:35:53,796 --> 00:35:55,080 Və sonra doğru qayıtmaq. 720 00:35:55,080 --> 00:35:59,560 721 00:35:59,560 --> 00:36:02,700 >> JASON Hirschhorn: Harada biz new_node son qoydu? 722 00:36:02,700 --> 00:36:04,850 >> Auditoriya: Mən - 723 00:36:04,850 --> 00:36:06,180 Mən başlanğıc seçin. 724 00:36:06,180 --> 00:36:07,430 >> JASON Hirschhorn: Belə ki, nə line? 725 00:36:07,430 --> 00:36:10,000 726 00:36:10,000 --> 00:36:12,598 >> Auditoriya: sonra bəyanat Məlum əgər yoxlanılması. 727 00:36:12,598 --> 00:36:13,057 >> JASON Hirschhorn: Right here? 728 00:36:13,057 --> 00:36:18,335 >> Auditoriya: Mən istədiyiniz new_node-> n dəyərinə bərabərdir. 729 00:36:18,335 --> 00:36:19,585 >> JASON Hirschhorn: yaxşı səslənir. 730 00:36:19,585 --> 00:36:21,740 731 00:36:21,740 --> 00:36:25,090 Yəqin ki, bu mənada edir - biz deyil biz nəyi siyahısı bilmək lazımdır 732 00:36:25,090 --> 00:36:26,280 biz yalnız məşğul olduğunuz çünki bir siyahısı ilə. 733 00:36:26,280 --> 00:36:29,560 Belə ki, daha yaxşı bir funksiyası bəyannamə Bu yalnız bu xilas edir 734 00:36:29,560 --> 00:36:34,360 tamamilə və yalnız daxil baş daxil bir dəyər. 735 00:36:34,360 --> 00:36:35,930 Biz hətta bilmək lazım deyil biz daxil olduğunuz siyahısı 736 00:36:35,930 --> 00:36:39,140 Amma indi üçün davam edəcək sonra yenilənməsi sonra onu dəyişdirmək 737 00:36:39,140 --> 00:36:42,590 slaydlar və Kodu. 738 00:36:42,590 --> 00:36:44,980 Belə ki, indi yaxşı görünür. 739 00:36:44,980 --> 00:36:46,560 Əgər dəyər - bu xətt edə bilər? 740 00:36:46,560 --> 00:36:47,810 Varsa - 741 00:36:47,810 --> 00:36:52,240 742 00:36:52,240 --> 00:36:53,840 Nuhun, burada nə edirsiniz. 743 00:36:53,840 --> 00:36:57,890 744 00:36:57,890 --> 00:37:07,100 >> Auditoriya: dəyər Əgər n Curr-> daha - 745 00:37:07,100 --> 00:37:16,830 746 00:37:16,830 --> 00:37:18,240 >> JASON Hirschhorn: necə biz növbəti node getmək? 747 00:37:18,240 --> 00:37:27,760 748 00:37:27,760 --> 00:37:30,530 >> Auditoriya: Curr-> n edir new_node bərabər. 749 00:37:30,530 --> 00:37:37,630 750 00:37:37,630 --> 00:37:39,195 >> JASON Hirschhorn: Belə n edir struct hansı hissəsi? 751 00:37:39,195 --> 00:37:43,065 752 00:37:43,065 --> 00:37:46,020 Tam. 753 00:37:46,020 --> 00:37:50,420 Və new_node bir node bir göstəricisidir. 754 00:37:50,420 --> 00:37:51,880 Beləliklə, biz proq hansı hissəsi yeniləmək lazımdır? 755 00:37:51,880 --> 00:38:03,900 756 00:38:03,900 --> 00:38:05,400 Deyil n, onda digər hissəsi nədir? 757 00:38:05,400 --> 00:38:21,680 758 00:38:21,680 --> 00:38:22,810 Nuh digər hissəsi budur. 759 00:38:22,810 --> 00:38:23,570 >> Auditoriya: Oh, gələcək. 760 00:38:23,570 --> 00:38:25,645 >> JASON Hirschhorn: Next, dəqiq. 761 00:38:25,645 --> 00:38:26,410 Məhz. 762 00:38:26,410 --> 00:38:28,770 Next doğru biridir. 763 00:38:28,770 --> 00:38:31,540 Və biz başqa nə lazımdır , Nuh yeniləmək üçün? 764 00:38:31,540 --> 00:38:32,840 >> Auditoriya: The göstəricilər. 765 00:38:32,840 --> 00:38:34,840 >> JASON Hirschhorn: Belə ki, biz cari yeniləndi. 766 00:38:34,840 --> 00:38:36,090 >> Auditoriya: Əvvəlki-> gələn. 767 00:38:36,090 --> 00:38:48,160 768 00:38:48,160 --> 00:38:49,410 >> JASON Hirschhorn: Bəli. 769 00:38:49,410 --> 00:38:57,465 770 00:38:57,465 --> 00:38:58,370 OK, biz fasilə lazımdır. 771 00:38:58,370 --> 00:39:02,200 Burada kim bizə kömək edə bilər? 772 00:39:02,200 --> 00:39:03,385 Manu, biz nə etməliyik? 773 00:39:03,385 --> 00:39:05,615 >> Auditoriya: Siz qurmaq üçün var bu proq-> gələn bərabər. 774 00:39:05,615 --> 00:39:09,110 775 00:39:09,110 --> 00:39:11,630 Amma əvvəlki line əvvəl bunu. 776 00:39:11,630 --> 00:39:12,880 >> JASON Hirschhorn: OK. 777 00:39:12,880 --> 00:39:16,590 778 00:39:16,590 --> 00:39:18,260 Başqa bir şey? 779 00:39:18,260 --> 00:39:19,170 Akshar. 780 00:39:19,170 --> 00:39:22,680 >> Auditoriya: Mən sizə etdiyiniz düşünmürəm Növbəti proq-> dəyişdirmək üçün nəzərdə. 781 00:39:22,680 --> 00:39:29,270 Mən sizə Curr bərabərdir üçün nəzərdə etdiyiniz düşünürsünüz Curr-> növbəti node getmək yanında. 782 00:39:29,270 --> 00:39:30,500 >> JASON Hirschhorn: Belə sorry, harada? 783 00:39:30,500 --> 00:39:32,680 Nə line On? 784 00:39:32,680 --> 00:39:33,420 Bu xətt? 785 00:39:33,420 --> 00:39:33,750 >> Auditoriya: Bəli. 786 00:39:33,750 --> 00:39:35,745 Etmək Curr Növbəti Curr-> bərabərdir. 787 00:39:35,745 --> 00:39:39,690 788 00:39:39,690 --> 00:39:43,360 >> JASON Hirschhorn: Belə ki, doğru cari çünki 789 00:39:43,360 --> 00:39:45,220 bir node göstərici. 790 00:39:45,220 --> 00:39:48,550 Və biz onu növbəti qeyd etmək istəyirəm Hal-hazırda əldə nə node 791 00:39:48,550 --> 00:39:49,930 işarə etdi. 792 00:39:49,930 --> 00:39:54,410 Curr özü növbəti var. 793 00:39:54,410 --> 00:39:58,620 Amma biz əgər curr.next yeniləmək üçün, biz faktiki qeyd yenilənməsi olunacaq 794 00:39:58,620 --> 00:40:01,430 özü deyil, bu pointer işarə edilmişdir. 795 00:40:01,430 --> 00:40:02,680 Bu xətti, baxmayaraq. 796 00:40:02,680 --> 00:40:05,160 797 00:40:05,160 --> 00:40:07,330 Avi? 798 00:40:07,330 --> 00:40:09,590 >> Auditoriya: Əvvəlki-> gələn proq bərabərdir. 799 00:40:09,590 --> 00:40:12,500 800 00:40:12,500 --> 00:40:19,440 >> JASON Hirschhorn: Belə ki, yenə, əgər prev a bir node pointer, prev-> gələn nədir 801 00:40:19,440 --> 00:40:23,020 node faktiki göstərici. 802 00:40:23,020 --> 00:40:27,190 Belə ki, bu yenilənməsi olunacaq Curr bir node göstərici. 803 00:40:27,190 --> 00:40:28,570 Biz yeniləmək istəmirəm bir node bir göstərici. 804 00:40:28,570 --> 00:40:30,570 Biz əvvəlki yeniləmək istəyirəm. 805 00:40:30,570 --> 00:40:31,850 Belə ki, necə edə bilərəm? 806 00:40:31,850 --> 00:40:34,250 >> Auditoriya: Bu yalnız prev olardı. 807 00:40:34,250 --> 00:40:34,565 >> JASON Hirschhorn: Right. 808 00:40:34,565 --> 00:40:35,560 Prev bir node bir göstəricisidir. 809 00:40:35,560 --> 00:40:38,750 İndi biz bir onu dəyişən edirik bir node yeni göstərici. 810 00:40:38,750 --> 00:40:40,830 OK us aşağı hərəkət edək. 811 00:40:40,830 --> 00:40:41,940 Nəhayət, bu son vəziyyəti. 812 00:40:41,940 --> 00:40:44,896 Jeff, biz burada nə etməliyəm? 813 00:40:44,896 --> 00:40:47,515 >> Auditoriya: dəyər Əgər Curr-> n bərabər. 814 00:40:47,515 --> 00:40:51,030 815 00:40:51,030 --> 00:40:51,300 >> JASON Hirschhorn: Sorry. 816 00:40:51,300 --> 00:40:52,372 Allah mənim Oh. 817 00:40:52,372 --> 00:40:54,330 Nə? 818 00:40:54,330 --> 00:40:55,580 Value == Curr-> n. 819 00:40:55,580 --> 00:41:01,050 820 00:41:01,050 --> 00:41:02,300 Nə edəcəyik? 821 00:41:02,300 --> 00:41:04,760 822 00:41:04,760 --> 00:41:10,950 >> Auditoriya: Siz bizim new_node azad istədiyiniz, və sonra saxta qayıtmaq ediyorum. 823 00:41:10,950 --> 00:41:21,410 824 00:41:21,410 --> 00:41:23,460 >> JASON Hirschhorn: Bu nə bu günə qədər yazıblar. 825 00:41:23,460 --> 00:41:25,710 Heç bir şey yoxdur biz əvvəl əlavə? 826 00:41:25,710 --> 00:41:35,460 827 00:41:35,460 --> 00:41:35,710 OK. 828 00:41:35,710 --> 00:41:36,960 Nin cəhd edək. 829 00:41:36,960 --> 00:41:44,180 830 00:41:44,180 --> 00:41:46,110 Control son çata bilər qeyri-etibarsız funksiyası. 831 00:41:46,110 --> 00:41:48,310 Avi, nə olub? 832 00:41:48,310 --> 00:41:51,380 >> Auditoriya: Siz geri qoymaq ehtimal edilir isə loop kənarda doğru? 833 00:41:51,380 --> 00:41:53,900 834 00:41:53,900 --> 00:41:54,400 >> JASON Hirschhorn: Mən bilmirəm. 835 00:41:54,400 --> 00:41:54,780 Siz məni istəyirsiniz? 836 00:41:54,780 --> 00:41:55,520 >> Auditoriya: ağla etməyin. 837 00:41:55,520 --> 00:41:56,350 No 838 00:41:56,350 --> 00:41:57,180 >> JASON Hirschhorn: Akshar? 839 00:41:57,180 --> 00:41:59,460 >> Auditoriya: Mən sizə demək düşünürəm sonunda geri yalan qoymaq 840 00:41:59,460 --> 00:42:02,230 isə loop. 841 00:42:02,230 --> 00:42:03,270 >> JASON Hirschhorn: Belə ki, Siz getmək istəyirsiniz? 842 00:42:03,270 --> 00:42:05,270 >> Auditoriya: isə loop xaricində kimi. 843 00:42:05,270 --> 00:42:08,800 Belə ki, o deməkdir ki, isə loop çıxmaq əgər Siz son əldə etdik ki 844 00:42:08,800 --> 00:42:09,980 heç bir şey baş. 845 00:42:09,980 --> 00:42:10,410 >> JASON Hirschhorn: OK. 846 00:42:10,410 --> 00:42:12,340 Beləliklə, biz burada nə etməliyəm? 847 00:42:12,340 --> 00:42:13,702 >> Auditoriya: Siz yalan qayıtmaq orada həmçinin. 848 00:42:13,702 --> 00:42:15,040 >> JASON Hirschhorn: Oh, biz həm yerlərdə bunu? 849 00:42:15,040 --> 00:42:15,650 >> Auditoriya: Bəli. 850 00:42:15,650 --> 00:42:16,900 >> JASON Hirschhorn: OK. 851 00:42:16,900 --> 00:42:24,840 852 00:42:24,840 --> 00:42:26,160 Biz getmək lazımdır? 853 00:42:26,160 --> 00:42:26,980 Allah mənim Oh. 854 00:42:26,980 --> 00:42:27,290 Üzgünüm. 855 00:42:27,290 --> 00:42:28,480 Mən ekran üçün üzr istəyirik. 856 00:42:28,480 --> 00:42:30,530 Bu cür bizə həyata freaking oldu. 857 00:42:30,530 --> 00:42:31,520 Belə bir seçim seçin. 858 00:42:31,520 --> 00:42:35,260 Zero, kodu başına, proqram fit. 859 00:42:35,260 --> 00:42:36,700 Bir şey edər. 860 00:42:36,700 --> 00:42:37,990 Nin üç daxil edək. 861 00:42:37,990 --> 00:42:42,900 862 00:42:42,900 --> 00:42:45,380 The insert uğurlu deyil. 863 00:42:45,380 --> 00:42:46,500 Mən çap gedirəm. 864 00:42:46,500 --> 00:42:48,050 Mən heç bir şey yoxdur. 865 00:42:48,050 --> 00:42:48,450 OK. 866 00:42:48,450 --> 00:42:50,250 Bəlkə yalnız bir fluke idi. 867 00:42:50,250 --> 00:42:52,810 Bir daxil edin. 868 00:42:52,810 --> 00:42:55,770 Uğurlu deyil. 869 00:42:55,770 --> 00:42:57,470 OK. 870 00:42:57,470 --> 00:43:02,400 Nin həqiqətən tez gdb vasitəsilə run edək gedir nə kontrol. 871 00:43:02,400 --> 00:43:06,055 >> Və gdb saxla. / Adı üçün proqram gdb bizi olur. 872 00:43:06,055 --> 00:43:07,610 Bir çox idarə etmək deyilmi? 873 00:43:07,610 --> 00:43:08,560 Flashing? 874 00:43:08,560 --> 00:43:10,400 Yəqin ki. 875 00:43:10,400 --> 00:43:12,760 Gözlərinizi bağlayın və bəzi dərin almaq Əgər yorğun almaq əgər nəfəs 876 00:43:12,760 --> 00:43:13,580 buna baxaraq. 877 00:43:13,580 --> 00:43:14,200 Mən gdb edirəm. 878 00:43:14,200 --> 00:43:15,830 Gdb mən nə ilk şey nədir? 879 00:43:15,830 --> 00:43:17,050 Biz anlamaq üçün var nə burada neler. 880 00:43:17,050 --> 00:43:17,310 Baxaq. 881 00:43:17,310 --> 00:43:21,650 Biz rəqəm altı dəqiqə var neler həyata. 882 00:43:21,650 --> 00:43:22,900 Əsas ayırın. 883 00:43:22,900 --> 00:43:25,950 884 00:43:25,950 --> 00:43:28,130 Və sonra mən nə etməliyəm? 885 00:43:28,130 --> 00:43:29,180 Carlos? 886 00:43:29,180 --> 00:43:31,060 Run. 887 00:43:31,060 --> 00:43:32,250 OK. 888 00:43:32,250 --> 00:43:34,160 Nin bir seçim seçin bildirin. 889 00:43:34,160 --> 00:43:36,330 Və N nə edir? 890 00:43:36,330 --> 00:43:38,480 Next. 891 00:43:38,480 --> 00:43:38,950 Bəli. 892 00:43:38,950 --> 00:43:39,740 >> Auditoriya: siz qeyd mi - 893 00:43:39,740 --> 00:43:45,230 Siz rəhbəri idi ki, demədim başında null başlatılmış. 894 00:43:45,230 --> 00:43:47,140 Amma siz OK idi düşündüm. 895 00:43:47,140 --> 00:43:50,040 896 00:43:50,040 --> 00:43:52,640 >> JASON Hirschhorn: Gidelim - nin baxaq gdb, sonra geri getmək lazımdır. 897 00:43:52,640 --> 00:43:54,910 Əgər siz artıq var kimi səslənir neler haqqında bəzi fikirlər. 898 00:43:54,910 --> 00:43:58,340 Beləliklə, biz bir şey əlavə etmək istəyirəm. 899 00:43:58,340 --> 00:43:59,390 OK. 900 00:43:59,390 --> 00:44:00,150 Biz daxil etdik. 901 00:44:00,150 --> 00:44:00,770 Bir int daxil edin. 902 00:44:00,770 --> 00:44:01,990 Biz üç daxil olacaq. 903 00:44:01,990 --> 00:44:03,000 Və sonra mən bu xətt edirəm. 904 00:44:03,000 --> 00:44:07,030 Necə mən ayıklama başlamaq getmək yoxdur daxil funksiyası məlum? 905 00:44:07,030 --> 00:44:08,280 Allah mənim Oh. 906 00:44:08,280 --> 00:44:10,990 907 00:44:10,990 --> 00:44:12,240 Bir çox var. 908 00:44:12,240 --> 00:44:14,372 909 00:44:14,372 --> 00:44:16,445 Ki, bir çox həyata freaking olunur? 910 00:44:16,445 --> 00:44:19,696 911 00:44:19,696 --> 00:44:21,680 >> Auditoriya: Oh, o, vəfat. 912 00:44:21,680 --> 00:44:22,930 >> JASON Hirschhorn: Mən yalnız onu çıxarmışlar. 913 00:44:22,930 --> 00:44:27,364 914 00:44:27,364 --> 00:44:28,310 OK. 915 00:44:28,310 --> 00:44:29,560 >> Auditoriya: Bəlkə də var tel digər sonu. 916 00:44:29,560 --> 00:44:37,000 917 00:44:37,000 --> 00:44:39,470 >> JASON Hirschhorn: Wow. 918 00:44:39,470 --> 00:44:42,330 Beləliklə, alt xətt - 919 00:44:42,330 --> 00:44:43,470 nə demək idi? 920 00:44:43,470 --> 00:44:46,040 >> Auditoriya: Mən texniki istehza Bu sinif çətinliklər. 921 00:44:46,040 --> 00:44:46,410 >> JASON Hirschhorn: Bilirəm. 922 00:44:46,410 --> 00:44:48,660 Yalnız əgər mən bir hissəsi üzərində nəzarət var idi. 923 00:44:48,660 --> 00:44:49,910 [Işitilemez] 924 00:44:49,910 --> 00:44:54,430 925 00:44:54,430 --> 00:44:55,400 Bu böyük səslənir. 926 00:44:55,400 --> 00:44:58,680 Niyə uşaqlar haqqında düşünür başlamaq deyil biz səhv edə bilərdi, 927 00:44:58,680 --> 00:45:01,140 və biz geri 90 saniyə olacaq. 928 00:45:01,140 --> 00:46:18,160 929 00:46:18,160 --> 00:46:23,010 >> Avica, mən necə getmək üçün xahiş gedirəm onu debug daxilində insert_node. 930 00:46:23,010 --> 00:46:28,940 931 00:46:28,940 --> 00:46:31,460 Biz son off sol harada, belə deyil. 932 00:46:31,460 --> 00:46:35,110 Necə insert_node daxili getmək yoxdur, Avica, neler yoxlamaq? 933 00:46:35,110 --> 00:46:36,360 Nə gdb komanda? 934 00:46:36,360 --> 00:46:41,050 935 00:46:41,050 --> 00:46:42,390 Break daxilində məni deyil. 936 00:46:42,390 --> 00:46:46,200 937 00:46:46,200 --> 00:46:47,130 Marquise bilir? 938 00:46:47,130 --> 00:46:48,240 >> Auditoriya: Nə? 939 00:46:48,240 --> 00:46:51,780 >> JASON Hirschhorn nə gdb komanda Mən bu funksiyası daxilində getmək üçün istifadə? 940 00:46:51,780 --> 00:46:52,070 >> Auditoriya: Addım? 941 00:46:52,070 --> 00:46:55,140 >> JASON Hirschhorn: via addım Me inside edir ki, S.. 942 00:46:55,140 --> 00:46:55,476 OK. 943 00:46:55,476 --> 00:46:58,040 New_node bir yer mallocing. 944 00:46:58,040 --> 00:46:59,120 Bütün onun gedən kimi görünür. 945 00:46:59,120 --> 00:47:00,370 Nin new_node yoxlamaq edək. 946 00:47:00,370 --> 00:47:03,270 947 00:47:03,270 --> 00:47:05,410 Bəzi yaddaş ünvanı var. 948 00:47:05,410 --> 00:47:07,440 Yoxlamaq edək - 949 00:47:07,440 --> 00:47:08,500 bütün doğru deyil. 950 00:47:08,500 --> 00:47:12,220 Belə ki, burada hər şey görünür düzgün iş. 951 00:47:12,220 --> 00:47:14,530 >> Auditoriya: fərqi nədir P və ekran arasında? 952 00:47:14,530 --> 00:47:16,160 >> JASON Hirschhorn: P çap üçün dayanır. 953 00:47:16,160 --> 00:47:19,310 Və belə ki, nə xahiş edirik və bu arasında fərq? 954 00:47:19,310 --> 00:47:22,330 Bu halda, heç bir şey. 955 00:47:22,330 --> 00:47:26,960 Amma ümumiyyətlə var bəzi fərqlər. 956 00:47:26,960 --> 00:47:28,220 Və siz gdb dərslik baxmaq lazımdır. 957 00:47:28,220 --> 00:47:29,560 Lakin bu halda, heç bir şey. 958 00:47:29,560 --> 00:47:31,460 Biz, baxmayaraq ki, çap istifadə edirlər, çünki biz daha çox nə etmək lazım deyil 959 00:47:31,460 --> 00:47:33,960 bir dəyər çap. 960 00:47:33,960 --> 00:47:34,640 >> OK. 961 00:47:34,640 --> 00:47:40,300 Belə ki, biz, bizim kodu xətti 80 var siyahısına bərabər node * proq qəbulu. 962 00:47:40,300 --> 00:47:42,500 Us proq çap edək. 963 00:47:42,500 --> 00:47:45,260 964 00:47:45,260 --> 00:47:46,840 Bu siyahı bərabərdir. 965 00:47:46,840 --> 00:47:48,850 Sweet. 966 00:47:48,850 --> 00:47:49,340 Gözləyin. 967 00:47:49,340 --> 00:47:50,590 Bu bir şey bərabərdir. 968 00:47:50,590 --> 00:47:53,680 969 00:47:53,680 --> 00:47:56,190 Bu doğru görünmür. 970 00:47:56,190 --> 00:47:56,840 Orada getmək. 971 00:47:56,840 --> 00:47:59,470 Bu gdb, sağ, çünki əgər siz bu etdiyiniz xətt var 972 00:47:59,470 --> 00:48:00,330 hələ icra deyil. 973 00:48:00,330 --> 00:48:03,100 Beləliklə, siz həqiqətən yazın lazımdır xətti icra yanında 974 00:48:03,100 --> 00:48:05,230 onun nəticələrini görən əvvəl. 975 00:48:05,230 --> 00:48:06,680 Belə ki, burada biz. 976 00:48:06,680 --> 00:48:09,490 Biz yalnız bu xətt icra, Əvvəlki null bərabərdir. 977 00:48:09,490 --> 00:48:13,590 Belə ki, yenə biz əvvəlki çap əgər biz qəribə bir şey görmək deyil. 978 00:48:13,590 --> 00:48:18,680 Amma biz həqiqətən ki, icra əgər line, sonra baxarıq 979 00:48:18,680 --> 00:48:20,380 ki line işləmişdir ki,. 980 00:48:20,380 --> 00:48:21,060 >> Beləliklə, biz proq var. 981 00:48:21,060 --> 00:48:23,180 , Həm də yaxşı. 982 00:48:23,180 --> 00:48:24,010 Sağ? 983 00:48:24,010 --> 00:48:28,130 İndi biz burada bu xətt istəyirik. 984 00:48:28,130 --> 00:48:29,310 Curr bərabər null deyil isə. 985 00:48:29,310 --> 00:48:31,110 Yaxşı, Curr bərabər nə edir? 986 00:48:31,110 --> 00:48:32,450 Biz yalnız null bərabər gördüm. 987 00:48:32,450 --> 00:48:33,210 Biz onu çap. 988 00:48:33,210 --> 00:48:35,110 Mən bir daha onu çap edəcəyik. 989 00:48:35,110 --> 00:48:36,720 Belə ki, isə loop icra gedir? 990 00:48:36,720 --> 00:48:37,270 >> Auditoriya: Xeyr 991 00:48:37,270 --> 00:48:39,790 >> JASON Hirschhorn: Mən yazdığınız zaman ki, line, biz bütün yol atladı bax 992 00:48:39,790 --> 00:48:41,390 dibinə, yalan qaytarın. 993 00:48:41,390 --> 00:48:44,520 Və sonra biz yalan qayıtmaq olacaq və proqram geri və 994 00:48:44,520 --> 00:48:48,020 gördük kimi nəhayət, çap, daxil uğurlu deyil. 995 00:48:48,020 --> 00:48:51,010 Belə ki, heç nə hər hansı bir fikir var biz bu düzeltmek üçün nə etmək lazımdır? 996 00:48:51,010 --> 00:48:54,200 997 00:48:54,200 --> 00:48:57,570 Mən görmək qədər gözləyin gedirəm əlində bir neçə qalxmaq. 998 00:48:57,570 --> 00:48:58,830 Biz bu icra etməyib. 999 00:48:58,830 --> 00:49:01,660 Unutmayın, bu ilk idi Biz bunu şey. 1000 00:49:01,660 --> 00:49:02,430 Mən bir neçə etmək niyyətində deyiləm. 1001 00:49:02,430 --> 00:49:03,670 Mən bir neçə gedirəm. 1002 00:49:03,670 --> 00:49:04,830 Bir neçə iki deməkdir. 1003 00:49:04,830 --> 00:49:07,620 Mən artıq iki gözləmək lazımdır. 1004 00:49:07,620 --> 00:49:10,690 >> İlk durub, Curr, default null bərabərdir tərəfindən. 1005 00:49:10,690 --> 00:49:14,050 Bu loop yalnız icra Curr null deyil. 1006 00:49:14,050 --> 00:49:18,740 Belə ki, necə bu ətrafında əldə edə bilərsiniz? 1007 00:49:18,740 --> 00:49:19,990 Mən üç əlləri görmək. 1008 00:49:19,990 --> 00:49:28,490 1009 00:49:28,490 --> 00:49:29,780 Mən artıq üç gözləmək lazımdır. 1010 00:49:29,780 --> 00:49:33,460 1011 00:49:33,460 --> 00:49:35,940 Marcus, siz nə düşünürsünüz? 1012 00:49:35,940 --> 00:49:37,730 >> Auditoriya: Yaxşı, siz ehtiyac varsa , bir dəfə daha icra yalnız 1013 00:49:37,730 --> 00:49:39,948 bir do-isə loop dəyişdirmək. 1014 00:49:39,948 --> 00:49:41,250 >> JASON Hirschhorn: OK. 1015 00:49:41,250 --> 00:49:44,240 Ki, baxmayaraq ki, bizim problemi həll edəcək? 1016 00:49:44,240 --> 00:49:47,750 >> Auditoriya: Bu halda heç bir çünki siyahısı boş olması. 1017 00:49:47,750 --> 00:49:52,150 Beləliklə siz yəqin ki, yalnız əlavə etmək lazımdır bir bəyanat ki, əgər loop çıxışları 1018 00:49:52,150 --> 00:49:55,312 sonra sonunda olmalıdır siz qeyd olan siyahısı, 1019 00:49:55,312 --> 00:49:56,562 yalnız onu əlavə edə bilərsiniz. 1020 00:49:56,562 --> 00:49:58,920 1021 00:49:58,920 --> 00:49:59,680 >> JASON Hirschhorn: Mən ki, istəyirəm. 1022 00:49:59,680 --> 00:50:00,500 Ki, hissi verir. 1023 00:50:00,500 --> 00:50:03,390 Loop çıxışları varsa - 1024 00:50:03,390 --> 00:50:04,800 burada yalan qayıtmaq lazımdır, çünki. 1025 00:50:04,800 --> 00:50:08,220 Belə ki, loop çıxışları, onda biz istəyirik bəlkə siyahısına sonu və ya 1026 00:50:08,220 --> 00:50:10,690 heç bir şey var, əgər bir siyahı başlamaq Bu, hansı sonuna kimi eyni. 1027 00:50:10,690 --> 00:50:12,770 Belə ki, indi biz daxil etmək istəyirəm burada bir şey. 1028 00:50:12,770 --> 00:50:17,380 Belə ki, necə kodu, Marcus görünür? 1029 00:50:17,380 --> 00:50:21,600 >> Auditoriya: Əgər siz artıq node var, əgər malloced, yalnız deyə bilər 1030 00:50:21,600 --> 00:50:25,400 new_node-> gələn null çünki bərabərdir Bu sonunda olmalıdır. 1031 00:50:25,400 --> 00:50:27,510 Və ya new_node-> gələn null bərabərdir. 1032 00:50:27,510 --> 00:50:27,765 >> JASON Hirschhorn: OK. 1033 00:50:27,765 --> 00:50:28,190 Üzr istəyirik. 1034 00:50:28,190 --> 00:50:35,760 New_node-> gələn null bərabərdir biz sonunda istəyirik, çünki. 1035 00:50:35,760 --> 00:50:36,460 Ki, bu da qoymaq deyil 1036 00:50:36,460 --> 00:50:37,710 Necə biz siyahısına qoymaq edirsiniz? 1037 00:50:37,710 --> 00:50:46,130 1038 00:50:46,130 --> 00:50:46,460 Sağ. 1039 00:50:46,460 --> 00:50:47,750 Yalnız bərabər qəbulu var. 1040 00:50:47,750 --> 00:50:50,940 No necə, həqiqətən, siyahısına qoymaq? 1041 00:50:50,940 --> 00:50:54,170 Işarə edərək nə siyahısı sonu? 1042 00:50:54,170 --> 00:50:56,090 >> Auditoriya: Head. 1043 00:50:56,090 --> 00:50:57,566 >> JASON Hirschhorn: Bağışlayın? 1044 00:50:57,566 --> 00:50:59,440 >> Auditoriya: Baş işarə edir siyahısı sonuna. 1045 00:50:59,440 --> 00:51:01,480 >> JASON Hirschhorn: heç bir şey var, varsa siyahısı, baş işarə edir 1046 00:51:01,480 --> 00:51:04,170 siyahısı sonu. 1047 00:51:04,170 --> 00:51:06,920 Belə ki, üçün işləmək lazımdır ilk durub. 1048 00:51:06,920 --> 00:51:09,810 Bir neçə var nə haqqında, əgər siyahıda şeyi? 1049 00:51:09,810 --> 00:51:12,470 Biz qurmaq istəmirik Than new_node bərabər rəhbərlik. 1050 00:51:12,470 --> 00:51:13,790 Nə biz orada nə istəyirsiniz? 1051 00:51:13,790 --> 00:51:15,610 Bəli? 1052 00:51:15,610 --> 00:51:16,860 Yəqin ki, əvvəlki. 1053 00:51:16,860 --> 00:51:23,560 1054 00:51:23,560 --> 00:51:24,810 Ki, işləyəcək? 1055 00:51:24,810 --> 00:51:28,950 1056 00:51:28,950 --> 00:51:33,050 Əvvəlki yalnız Xatırladaq ki, bir node bir göstərici. 1057 00:51:33,050 --> 00:51:34,770 Və əvvəlki bir yerli dəyişir. 1058 00:51:34,770 --> 00:51:38,080 Belə ki, bu xətt bir yerli dəyişən müəyyən edəcək, , əvvəlki bərabər və ya 1059 00:51:38,080 --> 00:51:39,380 Bu yeni node işarə. 1060 00:51:39,380 --> 00:51:41,500 Bu, həqiqətən onu qoymaq olmaz Bizim siyahıda olsa. 1061 00:51:41,500 --> 00:51:44,330 Necə ki, bizim siyahıda qoymaq edirsiniz? 1062 00:51:44,330 --> 00:51:45,620 Akchar? 1063 00:51:45,620 --> 00:51:46,870 >> Auditoriya: Mən sizə edirəm cari növbəti-> yoxdur. 1064 00:51:46,870 --> 00:51:50,186 1065 00:51:50,186 --> 00:51:52,550 >> JASON Hirschhorn: OK. 1066 00:51:52,550 --> 00:51:54,010 Curr-> gələn. 1067 00:51:54,010 --> 00:51:58,768 Belə ki, yenə biz aşağı olduğunuz yeganə səbəbi budur ki, nə bərabər cari edir? 1068 00:51:58,768 --> 00:51:59,760 >> Auditoriya: null Bərabər. 1069 00:51:59,760 --> 00:52:01,790 >> JASON Hirschhorn: Və nə biz növbəti null-> əgər olur? 1070 00:52:01,790 --> 00:52:02,810 Biz nə almaq olur? 1071 00:52:02,810 --> 00:52:04,060 Biz bir seqmentasiya günah almaq lazımdır. 1072 00:52:04,060 --> 00:52:06,600 1073 00:52:06,600 --> 00:52:08,880 >> Auditoriya: Do Curr null bərabərdir. 1074 00:52:08,880 --> 00:52:10,760 >> JASON Hirschhorn: Bu eyni şey Önceki kimi, baxmayaraq ki, var, çünki 1075 00:52:10,760 --> 00:52:12,820 biz müəyyən edirik yerli dəyişən Bu yeni node bərabər. 1076 00:52:12,820 --> 00:52:16,680 1077 00:52:16,680 --> 00:52:20,920 Bizim şəkil geri edək bir şey daxil. 1078 00:52:20,920 --> 00:52:25,500 Biz sonunda daxil olduğunuz demək siyahısı, burada belə. 1079 00:52:25,500 --> 00:52:30,010 Biz ki, bir cari göstərici var null işarə və bir əvvəlki point 1080 00:52:30,010 --> 00:52:32,800 ki, 8 işarə edir. 1081 00:52:32,800 --> 00:52:35,330 Belə ki, nə biz Avi, yeniləmək lazımdır? 1082 00:52:35,330 --> 00:52:36,680 >> Auditoriya: Previous-> gələn? 1083 00:52:36,680 --> 00:52:41,980 >> JASON Hirschhorn: Previous-> gələn nə biz yeniləmək istəyirəm, çünki ki, 1084 00:52:41,980 --> 00:52:44,960 həqiqətən onu daxil olacaq siyahının sonu. 1085 00:52:44,960 --> 00:52:47,220 Biz hələ, baxmayaraq ki, bir səhv var biz daxil olacaq ki,. 1086 00:52:47,220 --> 00:52:50,090 Ki, səhv nədir? 1087 00:52:50,090 --> 00:52:50,790 Bəli? 1088 00:52:50,790 --> 00:52:53,860 >> Auditoriya: Bu geri olacaq Bu halda yalan? 1089 00:52:53,860 --> 00:52:56,380 >> JASON Hirschhorn: Oh, edir yalan qayıtmaq olacaq. 1090 00:52:56,380 --> 00:52:57,430 Amma başqa bir səhv var. 1091 00:52:57,430 --> 00:52:58,930 Beləliklə, biz doğru geri qoymaq lazımdır. 1092 00:52:58,930 --> 00:53:01,370 >> Auditoriya: edirmi əvvəlki hələ bərabər siyahısı üst null? 1093 00:53:01,370 --> 00:53:03,645 >> JASON Hirschhorn: Belə əvvəlki hələ çox əvvəlində null bərabərdir. 1094 00:53:03,645 --> 00:53:07,480 1095 00:53:07,480 --> 00:53:10,440 Belə ki, necə ki, artıq əldə edə bilərsiniz? 1096 00:53:10,440 --> 00:53:10,950 Bəli? 1097 00:53:10,950 --> 00:53:15,280 >> Auditoriya: Mən sizə bir çek edə bilər bu halda isə loop görmək əvvəl 1098 00:53:15,280 --> 00:53:16,610 boş siyahısı. 1099 00:53:16,610 --> 00:53:17,000 >> JASON Hirschhorn: OK. 1100 00:53:17,000 --> 00:53:17,710 Belə ki, burada gedək. 1101 00:53:17,710 --> 00:53:18,530 Bir çek etməyin. 1102 00:53:18,530 --> 00:53:19,380 Varsa - 1103 00:53:19,380 --> 00:53:20,770 >> Auditoriya: Belə ki, baş bərabərdir null bərabərdir. 1104 00:53:20,770 --> 00:53:24,300 1105 00:53:24,300 --> 00:53:26,320 >> JASON Hirschhorn: Əgər baş bərabərdir null bərabərdir - 1106 00:53:26,320 --> 00:53:27,790 Bu boş siyahısı ki, əgər bizə lazımdır. 1107 00:53:27,790 --> 00:53:31,090 >> Və sonra siz Auditoriya: nə baş yeni bərabərdir. 1108 00:53:31,090 --> 00:53:34,740 >> JASON Hirschhorn: Head new_node bərabərdir? 1109 00:53:34,740 --> 00:53:35,730 Və başqa nə biz nə etmək lazımdır? 1110 00:53:35,730 --> 00:53:37,020 >> Auditoriya: Və sonra doğru qayıtmaq. 1111 00:53:37,020 --> 00:53:37,535 >> JASON Hirschhorn: Not olduqca. 1112 00:53:37,535 --> 00:53:38,785 Biz bir addım itkin edirik. 1113 00:53:38,785 --> 00:53:41,590 1114 00:53:41,590 --> 00:53:43,710 >> Auditoriya: new_node növbəti null qeyd etmək var. 1115 00:53:43,710 --> 00:53:44,570 >> JASON Hirschhorn: Məhz, Alden. 1116 00:53:44,570 --> 00:53:46,600 Və sonra biz doğru qayıtmaq bilər. 1117 00:53:46,600 --> 00:53:47,560 OK. 1118 00:53:47,560 --> 00:53:51,630 Amma bu hələ şeyi etmək üçün yaxşı bir fikirdir siyahısı sonunda, sağ? 1119 00:53:51,630 --> 00:53:51,950 Bütün hüquqlar. 1120 00:53:51,950 --> 00:53:54,450 Biz hələ həqiqətən almaq bilər siyahısı sonuna. 1121 00:53:54,450 --> 00:53:57,870 Biz etdiyiniz əgər bu kodu gözəl siyahısı son və bəzi var 1122 00:53:57,870 --> 00:53:59,120 siyahıda şeyi? 1123 00:53:59,120 --> 00:54:01,830 1124 00:54:01,830 --> 00:54:02,040 Sağ? 1125 00:54:02,040 --> 00:54:03,540 Biz hələ Marcus fikrim yoxdur, çünki. 1126 00:54:03,540 --> 00:54:06,870 Biz bu loop çıxmaq ola bilər, çünki biz siyahısına sonunda istəyirik. 1127 00:54:06,870 --> 00:54:09,308 Belə ki, biz hələ də bu istəyirik burada aşağı kod? 1128 00:54:09,308 --> 00:54:10,520 >> Auditoriya: Bəli. 1129 00:54:10,520 --> 00:54:11,000 >> JASON Hirschhorn: Bəli. 1130 00:54:11,000 --> 00:54:14,190 Və biz bu dəyişdirmək lazımdır? 1131 00:54:14,190 --> 00:54:15,440 True. 1132 00:54:15,440 --> 00:54:19,580 1133 00:54:19,580 --> 00:54:21,640 Ki, səs yaxşı hər kəs üçün bu günə qədər? 1134 00:54:21,640 --> 00:54:22,420 Kimsə Yox Mu hər hansı bir - 1135 00:54:22,420 --> 00:54:23,480 Avi, siz əlavə bir şey var? 1136 00:54:23,480 --> 00:54:23,920 >> Auditoriya: Xeyr 1137 00:54:23,920 --> 00:54:25,276 >> JASON Hirschhorn: OK. 1138 00:54:25,276 --> 00:54:27,010 Beləliklə, biz dəyişikliklər bir neçə etdik. 1139 00:54:27,010 --> 00:54:29,540 Biz əvvəl bu çek etdik boş siyahısı üçün getdi. 1140 00:54:29,540 --> 00:54:31,790 Beləliklə, biz boş siyahısı qayğı etdik. 1141 00:54:31,790 --> 00:54:35,500 Və burada biz daxil qayğı siyahısı sonunda bir şey. 1142 00:54:35,500 --> 00:54:38,930 Belə ki, bu isə loop götürülməsi kimi görünür arasında şeyi qayğı, 1143 00:54:38,930 --> 00:54:41,920 haradasa siyahısında əgər şeylər siyahısında var. 1144 00:54:41,920 --> 00:54:42,280 >> OK. 1145 00:54:42,280 --> 00:54:44,310 Us yenidən bu proqramı run edək. 1146 00:54:44,310 --> 00:54:50,170 1147 00:54:50,170 --> 00:54:50,755 Uğurlu deyil. 1148 00:54:50,755 --> 00:54:52,190 >> Auditoriya: Siz onu etməyib. 1149 00:54:52,190 --> 00:54:53,940 >> JASON Hirschhorn: Oh, Mən bunu etməyib. 1150 00:54:53,940 --> 00:54:56,250 Yaxşı point, Michael. 1151 00:54:56,250 --> 00:54:57,500 Nin əlaqəli etmək əlavə edək. 1152 00:54:57,500 --> 00:55:01,590 1153 00:55:01,590 --> 00:55:04,830 Line 87 bir səhv var. 1154 00:55:04,830 --> 00:55:05,420 Line 87. 1155 00:55:05,420 --> 00:55:06,600 Alden, bu mənə verdi xətt idi. 1156 00:55:06,600 --> 00:55:08,962 Nə oldu? 1157 00:55:08,962 --> 00:55:10,710 >> Auditoriya: Bu null olmalıdır. 1158 00:55:10,710 --> 00:55:11,000 >> JASON Hirschhorn: Əla. 1159 00:55:11,000 --> 00:55:11,630 Məhz hüququ. 1160 00:55:11,630 --> 00:55:13,290 Bu null olmalıdır. 1161 00:55:13,290 --> 00:55:15,210 Yenə edək. 1162 00:55:15,210 --> 00:55:17,220 Tərtib edir. 1163 00:55:17,220 --> 00:55:17,890 OK. 1164 00:55:17,890 --> 00:55:19,400 Nin üç daxil edək. 1165 00:55:19,400 --> 00:55:20,570 Daxil uğurlu oldu. 1166 00:55:20,570 --> 00:55:21,660 Onu çap edək. 1167 00:55:21,660 --> 00:55:23,590 Oh, yalnız biz yoxlamaq bilər. 1168 00:55:23,590 --> 00:55:25,500 Amma biz görülən deyil hələ funksiyası çap. 1169 00:55:25,500 --> 00:55:27,840 Nin başqa bir şey daxil edək. 1170 00:55:27,840 --> 00:55:29,090 Biz nə daxil olmalıdır? 1171 00:55:29,090 --> 00:55:31,120 1172 00:55:31,120 --> 00:55:31,940 >> Auditoriya: Seven. 1173 00:55:31,940 --> 00:55:33,340 >> JASON Hirschhorn: Seven? 1174 00:55:33,340 --> 00:55:34,590 >> Auditoriya: Bəli. 1175 00:55:34,590 --> 00:55:38,680 1176 00:55:38,680 --> 00:55:39,780 >> JASON Hirschhorn: Biz San günah var. 1177 00:55:39,780 --> 00:55:43,760 Beləliklə, biz bir var, lakin biz aydın iki ala bilmir. 1178 00:55:43,760 --> 00:55:45,690 Bu 5:07 edir. 1179 00:55:45,690 --> 00:55:48,370 Beləliklə, biz bu debug bilər üç dəqiqə. 1180 00:55:48,370 --> 00:55:51,240 Amma burada bizi tərk gedirəm və masalar hash hərəkət. 1181 00:55:51,240 --> 00:55:54,290 Ancaq yenə də, bu kodu cavablar Mən bir az sizə e-poçt. 1182 00:55:54,290 --> 00:55:55,440 Biz buna çox yaxındır. 1183 00:55:55,440 --> 00:55:58,300 Mən anlamaq üçün təşviq nə burada gedən və bunu düzeltmek edir. 1184 00:55:58,300 --> 00:56:02,400 Mən sizə bu kodu e-poçt göndereceğiz plus həll yaxşı - 1185 00:56:02,400 --> 00:56:03,670 sonra yəqin ki, həll. 1186 00:56:03,670 --> 00:56:05,110 Ilk bu kodu. 1187 00:56:05,110 --> 00:56:08,290 >> Mən biz əvvəl nə etmək istədiyiniz digər şey Salonun biz bir şey azad deyil, var. 1188 00:56:08,290 --> 00:56:10,370 Mən sizə göstərmək istəyirəm nə valgrind kimi görünür. 1189 00:56:10,370 --> 00:56:14,310 Biz valgrind sərhədləri run əgər Bizim proqram haqqında. / bağlıdır. 1190 00:56:14,310 --> 00:56:22,540 Yenə də, bu slayd görə, biz bir növü ilə valgrind run lazımdır 1191 00:56:22,540 --> 00:56:26,410 bu halda seçim, - Sızması kontrol = tam. 1192 00:56:26,410 --> 00:56:27,660 Belə ki, valgrind yazmaq bildirin - Sızması kontrol = tam. 1193 00:56:27,660 --> 00:56:31,910 1194 00:56:31,910 --> 00:56:35,080 Belə ki, bu valgrind davam edəcək Bizim proqram haqqında. 1195 00:56:35,080 --> 00:56:37,000 İndi proqram həqiqətən çalışır. 1196 00:56:37,000 --> 00:56:40,190 Beləliklə, biz yalnız kimi run olacaq əvvəl daxil bir şey qoymaq 1197 00:56:40,190 --> 00:56:40,830 Mən üç qoymaq üçün gedirəm. 1198 00:56:40,830 --> 00:56:41,790 Ki, işləyir. 1199 00:56:41,790 --> 00:56:43,202 Mən bir şey qoymaq üçün cəhd etmək niyyətində deyiləm biz olacaq başqa, çünki 1200 00:56:43,202 --> 00:56:44,710 bu halda bir seg saxta almaq. 1201 00:56:44,710 --> 00:56:46,700 Mən yalnız çıxmaq üçün gedirəm. 1202 00:56:46,700 --> 00:56:50,160 >> İndi burada aşağı görmək sızma və yığın xülasə. 1203 00:56:50,160 --> 00:56:52,310 Bu yaxşı şeylər var Siz kontrol etmək istəyirəm. 1204 00:56:52,310 --> 00:56:56,780 Belə ki, yığın xülasə - o deyir ki, istifadə Çıxışda - bir blok səkkiz bayt. 1205 00:56:56,780 --> 00:56:58,370 Ki, bir blok edir node biz malloced. 1206 00:56:58,370 --> 00:57:02,230 Michael, bir node səkkiz əvvəl bildirib bu tam var sokması, çünki 1207 00:57:02,230 --> 00:57:02,680 və göstərici. 1208 00:57:02,680 --> 00:57:04,550 Belə ki, bizim node var. 1209 00:57:04,550 --> 00:57:08,170 Və sonra biz malloc istifadə edib yeddi dəfə və biz azad 1210 00:57:08,170 --> 00:57:08,940 bir şey altı dəfə. 1211 00:57:08,940 --> 00:57:13,680 Amma biz pulsuz çağırıb heç vaxt, mən yoxdur Bu söhbət nə fikir. 1212 00:57:13,680 --> 00:57:18,490 >> Amma bu demək kifayətdir ki, zaman proqram çalışır, malloc çağrıldığını 1213 00:57:18,490 --> 00:57:20,330 Bəzi yerlərdə ki, biz narahat ehtiyac yoxdur. 1214 00:57:20,330 --> 00:57:22,460 Belə ki, malloc yəqin adlanırdı bəzi yerlərdə. 1215 00:57:22,460 --> 00:57:24,480 Biz narahat ehtiyac yoxdur. 1216 00:57:24,480 --> 00:57:26,240 Amma bu həqiqətən bizə edir. 1217 00:57:26,240 --> 00:57:27,380 Bu ilk line us edir. 1218 00:57:27,380 --> 00:57:28,320 Biz ki, blok ayrıldı. 1219 00:57:28,320 --> 00:57:30,330 Və ki, burada edə bilərsiniz sızma xülasə. 1220 00:57:30,330 --> 00:57:31,950 Still müyəssər - 1221 00:57:31,950 --> 00:57:32,930 bir blok səkkiz bayt. 1222 00:57:32,930 --> 00:57:34,100 Ki, yaddaş deməkdir - 1223 00:57:34,100 --> 00:57:35,730 ki, yaddaş sızan var. 1224 00:57:35,730 --> 00:57:37,570 Konkret itirdi - 1225 00:57:37,570 --> 00:57:38,770 yaxşı bir şey üçün itirilmiş olunur. 1226 00:57:38,770 --> 00:57:40,590 Ümumiyyətlə, siz olacaq orada bir şey görmək. 1227 00:57:40,590 --> 00:57:44,780 Hələ müyəssər ümumiyyətlə olduğu Siz lazımdır harada, şeyi görəcəksiniz 1228 00:57:44,780 --> 00:57:48,900 nə code olmalıdır görmək üçün baxmaq azad ancaq azad unuttum var. 1229 00:57:48,900 --> 00:57:53,170 >> Və sonra bu, belə deyil, əgər biz pulsuz hər şeyi əgər, 1230 00:57:53,170 --> 00:57:54,360 biz kontrol edə bilərsiniz. 1231 00:57:54,360 --> 00:57:57,330 Yalnız proqram run edək bir şey qoyaraq deyil. 1232 00:57:57,330 --> 00:57:59,800 Siz çıxış istifadə burada görəcəksiniz - 1233 00:57:59,800 --> 00:58:01,310 sıfır blokları sıfır bayt. 1234 00:58:01,310 --> 00:58:06,310 Yəni biz sol heç bir şey idi deməkdir Bu proqram zaman tərk. 1235 00:58:06,310 --> 00:58:12,090 Belə ki, pset6 dönüş əvvəl, valgrind run və əmin yoxdur etmək 1236 00:58:12,090 --> 00:58:15,310 hər hansı bir yaddaş proqram sızması. 1237 00:58:15,310 --> 00:58:17,910 Siz valgrind ilə hər hansı bir sualınız varsa, çatmaq üçün çekinmeyin. 1238 00:58:17,910 --> 00:58:18,700 Amma bu onu necə istifadə edir. 1239 00:58:18,700 --> 00:58:20,890 Çox sadə - Siz görmek çıxış istifadə var - 1240 00:58:20,890 --> 00:58:22,270 Hər hansı bir blok hər hansı bir bytes. 1241 00:58:22,270 --> 00:58:27,890 1242 00:58:27,890 --> 00:58:29,580 >> Beləliklə, biz insert node iş idi. 1243 00:58:29,580 --> 00:58:33,840 Mən burada iki digər funksiyaları var idi - qovşaqlarının və pulsuz qovşaqlarının çap. 1244 00:58:33,840 --> 00:58:37,780 Yenə bu ki, funksiyaları siz təcrübə üçün yaxşı olacaq 1245 00:58:37,780 --> 00:58:40,990 onlar sizə yalnız kömək edəcək, çünki bu nümunə təlimlər, həm də 1246 00:58:40,990 --> 00:58:42,180 problemin müəyyən. 1247 00:58:42,180 --> 00:58:44,230 Onlar hər şeyi olduqca yaxından xəritəsi Siz nə olacaq 1248 00:58:44,230 --> 00:58:45,010 problem müəyyən. 1249 00:58:45,010 --> 00:58:47,640 Amma əmin etmək istəyirəm biz hər şeyə toxunmaq. 1250 00:58:47,640 --> 00:58:50,400 Və hash masalar da vacibdir biz bölməsində bu işle 1251 00:58:50,400 --> 00:58:51,980 həftə - və ya problem set. 1252 00:58:51,980 --> 00:58:55,200 >> Belə ki, biz bölmə bitirmək olacaq hash masalar söhbət. 1253 00:58:55,200 --> 00:58:58,140 Fark Əgər mən bir az hash table. 1254 00:58:58,140 --> 00:59:00,020 Yəni biz söhbət etdiyiniz nə deyil Lakin, haqqında. 1255 00:59:00,020 --> 00:59:03,540 Biz müxtəlif gedir hash masalar növü. 1256 00:59:03,540 --> 00:59:07,300 Və onun əsas, bir hash masa bir çox bir şey deyil 1257 00:59:07,300 --> 00:59:08,860 array plus bir hash funksiyası. 1258 00:59:08,860 --> 00:59:11,150 Biz yalnız bir bit üçün danışmaq olacaq hamı nə anlayır etmək 1259 00:59:11,150 --> 00:59:12,110 hash funksiyası var. 1260 00:59:12,110 --> 00:59:15,420 Və mən ki, indi söyləyirəm iki şeyi daha heç bir şey - 1261 00:59:15,420 --> 00:59:18,590 bir sıra və bir hash funksiyası. 1262 00:59:18,590 --> 00:59:20,716 Və burada addımlar vasitəsilə bu fəaliyyət göstərir. 1263 00:59:20,716 --> 00:59:31,560 1264 00:59:31,560 --> 00:59:32,810 >> Bizim array var. 1265 00:59:32,810 --> 00:59:38,460 1266 00:59:38,460 --> 00:59:39,460 Bizim funksiyası var. 1267 00:59:39,460 --> 00:59:43,180 Xüsusilə, hash funksiyaları lazımdır Bu şeyi bir neçə etmək. 1268 00:59:43,180 --> 00:59:45,040 Mən xüsusi danışmaq üçün gedirəm bu problem müəyyən. 1269 00:59:45,040 --> 00:59:46,450 Bu yəqin ki, olacaq simli almaq. 1270 00:59:46,450 --> 00:59:50,570 1271 00:59:50,570 --> 00:59:51,770 Və nə geri olacaq? 1272 00:59:51,770 --> 00:59:52,640 Nə data type? 1273 00:59:52,640 --> 00:59:54,260 Alden? 1274 00:59:54,260 --> 00:59:55,760 Sizin hash funksiyası qayıtmaq? 1275 00:59:55,760 --> 00:59:58,760 Tam. 1276 00:59:58,760 --> 01:00:01,700 Belə ki, bu nə hash edir masa ibarətdir - 1277 01:00:01,700 --> 01:00:05,430 serialın şəklində bir masa və bir hash funksiyası. 1278 01:00:05,430 --> 01:00:06,010 Necə işləyir? 1279 01:00:06,010 --> 01:00:07,300 Bu üç addımlar çalışır. 1280 01:00:07,300 --> 01:00:08,740 Biz bir əsas verir. 1281 01:00:08,740 --> 01:00:11,470 Bu halda, biz bir string verəcəyik. 1282 01:00:11,470 --> 01:00:18,140 Biz addım bir başına hash funksiyası zəng əsas və biz bir dəyər almaq. 1283 01:00:18,140 --> 01:00:20,310 >> Xüsusilə, biz demək lazımdır biz bir tam almaq. 1284 01:00:20,310 --> 01:00:25,630 Ki, tam, çox xüsusi var ki, tam ola bilər nə məhdudiyyətlər. 1285 01:00:25,630 --> 01:00:28,880 Bu, məsələn, bizim array ölçüsü üç edir. 1286 01:00:28,880 --> 01:00:32,330 Belə ki, tam nə nömrələri ola bilər. 1287 01:00:32,330 --> 01:00:35,970 Üçün etibarlı dəyərlər aralığında nədir ki, tam, bu qaytarılması növü 1288 01:00:35,970 --> 01:00:37,220 funksiyası hash? 1289 01:00:37,220 --> 01:00:40,440 1290 01:00:40,440 --> 01:00:42,110 Zero, bir və iki. 1291 01:00:42,110 --> 01:00:46,060 Hash funksiyası point etmək serialda yer anlamaq 1292 01:00:46,060 --> 01:00:47,790 bizim əsas gedir yerləşir. 1293 01:00:47,790 --> 01:00:51,290 Yalnız üç mümkün var burada yerləri - 1294 01:00:51,290 --> 01:00:52,130 sıfır, bir, ya iki. 1295 01:00:52,130 --> 01:00:55,360 Belə ki, bu funksiya daha yaxşı qaytarılması sıfır, bir, ya iki. 1296 01:00:55,360 --> 01:00:58,740 Bu array bəzi etibarlı indice. 1297 01:00:58,740 --> 01:01:02,770 >> Və sonra, qaytarır harada asılı olaraq açıq orada array bilərsiniz 1298 01:01:02,770 --> 01:01:03,730 dəyəri bracket. 1299 01:01:03,730 --> 01:01:05,800 Biz əsas qoymaq harada var. 1300 01:01:05,800 --> 01:01:11,280 Beləliklə, biz balqabaq atmaq, Biz sıfır çıxmaq. 1301 01:01:11,280 --> 01:01:15,540 Array bracket 0, biz balqabaq qoymaq. 1302 01:01:15,540 --> 01:01:21,070 Biz bir çıxmaq, pişiklər atmaq. 1303 01:01:21,070 --> 01:01:24,110 Biz bir pişik qoymaq. 1304 01:01:24,110 --> 01:01:25,480 Biz hörümçək qoydu. 1305 01:01:25,480 --> 01:01:26,710 Biz iki çıxmaq. 1306 01:01:26,710 --> 01:01:30,200 Biz array bracket iki at hörümçək qoydu. 1307 01:01:30,200 --> 01:01:32,300 Bu, belə gözəl olardı bu kimi çalışmışdır. 1308 01:01:32,300 --> 01:01:35,570 Amma təəssüf ki, biz görəcəksiniz kimi Bu bir az daha mürəkkəb var. 1309 01:01:35,570 --> 01:01:37,570 >> Biz orada hər hansı bir sualınız almaq əvvəl bu əsas 1310 01:01:37,570 --> 01:01:38,820 bir hash masa set-up? 1311 01:01:38,820 --> 01:01:49,050 1312 01:01:49,050 --> 01:01:51,940 Bu, məhz bir resim deyil biz board çəkdi nə. 1313 01:01:51,940 --> 01:01:55,420 Amma bəri biz, board onu çəkdi bunun getmək niyyətində deyiləm. 1314 01:01:55,420 --> 01:02:00,430 Əsasən düymələri, sehrli qara qutusu - və ya bu halda, cürə qutusu - Bir 1315 01:02:00,430 --> 01:02:02,410 hash funksiyası buketler onlara qoyur. 1316 01:02:02,410 --> 01:02:04,690 Bu misalda biz istəyirik ad qoyulması deyil. 1317 01:02:04,690 --> 01:02:07,880 Biz bağlı telefon qoyulması edirik bucket adı sayı. 1318 01:02:07,880 --> 01:02:10,430 Amma çox yaxşı bilər yalnız bucket adını qoydu. 1319 01:02:10,430 --> 01:02:12,950 >> Bu nə yalnız bir şəkil biz board çəkdi. 1320 01:02:12,950 --> 01:02:14,460 Biz baxmayaraq, potensial pitfalls var. 1321 01:02:14,460 --> 01:02:17,470 Və iki xüsusi var Mən artıq getmək istəyirəm ki, slaydlar. 1322 01:02:17,470 --> 01:02:20,230 Birinci haqqında bir hash funksiyası. 1323 01:02:20,230 --> 01:02:22,620 Belə ki, sual nə yaxşı hash funksiyası edir? 1324 01:02:22,620 --> 01:02:24,220 Mən iki cavab vermək. 1325 01:02:24,220 --> 01:02:26,630 Bu ilk deterministic var ki. 1326 01:02:26,630 --> 01:02:29,660 Hash funksiyaları kontekstində, Bu nə deməkdir? 1327 01:02:29,660 --> 01:02:37,840 1328 01:02:37,840 --> 01:02:39,282 Bəli? 1329 01:02:39,282 --> 01:02:42,850 >> Auditoriya: Bu tapa bilərsiniz daimi vaxt index? 1330 01:02:42,850 --> 01:02:43,810 >> JASON Hirschhorn: Bu Bu nə deməkdir deyil. 1331 01:02:43,810 --> 01:02:44,725 Amma yaxşı bir tahmin var. 1332 01:02:44,725 --> 01:02:46,100 Başqa heç bir tahmin var Bu nə deməkdir? 1333 01:02:46,100 --> 01:02:47,780 Yaxşı bir hash funksiyası deterministic edir? 1334 01:02:47,780 --> 01:02:48,280 Annie? 1335 01:02:48,280 --> 01:02:51,680 >> Auditoriya: əsas yalnız eşlenen bilər ki, hash cədvəldə bir yerə. 1336 01:02:51,680 --> 01:02:53,070 >> JASON Hirschhorn: var doğru. 1337 01:02:53,070 --> 01:02:57,430 Siz balqabaq qoymaq hər zaman, həmişə sıfır qaytarır. 1338 01:02:57,430 --> 01:03:01,660 Siz balqabaq və hash qoymaq əgər funksiyası sıfır qaytarır, lakin var 1339 01:03:01,660 --> 01:03:06,060 bir şey qaytarılması ehtimalı sıfır başqa böyük - 1340 01:03:06,060 --> 01:03:09,280 belə ki, bəlkə bəzən bir qayıda bilər və ya iki digər dəfə - 1341 01:03:09,280 --> 01:03:11,100 yaxşı bir hash funksiyası deyil. 1342 01:03:11,100 --> 01:03:11,800 Siz doğru edirik. 1343 01:03:11,800 --> 01:03:15,680 Sizin hash funksiyası qayıtmaq lazımdır Bu halda eyni dəqiq tam, 1344 01:03:15,680 --> 01:03:17,780 eyni dəqiq string. 1345 01:03:17,780 --> 01:03:22,210 >> Bəlkə eyni dəqiq tam qaytarır eyni dəqiq simli üçün 1346 01:03:22,210 --> 01:03:24,430 asılı olmayaraq kapitallaşma. 1347 01:03:24,430 --> 01:03:27,980 Lakin bu halda o, hələ də var deterministic çünki çox şeylər 1348 01:03:27,980 --> 01:03:29,350 eyni dəyər üzərində eşlenen olunur. 1349 01:03:29,350 --> 01:03:30,170 Ki, gözəl. 1350 01:03:30,170 --> 01:03:32,615 Kimi uzun yalnız var bir giriş üçün çıxdı. 1351 01:03:32,615 --> 01:03:35,630 1352 01:03:35,630 --> 01:03:36,350 >> OK. 1353 01:03:36,350 --> 01:03:38,340 İkinci odur ki, bu etibarlı göstəriciləri qaytarır. 1354 01:03:38,340 --> 01:03:40,220 Biz əvvəllər gündəmə gətirdi. 1355 01:03:40,220 --> 01:03:41,860 Bu hash funksiyası - 1356 01:03:41,860 --> 01:03:43,710 boy oh - 1357 01:03:43,710 --> 01:03:46,840 bir hash funksiyası olmalıdır etibarlı göstəriciləri qayıtmaq. 1358 01:03:46,840 --> 01:03:47,740 Belə demək - 1359 01:03:47,740 --> 01:03:48,990 nin bu misal geri gedək. 1360 01:03:48,990 --> 01:03:52,580 1361 01:03:52,580 --> 01:03:57,540 Mənim hash funksiyası sayar sözü məktublar. 1362 01:03:57,540 --> 01:03:58,380 Bu hash funksiyası var. 1363 01:03:58,380 --> 01:03:59,740 Və tam qaytarır. 1364 01:03:59,740 --> 01:04:04,280 Mən söz var Belə ki, bu bir geri olacaq. 1365 01:04:04,280 --> 01:04:06,900 Və burada A qoymaq olacaq. 1366 01:04:06,900 --> 01:04:09,430 Mən söz yarasa qoymaq əgər? 1367 01:04:09,430 --> 01:04:11,310 Bu üç geri olacaq. 1368 01:04:11,310 --> 01:04:12,560 Harada bat getmək edir? 1369 01:04:12,560 --> 01:04:18,730 1370 01:04:18,730 --> 01:04:19,750 >> Uyğun deyil. 1371 01:04:19,750 --> 01:04:21,000 Amma bu, haradasa getmək lazımdır. 1372 01:04:21,000 --> 01:04:23,340 Bu, bütün sonra, mənim hash table, və hər şey bir yerdə getmək lazımdır. 1373 01:04:23,340 --> 01:04:24,590 Belə ki, burada bat getmək lazımdır? 1374 01:04:24,590 --> 01:04:28,020 1375 01:04:28,020 --> 01:04:28,710 Hər hansı bir fikir? 1376 01:04:28,710 --> 01:04:29,450 Guesses? 1377 01:04:29,450 --> 01:04:30,280 Yaxşı guesses? 1378 01:04:30,280 --> 01:04:31,220 >> Auditoriya: Zero. 1379 01:04:31,220 --> 01:04:32,120 >> JASON Hirschhorn: Niyə sıfır? 1380 01:04:32,120 --> 01:04:35,990 >> Auditoriya: Çünki üç modulo üç sıfır? 1381 01:04:35,990 --> 01:04:38,620 >> JASON Hirschhorn: Üç modulo üç sıfır. 1382 01:04:38,620 --> 01:04:40,810 Böyük bir tahmin, ki, doğru deyil. 1383 01:04:40,810 --> 01:04:43,870 Belə ki, bu halda olmalıdır yəqin ki, sıfır getmək. 1384 01:04:43,870 --> 01:04:51,080 Belə ki, yaxşı bir şəkildə təmin etmək üçün bu hash funksiyası yalnız etibarlı göstəriciləri qaytarır 1385 01:04:51,080 --> 01:04:54,580 masa ölçüsü ilə modulunu üçün. 1386 01:04:54,580 --> 01:04:57,360 Siz nə bu yekunları modulunu varsa üç, həmişə almaq olacaq 1387 01:04:57,360 --> 01:05:00,930 sıfır, bir, və iki arasında bir şey. 1388 01:05:00,930 --> 01:05:05,160 Bu həmişə yeddi qaytarır, və əgər həmişə üç modulunu, siz 1389 01:05:05,160 --> 01:05:06,030 həmişə eyni şey almaq üçün gedir. 1390 01:05:06,030 --> 01:05:09,270 >> Belə ki, hələ deterministic var Siz modulunu əgər. 1391 01:05:09,270 --> 01:05:11,420 Amma təmin edəcək ki, siz bir şey almaq heç vaxt - 1392 01:05:11,420 --> 01:05:12,940 yalnış sənaye. 1393 01:05:12,940 --> 01:05:16,840 Ümumiyyətlə, bu modulo baş verməlidir Sizin hash funksiyası daxilində. 1394 01:05:16,840 --> 01:05:18,240 Belə ki, bu barədə narahat ehtiyac yoxdur. 1395 01:05:18,240 --> 01:05:20,555 Siz yalnız təmin edə bilər bu düzgün indice edir. 1396 01:05:20,555 --> 01:05:23,700 1397 01:05:23,700 --> 01:05:26,700 Bu hər hansı bir sual potensial tələ? 1398 01:05:26,700 --> 01:05:36,590 1399 01:05:36,590 --> 01:05:39,060 >> OK. 1400 01:05:39,060 --> 01:05:40,290 Və biz gedin. 1401 01:05:40,290 --> 01:05:42,890 Sonrakı potensial tələ, və Bu böyük biridir. 1402 01:05:42,890 --> 01:05:46,880 Nə əgər iki düymələri xəritəsi eyni dəyəri? 1403 01:05:46,880 --> 01:05:49,350 Belə ki, bu idarə etmək üçün iki yol var. 1404 01:05:49,350 --> 01:05:53,140 1405 01:05:53,140 --> 01:05:56,020 Birinci xətti adlanır Mən ki, yoxlamağa 1406 01:05:56,020 --> 01:05:57,300 artıq getmək niyyətində deyil. 1407 01:05:57,300 --> 01:06:01,120 Amma ilə tanış olmalıdır necə ki, işləyir və nə deyil. 1408 01:06:01,120 --> 01:06:05,610 >> Mən artıq getmək üçün gedirəm ikinci ki, bir çox biridir, çünki 1409 01:06:05,610 --> 01:06:08,290 insanlar yəqin ki, həlledici sona çatacaq onların problem set istifadə etmək. 1410 01:06:08,290 --> 01:06:09,820 Əlbəttə ki, yoxdur. 1411 01:06:09,820 --> 01:06:15,280 Amma problem dəsti, bir çox insanlar üçün bir hash masa yaratmaq üçün seçə edirlər 1412 01:06:15,280 --> 01:06:17,950 həyata keçirilməsi üçün ayrı zəncirləmə ilə onların lüğət. 1413 01:06:17,950 --> 01:06:21,390 Belə ki, bu nə deməkdir artıq getmək olacaq bir hash masa yaratmaq üçün 1414 01:06:21,390 --> 01:06:23,890 ayrı-ayrı chaining. 1415 01:06:23,890 --> 01:06:26,260 >> Mən balqabaq qoymaq. 1416 01:06:26,260 --> 01:06:29,560 Bu sıfır qaytarır. 1417 01:06:29,560 --> 01:06:31,410 Mən burada balqabaq qoymaq. 1418 01:06:31,410 --> 01:06:35,880 1419 01:06:35,880 --> 01:06:37,930 Sonra qoymaq - 1420 01:06:37,930 --> 01:06:39,922 başqa Halloween temalı şey nədir? 1421 01:06:39,922 --> 01:06:42,200 >> Auditoriya: Candy. 1422 01:06:42,200 --> 01:06:42,770 >> JASON Hirschhorn: Candy! 1423 01:06:42,770 --> 01:06:43,910 Bu, böyük bir var. 1424 01:06:43,910 --> 01:06:47,760 Mən konfet, və konfet qoymaq da mənə sıfır verir. 1425 01:06:47,760 --> 01:06:49,350 Mən nə etməliyəm? 1426 01:06:49,350 --> 01:06:51,940 Hər hansı bir fikir? 1427 01:06:51,940 --> 01:06:53,940 Bütün növ bilirik, çünki ayrı nə chaining edir. 1428 01:06:53,940 --> 01:06:55,190 Belə ki, hər hansı bir fikir nə? 1429 01:06:55,190 --> 01:06:58,170 1430 01:06:58,170 --> 01:06:59,110 Bəli. 1431 01:06:59,110 --> 01:07:03,810 >> Auditoriya: string verilməsi əslində hash cədvəldə. 1432 01:07:03,810 --> 01:07:08,910 >> JASON Hirschhorn: Biz gedirik burada yaxşı fikir cəlb edir. 1433 01:07:08,910 --> 01:07:09,340 OK. 1434 01:07:09,340 --> 01:07:12,290 >> Auditoriya: hashtable var [Işitilemez] 1435 01:07:12,290 --> 01:07:16,640 işarə edən göstərici bir siyahının başında. 1436 01:07:16,640 --> 01:07:20,930 Və sonra balqabaq ilk dəyəri var ki bağlı siyahı və konfet ola 1437 01:07:20,930 --> 01:07:22,800 ki bağlı siyahı ikinci dəyər. 1438 01:07:22,800 --> 01:07:23,420 >> JASON Hirschhorn: OK. 1439 01:07:23,420 --> 01:07:24,670 Marcus ki, görkəmli idi. 1440 01:07:24,670 --> 01:07:26,160 Mən ki, qırmaq gedirəm. 1441 01:07:26,160 --> 01:07:28,890 Marcus nə deyib deyil balqabaq üzerine. 1442 01:07:28,890 --> 01:07:30,660 Ki, pis olardı. 1443 01:07:30,660 --> 01:07:33,640 Başqa bir yerdə konfet qoymaq etməyin. 1444 01:07:33,640 --> 01:07:35,390 Biz sıfır həm onları qoymaq olacaq. 1445 01:07:35,390 --> 01:07:37,770 Amma biz ilə məşğul olacaq tərəfindən sıfır onlara qoyaraq 1446 01:07:37,770 --> 01:07:39,395 sıfır siyahısını yaratmaq. 1447 01:07:39,395 --> 01:07:42,430 Və biz bir siyahısını yaratmaq olacaq sıfıra eşlenen ki, hər şey. 1448 01:07:42,430 --> 01:07:47,960 Və biz yaratmaq öyrənildi ən yaxşı yolu inkişaf və shrink bilər ki, bir siyahı 1449 01:07:47,960 --> 01:07:49,840 dinamik ərzində deyil başqa array. 1450 01:07:49,840 --> 01:07:51,510 Belə bir çox ölçülü array. 1451 01:07:51,510 --> 01:07:54,080 Amma yalnız bir bağlı siyahısını yaratmaq üçün. 1452 01:07:54,080 --> 01:07:55,330 >> Belə ki, nə o, təklif - 1453 01:07:55,330 --> 01:07:57,950 1454 01:07:57,950 --> 01:07:59,200 Mən yeni almaq üçün gedirəm - 1455 01:07:59,200 --> 01:08:15,380 1456 01:08:15,380 --> 01:08:19,689 , göstəricilər ilə bir sıra yaratmaq göstəricilər bir sıra. 1457 01:08:19,689 --> 01:08:20,580 OK. 1458 01:08:20,580 --> 01:08:24,180 Hər hansı bir fikir və ya ipucu nə növü Bu göstəricilər olmalıdır? 1459 01:08:24,180 --> 01:08:26,290 Marcus? 1460 01:08:26,290 --> 01:08:27,250 >> Auditoriya: üçün Pointers - 1461 01:08:27,250 --> 01:08:28,609 >> JASON Hirschhorn: siz Çünki bir bağlı siyahı, belə davam etdi - 1462 01:08:28,609 --> 01:08:29,520 >> Auditoriya: Node göstəricilərinə? 1463 01:08:29,520 --> 01:08:30,670 >> JASON Hirschhorn: Node göstəricilər. 1464 01:08:30,670 --> 01:08:32,830 Əgər bizim bağlı olan hər şey siyahı qovşaqlarının sonra onlar 1465 01:08:32,830 --> 01:08:34,370 node göstəricilərinə olmalıdır. 1466 01:08:34,370 --> 01:08:35,939 Onlar ilkin nə bərabər edirsiniz? 1467 01:08:35,939 --> 01:08:36,990 >> Auditoriya: Null. 1468 01:08:36,990 --> 01:08:38,240 >> JASON Hirschhorn: Null. 1469 01:08:38,240 --> 01:08:44,540 1470 01:08:44,540 --> 01:08:46,080 Belə ki, bizim boş şey var. 1471 01:08:46,080 --> 01:08:47,170 Balqabaq qaytarır sıfır. 1472 01:08:47,170 --> 01:08:48,569 Nə edəcəyik? 1473 01:08:48,569 --> 01:08:49,609 Onun vasitəsilə mənə gəzmək? 1474 01:08:49,609 --> 01:08:50,810 Əslində, Marcus artıq mənə verdi. 1475 01:08:50,810 --> 01:08:52,439 Başqası onun vasitəsilə mənə gəzmək. 1476 01:08:52,439 --> 01:08:54,760 Biz nə biz - 1477 01:08:54,760 --> 01:08:56,609 Bu çox oxşar görünür biz yalnız nə etdiklərinizi. 1478 01:08:56,609 --> 01:08:57,396 Avi. 1479 01:08:57,396 --> 01:08:59,090 >> Auditoriya: Mən bir tahmin etmək gedirəm. 1480 01:08:59,090 --> 01:09:01,250 Beləliklə, siz konfet almaq zaman. 1481 01:09:01,250 --> 01:09:01,640 >> JASON Hirschhorn: Bəli. 1482 01:09:01,640 --> 01:09:03,120 Yaxşı, biz balqabaq var. 1483 01:09:03,120 --> 01:09:03,870 Bizim ilk əldə edək. 1484 01:09:03,870 --> 01:09:04,324 Biz balqabaq var. 1485 01:09:04,324 --> 01:09:04,779 >> Auditoriya: OK. 1486 01:09:04,779 --> 01:09:05,880 Balqabaq qaytarır sıfır. 1487 01:09:05,880 --> 01:09:08,770 Belə ki, qoyun. 1488 01:09:08,770 --> 01:09:10,810 Və ya, həqiqətən, siz qoyun bağlı siyahısı. 1489 01:09:10,810 --> 01:09:13,550 >> JASON Hirschhorn: necə etmək bağlı siyahı qoymaq? 1490 01:09:13,550 --> 01:09:15,479 >> Auditoriya: Oh, faktiki syntax? 1491 01:09:15,479 --> 01:09:16,240 >> JASON Hirschhorn: Just gəzmək - 1492 01:09:16,240 --> 01:09:16,740 Daha demək. 1493 01:09:16,740 --> 01:09:19,310 Nə edəcəyik? 1494 01:09:19,310 --> 01:09:22,100 >> Auditoriya: Siz yalnız daxil bu ilk node kimi. 1495 01:09:22,100 --> 01:09:22,675 >> JASON Hirschhorn: OK. 1496 01:09:22,675 --> 01:09:29,069 Belə ki, biz node, balqabaq var. 1497 01:09:29,069 --> 01:09:31,560 İndi nasıl daxil edirsiniz? 1498 01:09:31,560 --> 01:09:34,590 1499 01:09:34,590 --> 01:09:37,090 >> Auditoriya: Siz təyin pointer üçün. 1500 01:09:37,090 --> 01:09:37,970 >> JASON Hirschhorn: Hansı pointer? 1501 01:09:37,970 --> 01:09:39,620 >> Auditoriya: sıfır göstərici. 1502 01:09:39,620 --> 01:09:41,420 >> JASON Hirschhorn: Belə ki, Bu point edir? 1503 01:09:41,420 --> 01:09:42,810 >> Auditoriya: indi null etmək. 1504 01:09:42,810 --> 01:09:43,529 >> JASON Hirschhorn: Yaxşı, Bu null işarə edir. 1505 01:09:43,529 --> 01:09:44,499 Amma balqabaq qoyulması alıram. 1506 01:09:44,499 --> 01:09:46,053 Beləliklə, harada qeyd edilməlidir? 1507 01:09:46,053 --> 01:09:46,880 >> Auditoriya: balqabaq etmək. 1508 01:09:46,880 --> 01:09:47,399 >> JASON Hirschhorn: balqabaq etmək. 1509 01:09:47,399 --> 01:09:48,760 Məhz. 1510 01:09:48,760 --> 01:09:50,010 Belə ki, bu balqabaq göstərir. 1511 01:09:50,010 --> 01:09:52,500 1512 01:09:52,500 --> 01:09:54,250 Və bu göstərici yoxdur balqabaq nöqtədə? 1513 01:09:54,250 --> 01:09:57,986 1514 01:09:57,986 --> 01:09:58,340 Qədər 1515 01:09:58,340 --> 01:09:58,590 >> Auditoriya: Null. 1516 01:09:58,590 --> 01:09:59,210 >> JASON Hirschhorn: null etmək. 1517 01:09:59,210 --> 01:10:00,460 Məhz. 1518 01:10:00,460 --> 01:10:03,570 1519 01:10:03,570 --> 01:10:05,140 Beləliklə, biz yalnız bir şey daxil bağlı siyahısına daxil. 1520 01:10:05,140 --> 01:10:07,210 Biz yalnız bunu bu kodu yazdı. 1521 01:10:07,210 --> 01:10:09,520 Demək olar ki, biz demək olar ki, var tamamilə cadar. 1522 01:10:09,520 --> 01:10:10,790 İndi biz konfet daxil edin. 1523 01:10:10,790 --> 01:10:13,480 Bizim konfet də sıfıra gedir. 1524 01:10:13,480 --> 01:10:16,100 Beləliklə, biz konfet ilə nə etməliyəm? 1525 01:10:16,100 --> 01:10:18,790 >> Auditoriya: Bu və ya asılıdır biz bu sort üçün çalışırıq deyil. 1526 01:10:18,790 --> 01:10:19,640 >> JASON Hirschhorn: var doğru. 1527 01:10:19,640 --> 01:10:21,070 Bu asılıdır və ya biz bu sort üçün çalışırıq. 1528 01:10:21,070 --> 01:10:22,660 Biz deyilik güman edək bu sort üçün gedir. 1529 01:10:22,660 --> 01:10:24,880 >> Auditoriya: Yaxşı, sonra biz müzakirə kimi əvvəl, yalnız qoymaq üçün sadə oldu 1530 01:10:24,880 --> 01:10:28,590 sağ əvvəlində belə göstərici konfet sıfır bal. 1531 01:10:28,590 --> 01:10:29,020 >> JASON Hirschhorn: OK. 1532 01:10:29,020 --> 01:10:29,380 Tutun. 1533 01:10:29,380 --> 01:10:30,630 Mənə burada konfet yaratmaq imkan verir. 1534 01:10:30,630 --> 01:10:34,030 1535 01:10:34,030 --> 01:10:35,150 Belə ki, bu göstərici - 1536 01:10:35,150 --> 01:10:37,590 >> Auditoriya: Bəli, indi olmalıdır konfet işarə etmək. 1537 01:10:37,590 --> 01:10:40,580 Sonra göstərici olan var balqabaq konfet point. 1538 01:10:40,580 --> 01:10:43,140 1539 01:10:43,140 --> 01:10:44,560 >> JASON Hirschhorn ki kimi? 1540 01:10:44,560 --> 01:10:47,380 Və biz başqa almış sıfıra xəritəsi şey? 1541 01:10:47,380 --> 01:10:48,660 >> Auditoriya: Bəli, yalnız eyni şey? 1542 01:10:48,660 --> 01:10:50,290 >> JASON Hirschhorn: eyni şey. 1543 01:10:50,290 --> 01:10:53,700 Belə ki, bu halda, əgər biz bunu etməsək onu sıralanır saxlamaq istəyirəm 1544 01:10:53,700 --> 01:10:55,270 olduqca sadə səslənir. 1545 01:10:55,270 --> 01:10:59,920 Biz Indice olan göstərici almaq bizim hash funksiyası ilə verilir. 1546 01:10:59,920 --> 01:11:03,830 Biz yeni node ki, nöqtə var. 1547 01:11:03,830 --> 01:11:07,830 Və sonra bu işarə edilmişdir nə Əvvəllər - 1548 01:11:07,830 --> 01:11:10,620 da bu halda null da ikinci halda balqabaq - 1549 01:11:10,620 --> 01:11:15,310 Bu işarə nə ki, əvvəl, biz növbəti daxil et 1550 01:11:15,310 --> 01:11:17,810 yeni node. 1551 01:11:17,810 --> 01:11:19,650 Biz bir şey daxil olduğunuz əvvəlində. 1552 01:11:19,650 --> 01:11:22,900 Əslində bu çox asandır sıralaması siyahısını saxlamaq üçün çalışırıq. 1553 01:11:22,900 --> 01:11:25,340 Ancaq yenə də, axtarış olacaq Burada daha çətinləşmişdi. 1554 01:11:25,340 --> 01:11:28,300 Biz həmişə sonuna getmək lazımdır. 1555 01:11:28,300 --> 01:11:29,650 >> OK. 1556 01:11:29,650 --> 01:11:32,750 Ayrı zəncirləmə haqqında hər hansı bir sualınız? 1557 01:11:32,750 --> 01:11:34,690 Necə ki, işləyir? 1558 01:11:34,690 --> 01:11:35,820 İndi xahiş edin. 1559 01:11:35,820 --> 01:11:39,260 Mən, həqiqətən, əmin bütün etmək istəyirəm biz rəhbərlik əvvəl bu başa düşürük. 1560 01:11:39,260 --> 01:11:48,410 1561 01:11:48,410 --> 01:11:52,060 >> Auditoriya: Niyə balqabaq qoymaq yoxdur və eyni daxil konfet 1562 01:11:52,060 --> 01:11:54,108 hash table hissəsi? 1563 01:11:54,108 --> 01:11:55,860 >> JASON Hirschhorn: Yaxşı sualdır. 1564 01:11:55,860 --> 01:11:59,140 Niyə biz eyni onları qoymaq yoxdur hash table hissəsi? 1565 01:11:59,140 --> 01:12:03,200 Yaxşı, bu halda bizim hash funksiyası returns onların hər ikisi üçün sıfır. 1566 01:12:03,200 --> 01:12:05,310 Belə ki, onlar indice sıfır getmək lazımdır biz olacaq yerləşir ki, çünki 1567 01:12:05,310 --> 01:12:07,420 onlara baxmaq əgər biz heç onlara baxmaq istəyirəm. 1568 01:12:07,420 --> 01:12:11,750 Yenə xətti yoxlamağa yanaşma ilə biz sıfır onlara həm qoymaq deyil. 1569 01:12:11,750 --> 01:12:13,900 Amma ayrı-ayrı zəncirvari yanaşma, biz sıfır həm onları qoymaq olacaq 1570 01:12:13,900 --> 01:12:16,620 və sonra sıfır off siyahısını yaratmaq. 1571 01:12:16,620 --> 01:12:20,140 >> Və biz balqabaq yazmaq istəmirəm sadəcə ki, sonra biz will çünki 1572 01:12:20,140 --> 01:12:21,860 balqabaq olduğunu güman daxil heç vaxt. 1573 01:12:21,860 --> 01:12:25,230 Biz yalnız bir şey saxlamaq pis olacaq ki, yer. 1574 01:12:25,230 --> 01:12:28,590 Sonra olacaq heç bir Heç bizə şans - 1575 01:12:28,590 --> 01:12:31,660 biz heç bir cüt idi, onda biz yalnız bizim ilkin dəyəri silmək olardı. 1576 01:12:31,660 --> 01:12:34,090 Biz bu yanaşma bunu nə ki, var. 1577 01:12:34,090 --> 01:12:36,580 Biz seçdi niyə və ya var - lakin, yenə biz ayrı-ayrı chaining yanaşma seçdi, 1578 01:12:36,580 --> 01:12:39,670 bir çox digər yanaşmalar var olan bir seçə bilər. 1579 01:12:39,670 --> 01:12:41,185 Ki, sual cavab verirmi? 1580 01:12:41,185 --> 01:12:41,660 >> OK. 1581 01:12:41,660 --> 01:12:42,910 Carlos. 1582 01:12:42,910 --> 01:12:46,130 1583 01:12:46,130 --> 01:12:47,720 Linear probing cəlb - 1584 01:12:47,720 --> 01:12:51,913 biz sıfır bir toqquşma aşkar etdikdə, biz görmək üçün növbəti spot görünür ki, 1585 01:12:51,913 --> 01:12:54,310 açıq idi və orada qoyun. 1586 01:12:54,310 --> 01:12:57,320 Və sonra biz növbəti idman baxmaq və açıq idi görmek və orada qoyun. 1587 01:12:57,320 --> 01:12:59,780 Belə ki, biz növbəti mövcud tapmaq açıq spot və orada qoyun. 1588 01:12:59,780 --> 01:13:02,580 1589 01:13:02,580 --> 01:13:03,890 Hər hansı digər suallar? 1590 01:13:03,890 --> 01:13:05,370 Bəli, Avi. 1591 01:13:05,370 --> 01:13:07,490 >> Auditoriya: o qədər təqib kimi, Siz növbəti spot nə deməkdir? 1592 01:13:07,490 --> 01:13:10,250 Bu hash table və ya əlaqəli siyahısı. 1593 01:13:10,250 --> 01:13:12,100 >> JASON Hirschhorn: xətti üçün proqramlaşdırma, heç bir bağlı siyahıları. 1594 01:13:12,100 --> 01:13:13,400 Hash masa növbəti spot. 1595 01:13:13,400 --> 01:13:13,820 >> Auditoriya: OK. 1596 01:13:13,820 --> 01:13:17,570 Belə ki, hash table olacaq ölçüsü başlatılmış - 1597 01:13:17,570 --> 01:13:19,560 strings sayı kimi Siz daxil ki? 1598 01:13:19,560 --> 01:13:22,170 >> JASON Hirschhorn: Görsən bu, həqiqətən böyük olmaq istəyirəm. 1599 01:13:22,170 --> 01:13:23,910 Bəli. 1600 01:13:23,910 --> 01:13:27,900 Burada biz bir şəkil yalnız board çəkdi. 1601 01:13:27,900 --> 01:13:29,470 Yenə biz burada bir toqquşma var. 1602 01:13:29,470 --> 01:13:30,710 152 at. 1603 01:13:30,710 --> 01:13:33,570 Və biz yaradılmışdır görəcəksiniz off bir bağlı siyahı. 1604 01:13:33,570 --> 01:13:38,200 1605 01:13:38,200 --> 01:13:41,850 Yenə hash table ayrı-ayrı chaining yanaşma biri deyil 1606 01:13:41,850 --> 01:13:45,590 problemləri müəyyən etmək üçün etmək altı lakin biridir ki, bir çox 1607 01:13:45,590 --> 01:13:47,100 tələbələr edirlər. 1608 01:13:47,100 --> 01:13:51,140 Belə ki qeyd, gəlin danışaq Biz problem altı haqqında rəhbərlik qarşısında 1609 01:13:51,140 --> 01:13:52,160 və sonra mən sizinlə bir hekayə bölüşmək lazımdır. 1610 01:13:52,160 --> 01:13:55,120 Biz üç dəqiqə var. 1611 01:13:55,120 --> 01:13:55,750 >> Problem altı seçin. 1612 01:13:55,750 --> 01:13:57,790 Siz dörd funksiyaları var - 1613 01:13:57,790 --> 01:14:02,430 yük, ölçüsü, və boşaltmaq yoxlayın. 1614 01:14:02,430 --> 01:14:03,380 Load - 1615 01:14:03,380 --> 01:14:07,120 yaxşı, biz davam etdik yalnız indi yük artıq. 1616 01:14:07,120 --> 01:14:09,330 Biz board yük çəkdi. 1617 01:14:09,330 --> 01:14:13,230 Və biz hətta bir çox kodlaşdırma açılmış bir bağlı siyahısına daxil daxil. 1618 01:14:13,230 --> 01:14:18,020 Belə ki, yük daha çox deyil biz yalnız bunu etdik nə. 1619 01:14:18,020 --> 01:14:21,070 >> Siz bir dəfə Check edir bir şey yükləndi. 1620 01:14:21,070 --> 01:14:22,580 Bu eyni proses var. 1621 01:14:22,580 --> 01:14:26,845 Siz atmaq eyni İlk iki hissələri hash funksiyası daxil bir şey 1622 01:14:26,845 --> 01:14:29,190 və onun dəyərini almaq. 1623 01:14:29,190 --> 01:14:30,700 Amma indi biz bunu daxil deyilik. 1624 01:14:30,700 --> 01:14:33,350 İndi biz bunun üçün arıyorsanız. 1625 01:14:33,350 --> 01:14:37,130 Mən nümunə kodu tapmaq üçün yazılı bir bağlı siyahısında bir şey. 1626 01:14:37,130 --> 01:14:38,250 Mən təcrübə təşviq. 1627 01:14:38,250 --> 01:14:43,000 Amma daxilən bir şey tapmaq bir şey daxil olduqca oxşar. 1628 01:14:43,000 --> 01:14:46,540 Həqiqətən, biz tapmaq bir şəkil çəkdi bir bağlı siyahısında bir şey hərəkət 1629 01:14:46,540 --> 01:14:48,910 siz sonuna var qədər vasitəsilə. 1630 01:14:48,910 --> 01:14:52,430 Və sonunda var və ola bilər, əgər onu tapmaq, sonra orada deyil. 1631 01:14:52,430 --> 01:14:55,400 Belə ki, mahiyyətcə, çek var. 1632 01:14:55,400 --> 01:14:57,030 >> Next ölçüsü. 1633 01:14:57,030 --> 01:14:57,910 Ölçüsü keçmək edək. 1634 01:14:57,910 --> 01:15:00,040 Nəhayət boşaltmaq var. 1635 01:15:00,040 --> 01:15:02,890 Boşaltmaq biz tərtib yoxdur biridir board və ya hələ kodlu. 1636 01:15:02,890 --> 01:15:05,990 Amma mən onu kodlaşdırma cəhd təşviq Örnek bağlı siyahı nümunəsi. 1637 01:15:05,990 --> 01:15:11,440 Amma daxilən boşaltmaq pulsuz oxşar - 1638 01:15:11,440 --> 01:15:14,010 və ya demək yoxlamaq üçün eynidir. 1639 01:15:14,010 --> 01:15:17,350 Siz olacaq indi hər dəfə istisna olmaqla vasitəsilə, sadəcə yoxlanılması deyilik 1640 01:15:17,350 --> 01:15:19,090 orada sizin dəyəri var, əgər baxın. 1641 01:15:19,090 --> 01:15:22,490 Amma siz ki, node alaraq və edirik mahiyyətcə, onu azad. 1642 01:15:22,490 --> 01:15:23,610 Bu boşaltmaq bunu soruşur nə var. 1643 01:15:23,610 --> 01:15:24,670 Siz malloced etdik pulsuz hər şey. 1644 01:15:24,670 --> 01:15:27,480 Belə ki, siz bütün siyahısını olacaq yenə bütün hash keçir 1645 01:15:27,480 --> 01:15:27,760 masa yenidən. 1646 01:15:27,760 --> 01:15:29,240 Bu dəfə yoxlamaq yoxdur var nə görmək. 1647 01:15:29,240 --> 01:15:31,080 Just var nə azad. 1648 01:15:31,080 --> 01:15:33,260 >> Və nəhayət ölçüsü. 1649 01:15:33,260 --> 01:15:34,350 Size həyata keçirilməlidir. 1650 01:15:34,350 --> 01:15:35,590 Siz ölçüsü həyata deyilsə - 1651 01:15:35,590 --> 01:15:36,250 Mən bu kimi demək lazımdır. 1652 01:15:36,250 --> 01:15:39,740 Tam ölçüsü həyata olmayan o cümlədən kod bir line 1653 01:15:39,740 --> 01:15:43,760 şərh qayıtmaq, siz səhv ölçüsü edir. 1654 01:15:43,760 --> 01:15:47,170 Belə ki, tam dizayn, əmin ölçüsü bal, tam bir edirik 1655 01:15:47,170 --> 01:15:49,970 o cümlədən kodu line, qaytarılması bəyanat. 1656 01:15:49,970 --> 01:15:52,450 >> Və hələ Akchar qablaşdırmaq yoxdur. 1657 01:15:52,450 --> 01:15:53,700 Can qunduz. 1658 01:15:53,700 --> 01:15:55,820 1659 01:15:55,820 --> 01:16:01,300 Mən sizə uşaqlar təşəkkür demək istəyirdi bölmə gələn. 1660 01:16:01,300 --> 01:16:02,550 Xoşbəxt Halloween var. 1661 01:16:02,550 --> 01:16:05,300 1662 01:16:05,300 --> 01:16:05,960 Bu, mənim kostyum deyil. 1663 01:16:05,960 --> 01:16:08,850 Cümə axşamı günü bu qalıcı olacaq Mən ofis saat görmək əgər. 1664 01:16:08,850 --> 01:16:14,640 Və bir daha merak əgər background bu kostyum kimi hiss 1665 01:16:14,640 --> 01:16:19,135 2011 bölmə yoxlamaq üçün pulsuz Mən niyə bir hekayə üçün 1666 01:16:19,135 --> 01:16:20,900 balqabaq kostyum geyən. 1667 01:16:20,900 --> 01:16:23,680 Və bir kədərli hekayəsidir. 1668 01:16:23,680 --> 01:16:27,050 Belə ki, əmin olun yaxın bəzi toxumaların. 1669 01:16:27,050 --> 01:16:28,680 Amma ki, hər hansı bir varsa Mən ətrafında qalmaq lazımdır suallar 1670 01:16:28,680 --> 01:16:29,960 kənarda bölmə sonra. 1671 01:16:29,960 --> 01:16:31,510 Good luck problemi üzrə altı seçin. 1672 01:16:31,510 --> 01:16:33,540 Və həmişə olduğu kimi, hər hansı bir varsa suallar, Mənə bildirin. 1673 01:16:33,540 --> 01:16:35,584