1 00:00:00,000 --> 00:00:08,250 2 00:00:08,250 --> 00:00:12,680 >> JASON Hirschhorn: Bonvenon ĉiuj al la Sekcio Sep. 3 00:00:12,680 --> 00:00:15,040 Ni estas en semajno sep de la kurso. 4 00:00:15,040 --> 00:00:18,440 Kaj ĉi tiu venonta ĵaŭdo estas Halloween tia mi estas 5 00:00:18,440 --> 00:00:21,420 alivestita kiel kukurbo. 6 00:00:21,420 --> 00:00:23,460 Mi ne povus klini super kaj surmetis miaj ŝuoj, do tio estas kial mi estas 7 00:00:23,460 --> 00:00:25,660 nur surhavis ŝtrumpetojn. 8 00:00:25,660 --> 00:00:29,220 Mi ankaŭ ne surhavis ion sub tion, do mi ne povas preni ĝin, se ĝi estas 9 00:00:29,220 --> 00:00:29,950 distri vin. 10 00:00:29,950 --> 00:00:31,860 Mi pardonpetas anticipe por tio. 11 00:00:31,860 --> 00:00:33,170 Vi ne bezonas imagi kio okazas. 12 00:00:33,170 --> 00:00:34,240 Mi surhavas boksistoj. 13 00:00:34,240 --> 00:00:36,170 Do estas tute bona. 14 00:00:36,170 --> 00:00:41,120 >> Mi havas pli longan rakonton pri kial mi estas vestita kiel kukurbo, sed mi tuj 15 00:00:41,120 --> 00:00:45,110 krom tio, ke por poste en ĉi tiu sekcio ĉar mi ne volas komenci. 16 00:00:45,110 --> 00:00:47,720 Ni havas multe da interesaj aferoj iri super tiu semajno. 17 00:00:47,720 --> 00:00:51,810 La plimulto de ili rilatas rekte al koncerna semajno da problemo aro, fuŝo. 18 00:00:51,810 --> 00:00:54,680 Ni tuj iros super ligita listoj kaj hash tabloj 19 00:00:54,680 --> 00:00:57,160 cxar la tuta sekcio. 20 00:00:57,160 --> 00:01:02,490 Mi metas ĉi listo ĉiun semajnon, listo de rimedojn por vin helpi vin kun 21 00:01:02,490 --> 00:01:04,120 la materialo je tiu kurso. 22 00:01:04,120 --> 00:01:07,600 Se je perdo aŭ se serĉas iun pliaj informoj, vizitu unu el 23 00:01:07,600 --> 00:01:09,930 tiuj rimedoj. 24 00:01:09,930 --> 00:01:14,530 >> Denove, pset6 estas fuŝo, ĉi semajno pset. 25 00:01:14,530 --> 00:01:17,690 Kaj ĝi ankaŭ instigas vin, kaj mi kuraĝigas vin, por uzi iun alian 26 00:01:17,690 --> 00:01:20,320 rimedoj specife por tiu pset. 27 00:01:20,320 --> 00:01:23,390 En aparta, la tri mi havas listita supre sur la ekrano - 28 00:01:23,390 --> 00:01:27,160 gdb, kiun ni estis familiara kun kaj estis uzante por tempo nun estas 29 00:01:27,160 --> 00:01:29,270 tuj estos tre utila ĉi tiu semajno. 30 00:01:29,270 --> 00:01:30,190 Do mi metis tiun ĉi tien. 31 00:01:30,190 --> 00:01:32,910 Sed kiam ajn vi laboras kun C, vi devus ĉiam esti uzanta gdb al 32 00:01:32,910 --> 00:01:34,430 elpurigi viajn programojn. 33 00:01:34,430 --> 00:01:36,660 Tiu semajno ankaŭ Valgrind. 34 00:01:36,660 --> 00:01:38,535 Ĉu iu scias kio Valgrind faras? 35 00:01:38,535 --> 00:01:42,184 36 00:01:42,184 --> 00:01:43,890 >> Spektantaro: ĝi kontrolas por memoro likoj? 37 00:01:43,890 --> 00:01:45,950 >> JASON Hirschhorn: Valgrind ĉekojn por memoro likas. 38 00:01:45,950 --> 00:01:49,970 Do se vi malloc ion en via programon, vi petante memoro. 39 00:01:49,970 --> 00:01:52,920 Je la fino de via programo, vi havas skribi libera je ĉio vi havas 40 00:01:52,920 --> 00:01:54,800 malloced doni la memoro dorso. 41 00:01:54,800 --> 00:01:58,420 Se vi ne skribas libera ĉe la fino kaj via programo venas al konkludo, 42 00:01:58,420 --> 00:02:00,000 Ĉio estos aŭtomate esti liberigita. 43 00:02:00,000 --> 00:02:02,340 Kaj por malgrandaj programoj, ĝi estas Ne ke granda traktadon. 44 00:02:02,340 --> 00:02:05,250 Sed se vi skribas pli longa kurado Programo kiu ne lasis, 45 00:02:05,250 --> 00:02:09,180 nepre, en kelkaj minutoj aux kelkaj sekundoj, do memoron filtras 46 00:02:09,180 --> 00:02:10,710 povas fariĝi grandegan multon. 47 00:02:10,710 --> 00:02:14,940 >> Do por pset6, La atendo estas, ke vi havos nula memoro likoj kun 48 00:02:14,940 --> 00:02:15,910 via programo. 49 00:02:15,910 --> 00:02:18,690 Por kontroli por memoro likoj, kuri Valgrind kaj gxi donos al vi iom bela 50 00:02:18,690 --> 00:02:21,190 eligo lasanta vi scias ĉu aŭ ne ĉiu estis libera. 51 00:02:21,190 --> 00:02:23,940 Ni devos praktiki kun ĝi poste hodiaŭ, mi esperas. 52 00:02:23,940 --> 00:02:25,790 >> Fine, la malsamoj komando. 53 00:02:25,790 --> 00:02:28,900 Vi uzas ion similan al tio en pset5 kun la peek ilo. 54 00:02:28,900 --> 00:02:30,780 Permesitaj vi rigardi interne. 55 00:02:30,780 --> 00:02:33,400 Vi ankaŭ uzata malsamoj, tro, po la problemo metita spec. 56 00:02:33,400 --> 00:02:35,950 Sed en permesis al vi komparu du dosierojn. 57 00:02:35,950 --> 00:02:39,180 Vi povus kompari la bitmap dosieron kaj info titolaj de bastono solvo kaj 58 00:02:39,180 --> 00:02:42,200 vian solvon en pset5 se vi elektis uzi ĝin. 59 00:02:42,200 --> 00:02:44,030 Klarigo ebligos vin fari tion, tiel. 60 00:02:44,030 --> 00:02:48,620 Vi povas kompari la korekta respondo por ĉi semajno problemon agordi vian respondon 61 00:02:48,620 --> 00:02:52,210 kaj vidi se ĝi regiono aŭ vidi kie la eraroj estas. 62 00:02:52,210 --> 00:02:55,870 >> Do tiuj estas tri bonajn ilojn kiuj Vi devus uzi por ĉi tiu semajno, kaj 63 00:02:55,870 --> 00:02:58,130 definitive kontroli viajn programo kun tiuj tri iloj 64 00:02:58,130 --> 00:03:00,520 antaŭ ĝiri it in 65 00:03:00,520 --> 00:03:04,650 Denove, kiel mi jam menciis, ĉiu semajno, se vi havas iun opinion pri mi - ambaŭ 66 00:03:04,650 --> 00:03:06,470 pozitiva kaj konstrua - 67 00:03:06,470 --> 00:03:09,930 bonvolu direkti al la retejo ĉe la malsupro de tiu diapozitivo 68 00:03:09,930 --> 00:03:11,270 kaj enigo ŝin tie. 69 00:03:11,270 --> 00:03:13,440 Mi vere dankas ajnan kaj ĉiuj sugestoj. 70 00:03:13,440 --> 00:03:17,360 Kaj se vi donos al mi specifaj aferoj kiuj Mi povas fari por plibonigi aŭ ke mi estas 71 00:03:17,360 --> 00:03:21,350 faras bone, ke vi ŝatus min al daŭrigi, mi prenos ke al koro 72 00:03:21,350 --> 00:03:24,040 vere provas malfacile aŭskulti al viaj sugestoj. 73 00:03:24,040 --> 00:03:27,720 Mi ne povas promesi ke mi faros ĉio, kvankam, kiel portanta 74 00:03:27,720 --> 00:03:30,700 Kukurbo kostumo ĉiusemajne. 75 00:03:30,700 --> 00:03:34,020 >> Do ni intencas pasigi la plejparto de sekcio, kiel mi menciis, parolante pri 76 00:03:34,020 --> 00:03:37,240 ligita lertaj kaj hash tabloj, kiuj estos rekte aplikebla al la 77 00:03:37,240 --> 00:03:38,780 problemo starigis ĉi tiun semajnon. 78 00:03:38,780 --> 00:03:42,580 Ligita lertaj ni transiru relative rapide, ĉar ni pasigis belan iom 79 00:03:42,580 --> 00:03:44,930 el tempo iras trans gxin en sekcio. 80 00:03:44,930 --> 00:03:48,680 Kaj tiel ni ricevos rekte en la kodiga problemojn ligita listoj. 81 00:03:48,680 --> 00:03:52,740 Kaj poste fine ni parolos pri hash tabloj kaj kiamaniere ili apliki al tiu 82 00:03:52,740 --> 00:03:55,280 semajno da problemo metita. 83 00:03:55,280 --> 00:03:57,560 >> Vi jam vidis tiun kodon antaŭe. 84 00:03:57,560 --> 00:04:02,730 Tio ĉi estas struct, kaj ĝi estas difinanta io nova nomita nodo. 85 00:04:02,730 --> 00:04:10,660 Kaj ene de nodo estas entjero ĝuste ĉi tie kaj tie estas montrilo por 86 00:04:10,660 --> 00:04:11,830 alia nodo. 87 00:04:11,830 --> 00:04:12,790 Ni jam vidis ĉi tion antaŭe. 88 00:04:12,790 --> 00:04:14,830 Ĉi tio estis venanta ĉe kelkaj semajnoj nun. 89 00:04:14,830 --> 00:04:18,680 Ĝi kombinas montriloj, kiun ni vizitis laborante kun, kaj structs, kiuj permesas 90 00:04:18,680 --> 00:04:22,079 ni kombini du malsamajn aferojn en unu datumtipo. 91 00:04:22,079 --> 00:04:24,830 92 00:04:24,830 --> 00:04:26,490 >> Estas multe okazas en la ekrano. 93 00:04:26,490 --> 00:04:30,220 Sed ĉiuj de ĝi devus esti relative familiara kun vi. 94 00:04:30,220 --> 00:04:33,810 Sur la unua linio, ni deklari novan nodon. 95 00:04:33,810 --> 00:04:41,650 Kaj tiam la interno de tiu nova nodo, mi starigis la entjero en tiu nodo al unu. 96 00:04:41,650 --> 00:04:44,950 Ni vidos en la sekvanta linio mi faras printf komando, sed mi grayed ekstere 97 00:04:44,950 --> 00:04:48,080 la printf komando ĉar la vere grava parto estas tiu linio tie - 98 00:04:48,080 --> 00:04:50,020 new_node.n. 99 00:04:50,020 --> 00:04:51,270 Kion signifas la skalara signifi? 100 00:04:51,270 --> 00:04:53,810 101 00:04:53,810 --> 00:04:57,240 >> Spektantaro: Iru al la nodo kaj taksi la n valoron por ĝi. 102 00:04:57,240 --> 00:04:58,370 >> JASON Hirschhorn: Tio estas ĝuste. 103 00:04:58,370 --> 00:05:03,300 Dot signifas aliri la n parto de tiu nova nodo. 104 00:05:03,300 --> 00:05:05,690 Ĉi sekvanta linio faras kion? 105 00:05:05,690 --> 00:05:16,140 106 00:05:16,140 --> 00:05:17,050 Michael. 107 00:05:17,050 --> 00:05:21,910 >> Spektantaro: Ĝi kreas alian nodon ke estos fingromontras la nova nodo. 108 00:05:21,910 --> 00:05:24,870 >> JASON Hirschhorn: do tio ne krei novajn nodo. 109 00:05:24,870 --> 00:05:26,120 Ĝi kreas kio? 110 00:05:26,120 --> 00:05:28,300 111 00:05:28,300 --> 00:05:29,300 >> Spektantaro: A montrilo. 112 00:05:29,300 --> 00:05:33,460 >> JASON Hirschhorn: A montrilon al nodo, kiel indikita de ĉi tiu nodo * tie. 113 00:05:33,460 --> 00:05:34,800 Do ĝi kreas montrilon al nodo. 114 00:05:34,800 --> 00:05:37,490 Kaj kio nodo estas tio indikante al, Michael? 115 00:05:37,490 --> 00:05:38,440 >> Spektantaro: Nova nodon? 116 00:05:38,440 --> 00:05:39,240 >> JASON Hirschhorn: Nova nodo. 117 00:05:39,240 --> 00:05:43,020 Kaj tio montras tie, ĉar ni jam donis al ĝi la adreson de nova nodo. 118 00:05:43,020 --> 00:05:45,820 Kaj nun en tiu linio ni vidas du malsamaj manieroj de 119 00:05:45,820 --> 00:05:46,910 esprimi la saman aferon. 120 00:05:46,910 --> 00:05:49,650 Kaj mi volis atentigi, kiel tiuj du aferoj estas la sama. 121 00:05:49,650 --> 00:05:54,740 En la unua linio, ni dereference la montrilo. 122 00:05:54,740 --> 00:05:55,830 Do ni iru al la nodo. 123 00:05:55,830 --> 00:05:56,830 Tion ĉi stelo signifas. 124 00:05:56,830 --> 00:05:57,930 Ni jam vidis ke antaŭ kun montriloj. 125 00:05:57,930 --> 00:05:59,280 Iru al tiu nodo. 126 00:05:59,280 --> 00:06:00,370 Tio estas en krampoj. 127 00:06:00,370 --> 00:06:04,610 Kaj poste aliri tra la skalara operatoro la n elemento de tiu nodo. 128 00:06:04,610 --> 00:06:08,430 >> Do tio estas preni la sintakso ni vidis ĝuste ĉi tie kaj nun 129 00:06:08,430 --> 00:06:09,670 uzante ĝin kun montrilo. 130 00:06:09,670 --> 00:06:13,730 Kompreneble, ĝi ricevas ia okupata se vi skribas tiujn parentezoj - 131 00:06:13,730 --> 00:06:14,940 ke stelon kaj tiu punkto. 132 00:06:14,940 --> 00:06:16,220 Ĝi alvenas iom okupita. 133 00:06:16,220 --> 00:06:18,500 Do ni havas kelkajn sintaksa sukero. 134 00:06:18,500 --> 00:06:19,920 Kaj ĉi tiu lineo ĝuste ĉi tie - 135 00:06:19,920 --> 00:06:21,170 ptr_node-> n. 136 00:06:21,170 --> 00:06:25,400 137 00:06:25,400 --> 00:06:28,000 Tio faras la saman ĝusta afero. 138 00:06:28,000 --> 00:06:30,840 Do tiuj du linioj de kodo estas ekvivalentaj kaj faros 139 00:06:30,840 --> 00:06:31,650 la ĝusta sama afero. 140 00:06:31,650 --> 00:06:34,210 >> Sed mi volis atentigi tiujn antaux ni iru plu tiel vi komprenu 141 00:06:34,210 --> 00:06:39,000 ke vere tion ĝuste ĉi tie estas nur sintaksa sukero por dereferencing 142 00:06:39,000 --> 00:06:44,200 la montrilon kaj tiam tuj la n parto de tiu struct. 143 00:06:44,200 --> 00:06:45,525 Demandojn pri tiu diapozitivo? 144 00:06:45,525 --> 00:06:53,020 145 00:06:53,020 --> 00:06:54,390 OK. 146 00:06:54,390 --> 00:06:58,510 >> Do ni tuj iru tra paro de operacioj kiujn vi povas fari sur 147 00:06:58,510 --> 00:06:59,730 ligita listoj. 148 00:06:59,730 --> 00:07:05,770 A ligillisto, recall, estas serio de nodoj kiuj indikas unu la alian. 149 00:07:05,770 --> 00:07:12,470 Kaj ni ĝenerale komenciĝas per montrilo nomita kapo, ĝenerale, ke antaŭ al 150 00:07:12,470 --> 00:07:14,040 la unua afero en la listo. 151 00:07:14,040 --> 00:07:18,900 Do en la unua linio tie, ni havas nian originalan L unua. 152 00:07:18,900 --> 00:07:21,370 Do tiu afero vi povas pensi - tio teksto ĝuste ĉi tie vi povas pensi pri kiel 153 00:07:21,370 --> 00:07:23,560 nur la montrilon ni stokis ie ke punktoj 154 00:07:23,560 --> 00:07:24,670 al la unua ero. 155 00:07:24,670 --> 00:07:27,500 Kaj en ĉi ligillisto ni havos kvar nodoj. 156 00:07:27,500 --> 00:07:29,530 Ĉiu nodo estas granda skatolo. 157 00:07:29,530 --> 00:07:33,430 La pli granda skatolo interne de la grandaj skatolo estas la entjera parto. 158 00:07:33,430 --> 00:07:37,400 Kaj tiam ni havas montrilon parto. 159 00:07:37,400 --> 00:07:39,630 >> Ĉi tiuj skatoloj ne estas allogataj al skalo ĉar kiom granda estas 160 00:07:39,630 --> 00:07:42,320 entjero en bajtoj? 161 00:07:42,320 --> 00:07:43,290 Kiom grandaj estas nun? 162 00:07:43,290 --> 00:07:43,710 Kvar. 163 00:07:43,710 --> 00:07:45,470 Kaj kiom granda estas montrilo? 164 00:07:45,470 --> 00:07:45,940 Kvar. 165 00:07:45,940 --> 00:07:48,180 Do vere, se ni devis desegni ĉi grimpi ambaŭ skatoloj 166 00:07:48,180 --> 00:07:49,690 estus la sama amplekso. 167 00:07:49,690 --> 00:07:52,870 En ĉi tiu kazo, ni volas enmeti io en la ligillisto. 168 00:07:52,870 --> 00:07:57,190 Do vi povas vidi cxi tie ni enmeto kvin Ni trairi tra la 169 00:07:57,190 --> 00:08:01,310 ligillisto, trovi kie kvin iras, kaj poste enigi ĝin. 170 00:08:01,310 --> 00:08:03,560 >> Ni rompu ke malsupren kaj iri iomete pli malrapide. 171 00:08:03,560 --> 00:08:05,510 Mi tuj atentigi al la estraro. 172 00:08:05,510 --> 00:08:09,930 Do ni havas nian nodo kvin kiu ni kreis en mallocs. 173 00:08:09,930 --> 00:08:11,190 Kial ĉiuj ridante? 174 00:08:11,190 --> 00:08:12,130 Nur ŝercas. 175 00:08:12,130 --> 00:08:13,310 OK. 176 00:08:13,310 --> 00:08:14,820 Do ni malloced kvin. 177 00:08:14,820 --> 00:08:16,310 Ni kreis ĉi tiun nodon ie ajn. 178 00:08:16,310 --> 00:08:17,740 Ni havas ĝin preta por foriri. 179 00:08:17,740 --> 00:08:20,130 Ni komencos je la fronto de nia listo per du. 180 00:08:20,130 --> 00:08:22,380 Kaj ni volas enmeti en ordo modo. 181 00:08:22,380 --> 00:08:27,550 >> Do, se ni vidas du kaj ni volas meti en kvin, kion ni faros kiam ni vidas 182 00:08:27,550 --> 00:08:28,800 io malpli ol ni? 183 00:08:28,800 --> 00:08:31,850 184 00:08:31,850 --> 00:08:33,520 Kio? 185 00:08:33,520 --> 00:08:36,750 Ni volas enmeti kvin en tiun ligillisto, subtenante ŝin ordo. 186 00:08:36,750 --> 00:08:37,520 Ni vidas numero du. 187 00:08:37,520 --> 00:08:38,769 Do kion ni faru? 188 00:08:38,769 --> 00:08:39,179 Marcus? 189 00:08:39,179 --> 00:08:40,679 >> Spektantaro: Alvoku la montrilo al la sekva nodo. 190 00:08:40,679 --> 00:08:42,530 >> JASON Hirschhorn: Kaj kial ni iru al la sekvanta unu? 191 00:08:42,530 --> 00:08:45,970 >> Spektantaro: Ĉar ĝi estas la sekvanta nodo en la listo. 192 00:08:45,970 --> 00:08:48,310 Kaj oni nur scias, ke aliaj situo. 193 00:08:48,310 --> 00:08:50,410 >> JASON Hirschhorn: Kaj kvin estas pli granda ol du, en aparta. 194 00:08:50,410 --> 00:08:51,600 Ĉar ni volas konservi ĝin ordo. 195 00:08:51,600 --> 00:08:52,730 Do kvin estas pli granda ol du. 196 00:08:52,730 --> 00:08:54,460 Do ni pluiru al la sekva. 197 00:08:54,460 --> 00:08:55,240 Kaj nun ni atingas kvar. 198 00:08:55,240 --> 00:08:56,490 Kaj kio okazas, kiam ni atingos kvar? 199 00:08:56,490 --> 00:08:58,920 200 00:08:58,920 --> 00:09:00,310 >> Kvin estas pli granda ol kvar. 201 00:09:00,310 --> 00:09:01,460 Do ni observu iras. 202 00:09:01,460 --> 00:09:03,110 Kaj nun ni estas en ses. 203 00:09:03,110 --> 00:09:04,360 Kaj kion ni vidas en ses? 204 00:09:04,360 --> 00:09:08,672 205 00:09:08,672 --> 00:09:09,608 Jes, Karolo? 206 00:09:09,608 --> 00:09:10,544 >> Spektantaro: Ses estas pli granda ol kvin. 207 00:09:10,544 --> 00:09:11,480 >> JASON Hirschhorn: Ses estas pli granda ol kvin. 208 00:09:11,480 --> 00:09:13,660 Do tiu estas kie ni volas enigi kvin. 209 00:09:13,660 --> 00:09:17,320 Tamen memoru, ke se ni havas nur unu montrilon tie - 210 00:09:17,320 --> 00:09:19,840 tio estas nia ekstra montrilon tio petolanta tra la listo. 211 00:09:19,840 --> 00:09:21,860 Kaj ni indikante ses. 212 00:09:21,860 --> 00:09:25,010 Ni miskalkulis kio venas antaux ses. 213 00:09:25,010 --> 00:09:29,130 Do, se ni volas enmeti ion en tiu listo subtenante ŝin ordo, ni 214 00:09:29,130 --> 00:09:31,630 verŝajne bezonos kiom da montriloj? 215 00:09:31,630 --> 00:09:32,280 >> Spektantaro: Du. 216 00:09:32,280 --> 00:09:32,920 >> JASON HIRSCHORN: Du. 217 00:09:32,920 --> 00:09:35,720 Unu por konservi trako de la nuna unu kaj unu por sekvigi 218 00:09:35,720 --> 00:09:37,050 la antaŭa. 219 00:09:37,050 --> 00:09:38,450 Ĉi tio estas nur unuope ligillisto. 220 00:09:38,450 --> 00:09:39,670 Ĝi nur iras unu direkto. 221 00:09:39,670 --> 00:09:43,220 Se ni havis duoble ligillisto, kie ĉio estis indikante la afero 222 00:09:43,220 --> 00:09:46,240 post tio kaj la afero antaux gxi, tiam ni ne bezonas fari tion. 223 00:09:46,240 --> 00:09:49,350 Sed en tiu kazo ni ne volis perdi spuro de kio venis antaŭ ni en kazo 224 00:09:49,350 --> 00:09:53,350 ni bezonas enmeti kvin ie en la mezo. 225 00:09:53,350 --> 00:09:55,610 Diru al ni enmeto naŭ. 226 00:09:55,610 --> 00:09:57,260 Kio okazus kiam ni akiris al ok? 227 00:09:57,260 --> 00:10:01,860 228 00:10:01,860 --> 00:10:04,880 >> Spektantaro: Vi devus su ke nula punkto. 229 00:10:04,880 --> 00:10:07,820 Anstataŭ havanta nula punkto vi havus aldoni elementon kaj tiam havi 230 00:10:07,820 --> 00:10:09,216 ĝi indikas naŭ. 231 00:10:09,216 --> 00:10:09,700 >> JASON HIRSCHORN: Ekzakte. 232 00:10:09,700 --> 00:10:10,600 Do ni ricevas ok. 233 00:10:10,600 --> 00:10:13,140 Ni atingas la finon de la listo ĉar ĉi notas al nula. 234 00:10:13,140 --> 00:10:16,330 Kaj nun, anstataŭ havi ĝin indikas nula ni havas ĝin marki niajn novajn nodo. 235 00:10:16,330 --> 00:10:19,870 Kaj ni starigis la montrilon en nia nova vertico al nula. 236 00:10:19,870 --> 00:10:21,445 Ĉu iu havas demandojn pri enmeto? 237 00:10:21,445 --> 00:10:25,620 238 00:10:25,620 --> 00:10:28,100 Kio, se mi ne zorgas pri plenumantaj listo ordo? 239 00:10:28,100 --> 00:10:31,701 240 00:10:31,701 --> 00:10:34,350 >> Spektantaro: Stick ĝin ĉe la komencante aŭ la finon. 241 00:10:34,350 --> 00:10:35,510 >> JASON HIRSCHORN: Stick ĝin ĉe la komenco aŭ la fino. 242 00:10:35,510 --> 00:10:37,276 Kiu el ni faru? 243 00:10:37,276 --> 00:10:38,770 Bobby? 244 00:10:38,770 --> 00:10:41,020 Kial la fino? 245 00:10:41,020 --> 00:10:43,250 >> Spektantaro: Ĉar la komenco Estas jam plenigitaj. 246 00:10:43,250 --> 00:10:43,575 >> JASON HIRSCHORN: okej. 247 00:10:43,575 --> 00:10:44,360 La komenco estas jam plena. 248 00:10:44,360 --> 00:10:46,090 Kiu volas argumenti kontraŭ Bobby. 249 00:10:46,090 --> 00:10:47,290 Marcus. 250 00:10:47,290 --> 00:10:48,910 >> Spektantaro: Bone vi verŝajne volas trae ĉe la komenco, ĉar 251 00:10:48,910 --> 00:10:50,140 alie, se vi metas ĝin ĉe Fine vi devus 252 00:10:50,140 --> 00:10:51,835 trairi la tutan liston. 253 00:10:51,835 --> 00:10:52,990 >> JASON HIRSCHORN: Ekzakte. 254 00:10:52,990 --> 00:10:57,970 Do, se ni pensas pri ekzekuto, la runtime de enmeto fine 255 00:10:57,970 --> 00:11:00,110 estus n, la amplekso de ĉi. 256 00:11:00,110 --> 00:11:03,080 Kio estas la granda O runtime de enmeto ĉe la komenco? 257 00:11:03,080 --> 00:11:04,170 Konstanta tempo. 258 00:11:04,170 --> 00:11:07,075 Do se vi ne zorgas pri subtenante io ordo, multe pli bone simple 259 00:11:07,075 --> 00:11:08,420 enmeti komence de ĉi tiu listo. 260 00:11:08,420 --> 00:11:10,320 Kaj kiu povas esti farita en konstanta tempo. 261 00:11:10,320 --> 00:11:13,900 262 00:11:13,900 --> 00:11:14,690 >> OK. 263 00:11:14,690 --> 00:11:18,870 Sekva operacio trovi, kion aliaj - ni verkitaj ĉi tiel serĉo. 264 00:11:18,870 --> 00:11:22,470 Sed ni tuj trarigardi la ligillisto por iu celo. 265 00:11:22,470 --> 00:11:26,000 Vi infanoj vidis kodo serĉu antaŭe en prelego. 266 00:11:26,000 --> 00:11:29,490 Sed ni ia ĝuste faris ĝin kun enigi, aŭ almenaŭ la enmeto 267 00:11:29,490 --> 00:11:30,580 io ordo. 268 00:11:30,580 --> 00:11:36,350 Vi aspektas tra, irante nodo per nodo, ĝis vi trovos la numero kiun vi estas 269 00:11:36,350 --> 00:11:37,780 serĉas. 270 00:11:37,780 --> 00:11:39,670 Kio okazas se oni atingas la finon de la listo? 271 00:11:39,670 --> 00:11:43,020 Diru Mi serĉas naux kaj mi atingi la finon de la listo. 272 00:11:43,020 --> 00:11:44,270 Kion ni faru? 273 00:11:44,270 --> 00:11:47,147 274 00:11:47,147 --> 00:11:48,110 >> Spektantaro: Reiru falsa? 275 00:11:48,110 --> 00:11:48,690 >> JASON HIRSCHORN: Reiru falsaj. 276 00:11:48,690 --> 00:11:49,960 Ni ne trovis ĝin. 277 00:11:49,960 --> 00:11:52,010 Se vi atingas la fino de la listo kaj vi ne trovos la nombro vi estas 278 00:11:52,010 --> 00:11:54,170 serĉas, ĝi ne estas en tie. 279 00:11:54,170 --> 00:11:55,420 Demandojn pri trovi? 280 00:11:55,420 --> 00:11:59,530 281 00:11:59,530 --> 00:12:04,615 Se tiu estis ordo listo, kion farus esti malsamaj por nia serĉado? 282 00:12:04,615 --> 00:12:07,370 283 00:12:07,370 --> 00:12:08,103 Jes. 284 00:12:08,103 --> 00:12:10,600 >> Spektantaro: ĝi trovus la unua valoro tio estas pli granda ol la 285 00:12:10,600 --> 00:12:12,390 vi serĉas kaj tiam revenu falsaj. 286 00:12:12,390 --> 00:12:13,190 >> JASON HIRSCHORN: Ekzakte. 287 00:12:13,190 --> 00:12:17,310 Do, se ĝi estas ordigitaj listo, se ni atingos iu kiu estas pli granda ol kion 288 00:12:17,310 --> 00:12:20,180 ni serĉas, ni ne bezonas teni tuj la fino de la listo. 289 00:12:20,180 --> 00:12:24,060 Ni povas je tiu punkto redoni malvera Ĉar ni ne tuj trovas ĝin. 290 00:12:24,060 --> 00:12:27,340 La demando estas nun, ni jam parolis pri teni ligita lertaj ordo, 291 00:12:27,340 --> 00:12:28,180 gardante ilin Unsorted. 292 00:12:28,180 --> 00:12:30,050 Tio okazas al esti io, kion vi estas probable tuj devos pensi 293 00:12:30,050 --> 00:12:34,240 kiam kodigo problemo starigis kvin se vi elekti hash tabelo kun apartaj 294 00:12:34,240 --> 00:12:36,360 ĉeni alproksimiĝo, kio Ni parolos pri poste. 295 00:12:36,360 --> 00:12:41,400 >> Sed ĉu ĝi valoras por gardi la listo ordo kaj tiam povos eble havas 296 00:12:41,400 --> 00:12:42,310 rapida serĉoj? 297 00:12:42,310 --> 00:12:47,220 Aŭ ĉu pli bone estas por rapide enigi io en konstanta runtime sed tiam 298 00:12:47,220 --> 00:12:48,430 havi plu serĉanta? 299 00:12:48,430 --> 00:12:52,250 Tio estas tradeoff rajton tie, ke vi akiri por decidi kio estas pli taŭga 300 00:12:52,250 --> 00:12:53,590 por via specifa problemo. 301 00:12:53,590 --> 00:12:56,680 Kaj ne estas nepre unu absolute dekstra respondo. 302 00:12:56,680 --> 00:12:59,520 Sed estas certe decidon vi ricevas fari, kaj probable bona defendi 303 00:12:59,520 --> 00:13:05,270 ke en, ekzemple, komento aŭ du kial vi elektis unu super la alia. 304 00:13:05,270 --> 00:13:06,490 >> Fine, forigado. 305 00:13:06,490 --> 00:13:08,100 Ni jam vidis forviŝo. 306 00:13:08,100 --> 00:13:09,180 Ĝi estas simila al serĉado. 307 00:13:09,180 --> 00:13:11,020 Ni serĉas la elemento. 308 00:13:11,020 --> 00:13:12,390 Diru ni provas forigi ses. 309 00:13:12,390 --> 00:13:14,450 Do ni trovas ses ĝuste ĉi tie. 310 00:13:14,450 --> 00:13:18,860 La afero, kiun ni devas certigi ni fari estas, ke kio estas montrante 311 00:13:18,860 --> 00:13:21,220 ses - kiel ni vidas en ŝtupo du ĉi tie - 312 00:13:21,220 --> 00:13:26,500 kion ajn'S indikante ses bezonojn salti ses nun kaj oni ŝanĝis al 313 00:13:26,500 --> 00:13:28,160 kion ajn ses notas al. 314 00:13:28,160 --> 00:13:31,410 Ni ne volas iam orfo la cetera nia listo per forgesante agordi ke 315 00:13:31,410 --> 00:13:32,960 antaŭa montrilo. 316 00:13:32,960 --> 00:13:35,960 Kaj poste kelkfoje, depende pri la programo, ili timige nur 317 00:13:35,960 --> 00:13:37,380 forviŝi ĉi tiu nodo tute. 318 00:13:37,380 --> 00:13:40,135 Kelkfoje vi volas reveni la valoro kiu estas en ĉi tiu nodo. 319 00:13:40,135 --> 00:13:42,490 Do jen kiel forviŝo verkoj. 320 00:13:42,490 --> 00:13:44,610 Demandojn pri forviŝi? 321 00:13:44,610 --> 00:13:51,280 322 00:13:51,280 --> 00:13:53,850 >> Spektantaro: Do, se vi tuj forviŝi tio, ĉu vi nur uzu liberan ĉar 323 00:13:53,850 --> 00:13:55,655 supozeble ĝi malloced? 324 00:13:55,655 --> 00:13:57,976 >> JASON HIRSCHORN: Se vi volas liberigi iu kiu estas ekzakte rajton kaj vi 325 00:13:57,976 --> 00:13:58,540 malloced ĝin. 326 00:13:58,540 --> 00:14:00,410 Diru ni volis reveni ĉi valoro. 327 00:14:00,410 --> 00:14:04,010 Ni povus reveni ses kaj poste liberaj tiu nodo kaj alvoko libera je tio. 328 00:14:04,010 --> 00:14:06,180 Aŭ ni havus verŝajne nomos liberaj unua kaj tiam revenu ses. 329 00:14:06,180 --> 00:14:11,210 330 00:14:11,210 --> 00:14:11,580 >> OK. 331 00:14:11,580 --> 00:14:14,010 Do ni pluiru al ekzerci kodigo. 332 00:14:14,010 --> 00:14:16,090 Ni tuj programi tri funkcioj. 333 00:14:16,090 --> 00:14:18,260 La unuan oni nomas insert_node. 334 00:14:18,260 --> 00:14:22,170 Do vi havas kodon, kiun mi retpoŝtis vin, kaj se vi rigardas ĉi poste 335 00:14:22,170 --> 00:14:28,020 vi povas aliri la kodon en linked.c sur la CS50 retejo. 336 00:14:28,020 --> 00:14:30,880 Sed en linked.c, tie estas kelkaj skeleto kodo kiu estas jam 337 00:14:30,880 --> 00:14:32,280 estis verkita por vi. 338 00:14:32,280 --> 00:14:34,560 Kaj tiam tie estas kelkaj funkcioj vi devas skribi. 339 00:14:34,560 --> 00:14:36,380 >> Unue ni tuj skribi insert_node. 340 00:14:36,380 --> 00:14:39,800 Kaj kion insert_node faras estas enmetas entjero. 341 00:14:39,800 --> 00:14:42,440 Kaj vi donas al la entjero en ligillisto. 342 00:14:42,440 --> 00:14:45,470 Kaj precipe, vi bezonos observi la listo ordo 343 00:14:45,470 --> 00:14:47,650 de malgranda ĝis granda. 344 00:14:47,650 --> 00:14:51,360 Ankaŭ, vi ne volas enigi ajnan duobligitaj. 345 00:14:51,360 --> 00:14:54,600 Fine, kiel vi povas vidi insert_node resendas bool. 346 00:14:54,600 --> 00:14:57,140 Do vi devus lasi la uzanton scias ĉu ĉu ne la insert estis 347 00:14:57,140 --> 00:15:00,800 prospera por redoni vera aŭ malvera. 348 00:15:00,800 --> 00:15:02,580 Je la fino de tiu programo - 349 00:15:02,580 --> 00:15:05,750 kaj por tiu ĉi etapo vi ne bezonas maltrankviligi liberigante nenion. 350 00:15:05,750 --> 00:15:11,790 Do ĉiuj vi faras estas prenante entjero kaj la enmeto ĝin en listo. 351 00:15:11,790 --> 00:15:13,890 >> Tio estas kion mi petas vin fari nun. 352 00:15:13,890 --> 00:15:17,620 Denove, en la linked.c, kion vi ĉiuj havas, estas la skeleto kodo. 353 00:15:17,620 --> 00:15:20,980 Kaj vi devus vidi al la fundo la specimena funkcio deklaro. 354 00:15:20,980 --> 00:15:27,390 Tamen, antaŭ ol iri en kodiga ĝi en C, mi ege rekomendas al vi iri 355 00:15:27,390 --> 00:15:29,330 tra la paŝojn ni vizitis praktiki ĉiun semajnon. 356 00:15:29,330 --> 00:15:31,100 Ni jam iris tra bildo de ĉi. 357 00:15:31,100 --> 00:15:33,380 Do vi devas havi iun komprenon pri kiel tio funkcias. 358 00:15:33,380 --> 00:15:36,590 Sed mi volas instigi vin skribi iuj _pseudocode_ antaux subnaĝado in 359 00:15:36,590 --> 00:15:38,640 Kaj ni tuj iru super _pseudocode_ kiel grupo. 360 00:15:38,640 --> 00:15:41,470 Kaj tiam tuj vi skribas vian _pseudocode_, kaj iam ni skribas niaj 361 00:15:41,470 --> 00:15:45,850 _pseudocode_ kiel grupo, vi povas iru en kodiga gxin en C. 362 00:15:45,850 --> 00:15:49,980 >> Kiel kapojn supren, la insert_node funkcio estas probable la trickiest de 363 00:15:49,980 --> 00:15:53,550 la tri ni tuj skribos, ĉar mi aldonis iujn pliajn limigojn al 364 00:15:53,550 --> 00:15:57,190 via programado, precipe tiu vi ne tuj enigi ajnan 365 00:15:57,190 --> 00:15:59,880 duobligitaj kaj ke la listo devus resti ordo. 366 00:15:59,880 --> 00:16:02,660 Do tiu estas ne-bagatela programo ke vi bezonas kodigi. 367 00:16:02,660 --> 00:16:06,470 Kaj kial vi ne prenas kvin ĝis sep minutoj nur por akiri laboras pri la 368 00:16:06,470 --> 00:16:07,640 _pseudocode_ kaj la kodon. 369 00:16:07,640 --> 00:16:09,460 Kaj tiam ni komencos irante kiel grupo. 370 00:16:09,460 --> 00:16:11,680 Denove, se vi havas demandojn simple levi vian manon kaj mi venos ĉirkaŭe. 371 00:16:11,680 --> 00:16:15,258 372 00:16:15,258 --> 00:16:16,508 . 373 00:16:16,508 --> 00:18:28,370 374 00:18:28,370 --> 00:18:30,120 >> Ni ankaŭ ĝenerale faras tiuj - 375 00:18:30,120 --> 00:18:32,070 aŭ mi ne eksplicite diras, ke vi povas labori kun homoj. 376 00:18:32,070 --> 00:18:36,500 Sed evidente, mi ege rekomendas al vi, se vi havas demandojn, peti al la 377 00:18:36,500 --> 00:18:39,840 najbaro sidis apud vi aŭ eĉ labori kun iu 378 00:18:39,840 --> 00:18:40,510 alie, se vi volas. 379 00:18:40,510 --> 00:18:42,600 Ĉi tio ne devas esti individua silenta aktiveco. 380 00:18:42,600 --> 00:20:11,770 381 00:20:11,770 --> 00:20:16,330 >> Ni komencu per skribi iun _pseudocode_ sur la tabulo. 382 00:20:16,330 --> 00:20:19,395 Kiu povas doni al mi la unuan linion de _pseudocode_ por tiu programo? 383 00:20:19,395 --> 00:20:22,240 384 00:20:22,240 --> 00:20:23,640 Por ĉi tiu funkcio, prefere - insert_node. 385 00:20:23,640 --> 00:20:29,960 386 00:20:29,960 --> 00:20:31,830 Alden? 387 00:20:31,830 --> 00:20:36,560 >> Spektantaro: Do ​​la unua afero, kiun mi faris estis krei novan sagon al la nodo kaj mi 388 00:20:36,560 --> 00:20:41,320 pravalorizita gxin indikante la sama afero, kiun listo estas indikante. 389 00:20:41,320 --> 00:20:41,550 >> JASON HIRSCHORN: okej. 390 00:20:41,550 --> 00:20:45,190 Do vi kreas novan montrilo al la listo, ne al la nodo. 391 00:20:45,190 --> 00:20:45,420 >> Spektantaro: Dekstra. 392 00:20:45,420 --> 00:20:46,150 Jes. 393 00:20:46,150 --> 00:20:46,540 >> JASON HIRSCHORN: okej. 394 00:20:46,540 --> 00:20:48,221 Kaj poste kion ni volas fari? 395 00:20:48,221 --> 00:20:49,163 Kio post tio? 396 00:20:49,163 --> 00:20:50,105 Kio pri la nodon? 397 00:20:50,105 --> 00:20:51,050 Ni ne havas nodo. 398 00:20:51,050 --> 00:20:52,300 Ni nur havas valoron. 399 00:20:52,300 --> 00:20:55,918 400 00:20:55,918 --> 00:20:58,890 Se ni volas enmeti nodo, kion ni faras bezonas fari unue, antaŭ ol ni povas eĉ 401 00:20:58,890 --> 00:20:59,980 pensas pri enmeto ĝi? 402 00:20:59,980 --> 00:21:00,820 >> Spektantaro: Ho, pardonon. 403 00:21:00,820 --> 00:21:02,160 ni bezonas malloc spaco por nodo. 404 00:21:02,160 --> 00:21:02,455 >> JASON HIRSCHORN: Bonege. 405 00:21:02,455 --> 00:21:03,210 Ni do - 406 00:21:03,210 --> 00:21:04,628 OK. 407 00:21:04,628 --> 00:21:06,065 Ne eblas atingi tiun altan. 408 00:21:06,065 --> 00:21:08,939 409 00:21:08,939 --> 00:21:09,897 OK. 410 00:21:09,897 --> 00:21:13,236 Ni tuj iras malsupren, kaj poste ni uzas du kolumnoj. 411 00:21:13,236 --> 00:21:13,732 Mi ne povas iri, ke - 412 00:21:13,732 --> 00:21:14,982 OK. 413 00:21:14,982 --> 00:21:23,660 414 00:21:23,660 --> 00:21:25,130 Krei novan nodon. 415 00:21:25,130 --> 00:21:29,380 Vi povas krei alian montrilon al listo aux vi povas simple uzi lerta kiel ĝi ekzistas. 416 00:21:29,380 --> 00:21:30,720 Vi ne vere bezonas tion fari. 417 00:21:30,720 --> 00:21:31,750 >> Do ni kreu novan nodon. 418 00:21:31,750 --> 00:21:32,010 Granda. 419 00:21:32,010 --> 00:21:32,840 Tio estas kion ni faru unue. 420 00:21:32,840 --> 00:21:34,870 Kio estas sekvanta? 421 00:21:34,870 --> 00:21:35,080 >> Spektantaro: Atendu. 422 00:21:35,080 --> 00:21:38,330 Ĉu ni krei novan nodon nun aŭ cxu ni atendu por certigi ke 423 00:21:38,330 --> 00:21:42,260 ne estas duobligitaj de la nodo sur la listo antaux ni krei ĝin? 424 00:21:42,260 --> 00:21:43,100 >> JASON HIRSCHORN: Bona demando. 425 00:21:43,100 --> 00:21:47,770 Ni opinias, ke por poste pro la plimulto de la tempo ni estos kreado 426 00:21:47,770 --> 00:21:48,220 nova nodo. 427 00:21:48,220 --> 00:21:49,110 Do ni observu ke tie. 428 00:21:49,110 --> 00:21:51,006 Sed tio estas bona demando. 429 00:21:51,006 --> 00:21:53,250 Se ni kreu ĝin kaj ni trovu duplikaton, kio devus 430 00:21:53,250 --> 00:21:54,490 ni faros antaux reveni? 431 00:21:54,490 --> 00:21:55,190 >> Spektantaro: Liberigu lin. 432 00:21:55,190 --> 00:21:55,470 >> JASON HIRSCHORN: Jes. 433 00:21:55,470 --> 00:21:56,500 Probable liberigi ĝin. 434 00:21:56,500 --> 00:21:56,760 OK. 435 00:21:56,760 --> 00:21:59,850 Kion ni faros post ni krei novan nodon? 436 00:21:59,850 --> 00:22:02,260 Annie? 437 00:22:02,260 --> 00:22:04,780 >> Spektantaro: ni metis la nombro en la nodo? 438 00:22:04,780 --> 00:22:05,140 >> JASON HIRSCHORN: Ekzakte. 439 00:22:05,140 --> 00:22:07,190 Ni metis la nombro - Ni malloc spaco. 440 00:22:07,190 --> 00:22:08,160 Mi tuj lasi tiun ĉiuj kiel unu linio. 441 00:22:08,160 --> 00:22:08,720 Sed vi pravas. 442 00:22:08,720 --> 00:22:10,305 Ni malloc spaco, kaj poste ni metas la nombro in 443 00:22:10,305 --> 00:22:12,585 Ni povas ecx starigu la montrilo parton de ĝi al nula. 444 00:22:12,585 --> 00:22:13,720 Tio estas ekzakte pravas. 445 00:22:13,720 --> 00:22:17,400 Kaj poste kio pri post tio? 446 00:22:17,400 --> 00:22:18,490 Ni eltiris ĉi tiun pentraĵon sur la tabulo. 447 00:22:18,490 --> 00:22:21,190 Do kion ni faru? 448 00:22:21,190 --> 00:22:22,680 >> Spektantaro: Ni iru tra la listo. 449 00:22:22,680 --> 00:22:23,930 >> JASON HIRSCHORN: Iru tra la listo. 450 00:22:23,930 --> 00:22:30,620 451 00:22:30,620 --> 00:22:31,100 OK. 452 00:22:31,100 --> 00:22:34,280 Kaj kion ni kontrolos je ĉiu vertico. 453 00:22:34,280 --> 00:22:35,955 Kurt, kion ni kontrolu cxar je ĉiu vertico? 454 00:22:35,955 --> 00:22:41,640 >> Spektantaro: Vidu, ĉu la n valoro de ke nodo estas pli granda ol la n valoro 455 00:22:41,640 --> 00:22:43,070 de nia nodo. 456 00:22:43,070 --> 00:22:43,340 >> JASON HIRSCHORN: okej. 457 00:22:43,340 --> 00:22:44,280 Mi tuj faros - 458 00:22:44,280 --> 00:22:45,855 yeah, OK. 459 00:22:45,855 --> 00:22:48,160 Do estas n - 460 00:22:48,160 --> 00:22:59,040 Mi intencis diri, se valoro estas pli granda ol tiu nodo, do kion ni faru? 461 00:22:59,040 --> 00:23:07,290 >> Spektantaro: Bone, tiam ni enŝovu la afero ĝuste antaŭ tio. 462 00:23:07,290 --> 00:23:07,970 >> JASON HIRSCHORN: okej. 463 00:23:07,970 --> 00:23:09,410 Do, se ĝi estas pli granda ol tio, do ni volas enmeti. 464 00:23:09,410 --> 00:23:14,010 Sed ni deziras enmeti ĝin ĝuste antaŭ ĉar ni ankaŭ devus esti 465 00:23:14,010 --> 00:23:16,070 konservanta trako, do, de kio estis antaŭe. 466 00:23:16,070 --> 00:23:22,690 Do enŝovu antaŭe. 467 00:23:22,690 --> 00:23:25,120 Do ni verŝajne maltrafis ion fruaj plu. 468 00:23:25,120 --> 00:23:27,770 Ni probable devas esti subtenante spuro de kio okazas. 469 00:23:27,770 --> 00:23:28,460 Sed ni devos reiri tien. 470 00:23:28,460 --> 00:23:30,160 Do kio valoro estas malpli ol? 471 00:23:30,160 --> 00:23:38,030 472 00:23:38,030 --> 00:23:39,710 Kurt, kion ni faros, se valoro estas malpli ol? 473 00:23:39,710 --> 00:23:43,000 >> Spektantaro: Do ​​vi nur plu iri krom se ĝi estas la lasta. 474 00:23:43,000 --> 00:23:43,550 >> JASON HIRSCHORN: Mi ŝatas tiun. 475 00:23:43,550 --> 00:23:44,800 Do iru al la sekva nodo. 476 00:23:44,800 --> 00:23:47,410 477 00:23:47,410 --> 00:23:48,930 Krom se ĝi estas la lasta - 478 00:23:48,930 --> 00:23:51,100 ni probable kontrolanta por ke en la terminoj de kondiĉo. 479 00:23:51,100 --> 00:23:54,870 Sed jes, proksima nodo. 480 00:23:54,870 --> 00:23:58,680 Kaj tio Fariĝas tro malalta, do ni havos movi tien. 481 00:23:58,680 --> 00:24:02,030 Sed se - 482 00:24:02,030 --> 00:24:03,280 povas everybody vidi ĉi tion? 483 00:24:03,280 --> 00:24:07,230 484 00:24:07,230 --> 00:24:11,610 Se ni estas egalaj, kion ni faros? 485 00:24:11,610 --> 00:24:15,740 Se la valoro ni provas enmeti estas egala al tiu nodo valoron? 486 00:24:15,740 --> 00:24:16,320 Jes? 487 00:24:16,320 --> 00:24:18,400 >> Spektantaro: [inaudibles]. 488 00:24:18,400 --> 00:24:18,850 >> JASON HIRSCHORN: Jes. 489 00:24:18,850 --> 00:24:19,290 Donita ĉi - 490 00:24:19,290 --> 00:24:20,090 Marcus pravas. 491 00:24:20,090 --> 00:24:21,330 Ni povis esti eble farita io malsama. 492 00:24:21,330 --> 00:24:25,360 Sed pro tio ke ni jam kreis ĝin, tie ĉi Ni devas liberiĝi kaj tiam revenu. 493 00:24:25,360 --> 00:24:26,774 Ho knabo. 494 00:24:26,774 --> 00:24:30,080 Ĉu tio estas bona? 495 00:24:30,080 --> 00:24:31,850 Kiel estas tiu? 496 00:24:31,850 --> 00:24:33,100 OK. 497 00:24:33,100 --> 00:24:35,360 498 00:24:35,360 --> 00:24:37,640 Liberaj kaj tiam kio ni reveni, [inaudibles]? 499 00:24:37,640 --> 00:24:41,330 500 00:24:41,330 --> 00:24:44,110 OK. 501 00:24:44,110 --> 00:24:45,360 Ĉu ni mankas io? 502 00:24:45,360 --> 00:24:53,500 503 00:24:53,500 --> 00:24:59,650 Do kie ni konservanta trako de la antaŭa nodo? 504 00:24:59,650 --> 00:25:02,370 >> Spektantaro: mi kredas ke estus iri post krei novan nodon. 505 00:25:02,370 --> 00:25:02,600 >> JASON HIRSCHORN: okej. 506 00:25:02,600 --> 00:25:03,940 Do komence ni devos probable - 507 00:25:03,940 --> 00:25:07,175 yeah, ni povas krei montrilon al nova nodo, kiel antaŭa nodo montrilon kaj 508 00:25:07,175 --> 00:25:09,600 kurento nodo montrilo. 509 00:25:09,600 --> 00:25:12,640 Do ni enmetu cxi tiu. 510 00:25:12,640 --> 00:25:15,610 511 00:25:15,610 --> 00:25:26,900 Krei aktuala kaj antaŭa montriloj al la nodoj. 512 00:25:26,900 --> 00:25:28,955 Sed kiam ni ĝustigus tiuj indikoj? 513 00:25:28,955 --> 00:25:30,205 Kie do oni faru tion en la kodo? 514 00:25:30,205 --> 00:25:33,830 515 00:25:33,830 --> 00:25:34,160 Jeff? 516 00:25:34,160 --> 00:25:35,170 >> Spektantaro: - valoro kondiĉoj? 517 00:25:35,170 --> 00:25:36,420 >> JASON HIRSCHORN: Kiu unu en aparta? 518 00:25:36,420 --> 00:25:39,862 519 00:25:39,862 --> 00:25:40,720 >> Spektantaro: mi simple konfuzis. 520 00:25:40,720 --> 00:25:44,200 Se valoro estas pli granda ol tiu nodo, Ĉu tio ne signifas, ke vi deziras iri 521 00:25:44,200 --> 00:25:45,320 al la sekva nodo? 522 00:25:45,320 --> 00:25:49,515 >> JASON Hirschhorn: Do, se nia valoro estas pli granda ol la valoro de ĉi tiu nodo. 523 00:25:49,515 --> 00:25:52,130 >> Spektantaro: Jes, tiam vi ŝatus voli iri pluen en la linio, ĉu ne? 524 00:25:52,130 --> 00:25:52,590 >> JASON Hirschhorn: Ĝuste. 525 00:25:52,590 --> 00:25:53,840 Do ni ne enmetu ĝin ĉi tie. 526 00:25:53,840 --> 00:25:58,430 527 00:25:58,430 --> 00:26:03,240 Se valoro estas malpli ol tiu nodo, tiam ni iru al la sekva nodo - aŭ poste ni 528 00:26:03,240 --> 00:26:03,835 enŝovu antaŭe. 529 00:26:03,835 --> 00:26:05,966 >> Spektantaro: Atendu, kio estas tio nodo kaj kiu estas valoro? 530 00:26:05,966 --> 00:26:08,510 531 00:26:08,510 --> 00:26:09,280 >> JASON Hirschhorn: Bona demando. 532 00:26:09,280 --> 00:26:13,260 Valoro por ĉi tiu funkcio tiu difino estas tio, kion ni donas. 533 00:26:13,260 --> 00:26:16,910 Do valoro estas la kvanto ni donis. 534 00:26:16,910 --> 00:26:21,120 Do se la valoro estas malpli ol tio nodo, ni bezonas tempon por enmeti. 535 00:26:21,120 --> 00:26:24,575 Se valoro estas pli granda ol tiu nodo, ni iru al la sekva nodo. 536 00:26:24,575 --> 00:26:26,790 Kaj reen al la originala demando, kvankam, kie - 537 00:26:26,790 --> 00:26:29,060 >> Spektantaro: Se valoro estas pli granda ol ĉi tiu nodo. 538 00:26:29,060 --> 00:26:30,310 >> JASON Hirschhorn: Kaj tiel Kion ni faros ĉi tie? 539 00:26:30,310 --> 00:26:36,790 540 00:26:36,790 --> 00:26:38,160 Dolĉa. 541 00:26:38,160 --> 00:26:38,860 Tio estas korekta. 542 00:26:38,860 --> 00:26:41,370 Mi simple verkos ĝisdatigo montriloj. 543 00:26:41,370 --> 00:26:44,010 Sed jes, kun la nuna vi devus aktualigi ĝin 544 00:26:44,010 --> 00:26:46,080 atentigi al la sekva. 545 00:26:46,080 --> 00:26:47,330 Ion alian ni mankas? 546 00:26:47,330 --> 00:26:52,710 547 00:26:52,710 --> 00:26:54,940 Do mi tuj tajpi ĉi kodigi en gedit. 548 00:26:54,940 --> 00:26:58,375 Kaj dum mi faras tion, vi povas havi paro minutojn pli labori pri kodigo 549 00:26:58,375 --> 00:28:19,240 tiu en C. 550 00:28:19,240 --> 00:28:20,940 >> Do mi devas eniro la _pseudocode_. 551 00:28:20,940 --> 00:28:22,940 Rapida noto antaŭ ol ni komencu. 552 00:28:22,940 --> 00:28:25,560 Ni eble ne povos tute fini ĉi en ĉiuj 553 00:28:25,560 --> 00:28:27,300 tri el tiuj funkcioj. 554 00:28:27,300 --> 00:28:30,630 Tie estas korekta solvojn al ili ke mi donos retmesaĝi al Vi infanoj 555 00:28:30,630 --> 00:28:33,730 post sekcio, kaj ĝi volas oni afiŝis sur CS50.net. 556 00:28:33,730 --> 00:28:35,640 Do mi ne instigas vin al iru rigardi la sekcioj. 557 00:28:35,640 --> 00:28:40,550 Mi kuraĝigas vin provi tiujn en via posedi, kaj poste uzi la la praktiko 558 00:28:40,550 --> 00:28:41,760 problemoj por kontroli viajn respondojn. 559 00:28:41,760 --> 00:28:47,070 Tiuj ĉiuj estas desegnita por proksime rilati al kaj aliĝas al kio 560 00:28:47,070 --> 00:28:48,400 vi devos fari pri la problemo aro. 561 00:28:48,400 --> 00:28:53,820 Do mi rekomendas al vi ekzerci ĉi sur via propra kaj poste uzi la kodon por 562 00:28:53,820 --> 00:28:54,660 kontroli viajn respondojn. 563 00:28:54,660 --> 00:28:57,060 Ĉar mi volis pluiri al hash tabloj en iu punkto de la sekcio. 564 00:28:57,060 --> 00:28:58,150 Do ni ne povus akiri per ĝi ĉiujn. 565 00:28:58,150 --> 00:28:59,960 Sed ni tion faros tiel ni povas nun. 566 00:28:59,960 --> 00:29:00,370 >> OK. 567 00:29:00,370 --> 00:29:01,960 Ni komencu. 568 00:29:01,960 --> 00:29:04,770 Asam, kial ni kreu novan nodon? 569 00:29:04,770 --> 00:29:06,810 >> Spektantaro: Vi struct *. 570 00:29:06,810 --> 00:29:09,640 >> JASON Hirschhorn: Do nin havi tiun ĉi tien. 571 00:29:09,640 --> 00:29:10,040 Ho, pardonon. 572 00:29:10,040 --> 00:29:13,530 Vi diris, struct *. 573 00:29:13,530 --> 00:29:17,260 >> Spektantaro: Kaj tiam [? speco?] nodo aŭ c nodo. 574 00:29:17,260 --> 00:29:17,780 >> JASON Hirschhorn: okej. 575 00:29:17,780 --> 00:29:19,740 Mi iras por voki lin new_node do ni povas resti konsekvenca. 576 00:29:19,740 --> 00:29:22,646 577 00:29:22,646 --> 00:29:33,180 >> Spektantaro: Kaj vi volas agordi ke al kapo, la unua nodo. 578 00:29:33,180 --> 00:29:33,580 >> JASON Hirschhorn: okej. 579 00:29:33,580 --> 00:29:37,290 Do nun tio indikus - tiel ĉi ne jam kreis novan nodon ankoraŭ. 580 00:29:37,290 --> 00:29:41,380 Tiu estas ĝuste montrante la unuan nodon en la listo. 581 00:29:41,380 --> 00:29:42,630 Kjel mi kreas novan nodon? 582 00:29:42,630 --> 00:29:45,490 583 00:29:45,490 --> 00:29:48,070 Se mi bezonas spacon por krei novan nodon. 584 00:29:48,070 --> 00:29:49,230 Malloc. 585 00:29:49,230 --> 00:29:51,710 Kaj kiom granda? 586 00:29:51,710 --> 00:30:00,390 >> Spektantaro: La grandeco de la struct. 587 00:30:00,390 --> 00:30:01,150 >> JASON Hirschhorn: La grandeco de la struct. 588 00:30:01,150 --> 00:30:02,400 Kaj kio estas la struct vokis? 589 00:30:02,400 --> 00:30:09,670 590 00:30:09,670 --> 00:30:09,840 >> Spektantaro: Nodo? 591 00:30:09,840 --> 00:30:11,640 >> JASON Hirschhorn: Nodo. 592 00:30:11,640 --> 00:30:17,640 Do malloc (sizeof (nodo)); donas al ni spacon. 593 00:30:17,640 --> 00:30:19,740 Kaj estas tiu linio - 594 00:30:19,740 --> 00:30:21,740 unu afero estas malĝusta pri ĉi tiu linio. 595 00:30:21,740 --> 00:30:24,430 Ĉu new_node puntero al struct? 596 00:30:24,430 --> 00:30:25,650 Tio estas ĝenerala nomo. 597 00:30:25,650 --> 00:30:26,520 Kio estas ĝi - 598 00:30:26,520 --> 00:30:27,450 nodo, ekzakte. 599 00:30:27,450 --> 00:30:29,340 Ĝi estas nodo *. 600 00:30:29,340 --> 00:30:33,010 Kaj kion ni faros tuj post ni malloc ion, Asán? 601 00:30:33,010 --> 00:30:34,476 Kio estas la unua aĵo kiun ni faras? 602 00:30:34,476 --> 00:30:38,850 603 00:30:38,850 --> 00:30:40,320 Kio, se ĝi ne funkcias? 604 00:30:40,320 --> 00:30:42,430 >> Spektantaro: Ho, kontrolu se ĝi antaŭ la nodon? 605 00:30:42,430 --> 00:30:43,310 >> JASON Hirschhorn: Ekzakte. 606 00:30:43,310 --> 00:30:46,750 Do se vi new_node egalas egaluloj nula, kion ni faros? 607 00:30:46,750 --> 00:30:51,650 608 00:30:51,650 --> 00:30:54,820 Ĉi resendas bool, ĉi tiu funkcio. 609 00:30:54,820 --> 00:30:57,760 Ekzakte. 610 00:30:57,760 --> 00:30:58,450 Aspektas bone. 611 00:30:58,450 --> 00:30:59,680 Io ajn aldoni tie? 612 00:30:59,680 --> 00:31:00,670 Ni devos aldoni tion al la fino. 613 00:31:00,670 --> 00:31:03,160 Sed kiu ĝis nun aspektas bone. 614 00:31:03,160 --> 00:31:06,170 Krei aktuala kaj antaŭa montriloj. 615 00:31:06,170 --> 00:31:08,650 Michael, kiel mi faru tion? 616 00:31:08,650 --> 00:31:12,810 >> Spektantaro: Vi havus fari nodon *. 617 00:31:12,810 --> 00:31:21,800 618 00:31:21,800 --> 00:31:25,502 Vi devus fari ne por new_node sed por la 619 00:31:25,502 --> 00:31:26,905 nodoj ni jam havas. 620 00:31:26,905 --> 00:31:27,230 >> JASON Hirschhorn: okej. 621 00:31:27,230 --> 00:31:29,255 Do la nuna nodo ni estas sur. 622 00:31:29,255 --> 00:31:30,505 Mi vokos ke curr. 623 00:31:30,505 --> 00:31:39,650 624 00:31:39,650 --> 00:31:39,770 Ĉiuj pravas. 625 00:31:39,770 --> 00:31:41,620 Ni decidis ni volas konservi du, ĉar ni bezonas scii 626 00:31:41,620 --> 00:31:42,870 kio estas antaŭ ĝi. 627 00:31:42,870 --> 00:31:45,770 628 00:31:45,770 --> 00:31:47,020 Kion ili get pravalorizita al? 629 00:31:47,020 --> 00:31:49,874 630 00:31:49,874 --> 00:31:54,180 >> Spektantaro: Ilia valoro en nia listo. 631 00:31:54,180 --> 00:31:58,090 >> JASON Hirschhorn: Do kio estas la unua afero en nia listo? 632 00:31:58,090 --> 00:32:04,050 Aŭ kiel ni scias, kie la komencante de nia listo estas? 633 00:32:04,050 --> 00:32:08,015 >> Spektantaro: Ĉu ne pasis en la funkcio? 634 00:32:08,015 --> 00:32:08,466 >> JASON Hirschhorn: Ĝuste. 635 00:32:08,466 --> 00:32:09,716 Ĝi estis aprobita en ĝuste ĉi tie. 636 00:32:09,716 --> 00:32:15,910 637 00:32:15,910 --> 00:32:18,980 Do, se ĝi estas transiris en la funkcio, la komenci de la listo, kion ni 638 00:32:18,980 --> 00:32:21,270 starigis nuna egalas? 639 00:32:21,270 --> 00:32:22,110 >> Spektantaro: Listo. 640 00:32:22,110 --> 00:32:22,900 >> JASON Hirschhorn: Listo. 641 00:32:22,900 --> 00:32:24,090 Tio estas ekzakte pravas. 642 00:32:24,090 --> 00:32:26,290 Nun ĝi havas la adreson de la komenco de nia listo. 643 00:32:26,290 --> 00:32:28,450 Kaj kio pri la antaŭaj? 644 00:32:28,450 --> 00:32:31,920 >> Spektantaro: Listo minus unu? 645 00:32:31,920 --> 00:32:32,690 >> JASON Hirschhorn: Estas nenion antaux gxi. 646 00:32:32,690 --> 00:32:34,580 Do kion ni povas fari por signifi nenion? 647 00:32:34,580 --> 00:32:35,050 >> Spektantaro: Nula. 648 00:32:35,050 --> 00:32:35,450 >> JASON Hirschhorn: Jes. 649 00:32:35,450 --> 00:32:37,950 Tio sonas kiel bona ideo. 650 00:32:37,950 --> 00:32:38,360 Perfekta. 651 00:32:38,360 --> 00:32:39,630 Dankon. 652 00:32:39,630 --> 00:32:42,850 Iru tra la listo. 653 00:32:42,850 --> 00:32:45,490 Konstantino, kiel longe ni iras iri tra la listo? 654 00:32:45,490 --> 00:32:49,010 >> Spektantaro: Ĝis Ni atingos nula. 655 00:32:49,010 --> 00:32:49,390 >> JASON Hirschhorn: okej. 656 00:32:49,390 --> 00:32:50,430 Do, se, dum, por buklo. 657 00:32:50,430 --> 00:32:52,200 Kion ni faras? 658 00:32:52,200 --> 00:32:53,320 >> Spektantaro: Eble por buklo? 659 00:32:53,320 --> 00:32:53,910 >> JASON Hirschhorn: Ni faru por buklo. 660 00:32:53,910 --> 00:32:55,870 OK. 661 00:32:55,870 --> 00:33:02,465 >> Spektantaro: Kaj ni diras por - 662 00:33:02,465 --> 00:33:09,764 663 00:33:09,764 --> 00:33:13,390 ĝis la aktuala montrilo estas ne egala al nula. 664 00:33:13,390 --> 00:33:19,160 >> JASON Hirschhorn: Do, se ni konas la kondiĉo, kiel oni povas skribi buklo 665 00:33:19,160 --> 00:33:21,740 bazita sur tiu kondiĉo. 666 00:33:21,740 --> 00:33:24,380 Kiajn loop devus ni uzi? 667 00:33:24,380 --> 00:33:25,260 >> Spektantaro: Dum. 668 00:33:25,260 --> 00:33:25,590 >> JASON Hirschhorn: Jes. 669 00:33:25,590 --> 00:33:27,130 Tio igas pli senco bazita for de tio, kion vi diris. 670 00:33:27,130 --> 00:33:29,430 Se ni nur volas iri en ni li farus nur scias tion, ĝi farus 671 00:33:29,430 --> 00:33:31,680 senco fari dum buklo. 672 00:33:31,680 --> 00:33:39,880 Dum aktuala ne egala nula, se valoro estas malpli ol tiu nodo. 673 00:33:39,880 --> 00:33:41,650 Akshar, donu al mi cxi tiun linion. 674 00:33:41,650 --> 00:33:48,810 675 00:33:48,810 --> 00:33:56,955 >> Spektantaro: Se nuna-> n n malpli ol valoro. 676 00:33:56,955 --> 00:34:00,170 677 00:34:00,170 --> 00:34:03,260 Aŭ inversigi tion. 678 00:34:03,260 --> 00:34:06,140 Switch ke krampo. 679 00:34:06,140 --> 00:34:06,620 >> JASON Hirschhorn: Pardonu. 680 00:34:06,620 --> 00:34:08,760 >> Spektantaro: Ŝanĝi la krampo. 681 00:34:08,760 --> 00:34:10,914 >> JASON Hirschhorn: Do, se ĝi estas pli granda ol valoro. 682 00:34:10,914 --> 00:34:18,719 683 00:34:18,719 --> 00:34:22,120 Ĉar tio estas konfuziga kun la komenti supre, mi faros tion. 684 00:34:22,120 --> 00:34:22,480 Sed jes. 685 00:34:22,480 --> 00:34:25,125 Se nia valoro estas malpli ol tio nodo, kion ni faros? 686 00:34:25,125 --> 00:34:25,540 Oh. 687 00:34:25,540 --> 00:34:26,710 Mi havas ĝin ĉi tie. 688 00:34:26,710 --> 00:34:27,960 Enŝovu antaŭe. 689 00:34:27,960 --> 00:34:32,080 690 00:34:32,080 --> 00:34:32,370 OK. 691 00:34:32,370 --> 00:34:33,933 Kiel ni faru tion? 692 00:34:33,933 --> 00:34:34,900 >> Spektantaro: Ĉu ĝi ankoraŭ min? 693 00:34:34,900 --> 00:34:36,150 >> JASON Hirschhorn: Jes. 694 00:34:36,150 --> 00:34:38,520 695 00:34:38,520 --> 00:34:39,770 >> Spektantaro: Vi - 696 00:34:39,770 --> 00:34:42,909 697 00:34:42,909 --> 00:34:44,159 new_node-> proksima. 698 00:34:44,159 --> 00:34:46,770 699 00:34:46,770 --> 00:34:50,163 >> JASON Hirschhorn: Do kio estas ke tuj egalas? 700 00:34:50,163 --> 00:34:52,070 >> Spektantaro: Ĝi okazas al egala fluo. 701 00:34:52,070 --> 00:34:53,889 >> JASON Hirschhorn: Ekzakte. 702 00:34:53,889 --> 00:34:55,730 Kaj tiel la alia - 703 00:34:55,730 --> 00:34:56,730 kion ajn ni bezonas ĝisdatigi? 704 00:34:56,730 --> 00:34:59,982 >> Spektantaro: Kontroli se pasinteco egalas nula. 705 00:34:59,982 --> 00:35:01,870 >> JASON Hirschhorn: Se Prev - 706 00:35:01,870 --> 00:35:03,730 do se prev egalas nula. 707 00:35:03,730 --> 00:35:05,990 >> Spektantaro: Tio signifas, ke ĝi okazas igi la kapo. 708 00:35:05,990 --> 00:35:06,780 >> JASON Hirschhorn: Tio signifas ĝi nun estas la kapo. 709 00:35:06,780 --> 00:35:07,620 Tial do, kion ni faros? 710 00:35:07,620 --> 00:35:12,510 >> Spektantaro: Ni faru kapo egalas new_node. 711 00:35:12,510 --> 00:35:16,690 >> JASON Hirschhorn: Kapo egalas new_node. 712 00:35:16,690 --> 00:35:20,540 Kaj kial estras ĉi tie, ne listo? 713 00:35:20,540 --> 00:35:24,940 >> Spektantaro: Pro kapo estas tutmonda variablo, kiu estas la starta loko. 714 00:35:24,940 --> 00:35:26,190 >> JASON Hirschhorn: Dolĉa. 715 00:35:26,190 --> 00:35:33,750 716 00:35:33,750 --> 00:35:34,170 OK. 717 00:35:34,170 --> 00:35:36,150 Kaj - 718 00:35:36,150 --> 00:35:53,796 >> Spektantaro: Do ​​vi ne alie prev-> sekvanta egalas new_node. 719 00:35:53,796 --> 00:35:55,080 Kaj tiam vi revenos vera. 720 00:35:55,080 --> 00:35:59,560 721 00:35:59,560 --> 00:36:02,700 >> JASON Hirschhorn: Kie do Ni starigis new_node fino? 722 00:36:02,700 --> 00:36:04,850 >> Spektantaro: mi volus, - 723 00:36:04,850 --> 00:36:06,180 Mi proponas ke je la komenco. 724 00:36:06,180 --> 00:36:07,430 >> JASON Hirschhorn: Do, kion linio? 725 00:36:07,430 --> 00:36:10,000 726 00:36:10,000 --> 00:36:12,598 >> Spektantaro: Post la se komunikaĵo kontrolanta se ĝi estas konata. 727 00:36:12,598 --> 00:36:13,057 >> JASON Hirschhorn: Ĝuste ĉi tie? 728 00:36:13,057 --> 00:36:18,335 >> Spektantaro: Mi volus fari new_node-> n egalas valoron. 729 00:36:18,335 --> 00:36:19,585 >> JASON Hirschhorn: Sonas bone. 730 00:36:19,585 --> 00:36:21,740 731 00:36:21,740 --> 00:36:25,090 Probable ĝi havas sencon - ni ne bezonas scii kion listo ni estas en 732 00:36:25,090 --> 00:36:26,280 ĉar ni nur kontraktanta kun listo. 733 00:36:26,280 --> 00:36:29,560 Do bonan funkcion deklaro por tio estas nur por forigi la 734 00:36:29,560 --> 00:36:34,360 tute kaj nur enmeti valoron en kapo. 735 00:36:34,360 --> 00:36:35,930 Ni eĉ ne bezonas scii kion listo ni estas in 736 00:36:35,930 --> 00:36:39,140 Sed mi gardos ĝin por nun kaj tiam ŝanĝu ĝin sur ĝisdatigi 737 00:36:39,140 --> 00:36:42,590 la diapozitivojn kaj kodo. 738 00:36:42,590 --> 00:36:44,980 Por ke aspektas bona por nun. 739 00:36:44,980 --> 00:36:46,560 Se valoro -, kiu povas fari ĉi tiu linio? 740 00:36:46,560 --> 00:36:47,810 Se - 741 00:36:47,810 --> 00:36:52,240 742 00:36:52,240 --> 00:36:53,840 Kion ni faros ĉi tie, Noa. 743 00:36:53,840 --> 00:36:57,890 744 00:36:57,890 --> 00:37:07,100 >> Spektantaro: Se valoro estas pli granda ol curr-> n - 745 00:37:07,100 --> 00:37:16,830 746 00:37:16,830 --> 00:37:18,240 >> JASON Hirschhorn: Kiel fari ni iru al la sekva nodo? 747 00:37:18,240 --> 00:37:27,760 748 00:37:27,760 --> 00:37:30,530 >> Spektantaro: Curr-> n estas egala al new_node. 749 00:37:30,530 --> 00:37:37,630 750 00:37:37,630 --> 00:37:39,195 >> JASON Hirschhorn: Do n estas Kiun parton de la struct? 751 00:37:39,195 --> 00:37:43,065 752 00:37:43,065 --> 00:37:46,020 La entjero. 753 00:37:46,020 --> 00:37:50,420 Kaj new_node estas montrilo al nodo. 754 00:37:50,420 --> 00:37:51,880 Do kio parto de curr ni aktualigi? 755 00:37:51,880 --> 00:38:03,900 756 00:38:03,900 --> 00:38:05,400 Se ne n, tiam kio estas la alia parto? 757 00:38:05,400 --> 00:38:21,680 758 00:38:21,680 --> 00:38:22,810 Noa, kio estas la alia parto. 759 00:38:22,810 --> 00:38:23,570 >> Spektantaro: Ho, proksima. 760 00:38:23,570 --> 00:38:25,645 >> JASON Hirschhorn: Venonta, ekzakte. 761 00:38:25,645 --> 00:38:26,410 Ekzakte. 762 00:38:26,410 --> 00:38:28,770 Sekva estas la dekstra. 763 00:38:28,770 --> 00:38:31,540 Kaj kion ajn ni bezonas ĝisdatigi, Noa? 764 00:38:31,540 --> 00:38:32,840 >> Spektantaro: La montriloj. 765 00:38:32,840 --> 00:38:34,840 >> JASON Hirschhorn: Tiel Ni ĝisdatigis aktualan. 766 00:38:34,840 --> 00:38:36,090 >> Spektantaro: Prev-> proksima. 767 00:38:36,090 --> 00:38:48,160 768 00:38:48,160 --> 00:38:49,410 >> JASON Hirschhorn: Jes. 769 00:38:49,410 --> 00:38:57,465 770 00:38:57,465 --> 00:38:58,370 OK, ni paŭzi. 771 00:38:58,370 --> 00:39:02,200 Kiu povas helpi al ni el ĉi tie? 772 00:39:02,200 --> 00:39:03,385 Manu, kion ni faru? 773 00:39:03,385 --> 00:39:05,615 >> Spektantaro: Vi havas por agordi gxi egalas al curr-> proksima. 774 00:39:05,615 --> 00:39:09,110 775 00:39:09,110 --> 00:39:11,630 Sed faru tion antaŭ la antaŭa linio. 776 00:39:11,630 --> 00:39:12,880 >> JASON Hirschhorn: okej. 777 00:39:12,880 --> 00:39:16,590 778 00:39:16,590 --> 00:39:18,260 Ĉu io alia? 779 00:39:18,260 --> 00:39:19,170 Akshar. 780 00:39:19,170 --> 00:39:22,680 >> Spektantaro: Mi ne opinias ke vi estas signifis ŝanĝi curr-> proksima. 781 00:39:22,680 --> 00:39:29,270 Mi kredas ke vi intencis fari curr egaluloj curr-> apud iri al la sekva nodo. 782 00:39:29,270 --> 00:39:30,500 >> JASON Hirschhorn: Do bedaŭras, kie? 783 00:39:30,500 --> 00:39:32,680 Sur kio linio? 784 00:39:32,680 --> 00:39:33,420 Ĉi tiu linio? 785 00:39:33,420 --> 00:39:33,750 >> Spektantaro: Jes. 786 00:39:33,750 --> 00:39:35,745 Faru curr egalas curr-> proksima. 787 00:39:35,745 --> 00:39:39,690 788 00:39:39,690 --> 00:39:43,360 >> JASON Hirschhorn: Do tio estas korekta ĉar nuna estas 789 00:39:43,360 --> 00:39:45,220 montrilon al nodo. 790 00:39:45,220 --> 00:39:48,550 Kaj ni volas atentigi al la sekva nodo de kio Fariĝas aktuale 791 00:39:48,550 --> 00:39:49,930 fingromontris. 792 00:39:49,930 --> 00:39:54,410 Curr mem havas proksiman. 793 00:39:54,410 --> 00:39:58,620 Sed se ni estis ĝisdatigi curr.next, ni estus ĝisdatigi la efektiva noto 794 00:39:58,620 --> 00:40:01,430 mem, ne tie, kie tio montrilo notis. 795 00:40:01,430 --> 00:40:02,680 Kio pri ĉi tiu linio, kvankam. 796 00:40:02,680 --> 00:40:05,160 797 00:40:05,160 --> 00:40:07,330 Avi? 798 00:40:07,330 --> 00:40:09,590 >> Spektantaro: Prev-> apud egalas curr. 799 00:40:09,590 --> 00:40:12,500 800 00:40:12,500 --> 00:40:19,440 >> JASON Hirschhorn: Do denove, se prev estas montrilon al nodo, prev-> proksima estas la 801 00:40:19,440 --> 00:40:23,020 reala montrilon en la nodo. 802 00:40:23,020 --> 00:40:27,190 Do tio estus ĝisdatigi a montrilon en nodo al curr. 803 00:40:27,190 --> 00:40:28,570 Ni ne volas aktualigi puntero en nodo. 804 00:40:28,570 --> 00:40:30,570 Ni volas aktualigi antaŭa. 805 00:40:30,570 --> 00:40:31,850 Do kiel ni faros tion? 806 00:40:31,850 --> 00:40:34,250 >> Spektantaro: Estus simple esti prev. 807 00:40:34,250 --> 00:40:34,565 >> JASON Hirschhorn: Ĝuste. 808 00:40:34,565 --> 00:40:35,560 Prev estas montrilo al nodo. 809 00:40:35,560 --> 00:40:38,750 Nun ni ŝanĝas ĝin al nova montrilon al nodo. 810 00:40:38,750 --> 00:40:40,830 OK Ni movi malsupren. 811 00:40:40,830 --> 00:40:41,940 Fine, tiu lasta kondiĉo. 812 00:40:41,940 --> 00:40:44,896 Jeff, kion ni faros ĉi tie? 813 00:40:44,896 --> 00:40:47,515 >> Spektantaro: Se valoro estas egala al curr-> n. 814 00:40:47,515 --> 00:40:51,030 815 00:40:51,030 --> 00:40:51,300 >> JASON Hirschhorn: Pardonu. 816 00:40:51,300 --> 00:40:52,372 Ho mia bono. 817 00:40:52,372 --> 00:40:54,330 Kio? 818 00:40:54,330 --> 00:40:55,580 Valoro == curr-> n. 819 00:40:55,580 --> 00:41:01,050 820 00:41:01,050 --> 00:41:02,300 Kion ni faru? 821 00:41:02,300 --> 00:41:04,760 822 00:41:04,760 --> 00:41:10,950 >> Spektantaro: Vi ŝatus liberigi nian new_node, kaj tiam vi povus redoni malvera. 823 00:41:10,950 --> 00:41:21,410 824 00:41:21,410 --> 00:41:23,460 >> JASON Hirschhorn: Jen kion ni skribis tiel multe. 825 00:41:23,460 --> 00:41:25,710 Ĉu iu havas ion aldoni antaux ni faru? 826 00:41:25,710 --> 00:41:35,460 827 00:41:35,460 --> 00:41:35,710 OK. 828 00:41:35,710 --> 00:41:36,960 Ni provu ĝin. 829 00:41:36,960 --> 00:41:44,180 830 00:41:44,180 --> 00:41:46,110 Kontrolo povu atingi la finon de ne-nula funkcio. 831 00:41:46,110 --> 00:41:48,310 Avi, kio okazas? 832 00:41:48,310 --> 00:41:51,380 >> Spektantaro: Cxu vi supozas meti reveno vera ekster la tempo buklo? 833 00:41:51,380 --> 00:41:53,900 834 00:41:53,900 --> 00:41:54,400 >> JASON Hirschhorn: Mi ne scias. 835 00:41:54,400 --> 00:41:54,780 Ĉu vi volas de mi? 836 00:41:54,780 --> 00:41:55,520 >> Spektantaro: Ne gravas. 837 00:41:55,520 --> 00:41:56,350 N-ro 838 00:41:56,350 --> 00:41:57,180 >> JASON Hirschhorn: Akshar? 839 00:41:57,180 --> 00:41:59,460 >> Spektantaro: Mi kredas ke vi intencis meti reveno falsaj fine 840 00:41:59,460 --> 00:42:02,230 de la dum-cirklon. 841 00:42:02,230 --> 00:42:03,270 >> JASON Hirschhorn: Do kie ĉu vi volas, ke ĝi iras? 842 00:42:03,270 --> 00:42:05,270 >> Spektantaro: Kiel ekstere dum buklo. 843 00:42:05,270 --> 00:42:08,800 Do se vi eliras dume buklo ke rimedoj ke vi jam atingis la finon kaj 844 00:42:08,800 --> 00:42:09,980 nenio okazis. 845 00:42:09,980 --> 00:42:10,410 >> JASON Hirschhorn: okej. 846 00:42:10,410 --> 00:42:12,340 Do, kion ni faros ĉi tie? 847 00:42:12,340 --> 00:42:13,702 >> Spektantaro: Vi revenos malvera tie ankaŭ. 848 00:42:13,702 --> 00:42:15,040 >> JASON Hirschhorn: Ho, ni faru ĝin en ambaŭ lokoj? 849 00:42:15,040 --> 00:42:15,650 >> Spektantaro: Jes. 850 00:42:15,650 --> 00:42:16,900 >> JASON Hirschhorn: okej. 851 00:42:16,900 --> 00:42:24,840 852 00:42:24,840 --> 00:42:26,160 Ĉu ni iru? 853 00:42:26,160 --> 00:42:26,980 Ho mia bono. 854 00:42:26,980 --> 00:42:27,290 Mi bedaŭras. 855 00:42:27,290 --> 00:42:28,480 Mi pardonpetas pro la ekrano. 856 00:42:28,480 --> 00:42:30,530 Ĝi estas speco de freaking surversxis sur nin. 857 00:42:30,530 --> 00:42:31,520 Do elektu eblo. 858 00:42:31,520 --> 00:42:35,260 Nulo, por la kodo, fermas la programon. 859 00:42:35,260 --> 00:42:36,700 Oni enmetas ion. 860 00:42:36,700 --> 00:42:37,990 Ni enmetu tri. 861 00:42:37,990 --> 00:42:42,900 862 00:42:42,900 --> 00:42:45,380 La insert ne sukcesis. 863 00:42:45,380 --> 00:42:46,500 Mi tuj presi. 864 00:42:46,500 --> 00:42:48,050 Mi ne havas ion. 865 00:42:48,050 --> 00:42:48,450 OK. 866 00:42:48,450 --> 00:42:50,250 Eble tio estis nur bonŝancaĵo. 867 00:42:50,250 --> 00:42:52,810 Enmetu unu. 868 00:42:52,810 --> 00:42:55,770 Ne sukcesas. 869 00:42:55,770 --> 00:42:57,470 OK. 870 00:42:57,470 --> 00:43:02,400 Ni kuras tra GDB vere rapide por kontroli kio okazas. 871 00:43:02,400 --> 00:43:06,055 >> Memoru gdb. / La nomon de via programo akiras nin en GDB. 872 00:43:06,055 --> 00:43:07,610 Ĉu tio estas multe manipuli? 873 00:43:07,610 --> 00:43:08,560 La brilantaj? 874 00:43:08,560 --> 00:43:10,400 Verŝajne. 875 00:43:10,400 --> 00:43:12,760 Fermu viajn okulojn, kaj prenu iom profunda spirojn se vi laciĝos 876 00:43:12,760 --> 00:43:13,580 rigardi ĝin. 877 00:43:13,580 --> 00:43:14,200 Mi estas en GDB. 878 00:43:14,200 --> 00:43:15,830 Kio estas la unua aĵo kiun mi faras en GDB? 879 00:43:15,830 --> 00:43:17,050 Ni devas eltrovi kio okazas ĉi tie. 880 00:43:17,050 --> 00:43:17,310 Ni vidu. 881 00:43:17,310 --> 00:43:21,650 Ni havas ses minutojn al figuro el kio okazas. 882 00:43:21,650 --> 00:43:22,900 Break ĉefa. 883 00:43:22,900 --> 00:43:25,950 884 00:43:25,950 --> 00:43:28,130 Kaj tiam kion mi faru? 885 00:43:28,130 --> 00:43:29,180 Karolo? 886 00:43:29,180 --> 00:43:31,060 Kuru. 887 00:43:31,060 --> 00:43:32,250 OK. 888 00:43:32,250 --> 00:43:34,160 Ni elektu eblo. 889 00:43:34,160 --> 00:43:36,330 Kaj kion tio N fari? 890 00:43:36,330 --> 00:43:38,480 Sekva. 891 00:43:38,480 --> 00:43:38,950 Jes. 892 00:43:38,950 --> 00:43:39,740 >> Spektantaro: Ĉu vi ne mencii - 893 00:43:39,740 --> 00:43:45,230 vi ne dirus, ke la kapo, tio estis pravalorizita al nula ĉe la komenco. 894 00:43:45,230 --> 00:43:47,140 Sed mi pensis, ke vi diris ke estis okej. 895 00:43:47,140 --> 00:43:50,040 896 00:43:50,040 --> 00:43:52,640 >> JASON Hirschhorn: Ni iru - ni rigardu en GDB, kaj poste ni reiros. 897 00:43:52,640 --> 00:43:54,910 Sed sonas kiel vi jam havas iuj ideoj pri kio okazas. 898 00:43:54,910 --> 00:43:58,340 Do ni volas enmeti ion. 899 00:43:58,340 --> 00:43:59,390 OK. 900 00:43:59,390 --> 00:44:00,150 Ni enmeti. 901 00:44:00,150 --> 00:44:00,770 Bonvolu entajpi int. 902 00:44:00,770 --> 00:44:01,990 Ni devos enmeti tri. 903 00:44:01,990 --> 00:44:03,000 Kaj tiam mi estas sur tiu linio. 904 00:44:03,000 --> 00:44:07,030 Kjel mi iras komenci debugging la insert sciata funkcio? 905 00:44:07,030 --> 00:44:08,280 Ho mia bono. 906 00:44:08,280 --> 00:44:10,990 907 00:44:10,990 --> 00:44:12,240 Tio estas tre. 908 00:44:12,240 --> 00:44:14,372 909 00:44:14,372 --> 00:44:16,445 Estas ke freaking multon? 910 00:44:16,445 --> 00:44:19,696 911 00:44:19,696 --> 00:44:21,680 >> Spektantaro: Ho, ĝi mortis. 912 00:44:21,680 --> 00:44:22,930 >> JASON Hirschhorn: mi ĵus tiris ĝin. 913 00:44:22,930 --> 00:44:27,364 914 00:44:27,364 --> 00:44:28,310 OK. 915 00:44:28,310 --> 00:44:29,560 >> Spektantaro: Eble ĝi estas la alia fino de la drato. 916 00:44:29,560 --> 00:44:37,000 917 00:44:37,000 --> 00:44:39,470 >> JASON Hirschhorn: Wow. 918 00:44:39,470 --> 00:44:42,330 Do la funda linio - 919 00:44:42,330 --> 00:44:43,470 Kion vi diris? 920 00:44:43,470 --> 00:44:46,040 >> Spektantaro: Mi diris la ironio de teknikaj malfacilaĵojn en ĉi tiu kategorio. 921 00:44:46,040 --> 00:44:46,410 >> JASON Hirschhorn: Mi scias. 922 00:44:46,410 --> 00:44:48,660 Se nur mi havis kontrolon super tiu parto. 923 00:44:48,660 --> 00:44:49,910 [Inaudibles] 924 00:44:49,910 --> 00:44:54,430 925 00:44:54,430 --> 00:44:55,400 Tio sonas bonege. 926 00:44:55,400 --> 00:44:58,680 Kial vi ne knaboj komenci pensi pri kion ni povus fari maljustecon, 927 00:44:58,680 --> 00:45:01,140 kaj ni estos denove en 90 sekundoj. 928 00:45:01,140 --> 00:46:18,160 929 00:46:18,160 --> 00:46:23,010 >> Avica, mi tuj demandas al vi kiel iri interne insert_node elpurigi ĝin. 930 00:46:23,010 --> 00:46:28,940 931 00:46:28,940 --> 00:46:31,460 Do tiu estas kie ni lastaj cxesis. 932 00:46:31,460 --> 00:46:35,110 Kjel mi iras interne insert_node, Avica, ekzameni kio okazas? 933 00:46:35,110 --> 00:46:36,360 Kio GDB ordonon? 934 00:46:36,360 --> 00:46:41,050 935 00:46:41,050 --> 00:46:42,390 Break ne prenu min enen. 936 00:46:42,390 --> 00:46:46,200 937 00:46:46,200 --> 00:46:47,130 Ĉu markizino scias? 938 00:46:47,130 --> 00:46:48,240 >> Spektantaro: Kio? 939 00:46:48,240 --> 00:46:51,780 >> JASON Hirschhorn: Kio GDB komando Mi uzas por iri ene ĉi funkcio? 940 00:46:51,780 --> 00:46:52,070 >> Spektantaro: Paŝu? 941 00:46:52,070 --> 00:46:55,140 >> JASON Hirschhorn: Paŝi tra S. Tio portas min enen. 942 00:46:55,140 --> 00:46:55,476 OK. 943 00:46:55,476 --> 00:46:58,040 New_node mallocing iun spacon. 944 00:46:58,040 --> 00:46:59,120 Ke ĉiuj similas liajn iras. 945 00:46:59,120 --> 00:47:00,370 Ekzamenu new_node. 946 00:47:00,370 --> 00:47:03,270 947 00:47:03,270 --> 00:47:05,410 Ĝi alvenis iuj memoro adreso. 948 00:47:05,410 --> 00:47:07,440 Ni kontrolu - 949 00:47:07,440 --> 00:47:08,500 ke estas ĉio ĝustas. 950 00:47:08,500 --> 00:47:12,220 Do ĉio ĉi tie ŝajnas laboros korekte. 951 00:47:12,220 --> 00:47:14,530 >> Spektantaro: Kio estas la diferenco inter P kaj ekrano? 952 00:47:14,530 --> 00:47:16,160 >> JASON Hirschhorn: P staras por presi. 953 00:47:16,160 --> 00:47:19,310 Kaj do vi demandas, kio estas la diferenco inter tio kaj tio? 954 00:47:19,310 --> 00:47:22,330 En ĉi tiu kazo, nenio. 955 00:47:22,330 --> 00:47:26,960 Sed ĝenerale estas iuj diferencoj. 956 00:47:26,960 --> 00:47:28,220 Kaj vi devas rigardi en la GDB manlibro. 957 00:47:28,220 --> 00:47:29,560 Sed en tiu kazo, nenio. 958 00:47:29,560 --> 00:47:31,460 Ni inklinas uzi print, kvankam, ĉar ni ne bezonas fari multe pli ol 959 00:47:31,460 --> 00:47:33,960 presi sola valoro. 960 00:47:33,960 --> 00:47:34,640 >> OK. 961 00:47:34,640 --> 00:47:40,300 Do ni estas sur linio 80 de nia kodo, opcio nodo * curr egala al listo. 962 00:47:40,300 --> 00:47:42,500 Ni presi curr. 963 00:47:42,500 --> 00:47:45,260 964 00:47:45,260 --> 00:47:46,840 Ĝi egalas listo. 965 00:47:46,840 --> 00:47:48,850 Dolĉa. 966 00:47:48,850 --> 00:47:49,340 Atendu. 967 00:47:49,340 --> 00:47:50,590 Ĝi egalas ion. 968 00:47:50,590 --> 00:47:53,680 969 00:47:53,680 --> 00:47:56,190 Tio ne ŝajnas pravas. 970 00:47:56,190 --> 00:47:56,840 Tie ni iru. 971 00:47:56,840 --> 00:47:59,470 Ĝi estas pro tio en GDB, dekstra, se ĝi estas la linio estas en gxi 972 00:47:59,470 --> 00:48:00,330 ne ekzekutitaj ankoraŭ. 973 00:48:00,330 --> 00:48:03,100 Do vi devas reale tajpi sekvanta ekzekuti la linion 974 00:48:03,100 --> 00:48:05,230 antaŭ vidi liajn rezultojn. 975 00:48:05,230 --> 00:48:06,680 Do tie estas ni. 976 00:48:06,680 --> 00:48:09,490 Ni nur ekzekutita tiun linion, antaŭa egalas nula. 977 00:48:09,490 --> 00:48:13,590 Do denove, se ni presi antaŭa ni ne vidas ion strangan. 978 00:48:13,590 --> 00:48:18,680 Sed se ni vere ekzekuti ke linio, tiam ni vidos 979 00:48:18,680 --> 00:48:20,380 ke tiu linio laboris. 980 00:48:20,380 --> 00:48:21,060 >> Do ni havas curr. 981 00:48:21,060 --> 00:48:23,180 Tiuj estas ambaŭ bonaj. 982 00:48:23,180 --> 00:48:24,010 Ĝuste? 983 00:48:24,010 --> 00:48:28,130 Nun ni estas sur tiu linio ĝuste ĉi tie. 984 00:48:28,130 --> 00:48:29,310 Dum curr ne egala nula. 985 00:48:29,310 --> 00:48:31,110 Nu, kion faras curr egala? 986 00:48:31,110 --> 00:48:32,450 Ni nur vidis ŝin egalis nula. 987 00:48:32,450 --> 00:48:33,210 Ni presas gxin. 988 00:48:33,210 --> 00:48:35,110 Mi tion printi ĝin denove. 989 00:48:35,110 --> 00:48:36,720 Do estas ke dum buklo tuj ekzekuti? 990 00:48:36,720 --> 00:48:37,270 >> Spektantaro: N-ro 991 00:48:37,270 --> 00:48:39,790 >> JASON Hirschhorn: Do kiam mi tajpis ke linio, vi vidas ni saltis tuta vojo 992 00:48:39,790 --> 00:48:41,390 malsupren al la fundo, revenu falsaj. 993 00:48:41,390 --> 00:48:44,520 Kaj tiam ni tuj revenos malvera kaj li revenu al nia programo kaj 994 00:48:44,520 --> 00:48:48,020 eventuale elprinti, kiel ni vidis, la insert ne sukcesis. 995 00:48:48,020 --> 00:48:51,010 Do, iu havas ajn ideojn pri kio Ni bezonas fari ripari tion? 996 00:48:51,010 --> 00:48:54,200 997 00:48:54,200 --> 00:48:57,570 Mi iras al atendu ĝis mi vidos paro de manoj iru. 998 00:48:57,570 --> 00:48:58,830 Ni ne ekzekutis ĉi. 999 00:48:58,830 --> 00:49:01,660 Rememoru, tiu estis la unua afero, kiun ni estis farantaj. 1000 00:49:01,660 --> 00:49:02,430 Mi ne volas fari paron. 1001 00:49:02,430 --> 00:49:03,670 Mi tuj faros kelkajn. 1002 00:49:03,670 --> 00:49:04,830 Ĉar paron signifas du. 1003 00:49:04,830 --> 00:49:07,620 Mi atendos pli ol du. 1004 00:49:07,620 --> 00:49:10,690 >> La unua inserción, curr, defaŭlte egalas nula. 1005 00:49:10,690 --> 00:49:14,050 Kaj tiu buklo nur ekzekutas se curr ne estas nula. 1006 00:49:14,050 --> 00:49:18,740 Do kiel mi povas preni ĉirkaŭ ĉi? 1007 00:49:18,740 --> 00:49:19,990 Mi vidas tri manoj. 1008 00:49:19,990 --> 00:49:28,490 1009 00:49:28,490 --> 00:49:29,780 Mi atendos pli ol tri. 1010 00:49:29,780 --> 00:49:33,460 1011 00:49:33,460 --> 00:49:35,940 Marko, kion vi opinias? 1012 00:49:35,940 --> 00:49:37,730 >> Spektantaro: Nu, se vi bezonas ĝin ekzekuti pli ol unufoje, vi nur 1013 00:49:37,730 --> 00:49:39,948 ŝanĝi ĝin al la do-while buklo. 1014 00:49:39,948 --> 00:49:41,250 >> JASON Hirschhorn: okej. 1015 00:49:41,250 --> 00:49:44,240 Ĉu tio solvos nia problemo, kvankam? 1016 00:49:44,240 --> 00:49:47,750 >> Spektantaro: En ĉi tiu kazo ne pro la fakto ke la listo estas malplena. 1017 00:49:47,750 --> 00:49:52,150 Tial do vi eble simple bezonas aldoni deklaro, ke se la buklo elirojn 1018 00:49:52,150 --> 00:49:55,312 tiam vi devos esti en la fino de la listo, en kiu punkto vin 1019 00:49:55,312 --> 00:49:56,562 povas simple enŝovi ĝin. 1020 00:49:56,562 --> 00:49:58,920 1021 00:49:58,920 --> 00:49:59,680 >> JASON Hirschhorn: Mi ŝatas tiun. 1022 00:49:59,680 --> 00:50:00,500 Tio faras sencon. 1023 00:50:00,500 --> 00:50:03,390 Se la buklo eliroj - 1024 00:50:03,390 --> 00:50:04,800 ĉar ĝi revenos falsaj tie. 1025 00:50:04,800 --> 00:50:08,220 Do se la buklo elirojn, tiam ni estas ĉe la finon de la listo, aŭ eble la 1026 00:50:08,220 --> 00:50:10,690 komenci de listo, se estas nenio en tio, kio estas la sama kiel la fino. 1027 00:50:10,690 --> 00:50:12,770 Do nun ni volas enmeti ion tie. 1028 00:50:12,770 --> 00:50:17,380 Do kiel tiu kodo rigardu, Marcus? 1029 00:50:17,380 --> 00:50:21,600 >> Spektantaro: Se vi jam havas la nodo malloced, vi povus simple diri 1030 00:50:21,600 --> 00:50:25,400 new_node-> apud egalas nula ĉar ĝi devas esti ĉe la fino. 1031 00:50:25,400 --> 00:50:27,510 Aŭ new_node-> apud egalas nula. 1032 00:50:27,510 --> 00:50:27,765 >> JASON Hirschhorn: okej. 1033 00:50:27,765 --> 00:50:28,190 Pardonon. 1034 00:50:28,190 --> 00:50:35,760 New_node-> apud egalas nula ĉar ni estas ĉe la fino. 1035 00:50:35,760 --> 00:50:36,460 Tio ne metu it in 1036 00:50:36,460 --> 00:50:37,710 Kiel oni metis gxin en la listo? 1037 00:50:37,710 --> 00:50:46,130 1038 00:50:46,130 --> 00:50:46,460 Ĝuste. 1039 00:50:46,460 --> 00:50:47,750 Tio estas nur opcio tio egala al. 1040 00:50:47,750 --> 00:50:50,940 Neniu kiel do ni efektive metu gxin en la listo? 1041 00:50:50,940 --> 00:50:54,170 Kio montrante la fino de la listo? 1042 00:50:54,170 --> 00:50:56,090 >> Spektantaro: Kapo. 1043 00:50:56,090 --> 00:50:57,566 >> JASON Hirschhorn: Pardonu? 1044 00:50:57,566 --> 00:50:59,440 >> Spektantaro: Kapo notas al la fino de la listo. 1045 00:50:59,440 --> 00:51:01,480 >> JASON Hirschhorn: Se nenio estas en la listo, kapo indikante la 1046 00:51:01,480 --> 00:51:04,170 fino de la listo. 1047 00:51:04,170 --> 00:51:06,920 Do tio devos labori por la unua inserción. 1048 00:51:06,920 --> 00:51:09,810 Kio pri se estas paro aĵoj en la listo? 1049 00:51:09,810 --> 00:51:12,470 Ol ni ne volas agordi estras egalas new_node. 1050 00:51:12,470 --> 00:51:13,790 Kion ni volas fari tie? 1051 00:51:13,790 --> 00:51:15,610 Jes? 1052 00:51:15,610 --> 00:51:16,860 Probable antaŭa. 1053 00:51:16,860 --> 00:51:23,560 1054 00:51:23,560 --> 00:51:24,810 Ĉu tio funkcias? 1055 00:51:24,810 --> 00:51:28,950 1056 00:51:28,950 --> 00:51:33,050 Memoru ke antaŭa estas ĝuste puntero al nodo. 1057 00:51:33,050 --> 00:51:34,770 Kaj antaŭaj estas loka variablo. 1058 00:51:34,770 --> 00:51:38,080 Do tiun linion starigos lokan variablon, antaŭa, egala al aŭ 1059 00:51:38,080 --> 00:51:39,380 montrante al tiu nova nodo. 1060 00:51:39,380 --> 00:51:41,500 Tio ne vere metis ĝin en nia listo, kvankam. 1061 00:51:41,500 --> 00:51:44,330 Kiel oni metis gxin en nia listo? 1062 00:51:44,330 --> 00:51:45,620 Akchar? 1063 00:51:45,620 --> 00:51:46,870 >> Spektantaro: Mi opinias, ke vi fari nuna-> proksima. 1064 00:51:46,870 --> 00:51:50,186 1065 00:51:50,186 --> 00:51:52,550 >> JASON Hirschhorn: okej. 1066 00:51:52,550 --> 00:51:54,010 curr-> proksima. 1067 00:51:54,010 --> 00:51:58,768 Do denove, la nura kialo ni malsupren ĉi tie estas, kion faras aktualan egala? 1068 00:51:58,768 --> 00:51:59,760 >> Spektantaro: Egalas nula. 1069 00:51:59,760 --> 00:52:01,790 >> JASON Hirschhorn: Kaj do, kion okazas se ni faru nula-> poste? 1070 00:52:01,790 --> 00:52:02,810 Kion ni tuj ricevas? 1071 00:52:02,810 --> 00:52:04,060 Ni ricevos segmentación kulpo. 1072 00:52:04,060 --> 00:52:06,600 1073 00:52:06,600 --> 00:52:08,880 >> Spektantaro: Do ​​curr egalas nula. 1074 00:52:08,880 --> 00:52:10,760 >> JASON Hirschhorn: Tio estas la sama aĵo kiel prev, kvankam, ĉar estas 1075 00:52:10,760 --> 00:52:12,820 loka variablo ni opcio egala al tiu nova nodo. 1076 00:52:12,820 --> 00:52:16,680 1077 00:52:16,680 --> 00:52:20,920 Ni reiru al nia bildo de enmeto de io. 1078 00:52:20,920 --> 00:52:25,500 Diru ni enmeto fine el la listo, do ĝuste ĉi tie. 1079 00:52:25,500 --> 00:52:30,010 Ni havas aktualan montrilon tio indikante nula kaj antaŭa punkto 1080 00:52:30,010 --> 00:52:32,800 tio estas indikante 8. 1081 00:52:32,800 --> 00:52:35,330 Do, kion ni bezonas ĝisdatigi, Avi? 1082 00:52:35,330 --> 00:52:36,680 >> Spektantaro: Antaŭa-> poste? 1083 00:52:36,680 --> 00:52:41,980 >> JASON Hirschhorn: Antaŭa-> proksima estas kion ni volas ĝisdatigi ĉar tio 1084 00:52:41,980 --> 00:52:44,960 efektive enŝovu ĝin ĉe la finon de la listo. 1085 00:52:44,960 --> 00:52:47,220 Ni havas ankoraŭ unu cimon, tamen, ke ni tuj kolizias. 1086 00:52:47,220 --> 00:52:50,090 Kio estas tio cimon? 1087 00:52:50,090 --> 00:52:50,790 Jes? 1088 00:52:50,790 --> 00:52:53,860 >> Spektantaro: Oni tuj revenos malvera en tiu kazo? 1089 00:52:53,860 --> 00:52:56,380 >> JASON Hirschhorn: Ho, ĉu estas tuj revenos falsaj. 1090 00:52:56,380 --> 00:52:57,430 Sed estas alia besteto. 1091 00:52:57,430 --> 00:52:58,930 Do ni bezonas meti en reveno vera. 1092 00:52:58,930 --> 00:53:01,370 >> Spektantaro: Ĉu antaŭa ankoraŭ egalaj nula ĉe la supro de la listo? 1093 00:53:01,370 --> 00:53:03,645 >> JASON Hirschhorn: Do antaŭa ankoraŭ egalas nula ĉe la komenco. 1094 00:53:03,645 --> 00:53:07,480 1095 00:53:07,480 --> 00:53:10,440 Do kiel ni akiros pli ol tio? 1096 00:53:10,440 --> 00:53:10,950 Jes? 1097 00:53:10,950 --> 00:53:15,280 >> Spektantaro: Mi opinias ke vi povas fari ĉekon antaŭ la tempo buklo vidi se ĝi estas 1098 00:53:15,280 --> 00:53:16,610 malplena listo. 1099 00:53:16,610 --> 00:53:17,000 >> JASON Hirschhorn: okej. 1100 00:53:17,000 --> 00:53:17,710 Do ni iru tien. 1101 00:53:17,710 --> 00:53:18,530 Ĉu ĉekon. 1102 00:53:18,530 --> 00:53:19,380 Se - 1103 00:53:19,380 --> 00:53:20,770 >> Spektantaro: Do, se la kapo egalas egalas nula. 1104 00:53:20,770 --> 00:53:24,300 1105 00:53:24,300 --> 00:53:26,320 >> JASON Hirschhorn: Se kapo egalas egalas nula - 1106 00:53:26,320 --> 00:53:27,790 kiuj diros al ni se ĝi estas malplena listo. 1107 00:53:27,790 --> 00:53:31,090 >> Spektantaro: Kaj tiam vi fari kapo egalas nova. 1108 00:53:31,090 --> 00:53:34,740 >> JASON Hirschhorn: Kapo egalas new_node? 1109 00:53:34,740 --> 00:53:35,730 Kaj kion ajn ni bezonas fari? 1110 00:53:35,730 --> 00:53:37,020 >> Spektantaro: Kaj tiam vi revenos vera. 1111 00:53:37,020 --> 00:53:37,535 >> JASON Hirschhorn: Ne tute. 1112 00:53:37,535 --> 00:53:38,785 Ni mankas unu paŝo. 1113 00:53:38,785 --> 00:53:41,590 1114 00:53:41,590 --> 00:53:43,710 >> Spektantaro: New_node apud havas atentigi al nula. 1115 00:53:43,710 --> 00:53:44,570 >> JASON Hirschhorn: Ekzakte, Alden. 1116 00:53:44,570 --> 00:53:46,600 Kaj tiam ni povas reveni vera. 1117 00:53:46,600 --> 00:53:47,560 OK. 1118 00:53:47,560 --> 00:53:51,630 Sed estas ankoraŭ bona ideo por fari tion fine de la listo, ĉu ne? 1119 00:53:51,630 --> 00:53:51,950 Ĉiuj pravas. 1120 00:53:51,950 --> 00:53:54,450 Ni ankoraŭ povus reale preni al la fino de la listo. 1121 00:53:54,450 --> 00:53:57,870 Tia estas tiu kodo delikata se ni estas ĉe la fino de la listo kaj tie estas kelkaj 1122 00:53:57,870 --> 00:53:59,120 aĵoj en la listo? 1123 00:53:59,120 --> 00:54:01,830 1124 00:54:01,830 --> 00:54:02,040 Ĝuste? 1125 00:54:02,040 --> 00:54:03,540 Ĉar ni ankoraŭ havas Marcus ideo. 1126 00:54:03,540 --> 00:54:06,870 Ni povus eliri ĉi buklo ĉar ni estas ĉe la fino de la listo. 1127 00:54:06,870 --> 00:54:09,308 Do cxu ni tamen volas ĉi kodigi suben ĉi tien? 1128 00:54:09,308 --> 00:54:10,520 >> Spektantaro: Jes. 1129 00:54:10,520 --> 00:54:11,000 >> JASON Hirschhorn: Jes. 1130 00:54:11,000 --> 00:54:14,190 Kaj kion ni bezonas por ŝanĝi ĉi tion al? 1131 00:54:14,190 --> 00:54:15,440 Vera. 1132 00:54:15,440 --> 00:54:19,580 1133 00:54:19,580 --> 00:54:21,640 Ĉu tiu sono bonaj al ĉiuj, ĝis nun? 1134 00:54:21,640 --> 00:54:22,420 Iu ajn havas ajnan - 1135 00:54:22,420 --> 00:54:23,480 Avi, ĉu vi havas ion por aldoni? 1136 00:54:23,480 --> 00:54:23,920 >> Spektantaro: N-ro 1137 00:54:23,920 --> 00:54:25,276 >> JASON Hirschhorn: okej. 1138 00:54:25,276 --> 00:54:27,010 Do ni jam faris kelkajn ŝanĝojn. 1139 00:54:27,010 --> 00:54:29,540 Ni faris ĉi ĉekon antaŭ ol ni eniris por malplena listo. 1140 00:54:29,540 --> 00:54:31,790 Do ni jam prizorgita malplenan liston. 1141 00:54:31,790 --> 00:54:35,500 Kaj tie ni zorgis pri enmeto de ion fine de la listo. 1142 00:54:35,500 --> 00:54:38,930 Do ĝi ŝajnas kiel ĉi tio dum buklo preno prizorgi aferojn en inter: 1143 00:54:38,930 --> 00:54:41,920 ie en la listo, se tie Estas aferoj en la listo. 1144 00:54:41,920 --> 00:54:42,280 >> OK. 1145 00:54:42,280 --> 00:54:44,310 Ni kuros ĉi programo denove. 1146 00:54:44,310 --> 00:54:50,170 1147 00:54:50,170 --> 00:54:50,755 Ne sukcesas. 1148 00:54:50,755 --> 00:54:52,190 >> Spektantaro: Vi ne faris ĝin. 1149 00:54:52,190 --> 00:54:53,940 >> JASON Hirschhorn: Oh, Mi ne faris ĝin. 1150 00:54:53,940 --> 00:54:56,250 Bona punkto, Michael. 1151 00:54:56,250 --> 00:54:57,500 Ni aldonu make ligitaj. 1152 00:54:57,500 --> 00:55:01,590 1153 00:55:01,590 --> 00:55:04,830 Linio 87 tie estas eraro. 1154 00:55:04,830 --> 00:55:05,420 Linio 87. 1155 00:55:05,420 --> 00:55:06,600 Alden, tiu estis la linio vi donis al mi. 1156 00:55:06,600 --> 00:55:08,962 Kio okazas? 1157 00:55:08,962 --> 00:55:10,710 >> Spektantaro: Ĝi devas esti nula. 1158 00:55:10,710 --> 00:55:11,000 >> JASON Hirschhorn: Bonege. 1159 00:55:11,000 --> 00:55:11,630 Ekzakte pravas. 1160 00:55:11,630 --> 00:55:13,290 Ĝi devus esti nula. 1161 00:55:13,290 --> 00:55:15,210 Ni faru denove. 1162 00:55:15,210 --> 00:55:17,220 Kompili. 1163 00:55:17,220 --> 00:55:17,890 OK. 1164 00:55:17,890 --> 00:55:19,400 Ni enmetu tri. 1165 00:55:19,400 --> 00:55:20,570 La insert sukcesis. 1166 00:55:20,570 --> 00:55:21,660 Ni presas gxin. 1167 00:55:21,660 --> 00:55:23,590 Ho, se nur ni povus kontroli. 1168 00:55:23,590 --> 00:55:25,500 Sed ni ne faris la presi funkcio ankoraŭ. 1169 00:55:25,500 --> 00:55:27,840 Ni eniros ion alian. 1170 00:55:27,840 --> 00:55:29,090 Kion ni eniri? 1171 00:55:29,090 --> 00:55:31,120 1172 00:55:31,120 --> 00:55:31,940 >> Spektantaro: Sep. 1173 00:55:31,940 --> 00:55:33,340 >> JASON Hirschhorn: Sep? 1174 00:55:33,340 --> 00:55:34,590 >> Spektantaro: Jes. 1175 00:55:34,590 --> 00:55:38,680 1176 00:55:38,680 --> 00:55:39,780 >> JASON Hirschhorn: Ni havas seg kulpo. 1177 00:55:39,780 --> 00:55:43,760 Do ni havas unu, sed ni klare ne povas akiri du. 1178 00:55:43,760 --> 00:55:45,690 Ĝi estas 5:07. 1179 00:55:45,690 --> 00:55:48,370 Do ni povus elpurigi ĉi por tri minutoj. 1180 00:55:48,370 --> 00:55:51,240 Sed mi tuj forlasos nin ĉi tie kaj pluiru al hash tabloj. 1181 00:55:51,240 --> 00:55:54,290 Sed denove, la respondoj por tiu kodo Mi retposxtu gxin al vi en iom. 1182 00:55:54,290 --> 00:55:55,440 Ni estas tre proksime al ĝi. 1183 00:55:55,440 --> 00:55:58,300 Mi tre kuraĝigas vin elkompreni kio okazas ĉi tie kaj korektu ĝin. 1184 00:55:58,300 --> 00:56:02,400 Do mi devos retmesaĝi al vi tiun kodon kiel bone plus la solvo - 1185 00:56:02,400 --> 00:56:03,670 probable la solvo poste. 1186 00:56:03,670 --> 00:56:05,110 Unue tiu kodo. 1187 00:56:05,110 --> 00:56:08,290 >> La alia afero, kiun mi volas fari antaŭ ol ni fino estas ni ne liberigis nenion. 1188 00:56:08,290 --> 00:56:10,370 Do mi volas montri al vi, kion Valgrind aspektas. 1189 00:56:10,370 --> 00:56:14,310 Se ni kuras Valgrind landlimoj en nia programo,. / ligitaj. 1190 00:56:14,310 --> 00:56:22,540 Denove, laŭ ĉi tiu diapozitivo, ni devus kuri Valgrind kun iu tipo de 1191 00:56:22,540 --> 00:56:26,410 eblo, en tiu kazo - Liko-ĉeko = plena. 1192 00:56:26,410 --> 00:56:27,660 Do ni skribu Valgrind - Liko-ĉeko = plena. 1193 00:56:27,660 --> 00:56:31,910 1194 00:56:31,910 --> 00:56:35,080 Do tiu kuros Valgrind en nia programo. 1195 00:56:35,080 --> 00:56:37,000 Kaj nun la programo efektive funkcias. 1196 00:56:37,000 --> 00:56:40,190 Do ni tuj kuri ĝin nur kiel antaŭe, metis ion in 1197 00:56:40,190 --> 00:56:40,830 Mi tuj metos en tri. 1198 00:56:40,830 --> 00:56:41,790 Tio funkcias. 1199 00:56:41,790 --> 00:56:43,202 Mi ne tuj provi meti en ion alie ĉar ni tuj 1200 00:56:43,202 --> 00:56:44,710 akiri seg malvera en tiu kazo. 1201 00:56:44,710 --> 00:56:46,700 Do mi simple tuj rezignis. 1202 00:56:46,700 --> 00:56:50,160 >> Kaj nun vi vidos ĉi tie filtri kaj amason resumon. 1203 00:56:50,160 --> 00:56:52,310 Tiuj estas la bonajn aferojn, kiujn vi volas kontroli. 1204 00:56:52,310 --> 00:56:56,780 Do la havaĵon resumo - ĝi diras, en uzo ĉe eliro - ok bitokoj en unu bloko. 1205 00:56:56,780 --> 00:56:58,370 Tiu bloko estas la nodo ni malloced. 1206 00:56:58,370 --> 00:57:02,230 Michael, vi diris antaŭ nodo estas ok pikoj ĉar ĝi havas la entjero 1207 00:57:02,230 --> 00:57:02,680 kaj la montrilo. 1208 00:57:02,680 --> 00:57:04,550 Do jen nia nodo. 1209 00:57:04,550 --> 00:57:08,170 Kaj tiam ĝi diras, ke ni uzis malloc sep fojojn, kaj ni liberigitaj 1210 00:57:08,170 --> 00:57:08,940 io ses fojojn. 1211 00:57:08,940 --> 00:57:13,680 Sed ni neniam nomis libera, do mi ne havas ideo, kio estas tiu parolas pri. 1212 00:57:13,680 --> 00:57:18,490 >> Sed sufiĉas diri ke kiam via programo kuras, malloc estas nomata 1213 00:57:18,490 --> 00:57:20,330 en kelkaj aliaj lokoj, ke ni ne bezonas zorgi pri. 1214 00:57:20,330 --> 00:57:22,460 Do malloc probable nomata en kelkaj lokoj. 1215 00:57:22,460 --> 00:57:24,480 Ni ne bezonas zorgi kie. 1216 00:57:24,480 --> 00:57:26,240 Sed tio estas vere nin. 1217 00:57:26,240 --> 00:57:27,380 Tiu unua linio estas ni. 1218 00:57:27,380 --> 00:57:28,320 Ni lasis ke bloko. 1219 00:57:28,320 --> 00:57:30,330 Kaj vi povas vidi, ke tie en la liko resumon. 1220 00:57:30,330 --> 00:57:31,950 Ankoraŭ atingebla - 1221 00:57:31,950 --> 00:57:32,930 ok bitokoj en unu bloko. 1222 00:57:32,930 --> 00:57:34,100 Tio signifas, ke memoro - 1223 00:57:34,100 --> 00:57:35,730 ni filtris ke memoro. 1224 00:57:35,730 --> 00:57:37,570 Definitive perdita - 1225 00:57:37,570 --> 00:57:38,770 io estas perdita por ĉiam. 1226 00:57:38,770 --> 00:57:40,590 Ĝenerale, oni ne faros vidi ion tie. 1227 00:57:40,590 --> 00:57:44,780 Ankoraŭ atingebla estas ĝenerale kie vi vidos tion, kie vi volas 1228 00:57:44,780 --> 00:57:48,900 rigardi por vidi kion kodo devus vin liberigis sed vi forgesis liberigi. 1229 00:57:48,900 --> 00:57:53,170 >> Kaj tiam se tiu ne estis la kazo, se ni agis liberaj ĉio, 1230 00:57:53,170 --> 00:57:54,360 ni povas kontroli tion. 1231 00:57:54,360 --> 00:57:57,330 Ni nur ruli la programon ne metante en nenion. 1232 00:57:57,330 --> 00:57:59,800 Vi vidos cxi tie malsupre en uzo ĉe eliro - 1233 00:57:59,800 --> 00:58:01,310 nulo bitokoj en nulo blokoj. 1234 00:58:01,310 --> 00:58:06,310 Tio signifas ke ni havis nenion lasis kiam tiu programo ĝi eliris. 1235 00:58:06,310 --> 00:58:12,090 Do antaŭ ol sin en pset6, kuri Valgrind kaj certigi vin ne devas 1236 00:58:12,090 --> 00:58:15,310 neniu memoro filtras en via programo. 1237 00:58:15,310 --> 00:58:17,910 Se vi havas demandojn kun Valgrind, bonvolu atingi eksteren. 1238 00:58:17,910 --> 00:58:18,700 Sed ĉi tiu estas kiel vi uzas ĝin. 1239 00:58:18,700 --> 00:58:20,890 Tre simpla - vidu, se vi havas en uzo ĉe eliro - 1240 00:58:20,890 --> 00:58:22,270 neniu bitokoj en ajna blokoj. 1241 00:58:22,270 --> 00:58:27,890 1242 00:58:27,890 --> 00:58:29,580 >> Do ni laboris sur insert nodo. 1243 00:58:29,580 --> 00:58:33,840 Mi havis du aliajn funkciojn tie - presi nodoj kaj libera nodoj. 1244 00:58:33,840 --> 00:58:37,780 Denove, tiuj estas funkcioj, kiuj estas tuj estos bona por vi por ekzerci 1245 00:58:37,780 --> 00:58:40,990 ĉar ili helpos vin ne nur kun tiuj specimeno ekzercoj sed ankaŭ 1246 00:58:40,990 --> 00:58:42,180 sur la problemo metita. 1247 00:58:42,180 --> 00:58:44,230 Ili mapi je belaj mallarĝe aferoj vi tuj devas fari en la 1248 00:58:44,230 --> 00:58:45,010 problemo metita. 1249 00:58:45,010 --> 00:58:47,640 Sed mi volas certigi ni tuŝas al ĉio. 1250 00:58:47,640 --> 00:58:50,400 Kaj hash tabloj estas ankaŭ grava por kion ni faras en sekcio ĉi 1251 00:58:50,400 --> 00:58:51,980 semajno - aŭ en la problemo aro. 1252 00:58:51,980 --> 00:58:55,200 >> Do ni iras fini la sekcio parolante pri hash tabloj. 1253 00:58:55,200 --> 00:58:58,140 Se vi rimarkos mi faris iom hash tablo. 1254 00:58:58,140 --> 00:59:00,020 Tio ne estas kio ni parolas pri, tamen. 1255 00:59:00,020 --> 00:59:03,540 Ni parolas pri malsamaj tipo de hash tabloj. 1256 00:59:03,540 --> 00:59:07,300 Kaj en sia kerno, kradon tablo estas nenio pli ol 1257 00:59:07,300 --> 00:59:08,860 tabelo plus hash funkcio. 1258 00:59:08,860 --> 00:59:11,150 Ni tuj parolos por iom simple certigi ĉiuj komprenas kia 1259 00:59:11,150 --> 00:59:12,110 krada funkcio estas. 1260 00:59:12,110 --> 00:59:15,420 Kaj mi diras al vi nun, ke ĝi estas nenio pli ol du aferoj - 1261 00:59:15,420 --> 00:59:18,590 tabelo kaj hash funkcio. 1262 00:59:18,590 --> 00:59:20,716 Kaj jen estas la paŝoj tra kion tio funkcias. 1263 00:59:20,716 --> 00:59:31,560 1264 00:59:31,560 --> 00:59:32,810 >> Estas nia tabelo. 1265 00:59:32,810 --> 00:59:38,460 1266 00:59:38,460 --> 00:59:39,460 Tie estas nia funkcio. 1267 00:59:39,460 --> 00:59:43,180 En aparta, kradaj funkcioj bezonas fari kelkajn aferojn kun tiu. 1268 00:59:43,180 --> 00:59:45,040 Mi iras por paroli specifically pri tiu problemo metita. 1269 00:59:45,040 --> 00:59:46,450 Ĝi estas verŝajne tuj preni en ĉeno. 1270 00:59:46,450 --> 00:59:50,570 1271 00:59:50,570 --> 00:59:51,770 Kaj kio ĝi tuj revenos? 1272 00:59:51,770 --> 00:59:52,640 Kio datumtipo? 1273 00:59:52,640 --> 00:59:54,260 Alden? 1274 00:59:54,260 --> 00:59:55,760 Viaj hash funkcio reveni? 1275 00:59:55,760 --> 00:59:58,760 Entjero. 1276 00:59:58,760 --> 01:00:01,700 Do tio estas kion la hash tablo konsistas - 1277 01:00:01,700 --> 01:00:05,430 tablon en la formo de tabelo kaj hash funkcio. 1278 01:00:05,430 --> 01:00:06,010 Kiel ĝi funkcias? 1279 01:00:06,010 --> 01:00:07,300 Ĝi funkcias en tri ŝtupoj. 1280 01:00:07,300 --> 01:00:08,740 Ni donu al ĝi ŝlosilo. 1281 01:00:08,740 --> 01:00:11,470 En ĉi tiu kazo, ni donos al gxi ĉenon. 1282 01:00:11,470 --> 01:00:18,140 Ni nomas la krada funkcio po paŝo unu sur la ŝlosilon kaj ni preni valoron. 1283 01:00:18,140 --> 01:00:20,310 >> Specife, ni diros, ni preni entjero. 1284 01:00:20,310 --> 01:00:25,630 Ke entjero, estas tre specifa limoj por kion tio entjero povas esti. 1285 01:00:25,630 --> 01:00:28,880 En ĉi tiu ekzemplo, niaj tabelo estas de amplekso tri. 1286 01:00:28,880 --> 01:00:32,330 Do kio nombroj povas ke entjero estu. 1287 01:00:32,330 --> 01:00:35,970 Kio estas la gamo de validaj valoroj por ke entjero, la reveno tipo de ĉi tiu 1288 01:00:35,970 --> 01:00:37,220 hash funkcio? 1289 01:00:37,220 --> 01:00:40,440 1290 01:00:40,440 --> 01:00:42,110 Nulo, unu kaj du. 1291 01:00:42,110 --> 01:00:46,060 La punkto de la krada funkcio estas eltrovi la lokon en la tabelo 1292 01:00:46,060 --> 01:00:47,790 kie nia ŝlosilo tuj. 1293 01:00:47,790 --> 01:00:51,290 Estas nur tri eblaj lokoj tie - 1294 01:00:51,290 --> 01:00:52,130 nulo, unu, aŭ du. 1295 01:00:52,130 --> 01:00:55,360 Do tiu funkcio bonan revenon nulo, unu, aŭ du. 1296 01:00:55,360 --> 01:00:58,740 Kelkaj valida indice en ĉi tiu tabelo. 1297 01:00:58,740 --> 01:01:02,770 >> Kaj tiam depende kie denove, vi povas vidi tie tabelo malfermita 1298 01:01:02,770 --> 01:01:03,730 heligas la valoro. 1299 01:01:03,730 --> 01:01:05,800 Tie estas kie ni metas la ŝlosilon. 1300 01:01:05,800 --> 01:01:11,280 Do ni ĵetu en la kukurbo, ni eliru nulo. 1301 01:01:11,280 --> 01:01:15,540 Ĉe tabelo krampo 0, ni metis kukurbo. 1302 01:01:15,540 --> 01:01:21,070 Ni ĵetu en katoj, ni eliru tiu. 1303 01:01:21,070 --> 01:01:24,110 Ni metis katon je unu. 1304 01:01:24,110 --> 01:01:25,480 Ni metis en araneo. 1305 01:01:25,480 --> 01:01:26,710 Ni eliros du. 1306 01:01:26,710 --> 01:01:30,200 Ni metis araneo at tabelo krampo du. 1307 01:01:30,200 --> 01:01:32,300 Estus tiel bela, se laboris kiel tio. 1308 01:01:32,300 --> 01:01:35,570 Sed bedaŭrinde, kiel ni vidos, ĝi estas iom pli komplika. 1309 01:01:35,570 --> 01:01:37,570 >> Antaŭ ni alvenos tien, ajna demandoj pri tiu baza 1310 01:01:37,570 --> 01:01:38,820 preparo de hash tablo? 1311 01:01:38,820 --> 01:01:49,050 1312 01:01:49,050 --> 01:01:51,940 Tiu estas bildo de akurate kion ni metis sur la tabulo. 1313 01:01:51,940 --> 01:01:55,420 Sed ĉar ni tiris ĝin sur la tabulo, mi Ne tuj eniru en lin plu. 1314 01:01:55,420 --> 01:02:00,430 Esence klavoj, la magio de nigra skatolo - aŭ en tiu kazo, kreko skatolo - de 1315 01:02:00,430 --> 01:02:02,410 hash funkcio metas ilin en rubujoj. 1316 01:02:02,410 --> 01:02:04,690 Kaj en ĉi tiu ekzemplo ni estas ne meti la nomon. 1317 01:02:04,690 --> 01:02:07,880 Ni metas la asociita telefono numeron de la nomo en la rubujon. 1318 01:02:07,880 --> 01:02:10,430 Sed vi povus tre bone nur metu la nomon en la rubujon. 1319 01:02:10,430 --> 01:02:12,950 >> Tiu estas nur bildo de kio Ni tiris sur la tabulo. 1320 01:02:12,950 --> 01:02:14,460 Ni havas potencialon kaptiloj, kvankam. 1321 01:02:14,460 --> 01:02:17,470 Kaj ekzistas du en aparta diapozitiva, kiun mi volas iri super. 1322 01:02:17,470 --> 01:02:20,230 La unua estas proksimume kradon funkcio. 1323 01:02:20,230 --> 01:02:22,620 Do mi demandis al la demando, kion faras bonan hash funkcio? 1324 01:02:22,620 --> 01:02:24,220 Mi donas du respondojn. 1325 01:02:24,220 --> 01:02:26,630 La unua estas, ke ĝi estas determina. 1326 01:02:26,630 --> 01:02:29,660 En la kunteksto de kradaj funkcioj, kion tio signifas? 1327 01:02:29,660 --> 01:02:37,840 1328 01:02:37,840 --> 01:02:39,282 Jes? 1329 01:02:39,282 --> 01:02:42,850 >> Spektantaro: Ĝi povas trovi la indekso en konstanta tempo? 1330 01:02:42,850 --> 01:02:43,810 >> JASON Hirschhorn: Tio ne estas kion tio signifas. 1331 01:02:43,810 --> 01:02:44,725 Sed tio estas bona diveno. 1332 01:02:44,725 --> 01:02:46,100 Iu ajn havas diveno kion tio signifas? 1333 01:02:46,100 --> 01:02:47,780 Ke bona hash funkcio estas determinisma? 1334 01:02:47,780 --> 01:02:48,280 Annie? 1335 01:02:48,280 --> 01:02:51,680 >> Spektantaro: Tio kerna nur povas esti mapita unu lokon en la hash tablo. 1336 01:02:51,680 --> 01:02:53,070 >> JASON Hirschhorn: Tio estas ĝuste. 1337 01:02:53,070 --> 01:02:57,430 Ĉiufoje vi metis en la kukurbo, ĝi ĉiam revenas nulo. 1338 01:02:57,430 --> 01:03:01,660 Se vi metas en kukurbon kaj via hash funkcio liveras nulon sed havas 1339 01:03:01,660 --> 01:03:06,060 probablo de redoni ion alie granda ol nulo - 1340 01:03:06,060 --> 01:03:09,280 do eble ĝi povos reveni unu foje aux du aliajn fojojn - 1341 01:03:09,280 --> 01:03:11,100 ke ne estas bona hash funkcio. 1342 01:03:11,100 --> 01:03:11,800 Vi estas ekzakte pravas. 1343 01:03:11,800 --> 01:03:15,680 Viaj hash funkcio devus redoni la sama ĝusta entjero, en ĉi tiu kazo, 1344 01:03:15,680 --> 01:03:17,780 la sama ĝusta kordo. 1345 01:03:17,780 --> 01:03:22,210 >> Eble li revenas al la sama ĝusta entjero cxar la sama ĝusta kordo 1346 01:03:22,210 --> 01:03:24,430 sendepende de la majuskloj. 1347 01:03:24,430 --> 01:03:27,980 Sed en tiu kazo ĝi estas ankoraŭ determinisma ĉar multnombraj aferoj 1348 01:03:27,980 --> 01:03:29,350 estas mapita sur la saman valoron. 1349 01:03:29,350 --> 01:03:30,170 Tio estas bone. 1350 01:03:30,170 --> 01:03:32,615 Tiel longe kiel ekzistas nur unu eligo por donita enigo. 1351 01:03:32,615 --> 01:03:35,630 1352 01:03:35,630 --> 01:03:36,350 >> OK. 1353 01:03:36,350 --> 01:03:38,340 La dua afero estas, ke gxi Revenas valida indeksoj. 1354 01:03:38,340 --> 01:03:40,220 Ni alportis tion antaŭe. 1355 01:03:40,220 --> 01:03:41,860 Ĉi hash funkcio - 1356 01:03:41,860 --> 01:03:43,710 Ho knabo - 1357 01:03:43,710 --> 01:03:46,840 kradon funkcio devus revenu valida indeksoj. 1358 01:03:46,840 --> 01:03:47,740 Do diru - 1359 01:03:47,740 --> 01:03:48,990 ni reiru al ĉi tiu ekzemplo. 1360 01:03:48,990 --> 01:03:52,580 1361 01:03:52,580 --> 01:03:57,540 Mia hash funkcio rakontas supren la literoj en la vorto. 1362 01:03:57,540 --> 01:03:58,380 Tio estas la krada funkcio. 1363 01:03:58,380 --> 01:03:59,740 Kaj redonas ke entjero. 1364 01:03:59,740 --> 01:04:04,280 Do, se mi havas la vorton A, ĝi estas tuj revenos unu. 1365 01:04:04,280 --> 01:04:06,900 Kaj ĝi tuj metis ĉi tie. 1366 01:04:06,900 --> 01:04:09,430 Kio se mi metis en la vorto batilo? 1367 01:04:09,430 --> 01:04:11,310 Ĝi tuj reveni tri. 1368 01:04:11,310 --> 01:04:12,560 Kie bat iri? 1369 01:04:12,560 --> 01:04:18,730 1370 01:04:18,730 --> 01:04:19,750 >> Ĝi ne taŭgas. 1371 01:04:19,750 --> 01:04:21,000 Sed tio bezonas iri ien. 1372 01:04:21,000 --> 01:04:23,340 Tiu estas mia hash tablo post ĉiu, kaj ĉiu bezonas por iri ien. 1373 01:04:23,340 --> 01:04:24,590 Do kie devus bat iri? 1374 01:04:24,590 --> 01:04:28,020 1375 01:04:28,020 --> 01:04:28,710 Ajna pensojn? 1376 01:04:28,710 --> 01:04:29,450 Divenas? 1377 01:04:29,450 --> 01:04:30,280 Bonan divenoj? 1378 01:04:30,280 --> 01:04:31,220 >> Spektantaro: Nulo. 1379 01:04:31,220 --> 01:04:32,120 >> JASON Hirschhorn: Kial nulo? 1380 01:04:32,120 --> 01:04:35,990 >> Spektantaro: Pro tri module tri estas nulo? 1381 01:04:35,990 --> 01:04:38,620 >> JASON Hirschhorn: Tri module tri estas nulo. 1382 01:04:38,620 --> 01:04:40,810 Tio estas granda diveno, kaj tio estas korekta. 1383 01:04:40,810 --> 01:04:43,870 Do, en tiu kazo ĝi devus probable iros je nulo. 1384 01:04:43,870 --> 01:04:51,080 Do bonan manieron por certigi, ke tiu hash funkcio nur revenas valida indeksoj estas 1385 01:04:51,080 --> 01:04:54,580 al module gxin per la grandeco de la tablo. 1386 01:04:54,580 --> 01:04:57,360 Se vi module ajn ĉi revenas per tri, ke vi ĉiam tuj akiri 1387 01:04:57,360 --> 01:05:00,930 iu inter nulo, unu, du. 1388 01:05:00,930 --> 01:05:05,160 Kaj se tiu ĉiam revenas sep, kaj vi ĉiam module per tri, vi estas 1389 01:05:05,160 --> 01:05:06,030 ĉiam tuj akiri la saman aferon. 1390 01:05:06,030 --> 01:05:09,270 >> Do estas ankoraŭ determinisma se vi module. 1391 01:05:09,270 --> 01:05:11,420 Sed tio certigos ke vi neniam ricevas ion - 1392 01:05:11,420 --> 01:05:12,940 nevalidan industrio. 1393 01:05:12,940 --> 01:05:16,840 Ĝenerale, tio module devus okazi en via hash funkcio. 1394 01:05:16,840 --> 01:05:18,240 Do vi ne bezonas zorgi pri tio. 1395 01:05:18,240 --> 01:05:20,555 Vi nur povas certigi ke tio estas valida indice. 1396 01:05:20,555 --> 01:05:23,700 1397 01:05:23,700 --> 01:05:26,700 Demandojn pri tiu potenciala kaptilo? 1398 01:05:26,700 --> 01:05:36,590 1399 01:05:36,590 --> 01:05:39,060 >> OK. 1400 01:05:39,060 --> 01:05:40,290 Kaj tie ni iru. 1401 01:05:40,290 --> 01:05:42,890 Sekva potencialo kaptilo, kaj tio estas la granda. 1402 01:05:42,890 --> 01:05:46,880 Kio se du klavoj mapo al la sama valoro? 1403 01:05:46,880 --> 01:05:49,350 Do estas du manieroj manipuli ĉi. 1404 01:05:49,350 --> 01:05:53,140 1405 01:05:53,140 --> 01:05:56,020 La unua nomiĝas lineara sondado, kiu mi estas 1406 01:05:56,020 --> 01:05:57,300 Ne tuj iros super. 1407 01:05:57,300 --> 01:06:01,120 Sed vi devus koni lin kiu funkcias kaj kio tio estas. 1408 01:06:01,120 --> 01:06:05,610 >> La duan mi tuj iros super ĉar kiu estas, ke multaj 1409 01:06:05,610 --> 01:06:08,290 popolo versxajne finos decidi uzi en siaj problemo aro. 1410 01:06:08,290 --> 01:06:09,820 Kompreneble, vi ne devas. 1411 01:06:09,820 --> 01:06:15,280 Sed por la problemo aro, multaj homoj inklinas elekti krei hash tablo 1412 01:06:15,280 --> 01:06:17,950 kun apartaj sinsekvon apliki ilia vortaro. 1413 01:06:17,950 --> 01:06:21,390 Do ni tuj iru super kio signifas krei hash tablo kun 1414 01:06:21,390 --> 01:06:23,890 apartan sinsekvon. 1415 01:06:23,890 --> 01:06:26,260 >> Do mi metis en la kukurbo. 1416 01:06:26,260 --> 01:06:29,560 Ĝi redonas nulo. 1417 01:06:29,560 --> 01:06:31,410 Kaj mi metis kukurbo tie. 1418 01:06:31,410 --> 01:06:35,880 1419 01:06:35,880 --> 01:06:37,930 Tiam mi metis en - 1420 01:06:37,930 --> 01:06:39,922 kio estas alia Halloween-temática afero? 1421 01:06:39,922 --> 01:06:42,200 >> Spektantaro: Candy. 1422 01:06:42,200 --> 01:06:42,770 >> JASON Hirschhorn: Frandaĵo! 1423 01:06:42,770 --> 01:06:43,910 Tio estas granda. 1424 01:06:43,910 --> 01:06:47,760 Mi metis en candy, kaj dolĉaj ankaŭ donas al mi nulo. 1425 01:06:47,760 --> 01:06:49,350 Kion mi faros? 1426 01:06:49,350 --> 01:06:51,940 Ajna ideoj? 1427 01:06:51,940 --> 01:06:53,940 Ĉar vi ĉiuj ia scias kio apartaj sinsekvon estas. 1428 01:06:53,940 --> 01:06:55,190 Do ĉiu ideojn kion fari? 1429 01:06:55,190 --> 01:06:58,170 1430 01:06:58,170 --> 01:06:59,110 Jes. 1431 01:06:59,110 --> 01:07:03,810 >> Spektantaro: Meti la kordo fakte en la hash tablo. 1432 01:07:03,810 --> 01:07:08,910 >> JASON Hirschhorn: Do ni tuj desegni la bona ideo tie. 1433 01:07:08,910 --> 01:07:09,340 OK. 1434 01:07:09,340 --> 01:07:12,290 >> Spektantaro: Cxu la hashtable [Inaudibles] 1435 01:07:12,290 --> 01:07:16,640 la montrilon kiu notas al la komencon de listo. 1436 01:07:16,640 --> 01:07:20,930 Kaj poste mi kukurbon esti la unua valoro en tiu ligillisto kaj dolĉaĵoj esti 1437 01:07:20,930 --> 01:07:22,800 La dua valoro en tiu ligillisto. 1438 01:07:22,800 --> 01:07:23,420 >> JASON Hirschhorn: okej. 1439 01:07:23,420 --> 01:07:24,670 Marcus, kiu estis elstaraj. 1440 01:07:24,670 --> 01:07:26,160 Mi iras al rompi ke malsupren. 1441 01:07:26,160 --> 01:07:28,890 Marcus estas diranta ne anstataŭigi kukurbo. 1442 01:07:28,890 --> 01:07:30,660 Tio estus malbona. 1443 01:07:30,660 --> 01:07:33,640 Ne skribu dolĉaĵoj aliloke. 1444 01:07:33,640 --> 01:07:35,390 Ni tuj metis ilin ambaŭ en nulo. 1445 01:07:35,390 --> 01:07:37,770 Sed ni tuj pritrakti metante ilin al nulo por 1446 01:07:37,770 --> 01:07:39,395 kreante listo je nulo. 1447 01:07:39,395 --> 01:07:42,430 Kaj ni tuj krei liston de ĉion mapita al nulo. 1448 01:07:42,430 --> 01:07:47,960 Kaj la plej bona maniero ni lernis krei lerta kiu povas kreski kaj retiri 1449 01:07:47,960 --> 01:07:49,840 dinamike ne estas ene alia tabelo. 1450 01:07:49,840 --> 01:07:51,510 Do ne estas mult-dimensia tabelo. 1451 01:07:51,510 --> 01:07:54,080 Sed por ĝuste krei ligillisto. 1452 01:07:54,080 --> 01:07:55,330 >> Do, kion li proponis - 1453 01:07:55,330 --> 01:07:57,950 1454 01:07:57,950 --> 01:07:59,200 Mi iros por ricevi novan - 1455 01:07:59,200 --> 01:08:15,380 1456 01:08:15,380 --> 01:08:19,689 estas krei tabelon kun indikoj, tabelo de montriloj. 1457 01:08:19,689 --> 01:08:20,580 OK. 1458 01:08:20,580 --> 01:08:24,180 Ĉiu ideo aŭ aludo kion la tipo de tiu pointers devus esti? 1459 01:08:24,180 --> 01:08:26,290 Marcus? 1460 01:08:26,290 --> 01:08:27,250 >> Spektantaro: Pointers al - 1461 01:08:27,250 --> 01:08:28,609 >> JASON Hirschhorn: Ĉar vi diris ligillisto, do - 1462 01:08:28,609 --> 01:08:29,520 >> Spektantaro: Nodo pointers? 1463 01:08:29,520 --> 01:08:30,670 >> JASON Hirschhorn: Nodo montriloj. 1464 01:08:30,670 --> 01:08:32,830 Se la aferoj en nia ligita listo estas nodoj tiam ili 1465 01:08:32,830 --> 01:08:34,370 devus esti nodo montriloj. 1466 01:08:34,370 --> 01:08:35,939 Kaj kion ili egalos komence? 1467 01:08:35,939 --> 01:08:36,990 >> Spektantaro: Nula. 1468 01:08:36,990 --> 01:08:38,240 >> JASON Hirschhorn: Nula. 1469 01:08:38,240 --> 01:08:44,540 1470 01:08:44,540 --> 01:08:46,080 Do tie estas niaj malplenaj afero. 1471 01:08:46,080 --> 01:08:47,170 Kukurbo revenas nulo. 1472 01:08:47,170 --> 01:08:48,569 Kion ni faru? 1473 01:08:48,569 --> 01:08:49,609 Iradu min tra gxi? 1474 01:08:49,609 --> 01:08:50,810 Reale, Marcus jam donis al mi. 1475 01:08:50,810 --> 01:08:52,439 Iu ajn promeni min tra ĝi. 1476 01:08:52,439 --> 01:08:54,760 Kion ni faros kiam ni - 1477 01:08:54,760 --> 01:08:56,609 ĉi aspektas tre simila al kion ni ĵus faris. 1478 01:08:56,609 --> 01:08:57,396 Avi. 1479 01:08:57,396 --> 01:08:59,090 >> Spektantaro: Mi iras preni diveno. 1480 01:08:59,090 --> 01:09:01,250 Do, kiam vi ricevas dolĉaĵoj. 1481 01:09:01,250 --> 01:09:01,640 >> JASON Hirschhorn: Jes. 1482 01:09:01,640 --> 01:09:03,120 Nu, ni akiris kukurbo. 1483 01:09:03,120 --> 01:09:03,870 Ni prenu nian unuan. 1484 01:09:03,870 --> 01:09:04,324 Ni akiris kukurbo. 1485 01:09:04,324 --> 01:09:04,779 >> Spektantaro: okej. 1486 01:09:04,779 --> 01:09:05,880 Kukurbo revenas nulo. 1487 01:09:05,880 --> 01:09:08,770 Do vi metis ŝin en tio. 1488 01:09:08,770 --> 01:09:10,810 Aŭ fakte, vi metis ĝin en la ligillisto. 1489 01:09:10,810 --> 01:09:13,550 >> JASON Hirschhorn: Kiel ni metu gxin en la ligillisto? 1490 01:09:13,550 --> 01:09:15,479 >> Spektantaro: Ho, la efektiva sintakso? 1491 01:09:15,479 --> 01:09:16,240 >> JASON Hirschhorn: Nur marŝi - 1492 01:09:16,240 --> 01:09:16,740 diri pli. 1493 01:09:16,740 --> 01:09:19,310 Kion ni faru? 1494 01:09:19,310 --> 01:09:22,100 >> Spektantaro: Vi simple enŝovi ĝin kiel la unua nodo. 1495 01:09:22,100 --> 01:09:22,675 >> JASON Hirschhorn: okej. 1496 01:09:22,675 --> 01:09:29,069 Do ni havas nian nodo, kukurbo. 1497 01:09:29,069 --> 01:09:31,560 Kaj nun kiel mi enŝovu ĝin? 1498 01:09:31,560 --> 01:09:34,590 1499 01:09:34,590 --> 01:09:37,090 >> Spektantaro: Vi asigni ĝin al la montrilo. 1500 01:09:37,090 --> 01:09:37,970 >> JASON Hirschhorn: Kiujn montrilo? 1501 01:09:37,970 --> 01:09:39,620 >> Spektantaro: La montrilon je nulo. 1502 01:09:39,620 --> 01:09:41,420 >> JASON Hirschhorn: Do kie faras ĉi punkto? 1503 01:09:41,420 --> 01:09:42,810 >> Spektantaro: Por Nula ĝuste nun. 1504 01:09:42,810 --> 01:09:43,529 >> JASON Hirschhorn: Nu, ĝi estas indikante nula. 1505 01:09:43,529 --> 01:09:44,499 Sed mi metas en kukurbo. 1506 01:09:44,499 --> 01:09:46,053 Do kie devus gxi notas? 1507 01:09:46,053 --> 01:09:46,880 >> Spektantaro: Por Pumpkin. 1508 01:09:46,880 --> 01:09:47,399 >> JASON Hirschhorn: Por kukurbo. 1509 01:09:47,399 --> 01:09:48,760 Ekzakte. 1510 01:09:48,760 --> 01:09:50,010 Do tiu notas al kukurbo. 1511 01:09:50,010 --> 01:09:52,500 1512 01:09:52,500 --> 01:09:54,250 Kaj kie faras ĉi montrilo kukurbajn punkto? 1513 01:09:54,250 --> 01:09:57,986 1514 01:09:57,986 --> 01:09:58,340 Al 1515 01:09:58,340 --> 01:09:58,590 >> Spektantaro: Nula. 1516 01:09:58,590 --> 01:09:59,210 >> JASON Hirschhorn: Por nula. 1517 01:09:59,210 --> 01:10:00,460 Ekzakte. 1518 01:10:00,460 --> 01:10:03,570 1519 01:10:03,570 --> 01:10:05,140 Do ni simple enmetitaj ion en la ligillisto. 1520 01:10:05,140 --> 01:10:07,210 Ni nur skribis tiun kodon por fari tion. 1521 01:10:07,210 --> 01:10:09,520 Preskaŭ ni preskaŭ havas ĝin tute krakis. 1522 01:10:09,520 --> 01:10:10,790 Nun ni enŝovu dolĉaĵoj. 1523 01:10:10,790 --> 01:10:13,480 Nia dolĉaĵoj ankaŭ iras al nulo. 1524 01:10:13,480 --> 01:10:16,100 Do kion ni faru kun dolĉaĵoj? 1525 01:10:16,100 --> 01:10:18,790 >> Spektantaro: Ĝi dependas de ĉu aŭ Ne ni provas ordigi ĝin. 1526 01:10:18,790 --> 01:10:19,640 >> JASON Hirschhorn: Tio estas ĝuste. 1527 01:10:19,640 --> 01:10:21,070 Ĝi dependas de ĉu ĉu ne ni provas ordigi ĝin. 1528 01:10:21,070 --> 01:10:22,660 Ni supozu ke ni ne tuj ordigi ĝin. 1529 01:10:22,660 --> 01:10:24,880 >> Spektantaro: Nu do, kiel ni diskutis antaŭe, ĝi estas simpla simple meti ĝin 1530 01:10:24,880 --> 01:10:28,590 ĝuste en la komenco tiel la montrilo de nulo poentojn al bombono. 1531 01:10:28,590 --> 01:10:29,020 >> JASON Hirschhorn: okej. 1532 01:10:29,020 --> 01:10:29,380 Atendu. 1533 01:10:29,380 --> 01:10:30,630 Permesu al mi krei dolĉaĵoj ĝuste ĉi tie. 1534 01:10:30,630 --> 01:10:34,030 1535 01:10:34,030 --> 01:10:35,150 Do tiu montrilo - 1536 01:10:35,150 --> 01:10:37,590 >> Spektantaro: Jes, devus nun esti indikante dolĉaĵoj. 1537 01:10:37,590 --> 01:10:40,580 Tiam ektimis la montrilon de karamelo punkto kukurbo. 1538 01:10:40,580 --> 01:10:43,140 1539 01:10:43,140 --> 01:10:44,560 >> JASON Hirschhorn: Kiel tio? 1540 01:10:44,560 --> 01:10:47,380 Kaj diras, ke ni havas la alian afero por mapi al nulo? 1541 01:10:47,380 --> 01:10:48,660 >> Spektantaro: Nu, vi nur fari la samon? 1542 01:10:48,660 --> 01:10:50,290 >> JASON Hirschhorn: Faru la samon. 1543 01:10:50,290 --> 01:10:53,700 Do, en tiu kazo, se ni ne volas fari gxin ordo ĝi 1544 01:10:53,700 --> 01:10:55,270 sonas sufiĉe simpla. 1545 01:10:55,270 --> 01:10:59,920 Ni prenu la montrilon en la indice donita per nia hash funkcio. 1546 01:10:59,920 --> 01:11:03,830 Ni havas tiun punkton al niaj novaj nodo. 1547 01:11:03,830 --> 01:11:07,830 Kaj tiam tiu, kiu estis montrante al la antaŭe - 1548 01:11:07,830 --> 01:11:10,620 en ĉi tiu kazo nula, en la dua kazo kukurbo - 1549 01:11:10,620 --> 01:11:15,310 ke, kio ajn ĝi estas montrante antaŭe, ni aldonas al la sekva de 1550 01:11:15,310 --> 01:11:17,810 nia nova nodo. 1551 01:11:17,810 --> 01:11:19,650 Ni enmeto ion en la komenco. 1552 01:11:19,650 --> 01:11:22,900 Fakte tio estas multe pli simpla ol provante konservi la listo ordo. 1553 01:11:22,900 --> 01:11:25,340 Sed denove, serĉo estos pli komplika ĉi tie. 1554 01:11:25,340 --> 01:11:28,300 Ni ĉiam devas iri al la fino. 1555 01:11:28,300 --> 01:11:29,650 >> OK. 1556 01:11:29,650 --> 01:11:32,750 Demandojn pri apartaj sinsekvon? 1557 01:11:32,750 --> 01:11:34,690 Kiel tio funkcias? 1558 01:11:34,690 --> 01:11:35,820 Bonvolu peti ilin nun. 1559 01:11:35,820 --> 01:11:39,260 Mi vere volas certigi vin ĉiujn kompreni tion antaŭ ol ni estrus eksteren. 1560 01:11:39,260 --> 01:11:48,410 1561 01:11:48,410 --> 01:11:52,060 >> Spektantaro: Kial vi metis kukurbo kaj dolĉaĵoj en la sama 1562 01:11:52,060 --> 01:11:54,108 parton de la hash tablo? 1563 01:11:54,108 --> 01:11:55,860 >> JASON Hirschhorn: Bona demando. 1564 01:11:55,860 --> 01:11:59,140 Kial ni metis ilin en la sama parton de la hash tablo? 1565 01:11:59,140 --> 01:12:03,200 Nu, en tiu kazo, nia hash funkcio revenoj nulo por ambaux. 1566 01:12:03,200 --> 01:12:05,310 Do ili bezonas iri ĉe indice nulo ĉar tio estas kie ni iras al 1567 01:12:05,310 --> 01:12:07,420 serĉi ilin, se ni iam volas rigardi ilin. 1568 01:12:07,420 --> 01:12:11,750 Denove kun lineara sondado alproksimiĝo ni ne metis ilin ambaŭ en nulo. 1569 01:12:11,750 --> 01:12:13,900 Sed en la aparta ĉeno alproksimiĝo, Ni tuj metis ilin ambaŭ en nulo 1570 01:12:13,900 --> 01:12:16,620 kaj tiam krei lerta for de nulo. 1571 01:12:16,620 --> 01:12:20,140 >> Kaj ni ne volas anstataŭigi kukurbo simple por ke ĉar tiam ni 1572 01:12:20,140 --> 01:12:21,860 supozi ke kukurbo estis neniam enmetitaj. 1573 01:12:21,860 --> 01:12:25,230 Se ni simple subteni unu afero en la situo tio estus malbona. 1574 01:12:25,230 --> 01:12:28,590 Tiam ne estus Ebla ni iam - 1575 01:12:28,590 --> 01:12:31,660 se ni iam havis duplikato, tiam ni estus simple viŝos nia komenca valoro. 1576 01:12:31,660 --> 01:12:34,090 Do jen kial ni faros ĉi alproksimiĝo. 1577 01:12:34,090 --> 01:12:36,580 Aŭ tio estas kial ni elektis - sed denove, ni elektis la apartajn sinsekvon alproksimiĝo, 1578 01:12:36,580 --> 01:12:39,670 kio estas multaj aliaj aliroj oni povus elekti. 1579 01:12:39,670 --> 01:12:41,185 Ĉu tio respondas vian demandon? 1580 01:12:41,185 --> 01:12:41,660 >> OK. 1581 01:12:41,660 --> 01:12:42,910 Karolo. 1582 01:12:42,910 --> 01:12:46,130 1583 01:12:46,130 --> 01:12:47,720 Linearaj sondado implicus - 1584 01:12:47,720 --> 01:12:51,913 se ni trovis kolizio je nulo, ni aspektus en la venonta loko por vidi se 1585 01:12:51,913 --> 01:12:54,310 Ĝi estis malfermita kaj metis ĝin tie. 1586 01:12:54,310 --> 01:12:57,320 Kaj poste ni rigardas en la sekvanta sporto kaj rigardu, cxu tio estis malfermita kaj metis ĝin tie. 1587 01:12:57,320 --> 01:12:59,780 Do ni trovu la sekvantan havebla malfermita loko kaj metis ĝin tie. 1588 01:12:59,780 --> 01:13:02,580 1589 01:13:02,580 --> 01:13:03,890 Ajna alia demandojn? 1590 01:13:03,890 --> 01:13:05,370 Jes, Avi. 1591 01:13:05,370 --> 01:13:07,490 >> Spektantaro: Kiel sekvi supren al tiu, Kion vi celas per proksima loko? 1592 01:13:07,490 --> 01:13:10,250 En la hash tablo aŭ en ligillisto. 1593 01:13:10,250 --> 01:13:12,100 >> JASON Hirschhorn: Por linearaj programado, ne ligita listoj. 1594 01:13:12,100 --> 01:13:13,400 La sekva makulo sur la hash tablo. 1595 01:13:13,400 --> 01:13:13,820 >> Spektantaro: okej. 1596 01:13:13,820 --> 01:13:17,570 Do la hash tablo estus pravalorizita al la grandeco - 1597 01:13:17,570 --> 01:13:19,560 kiel la nombro de kordoj ke vi estis enmeto? 1598 01:13:19,560 --> 01:13:22,170 >> JASON Hirschhorn: Vi havus volas ke ĝi estu vere granda. 1599 01:13:22,170 --> 01:13:23,910 Jes. 1600 01:13:23,910 --> 01:13:27,900 Ĉi tie estas bildo pri kio ni ĝuste surtiris la tabulo. 1601 01:13:27,900 --> 01:13:29,470 Denove, ni havas kolizio ĝuste ĉi tie. 1602 01:13:29,470 --> 01:13:30,710 ĉe 152. 1603 01:13:30,710 --> 01:13:33,570 Kaj vi vidos ni kreis a ligillisto ekstere de ĝi. 1604 01:13:33,570 --> 01:13:38,200 1605 01:13:38,200 --> 01:13:41,850 Denove, la hash tablo apartajn sinsekvon alproksimiĝo ne estas tiu kiun vi 1606 01:13:41,850 --> 01:13:45,590 devas preni por problemojn starigis ses sed estas tiu kiu multe 1607 01:13:45,590 --> 01:13:47,100 lernantoj emas preni. 1608 01:13:47,100 --> 01:13:51,140 Do en tiu noto, ni diskutu mallonge antaŭ ol ni estrus ekstere pri problemo ses, 1609 01:13:51,140 --> 01:13:52,160 kaj tiam mi dividas historion kun vi. 1610 01:13:52,160 --> 01:13:55,120 Ni havas tri minutoj. 1611 01:13:55,120 --> 01:13:55,750 >> Problemo starigis ses. 1612 01:13:55,750 --> 01:13:57,790 Vi havas kvar funkcioj - 1613 01:13:57,790 --> 01:14:02,430 ŝarĝo, kontrolu, grandeco, kaj malŝarĝi. 1614 01:14:02,430 --> 01:14:03,380 Ŝarĝi - 1615 01:14:03,380 --> 01:14:07,120 bone, ni estis irante super ŝarĝo gxuste nun. 1616 01:14:07,120 --> 01:14:09,330 Ni tiris ŝarĝon sur la tabulo. 1617 01:14:09,330 --> 01:14:13,230 Kaj ni eĉ komencis kodigo multan enmeto en ligillisto. 1618 01:14:13,230 --> 01:14:18,020 Do ŝarĝo estas ne multe pli ol kion ni ĵus estis farante. 1619 01:14:18,020 --> 01:14:21,070 >> Ĉeko estas iam vi havos io ŝarĝita. 1620 01:14:21,070 --> 01:14:22,580 Ĝi estas la sama procezo kiel ĉi tio. 1621 01:14:22,580 --> 01:14:26,845 La samaj du unuaj partoj kie throw io en la krada funkcio 1622 01:14:26,845 --> 01:14:29,190 kaj akiri ĝian valoron. 1623 01:14:29,190 --> 01:14:30,700 Sed nun ni ne enmeto ĝi. 1624 01:14:30,700 --> 01:14:33,350 Nun ni serĉas ĝin. 1625 01:14:33,350 --> 01:14:37,130 Mi specimeno kodo verkita por trovi io en ligillisto. 1626 01:14:37,130 --> 01:14:38,250 Mi rekomendas al vi ekzerci tion. 1627 01:14:38,250 --> 01:14:43,000 Sed intuicie trovante iun bela simila al la enmeto de io. 1628 01:14:43,000 --> 01:14:46,540 Ja, ni desegnis bildon de trovo io en ligillisto, movante 1629 01:14:46,540 --> 01:14:48,910 tra ĝis vi atingis la finon. 1630 01:14:48,910 --> 01:14:52,430 Kaj se vi atingis la finon kaj ne povis trovu ĝin, ĉar ĝi ne estas tie. 1631 01:14:52,430 --> 01:14:55,400 Do jen ĉekon, esence. 1632 01:14:55,400 --> 01:14:57,030 >> Sekva estas grandeco. 1633 01:14:57,030 --> 01:14:57,910 Ni skip grandeco. 1634 01:14:57,910 --> 01:15:00,040 Finfine vi malŝarĝi. 1635 01:15:00,040 --> 01:15:02,890 Malŝarĝi estas unu ni jam ne eltiris sur la tabulo aŭ coded ankoraŭ. 1636 01:15:02,890 --> 01:15:05,990 Sed mi kuraĝigas vin provi kodigo ĝi en nia specimeno ligillisto ekzemplo. 1637 01:15:05,990 --> 01:15:11,440 Sed malŝarĝi intuicie Estas simila al libera - 1638 01:15:11,440 --> 01:15:14,010 aŭ mi volas diri estas simila por kontroli. 1639 01:15:14,010 --> 01:15:17,350 Krom nun ĉiu tempo vi iras tra, vi ne simple kontrolanta al 1640 01:15:17,350 --> 01:15:19,090 rigardu, cxu vi havas viajn valoron tie. 1641 01:15:19,090 --> 01:15:22,490 Sed vi estas preni tiun nodon kaj liberigante ĝin, esence. 1642 01:15:22,490 --> 01:15:23,610 Tio estas kion malŝarĝas petas vin fari. 1643 01:15:23,610 --> 01:15:24,670 Senpaga ĉio vi malloced. 1644 01:15:24,670 --> 01:15:27,480 Do vi iras tra la tuta listo denove, irante tra la tuta hash 1645 01:15:27,480 --> 01:15:27,760 tablo denove. 1646 01:15:27,760 --> 01:15:29,240 Tiu tempo ne kontrolu por vidi kio estas tie. 1647 01:15:29,240 --> 01:15:31,080 Nur liberigi kio estas tie. 1648 01:15:31,080 --> 01:15:33,260 >> Kaj fine grandeco. 1649 01:15:33,260 --> 01:15:34,350 Grandeco devus esti efektivigita. 1650 01:15:34,350 --> 01:15:35,590 Se vi ne havas grandecon - 1651 01:15:35,590 --> 01:15:36,250 Mi tion diri ĝi kiel ĉi tio. 1652 01:15:36,250 --> 01:15:39,740 Se vi ne havas grandecon en akurate unu linio de kodo inkludante la 1653 01:15:39,740 --> 01:15:43,760 revenu deklaro, vi estas faranta grandeco malĝuste. 1654 01:15:43,760 --> 01:15:47,170 Do certigu grandeco, por plena dezajno punktoj, vi faras gxin en akurate unu 1655 01:15:47,170 --> 01:15:49,970 linio de kodo, inkludante la reveno komunikaĵo. 1656 01:15:49,970 --> 01:15:52,450 >> Kaj ne paki ankoraux, Akchar. 1657 01:15:52,450 --> 01:15:53,700 Avida kastoro. 1658 01:15:53,700 --> 01:15:55,820 1659 01:15:55,820 --> 01:16:01,300 Mi volis diri dankon infanoj por veni al sekcio. 1660 01:16:01,300 --> 01:16:02,550 Havas Happy Halloween. 1661 01:16:02,550 --> 01:16:05,300 1662 01:16:05,300 --> 01:16:05,960 Tiu estas mia kostumo. 1663 01:16:05,960 --> 01:16:08,850 Mi estos surhavas ĉi ĵaŭde se mi vidas vin ĉe oficejo horoj. 1664 01:16:08,850 --> 01:16:14,640 Kaj se vi estas scivolema pri kelkaj pli fono kiel al ĉi kostumo, senti 1665 01:16:14,640 --> 01:16:19,135 libera por kontroli 2011 sekcio por historio pri kial mi estas 1666 01:16:19,135 --> 01:16:20,900 portante la kukurbo kostumo. 1667 01:16:20,900 --> 01:16:23,680 Kaj tio estas malgaja rakonto. 1668 01:16:23,680 --> 01:16:27,050 Do certigi vin havas iuj histoj apude. 1669 01:16:27,050 --> 01:16:28,680 Sed pri tio, se vi havas ajnan demandojn mi algluita ĉirkaŭe 1670 01:16:28,680 --> 01:16:29,960 eksteren post sekcio. 1671 01:16:29,960 --> 01:16:31,510 Bonan sorton sur problemo starigis ses. 1672 01:16:31,510 --> 01:16:33,540 Kaj kiel ĉiam, se vi havas ajnan demandojn, lasu min scii. 1673 01:16:33,540 --> 01:16:35,584