1 00:00:00,000 --> 00:00:04,074 2 00:00:04,074 --> 00:00:05,990 DOUG LLOYD: Bütün sağ, sen bu baxımdan belə 3 00:00:05,990 --> 00:00:09,020 yəqin ki, olduqca tanış seriallarda və bağlı siyahıları ilə 4 00:00:09,020 --> 00:00:10,950 iki əsas olan data strukturları biz 5 00:00:10,950 --> 00:00:16,810 dəstləri saxlamaq üçün haqqında danışdı oxşar data növləri data təşkil edib. 6 00:00:16,810 --> 00:00:19,080 >> İndi biz danışmaq olacaq varyasyonları bir neçə haqqında 7 00:00:19,080 --> 00:00:20,330 seriallarda və bağlı siyahıları. 8 00:00:20,330 --> 00:00:22,362 Bu video biz gedirik çıxarıcı borular haqqında danışmaq. 9 00:00:22,362 --> 00:00:25,320 Xüsusilə biz danışmaq olacaq haqqında bir data strukturu bir yığın çağırıb. 10 00:00:25,320 --> 00:00:28,510 Əvvəlki müzakirələrdən geri göstəricilərinə və yaddaş haqqında 11 00:00:28,510 --> 00:00:32,060 yığını də ki, yaddaş seqment üçün ad 12 00:00:32,060 --> 00:00:34,980 statik elan harada bütün yaddaş yaddaş ki, 13 00:00:34,980 --> 00:00:38,730 ad dəyişənlər, ad, və Cetera və funksiyası çərçivəsində həmçinin biz 14 00:00:38,730 --> 00:00:41,000 zəng yığını çərçivəsində mövcuddur. 15 00:00:41,000 --> 00:00:45,421 Belə ki, bu bir yığın data strukturu yaddaş bir yığın seqmenti. 16 00:00:45,421 --> 00:00:45,920 OLDU. 17 00:00:45,920 --> 00:00:46,890 >> Amma bir yığın nədir? 18 00:00:46,890 --> 00:00:49,220 Belə ki, yalnız bir olduqca çox var strukturunun xüsusi növ 19 00:00:49,220 --> 00:00:51,190 ki, bir mütəşəkkil şəkildə məlumat saxlayır. 20 00:00:51,190 --> 00:00:53,760 Və iki çox var ümumi yolları həyata keçirilməsi üçün 21 00:00:53,760 --> 00:00:57,380 iki data strukturları istifadə çıxarıcı borular biz artıq tanış olduğunu, 22 00:00:57,380 --> 00:01:00,340 Diziler və bağlı siyahıları. 23 00:01:00,340 --> 00:01:04,430 Nə bir yığın xüsusi edir biz informasiya qoymaq olan yol 24 00:01:04,430 --> 00:01:08,200 yığını və yol biz daxil yığını informasiya aradan qaldırılması. 25 00:01:08,200 --> 00:01:11,600 Baca ilə xüsusilə qayda yalnız ən çox 26 00:01:11,600 --> 00:01:15,830 son əlavə element çıxarıla bilər. 27 00:01:15,830 --> 00:01:17,660 >> Bu bir yığın var kimi belə bu barədə düşünürəm. 28 00:01:17,660 --> 00:01:21,170 Biz məlumat payavurma edirik özü üst, 29 00:01:21,170 --> 00:01:24,271 üst və yalnız bir şey xovlu çıxarıla bilər. 30 00:01:24,271 --> 00:01:27,020 Biz altında şey aradan qaldırılması bilməz başqa hər şey olardı, çünki 31 00:01:27,020 --> 00:01:28,020 dağılması və üzərində düşür. 32 00:01:28,020 --> 00:01:32,580 Belə ki, biz, həqiqətən, bir yığın qururuq ki, biz sonra parça-parça aradan qaldırılması lazımdır. 33 00:01:32,580 --> 00:01:36,590 Çünki bu, biz çox müraciət bir LIFO strukturu kimi bir yığını, 34 00:01:36,590 --> 00:01:38,940 , ilk out davam. 35 00:01:38,940 --> 00:01:42,290 LIFO, ilk həyata davam. 36 00:01:42,290 --> 00:01:45,635 >> Belə ki, çünki bu məhdudiyyət üzrə məlumat əlavə edə bilərsiniz necə 37 00:01:45,635 --> 00:01:49,080 və bir yığın çıxarılır, həqiqətən var yalnız iki şey biz bir yığın ilə edə bilərsiniz. 38 00:01:49,080 --> 00:01:52,010 Biz olan təkan ola bilər biz əlavə etmək üçün istifadə müddəti 39 00:01:52,010 --> 00:01:55,130 üst yeni element dəstə, ya yığını mövcud deyil 40 00:01:55,130 --> 00:01:58,550 və biz sıfırdan yaratmaq edirik ilk növbədə yığını yaradılması 41 00:01:58,550 --> 00:02:00,110 pushing olacaq. 42 00:02:00,110 --> 00:02:04,990 Və sonra pop ki, CS sort var müddətli biz ən son aradan qaldırılması üçün istifadə 43 00:02:04,990 --> 00:02:08,330 yığını üst element əlavə edib. 44 00:02:08,330 --> 00:02:11,130 >> Beləliklə, biz həm baxmaq olacaq tətbiq, həm array əsaslanır 45 00:02:11,130 --> 00:02:13,120 və bağlı siyahı əsaslanır. 46 00:02:13,120 --> 00:02:14,870 Və biz olacaq based sıra ilə başlayın. 47 00:02:14,870 --> 00:02:19,990 Belə ki, burada əsas ideyası nə array əsasında yığını data strukturu 48 00:02:19,990 --> 00:02:21,140 kimi görünür. 49 00:02:21,140 --> 00:02:23,740 Biz burada bir tipli müəyyən var. 50 00:02:23,740 --> 00:02:27,790 Ki Inside biz iki üzvü var strukturunun və ya sahələri. 51 00:02:27,790 --> 00:02:29,880 Biz bir sıra var. 52 00:02:29,880 --> 00:02:32,400 Və yenə mən istifadə edirəm ixtiyari data type dəyəri. 53 00:02:32,400 --> 00:02:35,180 >> Belə ki, bu, hər hansı bir veri növü ola bilər, int char və ya digər data 54 00:02:35,180 --> 00:02:37,080 Siz əvvəllər yaradılmış yazın. 55 00:02:37,080 --> 00:02:39,861 Beləliklə, biz size gücü bir sıra var. 56 00:02:39,861 --> 00:02:44,010 Capacity bir funt, daimi müəyyən edilir bəlkə başqa bir yerdə bizim fayl. 57 00:02:44,010 --> 00:02:47,550 Belə ki, bu artıq qeyd biz bounding olunur həyata keçirilməsi 58 00:02:47,550 --> 00:02:49,800 özümüzü kimi adətən idi Diziler ilə işi, 59 00:02:49,800 --> 00:02:53,170 biz dinamik ölçüsünü bilməz, burada müəyyən sayda var 60 00:02:53,170 --> 00:02:55,450 elementləri maksimum ki, biz yığını qoymaq bilər. 61 00:02:55,450 --> 00:02:57,930 Bu halda gücü elementləri var. 62 00:02:57,930 --> 00:03:00,310 >> Biz də takip yığını üst. 63 00:03:00,310 --> 00:03:04,350 Ən nədir element Bu yaxınlarda yığını əlavə? 64 00:03:04,350 --> 00:03:07,470 Və belə ki, takip adlı dəyişən üst. 65 00:03:07,470 --> 00:03:11,692 Və bütün bu birlikdə bükülmüş olur bir yığın adlı yeni data növü. 66 00:03:11,692 --> 00:03:13,400 Və biz yaradılmış bir dəfə Bu yeni data type 67 00:03:13,400 --> 00:03:15,410 biz bunu kimi müalicə edə bilər hər hansı digər data type. 68 00:03:15,410 --> 00:03:20,970 Biz kimi, yığını s elan edə bilər biz int x, və ya char y edə bilər. 69 00:03:20,970 --> 00:03:22,990 Və biz yığını demək zaman s, yaxşı nə olar 70 00:03:22,990 --> 00:03:26,420 Biz bir sıra almaq edilir Yaddaş bizim üçün ayrılmış. 71 00:03:26,420 --> 00:03:28,770 >> Bu halda gücü Mən yəqin karar 72 00:03:28,770 --> 00:03:33,470 Mən var, çünki 10 növü yığını bir dəyişən 73 00:03:33,470 --> 00:03:35,320 olan iki sahələri geri edir. 74 00:03:35,320 --> 00:03:38,330 Bu halda bir sıra gedir integers bir sıra olmaq 75 00:03:38,330 --> 00:03:40,440 kimi nümunələri ən haldır. 76 00:03:40,440 --> 00:03:43,996 Başqa bir tam dəyişən üst saxlanılması bilən, 77 00:03:43,996 --> 00:03:45,870 ən son əlavə yığını element. 78 00:03:45,870 --> 00:03:50,290 Belə ki, bir yığın biz yalnız bu kimi görünür müəyyən edilmişdir. 79 00:03:50,290 --> 00:03:53,190 Bu olan bir qutusu var 10 bir sıra nə 80 00:03:53,190 --> 00:03:57,280 bu halda integers olacaq və yaşıl başqa tam dəyişən 81 00:03:57,280 --> 00:04:00,010 yığını üst göstərir. 82 00:04:00,010 --> 00:04:02,600 >> Üst qurmaq üçün yığını biz yalnız s.top deyirlər. 83 00:04:02,600 --> 00:04:04,890 Yəni biz bir daxil necə bir quruluş geri sahəsində. 84 00:04:04,890 --> 00:04:10,460 s.top səmərəli 0 bərabərdir Bizim yığını bu yoxdur. 85 00:04:10,460 --> 00:04:12,960 Belə ki, yenə biz iki əməliyyatları indi edə bilərsiniz ki,. 86 00:04:12,960 --> 00:04:14,270 Biz təkan bilər və biz pop bilər. 87 00:04:14,270 --> 00:04:15,635 Nin təkan ilə başlamaq edək. 88 00:04:15,635 --> 00:04:18,260 Yenə, yeni əlavə olunur basmaqla yığını üst element. 89 00:04:18,260 --> 00:04:21,460 >> Belə ki, nə biz nə etmək lazımdır nə Bu array əsasında həyata keçirilməsi? 90 00:04:21,460 --> 00:04:23,210 Yaxşı General-da push funksiyası gedir 91 00:04:23,210 --> 00:04:26,160 bir qəbul etmək lazımdır yığını göstərici. 92 00:04:26,160 --> 00:04:28,610 İndi ikinci almaq və bu barədə düşünürəm. 93 00:04:28,610 --> 00:04:32,840 Niyə biz qəbul etmək istəyirəm ki, yığını bir göstərici? 94 00:04:32,840 --> 00:04:36,830 Əvvəlki video Recall dəyişən həcmi və göstəricilər, 95 00:04:36,830 --> 00:04:42,350 biz yalnız göndərdi əgər olur nə yığını bir parametri kimi deyil, nədir? 96 00:04:42,350 --> 00:04:45,770 Həqiqətən orada nə qəbul edilə bilər? 97 00:04:45,770 --> 00:04:49,430 Biz bir kopyasını yaratmaq edirik saxla biz bir funksiyası onu keçmək zaman 98 00:04:49,430 --> 00:04:51,160 halda biz göstəricilərinə istifadə. 99 00:04:51,160 --> 00:04:55,380 Və bu funksiya ehtiyaclarını təkan yığını bir pointer qəbul 100 00:04:55,380 --> 00:04:59,160 biz, həqiqətən, dəyişən edirik ki, yığını biz dəyişdirmək niyyətindəyik. 101 00:04:59,160 --> 00:05:03,060 >> başqa şey push yəqin ki, istəyir qəbul növü dəyər bir məlumat elementidir. 102 00:05:03,060 --> 00:05:06,970 Bu halda, yenidən, bir tam ki, biz yığını üst əlavə olacaq. 103 00:05:06,970 --> 00:05:08,680 Belə ki, biz iki parametrləri var. 104 00:05:08,680 --> 00:05:11,310 Biz nə gedir İndi təkan daxilində edirsiniz? 105 00:05:11,310 --> 00:05:14,860 Bəli, sadəcə, biz yalnız əlavə olacaq yığını üst olduğunu element 106 00:05:14,860 --> 00:05:22,860 və sonra burada üst dəyişə yığını ki, üst dəyər nöqtə var edir. 107 00:05:22,860 --> 00:05:25,639 Belə ki, bu nə bir funksiyası var push üçün bəyannamə 108 00:05:25,639 --> 00:05:27,680 bir kimi baxmaq bilər array-based həyata keçirilməsi. 109 00:05:27,680 --> 00:05:30,967 >> Yenə bu bir ağır və sürətli qayda deyil Bu dəyişdirmək və ola bilər ki, 110 00:05:30,967 --> 00:05:32,050 Bu müxtəlif yollarla dəyişir. 111 00:05:32,050 --> 00:05:33,840 Yəqin ki, s qlobal elan edilir. 112 00:05:33,840 --> 00:05:36,180 Və belə ki, hətta ehtiyac yoxdur bir parametr kimi qəbul etmək. 113 00:05:36,180 --> 00:05:39,125 Bu bir daha yalnız bir deyil push üçün ümumi halda. 114 00:05:39,125 --> 00:05:41,000 Və müxtəlif var yolları onu həyata keçirmək üçün. 115 00:05:41,000 --> 00:05:42,810 Lakin bu halda bizim push etmək niyyətindədir 116 00:05:42,810 --> 00:05:48,540 iki dəlilləri, bir yığın bir göstərici və növü dəyərinin tam bir data element 117 00:05:48,540 --> 00:05:49,840 bu halda. 118 00:05:49,840 --> 00:05:52,100 >> Belə ki, biz, s elan s.top 0 bərabərdir bildirib. 119 00:05:52,100 --> 00:05:55,969 İndi təkan imkan yığını üzərinə sayı 28. 120 00:05:55,969 --> 00:05:57,010 Yaxşı ki, nə deməkdir? 121 00:05:57,010 --> 00:05:59,600 Yaxşı hazırda yığını üst 0. 122 00:05:59,600 --> 00:06:01,350 Və nə əsasən baş verəcək 123 00:06:01,350 --> 00:06:05,820 biz sayı qalmaq olacaq Array yeri 0 daxil 28. 124 00:06:05,820 --> 00:06:09,540 Pretty sadə, sağ ki, top idi və indi biz getmək iyi. 125 00:06:09,540 --> 00:06:12,910 Və sonra biz nə dəyişdirmək lazımdır yığını üst olacaq. 126 00:06:12,910 --> 00:06:15,130 Növbəti dəfə Belə ki, biz bir element təkan, 127 00:06:15,130 --> 00:06:18,017 biz onu saxlamaq olacaq array yeri, yəqin ki, 0. 128 00:06:18,017 --> 00:06:20,100 Biz yazmaq istəmirik biz orada nə qoymaq. 129 00:06:20,100 --> 00:06:23,510 Və belə ki, biz yalnız üst 1 hərəkət edəcəyik. 130 00:06:23,510 --> 00:06:24,890 Bu yəqin ki, hissi verir. 131 00:06:24,890 --> 00:06:28,940 >> İndi biz bir element qoymaq istəyirsinizsə yığını üzərinə, biz 33 basmaq istəyirsiniz 132 00:06:28,940 --> 00:06:33,190 Yaxşı indi biz yalnız 33 almaq olacaq və array yeri sıra qoyun 133 00:06:33,190 --> 00:06:37,580 1 və sonra üst dəyişdirmək bizim array yeri sayı iki ola yığın. 134 00:06:37,580 --> 00:06:40,650 Belə ki, növbəti dəfə əgər biz istəyirəm yığını üzərinə bir element təkan, 135 00:06:40,650 --> 00:06:43,087 Bu array yeri 2 qoymaq olacaq. 136 00:06:43,087 --> 00:06:44,420 Və ki, bir dəfə daha nə edək. 137 00:06:44,420 --> 00:06:45,753 Biz çıxarıcı borular off 19 təkan lazımdır. 138 00:06:45,753 --> 00:06:48,940 Biz array yeri 2 19 qoymaq lazımdır və yığını üst dəyişə 139 00:06:48,940 --> 00:06:51,220 array yeri 3 olmaq növbəti dəfə biz əgər 140 00:06:51,220 --> 00:06:54,780 biz getmək iyi təkan etmək lazımdır. 141 00:06:54,780 --> 00:06:56,980 >> OK, belə ki, özetle basmaqla. 142 00:06:56,980 --> 00:06:57,830 Nə yaratma haqqında? 143 00:06:57,830 --> 00:07:00,240 Belə ki, yaratma sort basmaqla həmkarı. 144 00:07:00,240 --> 00:07:02,720 Bu yığını verileri aradan qaldırılması necə. 145 00:07:02,720 --> 00:07:04,610 Ümumiyyətlə pop ehtiyacları aşağıdakı etmək. 146 00:07:04,610 --> 00:07:07,600 Bu bir pointer qəbul etmək lazımdır ümumi halda yenə yığın. 147 00:07:07,600 --> 00:07:10,480 Bəzi digər halda bilər qlobal yığını elan, 148 00:07:10,480 --> 00:07:13,910 bu halda siz onu keçmək üçün ehtiyac yoxdur çünki artıq bu çıxışı var 149 00:07:13,910 --> 00:07:15,541 qlobal dəyişən kimi. 150 00:07:15,541 --> 00:07:17,040 Amma başqa sonra biz nə üçün lazımdır? 151 00:07:17,040 --> 00:07:21,000 Yaxşı incrementing edildi təkan yığını üst, 152 00:07:21,000 --> 00:07:24,050 belə ki, biz yəqin ki, istəyirəm olacaq yığını üst azalma 153 00:07:24,050 --> 00:07:25,009 pop, sağ? 154 00:07:25,009 --> 00:07:26,800 Və sonra əlbəttə biz də istəyirəm olacaq 155 00:07:26,800 --> 00:07:29,240 biz aradan qaldırılması dəyər qayıtmaq üçün. 156 00:07:29,240 --> 00:07:32,125 Biz elementləri əlavə edirsinizsə, biz istəyirik sonra elementləri almaq üçün, 157 00:07:32,125 --> 00:07:34,000 yəqin ki, həqiqətən biz Onlara belə ki, biz saxlamaq istəyirəm 158 00:07:34,000 --> 00:07:36,490 yalnız onları silmeyin yığın və onlara heç bir şey yoxdur. 159 00:07:36,490 --> 00:07:38,500 Ümumiyyətlə, biz əgər basmaqla və yaratma 160 00:07:38,500 --> 00:07:41,250 bu saxlamaq istəyirəm bir mənalı şəkildə məlumat 161 00:07:41,250 --> 00:07:43,250 və belə etmir mənada yalnız imtina. 162 00:07:43,250 --> 00:07:46,380 Belə ki, bu funksiya olmalıdır yəqin ki, bizə bir dəyər qayıtmaq. 163 00:07:46,380 --> 00:07:51,040 >> Belə ki, bu pop üçün nə bir xəbərdarlıq sol üst orada kimi baxmaq bilər. 164 00:07:51,040 --> 00:07:53,870 Bu funksiya qaytarır tipli dəyər data. 165 00:07:53,870 --> 00:07:56,320 Yenə biz istifadə etdik integers ərzində. 166 00:07:56,320 --> 00:08:01,916 Və bir yığını kimi bir pointer qəbul onun yeganə arqument və ya yeganə parametr. 167 00:08:01,916 --> 00:08:03,040 Belə ki, nə pop etmək niyyətindədir? 168 00:08:03,040 --> 00:08:07,990 Biz indi istəyirəm deyirlər s off bir element pop. 169 00:08:07,990 --> 00:08:14,000 Belə ki, bacalar son bildirib ki, unutmayın ilk, LIFO data strukturları, da. 170 00:08:14,000 --> 00:08:17,855 Hansı element gedir yığını çıxarılmalıdır? 171 00:08:17,855 --> 00:08:21,780 172 00:08:21,780 --> 00:08:24,150 Siz 19 tahmin mi? 173 00:08:24,150 --> 00:08:25,290 Doğru olardı, çünki. 174 00:08:25,290 --> 00:08:28,836 19 əlavə son element idi biz elementləri basmaqla zaman yığın, 175 00:08:28,836 --> 00:08:31,210 və belə ki, ilk olacaq xaric olur element. 176 00:08:31,210 --> 00:08:34,780 Bu 28 bildirib kimi, və sonra biz bu üst 33 qoymaq 177 00:08:34,780 --> 00:08:36,659 və biz üst 19 qoydu. 178 00:08:36,659 --> 00:08:40,650 biz off bilər yalnız element 19. 179 00:08:40,650 --> 00:08:45,019 >> İndi burada diaqram mən etdik nə sort array 19 silinir. 180 00:08:45,019 --> 00:08:46,810 Bu, həqiqətən deyil biz nə olacaq. 181 00:08:46,810 --> 00:08:48,934 Biz yalnız cür olacaq o yoxdur iddia. 182 00:08:48,934 --> 00:08:51,441 Bu var hələ də var ki, yaddaş yeri, 183 00:08:51,441 --> 00:08:54,190 lakin biz yalnız ignore olacaq yığını üst dəyişdirərək 184 00:08:54,190 --> 00:08:56,080 2 3 olan. 185 00:08:56,080 --> 00:08:58,720 Biz Belə ki indi təkan yığını üzərinə başqa element, 186 00:08:58,720 --> 00:09:00,720 artıq 19 yazmaq olardı. 187 00:09:00,720 --> 00:09:03,990 >> Amma heç problem ilə gedək yığını 19 silinməsi. 188 00:09:03,990 --> 00:09:05,830 Biz yalnız yoxdur iddia edə bilər. 189 00:09:05,830 --> 00:09:11,107 Yığını məqsədləri üçün əgər getdi biz 2 əvəzinə 3 olmaq üst dəyişir. 190 00:09:11,107 --> 00:09:12,690 Bütün hüquqlar, bu olduqca çox idi. 191 00:09:12,690 --> 00:09:15,080 Yəni biz nə etmək lazımdır bütün var bir element off pop. 192 00:09:15,080 --> 00:09:16,090 Yenidən bunu edək. 193 00:09:16,090 --> 00:09:18,610 Belə ki, burada qırmızı onu qeyd etdik biz başqa zəng edirik göstərir. 194 00:09:18,610 --> 00:09:19,720 Biz eyni şey olacaq. 195 00:09:19,720 --> 00:09:20,803 >> Belə ki, nə baş verəcək? 196 00:09:20,803 --> 00:09:23,670 Bəli, biz saxlamaq olacaq X 33 və gedirik 197 00:09:23,670 --> 00:09:26,217 1 yığını üst dəyişdirmək üçün. 198 00:09:26,217 --> 00:09:29,050 Biz təkan indi olsaydı, belə ki, biz istəyirik yığını daxil element 199 00:09:29,050 --> 00:09:31,610 İndi nə olacaq, nə baş verəcək 200 00:09:31,610 --> 00:09:36,367 biz üzerine olacaq ki, array yeri sayı 1. 201 00:09:36,367 --> 00:09:38,950 Sort qalmışdı ki, 33 Belə ki, ki, arxasında biz yalnız iddia 202 00:09:38,950 --> 00:09:44,390 artıq yoxdur, biz yalnız olacaq onu döymək əvəzinə orada 40 qoymaq. 203 00:09:44,390 --> 00:09:46,290 Və sonra, əlbəttə, biz təkan etdi ildən, 204 00:09:46,290 --> 00:09:48,780 biz arttırmayı olacaq 1 2 dən yığını üst 205 00:09:48,780 --> 00:09:50,950 belə ki, biz indi əlavə ki, başqa element bu lazımdır 206 00:09:50,950 --> 00:09:54,700 array yeri sayı iki daxil. 207 00:09:54,700 --> 00:09:57,590 >> İndi bağlı siyahıları bir var destesi həyata keçirilməsi üçün yol. 208 00:09:57,590 --> 00:10:01,210 Və bu müəyyən əgər ekran, burada sizə tanış görünür 209 00:10:01,210 --> 00:10:04,260 demək olar ki, görünür, çünki bu eyni, əslində, 210 00:10:04,260 --> 00:10:07,790 Bu olduqca çox dəqiq deyil bir story bağlı siyahı kimi eyni, 211 00:10:07,790 --> 00:10:11,990 Siz bizim müzakirə geri əgər story bir video siyahıları bağlıdır. 212 00:10:11,990 --> 00:10:15,510 Burada yalnız məhdudiyyət , proqramçılar kimi bizim üçün 213 00:10:15,510 --> 00:10:17,900 biz icazə deyilik daxil və ya təsadüfi silmək 214 00:10:17,900 --> 00:10:20,620 story bağlı siyahı Daha əvvəl edə bilər. 215 00:10:20,620 --> 00:10:25,820 Biz yalnız indi daxil edin və silə bilərsiniz ön və ya bağlı üst 216 00:10:25,820 --> 00:10:26,320 siyahısı. 217 00:10:26,320 --> 00:10:28,028 Bu, həqiqətən, yalnız var fərq olsa. 218 00:10:28,028 --> 00:10:29,700 Bu başqa bir story bağlı siyahı var. 219 00:10:29,700 --> 00:10:32,060 Bu, yalnız məhdudiyyət var özümüzü əvəz 220 00:10:32,060 --> 00:10:35,770 proqramçılar kimi Bir yığın onu dəyişir. 221 00:10:35,770 --> 00:10:39,280 >> Burada qayda həmişə qorumaq üçün bir bağlı siyahı rəhbəri göstərici. 222 00:10:39,280 --> 00:10:41,520 Bu, əlbəttə, bir ümumiyyətlə ilk əhəmiyyətli qayda. 223 00:10:41,520 --> 00:10:44,260 Story sizə siyahısını halda bağlı üçün yalnız baş bir pointer lazımdır 224 00:10:44,260 --> 00:10:46,160 ki, var üçün zəncir müraciət edə 225 00:10:46,160 --> 00:10:48,596 hər element üçün bağlı siyahı. 226 00:10:48,596 --> 00:10:50,470 Amma xüsusilə var bir yığını ilə əhəmiyyətli. 227 00:10:50,470 --> 00:10:52,386 Və belə ümumiyyətlə sen həqiqətən istəyirəm olacaq 228 00:10:52,386 --> 00:10:54,090 Bu göstərici qlobal dəyişən olacaq. 229 00:10:54,090 --> 00:10:56,574 Bu yəqin ki, olacaq daha asan yol. 230 00:10:56,574 --> 00:10:58,240 Belə ki, təkan və pop analoqu nə var? 231 00:10:58,240 --> 00:10:58,740 Right. 232 00:10:58,740 --> 00:11:01,812 Belə ki, yenə basmaqla əlavə olunur yığını üçün yeni element. 233 00:11:01,812 --> 00:11:03,770 Bir bağlı siyahı ki, biz olacaq deməkdir 234 00:11:03,770 --> 00:11:07,770 biz istəyirik yeni node yaratmaq bağlı siyahısına daxil əlavə etmək üçün gedir, 235 00:11:07,770 --> 00:11:10,500 və sonra ehtiyatlı adımları biz əvvəl qeyd etdik ki, 236 00:11:10,500 --> 00:11:16,050 story bağlı siyahıları onu əlavə etmək zənciri pozmadan zəncir 237 00:11:16,050 --> 00:11:18,900 və itirmək və ya hər hansı bir orphaning bağlı siyahı elementləri. 238 00:11:18,900 --> 00:11:21,820 Və əsasən nə var Mətn az damcı var əks olunur. 239 00:11:21,820 --> 00:11:23,740 Və bir nəzər salaq bir diaqram kimi at. 240 00:11:23,740 --> 00:11:24,823 >> Belə ki, burada bizim bağlı siyahısı. 241 00:11:24,823 --> 00:11:26,620 Bu eyni vaxtda dörd elementləri ehtiva edir. 242 00:11:26,620 --> 00:11:30,420 Və daha çox mükəmməl burada var Dörd elementləri ehtiva yığın. 243 00:11:30,420 --> 00:11:36,030 Və biz indi istəyirəm deyək Bu yığını üzərində yeni bir maddə basın. 244 00:11:36,030 --> 00:11:39,792 Və biz yeni bir təkan istəyirəm kimin data dəyəri maddə 12-dir. 245 00:11:39,792 --> 00:11:41,000 Yaxşı biz gedir nə? 246 00:11:41,000 --> 00:11:43,420 Yaxşı ilk biz olacaq dinamik malloc yer, 247 00:11:43,420 --> 00:11:45,411 yeni node üçün yer ayrılması. 248 00:11:45,411 --> 00:11:48,160 Və əlbəttə dərhal sonra Biz həmişə malloc zəng 249 00:11:48,160 --> 00:11:52,989 , null yoxlamaq üçün əmin olun Biz geri null var, əgər, çünki 250 00:11:52,989 --> 00:11:54,280 Problemin bir növ var idi. 251 00:11:54,280 --> 00:11:57,570 Biz bu null dereference istəmirəm pointer və ya bir seg günah dözəcəyik. 252 00:11:57,570 --> 00:11:58,510 Bu yaxşı deyil. 253 00:11:58,510 --> 00:11:59,760 Beləliklə, biz node malloced etdik. 254 00:11:59,760 --> 00:12:01,260 Biz burada uğur idi etdik güman lazımdır. 255 00:12:01,260 --> 00:12:06,090 Biz daxil 12 qoymaq olacaq ki node data sahəsində. 256 00:12:06,090 --> 00:12:11,570 İndi xatırlayıram yoxdur bizim göstəricilərinə hansı belə ki, biz zəncir qırmaq deyil növbəti hərəkət? 257 00:12:11,570 --> 00:12:15,100 Biz burada variantları bir neçə var, ancaq təhlükəsiz olacaq yalnız bir 258 00:12:15,100 --> 00:12:19,330 göstərici növbəti xəbər müəyyən edir siyahı köhnə baş point 259 00:12:19,330 --> 00:12:21,360 və ya tezliklə olacaq siyahısı köhnə baş. 260 00:12:21,360 --> 00:12:23,610 İndi bütün ki, bizim elementləri birlikdə zəncirlənmiş ki, 261 00:12:23,610 --> 00:12:27,370 biz yalnız qeyd etmək siyahısını hərəkət edə bilər Yeni yoxdur eyni yerə. 262 00:12:27,370 --> 00:12:33,550 Və biz indi səmərəli sövq bir yığını qarşısında üzərinə yeni element. 263 00:12:33,550 --> 00:12:36,420 >> Biz pop yalnız istəyirəm ilk element silin. 264 00:12:36,420 --> 00:12:38,150 Və belə əsasən nə biz burada nə var 265 00:12:38,150 --> 00:12:40,050 biz ikinci element tapmaq lazımdır. 266 00:12:40,050 --> 00:12:43,540 Nəhayət ki, yeni olacaq Biz ilk bir silmək sonra rəhbərlik. 267 00:12:43,540 --> 00:12:47,300 Belə ki, biz yalnız başlamaq lazımdır başlanğıcı, bir irəli hərəkət. 268 00:12:47,300 --> 00:12:50,340 Biz bir bir gözləməyə var sonra biz irəli hazırda 269 00:12:50,340 --> 00:12:53,850 biz təhlükəsiz birinci silə bilər və biz yalnız baş hərəkət edə bilər 270 00:12:53,850 --> 00:12:57,150 nə qeyd etmək Bundan sonra ikinci dövr və 271 00:12:57,150 --> 00:12:59,170 sonra ilk node silinmişdir. 272 00:12:59,170 --> 00:13:01,160 >> Belə ki, yenə, nəzər alaraq bu bir diaqram kimi biz 273 00:13:01,160 --> 00:13:05,022 İndi bir pop istəyirəm Bu yığını off element. 274 00:13:05,022 --> 00:13:05,730 Beləliklə, biz nə etməliyəm? 275 00:13:05,730 --> 00:13:08,188 Yaxşı ilk yaratmaq olacaq olacaq yeni bir pointer 276 00:13:08,188 --> 00:13:10,940 rəhbəri kimi eyni spot qeyd etmək. 277 00:13:10,940 --> 00:13:13,790 Biz onu bir mövqe hərəkət olacaq irəli Trav bərabər deyərək 278 00:13:13,790 --> 00:13:17,510 Məsələn, növbəti Trav olan Trav pointer bir inkişaf edəcəyini 279 00:13:17,510 --> 00:13:19,324 irəli mövqe. 280 00:13:19,324 --> 00:13:21,240 İndi biz var ki, ilk element keçirilməsi 281 00:13:21,240 --> 00:13:24,573 pointer çağırıb siyahısı, vasitəsilə adlı göstərici ilə ikinci element 282 00:13:24,573 --> 00:13:28,692 Trav, biz təhlükəsiz ki silə bilərsiniz yığını ilk element 283 00:13:28,692 --> 00:13:30,650 qalan itirmədən zəncirinin Çünki biz 284 00:13:30,650 --> 00:13:32,358 müraciət üçün bir yol var İkinci element 285 00:13:32,358 --> 00:13:34,780 yolu ilə irəli pointer Trav çağırıb. 286 00:13:34,780 --> 00:13:37,100 >> Belə ki, indi ki, node azad edə bilər. 287 00:13:37,100 --> 00:13:38,404 Biz siyahısı azad edə bilər. 288 00:13:38,404 --> 00:13:41,320 Və sonra biz indi nə etmək lazımdır bütün edir eyni yerə nöqtəyə siyahısı hərəkət 289 00:13:41,320 --> 00:13:44,482 ki Trav edir və biz geri sort istəyirik Biz 12 sövq əvvəl biz başladı 290 00:13:44,482 --> 00:13:45,690 ilk növbədə, sağ. 291 00:13:45,690 --> 00:13:46,940 Biz bu dəqiq deyil. 292 00:13:46,940 --> 00:13:48,840 Biz bu dörd element yığını idi. 293 00:13:48,840 --> 00:13:49,690 Biz beşinci əlavə edib. 294 00:13:49,690 --> 00:13:51,910 Biz beşinci basdı element, və sonra 295 00:13:51,910 --> 00:13:55,980 atdı ki, ən son geri off element əlavə edib. 296 00:13:55,980 --> 00:13:58,816 >> Olduqca çox həqiqətən bütün çıxarıcı borular var. 297 00:13:58,816 --> 00:14:00,190 Siz seriallarda kimi həyata keçirə bilər. 298 00:14:00,190 --> 00:14:01,815 Siz bağlı siyahıları kimi həyata keçirə bilər. 299 00:14:01,815 --> 00:14:04,810 Digər, əlbəttə, var yolları, eləcə də onların həyata keçirilməsi üçün. 300 00:14:04,810 --> 00:14:09,060 Biz istifadə ki, əsasən səbəbi çıxarıcı borular, belə bir şəkildə məlumat saxlamaq üçün 301 00:14:09,060 --> 00:14:12,090 ən son əlavə edib ki, element, biz istəyirik ilk şey 302 00:14:12,090 --> 00:14:14,980 geri almaq istəyirəm olacaq. 303 00:14:14,980 --> 00:14:17,900 Mən Doug Lloyd deyiləm, bu CS50 edir. 304 00:14:17,900 --> 00:14:19,926