1 00:00:07,260 --> 00:00:10,050 [Powered by Google Translate] У програмирању, често је потребно да представљају листе вредности, 2 00:00:10,050 --> 00:00:12,840 као што су имена ученика у одељку 3 00:00:12,840 --> 00:00:15,100 или њихови резултати на последњим квизу. 4 00:00:15,100 --> 00:00:17,430 >> У језику Ц, изјавио низови могу користити 5 00:00:17,430 --> 00:00:19,160 за складиштење листе. 6 00:00:19,160 --> 00:00:21,200 То је лако набројати елементе листе 7 00:00:21,200 --> 00:00:23,390 ускладиштени у низу, а ако вам је потребан приступ 8 00:00:23,390 --> 00:00:25,050 или модификује ИТХ елемент листе 9 00:00:25,050 --> 00:00:27,570 за неке произвољне индекс сам, 10 00:00:27,570 --> 00:00:29,910 који може да се уради у сталном времену, 11 00:00:29,910 --> 00:00:31,660 али низови имају недостатке, превише. 12 00:00:31,660 --> 00:00:33,850 >> Када смо их објави, ми смо у обавези да кажу 13 00:00:33,850 --> 00:00:35,900 напред колики су, 14 00:00:35,900 --> 00:00:38,160 који је, колико елементи могу чувати 15 00:00:38,160 --> 00:00:40,780 и колики су ти елементи, који се одређује њихов тип. 16 00:00:40,780 --> 00:00:45,450 На пример, инт арр (10) 17 00:00:45,450 --> 00:00:48,220 може да ускладишти 10 ставки 18 00:00:48,220 --> 00:00:50,200 које су величине једног инт. 19 00:00:50,200 --> 00:00:52,590 >> Не можемо променити величину низа након проглашења. 20 00:00:52,590 --> 00:00:55,290 Морамо да направимо нови низ, ако желимо да ускладиштите више елемената. 21 00:00:55,290 --> 00:00:57,410 Разлог ово ограничење постоји да наша 22 00:00:57,410 --> 00:00:59,040 Програм чува читав низ 23 00:00:59,040 --> 00:01:02,310 као сусједном комад меморије. 24 00:01:02,310 --> 00:01:04,500 Рецимо ово је бафер где смо складиште у нашем низу. 25 00:01:04,500 --> 00:01:06,910 Ту можда остале променљиве 26 00:01:06,910 --> 00:01:08,310 налази одмах поред низа 27 00:01:08,310 --> 00:01:10,060 у меморији, тако да не можемо 28 00:01:10,060 --> 00:01:12,060 само да низ већи. 29 00:01:12,060 --> 00:01:15,700 >> Понекад бисмо волели да тргују брзо низу је дата брзину приступа 30 00:01:15,700 --> 00:01:17,650 за мало више флексибилности. 31 00:01:17,650 --> 00:01:20,380 Унесите повезане листе, друга основна структура података 32 00:01:20,380 --> 00:01:22,360 можда нећете бити упознат са. 33 00:01:22,360 --> 00:01:24,200 На високом нивоу, 34 00:01:24,200 --> 00:01:26,840 повезана листа складишти податке у низу чворова 35 00:01:26,840 --> 00:01:29,280 који су међусобно повезани са линковима, 36 00:01:29,280 --> 00:01:31,760 па 'повезана листа ". његово име 37 00:01:31,760 --> 00:01:33,840 Као што ћемо видети, ова разлика у дизајну 38 00:01:33,840 --> 00:01:35,500 доводи до различите предности и мане 39 00:01:35,500 --> 00:01:37,000 него низа. 40 00:01:37,000 --> 00:01:39,840 >> Ево неких Ц код за врло једноставне повезане листе целих бројева. 41 00:01:39,840 --> 00:01:42,190 Можете видети да смо представљали сваки чвор 42 00:01:42,190 --> 00:01:45,520 на листи као струцт који садржи 2 ствари, 43 00:01:45,520 --> 00:01:47,280 цео за складиштење зове 'вал' 44 00:01:47,280 --> 00:01:50,460 и линк на следећу чвор у листи 45 00:01:50,460 --> 00:01:52,990 које представљају као показивач зове 'поред'. 46 00:01:54,120 --> 00:01:56,780 На овај начин, можемо пратити целу листу 47 00:01:56,780 --> 00:01:58,790 са само једним показивачем 1. чвора, 48 00:01:58,790 --> 00:02:01,270 и онда можемо пратити следеће савете 49 00:02:01,270 --> 00:02:03,130 на 2. чвора, 50 00:02:03,130 --> 00:02:05,280 до 3. чвора, 51 00:02:05,280 --> 00:02:07,000 до 4. чвора, 52 00:02:07,000 --> 00:02:09,889 и тако даље, све док не дођемо до краја листе. 53 00:02:10,520 --> 00:02:12,210 >> Можда ћете моћи да видите 1 предност то има 54 00:02:12,210 --> 00:02:14,490 преко статичког низа структура - са повезаном листом, 55 00:02:14,490 --> 00:02:16,450 не сасвим потребан велики комад меморије. 56 00:02:17,400 --> 00:02:20,530 1. чвор листе могао да живи на овом месту у меморији, 57 00:02:20,530 --> 00:02:23,160 и 2. чвор може бити скроз овамо. 58 00:02:23,160 --> 00:02:25,780 Можемо доћи до свих чворова, без обзира где се у меморији су, 59 00:02:25,780 --> 00:02:28,890 јер почевши од 1. чвор, поред показивача сваког чвора 60 00:02:28,890 --> 00:02:31,700 говори нам тачно где да идемо даље. 61 00:02:31,700 --> 00:02:33,670 >> Осим тога, ми не треба да кажем напред 62 00:02:33,670 --> 00:02:36,740 колики повезана листа ће бити начин да радимо са статичким низовима, 63 00:02:36,740 --> 00:02:39,060 јер можемо задржати додајући чворови на листу 64 00:02:39,060 --> 00:02:42,600 докле год има простора негде у меморији за нове чворова. 65 00:02:42,600 --> 00:02:45,370 Дакле, повезане листе су лако динамички величину. 66 00:02:45,370 --> 00:02:47,950 Рецимо, касније у програму треба додати још чворове 67 00:02:47,950 --> 00:02:49,350 у нашој листи. 68 00:02:49,350 --> 00:02:51,480 Да убаците нови чвор у нашој листи у лету, 69 00:02:51,480 --> 00:02:53,740 све што треба да урадите је да издвоји за ту меморију чвора, 70 00:02:53,740 --> 00:02:55,630 бућ у вредности података, 71 00:02:55,630 --> 00:02:59,070 а затим ставите га тамо где желимо подешавањем одговарајуће показиваче. 72 00:02:59,070 --> 00:03:02,310 >> На пример, ако бисмо желели да поставите чвор између 73 00:03:02,310 --> 00:03:04,020 2. и 3. чворови на листи, 74 00:03:04,020 --> 00:03:06,800  не бисмо имали да се крећу 2. или 3. чворове уопште. 75 00:03:06,800 --> 00:03:09,190 Реци ми убацивањем ову црвену чвор. 76 00:03:09,190 --> 00:03:12,890 Све ћемо морати да урадимо је Сет нект показивач новог чвора 77 00:03:12,890 --> 00:03:14,870 да укаже на 3. чвора 78 00:03:14,870 --> 00:03:18,580 и онда РеВире нект показивач 2. чвора 79 00:03:18,580 --> 00:03:20,980 да укаже на нашем новом чвору. 80 00:03:22,340 --> 00:03:24,370 Дакле, можемо величину наше листе на лету 81 00:03:24,370 --> 00:03:26,090 јер наш рачунар не ослања на индексирање, 82 00:03:26,090 --> 00:03:28,990 већ на повезивању коришћења тројке да их сачувате. 83 00:03:29,120 --> 00:03:31,600 >> Међутим, недостатак повезане листе 84 00:03:31,600 --> 00:03:33,370 је да, за разлику од статичког низа, 85 00:03:33,370 --> 00:03:36,690 рачунар не може само скочити на средини листе. 86 00:03:38,040 --> 00:03:40,780 Пошто рачунар има да посети сваки чвор у повезаној листи 87 00:03:40,780 --> 00:03:42,330 доћи до следећег један, 88 00:03:42,330 --> 00:03:44,770 то ће трајати дуже да пронађете одређену чвор 89 00:03:44,770 --> 00:03:46,400 него би у низу. 90 00:03:46,400 --> 00:03:48,660 Да прођу цео списак захтева време пропорционално 91 00:03:48,660 --> 00:03:50,580 дужини листе, 92 00:03:50,580 --> 00:03:54,630 или О (н) у асимптотско нотацији. 93 00:03:54,630 --> 00:03:56,510 У просеку, достигавши било ког чвора 94 00:03:56,510 --> 00:03:58,800 Такође је потребно време пропорционална н. 95 00:03:58,800 --> 00:04:00,700 >> Сада, хајде да ствари напише неки код 96 00:04:00,700 --> 00:04:02,000 који ради са повезаним листама. 97 00:04:02,000 --> 00:04:04,220 Рецимо желимо повезано листу целих бројева. 98 00:04:04,220 --> 00:04:06,140 Можемо представљају чвор у нашем списку поново 99 00:04:06,140 --> 00:04:08,340 као струцт са 2 поља, 100 00:04:08,340 --> 00:04:10,750 интегер вредност назива 'вал' 101 00:04:10,750 --> 00:04:13,490 и следећег показивач на следећи чвор листе. 102 00:04:13,490 --> 00:04:15,660 Па, изгледа једноставно. 103 00:04:15,660 --> 00:04:17,220 >> Рецимо да желите да напишете функцију 104 00:04:17,220 --> 00:04:19,329 који прелази на листи и отиске Оут 105 00:04:19,329 --> 00:04:22,150 Вредност чувају у последњем чвору листе. 106 00:04:22,150 --> 00:04:24,850 Па, то значи да ћемо морати да прођу све чворове на листи 107 00:04:24,850 --> 00:04:27,310 да пронађе последњи, али пошто нисмо додајући 108 00:04:27,310 --> 00:04:29,250 или брисање ништа, ми не желимо да промените 109 00:04:29,250 --> 00:04:32,210 унутрашња структура наредних показивача на листи. 110 00:04:32,210 --> 00:04:34,790 >> Дакле, ми ћемо морати показивач посебно за пролаза 111 00:04:34,790 --> 00:04:36,940 који ћемо назвати "пописивача". 112 00:04:36,940 --> 00:04:38,870 То ће пузати кроз све елементе листе 113 00:04:38,870 --> 00:04:41,190 пратећи ланац од наредне показивача. 114 00:04:41,190 --> 00:04:43,750 Све смо ускладиштена је показивач на 1. чвора, 115 00:04:43,750 --> 00:04:45,730 или "шеф" листе. 116 00:04:45,730 --> 00:04:47,370 Шеф указује 1. чвора. 117 00:04:47,370 --> 00:04:49,120 То је типа показивач до чвора. 118 00:04:49,120 --> 00:04:51,280 >> Да бисте добили стварну 1. чвор у листи, 119 00:04:51,280 --> 00:04:53,250 морамо да дереференце овај показивач, 120 00:04:53,250 --> 00:04:55,100 али пре него што можемо да дереференце, морамо да проверите 121 00:04:55,100 --> 00:04:57,180 ако је показивач је нулл први. 122 00:04:57,180 --> 00:04:59,190 Ако је нула, листа је празна, 123 00:04:59,190 --> 00:05:01,320 и ми треба да одштампате поруку, јер је листа празна, 124 00:05:01,320 --> 00:05:03,250 не постоји последњи чвор. 125 00:05:03,250 --> 00:05:05,190 Али, рецимо да ова листа није празна. 126 00:05:05,190 --> 00:05:08,340 Ако није, онда треба пузати кроз целу листу 127 00:05:08,340 --> 00:05:10,440 док не дођемо до последњег чвор листе, 128 00:05:10,440 --> 00:05:13,030 и како можемо рећи да гледамо последњег чвора у листи? 129 00:05:13,670 --> 00:05:16,660 >> Па, ако је следећи показивач чвор је нула, 130 00:05:16,660 --> 00:05:18,320 знамо да смо на крају 131 00:05:18,320 --> 00:05:22,390 јер Ласт Нект показивач би имали Нема следећег чвор у листи да укаже на. 132 00:05:22,390 --> 00:05:26,590 То је добра пракса да се увек држати нект показивач иницијализован на НУЛЛ прошле чвора 133 00:05:26,590 --> 00:05:30,800 да имају стандардизован имовину која нас упозорава кад смо стигли на крај листе. 134 00:05:30,800 --> 00:05:33,510 >> Дакле, ако пописивач → следећи је нула, 135 00:05:34,120 --> 00:05:38,270 запамтите да стрелица синтакса је пречица за дереференцинг 136 00:05:38,270 --> 00:05:40,010 показивач на структуру, онда приступ 137 00:05:40,010 --> 00:05:42,510 Његова следећа поља једнак незгодно: 138 00:05:42,510 --> 00:05:48,750 (* Пописивач) поред.. 139 00:05:49,820 --> 00:05:51,260 Када смо открили последњи чвор, 140 00:05:51,260 --> 00:05:53,830 желимо да одштампате пописивача → Вал, 141 00:05:53,830 --> 00:05:55,000 вредност у текућем чвору 142 00:05:55,000 --> 00:05:57,130 што знамо да је последњи. 143 00:05:57,130 --> 00:05:59,740 У супротном, ако нисмо још на последњем чвора у листи, 144 00:05:59,740 --> 00:06:02,340 морамо да пређемо на следећи чвор у листи 145 00:06:02,340 --> 00:06:04,750 и проверите да ли је то последњи. 146 00:06:04,750 --> 00:06:07,010 Да бисте то урадили, само смо поставили наш пописивача показивач 147 00:06:07,010 --> 00:06:09,840 да укаже на следећу вредност тренутног чвора, 148 00:06:09,840 --> 00:06:11,680 који је, следећи чвор у листи. 149 00:06:11,680 --> 00:06:13,030 Ово се ради постављањем 150 00:06:13,030 --> 00:06:15,280 пописивач = пописивач → следећи. 151 00:06:16,050 --> 00:06:18,960 Онда смо поновите овај процес, са петље, на пример, 152 00:06:18,960 --> 00:06:20,960 док не нађемо последњи чвор. 153 00:06:20,960 --> 00:06:23,150 Тако, на пример, ако је пописивач указује на глави, 154 00:06:24,050 --> 00:06:27,710 смо поставили пописивачу да укажемо на гусеничар → нект, 155 00:06:27,710 --> 00:06:30,960 што је исто као и следеће области 1. чвора. 156 00:06:30,960 --> 00:06:33,620 Дакле, сада је наш пописивач указује на 2. чвора, 157 00:06:33,620 --> 00:06:35,480 и, опет, понављамо ово са петље, 158 00:06:37,220 --> 00:06:40,610 док смо нашли последњи чвор, то јест, 159 00:06:40,610 --> 00:06:43,640 Куда даље показивачем чвора указује на нулл. 160 00:06:43,640 --> 00:06:45,070 И тамо га имамо, 161 00:06:45,070 --> 00:06:47,620 нашли смо последњи чвор у листи, као и да штампају његову вредност, 162 00:06:47,620 --> 00:06:50,800 ми само користимо финишер → Вал. 163 00:06:50,800 --> 00:06:53,130 >> Преласком није тако лоше, али шта је са убацивањем? 164 00:06:53,130 --> 00:06:56,290 Рецимо да желите да убаците цео број у 4. позицији 165 00:06:56,290 --> 00:06:58,040 у цео листи. 166 00:06:58,040 --> 00:07:01,280 То је између садашњих 3. и 4. чворова. 167 00:07:01,280 --> 00:07:03,760 Опет, морамо прећи листу само да 168 00:07:03,760 --> 00:07:06,520 доћи до 3. елемента, онај смо убацивање после. 169 00:07:06,520 --> 00:07:09,300 Дакле, ми стварамо показивач пописивачу поново да пролазе листу, 170 00:07:09,300 --> 00:07:11,400 проверите да ли је наша показивач глава је нула, 171 00:07:11,400 --> 00:07:14,810 а ако то није, истичу наше показивач пописивача на челу чвора. 172 00:07:16,880 --> 00:07:18,060 Дакле, ми смо на 1. елемента. 173 00:07:18,060 --> 00:07:21,020 Морамо да идемо напред још 2 елемента пре него што можемо да убаците 174 00:07:21,020 --> 00:07:23,390 тако да можемо да користимо за петљу 175 00:07:23,390 --> 00:07:26,430 инт и = 1; и <3 и + + 176 00:07:26,430 --> 00:07:28,590 иу свакој итерацији петље, 177 00:07:28,590 --> 00:07:31,540 унапредити нашу показивач пописивачу напред за 1 чвора 178 00:07:31,540 --> 00:07:34,570 провером ако Следеће поље тренутни чвор је нула, 179 00:07:34,570 --> 00:07:37,550 а ако није, преместите показивач нашу пописивача до следећег чвора 180 00:07:37,550 --> 00:07:41,810 постављајући га једнако на следећи показивач тренутног чвора. 181 00:07:41,810 --> 00:07:45,210 Дакле, пошто је наш јер петља каже да то уради 182 00:07:45,210 --> 00:07:47,550 два пута, 183 00:07:49,610 --> 00:07:51,190 Стигли смо на 3. чвор, 184 00:07:51,190 --> 00:07:53,110 и када је наш показивач пописивач је достигао чвор после 185 00:07:53,110 --> 00:07:55,270 коју желите да убаците цео наш нови, 186 00:07:55,270 --> 00:07:57,050 како ми заправо урадите убацивање? 187 00:07:57,050 --> 00:07:59,440 >> Па, наш нови цео мора да се убаци у листу 188 00:07:59,440 --> 00:08:01,250 као део сопственог чвора струцт, 189 00:08:01,250 --> 00:08:03,140 јер ово је стварно низ чворова. 190 00:08:03,140 --> 00:08:05,690 Дакле, хајде да направимо нови показивач на чвор 191 00:08:05,690 --> 00:08:08,910 зове 'нев_ноде' 192 00:08:08,910 --> 00:08:11,800 и подесите га да укаже на меморију која се сада издвајају 193 00:08:11,800 --> 00:08:14,270 на гомили за саму чвора, 194 00:08:14,270 --> 00:08:16,000 и колико меморије морамо да издвоји? 195 00:08:16,000 --> 00:08:18,250 Па, величине чвора, 196 00:08:20,450 --> 00:08:23,410 и желимо да подесите поље Вал да цео да желимо да убаците. 197 00:08:23,410 --> 00:08:25,590 Рецимо, 6. 198 00:08:25,590 --> 00:08:27,710 Сада, чвор садржи нашу целобројну вредност. 199 00:08:27,710 --> 00:08:30,650 Такође је добра пракса да се покрене следеће поље новог чвора 200 00:08:30,650 --> 00:08:33,690 да укаже на нулл, 201 00:08:33,690 --> 00:08:35,080 али шта сада? 202 00:08:35,080 --> 00:08:37,179 >> Морамо да променимо унутрашњу структуру листе 203 00:08:37,179 --> 00:08:40,409 и наредне показивачи садржани у постојећим листи је 204 00:08:40,409 --> 00:08:42,950 3. и 4. чворова. 205 00:08:42,950 --> 00:08:46,560 Од наредне показивачи одређују редослед на листи, 206 00:08:46,560 --> 00:08:48,650 и пошто смо убацивање наш нови чвор 207 00:08:48,650 --> 00:08:50,510 право у средини листе, 208 00:08:50,510 --> 00:08:52,010 то може бити мало теже. 209 00:08:52,010 --> 00:08:54,250 То је зато, запамтите, наш рачунар 210 00:08:54,250 --> 00:08:56,250 зна само локацију чворова у листи 211 00:08:56,250 --> 00:09:00,400 због наредних показивача ускладиштених у претходним чворова. 212 00:09:00,400 --> 00:09:03,940 Дакле, ако смо икада изгубили траг било ког од ових локација, 213 00:09:03,940 --> 00:09:06,860 кажу да променом једног од наредних тројке у нашој листи, 214 00:09:06,860 --> 00:09:09,880 На пример, рећи да смо променили 215 00:09:09,880 --> 00:09:12,920 Следеће поље 3. чвора 216 00:09:12,920 --> 00:09:15,610 да се укаже на неке чвора овамо. 217 00:09:15,610 --> 00:09:17,920 Ми би од среће, јер ми не би 218 00:09:17,920 --> 00:09:20,940 имате идеју где да нађе остатак листе, 219 00:09:20,940 --> 00:09:23,070 и то је очигледно лоше. 220 00:09:23,070 --> 00:09:25,080 Дакле, морамо бити опрезни заиста о наредби 221 00:09:25,080 --> 00:09:28,360 у којима смо манипулишу нашим наредним показивачи током убацивања. 222 00:09:28,360 --> 00:09:30,540 >> Дакле, да поједностави ово, рецимо да 223 00:09:30,540 --> 00:09:32,220 наши први 4 чворови 224 00:09:32,220 --> 00:09:36,200 се зову А, Б, Ц и Д, са стрелицама представљају ланац показивачи 225 00:09:36,200 --> 00:09:38,070 који повезују чворове. 226 00:09:38,070 --> 00:09:40,050 Дакле, морамо да убаците наш нови чвор 227 00:09:40,050 --> 00:09:42,070 између чворова Ц и Д. 228 00:09:42,070 --> 00:09:45,060 То је важно да то уради у правом циљу, а ја ћу вам показати зашто. 229 00:09:45,060 --> 00:09:47,500 >> Погледајмо на погрешан начин да то уради први. 230 00:09:47,500 --> 00:09:49,490 Хеј, ми знамо нови чвор мора доћи одмах после Ц, 231 00:09:49,490 --> 00:09:51,910 па хајде да поставимо Ц је следећи показивач 232 00:09:51,910 --> 00:09:54,700 да укаже на нев_ноде. 233 00:09:56,530 --> 00:09:59,180 Добро, изгледа ок, само морамо да завршимо до сада од 234 00:09:59,180 --> 00:10:01,580 чинећи следећу тачку показивач новог чвора до Д, 235 00:10:01,580 --> 00:10:03,250 Али чекај, како можемо то да урадимо? 236 00:10:03,250 --> 00:10:05,170 Једина ствар која је могла да нам кажете где је Д био, 237 00:10:05,170 --> 00:10:07,630 је следећи показивач претходно ускладиштени у Ц, 238 00:10:07,630 --> 00:10:09,870 али ми преписао тај показивач 239 00:10:09,870 --> 00:10:11,170 да укаже на нови чвор, 240 00:10:11,170 --> 00:10:14,230 тако да више немамо никакву представу где је Д је у меморији, 241 00:10:14,230 --> 00:10:17,020 а ми смо изгубили остатак листе. 242 00:10:17,020 --> 00:10:19,000 Није добро. 243 00:10:19,000 --> 00:10:21,090 >> Дакле, како да радимо ово право? 244 00:10:22,360 --> 00:10:25,090 Прво, усмерите показивач на нект Д. Нови чвора 245 00:10:26,170 --> 00:10:28,990 Сада, како нови чвор и Ц је следећи показивачи 246 00:10:28,990 --> 00:10:30,660 указују на исти чвор, Д, 247 00:10:30,660 --> 00:10:32,290 али то је у реду. 248 00:10:32,290 --> 00:10:35,680 Сада можемо да тачка Ц је следећи показивач на новом чвору. 249 00:10:37,450 --> 00:10:39,670 Дакле, ми смо урадили без губљења података. 250 00:10:39,670 --> 00:10:42,280 У коду, Ц је тренутни чвор 251 00:10:42,280 --> 00:10:45,540 да траверсал показивач финишер указује да, 252 00:10:45,540 --> 00:10:50,400 и Д представља чвора истакао да до следећег поља тренутног чвора, 253 00:10:50,400 --> 00:10:52,600 или пописивач → следећи. 254 00:10:52,600 --> 00:10:55,460 Дакле, ми смо први Сет нект показивач новог чвора 255 00:10:55,460 --> 00:10:57,370 да укаже на гусеничар → нект, 256 00:10:57,370 --> 00:11:00,880 Исто тако смо рекли нев_ноде идуће показивач треба 257 00:11:00,880 --> 00:11:02,780 указују на Д на слици. 258 00:11:02,780 --> 00:11:04,540 Онда можемо да поставимо следећи показивач тренутног чвора 259 00:11:04,540 --> 00:11:06,330 нашем новом чвору, 260 00:11:06,330 --> 00:11:10,980 баш као што смо морали да чекамо да се укаже Ц до нев_ноде у цртежу. 261 00:11:10,980 --> 00:11:12,250 Сада је све у реду, а нисмо изгубили 262 00:11:12,250 --> 00:11:14,490 евиденцију о свим подацима, а ми смо били у стању да само 263 00:11:14,490 --> 00:11:16,200 држимо нашу нову чвор у средини листе 264 00:11:16,200 --> 00:11:19,330 без обнови целу ствар, или чак мења елементе 265 00:11:19,330 --> 00:11:22,490 Тако бисмо морали да са фиксне дужине низа. 266 00:11:22,490 --> 00:11:26,020 >> Дакле, повезане листе су основни, али важан, динамична структура података 267 00:11:26,020 --> 00:11:29,080 који имају и предности и мане 268 00:11:29,080 --> 00:11:31,260 у поређењу са низовима и других структура података, 269 00:11:31,260 --> 00:11:33,350 и као што је често случај у компјутерске науке, 270 00:11:33,350 --> 00:11:35,640 важно је да знате када да користите сваки алат, 271 00:11:35,640 --> 00:11:37,960 тако да можете да изаберете прави алат за правом послу. 272 00:11:37,960 --> 00:11:40,060 >> За више праксе, покушајте писање функције 273 00:11:40,060 --> 00:11:42,080 брисање чворова са повезаном листи - 274 00:11:42,080 --> 00:11:44,050 запамтите да буду опрезни о редоследу којим сте преуредили 275 00:11:44,050 --> 00:11:47,430 ваш следећи показивачи да обезбеди да се не изгубе комад листи - 276 00:11:47,430 --> 00:11:50,200 или функције за бројање чворове у повезаној листи, 277 00:11:50,200 --> 00:11:53,280 или забавно један, да преокрене редослед свих чворова у повезаној листи. 278 00:11:53,280 --> 00:11:56,090 >> Моје име је Џексон Стеинкамп, ово је ЦС50.