[Мусиц плаиинг]
СПЕАКЕР 1: У реду.
Сви добродошли назад у одељак.
Надам се да сте сви успешно сте опоравила од квиза
од прошле недеље.
Знам да је мало луд понекад.
Као што сам раније рекао, ако си унутар стандардне девијације,
заиста не брини о томе, поготово за мање удобан секције.
То је о томе где треба да буде.
>> Ако јесте велики, онда супер.
Кудос то иоу.
И Ако осећате да вам је потребна мало више помоћи, молим вас
слободно да достигне се да било који од ТФС.
Ми смо сви овде да помогнем.
>> Зато смо научити.
Зато сам овде сваког понедељка за вас момци и на канцеларију часова четвртком.
Дакле, слободно ми јавите Ако сте забринути о било чему
или ако постоји нешто на квизу да ли заиста желите да се бави.
>> Тако да дневни ред за данас је све о структурама података.
Неки од њих су само ће бити само да се ти упознати са овим.
Ви не можете никад спровести их у овој класи.
Неки од њих хоћете, као и за ваш спеллер псет.
>> Имаћете избор између хасх табела и покушаја.
Тако да дефинитивно идем преко њих.
То ће бити дефинитивно више врста деонице високом нивоу, ипак,
јер постоји много њих, и ако Ушли смо у детаље имплементацију
на све ово, не би чак се кроз повезане листе
и можда мало хасх табеле.
>> Дакле, носе са мном.
Нећемо да радим колико кодирања овај пут.
Уколико имате било каквих питања о томе или желите да видите да имплементира
или покушајте га за себе, Дефинитивно Препоручујем
ће студи.цс50.нет, који има примере свих ових.
То ће имати своје Поверпоинтс са белешкама које смо
обично користе као и неке програмирање вежбе, поготово за ствари
као повезаним листама и бинарни дрвеће пирамиде и штапови.
Дакле, мало више на високом нивоу, који би било добро за вас.
>> Дакле са тим, ми ћемо да почнемо.
И такође, Да-- квизови.
Мислим да већина вас који су у Мој секција имају своје квизове,
али свако долази у или неког разлога не, они су овде испред.
>> Тако повезани листе.
Знам ову врсту иде да пре него ваш квизу.
То је било пре недељу дана да смо сазнали о томе.
Али у овом случају, само ћемо иди мало више у дубину.
>> Па зашто бисмо могли изабрати Листа повезани преко низа?
Шта их разликује?
Да?
>> ПУБЛИКА: можете проширити повезан список наспрам низ је одређену величину.
СПЕАКЕР 1: Добро.
Низ је одређену величину, док линкед лист има променљиву величину.
Дакле, ако не знамо како колико желимо да сачувате,
линкед лист нам даје велики начин да то урадите, јер можемо да
додати на други чвор и додајте на други чвор и додајте на други чвор.
Али шта може бити компромис?
Да ли се ико сећа се компромис између низова и повезаним листама?
Ммхмм?
>> ПУБЛИКА: Морате проћи кроз све начин
кроз повезане листе пронаћи елемент у листи.
У низу, можете Само наћи елемент.
>> СПЕАКЕР 1: Добро.
Тако је и са арраис--
>> ПУБЛИКА: [неразумљиво].
>> СПЕАКЕР 1: са низовима, имамо оно што се зове директног приступа.
Значи да ако желимо оно што је икада пета тачка листе
или пета тачка нашег Арраи, можемо само да га зграби.
Ако је повезан списак, имамо да поновити кроз, зар не?
Дакле, приступање елемент низ је константа време,
док са повезане листе да би највероватније бити линеарна времена јер можда
наш елемент је скроз на крају.
Морамо да тражи кроз све.
Дакле, са свим овим подацима структуре ми идемо
да ће провести мало више времена на, шта су плусеви и негативи.
Када би желимо да користите један преко другог?
И то је некако већа ствар за понети.
>> Тако да овде имамо дефиниција чвора.
То је као један елемент у наша линкед лист, зар не?
Тако да смо сви упознати са нашим типедеф Структуре,
који смо прешли у разматрање последњи пут.
То је у основи је само стварање Друга врста података које смо могли да користимо.
>> И у овом случају, то је неки чвор који ће одржати у цјелину.
И онда шта је ту је други део?
Анионе?
>> ПУБЛИКА: [неразумљиво].
>> СПЕАКЕР 1: Да.
То је показивач на следећи чвор.
Дакле, ово би требало да буде у ствари овде.
Ово је показивач типа чвор на следећу ствар.
И то је оно што они обухвата наш чвор.
Цоол.
>> У реду, тако да са претреса, као што смо били Само кажем пред стране, ако сте
ће претраживати, морате да стварно поновити
кроз листу повезане.
Дакле, ако тражимо броју 9 бисмо почети у глави
и то нас упућује на почетку наше повезане листе, зар не?
А ми кажемо, у реду, то ради чвор садржи број 9?
Не?
>> У реду, идите на следећу.
Пратите га.
Да ли садржи тај број 9?
Не.
Пратите следећи.
>> Дакле, морамо да заиста поновити кроз нашу повезане листе.
Не можемо само ићи директно на гдје 9 је.
И ако ви стварно желите да видети неке Псеудо-код горе.
Ми имамо овде неку функцију претраживања која се у-- шта је потребно у?
Шта мислите?
Тако лако.
Шта је ово?
ПУБЛИКА: [неразумљиво].
СПЕАКЕР 1: Број траћимо.
Зар не?
А шта би то одговара?
То је показивач на?
>> ПУБЛИКА: чвор.
>> СПЕАКЕР 1: чвор на листу да гледамо, зар не?
Дакле, имамо неки чворови су Поинтер овде.
Ово је тачка која ће заправо поновити кроз нашу листу.
Поставили смо га једнако листу јер то је само
подешавање је једнак почетак нашег повезане листе.
>> И док то није НУЛЛ, док још увек имамо ствари у нашој листи,
проверите да ли тај чвор има број тражимо.
Ретурн истина.
У супротном, ажурирање, зар не?
>> Ако је НУЛЛ, ми изашли наш док петља и ретурн
јер то значи да нисмо га нашли.
Да ли сви добити како се то ради?
У реду.
>> Тако је и са уметком и морате има три различита начина.
Можете Препенд, можете додати и можете уметнути у ассортед.
У овом случају, ми смо ће направити Препенд.
Да ли неко зна како се они Три случаја могу разликовати?
>> Тако Препенд значи да сте ставили је на предњој страни листе.
Дакле, то би значило да, без обзира шта је ваш чвор је, без обзира на
шта је вредност, идеш да га ставите овде испред, у реду?
То ће бити први елеменат у вашој листи.
>> Ако га додати, иде да иде на задњој страни листа.
И убаците у ассортед значи да си ће се ствари ставити на место
где држи ваша листа повезана сортирана.
Опет, како користите они и када користите
њих ће се разликовати у зависности од вашег случаја.
Ако не треба да се сортирају, Препенд тежи
да буде оно што већина људи користити јер не
Морам да идем кроз цео списак наћи крај да га додам, зар не?
Само да га држимо право у.
>> Дакле, ми ћемо проћи кроз убацивање 1 сада.
Дакле, једна ствар коју ћу препоручујемо на овој псет
јесте да се скрене ствари, као и увек.
Веома је важно да ажурирате Ваши показивачи у исправном редоследу
јер ако их ажурирате мало не ради,
ћеш завршити губе делове ваше листе.
>> Тако, на пример, у овом случају, ми смо говори главу само да указују на 1.
Ако бисмо то без меморисања Тхис 1,
немамо појма шта 1 треба да укаже на сад
јер смо изгубили оно глава је указао на.
Дакле, једна ствар за памћење Када радите са Препенд
је да се спасе што се Хеад указује на први,
онда га пренесете, а затим ажурирање шта је ваш нови чвор треба да укаже на.
У овом случају, то је један од начина да се то уради.
>> Дакле, ако смо то урадили на овај начин где смо управо прекомандован главу,
губимо основи ОУР Цео списак, зар не?
Један од начина да се то уради је да се 1 бод се Даље, а затим имају главу тачку на 1.
Или можете да урадите нешто као Привремено складиштење, који сам говорио о томе.
>> Али пренамене твој показивачи у исправном редоследу
ће бити веома, веома важно за ову псет.
У супротном, ти ћеш имати хасх Табела или покушај који је само да буде
само део речи које сте па онда Ваши-- ммхмм?
ПУБЛИКА: Шта је привремена ствар складиштење сте причали?
СПЕАКЕР 1: Привремено складиштење.
Дакле, у основи други начин можете да урадите ово
се чувати главу нечега, као што чувајте је привремену променљиву.
Доделити га на 1 и онда Упдате 1 до тачке
да све што се користи главу да укаже.
На овај начин је очигледно елегантније због тебе
не треба привремени вредности, али Само нудећи други начин да то уради.
И ми стварно имамо неки код за то.
Дакле, за повезане листе, ми заправо имају неки код.
Дакле инсерт овде, ово је ако имену.
Дакле, ово је улази у главу.
>> Дакле прва ствар, треба да направите нови чвор, наравно,
и проверите НУЛЛ.
Увек добар.
А онда морате да доделите вредности.
Кад год креирате нови чвор, те Не знам шта је то указује на следећу,
тако да желите да га иницијализује на НУЛЛ.
Ако то не заврши указује на нешто друго, она ће бити премештена и то је у реду.
Ако је то прва ствар на листи, потребно
да укаже на, јер НУЛЛ то је крај листе.
>> Дакле да би их додао, видимо овде нас се додељивање следећу вредност нашег чвора
да буде шта год је глава, што је оно што смо овде имали.
То је оно што смо управо урадили.
И онда смо додељивање главе до тачке на наш нови чвор, јер се,
нови је неки показивач на чвор, а то је управо оно што је глава.
То је управо разлог зашто смо имају ову стрелице Аццессор.
Цоол?
Ммхмм?
>> ПУБЛИКА: Да ли морамо да инитиализе нев Даље прво нулл,
или можемо само иницијализујете на челу?
>> СПЕАКЕР 1: Нови Следећа треба да буде НУЛЛ да почне
јер не знате где ће бити.
Такође, ово је врста Баш као парадигму.
Сте поставили је једнак НУЛЛ само да би сигурни да су покривени сви ваши базе
пре него што било какву премештај, тако да Ви увек гарантовано да ће
се указује на одређену вредност наспрам као вредност смећа.
Јер, да смо доделили нови Нект аутоматски,
али то је више као добра пракса да се иницијализацију
на тај начин, а затим распоредити.
>> У реду, тако да двоструко повезана листа сада.
Шта мислимо?
Шта је другачије у двоструко повезана листа?
>> Дакле, у нашим повезаним листама, можемо померати само у једном правцу, зар не?
Ми само следећу.
Ми само можемо ићи напријед.
>> Са двоструко повезане листе, Ми такође можемо кретати уназад.
Дакле, имамо не само број који желимо да сачувате,
имамо где се указује на следећа и где смо управо дошли.
Дакле, ово омогућава неки боље ношење.
>> Дакле, двоструко везани чворови, врло слично, зар не?
Једина разлика је што сада имају следећа и претходна.
То је једина разлика.
>> Дакле, ако смо се Препенд или аппенд-- ми немају код за ово овдје--
Али, ако сте били да покушате и убаците га, важна ствар
је да је потребно да се направи Сигурно сте додељивања
и ваших претходних и ваш Нект Поинтер исправно.
Дакле, у овом случају, ти би не само инитиализе Нект,
иницијализовано претходни.
Ако смо на челу листе, ми не би само да глава једнака ново,
али наш нови претходна треба указују на главу, зар не?
>> То је једина разлика.
А ако желите више праксе са ово са повезаним листама, са уметање,
са брисањем, са уметком у један ассорти листу,
Молимо вас да проверите студи.цс50.нет.
Постоји гомила великих вежби.
Ја сам их препоручујемо.
Волео бих да смо имали времена да прођем кроз њих али има много структура података
проћи кроз.
>> У реду, тако да хасх табеле.
Ово је вероватно корисно битни за вашу псет
овде јер ћеш бити имплементацији једног од ових, или пробати.
Стварно волим хасх табеле.
Они су прилично кул.
>> Дакле, у основи оно што дешава се хасх табела
је када је заиста потребно брзи уметање, брисање, и ИП адресу.
То су ствари које смо приоритета у хасх табели.
Они могу добити прилично велика, али као што ћемо видети са покушаја,
постоје ствари које су много већи.
>> Али у суштини, сви хасх табела је хасх функција
да вам каже које кашика ставити сваки ваших података, сваки од ваших елемената у.
Једноставан начин да се размишља о хеш табели је да је само кофе ствари,
зар не?
Дакле, када се ствари сортирање по као прво слово свог имена,
то је као хеш табели.
>> Дакле, ви, ако бих групи је у групе онога ко се зове почиње
са овамо, или ко је рођендан је у јануару, фебруару, марту,
шта год, то је ефикасно стварање хеш табели.
То је само стварање кашике да сортирање своје елементе у
тако да можете наћи их лакше.
Дакле, овај начин кад ми треба наћи једног од вас,
Ја не морам да тражи кроз сваки од ваших имена.
Могу бити као, ох, знам да је Даниелле рођендан је у--
ПУБЛИКА: --Април.
СПЕАКЕР 1: април.
Погледао сам у мом априлу кашика, а уз мало среће,
она ће бити једина тамо и Моје време је константа у том смислу,
а ако морам да погледам кроз гомила људи,
то ће трајати много дуже.
Дакле, хасх табеле су заиста само кашике.
Лак начин да мислим о њима.
>> Дакле, веома битна ствар у вези хасх табела је хасх функција.
Дакле, ствари које сам управо говорио, као и Ваша прво слово твог имена
или ваш рођендан месеца, то су идеје које
Заиста уклопљени у хеш функцију.
То је само начин одлучивања који кашика си елеменат иде у, у реду?
Дакле, за ову псет, можете погледати прилично Било хасх функција хоћеш.
>> Не мора да буде свој.
Постоје неке стварно добре напоље тамо да радим свакакве луде математике.
А ако желите да ваш Правопис супер брзи,
Дефинитивно бих погледати у једном од тих.
>> Али такође постоје и једноставних оне, као што израчунава
збир речи, као што су свако слово има број.
Израчунати суму.
Који одређује канту.
Они такође имају једноставне оне који су као и сви је овде,
сав Б је овде.
Било који од њих.
>> У суштини, то је само вам говори који Арраи индекс свом елементу би требало да иде у.
Само одлучивању о буцкет-- то је све хасх функција је.
Дакле, овде имамо пример који је само прво слово низа
да сам говорио.
>> Тако да имају неки хасх То је само прво слово вашег струна минус,
који ће вам дати неке број између 0 и 25.
А оно што желите да урадите је да уверите се да то представља
величина вашег хасх табле-- Колико кашике постоје.
Са многи од њих хеш функције, они су
ће се вратити вредности која би могла бити далеко изнад броја кашикама
да заправо имају у вашем хасх табели,
тако да је потребно да се направи Сигурно и мод они.
У супротном, то ће рећи, Ох, она треба да буде у кофу 5.000
али имате само 30 кашике у вашем хасх табели.
И наравно, сви знамо да је то ће резултирати у неким лудим грешке.
Тако да се уверите да мод би величина вашег хасх табеле.
Цоол.
Тако судара.
Да ли су сви добро сада?
Ммхмм?
>> ПУБЛИКА: зашто би ретурн тако масивни вредност?
>> СПЕАКЕР 1: У зависности на алгоритму да ваш хасх функција користи.
Неки од њих ће учинити луд множење.
И то је све о добијању чак и дистрибуција,
то раде неки стварно луде ствари понекад.
То је све.
Нешто друго?
У реду.
>> Тако судара.
У суштини, као што сам рекао раније, У најбољем случају,
Било кашика погледам у је ће имати једну ствар,
тако да не морам да гледам на све, зар не?
Ја знам да је то било тамо или је не, и то је оно што заиста желимо.
Али, ако имамо на десетине хиљада податке и мање од тог броја
корпи, ћемо имати судари где на крају нешто
ће морати да заврши у кашика које већ има елемент.
>> Дакле, питање је, шта радимо у том случају?
Шта да радимо?
Ми већ имамо нешто тамо?
Да ли само избацимо?
>> Не.
Морамо да наставимо оба.
Тако начин на који смо обично то је шта?
Каква је структура података Управо смо причали?
ПУБЛИКА: повезане листе.
СПЕАКЕР 1: линкед лист.
Тако да сада, уместо да сваки од њих кашике само има један елемент,
да ће да садржи повезану листу елементи који су хасх у њу.
У реду, да ли сви ти та идеја?
Јер нисмо могли имати низ јер ми не знамо како многе ствари
ће бити тамо.
Линкед лист нам омогућава да имају само тачан број који
су хасх у канту, зар не?
>> Дакле Линеарни прескок је У основи, ово идеја--
је један од начина да се баве судара.
Шта можете да урадите је да, у овом Цасе, Берри је хасх у 1
а већ имамо ту нешто, само
Настави доле до пронађете празан слот.
То је један од начина да се то средити.
Други начин за руковање то је са оним што смо управо
цаллед-- повезан Листа се зове Уланчавање.
>> Дакле, та идеја функционише, ако Ваш хасх табела мислите
је много већи од Ваши подаци сет или ако
желе да пробају и минимизира цхаининг док је апсолутно неопходно.
Дакле, једна ствар је линеаран прескок очигледно значи
да ваше хеш функције није тако корисна
јер ћеш завршити користећи Ваша хасх функција, узимајући до тачке,
Ви линеарном сондом до неко место које је на располагању.
Али сада, наравно, ништа друго да заврши тамо,
ћеш морати да тражи још ниже.
>> И има много више претраживање трошак који
одлази у уноса елемент у вашем хасх табели сада, зар не?
И сада када одете и покушати и наћи Берри поново ћеш га хасх,
а то ће рећи, Ох, погледај у кофу 1,
а то неће бити у канти 1, па ти си
морати да пролазе кроз остатак ових.
Тако да је понекад корисно, али у већини случајева,
ћемо рећи да Уланчавање је оно што желите да урадите.
>> Разговарали смо о томе раније.
Имам мало испред себе.
Али је у основи то Уланчавање сваки сегмент у вашем хасх табели
је само повезана листа.
>> Дакле још један начин, или више техничке начин, да мислимо о хеш табели
је да је то само низ повезаних листа, који
када пишете свој речник а ви покушавате да га учита,
размишљам о томе како низ повезаних листа
учиниће га много лакше за вас да се покрене.
>> ПУБЛИКА: Дакле хасх табела има одређене величине,
као [неразумљиво] кашике?
>> СПЕАКЕР 1: Добро.
Тако да има одређени број кашике да детермине--
који вам момци треба слободно да се играју са.
То може бити прилично кул да видим шта се дешава
као што промените број корпи.
Али да, има сет број корпи.
Шта вам омогућава да стане у многи елементи као што вам је потребно
ово посебна Уланчавање ти где су повезани листе у сваки сегмент.
То значи да ваше хасх табели биће тачно величина
да је потребно да се, зар не?
То је цела поента повезаних листа.
Цоол.
>> Дакле, сви у реду тамо?
У реду.
Ах.
Шта се десило?
Стварно сад.
Претпостављам да неко ме убија.
>> Добро ћемо да идемо у покушава, који су помало луди.
Волим хасх табеле.
Мислим да су стварно кул.
Триес су кул, превише.
>> Дакле, да ли се ико сећа шта је покушај?
Требало би да су отишли ​​преко Укратко у предавању?
Да ли се сећате какав како то ради?
ПУБЛИКА: Само клима главом да ли ићи преко њега.
СПЕАКЕР 1: Ми идемо преко њега.
У реду, ми стварно ићи у је сада оно што говорите.
>> ПУБЛИКА: То је за дрво и претраживање података.
>> СПЕАКЕР 1: Да.
То је дрво проналажење.
Страва.
Дакле, једна ствар приметити овде је да гледамо појединачне знакова
овде, зар не?
>> Дакле, пре него са нашим хеш функције, ми гледали речи у целини,
и сада гледамо више на ликова, зар не?
Дакле, имамо Маквелл овде и Мендел.
Дакле, у основи три-- начин размишљања о овоме је да сваки ниво овде
је низ писама.
Дакле, ово је твој корен чвор овде, зар не?
Ово је све ликове писмо за почетак сваке речи.
>> А оно што желите да урадите је да рецимо, у реду, ми имамо неку М реч.
Ми ћемо тражити Маквелл, тако идемо М. и М указује на читав
Други низ где сваки реч, докле год постоји
је реч која има као друго писмо,
док постоји реч која има Б као другом писму,
она ће имати показивач ће у неку следећу низа.
>> Вероватно постоји није реч коју посланик нешто,
тако да на П положају у овој Арраи, то би само бити НУЛЛ.
То би рекли, у реду, не постоји реч који је М праћено П, у реду?
Дакле, ако размишљамо о томе, сваки једна од ових мањих ствари
је заправо једна од ових велики низови од А до З.
Дакле, шта може бити једна од ствари то је врста повраћаја пробати?
>> ПУБЛИКА: Много меморије.
>> СПЕАКЕР 1: То је тона меморије, зар не?
Сваки од ових блокова овде представља 26 места, 26 елемент низ.
Дакле, покушава да невероватно тежак простор.
>> Али они су веома брзо.
Дакле, невероватно брзо, али Стварно простор неефикасна.
Некако ми да схватим од којих је један желите.
То су стварно кул за ваше псет, али они заузимају много меморије,
тако да тргује ван.
Да?
>> ПУБЛИКА: Да ли би било могуће да подесите пробати и онда
Једном када имате све подаци у њој да морају--
Ја не знам да ли би имало смисла.
Сам узимајући ослободити од свих НУЛЛ карактера, али онда
Ви не бисте могли да индексу њих--
>> СПЕАКЕР 1: Ви сте их и даље треба.
>> ПУБЛИКА: - на исти начин сваки пут.
СПЕАКЕР 1: Да.
Потребан вам Нулта ликове пустити Ви знате да не постоји реч тамо.
Бен ли сте имали нешто што желите?
У реду.
У реду, тако да идемо ићи мало више
у техничким детаљима иза покушати да раде кроз пример.
>> У реду, тако да је ово иста ствар.
Док у повезане листе, наш главни врста од-- што је реч желим? -
као градивни блок је чвор.
У покушају, имамо и чвор, али другачије дефинисано.
>> Дакле, имамо неку боол да представља било речи заиста
постоји на овој локацији, а затим имамо неки низ овдје-- односно,
Ово је показивач на низ од 27 знакова.
А ово је за, у овом случају, ова 27-- сам сигуран сви сте као, чекај,
постоје 26 слова у абецеди.
Зашто имамо 27?
>> Дакле, у зависности од начин провести ово,
ово је из псет која дозвољено апострофа.
Зато још једну.
Такође ћете имати у неким случајеви нулл Терминатор
је укључен као један од знакова да је дозвољено да се,
и тако су проверили да види да ли је то крај речи.
Уколико сте заинтересовани, проверите Кевин видео на студи.цс50,
као и Википедиа има неке добре ресурсе тамо.
>> Али ми ћемо да идемо кроз некако како можете да радите кроз пробати
ако је дао једно.
Дакле, имамо овде да супер једноставан један има речи "БАТ" и "Зоом" у њима.
И као што видимо овде, овај мали простор овде
представља нашу боол да каже, да, ово је реч.
А онда је наша низови карактера, зар не?
>> Тако да ћемо проћи проналажење "БАТ" у овом покушају.
Дакле, почети на врху, зар не?
А ми знамо да је Б одговара други индекс, други елемент
у овом низа, јер и б.
Дакле, отприлике други.
>> И каже, у реду, кул, следи да у следећа низ, јер ако се сећате,
није да сваки од њих заправо садржи елемент.
Сваки од ових низова садржи показивач, зар не?
То је важна разлика да.
>> Знам да ће ово бити-- покушава се тешко да се на први пут,
па чак и ако је то други или трећи пут
и још увек је некако наизглед тешко,
Обећавам ако идете сат кратак сутра,
вероватно ће бити много више смисла.
Потребно је много да свари.
И даље понекад сам као, чекај, шта је пробати?
Како да користим ово?
>> Дакле, ми смо б у овом случају, који је наш други индекс.
Да смо имали, рецимо, Ц или Д или било који други леттер,
морамо да карта која Бацк то тхе индек нашег низа да то одговара.
Тако да бисмо узети као рцхар и само одузмите Офф то карта на 0 до 25.
Сви добро Хов Ве Карта Наша ликове?
У реду.
>> Дакле, идемо на другом и смо ми видимо да, да, није да се НУЛЛ.
Можемо да пређемо на следећу овом низу.
Дакле, идемо на ову следећу низа овде.
>> А ми кажемо, у реду, сада смо Морам да видим да ли је овде.
Је нула или то ради стварно крене напред?
Дакле, ствари се креће напријед у том низу.
А ми кажемо, у реду, т је наша последња слово.
Дакле, идемо на т у индексу.
А онда идемо напред јер постоји још један.
А овај каже у основи то, да, каже да постоји реч овдје--
да ако пратите ово пут, ви сте стигли
на реч, коју знамо је "Бат".
Да?
>> ПУБЛИКА: Да ли је стандардно имати да као индекс 0 и тада имају неку врсту на 1
или да се на крају?
>> СПЕАКЕР 1: Не
Дакле, ако се осврнемо на нашу изјава овде, то је инт,
тако да је сама елеменат у вашем чвору.
Дакле, то није део низа.
Цоол.
Дакле, када завршимо нашу реч, а ми смо у овом низу, шта желимо да урадимо
је да проверимо јер је ово реч.
И у овом случају, то би да се врати.
>> Дакле, у том смислу, ми знамо да је "Зоо" - знамо како људи да "Зоо" је реч,
зар не?
Али су овде покушати да кажу, не, то није.
И то би рекао да због тога су га нису означени као реч овде.
Иако можемо прећи до овог низа,
Ово покушај би рекао да, не, Зоо није у вашем речнику
јер ми немамо означен је као такву.
>> Дакле, један начин да се то-- Ох, извините, ово је један.
Дакле, у овом случају, "Зоо" није реч, али је у нашем покушају.
Али у овом једном, реци ми то желимо увести реч "купка," шта се дешава
је пратимо тхроугх-- Б, А, т.
Ми смо у овом низу, и идемо тражити х.
>> У овом случају, када смо погледајте показивач у х,
то показује да НУЛЛ, у реду?
Дакле, осим ако изричито није указујући на други низ,
претпостављате да су сви показивачи у овом низу указују на нулл.
Дакле, у овом случају, Х указује нулл тако да не можемо да урадимо ништа,
тако да се неће вратити фалсе, "купање" није овде.
Дакле, сада смо уствари ићи кроз
Како би ми заправо рекли да је "Зоо" је у нашем покушају.
Како смо убацили "Зоо" у нашу покушати?
Дакле, на исти начин на који смо почели са наша линкед лист, почињемо у корену.
Када сте у недоумици, крећу се од корен тих ствари.
>> И ми ћемо рећи, у реду, з.
З постоји у ово, и оно.
Тако да се селимо на ваш следећи низ, у реду?
А онда на следећи, кажемо, у реду, да ли постоји о?
Јесте.
Ово опет.
>> И тако на нашем следећу, ми смо рекли, У реду, "Зоо" већ постоји овде.
Све што треба да урадите је да ово једнако труе, да постоји реч тамо.
Ако сте пратили све до пре тог тренутка,
то је реч, па само сет је једнако тако.
Да?
>> ПУБЛИКА: Онда то ради Мислим да је "БА" је реч и?
>> СПЕАКЕР 1: Не
Дакле, у овом случају, "БА" бисмо добили Овде, рекли бисмо да је реч,
а ипак неће бити.
У реду?
Ммхмм?
>> ПУБЛИКА: Дакле, једном када је то реч и кажете да, онда
ће садржати ићи на м?
>> СПЕАКЕР 1: Ово мора да уради са-- сте учитавања ово.
Ви кажете "Зоо" је реч.
Када одете у цхецк-- као, да желите да кажете,
не "Зоо" постоји у овом речнику?
Ви само ћеш тражити "Зоо" а затим проверите да ли је реч.
Никад нећеш да се крећу до м, јер то није
оно што тражите.
>> Дакле, ако смо заиста желели да адд "купање" у овом покушају,
ћемо урадити исту ствар као што смо урадили са "Зоо"
Осим што ће видети да када се покушати доћи до х, и не постоји.
Тако да можете да мислите о овоме као покушава да додате нову тачку у повезане листе,
тако да би требало да додате још један од ових низова, овако.
И шта онда ми радимо јесте да управо поставили х елемент овог низа указујући на то.
>> И онда шта би желимо да урадимо овде?
Адд то једнако истина јер је реч.
Цоол.
Знам.
Триес нису најузбудљивији.
Веруј ми, знам.
>> Дакле, једна ствар да се остваре са покушаја, Рекао сам, да су веома ефикасни.
Тако да смо они видели заузимају тону простора.
Они некако збуњујуће.
Па зашто бисмо уопште користили ово?
Ми користимо ове, јер су невероватно ефикасан.
>> Дакле, ако сте икада тражите се речи, ви сте само
граничи са дужином речи.
Дакле, ако сте у потрази за Реч која је дужине пет,
Ти си само икада морати да да у већини пет поређења, у реду?
Тако да чини основи константа.
Као и убацивање и проналажење су у основи Цонстант време.
>> Дакле, ако сте икада можете добити нешто у сталном времену,
То је добар као што добија.
Ви не можете добити боље од константа време за ове ствари.
То је једна од велики плусеви покушаја.
>> Али то је много простора.
Тако да ти треба да одлучи оно што је важније за вас.
И на данашњим рачунарима, простор који може да се покушај
можда не утиче Ви толико, али можда
имаш посла са нечим да има много, много више ствари,
и покушај једноставно није разумно.
Да?
>> ПУБЛИКА: Чекај, тако да имате 26 слова у свакој једну?
>> СПЕАКЕР 1: Ммхмм.
Да, имаш 26.
Имате неке је реч маркер и онда имате 26 тројки у сваком.
И они поента
>> ПУБЛИКА: И сваки 26, они имају по 26?
>> СПЕАКЕР 1: Да.
И зато, као што можете види, она шири веома брзо.
У реду.
Тако да ћемо ући у дрвеће, које Осећам се лакше волим и вероватно ће
бити лепа мала одлагање од покушаја тамо.
Дакле, надамо се већина вас Видели дрво раније.
Не као лепа оне споља, што сам
Не знам да ли је неко је напољу недавно.
Отишла сам јабука брање овог викенда, и Ох Ми Госх, било је дивно.
Нисам знао лишће би могло да изгледа тако лепа.
>> Дакле, ово је само дрво, зар не?
То је само неки чвор, а указује на гомили других чворова.
Као што видите овде, ово је врста понавља.
Чворови Указивање на чворова је некако суштина многих структура података.
Једноставно зависи како ћемо да их указују једни другима
и како прећи кроз њих и како
убаците ствари које одређује њихове различите особености.
>> Дакле, само неке терминологије, које сам раније користили.
Дакле, све што је корен је у самом врху.
то је где смо увек почети.
Можете мислити о томе као главе такође.
Али за дрвеће, склони смо да односе на њега као корен.
>> Нешто на доњој овдје-- у веома, веома боттом--
се сматрају лишће.
Тако да заједно са иде Цијели ствар, зар не?
Листови су на ивицама своје дрво.
>> А онда имамо и неколико Услови да причамо о чворова у односу
једни другима.
Дакле, имамо родитеља, деца, браћа и сестре.
Дакле, у овом случају, је 3 родитељ 5, 6 и 7.
Дакле, све што је родитељ један корак изнад год да си
позивајући се, па само као породично стабло.
Надамо се да, ово је све помало мало више интуитивно него покушаја.
>> Браћа и сестре су све које имају исти родитељ, зар не?
Они су на истом нивоу овде.
И онда, као што сам био говорећи, деца су само
све што је један корак у наставку чвор у питању, у реду?
Цоол.
Дакле, бинарни дрво.
Може ли ико нагађам о једној од Карактеристике бинарног дрвета?
>> ПУБЛИКА: Макс два крила.
>> СПЕАКЕР 1: Добро.
Дакле, максимално два листа.
Дакле, у овом једном пре, имали смо један који је имао три, али у бинарном стаблу,
имате мак од два Деца по родитељ, зар не?
Постоји још једна Интересантно карактеристика.
Да ли неко зна да?
Бинарни Трее.
>> Дакле, бинарни дрво ће имати све на-- ово није сортед--
али у поређано бинарном стаблу, све на десној страни
је већа од родитеља, и све на левој
је мање од родитеља.
И то је био квиз питање пре, тако да добро знам.
Дакле, начин на који смо дефинисали ово, Опет, имамо још један чвор.
Ово изгледа веома слично ономе што?
Двоструко
>> Публика: Линкед Листс
>> СПЕАКЕР 1: Доубле линкед лист, зар не?
Дакле, ако се замени ово у односу на претходни и следећи,
Ово ће бити двоструко повезана листа.
Али у овом случају, заправо имају лево и десно и то је то.
У супротном, то је управо то исто.
Ми увек имамо елемент тражиш,
а ви само две тројке ће све што је следеће.
Да, па Бинарно стабло претраге.
Ако приметимо, све на овде је већа тхан--
или све одмах да овде
је већи од, свега Овде је мање од.
>> Дакле, ако смо да тражи кроз њега, би требало да изгледа веома близу бинарно претраживање
овде, зар не?
Осим уместо да гледају на пола низа,
Ми само тражимо било на лево страна или десној страни дрвета.
Дакле, постаје мало једноставнији, мислим.
>> Дакле, ако ваш корен НУЛЛ, Очигледно да је то само лажна.
И ако је ту, очигледно то је истина.
Ако је мање него што смо претражите лево.
Ако је већи од, тражимо право.
То је исто као бинарно претраживање, само другачији структура података
који се користи.
Уместо низа, то је само бинарни дрво.
>> У реду, димњацима.
И такође, изгледа да смо можда има мало времена.
Ако то урадимо, ја сам срећан да одем преко било шта од овога поново.
У реду, тако димњацима.
Ли се ико сећа шта стацкс-- Било која карактеристике Стацк?
>> У реду, тако да је већина од нас, мислим, једу у трпезарији халлс--
колико смо можда не воле да.
Али, очигледно, можете мислити о стека буквално као стек каблова
или гомила ствари.
И оно што је важно да схвате да је то
нешто-- карактеристика да зовемо је по-- је ЛИФО.
Да ли неко зна шта значи?
Ммхмм?
>> ПУБЛИКА: Последњи у, прво се.
>> СПЕАКЕР 1: Добро, траје у, прво се.
Дакле, ако знамо, ако смо слагање ствари се, најлакше да зграбите медјувремену-
а можда једина ствар коју можемо зграбити Не ако је наш стек је велика еноугх--
је да се горњи елемент.
Дакле, шта год је стављен на ласт-- као што овде видимо,
год је гурнуо Мост на рецентли-- је
ће бити први Оно што ми пући, у реду?
>> Дакле, оно што имамо овде је други типедеф струцт.
Ово је стварно само волим Црасх Цоурсе у структури података,
тако да доста бачена на вас.
Знам.
Дакле, још један Струцт.
Иаи за објекте.
>> И у овом случају, то је нека Поинтер до низа која има неки капацитет.
Дакле, ово представља нашу стацк Овде, као и наше стварне арраи
да се држи наше елементе.
А онда ту имамо неку величину.
>> И обично, желите да задржите Трацк Колика је твој стацк
јер оно што ће се дозволити да урадите је да ли знате величина,
омогућава вам да кажете, У реду, ја сам у својству?
Могу ли да додам још нешто?
И то вам говори где врху вашег стацк
је тако да знате шта вас могу заправо скинути.
И то је заправо ће бити мало јасније овде.
>> Дакле, за пусх, једна ствар, ако су икада да спроведе пусх,
као што сам рекао, часни Стацк има ограничену величину, зар не?
Наш низ имао неку капацитете.
То је низ.
То је фиксне величине, тако да морамо да уверите се да не стављамо више
у наш низ од нас заправо имају простор за.
>> Дакле, када правите пусх функција, прва ствар коју урадите је рецимо, у реду,
имам простор у мом стек?
Јер ако ја не радим, извини, Не могу остављати елемент.
Ако то урадим, онда желите да сачувате је на врху стека, зар не?
>> И то је разлог зашто смо пратити наше величине.
Ако не пратите наше величине, не знамо где да га стави.
Ми не знамо колико ствари су већ у нашем низу.
Као и очигледно постоје начини да можда ти то можеш.
Могао би све да инитиализе НУЛЛ а затим проверите најновије НУЛЛ,
али много лакше ствар је само да кажем, у реду, пратити величине.
Као да ја знам да имам четири елемента у мом низу, тако да следећа ствар
које смо ставили у, ми смо ће складиштити на индекс 4.
И онда, наравно, то значи да успешно сте гурнули несто
на твој стацк, ти желе да повећају величину
тако да знате где си тако да можете гурнути више ствари на.
>> Дакле, ако покушавамо да поп нешто са стека,
шта би могло да буде прва ствар да желите да проверите?
Ви покушавате да нешто у вашем стацк.
Да ли сте сигурни да је то нешто у вашем стек?
Не.
Дакле, оно што би ми желели да проверите?
>> ПУБЛИКА: [неразумљиво].
СПЕАКЕР 1: Проверите величине?
Величина.
Дакле, желимо да проверите да ли наша величина је већа од 0, у реду?
А ако јесте, онда желимо да се смањује наше величине од 0 и вратити то.
Зашто?
>> У првој смо гура, ми то гура
на величини и затим ажурира величине.
У овом случају, ми децрементинг величину а затим га скида, то черупање
из нашег низа.
Зашто би ми то радимо?
Дакле, ако имам само једну ствар на стек, Шта би било моје величине у том тренутку?
1.
>> И где се елеменат 1 чува?
На ком индекс?
ПУБЛИКА: 0.
СПЕАКЕР 1: 0.
Дакле, у овом случају, ми Увек треба да се суре--
уместо враћања величина минус 1, јер смо ми
Знам да је наш елеменат ће бити чувани на 1 Мање
Шта год да је величина, ово само брине о њему.
То је нешто више елегантан начин.
И управо смо смањите ОУР величина, а затим се вратите величину.
Ммхмм?
>> ПУБЛИКА: Претпостављам само уопштено, Зашто би ово структура података
бити корисно?
>> СПЕАКЕР 1: То зависи од вашег контекста.
Дакле, за неке теорије, Ако радите са-- ОК,
да видим да ли постоји користан један које је корисно више него ван
за ЦС.
Са гомиле, сваки пут када је потребно пратити нешто што
је недавно додао је, када ћеш да желите да користите стек.
>> И не могу да се сетим је добра пример за то одмах.
Али кад год најновији ствар је најважније за вас,
Тада Стацк ће бити од користи.
Покушавам да мислим, ако постоји добра за ово.
Кад помислим на добар пример у следећа 20 минута, ја ћу вам рећи дефинитивно.
>> Али све у свему, ако има нешто, као што сам рекао највише, где најновију
је најважније, то је где стек долази у игру.
Док редовима су некако супротно.
И сви мали пси.
Зар ово није сјајно, зар не?
Осећам се као да би требало само зеца видео
право у сред Секција за вас
јер је ово интензивна секција.
>> Дакле, ред.
Основи ред је као линија.
Ви Сигуран сам да употреба Овај свакодневни, баш као у нашим трпезаријама.
Дакле, морамо да идемо у и да наше тацне, ја сам
Сигурно морате да чекате у реду да превуците или добили храну.
>> Дакле, разлика овде да је ово ФИФО.
Дакле, ако је последњи у ЛИФО, прво напоље, ФИФО је први у, први Оут.
Дакле, ово је место где год сте ставили на први је ваша најважнија.
Дакле, ако сте чекали у лине-- може вас
замислите да сте отишли ​​у иди нови иПхоне
и то је стацк где Последња особа у складу је прво добио,
људи би убијају једни друге.
>> Дакле ФИФО, сви смо веома познато са овде у стварном свету,
а то све има везе са стварно врста поновно целу ову линију
и чекања структуре.
Дакле, док се са стека, имамо подстицај и поп.
Са реду, имамо енкуеуе и декуеуе.
Дакле, у основи значи енкуеуе стави га на леђа,
и декуеуе средства узети Офф са предње стране.
Дакле, наша структура података мало компликованије.
Имамо другу ствар да пратите.
>> Дакле, без глава, ово управо стек, зар не?
То је иста структура као димњак.
Једино што сада другачије ми је имају ову главу, који шта мислите
ће пратити?
>> ПУБЛИКА: Први.
>> СПЕАКЕР 1: Добро, Прва ствар коју смо ставили у.
Шеф наше ред.
Ко год је први у реду.
У реду, тако да ако радимо енкуеуе.
Опет, са било ове структуре података,
јер имамо посла са низом, треба да провери да ли имамо простора.
>> То је нешто као ми говори момци, ако отворите датотеку,
морате да проверите нулл.
Са било којим од ових стацк и редови, треба
да видим да ли има простора јер смо бави одређену величину низа,
као што видимо овде-- 0, 1 Сви до 5.
Дакле, оно што ми радимо у том случају је провера да видимо да ли имамо још простора.
Да ли је наша величина мања од капацитета?
>> Ако је тако, морамо да га чувате у реп и ми ажурирали наше величине.
Па шта би реп буде у овом случају?
Није експлицитно написано напоље.
Како бисмо то Сторе?
Шта би био реп?
>> Па хајде да прођете кроз овај пример.
Дакле, ово је низ величине 6, зар не?
И ми имамо сада, наша величина је 5.
А када смо га ставили у, иде да иду у пети индекс, зар не?
Дакле, чувајте у реп.
>> Други начин да се напише реп бих само бити наш низ на индекс величине, зар не?
То је величина 5.
Следећа ствар је ићи у 5.
Цоол?
У реду.
То мало компликованије добија када почнемо петљају са главом.
Да?
>> ПУБЛИКА: Да ли то значи да смо би прогласили низа који
била дуга пет елемената и онда ћемо додавањем на њега?
>> СПЕАКЕР 1: Не
Дакле, у овом случају, то је стек.
То ће бити проглашена као низ величине 6.
И у овом случају, ми само један простора.
>> Ок, тако да једна ствар је у томе Цасе, ако је наш шеф је на 0,
онда можемо да га додате у величини.
Али добија мало компликованије јер заправо, они
немају слајд за то, тако да идем
да изведе један, јер није баш тако једноставно када вас
почети да се отараси ствари.
Дакле, док са стацк ви увек имате
да брине о томе шта је величина кад додао нешто на,
с ред такође треба да сигурни да ваша глава је чини,
јер добра ствар у вези са редовима је да ако ниси у капацитету,
заправо може да га омотати око.
>> Ок, тако да једна ствар Ох, Ово је страшно креда.
Једна ствар коју треба размотрити је случај.
Само ћемо урадити пет.
Ок, тако да идемо у кажу глава је овде.
Ово је 0, 1, 2, 3, 4.
>> Глава је тамо, и Молимо вас да имају ствари у њима.
И желимо да додамо нешто, зар не?
Тако што морамо да знају је да је глава увек
прећи на овај начин и затим петља назад око, у реду?
>> Дакле, ово је простор ред, зар не?
Има простора у самом почетку, врста супротно од овога.
Дакле, оно што треба да урадимо је да треба израчунати реп.
Ако знате да је ваш Хеад није преселио, реп
је само твој низ у индекс величине.
>> Али у стварности, ако користите ред, твоја глава се ажурира.
Дакле, оно што је потребно да урадите је да заправо израчунати реп.
Дакле, оно што ми радимо је ова формула Овде, који ћу да вас пусти
момци мисле о, и онда ћемо причати о томе.
Дакле, ово је капацитет.
>> Дакле, ово ће заправо да вам начин да се то уради.
Јер у овом случају, шта?
Седиште је у 1, наша величина је 4.
Ако се мод да до 5, добијамо 0, где смо требали да улаз.
>> Тако онда у следећем предмету, ако смо за то,
кажемо, у реду, хајде да декуеуе нешто.
Ми декуеуе ово.
Узимамо овај елемент, зар не?
>> А сада наш глава окренута овде, и желимо додати у другој ствари.
То је у основи Назад на нашој линији, зар не?
Редови се омотати око низа.
То је једна од главних разлика.
Димњаци, не могу то да урадим.
>> Са редова, можете јер све је важно
је да знате шта је недавно додат.
Пошто је све ће бити додат у ова лефтвард правац, у овом случају,
и онда замотати око, можете настави стављање у новим елементима
на предњем делу низа јер није баш
предњи део низа више.
Можете мислити од почетка Арраи као где твоја глава је у ствари.
>> Дакле, ова формула како се рачуна реп.
Да ли то има смисла?
У реду.
У реду, декуеуе, а затим ви имате 10 минута
да ме питате било разјашњавању питања хоћеш, јер знам да је то лудо.
>> У реду, тако да у истој ваи-- Не знам да ли сте приметили,
али ЦС је све о обрасцима.
Ствари су прилично Исто, само са ситним изменама.
Дакле, иста ствар овде.
Морамо да проверите да ли смо заиста Имам нешто у нашем реду, зар не?
Саи ОК, је наша величина већи од 0!
Цоол.
>> Ако то урадимо, онда крећемо наше главе, који је оно што сам показао овде.
Ми ажурирати наш главе да буде још један.
А онда смањите наше величина и вратити елемент.
>> Много конкретнија постоји код на студи.цс50.нет,
и ја препоручујем идем кроз њу ако имате времена,
чак и ако је само псеудо-код.
И ако хоћете да причамо преко да са мном један на један, молим те пусти
Знам.
Ја бих радо.
Структуре података, ако узмеш ЦС 124, ви ћете
Знам да структуре података се веома забава и то је тек почетак.
>> Па знам да је тешко.
То је у реду.
Боримо се.
И даље радим.
Дакле, не брините превише о томе.
>> Али, то је у основи твој убрзани курс из структуре података.
Знам да је доста.
Да ли постоји нешто што можемо бих да одем поново?
Све што желимо да разговарамо преко?
Да?
>> ПУБЛИКА: На том примеру, тако нови реп је на 0 преко тога?
СПЕАКЕР 1: Да.
ПУБЛИКА: У реду.
Па онда иде кроз, морао би 1 плус 4 или--
>> СПЕАКЕР 1: Дакле, ви сте рекли, када желимо да идемо ово опет?
ПУБЛИКА: Да.
Дакле, ако сте рачунајући оут-- где су Ви рачунања реп од у то?
>> СПЕАКЕР 1: Тако реп био сам у-- променила ово.
Дакле, у овом примеру овде, ово је Арраи гледамо, у реду?
Дакле, имамо ствари на 1, 2, 3 и 4.
Дакле, имамо наш главни једнака 1 у Ова тачка, а наша величина је једнак 4
у овом тренутку, зар не?
>> Ви сви се слажу да је то тако?
Тако да радимо главу плус величину, који даје нам 5, а онда мод за 5.
Добијамо 0, што нам говори да је 0 где је наш реп, где имамо простора.
>> ПУБЛИКА: Шта је капа?
>> СПЕАКЕР 1: Капацитет.
Извините.
Тако да је величина вашег низа.
Да?
>> ПУБЛИКА: [неразумљиво] пре враћамо елемент?
>> СПЕАКЕР 1: Дакле, крећемо глава или вратите тренутак?
Дакле, ако идемо један, смањите величину?
Сачекај.
Дефинитивно заборавио другог.
Ништа за то.
Не постоји једна формула.
Да, што би желели да се врате глава и онда се вратимо.
>> ПУБЛИКА: У реду, јер у овом Поинт, глава је била на 0,
а затим желите да се вратите индекс 0, а затим да глава 1?
>> СПЕАКЕР 1: Добро.
Мислим да је то још једна Формула некако овако.
Ја га немам на врху главу као Не желим да ти дам погрешан.
Али мислим да је савршено важи за рецимо, у реду, чувајте овај елемент-- год
Елемент глава је-- смањите ваше величина, померите главу изнад, и повратак
шта год да је елеменат.
То је савршено важећа.
У реду.
Осећам се као да то није као мост-- ниси
ће да хода одавде као, да, знам покушаја.
Имам све.
То је у реду.
Обећавам.
Али структуре података су нешто што је потребно доста времена да се навикнем.
Вероватно један од најтеже ствари, мислим да је у току.
>> Тако да дефинитивно треба понављање и гледајући ат-- И
не знам повезане листе док сам далеко урадио превише са њима,
на исти начин на који нисам заиста разумемо показиваче
док сам морао да га научи за два године и учинити своје псетс са њим.
Потребно је много времена и понављања.
И на крају, то ће некако цлицк.
>> Али, у међувремену, ако сте љубазни имате високог нивоа разумевања за оно што
ово уради, њиховим предностима а цонс-- која је шта
заиста се труде да нагласе, посебно у току интро.
Као, зашто би ми користимо пробајте преко низа?
Као што су позитивне и негативи сваког од њих?
>> И разумевање компромисе између свака од ових структура
је оно што је много важније сада.
Могу постојати један луди питање или два да је
ћу да вас замолим да спроведе пусх или имплементирају поп или енкуеуе и декуеуе.
Али углавном, имајући то виши ниво разумевања и
од интуитивно схватање је важнији од ствари
бити у стању да га спроведе.
>> Било би заиста сјајно када сви ви могао изаћи и идемо имплементирати пробати,
али ми разумемо да није нужно најразумнији ствар сада.
Али можете у вашој псет, ако желите да, а онда ћете добити праксу,
а онда можда ћете заиста разумем.
Да?
>> ПУБЛИКА: Ок, тако да су оне које ми треба да користимо у псет?
Да ли треба да користите један од њих?
СПЕАКЕР 1: Да.
Тако да имате избор.
Претпостављам да у овом случају, можемо говорити о псет помало
јер сам водио кроз њих.
Дакле, у вашем псет, ви имате своје Избор покушаја или хеш табеле.
Неки људи ће покушати и користе БЛООМ филтере,
али они нису технички исправна.
Због њихове пробабилистичке природе, Понекад они дају лажне позитивне.
Они су кул гледати, мада.
Препоручујемо лоокинг их најмање.
Али имате избор између хеш табели и пробати.
И то ће бити, где убацујете у вашем речнику.
>> А ви ћете морати да изаберете Ваша хасх функција,
мораћете да изаберете колико кашике имате, а то ће се разликовати.
Као и ако имате више кашике, можда ће радити брже.
Али можда губите доста простора на тај начин, иако.
Морате да га схватим.
Ммхмм?
>> ПУБЛИКА: Рекли сте пре тога можемо користити и друге функције хасх,
да ми не морамо да креира хеш функцију?
>> СПЕАКЕР 1: Да, у праву.
Дакле, буквално за ваш хеш функције, као и Гоогле "хасх функција"
и тражити неке добре.
Ви се не очекује да изгради сопствених хеш функције.
Људи троши своје Тезе о тим стварима.
>> Дакле, не брините о изградњи свој.
Нађи један Онлине за почетак.
Неки од њих морате да манипулише мало
Провјерите да ли врсте Реванш се и шта све не, па у почетку,
Ја бих препоручио користећи нешто веома лако да је можда управо
хешева на првом слову.
И онда када имате да рад, уграђеним цоолер хасх функција.
Ммхмм?
>> ПУБЛИКА: Да ли би било пробати или ефикасно али само теже, као--
>> СПЕАКЕР 1: Па покушај, мислим, је интуитивно тешко спровести
али је врло брзо.
Међутим, заузима више простора.
Опет, можете оптимизирати како оних у различите начине и да постоје начини да--
ПУБЛИКА: Како смо оцењује на ово?
Да ли обзира--
>> СПЕАКЕР 1: Значи ви оцењени нормалан начин.
Идеш да се оцењује на дизајну.
Како год урадите, желите да уверите се да је као елегантан као што може да буде
и као ефикасно као што може бити.
Али ако изаберете пробати или хасх табле, све док ради,
смо задовољни тим.
А ако користите нешто што хешева на првом писму, то је у реду,
Као можда као питању дизајна.
Такође смо постизања тачка у овом семестер--
Не знам да ли си момци нотицед-- ако сте
псет оцене одбити мало због дизајна и ситница,
То је сасвим у реду.
Постаје до тачке где се ваши Програми постају компликованији.
Тхере аре море места можете побољшати на.
>> Дакле, то је сасвим нормално.
Није да си радиш горе на псет.
То је само смо бити теже на тебе.
Дакле, сви су га осећа.
Само оцењује све твоје псетс.
Знам да сви то осећа.
>> Дакле, немојте се забринути због тога.
А ако имате било каквих питања у вези претходне псетс или начина на које можете побољшати,
Покушавам и коментарисати специфичне места, али понекад је касно
и ја се уморити.
Да ли постоје неке друге ствари око структуре података?
Сигуран сам да момци не баш желим више да причам о њима,
али ако има, ја сам срећан да иди на њих, као и било шта
од предавања протеклом недеље или прошле недеље.
>> Знам да прошле недеље је све преглед, тако да да смо прескочили неки преглед
од предавања.
Има ли још питања могу да одговорим?
Добро, у реду.
Па, ви излази 15 минута раније.
>> Надам се да је ово полу-корисно барем, и ја ћу вас видим следеће недеље,
или четвртак радног времена.
Да ли постоје захтеви за грицкалице за следећу недељу, то је ствар?
Зато што сам заборавио бомбоне данас.
И донео бомбоне последњи недеља, али то је било Сатурдаи,
тако да су као шест људи који су имао четири кесице бомбона себи.
Ја могу довести Старбурстс Опет, ако желите.
Старбурстс?
У реду, звучи добро.
Хаве велики дан, момци.