[מוזיק פּלייינג] דאַג לויד: אַלע רעכט. אַזוי אויב איר נאָר פאַרטיק אַז ווידעא אויף יינציקווייַז-לינגקט רשימות נעבעכדיק איך לינקס איר אַוועק אויף אַ ביסל פון אַ קליפפהאַנגער. אבער איך בין צופרידן איר ניטאָ דאָ צו ענדיקן די געשיכטע פון ​​דאַבלי-לינגקט רשימות. אַזוי אויב איר צוריקרופן פון אַז ווידעא, מיר גערעדט וועגן ווי יינציקווייַז-לינגקט רשימות טאָן באַדינער אונדזער פיייקייַט צו האַנדלען מיט אינפֿאָרמאַציע ווו די נומער פון עלעמענטן אָדער די נומער פון זאכן אין אַ רשימה קענען וואַקסן אָדער ייַנשרומפּן. מיר קענען איצט האַנדלען מיט עפּעס ווי אַז, ווו מיר קען נישט האַנדלען מיט אים מיט ערייז. אבער זיי טאָן לייַדן פון איינער קריטיש באַגרענעצונג וואָס איז אַז מיט אַ יינציקווייַז-לינגקט רשימה, מיר קענען נאָר אלץ באַוועגן אין אַ איין ריכטונג דורך דער רשימה. און דער נאָר פאַקטיש סיטואַציע ווו אַז קענען ווערן אַ פּראָבלעם איז ווען מיר זענען טריינג צו ויסמעקן אַ איין עלעמענט. און מיר האבן נישט אַפֿילו דיסקוטירן ווי צו טאָן עס אין אַ יינציקווייַז-לינגקט רשימה אין פּסעודאָקאָדע. עס איז אַוואַדע דואַבאַל, אָבער עס קענען זיין אַ ביסל פון אַ כאַסאַל. אַזוי אויב איר געפֿינען זיך אין אַ סיטואַציע ווו איר ניטאָ טריינג צו ויסמעקן איין עלעמענטן פֿון דער רשימה אָדער עס ס געגאנגען צו זיין required אַז איר וועט זיין דיליטינג איין יסודות פון דער רשימה, איר זאל וועלן צו באַטראַכטן ניצן אַ דאַבלי-לינגקט רשימה אַנשטאָט פון אַ יינציקווייַז-לינגקט רשימה. ווייַל דאַבלי-לינגקט רשימות לאָזן איר צו באַוועגן ביידע פאָרוואַרדס און קאַפּויער דורך דער רשימה אַנשטאָט פון נאָר פאָרויס דורך די ליסט-- נאָר דורך אַדינג איינער עקסטרע עלעמענט צו אונדזער סטרוקטור דעפֿיניציע פֿאַר די דאַבלי-לינגקט רשימה נאָדע. ווידער, אויב איר ניטאָ ניט געגאנגען צו זייַן דיליטינג איין עלעמענטן פון די ליסט-- ווייַל מיר ניטאָ אַדינג אַן עקסטרע פעלד צו אונדזער סטרוקטור דעפֿיניציע, די נאָודז זיך פֿאַר דאַבלי-לינגקט רשימות זענען געגאנגען צו זיין גרעסער. זיי ניטאָ געגאנגען צו נעמען אַרויף מער ביטעס פון זכּרון. און אַזוי אויב דאָס איז נישט עפּעס איר ניטאָ געגאנגען צו דאַרפֿן צו טאָן, איר זאל באַשליסן עס ס נישט ווערט די האַנדל אַוועק צו האָבן צו פאַרברענגען די עקסטרע בייטן פון זיקאָרן required פֿאַר אַ דאַבלי-לינגקט רשימה אויב איר ניטאָ ניט געגאנגען צו זיין דיליטינג איין עלעמענטן. אָבער זיי ניטאָ אויך קיל פֿאַר אנדערע זאכן אויך. אַזוי ווי איך געזאגט, מיר נאָר האָבן צו לייגן איין איין פעלד צו אונדזער סטרוקטור דעפיניטיאָנ-- דעם געדאנק פון אַ פֿריִערדיקע טייַטל. אַזוי מיט אַ יינציקווייַז-לינגקט רשימה, מיר האָבן די ווערט און די קומענדיקע טייַטל, אַזוי די דאַבלי-לינגקט רשימה נאָר האט אַ וועג צו באַוועגן קאַפּויער ווי געזונט. איצט אין די יינציקווייַז-לינגקט רשימה ווידעא, מיר גערעדט וועגן די ביסט פינף פון די הויפּט זאכן איר דאַרפֿן צו זייַן קענען צו טאָן צו אַרבעטן מיט לינגקט רשימות. און פֿאַר רובֿ פון די, די פאַקט אַז עס ס אַ דאַבלי-לינגקט רשימה איז ניט טאַקע אַ גרויס שפּרינגען. מיר קענען נאָך זוכן דורך דורך פּונקט מאָווינג פאָרויס פון אָנהייב צו סוף. מיר קענען נאָך מאַכן אַ נאָדע פון דין לופט, שיין פיל דער זעלביקער וועג. מיר קענען אויסמעקן רשימות שיין פיל דער זעלביקער וועג צו. די נאָר דאס אַז זענען סאַטאַלי אַנדערש, טאַקע, זענען ינסערטינג נייַ נאָודז אין דער רשימה, און מיר וועט לעסאָף רעדן וועגן דיליטינג אַ איין עלעמענט פון דער רשימה ווי געזונט. ווידער, שיין פיל די אנדערע דרייַ, מיר רע ניט געגאנגען צו רעדן וועגן זיי רעכט איצט ווייַל זיי ניטאָ נאָר זייער מינערווערטיק טוויקס אויף די געדאנקען דיסקאַסט אין די יינציקווייַז-לינגקט רשימה ווידעא. אַזוי לאָזן ס טאָן אַ נייַ נאָדע זיך אַ דאַבלי-לינגקט רשימה. מיר גערעדט וועגן טאן דעם פֿאַר יינציקווייַז-לינגקט רשימות ווי געזונט, אָבער עס ס אַ פּאָר פון עקסטרע קאַטשאַז מיט דאַבלי-לינגקט רשימות. מיר 'רע [? פּאַסינג?] אין די קאָפּ פון די רשימה דאָ און עטלעכע אַרביטראַריש ווערט, און מיר ווילן צו באַקומען די נייע קאָפּ פון דער רשימה פון דעם פֿונקציע. אַז ס וואָס עס קערט אַ דללנאָדע שטערן. אזוי וואָס זענען די טריט? זיי זענען, ווידער, זייער ענלעך צו יינציקווייַז-לינגקט רשימות מיט איין עקסטרע דערצו. מיר ווילן צו אַלאַקייץ פּלאַץ פֿאַר אַ נייַ נאָדע און טשעק צו מאַכן זיכער עס ס גילטיק. מיר ווילן צו פּלאָמבירן אַז נאָדע זיך מיט וועלכער אינפֿאָרמאַציע מיר ווילן צו שטעלן אין עס. די לעצטע זאַך מיר דאַרפֿן צו דאָ-- די עקסטרע זאַך מיר דאַרפֿן צו טאָן, ראַטהער-- איז צו פאַרריכטן די פֿריִערדיקע טייַטל פון די אַלט קאָפּ פון די רשימה. געדענקען אַז ווייַל פון דאַבלי-לינגקט רשימות, מיר קענען מאַך פאָרויס און באַקקוואַרדס-- וואָס מיטל אַז יעדער נאָדע אַקטשאַוואַלי פּוינץ צו צוויי אנדערע נאָודז אָנשטאָט נאָר איינער. און אַזוי מיר דאַרפֿן צו פאַרריכטן די אַלט קאָפּ פון דער רשימה צו פונט צוריק צו די נייע קאָפּ פון די לינגקט רשימה, וואָס איז געווען עפּעס מיר האבן ניט האָבן צו טאָן איידער. און ווי איידער, מיר נאָר צוריקקומען אַ טייַטל צו די נייע קאָפּ פון די רשימה. אַזוי דאָ ס אַ רשימה. מיר ווילן צו אַרייַנלייגן 12 אין דעם רשימה. באַמערקן אַז די דיאַגראַמע איז אַ ביסל אַנדערש. יעדער נאָדע כּולל דרייַ פיעלדס-- דאַטע, און אַ קומענדיקע טייַטל אין רויט, און אַ פֿריִערדיקע טייַטל אין בלוי. גאָרנישט קומט איידער די 15 נאָדע, אַזוי זייַן פֿריִערדיקע טייַטל איז נאַל. עס ס די אָנהייב פון די רשימה. עס ס גאָרנישט איידער עס. און גאָרנישט קומט נאָך די 10 נאָדע, און אַזוי עס ס קומענדיקע טייַטל איז נאַל ווי געזונט. אַזוי לאָזן ס לייגן 12 צו דעם רשימה. מיר דאַרפֿן [ינאָדאַבאַל] פּלאַץ פֿאַר די נאָדע. מיר שטעלן 12 ין פון עס. און דעמאָלט ווידער, מיר דאַרפֿן צו זיין טאַקע אָפּגעהיט ניט צו ברעכן די קייט. מיר ווילן צו ריעריינדזש די פּוינטערז אין די ריכטיק סדר. און מאל אַז זאל מעאַנ-- ווי מיר וועט זען דער הויפּט מיט דעלעטע-- אַז מיר טאָן האָבן עטלעכע יבעריק פּוינטערז, אָבער אַז ס גוט. אזוי וואָס טאָן מיר ווילן צו טאָן ערשטער? איך וואָלט רעקאָמענדירן די זאכן איר זאָל מיסטאָמע טאָן זענען צו פּלאָמבירן די פּוינטערז פון די 12 נאָדע איידער איר פאַרבינדן אַבי ווער אַנדערש. אזוי וואָס איז 12 געגאנגען צו פונט צו ווייַטער? 15. וואָס קומט איידער 12? גאָרנישט. איצט מיר'ווע אָנגעפילט די עקסטרע אינפֿאָרמאַציע אין 12 אַזוי עס האט פֿריִערדיקע, קומענדיק, און ווערט. איצט מיר קענען האָבן 15-- דעם עקסטרע שריט מיר האבן גערעדט אַבאָוט-- מיר קענען האָבן 15 פונט צוריק צו 12. און איצט מיר קענען מאַך די קאָפּ פון די לינגקט רשימה צו אויך זיין 12. אַזוי עס ס שיין ענלעך צו וואָס מיר זענען טאן מיט יינציקווייַז-לינגקט רשימות, אַחוץ פֿאַר די עקסטרע שריט פון קאַנעקטינג די אַלט קאָפּ פון דער רשימה צוריק צו דער נייַ קאָפּ פון די רשימה. איצט לאָזן ס לעסאָף ויסמעקן אַ נאָדע פון ​​אַ לינגקט רשימה. אַזוי לאָזן ס זאָגן מיר האָבן עטלעכע אנדערע פֿונקציע אַז איז דערגייונג אַ נאָדע מיר ווילן צו ויסמעקן און האט געגעבן אונדז אַ טייַטל צו פּונקט די נאָדע אַז מיר ווילן צו ויסמעקן. מיר טאָן ניט אַפֿילו נעעד-- זאָגן די קאָפּ איז נאָך גלאָובאַלי דערקלערט. מיר טאָן ניט דאַרפֿן קאָפּ דאָ. אַלע דעם פֿונקציע איז טאן איז מיר ווע געפֿונען אַ טייַטל צו פּונקט די נאָדע מיר ווילן צו באַקומען באַפרייַען פון. זאל ס באַקומען באַפרייַען פון עס. עס ס אַ פּלאַץ גרינגער מיט דאַבלי-לינגקט רשימות. פירסט-- עס ס אַקטשאַוואַלי נאָר אַ פּאָר זאכן. מיר נאָר דאַרפֿן צו פאַרריכטן די אַרומיק נאָודז 'פּוינטערז אַזוי אַז זיי האָפּקען איבער די נאָדע מיר ווילן צו ויסמעקן. און דעמאָלט מיר קענען ויסמעקן אַז נאָדע. אַזוי ווידער, מיר רע נאָר געגאנגען דורך דאָ. מיר האָבן משמעות באַשלאָסן אַז מיר ווילן צו ויסמעקן די נאָדע אַקס און ווידער, וואָס איך בין טאן הערע-- דורך די ווייַ-- איז אַ גענעראַל פאַל פֿאַר אַ נאָדע וואָס איז אין דער מיטן. עס זענען אַ פּאָר פון עקסטרע קאַוועאַץ אַז איר דאַרפֿן צו באַטראַכטן ווען איר ניטאָ דיליטינג די זייער אָנהייב פון דער רשימה אָדער די זייער סוף פון די רשימה. עס ס אַ פּאָר פון ספּעציעל ווינקל קאַסעס צו האַנדלען מיט עס. אזוי דעם אַרבעט פֿאַר דיליטינג קיין נאָדע אין די מיטן פון די ליסט-- איינער וואָס האט אַ לאַדזשיטאַמאַט טייַטל פאָרויס און אַ לאַדזשיטאַמאַט טייַטל צוריק, לאַדזשיטאַמאַט פֿריִערדיקע און קומענדיקע טייַטל. ווידער, אויב איר ניטאָ ארבעטן מיט די ענדס, איר דאַרפֿן צו שעפּן די אַ ביסל אנדערש, און מיר ניטאָ ניט געגאנגען צו רעדן וועגן אַז איצט. אבער איר קענען מיסטאָמע רעכענען אויס וואָס דאַרף צו זיין געטאן פּונקט דורך וואַטשינג דעם ווידעא. אַזוי מיר ווע ייסאַלייטאַד אַקס רענטגענ איז די נאָדע מיר ווילן צו ויסמעקן פון דער רשימה. וואס טאָן מיר טאָן? ערשטער, מיר דאַרפֿן צו ריעריינדזש די אַרויס פּוינטערז. מיר דאַרפֿן צו ריעריינדזש 9 ס ווייַטער צו האָפּקען איבער 13 און פונט צו 10-- וואָס איז וואָס מיר ווע נאָר געטאן. און מיר אויך דאַרפֿן צו ריעריינדזש 10 ס פֿריִערדיקע צו פונט צו 9 אָנשטאָט פּוינטינג צו 13. אַזוי ווידער, דאָס איז געווען די דיאַגראַמע צו אָנהייבן מיט. דעם איז אונדזער קייט. מיר דאַרפֿן צו האָפּקען איבער 13, אבער מיר דאַרפֿן צו אויך ופהיטן די אָרנטלעכקייַט פון די רשימה. מיר טאָן ניט ווילן צו פאַרלירן קיין אינפֿאָרמאַציע אין יעדער ריכטונג. אַזוי מיר דאַרפֿן צו ריעריינדזש די פּוינטערז Carefully אַזוי מיר טאָן ניט ברעכן די קייט אין אַלע. אַזוי מיר קענען זאָגן 9 ס קומענדיקע טייַטל פּוינץ צו די זעלבע פּלאַץ וואָס דרייַצן ס קומענדיקע טייַטל פּוינץ רעכט איצט. ווייַל מיר ניטאָ יווענטשאַוואַלי געגאנגען צו ווילן צו האָפּקען איבער 13. אזוי ווו נאָר 13 פּוינץ ווייַטער, איר ווילן נייַן צו פונט עס אַנשטאָט. אַזוי אַז ס וואָס. און דעמאָלט וואוהין 13 פּוינץ צוריק צו, וועלכער קומט איידער 13, מיר ווילן 10 צו פונט צו אַז אַנשטאָט פון 13. איצט באַמערקן, אויב איר נאָכפאָלגן די אַראָוז, מיר קענען פאַלן 13 אָן אַקטשאַוואַלי לוזינג קיין אינפֿאָרמאַציע. מיר'ווע האלטן די אָרנטלעכקייַט פון דער רשימה, מאָווינג ביידע פאָרויס און צוריק. און דעמאָלט מיר קענען נאָר סאָרט פון ריין עס אַרויף אַ קליין ביסל דורך פּולינג די רשימה צוזאַמען. אַזוי מיר ריעריינדזשד די פּוינטערז אויף יעדער זייַט. און דעמאָלט מיר פרעעד רענטגענ די נאָדע אַז קאַנטיינד 13, און מיר האבן נישט ברעכן די קייט. אַזוי מיר האבן גוט. לעצט צעטל דאָ אויף לינגקט רשימות. אַזוי ביידע סינגלי- און דאַבלי-לינגקט רשימות, ווי מיר ווע געזען, שטיצן טאַקע עפעקטיוו ינסערשאַן און דילישאַן פון עלעמענטן. איר קענען שיין פיל טאָן עס אין קעסיידערדיק צייַט. וואָס האט מיר האָבן צו טאָן צו אויסמעקן אַן עלעמענט נאָר אַ רגע צוריק? מיר באווויגן איין טייַטל. מיר באווויגן אנדערן טייַטל. מיר פרעעד קס-- גענומען דרייַ אַפּעריישאַנז. עס שטענדיק נעמט דרייַ אַפּעריישאַנז צו ויסמעקן אַז נאָדע-- צו פּאָטער אַ נאָדע. ווי טאָן מיר אַרייַנלייגן? נו, מיר ניטאָ פּונקט שטענדיק טאַקקינג אויף די אָנהייב אויב מיר ניטאָ ינסערטינג עפפיסיענטלי. אַזוי מיר דאַרפֿן צו רעאַרראַנגע-- דיפּענדינג אויף אויב עס ס אַ סינגלי- אָדער דאַבלי-לינגקט רשימה, מיר זאלן דאַרפֿן צו טאָן דרייַ אָדער פיר אַפּעריישאַנז מאַקס. אבער ווידער, עס ס שטענדיק דרייַ אָדער פיר. עס טוט ניט ענין ווי פילע עלעמענטן זענען אין אונדזער רשימה, עס ס שטענדיק דרייַ אָדער פיר אָפּעראַטיאָנס-- פּונקט ווי דילישאַן איז שטענדיק דרייַ אָדער פיר אַפּעריישאַנז. עס ס קעסיידערדיק צייַט. אַזוי אַז ס טאַקע גרויס. מיט ערייז, מיר זענען טאן עפּעס ווי ינסערשאַן סאָרט. איר מיסטאָמע צוריקרופן אַז ינסערשאַן סאָרט איז נישט אַ קעסיידערדיק צייַט אַלגערידאַם. עס ס אַקטשאַוואַלי שיין טייַער. אזוי דעם איז אַ פּלאַץ בעסער פֿאַר ינסערטינג. אָבער ווי איך דערמאנט אין די יינציקווייַז-לינגקט רשימה ווידעא, מיר 'ווע גאַט אַ דאַונסייד דאָ אויך, רעכט? מיר ווע פאַרפאַלן די פיייקייַט צו ראַנדאַמלי צוטריט עלעמענטן. מיר קענען נישט זאָגן, איך ווילן עלעמענט נומער פיר אָדער עלעמענט נומער 10 פון אַ לינגקט רשימה דער זעלביקער וועג אַז מיר קענען טאָן אַז מיט אַ מענגע אָדער מיר קענען נאָר גלייַך אינדעקס אין אונדזער מענגע ס עלעמענט. און אַזוי טריינג צו געפֿינען אַ עלעמענט אין אַ לינגקט ליסט-- אויב שאַרף איז ימפּאָרטאַנט-- קען איצט נעמען לינעאַר צייַט. ווי דער רשימה געץ מער, עס זאל נעמען איינער נאָך שריט פֿאַר יעדער איין עלעמענט אין דער רשימה אין סדר צו געפֿינען וואָס מיר ניטאָ קוקן פֿאַר. אַזוי עס ס האַנדל אָפפס. עס ס אַ ביסל פון אַ פּראָ און מיט עלעמענט דאָ. און דאַבלי-לינגקט רשימות זענען נישט די לעצטע מין פון דאַטן סטרוקטור קאָמבינאַציע וואָס מיר וועט רעדן וועגן, גענומען אַלע די גרונט בנין בלאַקס פון C אַ פּאַטינג צוזאַמען. ווייַל אין פאַקט, מיר קענען אַפֿילו טאָן בעסער ווי דעם צו שאַפֿן אַ דאַטן סטרוקטור וואָס איר זאל קענען צו זוכן דורך אין קעסיידערדיק צייַט אויך. אבער מער אויף אַז אין אן אנדער ווידעא. איך בין דאַג לויד. דאס איז קס50.