רעדנער 1: אַלע רעכט, אַזוי דאָס איז קס50 דאס איז דער סוף פון וואָך פינף. און צוריקרופן אַז לעצט מאָל מיר אנגעהויבן קוקן אין די פאַנסיער דאַטן סטראַקטשערז וואָס סטאַרטעד צו סאָלווע פּראָבלעמס, אַז אנגעהויבן צו באַקענען נייַ פּראָבלעמס, אָבער דער שליסל צו דעם איז געווען דער סאָרט פון טרעדינג אַז מיר סטאַרטעד צו טאָן פון נאָדע צו נאָדע. אזוי דעם פון קורס איז אַ יינציקווייַז לינגקט רשימה. און דורך יינציקווייַז לינגקט, איך מיינען עס ס נאָר איינער פאָדעם צווישן יעדער פון די נאָודז. טורנס אויס איר קענען טאָן פאַנסיער זאכן ווי דאַבלי לינגקט רשימות ווערביי איר האָבן אַ פייַל געגאנגען אין ביידע אינסטרוקציעס, וואָס קענען העלפן מיט זיכער עפפיסיענסיעס. אבער דעם סאַלווד די פּראָבלעם? וואָס פּראָבלעם האט דעם סאָלווע? וואָס האָט מיר זאָרגן אויף מאנטאג? וואָס, אין טעאָריע, האט מיר זאָרגן אויף מאנטאג? וואָס טוט עס טאָן? וילעם: מיר קענען דינאַמיקאַללי רעסיזע עס. רעדנער 1: גוט, אַזוי מיר קענען דינאַמיקאַללי רעסיזע עס. גוט געטאן ביידע פון ​​איר. אַזוי איר קענען דינאַמיקאַללי רעסיזע דעם דאַטע ביניען, כוועראַז אַ מענגע, צוריקרופן, איר האָבן צו וויסן אַ פּריאָרי ווי פיל פּלאַץ איר ווילן און אויב איר דאַרפֿן אַ ביסל מער אָרט, איר ניטאָ מין פון אויס פון גליק. איר האָבן צו מאַכן אַ גאַנץ נייַ מענגע. איר האָבן צו באַוועגן אַלע פון ​​דיין דאַטע פון ​​איין צו די אנדערע, יווענטשאַוואַלי פּאָטער דער אַלט מענגע אויב איר קענען, און דעמאָלט גיינ ווייַטער. וואָס נאָר Feels זייער טייַער און זייער באַטלאָניש, און טאַקע עס קענען זיין. אבער דעם איז ניט אַלע גוט. מיר באַצאָלן אַ פּרייַז, וואָס איז געווען איינער פון די מער קלאָר ווי דער טאָג פּרייסיז מיר באַצאָלן דורך ניצן אַ לינגקט רשימה? וילעם: מיר האָבן צו נוצן טאָפּל פּלאַץ פֿאַר יעדער איינער. רעדנער 1: יאָ, אַזוי מיר דאַרפֿן לפּחות צוויי מאָל ווי פיל פּלאַץ. אין פאַקט, איך איינגעזען דעם בילד ס אַפֿילו אַ ביסל מיסלידינג, ווייַל אויף קס50 ייד אין אַ פּלאַץ פון מאָדערן קאָמפּיוטערס, אַ טייַטל אָדער אַן אַדרעס איז נישט אין פאַקט פיר ביטעס. עס ס זייער אָפֿט די טעג אַכט ביטעס, וואָס מיטל די דנאָ מערסט רעקטאַנגגאַלז עס אין פאַקט זענען מין פון צוויי מאָל ווי גרויס ווי וואָס איך ווע ציען, וואָס מיטל איר ניטאָ ניצן דרייַ מאל ווי פיל פּלאַץ ווי מיר זאלן האָבן אַנדערש. איצט אין דער זעלביקער צייַט, מיר רע נאָך גערעדט ביטעס, רעכט? מיר 'רע ניט דאַווקע גערעדט מעגאבייט אָדער גיגאבייט, סייַדן די דאַטע סטראַקטשערז באַקומען גרויס. און אַזוי הייַנט מיר אָנהייבן צו באַטראַכטן ווי מיר זאלן ויספאָרשן דאַטע מער עפפיסיענטלי אויב אין פאַקט די דאַטע געץ ביגער. אבער לאָזן ס פּרובירן צו קאַנאָניקאַליזע די אַפּעריישאַנז ערשטער אַז איר קענען טאָן אויף די מינים פון דאַטן סטראַקטשערז. אַזוי עפּעס ווי אַ לינגקט רשימה בכלל שטיצט אַפּעריישאַנז ווי ויסמעקן, אַרייַנלייגן, און זוכן. און וואָס טאָן איך מיינען דורך וואָס? אַז נאָר מיטל אַז יוזשאַוואַלי, אויב מענטשן זענען ניצן לינגקט רשימה, זיי אָדער עמעצער אַנדערש האט ימפּלאַמענטאַד פֿעיִקייטן ווי ויסמעקן, אַרייַנלייגן, און זוכן, אַזוי איר קענען אַקשלי טאָן עפּעס נוציק מיט דער דאַטע ביניען. אַזוי לאָזן ס נעמען אַ שנעל קוקן אין ווי מיר זאל מאַכשער עטלעכע קאָד פֿאַר אַ לינגקט רשימה ווי גייט. אזוי דעם איז נאָר עטלעכע C קאָד, ניט אַפֿילו אַ גאַנץ פּראָגראַם אַז איך טאַקע געשווינד וויפּט אַרויף. עס ס ניט אָנליין אין די פאַרשפּרייטונג קאָד, ווייַל עס וועט ניט אַקטשאַוואַלי לויפן. אבער באַמערקן איך ווע נאָר מיט אַ באַמערקונג געזאגט, פּונקט פּונקט פּונקט, עס ס עפּעס דאָרט, פּונקט פּונקט פּונקט, עפּעס דאָרט. און לאָזן ס נאָר קוק אין וואָס די זאַפטיק טיילן זענען. אזוי אויף שורה דרייַ, צוריקרופן אַז דאָס איז איצט מיר פּראָפּאָסעד דיקלערינג אַ נאָדע לעצטע צייַט, איינער פון די רעקטאַנגגיאַלער אַבדזשעקס. עס האט אַ ינט אַז מיר וועט רופן ן, אָבער מיר קען רופן עס עפּעס, און דעמאָלט אַ סטרוקט נאָדע שטערן גערופֿן ווייַטער. און נאָר צו זיין קלאָר, אַז רגע שורה, אויף שורה זעקס, וואָס איז וואָס? וואָס איז עס טאן פֿאַר אונדז? ווייַל עס זיכער קוקט מער קריפּטיק ווי אונדזער געוויינטלעך וועריאַבאַלז. וילעם: עס מאכט עס באַוועגן איבער איין. רעדנער 1: עס מאכט עס באַוועגן איבער איין. און צו זיין מער גענוי, עס וועט קראָם די אַדרעס פון די נאָדע אַז ס מענט צו זיין סעמאַנטיקאַללי ווייַטער צו עס, רעכט? אַזוי עס ס ניט געגאנגען צו דאַווקע באַוועגן עפּעס. עס ס נאָר געגאנגען צו קראָם אַ ווערט, וואָס איז געגאנגען צו זיין די אַדרעס פון עטלעכע אנדערע נאָדע, און אַז ס וואָס מיר ווע האט סטרוקט נאָדע שטערן, די שטערן דענאָטינג אַ טייַטל אָדער אַן אַדרעס. גוט, אַזוי איצט אויב איר יבערנעמען אַז מיר האָבן דעם ען בנימצא צו אונדז, און לאָזן ס יבערנעמען אַז עמעצער אַנדערש האט ינסערטאַד אַ גאַנץ בינטל פון ינטאַדזשערז אין אַ לינגקט רשימה. און אַז לינגקט רשימה איז שפּיציק צו דורך עטלעכע פונט אַ בייַטעוודיק געהייסן רשימה אַז ס דורכגעגאנגען אין דאָ ווי אַ פּאַראַמעטער, ווי טאָן איך גיין וועגן שורה 14 ימפּלאַמענינג זוכן? אין אנדערע ווערטער, אויב איך בין ימפּלאַמענטינג פֿונקציע וועמענס ציל אין לעבן איז צו נעמען אַ ינט און דעמאָלט דער אָנהייב פון אַ לינגקט רשימה, וואָס איז אַ טייַטל צו די לינגקט רשימה. ווי ערשטער, וואס איך טראַכטן דוד איז געווען אונדזער פרייַוויליקער אויף מאנטאג, ער איז געווען פּוינטינג בייַ די גאנצע לינגקט רשימה, עס ס ווי כאָטש מיר רע פּאַסינג דוד אין ווי אונדזער אַרגומענט דאָ. ווי טאָן מיר גיין וועגן טראַווערסינג דעם רשימה? נו, עס טורנס אויס אַז אַפֿילו כאָטש פּוינטערז זענען לעפיערעך נייַ איצט צו אונדז, מיר קענען טאָן דעם לעפיערעך סטראַיגהטפאָרוואַרדלי. איך בין געגאנגען צו גיין פאָרויס און דערקלערן אַ צייַטווייַליק בייַטעוודיק אַז דורך קאַנווענשאַן איז נאָר געגאנגען צו זיין גערופֿן טייַטל, אָדער פּטר, אָבער איר קען רופן עס עפּעס איר ווילן. און איך בין געגאנגען צו ינישאַלייז עס צו די אָנהייב פון די רשימה. אַזוי איר קענען מין פון טראַכטן פון דעם ווי מיר די לערער די אנדערע טאָג, מין פון פּוינטינג בייַ עמעצער צווישן אונדזער יומאַנז ווי וואַלאַנטירז. אזוי איך בין אַ צייַטווייַליק בייַטעוודיק אַז ס נאָר פּוינטינג בייַ די זעלבע זאַך אַז אונדזער קאָוינסידענאַלי געהייסן פרייַוויליקער דוד איז אויך פּוינטינג אויס. איצט בשעת טייַטל איז ניט נאַל, ווייַל צוריקרופן וואָס נאַל איז עטלעכע ספּעציעל סענטינעל ווערט די דעמאַרקאַטעס דער סוף פון דער רשימה, אַזוי בשעת איך בין נישט פּוינטינג אין די ערד ווי אונדזער לעצטע פרייַוויליקער איז, לאָזן ס גיין פאָרויס און טאָן די ווייַטערדיק. אויב פּאָינטער-- און איצט איך מין פון ווילן צו טאָן וואָס מיר האבן מיט די תּלמיד סטרוקטורע-- אויב טייַטל פּונקט ווייַטער עקוואַלס-- גאַנץ, אויב טייַטל פּונקט ען יקוואַלז יקוואַלז די בייַטעוודיק ען, די אַרגומענט אַז ס שוין דורכגעגאנגען אין, דעמאָלט איך ווילן צו גיין פאָרויס און זאָגן צוריקקומען אמת. איך האָב געפֿונען די נומער N ין פון איינער פון די נאָודז פון מיין לינגקט רשימה. אבער די פּונקט ניט מער אַרבעט אין דעם קאָנטעקסט, ווייַל טייַטל, פּטר, איז טאַקע אַ טייַטל, אַן אַדרעס, מיר אַקשלי קענען וואָנדערפוללי נוצן לעסאָף אַ שטיק פון סינטאַקס אַז מין פון מאכט ינטואַטיוו זינען און אַקשלי נוצן אַ פייַל דאָ, וואָס מיטל גיין פון אַז אַדרעס צו די ינטעגער עס אין. אַזוי עס ס זייער ענלעך אין גייסט צו די פּינטעלע אָפּעראַטאָר, אָבער ווייַל טייַטל איז נישט אַ טייַטל און ניט אַ פאַקטיש סטרוקט זיך, מיר נאָר נוצן די פייַל. אַזוי אויב די קראַנט נאָדע אַז איך, די צייַטווייַליק בייַטעוודיק, בין פּוינטינג בייַ איז ניט ען, וואָס טאָן איך ווילן צו טאָן? נו, מיט מיין מענטשלעך וואַלאַנטירז אַז מיר האבן דאָ די אנדערע טאָג, אויב מיין ערשטער מענטש איז ניט דער איינער איך ווילן, און אפֿשר די רגע מענטש איז נישט דער איינער איך ווילן, און די דריט, איך דאַרפֿן צו האַלטן פֿיזיש מאָווינג. ווי ווי טאָן איך שריט דורך אַ רשימה? ווען מיר האבן אַ מענגע, איר נאָר האט ווי איך פּלוס פּלוס. אבער אין דעם פאַל, עס איז גענוג צו טאָן טייַטל, געץ, טייַטל, ווייַטער. אין אנדערע ווערטער, די ווייַטער פעלד איז ווי אַלע פון ​​די לינקס האַנט אַז אונדזער מענטש וואַלאַנטירז אויף מאנטאג האבן ניצן צו פונט בייַ עטלעכע אנדערע נאָדע. יענע זענען זייער ווייַטער שכנים. אַזוי אויב איך ווילן צו שריט דורך דעם רשימה, איך קענען ניט נאָר טאָן איך פּלוס פּלוס ענימאָר, איך אַנשטאָט האָבן צו זאָגן איך, טייַטל, איז געגאנגען צו גלייַך וועלכער די ווייַטער פעלד איז, די ווייַטער פעלד איז, די ווייַטער פעלד איז, ווייַטערדיק אַלע פון ​​די לינקס האַנט אַז מיר האבן אויף בינע פּוינטינג צו עטלעכע סאַבסאַקוואַנט וואַלועס. און אויב איך באַקומען דורך אַז גאַנץ יטעראַטיאָן, און ענדלעך, איך שלאָגן נאַל ניט געהאט געפֿונען ען נאָך, איך נאָר צוריקקומען פאַלש. אַזוי ווידער, אַלע אַז מיר ניטאָ טאן דאָ, ווי פּער די בילד אַ מאָמענט צוריק, איז סטאַרטינג דורך פּוינטינג בייַ די אָנהייב פון דער רשימה מאַשמאָעס. און דעמאָלט איך טשעק, איז די ווערט איך בין קוקן פֿאַר גלייַך צו נייַן? אויב אַזוי, איך צוריקקומען אמת און איך בין געטאן. אויב ניט, איך דערהייַנטיקן מיין האַנט, אַקאַ טייַטל, צו פונט אין דער ווייַטער פייַל ס אָרט, און דעמאָלט דער ווייַטער פייַל ס אָרט, און די ווייַטער. איך בין נאָר גיין דורך דעם מענגע. אַזוי ווידער, וואס דאגות? ווי וואָס איז דאָס אַ ינגרידיאַנט פֿאַר? נו, צוריקרופן אַז מיר באַקענענ דער געדאנק פון אַ אָנלייגן, וואָס איז אַ אַבסטראַקט דאַטן טיפּ ינסאָפאַר ווי עס ס ניט אַ C זאַך, עס ס ניט אַ קס50 זאַך, עס ס אַ אַבסטראַקט געדאַנק, דעם געדאַנק פון סטאַקינג זאכן אויף שפּיץ פון איינער דעם אנדערן אַז קענען זיין ימפּלאַמענאַד אין באַנטשאַז פון פאַרשידענע וועגן. און איין וועג מיר פּראָפּאָסעד איז געווען מיט אַ מענגע, אָדער מיט אַ לינגקט רשימה. און עס טורנס אויס אַז קאַנאָניקאַללי, אַ אָנלייגן שטיצט לפּחות צוויי אַפּעריישאַנז. און די זשומען ווערטער זענען שטופּן, צו שטופּן עפּעס אַנטו דעם אָנלייגן, ווי אַ נייַ טאַץ אין די דיינינג זאַל, אָדער קנאַל, וואָס מיטל צו אַראָפּנעמען די ייבערשט טאַץ פון דעם אָנלייגן אין די דיינינג זאַל, און דעמאָלט אפֿשר עטלעכע אנדערע אַפּעריישאַנז ווי געזונט. אַזוי ווי זאל מיר דעפינירן די סטרוקטור אַז מיר ניטאָ איצט פאַך אַ אָנלייגן? נו, מיר האָבן אַלע פון ​​די נייטיקע סינטאַקס אין אונדזער באַזייַטיקונג אין סי איך זאָגן, געבן מיר אַ טיפּ דעפֿיניציע פון אַ סטרוקט ין פון אַ אָנלייגן, איך בין געגאנגען צו זאָגן איז אַ מענגע, פון אַ גאַנץ בינטל פון נומערן און דעמאָלט גרייס. אַזוי אין אנדערע ווערטער, אויב איך ווילן צו ינסטרומענט דעם אין קאָד, לאָזן מיר גיין און נאָר מין פון ציען וואָס דאָס איז געזאגט. אזוי דעם איז געזאגט, געבן מיר אַ ביניען אַז ס גאַט אַ מענגע, און איך טאָן ניט וויסן וואָס קאַפּאַציטעט איז, עס ס משמעות עטלעכע קעסיידערדיק אַז איך ווע Defined אנדערש, און אַז ס פייַן. אבער רעכן עס ס נאָר איינער, צוויי, דרייַ, פיר, פינף. אַזוי קאַפּאַציטעט איז 5. דעם עלעמענט ין פון מיין ביניען וועט זיין גערופֿן נומערן. און דעמאָלט איך דאַרפֿן איין אנדערע בייַטעוודיק משמעות גערופֿן גרייס אַז טכילעס איך בין געגאנגען צו ויסנעמען איז יניטיאַליזעד צו נול. אויב עס ס גאָרנישט אין דעם אָנלייגן, גרייס איז נול, און עס ס מיסט וואַלועס אין נומערן. איך האָבן קיין געדאַנק וואָס ס אין עס נאָר נאָך. אַזוי אויב איך ווילן צו שטופּן עפּעס אַנטו דעם אָנלייגן, רעכן איך רופן די פֿונקציע שטופּן, און איך זאָגן שטופּן 50, ווי די נומער 50, ווו וואָלט איר פאָרשלאָגן איך ציען עס אין דעם מענגע? עס ס פינף פאַרשידענע מעגלעך ענטפֿערס. ווו טאָן איר ווילן צו שטופּן די נומער 50? אויב די ציל דאָ, ווידער, רופן די פֿונקציע שטופּן, פאָרן אין אַן אַרגומענט פון 50, ווו טאָן איך לייגן עס? פינף פּאָססיבלע-- 20% געלעגנהייַט פון געסינג ריכטיק. יא? וילעם: ווייט רעכט. רעדנער 1: ווייט רעכט. עס איז איצט אַ 25% געלעגנהייַט פון געסינג ריכטיק. אַזוי אַז וואָלט אַקטשאַוואַלי זיין פייַן. דורך קאַנווענשאַן, איך וועט זאָגן מיט אַ מענגע, מיר וואָלט בכלל אָנהייבן בייַ די לינקס, אָבער מיר קען זיכער אָנהייב אין די רעכט. אזוי די ספּוילער דאָ וואָלט זיין איך בין מיסטאָמע געגאנגען צו ציען עס אויף די לינקס, פּונקט ווי אין אַ נאָרמאַל מענגע ווו איך אָנהייבן געגאנגען לינקס צו רעכט. אבער אויב איר קענען Flip די אַריטמעטיק, פייַן. עס ס נאָר ניט קאַנווענשאַנאַל. גוט, איך דאַרפֿן צו מאַכן איין מער טוישן כאָטש. איצט אַז איך ווע פּושט עפּעס אַנטו דעם אָנלייגן, וואָס ס ווייַטער? אַלע רעכט, איך האָבן צו ינקראַמאַנט די גרייס. אַזוי לאָזן מיר גיין פאָרויס און נאָר דערהייַנטיקן דעם, וואָס איז געווען נול. און אַנשטאָט איצט, איך בין געגאנגען צו שטעלן אין די ווערט איינער. און איצט רעכן איך שטופּן אנדערן נומער אַנטו דעם אָנלייגן, ווי 51. נו, איך האָבן צו מאַכן איינער מער טוישן, וואָס איז אַרויף צו די גרייס צוויי. און דעמאָלט רעכן איך שטופּן איינער מער נומער אַנטו דעם אָנלייגן ווי 61, איצט איך דאַרפֿן צו דערהייַנטיקן די נומער איינער מער צייַט, און באַקומען די ווערט 3 ווי די גרייס. און איצט רעכן איך רוף קנאַל. איצט קנאַל, דורך קאַנווענשאַן, טוט ניט נעמען אַ אַרגומענט. מיט אַ אָנלייגן, די גאנצע פונט פון די טאַץ מעטאַפאָר איז אַז איר טאָן ניט האָבן דיסקרעשאַן צו גיין באַקומען אַז טאַץ, אַלע איר קענען טאָן איז קנאַל די ייבערשט איינער פון דעם אָנלייגן, נאָר ווייַל. אַז ס וואָס דעם דאַטן סטרוקטור טוט. אַזוי דורך אַז לאָגיק אויב איך זאָגן קנאַל, וואָס קומט אַוועק? אַזוי 61. אזוי וואָס איז טאַקע די קאָמפּיוטער געגאנגען צו טאָן אין זכּרון? וואָס טוט מיין קאָד האָבן צו טאָן? וואָס וואָלט איר פאָרשלאָגן מיר טוישן אויף דער עקראַן? וואָס זאָל טוישן? אנטשולדיגט? אַזוי מיר באַקומען באַפרייַען פון 61. אַזוי איך קענען באשטימט טאָן אַז. און איך קענען באַקומען באַפרייַען פון 61. און דעמאָלט וואָס אנדערע טוישן דאַרף צו פּאַסירן? גרייס מיסטאָמע האט צו גיין צוריק צו צוויי. און אַזוי אַז ס פייַן. אבער וואַרטן אַ מינוט, גרייס אַ מאָמענט צוריק איז געווען דרייַ. זאל ס נאָר טאָן אַ שנעל מייושעוודיקייַט טשעק. ווי האט מיר וויסן אַז מיר געוואלט צו באַקומען באַפרייַען פון 61? ווייַל מיר ניטאָ פּאַפּינג. און אַזוי איך האָבן דעם רגע פאַרמאָג גרייס. וואַרטן אַ מינוט, איך בין טראכטן צוריק צו וואָך צוויי ווען מיר סטאַרטעד גערעדט וועגן ערייז, ווו דעם איז אָרט נול, דעם איז אָרט איין, דעם איז געווען אָרט צוויי, דעם איז אָרט דרייַ, פיר, עס קוקט ווי די שייכות צווישן גרייס און די עלעמענט וואס איך ווילן צו באַזייַטיקן פון די מענגע אויס צו נאָר זיין וואָס? גרייס מינוס איינער. און אַזוי אַז ס ווי ווי יומאַנז מיר וויסן 61 קומט ערשטער. ווי ס די קאָמפּיוטער געגאנגען צו וויסן? ווען דיין קאָד, ווו איר מיסטאָמע ווילן צו טאָן גרייס מינוס איינער, אַזוי דרייַ מינוס איינער איז צוויי, און אַז מיטל מיר ווילן צו באַקומען באַפרייַען פון 61. און דעמאָלט מיר קענען טאַקע דערהייַנטיקן די נומער אַזוי אַז גרייס איצט גייט דרייַ צו נאָר צוויי. און נאָר צו זיין פּעדאַנטיק, איך בין געגאנגען צו פאָרשלאָגן אַז איך בין געטאן, רעכט? איר פּראָפּאָסעד ינטויטיוולי ריכטיק איך זאָל באַקומען באַפרייַען פון 61. אָבער האָבן ניט איך מין פון סאָרט פון גאַטאַן באַפרייַען פון 61? איך'ווע Effectively פֿאַרגעסן אַז עס ס אַקטשאַוואַלי עס. און טראַכטן צוריק צו פּסעט4, אויב איר ווע לייענען דער אַרטיקל וועגן פאָרענסיקס, די פּדף אַז מיר האבן איר גייז לייענען, אָדער איר וועט לייענען דעם וואָך פֿאַר פּסעט4. ריקאָל אַז דאָס איז אַקשלי גערמאַנע צו די גאנצע געדאַנק פון קאָמפּיוטער פאָרענסיקס. וואָס אַ קאָמפּיוטער בכלל טוט איז עס נאָר פאָרגעץ ווו עפּעס איז, אָבער עס טוט נישט גיין אין און ווי פּרובירן צו קראַצן עס אויס אָדער אָווועררייד די ביץ מיט זעראָס און אָנעס אָדער עטלעכע אנדערע ראַנדאָם מוסטער סייַדן איר זיך טאָן אַזוי דיליבראַטלי. אזוי דיין ינטוישאַן איז רעכט, לאָזן 'ס באַקומען באַפרייַען פון 61. אבער אין פאַקט, מיר טאָן ניט האָבן צו אַרן. מיר נאָר דאַרפֿן צו פאַרגעסן אַז עס ס דאָרט דורך טשאַנגינג אונדזער גרייס. איצט דאָרט ס אַ פּראָבלעם מיט דעם אָנלייגן. אויב איך האַלטן פּושינג זאכן אַנטו דעם אָנלייגן, וואָס ס דאָך געגאנגען צו פּאַסירן אין נאָר אַ ביסל מאָומאַנץ צייַט? מיר ניטאָ געגאנגען צו לויפן אויס פון פּלאַץ. און וואָס טוט מיר טאָן? מיר ניטאָ מין פון סקרוד. דעם ימפּלאַמענטיישאַן טוט נישט לאָזן אונדז רעסיזע די מענגע, ווייַל ניצן דעם סינטאַקס, אויב איר טראַכטן צוריק צו וואָך צוויי, אַמאָל איר ווע דערקלערט די גרייס פון אַ מענגע, מיר האָבן נישט געזען אַ מעקאַניזאַם נאָך ווו איר קענען טוישן די נומער פון די מענגע. און טאַקע C טוט נישט האָבן אַז שטריך. אויב איר זאָגן געבן מיר פינף נטהס, רופן זיי נומערן, אַז ס אַלע איר ניטאָ געגאנגען צו באַקומען עס. אַזוי מיר טאָן איצט ווי פון מאנטאג, האָבן די פיייקייַט צו אויסדריקן אַ לייזונג כאָטש, מיר נאָר דאַרפֿן צו טוויק די דעפֿיניציע פון ​​אונדזער אָנלייגן צו ניט זיין עטלעכע שווער-קאָדעד מענגע, אָבער נאָר צו קראָם אַן אַדרעס. איצט וואָס איז דאָס? איצט מיר נאָר האָבן צו זייַן באַקוועם מיט די פאַקט אַז ווען מיין פּראָגראַם ראַנז, איך בין מאַשמאָעס געגאנגען צו האָבן צו פרעגן די מענטש, ווי פילע נומערן טאָן איר ווילן צו קראָם? אזוי די ינפּוט האט צו קומען פון ערגעץ. אבער אַמאָל איך וויסן אַז נומער, דעמאָלט איך קען נאָר נוצן וואָס פונקציאָנירן צו געבן מיר אַ פּייַדע פון ​​זכּרון? איך קען נוצן מאַללאָק. און איך קענען זאָגן קיין נומער פון בייטן איך ווילן צוריק פֿאַר די נטהס. און אַלע איך האָבן צו קראָם אין די נומערן בייַטעוודיק דאָ ין פון דעם סטרוקט זאָל זיין וואָס? וואָס אַקטשאַוואַלי גייט אין די נומערן אין דעם סצענאַר? יאָ, אַ טייַטל צו דער ערשטער ביטע פון ​​וואָס פּייַדע פון ​​זכּרון, אָדער מער ספּעסיפיקאַללי, די אַדרעס פון דער ערשטער פון די ביטעס. טוט ניט ענין אויב עס ס איינער ביטע אָדער אַ ביליאָן ביטעס, איך נאָר דאַרפֿן צו זאָרגן וועגן דער ערשטער. מחמת וואָס מאַללאָק געראַנטיז און מיין אַפּערייטינג סיסטעם געראַנטיז, איז אַז די פּייַדע פון ​​זכּרון איך באַקומען, עס ס געגאנגען צו זיין קאַנטיגיואַס. עס ס ניט געגאנגען צו זיין גאַפּס. אַזוי אויב איך ווע געבעטן פֿאַר 50 בייטן אָדער 1,000 בייטן, זיי ניטאָ אַלע געגאנגען צו זיין צוריק צו צוריק צו צוריק. און אַזוי לאַנג ווי איך געדענקען ווי גרויס, ווי פיל איך געבעטן פֿאַר, אַלע איך דאַרפֿן צו וויסן איז דער ערשטער אַזאַ אַדרעס. אזוי איצט מיר האָבן די פיייקייַט אין קאָד. אָלבייט, עס ס געגאנגען צו נעמען אונדז מער צייַט צו שרייַבן דעם אַרויף, מיר קען איצט רעאַללאָקאַטע אַז זכּרון דורך נאָר סטאָרינג אַ אַנדערש אַדרעס עס אויב מיר ווילן אַ ביגער אָדער אַפֿילו אַ קלענערער פּייַדע פון ​​זכּרון. אזוי דאָ צו אַ האַנדל אַוועק. איצט מיר באַקומען דיינאַמיזאַם. מיר נאָך האָבן קאָנטיגואָוסנעסס איך בין קליימינג. ווייַל מאַללאָק וועט געבן אונדז אַ קאַנטיגיואַס פּייַדע פון ​​זכּרון. אבער דעם איז געגאנגען צו זיין אַ ווייטיק אין די האַלדז פֿאַר אונדז, די פּראָגראַמיסט, צו אַקטשאַוואַלי קאָד אַרויף. עס ס נאָר מער אַרבעט. מיר דאַרפֿן קאָד קרויוויש צו וואָס איך איז געווען באַנגינג אויס נאָר אַ מאָמענט צוריק. זייער דואַבאַל, אָבער עס מוסיף קאַמפּלעקסיטי. און אַזוי דעוועלאָפּער צייַט, פּראָגראַמיסט צייַט איז נאָך אן אנדער מיטל אַז מיר זאלן דאַרפֿן צו פאַרברענגען עטלעכע מאָל צו באַקומען נייַ פֿעיִקייטן. און דעמאָלט פון לויף עס איז אַ ריי. מיר וועלן נישט גיין אין דעם איינער אין פיל דעטאַל. אבער עס ס זייער ענלעך אין גייסט. איך קען מאַכשער אַ ריי, און זייַן קאָראַספּאַנדינג אַפּעריישאַנז, ענקוועוע אָדער דעקוועוע, ווי צוגעבן אָדער אַראָפּנעמען, עס ס נאָר אַ פאַנסיער וועג פון זאגן עס, ענקוועוע אָדער דעקוועוע, ווי גייט. איך קען נאָר געבן זיך אַ סטרוקט אַז ווידער האט אַ נומער ס מענגע, אַז ווידער האט אַ נומער, אָבער וואָס טאָן איך איצט דאַרפֿן צו האַלטן שפּור פון די פראָנט פון אַ ריי? איך האט ניט דאַרפֿן צו וויסן די פראָנט פון מיין אָנלייגן. נו, אויב איך ווידער פֿאַר אַ קוועוע-- לאָזן ס נאָר שווער קאָד עס ווי בעת ווי פינף ינטאַדזשערז אין דאָ פּאַטענטשאַלי. אזוי דעם איז נול, איין, צוויי, דרייַ, פיר. דעם איז געגאנגען צו זיין גערופֿן נומערן ווידער. און דעם וועט זיין גערופֿן גרייס. וואָס איז עס ניט גענוג צו האָבן נאָר גרייס? נו, לאָזן ס שטופּן די זעלבע נומערן אויף. אַזוי איך פּושעד-- איך ענקוועועד, אָדער פּושט. איצט איך וועט ענקוועוע 50, און דעריבער 51, און דעמאָלט 61, און פּונקט פּונקט פּונקט. אַזוי אַז ס ענקוועוע. איך ענקוועועד 50, דעמאָלט 51, דעמאָלט 61. און וואָס קוקט יידעניקאַל צו אַ אָנלייגן אַזוי ווייַט, חוץ איך טאָן דאַרפֿן צו מאַכן איין טוישן. איך דאַרפֿן צו דערהייַנטיקן דעם נומער, אַזוי איך גיין פון נול צו איינער צו 2-3 איצט. ווי טאָן איך דעקוועוע? וואָס כאַפּאַנז מיט דעקוועוע? ווער זאָל קומען אַוועק דעם רשימה ערשטער אויב עס ס די שורה בייַ די עפּל קראָם? אַזוי 50. אַזוי עס ס מין פון טריקיער דעם מאָל. ווהערעאַס לעצטע מאָל עס איז געווען סופּער גרינג צו נאָר טאָן גרייס מינוס איינער, איך באַקומען צו דעם סוף פון מיין מענגע Effectively ווו די נומערן זענען, עס רימוווז 61. אבער איך טאָן ניט ווילן צו באַזייַטיקן 61. איך ווילן צו נעמען 50, וואס איז געווען דאָרט בייַ 05:00 צו שורה אַרויף פֿאַר די נייַ iPhone אָדער וואַטנאַט. און אַזוי צו באַקומען באַפרייַען פון 50, איך קענען ניט נאָר טאָן דאָס, רעכט? איך קענען קרייַז אויס 50. אבער מיר נאָר געזאגט מיר טאָן ניט האָבן צו זיין אַזוי אַנאַל ווי צו קראַצן אויס אָדער באַהאַלטן די דאַטע. מיר קענען נאָר פאַרגעסן ווו עס איז. אבער אויב איך טוישן מיין גרייס איצט צו צוויי, איז דאָס גענוג אינפֿאָרמאַציע צו וויסן וואָס איז געגאנגען אויף אין מיין ריי? ניט טאַקע. ווי מיין נומער איז צוויי, אָבער ווו טוט די ריי נעמען, ספּעציעל אויב איך נאָך האָבן די זעלבע נומערן אין זכּרון. 50, 51, 61. אַזוי איך דאַרפֿן צו געדענקען איצט ווו די פראָנט איז. און אַזוי ווי איך פּראָפּאָסעד זיך דאָרט, מיר וועט האָבן נאָר גערופֿן ענט פראָנט, וועמענס ערשט ווערט זאָל האָבן געווען וואָס? נול, נאָר דער אָנהייב פון די רשימה. אבער איצט אין דערצו צו דעקרעמענטינג די גרייס, מיר נאָר ינקראַמאַנט די פראָנט. איצט דאָ ס אן אנדער פּראָבלעם. אַזוי אַמאָל איך האַלטן געגאנגען. רעכן דאָס איז די נומער פון ווי 121, 124, און דעריבער, Dammit, איך בין אויס פון אָרט. אבער וואַרטן אַ מינוט, איך בין נישט. אַזוי אין דעם פונט אין די געשיכטע, רעכן אַז די נומער איז איינער, צוויי, דרייַ, פיר, אַזוי רעכן אַז דער גרייס איז פיר, די פראָנט איז איינער, אַזוי 51 איז אין די פראָנט. איך ווילן צו שטעלן אנדערן נומער דאָ, אָבער, Dammit, איך בין אויס פון אָרט. אבער איך בין ניט טאַקע, רעכט? ווו קען איך שטעלן עטלעכע נאָך ווערט, ווי 171? יאָ, איך קען נאָר מין פון גיין צוריק איבער דאָרט, רעכט? און דעמאָלט קרייַז אויס די 50, אָדער נאָר אָווועררייט עס מיט 171. און אויב איר ניטאָ וואַנדערינג וואָס אונדזער נומערן גאַט אַזוי ראַנדאָם, די ביסט קאַמאַנלי גענומען קאָמפּיוטער וויסנשאַפֿט קאָרסאַז אין האַרוואַרד נאָך קס50. אבער אַז איז געווען אַ גוט אַפּטאַמאַזיישאַן, ווייַל איצט איך בין נישט ווייסטינג פּלאַץ. איך נאָך האָבן צו געדענקען ווי גרויס דעם זאַך איז גאַנץ. עס ס פינף גאַנץ. מחמת איך טאָן ניט ווילן צו אָנהייבן אָווועררייטינג 51. אַזוי איצט איך בין נאָך אויס פון אָרט, אַזוי די זעלבע פּראָבלעם ווי איידער. אבער איר קענען זען ווי איצט אין דיין קאָד, איר מיסטאָמע האָבן צו שרייַבן אַ ביסל מער קאַמפּלעקסיטי צו מאַכן אַז פּאַסירן. און אין פאַקט, וואָס אָפּעראַטאָר אין C מיסטאָמע לעץ איר מאַדזשיקאַלי טאָן דעם די סירקולאַריטי? יאָ די מאָדולאָ אָפּעראַטאָר, די פּראָצענט צייכן. אזוי וואָס ס מין פון קיל וועגן אַ ריי, אַפֿילו כאָטש מיר האַלטן צייכענונג ערייז ווי די ווי גלייַך שורות, אויב איר מין פון טראַכטן וועגן דעם ווי קורווינג אַרום ווי אַ קרייַז, דעמאָלט נאָר ינטויטיוולי עס מין פון אַרבעט מענטאַלי איך טראַכטן אַ ביסל מער קלינלי. איר וואָלט נאָך האָבן צו ינסטרומענט אַז גייַסטיק מאָדעל אין קאָד. אַזוי נישט אַז שווער, לעסאָף, צו מאַכשער, אָבער מיר נאָך פאַרלירן די סיזע-- גאַנץ, דער פיייקייַט צו רעסיזע, סייַדן מיר טאָן דעם. מיר האָבן צו באַקומען באַפרייַען פון די מענגע, מיר פאַרבייַטן עס מיט אַ איין טייַטל, און דעמאָלט ערגעץ אין מיין קאָד איך ווע גאַט אַ רוף וואָס פונקציאָנירן צו אַקטשאַוואַלי מאַכן די מענגע גערופֿן נומערן? מאַללאָק, אָדער עטלעכע ענלעך פונקציאָנירן, פּונקט. קיין שאלות אויף סטאַקס אָדער קיוז. יאָ? גוט קשיא. וואָס מאָדולאָ וואָלט איר נוצן דאָ. אַזוי בכלל, ווען ניצן מאָד, איר וואָלט טאָן עס מיט די נומער פון די גאַנץ דאַטע ביניען. אַזוי עפּעס ווי פינף אָדער קאַפּאַציטעט, אויב עס ס קעסיידערדיק, איז מיסטאָמע ינוואַלווד. אבער נאָר טאן מאָדולאָ פינף מיסטאָמע איז ניט גענוג, ווייַל מיר דאַרפֿן צו וויסן טאָן מיר ייַנוויקלען אַרום דאָ אָדער דאָ אָדער דאָ. אזוי איר ניטאָ מיסטאָמע אויך געגאנגען צו ווילן צו אַרייַנציען די גרייס פון די זאַך, אָדער די פראָנט בייַטעוודיק ווי געזונט. אַזוי עס ס נאָר דעם לעפיערעך פּשוט אַריטמעטיק אויסדרוק, אָבער מאָדולאָ וואָלט זיין די שליסל ינגרידיאַנט. אַזוי קורץ פילם אויב איר וועט. אַ אַנאַמיישאַן אַז עטלעכע folks אין אנדערן אוניווערסיטעט שטעלן צוזאַמען אַז מיר'ווע אַדאַפּטעד פֿאַר דעם דיסקוסיע. עס ינוואַלווז דזשאַק וויסן די facts וועגן קיוז און סטאַץ. FILM: אַמאָל אויף אַ מאָל, עס איז געווען אַ באָכער געהייסן דזשאַק. ווען עס געקומען צו מאכן Friends, דזשאַק האט נישט האָבן אַ געלענק. אַזוי דזשאַק געגאנגען צו רעדן צו די רובֿ פאָלקס באָכער ער געוואוסט. ער געגאנגען צו לאָו און געבעטן, וואָס טוט איך טאָן? לאָו געזען אַז זייַן פרייַנד איז טאַקע נויט. נו, האט ער אנגעהויבן, נאָר קוק ווי איר ניטאָ אנגעטאן. דו זאלסט נישט איר האָבן קיין קליידער מיט אַ אַנדערש קוק? יא, האט דזשאַק. איך זיכער טאָן. קומען צו מיין הויז און איך וועט ווייַזן זיי צו איר. אזוי זיי זענען אַוועק צו דזשאַק 'ס. און דזשאַק געוויזן לו די קעסטל ווו ער געהאלטן אַלע זיינע שירץ, און זיין הויזן, און זייַן סאַקס. לאָו געזאָגט: איך זען איר האָבן אַלע אייער קליידער אין אַ הויפן. וואָס טאָן ניט איר טראָגן עטלעכע אנדערע אַמאָל אין ווייַלע? דזשאַק געזאגט, נו, ווען איך אַראָפּנעמען קליידער און סאַקס, איך וואַשן זיי און שטעלן זיי אַוועק אין די קעסטל. דערנאך קומט דער ווייַטער מאָרגן, און זיך איך האָפּקען. איך גיין צו די קעסטל און באַקומען מיין קליידער אַוועק די שפּיץ. לאָו געשווינד איינגעזען די פּראָבלעם מיט דזשאַק. ער האט געהאלטן קליידער, קאָמפּאַקטדיסק ס, און ביכער אין די אָנלייגן. ווען ער ריטשט פֿאַר עפּעס צו לייענען אָדער צו טראָגן, ער'ד קלייַבן די שפּיץ בוך אָדער ונטערוועש. דעמאָלט ווען ער איז געווען געטאן, ער וואָלט לייגן עס רעכט צוריק. צוריק עס וואָלט גיין, אויף שפּיץ פון דעם אָנלייגן. איך וויסן די לייזונג, האט אַ טריומפאַנט הויך. איר דאַרפֿן צו לערנען צו אָנהייבן ניצן אַ ריי. לאָו גענומען דזשאַק 'ס קליידער און געהאנגען זיי אין די שאַפע. און אז ער האט עמטיד די קעסטל, ער נאָר טאָסט עס. דערנאך האט ער געזאגט, איצט דזשאַק, אין די סוף פון דעם טאָג, שטעלן דיין קליידער אויף די לינקס ווען איר שטעלן זיי אַוועק. דעמאָלט מאָרגן מאָרגן ווען איר זען די זונשייַן, באַקומען אייער קליידער אויף די רעכט, פֿון די סוף פון די שורה. צי ניט איר זען? האט לו. עס וועט זיין אַזוי פייַן. איר וועט טראָגן אַלץ אַמאָל איידער איר טראָגן עפּעס צוויי מאָל. און מיט אַלץ אין קיוז אין זיין שאַפע און פּאָליצע, דזשאַק אנגעהויבן צו פילן גאַנץ זיכער פון זיך. אַלע דאַנק צו לאָו און זיין ווונדערלעך ריי. רעדנער 1: אַלע רעכט, עס ס טייַער. אזוי וואָס האט שוין טאַקע געגאנגען אויף ונטער דער קאַפּטער איצט? אַז מיר האָבן פּוינטערז, אַז מיר האָבן מאַללאָק, אַז מיר האָבן די פיייקייַט צו מאַכן טשאַנגקס פון זכּרון פֿאַר זיך דינאַמיקאַללי. אַזוי דעם איז אַ בילד מיר גלימפּסט נאָר די אנדערע טאָג. מיר האט ניט טאַקע וווינען אויף אים, אָבער דעם בילד האט שוין געגאנגען אויף ונטער די קאַפּטער פֿאַר וואָכן איצט. און אַזוי דעם רעפּראַזענץ, נאָר אַ גראָדעק אַז מיר'ווע ציען, דיין קאָמפּיוטער ס זכּרון. און אפֿשר דיין קאָמפּיוטער, אָדער קס50 שייַן, האט אַ גיגאבייט פון זיקאָרן אָדער באַראַן אָדער צוויי גיגאבייט אָדער פיר. עס טוט ניט טאַקע ענין. דיין אָפּערייטינג סיסטעם ווינדאָוז אָדער מעק אַס אָדער לינוקס, יסענשאַלי אַלאַוז אייער פּראָגראַם צו טראַכטן אַז עס האט צוטריט צו די ינטייערטי פון דיין קאָמפּיוטער ס זכּרון, אַפֿילו כאָטש איר זאל זיין פליסנדיק קייפל מגילה בייַ אַמאָל. אַזוי אין פאַקט, אַז טוט נישט טאַקע אַרבעט. אבער עס ס מין פון אַן אילוזיע געגעבן צו אַלע פון ​​דיין מגילה. אַזוי אויב איר האט צוויי גיגס פון באַראַן, דעם איז ווי די קאָמפּיוטער זאל טראַכטן פון עס. איצט קאָוינסידענאַלי, איינער פון די זאכן, איינער פון די סעגמאַנץ פון זכּרון, איז גערופֿן אַ אָנלייגן. און טאַקע קיין מאָל אַזוי ווייַט אין שרייבן קאָד אַז איר האָבן גערופֿן אַ פֿונקציע, פֿאַר בייַשפּיל הויפּט. ריקאָל אַז קיין מאָל איך'ווע ציען קאָמפּיוטער ס זכּרון, איך שטענדיק ציען סאָרט פון העלפט פון אַ גראָדעק דאָ און טאָן ניט אַרן גערעדט וועגן וואָס ס אויבן. ווייַל ווען הויפּט איז גערופֿן, איך פאָדערן אַז איר באַקומען דעם שפּענדל פון זכּרון וואָס גייט אַראָפּ דאָ. און אויב הויפּט גערופֿן אַ פֿונקציע ווי ויסבייַטן, געזונט ויסבייַטן גייט דאָ. און עס טורנס אויס, אַז ס ווו עס ס סאָף אַרויף. אויף עפּעס גערופֿן אַ אָנלייגן ין פון דיין קאָמפּיוטער ס זכּרון. איצט אין די סוף פון די טאָג, דעם איז נאָר ווענדט. עס ס ווי ביטע נול, ביטע איינער, ביטע 2000000000. אבער אויב איר טראַכטן וועגן אים ווי דעם רעקטאַנגגיאַלער כייפעץ, אַלע מיר רע טאן יעדער צייַט מיר רופן אַ פֿונקציע איז לייערינג אַ נייַ רעפטל פון זכּרון. מיר ניטאָ געבן אַז פונקציאָנירן אַ פּענעץ פון זייַן אייגן זיקאָרן צו אַרבעטן מיט. און צוריקרופן איצט אַז דאָס איז וויכטיק. ווייַל אויב מיר טאָן האָבן עפּעס ווי ויסבייַטן און צוויי היגע וועריאַבאַלז ווי א און ב און מיר טוישן די וואַלועס פון איין און צוויי צו צוויי און איינער, צוריקרופן אַז ווען ויסבייַטן קערט, עס ס ווי כאָטש דעם רעפטל פון זכּרון איז נאָר ניטאָ. אין פאַקט, עס ס נאָך עס פאָרענסיקאַללי. און עפּעס ס נאָך אַקטשאַוואַלי עס. אבער קאַנסעפּטשואַלי, עס ס ווי כאָטש עס ס גאָר ניטאָ. און אַזוי הויפּט טוט ניט וויסן קיין פון די אַרבעט וואָס איז געשען אין אַז ויסבייַטן פֿונקציע, סייַדן עס ס אַקטשאַוואַלי דורכגעגאנגען אין די טענות דורך טייַטל אָדער דורך דערמאָנען. איצט, די פונדאַמענטאַל לייזונג צו אַז פּראָבלעם מיט ויסבייַטן איז פּאַסינג זאכן אין דורך אַדרעס. אבער עס טורנס אויס, אויך, וואָס ס שוין געגאנגען אויף אויבן אַז טייל פון די גראָדעק אַלע דעם מאָל איז נאָך דאָרט ס מער זיקאָרן אַרויף דאָרט. און ווען איר דינאַמיקאַללי אַלאַקייט זכּרון, צי עס ס ין פון געצטרינג, וואָס מיר ווע שוין טאן פֿאַר איר אין די קס50 ביבליאָטעק, אָדער אויב איר גויס רופן מאַללאָק און פרעגן די אַפּערייטינג סיסטעם פֿאַר אַ פּייַדע פון זכּרון, עס טוט נישט קומען פון די אָנלייגן. עס קומט פון אן אנדער אָרט אין אייער קאָמפּיוטער ס זיקאָרן אַז ס גערופֿן דעם קופּע. און אַז ס ניט קיין אַנדערש. עס ס די זעלבע באַראַן. עס ס די זעלבע זכּרון. עס ס נאָר דער באַראַן וואָס ס אַרויף עס אָנשטאָט אַראָפּ דאָ. און אַזוי וואָס טוט אַז מיינען? נו, אויב דיין קאָמפּיוטער האט אַ ענדלעך סומע פון ​​זכּרון און די אָנלייגן איז גראָוינג אַרויף, אַזוי צו רעדן, און די קופּע, לויט צו דעם פייַל, איז גראָוינג אַראָפּ. אין אנדערע ווערטער, יעדער צייַט איר רופן מאַללאָק, איר ניטאָ ווייל געגעבן אַ רעפטל פון זיקאָרן פֿון אויבן, דעריבער אפֿשר אַ ביסל נידעריקער, דעמאָלט אַ ביסל נידעריקער, יעדער מאָל איר רופן מאַללאָק, די קופּע, עס ס באַניץ, איז מין פון גראָוינג, גראָוינג נעענטער און נעענטער צו וואָס? די אָנלייגן. אַזוי טוט דעם ויסקומען ווי אַ גוט געדאַנק? איך מיינען, ווו עס ס ניט טאַקע קלאָר וואָס אַנדערש איר קענען טאָן אויב איר נאָר האָבן אַ ענדלעך סומע פון ​​זכּרון. אבער דעם איז שורלי שלעכט. די צוויי אַראָוז זענען אויף אַ קראַך קורס פֿאַר איינער דעם אנדערן. און עס טורנס אויס אַז שלעכט באָכער, folks וואס ביסט דער הויפּט גוט מיט פּראָגראַממינג, און טריינג צו כאַק אין קאָמפּיוטערס, קענען גווורע דעם פאַקט. אין פאַקט, לאָזן ס באַטראַכטן אַ ביסל סניפּאַט. אזוי דעם איז אַ משל איר קענען לייענען וועגן אין מער דעטאַל אויף וויקיפּעדיע. מיר וועט פונט איר אין די אַרטיקל אויב טשיקאַווע. אבער עס ס אַ באַפאַלן בכלל באקאנט ווי Buffer לויפן אַז האט עקסיסטירט פֿאַר ווי לאַנג ווי יומאַנז האָבן געהאט די פיייקייַט צו מאַניפּולירן קאָמפּיוטער ס זכּרון, ספּעציעל אין סי אזוי דאָס איז אַ זייער אַרבאַטרערי פּראָגראַם, אָבער לאָזן ס לייענען עס פון די דנאָ אַרויף. הויפּט זיך אַרגק טשאַר שטערן אַרגוו. אַזוי עס ס אַ פּראָגראַם וואס נעמט באַפֿעלן שורה טענות. און אַלע הויפּט טוט משמעות איז רוף אַ פֿונקציע, רוף עס ו פֿאַר פּאַשטעס. און עס פּאַסיז אין וואָס? אַרגוו פון איינער. אזוי עס פּאַסיז אין ו וועלכער די וואָרט איז אַז דער באַניצער טייפּט אין די פּינטלעך נאָך די פּראָגראַם 'ס נאָמען אין אַלע. אַזוי פיל ווי קיסר אָדער וויגענערע, וואָס איר זאל צוריקרופן טאן מיט אַרגוו. אזוי וואָס איז ו? ו נעמט אין אַ שטריקל ווי זייַן פּיאַטע אַרגומענט, אַקאַ אַ טשאַר שטערן, זעלביקער זאַך, ווי אַ שטריקל. און עס ס גערופֿן אַרביטרעראַלי באַר אין דעם משל. און דעמאָלט טשאַר C 12, נאָר אין ליימאַן ס ווערטער, וואָס איז טשאַר C קאַנטיקער 12 טאן פֿאַר אונדז? וואָס ס עס טאָן? אַלאַקייטינג זכּרון, ספּעסיפיקאַללי 12 ביטעס פֿאַר 12 טשאַרס. עקסאַקטלי. און דעריבער די לעצטע שורה, גערודער און קאָפּיע, איר'ווע מיסטאָמע נישט געזען. דעם איז אַ שטריקל קאָפּיע פֿונקציע וועמענס ציל אין לעבן איז צו קאָפּיע זייַן רגע אַרגומענט אין זייַן ערשטער אַרגומענט, אָבער נאָר אַרויף צו אַ זיכער נומער פון ביטעס. אזוי די דריט אַרגומענט זאגט, ווי פילע ביטעס זאָל איר נאָכמאַכן? די לענג פון באַר, וועלכער דער באַניצער טייפּט אין. און דער אינהאַלט פון באַר, אַז שטריקל, זענען קאַפּיד אין די זיקאָרן שפּיציק בייַ בייַ סי אזוי דעם מיינט מין פון נאַריש, און עס איז. עס ס אַ קאַנטרייווד לעמאָשל, אָבער עס ס רעפּריזענאַטיוו פון אַ קלאַס פון באַפאַלן וועקטערז, אַ וועג פון קעגן אַ פּראָגראַם. אַלע איז פייַן און גוט אויב דער באַניצער טייפּס אין אַ וואָרט אַז ס 11 אותיות אָדער ווייניקערע, פּלוס די באַקקסלאַש נול. וואָס אויב דער באַניצער טייפּס אין מער ווי 11 אָדער 12 אָדער 20 אָדער 50 אותיות? וואָס ס דעם פּראָגראַם געגאנגען צו טאָן? פּאַטענטשאַלי סעג שולד. עס ס געגאנגען צו בליינדלי קאָפּיע אַלץ אין באַר אַרויף צו זייַן לענג, וואָס איז ממש אַלץ אין באַר, אין די אַדרעס שפּיציק בייַ סי אבער C האט בלויז פּרעעמפּטיוועלי געגעבן ווי 12 ביטעס. אבער עס ס ניט נאָך טשעק. עס ס ניט אויב באדינגונגען. עס ס קיין טעות קאָנטראָלירונג דאָ. און אַזוי וואָס דעם פּראָגראַם איז געגאנגען צו טאָן איז נאָר בליינדלי קאָפּיע איין זאַך צו די אנדערע. און אַזוי אויב מיר ציען דעם ווי אַ בילד, דאָ ס נאָר אַ שפּענדל פון די זיקאָרן פּלאַץ. אַזוי באַמערקן אין די דנאָ, מיר האָבן די היגע בייַטעוודיק באַר. אַזוי אַז טייַטל אַז ס 'געגאנגען צו סטאָרע-- אלא אַז היגע אַרגומענט אַז ס געגאנגען צו קראָם דעם שטריקל באַר. און דעמאָלט באַמערקן נאָר אויבן עס אין אַ אָנלייגן, ווייַל יעדער מאָל איר פרעגן פֿאַר זכּרון אויף דעם אָנלייגן, עס גייט אַ ביסל אויבן עס פּיקטאָריאַללי, באַמערקן אַז מיר ווע גאַט 12 ביטעס דאָרט. די שפּיץ לינקס איינער איז C קאַנטיקער נול און די דנאָ רעכט איינער איז C קאַנטיקער 11. אַז ס נאָר ווי די קאָמפּיוטערס געגאנגען צו לייגן עס אויס. אזוי נאָר ינטויטיוולי, אויב באַר האט מער ווי 12 אותיות אין גאַנץ, כולל די באַקקסלאַש נול, ווו איז די 12 אָדער די C קאַנטיקער 12 געגאנגען צו גיין? אָדער גאַנץ ווו איז די 12 כאַראַקטער אָדער די 13 כאַראַקטער, די כאַנדראַדט כאַראַקטער געגאנגען צו סוף אַרויף אין די בילד? אויבן אָדער אונטן? רעכט, ווייַל אַפֿילו כאָטש די אָנלייגן זיך וואקסט אַרוף, אַמאָל איר ווע שטעלן שטאָפּן אין עס, עס פֿאַר פּלאַן סיבות, לייגט די זיקאָרן פון שפּיץ צו דנאָ. אַזוי אויב איר ווע גאַט מער ווי 12 ביטעס, איר 'רע געגאנגען צו אָנהייבן צו אָווועררייט באַר. איצט אַז ס אַ זשוק, אָבער עס ס ניט טאַקע אַ גרויס האַנדלען. אבער עס איז אַ גרויס האַנדלען, ווייַל עס ס מער שטאָפּן געגאנגען אויף אין זכּרון. אזוי דאָ ס ווי מיר זאלן שטעלן העלא, צו זיין קלאָר. אויב איך טייפּט אין העלא אין די פּינטלעך. ה E-ל-ל-אָ באַקקסלאַש נול, ענדס אַרויף ין יענע 12 ביטעס, און מיר ניטאָ סופּער זיכער. אַלע איז געזונט. אבער אויב איך טיפּ עפּעס מער, פּאַטענטשאַלי עס ס געגאנגען צו קריכן אין באַר פּלאַץ. אבער ערגער נאָך, עס טורנס אויס אַלע דעם צייַט, אַפֿילו כאָטש מיר ווע קיינמאָל גערעדט וועגן עס, די אָנלייגן איז געניצט פֿאַר אנדערע שטאָפּן. עס ס ניט נאָר היגע וועריאַבאַלז. C איז אַ זייער נידעריק מדרגה שפּראַך. און עס סאָרט פון בעסאָד ניצט די אָנלייגן אויך צו געדענקען ווען אַ פֿונקציע איז גערופֿן, וואָס דער אַדרעס איז פון די פֿריִערדיקע פֿונקציע, אַזוי עס קענען שפּרינגען צוריק צו אַז פֿונקציע. אזוי ווען הויפּט קאַללס ויסבייַטן, צווישן די זאכן פּושט אַנטו דעם אָנלייגן זענען ניט נאָר סוואַפּס היגע וועריאַבאַלז, אָדער זייַן טענות, אויך בעסאָד פּושט אַנטו דעם אָנלייגן ווי רעפּריזענטיד דורך די רויט רעפטל דאָ, איז די אַדרעס פון הויפּט פֿיזיש אין דיין קאָמפּיוטער ס זכּרון, אַזוי אַז ווען ויסבייַטן איז געטאן, די קאָמפּיוטער ווייסט איך דאַרפֿן צו גיין צוריק צו הויפּט און ענדיקן עקסאַקיוטינג דער הויפּט פֿונקציע. אזוי דעם איז געפערלעך איצט, ווייַל אויב דער באַניצער טייפּס אין געזונט מער ווי העלא, אַזאַ וואָס דער באַניצער ס ינפּוט קלאָבבערס אָדער אָווועררייץ אַז רויט אָפּטיילונג, לאַדזשיקלי אויב די קאָמפּיוטער ס נאָר געגאנגען צו בליינדלי יבערנעמען אַז די ביטעס אין אַז רויט רעפטל זענען די אַדרעס צו וואָס עס זאָל צוריקקומען, וואָס אויב דער קעגנער איז קלוג גענוג אָדער מאַזלדיק גענוג צו שטעלן אַ סיקוואַנס פון ביטעס דאָרט אַז קוקט ווי אַ אַדרעס, אָבער עס ס די אַדרעס פון קאָד אַז ער אָדער זי וויל די קאָמפּיוטער צו ויספירן אָנשטאָט הויפּט? אין אנדערע ווערטער, אויב וואָס די באַניצער איז טייפּינג אין די פּינטלעך, איז ניט נאָר עפּעס ינאַקיואַס ווי העלא, אָבער עס ס אַקטשאַוואַלי קאָד אַז ס עקוויוואַלענט צו אויסמעקן אַלע דעם באַניצער 'ס טעקעס? אָדער email זייער פּאַראָל צו מיר? אָדער אָנהייב לאָגינג זייער קיסטראָוקס, רעכט? עס איז אַ וועג, לאָזן ס ויסנעמען הייַנט, אַז זיי קען דרוקן אין ניט נאָר העלא וועלט אָדער זייער נאָמען, זיי קען יסענשאַלי פאָרן אין קאָד, זעראָס און אָנעס, אַז די קאָמפּיוטער מיסטייקס פֿאַר ביידע קאָד און אַן אַדרעס. אַזוי אָלבייט עפּעס אַבסטראַקטלי, אויב די באַניצער טייפּס אין גענוג אַדווערסאַריאַל קאָד אַז מיר וועט גענעראַליזע דאָ ווי יי א איז באַפאַלן אָדער אַדווערסעריז. אזוי נאָר שלעכט שטאָפּן. מיר טאָן ניט זאָרגן וועגן די נומערן אָדער די זעראָס אָדער אָנעס הייַנט, אַזאַ אַז איר סוף אַרויף אָווועררייטינג אַז רויט אָפּטיילונג, באַמערקן אַז סיקוואַנס פון ביטעס. אָ 835 C נול אַכט נול. און איצט ווי וויקיפּעדיע ס אַרטיקל דאָ האט פּראָפּאָסעד, אויב איר איצט אַקטשאַוואַלי אָנהייבן לייבלינג די ביטעס אין דיין קאָמפּיוטער ס זיקאָרן, וואָס די וויקיפּעדיע אַרטיקל איז פּראַפּאָוזינג איז אַז, וואָס אויב דער אַדרעס פון אַז שפּיץ לינק ביטע איז 80 C 0 3508. אין אנדערע ווערטער, אויב די שלעכט באָכער איז קלוג גענוג מיט זיין אָדער איר קאָד צו אַקטשאַוואַלי שטעלן אַ נומער דאָ אַז קאָראַספּאַנדז צו די אַדרעס פון די קאָד ער אָדער זי ינדזשעקטיד אין די קאָמפּיוטער, איר קענען קונץ די קאָמפּיוטער אין טאן עפּעס. רימוווינג טעקעס, ימיילינג זאכן, סניפפינג דיין פאַרקער, ממש עפּעס קען זיין ינדזשעקטיד אין די קאָמפּיוטער. און אַזוי אַ Buffer לויפן באַפאַלן בייַ זייַן האַרץ איז נאָר אַ נאַריש, נאַריש אָוווערריידינג פון אַ מענגע אַז האט נישט האָבן זייַן באַונדריז אָפּגעשטעלט. און דאָס איז וואָס איז סופּער געפערלעך און סיימאַלטייניאַסלי סופּער שטאַרק אין C איז אַז מיר טאָן טאַקע האָבן צוטריט צו ערגעץ אין די זיקאָרן. עס ס אַרויף צו אונדז, די פּראָוגראַמערז, וואס שרייַבן די אָריגינעל קאָד צו קאָנטראָלירן די צירעווען לענג פון קיין ערייז אַז מיר ניטאָ מאַניפּיאַלייטינג. אזוי צו זיין קלאָר, וואָס ס די פאַרריכטן? אויב מיר זעמל צוריק צו דעם קאָד, איך זאָל ניט נאָר טוישן די לענג פון באַר, וואָס אַנדערש זאָל איך זייַן קאָנטראָלירונג? וואָס אַנדערש זאָל איך זיין טאן צו פאַרמייַדן דעם באַפאַלן לעגאַמרע? איך טאָן ניט ווילן צו נאָר בליינדלי זאָגן אַז איר זאָל קאָפּיע ווי פילע ביטעס ווי איז די לענג פון באַר. איך ווילן צו זאָגן, קאָפּיע ווי פילע ביטעס ווי זענען אין באַר אַרויף צו די אַלאַקייטיד זכּרון, אָדער 12 מאַקסימאַללי. אַזוי איך דאַרפֿן עטלעכע מין פון אויב צושטאַנד וואָס טוט קאָנטראָלירן די לענג פון באַר, אָבער אויב עס יקסידז 12, מיר נאָר שווער קאָד 12 ווי די מאַקסימום מעגלעך דיסטאַנסע. אַנדערש די אַזוי-גערופֿן Buffer לויפן באַפאַלן קענען פּאַסירן. אין די דנאָ פון די סליידז, אויב איר 'רע טשיקאַווע צו לייענען מער איז די פאַקטיש אָריגינעל אַרטיקל אויב איר'ד ווי צו נעמען אַ קוק. אבער איצט, צווישן די פּרייסיז באַצאָלט דאָ איז ינעפפיסיענסיעס. אַזוי וואָס איז געווען אַ שנעל נידעריק מדרגה קוק אין וואָס פּראָבלעמס קענען שטיי איצט אַז מיר האָבן צוטריט צו קאָמפּיוטער ס זכּרון. אבער אן אנדער פּראָבלעם מיר שוין סטאַמבאַלד אויף מאנטאג איז נאָר די ינעפפיסיענסי פון אַ לינגקט רשימה. מיר זענען צוריק צו לינעאַר צייַט. מיר ניט מער האָבן אַ קאַנטיגיואַס מענגע. מיר טאָן ניט האָבן ראַנדאָם צוטריט. מיר קענען ניט נוצן קוואַדראַט קאַנטיקער נאָוטיישאַן. מיר ממש האָבן צו נוצן אַ בשעת שלייף ווי דער איינער איך געשריבן אַ מאָמענט צוריק. אבער אויף מאנטאג, מיר קליימד אַז מיר קענען קריכן צוריק אין די מעלוכע פון ​​עפעקטיווקייַט אַטשיווינג עפּעס אַז ס לאַגערידמיק אפֿשר, אָדער בעסטער נאָך, אפֿשר אַפֿילו עפּעס אַז ס אַזוי גערופֿן קעסיידערדיק צייַט. אַזוי ווי קענען מיר טאָן אַז דורך ניצן די נייע מכשירים, די ווענדט, די פּוינטערז, און טרעדינג זאכן פון אונדזער אייגן? נו, רעכן אַז דאָ, די ביסט אַ בינטל פון נומערן וואָס מיר ווילן צו קראָם אין אַ דאַטע ביניען און זוכן עפפיסיענטלי. מיר קענען לעגאַמרע ריוויינד צו וואָך צוויי, וואַרפן די אין אַ מענגע, און זוכן זיי ניצן ביינערי זוכן. טיילן און קאַנגקער. און אין פאַקט איר געשריבן ביינערי זוכן אין פּסעט3, ווו איר ימפּלאַמענאַד די געפינען פּראָגראַם. אבער איר וויסן וואָס. עס ס מין פון אַ מער קלוג וועג פון טאן דעם. עס ס אַ ביסל מער sophisticated און עס טאָמער אַלאַוז אונדז צו זען וואָס ביינערי זוכן איז אַזוי פיל שנעלער. ערשטער, לאָזן ס באַקענען דער געדאנק פון אַ בוים. וואָס אַפֿילו כאָטש אין פאַקט ביימער מין פון וואַקסן ווי דעם, אין דער וועלט פון קאָמפּיוטער וויסנשאַפֿט זיי מין פון וואַקסן דאַונווערד ווי אַ משפּחה בוים, ווו איר האָבן דיין זיידע-באָבע אָדער גרויס זיידע-באָבע אָדער וואַטנאַט אין די שפּיץ, די פּאַטריאַרטש און די מייטריאַרק פון דער משפּחה, נאָר איינער אַזוי גערופֿן שורש, נאָדע, אונטן וואָס זענען זייַן קינדער, אונטן וואָס זענען זייַן קינדער, אָדער זייַן קינדסקינדער מער בכלל. און ווער עס יז כאַנגגינג אַוועק די דנאָ פון די משפּחה בוים, חוץ ווייל די יאַנגגאַסט אין דער משפּחה, קענען אויך נאָר זייַן דזשאַנעריקלי גערופֿן די בלעטער פון דעם בוים. אזוי דעם איז נאָר אַ בינטל פון ווערטער און זוך פֿאַר עפּעס גערופֿן אַ בוים אין קאָמפּיוטער וויסנשאַפֿט, פיל ווי אַ משפּחה בוים. אבער עס ס פאַנסיער ינקאַרנאַטיאָנס פון ביימער, איינער פון וואָס איז גערופֿן אַ ביינערי זוכן בוים. און איר קענען מין פון רייצנ באַזונדער וואָס דעם זאַך טוט. נו, עס ס ביינערי אין וואָס זינען? ווו טוט די ביינערי קומען פון דאָ? אנטשולדיגט? עס ס ניט אַזוי פיל אַ אָדער אָדער. עס ס מער אַז יעדער פון די נאָודז האט קיין מער ווי צוויי קינדער, ווי מיר זען דאָ. אין אַלגעמיין, אַ טרעע-- און דיין עלטערן און זיידע-באָבע קענען האָבן ווי פילע קידס אָדער גראַנדקידס ווי זיי אַקטשאַוואַלי ווילן, און אַזוי פֿאַר בייַשפּיל עס מיר האָבן דרייַ קינדער אַוועק אַז רעכט האַנט נאָדע, אָבער אין אַ ביינערי בוים, אַ נאָדע האט נול, איין, אָדער צוויי קינדער מאַקסימאַללי. און אַז ס אַ פייַן פאַרמאָג, ווייַל אויב עס ס קאַפּט דורך צוויי, מיר רע געגאנגען צו קענען צו באַקומען אַ ביסל קלאָץ באַזע צוויי קאַמף געגאנגען אויף דאָ לעסאָף. אַזוי מיר האָבן עפּעס לאַגערידמיק. אבער מער אויף אַז אין אַ מאָמענט. זוכן בוים מיטל אַז די נומערן זענען עריינדזשד אַזאַ אַז די לינקס קינד ס ווערט איז גרעסער ווי די שורש. און זייַן רעכט קינד איז גרעסערע ווי די שורש. אין אנדערע ווערטער, אויב איר נעמען קיין פון די נאָודז, די קרייזן אין דעם בילד, און קוקט אין זייַן לינקס קינד און זייַן רעכט קינד, דער ערשטער זאָל זיין ווייניקער ווי, די רגע זאָל זיין גרעסער ווי. אַזוי מייושעוודיקייַט טשעק 55. עס ס לינקס קינד איז 33. עס ס ווייניקער ווי. 55, זייַן רעכט קינד איז 77. עס ס גרעסער ווי. און אַז ס אַ רעקורסיווע דעפֿיניציע. מיר קען טשעק יעדער איינער פון די נאָודז און דער זעלביקער מוסטער וואָלט האַלטן. אַזוי וואָס ס פייַן אין אַ ביינערי זוכן בוים, איז אַז איינער, מיר קענען מאַכשער עס מיט אַ סטרוקט, פּונקט ווי דעם. און אַפֿילו כאָטש מיר ניטאָ טראָוינג גורל פון סטראַקטשערז אין דיין, זיי ניטאָ עפּעס ינטואַטיוו איצט אַלעווייַ. די סינטאַקס איז נאָך אַרקיין פֿאַר זיכער, אָבער די אינהאַלט פון אַ נאָדע אין דעם קאָנטעקסט-- און מיר האַלטן ניצן די וואָרט נאָדע, צי עס ס אַ גראָדעק אויף דער עקראַן אָדער אַ קרייַז, עס ס נאָר עטלעכע דזשאַנעריק קאַנטיינער, אין דעם פאַל פון אַ בוים, ווי דער איינער מיר געזען, מיר דאַרפֿן אַ ינטאַדזשער אין יעדער פון די נאָודז און דעמאָלט איך דאַרפֿן צוויי פּוינטערז פּוינטינג צו די לינקס קינד און די רעכט קינד, ריספּעקטיוולי. אַזוי אַז ס ווי מיר זאלן ינסטרומענט אַז אין אַ סטרוקט. און ווי זאל איך ינסטרומענט עס אין קאָד? נו, לאָזן ס נעמען אַ שנעל קוק אין דעם קליינטשיק משל. עס ס ניט Functional, אָבער איך'ווע קאַפּיד און פּייסטיד אַז ביניען. און אויב מיין פֿונקציע פֿאַר אַ ביינערי זוכן בוים איז גערופֿן זוכן, און דעם נעמט צוויי טענות, אַ ינטאַדזשער ען און אַ טייַטל צו אַ נאָדע, אַזוי אַ טייַטל צו דעם בוים אָדער אַ טייַטל צו די וואָרצל פון אַ בוים, ווי טאָן איך גיין וועגן שאַרף פֿאַר ען? נו, ערשטער, ווייַל איך בין דילינג מיט פּוינטערז, איך בין געגאנגען צו טאָן אַ מייושעוודיקייַט טשעק. אויב בוים יקוואַלז יקוואַלז נאַל, איז ען אין דעם בוים אָדער ניט אין דעם בוים? עס קענען ניט זיין, רעכט? אויב איך בין פאַרגאַנגענהייַט נאַל, עס ס גאָרנישט דאָרט. איך זאל ווי געזונט נאָר בליינדלי זאָגן צוריקקומען פאַלש. אויב איר געבן מיר גאָרנישט, איך שורלי קענען נישט געפינען קיין נומער ען אַזוי וואָס אַנדערש זאל איך טשעק איצט? איך בין געגאנגען צו זאָגן געזונט אַנדערש אויב N איז ווייניקער ווי וועלכער איז ביי דער בוים נאָדע אַז איך ווע שוין קאָלנער ען ווערט. אין אנדערע ווערטער, אויב די נומער איך בין קוקן פֿאַר, ען, איז ווייניקער ווי די נאָדע אַז איך בין קוקן אין. און די נאָדע איך בין קוקן ביי איז גערופֿן בוים, און צוריקרופן פון די פֿריִערדיקע בייַשפּיל צו באַקומען אין די ווערט אין אַ טייַטל, איך נוצן די פייַל נאָוטיישאַן. אַזוי אויב N איז ווייניקער ווי בוים פייַל ן, איך ווילן צו קאַנסעפּטשואַלי גיין לינקס. ווי טאָן איך אויסדריקן שאַרף לינקס? צו זיין קלאָר, אויב דאָס איז די בילד אין קשיא, און איך ווע שוין דורכגעגאנגען אַז ייבערשט פייַל אַז ס פּוינטינג אַראָפּ. אַז ס מיין בוים טייַטל. איך בין פּוינטינג בייַ די שורש פון דעם בוים. און איך בין איר זוכט זאָגן, פֿאַר די נומער 44, אַרביטרעראַלי. איז 44 ווייניקער ווי אָדער גרעסער ווי 55 דאָך? אַזוי עס ס ווייניקער ווי. און אַזוי דעם אויב צושטאַנד אַפּלייז. אַזוי קאַנסעפּטשואַלי, וואָס טאָן איך ווילן צו זוכן ווייַטער אויב איך בין קוקן פֿאַר 44? יאָ? פּונקט, איך ווילן צו זוכן די לינקס קינד, אָדער די לינקס סאַב-בוים פון דעם בילד. און אין פאַקט, לאָזן מיר דורך די בילד אַראָפּ דאָ פֿאַר נאָר אַ מאָמענט, זינט איך קענען נישט קראַצן דעם אויס. אויב איך אָנהייבן דאָ אין 55, און איך וויסן אַז די ווערט 44 איך בין קוקן פֿאַר איז צו די לינקס, עס ס מין פון ווי טירינג די טעלעפאָנירן בוך אין האַלב אָדער טירינג די בוים אין העלפט. איך ניט מער האָבן צו זאָרג וועגן דעם גאנצע העלפט פון דעם בוים. און נאָך, קיוריאַסלי אין טערמינען פון די סטרוקטור, דעם זאַך איבער דאָ אַז סטאַרץ מיט 33, אַז זיך איז אַ ביינערי זוכן בוים. איך געזאגט די וואָרט רעקורסיווע איידער ווייַל טאַקע דאָס איז אַ דאַטע ביניען אַז דורך דעפֿיניציע איז רעקורסיווע. איר זאל האָבן אַ בוים וואָס ס דעם גרויס, אָבער יעדער איינער פון זייַן קינדער רעפּראַזענץ אַ בוים נאָר אַ ביסל קלענערער. אָנשטאָט עס ווייל גראַנדפּאַ אָדער גראַנדמאַ, איצט עס ס נאָר מאַם אָר-- איך קענען נישט סייַ-- ניט מאַם אָדער טאַטע, אַז וואָלט זיין טשודנע. אָנשטאָט די צוויי קינדער עס וואָלט זיין ווי ברודער און סיבלינג. אַ נייע דור פון די משפּחה בוים. אבער סטראַקטשעראַלי, עס ס די זעלבע געדאַנק. און עס טורנס אויס איך האָבן אַ פֿונקציע מיט וואָס איך קענען זוכן אַ ביינערי זוכן בוים. עס איז געהייסן זוכן. איך זוכן ען אין בוים פייַל לינקס אַנדערש אויב N איז גרעסער ווי די ווערט אַז איך בין איצט אין. 55 אין דער געשיכטע אַ מאָמענט צוריק. איך האָבן אַ פֿונקציע גערופֿן זוכן אַז איך קענען נאָר פאָרן ען דעם און רעקורסיוועלי זוכן דער סאַב-בוים און נאָר צוריקקומען וועלכער אַז ענטפֿערן. אַנדערש איך ווע גאַט עטלעכע לעצט באַזע פאַל דאָ. וואָס איז די לעצט פאַל? בוים איז אָדער נאַל. די ווערט איך בין אָדער קוקן פֿאַר איז ווייניקער ווי עס אָדער גרעסער ווי אַז אָדער גלייַך צו עס. און איך קען זאָגן גלייַך גלייַך, אָבער לאַדזשיקלי עס ס עקוויוואַלענט צו נאָר זאָגן אַנדערש דאָ. אַזוי אמת איז ווי איך געפינען עפּעס. אזוי אַלעווייַ דעם איז אַ אַפֿילו מער קאַמפּעלינג לעמאָשל ווי די נאַריש סיגמאַ פונקציאָנירן מיר האבן אַ ביסל רעפֿעראַטן צוריק, ווו עס איז געווען פּונקט ווי גרינג צו נוצן אַ שלייף צו ציילן אַרויף אַלע די נומערן צו ען דאָ מיט אַ דאַטן סטרוקטור וואָס זיך איז רעקורסיוועלי Defined און רעקורסיוועלי ציען, איצט מיר האָבן די פיייקייַט צו אויסדריקן זיך אין קאָד וואָס זיך איז רעקורסיווע. אזוי דעם איז די פּינטלעך זעלביקער קאָד דאָ. אזוי וואָס אנדערע פּראָבלעמס קענען מיר סאָלווע? אַזוי אַ שנעל שריט אַוועק פון ביימער פֿאַר נאָר אַ מאָמענט. דאָ איז, זאָגן, די דייַטש פאָן. און עס ס קלאר אַ מוסטער צו דעם פאָן. און עס ס גורל פון flags אין די וועלט אַז זענען ווי פּשוט ווי דעם אין טערמינען פון זייער פֿאַרבן און פּאַטערנז. אבער רעכן אַז דאָס איז סטאָרד ווי אַ גיף, אָדער אַ דזשפּעג, אָדער ביטמאַפּ, אָדער אַ פּינג, קיין גראַפיקאַל טעקע פֿאָרמאַט מיט וואָס איר ניטאָ באַקאַנט, עטלעכע פון ​​וואָס מיר ניטאָ פּלייינג מיט אין פּסעט4. דאס טוט נישט ויסקומען ווערטיק צו קראָם שוואַרץ פּיקסעל, שוואַרץ פּיקסעל, שוואַרץ פּיקסעל, פּונקט, פּונקט, פּונקט, אַ גאַנץ בינטל פון שוואַרץ בילדצעלן פֿאַר די ערשטער סקאַנלינע, אָדער רודערן, דעמאָלט אַ גאַנץ בינטל פון די זעלבע, דעריבער אַ גאַנץ בינטל פון די זעלבע, און דעמאָלט אַ גאַנץ בינטל פון רויט בילדצעלן, רויט בילדצעלן, רויט בילדצעלן, דעמאָלט אַ גאַנץ בינטל פון געל בילדצעלן, געל, רעכט? עס ס אַזאַ ינעפפיסיענסי דאָ. ווי וואָלט איר ינטויטיוולי קאָמפּרעס דער דייַטש פאָן אויב ימפּלאַמענטינג עס ווי אַ טעקע? ווי וואָס אינפֿאָרמאַציע קענען מיר ניט אַרן סטאָרינג אויף דיסק אין סדר צו פאַרמינערן אונדזער טעקע גרייס פון ווי אַ מעגאבייט צו אַ קילאבייט, עפּעס קלענערער? ווערין ליגט די יבעריקייַט דאָ צו זיין קלאָר? וואָס קען איר טאָן? יאָ? עקסאַקטלי. וואָס ניט גאַנץ ווי געדענקען די קאָליר פון יעדער צירעווען פּיקסעל פּונקט ווי איר ניטאָ טאן אין פּסעט4 מיט די ביטמאַפּ טעקע פֿאָרמאַט, וואָס טאָן ניט איר נאָר פאָרשטעלן די לעפטמאָסט זייַל פון בילדצעלן, פֿאַר בייַשפּיל אַ בינטל פון שוואַרץ בילדצעלן, אַ בינטל פון רויט, און אַ בינטל פון געל, און דעמאָלט נאָר יז ענקאָוד די געדאַנק פון איבערחזרן דעם 100 מאל אָדער איבערחזרן דעם 1,000 מאל? ווו 100 אָדער 1,000 איז נאָר אַ ינטאַדזשער, אַזוי איר קענען באַקומען אַוועק מיט נאָר אַ איין נומער אַנשטאָט פון הונדערטער אָדער טויזנטער פון נאָך בילדצעלן. און טאַקע, אַז ס ווי מיר קען קאָמפּרעס דער דייַטש פאָן. און איצט וואָס וועגן די פראנצויזיש פאָן? און אַ ביסל עטלעכע סאָרט פון גייַסטיק געניטונג, וואָס פאָן קענען זיין קאַמפּרעסט מער אויף דיסק? די דייַטש פאָן אָדער די פראנצויזיש פאָן, אויב מיר נעמען אַז צוגאַנג? די דייַטש פאָן, ווייַל עס ס מער האָריזאָנטאַל יבעריקייַט. און דורך פּלאַן, פילע גראַפיקאַל טעקע פֿאָרמאַטירונגען טאָן טאַקע אַרבעט ווי יבערקוקן שורות כאָריזאַנטאַלי. זיי קען אַרבעט ווערטיקלי, נאָר מענטשהייַט באַשלאָסן יאר צוריק אַז מיר וועט בכלל טראַכטן פון זאכן רודערן דורך רודערן אָנשטאָט זייַל דורך קאָלאָנע. אַזוי טאַקע אויב איר זענען צו קוקן אין די טעקע גרייס פון אַ דייַטש פאָן און אַ פראנצויזיש פאָן, אַזוי לאַנג ווי די האַכלאָטע איז די זעלבע, די זעלבע ברייט און הייך, דעם איינער דאָ איז געגאנגען צו זיין ביגער, ווייַל איר האָבן צו איבערחזרן זיך דרייַ מאָל. איר האָבן צו ספּעציפיצירן בלוי, איבערחזרן זיך, ווייַס, איבערחזרן זיך, רויט, איבערחזרן זיך. איר קענען ניט נאָר גיין אַלע די וועג צו די רעכט. און ווי אַ באַזונדער, צו מאַכן קלאָר די קאַמפּרעשאַן איז אומעטום, אויב די ביסט פיר ראָמען פון אַ ווידעאָ-- איר זאל צוריקרופן אַז אַ פֿילם אָדער ווידעא איז בכלל ווי 29 אָדער 30 ראָמען פּער רגע. עס ס ווי אַ ביסל Flip בוך ווו איר נאָר זען בילד, בילד, בילד, בילד, בילד נאָר סופּער שנעל אַזוי עס קוקט ווי די אַקטערז אויף דער עקראַן זענען מאָווינג. דאָ ס אַ בומבלע בי אויף שפּיץ פון אַ בינטל פון בלומען. און כאָטש עס זאל זיין סאָרט פון שווער צו זען אין ערשטער בליק, דער בלויז זאַך מאָווינג אין דעם פֿילם איז די בי. וואָס איז שטום וועגן סטאָרינג ווידעא ונקאָמפּרעססעד? עס ס מין פון אַ וויסט צו קראָם וידאו ווי פיר קימאַט יידעניקאַל בילדער וואָס אַנדערש בלויז ינסאָפאַר ווי ווו די בי איז. איר קענען וואַרפן אַוועק רובֿ פון אַז אינפֿאָרמאַציע און געדענקען נאָר, א שטייגער, דער ערשטער ראַם און די לעצטע ראַם, שליסל ראָמען אויב איר ווע אלץ געהערט די וואָרט, און פּונקט קראָם אין די מיטל ווו די בי איז. און איר טאָן ניט האָבן צו קראָם אַלע פון ​​די ראָזעווע, און די בלוי, און די גרין וואַלועס ווי געזונט. אזוי דעם איז צו נאָר זאָגן אַז קאַמפּרעשאַן איז אומעטום. עס ס אַ טעכניק מיר אָפֿט נוצן אָדער נעמען פֿאַר גראַנטיד די טעג. אבער ווי טאָן איר קאָמפּרעס טעקסט? ווי טאָן איר גיין וועגן קאַמפּרעסינג טעקסט? נו, יעדער פון די אותיות אין אַססיי איז איינער ביטע, אָדער אַכט ביטן. און אַז ס מין פון נאַריש, רעכט? ווייַל איר מיסטאָמע טיפּ אַ און E און איך און אָ און ו אַ פּלאַץ מער אָפֿט ווי ווי וו אָדער ק אָדער ז, דיפּענדינג אויף די שפּראַך אין וואָס איר ניטאָ שרייבן אַוואַדע. און אַזוי וואָס זענען מיר ניצן אַכט ביטן פֿאַר יעדער בריוו, כולל דער קלענסטער פאָלקס אותיות, רעכט? וואָס נישט נוצן ווייניקערע ביטן פֿאַר די סופּער פאָלקס אותיות, ווי E, די זאכן איר טרעפן ערשטער אין וויל פון מאַזל, און נוצן מער ביטן פֿאַר די ווייניקער פאָלקס אותיות? וואָס? ווייַל מיר ניטאָ נאָר געגאנגען צו נוצן זיי ווייניקער אָפט. נו, עס טורנס אויס אַז עס האָבן שוין אַטטעמפּץ געמאכט צו טאָן דעם. און אויב איר צוריקרופן פון מיינונג שולע אָדער הויך שולע, מאָרס קאָד. מאָרס קאָד האט דאַץ און דאַשיז אַז קענען זיין טראַנסמיטטעד צוזאמען אַ דראָט ווי סאָונדס אָדער סיגנאַלז פון עטלעכע סאָרט. אבער מאָרס קאָד איז אַ סופּער ריין. עס ס מין פון אַ ביינערי סיסטעם אין אַז איר האָבן דאַץ אָדער דאַשיז. אבער אויב איר זען, פֿאַר בייַשפּיל, צוויי דאַץ. אָדער אויב איר טראַכטן צוריק צו דער אָפּעראַטאָר וואס גייט ווי ביפּ, ביפּ, ביפּ, ביפּ, היטטינג אַ ביסל צינגל אַז טראַנזמיץ אַ סיגנאַל, אויב איר, די באַקומער, נעמט צוויי דאַץ, וואָס אָנזאָג האָבן איר באקומען? גאָר אַרביטראַריש. איך? איך? אָדער וואָס אַבאָוט-- אָדער איך? אפֿשר עס איז געווען פּונקט צוויי E ס רעכט? אַזוי עס ס דעם פּראָבלעם פון דעקאָדאַביליטי מיט מאָרס קאָד, ווערביי סייַדן די מענטש שיקט איר דעם אָנזאָג אַקטשאַוואַלי פּאָזאַז אַזוי איר קענען סאָרט פון זען אָדער הערן די גאַפּס צווישן אותיות, עס ס נישט גענוג נאָר צו שיקן אַ טייַך פון זעראָס און אָנעס, אָדער דאַץ און דאַשיז, ווייַל עס ס צוויידייַטיקייַט. E איז אַ איין פּונקט, אַזוי אויב איר זען צוויי דאַץ אָדער הערן צוויי דאַץ, אפֿשר עס ס צוויי E ס אָדער אפֿשר עס ס איינער אויך אַזוי מיר דאַרפֿן אַ סיסטעם אַז ס אַ ביסל מער קלוג ווי אַז. אזוי אַ מענטש מיטן נאמען Huffman יאָרן צוריק געקומען אַרויף מיט פּונקט דעם. אזוי מיר ניטאָ נאָר געגאנגען צו נעמען אַ שנעל בליק אין ווי ביימער זענען גערמאַנע צו דעם. רעכן אַז דאָס איז עטלעכע נאַריש אָנזאָג איר ווילן צו שיקן, קאַמפּאָוזד פון נאָר אַ, ב, C ס ד 's און E ס, אָבער עס ס אַ פּלאַץ פון יבעריקייַט דאָ. עס ס ניט מענט צו זיין ענגליש. עס ס ניט ינקריפּטיד. עס ס נאָר אַ נאַריש אָנזאָג מיט גורל פון יבערכאַזערונג. אַזוי אויב איר אַקטשאַוואַלי ציילן אויס אַלע די א ס, ב ס, C ס, ד 's, און E ס, דאָ ס די אָפטקייַט. 20% פון די אותיות זענען א ס, 45% פון די אותיות זענען E ס, און דרייַ אנדערע פרעקווענסיעס. מיר גערעכנט אַרויף דאָרט מאַניואַלי און נאָר האט די מאַט. אַזוי עס טורנס אויס אַז Huffman, עטלעכע מאָל צוריק, איינגעזען אַז, איר וויסן וואָס, אויב איך אָנהייבן בנין אַ בוים, אָדער וואַלד פון ביימער, אויב איר וועט, ווי גייט, איך קענען טאָן די ווייַטערדיק. איך בין געגאנגען צו געבן אַ נאָדע צו יעדער פון די אותיות אַז איך זאָרגן וועגן און איך בין געגאנגען צו קראָם ין פון אַז נאָדע די פרעקווענסיעס ווי אַ Floating פונט ווערט, אָדער איר קען נוצן עס אַ ן, אויך, אָבער מיר וועט נאָר נוצן אַ לאָזנ שווימען דאָ. און די אַלגערידאַם אַז ער פּראָפּאָסעד איז אַז איר נעמען דעם וואַלד פון איין נאָדע ביימער, אַזוי סופּער קורץ ביימער, און איר אָנהייבן קאַנעקטינג זיי מיט נייַ גרופּעס, נייַ עלטערן, אויב איר וועט. און איר טאָן דעם דורך טשוזינג די צוויי קלענסטער פרעקווענסיעס אין אַ צייַט. אזוי איך גענומען 10% און 10%. איך מאַכן אַ נייע נאָדע. און איך רוף די נייַ נאָדע 20%. וואָס צוויי נאָודז איך פאַרבינדן ווייַטער? עס ס אַ ביסל אַמביגיואַס. אַזוי עס ס עטלעכע ווינקל קאַסעס צו באַטראַכטן, אָבער צו האַלטן דאס שיין, איך בין געגאנגען צו קלייַבן 20% - איך איצט איגנאָרירן די קינדער. איך בין געגאנגען צו קלייַבן 20% און 15% און ציען צוויי נייַ עדזשאַז. און איצט וואָס צוויי נאָודז טאָן איך לאַדזשיקלי פאַרבינדן? איגנאָרירן אַלע די קינדער, אַלע דער גראַנטשילדראַן, נאָר קוק אין די רוץ איצט. וואָס צוויי נאָודז טאָן איך בונד צוזאַמען? פונט צוויי און 0.35. אַזוי לאָזן מיר ציען צוויי נייַ עדזשאַז. און דעמאָלט איך ווע בלויז גאַט איינער לינקס. אַזוי דאָ ס אַ בוים. און עס ס שוין ציען דיליבראַטלי צו קוקן סאָרט פון שיין, אָבער באַמערקן אַז די עדזשאַז האָבן אויך געווען מיטן נול און איינער. אַזוי אַלע פון ​​די לינקס עדזשאַז זענען נול אַרביטרעראַלי, אָבער קאַנסיסטאַנטלי. אַלע די רעכט עדזשאַז זענען אָנעס. און אַזוי וואָס Hoffman פּראָפּאָסעד איז, אויב איר ווילן צו פאָרשטעלן אַ ב, אלא ווי פאָרשטעלן די נומער 66 ווי אַ אַססיי וואָס איז אַכט גאנצע ביטן, איר וויסן וואָס, נאָר קראָם דעם מוסטער נול, נול, נול, נול, ווייַל אַז ס דער דרך פון מיין בוים, הער Huffman ס בוים, צו די בלאַט פון די שורש. אויב איר ווילן צו קראָם אַ E, דורך קאַנטראַסט, טאָן ניט שיקן אַכט ביטן אַז פאָרשטעלן אַ י אָנשטאָט, שיקן וואָס מוסטער פון ביטן? איין. און וואָס ס פייַן וועגן דעם איז אַז E איז די מערסט פאָלקס בריוו, און איר ניטאָ ניצן די שאָרטיסט קאָד פֿאַר עס. די ווייַטער רובֿ פאָלקס בריוו קוקט ווי עס איז יי און אַזוי ווי פילע ביץ האט ער פאָרשלאָגן ניצן פֿאַר וואָס? נול, איינער. און ווייַל עס ס ימפּלאַמענטאַד ווי דעם בוים, פֿאַר איצט לאָזן מיר ויסנעמען עס ס קיין צוויידייַטיקייַט ווי אין מאָרס קאָד, ווייַל אַלע פון ​​די אותיות איר זאָרגן וועגן זענען אין די סוף פון די עדזשאַז. אַזוי אַז ס נאָר איינער אַפּלאַקיישאַן פון אַ בוים. דאס יס-- און איך וועט פאָכן מיין האַנט אין דעם ווי איר זאל ינסטרומענט דעם ווי אַ C ביניען. מיר נאָר דאַרפֿן צו פאַרבינדן אַ סימבאָל, ווי אַ טשאַר, און די אָפטקייַט אין לינקס און רעכט. אבער לאָזן ס קוק אין צוויי לעצט יגזאַמפּאַלז אַז איר וועט באַקומען גאַנץ באַקאַנט מיט נאָך ויספרעג נול אין פּראָבלעם שטעלן פינף. אַזוי עס איז די דאַטן סטרוקטור באקאנט ווי אַ האַש טיש. און אַ האַש טיש איז מין פון קיל אין אַז עס האט באַקאַץ. און רעכן עס ס פיר באַקאַץ דאָ, נאָר פיר ליידיק ספּייסיז. דאָ ס אַ דעק פון קאַרדס, און דאָ איז קלוב, רידל, קלוב, דיימאַנדז, קלוב, דיימאַנדז, קלוב, דיאַמאָנדס, קלובס-- אַזוי דאָס איז די ראַנדאָם. כאַרץ, העאַרצ-- אַזוי איך בין בוקקעטיזינג אַלע פון ​​די ינפּוץ דאָ. און אַ האַש טיש דאַרף צו קוקן אין דיין ינפּוט, און דעריבער לייגן עס אין אַ זיכער אָרט באזירט אויף וואָס איר זען. עס ס אַ אַלגערידאַם. און איך איז געווען ניצן אַ סופּער פּשוט וויזשאַוואַל אַלגערידאַם. די כאַרדאַסט טייל פון וואָס איז געווען רימעמבערינג וואָס די בילדער זענען. און דעמאָלט דאָרט ס פיר גאַנץ זאכן. איצט די סטאַקס זענען גראָוינג, וואָס איז אַ דיליבראַט פּלאַן זאַך דאָ. אבער וואָס אַנדערש זאל איך טאָן? אַזוי אַקטשאַוואַלי דאָ מיר האָבן אַ בינטל פון אַלט שולע עקסאַם ביכער. רעכן אַז אַ בינטל פון סטודענטן נעמען זענען אויף דאָ. דאָ ס אַ ביגער האַש טיש. אָנשטאָט פיר באַקאַץ, איך האָבן, לאָזן ס זאָגן 26. און מיר האבן נישט וועלן צו גיין באָרגן 26 זאכן פון אַרויס [? אַננענבערג?], אַזוי דאָ ס פינף אַז פאָרשטעלן א דורך ז און אויב איך זען אַ תּלמיד וועמענס נאָמען סטאַרץ מיט אַ, איך בין געגאנגען צו שטעלן זיין אָדער איר ויספרעג דאָרט. אויב עמעצער סטאַרץ מיט C, איבער דאָרט, אַ-- אַקטואַללי, האט נישט וועלן צו טאָן אַז. ב גייט איבער דאָ. אַזוי איך ווע גאַט א און ב און סי און איצט דאָ ס אנדערן אַ תּלמיד. אבער אויב דעם האַש טיש איז ימפּלאַמענאַד מיט אַ מענגע, איך בין מין פון סקרוד אין דעם פונט, רעכט? איך מין פון דאַרפֿן צו שטעלן דעם ערגעץ. אַזוי איין וועג איך קענען סאָלווע דעם איז, אַלע רעכט, א איז פאַרנומען, ב איז פאַרנומען, C איז פאַרנומען. איך בין געגאנגען צו שטעלן אים אין ד אַזוי אין ערשטער, איך האָבן ראַנדאָם רעגע צוטריט צו יעדער פון די באַקאַץ פֿאַר די סטודענטן. אבער איצט עס ס מין פון דעוואָלוועד אין עפּעס לינעאַר, ווייַל אויב איך ווילן צו זוכן פֿאַר עמעצער וועמענס נאָמען סטאַרץ מיט אַ, איך טשעק דאָ. אבער אויב דאָס איז נישט דער א תּלמיד איך בין קוקן פֿאַר, איך מין פון האָבן צו אָנהייבן קאָנטראָלירונג די באַקאַץ, ווייַל וואָס איך האבן איז סאָרט פון לינעאַרלי זאָנד די דאַטן סטרוקטור. אַ נאַריש וועג פון זאגן נאָר קוק פֿאַר די ערשטער פאַראַנען עפן, און שטעלן ווי אַ פּלאַן ב, אַזוי צו רעדן, אָדער פּלאַן ד אין דעם פאַל, די ווערט אין אַז אָרט אַנשטאָט. דאס איז נאָר אַזוי אַז אויב איר ווע גאַט 26 לאָוקיישאַנז און קיין סטודענטן מיט די נאָמען ק אָדער ז, אָדער עפּעס ווי אַז, לפּחות איר ניטאָ ניצן די פּלאַץ. אבער מיר 'ווע שוין געזען מער קלוג סאַלושאַנז דאָ, רעכט? וואָס וואָלט איר טאָן אַנשטאָט אויב איר האָבן אַ צונויפשטויס? אויב צוויי מענטשן האָבן די נאָמען אַ, וואָס וואָלט האָבן שוין אַ סמאַרטער אָדער מער ינטואַטיוו לייזונג ווי נאָר פּאַטינג אַ ווו די איז געמיינט צו זיין? וואָס טאָן ניט איך נאָר גיין אַרויס [? אַננענבערג?], ווי מאַללאָק, אן אנדער נאָדע, לייגן עס דאָ, און דעריבער לייגן אַז א תּלמיד דאָ. אַזוי אַז איך יסענשאַלי האָבן עטלעכע מין פון אַ מענגע, אָדער אפֿשר מער עליגאַנטלי ווי מיר ניטאָ סטאַרטינג צו זען אַ לינגקט רשימה. און אַזוי אַ האַש טיש איז אַ סטרוקטור אַז קען קוק נאָר ווי דעם, אָבער מער קלעווערלי, איר עפּעס גערופֿן באַזונדער טשאַינינג, ווערביי אַ האַש טיש גאַנץ נאָר איז אַ מענגע, יעדער פון וועמענס יסודות איז נישט אַ נומער, איז זיך אַ לינגקט רשימה. אַזוי אַז איר באַקומען יבער שנעל צוטריט דאַסיידינג ווו צו האַש דיין ווערט צו. פיל ווי מיט די קאַרדס לעמאָשל, איך געמאכט סופּער שנעל דיסיזשאַנז. כאַרץ גייט דאָ, דיימאַנדז גייט דאָ. זעלביקער דאָ, אַ גייט דאָ, די גייט דאָ, ב גייט דאָ. אזוי יבער שנעל קוקן-אַפּס, און אויב איר פּאַסירן צו לויפן אין אַ פאַל ווו איר ווע גאַט קאַליזשאַנז, צוויי מענטשן מיט די זעלבע נאָמען, געזונט דעמאָלט איר נאָר אָנהייבן פֿאַרבינדונג זיי צוזאַמען. און אפֿשר איר האַלטן זיי אויסגעשטעלט אַלפאַבעטיקאַללי, אפֿשר איר טאָן ניט. אבער לפּחות איצט מיר האָבן די דיינאַמיזאַם. אַזוי אויף די איין האַנט מיר האָבן יבער שנעל קעסיידערדיק צייַט, און סאָרט פון לינעאַר צייַט ינוואַלווד אויב די לינגקט רשימות אָנהייבן צו באַקומען אַ ביסל לאַנג. אזוי דעם טיפּ פון אַ נאַריש, געעקי וויץ יאר צוריק. אין דער קס50 כאַק-אַ-טהאָן, ווען סטודענטן טשעק אין, עטלעכע טף אָדער CA יעדער יאָר מיינט עס ס מאָדנע צו לייגן אַרויף אַ צייכן ווי דעם, ווו עס נאָר מיטל אויב דיין נאָמען סטאַרץ מיט אַן א, גיין דעם וועג. אויב דיין נאָמען סטאַרץ מיט אַ ב, גיין טהיס-- גוט, עס ס מאָדנע אפֿשר שפּעטער אין די זמאַן. אבער עס ס אנדערן וועג פון טאן דעם, אויך. קומען צוריק צו וואָס. אַזוי עס ס דעם סטרוקטור. און דאָס איז אונדזער לעצט ביניען פֿאַר הייַנט, וואָס איז עפּעס גערופֿן אַ טריע. ה-ר-איך-E, וואָס פֿאַר עטלעכע סיבה איז קורץ פֿאַר ריטריוואַל, אָבער עס ס גערופֿן טריע. אַזוי אַ טריע איז אן אנדער טשיקאַווע Amalgam פון אַ פּלאַץ פון די געדאנקען. עס ס אַ בוים, וואָס מיר ווע געזען פריער. עס ס ניט אַ ביינערי זוכן בוים. עס ס אַ בוים מיט קיין נומער פון קינדער, אָבער יעדער פון די קינדער אין אַ טריע איז אַ מענגע. אַ מענגע פון ​​גרייס, זאָגן, 26 אָדער אפֿשר 27 אויב איר ווילן צו שטיצן היפענאַטעד נעמען אָדער אַפּאָסטראָפעס אין מענטשן ס נעמען. און אַזוי דאָס איז אַ דאַטע ביניען. און אויב איר קוקן פון שפּיץ צו דנאָ, ווי אויב איר קוק אין די שפּיץ נאָדע עס, ב, איז פּוינטינג צו די לעפטמאָסט זאַך דאָרט, וואָס איז דעמאָלט אַ, רענטגענ, ד, E, ל, ל דאס איז נאָר אַ דאַטן סטרוקטור וואָס אַרביטרעראַלי איז סטאָרינג מענטשן ס נעמען. און מאַקסוועל איז סטאָרד דורך פּונקט ווייַטערדיק אַ דרך פון מענגע צו מענגע צו מענגע. אבער וואָס ס אַמייזינג וועגן אַ טריע איז אַז, כוועראַז אַ לינגקט רשימה און אַפֿילו אַ מענגע, דער בעסטער מיר ווע אלץ גאַטאַן איז לינעאַר צייַט אָדער לאַגערידמיק צייַט קוקן עמעצער אַרויף. אין דעם דאַטן סטרוקטור אַ טריע, אויב מיין דאַטן סטרוקטור האט איין נאָמען אין עס און איך בין קוקן פֿאַר מאַקסוועל, איך בין געגאנגען צו געפֿינען אים שיין געשווינד. איך נאָר קוקן פֿאַר ב-א-רענטגענ-ד E-ל-ל. אַז דעם דאַטע ביניען, דורך קאַנטראַסט, אויב N איז אַ מיליאָן, אויב עס ס אַ מיליאָן נעמען אין דעם דאַטן סטרוקטור, מאַקסוועל איז נאָך געגאנגען צו זיין דיסקאָוועראַבלע נאָך נאָר ב-א-רענטגענ-ד E-ל-ל טריט. און דאַוויד-- ד-א-וו-איך-ד טריט. אין אנדערע ווערטער, דורך בנין אַ דאַטן סטרוקטור אַז ס גאַט אַלע פון ​​די ערייז, אַלע פון ​​וואָס זיך שטיצן ראַנדאָם צוטריט, איך קענען אָנהייבן קוקן אַרויף מענטשן ס נאָמען ניצן אַ סכום פון צייַט אַז ס פּראַפּאָרשאַנאַל צו נישט די נומער פון זאכן אין די דאַטן סטרוקטור, ווי אַ מיליאָן יגזיסטינג נעמען. דער סומע פון ​​צייַט עס נעמט מיר צו געפֿינען ב-א-רענטגענ-ד E-ל-ל אין דעם דאַטן סטרוקטור איז פּראַפּאָרשאַנאַל נישט צו די גרייס פון די דאַטן סטרוקטור, אָבער צו די לענג פון די נאָמען. און ריאַליסטיקלי די נעמען מיר 'רע איר זוכט זיך זענען קיינמאָל געגאנגען צו זיין משוגע לאַנג. אפֿשר עמעצער האט אַ 10 כאַראַקטער נאָמען, 20 כאַראַקטער נאָמען. עס ס אַוואַדע ענדלעך, רעכט? עס איז אַ מענטשלעך אויף ערד וואס האט די לאָנגעסט מעגלעך נאָמען, אָבער אַז נאָמען איז אַ קעסיידערדיק ווערט לענג, רעכט? עס טוט נישט בייַטן אין קיין זינען. אַזוי אין דעם וועג, מיר ווע אַטשיווד אַ דאַטן סטרוקטור וואָס איז קעסיידערדיק צייַט קוקן-אַרויף. עס טוט נעמען אַ נומער פון טריט דיפּענדינג אויף די לענג פון די ינפּוט, אָבער ניט די נומער פון נאָמען אין די דאַטן סטרוקטור. אַזוי אויב מיר טאָפּל די נומער פון נעמען ווייַטער יאָר פֿון אַ ביליאָן צו 2000000000, דערגייונג מאַקסוועל איז געגאנגען צו נעמען די פּינטלעך זעלביקער נומער פון זיבן טרעפּ צו געפֿינען אים. און אַזוי מיר ויסקומען צו האָבן אַטשיווד אונדזער רוח גראַיל פון פליסנדיק צייַט. אַזוי אַ פּאָר פון שנעל אַננאָונסעמענץ. קוויז נול איז קומען אַרויף. מער אויף אַז אויף דעם קורס ס וועבזייַטל איבער די ווייַטער פּאָר פון טעג. מאנטיק ס לעקטורע-- עס ס אַ יום טוּב דאָ אין האַרוואַרד אויף מאנטאג. עס ס ניט אין ניו האַווען, אזוי מיר ניטאָ גענומען די סאָרט צו ניו האַווען פֿאַר לעקציע אויף מאנטאג. אלץ וועט זיין פילמעד און סטרימד לעבן ווי געוויינטלעך, אָבער לאָזן ס סוף הייַנט מיט אַ 30 רגע קלעמערל גערופֿן "דיפּ טאָץ" דורך דאַווען Farnham, וואָס איז ינספּייערד לעצט יאָר דורך שבת נאַכט לעבן ס ​​"טיף טאָץ" דורך דזשאַק האַנטיק, וואָס זאָל איצט מאַכן זינען. FILM: און איצט, "דיפּ טאָץ "דורך דאַווען Farnham. האַש טיש. רעדנער 1: אַלע רעכט, אַז ס עס פֿאַר איצט. מיר וועט זען איר ווייַטער וואָך. דאַג: צו זען עס אין קאַמף. אַזוי לאָזן ס נעמען אַ קוק אין וואָס רעכט איצט. אַזוי דאָ, מיר האָבן אַ ונסאָרטעד מענגע. יאַן: דאַג, קענען איר גיין פאָרויס און ריסטאַרט דעם פֿאַר בלויז איין רגע, ביטע. אַלע רעכט, קאַמעראַס זענען ראָולינג, אַזוי קאַמף ווען איר ניטאָ גרייט, דאַג, גוט? דאַג: אַלע רעכט, אַזוי וואָס מיר האָבן דאָ איז אַ ונסאָרטעד מענגע. און איך ווע בונט אַלע פון ​​די יסודות רויט צו אָנווייַזן אַז עס איז, אין פאַקט, ונסאָרטעד. אַזוי צוריקרופן אַז דער ערשטער זאַך מיר טאָן איז מיר סאָרט די לינקס האַלב פון די מענגע. דעמאָלט מיר סאָרט די רעכט האַלב פון די מענגע. און יאַ-דאַ, יאַ-דאַ, יאַ-דאַ, מיר צונויפגיסן זיי צוזאַמען. און מיר האָבן אַ גאָר אויסגעשטעלט מענגע. אַזוי אַז ס ווי צונויפגיסן סאָרט אַרבעט. יאַן: וואָו, WHOA, WHOA, שנייַדן, שנייַדן, שנייַדן, שנייַדן. דאַג, איר קענען ניט נאָר יאַ-דאַ, יאַ-דאַ, יאַ-דאַ, דיין וועג דורך צונויפגיסן סאָרט. דאַג: איך נאָר האבן. עס ס פייַן. מיר ניטאָ גוט צו גיין. זאל ס נאָר האַלטן ראָולינג. אַזוי סייַ ווי סייַ, יאַן: איר האָבן צו דערקלערן עס מער גאָר ווי אַז. אַז ס נאָר ניט גענוג. דאַג: יאַן, מיר טאָן ניט דאַרפֿן צו גיין צוריק צו איינער. עס ס פייַן. אַזוי סייַ ווי סייַ, אויב מיר פאָרזעצן מיט מערגע-- יאַן, מיר ניטאָ אין דער מיטן פון פילמינג. יאַן: איך וויסן. און מיר קענען ניט נאָר יאַ-דאַ, יאַ-דאַ, יאַ-צו, דורך דער גאנצער פּראָצעס. איר האָבן צו דערקלערן ווי די צוויי זייטן באַקומען מערדזשד צוזאַמען. דאַג: אבער מיר 'ווע שוין דערקלערט ווי די צוויי סידעס-- יאַן: איר ווע נאָר געוויזן זיי אַ צונויפגיסן מענגע. דאַג: זיי וויסן דעם פּראָצעס. זיי ניטאָ פייַן. מיר ווע ניטאָ איבער אים צען מאל. יאַן: איר נאָר סקיפּט רעכט איבער אים. מיר רע געגאנגען צוריק צו איינער, איר קענען ניט איר יאַ-דאַ, יאַ-דאַ איבער אים. אַלע רעכט, צוריק צו איינער. דאַג: איך האָבן צו גיין צוריק דורך אַלע פון ​​די סליידז? מיין גאָט. עס ס ווי די זעקסט צייַט, יאַן. עס ס פייַן. יאַן: אַלע רעכט. איר גרייט? גרויס. קאַמף.