1 00:00:00,000 --> 00:00:02,832 >> [Musika jotzen] 2 00:00:02,832 --> 00:00:05,670 3 00:00:05,670 --> 00:00:08,560 >> DOUG LLOYD: Ados, agian, hain Jakina, puntu honetan, 4 00:00:08,560 --> 00:00:15,300 Nik C. oinarriak asko estaltzen dugu Aldagaiak, arrayak asko ezagutzen dugu, 5 00:00:15,300 --> 00:00:17,610 erakusleak, gauza ona da hori guztia. 6 00:00:17,610 --> 00:00:21,610 Horiek guztiak moduko eraiki in oinarriak bezala ikusten, 7 00:00:21,610 --> 00:00:23,880 baina gehiago egin ahal izango dugu, ezta? 8 00:00:23,880 --> 00:00:27,930 Gauzak konbinatu ahal izango dugu elkarrekin modu interesgarri batean. 9 00:00:27,930 --> 00:00:31,010 >> Eta beraz, utzi egin dutela, has gaitezen C zer ematen digu koka, 10 00:00:31,010 --> 00:00:35,270 eta hasi gure datu propioak sortzeko Eraikin horiek erabilita egiturak 11 00:00:35,270 --> 00:00:40,590 blokeak elkarrekin zerbait egin behar benetan baliotsu, erabilgarria. 12 00:00:40,590 --> 00:00:43,420 Hau egin ahal izango dugu modu bat da Bildumak buruz hitz egiteko. 13 00:00:43,420 --> 00:00:48,360 Beraz, orain arte ditudan datuak moduko bat izan genuen Bildumak ordezkari egitura 14 00:00:48,360 --> 00:00:51,030 gustatzen balioak, antzeko balioak. 15 00:00:51,030 --> 00:00:52,350 Hori bateria izango litzateke. 16 00:00:52,350 --> 00:00:57,020 Osoko zenbaki bildumak daukagu, edo pertsonaiak eta abar bildumak. 17 00:00:57,020 --> 00:01:00,890 >> Egiturak dira, halaber, datu moduko informazioa biltzeko egitura, 18 00:01:00,890 --> 00:01:03,220 baina ez da balioak biltzeko. 19 00:01:03,220 --> 00:01:08,090 Izan ohi da, datu mota desberdinak nahasten elkarrekin kutxa bakar baten barruan. 20 00:01:08,090 --> 00:01:10,750 Baina ez da berez kate erabil elkarrekin 21 00:01:10,750 --> 00:01:16,920 edo konektatzen elkarrekin antzeko elementuak, array bat bezala. 22 00:01:16,920 --> 00:01:20,960 Arrayak handia elementu itxura eman, baina gogoratzen 23 00:01:20,960 --> 00:01:24,262 Oso zaila da hori array batean txertatzeko, 24 00:01:24,262 --> 00:01:26,470 ezean dugun txertatzen ari Array hori oso amaieran. 25 00:01:26,470 --> 00:01:29,730 >> Eta adibide onena daukat horretarako txertatzeko ordena. 26 00:01:29,730 --> 00:01:31,650 Gure bideo Gogoratzen baduzu txertatzeko ordenatu on, 27 00:01:31,650 --> 00:01:34,110 Han asko izan zen izatea parte hartzen duten gastu 28 00:01:34,110 --> 00:01:37,970 jasotzeko elementuak, eta filmea horiek Bidean zerbait egokitzeko daudelarik 29 00:01:37,970 --> 00:01:41,290 Zure array erdian sartu. 30 00:01:41,290 --> 00:01:44,690 Arrayak beste jasaten Arazoa, bertan zurruna da. 31 00:01:44,690 --> 00:01:47,150 Array bat aldarrikatzen dugu, jaurtiketa bat egiten lortuko dugu. 32 00:01:47,150 --> 00:01:49,790 Erran nahi lortuko dugu, nahi dut elementu asko hau. 33 00:01:49,790 --> 00:01:51,940 100 izan liteke, agian izan 1.000, baliteke 34 00:01:51,940 --> 00:01:55,930 non x zenbaki bat erabiltzaileari dela x izan eman zigun gonbita batean edo komando at 35 00:01:55,930 --> 00:01:56,630 lerroan. 36 00:01:56,630 --> 00:01:59,905 >> Baina jaurtiketa bat bakarrik lortuko ditugula, dugu ez dute lortu, orduan esan oi, benetan I 37 00:01:59,905 --> 00:02:04,360 Beharrezko 101, edo x plus 20 behar nuen. 38 00:02:04,360 --> 00:02:07,910 Beranduegi, dagoeneko deklaratu gara array, eta 101 edo lortu nahi badugu x 39 00:02:07,910 --> 00:02:12,050 plus 20, deklaratzeko daukagu array zeharo ezberdina, 40 00:02:12,050 --> 00:02:15,540 array elementu guztiak kopiatu baino gehiago, eta, ondoren, nahikoa dugu. 41 00:02:15,540 --> 00:02:19,880 Eta zer gaizki gara berriro bada, zer Egia esan, ez dugu behar 102, edo x plus 40 bada, 42 00:02:19,880 --> 00:02:21,970 hau berriro egin behar izan dugu. 43 00:02:21,970 --> 00:02:26,250 Beraz, oso inflexible ari dira Gure datuak tamainaz aldatzeko, 44 00:02:26,250 --> 00:02:29,360 baina elkarrekin batzuk konbinatzen badugu oinarriak dagoeneko Nik dugu 45 00:02:29,360 --> 00:02:33,230 erakusleak eta egiturak buruz ikasi, bereziki, memoria dinamikoa erabiliz 46 00:02:33,230 --> 00:02:36,180 malloc esleipena, dugu pieza horiek bildu dezakezu 47 00:02:36,180 --> 00:02:40,960 datu berriak structure-- bat sortzeko banaka lotuta zerrenda liteke esaten dugu 48 00:02:40,960 --> 00:02:45,400 duela hazten aukera ematen digu eta balioen bilduma bat txikitu 49 00:02:45,400 --> 00:02:48,800 eta ez dugu alferrik galdu espazio edozein. 50 00:02:48,800 --> 00:02:53,320 >> Beraz, berriro ere, ideia hau deitu dugu, nozio hau, lotuta zerrenda. 51 00:02:53,320 --> 00:02:56,320 Hain zuzen ere, bideo honetan gaude banaka lotuta zerrenda buruz hitz egiten, 52 00:02:56,320 --> 00:02:59,185 eta, ondoren, beste bideo hitz egingo dugu buruzko bi aldiz lotuta zerrendak, 53 00:02:59,185 --> 00:03:01,560 besterik gai bat hemen aldaera bat da. 54 00:03:01,560 --> 00:03:05,200 Banaka lotuta zerrenda bat, baina Nodoen osatua, 55 00:03:05,200 --> 00:03:08,559 nodo besterik term-- abstraktu bat izatetik besterik zerbait deitzen naiz da 56 00:03:08,559 --> 00:03:10,350 duten mota bat da egitura, funtsean, naiz? 57 00:03:10,350 --> 00:03:16,190 Just nodo bat eta hau deitu behar nodo bi kidek, edo bi eremu ditu. 58 00:03:16,190 --> 00:03:20,300 Datuak, normalean bat dauka osokoa, pertsonaia mugikor bat, 59 00:03:20,300 --> 00:03:23,790 edo beste zenbait datu-mota izan daiteke Mota def batekin duzula definitu. 60 00:03:23,790 --> 00:03:29,290 Eta erakuslea bat dauka Mota bereko nodo beste. 61 00:03:29,290 --> 00:03:34,710 >> Beraz, barruan bi gauza egin behar dugu nodo honetan, datuak eta erakuslea 62 00:03:34,710 --> 00:03:36,380 nodo beste. 63 00:03:36,380 --> 00:03:39,370 Eta ikusteko hasten bazara hau, pentsatu ahal izango duzu 64 00:03:39,370 --> 00:03:42,280 nodo-kate bat bezalakoa dela elkarrekin lotuta daude. 65 00:03:42,280 --> 00:03:45,070 Lehen nodo daukagu, hura datuak, eta erakuslea dauka 66 00:03:45,070 --> 00:03:49,110 Bigarren nodoa, bertan biltzen den datuak, eta hirugarren nodo erakuslea. 67 00:03:49,110 --> 00:03:52,940 Eta beraz, horregatik da deritzogu Zerrenda lotuta, elkarrekin lotuta ari dira. 68 00:03:52,940 --> 00:03:56,070 >> Zer esan nahi du berezi honetan nodo egitura itxura? 69 00:03:56,070 --> 00:04:01,120 Beno, gogoratzen duzu gure bideo batetik bada mota pertsonalizatua definitzeko, mota def batera, 70 00:04:01,120 --> 00:04:05,400 structure-- bat defini dezakegu eta Idazten egitura bat definitzen dute hau. 71 00:04:05,400 --> 00:04:11,240 Eta egitura sllist tyepdef, eta, ondoren, naiz Hemen arbitrarioki hitza balioa erabiliz 72 00:04:11,240 --> 00:04:13,891 datu-mota edozein adierazteko benetan. 73 00:04:13,891 --> 00:04:16,890 Zenbaki oso bat edo karroza pasatzeko izan duzu, nahi duzuna izan dezakezu. 74 00:04:16,890 --> 00:04:19,389 Ez da bakarrik mugatzen osokoak, edo horrelako zerbait. 75 00:04:19,389 --> 00:04:22,790 Beraz, balio besterik ez da arbitrarioa bat datu-mota, eta, ondoren, erakuslea 76 00:04:22,790 --> 00:04:26,310 Mota bereko nodo beste. 77 00:04:26,310 --> 00:04:29,690 >> Orain, harrapaketa apur bat Hemen egitura bat definitzeko 78 00:04:29,690 --> 00:04:33,030 denean, auto erreferentziala egitura bat da. 79 00:04:33,030 --> 00:04:35,340 Aldi baterako izan behar dut Nire egitura izen. 80 00:04:35,340 --> 00:04:37,640 Egun nintzen bukaeran Argi eta garbi deitu nahi 81 00:04:37,640 --> 00:04:43,030 SLL node, hori da, azken finean berria of my motaren definizioa parte izendatzeko, 82 00:04:43,030 --> 00:04:47,450 baina ezin dut SLL node erabili honen erdian. 83 00:04:47,450 --> 00:04:51,430 Arrazoia izanik, ez daukat mota izeneko SLL nodo bat sortu 84 00:04:51,430 --> 00:04:55,200 Azken puntu hau sakatu dut hemen arte. 85 00:04:55,200 --> 00:04:59,720 Puntu hori bete arte, izan behar dut den datu mota hau izendatzeko beste modu bat. 86 00:04:59,720 --> 00:05:02,440 >> Eta hau auto bat da erreferentziala datu-mota. 87 00:05:02,440 --> 00:05:06,314 Ditu; datu-mota bat s egitura datuak bat dauka, 88 00:05:06,314 --> 00:05:08,480 eta beste erakuslea Mota bereko egitura. 89 00:05:08,480 --> 00:05:11,750 Beraz, erreferentzia izan behar dut Mota honetako datuak aldi baterako gutxienez, 90 00:05:11,750 --> 00:05:14,910 beraz, aldi baterako emanez Eta egitura sllist izena 91 00:05:14,910 --> 00:05:18,540 aukera ematen zidan orduan esan nahi dut Eta egitura sllist beste erakuslea, 92 00:05:18,540 --> 00:05:24,690 Eta egitura sllist izar bat, eta, ondoren, definizioa amaitu Nik egin ondoren, 93 00:05:24,690 --> 00:05:27,220 Orain I mota honetako SLL nodo bat deitu daiteke. 94 00:05:27,220 --> 00:05:30,520 >> Beraz, horregatik ikusten duzu, ez da Aldi baterako izen bat hemen, 95 00:05:30,520 --> 00:05:31,879 baina izen iraunkorra hemen. 96 00:05:31,879 --> 00:05:33,920 Batzuetan, ikus daitezke egituraren definizioak, 97 00:05:33,920 --> 00:05:36,570 adibidez, ez direla auto kontsultako, hori 98 00:05:36,570 --> 00:05:39,390 ez dute zehaztasun izen bat hemen. 99 00:05:39,390 --> 00:05:43,040 Besterik ez litzateke esatea Typedef egiturari, ireki kizkur eta ondoren definitzen da. 100 00:05:43,040 --> 00:05:45,620 Baina ez bazaude, egiturari auto da erreferentziala da, hau da, bezala, 101 00:05:45,620 --> 00:05:49,010 a zehaztu behar duzu Aldi baterako eredu horrekin. 102 00:05:49,010 --> 00:05:51,310 Baina, azken finean, orain Nik egin dugun honetan, 103 00:05:51,310 --> 00:05:53,620 Besterik ezin dugu erreferentzia nodo horiek, unitate hauek, 104 00:05:53,620 --> 00:05:57,900 helburuetarako SLL nodo gisa Bideo honen gainerakoa. 105 00:05:57,900 --> 00:06:00,900 >> Ondo da, beraz, badakigu nola lotutako zerrenda nodo bat sortzea. 106 00:06:00,900 --> 00:06:03,240 Nola definituko Badakigu zerrenda lotuta nodo. 107 00:06:03,240 --> 00:06:06,670 Orain, bada, ari gara martxan jarriko horiek erabilita, informazioa biltzeko, 108 00:06:06,670 --> 00:06:10,360 ebakuntza pare bat dugu ulertzeko eta elkarrekin lan egin behar. 109 00:06:10,360 --> 00:06:12,860 Nola sortu jakin behar dugu lotutako zerrenda bat aire mehe. 110 00:06:12,860 --> 00:06:14,901 Han zerrenda ez bada dagoeneko, bat hasi nahi dugu. 111 00:06:14,901 --> 00:06:16,960 Beraz, gai izan behar dugu lotutako zerrenda bat sortzea, 112 00:06:16,960 --> 00:06:19,130 ziurrenik bilatu behar dugu link zerrendan zehar 113 00:06:19,130 --> 00:06:21,830 bilatzen ari gara elementu bat aurkitzeko. 114 00:06:21,830 --> 00:06:24,430 Txertatzeko gai izan behar dugu zerrendan sartu gauza berriak, 115 00:06:24,430 --> 00:06:25,930 Gure zerrendan hazteko gai izan nahi dugu. 116 00:06:25,930 --> 00:06:28,638 Eta, era berean, gai izan nahi dugu Gure zerrendatik gauzak ezabatzeko, 117 00:06:28,638 --> 00:06:30,250 Gure zerrendan txikitu ahal izan dadin nahi dugu. 118 00:06:30,250 --> 00:06:32,160 Eta amaieran, gure programak, batez ere, 119 00:06:32,160 --> 00:06:34,550 Gogora garela bada dinamikoki memoria esleitzean 120 00:06:34,550 --> 00:06:38,337 zerrenda horiek eraikitzeko normalean, memoria hori guztia askatu nahi dugu 121 00:06:38,337 --> 00:06:39,670 Bukatutakoan dugu berarekin lanean. 122 00:06:39,670 --> 00:06:44,627 Eta beraz, ezabatzeko gai izan behar dugu lotuta bateko osoa zerrenda huts egiten swoop. 123 00:06:44,627 --> 00:06:46,460 Beraz, goazen bidez Eragiketa horiek batzuk 124 00:06:46,460 --> 00:06:51,192 eta nola liteke ikustarazi dugu, pseudocode kodea beregi hizketan. 125 00:06:51,192 --> 00:06:53,150 Beraz, sortu nahi dugu Zerrenda lotuta, beraz, agian dugu 126 00:06:53,150 --> 00:06:56,480 Funtzio bat definitu nahi prototipoa honekin. 127 00:06:56,480 --> 00:07:01,690 SLL nodo izar, sortu, eta pasatzen ari naiz argumentu bat, datu batzuk arbitrarioak 128 00:07:01,690 --> 00:07:05,530 Idatzi berriro, datu-mota arbitrarioa batzuk. 129 00:07:05,530 --> 00:07:10,482 Baina funtzio honetan returning-- naiz behar me itzultzeko erakuslea, banaka bat 130 00:07:10,482 --> 00:07:11,190 lotutako zerrenda nodo. 131 00:07:11,190 --> 00:07:14,050 Berriz ere, Sortu nahi dugu lotutako zerrenda bat aire mehe, 132 00:07:14,050 --> 00:07:17,900 beraz erakuslea behar dut Zerrenda horretan Noiz egin dut. 133 00:07:17,900 --> 00:07:19,420 >> Beraz, zer dira hemen hartzen duten urratsak? 134 00:07:19,420 --> 00:07:20,960 Beno, lehenik eta behin naiz joan egin dinamikoki da 135 00:07:20,960 --> 00:07:22,550 esleitu espazioa nodo berri bat da. 136 00:07:22,550 --> 00:07:26,689 Berriz ere, ari da sortzen dugun mehe airea, beraz, malloc da espazio behar dugu. 137 00:07:26,689 --> 00:07:28,480 Eta, jakina, berehala malloc dugu ondoren, 138 00:07:28,480 --> 00:07:31,692 Beti egiaztatu dugu ziurtatu gure erakuslea ez genuen lortu nulua. 139 00:07:31,692 --> 00:07:33,650 Saiatzen bagara, zeren eta begirunez null erakuslea, 140 00:07:33,650 --> 00:07:36,190 jasango goaz segfault eta ez dugu nahi hori. 141 00:07:36,190 --> 00:07:39,510 >> Ondoren, eremua bete nahi dugu, balio eremua hasieratu nahi dugu 142 00:07:39,510 --> 00:07:41,690 eta hasieratu hurrengo eremua. 143 00:07:41,690 --> 00:07:45,450 Eta gero zaie azkenean nahi dugu funtzioa prototipoa indicates-- nahi dugu 144 00:07:45,450 --> 00:07:49,940 erakuslea itzuli SLL nodo bat da. 145 00:07:49,940 --> 00:07:51,710 Beraz, zer egin hau ikusmen itxura? 146 00:07:51,710 --> 00:07:55,230 Beno, lehenik goaz dinamikoki esleitu espazioa SLL nodo berri bat, 147 00:07:55,230 --> 00:07:58,320 beraz Malloc dugun hori da bisuala ordezkaritza bat 148 00:07:58,320 --> 00:08:00,020 nodoaren sortu besterik ez dugu. 149 00:08:00,020 --> 00:08:02,757 Eta ziur egiaztatu dugu ez da kasu honetan null--, 150 00:08:02,757 --> 00:08:04,840 Irudian, ez luke izan agerian eman nulua balitz, 151 00:08:04,840 --> 00:08:07,298 oroimen gabe genuke exekutatu dute, hain onak ez joan behar gara. 152 00:08:07,298 --> 00:08:10,200 Beraz, gaur egun ari gara C urratsa, hasieratu nodes balio eremua. 153 00:08:10,200 --> 00:08:12,280 Beno, oinarritutako eragiketa hau deitu erabiltzen dut hemen, 154 00:08:12,280 --> 00:08:16,700 Itxura 6 gainditu nahi dut atsegin, beraz, balio eremuan 6 garrantzitsua dela. 155 00:08:16,700 --> 00:08:18,865 Orain, hasieratu hurrengo eremua. 156 00:08:18,865 --> 00:08:21,640 Beno, zer naiz han egin da joan, ez dago ezer datozen, eskuinera, 157 00:08:21,640 --> 00:08:23,600 hau zerrenda honetan gauza bakarra da. 158 00:08:23,600 --> 00:08:27,206 Beraz, zein da zerrendako hurrengo gauza da? 159 00:08:27,206 --> 00:08:29,660 >> Ez luke ezer puntu, eskubidea. 160 00:08:29,660 --> 00:08:33,600 Ez dago beste ezer ez du, beraz, zer da kontzeptua ezagutzen dugun da ezer 161 00:08:33,600 --> 00:08:35,638 Ezer ez erakusleak? 162 00:08:35,638 --> 00:08:37,929 Izan behar du, agian nahi dugu null erakuslea jarri nahi ez, 163 00:08:37,929 --> 00:08:40,178 eta nulua adierazten dut erakuslea kutxa gorri bat bezala besterik ez, 164 00:08:40,178 --> 00:08:41,559 Ezin gara, edozein gehiago. 165 00:08:41,559 --> 00:08:44,430 Ikusiko dugun bezala, pixka bat geroago, azkenean kateak aukera izango dugu 166 00:08:44,430 --> 00:08:46,330 geziak konektatzean nodo horiek elkarrekin, 167 00:08:46,330 --> 00:08:48,480 baina hit duzu koadro gorri, hori da nulua, 168 00:08:48,480 --> 00:08:51,150 Ezin gara urrunago, den zerrendan bukaera da. 169 00:08:51,150 --> 00:08:53,960 >> Eta, azkenik, besterik ez dugu nahi itzuli erakuslea nodo honetarako. 170 00:08:53,960 --> 00:08:56,160 Beraz dugun berria deitu, eta berria itzuliko da 171 00:08:56,160 --> 00:08:59,370 beraz, erabili ahal izango dira edozein dela ere funtzio sortu da. 172 00:08:59,370 --> 00:09:03,100 Beraz, hor dugu, banaka bat sortu dugu lotutako zerrenda nodo aire mehe, 173 00:09:03,100 --> 00:09:05,920 eta orain zerrenda bat lan egin ahal izango dugu. 174 00:09:05,920 --> 00:09:08,260 >> Orain, demagun dugu dagoeneko kate handi bat izan, 175 00:09:08,260 --> 00:09:09,800 eta bertan zerbait aurkitu nahi dugu. 176 00:09:09,800 --> 00:09:12,716 Eta hori gertatzen funtzio bat nahi dugu egia edo gezurra itzuli, arabera 177 00:09:12,716 --> 00:09:15,840 balio bat zerrenda horretan existitzen den ala ez. 178 00:09:15,840 --> 00:09:18,160 Funtzioa prototipoa, edo Funtzio horren adierazpena, 179 00:09:18,160 --> 00:09:23,320 agian itxura boolearra aurkitu Halako, eta ondoren, bi argumentu pasa nahi dugu. 180 00:09:23,320 --> 00:09:26,996 >> Lehena, erakuslea da Zerrenda lotuta lehenengo elementua. 181 00:09:26,996 --> 00:09:29,620 Hau da, benetan zerbait dituzu Beti segimendua egiteko nahi, 182 00:09:29,620 --> 00:09:33,110 eta benetan zerbait izan liteke hori nahiz aldagai global bat jarri duzu. 183 00:09:33,110 --> 00:09:35,360 Behin zerrenda bat sortzen duzunean, Beti, beti 184 00:09:35,360 --> 00:09:38,990 segimendua egiteko, oso nahi zerrendako lehenengo elementua. 185 00:09:38,990 --> 00:09:43,690 Era horretan beste guztiak aipatzeko ditzakezu kate jarraituz by elementuak, 186 00:09:43,690 --> 00:09:47,300 erakusleak mantentzeko beharrik gabe elementu bakoitza oso-osorik. 187 00:09:47,300 --> 00:09:50,920 Soilik lehen segimendua egiteko behar duzun bat bada ari dira guztiak kateatutako elkarrekin. 188 00:09:50,920 --> 00:09:52,460 >> Eta gero, bigarren gauza ari gara berriz pasatzen 189 00:09:52,460 --> 00:09:54,376 da arbitrarioki some-- datu-mota edozein dela ere gaude 190 00:09:54,376 --> 00:09:59,640 han bila, barruan da zorionez zerrendako nodo bat. 191 00:09:59,640 --> 00:10:00,980 Beraz, zer dira urratsak? 192 00:10:00,980 --> 00:10:04,250 Beno, lehenik eta behin egiten dugu transversal erakuslea bat sortu dugu 193 00:10:04,250 --> 00:10:06,015 zerrendak burua seinalatuz. 194 00:10:06,015 --> 00:10:08,890 Beno, zergatik egiten dugu hori, dagoeneko dugu erakuslea izan zerrendetako buruan, 195 00:10:08,890 --> 00:10:10,974 Bat inguruan zergatik ez mugitzen gara? 196 00:10:10,974 --> 00:10:13,140 Tira, esan bezala, benetan guretzat garrantzitsua da 197 00:10:13,140 --> 00:10:17,580 den pista beti egon Zerrendako elementu oso lehen. 198 00:10:17,580 --> 00:10:21,270 Eta, beraz, egia esan, hobeto Horren bikoiztuak bat sortzeko, 199 00:10:21,270 --> 00:10:25,350 eta ez dugu inoiz mugitu orain erabiltzen dituzten ustekabean, urrundu, edo beti dugu 200 00:10:25,350 --> 00:10:30,430 Hori da uneren erakuslea izan eskuineko zerrendan lehenengo elementua orrian. 201 00:10:30,430 --> 00:10:33,290 Beraz, hobe da bat sortzeko bigarrena mugitzeko erabiltzen ditugun. 202 00:10:33,290 --> 00:10:35,877 >> Ondoren ala konparatu besterik ez dugu balio nodo hartan eremuan 203 00:10:35,877 --> 00:10:38,960 da zer bilatzen ari gara, eta hori da, bada Ez, hurrengo nodo besterik ez dugu mugitzeko. 204 00:10:38,960 --> 00:10:41,040 Eta hori egiten jarraituko dugu baino gehiago, eta berriro, eta berriro, 205 00:10:41,040 --> 00:10:44,811 bai dugu aurkitu arte elementua, edo hit dugu 206 00:10:44,811 --> 00:10:47,310 null-- Nik bukaerara iritsi gara Zerrendaren eta ez da han. 207 00:10:47,310 --> 00:10:50,540 Hau zorionez du jotzen beharko kanpai bat duzun bilaketa lineala bezala besterik ez, 208 00:10:50,540 --> 00:10:54,430 Ari gara replicating ere banaka lotuta zerrenda egitura bat 209 00:10:54,430 --> 00:10:56,280 ordez array bat erabiliz egin ahal izateko. 210 00:10:56,280 --> 00:10:58,210 >> Hortaz, hona hemen adibide bat banaka lotuta zerrenda bat. 211 00:10:58,210 --> 00:11:00,043 Honek bat osatzen bost nodo, eta daukagun 212 00:11:00,043 --> 00:11:04,330 buru erakuslea zerrenda, hau da, zerrenda deitzen. 213 00:11:04,330 --> 00:11:07,385 Lehenengo gauza egin nahi dugu, Berriro, sortu zeharkako erakuslea. 214 00:11:07,385 --> 00:11:09,760 Beraz, orain bi erakusle dugu Gauza bera puntu horretan. 215 00:11:09,760 --> 00:11:15,025 >> Orain, konturatu hemen, gainera, ez nuen trav lekurik malloc behar. 216 00:11:15,025 --> 00:11:18,970 Nik ez dut esan trav berdinen malloc zerbait, nodo hori existitzen da, 217 00:11:18,970 --> 00:11:21,160 memoria espazio hori existitzen da dagoeneko. 218 00:11:21,160 --> 00:11:24,290 Beraz, guztiak benetan egiten ari naiz da hura erakuslea beste sortuz. 219 00:11:24,290 --> 00:11:28,210 Ez dut gehigarri bat mallocing espazioa, besterik ez dute, orain bi erakusleak 220 00:11:28,210 --> 00:11:31,370 Gauza bera seinalatuz. 221 00:11:31,370 --> 00:11:33,710 >> Beraz, 2 da zer bilatzen ari naiz? 222 00:11:33,710 --> 00:11:37,220 Beno, ez, beraz, horren ordez naiz hurrengo bat mugitu egingo da. 223 00:11:37,220 --> 00:11:41,740 Beraz, funtsean, esango nuke, trav berdinen trav hurrengo. 224 00:11:41,740 --> 00:11:43,630 Da 3, para no zer bilatzen ari naiz. 225 00:11:43,630 --> 00:11:45,780 Beraz, joan jarraitzen dut bidez, azkenean arte 226 00:11:45,780 --> 00:11:48,690 6 eskuratu hau da, zer egiten dit oinarritutako funtzio deia on 227 00:11:48,690 --> 00:11:51,600 Dute goialdean dut han, eta orain egin dut. 228 00:11:51,600 --> 00:11:54,150 >> Orain, zer elementua naiz bada bila ez dago zerrendan, 229 00:11:54,150 --> 00:11:55,510 da lanera joan? 230 00:11:55,510 --> 00:11:57,120 Beno, zerrenda hori nabarituko Hemen da fin ezberdinak, 231 00:11:57,120 --> 00:11:59,410 eta hori da beste gauza bat da zerrendak lotuta garrantzitsua, 232 00:11:59,410 --> 00:12:01,780 ez duzu, gordetzea jakin ahal izateko haiek. 233 00:12:01,780 --> 00:12:05,390 Nahi izanez gero, egin dezakezu, baina Dagoeneko konturatuko ahal izango duzu 234 00:12:05,390 --> 00:12:09,310 ari ez garela jarraipena zer zenbakia elementu zagoz dugu. 235 00:12:09,310 --> 00:12:13,150 >> Eta hori da, bat merkataritza-mota hori dugu Zerrenda lotuta arrayak bertsoekin dute, 236 00:12:13,150 --> 00:12:15,300 da, ez dugu ausazko sarbidea jada. 237 00:12:15,300 --> 00:12:18,150 Ezin besterik esan dugu, nahi dut to 0. elementu joateko, 238 00:12:18,150 --> 00:12:21,410 edo nire array 6an elementua, bertan sorta bat egin ahal izango dut. 239 00:12:21,410 --> 00:12:25,080 Ezin dut esan nahi du joan nahi dut Elementu 0. edo 6an elementua, 240 00:12:25,080 --> 00:12:30,360 edo 25an nire zerrenda lotutako elementua, ez dago indize horiek lotutako da. 241 00:12:30,360 --> 00:12:33,660 Eta beraz, ez du benetan axola Gure zerrendan babesteko dugu bada ordena. 242 00:12:33,660 --> 00:12:36,080 Zuk nahi badituzu Zalantzarik gabe, ahal, baina ez dago 243 00:12:36,080 --> 00:12:38,567 inolako arrazoirik behar dute den ordenan mantenduta. 244 00:12:38,567 --> 00:12:40,400 Beraz, berriro ere, dezagun saiatu eta aurkituko 6 zerrenda honetan. 245 00:12:40,400 --> 00:12:43,200 Beno, hasteko at dugu hasita, ez dugu aurkituko 6 246 00:12:43,200 --> 00:12:47,690 eta orduan ez du jarraituko dugu aurkitzeko 6 hemen azkenean genuen lortu arte. 247 00:12:47,690 --> 00:12:52,790 Orain txalupa b nodo Hona hemen puntu Sei dituen 8, eta ez dago ere. 248 00:12:52,790 --> 00:12:55,250 >> Beraz, hurrengo urratsa izango litzateke den hurrengo erakuslea joan, 249 00:12:55,250 --> 00:12:57,440 beraz, esan trav berdinen trav hurrengo. 250 00:12:57,440 --> 00:13:00,750 Beno, txalupa b hurrengo bidez adierazten koadro gorri dago, nulua da. 251 00:13:00,750 --> 00:13:03,020 Beraz, ez da inon den joan, eta, beraz, puntu honetan 252 00:13:03,020 --> 00:13:06,120 Nik hori iritsi gara ondoriozta dezakegu lotuta zerrendaren amaieran, 253 00:13:06,120 --> 00:13:07,190 eta 6 ez da hor. 254 00:13:07,190 --> 00:13:10,980 Eta itzuli beharko litzateke Kasu honetan faltsua. 255 00:13:10,980 --> 00:13:14,540 >> Ados, nola ez berri bat sartzen dugu nodo lotuta zerrenda? 256 00:13:14,540 --> 00:13:17,310 Beraz, sortzeko gai izan gara lotutako zerrenda bat ezerezetik, 257 00:13:17,310 --> 00:13:19,370 baina, ziurrenik, nahi dugu kate bat eraiki eta ez 258 00:13:19,370 --> 00:13:22,620 zerrendak desberdin mordo bat sortzeko. 259 00:13:22,620 --> 00:13:25,700 Zerrenda bat izan nahi dugu, bertan nodo sorta bat du, 260 00:13:25,700 --> 00:13:28,040 Ez zerrendak sorta bat nodo bakar batekin. 261 00:13:28,040 --> 00:13:31,260 Beraz, ezin dugu besterik gabe, gorde Sortu erabiliz Funtzio lehenago definitu dugu, orain dugu 262 00:13:31,260 --> 00:13:33,860 ra batean sartu nahi Zerrenda hori existitzen da dagoeneko. 263 00:13:33,860 --> 00:13:36,499 >> Beraz, kasu honetan, goazen bi argumentuak pasatzeko, 264 00:13:36,499 --> 00:13:39,290 horren buru erakuslea lotzen zerrenda gehitu nahi dugu. 265 00:13:39,290 --> 00:13:40,910 Berriz ere, horregatik hain da garrantzitsua dugu hori beti 266 00:13:40,910 --> 00:13:43,400 da segimendua, zeren modu bakarra dugu benetan 267 00:13:43,400 --> 00:13:46,690 to zerrenda osoa da erreferentzia izan besterik lehenengo elementu erakuslea arabera. 268 00:13:46,690 --> 00:13:49,360 Beraz, nahi bat pasa nahi dugu lehen elementu hori erakuslea, 269 00:13:49,360 --> 00:13:52,226 eta edozein dela ere balio dugu to zerrendari gehitu nahi. 270 00:13:52,226 --> 00:13:54,600 Eta, azkenean, funtzio honetan da erakuslea itzuli joan 271 00:13:54,600 --> 00:13:57,980 lotuta zerrenda buru berria da. 272 00:13:57,980 --> 00:13:59,700 >> Zer dira hemen hartzen duten urratsak? 273 00:13:59,700 --> 00:14:02,249 Beno, besterik sortzen dituzten bezala, dinamikoki esleitu behar dugu 274 00:14:02,249 --> 00:14:05,540 Nodo berria espazioa, eta egiaztatu egin Ziur ez dugu memoria agortu, berriro, 275 00:14:05,540 --> 00:14:07,150 malloc erabiltzen ari garelako. 276 00:14:07,150 --> 00:14:09,080 Ondoren Populatu nahi dugu eta sartu nodoaren, 277 00:14:09,080 --> 00:14:12,730 beraz, jarri zenbakia, zernahi val da, nodo sartu. 278 00:14:12,730 --> 00:14:17,310 Nodoa txertatzeko nahi dugu Zerrenda lotuta hasieran. 279 00:14:17,310 --> 00:14:19,619 >> Ez dago arrazoi bat dela I Hau egin nahi, eta hura 280 00:14:19,619 --> 00:14:21,910 Merezi bigarren bat hartu izan liteke Bideo eteteko hemen, 281 00:14:21,910 --> 00:14:25,860 eta zergatik nahi nuke nahi pentsatu a lotua hasieran txertatzeko 282 00:14:25,860 --> 00:14:26,589 Zerrenda. 283 00:14:26,589 --> 00:14:28,630 Berriz ere, lehenago aipatu dut ez dela benetan 284 00:14:28,630 --> 00:14:33,020 axola hark iraun dugu baldin badaude ere Ordena, beraz, agian, gakoetako bat. 285 00:14:33,020 --> 00:14:36,040 Eta guk zer gertatuko litzateke ikusi duzu nahi zaie edo bigarren bat besterik ez 286 00:14:36,040 --> 00:14:37,360 Duela denean gindoazen bilaketa bidez, 287 00:14:37,360 --> 00:14:39,235 zer ikusi izan liteke gertatuko ginen saiatzen bada 288 00:14:39,235 --> 00:14:41,330 zerrendaren amaieran txertatzeko. 289 00:14:41,330 --> 00:14:44,750 Ez dugulako dute bat Zerrenda amaieran erakuslea. 290 00:14:44,750 --> 00:14:47,490 >> Beraz, arrazoia zuela nahi dut to hasieran txertatzeko, 291 00:14:47,490 --> 00:14:49,380 da I berehala egin ahal izango delako. 292 00:14:49,380 --> 00:14:52,730 Hasieran erakuslea izan dut, eta hau ikusiko dugu bisuala bigarren bat ere. 293 00:14:52,730 --> 00:14:55,605 Baina amaieran txertatu nahi badut, Hasieran hasi behar dut, 294 00:14:55,605 --> 00:14:58,760 zeharkatuko du modu guztiak amaieran, eta, ondoren, Tack gainean. 295 00:14:58,760 --> 00:15:01,420 Beraz, hori dela esan nahi du Zerrendaren amaieran txertatzeak 296 00:15:01,420 --> 00:15:04,140 n O bat bihurtuko litzateke eragiketa, atzera egingo 297 00:15:04,140 --> 00:15:06,720 Gure eztabaida konplexutasun konputazionala. 298 00:15:06,720 --> 00:15:10,140 N eragiketa, non o bihurtu litzaidake Zerrenda handiagoa, eta handiagoa lortu, 299 00:15:10,140 --> 00:15:13,310 eta handiagoa, gero eta zailagoa izango da eta Zerbait Tack zailagoa 300 00:15:13,310 --> 00:15:14,661 amaieran. 301 00:15:14,661 --> 00:15:17,410 Baina beti da benetan erraza Tack zerbait hasieran, 302 00:15:17,410 --> 00:15:19,060 Beti ari zara hasieran. 303 00:15:19,060 --> 00:15:21,620 >> Eta honen bisuala ikusiko dugu berriro. 304 00:15:21,620 --> 00:15:24,100 Eta gero, behin egin gaude, behin nodo berria txertatuko ditugu, 305 00:15:24,100 --> 00:15:26,880 Gure erakuslea nahi itzultzeko dugu lotuta zerrenda buru berria, eta horrek 306 00:15:26,880 --> 00:15:29,213 dugu bertan txertatzen ari geroztik hasita, benetan izan 307 00:15:29,213 --> 00:15:31,060 Sortu berri dugun nodoaren erakuslea. 308 00:15:31,060 --> 00:15:33,280 Dezagun Ikusteko honetan, Nik uste dut lagundu egingo duelako. 309 00:15:33,280 --> 00:15:36,661 >> Hortaz, hona hemen gure zerrenda, datzan lau elementuak, nodo bat 15 310 00:15:36,661 --> 00:15:38,410 adabegi bat seinalatzen daukan 9, bertan 311 00:15:38,410 --> 00:15:41,370 13 nodo bat darama, bertan duten nodo bat seinalatzen 312 00:15:41,370 --> 00:15:44,840 10, eta nulua du erakuslea bere hurrengo erakuslea gisa 313 00:15:44,840 --> 00:15:47,010 beraz den zerrendan bukaera da. 314 00:15:47,010 --> 00:15:50,200 Beraz, sartu nahi dugu 12 balioa nodo berria 315 00:15:50,200 --> 00:15:52,720 honen hasieran Zerrenda, zer egiten dugu? 316 00:15:52,720 --> 00:15:58,770 Beno, lehenengo espazio malloc dugu alde node, eta, ondoren, 12 jarri ditugu han. 317 00:15:58,770 --> 00:16:02,211 >> Beraz, gaur egun iritsi gara bat Erabaki puntua, ezta? 318 00:16:02,211 --> 00:16:03,960 Pare bat daukagu erakusleak genezakeela 319 00:16:03,960 --> 00:16:06,770 mugitu, zein den lehenengo mugitu behar dugu? 320 00:16:06,770 --> 00:16:09,250 Baldin eta 12 puntu egin dugu list-- buru berria 321 00:16:09,250 --> 00:16:13,020 edo Barkatu, egin behar dugu 12 zerrenda burua zaharra apuntatzen? 322 00:16:13,020 --> 00:16:15,319 Edo behar dela esan genezake dela Zerrenda orain 12etan hasiko da. 323 00:16:15,319 --> 00:16:17,110 Ez dago bereizketa bat da han, eta egingo begiratzen dugu 324 00:16:17,110 --> 00:16:19,870 biak bigarren batean zer gertatzen den. 325 00:16:19,870 --> 00:16:23,350 >> Baina hau bat dakar sidebar dagoen gaia handia, 326 00:16:23,350 --> 00:16:26,280 horietatik bat dela zerrendak lotuta trickiest gauzak 327 00:16:26,280 --> 00:16:30,980 da erakusleak antolatu zuzena izateko. 328 00:16:30,980 --> 00:16:34,520 Gauzak mugitzen duzun ordena bada, ustekabean azkenean dezakezu 329 00:16:34,520 --> 00:16:36,050 Zerrenda gainerako orphaning. 330 00:16:36,050 --> 00:16:37,300 Eta hemen horren adibide bat. 331 00:16:37,300 --> 00:16:40,540 Beraz, goazen ideiarekin of-- bai, besterik ez dugu sortu 12. 332 00:16:40,540 --> 00:16:43,180 Badakigu 12 izango da zerrendako buru berria, 333 00:16:43,180 --> 00:16:47,660 eta, beraz, zergatik ez mugitu besterik ez dugu dagoela seinalatu zerrenda erakuslea da. 334 00:16:47,660 --> 00:16:49,070 >> Ados, beraz, hori da ona. 335 00:16:49,070 --> 00:16:51,560 Beraz, gaur bertan, 12 hurrengo puntua egiten du? 336 00:16:51,560 --> 00:16:54,580 Esan nahi dut, ikusmen ikusi ahal izango dugu egingo dela 15 apuntatzen, 337 00:16:54,580 --> 00:16:57,250 gizakiak benetan guri begi-bistakoa da. 338 00:16:57,250 --> 00:17:00,300 Nola ordenagailu jakin? 339 00:17:00,300 --> 00:17:02,720 Ez dugu ezer 15 gehiago apuntatzen da, ezta? 340 00:17:02,720 --> 00:17:05,869 >> To 15 erreferentzia duen gaitasuna galdu dugu. 341 00:17:05,869 --> 00:17:11,460 Ezin dugu gezi berria hurrengo berdinen esan zerbait, ez dago ezer ez dago. 342 00:17:11,460 --> 00:17:13,510 Izan ere, umezurtz utzi ditugu Zerrenda gainerako 343 00:17:13,510 --> 00:17:16,465 hori eginez, dugu ustekabean katea hautsi. 344 00:17:16,465 --> 00:17:18,089 Eta ez dugu zalantzarik ez dugun egin nahi. 345 00:17:18,089 --> 00:17:20,000 >> Beraz, goazen atzera eta saiatu berriro. 346 00:17:20,000 --> 00:17:24,060 Agian eskuineko gauza egin da 12 hurrengo erakuslea ezartzeko 347 00:17:24,060 --> 00:17:28,290 zerrenda burua zahar hau lehen aldiz, zerrenda mugitu ahal izango dugun baino gehiago. 348 00:17:28,290 --> 00:17:30,420 Eta hain zuzen ere, horixe da orden egokian dugun 349 00:17:30,420 --> 00:17:32,836 jarraitu Oraindik ez dugu behar den banaka lotuta zerrenda batekin lanean. 350 00:17:32,836 --> 00:17:36,460 Beti konektatu nahi dugu Elementu berri zerrendan sartu, 351 00:17:36,460 --> 00:17:41,010 mota hori hartuko dugu aurretik aldatuz pauso garrantzitsua 352 00:17:41,010 --> 00:17:43,360 non lotuta zerrenda burua da. 353 00:17:43,360 --> 00:17:46,740 Berriz ere, besteak beste, funtsezko gauza bat da, Ez dugu pista galdu nahi. 354 00:17:46,740 --> 00:17:49,310 >> Beraz, ziurtatu egin nahi dugu dena batera kateatu da, 355 00:17:49,310 --> 00:17:52,040 erakuslea mugitzen dugu aurretik. 356 00:17:52,040 --> 00:17:55,300 Eta, beraz, hau ordena zuzena izango litzateke, hau da, 12 konektatzeko zerrendan, 357 00:17:55,300 --> 00:17:57,630 gero esan zerrendan hasten dela 12 a. 358 00:17:57,630 --> 00:18:00,860 Dugu esan zerrenda 12etan hasten bada, eta Saiatu ondoren 12 konektatzeko zerrendan, 359 00:18:00,860 --> 00:18:02,193 Dagoeneko ikusi dugu zer gertatzen den. 360 00:18:02,193 --> 00:18:04,920 Zerrenda galtzen dugun akatsa. 361 00:18:04,920 --> 00:18:06,740 >> Ados, beraz, gauza bat gehiago hitz egin. 362 00:18:06,740 --> 00:18:09,750 Zer kendu nahi badugu oso bat lotuta zerrenda aldi berean? 363 00:18:09,750 --> 00:18:11,750 Berriz ere, ari gara mallocing espazio hori guztia, eta, beraz, ez dugu 364 00:18:11,750 --> 00:18:13,351 libratzeko egiten gaude denean behar. 365 00:18:13,351 --> 00:18:15,350 Beraz, orain ezabatu nahi dugun loturiko zerrenda osoa. 366 00:18:15,350 --> 00:18:16,850 Beno, zer egin nahi dugu? 367 00:18:16,850 --> 00:18:20,460 >> Nik dugu iritsi null erakuslea bada, ez dugu gelditu nahi, bestela, besterik ezabatu 368 00:18:20,460 --> 00:18:23,420 Zerrendako gainerako zehar eta ondoren askatu me. 369 00:18:23,420 --> 00:18:28,890 Gainerako ezabatu Zerrendako, eta, ondoren, uneko adabegiaren askatzeko. 370 00:18:28,890 --> 00:18:32,850 Soinu horrelako Zer esan nahi du, zer teknika dute hitz egin dugu 371 00:18:32,850 --> 00:18:35,440 Aurretik buruz bezalako soinu hori? 372 00:18:35,440 --> 00:18:39,560 Ezabatu besteek, orduan itzuli eta niri ezabatzeko. 373 00:18:39,560 --> 00:18:42,380 >> Hori errekurtsio, egin genuen Arazoa pixka bat txikiagoa, 374 00:18:42,380 --> 00:18:46,910 Oraindik denek ezabatu esanez dugu bestela, gero niri ezabatzeko aukera izango duzu. 375 00:18:46,910 --> 00:18:50,940 Eta are gehiago, errepidean behera, nodo hori esango dute, denek ezabatu beste. 376 00:18:50,940 --> 00:18:53,940 Baina azkenean lortu dugu Puntu non zerrendan nulua da, 377 00:18:53,940 --> 00:18:55,310 eta hori gure base kasu. 378 00:18:55,310 --> 00:18:57,010 >> Beraz, dezagun begirada bat, eta hori nola lan egin dezake. 379 00:18:57,010 --> 00:18:59,759 Hortaz, hona hemen gure zerrenda, bera da zerrendatu besterik ez ginen buruz hitz egiten, 380 00:18:59,759 --> 00:19:00,980 eta han pausoak da. 381 00:19:00,980 --> 00:19:04,200 Badira testu asko dago hemen, baina zorionez bistaratzea lagunduko du. 382 00:19:04,200 --> 00:19:08,557 >> Beraz, egun ditugun eta ere bota dut gure pila fotograma ilustrazioa eman 383 00:19:08,557 --> 00:19:10,890 Gure dei pilak buruzko bideo-tik, eta espero dugu hau guztia 384 00:19:10,890 --> 00:19:13,260 elkarrekin erakutsiko dizu zer gertatzen den. 385 00:19:13,260 --> 00:19:14,510 Hortaz, hona hemen gure pseudocode kodea. 386 00:19:14,510 --> 00:19:17,830 Nulua bat lortzen badugu erakuslea, gelditzeko, bestela, 387 00:19:17,830 --> 00:19:21,320 Gainerako ezabatu Zerrendako, ondoren, gaur egungo nodo askatzeko. 388 00:19:21,320 --> 00:19:25,700 Beraz, oraintxe bertan, list-- erakuslea gaude 389 00:19:25,700 --> 00:19:28,410 igaroz puntuak suntsitzeko 12ra. 390 00:19:28,410 --> 00:19:33,340 12 ez da null erakuslea, beraz, ez gara Zerrendako gainerako ezabatu behar. 391 00:19:33,340 --> 00:19:35,450 >> Zer da ezabatzen du inplikatutako gainerako gurekin? 392 00:19:35,450 --> 00:19:37,950 Beno, bat egiten dela esan nahi du deitzeko suntsitu, esanez 393 00:19:37,950 --> 00:19:42,060 15 hori hasieratik da zerrendan suntsitu nahi dugu gainerako. 394 00:19:42,060 --> 00:19:47,480 Eta beraz deia suntsitzeko 12 motatako da atxikitu. 395 00:19:47,480 --> 00:19:52,690 Honez ez izoztu du, zain deitu suntsitu 15, bere lana amaitzeko. 396 00:19:52,690 --> 00:19:56,280 >> Beno, 15 ez da null erakuslea, eta beraz, esan behar, eskubidea, 397 00:19:56,280 --> 00:19:58,450 bai, ezabatu zerrendako gainerako. 398 00:19:58,450 --> 00:20:00,760 Zerrendako gainerako zehar hasten 9etan, eta beraz, besterik ez dugu 399 00:20:00,760 --> 00:20:04,514 itxaron guztia ezabatu arte dagoela gauza, ondoren, itzuli eta niri ezabatzeko. 400 00:20:04,514 --> 00:20:06,680 Beno 9, esan nahi baita joan, Ez nago null erakuslea, 401 00:20:06,680 --> 00:20:09,020 beraz, ezabatu gainerako zerrendan hemendik. 402 00:20:09,020 --> 00:20:11,805 Eta beraz, saiatu eta suntsitu 13. 403 00:20:11,805 --> 00:20:15,550 13 dio, ez naiz null erakuslea, Gauza bera, Buck pasatzen da. 404 00:20:15,550 --> 00:20:17,930 10 ez da nulua erakuslea, 10 null erakuslea dauka, 405 00:20:17,930 --> 00:20:20,200 baina 10 ez bera da null oraintxe erakuslea, 406 00:20:20,200 --> 00:20:22,470 eta beraz, Buck gehiegi pasatzen da. 407 00:20:22,470 --> 00:20:25,560 >> Eta orain zerrendatu puntuak ez, hura Benetan some-- seinalatu litzateke 408 00:20:25,560 --> 00:20:28,710 leku gehiago izan nuen irudia ere bada, ausazko espazio batzuk seinalatu litzateke 409 00:20:28,710 --> 00:20:29,960 ez dugun dakit zer den. 410 00:20:29,960 --> 00:20:34,680 Da null erakuslea arren, zerrendan literalki orain ezarri balioak nulua da. 411 00:20:34,680 --> 00:20:36,820 Honez eskuineko kutxa gorri barruan seinalatuz. 412 00:20:36,820 --> 00:20:39,960 Null erakuslea erdietsi dugu, beraz, gelditu ahal izango dugu, eta egiten gaude. 413 00:20:39,960 --> 00:20:46,230 >> Eta beraz, fotograma morea dela da gaur egun dauden stack-- goian dagoela koadro aktiboan da, 414 00:20:46,230 --> 00:20:47,017 baina kitto. 415 00:20:47,017 --> 00:20:48,600 Null erakuslea izan dugu lortu ezean, gelditzeko. 416 00:20:48,600 --> 00:20:51,290 Ez dugu ezer egin, ez dugu Ezin askatzeko null erakuslea, 417 00:20:51,290 --> 00:20:55,070 ez genuen malloc edozein espazioa, eta, beraz, egiten ari gara. 418 00:20:55,070 --> 00:20:57,590 Beraz, funtzio marko suntsitu, eta guk 419 00:20:57,590 --> 00:21:00,930 resume-- jaso dugu non utzi dugun hurrengo altuenarekin, batez off bertan 420 00:21:00,930 --> 00:21:02,807 urdin iluna markoa hau da hemen. 421 00:21:02,807 --> 00:21:04,390 Beraz jasotzeko eskubidea non utzi dugun ditugu. 422 00:21:04,390 --> 00:21:06,598 Gainerako ezabatu egiten dugu Zerrenda dagoeneko, beraz, orain gaude 423 00:21:06,598 --> 00:21:08,000 Gaur egungo nodo askatzeko joan. 424 00:21:08,000 --> 00:21:12,920 Beraz, orain nodo hau askatu ahal izango dugu, eta orain, Nik funtzioa bukaerara iritsi ginen. 425 00:21:12,920 --> 00:21:16,810 Eta beraz, funtzio fotograma hori suntsitu, eta jaso dugu, bat argi urdina at. 426 00:21:16,810 --> 00:21:20,650 >> Beraz says-- dagoeneko done-- dut Zerrendako gainerako ezabatzen, beraz, 427 00:21:20,650 --> 00:21:23,140 uneko adabegiaren askatzeko. 428 00:21:23,140 --> 00:21:26,520 Eta orain, marko horia da pila gainean atzera. 429 00:21:26,520 --> 00:21:29,655 Eta beraz, ikusten duzun bezala, orain gaude Ezkerretik zerrendan suntsitzen dabil. 430 00:21:29,655 --> 00:21:33,710 431 00:21:33,710 --> 00:21:37,280 >> Zer gertatuko litzateke, ordea, ditugu gauzak egin izan balitu, okerreko bidea? 432 00:21:37,280 --> 00:21:39,410 Just like denean saiatu ginen elementu bat gehitzeko. 433 00:21:39,410 --> 00:21:41,909 Messed dugu katean, baldin bada guk ez dugu erakusleak konektatu 434 00:21:41,909 --> 00:21:44,690 zuzena izateko, bagenu besterik lehenengo elementu aske, 435 00:21:44,690 --> 00:21:47,420 libratuko dugu, besterik ez bada egin zerrenda-burua, gaur egun dugun 436 00:21:47,420 --> 00:21:49,642 to aipatzeko modurik ez dute Zerrendako gainerako zehar. 437 00:21:49,642 --> 00:21:51,350 Eta horrela izango genuke umezurtz utzi dena, 438 00:21:51,350 --> 00:21:53,880 izan genuen zer da memoria leak deitzen. 439 00:21:53,880 --> 00:21:56,800 Gogoratzen baduzu, gure bideo-tik memoria dinamikoa esleipena on, 440 00:21:56,800 --> 00:21:58,650 hori ez da gauza ona. 441 00:21:58,650 --> 00:22:00,810 >> Beraz, esan nuen ez hainbat eragiketa daude 442 00:22:00,810 --> 00:22:04,010 Lanera erabili behar ditugu modu eraginkorrean lotutako zerrenda. 443 00:22:04,010 --> 00:22:08,430 Eta konturatuko ahal izango duzu bat zehazten ez dut, a lotuta elementu bakar bat ezabatzea 444 00:22:08,430 --> 00:22:09,064 Zerrenda. 445 00:22:09,064 --> 00:22:10,980 Arrazoia, ez dut da da benetan mota 446 00:22:10,980 --> 00:22:14,360 delikatua nola ezabatu pentsatzen banaka batetik elementu bakar bat 447 00:22:14,360 --> 00:22:15,600 Zerrenda lotuta. 448 00:22:15,600 --> 00:22:19,950 Gainetik salto egiteko gai izan behar dugu zerrendan, zerbait bertan 449 00:22:19,950 --> 00:22:22,975 esan nahi lortu point-- dugu bat dugu nodo hau ezabatu nahi 450 00:22:22,975 --> 00:22:25,350 baina horren dadin dugu ez dute inolako informazio galduko, 451 00:22:25,350 --> 00:22:30,530 hau konexioa egin behar dugu hemen baino nodo, hemen. 452 00:22:30,530 --> 00:22:33,390 >> Beraz, ziurrenik oker hori egin nuen bisual ikuspuntutik. 453 00:22:33,390 --> 00:22:36,830 Oraindik, beraz, hasieran izan dugu gure zerrenda, aurrera jarraitu bidez ari gara, 454 00:22:36,830 --> 00:22:40,510 nodo hau ezabatu nahi dugu. 455 00:22:40,510 --> 00:22:43,440 Bada besterik ezabatu dugu, katearen hautsi dugu. 456 00:22:43,440 --> 00:22:45,950 Hementxe nodo hau beste guztia egiten dio erreferentzia, 457 00:22:45,950 --> 00:22:48,260 Hemen egindako aurrera kate daukalako. 458 00:22:48,260 --> 00:22:51,190 >> Beraz, zer da benetan egin behar dugu lortu ondoren dugu, puntu honetan, 459 00:22:51,190 --> 00:22:56,670 da atzera urratsa bat behar dugu, eta nodo hau konektatu baino node honetarako, 460 00:22:56,670 --> 00:22:58,590 beraz, ondoren, ezabatu ahal erdian bat egin. 461 00:22:58,590 --> 00:23:02,120 Baina banaka lotuta zerrendak ez atzeraka joateko modu bat eskaintzen digu. 462 00:23:02,120 --> 00:23:05,160 Beraz, bai mantentzeko behar dugu bi erakusleak, eta eraman 463 00:23:05,160 --> 00:23:09,527 off urrats moduko, atzetik beste, joaten gara edo puntu bat lortu 464 00:23:09,527 --> 00:23:11,110 eta, ondoren, bidaliko erakuslea beste bidez. 465 00:23:11,110 --> 00:23:13,150 Eta zuk ikusiko den bezala, hura narratsa pixka bat lor daiteke. 466 00:23:13,150 --> 00:23:15,360 Zorionez, ez dugu Beste modu batera hori konpontzeko, 467 00:23:15,360 --> 00:23:17,810 denean bi aldiz lotuta zerrendak buruz hitz egin dugu. 468 00:23:17,810 --> 00:23:20,720 >> Naiz Doug Lloyd, hau CS50 da. 469 00:23:20,720 --> 00:23:22,298