1 00:00:00,000 --> 00:00:02,832 >> [MUSIC PLAYING] 2 00:00:02,832 --> 00:00:05,670 3 00:00:05,670 --> 00:00:08,560 >> DOUG LLOYD: OK, belə Əlbəttə, bu point, 4 00:00:08,560 --> 00:00:15,300 biz C. əsasları bir çox əhatə etdik Biz dəyişənlər, seriallarda haqqında çox bilmək 5 00:00:15,300 --> 00:00:17,610 göstəricilər, bütün yaxşı stuff. 6 00:00:17,610 --> 00:00:21,610 O bütün növ inşa edilir da, əsasları kimi görmək 7 00:00:21,610 --> 00:00:23,880 lakin biz sağ, daha çox edə bilərsiniz? 8 00:00:23,880 --> 00:00:27,930 Biz hər şeyi birləşdirə bilər birlikdə maraqlı yollarla. 9 00:00:27,930 --> 00:00:31,010 >> Və belə ki, başlamaq edək ki, nə edək C bizə verir nə şaxələnmək, 10 00:00:31,010 --> 00:00:35,270 və öz data yaratmaq başlayın Bu bina istifadə strukturları 11 00:00:35,270 --> 00:00:40,590 birlikdə blokları bir şey etmək faydalı, həqiqətən dəyərli. 12 00:00:40,590 --> 00:00:43,420 Biz bunu edə bilərsiniz bir yoldur kolleksiyaları haqqında danışmaq. 13 00:00:43,420 --> 00:00:48,360 Belə ki, bu günə qədər məlumatların bir növ yaşadım kolleksiyalar təmsil strukturu 14 00:00:48,360 --> 00:00:51,030 dəyərləri oxşar dəyərləri kimi. 15 00:00:51,030 --> 00:00:52,350 Ki, bir sıra olacaq. 16 00:00:52,350 --> 00:00:57,020 Biz integers kolleksiyaları var, və ya belə simvol və kolleksiyaları. 17 00:00:57,020 --> 00:01:00,890 >> Structures də məlumatların düzmək olunur məlumat toplanması strukturu, 18 00:01:00,890 --> 00:01:03,220 lakin bu dəyərlər kimi toplanması üçün deyil. 19 00:01:03,220 --> 00:01:08,090 Bu adətən müxtəlif məlumat növləri qarışır birlikdə bir qutusuna daxilində. 20 00:01:08,090 --> 00:01:10,750 Amma özü deyil birlikdə zəncir üçün istifadə 21 00:01:10,750 --> 00:01:16,920 və ya birlikdə oxşar əlaqə bir sıra kimi maddələr. 22 00:01:16,920 --> 00:01:20,960 Diziler üçün böyük element baxmaq, lakin geri çağırılması 23 00:01:20,960 --> 00:01:24,262 bu, çox çətin ki, bir sıra daxil etmək üçün, 24 00:01:24,262 --> 00:01:26,470 biz daxil etdiyiniz halda ki, serialın çox sonu. 25 00:01:26,470 --> 00:01:29,730 >> Və ən yaxşı nümunə var ki, durub sırala edir. 26 00:01:29,730 --> 00:01:31,650 Siz bizim video geri əgər durub növ, 27 00:01:31,650 --> 00:01:34,110 bir çox var idi xərc olan cəlb 28 00:01:34,110 --> 00:01:37,970 elementləri seçin və onlara keçmək bir şey uyğun şəkildə həyata 29 00:01:37,970 --> 00:01:41,290 Sizin serialın ortasında daxil. 30 00:01:41,290 --> 00:01:44,690 Diziler başqa bir əziyyət problem olan mətanət edir. 31 00:01:44,690 --> 00:01:47,150 Biz bir sıra bəyan zaman, biz bunu bir shot almaq. 32 00:01:47,150 --> 00:01:49,790 Biz istəyirik demək almaq Bu çox elementləri. 33 00:01:49,790 --> 00:01:51,940 100 ola bilər, güc 1000 olun, bu güc 34 00:01:51,940 --> 00:01:55,930 x Istifadəçi ki, bir sıra olduğu x olmaq tez və ya əmri bizə verdi 35 00:01:55,930 --> 00:01:56,630 line. 36 00:01:56,630 --> 00:01:59,905 >> Amma biz yalnız bir shot almaq, biz Mən, həqiqətən, daha sonra oh demək almaq deyil 37 00:01:59,905 --> 00:02:04,360 101 ehtiyac, və ya x plus 20 lazımdır. 38 00:02:04,360 --> 00:02:07,910 Çox gec, biz artıq bəyan etdik array, və biz 101 və ya almaq istəyirsinizsə x 39 00:02:07,910 --> 00:02:12,050 plus 20, biz elan var tamamilə fərqli array, 40 00:02:12,050 --> 00:02:15,540 array bütün elementləri surəti üzərində, sonra biz kifayət qədər var. 41 00:02:15,540 --> 00:02:19,880 Biz bir daha yanlış olduqda, nə biz, həqiqətən, 102, və ya X Plus 40 lazımdır, 42 00:02:19,880 --> 00:02:21,970 biz yenə bu var. 43 00:02:21,970 --> 00:02:26,250 Belə ki, onlar çox mətanətli istəyirik bizim data boyutlandırma üçün, 44 00:02:26,250 --> 00:02:29,360 lakin biz birlikdə bəzi birləşdirmək əgər biz artıq var əsasları 45 00:02:29,360 --> 00:02:33,230 göstəricilər və strukturları haqqında öyrəndim, xüsusilə dinamik yaddaş istifadə 46 00:02:33,230 --> 00:02:36,180 malloc ilə ayrılması, biz birlikdə bu ədəd qoya bilər 47 00:02:36,180 --> 00:02:40,960 yeni data quruluşu yaratmaq üçün story biz demək bilər siyahısını bağlıdır 48 00:02:40,960 --> 00:02:45,400 ki, bizə inkişaf imkan verir və dəyərlər toplusu shrink 49 00:02:45,400 --> 00:02:48,800 və hər hansı sərf yer yoxdur. 50 00:02:48,800 --> 00:02:53,320 >> Belə ki, yenə, biz bu fikri zəng Bu anlayışı, bir bağlı siyahı. 51 00:02:53,320 --> 00:02:56,320 Xüsusilə, bu video biz istəyirik story bağlı siyahı söhbət, 52 00:02:56,320 --> 00:02:59,185 və sonra başqa bir video biz danışmaq lazımdır haqqında ikiqat bağlı siyahıları olan 53 00:02:59,185 --> 00:03:01,560 Burada mövzusunda yalnız bir variasiya edir. 54 00:03:01,560 --> 00:03:05,200 Amma bir story bağlı siyahı qovşaqlarının ibarətdir, 55 00:03:05,200 --> 00:03:08,559 qovşaqlarının yalnız mücərrəd term-- olan Mən zəng edirəm bir şey var 56 00:03:08,559 --> 00:03:10,350 ki, bir növü var strukturu, əsasən, mən? 57 00:03:10,350 --> 00:03:16,190 Yalnız bir node və bu zəng olacaq node iki üzvü, və ya iki sahələri var. 58 00:03:16,190 --> 00:03:20,300 Bu adətən bir məlumat var tam, bir xarakter float, 59 00:03:20,300 --> 00:03:23,790 və ya digər data type ola bilər Bir növü def ilə müəyyən etdik ki,. 60 00:03:23,790 --> 00:03:29,290 Və bir pointer edir eyni tipli başqa node. 61 00:03:29,290 --> 00:03:34,710 >> Beləliklə, biz daxilində iki şey var bu node, məlumat və bir pointer 62 00:03:34,710 --> 00:03:36,380 başqa node. 63 00:03:36,380 --> 00:03:39,370 Və siz görüntüləmək üçün başlamaq əgər Bu, bu barədə düşünmək olar 64 00:03:39,370 --> 00:03:42,280 qovşaqlarının bir zəncir kimi ki, birlikdə bağlıdır. 65 00:03:42,280 --> 00:03:45,070 Biz ilk node var, onu məlumat və bir pointer edir 66 00:03:45,070 --> 00:03:49,110 ehtiva ikinci node üçün məlumat və üçüncü node bir göstərici. 67 00:03:49,110 --> 00:03:52,940 Və belə ki, biz bunu bir zəng görə bağlı siyahı, onlar birlikdə bağlı edirik. 68 00:03:52,940 --> 00:03:56,070 >> Bu xüsusi nə node struktur kimi baxmaq? 69 00:03:56,070 --> 00:04:01,120 Yaxşı, siz bizim video geri əgər növü def ilə, xüsusi növlərini müəyyən, 70 00:04:01,120 --> 00:04:05,400 bir quruluşu müəyyən edə bilərsiniz və oxşar strukturu müəyyən yazın. 71 00:04:05,400 --> 00:04:11,240 struct sllist tyepdef, sonra mən özbaşına burada söz dəyər istifadə 72 00:04:11,240 --> 00:04:13,891 həqiqətən hər hansı bir veri növü göstərir. 73 00:04:13,891 --> 00:04:16,890 Siz bir tam və ya float keçə bilər Siz istədiyiniz hər hansı ola bilər. 74 00:04:16,890 --> 00:04:19,389 Bu, sadəcə məhdud deyil integers, və ya kimi bir şey. 75 00:04:19,389 --> 00:04:22,790 Belə ki, dəyəri yalnız bir ixtiyari deyil sonra data növü və bir pointer 76 00:04:22,790 --> 00:04:26,310 eyni tipli başqa node. 77 00:04:26,310 --> 00:04:29,690 >> İndi bir az tutmaq var Burada bir quruluş müəyyən ilə 78 00:04:29,690 --> 00:04:33,030 zaman özünü sened strukturu var. 79 00:04:33,030 --> 00:04:35,340 Mən müvəqqəti var Mənim strukturu adı. 80 00:04:35,340 --> 00:04:37,640 Gün sonunda aydın zəng etmək istəyirəm 81 00:04:37,640 --> 00:04:43,030 SLL node ki, nəticədə yeni Xarici görünüşüm müəyyən hissəsi ad, 82 00:04:43,030 --> 00:04:47,450 amma SLL node istifadə edə bilməz bu ortasında. 83 00:04:47,450 --> 00:04:51,430 varlıq səbəbi, mən var bir növü adlı SLL node yaradılmışdır 84 00:04:51,430 --> 00:04:55,200 Mən burada bu final nöqtəsi hit qədər. 85 00:04:55,200 --> 00:04:59,720 Ki, nöqtəsinə qədər, mən var başqa bir yolu bu veri növü müraciət. 86 00:04:59,720 --> 00:05:02,440 >> Bu özünü sened data növü. 87 00:05:02,440 --> 00:05:06,314 Bu, bir bir veri növü var bir data ehtiva edir quruluşu, 88 00:05:06,314 --> 00:05:08,480 və başqa bir pointer eyni tipli quruluşu. 89 00:05:08,480 --> 00:05:11,750 Beləliklə, mən müraciət etmək lazımdır Bu data type ən azı müvəqqəti olaraq, 90 00:05:11,750 --> 00:05:14,910 belə müvəqqəti verilməsi struct sllist adı 91 00:05:14,910 --> 00:05:18,540 Mənə sonra bir istəyirəm demək imkan verir başqa struct sllist göstərici, 92 00:05:18,540 --> 00:05:24,690 bir struct sllist ulduz, və sonra Mən müəyyən etdikdən sonra, 93 00:05:24,690 --> 00:05:27,220 Mən indi bu cür bir sll node zəng edə bilərsiniz. 94 00:05:27,220 --> 00:05:30,520 >> Siz var görəcəksiniz nə ki, var burada müvəqqəti adı, 95 00:05:30,520 --> 00:05:31,879 lakin burada daimi adı. 96 00:05:31,879 --> 00:05:33,920 Bəzən görə bilərsiniz strukturunun anlayışlar, 97 00:05:33,920 --> 00:05:36,570 Məsələn, ki deyil özünü sened ki, 98 00:05:36,570 --> 00:05:39,390 Burada belirteci adı yoxdur. 99 00:05:39,390 --> 00:05:43,040 Bu, sadəcə, typedef struct demək olardı buruq brace açmaq və sonra müəyyən edir. 100 00:05:43,040 --> 00:05:45,620 Siz değilseniz Lakin struct özünü sened, bu kimi, 101 00:05:45,620 --> 00:05:49,010 Bir müəyyən etmək lazımdır müvəqqəti növü adı. 102 00:05:49,010 --> 00:05:51,310 Amma nəticədə indi biz bunu etdik ki, 103 00:05:51,310 --> 00:05:53,620 biz yalnız müraciət edə bilərsiniz Bu qovşaqlarının, bu ədəd, 104 00:05:53,620 --> 00:05:57,900 məqsədləri üçün SLL qovşaqlarının kimi Bu video qalan. 105 00:05:57,900 --> 00:06:00,900 >> Bütün hüquqlar, belə ki, biz necə bilirik bir bağlı siyahı node yaratmaq. 106 00:06:00,900 --> 00:06:03,240 Biz müəyyən etmək üçün necə bir bağlı siyahı node. 107 00:06:03,240 --> 00:06:06,670 İndi biz başlamaq olacaq əgər məlumat toplamaq üçün istifadə, 108 00:06:06,670 --> 00:06:10,360 əməliyyatlar bir neçə var, biz anlamaq və işləmək lazımdır. 109 00:06:10,360 --> 00:06:12,860 Biz yaratmaq üçün necə bilmək lazımdır nazik hava həyata bağlı siyahı. 110 00:06:12,860 --> 00:06:14,901 Heç bir siyahısı artıq varsa, biz bir başlamaq istəyirəm. 111 00:06:14,901 --> 00:06:16,960 Beləliklə, biz lazımdır bir bağlı siyahısını yaratmaq üçün, 112 00:06:16,960 --> 00:06:19,130 biz yəqin ki, axtarmaq lazımdır link siyahısı 113 00:06:19,130 --> 00:06:21,830 biz aradığınız bir element tapa bilərsiniz. 114 00:06:21,830 --> 00:06:24,430 Biz daxil etmək lazımdır siyahısına yeni şeylər, 115 00:06:24,430 --> 00:06:25,930 Biz siyahısı inkişaf etmək istəyirəm. 116 00:06:25,930 --> 00:06:28,638 Və eyni, biz etmək istəyirəm bizim siyahıdan şeyi silmək üçün, 117 00:06:28,638 --> 00:06:30,250 Biz siyahısı shrink etmək istəyirəm. 118 00:06:30,250 --> 00:06:32,160 Və sonunda bizim proqramları, xüsusilə 119 00:06:32,160 --> 00:06:34,550 biz istəyirik ki, geri əgər dinamik yaddaş ayrılması 120 00:06:34,550 --> 00:06:38,337 adətən bu siyahıları yaratmaq üçün, ki, yaddaş bütün azad etmək istəyirik 121 00:06:38,337 --> 00:06:39,670 biz onunla iş Bitirdiğinizde. 122 00:06:39,670 --> 00:06:44,627 Və belə ki, biz bir silmək lazımdır bir bütün bağlı siyahı swoop uğursuz. 123 00:06:44,627 --> 00:06:46,460 Belə ki, ilə gedək bu əməliyyatları bəzi 124 00:06:46,460 --> 00:06:51,192 və biz onları görüntüləmək bilər necə, xüsusi pseudocode kodu danışır. 125 00:06:51,192 --> 00:06:53,150 Beləliklə, biz bir yaratmaq istəyirik siyahısını bağlı, belə ki, bəlkə biz 126 00:06:53,150 --> 00:06:56,480 bir funksiyası müəyyən etmək istəyirəm Bu prototip ilə. 127 00:06:56,480 --> 00:07:01,690 SLL node ulduz, yaratmaq, və mən keçən alıram bir arqument bəzi ixtiyari data 128 00:07:01,690 --> 00:07:05,530 bir ixtiyari data növü, yenidən yazın. 129 00:07:05,530 --> 00:07:10,482 Amma bu funksiyanı lazımdır returning-- alıram bir story üçün, mənə bir pointer qayıtmaq 130 00:07:10,482 --> 00:07:11,190 bağlı siyahı node. 131 00:07:11,190 --> 00:07:14,050 Yenə yaratmaq çalışdığınız nazik hava həyata bağlı siyahısı, 132 00:07:14,050 --> 00:07:17,900 mən bir pointer lazımdır mən bitirdim ki, siyahısı. 133 00:07:17,900 --> 00:07:19,420 >> Belə ki, burada cəlb addımlar hansılardır? 134 00:07:19,420 --> 00:07:20,960 Bəli, mən ilk şey deyiləm edəcəyimiz dinamik deyil 135 00:07:20,960 --> 00:07:22,550 yeni node üçün yer ayrılması. 136 00:07:22,550 --> 00:07:26,689 Yenə nazik onu yaratmaq edirik hava, belə ki, biz bunun üçün malloc yer lazımdır. 137 00:07:26,689 --> 00:07:28,480 Və əlbəttə ki, dərhal biz malloc sonra, 138 00:07:28,480 --> 00:07:31,692 biz həmişə əmin olun bizim göstərici biz geri null əldə etməyib. 139 00:07:31,692 --> 00:07:33,650 Biz cəhd çünki bir null göstərici hörmət, 140 00:07:33,650 --> 00:07:36,190 biz əziyyət olacaq segfault və biz istəmirik. 141 00:07:36,190 --> 00:07:39,510 >> Sonra biz sahəsində doldurmaq istəyirəm, biz dəyəri sahə başlamaq istəyirəm 142 00:07:39,510 --> 00:07:41,690 və növbəti sahəsində başlamaq. 143 00:07:41,690 --> 00:07:45,450 Və sonra biz nəhayət kimi to-- istəyirəm Biz istəyirik indicates-- funksiyası prototip 144 00:07:45,450 --> 00:07:49,940 bir SLL node bir göstərici qayıtmaq üçün. 145 00:07:49,940 --> 00:07:51,710 Belə ki, nə bu vizual kimi baxmaq? 146 00:07:51,710 --> 00:07:55,230 Bəli, ilk biz dinamik olacaq yeni SLL node üçün yer ayırmaq, 147 00:07:55,230 --> 00:07:58,320 belə ki, biz ki malloc-- bir vizual nümayəndəliyi 148 00:07:58,320 --> 00:08:00,020 node biz yalnız yaratmışdır. 149 00:08:00,020 --> 00:08:02,757 Və biz əmin olun Bu, bu halda null deyil 150 00:08:02,757 --> 00:08:04,840 şəkil olmazdı Bu null idi up göstərilir, 151 00:08:04,840 --> 00:08:07,298 biz yaddaş tökülmək olardı belə ki, biz orada getmək iyi. 152 00:08:07,298 --> 00:08:10,200 Belə ki, indi biz C addım istəyirik, qovşaqlarının dəyəri sahə başlamaq. 153 00:08:10,200 --> 00:08:12,280 Bəli, bu funksiya əsasında Mən burada istifadə edirəm zəng 154 00:08:12,280 --> 00:08:16,700 Mən 6 keçmək istəyirəm kimi, görünür, mən dəyəri sahəsində 6 lazımdır. 155 00:08:16,700 --> 00:08:18,865 İndi növbəti sahəsində başlamaq. 156 00:08:18,865 --> 00:08:21,640 Yaxşı, nə mən orada gedirəm, heç bir şey doğru, yanında var, 157 00:08:21,640 --> 00:08:23,600 Bu siyahıda yalnız bir şey. 158 00:08:23,600 --> 00:08:27,206 Belə ki, siyahıda növbəti şey nədir? 159 00:08:27,206 --> 00:08:29,660 >> Bu doğru, bir şey qeyd deyil. 160 00:08:29,660 --> 00:08:33,600 Heç bir şey, belə ki, nə başqa orada var ki, bilirik anlayışı nothing-- var 161 00:08:33,600 --> 00:08:35,638 heç bir şey göstəricilərinə? 162 00:08:35,638 --> 00:08:37,929 Bu bəlkə biz istəyirik olmalıdır bir null göstərici qoymaq, 163 00:08:37,929 --> 00:08:40,178 Mən null təmsil edəcəyik , yalnız bir qırmızı qutusu göstərici 164 00:08:40,178 --> 00:08:41,559 Biz hər hansı bir daha getmək bilməz. 165 00:08:41,559 --> 00:08:44,430 Biz sonra bir az görəcəksiniz kimi, biz nəhayət zəncir olacaq 166 00:08:44,430 --> 00:08:46,330 oxlar birləşdirən birlikdə bu qovşaqlarının, 167 00:08:46,330 --> 00:08:48,480 ancaq hit zaman qırmızı qutusu, ki, null 168 00:08:48,480 --> 00:08:51,150 Biz hər hansı bir getmək bilməz ki, siyahıda sonu var. 169 00:08:51,150 --> 00:08:53,960 >> Və nəhayət, biz yalnız istəyirəm bu node bir göstərici qayıtmaq. 170 00:08:53,960 --> 00:08:56,160 Beləliklə, biz yeni zəng edəcəyik, və yeni qayıdacaqlar 171 00:08:56,160 --> 00:08:59,370 belə ki, istifadə edilə bilər nə funksiyası yaratmışdır. 172 00:08:59,370 --> 00:09:03,100 Belə ki, orada getmək, bir story yaratdıq nazik hava həyata bağlı siyahı node, 173 00:09:03,100 --> 00:09:05,920 və indi biz ilə işləyə bilər bir siyahısı var. 174 00:09:05,920 --> 00:09:08,260 >> İndi artıq biz deyək böyük bir zəncir var, 175 00:09:08,260 --> 00:09:09,800 və biz bunu bir şey tapmaq istəyirəm. 176 00:09:09,800 --> 00:09:12,716 Və biz olacaq bir funksiyası istəyirəm , doğru və ya yalan qayıtmaq asılı olaraq 177 00:09:12,716 --> 00:09:15,840 dəyəri ki, siyahıda mövcud olub. 178 00:09:15,840 --> 00:09:18,160 A funksiyası prototip, və ya ki, funksiyası üçün bəyannamə, 179 00:09:18,160 --> 00:09:23,320 şeylərdir tapmaq bool kimi baxmaq bilər, və sonra iki dəlilləri keçmək istəyirəm. 180 00:09:23,320 --> 00:09:26,996 >> ilk bir göstəricisidir bağlı siyahı ilk element. 181 00:09:26,996 --> 00:09:29,620 Bu lazımdır, həqiqətən, bir şey deyil həmişə takip etmək istəyirəm, 182 00:09:29,620 --> 00:09:33,110 və həqiqətən bir şey ola bilər ki, Hətta qlobal dəyişən qoydu. 183 00:09:33,110 --> 00:09:35,360 Bir siyahısını yaratmaq, həmişə həmişə, 184 00:09:35,360 --> 00:09:38,990 çox takip etmək istəyirəm siyahının ilk element. 185 00:09:38,990 --> 00:09:43,690 Bütün digər müraciət edə bilərsiniz Bu yolla yalnız zəncir aşağıdakı elementləri, 186 00:09:43,690 --> 00:09:47,300 göstəricilərinə saxlamaq olmadan hər bir element üçün bütöv. 187 00:09:47,300 --> 00:09:50,920 Siz yalnız ilk takip lazımdır onlar bütün birlikdə zəncirlənmiş edirsinizsə. 188 00:09:50,920 --> 00:09:52,460 >> Və sonra ikinci şey biz yenə keçən edirik 189 00:09:52,460 --> 00:09:54,376 özbaşına some-- deyil nə data type biz istəyirik 190 00:09:54,376 --> 00:09:59,640 orada axtarır daxilində inşallah siyahısında qovşaqlarının biri. 191 00:09:59,640 --> 00:10:00,980 Belə ki, addımlar hansılardır? 192 00:10:00,980 --> 00:10:04,250 Yaxşı, biz bunu ilk şey Biz köndələn pointer yaratmaq 193 00:10:04,250 --> 00:10:06,015 siyahıları rəhbəri işarə. 194 00:10:06,015 --> 00:10:08,890 Yaxşı, niyə ki, biz artıq biz nə yoxdur siyahıları başında bir göstərici var, 195 00:10:08,890 --> 00:10:10,974 niyə biz yalnız ətrafında bir hərəkət yoxdur? 196 00:10:10,974 --> 00:10:13,140 Bəli, mən yalnız dediyim kimi, bu, bizim üçün həqiqətən vacibdir 197 00:10:13,140 --> 00:10:17,580 həmişə takip siyahısında ilk element. 198 00:10:17,580 --> 00:10:21,270 Və belə ki, həqiqətən yaxşıdır ki, bir cüt yaratmaq, 199 00:10:21,270 --> 00:10:25,350 və biz heç vaxt ətrafında hərəkət etmək üçün istifadə təsadüfən üz hərəkət, və ya həmişə 200 00:10:25,350 --> 00:10:30,430 bəzi nöqtədə bir göstərici var sağ siyahının ilk element. 201 00:10:30,430 --> 00:10:33,290 Belə ki, bir yaratmaq üçün daha yaxşıdır biz hərəkət etmək üçün istifadə ikinci. 202 00:10:33,290 --> 00:10:35,877 >> Sonra biz yalnız olub müqayisə ki node dəyəri sahəsində 203 00:10:35,877 --> 00:10:38,960 bu əgər biz axtarır, və nə deyil deyil, biz yalnız növbəti node hərəkət. 204 00:10:38,960 --> 00:10:41,040 Və biz bunu saxlamaq üzərində və üzərində və üzərində, 205 00:10:41,040 --> 00:10:44,811 Biz ya tapmaq qədər element, ya hit 206 00:10:44,811 --> 00:10:47,310 null biz sonunda əldə etdiyiniz və siyahıdan bu yoxdur. 207 00:10:47,310 --> 00:10:50,540 Bu inşallah bir zəng çalmaq lazımdır Sizə yalnız xətti axtarış, 208 00:10:50,540 --> 00:10:54,430 biz yalnız onu təkrarlanmağa edirik bir story bağlı siyahı strukturu 209 00:10:54,430 --> 00:10:56,280 əvəzinə bunu bir sıra istifadə. 210 00:10:56,280 --> 00:10:58,210 >> Belə ki, burada bir nümunə var bir story bağlı siyahı. 211 00:10:58,210 --> 00:11:00,043 Bu ibarətdir Beş qovşaqlarının və biz 212 00:11:00,043 --> 00:11:04,330 rəhbəri pointer siyahısı adlanır siyahısı. 213 00:11:04,330 --> 00:11:07,385 Biz nə istəyirik ilk şey yenidən ki, traversal pointer yaratmaq. 214 00:11:07,385 --> 00:11:09,760 Beləliklə, biz indi iki göstəricilərinə var eyni şey ki, point. 215 00:11:09,760 --> 00:11:15,025 >> İndi də burada qeyd etmədim trav üçün hər hansı bir yer malloc var. 216 00:11:15,025 --> 00:11:18,970 Mən Trav malloc bərabərdir demədim bir şey ki, node artıq mövcuddur 217 00:11:18,970 --> 00:11:21,160 yaddaş kosmik artıq mövcuddur. 218 00:11:21,160 --> 00:11:24,290 Belə ki, mən, həqiqətən, edirəm bütün bu bir göstərici yaradılması. 219 00:11:24,290 --> 00:11:28,210 Mən əlavə mallocing deyiləm space, indi iki göstəricilərinə var 220 00:11:28,210 --> 00:11:31,370 eyni şey işarə. 221 00:11:31,370 --> 00:11:33,710 >> Belə ki, 2 I arıyorum nədir? 222 00:11:33,710 --> 00:11:37,220 Heç bir yaxşı, əvəzinə mən növbəti bir hərəkət olacaq. 223 00:11:37,220 --> 00:11:41,740 Belə ki, əsasən, mən deyərdim ki, Trav növbəti Trav bərabərdir. 224 00:11:41,740 --> 00:11:43,630 Mən heç bir, arıyorum nə 3. 225 00:11:43,630 --> 00:11:45,780 Beləliklə, mən getmək davam edir vasitəsilə, nəhayət qədər 226 00:11:45,780 --> 00:11:48,690 Mən arıyorum nə olan 6 almaq funksiyası zəng əsasında üçün 227 00:11:48,690 --> 00:11:51,600 Mən üst var orada və mən bitirdim. 228 00:11:51,600 --> 00:11:54,150 >> İndi element mən nə edirəm, əgər axtarır siyahı deyil 229 00:11:54,150 --> 00:11:55,510 hələ də iş gedir? 230 00:11:55,510 --> 00:11:57,120 Yaxşı, siyahı fark burada subtly müxtəlif 231 00:11:57,120 --> 00:11:59,410 bu var başqa bir şey deyil bağlı siyahıları ilə əhəmiyyətli, 232 00:11:59,410 --> 00:12:01,780 Siz qorumaq yoxdur onlara hər hansı bir xüsusi qaydada. 233 00:12:01,780 --> 00:12:05,390 Istəyirsinizsə, bilərsiniz, lakin Əgər siz artıq qeyd ola bilər 234 00:12:05,390 --> 00:12:09,310 biz takip saxlanılması deyilik ki, Biz nə sayı element var. 235 00:12:09,310 --> 00:12:13,150 >> Və bir ticarət sort var ki Diziler ayələri bağlı siyahı ilə var, 236 00:12:13,150 --> 00:12:15,300 biz yox edir Artıq təsadüfi giriş. 237 00:12:15,300 --> 00:12:18,150 Biz yalnız istəyirəm, deyə bilmərəm 0th element getmək üçün, 238 00:12:18,150 --> 00:12:21,410 və ya serialın 6-cı element, Mən bir sıra edə bilərsiniz. 239 00:12:21,410 --> 00:12:25,080 Mən getmək istəyirəm deyə bilmərəm 0th element, və ya 6-cı element, 240 00:12:25,080 --> 00:12:30,360 və ya bağlı siyahı 25 element, onlarla bağlı heç bir index var. 241 00:12:30,360 --> 00:12:33,660 Və belə ki, həqiqətən etməz biz üçün bizim siyahısını saxlamaq əgər. 242 00:12:33,660 --> 00:12:36,080 Siz istəyirsinizsə əlbəttə, lakin var 243 00:12:36,080 --> 00:12:38,567 onlar lazımdır niyə heç bir səbəb hər hansı bir sırada saxlanılır. 244 00:12:38,567 --> 00:12:40,400 Belə ki, yenə, bu cəhd edək və Bu siyahıda 6 tapa bilərsiniz. 245 00:12:40,400 --> 00:12:43,200 Yaxşı, biz də başlayacaq başlayan, biz 6 tapmasanız 246 00:12:43,200 --> 00:12:47,690 sonra biz tapmaq deyil davam 6, biz nəhayət burada almaq qədər. 247 00:12:47,690 --> 00:12:52,790 Node Belə ki, hazırda Trav xal 8 olan və altı orada deyil. 248 00:12:52,790 --> 00:12:55,250 >> Belə ki, növbəti addım olardı növbəti göstərici getmək üçün, 249 00:12:55,250 --> 00:12:57,440 belə Trav növbəti trav bərabərdir demək. 250 00:12:57,440 --> 00:13:00,750 Yaxşı, Trav növbəti, göstərilən orada qırmızı qutu null edir. 251 00:13:00,750 --> 00:13:03,020 Belə ki, heç bir yerdə başqa var Bu nöqtədə getmək və 252 00:13:03,020 --> 00:13:06,120 biz əldə etdik ki, bağlaya bilər bağlı siyahı sonunda, 253 00:13:06,120 --> 00:13:07,190 6 orada deyil. 254 00:13:07,190 --> 00:13:10,980 Və qaytarılacaqdır bu halda saxta. 255 00:13:10,980 --> 00:13:14,540 >> OK, necə biz yeni daxil yoxdur bağlı siyahısına daxil node? 256 00:13:14,540 --> 00:13:17,310 Beləliklə, biz yarada olduğunuz heç bir bağlı siyahısı, 257 00:13:17,310 --> 00:13:19,370 lakin biz yəqin ki, istəyirəm bir zəncir qurmaq və 258 00:13:19,370 --> 00:13:22,620 fərqli siyahıları bir dəstə yaradır. 259 00:13:22,620 --> 00:13:25,700 Biz bir siyahısı var istəyirəm ki, , bu qovşaqlarının bir dəstə var 260 00:13:25,700 --> 00:13:28,040 bir node ilə siyahıları bir dəstə. 261 00:13:28,040 --> 00:13:31,260 Beləliklə, biz yalnız yaradın istifadə davam edə bilməz funksiyası biz indi, əvvəllər müəyyən biz 262 00:13:31,260 --> 00:13:33,860 bir daxil istəyirəm artıq mövcuddur siyahısı. 263 00:13:33,860 --> 00:13:36,499 >> Bu halda Belə ki, biz gedirik iki dəlilləri keçmək, 264 00:13:36,499 --> 00:13:39,290 ki, baş göstərici biz əlavə etmək istədiyiniz siyahısı bağlıdır. 265 00:13:39,290 --> 00:13:40,910 Bu qədər niyə Yenə ki mühüm həmişə ki, 266 00:13:40,910 --> 00:13:43,400 , çünki takip bu, həqiqətən yeganə yolu biz var 267 00:13:43,400 --> 00:13:46,690 bütün siyahısı müraciət etmək lazımdır yalnız ilk element bir göstərici tərəfindən. 268 00:13:46,690 --> 00:13:49,360 Beləliklə, biz bir keçmək istəyirəm ilk element göstərici, 269 00:13:49,360 --> 00:13:52,226 və nə dəyəri biz siyahısına əlavə etmək istəyirəm. 270 00:13:52,226 --> 00:13:54,600 Və nəticədə bu funksiya bir pointer qayıtmaq üçün gedir 271 00:13:54,600 --> 00:13:57,980 bir bağlı siyahı yeni rəhbəri. 272 00:13:57,980 --> 00:13:59,700 >> Burada cəlb addımlar hansılardır? 273 00:13:59,700 --> 00:14:02,249 Bəli, yalnız yaratmaq ilə kimi, biz dinamik ayırmaq lazımdır 274 00:14:02,249 --> 00:14:05,540 yeni node üçün yer, və olun əmin biz yaddaş tökülmək deyil, yenə, 275 00:14:05,540 --> 00:14:07,150 biz malloc istifadə etdiyiniz çünki. 276 00:14:07,150 --> 00:14:09,080 Sonra biz yaşayır istəyirəm və node daxil 277 00:14:09,080 --> 00:14:12,730 belə qoymaq, nə val node daxil edir. 278 00:14:12,730 --> 00:14:17,310 Biz node daxil istədiyiniz bağlı siyahı başlayır. 279 00:14:17,310 --> 00:14:19,619 >> Bir səbəb var ki, mən Bunu istəyirəm, və bu 280 00:14:19,619 --> 00:14:21,910 ikinci alaraq dəyər ola bilər Burada video fasilə, 281 00:14:21,910 --> 00:14:25,860 Mən istəyirəm ki, niyə haqqında düşünmək Bir bağlı əvvəlində daxil 282 00:14:25,860 --> 00:14:26,589 siyahısı. 283 00:14:26,589 --> 00:14:28,630 Yenə qeyd bu, həqiqətən deyil ki, 284 00:14:28,630 --> 00:14:33,020 Biz hər hansı bir onu qorumaq, əgər məsələ üçün, belə ki, bəlkə bir ipucu var. 285 00:14:33,020 --> 00:14:36,040 Və biz əgər olur nə gördüm istəyirdi to-- və ya yalnız bir ikinci 286 00:14:36,040 --> 00:14:37,360 bundan zaman gedirdi axtarış vasitəsilə 287 00:14:37,360 --> 00:14:39,235 nə ola bilər oldu biz çalışırıq, əgər baş 288 00:14:39,235 --> 00:14:41,330 siyahının sonunda daxil etmək üçün. 289 00:14:41,330 --> 00:14:44,750 Bir yoxdur, çünki siyahısı sonuna göstərici. 290 00:14:44,750 --> 00:14:47,490 >> Belə ki, səbəb istəyirəm ki, əvvəlində daxil, 291 00:14:47,490 --> 00:14:49,380 Mən dərhal bunu edə bilərsiniz, çünki. 292 00:14:49,380 --> 00:14:52,730 Əvvəldə bir göstərici var, və biz ikinci vizual bu görəcəksiniz. 293 00:14:52,730 --> 00:14:55,605 Amma sonunda daxil etmək istəyirsinizsə, Mən əvvəlində başlamaq lazımdır 294 00:14:55,605 --> 00:14:58,760 bütün yol axır sonunda, və sonra tack. 295 00:14:58,760 --> 00:15:01,420 Belə ki, deməkdir ki, siyahısı sonunda daxil 296 00:15:01,420 --> 00:15:04,140 n bir o olacaq əməliyyat, geri gedir 297 00:15:04,140 --> 00:15:06,720 bizim müzakirə hesablama mürəkkəblik. 298 00:15:06,720 --> 00:15:10,140 Bu n əməliyyat bir o olmaq istiyorum siyahısı, böyük və daha böyük var kimi, 299 00:15:10,140 --> 00:15:13,310 və daha böyük, daha olmaq lazımdır və bir tack daha çətin 300 00:15:13,310 --> 00:15:14,661 sonunda. 301 00:15:14,661 --> 00:15:17,410 Amma bu həmişə həqiqətən asandır başında bir şey tack, 302 00:15:17,410 --> 00:15:19,060 Siz əvvəlində həmişə istəyirik. 303 00:15:19,060 --> 00:15:21,620 >> Və biz yenə bu bir vizual görəcəksiniz. 304 00:15:21,620 --> 00:15:24,100 Və sonra biz bir dəfə Bitirdiğinizde bir dəfə biz yeni node daxil etdik, 305 00:15:24,100 --> 00:15:26,880 biz bizim pointer qayıtmaq istəyirəm bir bağlı siyahı yeni rəhbəri olan 306 00:15:26,880 --> 00:15:29,213 biz daxil olduğunuz ildən başlayan, həqiqətən olacaq 307 00:15:29,213 --> 00:15:31,060 biz yalnız yaradılmış node bir göstərici. 308 00:15:31,060 --> 00:15:33,280 , Bu görüntüləmək imkan çünki mən kömək edirəm. 309 00:15:33,280 --> 00:15:36,661 >> Belə ki, burada bizim siyahısı, bu ibarətdir Dörd elementləri, bir node, 15 olan 310 00:15:36,661 --> 00:15:38,410 olan node işarə 9 ehtiva edən 311 00:15:38,410 --> 00:15:41,370 13 olan bir node işarə, olan olan bir node işarə 312 00:15:41,370 --> 00:15:44,840 Null var 10, növbəti göstərici kimi pointer 313 00:15:44,840 --> 00:15:47,010 belə ki, siyahıda sonu var. 314 00:15:47,010 --> 00:15:50,200 Beləliklə, biz bir əlavə etmək istəyirəm dəyəri 12 yeni node 315 00:15:50,200 --> 00:15:52,720 bu başında siyahısı, biz nə etməliyəm? 316 00:15:52,720 --> 00:15:58,770 Bəli, ilk biz kosmik malloc node, sonra biz orada 12 qoydu. 317 00:15:58,770 --> 00:16:02,211 >> Belə ki, indi biz əldə etdik qərar nöqtəsi, sağ? 318 00:16:02,211 --> 00:16:03,960 Biz bir neçə var göstəricilərinə ki, biz bilər 319 00:16:03,960 --> 00:16:06,770 biz ilk olan hərəkət etməlidir, hərəkət? 320 00:16:06,770 --> 00:16:09,250 12 point etmək lazımdır list-- yeni rəhbəri 321 00:16:09,250 --> 00:16:13,020 və ya pardon, biz 12 etməlidir siyahı köhnə başçısı qeyd? 322 00:16:13,020 --> 00:16:15,319 Yoxsa biz ki, demək lazımdır siyahısı indi 12 başlayır. 323 00:16:15,319 --> 00:16:17,110 Bir fərq var var, və biz baxmaq lazımdır 324 00:16:17,110 --> 00:16:19,870 həm də ikinci nə edir. 325 00:16:19,870 --> 00:16:23,350 >> Amma bu səbəb olur sidebar üçün böyük mövzu, 326 00:16:23,350 --> 00:16:26,280 olan ki biridir bağlı siyahıları ilə trickiest şeyi 327 00:16:26,280 --> 00:16:30,980 göstəricilərinə təşkil edir Düzgün qaydada. 328 00:16:30,980 --> 00:16:34,520 Siz sifariş şeyi hərəkət varsa, Siz təsadüfən son bilər 329 00:16:34,520 --> 00:16:36,050 Siyahıya qalan orphaning. 330 00:16:36,050 --> 00:16:37,300 Və burada bir misal var. 331 00:16:37,300 --> 00:16:40,540 Belə ki, ideya ilə gedək of-- yaxşı, biz yalnız 12 yaratdıq. 332 00:16:40,540 --> 00:16:43,180 Biz 12 olacaq bilirik siyahısı yeni rəhbəri 333 00:16:43,180 --> 00:16:47,660 və niyə biz yalnız hərəkət etmir siyahısı göstərici var qeyd etmək. 334 00:16:47,660 --> 00:16:49,070 >> OK, belə ki, yaxşı. 335 00:16:49,070 --> 00:16:51,560 Belə ki, indi burada 12 növbəti nöqtəsi edir? 336 00:16:51,560 --> 00:16:54,580 Mən vizual Göründüyü demək Bu 15 qeyd edəcək ki, 337 00:16:54,580 --> 00:16:57,250 insanlar kimi, bu, bizim üçün həqiqətən aydın deyil. 338 00:16:57,250 --> 00:17:00,300 Necə kompüter bilir? 339 00:17:00,300 --> 00:17:02,720 Biz bir şey yoxdur Artıq 15 işarə edərək, sağ? 340 00:17:02,720 --> 00:17:05,869 >> Biz 15 müraciət üçün heç bir imkanı itirdik. 341 00:17:05,869 --> 00:17:11,460 Biz yeni arrow növbəti bərabər deyə bilmərəm bir şey var heç bir şey yoxdur. 342 00:17:11,460 --> 00:17:13,510 Əslində, biz yetim etdik siyahısı istirahət 343 00:17:13,510 --> 00:17:16,465 belə etməklə, biz təsadüfən zəncir qırıldı. 344 00:17:16,465 --> 00:17:18,089 Və əlbəttə ki, biz bunu istəmirik. 345 00:17:18,089 --> 00:17:20,000 >> Belə ki, geri getmək və yenə bu cəhd edək. 346 00:17:20,000 --> 00:17:24,060 Bəlkə doğru şey 12 növbəti göstərici müəyyən edir 347 00:17:24,060 --> 00:17:28,290 ilk siyahıda köhnə rəhbəri, sonra biz siyahısını üzərində hərəkət edə bilər. 348 00:17:28,290 --> 00:17:30,420 Və əslində, ki, düzgün qaydada biz ki, 349 00:17:30,420 --> 00:17:32,836 biz olduğunuzda riayət etmək lazımdır story bağlı siyahı ilə iş. 350 00:17:32,836 --> 00:17:36,460 Biz həmişə qoşulmaq istəyirsinizsə siyahısına yeni element, 351 00:17:36,460 --> 00:17:41,010 Biz bu cür almaq əvvəl dəyişdirilməsi mühüm addım 352 00:17:41,010 --> 00:17:43,360 harada bağlı siyahı rəhbəridir. 353 00:17:43,360 --> 00:17:46,740 Yenə belə bir fundamental şey, Biz bunun izini itirmək istəmirəm. 354 00:17:46,740 --> 00:17:49,310 >> Belə ki, əmin etmək istəyirəm hər şey birlikdə chained edir 355 00:17:49,310 --> 00:17:52,040 ki, pointer hərəkət əvvəl. 356 00:17:52,040 --> 00:17:55,300 Və bu düzgün qaydada olacaq, olan siyahısına 12 birləşdirmək üçün, 357 00:17:55,300 --> 00:17:57,630 sonra siyahısı 12 başlayır ki. 358 00:17:57,630 --> 00:18:00,860 Biz siyahısı 12-da başlayacaq bildirib əgər sonra siyahısına 12 qoşulmaq üçün cəhd 359 00:18:00,860 --> 00:18:02,193 biz artıq nə gördüm. 360 00:18:02,193 --> 00:18:04,920 Biz səhvən siyahısı itirirlər. 361 00:18:04,920 --> 00:18:06,740 >> OK, belə ki, daha bir şey haqqında danışmaq. 362 00:18:06,740 --> 00:18:09,750 Biz xilas olmaq istəyirsinizsə, bütün bir dəfə siyahısını bağlıdır? 363 00:18:09,750 --> 00:18:11,750 Yenə mallocing edirik Bütün bu yer, və biz 364 00:18:11,750 --> 00:18:13,351 biz Bitirdiğinizde onu azad etmək lazımdır. 365 00:18:13,351 --> 00:18:15,350 Belə ki, indi biz silmək üçün bütün bağlı siyahı. 366 00:18:15,350 --> 00:18:16,850 Bəli, biz nə istəyirik? 367 00:18:16,850 --> 00:18:20,460 >> Biz null göstərici əldə etdik, biz başqa, yalnız silmək, dayandırmaq istəyirəm 368 00:18:20,460 --> 00:18:23,420 sonra siyahıdan qalan və məni azad. 369 00:18:23,420 --> 00:18:28,890 Siyahıya qalan silmək, və sonra cari node pulsuz. 370 00:18:28,890 --> 00:18:32,850 Kimi ki, səs nə, nə texnika danışdıq var 371 00:18:32,850 --> 00:18:35,440 haqqında əvvəllər kimi ki, səs edir? 372 00:18:35,440 --> 00:18:39,560 Sonra başqa hamı sil geri gəlmək və mənə silin. 373 00:18:39,560 --> 00:18:42,380 >> Ki, recursion, biz etdik bir az kiçik problem, 374 00:18:42,380 --> 00:18:46,910 Biz hər kəs silmək deyərək edirik başqa, onda siz mənə düzəlişlər edə bilərsiniz. 375 00:18:46,910 --> 00:18:50,940 Və daha yol aşağı ki, node başqa hamı silmək, deyəcəklər. 376 00:18:50,940 --> 00:18:53,940 Amma nəticədə biz almaq lazımdır siyahısı null point, 377 00:18:53,940 --> 00:18:55,310 ki, bizim əsas işi var. 378 00:18:55,310 --> 00:18:57,010 >> Belə ki, bu nəzər edək və bu iş ola bilər necə. 379 00:18:57,010 --> 00:18:59,759 Belə ki, burada bizim siyahısı, bu eyni , biz yalnız söhbət siyahısı 380 00:18:59,759 --> 00:19:00,980 və addımlar var. 381 00:19:00,980 --> 00:19:04,200 Mətn bir çox burada var, lakin inşallah vizual kömək edəcək. 382 00:19:04,200 --> 00:19:08,557 >> Beləliklə, biz yaxşıdır və mən də çəkdi Bizim yığını çərçivəsində illüstrasiya qədər 383 00:19:08,557 --> 00:19:10,890 zəng çıxarıcı borular bizim video, və inşallah bu bütün 384 00:19:10,890 --> 00:19:13,260 birlikdə neler sizə göstərəcək. 385 00:19:13,260 --> 00:19:14,510 Belə ki, burada bizim pseudocode kodu var. 386 00:19:14,510 --> 00:19:17,830 Biz null çatmaq varsa pointer, əks halda, dayandırmaq 387 00:19:17,830 --> 00:19:21,320 Siyahıya qalan silmək, sonra cari node pulsuz. 388 00:19:21,320 --> 00:19:25,700 Belə ki, indi, list-- biz istəyirik pointer 389 00:19:25,700 --> 00:19:28,410 keçən 12 bal məhv etmək. 390 00:19:28,410 --> 00:19:33,340 12 null göstərici deyil, belə ki, biz istəyirik Siyahıya qalan silmək üçün gedir. 391 00:19:33,340 --> 00:19:35,450 >> Nə silinməsi edir bizə qalan cəlb? 392 00:19:35,450 --> 00:19:37,950 Bəli, bu bir edilməsi deməkdir deyərək məhv zəng 393 00:19:37,950 --> 00:19:42,060 15 ki başlanğıcıdır biz məhv etmək istəyən siyahısı istirahət. 394 00:19:42,060 --> 00:19:47,480 Və belə zəng məhv 12 gözləməyə cür edir. 395 00:19:47,480 --> 00:19:52,690 Bu gözləyir orada dondurulmuş oldu onun iş başa çatdırmaq üçün, 15 məhv çağırırıq. 396 00:19:52,690 --> 00:19:56,280 >> Yaxşı, 15 null göstərici deyil, belə ki, demək olacaq, bütün sağ, 397 00:19:56,280 --> 00:19:58,450 yaxşı, siyahıda qalan silin. 398 00:19:58,450 --> 00:20:00,760 Siyahıya qalan başlayır 9, və biz yalnız lazımdır 399 00:20:00,760 --> 00:20:04,514 bütün silmək qədər gözləyin ki, stuff, sonra geri gəlmək və mənə silin. 400 00:20:04,514 --> 00:20:06,680 Yaxşı 9 yaxşı, demək olacaq, Mən bir null göstərici deyiləm 401 00:20:06,680 --> 00:20:09,020 belə ki, burada istirahət siyahısını silin. 402 00:20:09,020 --> 00:20:11,805 Və belə ki, cəhd və 13 məhv. 403 00:20:11,805 --> 00:20:15,550 13, mən null göstərici deyiləm deyir Eyni şey, dollar keçir. 404 00:20:15,550 --> 00:20:17,930 10, 10 null göstərici deyil bir null göstərici var, 405 00:20:17,930 --> 00:20:20,200 lakin 10 deyil özü deyil null indi pointer, 406 00:20:20,200 --> 00:20:22,470 və belə ki, çox dollar keçir. 407 00:20:22,470 --> 00:20:25,560 >> İndi orada xal siyahısı həqiqətən some-- qeyd olardı 408 00:20:25,560 --> 00:20:28,710 Mən image daha çox yer olsaydı, bəzi təsadüfi kosmik qeyd olardı 409 00:20:28,710 --> 00:20:29,960 Biz nə bilmirəm ki. 410 00:20:29,960 --> 00:20:34,680 Bu baxmayaraq null göstərici deyil, siyahısı, sanki indi null dəyərlər var müəyyən edilir. 411 00:20:34,680 --> 00:20:36,820 Bu hüququ qırmızı qutu içərisində işarə edir. 412 00:20:36,820 --> 00:20:39,960 Biz belə bir null göstərici çatdı biz dayandırmaq bilər, və biz tamamlayın. 413 00:20:39,960 --> 00:20:46,230 >> Və belə ki, bənövşəyi çərçivəsində da, indi deyil Aktiv çərçivəsində var yığını üst, 414 00:20:46,230 --> 00:20:47,017 lakin bunu edir. 415 00:20:47,017 --> 00:20:48,600 Bir null göstərici əldə varsa, dayandırmaq. 416 00:20:48,600 --> 00:20:51,290 Biz heç bir şey yoxdur, biz bir null göstərici azad edə bilməz, 417 00:20:51,290 --> 00:20:55,070 Biz hər hansı bir malloc etməyib yer, və biz tamamlayın. 418 00:20:55,070 --> 00:20:57,590 Ki, funksiyası çərçivəsində belə məhv və biz 419 00:20:57,590 --> 00:21:00,930 biz tərk harada resume-- biz ala növbəti yüksək biri ilə off olan 420 00:21:00,930 --> 00:21:02,807 Burada bu tünd mavi bir münasibət deyil. 421 00:21:02,807 --> 00:21:04,390 Belə ki, biz off sol harada hüququ ala. 422 00:21:04,390 --> 00:21:06,598 Biz qalan silindi siyahısı artıq, belə ki, indi biz istəyirik 423 00:21:06,598 --> 00:21:08,000 cari qovşaqlarının azad gedir. 424 00:21:08,000 --> 00:21:12,920 Belə ki, indi biz bu node azad edə bilər biz funksiyası sona gəlindi etdik. 425 00:21:12,920 --> 00:21:16,810 Və belə ki, funksiyası çərçivəsində, məhv edilir və biz mavi bir qədər seçin. 426 00:21:16,810 --> 00:21:20,650 >> Belə ki, mən artıq done-- sonra belə deyir siyahı qalan silmə belə 427 00:21:20,650 --> 00:21:23,140 cari node azad. 428 00:21:23,140 --> 00:21:26,520 İndi sarı çərçivəsində deyil geri yığını üst. 429 00:21:26,520 --> 00:21:29,655 Gördüyünüz kimi, belə ki, biz indi istəyirik sağdan siyahısı məhv sol. 430 00:21:29,655 --> 00:21:33,710 431 00:21:33,710 --> 00:21:37,280 >> Bəs baş olardı Biz hər şeyi yanlış yol etmiş olur? 432 00:21:37,280 --> 00:21:39,410 Sadəcə biz cəhd zaman kimi bir element əlavə edin. 433 00:21:39,410 --> 00:21:41,909 Biz əgər zəncir, messed varsa biz göstəricilərinə əlaqə etməyib 434 00:21:41,909 --> 00:21:44,690 Düzgün qaydada, biz əgər yalnız ilk element azad, 435 00:21:44,690 --> 00:21:47,420 biz yalnız azad əgər siyahı başı, indi biz 436 00:21:47,420 --> 00:21:49,642 müraciət heç bir yol var siyahısı istirahət. 437 00:21:49,642 --> 00:21:51,350 Və belə ki, biz olardı yetim hər şey 438 00:21:51,350 --> 00:21:53,880 biz nə olardı bir yaddaş sızıntısı çağırıb. 439 00:21:53,880 --> 00:21:56,800 Siz bizim video geri varsa dinamik yaddaş ayrılması haqqında, 440 00:21:56,800 --> 00:21:58,650 çox yaxşı bir şey deyil. 441 00:21:58,650 --> 00:22:00,810 >> Kimi mən orada ifadə edərək, bir neçə əməliyyatları var 442 00:22:00,810 --> 00:22:04,010 biz işləmək üçün istifadə etmək lazımdır ki, ilə səmərəli siyahısını bağlıdır. 443 00:22:04,010 --> 00:22:08,430 Və, Mən bir çıxarılmışdır qeyd ola bilər bağlı olan bir element silmə 444 00:22:08,430 --> 00:22:09,064 siyahısı. 445 00:22:09,064 --> 00:22:10,980 Hesab edirəm ki, səbəbi bu, həqiqətən cür var edir 446 00:22:10,980 --> 00:22:14,360 silmək üçün necə düşünmək çətin bir story olan bir element 447 00:22:14,360 --> 00:22:15,600 bağlı siyahı. 448 00:22:15,600 --> 00:22:19,950 Biz üzərində keçmək lazımdır siyahısı, bir şey olan 449 00:22:19,950 --> 00:22:22,975 bir point biz almaq deməkdir bu node silmək istəyirəm 450 00:22:22,975 --> 00:22:25,350 lakin üçün biz bunu belə etmək hər hansı bir məlumat itirmək yoxdur, 451 00:22:25,350 --> 00:22:30,530 bu birləşdirmək lazımdır Burada burada node. 452 00:22:30,530 --> 00:22:33,390 >> Beləliklə, mən yəqin ki, səhv etdi vizual baxımdan. 453 00:22:33,390 --> 00:22:36,830 Beləliklə, biz əvvəlində istəyirik bizim siyahısı, biz vasitəsilə davam edirik 454 00:22:36,830 --> 00:22:40,510 bu node silmək istəyirəm. 455 00:22:40,510 --> 00:22:43,440 , Biz yalnız onu silmək əgər biz zəncir sınıq etdik. 456 00:22:43,440 --> 00:22:45,950 Burada bu node başqa hər şey aiddir, 457 00:22:45,950 --> 00:22:48,260 Burada həyata sonra zəncir var. 458 00:22:48,260 --> 00:22:51,190 >> Belə ki, biz, həqiqətən, nə etmək lazımdır biz bu nöqtəyə almaq sonra, 459 00:22:51,190 --> 00:22:56,670 biz bir geri addım etmək lazımdır, və bu node bu node üzərində qoşulmaq, 460 00:22:56,670 --> 00:22:58,590 belə ki, biz sonra silə bilərsiniz ortada bir. 461 00:22:58,590 --> 00:23:02,120 Amma story bağlı siyahıları deyil Bizə geri getmək üçün bir yol təqdim edir. 462 00:23:02,120 --> 00:23:05,160 Belə ki, biz ya saxlamaq lazımdır iki göstəricilərinə və onları hərəkət 463 00:23:05,160 --> 00:23:09,527 off addım sort, arxasında bir digər biz getmək, və ya bir nöqtəyə almaq kimi 464 00:23:09,527 --> 00:23:11,110 və sonra vasitəsilə başqa göstərici göndərin. 465 00:23:11,110 --> 00:23:13,150 Və siz bunu edə bilərsiniz kimi bir az messy əldə edə bilərsiniz. 466 00:23:13,150 --> 00:23:15,360 Xoşbəxtlikdən, biz var başqa bir yolu ki həll etmək üçün, 467 00:23:15,360 --> 00:23:17,810 biz ikiqat bağlı siyahıları haqqında danışmaq. 468 00:23:17,810 --> 00:23:20,720 >> Mən Doug Lloyd deyiləm, bu CS50 edir. 469 00:23:20,720 --> 00:23:22,298