[CHWARAE CERDDORIAETH] SIARADWR 1: Pob hawl. Mae pawb yn croesawu yn ôl i'r adran. Rwy'n gobeithio y byddwch i gyd yn llwyddiannus hadennill oddi wrth eich cwis o wythnos diwethaf. Rwy'n gwybod ei fod yn ychydig yn wallgof ar adegau. Fel yr oeddwn yn ei ddweud o'r blaen, os ydych yn o fewn y gwyriad safonol, ddim wir yn poeni am y peth, yn enwedig ar gyfer adran llai cyfforddus. Dyna am ble y dylech fod. Os wnaethoch chi fawr, yna awesome. Kudos i chi. Ac os ydych yn teimlo fel chi ei angen ychydig yn fwy o help, os gwelwch yn dda croeso i gyrraedd allan i unrhyw un o'r TFS. Yr ydym i gyd yma i helpu. Dyna pam ein bod yn addysgu. Dyna pam rwyf yma bob dydd Llun ar eich rhan guys ac yn swyddfa oriau ar ddydd Iau. Felly, mae croeso i chi gadewch i mi wybod os ydych yn poeni am unrhyw beth neu os oes unrhyw beth ar y cwis y byddech yn wir yn hoffi i fynd i'r afael. Felly, yr agenda ar gyfer heddiw yw popeth am strwythurau data. Mae rhai o'r rhain yn unig yn mynd i fod yr un i gael eich bod yn gyfarwydd â'r rhain. Efallai na fyddwch byth yn gweithredu nhw yn y dosbarth hwn. Mae rhai ohonynt byddwch, tebyg am eich pset sillafu. Bydd gennych eich dewis rhwng tablau hash a geisiau. Felly byddwn yn bendant yn mynd dros y rhai. Mae'n mynd i fod yn bendant yn fwy o fath o adran lefel uchel heddiw, fodd bynnag, oherwydd mae llawer ohonyn nhw, ac os rydym yn mynd i mewn i'r manylion gweithredu ar bob un o'r rhain, nid byddem hyd yn oed yn mynd trwy restrau cysylltiedig ac efallai ychydig o dablau hash. Felly yn amyneddgar gyda mi. Dydyn ni ddim yn mynd i fod yn ei wneud gymaint codio y tro hwn. Os oes gennych unrhyw gwestiynau am y peth neu os ydych am weld yn cael ei rhoi ar waith neu roi cynnig arni i chi eich hun, Rwy'n bendant yn argymell mynd i study.cs50.net, a oedd Mae enghreifftiau o'r rhain i gyd. Bydd yn cael fy PowerPoints â'r nodiadau sydd gennym yn tueddu i ddefnyddio yn ogystal â rhywfaint o raglennu ymarferion, yn enwedig ar gyfer pethau fel rhestrau cysylltiedig a deuaidd coed staciau a chiwiau. Felly, ychydig yn fwy lefel uchel, sy'n Gallai fod yn neis i chi guys. Felly, gyda hynny, byddwn yn dechrau arni. A hefyd, cwisiau yes--. Rwy'n credu y rhan fwyaf ohonoch chi sydd mewn mae fy adran wedi eich cwisiau, ond mae unrhyw un yn dod i mewn, neu ryw reswm yr ydych Nid yn gwneud, maent yn iawn yma yn y tu blaen. Felly, rhestrau cysylltiedig. Rwy'n gwybod y math hwn o yn mynd i yn ôl cyn eich cwis. Dyna oedd yr wythnos cyn ein bod yn dysgu am hyn. Ond yn yr achos hwn, rydym yn annhymerus unig mynd ychydig yn fwy manwl. Felly pam y gallem ddewis rhestr gysylltiedig dros arae? Beth sy'n eu gwahaniaethu? Ie? GYNULLEIDFA: Gallwch ehangu a chysylltu rhestru yn erbyn maint sefydlog arae yn. SIARADWR 1: Iawn. Amrywiaeth wedi sefydlog maint tra bod rhestr gysylltiedig â faint amrywiol. Felly, os nad ydym yn gwybod sut cymaint yr ydym yn awyddus i storio, rhestr cysylltiedig yn rhoi i ni yn fawr ffordd o wneud hynny oherwydd ein bod yn gallu jyst ychwanegu ar nod arall ac ychwanegu ar nod arall ac yn ychwanegu ar y nod arall. Ond hyn a allai fod yn fasnach-off? A oes unrhyw un yn cofio y fasnach-off rhwng araeau a rhestrau cysylltiedig? Mmhmm? GYNULLEIDFA: rhaid i chi mynd trwy'r holl ffordd drwy'r rhestr cysylltiedig dod o hyd i elfen mewn rhestr. Mewn amrywiaeth, gallwch jyst ddod o hyd i elfen. SIARADWR 1: Iawn. Felly, gyda arrays-- GYNULLEIDFA: [Anghlywadwy]. SIARADWR 1: Gyda araeau, rydym wedi hyn a elwir mynediad ar hap. Yn golygu os ydym am yr hyn sy'n erioed y pwynt pumed o restr neu'r pwynt rhan o bump o'n array, gallwn jyst chrafangia '. Os yw'n rhestr cysylltiedig, rydym wedi i ailadrodd drwy, dde? Felly mae cael mynediad elfen mewn amrywiaeth yn amser gyson, tra â rhestr cysylltiedig y byddai fwyaf tebygol o fod yn amser llinol oherwydd efallai ein elfen yn yr holl ffordd ar y diwedd. Mae'n rhaid i ni chwilio drwy bopeth. Felly, gyda'r holl ddata hyn strwythurau rydym yn mynd i yn treulio ychydig mwy o amser ar, beth yw'r pwyntiau cadarnhaol a negyddol. Pryd y gallai rydym am defnyddiwch un dros y llall? A dyna caredig y beth mwy i fynd i ffwrdd. Felly mae gennym yma yw'r diffiniad o nôd. Mae fel un elfen mewn ein rhestr cysylltiedig, dde? Felly, rydym ni i gyd yn gyfarwydd gyda'n structs typedef, a aeth i ni drosodd mewn adolygiad tro diwethaf. Yr oedd yn y bôn yn unig yn creu un arall math o ddata y gallem eu defnyddio. Ac yn yr achos hwn, mae'n rhywfaint o nod a fydd yn cynnal rhai cyfanrif mewn. Ac yna beth yw'r ail ran yn fan hyn? Dylai unrhyw un? GYNULLEIDFA: [Anghlywadwy]. SIARADWR 1: Yeah. Mae'n pwyntydd at y nod nesaf. Felly, dylai hyn mewn gwirionedd fod hyd yma. Mae hwn yn pwyntydd o fath nod at y peth nesaf. A dyna beth maent yn yn cwmpasu ein nod. Cool. Mae pob hawl, felly â chwilio, gan ein bod dim ond dweud flaen llaw, os ydych yn mynd i chwilio drwy, rhaid i chi ailadrodd mewn gwirionedd drwy eich rhestr cysylltiedig. Felly os ydym yn chwilio am y rhif 9, byddem yn dechrau am ein ben ac sy'n ein pwyntiau ar y dechrau o'n rhestr cysylltiedig, dde? Ac yr ydym yn ei ddweud, OK, yn gwneud hyn nod yn cynnwys y rhif 9? Nac oes? Mae pob hawl, yn mynd i'r un nesaf. Dilynwch iddo. A yw'n cynnwys y rhif 9? Rhif Dilynwch yr un nesaf. Felly, mae'n rhaid i ni ailadrodd mewn gwirionedd drwy ein rhestr cysylltiedig. Ni allwn fynd yn uniongyrchol i ble 9 yw. Ac os ydych guys mewn gwirionedd eisiau gweld rhai ffug-god i fyny yno. Mae gennym rai swyddogaeth chwilio yma sy'n cymryd in-- beth y mae'n ei gymryd i mewn? Beth ydych chi'n feddwl? Un mor hawdd. Beth yw hyn? GYNULLEIDFA: [Anghlywadwy]. SIARADWR 1: Nifer yr ydym yn chwilio am. Hawl? A beth fyddai hyn yn cyd-fynd? Mae'n pwyntydd i? GYNULLEIDFA: A nod. SIARADWR 1: A nod at y rhestr ein bod yn edrych ar, dde? Felly, mae gennym rai nodau yn pwyntydd yma. Mae hwn yn bwynt sy'n mynd i mewn gwirionedd yn ailadrodd drwy ein rhestr. Rydym yn gosod hi'n gyfartal i restru oherwydd dyna yn unig osod hi'n gyfartal i'r dechrau ein rhestr cysylltiedig. Ac er nad yw'n NULL, tra rydym yn dal i gael pethau yn ein rhestr, wirio i weld os yw'r nod wedi mae'r nifer rydym yn chwilio am. Dychwelyd yn wir. Fel arall, ei diweddaru, dde? Os yw'n NULL, rydym yn gadael ein tra dolen a dychwelyd ffug oherwydd mae hynny'n golygu nad ydym wedi dod o hyd iddo. A yw pawb yn cael sut mae hynny'n gweithio? OK. Felly, gyda mewnosod, chi gael tair ffordd wahanol. Gallwch prepend, gallwch atodi a gallwch mewnosod i mewn assorted. Yn yr achos hwn, rydym yn mynd i wneud prepend. Oes rhywun yn gwybod sut y rheini Gallai tri achos yn wahanol? Felly prepend yn golygu eich bod yn rhoi ei fod ar flaen eich rhestr. Felly byddai hynny'n golygu bod waeth beth yw eich nod yw, ni waeth beth mae'r gwerth yw, rydych chi'n mynd i roi pethau'n iawn yma yn blaen, OK? Mae'n mynd i fod y cyntaf elfen yn eich rhestr. Os ydych yn atodi iddo, mae'n mynd i fynd i gefn eich rhestr. Ac yn mewnosod i mewn i assorted yn golygu eich bod yn mynd i roi mewn gwirionedd i mewn i'r lle lle mae'n cadw eich rhestr cysylltiedig didoli. Unwaith eto, sut yr ydych yn defnyddio y rhai a phan fyddwch yn defnyddio bydd yn eu amrywio yn dibynnu ar eich achos. Os na fydd yn rhaid eu datrys, prepend tueddu i fod yn yr hyn y rhan fwyaf o bobl defnyddio oherwydd nad ydych yn ei wneud rhaid i chi fynd drwy'r rhestr gyfan i ddod o hyd y diwedd i ychwanegu ar, dde? Alli jyst lynu yn iawn yn. Felly, byddwn yn mynd drwy mewnosod 1 ar hyn o bryd. Felly, un peth yr wyf i'n mynd i dal argymell ar pset hwn yw tynnu pethau allan, fel bob amser. Mae'n bwysig iawn eich bod yn diweddaru eich awgrymiadau yn y drefn gywir oherwydd os ydych yn eu diweddaru ychydig allan o drefn, ydych yn mynd i roi diwedd ar i fyny colli rannau o'ch rhestr. Felly, er enghraifft, yn yr achos hwn, rydym yn dweud wrth y pennaeth i bwynt yn unig i 1. Os ydym yn unig yn gwneud hynny heb arbed hyn 1, nid oes gennym unrhyw syniad beth 1 Dylai bwyntio at nawr oherwydd ein bod wedi colli beth y pen tynnu sylw at. Felly, un peth i'w gofio pan fyddwch chi'n ei wneud yn prepend yw achub yr hyn y mae'r pwyntiau ben i'r cyntaf, Yna ail-neilltuo iddo, ac yna diweddaru yr hyn y dylai eich nod newydd yn cyfeirio at. Yn yr achos hwn, mae hyn yn un ffordd o wneud hynny. Felly, pe baem wedi ei wneud fel hyn lle rydym yn unig symudir pen, rydym yn colli y bôn ein rhestr gyfan, dde? Un ffordd i wneud hynny yw cael 1 pwynt i nesaf, ac wedyn pwynt pen i 1. Neu gallwch wneud math o fel y storio dros dro, y soniais amdano. Ond yn ailgyfeirio eich awgrymiadau yn y drefn gywir yn mynd i fod yn iawn, iawn bwysig ar gyfer pset hwn. Fel arall, rydych yn mynd i gael hash tabl neu cynnig arni sy'n 'jyst yn mynd i fod yn dim ond rhan o'r geiriau a ydych eisiau ac yna'n you're-- mmhmm? GYNULLEIDFA: Beth oedd y dros dro beth storio oeddech yn siarad am? SIARADWR 1: Mae storio dros dro. Felly y bôn un arall ffordd y gallech wneud hyn ei storio y pennaeth rywbeth, fel ei storio y newidyn dros dro. Neilltuo i 1 a Yna diweddaru 1 i bwynt i ba bynnag pen a ddefnyddir i bwyntio at. Fel hyn, yn amlwg mwy cain oherwydd eich bod Nid oes angen gwerth dros dro, ond dim ond yn cynnig ffordd arall i wneud hynny. Ac rydym yn ei wneud mewn gwirionedd yn cael rhywfaint cod ar gyfer hyn. Felly, ar gyfer y rhestr cysylltiedig, rydym yn mewn gwirionedd yn cael rhywfaint o cod. Felly rhowch yma, mae hyn yn prepending. Felly, mae hyn yn mynd i mewn iddo yn y pen. Felly mae peth cyntaf, mae angen i chi greu eich nod newydd, wrth gwrs, ac yn gwirio am NULL. Bob amser yn dda. Ac yna bydd angen i chi aseinio gwerthoedd. Pryd bynnag y byddwch yn creu nod newydd, byddwch yn ddim yn gwybod yr hyn y mae'n pwyntio i'r nesaf, felly yr ydych eisiau ei ymgychwyn iddo nwl. Os bydd yn y pen draw yn pwyntio at rywbeth arall, mae'n cael ei hailneilltuo ac mae'n iawn. Os mai dyma'r peth cyntaf yn y rhestr, mae angen i bwyntio at nwl oherwydd dyna ddiwedd y rhestr. Felly, yna i fewnosod iddo, gwelwn dyma ni yn aseinio y gwerth nesaf ein nod i fod beth bynnag pen yw, sef yr hyn oedd gennym yma. Dyna beth yr ydym yn unig oedd. Ac yna rydym yn aseinio pen i bwynt at ein nod newydd, gan fod yn cofio, newydd yw'r peth pwyntydd i nod, a dyna'n union yr hyn y pen yn. Dyna'n union pam yr ydym yn gael saeth hwn accessor. Cool? Mmhmm? GYNULLEIDFA: Oes rhaid i ni ymgychwyn nesaf newydd i NULL yn gyntaf, neu gallwn jyst ymgychwyn iddo i ben? SIARADWR 1: New nesaf angen iddo fod yn NULL i ddechrau oherwydd nad ydych yn gwybod ble mae'n mynd i fod. Hefyd, mae hyn yn fath o yn union fel patrwm. Rydych yn gosod ei bod yn hafal i NULL yn unig i wneud yn siwr bod eich holl ganolfannau yn cael eu cynnwys cyn i chi wneud unrhyw ailbennu fel bod byddwch bob amser yn gwarantu y bydd yn yn cael ei bwyntio at werth penodol erbyn fel gwerth garbage. Oherwydd, ie, rydym yn aseinio newydd nesaf yn awtomatig, ond ei fod yn fwy union fel arfer da i ymgychwyn iddo yn y ffordd honno, ac yna ail-neilltuo. OK, yn gysylltiedig felly ddwbl rhestrau nawr. Beth ydym yn ei feddwl? Beth sy'n wahanol gyda rhestrau cysylltiedig ddwbl? Felly, yn ein rhestrau cysylltiedig, gallwn Dim ond yn symud i un cyfeiriad, dde? Mai dim ond nesaf. Ni allwn ond fynd yn ei flaen. Gyda rhestr cysylltiedig ddwbl, gallwn hefyd yn symud tuag yn ôl. Felly mae gennym nid yn unig yr rhif yr ydym am i storio, mae gennym lle mae'n cyfeirio at nesaf a lle rydym yn unig yn dod o. Felly, mae hyn yn caniatáu ar gyfer rhywfaint o groesi yn well. Nodau Felly cysylltu'n ddwbl, debyg iawn, dde? Dim ond gwahaniaeth yn awr rydym fod â nesaf a blaenorol. Mae'n yw'r unig wahaniaeth. Felly, pe baem yn prepend neu append-- rydym Nid oes rhaid i unrhyw god ar gyfer hyn i fyny Yma-- ond pe baech yn ceisio mewnosod iddo, y peth pwysig mae angen i chi wneud yn siŵr eich bod yn neilltuo yn eich blaenorol a'ch pwyntydd nesaf yn gywir. Felly, yn yr achos hwn, byddai chi nid yn unig yn ymgychwyn nesaf, rydych ymgychwyn blaenorol. Os ydym yn ar ben y rhestr, rydym yn Byddai nid yn unig yn gwneud pen cyfartal newydd, ond dylai ein blaenorol newydd bwyntio at y pen, dde? Dyna'r unig wahaniaeth. Ac os ydych chi eisiau mwy o ymarfer gyda rhain gyda rhestrau cysylltiedig, gyda mewnosod, gyda dileu, gyda mewnosoder i mewn i restr amrywiol, os gwelwch yn dda edrychwch ar study.cs50.net. Mae 'na griw o ymarferion gwych. Yr wyf yn eu argymell yn fawr. Yr wyf yn dymuno oedd gennym amser i fynd drwyddynt ond mae llawer o strwythurau data i gael drwy. OK, felly tablau hash. Mae'n debyg mai dyma'r mwyaf bit ddefnyddiol ar gyfer eich pset yma oherwydd eich bod yn mynd i fod yn gweithredu un o'r rhain, neu rhoi cynnig. Fi 'n sylweddol yn hoffi tablau hash. Maen nhw 'n bert oera. Felly y bôn beth digwydd yw tabl hash yw pan mae gwir angen gyflym mewnosod, dileu, ac am-edrych. Dyna'r pethau yr ydym ni'n blaenoriaethu mewn tabl hash. Gallant fynd eithaf mawr, ond fel y byddwn yn gweld gyda cheisiau, mae yna bethau sydd yn fwy o lawer. Ond yn y bôn, i gyd yn hash tabl yn swyddogaeth hash sy'n dweud wrthych pa bwced i roi pob o'ch data, pob un o'ch elfennau mewn. Ffordd syml i feddwl am dabl hash yw mai dim ond bwcedi o bethau, iawn? Felly, pan fyddwch yn didoli pethau yn ôl fel y llythyren gyntaf eu henw, sy'n fath o fel tabl hash. Felly, pe bawn yn grŵp yr ydych guys yn yn grwpiau o pwy bynnag ei ​​enw yn dechrau gyda A dros yma, neu bwy bynnag sy'n pen-blwydd yn ym mis Ionawr, Chwefror, Mawrth, beth bynnag, mae hynny'n effeithiol creu tabl hash. Dim ond ei fod yn creu bwcedi sy'n roi trefn ar eich elfennau i mewn fel y gallwch ddod o hyd iddynt yn haws. Felly, y ffordd pan fydd angen i mi i ddod o hyd i un o chi, Nid oes rhaid i mi chwilio drwy bob un o'ch enwau. Gallaf fod yn debyg, oh, yr wyf yn gwybod bod Pen-blwydd Danielle yn in-- GYNULLEIDFA: --April. SIARADWR 1: Ebrill. Felly, yr wyf yn edrych yn fy Ebrill bwced, a gydag unrhyw lwc, bydd hi'n fydd yr unig un i mewn 'na ac yn fy amser yn gyson yn hynny o beth, ond os oes rhaid i mi edrych drwy criw cyfan o bobl, mae'n mynd i gymryd llawer mwy o amser. Felly tablau hash yn wir yn unig bwcedi. Ffordd hawdd i feddwl amdanynt. Felly, yn beth pwysig iawn am tabl hash yn swyddogaeth hash. Felly mae'r pethau Fi jyst siarad am, fel eich llythyr gyntaf eich enw cyntaf neu eich mis pen-blwydd, mae'r rhain yn syniadau sy'n 'n sylweddol cydberthyn i swyddogaeth hash. 'I' jyst yn ffordd o benderfynu pa bwced eich bod yn elfen yn mynd i mewn, OK? Felly, ar gyfer pset hon, gallwch edrych i fyny 'n bert lawer unrhyw swyddogaeth hash yr ydych ei eisiau. Nid oes rhaid i fod yn eich pen eich hun. Mae rhai rhai 'n sylweddol oera allan yna sy'n gwneud pob math o mathemateg crazy. Ac os ydych chi am wneud eich gwirydd sillafu super gyflym, Byddwn yn bendant edrych i mewn i un o'r rheini. Ond mae yna hefyd y rhai syml, fel cyfrifiannu swm y geiriau, fel Mae pob llythyren a rhif. Cyfrifiannu y swm. Sy'n penderfynu y bwced. Maent hefyd yn cael y rhai hawdd a yn union fel pob un o'r A yn fan hyn, pob un o'r B sydd yma. Unrhyw un o'r rheiny. Yn y bôn, 'i jyst yn dweud wrthych pa mynegai array eich elfen ddylai fynd i mewn. Dim ond penderfynu y bucket-- 'i' i gyd swyddogaeth hash yn. Felly dyma mae gennym enghraifft sy'n dim ond y llythyren gyntaf y llinyn fy mod yn siarad amdani. Felly, mae gennych rhywfaint o hash sy'n dim ond y llythyren gyntaf eich llinyn minws A, a fydd yn rhoi i chi rai rhif rhwng 0 a 25. A beth ydych am ei wneud yw gwneud yn siŵr bod hyn yn cynrychioli maint eich hash table-- faint o bwcedi ceir. Gyda llawer o'r rhain swyddogaethau hash, eu bod yn mynd i fod yn dychwelyd gwerthoedd y allai yn llawer uwch na nifer y bwcedi eich bod mewn gwirionedd yn cael yn eich tabl hash, felly mae angen i chi wneud siŵr a mod gan y rhai. Fel arall, mae'n mynd i ddweud, oh, dylai fod mewn bwced 5,000 ond dim ond rhaid i chi 30 bwcedi yn eich tabl hash. Ac wrth gwrs, rydym i gyd yn gwybod bod yn yn mynd i arwain at rai gwallau crazy. Felly gwnewch yn siwr i mod gan y maint eich tabl hash. Cool. Felly gwrthdrawiadau. A yw pawb yn dda hyd yn hyn? Mmhmm? GYNULLEIDFA: Pam y byddai ei dychwelyd gwerth mor fawr? SIARADWR 1: Yn dibynnu ar y algorithm bod eich swyddogaeth hash defnyddio. Bydd rhai ohonynt yn gwneud lluosi crazy. Ac mae'n ymwneud â chael a hyd yn oed yn dosbarthu, fel eu bod yn gwneud rhywfaint o wir yn pethau crazy weithiau. Dyna i gyd. Unrhyw beth arall? OK. Felly gwrthdrawiadau. Yn y bôn, fel y dywedais yn gynharach, yn y senario achos gorau, unrhyw bwced Rwy'n edrych i mewn yn mynd i gael un peth, felly nid oes rhaid i mi edrych o gwbl, dde? Rwy'n naill ai yn gwybod ei fod yno, neu ei fod yn Nid yw, a dyna beth yr ydym yn wir eisiau. Ond os ydym wedi degau o filoedd o pwyntiau data ac yn llai na'r nifer hwnnw o bwcedi, rydym yn mynd i gael gwrthdrawiadau lle yn y pen draw rhywbeth yn mynd i gael i roi diwedd ar i fyny mewn bwced sydd ag elfen eisoes. Felly, y cwestiwn yw, beth ydym yn ei wneud yn yr achos hwnnw? Beth ydym ni'n ei wneud? Rydym eisoes wedi rywbeth yno? A ydym jyst daflu allan? Rhif Mae'n rhaid i ni gadw ddau ohonynt. Felly, y ffordd yr ydym fel arfer yn gwneud hynny yn yr hyn? Beth yw'r strwythur data ni jyst yn siarad am? GYNULLEIDFA: Rhestr Cysylltiedig. SIARADWR 1: Rhestr cysylltiedig. Felly nawr, yn lle pob un o'r rhain bwcedi dim ond cael un elfen, mae'n mynd i gynnwys rhestr cysylltiedig o yr elfennau a gafodd eu hashed i mewn iddo. OK, mae pawb yn fath o cael y syniad? Oherwydd na allem gael amrywiaeth oherwydd nid ydym yn gwybod faint o bethau yn mynd i fod mewn 'na. Mae rhestr cysylltiedig yn ein galluogi i wedi dim ond union nifer y yn cael eu hashed i mewn i'r bwced, dde? Felly llinellol treiddgar yw bôn idea-- hwn mae'n un ffordd i ddelio â gwrthdrawiad. Yr hyn y gallwch chi ei wneud yw os, yn hyn o achos, aeron ei hashed i mewn i 1 ac mae gennym eisoes rhywbeth yno, 'ch jyst dal i fynd i lawr hyd nes y byddwch yn dod o hyd i slot gwag. Dyna un ffordd i ymdrin â hwy. Y ffordd arall i drin y mae gyda hyn yr ydym newydd called-- y cysylltu Gelwir y rhestr yn cael ei gadwyno. Felly, y syniad hwn yn gweithio os eich tabl hash yn eich barn chi yn llawer mwy na'r gosod eich data, neu os ydych yn am geisio lleihau gadwyno nes ei fod yn gwbl angenrheidiol. Felly, mae un peth yn llinol treiddgar amlwg yn golygu bod eich swyddogaeth hash yn ddim cweit mor ddefnyddiol oherwydd eich bod yn mynd i roi diwedd ar i fyny gan ddefnyddio eich swyddogaeth hash, mynd i bwynt, llinol chi ymchwilio i lawr i rhywfaint o le sydd ar gael. Ond yn awr, wrth gwrs, unrhyw beth arall sy'n dod i ben i fyny yno, rydych yn mynd i gael i chwilio hyd yn oed ymhellach i lawr. Ac mae llawer mwy draul chwilio sy'n mynd i mewn i fewnbynnu elfen yn eich tabl hash yn awr, dde? Ac yn awr pan fyddwch yn mynd ac yn ceisio dod o hyd aeron eto, rydych chi'n mynd i hash iddo, ac mae'n mynd i ddweud, oh, edrychwch mewn bwced 1, ac nid yw'n mynd i fod yn mewn bwced 1, felly rydych chi'n mynd i gael i groesi drwy weddill y rhain. Felly mae'n ddefnyddiol weithiau, ond yn y rhan fwyaf o achosion, rydym yn mynd i ddweud bod gadwyno yw'r hyn rydych am ei wneud. Felly, rydym yn siarad am hyn yn gynharach. Cawn ychydig o flaen fy hun. Ond gadwyno yn y bôn bod pob bwced yn eich tabl hash yn unig yw rhestr cysylltiedig. Felly ffordd arall, neu fwy technegol ffordd, i feddwl am dabl hash yw mai dim ond amrywiaeth o restrau cysylltiedig, a oedd pan fyddwch yn ysgrifennu eich geiriadur ac rydych yn ceisio ei lwytho, meddwl am y peth fel yn amrywiaeth o restrau cysylltiedig yn ei gwneud yn llawer haws i chi ei ymgychwyn. GYNULLEIDFA: Felly tabl hash Mae maint a bennwyd ymlaen llaw, fel [Anghlywadwy] o bwcedi? SIARADWR 1: Iawn. Felly, mae ganddo nifer penodol o bwcedi eich bod determine-- Dylai yr ydych guys croeso i chwarae gyda nhw. Gall fod yn 'n bert oera i weld beth sy'n digwydd wrth i chi newid eich nifer y bwcedi. Ond ie, mae ganddo gosod nifer o bwcedi. Yr hyn yn eich galluogi i ffitio fel llawer o elfennau ag y byddwch ei angen yw hyn gadwyno ar wahân lle rydych yn wedi cysylltu rhestri ym mhob bwced. Mae hynny'n golygu eich tabl hash yn union faint eich bod angen iddo fod, dde? Dyna holl bwynt rhestrau cysylltiedig. Cool. Fel bod pawb yn iawn yno? Mae pob hawl. Ah. Beth yn union ddigwyddodd? Really nawr. Dyfalwch rhywun wedi lladd fi. OK rydym yn mynd i fynd i mewn geisiau, sef ychydig yn wallgof. Rwy'n hoffi tablau hash. Rwy'n credu eu bod 'n sylweddol oera. Ceisiau yn oer, hefyd. Felly, oes unrhyw un yn cofio beth cynnig arni yw? Dylech fod wedi mynd dros ei fod yn fyr mewn darlith? Ydych chi'n cofio math o sut mae'n gweithio? GYNULLEIDFA: Im 'jyst yn nodio ein bod yn mynd drosto. SIARADWR 1: Rydym yn mynd drosto. OK, rydym yn wir yn mynd i fynd drosto yn awr yw hyn yr ydym yn ei ddweud. GYNULLEIDFA: Dyna i goeden adalw. SIARADWR 1: Yeah. Mae'n goeden adalw. Awesome. Felly, un peth i sylwi yma yw ein bod yn yn edrych ar gymeriadau unigol yma, dde? Felly, cyn â'n swyddogaeth hash, rydym yn yn edrych ar y geiriau yn ei gyfanrwydd, ac yn awr rydym yn edrych yn fwy yn y cymeriadau, dde? Felly mae gennym Maxwell dros yma a Mendel. Felly, yn y bôn mae try-- ffordd o feddwl am hyn yw bod pob lefel yma yn amrywiaeth o lythyrau. Felly, mae hyn yn eich nod gwraidd fan hyn, dde? Mae hyn yn cynnwys yr holl gymeriadau y wyddor am ddechrau pob gair. A beth ydych am ei wneud yw dyweder, OK, mae gennym rai gair M. Rydym yn mynd i chwilio am Maxwell, felly rydym yn mynd i M. A M pwyntiau at ei chyfanrwydd eraill amrywiaeth lle mae pob air, cyn belled â bod yn air sydd wedi A fel yr ail lythyr, cyn belled ag y mae gair hwnnw Mae B wrth i'r ail lythyr, bydd yn cael pwyntydd mynd i ryw amrywiaeth nesaf. Nid oes yn ôl pob tebyg yn gair sy'n MP rhywbeth, felly ar y sefyllfa P yn hyn array, byddai'n jyst yn null. Byddai'n dweud, OK, nid oes gair sydd wedi M ddilyn gan P, OK? Felly os ydym yn meddwl am y peth, pob un un o'r pethau llai hyn mewn gwirionedd yn un o'r rhain araeau mawr o A trwy Z. Felly, yr hyn a allai fod yn un o'r pethau mae hynny'n fath o anfantais o cynnig arni? GYNULLEIDFA: Mae llawer o gof. SIARADWR 1: Mae'n tunnell o gof, dde? Mae pob un o'r blociau hyn yma yn cynrychioli 26 o leoedd, 26 elfen arae. Felly geisiau yn cael hynod drwm gofod. Ond maent yn gyflym iawn. Felly, yn anhygoel o gyflym ond 'n sylweddol o le aneffeithlon. Kind o rhaid i chyfrif pa un yr ydych ei eisiau. Mae'r rhain yn 'n sylweddol oera ar gyfer eich pset, ond maent yn cymryd llawer o gof, felly yr ydych yn masnachu i ffwrdd. Yeah? GYNULLEIDFA: A fyddai'n bosibl i sefydlu cynnig arni ac yna unwaith y bydd gennych yr holl data ynddo eich bod need-- Nid wyf yn gwybod os byddai hynny'n gwneud synnwyr. Roeddwn yn cael gwared ar yr holl Cymeriadau NULL, ond yna ni fyddech yn gallu mynegai them-- SIARADWR 1: dal i fod angen arnynt i chi. GYNULLEIDFA: - yr un ffordd bob tro. SIARADWR 1: Yeah. Mae angen y cymeriadau null chi adael eich bod yn gwybod os nad oes 'na air yno. Oedd Ben mae gennych rywbeth yr ydych eisiau? OK. Mae pob hawl, felly rydym yn mynd i fynd ychydig yn fwy i mewn i'r manylion technegol y tu ôl i cynnig arni a gweithio trwy esiampl. Iawn, felly mae hwn yn yr un peth. Tra yn rhestr cysylltiedig, mae ein prif math o- beth yw'r gair yr wyf am ei gael? - fel bloc adeiladu yn nod. Yn cynnig arni, mae gennym hefyd nod, ond mae wedi diffinio'n wahanol. Felly, mae gennym rai bool sy'n cynrychioli a yw gair mewn gwirionedd yn bodoli yn y lleoliad hwn, ac yna mae gennym rai amrywiaeth Yma-- neu yn hytrach, mae hwn yn pwyntydd i amrywiaeth o 27 o gymeriadau. Ac mae hyn yn ar gyfer, yn yr achos hwn, mae hyn yn 27-- Rwy'n siŵr bob un ohonoch yn debyg, aros, mae 26 o lythyrau yn yr wyddor. Pam mae gennym 27? Felly, yn dibynnu ar y ffordd yr ydych yn gweithredu hyn, mae hyn yn dod o pset hwnnw caniatáu ar gyfer collnodau. Felly dyna pam y un ychwanegol. Bydd gennych hefyd mewn rhai achosion y terminator null yn cael ei gynnwys fel un o'r cymeriadau ei fod yn caniatáu i fod, a dyna sut y maent yn gwirio i weld a yw'n ddiwedd y gair. Os oes gennych ddiddordeb, edrychwch ar Fideo Kevin ar study.cs50, yn ogystal â Wicipedia Mae gan rhai adnoddau da yno. Ond rydym yn mynd i fynd drwy'r unig fath o sut y byddwch yn gweithio trwy cynnig arni os ydych yn cael un. Felly mae gennym un super syml yma y Mae gan y geiriau "bat" a "chwyddo" ynddynt. Ac wrth i ni weld i fyny yma, gofod bach hyn yma cynrychioli ein bool sy'n Meddai, ie, mae hyn yn air. Ac yna mae hyn yn ein araeau o gymeriadau, dde? Felly, rydym yn mynd i fynd drwy dod o hyd i "bat" yn y cais hwn. Felly, yn dechrau ar y brig, dde? A gwyddom fod b cyfateb i yr ail mynegai, yr ail elfen yn y arae hwn, oherwydd bod a b. Felly tua yr ail un. Ac y mae'n ei ddweud, OK, oer, yn dilyn hynny i mewn yr amrywiaeth nesaf, oherwydd os ydym yn cofio, nid yw'n bod pob un o'r rhain mewn gwirionedd yn cynnwys yr elfen. Mae pob un o'r rhain araeau yn cynnwys pwyntydd, dde? Mae'n wahaniaeth pwysig i'w wneud. Rwy'n gwybod hyn yn mynd i be-- ceisiau yn galed iawn i fynd ar y tro cyntaf, felly hyd yn oed os yw hyn yn ail neu'r trydydd tro ac mae'n dal i fod yn garedig o ymddangos yn anodd, Rwy'n addo os byddwch yn mynd gwylio y tymor byr eto yfory, Mae'n debyg y bydd yn gwneud llawer mwy o synnwyr. Mae'n cymryd llawer i dreulio. Rwy'n dal i weithiau mod fel, aros, beth yw cais? Sut ydw i'n defnyddio hyn? Felly rydym wedi b yn yr achos hwn, sef ein hail mynegai. Os byddwn wedi, dyweder, c neu d neu unrhyw lythyr arall, mae angen i fapio hwnnw yn ôl i'r mynegai o'n amrywiaeth hwnnw sy'n cyfateb i. Felly, byddem yn eu cymryd fel rchar ac rydym yn unig tynnu oddi ar i fapio i mewn i 0 i 25 oed. Mae pawb yn dda sut yr ydym ddangos bod ein cymeriadau? OK. Felly, rydym yn mynd i'r ail un ac rydym yn gweld hynny, ie, nid yw i NULL. Gallwn symud ymlaen at y casgliad nesaf. Felly, rydym yn mynd ymlaen i hwn amrywiaeth nesaf yma. Ac yr ydym yn ei ddweud, OK, yn awr rydym yn angen i ni weld os yw wedi cyrraedd. Ydy A null neu a yw'n mewn gwirionedd yn symud ymlaen? Felly mae mewn gwirionedd yn symud ymlaen yn amrywiaeth hwn. Ac yr ydym yn ei ddweud, OK, t yw ein llythyr diwethaf. Felly, rydym yn mynd i'r t yn y mynegai. Ac yna rydym yn symud ymlaen oherwydd mae un arall. Ac mae hyn yn un yn dweud y bôn hynny, ie, mae'n dweud bod yna air Yma-- bod os byddwch yn dilyn hyn llwybr, yr ydych wedi cyrraedd mewn gair, yr ydym yn ei wybod yw "ystlum." Ie? GYNULLEIDFA: A yw'n safonol i gael y fel mynegai 0 ac wedyn yn cael rhyw fath o 1 neu i fod ar y diwedd? SIARADWR 1: No. Felly, os ydym yn edrych yn ôl ar ein datganiad yma, mae'n bool, felly mae'n ei elfen ei hun yn eich nod. Felly nid yw'n rhan o'r rhesi. Cool. Felly, pan fyddwn yn gorffen ein gair ac rydym yn ar amrywiaeth hwn, yr hyn yr ydym am ei wneud yn gwneud siec am yw hyn air. Ac yn yr achos hwn, byddai'n dychwelyd ie. Felly, ar y nodyn hwnnw, rydym yn gwybod bod "sw" - rydym yn gwybod fel bodau dynol fod "sw" yn air, iawn? Ond yn cael eu ceisiwch yma byddai yn dweud, na, nid yw'n. A byddai'n dweud hynny gan ein wedi nid yw'n dynodi fel gair yma. Hyd yn oed er y gall yr ydym yn croesi hyd at amrywiaeth hwn, Byddai'r cynnig hwn yn dweud, na, Nid yw sw yn eich geiriadur oherwydd nad ydym wedi ei dynodi felly. Felly, un ffordd o wneud that-- oh, ddrwg gennym, mae hyn yn un. Felly, yn yr achos hwn, nid yw "sw" yw gair, ond y mae yn ein cynnig. Ond yn yr un, yn dweud ein bod am ei gael cyflwyno'r gair "bath," beth sy'n digwydd yw ein bod yn dilyn through-- b, a, t. Ein bod mewn amrywiaeth hon, ac rydym yn mynd i chwilio am h. Yn yr achos hwn, pan fyddwn yn edrych ar y pwyntydd yn h, mae'n pwyntio at NULL, OK? Felly, oni bai ei fod yn benodol gan dynnu sylw at amrywiaeth arall, ydych yn cymryd yn ganiataol bod yr holl awgrymiadau yn y arae hon yn pwyntio at null. Felly, yn yr achos hwn, h yn pwyntio i null felly ni allwn wneud unrhyw beth, felly byddai hefyd yn dychwelyd Nid ffug, "bath" yn fan hyn. Felly nawr rydym yn mewn gwirionedd mynd i fynd drwy'r sut y byddem yn mewn gwirionedd yn dweud bod "sw" yw yn ein cynnig. Sut ydym yn mewnosoder "sw" yn ein cais? Felly, yn yr un ffordd a ddechreuwyd gennym gyda ein rhestr cysylltiedig, rydym yn dechrau ar y gwraidd. Pan fyddwch mewn amheuaeth, yn dechrau am y wraidd pethau hyn. A byddwn yn ei ddweud, OK, z. z yn bodoli yn hyn, ac mae'n ei wneud. Felly, rydych yn symud ymlaen i eich array nesaf, OK? Ac yna ar yr un nesaf, yr ydym yn ei ddweud, OK, mae o yn bodoli? Mae'n gwneud. Mae hyn eto. Ac yn y blaen ein un nesaf, yr ydym wedi dweud, OK, "sw" eisoes yn bodoli yma. Y cyfan sydd angen ei wneud yw gosod hyn yn gyfartal i wir, bod yna air yno. Os ydych wedi dilyn popeth hyd at flaen y pwynt hwnnw, 'i' yn air, felly dim ond osod cyfartal i cyfryw. Ie? GYNULLEIDFA: Felly, yna yn ei wneud hynny yn golygu bod "ba" yn air hefyd? SIARADWR 1: No. Felly, yn yr achos hwn, "ba" byddem yn ei gael yma, byddem yn ei ddweud yw ei air, a byddai'n dal i fod dim. OK? Mmhmm? GYNULLEIDFA: Felly, ar ôl i chi a yw'n gair a ydych yn dweud ie, yna mae'n bydd yn cynnwys mynd i'r m? SIARADWR 1: Felly, mae hyn wedi ei wneud with-- rydych yn llwytho hyn yn. Yr ydych yn dweud "sw" yn air. Pan fyddwch yn mynd i check-- fel, dywedwch eich bod am ei ddweud, mae "sw" yn bodoli yn y geiriadur hwn? Rydych yn unig yn mynd i chwilio am "sw," ac yna edrychwch i weld os yw'n air. Dydych chi byth yn mynd i symud hyd at m am nad yw hynny'n hyn yr ydych yn chwilio am. Felly, os ydym mewn gwirionedd yn awyddus i ychwanegwch "bath" i mewn i gais hon, byddem yn gwneud yr un peth fel y gwnaethom gyda "sw," ac eithrio byddem yn gweld bod pan fyddwn ceisio cael at h, nid yw'n bodoli. Felly, gallwch chi feddwl am hyn fel cheisio i ychwanegu nod newydd i mewn i restr cysylltiedig, felly byddai angen i ni ychwanegu un arall un o araeau hyn, fel cynifer. Ac yna yr hyn a wnawn yn cael ei rydym yn unig yn gosod yr h elfen o amrywiaeth yma pwyntio at hyn. Ac yna beth y byddem am ei wneud fan hyn? Ychwanegu hi'n gyfartal i gwir am ei fod yn air. Cool. Yr wyf yn gwybod. Nid Ceisiau yw'r rhai mwyaf cyffrous. Ymddiriedolaeth i mi, yr wyf yn gwybod. Felly, un peth i sylweddoli gyda cheisiau, Dywedais, maent yn effeithlon iawn. Felly, rydym wedi gweld eu bod yn ymgymryd â tunnell o ofod. Maen nhw'n fath o ddryslyd. Felly pam y byddem byth yn defnyddio'r rhain? Rydym yn defnyddio'r rhain oherwydd eu bod yn anhygoel o effeithlon. Felly, os ydych yn chwilio erioed i fyny gair, rydych yn unig ffinio gan hyd y gair. Felly, os ydych yn chwilio am gair sydd o hyd bump, ydych yn mynd dim ond byth i gael i gwneud ar y mwyaf bum cymariaethau, OK? Felly mae'n ei gwneud yn y bôn yn gyson. Fel mewnosod a am-edrych yn y bôn amser cyson. Felly, os gallwch chi erioed wedi ei gael rhywbeth mewn amser cyson, dyna cystal ag y mae'n mynd. Ni allwch gael yn well na amser cyson am y pethau hyn. Felly, dyna un o'r pwyntiau cadarnhaol enfawr o geisiau. Ond mae'n llawer o le. Felly fath o rhaid i chi benderfynu beth sydd yn fwy pwysig i chi. Ac ar gyfrifiaduron heddiw, mae'r lle y gall cais gymryd hyd Nid yw efallai yn effeithio ar eich bod yn llawer, ond efallai rydych yn delio â rhywbeth sydd â llawer, llawer mwy o bethau, ac cynnig arni nid yn unig yn rhesymol. Ie? GYNULLEIDFA: Arhoswch, felly mae gennych 26 llythyrau ym mhob un un? SIARADWR 1: Mmhmm. Yeah, mae gennych 26. Gennych rywfaint yn farciwr geiriau ac yna mae gennych 26 o arwyddion ym mhob un. Ac maen nhw'n point-- GYNULLEIDFA: A phob 26, oes gan bob un ohonynt 26? SIARADWR 1: Ydw. A dyna pam, ag y gallwch gweld, yn ehangu yn eithaf cyflym. Mae pob hawl. Felly, rydym yn mynd i fynd i mewn i goed, a oedd Rwy'n teimlo fel ei haws a bydd yn ôl pob tebyg fod hachub bach neis o geisiau yno. Felly, gobeithio y rhan fwyaf ohonoch wedi gweld coeden o'r blaen. Ddim yn hoffi'r 'n bert rhai y tu allan, yr wyf yn ddim yn gwybod os oes unrhyw un Aeth yr awyr agored yn ddiweddar. Es afal codi y penwythnos hwn, ac oh fy diar, yr oedd yn brydferth. Doeddwn i ddim yn adnabod dail Gallai edrych mor bert. Felly, mae hyn yn unig yw coeden, dde? Dim ond rhywfaint o nod, ac mae'n cyfeirio at griw o nodau eraill. Fel y gwelwch yma, mae hyn yn fath o thema ailadroddus. Nodau pwyntio at ganolfannau yn fath o hanfod llawer o strwythurau data. 'I jyst yn dibynnu ar sut yr ydym yn rhaid eu cyfeirio at ei gilydd a sut yr ydym yn croesi drwyddynt a sut yr ydym yn rhowch bethau sy'n penderfynu eu nodweddion gwahanol. Felly, dim ond rhywfaint o derminoleg, yr wyf wedi ei ddefnyddio o'r blaen. Felly gwraidd yn beth bynnag sydd ar y brig. 'i' lle'r ydym bob amser yn dechrau. Gallwch chi feddwl am y peth fel y pen hefyd. Ond ar gyfer coed, rydym yn tueddu i yn cyfeirio ati fel y gwraidd. Unrhyw beth yn y Yma-- gwaelod yn y, bottom-- iawn iawn yn dail ystyriwyd. Felly, mae'n mynd ynghyd â'r beth goeden gyfan, dde? Dail ar ymylon eich coeden. Ac yna mae gennym hefyd un neu ddau o termau i siarad am nodau mewn perthynas at ei gilydd. Felly mae gennym rhiant, plant, a brodyr a chwiorydd. Felly, yn yr achos hwn, 3 yw'r rhiant o 5, 6, a 7. Felly mae'r rhiant yn beth bynnag sydd un cam yn uwch beth bynnag yr ydych chi'n gan gyfeirio at, felly dim ond fel coeden deulu. Gobeithio, mae hyn i gyd ychydig yn ychydig yn fwy greddfol na'r ceisiau. Brodyr a chwiorydd yw unrhyw sydd â yr un rhiant, dde? Maen nhw ar yr un lefel yma. Ac yna, fel yr oeddwn gan ddywedyd, plant yn unig beth bynnag yw un cam isod y nod dan sylw, OK? Cool. Felly coeden ddeuaidd. A all unrhyw un yn dyfalu ar un o nodweddion y goeden ddeuol? GYNULLEIDFA: Max dwy ddeilen. SIARADWR 1: Iawn. Felly dim mwy na dwy ddeilen. Felly, yn yr un o'r blaen, yr oedd gennym yr un yma fod gan dri, ond mewn coeden ddeuaidd, gennych max o ddau plant am bob rhiant, dde? Mae un arall nodwedd ddiddorol. Oes rhywun yn gwybod hynny? Goeden ddeuol. Felly, bydd coeden ddeuaidd yn cael popeth ar the-- nid yw'r un yn sorted-- ond mewn coeden ddeuaidd didoli, popeth ar y dde yn fwy na'r rhiant, a phopeth ar y chwith yn llai na'r rhiant. Ac mae hynny wedi bod yn cwis cwestiwn o'r blaen, mor dda i wybod. Felly, y ffordd yr ydym yn diffinio hyn, unwaith eto, mae gennym nod arall. Mae hyn yn edrych yn debyg iawn i'r hyn? Ddwbl GYNULLEIDFA: Yn gysylltiedig rhestrau SIARADWR 1: Rhestr cysylltiedig dwbl, dde? Felly, os byddwn yn cymryd lle'r hyn gyda blaenorol ac nesaf, byddai hyn fod yn rhestr cysylltiedig ddwbl. Ond yn yr achos hwn, rydym yn mewn gwirionedd wedi chwith ac i'r dde a dyna ni. Fel arall, 'i' yn union yr un fath. Rydym yn dal i gael yr elfen rydych yn chwilio am, ac os oes gen ti ddau awgrymiadau mynd i beth bynnag sydd nesaf. Yeah, coeden chwilio mor deuaidd. Os byddwn yn sylwi, popeth ar y i'r dde yma yn fwy than-- neu mae popeth ar unwaith i'r dde yma yn fwy na, popeth yma yn llai na. Felly, pe baem yn chwilio drwy, mae'n Dylai edrych yn agos iawn at chwilio deuaidd yma, dde? Ac eithrio yn hytrach na chwilio am hanner yr amrywiaeth, rydym yn dim ond edrych ar un ai y chwith ochr neu yr ochr dde o'r goeden. Felly, mae'n mynd ychydig yn symlach, dwi'n meddwl. Felly, os yw eich gwraidd yn NULL, amlwg 'i' jyst ffug. Ac os ei fod yno, yn amlwg ei fod yn wir. Os yw'n llai na, rydym yn chwilio y chwith. Os yw'n fwy na, rydym yn chwilio y dde. Mae'n union fel chwiliad deuaidd, dim ond strwythur data gwahanol ein bod yn defnyddio. Yn hytrach na amrywiaeth, 'i' jyst goeden ddeuol. OK, pentyrrau. A hefyd, mae'n edrych yn debyg i ni allai fod ychydig bach o amser. Os ydym yn ei wneud, rwy'n hapus i fynd dros unrhyw ran o hyn eto. OK, felly pentyrrau. A oes unrhyw un yn cofio beth stacks-- unrhyw nodweddion stac? Iawn, felly mae'r rhan fwyaf ohonom, yr wyf yn meddwl, bwyta yn yr ystafell fwyta halls-- gymaint ag y mae'n bosibl na fyddwn yn hoffi. Ond yn amlwg, gallwch chi feddwl am pentwr llythrennol yn union fel pentwr o hambyrddau neu pentwr o bethau. A beth sy'n bwysig i sylweddoli yw ei fod yn something-- y nodwedd yr ydym yn ei alw by-- yw LIFO. Oes rhywun yn gwybod beth sy'n sefyll am? Mmhmm? GYNULLEIDFA: Olaf i mewn, cyntaf allan. SIARADWR 1: Iawn, bara i mewn, cyntaf allan. Felly os ydym yn gwybod, os ydym yn pentyrru pethau i fyny, y peth hawsaf i chrafangia off-- ac efallai yr unig beth y gallwn ei chrafangia off os yw ein pentwr yw enough-- mawr yw bod elfen top. Felly, beth bynnag ei ​​roi ar last-- fel y gwelwn yma, beth bynnag ei ​​wthio ar y rhan fwyaf recently-- yw mynd i fod y cyntaf beth yr ydym yn pop i ffwrdd, OK? Felly, yr hyn sydd gennym yma yw struct typedef arall. Mae hyn yn wir yn union fel a damwain cwrs yn y strwythur data, felly mae 'na lot taflu ar chi guys. Yr wyf yn gwybod. Felly eto struct arall. Yay gyfer strwythurau. Ac yn yr achos hwn, mae'n rhywfaint o pwyntydd i amrywiaeth sydd â rhyw allu. Felly, mae hyn yn cynrychioli ein pentwr yma, fel ein amrywiaeth gwirioneddol mae hynny'n cynnal ein elfennau. Ac yna dyma mae gennym rai faint. Ac fel arfer, rydych am ei gadw golwg ar pa mor fawr yw eich stac yn oherwydd yr hyn mae'n mynd i ganiatáu chi ei wneud yw os ydych yn gwybod y maint, mae'n eich galluogi i ddweud, OK, a wyf yn gallu? Alla i ychwanegu unrhyw beth mwy? Ac mae hefyd yn dweud wrthych lle mae'r ben eich pentwr yw er mwyn i chi wybod beth rydych Gall gymryd i ffwrdd mewn gwirionedd. Ac mae hynny'n wir yn mynd i fod ychydig yn fwy clir yma. Felly, ar gyfer gwthio, un peth, os ydych oedd erioed i weithredu gwthio, gan fy mod i'n jyst yn dweud, eich pentwr Mae maint cyfyngedig, dde? Roedd gan ein array rhywfaint o gapasiti. Mae'n arae. Mae'n faint penodol, felly mae angen i ni gwneud yn siŵr nad ydym yn rhoi mwy i mewn i'n amrywiaeth nag yr ydym mewn gwirionedd yn cael lle ar gyfer. Felly, pan fyddwch yn creu gwthio swyddogaeth, peth cyntaf i chi ei wneud yw dweud, OK, mae gen i le yn fy pentwr? Oherwydd os nad wyf yn ei wneud, mae'n ddrwg gennyf, Nid wyf yn gallu storio eich elfen. Os wyf yn ei wneud, yna rydych am ei storio ei fod ar frig y pentwr, dde? A dyma pam yr ydym wedi i gadw golwg ar ein maint. Os nad ydym yn cadw golwg ar ein maint, nad ydym yn gwybod ble i roi. Nid ydym yn gwybod faint o bethau yn ein amrywiaeth yn barod. Fel yn amlwg mae yna ffyrdd hynny efallai y gallech wneud hynny. Gallech ymgychwyn popeth i nwl ac yna edrychwch am y NULL diweddaraf, ond mae yn beth llawer haws yn unig i ddweud, OK, cadw golwg ar faint. Fel yr wyf yn gwybod fy mod wedi pedair elfen yn fy array, felly y peth nesaf ein bod yn rhoi ar, rydym yn mynd i storio ar fynegai 4. Ac yna, wrth gwrs, mae hyn yn golygu bod eich bod wedi gwthio rhywbeth yn llwyddiannus ar eich pentwr, rydych eisiau i gynyddu maint fel eich bod yn gwybod ble rydych chi mor eich bod yn gallu gwthio mwy o bethau ar. Felly, os ydym yn ceisio pop rhywbeth oddi ar y pentwr, yr hyn a allai fod y peth cyntaf ein bod am i wirio am? Rydych yn ceisio cymryd rhywbeth oddi ar eich pentwr. A ydych yn sicr mae 'na rhywbeth yn eich pentwr? Rhif Felly, beth y gallem am wirio? GYNULLEIDFA: [Anghlywadwy]. SIARADWR 1: Gwirio am faint? Maint. Felly, rydym am i wirio i weld os ein maint yn fwy na 0, OK? Ac os ydyw, yna rydym am i ostwng ein maint erbyn 0 a dychwelyd hynny. Pam? Yn yr un cyntaf roeddem yn gwthio, rydym yn gwthio ei ar faint a maint wedyn diweddaru. Yn yr achos hwn, rydym yn decrementing maint ac yna mynd ag ef i ffwrdd, plicio ei gan ein amrywiaeth. Pam y gallai rydym yn ei wneud hynny? Felly, os oes gen i un peth ar fy corn, beth fyddai fy maint ar y pwynt hwnnw? 1. A lle mae elfen 1 ei storio? Ar ba mynegai? GYNULLEIDFA: 0. SIARADWR 1: 0. Felly, yn yr achos hwn, rydym yn angen i ni wneud bob amser sure-- yn hytrach na dychwelyd maint minws 1, oherwydd ein gwybod bod ein elfen yw yn mynd i gael eu storio ar 1 yn llai beth bynnag yw ein maint, mae hyn dim ond yn cymryd gofal ohono. Mae'n ffordd ychydig yn fwy cain. Ac rydym yn unig lleihau a ein maint ac yna dychwelyd maint. Mmhmm? GYNULLEIDFA: Amcana jyst yn gyffredinol, pam y byddai hyn yn strwythur data yn fuddiol? SIARADWR 1: Mae'n dibynnu ar eich cyd-destun. Felly, ar gyfer rhai o'r theori, os ydych yn gweithio with-- OK, gadael i mi weld os oes un buddiol bod o fudd i fwy nag y tu allan o CS. Gydag staciau, unrhyw adeg ei angen arnoch i gadw golwg ar rywbeth sydd yw'r ychwanegwyd fwyaf diweddar yw pan rydych yn mynd i eisiau defnyddio stac. Ac ni allaf feddwl am dda enghraifft o hynny ar hyn o bryd. Ond pryd bynnag y diweddaraf beth sydd bwysicaf i chi, dyna pryd stac yn mynd i fod yn ddefnyddiol. Im 'yn ceisio i feddwl os mae 'na un da ar gyfer hyn. Os byddaf yn meddwl am enghraifft dda yn y nesaf 20 munud, byddaf yn bendant yn dweud wrthych. Ond yn gyffredinol, os oes unrhyw beth, fel y dywedais y rhan fwyaf, lle mae'r rhan fwyaf diweddar yn fwyaf pwysig, mae hynny'n ble daw pentwr i mewn i chwarae. Tra bod ciwiau yn garedig i'r gwrthwyneb. A'r holl cŵn bach. Onid yw hyn yn wych, dde? Rwy'n teimlo fel y dylwn os oes gen fideo bunny i'r dde yng nghanol adran i chi guys oherwydd mae hwn yn adran dwys. Felly ciw. Yn y bôn ciw yn debyg i llinell. Rydych guys Rwy'n siŵr y defnydd bob dydd hwn, yn union fel yn ein neuaddau bwyta. Felly, mae'n rhaid i ni fynd i mewn a chael ein hambyrddau, rwy'n yn sicr rhaid i chi aros yn unol i swipe neu gael eich bwyd. Felly y gwahaniaeth yma yw bod hyn yn FIFO. Felly os LIFO yn olaf i mewn, cyntaf allan, FIFO yn gyntaf i mewn, allan gyntaf. Felly dyma lle beth bynnag yr ydych yn rhoi ar cyntaf yw'r un mwyaf pwysig. Felly, os ydych yn aros mewn line-- gallwch chi dychmygwch os ydych yn mynd i mynd yn cael y iPhone newydd ac yr oedd pentwr lle mae'r person olaf yn unol got it gyntaf, Byddai pobl yn lladd ei gilydd. Felly FIFO, rydym ni i gyd yn gyfarwydd iawn â hwy yn y byd go iawn yma, ac mae pob un wedi ei wneud gyda mewn gwirionedd math o ail-greu y llinell cyfan a chiwio strwythur. Felly, tra gyda'r stac, rydym wedi gwthio a pop. Gyda ciw, rydym wedi enqueue a dequeue. Felly, yn y bôn yn golygu enqueue roi ar y cefn, a dulliau dequeue cymryd i ffwrdd o'r tu blaen. Felly mae ein strwythur data yn ychydig bach yn fwy cymhleth. Mae gennym ail beth i gadw golwg ar. Felly heb y pen, mae hyn yn union pentwr, dde? Mae hyn yn yr un strwythur fel pentwr. Yr unig beth yn wahanol yn awr yw ein bod cael pen hwn, a beth yn eich barn chi yn mynd i gadw golwg ar? GYNULLEIDFA: Mae'r un cyntaf. SIARADWR 1: Iawn, mae'r peth cyntaf yr ydym yn eu rhoi ar. Mae'r pennaeth ein ciw. Pwy bynnag sydd yn gyntaf yn unol. Mae pob hawl, felly os ydym yn ei wneud enqueue. Unwaith eto, gydag unrhyw un y strwythurau data, gan ein bod yn delio gydag amrywiaeth, mae angen i ni wirio os bydd gennym le. Mae hyn yn fath o fel fi dweud chi guys, os byddwch yn agor ffeil, angen i chi wirio am null. Ag unrhyw un o'r pentyrrau hyn a ciwiau, mae angen i chi i weld a oes lle oherwydd ein bod yn delio gydag amrywiaeth maint sefydlog, wrth i ni weld Yma-- 0, 1 i gyd hyd at 5. Felly, yr hyn yr ydym yn ei wneud yn yr achos hwnnw yw gwirio i weld a ydym yn dal i gael lle. A yw ein maint yn llai na gallu? Os felly, mae angen i storio ar y gynffon ac yn diweddaru ein maint. Felly, yr hyn a allai fod y gynffon yn yr achos hwn? Dyw hi ddim yn ysgrifennu allan yn benodol. Sut y byddem yn ei storio? Beth fyddai'r gynffon fod? Felly gadewch i ni gerdded drwy'r esiampl. Felly mae hwn yn amrywiaeth o maint 6, dde? Ac mae gennym ar hyn o bryd, mae ein maint yw 5. A phan fyddwn yn ei roi i mewn, mae'n mynd i fynd i mewn i'r pumed fynegai, dde? Felly storio yn y gynffon. Ffordd arall i ysgrifennu gynffon byddai unig fydd ein amrywiaeth yn mynegai o faint, dde? Mae hyn yn maint 5. Peth nesaf yn mynd i fynd i mewn i 5. Cool? OK. Mae'n mynd ychydig yn fwy cymhleth pan fyddwn yn dechrau cyboli gyda'r pennaeth. Ie? GYNULLEIDFA: A yw hynny'n golygu ein bod yn Byddai wedi datgan arae fod Roedd pum elfen hir a Yna, rydym yn ychwanegu arno? SIARADWR 1: No. Felly, yn yr achos hwn, mae hyn yn stac. Byddai hyn yn cael ei ddatgan fel amrywiaeth o faint 6. Ac yn yr achos hwn, rydym yn dim ond un sydd ar ôl yn cael lle. Iawn, felly mae un peth yn yn hyn achos, os bydd ein pen yw ar 0, Yna, rydym yn unig yn gallu ychwanegu at faint. Ond mae'n mynd ychydig yn anoddach oherwydd mewn gwirionedd, maent yn Nid oes rhaid i sleid ar gyfer hyn, felly dwi'n mynd i dynnu un gan nad yw'n yn eithaf syml â hynny ar ôl i chi yn dechrau cael gwared o bethau. Felly, tra gyda stac chi dim ond byth yn cael i chi boeni am yr hyn y mae'r maint yn pan fyddwch yn ychwanegu rhywbeth ar, gyda ciw angen i chi hefyd wneud yn siŵr bod eich pen yn cael ei cyfrif am, am fod yn beth cŵl am ciwiau yw os nad ydych yn gallu, alli 'n weithredol wneud yn cofleidiol. OK, felly un thing-- oh, mae hyn yn ofnadwy sialc. Un peth i'w ystyried yw'r achos. Byddwn yn jyst yn gwneud pump. Iawn, felly rydym yn mynd i yn dweud y pennaeth yma. Mae hyn yn 0, 1, 2, 3, 4. Y pennaeth sydd yno, ac os gwelwch yn dda cael pethau ynddynt. Ac rydym am ychwanegu rhywbeth mewn, dde? Felly, y peth y mae angen i i ni yn gwybod yw bod y pennaeth bob amser mynd i symud y ffordd hon ac Yna cylch yn ôl o gwmpas, OK? Felly ciw mae hyn wedi gofod, dde? Mae ganddo le yn y cychwyn cyntaf, math o y gwrthwyneb i hyn. Felly, beth mae angen i ni ei wneud yw ein bod Mae angen i gyfrifo'r gynffon. Os ydych yn gwybod bod eich pen Nid yw wedi symud, cynffon yn unig yw eich arae ar y mynegai o faint. Ond mewn gwirionedd, os ydych yn defnyddio ciw, eich pen yn cael ei ddiweddaru yn ôl pob tebyg. Felly beth sydd angen i chi ei wneud yw mewn gwirionedd yn cyfrifo y gynffon. Felly, yr hyn yr ydym yn ei wneud yw fformiwla hon yma, yr wyf i'n mynd i adael i chi guys yn meddwl am, a Yna, byddwn yn siarad am y peth. Felly, mae hyn yn gallu. Felly hefyd y bydd hyn yn mewn gwirionedd rhoi ffordd i wneud hynny i chi. Gan fod yn yr achos hwn, beth? Mae ein pen yw yn 1, mae ein maint yw 4. Os byddwn mod, erbyn 5, rydym yn cael 0, a dyna lle y dylai mewnbwn iddo. Felly, yna yn yr achos nesaf, pe baem yn gwneud hyn, yr ydym yn ei ddweud, OK, gadewch i dequeue rhywbeth. Rydym yn dequeue hyn. Rydym yn cymryd allan yr elfen hon, dde? Ac yn awr mae ein pen yn pwyntio yma, ac rydym am i ychwanegu yn beth arall. Mae hyn yn y bôn y yn ôl ein llinell, dde? Gall Ciwiau lapio o amgylch y rhesi. Dyna un o'r prif wahaniaethau. Staciau, ni allwch wneud hyn. Gyda ciwiau, gallwch gan fod yr holl sy'n bwysig yw eich bod yn gwybod beth Ychwanegwyd yn fwyaf diweddar. Gan fod popeth yn mynd i gael eu hychwanegu yn y cyfeiriad leftward, yn yr achos hwn, ac yna cofleidiol, gallwch parhau i roi elfennau newydd ar flaen y rhesi oherwydd nad yw'n wir flaen y rhesi anymore. Gallwch chi feddwl am gychwyn y array fel lle mae eich pen mewn gwirionedd. Felly fformiwla dyma sut y byddwch yn cyfrifo eich cynffon. Ydy hynny'n gwneud synnwyr? OK. OK, dequeue, ac yna chi guys wedi 10 munud i ofyn unrhyw gwestiynau esboniadol mi rydych eisiau, gan fy mod yn gwybod ei fod yn wallgof. Mae pob hawl, felly yn yr un way-- Nid wyf yn gwybod os ydych yn guys sylwi, ond mae CS yn ymwneud batrymau. Mae pethau'n 'n bert lawer yr un fath, dim ond gyda tweaks bach. Felly, un peth yma. Mae angen i ni wirio i weld a ydym mewn gwirionedd rhywbeth yn ein ciw, dde? Dweud, OK, mae ein maint fwy na 0? Cool. Os ydym yn ei wneud, yna rydym yn symud ein pen, a oedd yw hyn yr wyf newydd ddangoswyd yma. Rydym yn diweddaru ein pen i fod yn un yn fwy. Ac yna rydym yn lleihau a ein maint a dychwelyd yr elfen. Mae llawer mwy cadarn cod ar study.cs50.net, a Fi 'n dal argymell mynd drwyddo os oes gennych amser, hyd yn oed os mai dim ond ffug-god. Ac os ydych chi guys eisiau siarad drwy bod gyda mi un ar un, os gwelwch yn dda gadewch i mi gwybod. Byddwn yn hapus i. Strwythurau data, os byddwch yn cymryd CS 124, wnewch chi helpu gwybod bod strwythurau data yn cael iawn hwyl ac mae hyn yn dechrau. Felly, yr wyf yn gwybod ei bod yn anodd. Mae'n iawn. Rydym yn ei chael yn anodd. Rwy'n dal i wneud. Felly peidiwch â phoeni gormod am y peth. Ond mae hynny yn y bôn eich damwain cwrs mewn strwythurau data. Rwy'n gwybod ei fod yn llawer. A oes unrhyw beth yr ydym hoffwn fynd ar ôl tro? Unrhyw beth yr ydym am ei drafod? Ie? GYNULLEIDFA: Er bod enghraifft, felly y gynffon newydd ar 0 dros hynny? SIARADWR 1: Ydw. GYNULLEIDFA: OK. Felly, yna mynd drwy, byddech yn cael 1 ynghyd â 4 or-- SIARADWR 1: Felly yr ydych yn dweud, pan fyddwn eisiau mynd yn gwneud hyn eto? GYNULLEIDFA: Yeah. Felly, os ydych yn figuring out-- ble mae ydych yn cyfrifo y gynffon oddi wrth hynny? SIARADWR 1: Felly, mae'r gynffon Roedd in-- Newidiais hyn. Felly, yn yr enghraifft yma, roedd hyn yn yr amrywiaeth rydym yn edrych ar, OK? Felly, rydym wedi pethau yn 1, 2, 3, a 4. Felly, rydym wedi ein pen yn hafal i 1 yn y pwynt hwn, ac mae ein maint yn hafal i 4 yn y fan hon, dde? Yr ydych i gyd yn cytuno bod hynny'n wir? Felly, rydym yn gwneud y pen yn ogystal maint, a oedd yn 5 yn rhoi i ni, ac yna rydym mod erbyn 5. Rydym yn cael 0, sy'n dweud wrthym fod 0 yn pa le y mae ein gynffon, lle mae gennym le. GYNULLEIDFA: Beth yw cap? SIARADWR 1: Y cynhwysedd. Mae'n ddrwg gennym. Felly dyna yw maint eich arae. Ie? GYNULLEIDFA: [Anghlywadwy] cyn byddwn yn dychwelyd yr elfen? SIARADWR 1: Felly, yr ydym yn symud y pen neu ddychwelyd o bryd? Felly, os ydym yn symud un, lleihau a faint? Dal ar. Rwy'n bendant yn anghofio un arall. Peidiwch byth â meddwl. Nid oes fformiwla arall. Yeah, byddech am i ddychwelyd y pen ac yna symud yn ôl. GYNULLEIDFA: OK, oherwydd Ar hyn bwynt, y pennaeth oedd ar 0, ac yna rydych am ddychwelyd mynegai 0 ac yna gwneud pen 1? SIARADWR 1: Iawn. Rwy'n credu bod yna un arall fformiwla fath o fel hyn. Nid oes gennyf ei fod ar y top fy mhen fel Dydw i ddim am roi'r un anghywir i chi. Ond yr wyf yn credu ei fod yn berffaith ddilys i dyweder, OK, storio element-- hwn beth bynnag yw-- elfen pennaeth lleihau a dy maint, symud eich pen drosodd, a dychwelyd beth bynnag yr elfen honno yn. Mae hynny'n berffaith ddilys. OK. Rwy'n teimlo fel nad yw hyn yn fel yr most-- nad ydych yn mynd i gerdded allan o'r yma fel, ie, yr wyf yn gwybod geisiau. Rwy'n cael y cyfan. Mae hynny'n iawn. Wyf yn addo. Ond mae strwythurau data yn rhywbeth y mae'n cymryd llawer o amser i ddod i arfer â. Mae'n debyg mai un o'r anoddaf pethau, rwy'n credu, yn y cwrs. Felly mae'n bendant yn cymryd ailadrodd ac edrych at-- I nid oedd yn wir yn gwybod rhestrau cysylltiedig nes i mi wneud llawer gormod gyda nhw, yn yr un ffordd nad oeddwn yn gwneud wir yn deall awgrymiadau nes i mi wedi cael ei ddysgu am ddwy mlynedd ac yn gwneud fy psets hun ag ef. Mae'n cymryd llawer o ailadrodd ac amser. Ac yn y pen draw, bydd yn fath o glicio. Ond yn y cyfamser, os oes gennych fath o ddealltwriaeth lefel uchel o'r hyn mae'r rhain yn ei wneud, eu manteision ac cons-- sef yr hyn ydym yn wir yn tueddu i bwysleisio, yn enwedig yn y cwrs intro. Fel, pam y byddem yn defnyddio'r cynnig arni dros arae? Fel, beth yw'r pethau cadarnhaol a negyddol pob un o'r rheiny? A deall y cyfaddawdau rhwng pob un o'r strwythurau hyn yn beth llawer mwy pwysig ar hyn o bryd. Efallai y bydd un crazy cwestiwn neu ddau dyna mynd i ofyn i chi i weithredu gwthio neu gweithredu pop neu enqueue a dequeue. Ond ar gyfer y rhan fwyaf, ar ôl hynny dealltwriaeth lefel uwch a mwy o amgyffrediad greddfol yw bwysicach nag mewn gwirionedd y gallu i weithredu. Byddai'n wirioneddol wych pe bai pob un ohonoch allai fynd allan a mynd yn gweithredu arni, ond rydym yn deall nad yw o reidrwydd y peth mwyaf rhesymol ar hyn o bryd. Ond y gallwch yn eich pset, os ydych am i, ac yna byddwch yn cael ymarfer, ac yna efallai wnewch chi helpu wir yn ei ddeall. Ie? GYNULLEIDFA: Iawn, felly pa rai sydd rydym yn golygu i'w defnyddio yn y pset? A oes angen i mi ddefnyddio un ohonyn nhw? SIARADWR 1: Ydw. Felly, rydych yn cael eich dewis. Amcana yn yr achos hwn, gallwn siarad am y pset ychydig oherwydd fy mod yn rhedeg drwy'r rhain. Felly, yn eich pset, mae gennych eich dewis o geisiau neu dablau hash. Bydd rhai pobl yn ceisio ac yn defnyddio hidlwyr blodeuo, ond y rhai nad dechnegol yn gywir. Oherwydd eu natur tebygol, maent yn rhoi positif ffug weithiau. Maen nhw'n edrych oer i mewn, er. Dal argymell chwilio arnyn nhw o leiaf. Ond yr ydych wedi eich dewis rhwng tabl hash a rhoi cynnig. Ac mae hynny'n mynd i fod yn lle rydych yn llwytho yn eich geiriadur. A bydd angen i chi ddewis eich swyddogaeth hash, bydd angen i chi ddewis faint o Bwcedi sydd gennych, a bydd yn amrywio. Fel os oes gennych fwy bwcedi, efallai y bydd yn rhedeg yn gynt. Ond efallai eich bod yn gwastraffu llawer o le y ffordd honno, er. Mae'n rhaid i chi chyfrif 'ii maes. Mmhmm? GYNULLEIDFA: Dywedasoch cyn hynny gallwn ddefnyddio swyddogaethau hash eraill, nad ydym yn rhaid i ni creu swyddogaeth hash? SIARADWR 1: Ie, ar y dde. Felly, yn llythrennol ar gyfer eich swyddogaeth hash, fel google "swyddogaeth hash" ac yn chwilio am rhai rhai oer. Nid oes disgwyl i chi i adeiladu eich swyddogaethau hash hun. Mae pobl yn treulio eu traethodau ymchwil ar y pethau hyn. Felly peidiwch â phoeni am adeiladu eich hun. Dod o hyd i un ar-lein i ddechrau. Mae rhai ohonynt yn rhaid i chi trin ychydig bach i wneud yn siŵr fathau dychwelyd yn cyd-fynd i fyny a whatnot, felly yn y dechrau, Byddwn yn argymell defnyddio rhywbeth hawdd iawn mai efallai dim ond hashes ar lythyren gyntaf. Ac yna ar ôl i chi wedi bod gweithio, ymgorffori swyddogaeth hash oerach. Mmhmm? GYNULLEIDFA: A fyddai cynnig arni fod, neu effeithlon, ond dim ond yn fwy anodd i, like-- SIARADWR 1: Felly cynnig arni, rwy'n credu, yn reddfol galed i weithredu ond yn gyflym iawn. Fodd bynnag, yn cymryd mwy o le. Unwaith eto, gallwch wneud y mwyaf y ddau o'r rheiny yn gwahanol ffyrdd ac mae ffyrdd i-- GYNULLEIDFA: Sut yr ydym yn eu graddio ar hyn? A yw'n matter-- SIARADWR 1: Felly, rydych yn graddio ffordd arferol. Rydych yn mynd i gael ei graddio ar ddylunio. Pa bynnag ffordd rydych yn ei wneud, eich bod am gwnewch yn siŵr ei fod mor gain ag y gall fod ac mor effeithlon ag y gall fod. Ond os byddwch yn dewis cynnig arni neu hash bwrdd, cyn belled ag y mae'n gweithio, rydym yn fodlon ar hynny. Ac os byddwch yn defnyddio rhywbeth sy'n hashes ar y llythyr cyntaf, mae hynny'n iawn, tebyg efallai fel dylunio-ddoeth. Rydym ni hefyd yn cyrraedd y pwynt yn y semester-- hwn Nid wyf yn gwybod os ydych yn guys noticed-- os ydych chi'n graddau pset dirywiad ychydig oherwydd dyluniad a whatnot, mae hynny'n berffaith iawn. Mae'n mynd i bwynt lle mae eich rhaglenni yn mynd yn fwy cymhleth. Mae mwy o leoedd gallwch wella ar. Felly mae'n gwbl normal. Dyw hi ddim yn eich bod yn gwneud yn waeth ar eich pset. 'I' jyst rydym yn cael galetach ar chi nawr. Felly mae pawb yn teimlo ei. Fi jyst graddio eich holl psets. Rwy'n gwybod bod pawb yn teimlo iddo. Felly peidiwch â bod yn poeni am hynny. Ac os oes gennych unrhyw gwestiynau am psets neu ffyrdd y gallwch wella ymlaen llaw, Rwy'n ceisio sylwadau y penodol lleoedd, ond weithiau mae'n hwyr ac yr wyf yn blino. A oes unrhyw bethau eraill am strwythurau data? Rwy'n siwr nad ydych yn guys yn ei wneud mewn gwirionedd eisiau siarad am nhw anymore, ond os oes, rwy'n hapus i mynd drostynt, yn ogystal ag unrhyw beth o'r gorffennol ddarlith hon wythnos neu wythnos diwethaf. Yr wyf yn gwybod yr wythnos diwethaf oedd pob adolygiad, felly efallai ein bod wedi hepgor dros rai adolygiad o ddarlith. Unrhyw gwestiynau eraill gallaf ei ateb? OK, i gyd yn iawn. Wel, rydych guys yn mynd allan 15 munud yn gynnar. Rwy'n gobeithio y mae hyn yn lled-ddefnyddiol o leiaf, a byddaf yn gweld chi guys yr wythnos nesaf, neu oriau swyddfa Iau. A oes ceisiadau am fyrbrydau ar gyfer yr wythnos nesaf, mae'n y peth? Oherwydd yr wyf yn anghofio Candy heddiw. Ac yr wyf yn dod â Candy diwethaf wythnos, ond yr oedd yn Ddiwrnod Columbus, felly yr oedd yn hoffi chwech o bobl sydd Roedd gan bedwar bag o candy iddynt hwy eu hunain. Gallaf ddod Starbursts eto os ydych yn dymuno. Starbursts? OK, swnio'n dda. Cael diwrnod gwych, guys.