1 00:00:07,260 --> 00:00:10,050 [Powered by Google Translate] Fl-ipprogrammar, aħna ta 'spiss jeħtieġu li jirrappreżentaw listi ta' valuri, 2 00:00:10,050 --> 00:00:12,840 bħall-ismijiet ta 'studenti fit-taqsima 3 00:00:12,840 --> 00:00:15,100 jew punteġġi tagħhom fuq l-kwizz aktar tard. 4 00:00:15,100 --> 00:00:17,430 >> Fil-lingwa C, iddikjarat arrays jista 'jintuża 5 00:00:17,430 --> 00:00:19,160 biex jaħżnu listi. 6 00:00:19,160 --> 00:00:21,200 Huwa faċli li jiġu numerati l-elementi ta 'lista 7 00:00:21,200 --> 00:00:23,390 maħżuna fil-firxa, u jekk ikollok bżonn l-aċċess 8 00:00:23,390 --> 00:00:25,050 jew timmodifika l-element lista ith 9 00:00:25,050 --> 00:00:27,570 għal xi indiċi arbitrarja I, 10 00:00:27,570 --> 00:00:29,910 li jista 'jsir fil-ħin kostanti, 11 00:00:29,910 --> 00:00:31,660 iżda arrays jkollu żvantaġġi, wisq. 12 00:00:31,660 --> 00:00:33,850 >> Meta aħna jiddikjaraw lilhom, aħna qed meħtieġ li jgħidu 13 00:00:33,850 --> 00:00:35,900 bil-quddiem kemm hu kbir huma, 14 00:00:35,900 --> 00:00:38,160 jiġifieri, kemm elementi jistgħu jaħżnu 15 00:00:38,160 --> 00:00:40,780 u kemm hu kbir dawn l-elementi huma, li huwa determinat mill-tip tagħhom. 16 00:00:40,780 --> 00:00:45,450 Per eżempju, int arr (10) 17 00:00:45,450 --> 00:00:48,220 jista 'jaħżen 10 punti 18 00:00:48,220 --> 00:00:50,200 li huma d-daqs ta 'int. 19 00:00:50,200 --> 00:00:52,590 >> Aħna ma jistax ibiddel id-daqs firxa wara l dikjarazzjoni. 20 00:00:52,590 --> 00:00:55,290 Irridu jagħmlu firxa ġdida jekk irridu li jaħżen l-elementi aktar. 21 00:00:55,290 --> 00:00:57,410 Ir-raġuni din il-limitazzjoni teżisti hija li tagħna 22 00:00:57,410 --> 00:00:59,040 Programm taħżen l-firxa sħiħa 23 00:00:59,040 --> 00:01:02,310 bħala blokki kontigwi ta 'memorja. 24 00:01:02,310 --> 00:01:04,500 Say dan huwa l-buffer fejn aħna maħżuna fil firxa tagħna. 25 00:01:04,500 --> 00:01:06,910 Jista 'jkun hemm fatturi oħra 26 00:01:06,910 --> 00:01:08,310 tinsab dritt li jmiss għall-firxa 27 00:01:08,310 --> 00:01:10,060 fil-memorja, hekk aħna ma tistax 28 00:01:10,060 --> 00:01:12,060 biss tagħmel l-array akbar. 29 00:01:12,060 --> 00:01:15,700 >> Kultant aħna tixtieq għall-kummerċ tal-firxa tal-veloċità mgħaġġel aċċess għad-data 30 00:01:15,700 --> 00:01:17,650 għal flessibilità ftit aktar. 31 00:01:17,650 --> 00:01:20,380 Ikteb il-lista marbuta, struttura oħra tad-data bażika 32 00:01:20,380 --> 00:01:22,360 inti tista 'ma tkun kif familjari magħhom. 33 00:01:22,360 --> 00:01:24,200 Fuq livell għoli, 34 00:01:24,200 --> 00:01:26,840 lista marbuta jaħżen data f'sekwenza ta 'punti ta' konġunzjoni 35 00:01:26,840 --> 00:01:29,280 li huma konnessi ma 'xulxin b'rabtiet, 36 00:01:29,280 --> 00:01:31,760 għalhekk "lista marbuta." l-isem 37 00:01:31,760 --> 00:01:33,840 Kif aħna ser tara, din id-differenza fid-disinn 38 00:01:33,840 --> 00:01:35,500 twassal għal vantaġġi differenti u l-iżvantaġġi 39 00:01:35,500 --> 00:01:37,000 minn firxa. 40 00:01:37,000 --> 00:01:39,840 >> Hawn xi kodiċi C għal lista sempliċi ħafna marbuta tan-numri interi. 41 00:01:39,840 --> 00:01:42,190 Tista 'tara li għandna rappreżentati' kull node 42 00:01:42,190 --> 00:01:45,520 fil-lista bħala Struct li fih 2 affarijiet, 43 00:01:45,520 --> 00:01:47,280 integer biex jaħżnu imsejħa "val" 44 00:01:47,280 --> 00:01:50,460 u link għall-node li jmiss fil-lista 45 00:01:50,460 --> 00:01:52,990 li aħna jirrappreżentaw bħala indikatur imsejjaħ "jmiss." 46 00:01:54,120 --> 00:01:56,780 Dan il-mod, nistgħu track-lista sħiħa 47 00:01:56,780 --> 00:01:58,790 biss bi pointer waħda lill-node 1, 48 00:01:58,790 --> 00:02:01,270 u allura nistgħu isegwu l-pointers li jmiss 49 00:02:01,270 --> 00:02:03,130 għall-node 2, 50 00:02:03,130 --> 00:02:05,280 għall-node 3, 51 00:02:05,280 --> 00:02:07,000 għall-node 4, 52 00:02:07,000 --> 00:02:09,889 u l-bqija, sakemm aħna jiksbu l-aħħar tal-lista. 53 00:02:10,520 --> 00:02:12,210 >> Inti jista 'jkun kapaċi li tara 1 vantaġġ dan għandu 54 00:02:12,210 --> 00:02:14,490 fuq l-istruttura firxa statiku - b'lista marbuta, 55 00:02:14,490 --> 00:02:16,450 ma kellniex bżonn blokki kbar ta 'memorja għal kollox. 56 00:02:17,400 --> 00:02:20,530 Il-node 1 tal-lista jistgħu jgħixu f'dan il-post fil-memorja, 57 00:02:20,530 --> 00:02:23,160 u l-node 2 tista 'tkun it-triq kollha hawn fuq. 58 00:02:23,160 --> 00:02:25,780 Nistgħu jiksbu l-lymph ebda kwistjoni fejn fil-memorja huma, 59 00:02:25,780 --> 00:02:28,890 għaliex jibda mill-node 1, pointer li jmiss kull node tal 60 00:02:28,890 --> 00:02:31,700 tgħidilna preċiżament fejn għandhom imorru jmiss. 61 00:02:31,700 --> 00:02:33,670 >> Barra minn hekk, aħna ma jkollhom jgħidu bil-quddiem 62 00:02:33,670 --> 00:02:36,740 kemm hu kbir lista marbuta se jkun il-mod kif nagħmlu ma 'arrays statiċi, 63 00:02:36,740 --> 00:02:39,060 peress li aħna jistgħu ikompli jżid nodes għal lista 64 00:02:39,060 --> 00:02:42,600 sakemm hemm l-ispazju x'imkien fil-memorja għal punti strateġiċi ġodda. 65 00:02:42,600 --> 00:02:45,370 Għalhekk, listi marbuta huma faċli biex resize dinamiku. 66 00:02:45,370 --> 00:02:47,950 Say, aktar tard fil-programm għandna bżonn li jżidu punti ta 'konġunzjoni aktar 67 00:02:47,950 --> 00:02:49,350 fil-lista tagħna. 68 00:02:49,350 --> 00:02:51,480 Biex daħħal node ġdid fil-lista tagħna fuq il-fly, 69 00:02:51,480 --> 00:02:53,740 kollha għandna nagħmlu huwa jalloka memorja għal dik node, 70 00:02:53,740 --> 00:02:55,630 plop fil-valur tad-data, 71 00:02:55,630 --> 00:02:59,070 u imbagħad qiegħdu fejn irridu billi jaġġusta l-pointers xierqa. 72 00:02:59,070 --> 00:03:02,310 >> Per eżempju, jekk ridna li tqiegħed node fl bejn 73 00:03:02,310 --> 00:03:04,020 il-lymph 2 u 3 tal-lista, 74 00:03:04,020 --> 00:03:06,800  aħna ma jkollhom jiċċaqalqu l-lymph 2 jew 3 fil-livelli kollha. 75 00:03:06,800 --> 00:03:09,190 Say aħna qed tiddaħħal din node aħmar. 76 00:03:09,190 --> 00:03:12,890 Kollha għandna d jkollhom biex tagħmel huwa stabbilit pointer li jmiss tal-node ġdid 77 00:03:12,890 --> 00:03:14,870 għall-punt għall-node 3 78 00:03:14,870 --> 00:03:18,580 u mbagħad rewire pointer li jmiss tal-node 2 ta 79 00:03:18,580 --> 00:03:20,980 għall-punt għall node ġdid tagħna. 80 00:03:22,340 --> 00:03:24,370 Allura, nistgħu resize listi tagħna fuq il-fly 81 00:03:24,370 --> 00:03:26,090 peress kompjuter tagħna ma tibbaża ruħha fuq indiċjar, 82 00:03:26,090 --> 00:03:28,990 iżda pjuttost fuq jgħaqqdu jużaw indikaturi taħżen lilhom. 83 00:03:29,120 --> 00:03:31,600 >> Listi Madankollu, żvantaġġ ta marbutin 84 00:03:31,600 --> 00:03:33,370 huwa li, b'differenza firxa statiku, 85 00:03:33,370 --> 00:03:36,690 il-kompjuter tista 'mhux biss jaqbżu l-nofs tal-lista. 86 00:03:38,040 --> 00:03:40,780 Peress li l-kompjuter għandu li jżuru kull node fil-lista marbuta 87 00:03:40,780 --> 00:03:42,330 biex jiksbu l-waħda li jmiss, 88 00:03:42,330 --> 00:03:44,770 li għaddej biex jieħdu aktar żmien biex isibu node partikolari 89 00:03:44,770 --> 00:03:46,400 milli kieku fil-firxa. 90 00:03:46,400 --> 00:03:48,660 Biex travers il-lista sħiħa jieħu ż-żmien proporzjonali 91 00:03:48,660 --> 00:03:50,580 it-tul tal-lista, 92 00:03:50,580 --> 00:03:54,630 jew O (n) fil-notazzjoni asintotiku. 93 00:03:54,630 --> 00:03:56,510 Fuq medja, jilħaq kwalunkwe node 94 00:03:56,510 --> 00:03:58,800 wkoll jieħu ż-żmien proporzjonali għall n. 95 00:03:58,800 --> 00:04:00,700 >> Issa, ejja attwalment tikteb xi kodiċi 96 00:04:00,700 --> 00:04:02,000 li jaħdem ma 'listi marbuta. 97 00:04:02,000 --> 00:04:04,220 Ejja ngħidu li rridu lista marbuta tan-numri interi. 98 00:04:04,220 --> 00:04:06,140 Nistgħu jirrappreżentaw node fil-lista tagħna għal darb'oħra 99 00:04:06,140 --> 00:04:08,340 bħala Struct ma '2 oqsma, 100 00:04:08,340 --> 00:04:10,750 valur integer imsejħa "val" 101 00:04:10,750 --> 00:04:13,490 u werrej li jmiss għall-node li jmiss tal-lista. 102 00:04:13,490 --> 00:04:15,660 Ukoll, jidher sempliċi biżżejjed. 103 00:04:15,660 --> 00:04:17,220 >> Ejja ngħidu li rridu jiktbu funzjoni 104 00:04:17,220 --> 00:04:19,329 li traverses-lista u prints l- 105 00:04:19,329 --> 00:04:22,150 valur maħżuna fil-node aħħar tal-lista. 106 00:04:22,150 --> 00:04:24,850 Ukoll, li jfisser li għandna bzonn biex travers l-lymph fil-lista 107 00:04:24,850 --> 00:04:27,310 biex issib l-aħħar wieħed, iżda peress li aħna mhux qed jiżdiedu 108 00:04:27,310 --> 00:04:29,250 jew tħassir xejn, aħna ma trid tibdel 109 00:04:29,250 --> 00:04:32,210 l-istruttura interna ta 'l-indikaturi li jmiss fil-lista. 110 00:04:32,210 --> 00:04:34,790 >> Allura, aħna ser bżonn pointer speċifikament għall traversal 111 00:04:34,790 --> 00:04:36,940 li aħna ser sejħa "crawler". 112 00:04:36,940 --> 00:04:38,870 Hija se jitkaxkru permezz l-elementi kollha tal-lista 113 00:04:38,870 --> 00:04:41,190 billi jsegwu l-katina ta 'indikaturi li jmiss. 114 00:04:41,190 --> 00:04:43,750 Kollha għandna maħżuna hija pointer għall-node 1, 115 00:04:43,750 --> 00:04:45,730 jew "kap" tal-lista. 116 00:04:45,730 --> 00:04:47,370 Kap jindika l-node 1. 117 00:04:47,370 --> 00:04:49,120 Huwa ta 'tip pointer-to-node. 118 00:04:49,120 --> 00:04:51,280 >> Biex tikseb l-attwali 1 node fil-lista, 119 00:04:51,280 --> 00:04:53,250 irridu dereference dan il-werrej, 120 00:04:53,250 --> 00:04:55,100 iżda qabel ma nistgħu dereference dan, għandna bżonn li jiċċekkja 121 00:04:55,100 --> 00:04:57,180 jekk l-pointer huwa null 1. 122 00:04:57,180 --> 00:04:59,190 Jekk huwa null, il-lista tkun vojta, 123 00:04:59,190 --> 00:05:01,320 u għandna jistampa messaġġ li, minħabba li l-lista tkun vojta, 124 00:05:01,320 --> 00:05:03,250 m'hemm l-ebda node aħħar. 125 00:05:03,250 --> 00:05:05,190 Imma, ejja ngħidu l-lista ma tkunx vojta. 126 00:05:05,190 --> 00:05:08,340 Jekk mhuwiex, allura għandna jitkaxkru permezz tal-lista kollha 127 00:05:08,340 --> 00:05:10,440 sakemm aħna jiksbu l-node aħħar tal-lista, 128 00:05:10,440 --> 00:05:13,030 u kif nistgħu tgħid jekk aħna qed tħares lejn il-node aħħar fil-lista? 129 00:05:13,670 --> 00:05:16,660 >> Ukoll, jekk pointer jmiss node huwa null, 130 00:05:16,660 --> 00:05:18,320 nafu aħna fl-aħħar 131 00:05:18,320 --> 00:05:22,390 peress li l-pointer li jmiss aħħar ma jkollha ebda node li jmiss fil-lista għall-punt li. 132 00:05:22,390 --> 00:05:26,590 Huwa prattika tajba li dejjem iżommu pointer li jmiss tal-node li għaddiet initialized għall null 133 00:05:26,590 --> 00:05:30,800 li jkollha proprjetà standardizzat li allerti magħna meta aħna ve laħqu t-tmiem tal-lista. 134 00:05:30,800 --> 00:05:33,510 >> Għalhekk, jekk tkaxkir → jmiss huwa null, 135 00:05:34,120 --> 00:05:38,270 ftakar li l-sintassi vleġġa huwa shortcut għal dereferencing 136 00:05:38,270 --> 00:05:40,010 pointer għal Struct, allura aċċess 137 00:05:40,010 --> 00:05:42,510 qasam li jmiss tagħha ekwivalenti għal skomdi: 138 00:05:42,510 --> 00:05:48,750 (* Crawler). Jmiss. 139 00:05:49,820 --> 00:05:51,260 Ladarba aħna ħadthom misjuba-node aħħar, 140 00:05:51,260 --> 00:05:53,830 irridu li jistampaw crawler → val, 141 00:05:53,830 --> 00:05:55,000 il-valur fil-node attwali 142 00:05:55,000 --> 00:05:57,130 li nafu huwa l-aħħar wieħed. 143 00:05:57,130 --> 00:05:59,740 Inkella, jekk aħna mhux qed għadhom fl-node aħħar fil-lista, 144 00:05:59,740 --> 00:06:02,340 għandna biex jimxu fuq il-node li jmiss fil-lista 145 00:06:02,340 --> 00:06:04,750 u ċċekkja jekk dan huwa l-aħħar wieħed. 146 00:06:04,750 --> 00:06:07,010 Biex tagħmel dan, aħna biss sett pointer tkaxkir tagħna 147 00:06:07,010 --> 00:06:09,840 għall-punt għall-valur li jmiss tal-node attwali, 148 00:06:09,840 --> 00:06:11,680 jiġifieri, il-node li jmiss fil-lista. 149 00:06:11,680 --> 00:06:13,030 Dan isir billi jiġu 150 00:06:13,030 --> 00:06:15,280 crawler = crawler → jmiss. 151 00:06:16,050 --> 00:06:18,960 Imbagħad aħna irrepeti dan il-proċess, bil-linja per eżempju, 152 00:06:18,960 --> 00:06:20,960 sakemm insibu l-node aħħar. 153 00:06:20,960 --> 00:06:23,150 Għalhekk, per eżempju, jekk tkaxkir kien tipponta lejn ras, 154 00:06:24,050 --> 00:06:27,710 aħna waqqafna tkaxkir għall-punt li crawler → jmiss, 155 00:06:27,710 --> 00:06:30,960 li huwa l-istess bħall-qasam li jmiss tal-node 1. 156 00:06:30,960 --> 00:06:33,620 Allura, issa tkaxkir tagħna hija li tipponta lejn l-node 2, 157 00:06:33,620 --> 00:06:35,480 u, għal darb'oħra, aħna irrepeti dan bil-linja, 158 00:06:37,220 --> 00:06:40,610 sakemm aħna ħadthom sabet il-node aħħar, jiġifieri, 159 00:06:40,610 --> 00:06:43,640 fejn pointer li jmiss tal-node huwa tipponta lejn null. 160 00:06:43,640 --> 00:06:45,070 U hemm aħna għandna hija, 161 00:06:45,070 --> 00:06:47,620 aħna ħadthom sabet il-node aħħar fil-lista, u għall-istampar valur tagħha, 162 00:06:47,620 --> 00:06:50,800 aħna biss użu tkaxkir → val. 163 00:06:50,800 --> 00:06:53,130 >> Traversat mhuwiex daqshekk ħżiena, iżda xi ngħidu dwar ddaħħal? 164 00:06:53,130 --> 00:06:56,290 Tikri say irridu li daħħal numru sħiħ fil-pożizzjoni 4 165 00:06:56,290 --> 00:06:58,040 f'lista numru sħiħ. 166 00:06:58,040 --> 00:07:01,280 Dan huwa bejn il-lymph attwali 3 u 4. 167 00:07:01,280 --> 00:07:03,760 Għal darb'oħra, irridu travers il-lista biss biex 168 00:07:03,760 --> 00:07:06,520 jiksbu l-element 3, l-waħda aħna qed tiddaħħal wara. 169 00:07:06,520 --> 00:07:09,300 Allura, aħna joħolqu pointer tkaxkir darb'oħra biex travers il-lista, 170 00:07:09,300 --> 00:07:11,400 jiċċekkjaw jekk pointer ewlieni tagħna huwa null, 171 00:07:11,400 --> 00:07:14,810 u jekk mhuwiex, punt tkaxkir pointer tagħna fil-node ras. 172 00:07:16,880 --> 00:07:18,060 Allura, aħna qed fil-element 1. 173 00:07:18,060 --> 00:07:21,020 Irridu jimxu 'l quddiem 2 elementi aktar qabel ma nistgħu daħħal, 174 00:07:21,020 --> 00:07:23,390 hekk aħna jistgħu jużaw għal loop 175 00:07:23,390 --> 00:07:26,430 i int = 1; i <3; i + + 176 00:07:26,430 --> 00:07:28,590 u f'kull iterazzjoni tal-linja, 177 00:07:28,590 --> 00:07:31,540 javvanzaw pointer tkaxkir tagħna 'l quddiem sa l-1 node 178 00:07:31,540 --> 00:07:34,570 billi tiċċekkja jekk il-qasam li jmiss l-node attwali huwa null, 179 00:07:34,570 --> 00:07:37,550 u jekk mhuwiex, jimxu pointer crawler tagħna għall-node li jmiss 180 00:07:37,550 --> 00:07:41,810 billi dan ikun iffissat ugwali għall pointer li jmiss tal-node kurrenti. 181 00:07:41,810 --> 00:07:45,210 Għalhekk, peress loop għall tagħna jgħid li tagħmel dan 182 00:07:45,210 --> 00:07:47,550 darbtejn, 183 00:07:49,610 --> 00:07:51,190 aħna ħadthom laħqu l-node 3, 184 00:07:51,190 --> 00:07:53,110 u ladarba pointer tkaxkir tagħna tkun laħqet l-node wara 185 00:07:53,110 --> 00:07:55,270 li aħna tixtieq li daħħal numru sħiħ ġdid tagħna, 186 00:07:55,270 --> 00:07:57,050 kif nistgħu attwalment jagħmlu l-inserzjoni? 187 00:07:57,050 --> 00:07:59,440 >> Ukoll, integer ġdida tagħna għandu jiddaħħal fil-lista 188 00:07:59,440 --> 00:08:01,250 bħala parti mill-Struct tagħha node stess, 189 00:08:01,250 --> 00:08:03,140 peress li dan huwa verament sekwenza ta 'punti ta' konġunzjoni. 190 00:08:03,140 --> 00:08:05,690 Allura, ejja tagħmel pointer ġdid biex node 191 00:08:05,690 --> 00:08:08,910 imsejħa "new_node," 192 00:08:08,910 --> 00:08:11,800 u stabbilit lill-punt li memorja li aħna issa jallokaw 193 00:08:11,800 --> 00:08:14,270 dwar il-munzell għall-node innifsu, 194 00:08:14,270 --> 00:08:16,000 u kemm memorja għandna bżonn li jiġu allokati? 195 00:08:16,000 --> 00:08:18,250 Ukoll, id-daqs ta 'nodu, 196 00:08:20,450 --> 00:08:23,410 u rridu li jistabbilixxu kamp val tagħha lill-eqreb numru sħiħ li aħna rridu li daħħal. 197 00:08:23,410 --> 00:08:25,590 Ejja ngħidu, 6. 198 00:08:25,590 --> 00:08:27,710 Issa, il-node fih valur sħiħ tagħna. 199 00:08:27,710 --> 00:08:30,650 Huwa wkoll prattika tajba li initialize qasam li jmiss tal-node ġdid 200 00:08:30,650 --> 00:08:33,690 għall-punt għall null, 201 00:08:33,690 --> 00:08:35,080 iżda issa liema? 202 00:08:35,080 --> 00:08:37,179 >> Irridu jibdlu l-istruttura interna tal-lista 203 00:08:37,179 --> 00:08:40,409 u l-pointers li jmiss li jinsabu fil-lista eżistenti tal- 204 00:08:40,409 --> 00:08:42,950 Lymph 3 u 4. 205 00:08:42,950 --> 00:08:46,560 Peress li l-indikaturi li ġejjin jiddetermina l-ordni tal-lista, 206 00:08:46,560 --> 00:08:48,650 u peress li aħna qed tiddaħħal node ġdid tagħna 207 00:08:48,650 --> 00:08:50,510 id-dritt fis-nofs tal-lista, 208 00:08:50,510 --> 00:08:52,010 tista 'tkun daqsxejn delikata. 209 00:08:52,010 --> 00:08:54,250 Dan għaliex, ftakar, kompjuter tagħna 210 00:08:54,250 --> 00:08:56,250 biss jaf il-post ta 'punti ta' konġunzjoni fil-lista 211 00:08:56,250 --> 00:09:00,400 minħabba l-pointers jmiss maħżuna fil-lymph preċedenti. 212 00:09:00,400 --> 00:09:03,940 Għalhekk, jekk aħna qatt mitlufa rekord ta 'xi wieħed minn dawn il-lokalitajiet, 213 00:09:03,940 --> 00:09:06,860 jgħidu billi tbiddel wieħed mill-pointers li jmiss fil-lista tagħna, 214 00:09:06,860 --> 00:09:09,880 per eżempju, ngħidu aħna mibdula 215 00:09:09,880 --> 00:09:12,920 qasam li jmiss tal-node 3 ta 216 00:09:12,920 --> 00:09:15,610 għall-punt li xi node hawn fuq. 217 00:09:15,610 --> 00:09:17,920 Aħna tixtieq tkun minn xortih, għax aħna se le 218 00:09:17,920 --> 00:09:20,940 jkollu ebda idea fejn isibu l-bqija tal-lista, 219 00:09:20,940 --> 00:09:23,070 u li ovvjament tassew ħżiena. 220 00:09:23,070 --> 00:09:25,080 Allura, irridu nkunu verament attenta dwar l-ordni 221 00:09:25,080 --> 00:09:28,360 li aħna jimmanipulaw pointers jmiss tagħna waqt l-inseriment. 222 00:09:28,360 --> 00:09:30,540 >> Allura, biex tissimplifika dan, ejja ngħidu li 223 00:09:30,540 --> 00:09:32,220 1 4 nodi tagħna 224 00:09:32,220 --> 00:09:36,200 huma msejħa A, B, Ċ, u D, bil-vleġeġ jirrappreżentaw il-katina ta 'pointers 225 00:09:36,200 --> 00:09:38,070 li jgħaqqdu l-lymph. 226 00:09:38,070 --> 00:09:40,050 Għalhekk, għandna bżonn li jiddaħħal node ġdid tagħna 227 00:09:40,050 --> 00:09:42,070 fl bejn lymph C u D. 228 00:09:42,070 --> 00:09:45,060 Huwa kritiku li tagħmel dan fl-ordni dritt, u jien ser nuruk għaliex. 229 00:09:45,060 --> 00:09:47,500 >> Ejja nħarsu lejn l-mod żbaljat biex tagħmel l-ewwel. 230 00:09:47,500 --> 00:09:49,490 Ħej, nafu l-node ġdid għandu jasal dritt wara Ċ, 231 00:09:49,490 --> 00:09:51,910 hekk ejja stabbiliti pointer jmiss Ċ 232 00:09:51,910 --> 00:09:54,700 għall-punt għall new_node. 233 00:09:56,530 --> 00:09:59,180 Kull dritt, jidher okay, aħna biss għandhom finitura up issa mill 234 00:09:59,180 --> 00:10:01,580 jagħmlu l-punt l-node ġdid pointer li jmiss D, 235 00:10:01,580 --> 00:10:03,250 iżda stenna, kif nistgħu nagħmlu dan? 236 00:10:03,250 --> 00:10:05,170 L-unika ħaġa li tista 'tgħidilna fejn D kien, 237 00:10:05,170 --> 00:10:07,630 kien il-pointer li jmiss qabel maħżuna fis-C, 238 00:10:07,630 --> 00:10:09,870 imma aħna biss rewrote li werrej 239 00:10:09,870 --> 00:10:11,170 għall-punt għall-node ġdid, 240 00:10:11,170 --> 00:10:14,230 hekk aħna m'għadx għandhom ebda ħjiel fejn D tkun fil-memorja, 241 00:10:14,230 --> 00:10:17,020 u aħna tilfu l-bqija tal-lista. 242 00:10:17,020 --> 00:10:19,000 Mhux tajba fil-livelli kollha. 243 00:10:19,000 --> 00:10:21,090 >> Allura, kif nistgħu nagħmlu dan id-dritt? 244 00:10:22,360 --> 00:10:25,090 L-ewwel, il-punt pointer li jmiss tal-node ġdid fiż D. 245 00:10:26,170 --> 00:10:28,990 Issa, pointers kemm il-ġdid node taċ u s Ċ jmiss 246 00:10:28,990 --> 00:10:30,660 huma tipponta lejn il-node istess, D, 247 00:10:30,660 --> 00:10:32,290 iżda li l-multa. 248 00:10:32,290 --> 00:10:35,680 Issa nistgħu punt pointer li jmiss C fiż-node ġdid. 249 00:10:37,450 --> 00:10:39,670 Allura, aħna ghamilt dan mingħajr ma jitilfu xi data. 250 00:10:39,670 --> 00:10:42,280 Fil kodiċi, C hija l-node kurrenti 251 00:10:42,280 --> 00:10:45,540 li l-tkaxkir pointer traversal hija li tipponta lejn, 252 00:10:45,540 --> 00:10:50,400 u D huwa rappreżentat mill-node indikat mill-qasam li jmiss tal-node attwali, 253 00:10:50,400 --> 00:10:52,600 jew crawler → jmiss. 254 00:10:52,600 --> 00:10:55,460 Allura, aħna l-ewwel stabbiliti pointer li jmiss tal-node ġdid 255 00:10:55,460 --> 00:10:57,370 għall-punt li crawler → jmiss, 256 00:10:57,370 --> 00:11:00,880 Bl-istess mod għidna pointer jmiss new_node s suppost 257 00:11:00,880 --> 00:11:02,780 punt sa D fl-illustrazzjoni. 258 00:11:02,780 --> 00:11:04,540 Imbagħad, nistgħu stabbilit pointer li jmiss tal-node attwali 259 00:11:04,540 --> 00:11:06,330 għall node ġdid tagħna, 260 00:11:06,330 --> 00:11:10,980 biss kif aħna kellhom jistennew għall-punt Ċ ta 'new_node fit-tfassil. 261 00:11:10,980 --> 00:11:12,250 Issa kollox huwa fl-ordni, u aħna ma jitilfu 262 00:11:12,250 --> 00:11:14,490 kont ta 'xi data, u konna kapaċi biss 263 00:11:14,490 --> 00:11:16,200 stick node ġdid tagħna fin-nofs tal-lista 264 00:11:16,200 --> 00:11:19,330 mingħajr bini mill-ġdid il-ħaġa sħiħa jew saħansitra ċaqliq xi elementi 265 00:11:19,330 --> 00:11:22,490 il-mod aħna kien ikollha ma 'firxa ta' tul fiss. 266 00:11:22,490 --> 00:11:26,020 >> Allura, listi linked huma bażiċi, iżda importanti, dinamika struttura tad-data 267 00:11:26,020 --> 00:11:29,080 li għandhom kemm vantaġġi u żvantaġġi 268 00:11:29,080 --> 00:11:31,260 meta mqabbla ma 'arrays u strutturi oħra ta' data, 269 00:11:31,260 --> 00:11:33,350 u kif huwa spiss il-każ fix-xjenza tal-kompjuter, 270 00:11:33,350 --> 00:11:35,640 huwa importanti li tkun taf meta jużaw kull għodda, 271 00:11:35,640 --> 00:11:37,960 sabiex inti tista 'pick-għodda dritt għall-impjieg id-dritt. 272 00:11:37,960 --> 00:11:40,060 >> Għal aktar prattika, ipprova miktub funzjonijiet li 273 00:11:40,060 --> 00:11:42,080 tħassar lymph minn lista marbuta - 274 00:11:42,080 --> 00:11:44,050 ftakar li tkun attenta dwar l-ordni li fiha inti rranġati mill-ġdid 275 00:11:44,050 --> 00:11:47,430 pointers jmiss tiegħek sabiex jiżguraw li inti ma titlef chunk tal-lista tiegħek - 276 00:11:47,430 --> 00:11:50,200 jew funzjoni biex jingħaddu l-għoqiedi fil-lista marbuta, 277 00:11:50,200 --> 00:11:53,280 jew waħda gost, biex jinqaleb l-ordni ta 'kollha tal-lymph fil-lista marbuta. 278 00:11:53,280 --> 00:11:56,090 >> Jisimni Jackson Steinkamp, ​​dan huwa CS50.