1 00:00:00,000 --> 00:00:02,832 >> [Daqq tal-mużika] 2 00:00:02,832 --> 00:00:05,670 3 00:00:05,670 --> 00:00:08,560 >> Doug LLOYD: OK, so fuq dan il-punt fil-kors, 4 00:00:08,560 --> 00:00:15,300 konna koperti ħafna ta 'l-baŜi ta C. Nafu ħafna dwar varjabbli, arrays, 5 00:00:15,300 --> 00:00:17,610 pointers, dak kollu li Jittieħed tajba. 6 00:00:17,610 --> 00:00:21,610 Dawk huma kollha tip ta 'mibnija biex tara kif l-prinċipji fundamentali, 7 00:00:21,610 --> 00:00:23,880 iżda nistgħu nagħmlu aktar, id-dritt? 8 00:00:23,880 --> 00:00:27,930 Nistgħu jgħaqqdu affarijiet flimkien b'modi interessanti. 9 00:00:27,930 --> 00:00:31,010 >> U hekk ejja tagħmel dan, Nibdew li l-fergħa ta 'dak C tagħtina, 10 00:00:31,010 --> 00:00:35,270 u tibda biex joħolqu data tagħna stess istrutturi bl-użu dawn bini 11 00:00:35,270 --> 00:00:40,590 blokki flimkien biex jagħmlu xi ħaġa tassew siewja, utli. 12 00:00:40,590 --> 00:00:43,420 Mod wieħed nistgħu nagħmlu dan hu biex jitkellmu dwar kollezzjonijiet. 13 00:00:43,420 --> 00:00:48,360 Allura s'issa aħna kellna tip wieħed ta 'data struttura għal jirrappreżenta kollezzjonijiet 14 00:00:48,360 --> 00:00:51,030 ta 'prodotti simili valuri, valuri simili. 15 00:00:51,030 --> 00:00:52,350 Dan ikun firxa. 16 00:00:52,350 --> 00:00:57,020 Aħna kollezzjonijiet tan-numri interi, jew kollezzjonijiet ta 'karattri u l-bqija. 17 00:00:57,020 --> 00:01:00,890 >> Strutturi huma wkoll sort ta 'data struttura għal ġbir ta 'informazzjoni, 18 00:01:00,890 --> 00:01:03,220 iżda mhux għall-ġbir bħal valuri. 19 00:01:03,220 --> 00:01:08,090 Normalment taħlitiet tipi differenti ta 'dejta flimkien ġewwa ta 'kaxxa waħda. 20 00:01:08,090 --> 00:01:10,750 Imma din mhix fiha nnifisha użati biex katina flimkien 21 00:01:10,750 --> 00:01:16,920 jew qabbad flimkien simili oġġetti, bħal firxa. 22 00:01:16,920 --> 00:01:20,960 Arrays huma kbira għall element wieħed ifittex, iżda recall 23 00:01:20,960 --> 00:01:24,262 li huwa diffiċli ħafna li ddaħħal fil-firxa, 24 00:01:24,262 --> 00:01:26,470 sakemm aħna qed ddaħħal fil l-aħħar stess ta 'din array. 25 00:01:26,470 --> 00:01:29,730 >> U l-aħjar eżempju I jkollhom għal dan hija tip inserzjoni. 26 00:01:29,730 --> 00:01:31,650 Jekk inti recall vidjo tagħna fuq sort inserzjoni, 27 00:01:31,650 --> 00:01:34,110 kien hemm ħafna ta ' ispejjeż li huma involuti jkollhom 28 00:01:34,110 --> 00:01:37,970 li jtellgħu l-elementi, u tbiddilhom barra mill-mod li jitwaħħal xi ħaġa 29 00:01:37,970 --> 00:01:41,290 fis-nofs ta 'firxa tiegħek. 30 00:01:41,290 --> 00:01:44,690 Arrays ibatu wkoll minn ieħor problema, li hija inflessibbiltà. 31 00:01:44,690 --> 00:01:47,150 Meta aħna niddikjaraw firxa, nikbru wieħed maqtul fiha. 32 00:01:47,150 --> 00:01:49,790 Nikbru ngħid, nixtieq dan ħafna elementi. 33 00:01:49,790 --> 00:01:51,940 Jista 'jkun ta' 100, jista ' tkun 1000, jista ' 34 00:01:51,940 --> 00:01:55,930 jkun x fejn x huwa numru li l-utent tana fi pront jew fuq kmand 35 00:01:55,930 --> 00:01:56,630 linja. 36 00:01:56,630 --> 00:01:59,905 >> Iżda aħna biss jiksbu sparatura waħda lejn dan, aħna ma jsibux li mbagħad jgħidu oh, fil-fatt I 37 00:01:59,905 --> 00:02:04,360 meħtieġa 101, jew I meħtieġa x plus 20. 38 00:02:04,360 --> 00:02:07,910 Tard wisq, konna diġà ddikjarat il- firxa, u jekk aħna rridu nġibu 101 jew x 39 00:02:07,910 --> 00:02:12,050 plus 20, irridu jiddikjaraw firxa kompletament differenti, 40 00:02:12,050 --> 00:02:15,540 kopja l-elementi kollha tal-firxa fuq, u allura għandna biżżejjed. 41 00:02:15,540 --> 00:02:19,880 U jekk dak li aħna huma żbaljati mill-ġdid, dak jekk aħna verament bżonn 102, jew x plus 40, 42 00:02:19,880 --> 00:02:21,970 għandna nagħmlu dan mill-ġdid. 43 00:02:21,970 --> 00:02:26,250 Allura jkunu inflessibbli ħafna għall ristrutturazzjoni data tagħna, 44 00:02:26,250 --> 00:02:29,360 imma jekk aħna ngħaqqdu flimkien xi mill-affarijiet bażiċi li aħna stajt diġà 45 00:02:29,360 --> 00:02:33,230 tgħallmu dwar pointers u strutturi, partikolarment bl-użu tal-memorja dinamika 46 00:02:33,230 --> 00:02:36,180 allokazzjoni ma malloc, aħna tista 'tpoġġi dawn il-biċċiet flimkien 47 00:02:36,180 --> 00:02:40,960 li jinħoloq data ġdida structure-- a weħidhom lista nistgħu say-- marbuta 48 00:02:40,960 --> 00:02:45,400 li jippermetti li jikbru u tiċkien ġabra ta 'valuri 49 00:02:45,400 --> 00:02:48,800 u aħna mhux se jkollhom xi spazju moħli. 50 00:02:48,800 --> 00:02:53,320 >> Għalhekk għal darb'oħra, nagħmlu sejħa din l-idea, dan il-kunċett, lista marbuta. 51 00:02:53,320 --> 00:02:56,320 B'mod partikolari, f'dan il-video aħna qed jitkellem dwar lista marbuta waħdu, 52 00:02:56,320 --> 00:02:59,185 u mbagħad ieħor video aħna ser nitkellmu listi dwar doppjament marbuta, li 53 00:02:59,185 --> 00:03:01,560 huwa biss varjazzjoni fuq tema hawn. 54 00:03:01,560 --> 00:03:05,200 Iżda lista marbuta weħidhom huwa magħmul minn lymph, 55 00:03:05,200 --> 00:03:08,559 nodes sempliċement l term-- astratt huwa biss xi ħaġa jien ssejjaħ 56 00:03:08,559 --> 00:03:10,350 li l-tip ta ' istruttura, bażikament, jien? 57 00:03:10,350 --> 00:03:16,190 Biss se sejħa hija ta 'node-- u dan node għandha żewġ membri, jew żewġ oqsma. 58 00:03:16,190 --> 00:03:20,300 Hija għandha data, normalment numru sħiħ, float karattru, 59 00:03:20,300 --> 00:03:23,790 jew jista 'jkun xi tip data oħra li inti stajt definit bi def tip. 60 00:03:23,790 --> 00:03:29,290 U fiha pointer li node oħra tal-istess tip. 61 00:03:29,290 --> 00:03:34,710 >> Allura aħna għandna żewġ affarijiet ġewwa tal dan node, data u pointer 62 00:03:34,710 --> 00:03:36,380 li node ieħor. 63 00:03:36,380 --> 00:03:39,370 U jekk inti tibda biex Ħares dan, inti tista 'taħseb dwarha 64 00:03:39,370 --> 00:03:42,280 bħal katina ta 'punti ta' konġunzjoni li huma konnessi flimkien. 65 00:03:42,280 --> 00:03:45,070 Għandna l-ewwel node, huwa fih data, u pointer 66 00:03:45,070 --> 00:03:49,110 għat-tieni node, li fih data, u werrej li għat-tielet node. 67 00:03:49,110 --> 00:03:52,940 U hekk huwa għalhekk li għandna sejħa hija ta ' lista marbuta, dawn qed marbuta flimkien. 68 00:03:52,940 --> 00:03:56,070 >> Xi jfisser dan speċjali istruttura node look like? 69 00:03:56,070 --> 00:04:01,120 Ukoll, jekk inti recall mill-video tagħna fuq jiddefinixxu tipi dwana, bl def tip, 70 00:04:01,120 --> 00:04:05,400 nistgħu jiddefinixxu structure-- u tip jiddefinixxu struttura bħal din. 71 00:04:05,400 --> 00:04:11,240 tyepdef sllist Struct, u allura jien permezz tal-valur kelma hawn arbitrarju 72 00:04:11,240 --> 00:04:13,891 biex jindikaw kwalunkwe tip ta 'data verament. 73 00:04:13,891 --> 00:04:16,890 Inti tista 'tgħaddi fuq numru sħiħ jew float, inti jista 'jkollhom xi trid. 74 00:04:16,890 --> 00:04:19,389 Huwa mhux ristrett għal ftit interi, jew xi ħaġa bħal dik. 75 00:04:19,389 --> 00:04:22,790 Allura valur huwa biss arbitrarju tip ta 'data, u mbagħad pointer 76 00:04:22,790 --> 00:04:26,310 li node ieħor tal-istess tip. 77 00:04:26,310 --> 00:04:29,690 >> Issa, hemm qabda ftit hawn ma tiddefinixxi struttura 78 00:04:29,690 --> 00:04:33,030 meta huwa struttura referenzjali awto. 79 00:04:33,030 --> 00:04:35,340 I għandhom ikollhom temporanju isem għall-istruttura tiegħi. 80 00:04:35,340 --> 00:04:37,640 Fl-aħħar tal-ġurnata I b'mod ċar tixtieq li hija sejħa 81 00:04:37,640 --> 00:04:43,030 node sll, li finalment l-ġdida isem parti tad-definizzjoni tip tiegħi, 82 00:04:43,030 --> 00:04:47,450 imma I ma tistax tuża node SLL fin-nofs ta 'dan. 83 00:04:47,450 --> 00:04:51,430 Ir-raġuni li, I ma jkunux ħolqot tip imsejjaħ node SLL 84 00:04:51,430 --> 00:04:55,200 sal I hit dan il-punt finali hawnhekk. 85 00:04:55,200 --> 00:04:59,720 Sa dak il-punt, I għandhom ikollhom mod ieħor biex jirreferi għal dan it-tip tad-data. 86 00:04:59,720 --> 00:05:02,440 >> U dan huwa awto tip ta 'data referenzjali. 87 00:05:02,440 --> 00:05:06,314 Hija; i tip tad-data ta ' struttura li fiha data, 88 00:05:06,314 --> 00:05:08,480 u pointer għall-ieħor istruttura tal-istess tip. 89 00:05:08,480 --> 00:05:11,750 So I jeħtieġu li jkunu jistgħu jirreferu għal dan it-tip tad-data almenu temporanjament, 90 00:05:11,750 --> 00:05:14,910 għalhekk jtuha temporanju isem ta sllist Struct 91 00:05:14,910 --> 00:05:18,540 tippermetti me imbagħad ngħid Irrid pointer li sllist ieħor Struct, 92 00:05:18,540 --> 00:05:24,690 stilla sllist Struct, u mbagħad wara Stajt kompletati id-definizzjoni, 93 00:05:24,690 --> 00:05:27,220 I issa tista 'sejħa dan it-tip ta' node SLL. 94 00:05:27,220 --> 00:05:30,520 >> Allura hu għalhekk li inti tara hemm isem temporanju hawn, 95 00:05:30,520 --> 00:05:31,879 iżda isem permanenti hawn. 96 00:05:31,879 --> 00:05:33,920 Kultant inti tista 'tara definizzjonijiet ta 'struttura, 97 00:05:33,920 --> 00:05:36,570 per eżempju, li mhumiex referenzjali innifsu, dan 98 00:05:36,570 --> 00:05:39,390 ma jkollhomx isem specifier hawn. 99 00:05:39,390 --> 00:05:43,040 Ikun biss jgħidu Struct typedef, miftuħa kaboċċi Brace u mbagħad jiddefinixxu dan. 100 00:05:43,040 --> 00:05:45,620 Imma jekk int Istituzzjonjijiet hija awto referenzjali, kif dan huwa wieħed, 101 00:05:45,620 --> 00:05:49,010 għandek bżonn biex tispeċifika isem tip temporanja. 102 00:05:49,010 --> 00:05:51,310 Iżda fl-aħħar, issa li aħna ghamilt dan, 103 00:05:51,310 --> 00:05:53,620 nistgħu jirreferu biss għall dawn in-nodi, dawn l-unitajiet, 104 00:05:53,620 --> 00:05:57,900 ta 'punti strateġiċi sll għal skopijiet tal-bqija ta 'dan il-video. 105 00:05:57,900 --> 00:06:00,900 >> Kull dritt, hekk nafu kif tinħoloq node lista marbuta. 106 00:06:00,900 --> 00:06:03,240 Nafu kif għandu jkun definit a node lista marbuta. 107 00:06:03,240 --> 00:06:06,670 Issa, jekk aħna qed tmur biex tibda jużawhom biex jiġbru tagħrif, 108 00:06:06,670 --> 00:06:10,360 hemm koppja ta 'operazzjonijiet aħna jeħtieġ li jifhmu u jaħdmu magħhom. 109 00:06:10,360 --> 00:06:12,860 Għandna bżonn inkunu nafu kif tinħoloq lista marbut fl-arja irqiq. 110 00:06:12,860 --> 00:06:14,901 Jekk hemm l-ebda lista diġà, rridu nibdew wieħed. 111 00:06:14,901 --> 00:06:16,960 Għalhekk għandna bżonn li jkunu kapaċi biex joħolqu lista marbuta, 112 00:06:16,960 --> 00:06:19,130 għandna bżonn li probabbilment tfittex permezz tal-lista link 113 00:06:19,130 --> 00:06:21,830 biex issib element aħna qed tfittex. 114 00:06:21,830 --> 00:06:24,430 Għandna bżonn li tkun tista 'tiddaħħal affarijiet ġodda fil-lista, 115 00:06:24,430 --> 00:06:25,930 irridu lista tagħna biex ikunu jistgħu jikbru. 116 00:06:25,930 --> 00:06:28,638 U l-istess, irridu nkunu kapaċi li tħassar affarijiet mill-lista tagħna, 117 00:06:28,638 --> 00:06:30,250 irridu lista tagħna biex ikunu jistgħu tiċkien. 118 00:06:30,250 --> 00:06:32,160 U fl-aħħar ta 'tagħna programmi, speċjalment 119 00:06:32,160 --> 00:06:34,550 jekk inti recall li aħna qed dinamikament allokazzjoni memorja 120 00:06:34,550 --> 00:06:38,337 biex jibnu dawn il-listi tipikament, irridu biex ħielsa kollha ta 'dak memorja 121 00:06:38,337 --> 00:06:39,670 meta aħna qed isir jaħdmu magħha. 122 00:06:39,670 --> 00:06:44,627 U għalhekk għandna bżonn li tkun tista 'tħassar l Lista marbuta sħiħa f'waħda jonqsu swoop. 123 00:06:44,627 --> 00:06:46,460 Mela ejja jmorru permezz xi wħud minn dawn l-operazzjonijiet 124 00:06:46,460 --> 00:06:51,192 u kif nistgħu Ħares minnhom, jitkellem fil-kodiċi pseudocode speċifikament. 125 00:06:51,192 --> 00:06:53,150 Allura aħna tixtieq li toħloq marbuta lista, hekk forsi aħna 126 00:06:53,150 --> 00:06:56,480 tixtieq li jiddefinixxu funzjoni ma 'dan prototip. 127 00:06:56,480 --> 00:07:01,690 sll star node, joħolqu, u jien tgħaddi fi argument wieħed, xi data arbitrarja 128 00:07:01,690 --> 00:07:05,530 tip ġdid, ta 'xi tip ta' data arbitrarja. 129 00:07:05,530 --> 00:07:10,482 Imma jien returning-- din il-funzjoni għandhom ritorn għall me pointer, għal weħidhom 130 00:07:10,482 --> 00:07:11,190 node lista marbuta. 131 00:07:11,190 --> 00:07:14,050 Għal darb'oħra, aħna qed tipprova toħloq lista marbut fl-arja irqiq, 132 00:07:14,050 --> 00:07:17,900 so I bżonn pointer li dik il-lista meta jien jsir. 133 00:07:17,900 --> 00:07:19,420 >> Allura x'inhuma l-passi kollha involuti hawn? 134 00:07:19,420 --> 00:07:20,960 Ukoll, l-ewwel ħaġa jien ser tagħmel hu dinamikament 135 00:07:20,960 --> 00:07:22,550 jalloka territorju għal node ġdid. 136 00:07:22,550 --> 00:07:26,689 Għal darb'oħra, aħna qed joħolqu out ta 'irqiq arja, għalhekk għandna bżonn għall-ispazju malloc għal dan. 137 00:07:26,689 --> 00:07:28,480 U ovvjament, minnufih wara we malloc, 138 00:07:28,480 --> 00:07:31,692 aħna dejjem jivverifika sabiex ikun żgur li tagħna Pointer aħna ma jiksbu lura null. 139 00:07:31,692 --> 00:07:33,650 Għaliex jekk nippruvaw u b'rispett pointer null, 140 00:07:33,650 --> 00:07:36,190 aħna qed tmur biex jbatu minn segfault u ma rridux li. 141 00:07:36,190 --> 00:07:39,510 >> Imbagħad irridu li timla l-qasam, irridu li initialize-qasam valur 142 00:07:39,510 --> 00:07:41,690 u initialize-qasam li jmiss. 143 00:07:41,690 --> 00:07:45,450 U allura aħna rridu to-- eventwalment bħala l- funzjoni prototip indicates-- irridu 144 00:07:45,450 --> 00:07:49,940 li jirritornaw pointer għal node SLL. 145 00:07:49,940 --> 00:07:51,710 Allura dak li tagħmel dan look like viżwalment? 146 00:07:51,710 --> 00:07:55,230 Ukoll, qabel aħna qed tmur biex dinamikament jalloka territorju għal node SLL ġdid, 147 00:07:55,230 --> 00:07:58,320 hekk aħna malloc-- li l- rappreżentazzjoni viżiva 148 00:07:58,320 --> 00:08:00,020 tal-node aħna biss maħluqa. 149 00:08:00,020 --> 00:08:02,757 U aħna jivverifika sabiex ikun żgur mhuwiex null-- f'dan il-każ, 150 00:08:02,757 --> 00:08:04,840 l-istampa ma jkollhomx muri up jekk kien null, 151 00:08:04,840 --> 00:08:07,298 aħna kieku jispiċċaw ta 'memorja, hekk aħna qed tajba li jmorru hemm. 152 00:08:07,298 --> 00:08:10,200 Allura issa aħna qed dwar li pass C, initialize-qasam valur lymph. 153 00:08:10,200 --> 00:08:12,280 Ukoll, ibbażata fuq din il-funzjoni sejħa Jien jużaw hawnhekk, 154 00:08:12,280 --> 00:08:16,700 qisu Irrid li jgħaddu 6, so I ser 6 fil-qasam tal-valur. 155 00:08:16,700 --> 00:08:18,865 Issa, initialize-qasam li jmiss. 156 00:08:18,865 --> 00:08:21,640 Ukoll, dak li jien ser tagħmel hemmhekk, m'hemm xejn li jmiss, id-dritt, 157 00:08:21,640 --> 00:08:23,600 dan huwa l-unika ħaġa fil-lista. 158 00:08:23,600 --> 00:08:27,206 Allura x'inhu l-ħaġa li jmiss fil-lista? 159 00:08:27,206 --> 00:08:29,660 >> M'għandux punt għal xejn, id-dritt. 160 00:08:29,660 --> 00:08:33,600 M'hemm xejn hemm, iva, liema huwa il-kunċett nafu li l-nothing-- 161 00:08:33,600 --> 00:08:35,638 indikaturi għall-xejn? 162 00:08:35,638 --> 00:08:37,929 Għandu jkun forsi rridu li jitqiegħed pointer null hemm, 163 00:08:37,929 --> 00:08:40,178 u jien ser jirrappreżentaw il-null pointer biss bħala kaxxa aħmar, 164 00:08:40,178 --> 00:08:41,559 aħna ma tistax tmur aktar. 165 00:08:41,559 --> 00:08:44,430 Kif aħna ser tara ftit aktar tard, se jkollna eventwalment ktajjen 166 00:08:44,430 --> 00:08:46,330 ta vleġeġ konnessjoni dawn in-nodi flimkien, 167 00:08:46,330 --> 00:08:48,480 imma meta inti laqat il- kaxxa aħmar, li null, 168 00:08:48,480 --> 00:08:51,150 aħna ma tistax tmur aktar, dak l-aħħar tal-lista. 169 00:08:51,150 --> 00:08:53,960 >> U fl-aħħar, aħna biss jixtiequ ritorn pointer għal dan node. 170 00:08:53,960 --> 00:08:56,160 Allura aħna ser sejħa hija ġdida, u se terġa 'lura ġdida 171 00:08:56,160 --> 00:08:59,370 sabiex ikun jista 'jintuża fil tkun xi tkun il-funzjoni maħluqa minnha. 172 00:08:59,370 --> 00:09:03,100 Allura hemm immorru, Imxejna ħolqot weħidhom marbuta lista node fl-arja irqiq, 173 00:09:03,100 --> 00:09:05,920 u issa għandna lista nistgħu naħdmu magħhom. 174 00:09:05,920 --> 00:09:08,260 >> Issa, ejja ngħidu aħna diġà ikun hemm katina kbar, 175 00:09:08,260 --> 00:09:09,800 u rridu li ssib xi ħaġa fiha. 176 00:09:09,800 --> 00:09:12,716 U rridu funzjoni li għaddej li jirritornaw vera jew falza, jiddependi 177 00:09:12,716 --> 00:09:15,840 dwar jekk il-valur jeżisti f'dik il-lista. 178 00:09:15,840 --> 00:09:18,160 A prototip funzjoni, jew b'dikjarazzjoni għal dik il-funzjoni, 179 00:09:18,160 --> 00:09:23,320 jista 'dehra this-- BOOL isibu, u imbagħad irridu jgħaddu f'żewġ argumenti. 180 00:09:23,320 --> 00:09:26,996 >> L-ewwel, huwa pointer għall- ewwel element tal-lista marbuta. 181 00:09:26,996 --> 00:09:29,620 Dan huwa attwalment xi ħaġa tkun taf dejjem tixtieq li jżommu rekord ta ', 182 00:09:29,620 --> 00:09:33,110 u fil-fatt jista 'jkun xi ħaġa li inti anke tpoġġi fil-varjabbli globali. 183 00:09:33,110 --> 00:09:35,360 Ladarba inti toħloq lista, inti dejjem, dejjem 184 00:09:35,360 --> 00:09:38,990 tixtieq li jżommu rekord ta 'l-ħafna ewwel element tal-lista. 185 00:09:38,990 --> 00:09:43,690 B'dak il-mod inti tista 'tirreferi għal kulħadd l-oħra Elementi bi ftit wara l-katina, 186 00:09:43,690 --> 00:09:47,300 mingħajr ma jkollhom iżommu pointers intatti għal kull element wieħed. 187 00:09:47,300 --> 00:09:50,920 Ghandek bzonn biss li jżommu rekord ta 'l-ewwel wieħed jekk dawn qed kollha b'katina flimkien. 188 00:09:50,920 --> 00:09:52,460 >> U allura l-ħaġa tieni aħna qed tgħaddi fl-ġdid 189 00:09:52,460 --> 00:09:54,376 huwa arbitrarju some-- kwalunkwe tip data nkunu 190 00:09:54,376 --> 00:09:59,640 tfittex hemm ġewwa tal nisperaw wieħed mill-lymph fil-lista. 191 00:09:59,640 --> 00:10:00,980 Allura x'inhuma l-passi? 192 00:10:00,980 --> 00:10:04,250 Ukoll, l-ewwel ħaġa li għandna nagħmlu huwa noħolqu pointer trasversali 193 00:10:04,250 --> 00:10:06,015 tipponta lejn il-kap listi. 194 00:10:06,015 --> 00:10:08,890 Well, għaliex għandna nagħmlu dan, aħna diġà jkollhom pointer fil-kap listi, 195 00:10:08,890 --> 00:10:10,974 għaliex ma we biss jiċċaqalqu li wieħed madwar? 196 00:10:10,974 --> 00:10:13,140 Well, bħal I biss qal, huwa verament importanti għalina 197 00:10:13,140 --> 00:10:17,580 li dejjem iżżomm kont ta 'l- ewwel element fil-lista. 198 00:10:17,580 --> 00:10:21,270 U dan huwa attwalment aħjar biex joħolqu kopja ta 'dik, 199 00:10:21,270 --> 00:10:25,350 u l-użu li jiċċaqalqu hekk aħna qatt aċċidentalment jitbiegħed, jew aħna dejjem 200 00:10:25,350 --> 00:10:30,430 jkollhom pointer f'xi punt li huwa dritt fuq l-ewwel element tal-lista. 201 00:10:30,430 --> 00:10:33,290 Allura huwa aħjar biex joħolqu tieni waħda li nużaw biex jiċċaqalqu. 202 00:10:33,290 --> 00:10:35,877 >> Imbagħad aħna biss iqabbel jekk qasam valur f'dak node 203 00:10:35,877 --> 00:10:38,960 huwa dak li aħna qed tfittex, u jekk huwa le, aħna biss jimxu lejn il-node li jmiss. 204 00:10:38,960 --> 00:10:41,040 U aħna iżommu tagħmel dak fuq, u aktar, u aktar, 205 00:10:41,040 --> 00:10:44,811 sakemm aħna kemm issib l-element, jew aħna hit 206 00:10:44,811 --> 00:10:47,310 null-- konna laħqu t-tmiem tal-lista u mhuwiex hemmhekk. 207 00:10:47,310 --> 00:10:50,540 Dan għandu nisperaw ring qanpiena lilek bħala biss tfittxija lineari, 208 00:10:50,540 --> 00:10:54,430 aħna qed biss jirreplikaw fil struttura lista marbuta weħidhom 209 00:10:54,430 --> 00:10:56,280 minflok jużaw firxa biex tagħmel dan. 210 00:10:56,280 --> 00:10:58,210 >> Allura hawnhekk eżempju ta ' lista marbuta weħidhom. 211 00:10:58,210 --> 00:11:00,043 Dan wieħed jikkonsisti ħames lymph, u għandna 212 00:11:00,043 --> 00:11:04,330 a pointer għall-kap tal- lista, li huwa msejjaħ il-lista. 213 00:11:04,330 --> 00:11:07,385 L-ewwel ħaġa li rridu nagħmlu huwa għal darb'oħra, joħolqu li l-pointer traversal. 214 00:11:07,385 --> 00:11:09,760 Allura aħna għandna issa żewġ pointers dak il-punt għall-istess ħaġa. 215 00:11:09,760 --> 00:11:15,025 >> Issa, l-avviż hawnhekk ukoll, I ma għandek malloc kull spazju għall trav. 216 00:11:15,025 --> 00:11:18,970 I ma jgħidu trav ugwali malloc xi ħaġa, li node diġà teżisti, 217 00:11:18,970 --> 00:11:21,160 li l-ispazju fil-memorja diġà teżisti. 218 00:11:21,160 --> 00:11:24,290 Allura kull Jien fil-fatt jagħmlu huwa ħolqien pointer ieħor lilha. 219 00:11:24,290 --> 00:11:28,210 Jien ma mallocing addizzjonali ispazju, biss ikollhom issa żewġ pointers 220 00:11:28,210 --> 00:11:31,370 tipponta lejn l-istess ħaġa. 221 00:11:31,370 --> 00:11:33,710 >> Allura huwa 2 dak li jien tfittex? 222 00:11:33,710 --> 00:11:37,220 Well, no, hekk minflok jien ser jiċċaqalqu għal dak li jmiss. 223 00:11:37,220 --> 00:11:41,740 Għalhekk bażikament nixtieq ngħid, trav ugwali trav jmiss. 224 00:11:41,740 --> 00:11:43,630 Hija ta '3 dak li jien tfittex, no. 225 00:11:43,630 --> 00:11:45,780 So I tkompli titla permezz, sakemm eventwalment 226 00:11:45,780 --> 00:11:48,690 jiksbu sa 6 li huwa dak li jien tfittex għall ibbażati fuq is-sejħa funzjoni 227 00:11:48,690 --> 00:11:51,600 I jkollhom fil-quċċata hemm, u għalhekk jien jsir. 228 00:11:51,600 --> 00:11:54,150 >> Issa, dak li jekk l-element jien tfittex ma tkunx fil-lista, 229 00:11:54,150 --> 00:11:55,510 huwa xorta sejjer jaħdem? 230 00:11:55,510 --> 00:11:57,120 Ukoll, l-avviż li l-lista hawnhekk hija sottili differenti, 231 00:11:57,120 --> 00:11:59,410 u dan huwa ħaġa oħra li l- importanti b'listi marbuta, 232 00:11:59,410 --> 00:12:01,780 inti ma għandekx biex jippreservaw minnhom fi kwalunkwe ordni partikolari. 233 00:12:01,780 --> 00:12:05,390 Tista 'jekk trid, imma jista 'jkollok diġà nnotat 234 00:12:05,390 --> 00:12:09,310 li aħna mhux qed iżżomm rekord ta ' liema numru element aħna fuq. 235 00:12:09,310 --> 00:12:13,150 >> U dan huwa tip ta 'kummerċ waħda li aħna għandhom flimkien ma 'lista marbuta versi arrays, 236 00:12:13,150 --> 00:12:15,300 huwa dan aħna ma jkollhomx aċċess bl-addoċċ aktar. 237 00:12:15,300 --> 00:12:18,150 Ma nistgħux biss jgħidu, nixtieq biex tmur fil-element 0, 238 00:12:18,150 --> 00:12:21,410 jew il-6 element ta 'firxa tiegħi, li I tista 'tagħmel fil-firxa. 239 00:12:21,410 --> 00:12:25,080 Ma nistax ngħid I jridu jmorru għall- Element 0, jew il-6 element, 240 00:12:25,080 --> 00:12:30,360 jew l-element 25 tal-lista marbuta tiegħi, hemm ebda indiċi assoċjati magħhom. 241 00:12:30,360 --> 00:12:33,660 U għalhekk ma verament kwistjoni jekk aħna tippreserva lista tagħna fl-ordni. 242 00:12:33,660 --> 00:12:36,080 Jekk inti tixtieq li int ċertament jista ', iżda hemm 243 00:12:36,080 --> 00:12:38,567 ebda raġuni għaliex jeħtieġ li jiġu ppreservati fi kwalunkwe ordni. 244 00:12:38,567 --> 00:12:40,400 Għalhekk għal darb'oħra, ejja jippruvaw u isibu 6 f'din il-lista. 245 00:12:40,400 --> 00:12:43,200 Well, aħna tibda fil- bidu, aħna ma jsibu 6, 246 00:12:43,200 --> 00:12:47,690 u allura aħna jibqgħu mhux konstatazzjoni 6, sakemm aħna eventwalment jiksbu l hawn. 247 00:12:47,690 --> 00:12:52,790 Punti issa TRAV hekk dritti għal-node li jikkontjeni 8, u sitta ma jkunx fil hemmhekk. 248 00:12:52,790 --> 00:12:55,250 >> Allura l-pass li jmiss ikun biex tmur fil-pointer li jmiss, 249 00:12:55,250 --> 00:12:57,440 hekk jgħidu trav ugwali trav jmiss. 250 00:12:57,440 --> 00:13:00,750 Ukoll, trav jmiss, indikat mill il-kaxxa aħmar hemm, huwa null. 251 00:13:00,750 --> 00:13:03,020 Allura hemm imkien ieħor biex go, u għalhekk f'dan il-punt 252 00:13:03,020 --> 00:13:06,120 nistgħu nikkonkludu li konna laħaq l-aħħar tal-lista marbuta, 253 00:13:06,120 --> 00:13:07,190 u 6 mhijiex fil hemmhekk. 254 00:13:07,190 --> 00:13:10,980 U jkun ritornat falza f'dan il-każ. 255 00:13:10,980 --> 00:13:14,540 >> OK, kif nistgħu daħħal ġdida node fil-lista marbuta? 256 00:13:14,540 --> 00:13:17,310 Allura aħna kont qed kapaċi joħolqu lista marbut minn imkien, 257 00:13:17,310 --> 00:13:19,370 imma aħna probabilment jridu jibnu katina u mhux 258 00:13:19,370 --> 00:13:22,620 joħolqu mazz ta 'listi distinti. 259 00:13:22,620 --> 00:13:25,700 Irridu li jkollna lista waħda li għandha mazz ta 'punti ta' konġunzjoni fiha, 260 00:13:25,700 --> 00:13:28,040 mhux mazz ta 'listi bi node wieħed. 261 00:13:28,040 --> 00:13:31,260 Allura ma nistgħux biss iżommu bl-użu Oħloq funzjoni aħna definita qabel, issa aħna 262 00:13:31,260 --> 00:13:33,860 tixtieq li daħħal fis- lista li diġà teżisti. 263 00:13:33,860 --> 00:13:36,499 >> Allura f'dan il-każ, aħna qed tmur jgħaddu f'żewġ argumenti, 264 00:13:36,499 --> 00:13:39,290 l pointer lill-kap ta 'dik marbuta lista li rridu li żżid mal. 265 00:13:39,290 --> 00:13:40,910 Għal darb'oħra, dan huwa għaliex huwa daqstant importanti li aħna dejjem 266 00:13:40,910 --> 00:13:43,400 iżżomm kont ta 'dan, għaliex huwa l-uniku mod aħna verament 267 00:13:43,400 --> 00:13:46,690 għandhom jirreferu għal-lista kollu huwa biss minn pointer għall-ewwel element. 268 00:13:46,690 --> 00:13:49,360 Allura rridu jgħaddu fil- pointer għal dak l-ewwel element, 269 00:13:49,360 --> 00:13:52,226 u tkun xi tkun il-valur aħna trid iżżid mal-lista. 270 00:13:52,226 --> 00:13:54,600 U eventwalment din il-funzjoni se jirritornaw pointer 271 00:13:54,600 --> 00:13:57,980 għall-kap il-ġdid ta 'lista marbuta. 272 00:13:57,980 --> 00:13:59,700 >> X'inhuma l-passi kollha involuti hawn? 273 00:13:59,700 --> 00:14:02,249 Ukoll, bħad bil joħolqu, għandna bżonn li dinamikament allokati 274 00:14:02,249 --> 00:14:05,540 spazju għal node ġdid, u jivverifika sabiex ikun żgur aħna ma spiċċawlhiex l-memorja, għal darb'oħra, 275 00:14:05,540 --> 00:14:07,150 għaliex aħna qed tuża malloc. 276 00:14:07,150 --> 00:14:09,080 Imbagħad irridu li timla u daħħal l-node, 277 00:14:09,080 --> 00:14:12,730 sabiex jitqiegħdu in-numru, tkun xi tkun val huwa, fil-node. 278 00:14:12,730 --> 00:14:17,310 Aħna rridu li daħħal il-node fil il-bidu tal-lista marbuta. 279 00:14:17,310 --> 00:14:19,619 >> Hemm raġuni li I tixtieq li tagħmel dan, u 280 00:14:19,619 --> 00:14:21,910 jista 'jkun min jieħu t-tieni biex nieqaf l-video hawn, 281 00:14:21,910 --> 00:14:25,860 u jaħsbu dwar għaliex nixtieq li daħħal fil-bidu ta 'marbut 282 00:14:25,860 --> 00:14:26,589 lista. 283 00:14:26,589 --> 00:14:28,630 Għal darb'oħra, semmejt qabel li ma verament 284 00:14:28,630 --> 00:14:33,020 importanza jekk din tkun ippreservata fi kwalunkwe ordni, hekk forsi li l-clue. 285 00:14:33,020 --> 00:14:36,040 U inti raw x'jista 'jiġri jekk aħna riedu to-- jew minn ftit tieni 286 00:14:36,040 --> 00:14:37,360 ilu meta konna se permezz ta 'riċerka inti 287 00:14:37,360 --> 00:14:39,235 tista 'tara dak li jista' jiġri jekk aħna kienu qegħdin jippruvaw 288 00:14:39,235 --> 00:14:41,330 li daħħal fl-aħħar tal-lista. 289 00:14:41,330 --> 00:14:44,750 Minħabba li aħna ma jkollhomx pointer sa l-aħħar tal-lista. 290 00:14:44,750 --> 00:14:47,490 >> Allura r-raġuni li nixtieq li daħħal fil-bidu, 291 00:14:47,490 --> 00:14:49,380 huwa għaliex I tista 'tagħmel dan immedjatament. 292 00:14:49,380 --> 00:14:52,730 I jkollhom pointer fil-bidu, u Ser naraw dan fil-viżwali fit-tieni. 293 00:14:52,730 --> 00:14:55,605 Imma jekk jien tixtieq li daħħal fl-aħħar, I għandhom jibdew fil-bidu, 294 00:14:55,605 --> 00:14:58,760 travers-triq kollha lejn il- għan, u mbagħad atteġġjament tagħha fuq. 295 00:14:58,760 --> 00:15:01,420 Allura dan ikun ifisser li ddaħħal fl-aħħar tal-lista 296 00:15:01,420 --> 00:15:04,140 tkun tista 'ssir o ta n operazzjoni, li tmur lura 297 00:15:04,140 --> 00:15:06,720 għad-diskussjoni tagħna ta ' kumplessità komputazzjoni. 298 00:15:06,720 --> 00:15:10,140 Hija d issir o ta 'operazzjoni n, fejn bħala l-lista ltqajna akbar, u akbar, 299 00:15:10,140 --> 00:15:13,310 u akbar, dan ser isiru aktar u aktar diffiċli biex tindi xi ħaġa 300 00:15:13,310 --> 00:15:14,661 fuq fl-aħħar. 301 00:15:14,661 --> 00:15:17,410 Iżda huwa dejjem verament faċli biex tindi xi ħaġa fuq fil-bidu, 302 00:15:17,410 --> 00:15:19,060 int dejjem fil-bidu. 303 00:15:19,060 --> 00:15:21,620 >> U aħna ser tara viżwali ta 'dan mill-ġdid. 304 00:15:21,620 --> 00:15:24,100 U allura ladarba aħna qed isir, ladarba konna jiddaħħal l-node ġdid, 305 00:15:24,100 --> 00:15:26,880 irridu li jirritornaw pointer tagħna biex il-kap il-ġdid ta 'lista marbuta, li 306 00:15:26,880 --> 00:15:29,213 peress li aħna qed ddaħħal fil- bidu, fil-fatt se tkun 307 00:15:29,213 --> 00:15:31,060 a pointer għall-node aħna biss maħluqa. 308 00:15:31,060 --> 00:15:33,280 Ejja Ħares dan, għaliex naħseb li ser jgħinu. 309 00:15:33,280 --> 00:15:36,661 >> Allura hawnhekk lista tagħna, din tikkonsisti erba 'elementi, node fih 15, 310 00:15:36,661 --> 00:15:38,410 liema evalwazzjoni għamlet node li jkun fih 9, li 311 00:15:38,410 --> 00:15:41,370 jindika node fih 13, liema evalwazzjoni għamlet node fih 312 00:15:41,370 --> 00:15:44,840 10, li għandha l-null pointer bħala pointer li jmiss tagħha 313 00:15:44,840 --> 00:15:47,010 b'tali mod li l-aħħar tal-lista. 314 00:15:47,010 --> 00:15:50,200 Allura rridu li tiddaħħal node ġdid mal-valur 12 315 00:15:50,200 --> 00:15:52,720 fil-bidu ta 'din lista, dak li nagħmlu? 316 00:15:52,720 --> 00:15:58,770 Ukoll, qabel we malloc ispazju għall- node, u allura aħna jitqiegħdu 12 fil hemmhekk. 317 00:15:58,770 --> 00:16:02,211 >> Allura issa konna laħaq punt tad-deċiżjoni, id-dritt? 318 00:16:02,211 --> 00:16:03,960 Għandna ftit pointers li nistgħu 319 00:16:03,960 --> 00:16:06,770 jimxu, li wieħed għandu nimxu ewwel? 320 00:16:06,770 --> 00:16:09,250 Jekk nagħmlu 12 punt għal il-kap ġdid tal-list-- 321 00:16:09,250 --> 00:16:13,020 jew skuża me, għandu nagħmlu 12 punt li l-kap antika tal-lista? 322 00:16:13,020 --> 00:16:15,319 Jew għandna ngħidu li l- Lista issa jibda fil 12. 323 00:16:15,319 --> 00:16:17,110 Hemm distinzjoni hemm, u aħna ser tħares 324 00:16:17,110 --> 00:16:19,870 lejn dak li jiġri ma 'kemm fit-tieni. 325 00:16:19,870 --> 00:16:23,350 >> Iżda dan iwassal għal suġġett kbir għall sidebar, 326 00:16:23,350 --> 00:16:26,280 li huwa li wieħed mill- affarijiet trickiest ma 'listi marbuta 327 00:16:26,280 --> 00:16:30,980 huwa li jirranġa l-pointers fl-ordni korretta. 328 00:16:30,980 --> 00:16:34,520 Jekk inti tiċċaqlaq affarijiet out of order, inti tista 'tispiċċa aċċidentalment 329 00:16:34,520 --> 00:16:36,050 orphaning-bqija tal-lista. 330 00:16:36,050 --> 00:16:37,300 U hawnhekk eżempju ta 'dak. 331 00:16:37,300 --> 00:16:40,540 Mela ejja jmorru mal-idea of-- ukoll, konna biss maħluqa 12. 332 00:16:40,540 --> 00:16:43,180 Nafu 12 se tkun il-kap il-ġdid tal-lista, 333 00:16:43,180 --> 00:16:47,660 u hekk għaliex ma we biss jiċċaqalqu l pointer lista għall-punt hemmhekk. 334 00:16:47,660 --> 00:16:49,070 >> OK, hekk li tajjeb. 335 00:16:49,070 --> 00:16:51,560 Allura issa fejn ma 12 punt li jmiss? 336 00:16:51,560 --> 00:16:54,580 I mean, viżwalment nistgħu naraw li se punt sa 15, 337 00:16:54,580 --> 00:16:57,250 bħala bnedmin huwa verament ovvju għalina. 338 00:16:57,250 --> 00:17:00,300 Kif il-kompjuter taf? 339 00:17:00,300 --> 00:17:02,720 Aħna ma jkollhom xejn tipponta lejn 15 aktar, id-dritt? 340 00:17:02,720 --> 00:17:05,869 >> Imxejna tilfet kull kapaċità li tirreferi għall-15. 341 00:17:05,869 --> 00:17:11,460 Ma nistgħux ngħidu vleġġa ġdida ugwali jmiss xi ħaġa, hemm xejn hemmhekk. 342 00:17:11,460 --> 00:17:13,510 Fil-fatt, konna orfni il-bqija tal-lista 343 00:17:13,510 --> 00:17:16,465 billi tagħmel dan, aħna ħadthom aċċidentalment miksur il-katina. 344 00:17:16,465 --> 00:17:18,089 U aħna ċertament ma jridux jagħmlu dan. 345 00:17:18,089 --> 00:17:20,000 >> Mela ejja mur lura u tipprova dan mill-ġdid. 346 00:17:20,000 --> 00:17:24,060 Forsi l-aħjar ħaġa li tagħmel huwa li jiġu stabbiliti 12 ta pointer li jmiss 347 00:17:24,060 --> 00:17:28,290 lill-kap antika tal-lista l-ewwel, allura nistgħu jimxu l-lista fuq. 348 00:17:28,290 --> 00:17:30,420 U fil-fatt, li huwa l- ordni korretta li aħna 349 00:17:30,420 --> 00:17:32,836 jeħtieġ li jsegwu meta nkunu taħdem flimkien ma 'lista marbuta waħdu. 350 00:17:32,836 --> 00:17:36,460 Aħna dejjem tixtieq li jgħaqqdu l- element ġdid fil-lista, 351 00:17:36,460 --> 00:17:41,010 qabel nieħdu dak it-tip ta ' pass importanti tal-bdil 352 00:17:41,010 --> 00:17:43,360 fejn il-kap tal-lista marbuta hu. 353 00:17:43,360 --> 00:17:46,740 Għal darb'oħra, dan huwa tali ħaġa fundamentali, ma rridux li jitilfu l-mogħdija ta 'dan. 354 00:17:46,740 --> 00:17:49,310 >> Allura aħna tixtieq li tagħmel ċert li kollox huwa marbut b'katina flimkien, 355 00:17:49,310 --> 00:17:52,040 qabel nimxu dik pointer. 356 00:17:52,040 --> 00:17:55,300 U għalhekk dan ikun l-ordni korretta, li huwa li jgħaqqdu 12 mal-lista, 357 00:17:55,300 --> 00:17:57,630 allura jgħidu li l-lista jibda 12. 358 00:17:57,630 --> 00:18:00,860 Jekk aħna qal il-lista jibda fil-12 u mbagħad ippruvaw biex jgħaqqdu 12 mal-lista, 359 00:18:00,860 --> 00:18:02,193 konna diġà raw dak li jiġri. 360 00:18:02,193 --> 00:18:04,920 Aħna jitilfu l-lista bi żball. 361 00:18:04,920 --> 00:18:06,740 >> OK, so ħaġ'oħra biex jitkellmu dwar. 362 00:18:06,740 --> 00:18:09,750 X'jiġri jekk irridu li teħles minn l kollu lista marbuta f'daqqa? 363 00:18:09,750 --> 00:18:11,750 Għal darb'oħra, aħna qed mallocing dan l-ispazju, u hekk aħna 364 00:18:11,750 --> 00:18:13,351 bżonn biex ħielsa meta aħna qed isir. 365 00:18:13,351 --> 00:18:15,350 Allura issa aħna tixtieq li tħassar il-lista marbuta sħiħa. 366 00:18:15,350 --> 00:18:16,850 Ukoll, dak li rridu nagħmlu? 367 00:18:16,850 --> 00:18:20,460 >> Jekk konna laħqu l-pointer null, aħna tixtieq li twaqqaf, inkella, just iħassarha 368 00:18:20,460 --> 00:18:23,420 il-bqija tal-lista u mbagħad ħielsa me. 369 00:18:23,420 --> 00:18:28,890 Ħassar il-bqija tal-lista, u mbagħad ħielsa l node attwali. 370 00:18:28,890 --> 00:18:32,850 Xi jfisser li ħoss simili, dak it-teknika għandhom tkellimna 371 00:18:32,850 --> 00:18:35,440 dwar qabel ma dik ħoss bħal? 372 00:18:35,440 --> 00:18:39,560 Ħassar kulħadd, allura jiġu lura u ħassar lili. 373 00:18:39,560 --> 00:18:42,380 >> C'est recursion, aħna ħadna d- problema ftit iżgħar, 374 00:18:42,380 --> 00:18:46,910 aħna qed tgħid ħassar kulħadd inkella, allura inti tista 'tħassar me. 375 00:18:46,910 --> 00:18:50,940 U aktar fl-triq, li node se ngħid, iħassru kulħadd. 376 00:18:50,940 --> 00:18:53,940 Iżda eventwalment aħna ser jiksbu l- punt fejn il-lista hija nulla, 377 00:18:53,940 --> 00:18:55,310 u li l-każ bażi tagħna. 378 00:18:55,310 --> 00:18:57,010 >> Mela ejja tagħti ħarsa lejn dan, u kif dan jista 'jaħdem. 379 00:18:57,010 --> 00:18:59,759 Allura hawnhekk lista tagħna, huwa l-istess lista konna biss jitkellem dwar, 380 00:18:59,759 --> 00:19:00,980 u hemm l-passi. 381 00:19:00,980 --> 00:19:04,200 Hemm ħafna ta 'test hawn, iżda nisperaw li l-viżwalizzazzjoni se jgħinu. 382 00:19:04,200 --> 00:19:08,557 >> Allura aħna have-- u I wkoll miġbuda up frejms munzell tagħna illustrazzjoni 383 00:19:08,557 --> 00:19:10,890 mill-video tagħna fuq stacks sejħa, u nisperaw kollha ta 'dan 384 00:19:10,890 --> 00:19:13,260 flimkien se nuruk x'inhu għaddej. 385 00:19:13,260 --> 00:19:14,510 Allura hawnhekk kodiċi pseudocode tagħna. 386 00:19:14,510 --> 00:19:17,830 Jekk nilħqu null pointer, stop, inkella, 387 00:19:17,830 --> 00:19:21,320 tħassar il-bqija tal-lista, imbagħad ħielsa l node attwali. 388 00:19:21,320 --> 00:19:25,700 Allura issa dritt, list-- il pointer li aħna qed 389 00:19:25,700 --> 00:19:28,410 tgħaddi fil jeqirdu punti sa 12. 390 00:19:28,410 --> 00:19:33,340 12 mhix pointer null, hekk aħna qed ser tħassar il-bqija tal-lista. 391 00:19:33,340 --> 00:19:35,450 >> X'inhu tħassar il- bqija tal us involut? 392 00:19:35,450 --> 00:19:37,950 Ukoll, dan ifisser tagħmel sejħa biex jeqirdu, qal 393 00:19:37,950 --> 00:19:42,060 li 15 huwa l-bidu tal- bqija tal-lista irridu li jeqirdu. 394 00:19:42,060 --> 00:19:47,480 U għalhekk l-sejħa li jeqirdu 12 huwa tip ta temporanjament. 395 00:19:47,480 --> 00:19:52,690 Huwa iffriżati hemmhekk, stennija għall- sejħa biex jeqirdu 15, biex jintemm ix-xogħol tagħha. 396 00:19:52,690 --> 00:19:56,280 >> Well, 15 mhix pointer null, u hekk li għaddej biex ngħid, id-dritt, 397 00:19:56,280 --> 00:19:58,450 ukoll, iħassru l-bqija tal-lista. 398 00:19:58,450 --> 00:20:00,760 Il-bqija tal-lista jibda fid-9, u hekk aħna ser biss 399 00:20:00,760 --> 00:20:04,514 stenna sakemm inti tħassar dak kollu li Jittieħed, imbagħad jiġu lura u ħassar lili. 400 00:20:04,514 --> 00:20:06,680 Well 9 għaddej biex ngħid, ukoll, Jien ma pointer null, 401 00:20:06,680 --> 00:20:09,020 hekk tħassar il-bqija tal-lista minn hawn. 402 00:20:09,020 --> 00:20:11,805 U sabiex jippruvaw u jeqirdu 13. 403 00:20:11,805 --> 00:20:15,550 13 jgħid, jien ma pointer null, istess ħaġa, tgħaddi l-Buck. 404 00:20:15,550 --> 00:20:17,930 10 mhux pointer null, 10 fih pointer null, 405 00:20:17,930 --> 00:20:20,200 iżda 10 m'hix hi stess null pointer dritt issa, 406 00:20:20,200 --> 00:20:22,470 u għalhekk tgħaddi l-Buck wisq. 407 00:20:22,470 --> 00:20:25,560 >> U issa lista punti hemm, huwa verament jixtieq jenfasizza li some-- 408 00:20:25,560 --> 00:20:28,710 kieku kelli aktar spazju fil-immaġini, ikun jindika xi spazju każwali 409 00:20:28,710 --> 00:20:29,960 li ma nafux dak li hu. 410 00:20:29,960 --> 00:20:34,680 Hu l-pointer null għalkemm, il-lista huwa litteralment issa stabbilit huwa l-valuri nulla. 411 00:20:34,680 --> 00:20:36,820 Huwa tipponta dritt ġewwa l-kaxxa aħmar. 412 00:20:36,820 --> 00:20:39,960 Aħna laħaq pointer null, hekk nistgħu stop, u aħna qed isir. 413 00:20:39,960 --> 00:20:46,230 >> U sabiex il-qafas vjola huwa now-- fil- quċċata ta 'stack-- dak l-qafas attiva, 414 00:20:46,230 --> 00:20:47,017 iżda dan isir. 415 00:20:47,017 --> 00:20:48,600 Jekk konna laħaq pointer null, stop. 416 00:20:48,600 --> 00:20:51,290 Aħna ma tagħmel xejn, aħna ma tistax jeħles pointer null, 417 00:20:51,290 --> 00:20:55,070 aħna ma malloc xi ispazju, u hekk aħna qed isir. 418 00:20:55,070 --> 00:20:57,590 Allura dak il-qafas il-funzjoni hija meqruda, u aħna 419 00:20:57,590 --> 00:21:00,930 resume-- aħna pick up fejn aħna jitħalla off bl-ogħla wieħed li jmiss, li 420 00:21:00,930 --> 00:21:02,807 huwa dan il-qafas blu skur hawn. 421 00:21:02,807 --> 00:21:04,390 Allura aħna pick up dritt fejn aħna jitħalla 'off. 422 00:21:04,390 --> 00:21:06,598 Aħna imħassra-bqija tal- lista diġà, hekk issa aħna qed 423 00:21:06,598 --> 00:21:08,000 se ħielsa l-lymph attwali. 424 00:21:08,000 --> 00:21:12,920 Allura issa nistgħu ħielsa dan node, u issa konna laħqu t-tmiem tal-funzjoni. 425 00:21:12,920 --> 00:21:16,810 U sabiex il-qafas il-funzjoni hija meqruda, u aħna pick up fil-wieħed blu dawl. 426 00:21:16,810 --> 00:21:20,650 >> Għalhekk says-- stajt diġà done-- tħassar il-bqija tal-lista, hekk 427 00:21:20,650 --> 00:21:23,140 ħielsa l node attwali. 428 00:21:23,140 --> 00:21:26,520 U issa l-qafas isfar huwa lura fuq nett tal-munzell. 429 00:21:26,520 --> 00:21:29,655 U hekk kif tara, aħna qed issa jeqirdu l-lista mill-lemin għax-xellug. 430 00:21:29,655 --> 00:21:33,710 431 00:21:33,710 --> 00:21:37,280 >> Dak li kien ġara, għalkemm, jekk aħna kienu għamlu affarijiet l-mod żbaljat? 432 00:21:37,280 --> 00:21:39,410 Eżatt bħal meta aħna ppruvaw iżidu element. 433 00:21:39,410 --> 00:21:41,909 Jekk aħna messed up-katina, jekk aħna ma jgħaqqdu l-pointers 434 00:21:41,909 --> 00:21:44,690 fl-ordni korretta, jekk aħna biss meħlusa l-ewwel element, 435 00:21:44,690 --> 00:21:47,420 jekk aħna biss meħlusa l kap tal-lista, issa aħna 436 00:21:47,420 --> 00:21:49,642 m'għandhom l-ebda mod biex jirreferu għal il-bqija tal-lista. 437 00:21:49,642 --> 00:21:51,350 U hekk aħna jkollhom kollox orfni, 438 00:21:51,350 --> 00:21:53,880 kien ikollna x'hemm imsejħa nixxija memorja. 439 00:21:53,880 --> 00:21:56,800 Jekk inti recall mill-video tagħna dwar l-allokazzjoni memorja dinamika, 440 00:21:56,800 --> 00:21:58,650 li mhux ħaġa tajba ħafna. 441 00:21:58,650 --> 00:22:00,810 >> So kif għidt, hemm diversi operazzjonijiet 442 00:22:00,810 --> 00:22:04,010 li għandna bżonn li jużaw biex jaħdmu flimkien ma 'lista marbuta b'mod effettiv. 443 00:22:04,010 --> 00:22:08,430 U jista 'jkollok ndunat I titħalla barra waħda, tħassir ta 'element wieħed minn marbut 444 00:22:08,430 --> 00:22:09,064 lista. 445 00:22:09,064 --> 00:22:10,980 Ir-raġuni I did li huwa huwa attwalment tip ta ' 446 00:22:10,980 --> 00:22:14,360 delikata biex jaħsbu dwar kif ħassar element wieħed minn weħidhom 447 00:22:14,360 --> 00:22:15,600 Lista marbuta. 448 00:22:15,600 --> 00:22:19,950 Għandna bżonn li tkun tista 'skip fuq xi ħaġa fil-lista, li 449 00:22:19,950 --> 00:22:22,975 tfisser nikbru għal point-- aħna tixtieq li tħassar dan node-- 450 00:22:22,975 --> 00:22:25,350 iżda sabiex tagħmel dan hekk aħna ma jitlef l-ebda informazzjoni, 451 00:22:25,350 --> 00:22:30,530 għandna bżonn biex jgħaqqdu dan node hawn, hawn. 452 00:22:30,530 --> 00:22:33,390 >> So I probabbilment ma li wrong minn perspettiva viżiva. 453 00:22:33,390 --> 00:22:36,830 Allura aħna qed fil-bidu ta 'tagħna lista, aħna qed għaddej proċess minn, 454 00:22:36,830 --> 00:22:40,510 aħna tixtieq li tħassar dan node. 455 00:22:40,510 --> 00:22:43,440 Jekk aħna biss iħassarha, konna maqsuma fil-katina. 456 00:22:43,440 --> 00:22:45,950 Dan node dritt hawn tirreferi għall kull ħaġa oħra, 457 00:22:45,950 --> 00:22:48,260 fih il-katina minn hawn fuq barra. 458 00:22:48,260 --> 00:22:51,190 >> Allura dak li għandna bżonn tagħmel attwalment wara irridu jiksbu dan il-punt, 459 00:22:51,190 --> 00:22:56,670 huwa għandna bżonn li pass lura waħda, u qabbad dan node fuq għal dan node, 460 00:22:56,670 --> 00:22:58,590 hekk nistgħu imbagħad tħassar l-waħda fin-nofs. 461 00:22:58,590 --> 00:23:02,120 Iżda listi marbuta weħidhom ma tagħtina mod biex imorru lura. 462 00:23:02,120 --> 00:23:05,160 Għalhekk għandna bżonn li jew iżommu żewġ pointers, u mċaqalqa 463 00:23:05,160 --> 00:23:09,527 tip ta 'off pass, wieħed wara l- oħra kif immorru, jew tikseb sa punt 464 00:23:09,527 --> 00:23:11,110 u mbagħad tibgħat pointer ieħor permezz. 465 00:23:11,110 --> 00:23:13,150 U kif tista 'tara, huwa jistgħu jiksbu messy ftit. 466 00:23:13,150 --> 00:23:15,360 Fortunatament, aħna għandna mod ieħor biex isolvu li, 467 00:23:15,360 --> 00:23:17,810 meta nitkellmu dwar listi marbuta doppjament. 468 00:23:17,810 --> 00:23:20,720 >> Jien Doug Lloyd, dan huwa CS50. 469 00:23:20,720 --> 00:23:22,298