[Powered by Google Translate] [וואָך 6, קאָנטינועד] [דוד י מאַלאַן] [האַרוואַרד אוניווערסיטעט] [דאס איז קס50.] [CS50.TV] דאס איז קס50 און דאָס איז דער סוף פון וואָך 6. אַזוי קס50קס, איינער פון האַרוואַרד ס ערשטער קאָרסאַז ינוואַלווד אין די עדקס איניציאטיוו טאַקע דייביוד דעם פאַרגאַנגענהייַט מאנטאג. אויב איר וואָלט ווי צו באַקומען אַ בליק פון וואָס אנדערע אויף די אינטערנעט זענען איצט פאלגענדע צוזאמען מיט, איר קענען קאָפּ צו x.cs50.net. וואָס וועט רידערעקט איר צו די צונעמען אָרט אויף edx.org, וואָס איז ווו דעם און אנדערע קאָרסאַז פון מיט און בערקלי איצט לעבן. איר וועט האָבן צו צייכן אַרויף פֿאַר אַ חשבון; איר וועט געפֿינען אַז דער מאַטעריאַל איז לאַרגעלי דער זעלביקער ווי איר 'ווע האט דעם זמאַן, אָלבייט אַ ביסל וואָכן דילייד, ווי מיר באַקומען אַלץ גרייט. אבער וואָס סטודענטן אין קס50קס וועט איצט זען איז אַ צובינד גאַנץ ווי דאָס איין. דאס, פֿאַר בייַשפּיל, איז זאַמילאַ לידינג די וואַלקטהראָוגה פֿאַר פּראָבלעם שטעלן 0. אויף לאָגינג אין צו edx.org, אַ קס50קס תּלמיד זעט די סאָרץ פון זאכן איר וואָלט דערוואַרטן צו זען אין אַ קורס: די לעקציע פֿאַר דעם מאנטיק, לעקציע פֿאַר מיטוואך, פארשיידענע קורצע הייזלעך, די פּראָבלעם שטעלט, די וואַלקטהראָוגהס, פּדפס. אין דערצו, ווי איר זען דאָ, מאַשין איבערזעצונגען פון ענגליש טראַנסקריפּץ אין כינעזיש, יאַפּאַניש, שפּאַניש, איטאַליעניש, און אַ גאַנץ בינטל פון אנדערע שפּראַכן וואָס וועט זיכער זייַן ימפּערפיקט ווי מיר זעמל זיי אויס פּראָגראַממאַטיקאַללי ניצן עפּעס גערופן אַן אַפּי, אָדער אַפּלאַקיישאַן פּראָגראַממינג צובינד, פון גוגל אַז אַלאַוז אונדז צו בייַטן ענגליש צו די אנדערע שפּראַכן. אבער דאַנק צו די ווונדערלעך גייסט פון עטלעכע הונדערט-פּלוס וואַלאַנטירז, טראַפ - מענטשן אויף די אינטערנעט וואס האָבן ליב געפֿינט צו באַקומען ינוואַלווד אין דעם פּרויעקט, מיר וועט ביסלעכווייַז זייַן ימפּרוווינג די קוואַליטעט פון יענע איבערזעצונגען דורך בעת יומאַנז ריכטיק די מיסטייקס אַז אונדזער קאָמפּיוטערס האָבן געמאכט. אַזוי עס טורנס אויס מיר האט אַ ביסל מער סטודענטן ווייַזן אַרויף אויף מאנטאג ווי מיר טכילעס דערוואַרט. אין פאַקט, איצט קס50קס האט 100.000 מענטשן פאלגענדע צוזאמען אין שטוב. אַזוי פאַרשטיין איר זענט אַלע טייל פון דעם ינאָגעראַל קלאַס פון מאכן דעם קורס אין קאָמפּיוטער וויסנשאַפֿט בילדונג מער בכלל, מער בראָדלי, צוטריטלעך. און די פאַקט איז איצט, מיט עטלעכע פון ​​די מאַסיוו אָנליין קאָרסאַז, זיי אַלע אָנהייבן מיט די זייער הויך נומערן, ווי מיר ויסקומען צו האָבן געטאן דאָ. אבער דער ציל, לעסאָף, פֿאַר קס50קס איז טאַקע צו באַקומען ווי פילע מענטשן צו די ענדיקן שורה ווי מעגלעך. דורך פּלאַן, קס50קס איז געגאנגען צו זייַן געפֿינט פון דעם פאַרגאַנגענהייַט מאנטיק אַלע די וועג דורך אפריל 15, 2013, אַזוי אַז פאָלקס וואס האָבן שולע קאַמיטמאַנץ אנדערש, אַרבעט, משפּחה, אנדערע קאנפליקטן און די ווי, האָבן אַ ביסל מער בייגיקייַט מיט וואָס צו ונטערטוקנ זיך אין דעם קורס, וואָס, סטייַען עס צו זאָגן, איז גאַנץ אַמבישאַסלי געטאן אויב נאָר איבער די לויף פון בלויז דרייַ חדשים בעשאַס אַ געוויינטלעך זמאַן. אבער די סטודענטן וועט זייַן טאַקאַלינג די זעלבע פּראָבלעם שטעלט, וויוינג דער זעלביקער צופרידן, בעת צוטריט צו די זעלבע קורצע הייזלעך און די ווי. אַזוי פאַרשטיין אַז מיר זענען אַלע טאַקע אין דעם צוזאַמען. און איינער פון די סוף צילן פון קס50קס איז ניט נאָר צו באַקומען ווי פילע פאָלקס צו די ענדיקן שורה און געבן זיי דעם נופאַונד פארשטאנד פון קאָמפּיוטער וויסנשאַפֿט און פּראָגראַממינג אָבער אויך צו האָבן זיי האָבן דעם שערד דערפאַרונג. איינער פון די דיפיינינג טשאַראַקטעריסטיקס פון 50 אויף קאַמפּאַס, מיר האָפֿן, האט שוין דעם סאָרט פון כלל דערפאַרונג, פֿאַר בעסער אָדער פֿאַר ערגער, מאל, אָבער בעת די מענטשן צו ווענדן צו צו די לינקס און צו די רעכט, און אָפיס שעה און די האַקקאַטהאָן און די שיין. עס ס אַ ביסל האַרדער צו טאָן אַז אין מענטש מיט פאָלקס אָנליין, אָבער קס50קס וועט פאַרענדיקן אין אפריל מיט דעם ערשטער אלץ קס50 עקספּאָ, וואָס וועט זייַן אַן אָנליין אַדאַפּטאַטיאָן פון אונדזער געדאַנק פון די שיין ווו די טויזנטער פון סטודענטן וועלן אַלע זייַן פארבעטן צו פאָרלייגן אַ 1 - צו 2-מינוט ווידעא, אָדער אַ סקרעענקאַסט פון זייער לעצט פּרויעקט אָדער ווידעא פון זיי ווייווינג העלא און גערעדט וועגן זייער פּרויעקט און דעמאָינג עס, פיל ווי דיין פּרעדאַסעסערז האָבן געטאן דאָ אויף קאַמפּאַס אין די שיין, אַזוי אַז דורך זמאַן ס סוף, די האָפֿן איז צו האָבן אַ גלאבאלע עקסהיביטיאָן פון די קס50קס סטודענטן 'לעצט פראיעקטן, פיל ווי אַז וואָס אַווייץ איר דעם דעצעמבער דאָ אויף קאַמפּאַס. אַזוי מער אויף אַז אין די חדשים צו קומען. מיט 100.000 סטודענטן, כאָטש, קומט אַ דאַרפֿן פֿאַר אַ ביסל מער קאַס. געגעבן אַז איר גייז זענען בלייזינג דער שטעג דאָ און גענומען קס50 עטלעכע וואָכן אין שטייַגן פון דעם מאַטעריאַל ס מעלדונג צו די פאָלקס אויף עדקס, פאַרשטיין מיר וואָלט ליבע צו אַרייַנציען ווי פילע פון ​​אונדזער אייגן סטודענטן ווי מעגלעך אין דעם איניציאטיוו, ביידע בעשאַס די זמאַן ווי געזונט ווי דעם ווינטער און דעם קומען קוואַל. אַזוי אויב איר וואָלט ווי צו באַקומען ינוואַלווד אין קס50קס, דער הויפּט דזשוינינג אין אויף קס50קס דיסקוטירן, די עדקס ווערסיע פון ​​קס50 דיסקוטירן, וואָס פילע פון ​​איר האָבן שוין ניצן אויף קאַמפּאַס, די אָנליין בוללעטין ברעט, ביטע טאָן קאָפּ צו אַז URL, לאָזן אונדז וויסן וואס איר זענט, ווייַל מיר 'ד ליבע צו בויען אַרויף אַ קאָלעקטיוו פון סטודענטן און שטעקן און פיייקייַט ענלעך אויף קאַמפּאַס וואס זענען פשוט פּלייינג צוזאמען און העלפּינג אויס. און ווען זיי זען אַ קשיא וואָס ס 'באַקאַנט צו זיי, איר הערן אַ תּלמיד ריפּאָרטינג עטלעכע באַג ערגעץ אויס דאָרט אין עטלעכע מדינה אויף די אינטערנעט, און אַז רינגס אַ גלאָק ווייַל איר אויך געהאט אַז זעלביקער אַרויסגעבן אין דיין D-זאַל עטלעכע צייַט צוריק, אַלעווייַ דעמאָלט איר קענען קוראַנט אין און שער דיין אייגן דערפאַרונג. אַזוי ביטע טאָן פּאַרטייק אויב איר וואָלט ווי. קאמפיוטער וויסנשאַפֿט קאָרסאַז אין האַרוואַרד האָבן אַ ביסל פון אַ מסורה, קס50 צווישן זיי, פון בעת ​​עטלעכע קליידונג, עטלעכע קליידער, אַז איר קענען טראָגן שטאלץ בייַ זמאַן ס סוף, זאגן גאַנץ שטאלץ אַז איר פאַרטיק קס50 און גענומען קס50 און די ווי, און מיר שטענדיק פּרובירן צו אַרייַנציען סטודענטן אין דעם פּראָצעס ווי פיל ווי מעגלעך, ווערביי מיר פאַרבעטן, אַרום דעם צייַט פון די זמאַן, סטודענטן צו פאָרלייגן דיזיינז ניצן פאָטאָשאָפּ, אָדער וועלכער געצייַג פון ברירה איר 'ד ווי צו נוצן אויב איר ניטאָ אַ דיזיינער, צו פאָרלייגן דיזיינז פֿאַר ה-שירץ און סוועטשערץ און אַמברעלאַז און קליין באַנדאַנאַז פֿאַר הינט מיר איצט האָבן און די ווי. און אַלץ איז דעמאָלט - די ווינערז יעדער יאָר זענען דעמאָלט יגזיבאַטאַד אויף דעם קורס ס וועבזייַטל בייַ store.cs50.net. אַלץ איז פארקויפט אין פּרייַז דאָרט, אָבער די וועבזייַטל נאָר לויפט זיך און אַלאַוז מענטשן צו קלייַבן די פארבן און דיזיינז אַז זיי ווי. אַזוי איך געדאַנק מיר 'ד נאָר שער עטלעכע פון ​​לעצטע יאָר ס דיזיינז וואָס זענען אויף דער וועבזייַטל חוץ דעם איינער דאָ, וואָס איז אַ יערלעך מסורה. "יעדער טאָג איך בין סעג פאַולטן" איז געווען איינער פון די סאַבמישאַנז לעצטע יאָר, וואָס איז נאָך פאַראַנען דאָרט פֿאַר אַלאַמניי. מיר האט דאָס איין, "קס50, געגרינדעט 1989." איינער פון אונדזער באָוודענס, ראָב, איז געווען זייער פאָלקס לעצטע יאָר. "מאַנשאַפֿט באָוודען" איז געבוירן, דעם פּלאַן האט דערלאנגט, צווישן די שפּיץ סעלערז. ווי איז דאָס איינער דאָ. פילע מענטשן האט "באָוודען פיבער" לויט צו די פארקויפונג לאָגס. פאַרשטיין אַז וואָס קען איצט זייַן דיין פּלאַן דאָרט, אַרויף אויף די אינטערנעט. מער פרטים אויף דעם אין דער ווייַטער פּראָבלעם שטעלט צו קומען. איינער מער געצייַג: איר ווע האט עטלעכע ויסשטעלן און אַלעווייַ איצט עטלעכע הענט-אויף דערפאַרונג מיט גדב, וואָס איז, פון קורס, אַ דעבוגגער און אַלאַוז איר צו מאַניפּולירן דיין פּראָגראַם אין אַ פערלי נידעריק מדרגה, טאן וואָס מינים פון זאכן? וואָס טוט גדב לאָזן איר טאָן? יאָ? געבן מיר עפּעס. [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] גוט. שריט אין פונקציאָנירן, אַזוי איר טאָן ניט נאָר האָבן צו טיפּ לויפן און האָבן די פּראָגראַם קלאַפּ דורך זייַן ינטייערטי, דרוקן אויס דאס צו נאָרמאַל רעזולטאַט. אלא, איר קענען שריט דורך עס שורה ביי שורה, אָדער טייפּינג ווייַטער צו גיין שורה ביי שורה ביי שורה אָדער שריט צו ונטערטוקנ זיך אין אַ פֿונקציע, טיפּיקלי איין אַז איר געשריבן. וואָס אַנדערש טוט גדב לאָזן איר טאָן? יאָ? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] דרוק וועריאַבאַלז. אַזוי אויב איר ווילן צו טאָן אַ ביסל ינטראַספּעקשאַן ין פון דיין פּראָגראַם אָן בעת ​​צו Resort צו שרייבן פּרינטף סטייטמאַנץ אַלע איבער דער אָרט, איר קענען נאָר דרוקן אַ בייַטעוודיק אָדער אַרויסווייַזן אַ בייַטעוודיק. וואָס אַנדערש קענען איר טאָן מיט אַ דעבוגגער ווי גדב? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] פּונקט. איר קענען שטעלן ברעאַקפּאָינץ; איר קענען זאָגן ברעכן דורכפירונג בייַ דער הויפּט פֿונקציע אָדער די פו פונקציאָנירן. איר קענען זאָגן ברעכן דורכפירונג בייַ שורה 123. און ברעאַקפּאָינץ ביסט אַ טאַקע שטאַרק טעכניק ווייַל אויב איר האָבן אַ גענעראַל זינען פון ווו דיין פּראָבלעם מיסטאָמע איז, איר טאָן ניט האָבן צו וויסט צייַט סטעפּינג דורך די פּראָגראַם ס ינטייערטי. איר קענען יסענשאַלי שפּרינגען רעכט עס און דעמאָלט אָנהייב טייפּינג - סטעפּינג דורך אים מיט שריט אָדער ווייַטער אָדער די ווי. אבער די כאַפּן מיט עפּעס ווי גדב איז אַז עס העלפט איר, דער מענטש, געפֿינען דיין פּראָבלעמס און געפֿינען דיין באַגז. עס טוט נישט דאַווקע געפֿינען זיי אַזוי פיל פֿאַר איר. אַזוי מיר באַקענענ די אנדערע טאָג סטילע50, וואָס איז אַ קורץ באַפֿעל שורה געצייַג וואָס פרוווט צו סטייאַלייז דיין קאָד אַ קליין ביסל מער קלינלי ווי איר, דער מענטש, זאל האָבן געטאן. אבער וואָס, אויך, איז טאַקע נאָר אַן עסטעטיש זאַך. אבער עס טורנס אויס דאָרט ס דעם אנדערע געצייַג גערופן וואַלגרינד וואָס איז אַ ביסל מער אַרקיין צו נוצן. זייַן רעזולטאַט איז אַטראָסיאָוסלי קריפּטיק בייַ ערשטער בליק. אבער עס ס וואַנדערפאַלי נוצלעך, ספּעציעל איצט וואָס מיר ניטאָ אין דער טייל פון דער טערמין ווו איר ניטאָ סטאַרטינג צו נוצן מאַללאָק און דינאַמיש זכּרון אַלאַקיישאַן. דאס קענען גיין טאַקע, טאַקע פאַלש געשווינד. ווייַל אויב איר פאַרגעסן צו פֿרייַ דיין זכּרון, אָדער איר דערעפערענסע עטלעכע נאַל טייַטל, אָדער איר דערעפערענסע עטלעכע מיסט טייַטל, וואָס איז טיפּיקלי דער סימפּטאָם אַז רעזולטאַטן? סעג שולד. און איר באַקומען דאָס האַרץ טעקע פון ​​עטלעכע נומער פון קילאבייט אָדער מעגאבייט אַז רעפּראַזענץ די שטאַט פון דיין פּראָגראַם ס זכּרון ווען עס קראַשט, אָבער דיין פּראָגראַם לעסאָף סעג חסרונות, סעגמאַנטיישאַן שולד, וואָס מיטל עפּעס שלעכט געטראפן כּמעט שטענדיק פֿאַרבונדענע צו אַ זכּרון-פֿאַרבונדענע גרייַז אַז איר געמאכט ערגעץ. אַזוי וואַלגרינד העלפט איר געפֿינען זאכן ווי דעם. עס ס אַ געצייַג וואָס איר לויפן, ווי גדב, נאָך איר 'ווע צונויפגעשטעלט דיין פּראָגראַם, אָבער אלא ווי לויפן דיין פּראָגראַם גלייַך, איר לויפן וואַלגרינד און איר פאָרן צו אים דיין פּראָגראַם, פּונקט ווי איר טאָן מיט גדב. איצט, די באַניץ, צו באַקומען די בעסטער מין פון רעזולטאַט, איז אַ ביסל לאַנג, אַזוי רעכט דאָרט אַטאַפּ פון די פאַרשטעלן איר וועט זען וואַלגרינד-V. "-V" כּמעט יונאַווערסאַלי מיטל ווערבאָסע ווען איר ניטאָ ניצן מגילה אויף אַ לינוקס קאָמפּיוטער. אַזוי עס מיטל שפּייַען אויס מער דאַטן ווי איר זאל דורך פעליקייַט. "- רינען-טשעק = פול." דאס איז נאָר געזאגט טשעק פֿאַר אַלע מעגלעך זכּרון ליקס, מיסטייקס אַז איך זאל האָבן געמאכט. דעם, אויך, איז אַ פּראָסט פּעראַדיים מיט לינוקס מגילה. בכלל, אויב איר האָבן אַ באַפֿעל שורה אַרגומענט אַז ס אַ "באַשטימען", אַז ס געמיינט צו טוישן די פּראָגראַם ס נאַטור, און עס ס אַ איין בריוו, עס ס-V, אָבער אויב אַז ס סוויטשט, נאָר דורך פּלאַן פון די פּראָגראַמיסט, איז אַ פול וואָרט אָדער סעריע פון ​​ווערטער, די באַפֿעל שורה אַרגומענט סטאַרץ מיט -. די ביסט נאָר מענטש קאַנווענשאַנז, אָבער איר וועט זען זיי ינקריסינגלי. און דעמאָלט, לעסאָף, "אַ.אָוט" איז די אַרביטראַריש נאָמען פֿאַר די פּראָגראַם אין דעם באַזונדער בייַשפּיל. און דאָ ס עטלעכע פארשטייער רעזולטאַט. איידער מיר קוקן אין וואָס וואָס זאל מיינען, לאָזן מיר גיין איבער צו אַ סניפּאַט פון קאָד איבער דאָ. און לאָזן מיר באַוועגן דעם אויס פון די וועג, קומענדיק באַלד, און לאָזן ס נעמען אַ קוק בייַ מעמאָרי.ק, וואָס איז דעם קורץ בייַשפּיל דאָ. אַזוי אין דעם פּראָגראַם, לאָזן מיר פארגרעסער אין אויף די פאַנגקשאַנז און שאלות. מיר האָבן אַ פֿונקציע הויפּט וואָס רופט אַ פֿונקציע, F, און דעמאָלט וואָס טוט F גיינ ווייַטער צו טאָן, אין אַ ביסל טעכניש ענגליש? וואָס טוט F גיינ ווייַטער צו טאָן? ווי וועגן איך וועט אָנהייבן מיט שורה 20, און די שטערן 'ס אָרט טוט נישט ענין, אָבער איך וועט נאָר זייַן קאָנסיסטענט דאָ מיט לעצטע לעקציע. וואָס ס שורה 20 טאָן פֿאַר אונדז? אויף די לינקס האַנט זייַט. מיר וועט ברעכן עס אַראָפּ ווייַטער. ינט * X: וואָס טוט אַז טאָן? אָוקיי. עס ס דיקלערינג אַ טייַטל, און איצט לאָזן ס זייַן אַפֿילו מער טעכניש. וואָס טוט עס מיינען, זייער קאַנקריטלי, צו דערקלערן אַ טייַטל? עמעצער אַנדערש? יאָ? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] טו ווייַט. אַזוי איר ניטאָ לייענען צו די רעכט-האַנט זייַט פון די גלייַך צייכן. זאל ס פאָקוס נאָר אויף די לינקס, נאָר אויף ינט * X. דאס טוט "דערקלערן" אַ טייַטל, אָבער איצט לאָזן ס ונטערטוקנ זיך אין דיפּער צו אַז דעפֿיניציע. וואָס טוט אַז קאַנקריטלי, טעקניקלי מיינען? יאָ? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] אָוקיי. עס ס פּריפּערינג צו ראַטעווען אַ אַדרעס אין זכּרון. גוט. און לאָזן ס נעמען דעם איין שריט ווייַטער; עס ס דיקלערינג אַ בייַטעוודיק, X, אַז ס 32 ביטן. און איך וויסן עס ס 32 ביטן ווייַל -? עס ס נישט ווייַל עס ס אַ ינט, ווייַל עס ס אַ טייַטל אין דעם פאַל. צופאַל אַז עס ס איין און די זעלבע מיט אַן ינט, אָבער דער פאַקט אַז דאָרט ס די שטערן דאָרט מיטל דאָס איז אַ טייַטל און אין די אַפּפּליאַנסע, ווי מיט פילע קאָמפּיוטערס, אָבער ניט אַלע, פּוינטערז זענען 32 ביטן. אויף מער מאָדערן ייַזנוואַרג ווי די לעצט מאַקס, די לעצט פּקס, איר זאל האָבן 64-ביסל פּוינטערז, אָבער אין די אַפּפּליאַנסע, די זאכן זענען 32 ביטן. אַזוי מיר וועט סטאַנדערדייז אויף וואָס. מער קאַנקריטלי, די דערציילונג גייט ווי גייט: מיר "דערקלערן" אַ טייַטל; וואָס טוט וואָס מיינען? מיר גרייטן צו קראָם אַ זכּרון אַדרעס. וואָס טוט וואָס מיינען? מיר מאַכן אַ בייַטעוודיק גערופן X וואָס נעמט אַרויף 32 ביטן וואָס וועט באַלד קראָם די אַדרעס פון אַ ינטעגער. און אַז ס מיסטאָמע וועגן ווי גענוי ווי מיר קענען באַקומען. עס ס פייַן מאָווינג פאָרויס צו פאַרפּאָשעטערן די וועלט און נאָר זאָגן דערקלערן אַ טייַטל גערופן X. דערקלערן אַ טייַטל, אָבער פאַרשטיין און פֿאַרשטיין וואָס ס 'פאקטיש געגאנגען אויף אַפֿילו אין נאָר יענע ביסל אותיות. איצט, דאָס איינער ס כּמעט אַ ביסל גרינגער, אַפֿילו כאָטש עס ס אַ מער אויסדרוק. אַזוי וואָס איז דאָס טאן, אַז ס כיילייטיד איצט: "מאַללאָק (10 * סיזעאָף (ינט));" יאָ? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] גוט. און איך וועט נעמען עס דאָרט. עס ס אַלאַקייטינג אַ פּייַדע פון ​​זכּרון פֿאַר צען ינטאַדזשערז. און איצט לאָזן ס ונטערטוקנ זיך אין אַ ביסל דיפּער; עס ס אַלאַקייטינג אַ פּייַדע פון ​​זכּרון פֿאַר צען ינטאַדזשערז. וואָס איז מאַללאָק דעמאָלט אומגעקערט? דער אַדרעס פון וואָס פּייַדע, אָדער, מער קאַנקריטלי, די אַדרעס פון די ערשטער ביטע פון ​​וואָס פּייַדע. ווי דעמאָלט בין איך, די פּראָגראַמיסט, צו וויסן ווו אַז פּייַדע פון ​​זכּרון ענדס? איך וויסן אַז עס ס קאַנטיגיואַס. מאַללאָק, דורך דעפֿיניציע, וועט געבן איר אַ קאַנטיגיואַס פּייַדע פון ​​זכּרון. קיין גאַפּס אין עס. איר האָבן צוטריט צו יעדער ביטע אין אַז פּייַדע, צוריק צו צוריק צו צוריק, אָבער ווי טאָן איך וויסן ווו דער סוף פון דעם פּייַדע פון ​​זכּרון איז? ווען איר נוצן מאַללאָק? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] גוט. איר טאָן ניט. איר האָבן צו געדענקען. איך האָבן צו געדענקען אַז איך געניצט די ווערט 10, און איך טאָן ניט אַפֿילו ויסקומען צו האָבן געטאן אַז דאָ. אבער די אָנוס איז לעגאַמרע אויף מיר. סטרלען, וואָס מיר ווע ווערן אַ ביסל רילייאַנט אויף פֿאַר סטרינגס, אַרבעט נאָר ווייַל פון דעם קאַנווענשאַן פון בעת ​​\ 0 אָדער דעם ספּעציעל נול כאַראַקטער, נול, בייַ דער סוף פון אַ שטריקל. וואָס טוט נישט האַלטן פֿאַר נאָר אַרביטראַריש טשאַנגקס פון זכּרון. עס ס אַרויף צו איר. אַזוי שורה 20, דעמאָלט, אַלאַקייץ אַ פּייַדע פון ​​זכּרון וואָס קענען קראָם צען ינטאַדזשערז, און עס סטאָרז דער אַדרעס פון דער ערשטער ביטע פון וואָס פּייַדע פון ​​זכּרון אין די בייַטעוודיק גערופן X. ערגאָ, וואָס איז אַ טייַטל. אַזוי שורה 21, ליידער, איז געווען אַ גרייַז. אבער ערשטער, וואָס איז עס טאן? עס ס זאגן קראָם בייַ אָרט 10, 0 ינדעקסט, פון דער פּייַדע פון ​​זכּרון גערופן X די ווערט 0. אַזוי באַמערקן אַ פּאָר פון זאכן זענען געגאנגען אויף. אפילו כאָטש X איז אַ טייַטל, צוריקרופן פון אַ פּאָר וואָכן צוריק אַז איר קענען נאָך נוצן די מענגע-נוסח קוואַדראַט קאַנטיקער נאָוטיישאַן. ווייַל אַז ס 'פאקטיש קורץ-האַנט נאָוטיישאַן פֿאַר די מער קריפּטיק-קוקן טייַטל אַריטמעטיק. ווו מיר וואָלט טאָן עפּעס ווי דאָס: נעמען די אַדרעס X, מאַך 10 ספּאַץ איבער, דעמאָלט גיין דאָרט צו וועלכער אַדרעס איז סטאָרד בייַ אַז אָרט. אבער פראַנגקלי, דאָס איז נאָר כייַיש צו לייענען און באַקומען באַקוועם מיט. אַזוי די וועלט טיפּיקלי ניצט די קוואַדראַט בראַקאַץ נאָר ווייַל עס ס אַזוי פיל מער מענטשלעך-פרייַנדלעך צו לייענען. אבער אַז ס 'וואָס ס טאַקע געגאנגען אויף ונטער דער קאַפּטער; X איז אַן אַדרעס, נישט אַ מענגע, פּער סיי. אַזוי דאָס איז סטאָרינג 0 בייַ אָרט 10 אין X. פארוואס איז דאָס שלעכט? יאָ? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] עקסאַקטלי. מיר נאָר אַלאַקייטיד צען ינץ, אָבער מיר ציילן פון 0 ווען פּראָגראַממינג אין C, אַזוי איר האָבן צוטריט צו 0 1 2 3 4 5 6 7 8 9, אָבער ניט 10. אַזוי אָדער די פּראָגראַם איז געגאנגען צו סעג שולד אָדער עס ס נישט. אבער מיר טאָן ניט טאַקע וויסן; דעם איז סאָרט פון אַ נאָנדעטערמיניסטיק נאַטור. עס טאַקע דעפּענדס אויף צי מיר באַקומען מאַזלדיק. אויב עס טורנס אויס אַז די אַפּערייטינג סיסטעם טוט נישט מיינונג אויב איך נוצן אַז עקסטרע ביטע, אַפֿילו כאָטש עס האט ניט געגעבן עס צו מיר, מיין פּראָגראַם זאל נישט קראַך. עס ס רוי, עס ס וואָגן, אָבער איר זאל נישט זען אַז סימפּטאָם, אָדער איר זאל זען עס נאָר אַמאָל אין אַ בשעת. אבער דער פאַקט איז אַז די באַג איז, אין פאַקט, דאָרט. און עס ס טאַקע פּראָבלעמאַטיק אויב איר ווע געשריבן אַ פּראָגראַם וואָס איר ווילן צו זייַן ריכטיק, אַז איר ווע פארקויפט די פּראָגראַם אַז מענטשן זענען ניצן אַז יעדער אַמאָל אין אַ בשעת קראַשיז ווייַל, פון קורס, דאָס איז נישט גוט. אין פאַקט, אויב איר האָבן אַן אַנדרויד טעלעפאָן אָדער אַ יפאָנע און איר אָפּלאָדירן אַפּפּס די טעג, אויב איר ווע אלץ האט אַן אַפּ נאָר פאַרלאָזן, אַלע פון ​​אַ פּלוצעמדיק עס פארשווינדט, אַז ס 'כּמעט שטענדיק דער רעזולטאַט פון עטלעכע זכּרון-פֿאַרבונדענע אַרויסגעבן, ווערביי די פּראָגראַמיסט סקרוד אַרויף און דערעפערענסעד אַ טייַטל אַז ער אָדער זי זאָל ניט האָבן, און דער רעזולטאַט פון יאָס אָדער אַנדרויד איז צו נאָר טייטן די פּראָגראַם בעסאַכאַקל אלא ווי ריזיקירן אַנדיפיינד אָפּפירונג אָדער עטלעכע מין פון זיכערהייַט קאָמפּראָמיס. עס ס איין אנדערע באַג אין דעם פּראָגראַם חוץ דעם איין. וואָס אַנדערש האָבן איך סקרוד אַרויף אין דעם פּראָגראַם? איך ווע ניט פּראַקטאַסט וואָס איך ווע אנגעזאגט. יאָ? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] גוט. איך האָבן נישט באפרייט דעם זכּרון. אַזוי די הערשן פון גראָבער פינגער איצט האט צו זייַן עניטיים איר רופן מאַללאָק, איר מוזן רופן פּאָטער ווען איר זענט געטאן ניצן אַז זכּרון. איצט, ווען וואָלט איך ווילן צו פֿרייַ דעם זכּרון? מיסטאָמע, אַסומינג דעם ערשטער שורה איז ריכטיק, איך וואָלט וועלן צו טאָן עס דאָ. ווייַל איך קען נישט, פֿאַר בייַשפּיל, טאָן עס אַראָפּ דאָ. פארוואס? נאָר אויס פון פאַרנעם. אַזוי אַפֿילו כאָטש מיר רע גערעדט וועגן פּוינטערז, דאָס איז אַ וואָך 2 אָדער 3 אַרויסגעבן, ווו x איז נאָר אין פאַרנעם ין פון די געגרייַזלט ברייסאַז ווו עס איז געווען דערקלערט. אַזוי איר באשטימט קענען ניט פֿרייַ עס דאָרט. מייַן נאָר געלעגנהייַט צו פֿרייַ עס איז בעערעך נאָך שורה 21. דאס איז אַ פערלי פּשוט פּראָגראַם; עס איז געווען פערלי גרינג אַמאָל איר מין פון אלנגעוויקלט דיין מיינונג אַרום וואָס די פּראָגראַם 'ס טאן, ווו די מיסטייקס געווען. און אַפֿילו אויב איר האט ניט זען עס בייַ ערשטער, אַלעווייַ עס ס אַ ביסל קלאָר ווי דער טאָג איצט אַז די מיסטייקס זענען שיין לייכט סאַלווד און לייכט געמאכט. אבער ווען אַ פּראָגראַם איז מער ווי 12 שורות לאַנג, עס ס 50 שורות לאַנג, 100 שורות לאַנג, גיין דורך דיין קאָד שורה ביי שורה, טראכטן דורך עס לאַדזשיקלי, איז מעגלעך אָבער ניט דער הויפּט שפּאַס צו טאָן, קעסיידער קוקן פֿאַר באַגז, און עס ס אויך שווער צו טאָן, און אַז ס וואָס אַ געצייַג ווי וואַלגרינד יגזיסץ. זאל מיר גיין פאָרויס און טאָן דעם: לאָזן מיר עפענען מיין וואָקזאַל פֿענצטער, און לאָזן מיר נישט נאָר לויפן זכּרון, ווייַל זכּרון מיינט צו זייַן פייַן. איך בין געטינג מאַזלדיק. געגאנגען צו אַז נאָך ביטע אין די סוף פון די מענגע טוט ניט ויסקומען צו זייַן אויך פּראָבלעמאַטיק. אבער לאָזן מיר, נאָנעטהעלעסס, טאָן אַ מייושעוודיקייַט טשעק, וואָס נאָר מיטל צו טשעק צי אָדער נישט דעם איז פאקטיש ריכטיק. אַזוי לאָזן ס טאָן וואַלגרינד-V - רינען-טשעק = פול, און דעריבער די נאָמען פון די פּראָגראַם אין דעם פאַל איז זכּרון, ניט אַ.אָוט. אַזוי לאָזן מיר גיין פאָרויס און טאָן דעם. שלאָגן אַרייַן. ליב גאָט. דאס איז זייַן פּראָדוקציע, און דאָס איז וואָס איך אַלודאַד צו פריער. אבער, אויב איר לערנען צו לייענען דורך אַלע פון ​​די ומזין דאָ, רובֿ פון דעם איז נאָר דיאַגנאָסטיק רעזולטאַט אַז ס 'נישט אַז טשיקאַווע. וואָס דיין אויג טאַקע וויל צו זייַן קוקן פֿאַר איז קיין דערמאָנען פון טעות אָדער פאַרקריפּלט. ווערטער אַז פֿאָרשלאָגן פּראָבלעמס. און טאַקע, לאָזן ס זען וואָס ס 'געגאנגען אומרעכט אַראָפּ דאָ. איך האָבן אַ קיצער פון עטלעכע סאָרט ", אין נוצן בייַ אַרויסגאַנג: 40 ביטעס אין 1 בלאַקס." איך בין ניט טאַקע זיכער וואָס אַ בלאָק איז נאָך, אָבער 40 ביטעס פאקטיש פילז ווי איך קען רעכענען אויס ווו אַז ס קומען פון. 40 ביטעס. פארוואס זענען 40 ביטעס אין נוצן בייַ אַרויסגאַנג? און מער ספּאַסיפיקלי, אויב מיר מעגילע אַראָפּ דאָ, וואָס האָבן איך באשטימט פאַרפאַלן 40 ביטעס? יאָ? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] פּערפעקט. יאָ, פּונקט. עס זענען געווען צען ינטאַדזשערז, און יעדער פון יענע איז גרייס פון 4, אָדער 32 ביטן, אַזוי איך ווע פאַרפאַלן דווקא 40 ביטעס ווייַל, ווי איר פארגעלייגט, איך האב נישט גערופן פֿרייַ. אַז ס איינער באַג, און איצט לאָזן ס קוק אַראָפּ אַ ביסל ווייַטער און זען ווייַטער צו דעם, "פאַרקריפּלט שרייַבן פון נומער 4". איצט וואָס איז דאָס? דעם אַדרעס איז אויסגעדריקט וואָס באַזע נאָוטיישאַן, משמעות? דאס איז העקסאַדעסימאַל, און קיין צייַט איר זען אַ נומער סטאַרטינג מיט 0קס, עס מיטל העקסאַדעסימאַל, וואָס מיר האבן וועג צוריק אין, איך טראַכטן, פּסעט 0 ס אָפּטיילונג פון שאלות, וואָס איז געווען נאָר צו טאָן אַ וואָרמאַפּ געניטונג, קאַנווערטינג דעצימאַל צו העקס צו ביינערי און אַזוי אַרויס. העקסאַדעסימאַל, נאָר דורך מענטש קאַנווענשאַן, איז יוזשאַוואַלי געניצט צו פאָרשטעלן פּוינטערז אָדער, מער בכלל, ווענדט. עס ס נאָר אַ קאַנווענשאַן, ווייַל עס ס אַ ביסל גרינגער צו לייענען, עס ס אַ ביסל מער סאָליד ווי עפּעס ווי דעצימאַל, און ביינערי איז אַרויסגעוואָרפן פֿאַר רובֿ יומאַנז צו נוצן. אַזוי איצט וואָס טוט דאָס מיינען? גוט, עס קוקט ווי דאָרט ס אַ פאַרקריפּלט שרייַבן פון נומער 4 אויף שורה 21 פון מעמאָרי.ק. אַזוי לאָזן ס גיין צוריק צו שורה 21, און טאַקע, דאָ איז אַז פאַרקריפּלט שרייַבן. אַזוי וואַלגרינד איז נישט געגאנגען צו גאָר האַלטן מיין האַנט און זאָגן מיר וואָס די פאַרריכטן איז, אָבער עס איז דיטעקטינג אַז איך בין טאן אַ פאַרקריפּלט שרייַבן. איך בין רירנדיק 4 ביטעס אַז איך זאָל נישט זייַן, און משמעות אַז ס ווייַל, ווי איר שפּיציק אויס, איך בין טאן [10] אַנשטאָט פון [9] מאַקסימאַללי אָדער [0] אָדער עפּעס אין צווישן. מיט וואַלגרינד, פאַרשטיין קיין צייַט איר ניטאָ איצט שרייבן אַ פּראָגראַם וואָס ניצט פּוינטערז און ניצט זכּרון, און מאַללאָק מער ספּאַסיפיקלי, באשטימט באַקומען אין די מידע פון ​​פליסנדיק דעם לאַנג אָבער זייער לייכט קאַפּיד און פּייסטיד באַפֿעל פון וואַלגרינד צו זען אויב עס ס עטלעכע ערראָרס אין דאָרט. און עס וועט זייַן אָוווערוועלמינג יעדער צייַט איר זען די רעזולטאַט, אָבער נאָר פּאַרס דורך וויזשוואַלי אַלע פון ​​דער רעזולטאַט און זען אויב איר זען דערמאנט פון ערראָרס אָדער וואָרנינגז אָדער פאַרקריפּלט אָדער פאַרפאַלן. קיין ווערטער אַז געזונט ווי איר סקרוד אַרויף ערגעץ. אַזוי פאַרשטיין אַז ס אַ נייַ געצייַג אין דיין טאָאָלקיט. איצט אויף מאנטאג, מיר האט אַ גאַנץ בינטל פון פאָלקס קומען אַרויף דאָ און פאָרשטעלן דעם געדאנק פון אַ לינגקט רשימה. און מיר באַקענענ די לינגקט רשימה ווי אַ לייזונג צו וואָס פּראָבלעם? יאָ? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] גוט. ערייז קענען ניט האָבן זכּרון צוגעגעבן צו זיי. אויב איר אַלאַקייט אַ מענגע פון ​​גרייס 10, אַז ס אַלע איר באַקומען. איר קענען רופן אַ פונקציאָנירן ווי רעאַללאָק אויב איר טכילעס גערופן מאַללאָק, און וואָס קענען פּרובירן צו וואַקסן די מענגע אויב עס איז פּלאַץ צו די סוף פון עס אַז קיין איינער אַנדערש איז ניצן, און אויב דאָרט ס נישט, עס וועט נאָר געפֿינען איר אַ ביגער פּייַדע ערגעץ אַנדערש. אבער דעמאָלט עס וועט קאָפּיע אַלע פון ​​יענע ביטעס אין די נייַ מענגע. דאס סאָונדס ווי אַ זייער ריכטיק לייזונג. פארוואס איז דאָס אַנאַטראַקטיוו? איך מיינען עס אַרבעט, יומאַנז האָבן סאַלווד דעם פּראָבלעם. פארוואס האבן מיר דאַרפֿן צו האַלטן עס אויף מאנטאג מיט לינגקט רשימות? יאָ? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] עס קען נעמען אַ לאנגע צייַט. אין פאַקט, קיין צייַט איר ניטאָ פאַך מאַללאָק אָדער רעאַללאָק אָדער קאַללאָק, וואָס איז נאָך אנדערן איינער, קיין צייַט איר, די פּראָגראַם, זענען גערעדט צו די אַפּערייטינג סיסטעם, איר טענד צו פּאַמעלעך די פּראָגראַם אַראָפּ. און אויב איר ניטאָ טאן די מינים פון זאכן אין לופּס, איר ניטאָ טאַקע סלאָוינג דאס אַראָפּ. איר ניטאָ ניט געגאנגען צו באַמערקן דעם פֿאַר די סימפּלאַסט פון "העלא וועלט" טיפּ מגילה, אָבער אין פיל גרעסערע מגילה, אַסקינג די אַפּערייטינג סיסטעם ווידער און ווידער פֿאַר זכּרון אָדער געבן עס צוריק ווידער און ווידער טענדז ניט צו זייַן אַ גוטע זאַך. פּלוס, עס ס נאָר סאָרט פון ינאַלעקטשולי - עס ס אַ גאַנץ וויסט פון צייַט. פארוואס אַלאַקייט מער און מער זכּרון, ריזיקירן קאַפּיינג אַלץ אין די נייַ מענגע, אויב איר האָבן אַן אָלטערנאַטיוו וואָס לעץ איר אַלאַקייט נאָר ווי פיל זכּרון ווי איר פאקטיש דאַרפֿן? אַזוי דאָרט ס פּלאַסיז און מיינאַסיז אין דאָ. איינער פון די פּלאַסיז איצט איז אַז מיר האָבן דיינאַמיזאַם. טוט ניט ענין ווו די טשאַנגקס פון זכּרון ביסט וואָס זענען פֿרייַ, איך קענען נאָר סאָרט פון מאַכן די ברויט ברעקלעך דורך פּוינטערז צו שטריקל מיין גאַנץ לינגקט רשימה צוזאַמען. אבער איך באַצאָלן אין מינדסטער איין פּרייַז. וואָס טאָן איך האָבן צו געבן אַרויף אין גיינינג לינגקט רשימות? יאָ? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] גוט. איר דאַרפֿן מער זכּרון. איצט איך דאַרפֿן פּלאַץ פֿאַר די פּוינטערז, און אין די פאַל פון דעם סופּער פּשוט לינגקט רשימה וואָס איז בלויז טריינג צו קראָם ינטאַדזשערז, וואָס זענען 4 ביטעס, מיר האַלטן געזאגט געזונט, אַ טייַטל איז 4 ביטעס, אַזוי איצט איך ווע ממש דאַבאַלד די סומע פון ​​זכּרון איך דאַרפֿן נאָר צו קראָם דעם רשימה. אבער ווידער, דאָס איז אַ קעסיידערדיק טריידאָף אין קאָמפּיוטער וויסנשאַפֿט צווישן צייַט און פּלאַץ און אַנטוויקלונג, מי און אנדערע רעסורסן. וואָס ס אנדערן דאַונסייד פון ניצן אַ לינגקט רשימה? יאָ? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] גוט. ניט ווי גרינג צו צוטריט. מיר קענען ניט מער ליווערידזש וואָך 0 פּרינציפּן ווי טיילן און קאַנגקער. און מער ספּאַסיפיקלי, ביינערי זוכן. ווייַל אַפֿילו כאָטש מיר יומאַנז קענען זען בעערעך ווו די מיטל פון דעם רשימה איז, דער קאָמפּיוטער נאָר ווייסט אַז דאָס לינגקט רשימה סטאַרץ בייַ אַדרעס גערופן ערשטער. און אַז ס 0קס123 אָדער עפּעס ווי אַז. און דער נאָר וועג די פּראָגראַם קענען געפֿינען די מיטל עלעמענט איז צו פאקטיש זוכן די גאנצע רשימה. און אַפֿילו דעמאָלט, עס ממש האט צו זוכן די גאנצע רשימה ווייַל אַפֿילו אַמאָל איר דערגרייכן די מיטל עלעמענט דורך פאלגענדע די פּוינטערז, איר, די פּראָגראַם, האָבן קיין געדאַנק ווי לאַנג דעם רשימה איז, פּאַטענטשאַלי, ביז איר שלאָגן די סוף פון אים, און ווי טאָן איר וויסן פּראָגראַממאַטיקאַללי אַז איר ניטאָ בייַ דער סוף פון אַ לינגקט רשימה? עס ס אַ ספּעציעל נאַל טייַטל, אַזוי ווידער, אַ קאַנווענשאַן. אלא ווי נוצן דעם טייַטל, מיר באשטימט טאָן ניט ווילן עס צו זייַן עטלעכע מיסט ווערט פּוינטינג אַוועק בינע ערגעץ; מיר ווילן עס צו זייַן האַנט אַראָפּ, נאַל, אַזוי אַז מיר האָבן דעם טערמינוס אין דעם דאַטן סטרוקטור אַזוי מיר וויסן ווו עס ענדס. וואָס אויב מיר ווילן צו מאַניפּולירן דעם? מיר האבן רובֿ פון דעם וויזשוואַלי, און מיט יומאַנז, אָבער וואָס אויב מיר ווילן צו טאָן אַ ינסערשאַן? אַזוי דער אָריגינעל רשימה איז 9, 17, 20, 22, 29, 34. וואָס אויב מיר דעמאָלט געוואלט צו מאַללאָק פּלאַץ פֿאַר נומער 55, אַ נאָדע פֿאַר אים, און דעמאָלט מיר ווילן צו אַרייַנלייגן 55 אין דער רשימה פּונקט ווי מיר האבן אויף מאנטאג? ווי טאָן מיר טאָן דעם? נו, אַניטאַ געקומען אַרויף און זי יסענשאַלי געגאנגען די רשימה. זי אנגעהויבן אין דער ערשטער עלעמענט, דעמאָלט דער ווייַטער, דער ווייַטער, דער ווייַטער, דער ווייַטער, דער ווייַטער. סוף שלאָגן די לינקס-האַנט אַלע די וועג אַראָפּ און איינגעזען אָה, דאָס איז נאַל. אַזוי וואָס טייַטל מאַניפּיאַליישאַן דארף צו זייַן געטאן? דער מענטש וואס איז געווען אויף די סוף, נומער 34, דארף זייַן לינקס האַנט אויפשטיין צו פונט בייַ 55, 55 דארף זייער לינקס אָרעם פּוינטינג אַראָפּ צו זייַן די נייַ נאַל טערמינאַטאָר. געטאן. שיין גרינג צו אַרייַנלייגן 55 אין אַ אויסגעשטעלט רשימה. און ווי זאל דעם קוק? זאל מיר גיין פאָרויס און עפענען זיך עטלעכע קאָד בייַשפּיל דאָ. איך וועט עפענען אַרויף געדיט, און לאָזן מיר עפענען זיך צוויי טעקעס ערשטער. איינער איז ליסט1.ה, און לאָזן מיר נאָר דערמאָנען אַז דאָס איז געווען דער פּייַדע פון ​​קאָד אַז מיר געניצט צו פאָרשטעלן אַ נאָדע. א נאָדע האט ביידע אַ ינט גערופן ען און אַ טייַטל גערופן ווייַטער אַז נאָר ווייזט צו דער ווייַטער זאַך אין די רשימה. וואָס איז איצט אין אַ. ה טעקע. פארוואס? עס ס דעם קאַנווענשאַן, און מיר האָבן נישט גענומען מייַלע פון ​​דעם אַ ריזיק סומע זיך, אָבער דער מענטש וואס געשריבן פּרינטף און אנדערע פאַנגקשאַנז געגעבן ווי אַ טאַלאַנט צו דער וועלט אַלע פון ​​יענע פאַנגקשאַנז דורך שרייבן אַ טעקע גערופן סטדיאָ.ה. און דעמאָלט דאָרט ס סטרינג.ה, און דעמאָלט דאָרט ס מאַפּ.ה, און דאָרט ס אַלע די ה טעקעס אַז איר זאל האָבן געזען אָדער געניצט בעשאַס דער טערמין געשריבן דורך אנדערע מענטשן. טיפּיקלי אין יענע. ה טעקעס זענען בלויז זאכן ווי טיפּעדעפס אָדער דעקלעריישאַנז פון מנהג טייפּס אָדער דעקלעריישאַנז פון קאַנסטאַנץ. איר טאָן ניט שטעלן פאַנגקשאַנז 'ימפּלעמענטאַטיאָנס אין כעדער טעקעס. איר שטעלן, אַנשטאָט, נאָר זייער פּראָוטאַטייפּס. איר שטעלן זאכן איר ווילן צו טיילן מיט די וועלט וואָס זיי דאַרפֿן אין סדר צו צונויפנעמען זייער קאָד. אַזוי פּונקט צו באַקומען אין דעם מידע, מיר באַשלאָסן צו טאָן די זעלבע זאַך. עס ס ניט פיל אין ליסט1.ה, אָבער מיר 'ווע שטעלן עפּעס וואָס זאל זייַן פון אינטערעס צו מענטשן אין דער וועלט וואס ווילן צו נוצן אונדזער לינגקט רשימה ימפּלאַמענטיישאַן. איצט, אין ליסט1.ק, איך וועל נישט גיין דורך דעם גאנצע זאַך ווייַל עס ס אַ ביסל לאַנג, דעם פּראָגראַם, אָבער לאָזן ס לויפן עס פאַקטיש געשווינד בייַ די פּינטלעך. זאל מיר צונויפנעמען ליסט1, לאָזן מיר דעריבער לויפן ליסט1, און וואָס איר וועט זען איז מיר ווע סימיאַלייטיד אַ פּשוט ביסל פּראָגראַם דאָ אַז ס 'געגאנגען צו לאָזן מיר צו לייגן און באַזייַטיקן נומערן צו אַ רשימה. אַזוי לאָזן מיר גיין פאָרויס און טיפּ 3 פֿאַר די מעניו אָפּציע 3. איך ווילן צו אַרייַנלייגן די נומער - לאָזן ס טאָן דער ערשטער נומער, וואָס איז געווען 9, און איצט איך בין דערציילט די רשימה איז איצט 9. זאל מיר גיין פאָרויס און טאָן אן אנדער ינסערשאַן, אַזוי איך שלאָגן מעניו אָפּציע 3. וואָס נומער טאָן איך ווילן צו אַרייַנלייגן? 17. אַרייַן. און איך וועט טאָן נאָר איינער מער. זאל מיר אַרייַנלייגן די נומער 22. אַזוי מיר האָבן די ביגינינגז פון די לינגקט רשימה אַז מיר האט אין רוק פאָרעם אַ מאָמענט צוריק. ווי איז דאָס ינסערשאַן פאקטיש געשעעניש? טאקע, 22 איז איצט אין די סוף פון די רשימה. אַזוי די געשיכטע מיר דערציילט אויף בינע אויף מאנטאג און ריקאַפּט נאָר איצט מוזן פאקטיש זייַן געשעעניש אין קאָד. זאל ס נעמען אַ קוק. זאל מיר מעגילע אַראָפּ אין דעם טעקע. מיר וועט גלאָס איבער עטלעכע פון ​​די פאַנגקשאַנז, אָבער מיר וועט גיין אַראָפּ צו, זאָגן, די אַרייַנלייגן פונקציאָנירן. זאל ס זען ווי מיר גיין וועגן ינסערטינג אַ נייַ נאָדע אין דעם לינגקט רשימה. ווו איז די רשימה דערקלערט? נו, לאָזן ס מעגילע אַלע די וועג אַרויף בייַ די שפּיץ, און באַמערקן אַז מיין לינגקט רשימה איז יסענשאַלי דערקלערט ווי אַ איין טייַטל אַז ס טכילעס נאַל. אַזוי איך בין ניצן אַ גלאבאלע בייַטעוודיק דאָ, וואָס אין אַלגעמיין מיר ווע אנגעזאגט קעגן ווייַל עס מאכט דיין קאָד אַ ביסל מעסי צו טייַנען, עס ס סאָרט פון פויל, יוזשאַוואַלי, אָבער עס ס ניט פויל און עס ס נישט פאַלש און עס ס נישט שלעכט אויב דיין פּראָגראַם ס פּיאַטע ציל אין לעבן איז צו סימולירן איינער לינגקט רשימה. וואָס איז פּונקט וואָס מיר רע טאן. אַזוי אלא ווי דערקלערן דעם אין הויפּט און דעריבער האָבן צו פאָרן עס צו יעדער פֿונקציע מיר ווע געשריבן אין דעם פּראָגראַם, מיר אַנשטאָט פאַרשטיין טאַקע, לאָזן ס נאָר מאַכן עס גלאבאלע ווייַל דער גאנצער ציל פון דעם פּראָגראַם איז צו באַווייַזן איין און בלויז איין לינגקט רשימה. אַזוי אַז פילז אָוקיי. דאָ זענען מיינע פּראָוטאַטייפּס, און מיר וועט נישט גיין דורך אַלע פון ​​די, אָבער איך געשריבן אַ אויסמעקן פונקציאָנירן, אַ געפֿינען פונקציאָנירן, אַן אַרייַנלייגן פונקציאָנירן, און אַ דורך פונקציאָנירן. אבער לאָזן ס איצט גיין צוריק אַראָפּ צו די אַרייַנלייגן פֿונקציע און זען ווי דאָס איינער אַרבעט דאָ. אַרייַנלייגן איז אויף שורה - דאָ מיר גיין. אַרייַנלייגן. אַזוי עס טוט נישט נעמען קיין טענות, ווייַל מיר רע געגאנגען צו פרעגן דער באַניצער ין פון דעם פֿונקציע פֿאַר די נומער זיי ווילן צו אַרייַנלייגן. אבער ערשטער, מיר צוגרייטן צו געבן זיי עטלעכע פּלאַץ. דאס איז סאָרט פון נאָכמאַכן און פּאַפּ פון די אנדערע בייַשפּיל. אין אַז פאַל, מיר זענען אַלאַקייטינג אַ ינט; דעם צייַט מיר רע אַלאַקייטינג אַ נאָדע. איך טאָן ניט טאַקע געדענקען ווי פילע ביטעס אַ נאָדע איז, אָבער אַז ס פייַן. סיזעאָף קענען רעכענען אַז אויס פֿאַר מיר. און וואָס בין איך קאָנטראָלירונג פֿאַר נאַל אין שורה 120? וואָס קען גיין אומרעכט אין שורה 119? יאָ? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] גוט. נאָר קען זייַן די פאַל אַז איך ווע געבעטן פֿאַר אויך פיל זכּרון אָדער עפּעס ס פאַלש און די אַפּערייטינג סיסטעם טוט נישט האָבן גענוג ביטעס צו געבן מיר, אַזוי עס סיגנאַלז ווי פיל דורך אומגעקערט נאַל, און אויב איך טאָן ניט טשעק פֿאַר וואָס און איך נאָר בליינדלי גיינ ווייַטער צו נוצן די אַדרעס אומגעקערט, עס קען זייַן נאַל. עס קען זייַן עטלעכע אומבאַקאַנט ווערט; ניט אַ גוט זאַך סייַדן איך - פאקטיש וועט נישט זייַן אַן אומבאַקאַנט ווערט. עס קען זייַן נאַל, אַזוי איך טאָן ניט וועלן צו זידלען עס און ריזיקירן דערעפערענסינג עס. אויב אַז כאַפּאַנז, איך נאָר צוריקקומען און מיר וועט פאַרהיטן ווי איך האט נישט באַקומען צוריק קיין זכּרון בייַ אַלע. אַנדערש, איך זאָגן דער באַניצער געבן מיר אַ נומער צו אַרייַנלייגן, איך רופן אונדזער אַלט פרייַנד געטינט, און דאַן דעם איז געווען די נייַ סינטאַקס מיר באַקענענ אויף מאנטאג. 'נעוופּטר-> N' מיטל נעמען דער אַדרעס וואָס איר האבן געגעבן דורך מאַללאָק וואָס רעפּראַזענץ דער ערשטער ביטע פון ​​אַ נייַ נאָדע כייפעץ, און דאַן גיין צו די פעלד גערופן ען. א ביסל טריוויאַ קשיא: דאס איז עקוויוואַלענט צו וואָס מער קריפּטיק שורה פון קאָד? ווי אַנדערש קען איך האָבן געשריבן דעם? ווילן צו נעמען אַ שטעכן? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] גוט. ניצן דעם. ען, אָבער עס ס נישט גאַנץ ווי פּשוט ווי דעם. וואָס טאָן איך ערשטער דאַרפֿן צו טאָן? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] גוט. איך דאַרפֿן צו טאָן * נעוופּטר.ן. אַזוי דעם איז געזאגט נייַ טייַטל 'ס דאָך אַן אַדרעס. פארוואס? ווייַל עס איז געווען אומגעקערט דורך מאַללאָק. די * נעוופּטר זאגן "גיין דאָרט," און דעמאָלט אַמאָל איר רע דאָרט, דאַן איר קענען נוצן דעם מער באַקאַנט. N, אָבער דעם פּונקט קוקט אַ קליין מיעס, ספּעציעל אויב מיר יומאַנז זענען געגאנגען צו ציען פּוינטערז מיט אַראָוז אַלע די צייַט; די וועלט האט סטאַנדערדייזד אויף דעם פייַל נאָוטיישאַן, וואָס טוט פּונקט די זעלבע זאַך. אַזוי איר נאָר נוצן די -> נאָוטיישאַן ווען די זאַך אויף די לינקס איז אַ טייַטל. אַנדערש, אויב עס ס אַ פאַקטיש סטרוקט, נוצן די. ען. און דאַן דעם: פארוואס טאָן איך ינישאַלייז נעוופּטר-> ווייַטער צו נאַל? מיר טאָן ניט ווילן אַ דאַנגגלינג לינקס האַנט אַוועק פון די סוף פון די בינע. מיר ווילן עס פּוינטינג גלייַך אַראָפּ, וואָס מיטל דער סוף פון דעם רשימה קען פּאַטענטשאַלי זייַן בייַ דעם נאָדע, אַזוי מיר בעסער מאַכן זיכער עס איז נאַל. און, אין אַלגעמיין, יניטיאַליזינג דיין וועריאַבאַלז אָדער דיין דאַטן מיטגלידער און סטרוקץ צו עפּעס איז נאָר גוט פיר. נאָר לעטינג מיסט עקסיסטירן און פאָרזעצן צו עקזיסטירן בכלל געץ איר אין קאָנפליקט אויב איר פאַרגעסן צו טאָן עפּעס שפּעטער אויף. דאָ ס אַ ביסל קאַסעס. דאס, ווידער, איז די אַרייַנלייגן פונקציאָנירן, און דער ערשטער זאַך איך טשעק פֿאַר איז אויב די בייַטעוודיק גערופן ערשטער, אַז גלאבאלע בייַטעוודיק איז נאַל, אַז מיטל עס איז קיין לינגקט רשימה. מיר האָבן נישט ינסערטאַד קיין נומערן, אַזוי עס ס נישטיק צו אַרייַנלייגן דעם קראַנט נומער אין די רשימה, ווייַל עס נאָר געהערט בייַ די אָנהייב פון די רשימה. אַזוי דאָס איז געווען ווען אַניטאַ איז נאָר שטייענדיק אַרויף דאָ אַליין, פּריטענדינג קיין איינער אַנדערש איז אַרויף דאָ אויף בינע ביז מיר אַלאַקייטיד אַ נאָדע, דעמאָלט זי קען כאַפּן איר האַנט פֿאַר דער ערשטער צייַט, אויב אַלעמען אַנדערש האט קומען אַרויף אויף דער בינע נאָך איר אויף מאנטאג. איצט דאָ, דאָס איז אַ ביסל טשעק ווו איך האָבן צו זאָגן אויב די נייַ נאָדע ס ווערט פון N איז <די ווערט פון N אין די קראַנט ערשטער נאָדע, אַז מיטל עס איז אַ לינגקט רשימה אַז ס אנגעהויבן. עס ס בייַ מינדסטער איינער נאָדע אין דער רשימה, אָבער דעם נייַ באָכער געהערט איידער עס, אַזוי מיר דאַרפֿן צו באַוועגן דאס אַרום. אין אנדערע ווערטער, אויב די רשימה האט אנגעהויבן מיט נאָר, לאָזן ס זאָגן, נאָר דער נומער 17, וואָס ס 'די - פאקטיש, מיר קענען טאָן דאָס מער קלאר. אויב מיר אָנהייבן אונדזער געשיכטע מיט אַ טייַטל דאָ גערופן ערשטער, און טכילעס עס ס נאַל, און מיר אַרייַנלייגן די נומער 9, די נומער 9 קלאר געהערט אין די אָנהייב פון די רשימה. אַזוי לאָזן ס פאַרהיטן מיר נאָר מאַללאָסעד די אַדרעס אָדער די נומער 9 און לייגן עס דאָ. אויב ערשטער איז 9 דורך פעליקייַט, דער ערשטער סצענאַר מיר דיסקאַסט נאָר מיטל לאָזן ס פונט דעם באָכער דאָ, לאָזן דעם ווי נאַל; איצט מיר האָבן דעם נומער 9. דער ווייַטער נומער מיר ווילן צו אַרייַנלייגן איז 17. 17 געהערט איבער דאָ, אַזוי מיר רע געגאנגען צו האָבן צו טאָן עטלעכע לאַדזשיקאַל סטעפּינג דורך דעם. אַזוי לאָזן ס אַנשטאָט, איידער מיר טאָן אַז, לאָזן ס פאַרהיטן אַז מיר געוואלט צו אַרייַנלייגן די נומער 8. אַזוי נאָר פֿאַר קאַנוויניאַנס ס צוליב, איך בין געגאנגען צו ציען דאָ. אבער געדענקען, מאַללאָק קענען לייגן עס רובֿ ערגעץ. אבער פֿאַר צייכענונג ס צוליב, איך וועט שטעלן עס דאָ. אַזוי פאַרהיטן איך ווע נאָר אַלאַקייטיד אַ נאָדע פֿאַר די נומער 8; דעם איז נאַל דורך פעליקייַט. וואָס איצט האט צו פּאַסירן? א פּאָר פון זאכן. מיר געמאכט דעם גרייַז אויף בינע אויף מאנטאג ווו מיר דערהייַנטיקט אַ טייַטל ווי דעם, דעמאָלט האט דעם, און דאַן מיר קליימד - מיר אָרפאַנד אַלעמען אַנדערש אויף בינע. ווייַל איר קאַנט - דער סדר פון אַפּעריישאַנז דאָ איז וויכטיק, ווייַל איצט מיר ווע פאַרפאַלן דעם נאָדע 9 וואָס איז נאָר סאָרט פון פלאָוטינג אין פּלאַץ. אַזוי דאָס איז נישט די רעכט צוגאַנג אויף מאנטאג. מיר ערשטער האָבן צו טאָן עפּעס אַנדערש. די שטאַט פון די וועלט קוקט ווי דעם. טכילעס, 8 האט שוין אַלאַקייטיד. וואָס וואָלט זייַן אַ בעסער וועג פון ינסערטינג 8? אַנשטאָט פון אַפּדייטינג דעם טייַטל ערשטער, נאָר דערהייַנטיקן דעם איינער דאָ אַנשטאָט. אַזוי מיר דאַרפֿן אַ שורה פון קאָד וואָס ס געגאנגען צו אומקערן דעם נאַל כאַראַקטער אין אַ פאַקטיש טייַטל אַז ס פּוינטינג בייַ נאָדע 9, און דעמאָלט מיר קענען בעשאָלעם טוישן ערשטער צו פונט בייַ דעם באָכער דאָ. איצט מיר האָבן אַ רשימה, אַ לינגקט רשימה, פון צוויי יסודות. און וואָס טוט דאָס פאקטיש קוק ווי דאָ? אויב מיר קוקן אין די קאָד, באַמערקן אַז איך ווע געטאן פּונקט וואָס. איך ווע האט נעוופּטר, און אין דעם געשיכטע, נעוופּטר איז פּוינטינג בייַ דעם באָכער. אַזוי לאָזן מיר ציען איינער מער זאַך, און איך זאָל האָבן לינקס אַ ביסל מער אָרט פֿאַר דעם. אַזוי מוחל די קליינטשיק ביסל צייכענונג. דאס באָכער איז גערופן נעוופּטר. וואָס איז די בייַטעוודיק מיר דערקלערט אַ ביסל שורות פריער, אין שורה - נאָר אויבן 25. און עס ס פּוינטינג צו 8. אַזוי ווען איך זאָגן נעוופּטר-> ווייַטער, אַז מיטל גיין צו די סטרוקט אַז ס זייַענדיק שפּיציק בייַ דורך נעוופּטר, אַזוי דאָ מיר זענען, גיין דאָרט. דערנאך די פייַל איז געזאגט באַקומען דער ווייַטער פעלד, און דאַן די = איז געזאגט שטעלן וואָס ווערט דאָרט? דעם ווערט וואָס איז אין ערשטער; וואָס ווערט איז אין ערשטער? ערשטער איז געווען פּוינטינג בייַ דעם נאָדע, אַזוי אַז מיטל דעם זאָל איצט פונט בייַ דעם נאָדע. אין אנדערע ווערטער, וואָס קוקט אָלבייט אַ לעכערלעך באַלאַגאַן מיט מיין קסאַוו, וואָס ס 'אַ פּשוט געדאַנק פון נאָר מאָווינג די אַראָוז אַרום טראַנזלייץ ​​צו קאָד מיט נאָר דעם איין לייַנער. סטאָר וואָס איז אין ערשטער אין דער ווייַטער פעלד און דעמאָלט דערהייַנטיקן וואָס ערשטער פאקטיש איז. זאל ס גיין פאָרויס און פעסט-פאָרויס דורך עטלעכע פון ​​דעם, און קוק נאָר בייַ דעם עק ינסערשאַן פֿאַר איצט. רעכן איך באַקומען צו די פונט ווו איך געפֿינען וואָס דער ווייַטער פעלד פון עטלעכע נאָדע איז נאַל. און בייַ דעם פונט אין די געשיכטע, אַ פּרט וואָס איך בין גלאָססינג איבער איז אַז איך ווע באַקענענ אנדערן טייַטל אַרויף דאָ אין שורה 142, פאָרויסגייער טייַטל. יסענשאַלי, בייַ דעם פונט אין די געשיכטע, אַמאָל דער רשימה געץ לאַנג, איך מין פון דאַרפֿן צו גיין עס מיט צוויי פינגער ווייַל אויב איך גיין אויך ווייַט, געדענקען אין אַ איין-לענג רשימה, איר קענען ניט גיין קאַפּויער. אַזוי דעם געדאַנק פון פּרעדפּטר איז מיין לינקס פינגער, און נעוופּטר - ניט נעוופּטר. אן אנדער טייַטל אַז ס 'דאָ איז מיין אנדערע פינגער, און איך בין נאָר מין פון גיין די רשימה. אַז ס וואָס וואָס יגזיסץ. אבער לאָזן ס נאָר באַטראַכטן איינער פון די סימפּלער פאלן דאָ. אויב אַז טייַטל 'ס ווייַטער פעלד איז נאַל, וואָס ס די לאַדזשיקאַל ימפּלאַקיישאַן? אויב איר זענט טראַווערסינג דעם רשימה און איר שלאָגן אַ נאַל טייַטל? איר ניטאָ בייַ דער סוף פון דער רשימה, און אַזוי די קאָד צו דעמאָלט צוגעבן דעם איין נאָך עלעמענט איז סאָרט פון די ינטואַטיוו וועט נעמען אַז נאָדע וועמענס ווייַטער טייַטל איז נאַל, אַזוי דאָס איז דערווייַל נאַל, און טוישן עס, כאָטש, צו זייַן די אַדרעס פון די נייַ נאָדע. אַזוי מיר רע נאָר צייכענונג אין קאָד די פייַל וואָס מיר געצויגן אויף בינע דורך רייזינג עמעצער ס לינקס האַנט. און די פאַל אַז איך וועט כוואַליע מיין הענט בייַ פֿאַר איצט, נאָר ווייַל איך טראַכטן עס ס 'גרינג צו באַקומען פאַרפאַלן ווען מיר טאָן עס אין דעם סאָרט פון סוויווע, איז קאָנטראָלירונג פֿאַר ינסערשאַן בייַ די רשימה ס מיטן. אבער נאָר ינטויטיוולי, וואָס דאַרף צו פּאַסירן אויב איר ווילן צו רעכענען אויס ווו עטלעכע נומער געהערט אין די מיטל איז איר טאָן האָבן צו גיין עס מיט מער ווי איין פינגער, מער ווי איין טייַטל, פיגור אויס ווו עס געהערט דורך קאָנטראָלירונג איז דער עלעמענט <די קראַנט איינער, > די קראַנט איינער, און אַמאָל איר געפֿינען אַז אָרט, דעמאָלט איר האָבן צו טאָן דעם סאָרט פון שאָל שפּיל ווו איר באַוועגן דעם פּוינטערז אַרום זייער קערפאַלי. און אַז ענטפֿערן, אויב איר 'ד ווי צו סיבה דורך דעם אין שטוב אויף דיין אייגן, בוילז אַראָפּ פּונקט צו די צוויי שורות פון קאָד, אָבער די סדר פון יענע שורות איז סופּער וויכטיק. ווייַל אויב איר קאַפּ עמעצער ס האַנט און כאַפּן עמעצער אַנדערש ס אין די אומרעכט סדר, ווידער, איר קען סוף אַרויף אָרפאַנינג די רשימה. צו סאַמערייז מער קאַנסעפּטשואַלי, די ינסערשאַן בייַ די עק איז לעפיערעך סטרייטפאָרווערד. די ינסערשאַן בייַ די קאָפּ איז אויך לעפיערעך סטרייטפאָרווערד, אָבער איר דאַרפֿן צו דערהייַנטיקן אַן נאָך טייַטל דעם צייַט צו קוועטשן נומער 5 אין דער רשימה דאָ, און דעמאָלט ינסערשאַן אין די מיטל ינוואַלווז אַפֿילו מער מי, צו זייער קערפאַלי אַרייַנלייגן די נומער 20 אין זייַן ריכטיק אָרט, וואָס איז צווישן 17 און 22. אַזוי איר דאַרפֿן צו טאָן עפּעס ווי האָבן די נייַ נאָדע 20 פונט צו 22, און דעמאָלט, וואָס נאָדע ס טייַטל דאַרף צו זייַן דערהייַנטיקט לעצטע? עס ס 17, צו פאקטיש אַרייַנלייגן עס. אַזוי ווידער, איך וועט נאָכגעבן די פאַקטיש קאָד פֿאַר אַז באַזונדער ימפּלאַמענטיישאַן. אין ערשטער בליק, עס ס אַ ביסל אָוווערוועלמינג, אָבער עס ס 'טאַקע נאָר אַ ינפאַנאַט שלייף אַז ס לופּינג, לופּינג, לופּינג, לופּינג, און ברייקינג ווי באַלד ווי איר שלאָגן די נאַל טייַטל, אין וואָס פונט איר קענען טאָן די רעקוואַזאַט ינסערשאַן. דאס, דעריבער, איז פארשטייער לינגקט רשימה ינסערשאַן קאָד. וואָס איז מין פון אַ פּלאַץ, און עס פילז ווי מיר ווע סאַלווד איין פּראָבלעם, אָבער מיר 'ווע באַקענענ אַ גאַנץ אנדערע איינער. פראַנגקלי, מיר ווע פארבראכט אַלע דעם צייַט אויף גרויס אָ און Ω און פליסנדיק צייַט, טריינג צו סאָלווע פּראָבלעמס מער געשווינד, און דאָ מיר זענען גענומען אַ גרויס שריט קאַפּויער, עס פילז. און נאָך, אויב דער ציל איז צו קראָם דאַטן, עס פילז ווי דער רוס גראַיל, ווי מיר געזאגט אויף מאנטאג, וואָלט טאַקע זייַן צו קראָם זאכן טייקעף. אין פאַקט, רעכן אַז מיר האט שטעלן באַזונדער לינגקט רשימה פֿאַר אַ מאָמענט און מיר אַנשטאָט באַקענענ דער געדאנק פון אַ טיש. און לאָזן ס נאָר טראַכטן פון אַ טיש פֿאַר אַ מאָמענט ווי אַ מענגע. דאס מענגע און דעם פאַל דאָ האט עטלעכע 26 עלעמענטן, 0 דורך 25, און רעכן אַז איר דארף עטלעכע פּייַדע פון ​​סטאָרידזש פֿאַר נעמען: אַליס און באָב און טשאַרלי און די ווי. און איר דאַרפֿן עטלעכע דאַטן סטרוקטור צו קראָם יענע נעמען. נו, איר קען נוצן עפּעס ווי אַ לינגקט רשימה און איר קען גיין די רשימה ינסערטינג אַליס איידער באָב און טשאַרלי נאָך באָב און אַזוי אַרויס. און, אין פאַקט, אויב איר ווילן צו זען קאָד ווי אַז ווי אַ באַזונדער, וויסן אַז אין ליסט2.ה, מיר טאָן פּונקט וואָס. מיר וועלן נישט גיין דורך דעם קאָד, אָבער דאָס איז אַ וואַריאַנט פון דער ערשטער בייַשפּיל אַז ינטראַדוסיז איין אנדערע סטרוקט מיר ווע געזען פריער גערופן תּלמיד, און דעמאָלט וואָס עס פאקטיש סטאָרז אין די לינגקט רשימה איז אַ טייַטל צו אַ תּלמיד סטרוקטור אלא ווי אַ פּשוט ביסל ינטעגער, ען. אַזוי פאַרשטיין דאָרט ס קאָד עס אַז ינוואַלווז פאַקטיש סטרינגס, אָבער אויב דער ציל בייַ האַנט טאַקע איצט איז צו אַדרעס די עפעקטיווקייַט פּראָבלעם, וואָלט נישט עס זייַן פייַן אויב מיר רע געגעבן אַ כייפעץ גערופן אַליס, מיר וועלן צו שטעלן איר אין די רעכט אָרט אין אַ דאַטן סטרוקטור, עס פילז ווי עס 'ד ווערן טאַקע פייַן צו נאָר שטעלן אַליס, וועמענס נאָמען סטאַרץ מיט א, אין דער ערשטער אָרט. און באָב, וועמענס נאָמען סטאַרץ מיט בייטן, אין די רגע אָרט. מיט אַ מענגע, אָדער לאָזן ס אָנהייבן פאַך עס אַ טיש, אַ האַש טיש אין אַז, מיר קענען טאָן פּונקט וואָס. אויב מיר זענען געגעבן אַ נאָמען ווי אַליס, אַ שטריקל ווי אַליס, ווו טאָן איר שטעלן א-ל-איך-C-E? מיר דאַרפֿן אַ הועריסטיק. מיר דאַרפֿן אַ פֿונקציע צו נעמען עטלעכע אַרייַנשרייַב ווי אַליס און צוריקקומען אַן ענטפער, "שטעלן אַליס אין דעם אָרט." און דעם פֿונקציע, דעם שוואַרץ קעסטל, איז געגאנגען צו זייַן גערופן אַ האַש פונקציאָנירן. א האַש פֿונקציע איז עפּעס וואָס נעמט אַן אַרייַנשרייַב, ווי "אַליס", און קערט צו איר, טיפּיקלי, די נומעריק אָרט אין עטלעכע דאַטן סטרוקטור ווו אַליס געהערט. אין דעם פאַל, אונדזער האַש פונקציאָנירן זאָל זייַן לעפיערעך פּשוט. אונדזער האַש פונקציאָנירן זאָל זאָגן, אויב איר זענט געגעבן "אַליס", וואָס כאַראַקטער זאָל איך זאָרגן וועגן? דער ערשטער איינער. אַזוי איך קוק אין [0], און דעריבער איך זאָגן אויב [0] כאַראַקטער איז אַ, צוריקקומען די נומער 0. אויב עס ס 'ב, צוריקקומען 1. אויב עס ס C, צוריקקומען 2, און אַזוי אַרויס. כל 0 אינדעקס, און וואָס וואָלט לאָזן מיר צו אַרייַנלייגן אַליס און דעמאָלט באָב און דעמאָלט טשאַרלי און אַזוי אַרויס אין דעם דאַטן סטרוקטור. אבער דאָרט ס אַ פּראָבלעם. וואָס אויב אַניטאַ קומט צוזאמען ווידער? ווו טאָן מיר שטעלן אַניטאַ? איר נאָמען, אויך, סטאַרץ מיט דער בריוו א, און עס פילז ווי מיר ווע געמאכט אַן אַפֿילו ביגער באַלאַגאַן פון דעם פּראָבלעם. מיר איצט האָבן באַלדיק ינסערשאַן, קעסיידערדיק צייַט ינסערשאַן, אין אַ דאַטן סטרוקטור אלא ווי ערגער-פאַל לינעאַר, אָבער וואָס קענען מיר טאָן מיט אַניטאַ אין דעם פאַל? וואָס זענען די צוויי אָפּציעס, טאַקע? יאָ? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] אָוקיי, אַזוי מיר קען האָבן אן אנדער ויסמעסטונג. אַז ס 'גוט. אַזוי מיר קענען בויען דאס אויס אין 3 ד ווי מיר גערעדט וועגן ווערבאַלי אויף מאנטאג. מיר געקענט לייגן אן אנדער צוטריט דאָ, אָבער רעכן אַז ניט, איך בין טריינג צו האַלטן דעם פּשוט. דער גאנצער ציל דאָ איז צו האָבן באַלדיק קעסיידערדיק-צייַט צוטריט, אַזוי אַז ס אַדינג אויך פיל קאַמפּלעקסיטי. וואָס זענען אנדערע אָפּציעס ווען טריינג צו אַרייַנלייגן אַניטאַ אין דעם דאַטן סטרוקטור? יאָ? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] גוט. אַזוי מיר קען מאַך אַלעמען אַנדערש אַראָפּ, ווי טשאַרלי נאַדזשיז אַראָפּ באָב און אַליס, און דאַן מיר שטעלן אַניטאַ ווו זי טאַקע וויל צו זייַן. פון קורס, איצט, עס ס אַ זייַט ווירקונג פון דעם. דאס דאַטן סטרוקטור איז מיסטאָמע נוצלעך נישט ווייַל מיר ווילן צו אַרייַנלייגן מענטשן אַמאָל אָבער ווייַל מיר ווילן צו טשעק אויב זיי ניטאָ דאָרט שפּעטער אויב מיר ווילן צו דרוקן אויס אַלע פון ​​די נעמען אין די דאַטן סטרוקטור. מיר רע געגאנגען צו טאָן עפּעס מיט דעם דאַטן יווענטשאַוואַלי. אַזוי איצט מיר ווע מין פון סקרוד איבער אַליס, וואס ס ניט מער ווו זי ס געמיינט צו זייַן. אדער איז באָב, אדער איז טשאַרלי. אַזוי אפֿשר דאָס איז נישט אַזאַ אַ גוט געדאַנק. אבער טאַקע, דאָס איז איין אָפּציע. מיר קען יבעררוק אַלעמען אַראָפּ, אָדער כעק, אַניטאַ געקומען שפּעט צו דעם שפּיל, וואָס טאָן נישט מיר נאָר שטעלן אַניטאַ נישט דאָ, נישט דאָ, נישט דאָ, לאָזן ס נאָר שטעלן איר אַ ביסל נידעריקער אין די רשימה. אבער דעמאָלט דעם פּראָבלעם סטאַרץ צו דיוואַלוו ווידער. איר זאל זייַן ביכולת צו געפֿינען אַליס טייקעף, באזירט אויף איר ערשטער נאָמען. און באָב טייקעף, און טשאַרלי. אבער דעמאָלט איר קוק פֿאַר אַניטאַ, און איר זען, המם, אַליס איז אין דעם וועג. נו, לאָזן מיר טשעק אונטן אַליס. באָב איז נישט אַניטאַ. טשאַרלי איז נישט אַניטאַ. אָה, עס איז אַניטאַ. און אויב איר פאָרזעצן אַז באַן פון לאָגיק אַלע די וועג, וואָס ס די ערגסט-פאַל פליסנדיק צייַט פון געפונען אָדער ינסערטינג אַניטאַ אין דעם נייַ דאַטן סטרוקטור? עס ס אָ (N), רעכט? ווייַל אין די ערגסט פאַל, דאָרט ס אַליס, באָב, טשאַרלי. . . אַלע די וועג אַראָפּ צו עמעצער געהייסן "י", אַזוי דאָרט ס נאָר איין אָרט לינקס. טהאַנקפוללי, מיר האָבן קיין איינער גערופן "ז", אַזוי מיר שטעלן אַניטאַ בייַ די זייער דנאָ. מיר האָבן ניט טאַקע סאַלווד אַז פּראָבלעם. אַזוי אפֿשר מיר טאָן דאַרפֿן צו באַקענען דעם דריט ויסמעסטונג. און עס טורנס אויס, אויב מיר טאָן פאָרשטעלן דעם דריט ויסמעסטונג, מיר קענען ניט טאָן דעם בישליימעס, אָבער דער רוס גראַיל איז געגאנגען צו זייַן געטינג קעסיידערדיק-צייַט ינסערשאַן און דינאַמיש ינסערטיאָנס אַזוי אַז מיר טאָן ניט האָבן צו שווער-קאָד אַ מענגע פון ​​גרייס 26. מיר קענען אַרייַנלייגן ווי פילע נעמען ווי מיר ווילן, אָבער לאָזן ס נעמען אונדזער 5-מינוט ברעכן דאָ און דעמאָלט טאָן אַז רעכט. אַלע רעכט. איך שטעלן די געשיכטע אַרויף שיין אַרטאַפישאַלי דאָרט דורך טשוזינג אַליס און דעמאָלט באָב און דעמאָלט טשאַרלי און דעמאָלט אַניטאַ, וועמענס נאָמען איז דאָך געגאנגען צו קאַלייד מיט אַליס. אבער די קשיא מיר געענדיקט אויף מאנטאג מיט איז פּונקט ווי פּראַבאַבאַל איז עס אַז איר וואָלט באַקומען די מינים פון קאַליזשאַנז? אין אנדערע ווערטער, אויב מיר אָנהייבן צו נוצן דעם טאַבולאַר סטרוקטור, וואָס איז טאַקע נאָר אַ מענגע, אין דעם פאַל פון 26 לאָוקיישאַנז, וואָס אויב אונדזער ינפּוץ זענען אַנשטאָט יונאַפאָרמלי פונאנדערגעטיילט? עס ס נישט אַרטאַפישאַלי אַליס און באָב און טשאַרלי און דוד און אַזוי אַרויס אַלפאַבעטיקלי, עס ס יונאַפאָרמלי פונאנדערגעטיילט איבער א דורך ז אפֿשר מיר וועט נאָר באַקומען מאַזלדיק און מיר ניטאָ ניט געגאנגען צו האָבן צוויי א ס אָדער צוויי ב ס מיט זייער הויך מאַשמאָעס, אָבער ווי עמעצער שפּיציק אויס, אויב מיר דזשענראַלייזד דעם פּראָבלעם און נישט טאָן 0-25 אָבער, זאָגן, 0 דורך 364 אָדער 65, אָפֿט די נומער פון טעג אין אַ טיפּיש יאָר, און געפרעגט די קשיא, "וואָס ס די מאַשמאָעס אַז צוויי פון אונדז אין דעם צימער האָבן די זעלבע דיין געבורסטאָג?" לייגן עס אן אנדער וועג, וואָס ס די מאַשמאָעס אַז צוויי פון אונדז האָבן אַ נאָמען סטאַרטינג מיט א? דער סאָרט פון קשיא איז די זעלבע, אָבער דעם אַדרעס פּלאַץ, דעם זוכן פּלאַץ, איז ביגער אין די פאַל פון בערטדייז, ווייַל מיר האָבן אַזוי פילע מער טעג אין די יאָר ווי אותיות אין די אלפאבעט. וואָס ס די מאַשמאָעס פון אַ צונויפשטויס? נו, מיר קענען טראַכטן פון דעם דורך פיגיערינג אויס די מאַט די פאַרקערט וועג. וואָס ס די מאַשמאָעס פון קיין קאַליזשאַנז? נו, דעם אויסדרוק דאָ זאגט אַז וואָס ס די מאַשמאָעס אויב דאָרט ס נאָר איין מענטש אין דעם צימער, אַז זיי האָבן אַ יינציק דיין געבורסטאָג? עס ס 100%. ווייַל אויב עס ס נאָר איין מענטש אין די צימער, זייַן אָדער איר דיין געבורסטאָג קענען זייַן קיין פון די 365 טעג אויס פון די יאָר. אַזוי 365/365 אָפּציעס גיט מיר אַ ווערט פון 1. אַזוי די מאַשמאָעס אין קשיא אין דער מאָמענט איז נאָר 1. אבער אויב עס ס אַ רגע מענטש אין די צימער, וואָס ס די מאַשמאָעס אַז זייער דיין געבורסטאָג איז אַנדערש? עס ס נאָר 364 מעגלעך טעג, יגנאָרינג שפּרינגען יאָרן, פֿאַר זייער דיין געבורסטאָג נישט צו קאַלייד מיט די אנדערע פנים. אַזוי 364/365. אויב 1/3 מענטש קומט אין, עס ס 363/365, און אַזוי אַרויס. אַזוי מיר האַלטן מאַלטאַפּלייינג צוזאַמען די פראַקשאַנז, וואָס זענען געטינג קלענערער און קלענערער, צו רעכענען אויס וואָס איז די מאַשמאָעס אַז אַלע פון ​​אונדז האָבן יינציק בערטדייז? אבער דעמאָלט מיר קענען, פון קורס, נאָר נעמען אַז ענטפֿערן און פליפּ עס אַרום און טאָן 1 מינוס אַלע פון ​​וואָס, אַן אויסדרוק מיר וועט יווענטשאַוואַלי באַקומען אויב איר געדענקען די צוריק פון דיין מאַט ספרים, עס קוקט אַ קליין עפּעס ווי דעם, וואָס איז פיל מער לייכט ינטערפּראַטאַד גראַפיקלי. און דעם גראַפיק דאָ האט אויף די X אַקס די נומער פון בערטדייז, אָדער נומער פון מענטשן מיט בערטדייז, און אויף די י אַקס איז די מאַשמאָעס פון אַ גלייַכן. און וואָס דאָס איז געזאגט איז אַז אויב איר האָבן, לאָזן ס זאָגן, אַפֿילו, לאָזן ס 'קלייַבן עפּעס ווי 22, 23. אויב דאָרט ס 22 אָדער 23 מענטשן אין די צימער, די מאַשמאָעס אַז צוויי פון יענע זייער ווייניק מענטשן זענען געגאנגען צו האָבן די זעלבע דיין געבורסטאָג איז פאקטיש סופּער הויך, קאָמבינאַטאָריאַללי. 50% שאַנסן אַז אין אַ קלאַס פון נאָר 22 מענטשן, אַ סעמינאַר, פּראַקטאַקלי, 2 פון יענע מענטשן זענען געגאנגען צו האָבן די זעלבע דיין געבורסטאָג. ווייַל דאָרט ס אַזוי פילע וועגן אין וואָס איר קענען האָבן די זעלבע דיין געבורסטאָג. אפילו ערגער, אויב איר קוק בייַ די רעכט-האַנט זייַט פון די טשאַרט, דורך די צייַט איר האָבן אַ קלאַס מיט 58 סטודענטן אין עס, די מאַשמאָעס פון 2 מענטשן בעת ​​אַ דיין געבורסטאָג איז סופּער, סופּער הויך, קימאַט 100%. איצט, אַז ס סאָרט פון אַ שפּאַס פאַקט וועגן פאַקטיש לעבן. אבער די ימפּלאַקיישאַנז, איצט, פֿאַר דאַטן סטראַקטשערז און סטאָרינג אינפֿאָרמאַציע מיטל אַז נאָר אַסומינג איר האָבן אַ פייַן, ריין, מונדיר פאַרשפּרייטונג פון דאַטן און איר האָבן אַ גרויס גענוג מענגע צו פּאַסיק אַ בינטל פון זאכן טוט נישט מיינען איר ניטאָ געגאנגען צו באַקומען מען אין יינציק לאָוקיישאַנז. איר רע געגאנגען צו האָבן קאַליזשאַנז. אַזוי דעם געדאנק פון כאַשינג, ווי עס ס גערופן, גענומען אַ אַרייַנשרייַב ווי "אַליס" און מאַסאַזשינג עס אין עטלעכע וועג און דעמאָלט געטינג צוריק אַן ענטפֿערן ווי 0 אָדער 1 אָדער 2. געטינג צוריק עטלעכע רעזולטאַט פון וואָס פונקציאָנירן איז פּלייגד דורך דעם מאַשמאָעס פון צונויפשטויס. אַזוי ווי קענען מיר שעפּן יענע קאַליזשאַנז? נו, אויף דעם איין פאַל, מיר קענען נעמען די געדאַנק וואָס איז געווען סאַגדזשעסטיד. מיר קענען נאָר יבעררוק אַלעמען אַראָפּ, אָדער אפֿשר, אַ ביסל מער פשוט, אלא ווי מאַך אַלעמען אַנדערש, לאָזן ס נאָר מאַך אַניטאַ צו די דנאָ פון די פאַראַנען אָרט. אַזוי אויב אַליס איז אין 0, באָב איז אין 1, טשאַרלי איז אין 2, מיר וועט נאָר לייגן אַניטאַ בייַ אָרט 3. און דאָס איז אַ טעכניק אין דאַטן סטראַקטשערז גערופן לינעאַר פּראָובינג. לינעאַר ווייַל איר ניטאָ נאָר גיין דעם שורה, און איר ניטאָ סאָרט פון פּראָובינג פֿאַר פאַראַנען ספּאַץ אין די דאַטן סטרוקטור. פון קורס, דעם דעוואָלוועס אין אָ (N). אויב די דאַטן סטרוקטור ס טאַקע פול, דאָרט ס 25 מענטשן אין עס שוין, און דעמאָלט אַניטאַ קומט צוזאמען, זי ענדס אַרויף אין וואָס וואָלט זייַן אָרט ז, און אַז ס פייַן. זי נאָך פיץ, און מיר קענען געפֿינען איר שפּעטער. אבער דאָס איז געווען פאַרקערט צו דער ציל פון ספּידינג זאכן אַרויף. אַזוי וואָס אויב מיר אַנשטאָט באַקענענ דעם דריט ויסמעסטונג? אַז טעכניק איז בכלל גערופן באַזונדער טשיינינג, אָדער ווייל קייטן. און וואָס אַ האַש טיש איצט איז, דעם טאַבולאַר סטרוקטור, דיין טיש איז נאָר אַ מענגע פון ​​פּוינטערז. אבער וואָס יענע פּוינטערז פונט צו איז טרעפן וואָס? א לינגקט רשימה. אַזוי וואָס אויב מיר נעמען דער בעסטער פון ביידע פון ​​די וועלטן? מיר נוצן ערייז פֿאַר די ערשט ינדעקסיז אין די דאַטן סטרוקטור אַזוי מיר קענען טייקעף גיין צו [0] [1], [30] אָדער אַזוי אַרויס, אָבער אַזוי אַז מיר האָבן עטלעכע בייגיקייַט און מיר קענען פּאַסיק אַניטאַ און אַליס און אד"ם און קיין אנדערע א נאָמען, מיר אַנשטאָט לאָזן די אנדערע אַקס וואַקסן אַרביטרעראַלי. און מיר לעסאָף, ווי פון מאנטאג, האָבן אַז יקספּרעסיוו פיייקייַט מיט לינגקט רשימה. מיר קענען וואַקסן אַ דאַטן סטרוקטור אַרביטרעראַלי. אַלטערנאַטיוועלי, מיר קען נאָר מאַכן אַ ריזיק 2-דימענשאַנאַל מענגע, אָבער אַז ס 'געגאנגען צו זייַן אַ שרעקלעך סיטואַציע אויב איינער פון די ראָוז אין אַ 2-דימענשאַנאַל מענגע איז ניט גרויס גענוג פֿאַר די נאָך מענטש וועמענס נאָמען כאַפּאַנז צו אָנהייבן מיט יי גאָט פאַרווערן מיר האָבן צו ריאַלאַקייט אַ ריזיק 2-דימענשאַנאַל סטרוקטור נאָר ווייַל עס ס אַזוי פילע מענטשן געהייסן א, ספּעציעל ווען עס ס אַזוי ווייניק מענטשן געהייסן ז עפּעס. עס ס נאָר געגאנגען צו זייַן אַ זייער שיטער דאַטן סטרוקטור. אַזוי עס ס נישט גאנץ דורך קיין מיטל, אָבער איצט מיר בייַ מינדסטער האָבן די פיייקייַט צו טייקעף געפֿינען ווו אַליס אָדער אַניטאַ געהערט, בייַ מינדסטער אין טערמינען פון די ווערטיקאַל אַקס, און דעמאָלט מיר נאָר האָבן צו באַשליסן ווו צו שטעלן אַניטאַ אָדער אַליס אין דעם לינגקט רשימה. אויב מיר טאָן ניט זאָרגן וועגן סאָרטינג זאכן, ווי געשווינד קען מיר אַרייַנלייגן אַליס אין אַ סטרוקטור ווי דעם? עס ס קעסיידערדיק צייַט. מיר אינדעקס אין [0], און אויב קיין איין 'ס דאָרט, אַליס גייט אין די אָנהייב פון וואָס לינגקט רשימה. אבער אַז ס 'נישט אַ ריזיק האַנדלען. ווייַל אויב אַניטאַ דעמאָלט קומט צוזאמען עטלעכע נומער פון טריט שפּעטער, ווו טוט אַניטאַ געהערן? נו, [0]. ופּ. אַליס איז שוין אין אַז לינגקט רשימה. אבער אויב מיר טאָן ניט זאָרגן וועגן סאָרטינג די נעמען, מיר קענען נאָר מאַך אַליס איבער, אַרייַנלייגן אַניטאַ, אָבער אַפֿילו וואָס איז קעסיידערדיק צייַט. אפילו אויב עס ס אַליס און אד"ם און אַלע די אנדערע א נעמען, עס ס ניט טאַקע שיפטינג זיי פיזיקלי. פארוואס? ווייַל מיר נאָר האט דאָ מיט לינגקט רשימה, ווער ווייסט זענען די נאָודז ביסט סייַ ווי סייַ? כל איר האָבן צו טאָן איז מאַך די ברויט ברעקלעך. מאַך די אַראָוז אַרום; איר טאָן ניט האָבן צו פיזיקלי מאַך קיין דאַטן אַרום. אַזוי מיר קענען אַרייַנלייגן אַניטאַ, אין אַז פאַל, טייקעף. קעסיידערדיק צייַט. אַזוי מיר האָבן קעסיידערדיק-צייַט לאָאָקופּ, און קעסיידערדיק-צייַט ינסערשאַן פון עמעצער ווי אַניטאַ. אבער מין פון אָוווערסימפּליפייינג די וועלט. וואָס אויב מיר שפּעטער ווילן צו געפֿינען אַליס? וואָס אויב מיר שפּעטער ווילן צו געפֿינען אַליס? ווי פילע טריט איז אַז געגאנגען צו נעמען? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] פּונקט. די נומער פון מענטשן איידער אַליס אין די לינגקט רשימה. אַזוי עס ס נישט גאַנץ גאנץ, ווייַל אונדזער דאַטן סטרוקטור, ווידער, האט דעם ווערטיקאַל צוטריט און דעמאָלט עס האט די לינגקט רשימות כאַנגגינג - פאקטיש, לאָזן ס נישט ציען עס אַן אַ מענגע. עס האט די לינגקט רשימות כאַנגגינג אַוועק פון אים אַז קוקט אַ קליין עפּעס ווי דעם. אבער די פּראָבלעם איז אויב אַליס און אד"ם און אַלע די אנדערע א נעמען סוף זיך מער און מער איבער דאָרט, געפונען עמעצער קען סוף זיך גענומען אַ בינטל פון טריט, בקאַוסע איר האָבן צו דורך די לינגקט רשימה, וואָס איז אַ לינעאַר אָפּעראַציע. אַזוי טאַקע, דאַן, די ינסערשאַן צייַט לעסאָף איז אָ (N), ווו ען איז די נומער פון עלעמענטן אין דער רשימה. צעטיילט דורך, לאָזן ס אַרביטרעראַלי רופן עס ב, ווו עם איז די נומער פון לינגקט רשימות אַז מיר האָבן אין דעם ווערטיקאַל אַקס. אין אנדערע ווערטער, אויב מיר באמת יבערנעמען אַ מונדיר פאַרשפּרייטונג פון נעמען, טאָוטאַלי אַנריליסטיק. עס ס 'דאָך מער פון עטלעכע אותיות ווי אנדערע. אבער אויב מיר יבערנעמען פֿאַר דעם מאָמענט אַ מונדיר פאַרשפּרייטונג, און מיר האָבן N גאַנץ מענטשן, און עם גאַנץ קייטן פאַראַנען צו אונדז, דעריבער די לענג פון יעדער פון די קייטן פערלי פשוט איז געגאנגען צו זייַן די גאַנץ, N צעטיילט דורך די נומער פון קייטן. אַזוי N / ב. אבער דאָ ס ווו מיר קענען זייַן אַלע מאַטאַמאַטיקלי קלוג. ב איז אַ קעסיידערדיק, ווייַל דאָרט ס אַ פאַרפעסטיקט נומער פון די. איר רע געגאנגען צו דערקלערן דיין מענגע אין די אָנהייב, און מיר ניטאָ ניט רעסיזינג די ווערטיקאַל אַקס. דורך דעפֿיניציע, וואָס סטייז פאַרפעסטיקט. עס ס נאָר די האָריזאָנטאַל אַקס, אַזוי צו רעדן, אַז ס טשאַנגינג. אַזוי טעקניקלי, דאָס איז אַ קעסיידערדיק. אַזוי איצט, די ינסערשאַן צייַט איז שיין פיל אָ (N). אַזוי אַז טוט נישט פילן אַלע אַז פיל בעסער. אבער וואָס ס דער אמת דאָ? נו, אַלע דעם צייַט, פֿאַר וואָכן, מיר ווע שוין געזאגט אָ (N ²). אָ (N), 2 X N ², - ען, צעטיילט דורך 2. . . עטש. עס ס נאָר N ². אבער איצט, אין דעם טייל פון די זמאַן, מיר קענען אָנהייבן גערעדט וועגן די פאַקטיש וועלט ווידער. און N / ב איז לעגאַמרע פאַסטער ווי נאָר ען אַליין. אויב איר האָבן אַ טויזנט נעמען, און איר ברעכן זיי אַרויף אין קייפל באַקאַץ אַזוי אַז איר האָט נאָר צען נעמען אין יעדער פון די קייטן, לעגאַמרע שאַרף צען זאכן איז געגאנגען צו זייַן פאַסטער ווי אַ טויזנט זאכן. און אַזוי איינער פון די אַפּקאַמינג פּראָבלעם שטעלט איז געגאנגען צו אַרויסרופן איר צו טראַכטן וועגן פּונקט אַז אַפֿילו כאָטש, יאָ, אַסימפּטאָטיקאַללי און מאַטאַמאַטיקלי, דאָס איז נאָך נאָר לינעאַר, וואָס סאַקס אין אַלגעמיין ווען טריינג צו געפֿינען דאס. אין פאַקט, עס ס געגאנגען צו זייַן פאַסטער ווי אַז ווייַל פון דעם דיווייזער. און אַזוי דאָרט ס ווידער געגאנגען צו זייַן דעם האַנדל-אַוועק און דעם געראַנגל צווישן טעאָריע און פאַקט, און איינער פון די נאַבז וועט אָנהייבן אויסגעדרייט אין דעם פונט אין די זמאַן איז מער פון די פאַקט איין ווי מיר סאָרט פון צוגרייטן פֿאַר סעמסטער ס סוף, ווי מיר באַקענען די וועלט פון וועב פּראָגראַממינג, ווו טאַקע, פאָרשטעלונג איז געגאנגען צו ציילן ווייַל דיין ניצערס זענען געגאנגען צו אָנהייבן צו פילן און אָפּשאַצן נעבעך פּלאַן דיסיזשאַנז. אַזוי ווי טאָן איר גיין וועגן ימפּלאַמענינג אַ לינגקט - אַ האַש טיש מיט 31 יסודות? און די פֿריִערדיקע בייַשפּיל איז אַרביטרעראַלי וועגן בערטדייז. אויב עמעצער האט אַ דיין געבורסטאָג פון יאנואר 1 אָדער פעברואר 1, מיר וועט שטעלן זיי אין דעם עמער. אויב עס ס יאנואר 2, פעברואר 2, מערץ 2, מיר וועט שטעלן זיי אין דעם עמער. אַז ס וואָס עס איז 31. ווי טאָן איר דערקלערן אַ האַש טיש? עס קען זייַן שיין פּשוט, נאָדע * טיש איז מיין אַרביטראַריש נאָמען פֿאַר אים, [31]. דאס גיט מיר 31 פּוינטערז צו נאָודז, און אַז אַלאַוז מיר צו האָבן 31 פּוינטערז צו לינגקט רשימות אַפֿילו אויב יענע קייטן זענען טכילעס נאַל. וואָס טאָן איך וועלן צו שטעלן אויב איך ווילן צו קראָם "אַליס," "באָב", "טשאַרלי"? נו, מיר דאַרפֿן צו ייַנוויקלען יענע זאכן אין אַ סטרוקטור ווייַל מיר דאַרפֿן אַליס צו פונט צו באָב, צו פונט צו טשאַרלי, און אַזוי אַרויס. מיר קענען ניט נאָר האָבן די נעמען אַליין, אַזוי איך קען שאַפֿן אַ נייע סטרוקטור גערופן נאָדע דאָ. וואָס איז אַ פאַקטיש נאָדע? וואָס איז אַ נאָדע אין דעם נייַ לינגקט רשימה? דער ערשטער זאַך, גערופן וואָרט, איז פֿאַר דעם מענטש 'ס נאָמען. לענג, מאַשמאָעס, דערציילט צו די מאַקסימום לענג פון אַ מענטש 'ס נאָמען, וועלכער וואָס איז, 20, 30, 40 אותיות אין משוגע ווינקל פאלן, און +1 איז פֿאַר וואָס? עס ס נאָר די עקסטרע נאַל כאַראַקטער, \ 0. אַזוי דעם נאָדע איז ראַפּינג "עפּעס" ין פון זיך, אָבער עס אויך דערקלערט אַ טייַטל גערופן ווייַטער אַזוי אַז מיר קענען קייט אַליס צו באָב צו טשאַרלי און אַזוי אַרויס. קענען זייַן נאַל אָבער טוט נישט דאַווקע האָבן צו זייַן. קיין שאלות אויף די האַש טישן? יאָ? [תּלמיד אַסקינג קשיא, אַנינטעלאַדזשאַבאַל] אַ מענגע - גוט קשיא. פארוואס איז דאָס טשאַר וואָרט אין אַ מענגע אלא ווי נאָר טשאַר *? אין דעם עפּעס אַרביטראַריש בייַשפּיל, איך האט נישט וועלן צו האָבן צו Resort צו מאַללאָק פֿאַר יעדער פון די אָריגינעל נעמען. איך געוואלט צו דערקלערן אַ מאַקסימום סומע פון ​​זכּרון פֿאַר די שטריקל אַזוי אַז איך קען קאָפּיע אין די סטרוקטור אַליס \ 0 און ניט האָבן צו האַנדלען מיט מאַללאָק און פֿרייַ און די ווי. אבער איך קען טאָן אַז אויב איך געוואלט צו זייַן מער באַוווסטזיניק פון פּלאַץ נוצן. גוט קשיא. אַזוי לאָזן ס פּרובירן צו דזשענעראַלייז אַוועק פון דעם און פאָקוס די רעשט פון הייַנט אויף דאַטן סטראַקטשערז מער בכלל און אנדערע פראבלעמען וואָס מיר קענען סאָלווע ניצן די זעלבע פאַנדאַמענאַלז אַפֿילו כאָטש די דאַטן סטראַקטשערז זיך זאל אַנדערש אין זייער פּערטיקיאַלערז. אַזוי עס טורנס אויס אין קאָמפּיוטער וויסנשאַפֿט, ביימער זענען זייער פּראָסט. און איר קענען טראַכטן פון אַ בוים סאָרט פון ווי אַ משפּחה בוים, ווו עס ס עטלעכע רוץ, עטלעכע מייטריאַרק אָדער פּייטריאַרק, גראַנדמאַ אָדער גראַנפּאַ אָדער פריער צוריק, ונטער וואָס זענען מאַם און פאטער אָדער פארשידענע סיבלינגז אָדער די ווי. אַזוי אַ בוים סטרוקטור האט נאָודז און עס האט קינדער, יוזשאַוואַלי 0 אָדער מער קינדער פֿאַר יעדער נאָדע. און עטלעכע פון ​​די זשארגאן אַז איר זען אין דעם בילד דאָ איז קיין פון די ביסל קידס אָדער גראַנקידז אויף די עדזשאַז וואס האָבן קיין אַראָוז עמאַנייטינג פון זיי, יענע זענען די אַזוי-גערופן בלעטער, און ווער עס יז אויף די ין איז אַ ינער נאָדע; איר קענען רופן עס עפּעס צוזאמען יענע שורות. אבער דעם סטרוקטור איז שיין פּראָסט. דאס איין 'ס אַ ביסל אַרביטראַריש. מיר האָבן איין קינד אויף די לינקס, מיר האָבן דרייַ קינדער אויף די רעכט, צוויי קינדער אויף די דנאָ לינקס. אַזוי מיר קענען האָבן פאַרשידענע-סייזד ביימער, אָבער אויב מיר אָנהייבן צו סטאַנדערדייז זאכן, און איר זאל צוריקרופן דעם פון פּאַטריק ס ווידעא אויף ביינערי זוכן פון אַ פֿריִערדיקע קורץ אָנליין, ביינערי זוכן טוט ניט האָבן צו זייַן ימפּלאַמענטאַד מיט אַ מענגע אָדער ברעקלעך פון פּאַפּיר אויף אַ בלאַקבאָרד. רעכן אַז איר געוואלט צו קראָם דיין נומערן אין אַ מער סאַפיסטאַקייטיד דאַטן סטרוקטור. איר קען שאַפֿן אַ בוים ווי דעם. איר קען האָבן אַ נאָדע דערקלערט אין C, און אַז נאָדע קענען האָבן אין מינדסטער צוויי עלעמענטן ין פון עס. איינער איז די נומער איר ווילן צו קראָם, און די אנדערע איז - געזונט, מיר דאַרפֿן איינער מער. די אנדערע איז זייַן קינדער. אַזוי דאָ ס אנדערן דאַטן סטרוקטור. דאס מאָל, אַ נאָדע איז דיפיינד ווי סטאָרינג אַ נומער N און דעמאָלט צוויי פּוינטערז; לינקס קינד און רעכט קינד. און זיי ניטאָ ניט אַרביטראַריש. וואָס ס טשיקאַווע וועגן דעם בוים? וואָס ס דער מוסטער אין ווי מיר ווע געלייגט דעם אויס אָדער ווי פּאַטריק געלייגט עס אויס אין זייַן ווידעא? עס ס מין פון קלאָר ווי דער טאָג אַז עס ס עטלעכע סאָרטינג געגאנגען אויף דאָ, אָבער וואָס ס די פּשוט הערשן? יאָ? [תּלמיד ענטפֿערן, אַנינטעלאַדזשאַבאַל] גאנץ. אויב איר בליק אין דעם, איר זען די קליין נומערן אויף די לינקס, גרויס נומערן אויף די לינקס, אָבער אַז ס 'אמת פֿאַר יעדער נאָדע. פֿאַר יעדער נאָדע, זייַן לינקס קינד ווייניקער ווי עס, און זייַן רעכט קינד גרעסער ווי עס. וואָס דעם מיטל איצט איז אויב איך ווילן צו זוכן דעם דאַטן סטרוקטור פֿאַר, זאָגן, דער נומער 44, איך האָבן צו אָנהייבן בייַ די וואָרצל, ווייַל ווי מיט אַלע פון ​​די מער קאָמפּליצירט דאַטן סטראַקטשערז איצט, מיר נאָר האָבן אַ טייַטל צו איין זאַך, די אָנהייב. און אין דעם פאַל, די אָנהייב איז דער וואָרצל. עס ס נישט די לינקס סוף, עס ס דעם וואָרצל פון דעם סטרוקטור. אַזוי איך זען דאָ ס 55, און איך בין קוקן פֿאַר 44. וואָס ריכטונג טאָן איך וועלן צו גיין? נו, איך וועלן צו גיין צו די לינקס, ווייַל דאָך, צו די רעכט איז געגאנגען צו זייַן אויך גרויס. אַזוי באַמערקן דאָ, איר ניטאָ סאָרט פון קאַנסעפּטשואַלי טשאַפּינג דעם בוים אין העלפט ווייַל איר ניטאָ קיינמאָל געגאנגען אַראָפּ צו די רעכט-האַנט זייַט. אַזוי איצט איך גיין פון די 55 צו דעם 33. עס ס אויך קליין פון אַ נומער. איך בין קוקן פֿאַר 44, אָבער איצט איך וויסן אויב 44 איז אין דעם בוים, איך קענען גיין דאָך צו די רעכט. אַזוי ווידער, איך בין פּרונינג דעם בוים אין העלפט. עס ס שיין פיל יידעניקאַל קאַנסעפּטשואַלי צו די טעלעפאָן בוך. עס ס יידעניקאַל צו וואָס מיר האבן מיט די צייטונגען אויף די בלאַקבאָרד, אָבער עס ס אַ מער סאַפיסטאַקייטיד סטרוקטור וואָס אַלאַוז אונדז צו פאקטיש טאָן דאָס טיילן און קאַנגקער דורך פּלאַן פון די אַלגערידאַם, און אין פאַקט, טראַווערסינג אַ סטרוקטור ווי דעם - ווופּס. טראַווערסינג אַ סטרוקטור ווי דעם, ווו עס ס נאָר "גיין דעם וועג אָדער גיין אַז וועג," מיטל אַלע וואָס קאָד וואָס בענט דיין מיינונג בייַ ערשטער ווען ימפּלאַמענינג עס אין אָפּטיילונג אָדער גיין דורך אים אין שטוב, פֿאַר ביינערי זוכן, ניצן רעקורסיאָן אָדער יטעראַטיאָן, עס ס אַ ווייטיק אין די האַלדז. געפֿינען די מיטל עלעמענט, דעמאָלט טאָן דיין ראַונדינג אַרויף אָדער אַראָפּ. עס ס אַ שיינקייט צו דעם ווייַל מיר קענען איצט נוצן רעקורסיאָן ווידער, אָבער פיל מער קלינלי. טאקע, אויב איר ניטאָ בייַ די נומער 55 און איר ווילן צו געפֿינען 44, איר גיין לינקס אין דעם פאַל, דעמאָלט וואָס טאָן איר טאָן? איר לויפן די פּינטלעך זעלביקער אַלגערידאַם. איר טשעק די ווערט פון די נאָדע, דעמאָלט איר גיין לינקס אָדער רעכט. דעמאָלט איר טשעק די ווערט פון די נאָדע, גיין לינקס אָדער רעכט. דאס איז בישליימעס סוטאַד צו רעקורסיאָן. אַזוי אַפֿילו כאָטש אין דער פאַרגאַנגענהייַט מיר ווע געטאן עטלעכע פערלי אַרביטראַריש ביישפילן ינוואַלווינג רעקורסיאָן וואָס האט ניט דאַרפֿן צו זייַן רעקורסיווע, מיט דאַטן סטוקטורעס, ספּעציעל ביימער, עס ס אַ גאנץ אַפּלאַקיישאַן פון דעם געדאַנק פון גענומען אַ פּראָבלעם, שרינגקינג עס, און דעמאָלט סאַלווינג דער זעלביקער טיפּ פון, אָבער קלענערער, ​​פּראָגראַם. אַזוי דאָרט ס אנדערן דאַטן סטרוקטור וואָס מיר קענען פאָרשטעלן. דאס איינער איז דיזיינד בייַ ערשטער בליק צו קוקן קריפּטיק, אָבער דעם איין ס אַמייזינג. אַזוי דאָס איז אַ דאַטן סטרוקטור גערופן אַ טריי, טריי, וואָס איז ינכעראַטיד פון די וואָרט ריטריוואַל, וואָס איז ניט פּראַנאַונסט שייַעך-פּרובירן-וואַל, אָבער אַז ס וואָס די וועלט רופט די זאכן. פרוווט. ה-ר-איך-E. עס איז אַ בוים סטרוקטור פון עטלעכע סאָרט, אָבער יעדער פון די נאָודז אין אַ טריי אויס צו זייַן וואָס? און דאָס איז אַ ביסל מיסלידינג ווייַל עס ס מין פון אַבריוויייטיד. אבער עס קוקט ווי יעדער נאָדע אין דעם טריי איז פאקטיש אַ מענגע. און אַפֿילו כאָטש דער מחבר פון דעם דיאַגראַמע האט נישט געוויזן עס, אין דעם פאַל, דאָס טריי איז אַ דאַטן סטרוקטור וועמענס ציל אין לעבן איז צו קראָם ווערטער ווי א-ל-איך-C-E אָדער בייטן-אָ-בייטן. און דער וועג אין וואָס דעם דאַטן סטאָרז אַליס און באָב און טשאַרלי און אַניטאַ און אַזוי אַרויס איז עס ניצט אַ מענגע ווערביי צו קראָם אַליס אין אַ טריי, מיר אָנהייבן בייַ די וואָרצל נאָדע וואָס קוקט ווי אַ מענגע, און עס ס 'שוין געשריבן אין סטענאָגראַפיע נאָוטיישאַן. דער מחבר איבערגעהיפּערט אַבקדעפג ווייַל עס זענען געווען קיין נעמען מיט וואָס. זיי בלויז אנטפלעקט ב און פּ און ה, אָבער אין דעם פאַל, לאָזן ס 'מאַך אַוועק פון אַליס און באָב און טשאַרלי צו עטלעכע נעמען וואָס זענען דאָ. מאַקסוועל איז פאקטיש אין דעם דיאַגראַמע. אַזוי ווי האט דער מחבר קראָם ב-אַ-X-וו-E-ל-ל? ער אָדער זי אנגעהויבן אין די וואָרצל נאָדע, און געגאנגען צו [ב], אַזוי בעערעך 13, דעם 13 אָרט אין די מענגע. דערנאך פון דאָרט, דאָרט ס אַ טייַטל. א טייַטל לידינג צו אן אנדער מענגע. פון דאָרט דער מחבר ינדעקסט אין אַז מענגע בייַ אָרט א, ווי דיפּיקטיד דאָרט אין שפּיץ לינקס, און דעמאָלט ער אָדער זי נאכגעגאנגען אַז טייַטל צו אן אנדער מענגע, און געגאנגען צו די טייַטל בייַ אָרט אַקס דעמאָלט אין דער ווייַטער מענגע אָרט ד, E, ל, ל, און אַזוי אַרויס, און ענדלעך, לאָזן ס פאקטיש פּרובירן צו שטעלן אַ בילד צו דעם. וואָס טוט אַ נאָדע קוק ווי אין קאָד? א נאָדע אין אַ טריי כּולל אַ מענגע פון ​​פּוינטערז צו מער נאָודז. אבער דאָרט ס אויך גאַט צו זייַן עטלעכע מין פון בוליאַן ווערט, בייַ מינדסטער אין דעם ימפּלאַמענטיישאַן. איך פּאַסירן צו רופן עס יס_וואָרד. פארוואס? ווייַל ווען איר ניטאָ ינסערטינג מאַקסוועל, איר ניטאָ ניט ינסערטינג עפּעס אין דעם דאַטן סטרוקטור. איר ניטאָ ניט שרייבן עם איר ניטאָ ניט שרייבן אַקס כל איר ניטאָ טאן איז פאלגענדע פּוינטערז. די טייַטל אַז רעפּראַזענץ ב, דעריבער די טייַטל אַז רעפּראַזענץ א, דעריבער די טייַטל אַז רעפּראַזענץ רענטגענ, דעמאָלט ד, E, ל, ל, אָבער וואָס איר דאַרפֿן צו טאָן אין די סוף איז סאָרט פון גיין, טשעק, איך ריטשט דעם אָרט. עס איז אַ וואָרט וואָס ענדס דאָ אין די דאַטן סטרוקטור. אַזוי וואָס אַ טריי איז טאַקע אָנגעפילט מיט און דער מחבר אויסדערוויילט צו פאָרשטעלן די טערמינוסעס מיט קליין טריאַנגלעס. דאס נאָר מיטל אַז דער פאַקט דעם דרייַעק ס דאָ, דעם בוליאַן ווערט פון אמת מיטל אויב איר גיין קאַפּויער אין די בוים, אַז מיטל אַ וואָרט געהייסן מאַקסוועל איז אין דעם. אבער די וואָרט פו, פֿאַר בייַשפּיל, איז נישט אין די בוים, ווייַל אויב איך אָנהייבן בייַ די וואָרצל נאָדע אַרויף דאָ אין שפּיץ, עס ס קיין F טייַטל, קיין אָ טייַטל, קיין אָ טייַטל. פו איז נישט אַ נאָמען אין דעם ווערטערבוך. אבער דורך קאַנטראַסט, טורינג, ה-ו-ר-איך-N-ג. ווידער, איך האט ניט קראָם ה אָדער ו אָדער ר אָדער איך אָדער N אָדער ג. אבער איך האט קראָם אין דעם דאַטן סטרוקטור אַ ווערט פון אמת וועג אַראָפּ דאָ אין דעם נאָדע - אין דער בוים דורך באַשטעטיקן דעם בוליאַן ווערט פון יס_וואָרד צו אמת. אַזוי אַ טריי איז מין פון דעם זייער טשיקאַווע מעטאַ סטרוקטור, ווו איר ניטאָ ניט טאַקע סטאָרינג די ווערטער זיך פֿאַר דעם מין פון ווערטערבוך. צו זייַן קלאָר, איר ניטאָ נאָר סטאָרינג יאָ אָדער נישט, עס איז אַ וואָרט וואָס ענדס דאָ. איצט וואָס ס די ימפּלאַקיישאַן? אויב איר האָט 150.000 ווערטער אין אַ ווערטערבוך וואָס איר ניטאָ טריינג צו קראָם אין זכּרון ניצן עפּעס ווי אַ לינגקט רשימה, איר זענט געגאנגען צו האָבן 150.000 נאָודז אין דיין לינגקט רשימה. און געפונען איינער פון יענע ווערטער אַלפאַבעטיקלי קען נעמען אָ (N) מאָל. לינעאַר צייַט. אבער אין דער פאַל דאָ פון אַ טריי, וואָס ס די פליסנדיק צייַט פון געפונען אַ וואָרט? עס טורנס אויס די שיינקייט דאָ איז אַז אַפֿילו אויב איר האָט 149,999 ווערטער שוין אין דעם ווערטערבוך, ווי ימפּלאַמענטאַד מיט דעם דאַטן סטרוקטור, ווי פיל צייַט טוט עס נעמען צו געפֿינען אָדער אַרייַנלייגן איינער מער מענטש אין וואָס, ווי אַליס, אַליס? נו, עס ס נאָר 5, אפֿשר 6 טריט פֿאַר די טריילינג כאַראַקטער. ווייַל די פּרעסענסע פון ​​אנדערע נעמען אין די סטרוקטור טוט נישט באַקומען אין די וועג פון ינסערטינג אַליס. דערצו, געפונען אַליס אַמאָל עס זענען 150.000 ווערטער אין דעם ווערטערבוך טוט ניט באַקומען אין דיין וועג פון געפונען אַליס בייַ אַלע, ווייַל אַליס איז. . . . . דאָ, ווייַל איך געפונען אַ בוליאַן ווערט. און אויב עס איז קיין בוליאַן אמת, דאַן אַליס איז נישט אין דעם דאַטן סטרוקטור פון ווערטער. אין אנדערע ווערטער, די פליסנדיק צייַט פון געפונען זאכן און ינסערטינג זאכן אין דעם נייַ דאַטן סטרוקטור פון טריי איז אָ פון - עס ס נישט ען. ווייַל די פּרעסענסע פון ​​150.000 מען האט קיין ווירקונג אויף אַליס, עס מיינט. אַזוי לאָזן ס רופן עס ק, ווו ק איז די מאַקסימום לענג פון אַ וואָרט אין ענגליש וואָס איז טיפּיקלי ניט מער ווי 20-עפּעס אותיות. אַזוי ק איז אַ קעסיידערדיק. אַזוי דער רוס גראַיל מיר ויסקומען צו האָבן געפונען איצט איז אַז פון אַ טריי, קעסיידערדיק צייַט פֿאַר ינסערץ, פֿאַר לוקאַפּס, פֿאַר דילישאַנז. ווייַל די נומער פון דאס שוין אין דער סטרוקטור, וואָס זענען נישט אַפֿילו פיזיקלי דאָרט. ווידער, זיי ניטאָ נאָר סאָרט פון אָפּגעשטעלט אַוועק, יאָ אָדער ניט, האט קיין פּראַל אויף זייַן צוקונפֿט פליסנדיק צייַט. אבער דאָרט ס גאַט צו זייַן אַ כאַפּן, אַנדערש מיר וואָלט נישט האָבן ווייסטאַד אַזוי פיל צייַט אויף אַלע די אנדערע דאַטן סטראַקטשערז נאָר צו לעסאָף באַקומען צו דער סוד איין אַז ס אַמייזינג. אַזוי וואָס פּרייַז זענען מיר פּייינג צו דערגרייכן דעם גרויסקייַט דאָ? ספעיס. דאס זאַך איז מאַסיוו. און די סיבה אַז די מחבר האט נישט פאָרשטעלן עס דאָ, באַמערקן אַז אַלע פון ​​די זאכן וואָס קוקן ווי ערייז, ער האט נישט ציען די מנוחה פון די בוים, די מנוחה פון די טריי, ווייַל זיי ניטאָ נאָר ניט באַטייַטיק צו די געשיכטע. אבער אַלע פון ​​די נאָודז ביסט סופּער ברייט, און יעדער נאָדע אין דער בוים נעמט אַרויף 26 אָדער פאקטיש, קען זייַן 27 אותיות ווייַל אין דעם פאַל איך איז געווען אַרייַנגערעכנט פּלאַץ פֿאַר די אַפּאָסטראָפע אַזוי אַז מיר קען האָבן אַפּאָסטראָפיזעד ווערטער. אין דעם פאַל, די זענען ברייט ערייז. אַזוי אַפֿילו כאָטש זיי ניטאָ ניט פּיקוטורעד, דאָס נעמט זיך אַ מאַסיוו סומע פון ​​באַראַן. וואָס זאל זייַן פייַן, עספּעסיללי אין מאָדערן ייַזנוואַרג, אָבער אַז ס די טריידאָף. מיר באַקומען ווייניקער צייַט דורך ספּענדינג מער פּלאַץ. אַזוי ווו איז דאָס אַלע געגאנגען? נו, לאָזן ס טאָן - לאָזן ס זען דאָ. זאל ס טאָן אַ שפּרינגען צו דעם באָכער דאָ. גלויבן עס אָדער נישט, ווי פיל שפּאַס ווי C האט שוין פֿאַר עטלעכע צייַט איצט, מיר רע ריטשינג די פונט אין די זמאַן ווו עס ס 'צייַט צו יבערגאַנג צו זאכן מער מאָדערן. זאכן אויף אַ העכער מדרגה. און אַפֿילו כאָטש פֿאַר די ווייַטער פּאָר פון וואָכן מיר וועט נאָך פאָרזעצן צו ייַנטונקען זיך אין דער וועלט פון פּוינטערז און זכּרון אַדמיניסטראַציע צו באַקומען אַז טרייסט מיט וואָס מיר קענען דעריבער בויען אויף, דער סוף שפּיל איז לעסאָף צו באַקענען, ייראַניקלי, נישט דעם שפּראַך. מיר וועט פאַרברענגען, ווי 10 מינוט גערעדט וועגן HTML. כל HTML איז איז אַ מאַרקאַפּ שפּראַך, און וואָס אַ מאַרקאַפּ שפּראַך איז איז די סעריע פון ​​עפענען בראַקאַץ און פֿאַרמאַכט בראַקאַץ וואָס זאָגן 'מאַכן דעם דרייסט' 'מאַכן דעם ייטאַליקס' 'מאַכן דעם סענטערד.' עס ס ניט אַלע וואָס ינאַלעקטשולי טשיקאַווע, אָבער עס ס 'סופּער נוצלעך. און עס ס אַוואַדע אַמניפּרעזאַנט די טעג. אבער וואָס ס שטאַרק וועגן דער וועלט פון HTML, און וועב פּראָגראַממינג מער בכלל, איז בנין דינאַמיש זאכן; שרייבן קאָד אין שפּראַכן ווי פפּ אָדער פּיטהאָן אָדער רובי אָדער דזשאַוואַ אָדער C #. טאַקע, וועלכער דיין שפּראַך פון ברירה איז, און דזשענערייטינג HTML דינאַמיקאַללי. דזשענערייטינג עפּעס גערופן קסס דינאַמיקאַללי. קאַסקיידינג נוסח שיץ, וואָס איז אויך וועגן עסטעטיק. און אַזוי אַפֿילו כאָטש, הייַנט, אויב איך גיין צו עטלעכע וועבזייַטל ווי די באַקאַנט Google.com, און איך גיין צו מיינונג, דעוועלאָפּער, קוק מקור, וואָס אפֿשר איר ווע געטאן פריער, אָבער געגאנגען צו מיינונג מקור, דעם שטאָפּן מיסטאָמע קוקט שיין קריפּטיק. אבער דאָס איז די אַנדערלייינג קאָד וואָס ימפּלאַמאַנץ Google.com. אויף די פראָנט סוף. און פאקטיש אַלע דעם איז פּוכיק עסטעטיק שטאָפּן. דאס איז קסס אַרויף דאָ. אויב איך האַלטן סקראָללינג אַראָפּ מיר וועט באַקומען עטלעכע קאָלירן-קאָדעד שטאָפּן. דאס איז HTML. גוגל 'ס קאָד קוקט ווי אַ באַלאַגאַן, אָבער אויב איך פאקטיש עפענען זיך אַ אַנדערש פֿענצטער, מיר קענען זען עטלעכע סטרוקטור צו דעם. אויב איך עפענען דעם אַרויף, באַמערקן דאָ, עס ס אַ ביסל מער ליינעוודיק. מיר רע געגאנגען צו זען פאר לאַנג דעם קוויטל, [וואָרט] איז אַ קוויטל, HTML, קאָפּ, גוף, דיוו, שריפט, טעקסט געגנט, שפּאַן, סענטערד, דיוו. און דאָס איז אויך סאָרט פון קריפּטיק-קוקן בייַ ערשטער בליק, אָבער אַלע פון ​​דעם באַלאַגאַן גייט זיכער פּאַטערנז, און ריפּיטאַבאַל פּאַטערנז, אַזוי אַז אַמאָל מיר באַקומען די באַסיקס אַראָפּ, איר וועט זייַן ביכולת צו שרייַבן קאָד ווי דעם און דעמאָלט מאַניפּולירן קאָד ווי דאָס ניצן נאָך אן אנדער שפּראַך, גערופן דזשאַוואַסקריפּט. און דזשאַוואַסקריפּט איז אַ שפּראַך וואָס לויפט ין פון אַ בלעטערער הייַנט אַז מיר נוצן אויף האַרוואַרד קאָרסאַז, פֿאַר די קורס שאַפּינג געצייַג וואָס גוגל מאַפּס ניצט צו געבן איר אַ גאַנץ בינטל פון דיינאַמיזאַם, פאַסעבאָאָק גיט איר צו ווייַזן רעגע סטאַטוס דערהייַנטיקונגען, טוויטטער ניצט עס צו ווייַזן איר טוועעץ טייקעף. אַלע פון ​​דעם מיר וועלן אָנהייבן צו ייַנטונקען זיך ין אבער צו באַקומען דאָרט, מיר דאַרפֿן צו פֿאַרשטיין אַ ביסל עפּעס וועגן די אינטערנעט. דאס קלעמערל דאָ איז נאָר אַ מינוט לאַנג, און לאָזן ס יבערנעמען פֿאַר איצט דעם איז, אין פאַקט, ווי דער אינטערנעט אַרבעט ווי אַ טיזער פֿאַר וואָס ס וועגן צו קומען. איך געבן איר "וואַרריאָרס פון די נעט." [♫ סלאָו צוזונג מוזיק ♫] [מייל נערייטער] ער געקומען מיט אַ אָנזאָג. מיט אַ פּראָטאָקאָל אַלע זייַן אייגן. [♫ פאַסטער עלעקטראָניש מוזיק ♫] ער געקומען צו אַ וועלט פון קילן פירעוואַללס, אַנקערינג ראָוטערס, און דיינדזשערז ווייַט ערגער ווי טויט. ער ס פעסט. ער ס שטאַרק. ער ס טקפּ / יפּ, און ער ס גאַט דיין אַדרעס. וואָריערז פון די נעט. [מאַלאַן] ווייַטער וואָך, דעריבער. די אינטערנעט. וועב פּראָגראַממינג. דאס איז קס50. [CS50.TV]