קעווין שמיד: מאל, ווען בנין אַ פּראָגראַם, איר זאל וועלן צו אויסצונוצן אַ דאַטן ביניען באקאנט ווי אַ ווערטערבוך. א ווערטערבוך מאַפּס שליסלען, וואָס זענען יוזשאַוואַלי סטרינגס, צו וואַלועס, ינץ, טשאַרס, אַ טייַטל צו עטלעכע כייפעץ, וועלכער מיר וועלן. עס ס פּונקט ווי פּראָסט דיקשאַנעריז אַז מאַפּע ווערטער דורך זוך. דיקשאַנעריז צושטעלן אונדז מיט די פיייקייַט צו קראָם אינפֿאָרמאַציע פארבונדן מיט עפּעס און קוק עס אַרויף שפּעטער. אַזוי ווי טאָן מיר פאקטיש מאַכשער אַ ווערטערבוך אין, זאָגן, C קאָד אַז מיר קענען נוצן אין איינער פון אונדזער מגילה? נו, עס זענען אַ פּלאַץ פון וועגן אַז מיר געקענט מאַכשער אַ ווערטערבוך. פֿאַר איין, מיר קען נוצן אַ מענגע אַז מיר דינאַמיקאַללי שייַעך-גרייס אָדער מיר קען נוצן אַ לינגקט רשימה, האַש טיש אָדער אַ ביינערי בוים. אבער וועלכער מיר קלייַבן, מיר זאָל זיין מיינדפאַל פון די עפעקטיווקייַט און פאָרשטעלונג פון די ימפּלאַמענטיישאַן. מיר זאָל טראַכטן וועגן די אַלגערידאַם געניצט צו טאָן און קוק אַרויף זאכן אין אונדזער דאַטן סטרוקטור. פֿאַר איצט, לאָזן ס יבערנעמען אַז מיר ווילן צו נוצן סטרינגס ווי שליסלען. זאל ס רעדן וועגן איינער מעגלעכקייט, אַ דאַטן סטרוקטור גערופן אַ טריי. אַזוי דאָ ס אַ וויזשאַוואַל פאַרטרעטונג פון אַ טריי. ווי דער בילד סאַגדזשעס, אַ טריי איז אַ בוים דאַטן ביניען מיט נאָודז לינגקט צוזאַמען. מיר זען אַז עס ס קלאר אַ וואָרצל נאָדע מיט עטלעכע לינקס יקסטענדינג צו אנדערע נאָודז. אבער וואָס טוט יעדער נאָדע צונויפשטעלנ זיך פון? אויב מיר יבערנעמען אַז מיר ניטאָ סטאָרינג שליסלען מיט בלויז אַלפאַבעטיק אותיות, און מיר טאָן ניט זאָרגן וועגן קאַפּיטאַליזיישאַן, דאָ ס אַ דעפֿיניציע פון ​​אַ נאָדע אַז וועט קלעקן. אַ כייפעץ וועמענס טיפּ איז סטרוקט נאָדע האט צוויי פּאַרץ גערופן דאַטע און קינדער. מיר 'ווע לינקס דער דאַטע טייל ווי אַ באַמערקונג צו זיין ריפּלייסט דורך אַ קאָמפּאָנענט דעקלאַראַציע ווען סטרוקט נאָדע איז ינקאָרפּאָראַטעד אין אַ C פּראָגראַם. די דאַטע טייל פון אַ נאָדע זאל זיין אַ באָאָלעאַן ווערט צו אָנווייַזן צי אָדער ניט די נאָדע רעפּראַזענץ די קאַמפּלישאַן פון אַ ווערטערבוך שליסל אָדער עס זאל זיין אַ שטריקל רעפּריזענטינג די דעפֿיניציע פון אַ וואָרט אין די ווערטערבוך. מיר וועט נוצן אַ סמיילי פּנים צו אָנווייַזן ווען דאַטע איז פאָרשטעלן אין אַ נאָדע. עס זענען 26 עלעמענטן אין אונדזער קינדער מענגע, איינער אינדעקס פּער אַלפאַבעטיק כאַראַקטער. מיר וועט זען די באַטייַט פון דעם באַלד. זאל ס באַקומען אַ נעענטער קוקן פון די שורש נאָדע אין אונדזער דיאַגראַמע, וואָס האט קיין דאַטן פארבונדן מיט עס, ווי אנגעוויזן דורך די אַוועק פון די סמיילי פּנים אין די דאַטן חלק. די עראָוז יקסטענדינג פון די פּאַרץ פון די קינדער מענגע פאָרשטעלן ניט-נאָדע פּאָינטערס צו אנדערע נאָודז. פֿאַר בייַשפּיל, די פייַל יקסטענדינג פון די רגע עלעמענט פון קינדער רעפּראַזענץ די בריוו ב אין אַ ווערטערבוך שליסל. און אין די גרעסערע דיאַגראַמע מיר פירמע עס מיט אַ בי באַמערקונג אַז אין די גרעסערע דיאַגראַמע, ווען מיר ציען אַ טייַטל צו אנדערן נאָדע, עס טוט ניט ענין ווו די אַראָוכעד מיץ אַז אנדערע נאָדע. אונדזער מוסטער ווערטערבוך טריי כּולל צוויי ווערטער, אַז און פארגרעסער. זאל ס גיין דורך אַ בייַשפּיל פון קוקן אַרויף דאַטע פֿאַר אַ שליסל. רעכן מיר געוואלט צו קוקן אַרויף די קאָראַספּאַנדינג ווערט פֿאַר די שליסל וואַנע. מיר וועט נעמען אונדזער קוק אַרויף בייַ די וואָרצל נאָדע. דעמאָלט מיר וועט נעמען די ערשטער בריוו פון אונדזער שליסל, ב, און געפינען די קאָראַספּאַנדינג אָרט אין אונדזער קינדער מענגע. באַמערקן אַז עס זענען פּונקט 26 ספּאַץ אין די מענגע, איינער פֿאַר יעדער בריוו פון די אלפאבעט. און מיר וועט האָבן די ספּאַץ פאָרשטעלן די אותיות פון די אלפאבעט אין סדר. מיר וועט קוקן אין די רגע אינדעקס דעמאָלט, אינדעקס איינער, פֿאַר בי אין אַלגעמיין, אויב מיר האָבן עטלעכע אַלפאַבעטיק כאַראַקטער C מיר קען באַשליסן די קאָראַספּאַנדינג אָרט אין די קינדער מענגע ניצן אַ כעזשבן ווי דעם. מיר געקענט האָבן געוויינט אַ גרעסערע קינדער מענגע אויב מיר געוואלט צו פאָרשלאָגן קוק אַרויף פון שליסלען מיט אַ ווידער קייט פון אותיות, אַזאַ ווי די גאנצע אַסקי כאַראַקטער שטעלן. אין דעם פאַל, די טייַטל אין אונדזער קינדער מענגע אין אינדעקס איינער איז ניט נאַל. אַזוי מיר וועט פאָרזעצן קוקן אַרויף די שליסל וואַנע. אויב מיר אלץ געפּלאָנטערט אַ נאַל טייַטל בייַ די געהעריק אָרט אין די קינדער מענגע בשעת מיר טראַווערסט די נאָודז, דעמאָלט מיר וועט האָבן צו זאָגן אַז מיר קען ניט געפינען עפּעס פֿאַר אַז שליסל. איצט, מיר וועט נעמען די רגע בריוו פון אונדזער שליסל, א, און פאָרזעצן ווייַטערדיק פּאָינטערס אין דעם וועג ביז מיר דערגרייכן דעם סוף פון אונדזער שליסל. אויב מיר דערגרייכן דעם סוף פון די שליסל אָן היטטינג קיין טויט ענדס, נאַל פּוינטערז, ווי איז דער פאַל דאָ, דעמאָלט מיר נאָר האָבן צו קאָנטראָלירן איינער מער זאַך. איז דעם שליסל פאקטיש אין די ווערטערבוך? אויב אַזוי, מיר זאָל געפֿינען אַ ווערט, געזונט אַ סמיילי פּנים בילדל אין אונדזער דיאַגראַמע ווו די וואָרט ענדס. אויב עס איז עפּעס אַנדערש סטאָרד מיט די דאַטן, דעמאָלט מיר קענען צוריקקומען עס. למשל, דער שליסל זאָאָלאָגישער גאָרטן איז ניט אין דער ווערטערבוך, אפילו כאָטש מיר קען האָבן ריטשט די סוף פון דעם שליסל אָן אלץ היטטינג אַ נאַל טייַטל, בשעת מיר יטעראַטע דורך די טריי. אויב מיר געפרוווט צו קוקן אַרויף די שליסל וואַנע, די רגע צו לעצט נאָדע ס מענגע אינדעקס, קאָראַספּאַנדינג צו די בריוו ה, וואָלט האָבן געהאלטן אַ נאַל טייַטל. אַזוי וואַנע איז ניט אין דער ווערטערבוך. און אַזוי אַ טריי איז יינציק אין אַז די שליסלען זענען קיינמאָל בפירוש סטאָרד אין די דאַטן סטרוקטור. אַזוי ווי טאָן מיר טאָן עפּעס אין אַ טריי? זאל ס טאָן דער שליסל זאָאָלאָגישער גאָרטן אין אונדזער טריי. געדענקען אַז אַ סמיילי פּנים בייַ אַ נאָדע קען שטימען אין קאָד צו אַ פּשוט באָאָלעאַן ווערט צו אָנווייַזן אַז זאָאָלאָגישער גאָרטן איז אין די ווערטערבוך אָדער עס קען שטימען צו מער אינפֿאָרמאַציע אַז מיר ווינטשן צו מיטאַרבעטער מיט די שליסל זאָאָלאָגישער גאָרטן, ווי די דעפֿיניציע פון ​​די וואָרט אָדער עפּעס אַנדערש. אין עטלעכע וועגן, דער פּראָצעס צו טאָן עפּעס אין אַ טריי איז ענלעך צו קוקן אַרויף עפּעס אין אַ טריי. מיר וועט אָנהייבן מיט די וואָרצל נאָדע ווידער, ווייַטערדיק פּוינטערז קאָראַספּאַנדינג צו די אותיות פון אונדזער שליסל. צומ גליק, מיר זענען קענען צו נאָכפאָלגן פּוינטערז אַלע די וועג ביז מיר ריטשט די סוף פון די שליסל. זינט זאָאָלאָגישער גאָרטן איז אַ פּרעפיקס פון דעם וואָרט פארגרעסער, וואָס איז אַ מיטגליד פון דער ווערטערבוך, מיר טאָן ניט דאַרפֿן צו אַלאַקייט קיין נייַ נאָודז. מיר קענען מאָדיפיצירן די נאָדע צו אָנווייַזן אַז דער דרך פון אותיות לידינג צו עס רעפּראַזענץ אַ שליסל אין אונדזער ווערטערבוך. איצט, לאָזן ס פּרובירן ינסערטינג די שליסל וואַנע אין די טריי. מיר וועט אָנהייבן בייַ די וואָרצל נאָדע און נאָכגיין פּוינטערז ווידער. אבער אין דעם סיטואַציע, מיר שלאָגן אַ טויט סוף איידער מיר ניטאָ קענען צו באַקומען צו דעם סוף פון די שליסל. איצט, מיר וועט דאַרפֿן צו אַלאַקייט עטלעכע נייַ נאָודז וועט דאַרפֿן צו אַלאַקייט איינער נייַ נאָדע פֿאַר יעדער רוען בריוו פון אונדזער שליסל. אין דעם פאַל, מיר נאָר דאַרפֿן צו אַלאַקייט איינער נייַ נאָדע. דעמאָלט מיר וועט דאַרפֿן צו מאַכן די ה אינדעקס דערמאָנען דעם נייַ נאָדע. אַמאָל ווידער, מיר קענען מאָדיפיצירן די נאָדע צו אָנווייַזן אַז די דרך פון אותיות לידינג צו עס רעפּראַזענץ אַ שליסל אין אונדזער ווערטערבוך. זאל ס סיבה וועגן די אַסימפּטאָטיק קאַמפּלעקסיטי פון אונדזער פּראָוסידזשערז פֿאַר די צוויי אַפּעריישאַנז. מיר באַמערקן אַז אין ביידע קאַסעס די נומער פון טריט אונדזער אַלגערידאַם גענומען איז געווען פּראַפּאָרשאַנאַל צו די נומער פון אותיות אין די קיווערד. אַז ס רעכט. ווען איר ווילן צו קוקן אַרויף אַ וואָרט אין אַ טריי איר נאָר דאַרפֿן צו יטעראַטע דורך די אותיות איינער דורך איינער ביז איר אָדער דערגרייכן דעם סוף פון די וואָרט אָדער שלאָגן אַ טויט סוף אין די טריי. און ווען איר ווינטשן צו טאָן אַ שליסל ווערט פּאָר אין אַ טריי ניצן די פּראָצעדור מיר דיסקאַסט, די ערגסטע פאַל וועט האָבן איר אַלאַקייטינג אַ נייַ נאָדע פֿאַר יעדער בריוו. און מיר וועט יבערנעמען אַז אַלאַקיישאַן איז אַ קעסיידערדיק צייַט אָפּעראַציע. אַזוי אויב מיר יבערנעמען אַז די שליסל לענג איז באַונדאַד דורך אַ פאַרפעסטיקט קעסיידערדיק, ביידע ינסערשאַן און קוק אַרויף זענען קעסיידערדיק צייַט אָפּעראַטיאָנס פֿאַר אַ טריי. אויב מיר טאָן ניט מאַכן דעם האַשאָרע אַז דער שליסל לענג איז באַונדאַד דורך אַ פאַרפעסטיקט קעסיידערדיק, דעמאָלט ינסערשאַן און קוק אַרויף, אין די ערגסטע פאַל, זענען לינעאַר אין די לענג פון די שליסל. באַמערקן אַז די נומער פון זאכן סטאָרד אין די טריי טוט ניט ווירקן די קוק אַרויף אָדער ינסערשאַן צייַט. עס ס נאָר ימפּאַקטיד דורך די לענג פון די שליסל. דורך קאַנטראַסט, אַדינג ערטער צו, זאָגן, אַ האַש טיש טענדז צו מאַכן צוקונפֿט קוק אַרויף סלאָוער. בשעת דעם זאל געזונט אַפּילינג בייַ ערשטער, מיר זאָל האַלטן אין גייַסט אַז אַ גינציק אַסימפּטאָטיק קאַמפּלעקסיטי טוט ניט מיינען אַז אין פיר די דאַטן ביניען איז דאַווקע ווייַטער טייַנע. מיר מוזן אויך באַטראַכטן אַז צו קראָם אַ וואָרט אין אַ טריי מיר דאַרפֿן, אין די ערגסטע פאַל, אַ נומער פון נאָודז פּראַפּאָרשאַנאַל צו די לענג פון די וואָרט זיך. פרוווט טענד צו נוצן אַ פּלאַץ פון אָרט. אַז ס אין קאַנטראַסט צו אַ האַש טיש, ווו מיר נאָר דאַרפֿן איינער נייַ נאָדע צו קראָם עטלעכע שליסל ווערט פּאָר. איצט, ווידער אין טעאָריע, גרויס פּלאַץ קאַנסאַמשאַן טוט ניט ויסקומען ווי אַ גרויס האַנדלען, ספּעציעל געגעבן אַז מאָדערן קאָמפּיוטערס האָבן גיגאבייט און גיגאבייט פון זיקאָרן. אבער עס טורנס אויס אַז מיר נאָך האָבן צו זאָרג וועגן זיקאָרן באַניץ און אָרגאַניזירונג פֿאַר די צוליב פון פאָרשטעלונג, זינט מאָדערן קאָמפּיוטערס האָבן מעקאַניזאַמז אין פּלאַץ אונטער די קאַפּטער צו גיכקייַט אַרויף זיקאָרן צוטריט. אבער די מעקאַניזאַמז אַרבעט בעסטער ווען זיקאָרן אַקסעססעס זענען געמאכט אין סאָליד מקומות אָדער געביטן. און די נאָודז פון אַ טריי קען וווינען ערגעץ אין אַז קופּע. אבער די זענען א-אָפס אַז מיר מוזן באַטראַכטן. געדענקען אַז, ווען טשוזינג אַ דאַטן ביניען פֿאַר אַ זיכער אַרבעט, מיר זאָל טראַכטן וועגן וואָס מינים פון אָפּעראַטיאָנס די דאַטן ביניען דארף צו שטיצן און ווי פיל די פאָרשטעלונג פון יעדער פון די אָפּעראַטיאָנס ענינים צו אונדז. די אַפּעריישאַנז קען אפילו פאַרברייטערן ווייַטער נאָר יקערדיק קוק אַרויף און ינסערשאַן. רעכן מיר געוואלט צו מאַכשער אַ מין פון אַוטאָ-גאַנץ פאַנגקשאַנאַליטי, פיל ווי Google זוכן מאָטאָר טוט. אַז איז, צוריקקומען אַלע די שליסלען און פּאַטענטשאַלי וואַלועס וואָס האָבן אַ געגעבן פּרעפיקס. א טריי איז יוניקלי נוציק פֿאַר דעם אָפּעראַציע. עס ס סטרייטפאָרווערד צו יטעראַטע דורך די טריי פֿאַר יעדער כאַראַקטער פון די פּרעפיקס. פּונקט ווי אַ קוק אַרויף אָפּעראַציע, מיר געקענט נאָכפאָלגן פּוינטערז כאַראַקטער דורך כאַראַקטער. דעמאָלט, ווען מיר אָנקומען בייַ די סוף פון די פּרעפיקס, מיר קען יטעראַטע דורך די רוען חלק פון די דאַטן ביניען זינט קיין פון די שליסלען ווייַטער דעם פונט האָבן די פּרעפיקס. עס ס אויך גרינג צו קריגן דעם ליסטינג אין אַלפאַבעטיקאַל סדר זינט דער יסודות פון די קינדער מענגע זענען באפוילן אַלפאַבעטיקלי. אַזוי אַלעווייַ איר וועט באַטראַכטן געבן פרוווט אַ פּרובירן. איך בין קעווין שמיד, און דעם איז קס50. אַה, דאָס איז די אָנהייב פון די אַראָפּגיין. איך בין נעבעכדיק. נעבעכדיק. נעבעכדיק. נעבעכדיק. שלאָגן פיר. איך בין אויס. נעבעכדיק. נעבעכדיק. נעבעכדיק. נעבעכדיק פֿאַר מאכן די מענטש וואס האט צו רעדאַגירן דעם גיין משוגע. נעבעכדיק. נעבעכדיק. נעבעכדיק. נעבעכדיק. רעדנער 1: גוט געטאן. אַז איז טאַקע געזונט געטאן.