[Powered by Google Translate] [סעקשאַן 6: ווייניקער באַקוועם] [נאַטע האַרדיסאָן] [האַרוואַרד אוניווערסיטעט] [דאס איז קס50.] [CS50.TV] אַלע רעכט. באַגריסן צו אָפּטיילונג 6. דעם וואָך, מיר רע געגאנגען צו זייַן גערעדט וועגן דאַטן סטראַקטשערז אין אָפּטיילונג, בפֿרט ווייַל דאָס וואָך ס פּראָבלעם שטעלן אויף ספּעללר טוט אַ גאַנץ בינטל פון פאַרשידענע דאַטן סטרוקטור עקספּלעריישאַן. עס זענען אַ בינטל פון פאַרשידענע וועגן איר קענען גיין מיט די פּראָבלעם שטעלן, און די מער דאַטן סטראַקטשערז איר וויסן וועגן, די מער קיל זאכן איר קענען טאָן. אַזוי לאָזן ס באַקומען אנגעהויבן. ערשטער מיר רע געגאנגען צו רעדן וועגן סטאַקס, די אָנלייגן און ריי דאַטן סטראַקטשערז אַז מיר רע געגאנגען צו רעדן וועגן. סטאַקס און קיוז זענען טאַקע נוציק ווען מיר אָנהייבן גערעדט וועגן גראַפס, וואָס מיר ניטאָ ניט געגאנגען צו טאָן אַזוי פיל פון רעכט איצט. אבער זיי ניטאָ טאַקע גוט צו פֿאַרשטיין איינער פון די גרויס פונדאַמענטאַל דאַטן סטראַקטשערז פון קס. די באַשרייַבונג אין דער פּראָבלעם שטעלן באַשרייַבונג, אויב איר ציען עס אַרויף, רעדט וועגן סטאַקס ווי קרויוויש צו די הויפן פון דיינינג טרייַס אַז איר האָבן אין דער קאַפעטעריע אין די דיינינג האַללס ווו ווען די דיינינג שטעקן קומט און לייגט די דיינינג טרייַס אויס נאָך זיי ווע קלינד זיי, זיי אָנלייגן זיי איינער אויף שפּיץ פון די אנדערע. און דעריבער ווען קידס קומען אין צו באַקומען פוד, זיי ציען די טרייַס אַוועק, קודם די שפּיץ איינער, דעמאָלט דער איינער אונטן עס, דעריבער די איין אונטן אַז. אַזוי, אין ווירקונג, דער ערשטער טאַץ אַז די דיינינג שטעקן שטעלן אַראָפּ איז די לעצטע איינער וואָס געץ גענומען אַוועק. די לעצטע איין אַז די דיינינג שטעקן שטעלן אויף איז דער ערשטער איינער וואָס געץ גענומען אַוועק פֿאַר מיטאָג. אין די פּראָבלעם שטעלן ס ספּעק, וואָס איר קענען אראפקאפיע אויב איר האָבן נישט שוין, מיר רעדן וועגן מאָדעלינג אַ אָנלייגן דאַטן סטוקטורע ניצן דעם מין פון סטרוקט. אַזוי וואָס מיר ווע גאַט דאָ, דאָס איז ענלעך צו וואָס האט דערלאנגט אין לעקציע, אַחוץ אין לעקציע מיר דערלאנגט דעם מיט ינץ ווי קעגן צו טשאַר * ס. דאס איז געגאנגען צו זייַן אַ אָנלייגן אַז סטאָרז וואָס? דניאל? וואָס זענען מיר סטאָרינג אין דעם אָנלייגן? [דניאל] סטרינגס? >> מיר זענען סטאָרינג סטרינגס אין דעם אָנלייגן, פּונקט. כל איר דאַרפֿן צו האָבן אין סדר צו שאַפֿן אַ אָנלייגן איז אַ מענגע פון אַ באַזונדער קאַפּאַציטעט, וואָס אין דעם פאַל, קאַפּאַציטעט איז געגאנגען צו זייַן אין אַלע קאַפּס ווייַל עס ס אַ קעסיידערדיק. און דעמאָלט אין דערצו צו די מענגע, אַלע מיר דאַרפֿן צו שפּור איז די קראַנט גרייס פון דער מענגע. איין זאַך צו טאָן דאָ אַז ס מין פון קילן איז וואָס מיר רע שאפן די סטאַקט דאַטן סטרוקטור אויף שפּיץ פון אן אנדער דאַטן סטרוקטור, די מענגע. עס זענען פאַרשידענע וועגן צו מאַכשער סטאַקס. מיר וועלן נישט טאָן עס גאַנץ נאָך, אָבער אַלעווייַ נאָך טאן די לינגקט-רשימה פּראָבלעמס, איר וועט זען ווי איר קענען לייכט מאַכשער אַ אָנלייגן אויף שפּיץ פון אַ לינגקט רשימה ווי געזונט. אבער פֿאַר איצט, מיר וועט שטעקן צו די ערייז. אַזוי ווידער, אַלע מיר דאַרפֿן איז אַ מענגע און מיר נאָר דאַרפֿן צו שפּור די גרייס פון דעם מענגע. [סאַם] אנטשולדיגט, וואָס איז עס וואָס איר האט געזאגט דעם אָנלייגן ס אויף שפּיץ פון די סטרינגס? צו מיר עס מיינט ווי די סטרינגס זענען ין דעם אָנלייגן. [האַרדיסאָן] יאָ. מיר רע שאפן, מיר רע גענומען אונדזער מענגע דאַטן סטרוקטור - אַז ס אַ גרויס קשיא. אַזוי די קשיא איז וואָס, פֿאַר די מענטשן וואס זענען וואַטשינג דעם אָנליין, וואָס זענען מיר געזאגט אַז די אָנלייגן איז אויף שפּיץ פון די סטרינגס, ווייַל דאָ עס קוקט ווי די סטרינגס זענען ין דעם אָנלייגן? וואָס איז טאָוטאַלי דער פאַל. וואָס איך איז געווען ריפערינג צו איז געווען אַז מיר ווע גאַט אַ מענגע דאַטן סטרוקטור. מיר ווע גאַט אַ מענגע פון ​​טשאַר * ס, דעם מענגע פון ​​סטרינגס, און מיר זענען געגאנגען צו לייגן צו אַז אין סדר צו מאַכן די סטאַקט דאַטן סטרוקטור. אַזוי אַ אָנלייגן איז אַ ביסל מער קאָמפּליצירט ווי אַ מענגע. מיר קענען נוצן אַ מענגע צו בויען אַ אָנלייגן. אַזוי אַז ס ווו מיר זאָגן אַז די אָנלייגן איז געבויט אויף שפּיץ פון אַ מענגע. פּונקט אַזוי, ווי איך געזאגט פריער, מיר קענען בויען אַ אָנלייגן אויף שפּיץ פון אַ לינגקט רשימה. אַנשטאָט פון ניצן אַ מענגע צו האַלטן אונדזער עלעמענטן, מיר קען נוצן אַ לינגקט רשימה צו האַלטן אונדזער יסודות און בויען די אָנלייגן אַרום אַז. זאל ס גיין דורך אַ פּאָר פון ביישפילן, זוכן בייַ עטלעכע קאָד, צו זען וואָס ס 'פאקטיש געשעעניש דאָ. אויף די לינקס, איך ווע ארלנגעווארפן אַראָפּ וואָס אַז אָנלייגן סטרוקט וואָלט קוק ווי אין זכּרון אויב קאַפּאַציטעט זענען # דיפיינד צו זייַן פיר. מיר ווע גאַט אונדזער פיר-עלעמענט טשאַר * מענגע. מיר ווע גאַט סטרינגס [0], סטרינגס [1], סטרינגס [2], סטרינגס [3], און דעמאָלט אַז לעצטע פּלאַץ פֿאַר אונדזער גרייס ינטעגער. טוט דעם מאַכן זינען? אָוקיי. דאס איז וואָס כאַפּאַנז אויב וואָס איך טאָן אויף די רעכט, וואָס וועט זייַן מיין קאָד, איז צו נאָר דערקלערן אַ סטרוקט, אַ סטאַקט סטרוקט גערופן ס. דאס איז וואָס מיר באַקומען. עס לייז אַראָפּ דעם שפּור אין זכּרון. דער ערשטער קשיא דאָ איז וואָס זענען די אינהאַלט פון דעם אָנלייגן סטרוקט? רעכט איצט זיי ניטאָ גאָרנישט, אָבער זיי ניטאָ ניט טאָוטאַלי גאָרנישט. זיי ניטאָ דעם מין פון מיסט. מיר האָבן קיין געדאַנק וואָס ס אין זיי. ווען מיר דערקלערן אָנלייגן ס, מיר רע נאָר פארווארפן אַז אַראָפּ אויף שפּיץ פון זכּרון. עס ס מין פון ווי דיקלערינג ינט איך און נישט יניטיאַליזינג עס. איר טאָן ניט וויסן וואָס ס אין דאָרט. איר קענען לייענען וואָס ס אין דאָרט, אָבער עס זאל ניט זייַן סופּער נוציק. איין זאַך איר ווילן צו שטענדיק געדענקען צו טאָן איז ינישאַלייז וועלכער דאַרף צו זייַן ינישאַלייזד. אין דעם פאַל, מיר רע געגאנגען צו ינישאַלייז די גרייס צו זייַן נול, ווייַל אַז ס 'געגאנגען צו דרייַ אויס צו זייַן זייער וויכטיק פֿאַר אונדז. מיר קען גיין פאָרויס און ינישאַלייז אַלע פון ​​די פּוינטערז, אַלע דער טשאַר * ס, צו זייַן עטלעכע פאַרשטיייק ווערט, מיסטאָמע נאַל. אבער עס ס נישט טאָוטאַלי נייטיק אַז מיר טאָן אַז. איצט, די צוויי הויפּט אַפּעריישאַנז אויף סטאַקס זענען? אַבי ווער געדענקען פון לעקציע וואָס איר טאָן מיט סטאַקס? יא? [סטעלאַ] פּושינג און פּאַפּינג? >> עקסאַקטלי. פּושינג און פּאַפּינג זענען די צוויי הויפּט אַפּעריישאַנז אויף סטאַקס. און וואָס טוט שטויס טאָן? >> עס לייגט עפּעס אַנטו די שפּיץ פון דעם אָנלייגן, און דעמאָלט פּאַפּינג נעמט עס אַוועק. [האַרדיסאָן] עקסאַקטלי. אַזוי פּושינג פּושיז עפּעס אויף שפּיץ פון דעם אָנלייגן. עס ס ווי די דיינינג שטעקן פּאַטינג אַ דיינינג טאַץ אַראָפּ אויף די קאָונטער. און פּאַפּינג איז גענומען אַ דיינינג טאַץ אַוועק פון דעם אָנלייגן. זאל ס גיין דורך אַ פּאָר פון ביישפילן פון וואָס כאַפּאַנז ווען מיר שטופּן דאס אין די סטאַק. אויב מיר זענען געווען צו שטופּן די שטריקל 'העלא' אַנטו אונדזער אָנלייגן, דאָס איז וואָס אונדזער דיאַגראַמע וואָלט קוק ווי איצט. זען וואָס כאַפּאַנז? מיר פּושט אין דער ערשטער עלעמענט פון אונדזער סטרינגס מענגע און מיר אַפּט אונדזער גרייס ציילן צו זייַן 1. אַזוי אויב מיר קוקן אין די חילוק צווישן די צוויי סליידז, דאָ איז 0, דאָ ס איידער די שטופּן. דאָ איז נאָך די שטופּן. איידער די פּוש, נאָך די שטופּן. און איצט מיר האָבן איין עלעמענט אין אונדזער אָנלייגן. עס ס די שטריקל "העלא", און אַז ס עס. אַלץ אַנדערש אין די מענגע, אין אונדזער סטרינגס מענגע, איז נאָך מיסט. מיר האָבן נישט ינישאַלייזד עס. זאל ס זאָגן מיר שטופּן אנדערן שטריקל אַנטו אונדזער אָנלייגן. מיר רע געגאנגען צו שטופּן "וועלט" אויף דעם צייַט. אַזוי איר קענען זען "וועלט" דאָ גייט אויף שפּיץ פון "העלא", און די גרייס ציילן גייט אַרויף צו 2. איצט מיר קענען שטופּן "קס50", און אַז וועט גיין אויף שפּיץ ווידער. אויב מיר גיין צוריק, איר קענען זען ווי מיר רע פּושינג זאכן אויף שפּיץ פון דעם אָנלייגן. און איצט מיר באַקומען צו קנאַל. ווען מיר פּאַפּט עפּעס אַוועק פון דעם אָנלייגן, וואָס געטראפן? אַבי ווער זען די חילוק? עס ס שיין סאַטאַל. [תּלמיד] די גרייס. >> יאָ, די גרייס געביטן. וואָס אַנדערש וואָלט איר האָט דערוואַרט צו טוישן? [תּלמיד] די סטרינגס, אויך. >> רעכט. די סטרינגס אויך. עס טורנס אויס אַז ווען איר ניטאָ טאן אים דעם וועג, ווייַל מיר ניטאָ ניט קאַפּיינג די עלעמענטן אין אונדזער אָנלייגן, מיר פאקטיש טאָן ניט האָבן צו טאָן עפּעס; מיר קענען נאָר נוצן די גרייס צו האַלטן שפּור פון די נומער פון זאכן אין אונדזער מענגע אַזוי אַז ווען מיר קנאַל ווידער, ווידער מיר נאָר דעקרעמענט אונדזער גרייס אַראָפּ צו 1. עס ס ניט דאַרפֿן צו פאקטיש גיין אין און אָווועררייט עפּעס. מין פון פאַנגקי. עס טורנס אויס אַז מיר טיפּיקלי נאָר לאָזן דאס אַליין ווייַל עס ס ווייניקער אַרבעט פֿאַר אונדז צו טאָן. אויב מיר טאָן ניט האָבן צו גיין צוריק און אָווועררייט עפּעס, דאַן וואָס טוט עס? אַזוי ווען מיר קנאַל צוויי מאָל אַוועק פון דעם אָנלייגן, אַלע וואָס טוט איז דעקרעמענט די גרייס אַ פּאָר פון מאל. און ווידער, דאָס איז בלויז ווייַל מיר ניטאָ ניט קאַפּיינג זאכן אין אונדזער אָנלייגן. יא? גיין פאָרויס. [תּלמיד, אַנינטעלאַדזשאַבאַל] >> און דעמאָלט וואָס כאַפּאַנז ווען איר שטופּן עפּעס ווידער? ווען איר שטופּן עפּעס ווידער, ווו טוט עס גיין? ווו טוט עס גיין, באַסיל? >> ינטו סטרינגס [1]? >> רעכט. וואָס טוט נישט עס גיין אין סטרינגס [3]? [באַסיל] ווייַל עס Forgot אַז עס איז געווען עפּעס אין סטרינגס [1] און [2]? [האַרדיסאָן] עקסאַקטלי. אונדזער אָנלייגן, יסענשאַלי, "Forgot" אַז עס איז געווען האלטן אויף צו עפּעס אין סטרינגס [1] אָדער סטרינגס [2], אַזוי ווען מיר שטופּן "וואָאָט", עס נאָר לייגט אַז אין די עלעמענט אין סטרינגס [1]. זענען דאָרט קיין פראגעס אויף ווי דאָס אַרבעט, אין אַ גרונט מדרגה? [סאַם] אזוי דאָס איז נישט דינאַמיש אין קיין וועג, אין טערמינען פון סומע אָדער אין טערמינען פון די גרייס פון דעם אָנלייגן? [האַרדיסאָן] עקסאַקטלי. דאס איז - די פונט איז געווען אַז דאָס איז ניט אַ דינאַמיקאַללי גראָוונינג אָנלייגן. דאס איז אַ אָנלייגן וואָס קענען האַלטן, בייַ רובֿ, פיר טשאַר * ס, בייַ רובֿ פיר זאכן. אויב מיר זענען געווען צו פּרובירן און שטופּן 1/5 זאַך, וואָס טאָן איר טראַכטן זאָל פּאַסירן? [סטודענטן, אַנינטעלאַדזשאַבאַל] [האַרדיסאָן] עקסאַקטלי. עס זענען אַ נומער פון זאכן וואָס קען פּאַסירן. עס קען עפשער סעג שולד, דיפּענדינג אויף וואָס מיר זענען - ווי פּונקט מיר זענען ימפּלאַמענינג די צוריק-סוף. עס קען אָווועררייט. עס קען האָבן אַז באַפער לויפן אַז מיר גערעדט וועגן אין קלאַס. וואָס וואָלט זייַן די מערסט קלאָר ווי דער טאָג זאַך וואָס זאל זייַן אָוווערריטאַן אויב מיר געפרוווט צו שטופּן אַן עקסטרע זאַך אויף אונדזער אָנלייגן? אַזוי איר דערמאנט אַ באַפער לויפן. וואָס זאל זייַן די זאַך וואָס וואָלט באַקומען געשריבן איבער אָדער סטאַמפּט אויף אויב מיר אָוווערפלאָוד אַקסאַדענאַלי דורך טריינג צו שטופּן אַן עקסטרע זאַך? [דניאל, אַנינטעלאַדזשאַבאַל] >> מעגלעך. אבער טכילעס, וואָס זאל פּאַסירן? וואָס אויב מיר געפרוווט צו שטופּן 1/4 זאַך? עס זאל אָווועררייט די גרייס, בייַ מינדסטער מיט דעם זכּרון דיאַגראַמע אַז מיר ווע גאַט. אין די פּראָבלעם שטעלן באַשרייַבונג, וואָס איז וואָס מיר רע געגאנגען צו זייַן ימפּלאַמענינג הייַנט, וואָס מיר טאָן ווילן צו טאָן איז נאָר צוריקקומען פאַלש. אונדזער שטופּן אופֿן איז געגאנגען צו צוריקקומען אַ בוליאַן ווערט, און אַז בוליאַן ווערט וועט זייַן אמת אויב די פּוש סאַקסידז און פאַלש אויב מיר קענען נישט שטופּן עפּעס מער ווייַל די אָנלייגן איז פול. זאל ס גיין דורך אַ קליין ביסל פון וואָס קאָד רעכט איצט. דאָ ס אונדזער שטופּן פונקציאָנירן. אונדזער שטופּן פֿונקציע פֿאַר אַ אָנלייגן איז געגאנגען צו נעמען אין די שטריקל צו שטעלן אויף די אָנלייגן. עס ס געגאנגען צו צוריקקומען אמת אויב די שטריקל איז הצלחה פּושט אויף דעם אָנלייגן און פאַלש אַנדערש. קיין פֿירלייגן אויף וואָס זאל זייַן אַ גוט ערשטער זאַך צו טאָן דאָ? [סאַם] אויב גרייס יקוואַלז קאַפּאַציטעט דעמאָלט צוריקקומען פאַלש? [האַרדיסאָן] בינגאָ. פייַן אַרבעט. אויב די נומער איז די קאַפּאַציטעט, מיר רע געגאנגען צו צוריקקומען פאַלש. מיר קענען ניט שטעלן עפּעס מער אין אונדזער אָנלייגן. אַנדערש, מיר וועלן צו שטעלן עפּעס אויף די שפּיץ פון די אָנלייגן. וואָס איז "די שפּיץ פון די אָנלייגן," טכילעס? [דניאל] גרייס 0? >> גרייס 0. וואָס איז דער שפּיץ פון דעם אָנלייגן נאָך דאָרט ס איין זאַך אין די אָנלייגן? מיססי, טאָן איר וויסן? [מיססי] איינער. >> גרייס איז איינער, פּונקט. איר האַלטן אַדינג צו די גרייס, און יעדער צייַט איר ניטאָ פּאַטינג אין די נייַ עלעמענט אין דער אינדעקס גרייס אין די מענגע. מיר קענען טאָן עס מיט וואָס מין פון איין-לייַנער, אויב וואָס מאכט זינען. אַזוי מיר ווע גאַט אונדזער סטרינגס מענגע, מיר רע געגאנגען צו צוטריט עס בייַ די גרייס אינדעקס, און מיר רע נאָר געגאנגען צו קראָם אונדזער טשאַר * אין דאָרט. נאָטיץ ווי דאָרט ס קיין שטריקל קאַפּיינג געגאנגען אויף אין דאָ, קיין דינאַמיש אַלאַקיישאַן פון זכּרון? און דעמאָלט מיססי געבראכט אַרויף וואָס מיר איצט האָבן צו טאָן, ווייַל מיר ווע סטאָרד די שטריקל אין די צונעמען אָרט אין די מענגע, און זי האט געזאגט אַז מיר האבן צו ינקראַמאַנט די גרייס דורך איינער אַזוי אַז מיר רע גרייט פֿאַר די ווייַטער שטופּן. אַזוי מיר קענען טאָן אַז מיט ס.סיזע + +. אין דעם פונט, מיר ווע פּושט אין אונדזער מענגע. וואָס ס די לעצטע זאַך מיר האָבן צו טאָן? [תּלמיד] צוריק אמת. >> צוריק אמת. אַזוי עס ס שיין פּשוט, אַ שיין פּשוט קאָד. ניט אויך פיל. אַמאָל איר ווע אלנגעוויקלט דיין קאָפּ אַרום ווי די אָנלייגן מעשים, דאָס איז שיין פּשוט צו מאַכשער. איצט, דער ווייַטער טייל פון דעם איז פּאַפּינג אַ שטריקל אַוועק פון דעם אָנלייגן. איך בין געגאנגען צו געבן איר גייז עטלעכע מאָל צו אַרבעטן אויף דעם אַ קליין ביסל. עס ס כּמעט יסענשאַלי די פאַרקערט פון וואָס מיר ווע געטאן דאָ אין שטופּן. וואָס איך ווע געטאן איז פאקטיש - אָאָפּס. איך ווע בוטיד אַרויף אַ אַפּפּליאַנסע איבער דאָ, און אין די אַפּפּליאַנסע, איך ווע פּולד אַרויף די פּראָבלעם שטעלן 5 באַשרייַבונג. אויב מיר פארגרעסער אין דאָ, מיר קענען זען איך בין בייַ cdn.cs50.net/2012/fall/psets/pset5.pdf. האָט איר גייז דאַונלאָודיד דעם קאָד אַז ס ליגן דאָ, סעקטיאָנ6.זיפּ? אַלע רעכט. אויב איר האָט ניט געטאן וואָס, טאָן אַז רעכט איצט, טאַקע געשווינד. איך וועט טאָן עס אין מיין וואָקזאַל פֿענצטער. איך פאקטיש האט עס אַרויף דאָ. יאָ. יא, סאַם? >> איך האב אַ קשיא וועגן וואָס האט איר זאָגן ס.סטרינג 'ס בראַקאַץ פון גרייס = Str? וואָס איז Str? איז אַז דיפיינד ערגעץ פריער, אָדער - אָה, אין די טשאַר * Str? [האַרדיסאָן] יא, פּונקט. וואָס איז דער אַרגומענט. >> אָה, אָוקיי. אנטשולדיגט. [האַרדיסאָן] מיר רע ספּעסאַפייינג די שטריקל צו שטופּן ין די אנדערע קשיא וואָס זאל קומען אַרויף אַז מיר האבן ניט טאַקע רעדן וועגן דאָ איז געווען מיר גענומען פֿאַר געגעבן אַז מיר האבן דעם בייַטעוודיק גערופן s וואָס איז געווען אין פאַרנעם און צוטריטלעך צו אונדז. מיר גענומען פֿאַר געגעבן אַז ס איז געווען דעם אָנלייגן סטרוקט. אַזוי קוקן צוריק אין דעם שטופּן קאָד, איר קענען זען אַז מיר רע טאן שטאָפּן מיט דעם שטריקל וואָס גאַט דורכגעגאנגען אין אָבער דעמאָלט אַלע פון ​​אַ פּלוצעמדיק, מיר רע אַקסעסינג ס.סיזע, ווי, ווו האט s קומען פון? אין די קאָד וואָס מיר רע געגאנגען צו קוקן אין אין די אָפּטיילונג אַרטשיווע און דעריבער די שטאָפּן אַז איר וועט זייַן טאן אין דיין פּראָבלעם שטעלט, מיר ווע געמאכט אונדזער אָנלייגן סטרוקט אַ גלאבאלע בייַטעוודיק אַזוי אַז מיר קענען האָבן צוטריט צו עס אין אַלע אונדזער פאַרשידענע פאַנגקשאַנז אָן בעת ​​צו מאַניואַלי פאָרן עס אַרום און פאָרן עס דורך דערמאָנען, טאָן אַלע וואָס מין פון שטאָפּן צו עס. מיר רע נאָר טשיטינג אַ קליין ביסל, אויב איר וועט, צו מאַכן זאכן ניסער. און אַז ס 'עפּעס מיר רע טאן דאָ ווייַל עס ס פֿאַר שפּאַס, עס ס גרינגער. אָפֿט, איר וועט זען מען טאָן דעם אויב זיי האָבן איין גרויס דאַטן סטרוקטור אַז ס זייַענדיק אַפּערייטאַד אויף ין זייער פּראָגראַם. זאל ס גיין צוריק איבער צו די אַפּפּליאַנסע. האט יעדער יינער הצלחה באַקומען די סעקטיאָנ6.זיפּ? יעדער יינער אַנזיפּ עס ניצן אַנזיפּ סעקטיאָנ6.זיפּ? אויב איר גיין אין די אָפּטיילונג 6 Directory - אַאַה, אַלע איבער די אָרט - און איר רשימה וואָס ס אין דאָ, איר זען אַז איר ווע גאַט דרייַ פאַרשידענע. C טעקעס. איר ווע גאַט אַ ריי, אַן סלל, וואָס איז יינציקווייַז-לינגקט רשימה, און אַ אָנלייגן. אויב איר עפענען אַרויף סטאַקק.ק, איר קענען זען אַז מיר ווע גאַט דעם סטרוקט דיפיינד פֿאַר אונדז, די פּינטלעך סטרוקט אַז מיר נאָר גערעדט וועגן אין די סליידז. מיר ווע גאַט אונדזער גלאבאלע בייַטעוודיק פֿאַר דעם אָנלייגן, מיר ווע גאַט אונדזער שטופּן פונקציאָנירן, און דעמאָלט מיר ווע גאַט אונדזער קנאַל פונקציאָנירן. איך וועט שטעלן די קאָד פֿאַר שטופּן צוריק אַרויף אויף די רוק דאָ, אָבער וואָס איך 'ד ווי איר גייז צו טאָן איז, צו דער בעסטער פון דיין פיייקייַט, גיין און מאַכשער דער קנאַל פונקציאָנירן. אַמאָל איר ווע ימפּלאַמענטאַד עס, איר קענען צונויפנעמען דעם מיט מאַכן אָנלייגן, און דאַן לויפן די ריזאַלטאַנט אָנלייגן עקסעקוטאַבלע, און וואָס וועט לויפן אַלע פון ​​דעם פּרובירן קאָד אַראָפּ דאָ אַז ס אין הויפּט. און הויפּט נעמט קעיר פון פאקטיש מאכן די שטופּן און קנאַל רופט און מאכן זיכער אַז אַלץ גייט דורך אַלע רעכט. עס אויך יניטיאַליזעס דעם אָנלייגן גרייס רעכט דאָ אַזוי איר טאָן ניט האָבן צו זאָרג וועגן יניטיאַליזינג אַז. איר קענען יבערנעמען אַז עס ס 'שוין רעכט ינישאַלייזד דורך די צייַט וואָס איר צוטריט עס אין דער קנאַל פונקציאָנירן. טוט וואָס מאַכן זינען? אַזוי דאָ מיר גיין. עס ס די פּוש קאָד. איך וועט געבן איר גייז 5 אָדער 10 מינוט. און אויב איר האָט קיין שאלות אין די ינטראַם בשעת איר ניטאָ קאָודינג, ביטע פרעגן זיי אויס הויך. אַזוי אויב איר באַקומען צו אַ סטיקינג פונט, נאָר פרעגן. לאָזן מיר וויסן, לאָזן יעדער יינער אַנדערש וויסן. אַרבעט מיט דיין חבר אויך. [דניאל] מיר רע נאָר ימפּלאַמענינג קנאַל רעכט איצט? >> פונקט קנאַל. כאָטש איר קענען נאָכמאַכן די ימפּלאַמענטיישאַן פון שטופּן אויב איר 'ד ווי אַזוי אַז די טעסטינג וועט אַרבעטן. ווייַל עס ס 'שווער צו פּרובירן דאס געטינג אין - אָדער, עס ס 'שווער צו פּרובירן פּאַפּינג דאס אויס פון אַ אָנלייגן אויב עס איז נישט עפּעס אין דעם אָנלייגן צו אָנהייבן מיט. וואָס איז קנאַל געמיינט צו זייַן אומגעקערט? דער עלעמענט פון דער שפּיץ פון דעם אָנלייגן. עס ס געמיינט צו באַקומען די עלעמענט אַוועק פון די שפּיץ פון די אָנלייגן און דעמאָלט דעקרעמענט די גרייס פון דעם אָנלייגן, און איצט איר ווע פאַרפאַלן די עלעמענט אויף די שפּיץ. און דאַן איר צוריקקומען די עלעמענט אויף די שפּיץ. [תּלמיד, אַנינטעלאַדזשאַבאַל] [האַרדיסאָן] אזוי וואָס כאַפּאַנז אויב איר טאָן וואָס? [תּלמיד, אַנינטעלאַדזשאַבאַל] וואָס ענדס אַרויף געשעעניש איז איר ניטאָ מיסטאָמע אַקסעסינג אָדער אַן עלעמענט וואָס האט ניט געווען ינישאַלייזד נאָך, אַזוי דיין כעזשבן פון ווו די לעצטע עלעמענט איז איז אַוועק. אַזוי דאָ, אויב איר באַמערקן, אין שטופּן, מיר רע אַקסעסינג סטרינגס בייַ די ס.סיזע עלעמענט ווייַל עס ס אַ נייַ אינדעקס. עס ס די נייַ שפּיץ פון דעם אָנלייגן. וועראַז אין קנאַל, ס.סיזע איז געגאנגען צו זייַן דער ווייַטער פּלאַץ, די פּלאַץ אַז ס אויף שפּיץ פון אַלע די יסודות אין דיין אָנלייגן. אַזוי די שפּיץ-רובֿ עלעמענט איז נישט בייַ ס.סיזע, אָבער אלא, עס ס ונטער עס. די אנדערע זאַך צו טאָן ווען איר - אין קנאַל, איז איר טאָן האָבן צו דעקרעמענט די גרייס. אויב איר געדענקען צוריק צו אונדזער ביסל דיאַגראַמע רעכט דאָ, טאַקע, דער נאָר זאַך וואָס מיר געזען געשעעניש ווען מיר גערופן קנאַל איז געווען אַז דעם גרייס דראַפּט, ערשטער צו 2, דעריבער צו 1. דערנאך ווען מיר פּושט אַ נייַ עלעמענט אויף, עס וואָלט גיין אויף בייַ די געהעריק אָרט. [באַסיל] אויב די ס.סיזע איז 2, דעמאָלט וואָלט נישט עס גיין צו עלעמענט 2, און דאַן איר 'ד ווילן צו קנאַל אַז עלעמענט אַוועק? אַזוי אויב מיר געגאנגען צו - >> אזוי לאָזן ס קוק אין דעם ווידער. אויב דאָס איז אונדזער אָנלייגן בייַ דעם פונט און מיר רופן קנאַל, אין וואָס אינדעקס איז דער שפּיץ-רובֿ עלעמענט? [באַסיל] בייַ 2, אָבער עס ס געגאנגען צו קנאַל 3. >> רעכט. אַזוי אַז ס ווו אונדזער גרייס איז 3, אָבער מיר ווילן צו קנאַל די עלעמענט אין אינדעקס 2. עס ס אַז טיפּיש מין פון אַוועק דורך איין אַז איר האָבן מיט דער נול-ינדעקסינג פון ערייז. אַזוי איר טאָן ווילן צו קנאַל די דריט עלעמענט, אָבער די דריט עלעמענט איז נישט בייַ אינדעקס 3. און די סיבה מיר טאָן ניט האָבן צו טאָן אַז מינוס 1 ווען מיר רע פּושינג איז ווייַל רעכט איצט, איר באַמערקן אַז די שפּיץ-רובֿ עלעמענט, אויב מיר זענען געווען צו שטופּן עפּעס אַנדערש אַנטו דעם אָנלייגן בייַ דעם פונט, מיר וואָלט ווילן צו שטופּן עס בייַ אינדעקס 3. און עס פּונקט אַזוי כאַפּאַנז אַז די גרייס און די ינדיסעס שורה אַרויף ווען איר ניטאָ פּושינג. ווער ס גאַט אַ ארבעטן אָנלייגן ימפּלאַמענטיישאַן? איר ווע גאַט אַ ארבעטן אָנלייגן איינער. צי איר האָבן קנאַל ארבעטן נאָך? [דניאל] יא. איך טראַכטן אַזוי. >> פּראָגראַם ס פליסנדיק און ניט סעג פאָלטינג, עס ס דרוקן אויס? טוט עס דרוקן אויס "הצלחה" ווען איר לויפן עס? יאָ. מאַכן אָנלייגן, לויפן אים, אויב עס פּרינץ אויס "הצלחה" און טוט נישט גיין בום, דעריבער אַלע ס 'גוט. אַלע רעכט. זאל ס גיין איבער צו די אַפּפּליאַנסע טאַקע געשווינד, און מיר וועט גיין דורך דעם. אויב מיר קוקן אין וואָס ס 'געגאנגען אויף דאָ מיט קנאַל, דניאל, וואָס איז געווען דער ערשטער זאַך וואָס איר האט? [דניאל] אויב ס.סיזע איז גרעסער ווי 0. [האַרדיסאָן] אָוקיי. און וואָס האט איר טאָן וואָס? [דניאל] צו מאַכן זיכער אַז עס איז געווען עפּעס ין דעם אָנלייגן. [האַרדיסאָן] רעכט. איר ווילן צו פּרובירן צו מאַכן זיכער אַז ס.סיזע איז גרעסער ווי 0; אַנדערש, וואָס טאָן איר ווילן צו האָבן פּאַסירן? [דניאל] צוריק נאַל? >> צוריק נאַל, פּונקט. אַזוי אויב ס.סיזע איז גרעסער ווי 0. דעמאָלט וואָס זענען מיר געגאנגען צו טאָן? וואָס טאָן מיר טאָן אויב די אָנלייגן איז ניט ליידיק? [סטעלאַ] איר דעקרעמענט די נומער? >> איר דעקרעמענט די גרייס, אָוקיי. אַזוי ווי האט איר טאָן וואָס? >> ס.סיזע--. [האַרדיסאָן] גרויס. און דעמאָלט וואָס האט איר טאָן? [סטעלאַ] און דעמאָלט איך געזאגט צוריקקומען ס.סטרינג [ס.סיזע]. [האַרדיסאָן] גרויס. אַנדערש איר צוריקקומען נאַל. יא, סאַם? [סאַם] פארוואס טוט עס נישט דאַרפֿן צו זייַן ס.סיזע + 1? [האַרדיסאָן] פּלאַס 1? >> יאָ. >> גאָט עס. [סאַם] איך געדאַנק ווייַל איר ניטאָ גענומען 1 אויס, דעמאָלט איר ניטאָ געגאנגען צו זייַן אומגעקערט נישט די איין אַז זיי געבעטן פֿאַר. [האַרדיסאָן] און דאָס איז פּונקט וואָס מיר האבן גערעדט וועגן מיט דעם גאַנץ אַרויסגעבן פון 0 ינדיסעס. אַזוי אויב מיר פארגרעסער צוריק איבער דאָ. אויב מיר קוקן אין דעם באָכער רעכט דאָ, איר קענען זען אַז ווען מיר קנאַל, מיר רע פּאַפּינג די עלעמענט אין אינדעקס 2. אַזוי מיר פאַרמינערן אונדזער גרייס ערשטער, דעמאָלט אונדזער גרייס שוועבעלעך אונדזער אינדעקס. אויב מיר טאָן ניט דעקרעמענט די גרייס ערשטער, דעמאָלט מיר האָבן צו טאָן גרייס -1 און דעמאָלט דעקרעמענט. גרויס. אַלע גוט? קיין שאלות אויף דעם? עס זענען אַ נומער פון פאַרשידענע וועגן צו שרייַבן דעם ווי געזונט. אין פאַקט, מיר קענען טאָן עפּעס אַפֿילו - מיר קענען טאָן אַ איין-לייַנער. מיר קענען טאָן אַ איין-שורה צוריקקומען. אַזוי מיר קענען פאקטיש דעקרעמענט איידער מיר צוריקקומען דורך טאן אַז. אַזוי פּאַטינג די - איידער די ס.סיזע. וואָס מאכט די שורה טאַקע געדיכט. ווו די חילוק צווישן די - ס. גרייס און ס.סיזע-- איז אַז דעם פּאָסטפיקס - זיי רופן עס פּאָסטפיקס ווייַל די - קומט נאָך די ס.סיזע-- מיטל וואָס ס.סיזע איז עוואַלואַטעד פֿאַר די צוועקן פון געפונען די אינדעקס ווי עס איז דערווייַל ווען דעם שורה איז עקסאַקיוטאַד, און דאַן דעם - כאַפּאַנז נאָך די שורה געץ עקסאַקיוטאַד. נאָך די עלעמענט אין אינדעקס ס.סיזע איז געליינט. און אַז ס 'נישט וואָס מיר ווילן, ווייַל מיר ווילן די דעקרעמענט צו פּאַסירן ערשטער. אָטהעוויסע, מיר רע געגאנגען צו זייַן אַקסעסינג די מענגע, יפעקטיוולי, אויס פון גווול. מיר רע געגאנגען צו זייַן אַקסעסינג די עלעמענט אויבן די איין אַז מיר פאקטיש ווילן צו צוטריט. יאָ, סאַם? >> איז עס פאַסטער אָדער נוצן ווייניקער באַראַן צו מאַכן אין איין שורה אָדער נישט? [האַרדיסאָן] האָנעסטלי, עס טאַקע דעפּענדס. [סאַם, אַנינטעלאַדזשאַבאַל] >> יאָ, עס דעפּענדס. איר קענען טאָן קאַמפּיילער טריקס צו באַקומען די קאַמפּיילער צו דערקענען אַז, יוזשאַוואַלי, איך ימאַדזשאַן. אַזוי מיר ווע דערמאנט אַ קליין ביסל וועגן דעם קאַמפּיילער אַפּטאַמאַזיישאַן שטאָפּן אַז איר קענען טאָן אין קאַמפּיילינג, און אַז ס די מין פון זאַך אַז אַ קאַמפּיילער זאל זייַן ביכולת צו רעכענען אויס, ווי טאַקע, היי, אפֿשר איך קענען טאָן דעם אַלע אין איין אָפּעראַציע, ווי קעגן צו לאָודינג די גרייס בייַטעוודיק אין פון באַראַן, דעקרעמענטינג עס, סטאָרינג עס צוריק אויס, און דעמאָלט לאָודינג עס צוריק אין ווידער צו פּראָצעס די מנוחה פון דעם אָפּעראַציע. אבער טיפּיקלי, ניט, דאָס איז נישט דער סאָרט פון זאַך אַז ס 'געגאנגען צו מאַכן דיין פּראָגראַם באטייטיק פאַסטער. קיין מער שאלות אויף סטאַקס? אַזוי פּושינג און פּאַפּינג. אויב איר גייז ווילן צו פּרובירן אויס די העקער Edition, וואָס מיר ווע געטאן אין די העקער Edition איז פאקטיש ניטאָ און געמאכט דעם אָנלייגן וואַקסן דינאַמיקאַללי. די אַרויסרופן עס איז בפֿרט אַרויף דאָ אין די פּוש פונקציאָנירן, צו רעכענען אויס ווי צו מאַכן אַז מענגע וואַקסן ווי איר האַלטן פּושינג מער און מער עלעמענטן אויף צו דעם אָנלייגן. עס ס פאקטיש נישט אויך פיל נאָך קאָד. נאָר אַ רופן צו - איר האָבן צו געדענקען צו באַקומען די רופט צו מאַללאָק אין דאָרט רעכט, און דעמאָלט רעכענען אויס ווען איר ניטאָ געגאנגען צו רופן רעאַללאָק. אַז ס אַ שפּאַס אַרויסרופן אויב איר ניטאָ אינטערעסירט. אבער פֿאַר די צייַט זייַענדיק, לאָזן ס 'מאַך אויף, און לאָזן ס רעדן וועגן קיוז. מעגילע דורך דאָ. די ריי איז אַ נאָענט סיבלינג פון דעם אָנלייגן. אַזוי אין דעם אָנלייגן, זאכן וואָס זענען שטעלן אין לעצטע זענען די ערשטער דאס צו דעמאָלט זייַן ריטריווד. מיר ווע גאַט דעם לעצטע אין, ערשטער אויס, אָדער ליפאָ, אָרדערינג. וועראַז אין דער ריי, ווי איר 'ד דערוואַרטן פון ווען איר ניטאָ שטייענדיק אין שורה, דער ערשטער מענטש צו באַקומען אין שורה, די ערשטע זאַך צו באַקומען אין די ריי, איז דער ערשטער זאַך אַז געץ ריטריווד פון די ריי. קיוז זענען אויך אָפֿט געניצט ווען מיר רע דילינג מיט גראַפס, ווי מיר גערעדט וועגן בעקיצער מיט סטאַקס, און קיוז זענען אויך האַנטיק פֿאַר אַ בינטל פון אנדערע זאכן. איין זאַך וואָס קומט אַרויף אָפֿט איז טריינג צו טייַנען, פֿאַר בייַשפּיל, אַ אויסגעשטעלט רשימה פון עלעמענטן. און איר קענען טאָן דאָס מיט אַ מענגע. איר קענען טייַנען אַ אויסגעשטעלט רשימה פון זאכן אין אַ מענגע, אָבער ווו אַז געץ טריקי איז דעמאָלט איר שטענדיק האָבן צו געפֿינען די צונעמען אָרט צו אַרייַנלייגן די ווייַטער זאַך. אַזוי אויב איר האָבן אַ מענגע פון ​​נומערן, 1 דורך 10, און דאַן איר ווילן צו יקספּאַנד אַז צו אַלע די נומערן 1 דורך 100, און איר ניטאָ געטינג די נומערן אין טראַפ - סדר און טריינג צו האַלטן אַלץ אויסגעשטעלט ווי איר גיין דורך, איר סוף אַרויף ווייל צו טאָן אַ פּלאַץ פון שיפטינג. מיט זיכער טייפּס פון קיוז און זיכער טייפּס פון אַנדערלייינג דאַטן סטראַקטשערז, איר קענען פאקטיש האַלטן עס פערלי פּשוט. איר טאָן ניט האָבן צו לייגן עפּעס און דעריבער רישאַפאַל די גאנצע זאַך יעדער צייַט. אדער טאָן איר האָבן צו טאָן אַ פּלאַץ פון שיפטינג פון די ינערלעך עלעמענטן אַרום. ווען מיר קוקן אין אַ ריי, איר זען אַז - אויך אין קוועוע.ק אין דער אָפּטיילונג קאָד - די סטרוקט אַז מיר ווע געגעבן איר איז טאַקע ענלעך צו די סטרוקט אַז מיר געגעבן איר פֿאַר אַ אָנלייגן. עס ס איין אויסנאַם צו דעם, און אַז איין אויסנאַם איז אַז מיר האָבן דעם נאָך ינטעגער גערופן די קאָפּ, און דעם קאָפּ דאָ איז פֿאַר בעכעסקעם שפּור פון די קאָפּ פון דער ריי, אָדער דער ערשטער עלעמענט אין די ריי. מיט אַ אָנלייגן, מיר זענען ביכולת צו האַלטן שפּור פון די עלעמענט וואָס מיר האבן וועגן צו צוריקקריגן, אָדער די שפּיץ פון די אָנלייגן, ניצן נאָר די גרייס, וועראַז מיט אַ ריי, מיר רע ווייל צו האַנדלען מיט פאַרקערט ענדס. מיר רע טריינג צו שטיפט דאס אויף אין די סוף, אָבער דעמאָלט צוריקקומען זאכן פון די פראָנט. אַזוי יפעקטיוולי, מיט די קאָפּ, מיר האָבן דער אינדעקס פון דער אָנהייב פון דער ריי, און די גרייס גיט אונדז דער אינדעקס פון די סוף פון דער ריי אַזוי אַז מיר קענען צוריקקריגן זאכן פון די קאָפּ און לייגן דאס אויף צו די עק. וועראַז מיט דעם אָנלייגן, מיר האבן נאָר אלץ דילינג מיט די שפּיץ פון די אָנלייגן. מיר קיינמאָל האט צו צוטריט די דנאָ פון דעם אָנלייגן. מיר נאָר צוגעלייגט זאכן צו די שפּיץ און גענומען דאס אַוועק פון די שפּיץ אַזוי מיר האבן נישט דאַרפֿן אַז עקסטרע פעלד ין אונדזער סטרוקט. טוט וואָס בכלל מאַכן זינען? אַלע רעכט. יא, שאַרלאַט? [שאַרלאַט, אַנינטעלאַדזשאַבאַל] [האַרדיסאָן] אַז ס אַ גרויס קשיא, און וואָס איז געווען איינער וואָס געקומען אַרויף אין לעקציע. אפֿשר גיין דורך אַ ביסל ביישפילן וועט אילוסטרירן וואָס מיר טאָן נישט וועלן צו נוצן סטרינגס [0] ווי דער קאָפּ פון די ריי. אַזוי ימאַדזשאַן אַז מיר האָבן אונדזער ריי, מיר רע געגאנגען צו רופן עס ריי. אין די אָנהייב, ווען מיר ווע נאָר ינסטאַנשיייטאַד עס, ווען מיר ווע נאָר דערקלערט עס, מיר האָבן ניט ינישאַלייזד עפּעס. עס ס אַלע מיסט. אַזוי פון קורס מיר ווילן צו מאַכן זיכער אַז מיר ינישאַלייז ביידע די גרייס און דעם קאָפּ פעלדער צו זייַן 0, עפּעס גלייַך. מיר קען אויך גיין פאָרויס און נאַל אויס די עלעמענטן אין אונדזער ריי. און צו מאַכן דעם דיאַגראַמע פּאַסיק, באַמערקן אַז איצט אונדזער ריי קענען נאָר האַלטן דרייַ עלעמענטן; וועראַז אונדזער אָנלייגן קען האַלטן פיר, אונדזער ריי קענען נאָר האַלטן דרייַ. און אַז ס נאָר צו מאַכן דעם דיאַגראַמע פּאַסיק. דער ערשטער זאַך אַז כאַפּאַנז דאָ איז מיר ענקוועוע די שטריקל "הי". און פּונקט ווי מיר האבן מיט דעם אָנלייגן, גאָרנישט טעראַבלי פאַרשידענע דאָ, מיר וואַרפן די שטריקל אויף בייַ סטרינגס [0] און ינקראַמאַנט אונדזער גרייס דורך 1. מיר ענקוועוע "ביי", עס געץ שטעלן אויף. אַזוי דעם קוקט ווי אַ אָנלייגן פֿאַר די רובֿ טייל. מיר אנגעהויבן אַוועק דאָ, נייַ עלעמענט, נייַ עלעמענט, נומער האלט געגאנגען אַרויף. וואָס כאַפּאַנז בייַ דעם פונט ווען מיר ווילן צו דעקוועוע עפּעס? ווען מיר ווילן צו דעקוועוע, וואָס איז דער עלעמענט וואָס מיר ווילן צו דעקוועוע? [באַסיל] סטרינגס [0]. >> זעראָ. פּונקט רעכט, באַסיל. מיר ווילן צו באַקומען באַפרייַען פון דער ערשטער שטריקל, דאָס איין, "הי". אַזוי וואָס איז געווען די אנדערע זאַך וואָס געביטן? נאָטיץ ווען מיר פּאַפּט עפּעס אַוועק פון דעם אָנלייגן, מיר נאָר געביטן דעם נומער, אָבער דאָ, מיר ווע גאַט אַ פּאָר פון זאכן וואָס טוישן. נישט נאָר טוט די גרייס טוישן, אָבער די קאָפּ ענדערונגען. דאס איז געגאנגען צוריק צו שאַרלאַט ס פונט פריער: וואָס טאָן מיר האָבן דעם קאָפּ ווי גוט? טוט עס מאַכן זינען איצט, שאַרלאַט? >> מין פון. [האַרדיסאָן] מין פון? אַזוי וואָס געטראפן ווען מיר דעקוועועד? וואָס האט די קאָפּ טאָן אַז איצט איז טשיקאַווע? [שאַרלאַט] אָה, ווייַל עס פארענדערט - אָוקיי. איך זען. ווייַל די קאָפּ - ווו דער קאָפּ איז פּוינטינג צו ענדערונגען אין טערמינען פון דעם אָרט. עס ס ניט מער שטענדיק דער נול אינדעקס איינער. >> יאָ, פּונקט. וואָס געטראפן איז געווען אויב דעקוועועינג די הויך עלעמענט איז געטאן און מיר האבן ניט האָבן דעם קאָפּ פעלד ווייַל מיר האבן שטענדיק פאַך דעם שטריקל בייַ 0 אינדעקס די קאָפּ פון אונדזער ריי, דעמאָלט מיר 'ד האָבן צו יבעררוק די מנוחה פון די ריי אַראָפּ. מיר 'ד האָבן צו יבעררוק "ביי" פון פון סטרינגס [1] צו די סטרינגס [0]. און סטרינגס [2] אַראָפּ צו סטרינגס [1]. און מיר 'ד האָבן צו טאָן דעם פֿאַר די גאנצע רשימה פון עלעמענטן, די גאנצע מענגע פון ​​עלעמענטן. און ווען מיר רע טאן דאָס מיט אַ מענגע, אַז געץ טאַקע טייַער. אַזוי דאָ, עס ס ניט אַ גרויס האַנדלען. מיר נאָר האָבן דרייַ עלעמענטן אין אונדזער מענגע. אבער אויב מיר האבן אַ ריי פון אַ טויזנט עלעמענטן אָדער אַ מיליאָן עלעמענטן, און דעריבער אַלע פון ​​אַ פּלוצעמדיק, מיר אָנהייבן מאכן אַ בינטל פון דעקוועוע רופט אַלע אין אַ שלייף, דאס זענען טאַקע געגאנגען צו פּאַמעלעך אַראָפּ ווי עס שיפץ אַלץ אַראָפּ קעסיידער. איר וויסן, יבעררוק דורך 1, יבעררוק דורך 1, יבעררוק דורך 1, יבעררוק דורך 1. אַנשטאָט, מיר נוצן דעם קאָפּ, מיר רופן עס אַ "טייַטל" אַפֿילו כאָטש עס ס ניט טאַקע אַ טייַטל אין די שטרענג חוש; עס ס נישט אַ טייַטל טיפּ. עס ס נישט אַ ינט * אָדער אַ טשאַר * אָדער עפּעס ווי אַז. אבער עס ס פּוינטינג אָדער ינדאַקייטינג די קאָפּ פון אונדזער ריי. יאָ? [תּלמיד] ווי טוט דעקוועוע וויסן צו נאָר קנאַל אַוועק וועלכער איז בייַ דער קאָפּ? [האַרדיסאָן] ווי טוט דעקוועוע וויסן ווי צו קנאַל אַוועק וועלכער ס בייַ די קאָפּ? >> רעכט, יאָ. >> וואָס עס ס קוקן אין איז פּונקט וועלכער די קאָפּ פעלד איז שטעלן צו. אַזוי אין דעם ערשטער פאַל, אויב מיר קוקן רעכט דאָ, אונדזער קאָפּ איז 0, אינדעקס 0. >> רעכט. [האַרדיסאָן] אזוי עס נאָר זאגט אָוקיי, געזונט, די עלעמענט אין אינדעקס 0, די שטריקל "הי", איז דער עלעמענט אין די קאָפּ פון אונדזער ריי. אַזוי מיר רע געגאנגען צו דעקוועוע אַז באָכער. און וואָס וועט זייַן די עלעמענט וואָס געץ אומגעקערט צו די קאָלער. יא, סאַד? >> אזוי דעם קאָפּ בייסיקלי שטעלט די - ווו איר ניטאָ געגאנגען צו אינדעקס עס? אַז ס די אָנהייב פון אים? >> יאָ. >> אָוקיי. [האַרדיסאָן] אַז ס 'שיין די נייַ אָנהייב פֿאַר אונדזער מענגע. אַזוי ווען איר דעקוועוע עפּעס, אַלע איר האָבן צו טאָן איז צוטריט די עלעמענט אין אינדעקס ק.העאַד, און וואָס וועט זייַן די עלעמענט אַז איר ווילן צו דעקוועוע. איר אויך האָבן צו דעקרעמענט די גרייס. מיר וועט זען אין אַ ביסל ווו דאס באַקומען אַ ביסל טריקי מיט דעם. מיר דעקוועוע, און איצט, אויב מיר ענקוועוע ווידער, ווו טאָן מיר ענקוועוע? ווו טוט דער ווייַטער עלעמענט גיין אין אונדזער ריי? זאָגן מיר ווילן צו ענקוועוע די שטריקל "קס". אין וואָס אינדעקס וועט עס גיין? [סטודענטן] סטרינגס [2]. >> צוויי. פארוואס 2 און ניט 0? [באַסיל] ווייַל איצט די קאָפּ איז 1, אַזוי אַז ס ווי דער אָנהייב פון דער רשימה? [האַרדיסאָן] רעכט. און וואָס דינאָוץ דער סוף פון דער רשימה? וואָס זענען מיר ניצן צו דינאָוט דער סוף פון אונדזער ריי? דער קאָפּ איז די קאָפּ פון אונדזער ריי, די אָנהייב פון אונדזער ריי. וואָס איז דער סוף פון אונדזער ריי? [סטודענטן] גרייס. >> גרייס, פּונקט. אַזוי אונדזער נייַ יסודות גיין אין בייַ נומער, און די יסודות אַז מיר נעמען אַוועק קומען אַוועק אין קאָפּ. ווען מיר ענקוועוע דער ווייַטער עלעמענט, מיר רע פּאַטינג עס אין בייַ גרייס. [תּלמיד] איידער איר שטעלן אַז אין כאָטש, גרייס איז געווען 1, רעכט? [האַרדיסאָן] רעכט. אַזוי נישט גאַנץ בייַ גרייס. גרייס +, ניט +1, אָבער + קאָפּ. ווייַל מיר שיפטיד אַלץ דורך די קאָפּ סומע. אַזוי דאָ, איצט מיר ווע גאַט אַ ריי פון נומער 1 וואָס הייבט אין אינדעקס 1. דער עק איז אינדעקס 2. יא? [תּלמיד] וואָס כאַפּאַנז ווען איר דעקוועוע סטרינגס [0], און די סטרינגס 'סלאָץ אין זכּרון נאָר באַקומען עמפּטיד, בייסיקלי, אָדער נאָר פארגעסן? [האַרדיסאָן] יאָ. אין דעם זינען, מיר רע נאָר פערגעטינג זיי. אויב מיר זענען סטאָרינג קאפיעס פון זיי פֿאַר - פילע דאַטן סטראַקטשערז וועט אָפֿט קראָם זייער אייגן קאפיעס פון די יסודות אַזוי אַז דער מענטש אָנפירונג די דאַטן סטרוקטור טוט ניט האָבן צו זאָרג וועגן ווו אַלע יענע פּוינטערז זענען געגאנגען. די דאַטן סטרוקטור האלט אויף צו אַלץ, האלט אויף צו אַלע די קאפיעס, צו מאַכן זיכער אַז אַלץ בלייַבט אַפּראָופּרייטלי. אבער, אין דעם פאַל, די דאַטן סטראַקטשערז נאָר, פֿאַר פּאַשטעס, ביסט נישט געמאכט קאפיעס פון עפּעס אַז מיר רע סטאָרינג אין זיי. [תּלמיד] אזוי איז דאָס אַ קעסיידערדיק מענגע פון ​​-? >> יא. אויב מיר קוקן צוריק אין וואָס דער דעפֿיניציע איז געווען פון דעם סטרוקטור, עס איז. עס ס נאָר אַ נאָרמאַל מענגע ווי איר 'ווע געזען, אַ מענגע פון ​​טשאַר * ס. טוט וואָס -? >> יאָ, איך איז נאָר וואַנדערינג אויב איר וועט יווענטשאַוואַלי לויפן אויס פון זכּרון, צו אַ זיכער מאָס, אויב איר האָבן אַלע די ליידיק ספּאַץ אין דיין מענגע? [האַרדיסאָן] יאָ, אַז ס אַ גוט פונט. אויב מיר קוקן אין וואָס ס געטראפן איצט בייַ דעם פונט, מיר ווע אָנגעפילט אַרויף אונדזער ריי, עס קוקט ווי. אבער מיר האָבן ניט טאַקע אָנגעפילט אַרויף אונדזער ריי ווייַל מיר האָבן אַ ריי אַז ס נומער 2, אָבער עס הייבט אין אינדעקס 1, ווייַל אַז ס ווו אונדזער קאָפּ טייַטל איז. ווי איר האבן געזאגט, אַז עלעמענט אין סטרינגס [0], בייַ אינדעקס 0, איז ניט טאַקע דאָרט. עס ס נישט אין אונדזער ריי ענימאָר. מיר נאָר האט ניט אַרן צו גיין אין און אָווועררייט עס ווען מיר דעקוועועד עס. אַזוי אַפֿילו כאָטש עס קוקט ווי מיר ווע לויפן אויס פון זכּרון, מיר טאַקע האָבן נישט. וואָס אָרט איז פאַראַנען פֿאַר אונדז צו נוצן. די צונעמען נאַטור, אויב מיר זענען געווען צו פּרובירן און ערשטער דעקוועוע עפּעס ווי "ביי", וואָס וואָלט קנאַל ביי אַוועק. איצט אונדזער ריי הייבט אין אינדעקס 2 און איז פון נומער 1. און איצט אויב מיר פּרובירן און ענקוועוע עפּעס ווידער, זאָגן 50, 50 זאָל גיין אין דעם אָרט אין אינדעקס 0 ווייַל עס ס נאָך פאַראַנען פֿאַר אונדז. יא, סאַד? [סאַד] טוט וואָס פּאַסירן אויטאָמאַטיש? [האַרדיסאָן] עס טוט נישט פּאַסירן גאַנץ אויטאָמאַטיש. איר האָבן צו טאָן די מאַט צו מאַכן עס אַרבעט, אָבער יסענשאַלי וואָס מיר ווע געטאן איז מיר ווע נאָר אלנגעוויקלט אַרום. [סאַד] און איז עס אָוקיי אויב דאָס האט אַ לאָך אין די מיטל פון אים? [האַרדיסאָן] עס איז אויב מיר קענען מאַכן די מאַט אַרבעט אויס רעכט. און עס טורנס אויס אַז אַז ס 'פאקטיש נישט אַז שווער צו טאָן מיט די מאָד אָפּעראַטאָר. אַזוי נאָר ווי מיר האבן מיט קיסר און דעם קריפּטאָו שטאָפּן, ניצן מאָד, מיר קענען באַקומען דאס צו ייַנוויקלען אַרום און האַלטן געגאנגען אַרום און אַרום און אַרום מיט אונדזער ריי, בעכעסקעם אַז קאָפּ טייַטל מאָווינג אַרום. נאָטיץ אַז גרייס איז שטענדיק ריספּעקטינג די נומער פון עלעמענטן פאקטיש ין די ריי. און עס ס נאָר די קאָפּ טייַטל וואָס האלט סייקלינג דורך. אויב מיר קוקן אין וואָס געטראפן דאָ, אויב מיר גיין צוריק צו דער אָנהייב, און איר נאָר היטן וואָס כאַפּאַנז צו דעם קאָפּ ווען מיר ענקוועוע עפּעס, גאָרנישט געטראפן צו דעם קאָפּ. ווען מיר ענקוועועד עפּעס אַנדערש, גאָרנישט געטראפן צו דעם קאָפּ. באַלד ווי מיר דעקוועועד עפּעס, דער קאָפּ גייט אַרויף דורך איינער. מיר ענקוועועד עפּעס, גאָרנישט כאַפּאַנז צו דעם קאָפּ. ווען מיר דעקוועוע עפּעס, אַלע פון ​​אַ פּלוצעמדיק די קאָפּ געץ ינקרעמענטעד. ווען מיר ענקוועוע עפּעס, גאָרנישט כאַפּאַנז צו דעם קאָפּ. וואָס וואָלט פּאַסירן אין דעם פונט אויב מיר זענען צו דעקוועוע עפּעס ווידער? קיין געדאנקען? וואָס וואָלט פּאַסירן צו דעם קאָפּ? וואָס זאָל פּאַסירן צו די קאָפּ אויב מיר זענען צו דעקוועוע עפּעס אַנדערש? די קאָפּ רעכט איצט איז בייַ אינדעקס 2, וואָס מיטל אַז די קאָפּ פון די ריי איז סטרינגס [2]. [תּלמיד] וואָס קערט 0? >> עס זאָל צוריקקומען צו 0. עס זאָל ייַנוויקלען צוריק אַרום, פּונקט. אַזוי ווייַט, יעדער צייַט מיר גערופן דעקוועוע, מיר ווע שוין אַדינג איין צו די קאָפּ, לייגן איין צו די קאָפּ, לייג איין צו די קאָפּ, לייג איין צו דעם קאָפּ. ווי באַלד ווי אַז קאָפּ טייַטל געץ צו די לעצטע אינדעקס אין אונדזער מענגע, דעמאָלט מיר האָבן צו ייַנוויקלען עס צוריק אַרום צו די אָנהייב, גיין צוריק צו 0. [שאַרלאַט] וואָס דאַטערמאַנז די קאַפּאַציטעט פון דער ריי אין אַ אָנלייגן? [האַרדיסאָן] אין דעם פאַל, מיר ווע נאָר שוין ניצן אַ # דיפיינד קעסיידערדיק. >> אָוקיי. [האַרדיסאָן] אין די פאַקטיש. C טעקע, איר קענען גיין אין און מאַק מיט אים אַ קליין ביסל און מאַכן עס ווי גרויס אָדער ווי קליין ווי איר ווילן. [שאַרלאַט] אזוי ווען איר ניטאָ מאכן עס אַ ריי, ווי טאָן איר מאַכן די קאָמפּיוטער וויסן ווי גרויס איר ווילן די אָנלייגן צו זייַן? [האַרדיסאָן] אַז ס אַ גרויס קשיא. עס זענען אַ פּאָר פון וועגן. איינער איז צו נאָר דעפינירן עס אַרויף פראָנט און זאָגן דעם איז געגאנגען צו זייַן אַ ריי וואָס האט 4 יסודות אָדער 50 עלעמענטן אָדער 10,000. די אנדערע וועג איז צו טאָן וואָס דער העקער Edition פאָלקס זענען טאן און שאַפֿן פאַנגקשאַנז צו האָבן דיין ריי וואַקסן דינאַמיקאַללי ווי מער זאכן באַקומען צוגעגעבן ין [שאַרלאַט] אזוי צו גיין מיט דעם ערשטער אָפּציע, וואָס סינטאַקס טאָן איר נוצן צו דערציילן די פּראָגראַם וואָס איז די נומער פון די ריי? [האַרדיסאָן] אַ. אַזוי לאָזן ס באַקומען אויס פון דעם. איך בין נאָך אין סטאַקק.ק דאָ, אַזוי איך בין נאָר געגאנגען צו מעגילע אַרויף צו די שפּיץ דאָ. קענען איר זען דעם רעכט דאָ? דאס איז די # דעפינירן קאַפּאַציטעט 10. און דאָס איז כּמעט די פּינטלעך זעלביקער סינטאַקס אַז מיר האָבן פֿאַר ריי. אַחוץ אין ריי, מיר ווע גאַט אַז עקסטרע סטרוקט פעלד אין דאָ. [שאַרלאַט] אָה, איך געדאַנק די קאַפּאַציטעט מענט די קאַפּאַציטעט פֿאַר דעם שטריקל. [האַרדיסאָן] אַ. >> אַז עס ס די מאַקסימום לענג פון די וואָרט. >> גאָט עס. יאָ. די קאַפּאַציטעט דאָ - אַז ס אַ גרויס פונט. און דאָס איז עפּעס אַז ס טריקי ווייַל וואָס מיר ווע דערקלערט דאָ איז אַ מענגע פון ​​טשאַר * ס. אַ מענגע פון ​​פּוינטערז. דאס איז אַ מענגע פון ​​טשאַרס. דאס איז מיסטאָמע וואָס איר ווע געזען ווען איר ווע שוין דיקלערינג דיין באַפערז פֿאַר טעקע איך / אָ, ווען איר ווע שוין שאפן סטרינגס מאַניואַלי אויף דעם אָנלייגן. אבער, וואָס מיר ווע גאַט דאָ איז אַ מענגע פון ​​טשאַר * ס. אַזוי עס ס אַ מענגע פון ​​פּוינטערז. פאקטיש, אויב מיר פארגרעסער צוריק אויס און מיר קוקן אין וואָס ס 'געגאנגען אויף דאָ אין די פּרעזענטירונג, איר זען אַז די פאַקטיש עלעמענטן, דער כאַראַקטער דאַטן איז ניט סטאָרד ין די מענגע זיך. וואָס ס סטאָרד ין אונדזער מענגע דאָ זענען פּוינטערז צו דער כאַראַקטער דאַטן. אָוקיי. אַזוי מיר ווע געזען ווי די גרייס פון די ריי איז פּונקט ווי מיט דעם אָנלייגן, די גרייס שטענדיק בנוגע די נומער פון עלעמענטן דערווייַל אין די ריי. נאָך מאכן 2 ענקוועועס, די נומער איז 2. נאָך מאכן אַ דעקוועוע די נומער איז איצט 1. נאָך מאכן אן אנדער ענקוועוע די נומער איז צוריק אַרויף צו 2. אַזוי די גרייס באשטימט בנוגע די נומער פון עלעמענטן אין דער ריי, און דעריבער די קאָפּ נאָר האלט סייקלינג. עס גייט פון 0-1-2, 0-1-2, 0-1-2. און יעדער צייַט מיר רופן דעקוועוע, די קאָפּ טייַטל געץ ינקרעמענטעד צו דער ווייַטער אינדעקס. און אויב די קאָפּ איז וועגן צו גיין איבער, עס לופּס צוריק אַרום צו 0. אַזוי מיט וואָס, מיר קענען שרייַבן די דעקוועוע פונקציאָנירן. און מיר רע געגאנגען צו לאָזן די ענקוועוע פֿונקציע פֿאַר איר גייז צו מאַכשער אַנשטאָט. ווען מיר דעקוועוע אַן עלעמענט אויס פון אונדזער ריי, וואָס איז געווען דער ערשטער זאַך אַז דניאל האט ווען מיר אנגעהויבן שרייבן די קנאַל פֿונקציע פֿאַר סטאַקס? לאָזן מיר הערן פון עמעצער וואס האט ניט גערעדט נאָך. זאל ס זען, סאַד, טאָן איר געדענקען וואָס דניאל האט ווי דער ערשטער זאַך ווען ער געשריבן קנאַל? [סאַד] עס איז געווען, עס איז געווען - >> ער טעסטעד פֿאַר עפּעס. [סאַד] אויב גרייס איז גרעסער ווי 0. >> עקסאַקטלי. און וואָס איז געווען אַז טעסטינג פֿאַר? [סאַד] אַז איז טעסטינג צו זען אויב עס ס 'עפּעס ין די מענגע. [האַרדיסאָן] יאָ. פּונקט. אַזוי איר קענען נישט קנאַל עפּעס אויס פון די אָנלייגן אויב עס ס ליידיק. פּונקט אַזוי, איר קענען נישט דעקוועוע עפּעס פון אַ ריי אויב עס ס ליידיק. וואָס איז דער ערשטער זאַך מיר זאָל טאָן אין אונדזער דעקוועוע פונקציאָנירן דאָ, טאָן איר טראַכטן? [סאַד] אויב גרייס איז גרעסער ווי 0? >> יאָ. אין דעם פאַל, איך ווע פאקטיש פּונקט טעסטעד צו זען אויב עס איז 0. אויב עס איז 0, מיר קענען צוריקקומען נאַל. אבער פּינטלעך זעלביקער לאָגיק. און לאָזן ס פאָרזעצן מיט דעם. אויב די נומער איז נישט 0, ווו איז דער עלעמענט וואָס מיר ווילן צו דעקוועוע? [סאַד] בייַ די קאָפּ? >> עקסאַקטלי. מיר קענען נאָר ציען אויס די ערשטער עלעמענט אין אונדזער ריי דורך אַקסעסינג די עלעמענט אין דעם קאָפּ. גאָרנישט משוגע. נאָך וואָס, וואָס זאָל מיר טאָן? וואָס האט צו פּאַסירן? וואָס איז געווען די אנדערע זאַך וואָס מיר גערעדט וועגן אין דעקוועוע? צוויי זאכן האָבן צו פּאַסירן, ווייַל אונדזער ריי האט געביטן. [דניאל] רעדוצירן די גרייס. >> מיר האָבן צו רעדוצירן די נומער, און פאַרגרעסערן די קאָפּ? פּונקט. צו פאַרגרעסערן די קאָפּ, מיר קענען נישט נאָר בליינדלי פאַרגרעסערן די קאָפּ, געדענקען. מיר קענען ניט נאָר טאָן קוועוע.העאַד + +. מיר האָבן צו אויך אַרייַננעמען דעם מאָד דורך די קאַפּאַציטעט. און וואָס טאָן מיר מאָד דורך די קאַפּאַציטעט, סטעלאַ? [סטעלאַ] ווייַל עס האט צו ייַנוויקלען אַרום. >> עקסאַקטלי. מיר מאָד דורך די קאַפּאַציטעט ווייַל עס האט צו ייַנוויקלען צוריק אַרום צו 0. אַזוי איצט, בייַ דעם פונט, מיר קענען טאָן וואָס דניאל האט געזאגט. מיר קענען דעקרעמענט די גרייס. און דעמאָלט מיר קענען נאָר צוריקקומען די עלעמענט וואָס איז געווען בייַ די שפּיץ פון די ריי. עס קוקט מין פון נאַרלי בייַ ערשטער. איר זאל האָבן אַ קשיא. אנטשולדיגט? [סאַם] פארוואס ס ערשטער אין די שפּיץ פון די ריי? ווו טוט וואָס גיין? [האַרדיסאָן] עס קומט פון דער פערט שורה פון די דנאָ. נאָך מיר פּרובירן צו מאַכן זיכער אַז אונדזער ריי איז ניט ליידיק, מיר ציען אויס טשאַר * ערשטער, מיר ציען אויס די עלעמענט אַז ס זיצן בייַ די קאָפּ אינדעקס פון אונדזער מענגע, פון אונדזער סטרינגס מענגע, >> און רופן אַז ערשטער? [האַרדיסאָן] און מיר רופן עס ערשטער. יאָ. נאָר צו נאָכפאָלגן אַרויף אויף וואָס, וואָס טאָן איר טראַכטן מיר האבן צו טאָן וואָס? [סאַם] יעדער ערשטער איז נאָר אומגעקערט ק.סטרינגס [ק.העאַד]? >> יאָ. >> ווייַל מיר רע טאן דעם טשאַנגינג פון די ק.העאַד מיט די מאָד פונקציאָנירן, און דאָרט ס קיין וועג צו טאָן אַז ין צוריקקומען שורה אויך. [האַרדיסאָן] עקסאַקטלי. איר רע אָרט אויף. סאַם ס טאָוטאַלי אָרט אויף. די סיבה מיר האט צו ציען אויס די ערשטער עלעמענט אין אונדזער ריי און קראָם עס אין אַ בייַטעוודיק איז ווייַל דעם שורה ווו מיר האט נאָר ק.העאַד, דאָרט ס די מאָד אָפּעראַטאָר אין עס איז נישט עפּעס וואָס מיר קענען טאָן און האָבן עס נעמען ווירקונג אויף די קאָפּ אָן - אין איין שורה. אַזוי מיר פאקטיש האָבן צו ציען אויס די ערשטער עלעמענט, דעמאָלט סטרויערן די קאָפּ, סטרויערן די גרייס, און דעמאָלט צוריקקומען די עלעמענט וואָס מיר פּולד אויס. און דאָס איז עפּעס אַז מיר וועט זען קומען אַרויף שפּעטער מיט לינגקט רשימות, ווי מיר שפּילן אַרום מיט זיי. אָפֿט ווען איר ניטאָ פריינג אָדער דיספּאָוזינג פון לינגקט רשימות איר דאַרפֿן צו געדענקען די ווייַטער עלעמענט, דער ווייַטער טייַטל פון אַ לינגקט רשימה איידער דיספּאָוזינג פון די קראַנט איינער. ווייַל אַנדערש איר וואַרפן אַוועק די אינפֿאָרמאַציע פון ​​וואָס ס לינקס אין די רשימה. איצט, אויב איר גיין צו דיין אַפּפּליאַנסע, איר עפענען אַרויף קוועוע.ק--X אויס פון דעם. אַזוי אויב איך עפענען אַרויף קוועוע.ק, לאָזן מיר פארגרעסער אין דאָ, איר וועט זען אַז איר האָט אַ ענלעך-קוקן טעקע. ענלעך-קוקן טעקע צו וואָס מיר האבן פריער מיט סטאַקק.ק. מיר ווע גאַט אונדזער סטרוקט פֿאַר ריי דיפיינד פּונקט ווי מיר געזען אויף די סליידז. מיר האָבן אונדזער ענקוועוע פֿונקציע וואָס איז פֿאַר איר צו טאָן. און מיר האָבן די דעקוועוע פונקציאָנירן דאָ. די דעקוועוע פונקציאָנירן אין די טעקע איז ונימפּלעמענטעד, אָבער איך וועט שטעלן עס צוריק אַרויף אויף די פּאָווערפּאָינט אַזוי אַז איר קענען דרוקן עס אין, אויב איר 'ד ווי. אַזוי פֿאַר די ווייַטער 5 מינוט אָדער אַזוי, איר גייז אַרבעט אויף ענקוועוע וואָס איז כּמעט נאָר די פאַרקערט פון דעקוועוע. איר טאָן ניט האָבן צו סטרויערן קאָפּ ווען איר ניטאָ ענקוועועינג, אָבער וואָס טוט איר האָבן צו סטרויערן? גרייס. אַזוי ווען איר ענקוועוע, די קאָפּ סטייז אַנטאַטשט, די גרייס געץ געביטן. אבער עס טוט נעמען אַ קליין ביסל פון - איר וועט האָבן צו שפּילן אַרום מיט וואָס מאָד צו רעכענען אויס פּונקט וואָס אינדעקס די נייַ עלעמענט זאָל זייַן ינסערטאַד בייַ. אַזוי איך וועט געבן איר גייז אַ קליין ביסל, שטעלן דעקוועוע צוריק אַרויף אויף די רוק, און ווי איר גייז האָבן שאלות, שרייַען זיי אויס אַזוי אַז מיר קענען אַלע רעדן וועגן זיי ווי אַ גרופּע. אויך, מיט די גרייס איר דאָון - ווען איר סטרויערן די גרייס, איר קענען שטענדיק נאָר - טאָן איר האָבן צו מאָד די גרייס אלץ? [דניאל] נומ >> איר טאָן ניט האָבן צו מאָד די גרייס, רעכט. ווייַל די גרייס וועט שטענדיק, אויב יור - אַסומינג איר ניטאָ אָנפירונג זאכן אַפּראָופּרייטלי, דער נומער וועט שטענדיק זייַן צווישן 0 און 3. ווו טאָן איר האָבן צו מאָד ווען איר ניטאָ טאן ענקוועוע? [תּלמיד] בלויז פֿאַר דעם קאָפּ. >> בלויז פֿאַר די קאָפּ, פּונקט. און וואָס טוט איר האָבן צו מאָד בייַ אַלע אין ענקוועוע? ווען איז אַ סיטואַציע אין וועלכע איר 'ד האָבן צו מאָד? [תּלמיד] אויב איר האָט שטאָפּן בייַ ספּייסאַז, ווי בייַ ספּייסאַז 1 און 2, און דאַן איר דארף צו לייגן עפּעס בייַ 0. [האַרדיסאָן] יאָ, פּונקט. אַזוי אויב דיין קאָפּ טייַטל איז בייַ די זייער סוף, אָדער אויב אייער גרייס פּלוס דיין קאָפּ איז ביגער, אָדער אלא, איז געגאנגען צו ייַנוויקלען אַרום די ריי. אַזוי אין דעם סיטואַציע אַז מיר ווע גאַט אַרויף דאָ אויף די רוק רעכט איצט, אויב איך ווילן צו ענקוועוע עפּעס רעכט איצט, מיר ווילן צו ענקוועוע עפּעס בייַ אינדעקס 0. אַזוי אויב איר קוק בייַ ווו די 50 גייט, און איך רופן ענקוועוע 50, עס גייט אַראָפּ דאָרט אין די דנאָ. עס גייט אין אינדעקס 0. עס ריפּלייסיז די 'הי' וואָס איז שוין דעקוועועד. [דניאל] צי נישט איר נעמען קעיר פון וואָס אין דעקוועוע שוין? וואָס טוט עס טאָן עפּעס מיט די קאָפּ אין ענקוועוע? [האַרדיסאָן] אָה, אַזוי איר ניטאָ ניט מאַדאַפייינג די קאָפּ, אנטשולדיגט. אבער איר האָבן צו נוצן די מאָד אָפּעראַטאָר ווען איר ניטאָ אַקסעסינג די עלעמענט אַז איר ווילן צו ענקוועוע ווען איר ניטאָ אַקסעסינג דער ווייַטער עלעמענט אין דיין ריי. [באַסיל] איך האט ניט טאָן אַז, און איך גאַט "הצלחה" אויף דאָרט. [דניאל] אָה, איך פֿאַרשטיין וואָס איר ניטאָ געזאגט. [האַרדיסאָן] אזוי איר דינט - איר נאָר האבן אין ק.סיזע? [באַסיל] יאָ. איך נאָר געביטן זייטן, איך האט ניט טאָן עפּעס מיט די קאָפּ. [האַרדיסאָן] איר טאָן נישט פאקטיש האָבן צו באַשטעטיק דעם קאָפּ צו זייַן עפּעס, אָבער ווען איר אינדעקס אין די סטרינגס מענגע, איר פאקטיש האָבן צו גיין פאָרויס און רעכענען ווו דער ווייַטער עלעמענט איז, ווייַל וויט די אָנלייגן, דער ווייַטער עלעמענט אין דיין אָנלייגן איז געווען שטענדיק בייַ די אינדעקס קאָראַספּאַנדינג צו די גרייס. אויב מיר קוקן צוריק אַרויף אין אונדזער אָנלייגן שטופּן פונקציאָנירן, מיר קען שטענדיק פּלאַנגק אין אונדזער נייַ עלעמענט רעכט בייַ אינדעקס גרייס. וועראַז מיט די ריי, מיר קענען נישט טאָן אַז ווייַל אויב מיר ניטאָ בייַ דעם סיטואַציע, אויב מיר ענקוועועד 50 אונדזער נייַ שטריקל וואָלט גיין רעכט בייַ סטרינגס [1] וואָס מיר טאָן נישט וועלן צו טאָן. מיר ווילן צו האָבן די נייַ שטריקל גיין אין אינדעקס 0. טוט אַבי ווער - יאָ? [תּלמיד] איך האב אַ קשיא אָבער עס ס ניט טאַקע שייַכות. וואָס טוט עס מיינען ווען עמעצער נאָר רופט עפּעס ווי פּרעד טייַטל? וואָס איז אַז נאָמען קורץ פֿאַר? איך וויסן עס ס נאָר אַ נאָמען. [האַרדיסאָן] פּרעד טייַטל? זאל ס זען. אין וואָס קאָנטעקסט? [תּלמיד] עס איז געווען פֿאַר די אַרייַנלייגן. איך קענען פרעגן איר שפּעטער אויב איר ווילן ווייַל עס ס ניט טאַקע שייַכות, אָבער איך נאָר - [האַרדיסאָן] פון דוד 'ס אַרייַנלייגן קאָד פון לעקציע? מיר קענען ציען וואָס אַרויף און רעדן וועגן וואָס. מיר וועט רעדן וועגן וואָס ווייַטער, אַמאָל מיר באַקומען צו לינגקט רשימות. אַזוי לאָזן ס טאַקע געשווינד קוק אין וואָס די ענקוועוע פונקציאָנירן קוקט ווי. וואָס איז געווען דער ערשטער זאַך אַז מען געפרוווט צו טאָן אין דיין ענקוועוע שורה? אין דעם ריי? ענלעך צו וואָס איר האט פֿאַר אָנלייגן פּושינג. וואָס האט איר טאָן, סטעלאַ? [סטעלאַ, אַנינטעלאַדזשאַבאַל] [האַרדיסאָן] עקסאַקטלי. אויב (ק.סיזע == קאַפּאַציטעט) - איך דאַרפֿן צו שטעלן מיין ברייסאַז אין די רעכט אָרט - צוריקקומען פאַלש. פארגרעסער אין אַ קליין ביסל. אָוקיי. איצט וואָס ס דער ווייַטער זאַך וואָס מיר האבן צו טאָן? פּונקט ווי מיט דעם אָנלייגן, און ינסערטאַד בייַ די רעכט אָרט. און אַזוי וואָס איז געווען די רעכט אָרט צו אַרייַנלייגן אַז? מיט דעם אָנלייגן עס איז געווען אינדעקס גרייס, מיט דעם עס ס נישט גאַנץ וואָס. [דניאל] איך האָבן ק.העאַד--אָדער - >> ק.סטרינגס? >> יאָ. ק.סטרינגס [ק.העאַד + ק.סיזע מאָד קאַפּאַציטעט]? [האַרדיסאָן] מיר מיסטאָמע ווילן צו שטעלן קלאַמערן אַרום דעם אַזוי אַז מיר רע געטינג די צונעמען פאָרהאַנט און אַזוי אַז ס קלעאַרט צו יעדער יינער. און שטעלן אַז גלייַך? >> צו Str? >> צו Str. גרויס. און איצט וואָס ס די לעצטע זאַך וואָס מיר האָבן צו טאָן? פּונקט ווי מיר האבן אין דעם אָנלייגן. >> ינקרעמענט די נומער? >> ינקרעמענט די גרייס. בום. און דעמאָלט, זינט די סטאַרטער קאָד נאָר אומגעקערט פאַלש דורך פעליקייַט, מיר ווילן צו טוישן דעם צו אמת אויב אַלע גייט דורך און אַלע גייט געזונט. אַלע רעכט. אַז ס אַ פּלאַץ פון אינפֿאָרמאַציע פֿאַר אָפּטיילונג. מיר ניטאָ ניט גאַנץ איבער. מיר ווילן צו רעדן טאַקע געשווינד וועגן יינציקווייַז-לינגקט רשימות. איך וועט שטעלן דעם זיך אַזוי מיר קענען גיין צוריק צו עס שפּעטער. אבער לאָזן ס גיין צוריק צו אונדזער פּרעזענטירונג פֿאַר נאָר אַ ביסל מער סליידז. אַזוי ענקוועוע איז טאָדאָ, איצט מיר ווע געטאן עס. איצט לאָזן ס נעמען אַ קוק בייַ יינציקווייַז-לינגקט רשימות. מיר גערעדט וועגן די אַ קליין ביסל מער אין לעקציע. ווי פילע פון ​​איר גייז געזען די דעמאָ ווו מיר האט מען אָקווערדלי פּוינטינג צו יעדער אַנדערער און האלטן נומערן? >> איך איז געווען אין וואָס. >> וואָס האט איר גייז טראַכטן? האט אַז, אַלעווייַ דימיסטאַפיי די אַ קליין ביסל? מיט אַ רשימה, עס טורנס אויס אַז מיר האַנדלען מיט דעם טיפּ וואָס מיר רע געגאנגען צו רופן אַ נאָדע. וועראַז מיט די ריי און די אָנלייגן מיר האט סטרוקץ אַז מיר 'ד רופן ריי אין אָנלייגן, מיר האט די נייַ ריי אין אָנלייגן טייפּס, דאָ אַ רשימה איז טאַקע נאָר געמאכט געווארן פון אַ בינטל פון נאָודז. אין די זעלבע וועג וואָס סטרינגס זענען נאָר אַ בינטל פון טשאַרס אַלע ליינד זיך ווייַטער צו יעדער אַנדערער. א לינגקט רשימה איז נאָר אַ נאָדע און אנדערן נאָדע און אנדערן נאָדע און אנדערן נאָדע. און אלא ווי סמאַשינג אַלע די נאָודז צוזאַמען און סטאָרינג זיי קאָנטיגואָוסלי אַלע רעכט ווייַטער צו יעדער אַנדערער אין זכּרון, בעת דעם ווייַטער טייַטל אַלאַוז אונדז צו קראָם די נאָודז וואוהין, בייַ טראַפ. און דעמאָלט מין פון דראָט זיי אַלע צוזאַמען צו פונט פון איין צו דער ווייַטער. און וואָס איז די גרויס מייַלע אַז דאָס האט איבער אַ מענגע? איבער סטאָרינג אַלץ קאָנטיגואָוסלי נאָר סטאַק ווייַטער צו יעדער אַנדערער? איר געדענקען? יאָ? >> דינאַמיק זכּרון אַלאַקיישאַן? >> דינאַמיק זכּרון אַלאַקיישאַן אין וואָס זינען? [תּלמיד] אין אַז איר קענען האַלטן מאכן עס ביגער און איר טאָן ניט האָבן צו מאַך דיין גאנצע מענגע? [האַרדיסאָן] עקסאַקטלי. אַזוי מיט אַ מענגע, ווען איר ווילן צו שטעלן אַ נייַ עלעמענט אין דער מיטן פון עס, איר האָבן צו יבעררוק אַלץ צו מאַכן פּלאַץ. און ווי מיר גערעדט וועגן מיט די ריי, אַז ס וואָס מיר האַלטן אַז קאָפּ טייַטל, אַזוי אַז מיר ניטאָ ניט קעסיידער שיפטינג זאכן. ווייַל אַז געץ טייַער אויב איר ווע גאַט אַ גרויס מענגע און איר ניטאָ קעסיידער טאן די טראַפ ינסערטיאָנס. וועראַז מיט אַ רשימה, אַלע איר האָבן צו טאָן איז וואַרפן עס אויף אַ נייַ נאָדע, סטרויערן די פּוינטערז, און איר ניטאָ געטאן. וואָס סאַקס וועגן דעם? חוץ פון די פאַקט אַז עס ס ניט ווי גרינג צו אַרבעטן מיט ווי אַ מענגע? יאָ? [דניאל] גוט, איך טרעפן עס ס פיל האַרדער צו צוטריט אַ ספּעציפיש עלעמענט אין דער לינגקט רשימה? [האַרדיסאָן] איר קענען ניט נאָר שפּרינגען צו אַ אַרביטראַריש עלעמענט אין דער מיטן פון דיין לינגקט רשימה. ווי טאָן איר האָבן צו טאָן עס אַנשטאָט? >> איר האָבן צו שריט דורך די גאנצע זאַך. [האַרדיסאָן] יאָ. איר האָבן צו גיין דורך איין אין אַ צייַט, איין אין אַ צייַט. עס ס אַ ריזיק - עס ס אַ ווייטיק. וואָס ס די אנדערע - דאָרט ס אנדערן פאַלן צו דעם. [באַסיל] איר קענען ניט גיין פאָרויס און קאַפּויער? איר האָבן צו גיין איין ריכטונג? [האַרדיסאָן] יאָ. אַזוי ווי טאָן מיר סאָלווע אַז, מאל? [באַסיל] דאָובלי-לינגקט רשימות? >> עקסאַקטלי. עס זענען דאַבלי-לינגקט רשימות. עס זענען אויך - אנטשולדיגט? [סאַם] איז אַז די זעלבע ווי ניצן די פּרעד זאַך וואָס - איך נאָר דערמאנט, איז נישט אַז וואָס די פּרעד זאַך איז פֿאַר? איז ניט וואָס אין צווישן דאַבלי און יינציקווייַז? [האַרדיסאָן] זאל 'ס קוק אין וואָס פּונקט ער איז געווען טאן. אַזוי דאָ מיר גיין. דאָ ס דער רשימה קאָד. דאָ מיר האָבן פּרעדפּטר, אין דאָ. איז דאָס וואָס איר האבן גערעדט וועגן? אַזוי דאָס איז געווען - ער 'ס פריינג אַ רשימה און ער ס טריינג צו קראָם אַ טייַטל צו עס. דאס איז נישט די דאַבלי, יינציקווייַז לינגקט-רשימות. מיר קענען רעדן מער וועגן דעם שפּעטער זינט דעם איז גערעדט וועגן פריינג די רשימה און איך ווילן צו ווייַזן עטלעכע אנדערע שטאָפּן ערשטער. אָבער עס ס נאָר - עס ס רימעמבערינג די ווערט פון פּטר [תּלמיד] אָה, עס ס פּריסידינג טייַטל? >> יאָ. אַזוי אַז מיר קענען דעריבער ינקראַמאַנט פּטר זיך פאר מיר דעמאָלט פֿרייַ וואָס פּרעדפּטר איז. ווייַל מיר קענען ניט פֿרייַ פּטר און דעמאָלט רופן פּטר = פּטר ווייַטער, רעכט? וואָס וואָלט זייַן שלעכט. אַזוי לאָזן ס זען, צוריק צו דעם באָכער. די אנדערע שלעכט זאַך וועגן רשימות איז אַז וועראַז מיט אַ מענגע מיר נאָר האָבן אַלע די יסודות זיך סטאַקט ווייַטער צו יעדער אַנדערער, דאָ מיר אויך האָבן באַקענענ דעם טייַטל. אַזוי דאָרט ס אַן נאָך פּייַדע פון ​​זכּרון אַז מיר רע ווייל צו נוצן פֿאַר יעדער עלעמענט וואָס מיר רע סטאָרינג אין אונדזער רשימה. מיר באַקומען בייגיקייַט, אָבער עס קומט אין אַ פּרייַז. עס קומט מיט דעם צייַט פּרייַז, און עס קומט מיט דעם זכּרון פּרייַז אויך. צייט אין די געפיל אַז מיר איצט האָבן צו גיין דורך יעדער עלעמענט אין דער מענגע צו געפֿינען די איין בייַ אינדעקס 10, אָדער וואָס וואָלט האָבן שוין אינדעקס 10 אין אַ מענגע. נאָר טאַקע געשווינד, ווען מיר דיאַגראַמע אויס די רשימות, טיפּיקלי מיר האַלטן אויף צו די קאָפּ פון דער רשימה אָדער דער ערשטער טייַטל פון דער רשימה און טאָן אַז דאָס איז אַ אמת טייַטל. עס ס נאָר 4 ביטעס. עס ס נישט אַ פאַקטיש נאָדע זיך. אַזוי איר זען אַז עס האט קיין ינט ווערט אין עס, קיין ווייַטער טייַטל אין עס. עס ס ממש נאָר אַ טייַטל. עס ס געגאנגען צו פונט צו עפּעס וואָס איז אַ פאַקטיש נאָדע סטרוקט. [סאַם] א טייַטל גערופן נאָדע? >> דעם איז - ניט. דאס איז אַ טייַטל צו עפּעס פון טיפּ נאָדע. עס איז אַ טייַטל צו אַ נאָדע סטרוקט. >> אָה, אָוקיי. דיאַגראַמע אויף די לינקס, קאָד אויף די רעכט. מיר קענען שטעלן אים צו נאַל, וואָס איז אַ גוט וועג צו אָנהייבן. ווען איר דיאַגראַמע עס, איר אָדער שרייַבן עס ווי נאַל אָדער איר שטעלן אַ שורה דורך עס ווי אַז. איינער פון די יזיאַסט וועגן צו אַרבעטן מיט רשימות, און מיר פרעגן איר טאָן ביידע פּרעפּענד און צוגעבן צו זען די דיפעראַנסיז צווישן די צוויי, אָבער פּרעפּענדינג איז באשטימט גרינגער. ווען איר פּרעפּענד, דאָס איז ווו איר - ווען איר פּרעפּענד (7), איר גיין און מאַכן די נאָדע סטרוקט און איר שטעלן ערשטער צו פונט צו עס, ווייַל איצט, זינט מיר פּרעפּענדעד עס, עס ס געגאנגען צו זייַן אין די אָנהייב פון די רשימה. אויב מיר פּרעפּענד (3), אַז קריייץ אנדערן נאָדע, אָבער איצט 3 קומט איידער 7. אַזוי מיר רע יסענשאַלי פּושינג זאכן אַנטו אונדזער רשימה. איצט, איר קענען זען אַז פּרעפּענד, מאל מען רופן עס שטופּן, ווייַל איר ניטאָ פּושינג אַ נייַ עלעמענט אַנטו דיין רשימה. עס ס אויך גרינג צו אויסמעקן אין די פראָנט פון אַ רשימה. אַזוי מענטשן וועלן אָפֿט רופן אַז קנאַל. און אין וואָס וועג, איר קענען עמיאַלייט אַ אָנלייגן ניצן אַ לינגקט רשימה. ווהאָאָפּס. אנטשולדיגט, איצט מיר רע געטינג אין צוגעבן. אַזוי דאָ מיר פּרעפּענדעד (7), איצט מיר פּרעפּענד (3). אויב מיר פּרעפּענדעד עפּעס אַנדערש אַנטו דעם רשימה, אויב מיר פּרעפּענדעד (4), דעמאָלט מיר 'ד האָבן 4 און דעמאָלט 3 און דאַן 7. אַזוי דעמאָלט מיר קען קנאַל און באַזייַטיקן 4, באַזייַטיקן 3, באַזייַטיקן 7. אָפֿט די מער ינטואַטיוו וועג צו טראַכטן וועגן דעם איז מיט צוגעבן. אַזוי איך ווע דייאַגראַמד אויס וואָס עס וואָלט קוק ווי מיט צוגעבן דאָ. דאָ, אַפּפּענדעד (7) טוט נישט קוקן קיין אַנדערש ווייַל דאָרט ס נאָר איין עלעמענט אין דער רשימה. און אַפּפּענדינג (3) לייגט עס אין די סוף. אפֿשר איר קענען זען רעכט איצט די קונץ מיט צוגעבן איז אַז זינט מיר נאָר וויסן ווו די אָנהייב פון די רשימה איז, צו צוגעבן צו אַ רשימה איר האָבן צו גיין אַלע די וועג דורך דער רשימה צו באַקומען צו דעם סוף, האַלטן, דעמאָלט בויען דיין נאָדע און פּלאַנגק אַלץ אַראָפּ. ווירע אַלע די שטאָפּן אַרויף. אַזוי מיט פּרעפּענד, ווי מיר נאָר ריפּט דורך דעם טאַקע געשווינד, ווען איר פּרעפּענד צו אַ רשימה, עס ס פערלי פּשוט. איר מאַכן דיין נייַ נאָדע, אַרייַנציען עטלעכע דינאַמיש זכּרון אַלאַקיישאַן. אַזוי דאָ מיר רע מאכן אַ נאָדע סטרוקט ניצן מאַללאָק. אַזוי מאַללאָק מיר רע ניצן ווייַל וואָס וועט שטעלן באַזונדער זכּרון פֿאַר אונדז פֿאַר שפּעטער ווייַל מיר טאָן ניט וועלן דעם - מיר ווילן דעם זכּרון צו אָנהאַלטן פֿאַר אַ לאַנג צייַט. און מיר באַקומען אַ טייַטל צו דער אָרט אין זכּרון אַז מיר נאָר אַלאַקייטיד. מיר נוצן גרייס פון נאָדע, מיר טאָן ניט סאַכאַקל די פעלדער. מיר טאָן ניט מאַניואַלי דזשענערייט די נומער פון ביטעס, אַנשטאָט מיר נוצן סיזעאָף אַזוי אַז מיר וויסן מיר רע געטינג די צונעמען נומער פון ביטעס. מיר מאַכן זיכער צו פּרובירן אַז אונדזער מאַללאָק רופן סאַקסידאַד. דאס איז עפּעס איר ווילן צו טאָן אין אַלגעמיין. אויף מאָדערן מאשינען, פליסנדיק אויס פון זכּרון איז נישט עפּעס אַז ס 'גרינג סייַדן איר ניטאָ אַלאַקייטינג אַ טאָן פון שטאָפּן און מאכן אַ ריזיק רשימה, אָבער אויב איר ניטאָ בנין שטאָפּן פֿאַר, זאָגן, ווי אַ יפאָנע אָדער אַן אַנדרויד, איר טאָן האָבן באגרענעצט זכּרון רעסורסן, ספּעציעל אויב איר ניטאָ טאן עפּעס טיף. אַזוי עס ס 'גוט צו באַקומען אין פיר. נאָטיץ אַז איך ווע געניצט אַ פּאָר פאַרשידענע פאַנגקשאַנז דאָ אַז איר ווע געזען אַז ביסט מין פון נייַ. אַזוי פפּרינטף איז פּונקט ווי פּרינטף אַחוץ זייַן ערשטער אַרגומענט איז דער טייַך צו וואָס איר ווילן צו דרוקן. אין דעם פאַל, מיר ווילן צו דרוקן צו דער נאָרמאַל טעות שטריקל וואָס איז אַנדערש פון דער נאָרמאַל אָוצטרעאַם. דורך פעליקייַט עס ווייזט זיך אין די זעלבע פּלאַץ. עס אויך פּרינץ אויס צו דער וואָקזאַל, אָבער איר קענען - ניצן יענע קאַמאַנדז איר געלערנט וועגן, די רידערעקשאַן טעקניקס איר געלערנט וועגן אין טאַמי ס ווידעא פֿאַר פּראָבלעם שטעלן 4, איר קענען גלייַך עס צו פאַרשידענע געביטן; דעמאָלט אַרויסגאַנג, רעכט דאָ, עקסאַץ דיין פּראָגראַם. עס ס יסענשאַלי ווי אומגעקערט פון הויפּט, אַחוץ מיר נוצן אַרויסגאַנג ווייַל דאָ צוריקקומען וועט נישט טאָן עפּעס. מיר ניטאָ ניט אין הויפּט, אַזוי אומגעקערט טוט נישט אַרויסגאַנג די פּראָגראַם ווי מיר ווילן. אַזוי מיר נוצן די אַרויסגאַנג פונקציאָנירן און געבן עס אַ טעות קאָד. דעריבער דאָ מיר שטעלן די נייַ נאָדע ס ווערט פעלד, זייַן איך פעלד צו זייַן גלייַך צו איך, און דאַן מיר דראָט עס אַרויף. מיר שטעלן די נייַ נאָדע ס ווייַטער טייַטל צו פונט צו ערשטער, און דעמאָלט ערשטער וועט איצט פונט צו די נייַ נאָדע. די ערשטער שורות פון קאָד, מיר רע פאקטיש בנין די נייַ נאָדע. נישט די לעצטע צוויי שורות פון דעם פֿונקציע אָבער דער ערשטער אָנעס. איר קענען פאקטיש ציען אויס אין אַ פֿונקציע, אין אַ העלפּער פונקציאָנירן. אַז ס אָפֿט וואָס איך טאָן איז, איך ציען עס אויס אין אַ פֿונקציע, איך רופן עס עפּעס ווי בויען נאָדע, און וואָס האלט דער פּרעפּענד פונקציאָנירן שיין קליין, עס ס נאָר 3 שורות דעמאָלט. איך מאַכן אַ רופן צו מיין בויען נאָדע פונקציאָנירן, און דעריבער איך דראָט אַלץ אַרויף. די לעצט זאַך איך ווילן צו ווייַזן איר, און איך וועט לאָזן איר טאָן צוגעבן און אַלע אַז אויף דיין אייגן, איז ווי צו יטעראַטע איבער אַ רשימה. עס זענען אַ בינטל פון פאַרשידענע וועגן צו יטעראַטע איבער אַ רשימה. אין דעם פאַל, מיר רע געגאנגען צו געפֿינען די לענג פון אַ רשימה. אַזוי מיר אָנהייבן מיט לענג = 0. דאס איז זייער ענלעך צו שרייבן סטרלען פֿאַר אַ שטריקל. דאס איז וואָס איך ווילן צו ווייַזן איר, דעם פֿאַר שלייף רעכט דאָ. עס קוקט קינדאַ פאַנגקי; עס ס 'נישט די געוויינטלעך ינט איך = 0, איך <וועלכער, איך + +. אַנשטאָט עס ס יניטיאַליזינג אונדזער בייַטעוודיק N צו זייַן די אָנהייב פון די רשימה. און דעמאָלט בשעת אונדזער יטעראַטאָר בייַטעוודיק איז נישט נאַל, מיר האַלטן געגאנגען. דאס איז ווייַל, דורך קאַנווענשאַן, דער סוף פון אונדזער רשימה וועט זייַן נאַל. און דעריבער צו ינקראַמאַנט, אלא ווי טאן + +, די לינגקט רשימה עקוויוואַלענט פון + + איז N = N-> ווייַטער. איך וועט לאָזן איר פּלאָמבירן אין די גאַפּס דאָ ווייַל מיר רע אויס פון צייַט. אבער האַלטן דעם אין מיינונג ווי איר אַרבעט אויף דיין ספּעללר פּסעץ. לינגקט רשימות, אויב איר ניטאָ ימפּלאַמענינג אַ האַש טיש, וועט באשטימט קומען אין זייער האַנטיק. און בעת ​​דעם ידיאָם פֿאַר לופּינג איבער דאס וועט מאַכן לעבן אַ פּלאַץ גרינגער, אַלעווייַ. קיין שאלות, געשווינד? [סאַם] וועט איר שיקן אויס די געענדיקט סלל און סק? [האַרדיסאָן] יאָ. איך וועט שיקן אויס געענדיקט סליידז און געענדיקט סלל אָנלייגן און קוועוע.קס. [CS50.TV]