1 00:00:00,000 --> 00:00:08,250 2 00:00:08,250 --> 00:00:12,680 >> JASON هيرشهورن: مرحبا الجميع إلى الفصل السابع. 3 00:00:12,680 --> 00:00:15,040 نحن في الأسبوع سبعة من الدورة. 4 00:00:15,040 --> 00:00:18,440 ويوم الخميس المقبل هو عيد جميع القديسين لذلك أنا 5 00:00:18,440 --> 00:00:21,420 لابسة مثل اليقطين. 6 00:00:21,420 --> 00:00:23,460 لم أتمكن من الانحناء ووضع على حذائي، ولهذا السبب أنا 7 00:00:23,460 --> 00:00:25,660 مجرد ارتداء الجوارب. 8 00:00:25,660 --> 00:00:29,220 أنا أيضا لا يرتدي أي شيء تحت هذا، ولذا فإنني لا يمكن خلعه إذا كان 9 00:00:29,220 --> 00:00:29,950 تشتيت لك. 10 00:00:29,950 --> 00:00:31,860 أعتذر مقدما لذلك. 11 00:00:31,860 --> 00:00:33,170 أنت لا تحتاج إلى تخيل ما يحدث. 12 00:00:33,170 --> 00:00:34,240 ارتديته الملاكمين. 13 00:00:34,240 --> 00:00:36,170 لذلك كل شيء جيد. 14 00:00:36,170 --> 00:00:41,120 >> لدي قصة طويلة حول لماذا أنا يرتدي زي القرع، ولكن انا ذاهب الى 15 00:00:41,120 --> 00:00:45,110 حفظ ذلك في وقت لاحق في هذا القسم لأنني لا أريد أن تبدأ. 16 00:00:45,110 --> 00:00:47,720 لدينا الكثير من الأمور المثيرة ليذهب أكثر من هذا الاسبوع. 17 00:00:47,720 --> 00:00:51,810 معظمهم تتصل مباشرة الى هذا مجموعة مشكلة الأسبوع، أخطاء إملائية. 18 00:00:51,810 --> 00:00:54,680 ونحن في طريقنا إلى أن تسير على ربط القوائم والجداول التجزئة 19 00:00:54,680 --> 00:00:57,160 عن القسم بأكمله. 20 00:00:57,160 --> 00:01:02,490 أنا وضعت هذه القائمة في كل أسبوع، وقائمة الموارد بالنسبة لك لمساعدتك في 21 00:01:02,490 --> 00:01:04,120 المواد على هذا الحال. 22 00:01:04,120 --> 00:01:07,600 إذا في حيرة أو إذا تبحث عن بعض مزيد من المعلومات، تحقق من واحدة من 23 00:01:07,600 --> 00:01:09,930 هذه الموارد. 24 00:01:09,930 --> 00:01:14,530 >> مرة أخرى، هو pset6 أخطاء إملائية، pset هذا الأسبوع. 25 00:01:14,530 --> 00:01:17,690 وتشجع أيضا لك، وأنا نشجعك، لاستخدام بعض الدول الاخرى 26 00:01:17,690 --> 00:01:20,320 الموارد خصيصا لهذا pset. 27 00:01:20,320 --> 00:01:23,390 على وجه الخصوص، وثلاثة عندي المدرجة على الشاشة - 28 00:01:23,390 --> 00:01:27,160 جدب، والتي كنا على دراية وتم استخدام لبعض الوقت الآن، هو 29 00:01:27,160 --> 00:01:29,270 ستكون مفيدة للغاية هذا الأسبوع. 30 00:01:29,270 --> 00:01:30,190 لذلك أنا وضعت ذلك هنا. 31 00:01:30,190 --> 00:01:32,910 ولكن كلما كنت تعمل مع C، يجب عليك دائما أن تستخدم لجدب 32 00:01:32,910 --> 00:01:34,430 تصحيح البرامج. 33 00:01:34,430 --> 00:01:36,660 هذا الأسبوع أيضا valgrind. 34 00:01:36,660 --> 00:01:38,535 لا أحد يعرف ما يفعل valgrind؟ 35 00:01:38,535 --> 00:01:42,184 36 00:01:42,184 --> 00:01:43,890 >> الحضور: ويتحقق من وجود تسرب الذاكرة؟ 37 00:01:43,890 --> 00:01:45,950 >> JASON هيرشهورن: Valgrind الشيكات لتسرب الذاكرة. 38 00:01:45,950 --> 00:01:49,970 حتى إذا كنت شيئا في حياتك malloc البرنامج، كنت طالبا للذاكرة. 39 00:01:49,970 --> 00:01:52,920 في نهاية البرنامج، لديك لكتابة الحرة على كل شيء قمت 40 00:01:52,920 --> 00:01:54,800 malloced لإعطاء الذاكرة مرة أخرى. 41 00:01:54,800 --> 00:01:58,420 إذا كنت لا أكتب مجانا في نهاية و ويأتي البرنامج إلى استنتاج، 42 00:01:58,420 --> 00:02:00,000 سيكون كل شيء تلقائيا سيتم اطلاق سراحهم. 43 00:02:00,000 --> 00:02:02,340 وعن برامج صغيرة، انها ليس كبيرا الى اتفاق. 44 00:02:02,340 --> 00:02:05,250 ولكن إذا كنت تكتب لتشغيل أطول برنامج لا استقال، 45 00:02:05,250 --> 00:02:09,180 بالضرورة، في بضع دقائق أو بضع ثوان، ثم تسرب الذاكرة 46 00:02:09,180 --> 00:02:10,710 يمكن أن تصبح صفقة ضخمة. 47 00:02:10,710 --> 00:02:14,940 >> وذلك لpset6، والتوقع هو أن سيكون لديك صفر تسرب الذاكرة مع 48 00:02:14,940 --> 00:02:15,910 البرنامج. 49 00:02:15,910 --> 00:02:18,690 للتحقق من وجود تسرب الذاكرة، تشغيل valgrind وسأعطيك بعض لطيفة 50 00:02:18,690 --> 00:02:21,190 الانتاج مما يتيح لك معرفة ما إذا كان أو ليس كل شيء كان مجانيا. 51 00:02:21,190 --> 00:02:23,940 سنقوم في وقت لاحق مع ممارسة اليوم، ونأمل. 52 00:02:23,940 --> 00:02:25,790 >> أخيرا، الأمر فرق. 53 00:02:25,790 --> 00:02:28,900 استخدمته شيء مشابه له في pset5 مع أداة خاطفة. 54 00:02:28,900 --> 00:02:30,780 يسمح لك أن ننظر في الداخل. 55 00:02:30,780 --> 00:02:33,400 أنت تستخدم أيضا فرق، أيضا، في مشكلة تعيين المواصفات. 56 00:02:33,400 --> 00:02:35,950 ولكن في السماح لك ل مقارنة ملفين. 57 00:02:35,950 --> 00:02:39,180 هل يمكن المقارنة بين ملف الصورة النقطية و معلومات رؤوس حلا الموظفين و 58 00:02:39,180 --> 00:02:42,200 الحل في pset5 إذا اخترت لاستخدامه. 59 00:02:42,200 --> 00:02:44,030 وسوف تسمح لك لفرق تفعل ذلك، كذلك. 60 00:02:44,030 --> 00:02:48,620 يمكنك مقارنة الإجابة الصحيحة ل مشكلة هذا الأسبوع لتعيين إجابتك 61 00:02:48,620 --> 00:02:52,210 ومعرفة ما اذا كان يصطف أو راجع حيث الأخطاء. 62 00:02:52,210 --> 00:02:55,870 >> حتى تلك هي ثلاث أدوات الجيدة التي يجب عليك استخدام لهذا الأسبوع، و 63 00:02:55,870 --> 00:02:58,130 بالتأكيد تحقق برنامجك مع هذه الأدوات الثلاث 64 00:02:58,130 --> 00:03:00,520 قبل ان يتحول فيه. 65 00:03:00,520 --> 00:03:04,650 مرة أخرى، كما ذكرت كل أسبوع، إذا كان لديك أي ردود فعل بالنسبة لي - على حد سواء 66 00:03:04,650 --> 00:03:06,470 إيجابية وبناءة - 67 00:03:06,470 --> 00:03:09,930 لا تتردد في التوجه الى الموقع في الجزء السفلي من هذه الشريحة 68 00:03:09,930 --> 00:03:11,270 والمدخلات هناك. 69 00:03:11,270 --> 00:03:13,440 أنا حقا نقدر أي وجميع ردود الفعل. 70 00:03:13,440 --> 00:03:17,360 وإذا كنت تعطيني أشياء محددة يمكنني القيام به لتحسين أو أنني 71 00:03:17,360 --> 00:03:21,350 بلاء حسنا ان كنت تريد مني أن تواصل، أنا أعتبر أن لقلب و 72 00:03:21,350 --> 00:03:24,040 محاولة من الصعب حقا للاستماع لملاحظاتك. 73 00:03:24,040 --> 00:03:27,720 لا أستطيع أن أعدكم بأنني ذاهب الى القيام به كل شيء، رغم ذلك، مثل ارتداء 74 00:03:27,720 --> 00:03:30,700 اليقطين زي كل أسبوع. 75 00:03:30,700 --> 00:03:34,020 >> لذلك نحن ذاهبون لقضاء الجزء الأكبر من القسم، وكما ذكرت، نتحدث عن 76 00:03:34,020 --> 00:03:37,240 القوائم المرتبطة والجداول التجزئة، والتي وسوف تكون قابلة للتطبيق مباشرة إلى 77 00:03:37,240 --> 00:03:38,780 مشكلة تعيين هذا الاسبوع. 78 00:03:38,780 --> 00:03:42,580 القوائم المرتبطة سنذهب أكثر نسبيا بسرعة لأننا قضيت عادلة قليلا 79 00:03:42,580 --> 00:03:44,930 من الوقت في الذهاب أكثر من ذلك في القسم. 80 00:03:44,930 --> 00:03:48,680 ولذا فإننا سوف تحصل مباشرة الى الترميز لمشاكل القوائم المرتبطة. 81 00:03:48,680 --> 00:03:52,740 ثم في نهاية سنتحدث عن تجزئة الجداول وكيفية تطبيقها لهذا 82 00:03:52,740 --> 00:03:55,280 تعيين المشكلة الأسبوع. 83 00:03:55,280 --> 00:03:57,560 >> كنت قد رأيت هذا الرمز من قبل. 84 00:03:57,560 --> 00:04:02,730 هذا هو البنية، وأنها تحدد ما يسمى عقدة جديدة. 85 00:04:02,730 --> 00:04:10,660 وداخل عقدة هناك عدد صحيح الحق هنا وهناك هو مؤشر ل 86 00:04:10,660 --> 00:04:11,830 عقدة أخرى. 87 00:04:11,830 --> 00:04:12,790 شاهدنا هذا من قبل. 88 00:04:12,790 --> 00:04:14,830 وقد تم هذا الخروج ل بضعة أسابيع حتى الآن. 89 00:04:14,830 --> 00:04:18,680 فهو يجمع بين المؤشرات التي كنا العمل مع، والبنيات، والتي تسمح 90 00:04:18,680 --> 00:04:22,079 لنا الجمع بين مختلفين الأشياء إلى نوع بيانات واحد. 91 00:04:22,079 --> 00:04:24,830 92 00:04:24,830 --> 00:04:26,490 >> هناك الكثير يجري على الشاشة. 93 00:04:26,490 --> 00:04:30,220 ولكن كل ذلك يجب أن يكون نسبيا دراية لك. 94 00:04:30,220 --> 00:04:33,810 في السطر الأول، ونحن تعلن عقدة جديدة. 95 00:04:33,810 --> 00:04:41,650 ثم داخل هذه عقدة جديدة، أنا وضعت العدد الصحيح في تلك العقدة إلى واحد. 96 00:04:41,650 --> 00:04:44,950 نرى على السطر التالي أفعله ل printf الأمر، ولكني جرايد 97 00:04:44,950 --> 00:04:48,080 الأمر printf لأن حقا جزء مهم من هذا الخط هنا - 98 00:04:48,080 --> 00:04:50,020 new_node.n. 99 00:04:50,020 --> 00:04:51,270 ماذا يعني النقطة؟ 100 00:04:51,270 --> 00:04:53,810 101 00:04:53,810 --> 00:04:57,240 >> الجمهور: الذهاب إلى عقدة و تقدير قيمة ن لذلك. 102 00:04:57,240 --> 00:04:58,370 >> JASON هيرشهورن: هذا صحيح تماما. 103 00:04:58,370 --> 00:05:03,300 نقطة يعني الوصول إلى جزء ن من هذه العقدة الجديدة. 104 00:05:03,300 --> 00:05:05,690 هذا السطر التالي يفعل ماذا؟ 105 00:05:05,690 --> 00:05:16,140 106 00:05:16,140 --> 00:05:17,050 مايكل. 107 00:05:17,050 --> 00:05:21,910 >> الجمهور: انه يخلق عقدة أخرى التي من شأنها أن تشير إلى عقدة جديدة. 108 00:05:21,910 --> 00:05:24,870 >> JASON هيرشهورن: لذلك لا إنشاء عقدة جديدة. 109 00:05:24,870 --> 00:05:26,120 أنه يخلق ما؟ 110 00:05:26,120 --> 00:05:28,300 111 00:05:28,300 --> 00:05:29,300 >> الجمهور: مؤشر. 112 00:05:29,300 --> 00:05:33,460 >> JASON هيرشهورن: مؤشر إلى عقدة، كما يتبين من هذه العقدة * هنا. 113 00:05:33,460 --> 00:05:34,800 لذلك يخلق مؤشر إلى العقدة. 114 00:05:34,800 --> 00:05:37,490 والعقدة التي يتم عليها لافتا ل، مايكل؟ 115 00:05:37,490 --> 00:05:38,440 >> الجمهور: عقدة الجديد؟ 116 00:05:38,440 --> 00:05:39,240 >> JASON هيرشهورن: عقدة جديدة. 117 00:05:39,240 --> 00:05:43,020 وانها لافتا هناك لأننا نظرا لأنها عنوان عقدة جديدة. 118 00:05:43,020 --> 00:05:45,820 والآن في هذا الخط نرى طريقتين مختلفتين ل 119 00:05:45,820 --> 00:05:46,910 معربا عن الشيء نفسه. 120 00:05:46,910 --> 00:05:49,650 وكنت أرغب في توضيح مدى هذه شيئين هي نفسها. 121 00:05:49,650 --> 00:05:54,740 في السطر الأول، ونحن إلغاء مرجعية المؤشر. 122 00:05:54,740 --> 00:05:55,830 لذلك نذهب إلى العقدة. 123 00:05:55,830 --> 00:05:56,830 وهذا ما يعني هذا النجم. 124 00:05:56,830 --> 00:05:57,930 شاهدنا ذلك من قبل مع مؤشرات. 125 00:05:57,930 --> 00:05:59,280 تذهب إلى تلك العقدة. 126 00:05:59,280 --> 00:06:00,370 هذا هو بين قوسين. 127 00:06:00,370 --> 00:06:04,610 ومن ثم الوصول عبر المشغل نقطة العنصر ن من تلك العقدة. 128 00:06:04,610 --> 00:06:08,430 >> بحيث انه أخذ جملة رأينا الحق هنا والآن 129 00:06:08,430 --> 00:06:09,670 استخدامه مع مؤشر. 130 00:06:09,670 --> 00:06:13,730 بطبيعة الحال، فإنه يحصل نوع من مشغول في حالة كنت تكتب تلك قوسين - 131 00:06:13,730 --> 00:06:14,940 هذا النجم وتلك النقطة. 132 00:06:14,940 --> 00:06:16,220 يحصل مشغول قليلا. 133 00:06:16,220 --> 00:06:18,500 لذلك لدينا بعض السكر النحوية. 134 00:06:18,500 --> 00:06:19,920 وهذا الخط هنا - 135 00:06:19,920 --> 00:06:21,170 ptr_node-> ن. 136 00:06:21,170 --> 00:06:25,400 137 00:06:25,400 --> 00:06:28,000 أن يفعل الشيء نفسه بالضبط. 138 00:06:28,000 --> 00:06:30,840 حتى تلك سطرين من التعليمات البرمجية هي وسوف نفعل ما يعادل 139 00:06:30,840 --> 00:06:31,650 نفس الشيء بالضبط. 140 00:06:31,650 --> 00:06:34,210 >> ولكن أردت أن أشير من قبل تلك نذهب إلى أبعد من ذلك لفهم 141 00:06:34,210 --> 00:06:39,000 حقا أن هذا الشيء هنا هو مجرد السكر النحوية ليعتبر إلغاء مرجعية 142 00:06:39,000 --> 00:06:44,200 المؤشر ومن ثم الذهاب الى ن جزءا من تلك البنية. 143 00:06:44,200 --> 00:06:45,525 أي أسئلة حول هذه الشريحة؟ 144 00:06:45,525 --> 00:06:53,020 145 00:06:53,020 --> 00:06:54,390 موافق. 146 00:06:54,390 --> 00:06:58,510 >> لذلك نحن في طريقنا للذهاب من خلال زوجين العمليات التي يمكنك القيام به على 147 00:06:58,510 --> 00:06:59,730 القوائم المرتبطة. 148 00:06:59,730 --> 00:07:05,770 قائمة مرتبطة، أذكر، هو عبارة عن سلسلة من العقد التي تشير إلى بعضها البعض. 149 00:07:05,770 --> 00:07:12,470 ونبدأ عموما مع مؤشر دعا رئيس، وعموما، يشير إلى 150 00:07:12,470 --> 00:07:14,040 أول شيء في القائمة. 151 00:07:14,040 --> 00:07:18,900 هكذا السطر الأول هنا، ونحن لدينا L الأصلية الأولى. 152 00:07:18,900 --> 00:07:21,370 بحيث شيء يمكن ان يخطر لك - وهذا نص هنا يمكن ان يخطر لك كما 153 00:07:21,370 --> 00:07:23,560 مجرد مؤشر قمنا المخزنة أن النقاط في مكان ما 154 00:07:23,560 --> 00:07:24,670 إلى العنصر الأول. 155 00:07:24,670 --> 00:07:27,500 وفي هذه القائمة مرتبطة لدينا أربعة العقد. 156 00:07:27,500 --> 00:07:29,530 كل عقدة هو مربع كبير. 157 00:07:29,530 --> 00:07:33,430 مربع أكبر داخل كبيرة المربع هو الجزء صحيحا. 158 00:07:33,430 --> 00:07:37,400 ثم لدينا جزء المؤشر. 159 00:07:37,400 --> 00:07:39,630 >> لم يتم رسمها هذه الصناديق ل مقياس لكيفية كبيرة هي 160 00:07:39,630 --> 00:07:42,320 عدد صحيح في بايت؟ 161 00:07:42,320 --> 00:07:43,290 كيف كبيرة الآن؟ 162 00:07:43,290 --> 00:07:43,710 أربعة. 163 00:07:43,710 --> 00:07:45,470 وكيف كبيرة هو مؤشر؟ 164 00:07:45,470 --> 00:07:45,940 أربعة. 165 00:07:45,940 --> 00:07:48,180 ذلك حقا، وإذا كان لنا أن رسم هذا على نطاق مربعي 166 00:07:48,180 --> 00:07:49,690 سيكون بنفس الحجم. 167 00:07:49,690 --> 00:07:52,870 في هذه الحالة، نريد أن إدراج شيء في القائمة المرتبطة. 168 00:07:52,870 --> 00:07:57,190 حتى تتمكن من رؤية أسفل هنا نحن إدراج خمسة ونحن من خلال اجتياز 169 00:07:57,190 --> 00:08:01,310 القائمة المرتبطة، تجد فيها خمسة يذهب، ثم أدخله. 170 00:08:01,310 --> 00:08:03,560 >> دعونا كسر ذلك وتذهب أكثر قليلا ببطء. 171 00:08:03,560 --> 00:08:05,510 انا ذاهب للإشارة إلى المجلس. 172 00:08:05,510 --> 00:08:09,930 لذلك لدينا عقدة لدينا الخمس التي انشأناها في mallocs. 173 00:08:09,930 --> 00:08:11,190 لماذا الجميع يضحك؟ 174 00:08:11,190 --> 00:08:12,130 مجرد مزاح. 175 00:08:12,130 --> 00:08:13,310 موافق. 176 00:08:13,310 --> 00:08:14,820 لذلك قمنا malloced الخمسة. 177 00:08:14,820 --> 00:08:16,310 قمنا بإنشاء هذه العقدة في مكان آخر. 178 00:08:16,310 --> 00:08:17,740 لدينا على استعداد للذهاب. 179 00:08:17,740 --> 00:08:20,130 نبدأ في الجزء الأمامي من لدينا قائمة مع اثنين. 180 00:08:20,130 --> 00:08:22,380 ونحن نريد أن إدراج بطريقة فرزها. 181 00:08:22,380 --> 00:08:27,550 >> حتى إذا كنا نرى اثنين، ونحن نريد ان نضع في خمسة، ماذا نفعل عندما نرى 182 00:08:27,550 --> 00:08:28,800 شيء أقل من لنا؟ 183 00:08:28,800 --> 00:08:31,850 184 00:08:31,850 --> 00:08:33,520 ماذا؟ 185 00:08:33,520 --> 00:08:36,750 نحن نريد لإدراج خمسة في هذا قائمة مرتبطة، وابقائها فرزها. 186 00:08:36,750 --> 00:08:37,520 ونحن نرى عدد اثنين. 187 00:08:37,520 --> 00:08:38,769 فماذا نفعل؟ 188 00:08:38,769 --> 00:08:39,179 ماركوس؟ 189 00:08:39,179 --> 00:08:40,679 >> الحضور: دعوة المؤشر إلى العقدة المقبل. 190 00:08:40,679 --> 00:08:42,530 >> JASON هيرشهورن: ولماذا تفعل نذهب إلى المرحلة التالية؟ 191 00:08:42,530 --> 00:08:45,970 >> الحضور: لأنه هو عقدة التالي في القائمة. 192 00:08:45,970 --> 00:08:48,310 ونحن نعلم فقط أن موقع آخر. 193 00:08:48,310 --> 00:08:50,410 >> JASON هيرشهورن: وخمس أكبر من اثنين، على وجه الخصوص. 194 00:08:50,410 --> 00:08:51,600 لأننا نريد أن نحافظ عليها فرزها. 195 00:08:51,600 --> 00:08:52,730 حتى خمسة أكبر من اثنين. 196 00:08:52,730 --> 00:08:54,460 حتى ننتقل إلى المرحلة التالية. 197 00:08:54,460 --> 00:08:55,240 والآن نصل إلى أربعة. 198 00:08:55,240 --> 00:08:56,490 وماذا يحدث عندما نصل إلى أربعة؟ 199 00:08:56,490 --> 00:08:58,920 200 00:08:58,920 --> 00:09:00,310 >> خمسة هو أكبر من أربعة. 201 00:09:00,310 --> 00:09:01,460 لذلك نحن الاستمرار. 202 00:09:01,460 --> 00:09:03,110 ونحن الآن في ستة. 203 00:09:03,110 --> 00:09:04,360 وماذا نرى في ستة؟ 204 00:09:04,360 --> 00:09:08,672 205 00:09:08,672 --> 00:09:09,608 نعم، كارلوس؟ 206 00:09:09,608 --> 00:09:10,544 >> الحضور: ستة أكبر من خمسة. 207 00:09:10,544 --> 00:09:11,480 >> JASON هيرشهورن: ستة هي أكبر من خمسة. 208 00:09:11,480 --> 00:09:13,660 ذلك أن المكان الذي نريد لإدراج خمسة. 209 00:09:13,660 --> 00:09:17,320 ومع ذلك، نضع في اعتبارنا أنه إذا كنا لا تملك إلا مؤشر واحد هنا - 210 00:09:17,320 --> 00:09:19,840 هذا هو مؤشر اضافي لدينا هذا تعبر من خلال القائمة. 211 00:09:19,840 --> 00:09:21,860 ونحن لافتا إلى ستة. 212 00:09:21,860 --> 00:09:25,010 فقدنا مسار ما ويأتي قبل ستة. 213 00:09:25,010 --> 00:09:29,130 لذلك إذا كنا نريد لادخال شيء في هذه القائمة ابقائها فرزها، ونحن 214 00:09:29,130 --> 00:09:31,630 ربما تحتاج كم من المؤشرات؟ 215 00:09:31,630 --> 00:09:32,280 >> الحضور: اثنان. 216 00:09:32,280 --> 00:09:32,920 >> JASON هيرشورن: اثنان. 217 00:09:32,920 --> 00:09:35,720 واحد لتتبع التيار واحد واحد لتتبع 218 00:09:35,720 --> 00:09:37,050 سابقتها. 219 00:09:37,050 --> 00:09:38,450 هذا هو قائمة مرتبطة منفردة فقط. 220 00:09:38,450 --> 00:09:39,670 يذهب اتجاه واحد فقط. 221 00:09:39,670 --> 00:09:43,220 لو كان لدينا قائمة مرتبطة على نحو مضاعف، حيث كل شيء كان يشير إلى شيء 222 00:09:43,220 --> 00:09:46,240 بعد ذلك، والشيء قبل ذلك، ثم ونحن لن تحتاج للقيام بذلك. 223 00:09:46,240 --> 00:09:49,350 ولكن في هذه الحالة نحن لا نريد لانقاص تتبع ما سبقونا في حالة 224 00:09:49,350 --> 00:09:53,350 نحن بحاجة إلى إدراج خمسة في مكان ما في الوسط. 225 00:09:53,350 --> 00:09:55,610 ويقول كنا إدراج تسعة. 226 00:09:55,610 --> 00:09:57,260 ما الذي سيحدث عندما وصلنا إلى ثمانية؟ 227 00:09:57,260 --> 00:10:01,860 228 00:10:01,860 --> 00:10:04,880 >> الحضور: كنت قد ل الحصول على تلك النقطة فارغة. 229 00:10:04,880 --> 00:10:07,820 بدلا من الاضطرار نقطة فارغة كنت قد لإضافة عنصر ومن ثم يكون 230 00:10:07,820 --> 00:10:09,216 ذلك إشارة إلى تسعة. 231 00:10:09,216 --> 00:10:09,700 >> JASON هيرشورن: بالضبط. 232 00:10:09,700 --> 00:10:10,600 حتى نحصل على ثمانية. 233 00:10:10,600 --> 00:10:13,140 نصل إلى نهاية القائمة ل هذا يشير إلى قيمة خالية. 234 00:10:13,140 --> 00:10:16,330 والآن، بدلا من الاضطرار أنها تشير إلى لاغية لدينا ذلك إشارة إلى عقدة جديدة لدينا. 235 00:10:16,330 --> 00:10:19,870 وضعنا المؤشر في عقدة لدينا الجديد إلى قيمة خالية. 236 00:10:19,870 --> 00:10:21,445 هل لدى أي شخص أي أسئلة حول إدراج؟ 237 00:10:21,445 --> 00:10:25,620 238 00:10:25,620 --> 00:10:28,100 ماذا لو كنت لا تبالي الحفاظ على قائمة تم فرزها؟ 239 00:10:28,100 --> 00:10:31,701 240 00:10:31,701 --> 00:10:34,350 >> الجمهور: عصا في بداية أو نهاية. 241 00:10:34,350 --> 00:10:35,510 >> JASON هيرشورن: عصا في بداية أو نهاية. 242 00:10:35,510 --> 00:10:37,276 أي واحد يجب أن نفعل؟ 243 00:10:37,276 --> 00:10:38,770 بوبي؟ 244 00:10:38,770 --> 00:10:41,020 لماذا نهاية؟ 245 00:10:41,020 --> 00:10:43,250 >> الحضور: لأن بداية يتم تعبئة بالفعل. 246 00:10:43,250 --> 00:10:43,575 >> JASON هيرشورن: OK. 247 00:10:43,575 --> 00:10:44,360 يتم تعبئة بالفعل البداية. 248 00:10:44,360 --> 00:10:46,090 الذي يريد أن يجادل ضد بوبي. 249 00:10:46,090 --> 00:10:47,290 ماركوس. 250 00:10:47,290 --> 00:10:48,910 >> الحضور: حسنا ربما كنت ترغب في التمسك بها في البداية ل 251 00:10:48,910 --> 00:10:50,140 إلا إذا وضعته في نهاية كنت قد ل 252 00:10:50,140 --> 00:10:51,835 تعبر القائمة بأكملها. 253 00:10:51,835 --> 00:10:52,990 >> JASON هيرشورن: بالضبط. 254 00:10:52,990 --> 00:10:57,970 حتى إذا نحن نفكر في وقت التشغيل، و وقت التشغيل من إدراج في نهاية 255 00:10:57,970 --> 00:11:00,110 سيكون ن، وحجم هذا. 256 00:11:00,110 --> 00:11:03,080 ما هو يا وقت كبير من إدراج في البداية؟ 257 00:11:03,080 --> 00:11:04,170 وقت ثابت. 258 00:11:04,170 --> 00:11:07,075 لذلك إذا كنت لا تبالي حفظ شيء فرزها، أفضل بكثير لمجرد 259 00:11:07,075 --> 00:11:08,420 إدراج في بداية هذه القائمة. 260 00:11:08,420 --> 00:11:10,320 والذي يمكن القيام به في وقت ثابت. 261 00:11:10,320 --> 00:11:13,900 262 00:11:13,900 --> 00:11:14,690 >> موافق. 263 00:11:14,690 --> 00:11:18,870 العملية التالية التي يتم العثور عليها، والتي غيرها - لقد فسر البحث. 264 00:11:18,870 --> 00:11:22,470 ولكن ونحن في طريقنا لننظر من خلال قائمة مرتبطة لبعض وجوه. 265 00:11:22,470 --> 00:11:26,000 شهدت يا رفاق رمز ل بحث من قبل في المحاضرة. 266 00:11:26,000 --> 00:11:29,490 ولكننا نوع من فعل ذلك فقط مع إدراج، أو إدراج ما لا يقل عن 267 00:11:29,490 --> 00:11:30,580 شيء فرزها. 268 00:11:30,580 --> 00:11:36,350 أنت تنظر من خلال، والذهاب عقدة عقدة من قبل، حتى تجد الرقم الذي كنت 269 00:11:36,350 --> 00:11:37,780 تبحث عنه. 270 00:11:37,780 --> 00:11:39,670 ماذا يحدث إذا وصلت في نهاية القائمة؟ 271 00:11:39,670 --> 00:11:43,020 يقول أنا أبحث عن تسع وأنا تصل إلى نهاية القائمة. 272 00:11:43,020 --> 00:11:44,270 ماذا نفعل؟ 273 00:11:44,270 --> 00:11:47,147 274 00:11:47,147 --> 00:11:48,110 >> الجمهور: عودة كاذبة؟ 275 00:11:48,110 --> 00:11:48,690 >> JASON هيرشورن: عودة كاذبة. 276 00:11:48,690 --> 00:11:49,960 لم نجد ذلك. 277 00:11:49,960 --> 00:11:52,010 إذا وصلت إلى نهاية القائمة و لأنك لم تجد الرقم الذي كنت 278 00:11:52,010 --> 00:11:54,170 تبحث عنه، انها ليست في وجود. 279 00:11:54,170 --> 00:11:55,420 أي أسئلة حول العثور عليها؟ 280 00:11:55,420 --> 00:11:59,530 281 00:11:59,530 --> 00:12:04,615 إذا كانت هذه القائمة المفروزة، ما من شأنه تكون مختلفة عن البحث لدينا؟ 282 00:12:04,615 --> 00:12:07,370 283 00:12:07,370 --> 00:12:08,103 نعم. 284 00:12:08,103 --> 00:12:10,600 >> الحضور: وسوف تجد القيمة الأولى هذا هو أكبر من واحد 285 00:12:10,600 --> 00:12:12,390 كنت تبحث عن و ثم عودة كاذبة. 286 00:12:12,390 --> 00:12:13,190 >> JASON هيرشورن: بالضبط. 287 00:12:13,190 --> 00:12:17,310 حتى لو كان على قائمة فرزها، إذا نصل إلى شيء أن يكون أكبر من ما 288 00:12:17,310 --> 00:12:20,180 نحن نبحث عن، ونحن لسنا في حاجة ل الاستمرار إلى نهاية القائمة. 289 00:12:20,180 --> 00:12:24,060 يمكننا في هذه النقطة عودة كاذبة لأننا لن تجد ذلك. 290 00:12:24,060 --> 00:12:27,340 والآن، تحدثنا على سؤال حول حفظ القوائم المرتبطة فرزها، 291 00:12:27,340 --> 00:12:28,180 ابقائها لم يتم فرزها. 292 00:12:28,180 --> 00:12:30,050 وهذا ما سوف يكون شيئا كنت ربما ستكون لدينا للتفكير 293 00:12:30,050 --> 00:12:34,240 عندما وضعت الترميز المشكلة خمس إذا كنت اختيار جدول تجزئة مع منفصلة 294 00:12:34,240 --> 00:12:36,360 تسلسل النهج، الذي سنتحدث عنها لاحقا. 295 00:12:36,360 --> 00:12:41,400 >> ولكن هل هو يستحق كل هذا العناء للحفاظ على قائمة فرزها ومن ثم تكون قادرة على ربما 296 00:12:41,400 --> 00:12:42,310 أسرع عمليات البحث؟ 297 00:12:42,310 --> 00:12:47,220 أم أنه من الأفضل لادخال بسرعة شيء ما في وقت التشغيل المستمر ولكن بعد ذلك 298 00:12:47,220 --> 00:12:48,430 يكون أطول تبحث؟ 299 00:12:48,430 --> 00:12:52,250 وهذا هو المقايضة هناك حق لك أن الحصول على لتقرر ما هو أكثر ملاءمة 300 00:12:52,250 --> 00:12:53,590 لمشكلة محددة. 301 00:12:53,590 --> 00:12:56,680 وهناك ليست بالضرورة واحدة الجواب الصحيح تماما. 302 00:12:56,680 --> 00:12:59,520 ولكن من المؤكد أن قرار تحصل لجعل، وربما جيدة للدفاع 303 00:12:59,520 --> 00:13:05,270 أنه في، ويقول، تعليقا أو اثنين لماذا اخترت واحد على الآخر. 304 00:13:05,270 --> 00:13:06,490 >> أخيرا، وحذف. 305 00:13:06,490 --> 00:13:08,100 رأيناه حذف. 306 00:13:08,100 --> 00:13:09,180 انها تشبه الى البحث. 307 00:13:09,180 --> 00:13:11,020 نحن نبحث عن العنصر. 308 00:13:11,020 --> 00:13:12,390 يقول نحاول حذف ستة. 309 00:13:12,390 --> 00:13:14,450 لذلك نجد ستة الحق هنا. 310 00:13:14,450 --> 00:13:18,860 الشيء الذي علينا أن نتأكد من أننا القيام به هو أن كل ما يشير إلى 311 00:13:18,860 --> 00:13:21,220 ستة - كما نرى في الخطوة اثنين من أسفل هنا - 312 00:13:21,220 --> 00:13:26,500 أيا كان لافتا إلى ستة احتياجات ل تخطي ستة من الآن وإلى أن تتغير 313 00:13:26,500 --> 00:13:28,160 كل ما يشير إلى ستة. 314 00:13:28,160 --> 00:13:31,410 نحن لا نريد من أي وقت مضى إلى اليتيم بقية لدينا قائمة من قبل نسيان لتعيين هذا 315 00:13:31,410 --> 00:13:32,960 المؤشر السابق. 316 00:13:32,960 --> 00:13:35,960 ثم في بعض الأحيان، وهذا يتوقف على البرنامج، أنها سوف فقط 317 00:13:35,960 --> 00:13:37,380 حذف هذه العقدة تماما. 318 00:13:37,380 --> 00:13:40,135 أحيانا سترغب في العودة القيمة التي هو في هذه العقدة. 319 00:13:40,135 --> 00:13:42,490 ذلك أن كيفية حذف الأشغال. 320 00:13:42,490 --> 00:13:44,610 أي أسئلة حول حذف؟ 321 00:13:44,610 --> 00:13:51,280 322 00:13:51,280 --> 00:13:53,850 >> الجمهور: حتى إذا كنت تريد الذهاب لحذف ذلك، وكنت مجرد استخدام مجانا ل 323 00:13:53,850 --> 00:13:55,655 يفترض malloced كان ذلك؟ 324 00:13:55,655 --> 00:13:57,976 >> JASON هيرشورن: إذا كنت ترغب في تحرير شيء وهذا صحيح تماما، وكنت 325 00:13:57,976 --> 00:13:58,540 malloced ذلك. 326 00:13:58,540 --> 00:14:00,410 يقول أردنا أن العودة هذه القيمة. 327 00:14:00,410 --> 00:14:04,010 ونحن قد العودة ستة وخالية ثم هذه العقدة والكلمة الحرة على ذلك. 328 00:14:04,010 --> 00:14:06,180 أو ربما كنا الكلمة الحرة الأولى ثم العودة الست. 329 00:14:06,180 --> 00:14:11,210 330 00:14:11,210 --> 00:14:11,580 >> موافق. 331 00:14:11,580 --> 00:14:14,010 لذلك دعونا ننتقل إلى ممارسة الترميز. 332 00:14:14,010 --> 00:14:16,090 ونحن في طريقنا إلى رمز ثلاث وظائف. 333 00:14:16,090 --> 00:14:18,260 ويسمى أول واحد insert_node. 334 00:14:18,260 --> 00:14:22,170 بحيث يكون لديك التعليمات البرمجية التي لي بالبريد الإلكتروني لك، و إذا كنت أشاهد هذا في وقت لاحق 335 00:14:22,170 --> 00:14:28,020 يمكنك الوصول إلى التعليمات البرمجية في linked.c على موقع CS50. 336 00:14:28,020 --> 00:14:30,880 ولكن في linked.c، وهناك بعض كود هيكل عظمي وهذا بالفعل 337 00:14:30,880 --> 00:14:32,280 قد كتب لك. 338 00:14:32,280 --> 00:14:34,560 ثم هناك وظائف زوجين تحتاج إلى كتابة. 339 00:14:34,560 --> 00:14:36,380 >> أولا نحن في طريقنا لل إرسال insert_node. 340 00:14:36,380 --> 00:14:39,800 وماذا يفعل insert_node غير إدراج عدد صحيح. 341 00:14:39,800 --> 00:14:42,440 وكنت إعطاء عدد صحيح في قائمة مرتبطة. 342 00:14:42,440 --> 00:14:45,470 وعلى وجه الخصوص، تحتاج للحفاظ على قائمة تم فرزها 343 00:14:45,470 --> 00:14:47,650 من الأصغر إلى الأكبر. 344 00:14:47,650 --> 00:14:51,360 أيضا، كنت لا تريد ل إدراج أي التكرارات. 345 00:14:51,360 --> 00:14:54,600 أخيرا، وكما ترون insert_node إرجاع منطقي. 346 00:14:54,600 --> 00:14:57,140 لذلك كنت من المفترض أن تسمح للمستخدم معرفة إذا كان إدراج أو لا 347 00:14:57,140 --> 00:15:00,800 ناجحة من خلال العودة صحيحة أو خاطئة. 348 00:15:00,800 --> 00:15:02,580 في نهاية هذا البرنامج - 349 00:15:02,580 --> 00:15:05,750 وهذه المرحلة لا تحتاج ما يدعو للقلق تحرير أي شيء. 350 00:15:05,750 --> 00:15:11,790 لذلك كل ما نقوم به هو اتخاذ عدد صحيح وإدراجه في قائمة. 351 00:15:11,790 --> 00:15:13,890 >> هذا هو ما أنا أسأل لك أن تفعل الآن. 352 00:15:13,890 --> 00:15:17,620 مرة أخرى، في linked.c، والتي جميعا، هو رمز الهيكل العظمي. 353 00:15:17,620 --> 00:15:20,980 وسترى نحو القاع العينة وظيفة الإعلان. 354 00:15:20,980 --> 00:15:27,390 ولكن، قبل الخوض في ذلك الترميز في C، أشجع بشدة لك أن تذهب 355 00:15:27,390 --> 00:15:29,330 من خلال الخطوات كنا ممارسة كل أسبوع. 356 00:15:29,330 --> 00:15:31,100 انتقلنا بالفعل من خلال صورة من هذا. 357 00:15:31,100 --> 00:15:33,380 لذلك ينبغي أن يكون لديك بعض الفهم كيف يعمل هذا. 358 00:15:33,380 --> 00:15:36,590 ولكن أود أن أشجعكم على إرسال بعض شبة الكود قبل الغوص فيها. 359 00:15:36,590 --> 00:15:38,640 ونحن في طريقنا للذهاب أكثر شبة الكود كمجموعة. 360 00:15:38,640 --> 00:15:41,470 ثم مرة واحدة كنت قد كتبت لكم شبة الكود، ومرة ​​واحدة لدينا كتب لدينا 361 00:15:41,470 --> 00:15:45,850 شبة الكود كمجموعة، يمكنك الخوض في الترميز في C. 362 00:15:45,850 --> 00:15:49,980 >> كما رؤساء حتى وظيفة insert_node وربما كان أصعب من 363 00:15:49,980 --> 00:15:53,550 ثلاثة ونحن في طريقنا لكتابة لأنني وأضاف بعض القيود الإضافية ل 364 00:15:53,550 --> 00:15:57,190 البرمجة الخاصة بك، ولا سيما أن كنت لن إدراج أي 365 00:15:57,190 --> 00:15:59,880 التكرارات وأن القائمة ينبغي أن تظل فرزها. 366 00:15:59,880 --> 00:16:02,660 لذلك هذا هو برنامج غير تافهة التي تحتاج إلى رمز. 367 00:16:02,660 --> 00:16:06,470 ولماذا لا تأخذ 06:55 دقائق فقط للحصول على العمل على 368 00:16:06,470 --> 00:16:07,640 شبة الكود والشفرة. 369 00:16:07,640 --> 00:16:09,460 ثم سنبدأ الذهاب كمجموعة. 370 00:16:09,460 --> 00:16:11,680 مرة أخرى، إذا كان لديك أي أسئلة فقط ارفع يدك وسآتي حولها. 371 00:16:11,680 --> 00:16:15,258 372 00:16:15,258 --> 00:16:16,508 . 373 00:16:16,508 --> 00:18:28,370 374 00:18:28,370 --> 00:18:30,120 >> نحن أيضا عموما هذه - 375 00:18:30,120 --> 00:18:32,070 أو أنا لا أقول لك صراحة يمكن أن تعمل مع الناس. 376 00:18:32,070 --> 00:18:36,500 ولكن من الواضح، وأنا أشجعكم جدا إذا كان لديك أسئلة، أن تطلب من 377 00:18:36,500 --> 00:18:39,840 الجار يجلس إلى جانبك أو حتى العمل مع شخص ما 378 00:18:39,840 --> 00:18:40,510 آخر إذا كنت ترغب في ذلك. 379 00:18:40,510 --> 00:18:42,600 لم يكن هذا ليكون الفرد النشاط صامتة. 380 00:18:42,600 --> 00:20:11,770 381 00:20:11,770 --> 00:20:16,330 >> دعونا نبدأ مع كتابة بعض شبة الكود على متن الطائرة. 382 00:20:16,330 --> 00:20:19,395 الذين يمكن أن تعطيني السطر الأول من شبة الكود لهذا البرنامج؟ 383 00:20:19,395 --> 00:20:22,240 384 00:20:22,240 --> 00:20:23,640 لهذه المهمة، بدلا - insert_node. 385 00:20:23,640 --> 00:20:29,960 386 00:20:29,960 --> 00:20:31,830 ألدين؟ 387 00:20:31,830 --> 00:20:36,560 >> الحضور: لذلك كان أول شيء فعلته إنشاء مؤشر جديد إلى عقدة وأنا 388 00:20:36,560 --> 00:20:41,320 تهيئته لافتا إلى نفس الشيء الذي يشير إلى القائمة. 389 00:20:41,320 --> 00:20:41,550 >> JASON هيرشورن: OK. 390 00:20:41,550 --> 00:20:45,190 لذلك كنت تقوم بإنشاء مؤشر جديد إلى القائمة، وليس إلى العقدة. 391 00:20:45,190 --> 00:20:45,420 >> الحضور: الحق. 392 00:20:45,420 --> 00:20:46,150 نعم. 393 00:20:46,150 --> 00:20:46,540 >> JASON هيرشورن: OK. 394 00:20:46,540 --> 00:20:48,221 ثم ماذا نريد أن نفعل؟ 395 00:20:48,221 --> 00:20:49,163 ما بعد ذلك؟ 396 00:20:49,163 --> 00:20:50,105 ماذا عن العقدة؟ 397 00:20:50,105 --> 00:20:51,050 ليس لدينا عقدة. 398 00:20:51,050 --> 00:20:52,300 لدينا فقط قيمة. 399 00:20:52,300 --> 00:20:55,918 400 00:20:55,918 --> 00:20:58,890 إذا كنا نريد لإدراج عقدة، فماذا نحن تحتاج إلى القيام به أولا قبل أن نتمكن حتى 401 00:20:58,890 --> 00:20:59,980 التفكير في إدراج ذلك؟ 402 00:20:59,980 --> 00:21:00,820 >> الحضور: أوه، آسف. 403 00:21:00,820 --> 00:21:02,160 نحن بحاجة إلى malloc مساحة للعقدة. 404 00:21:02,160 --> 00:21:02,455 >> JASON هيرشورن: ممتاز. 405 00:21:02,455 --> 00:21:03,210 دعونا نفعل - 406 00:21:03,210 --> 00:21:04,628 موافق. 407 00:21:04,628 --> 00:21:06,065 لا يمكن أن تصل إلى أن ارتفاع. 408 00:21:06,065 --> 00:21:08,939 409 00:21:08,939 --> 00:21:09,897 موافق. 410 00:21:09,897 --> 00:21:13,236 ونحن في طريقنا للذهاب إلى أسفل، ومن ثم نستخدمه عمودين. 411 00:21:13,236 --> 00:21:13,732 لا أستطيع أن أذهب ذلك - 412 00:21:13,732 --> 00:21:14,982 موافق. 413 00:21:14,982 --> 00:21:23,660 414 00:21:23,660 --> 00:21:25,130 إنشاء عقدة جديدة. 415 00:21:25,130 --> 00:21:29,380 يمكنك إنشاء مؤشر آخر إلى القائمة أو يمكنك فقط استخدام قائمة كما هو قائم. 416 00:21:29,380 --> 00:21:30,720 لا تحتاج حقا أن تفعل ذلك. 417 00:21:30,720 --> 00:21:31,750 >> لذلك نحن إنشاء عقدة جديدة. 418 00:21:31,750 --> 00:21:32,010 عظيم. 419 00:21:32,010 --> 00:21:32,840 هذا ما نقوم به أولا. 420 00:21:32,840 --> 00:21:34,870 ما هي الخطوة التالية؟ 421 00:21:34,870 --> 00:21:35,080 >> الحضور: انتظر. 422 00:21:35,080 --> 00:21:38,330 يجب علينا إنشاء عقدة جديدة الآن أو يجب علينا الانتظار للتأكد من أن 423 00:21:38,330 --> 00:21:42,260 ليس هناك نسخ من العقدة على القائمة قبل نخلق ذلك؟ 424 00:21:42,260 --> 00:21:43,100 >> JASON هيرشورن: سؤال جيد. 425 00:21:43,100 --> 00:21:47,770 دعونا نرى أن في وقت لاحق لأن معظم الوقت سنكون خلق 426 00:21:47,770 --> 00:21:48,220 عقدة جديدة. 427 00:21:48,220 --> 00:21:49,110 ولذا فإننا سوف تبقي ذلك هنا. 428 00:21:49,110 --> 00:21:51,006 ولكن هذا سؤال جيد. 429 00:21:51,006 --> 00:21:53,250 إذا كنا إنشائه ونجد نسخة مكررة، ما ينبغي 430 00:21:53,250 --> 00:21:54,490 نفعل قبل أن تعود؟ 431 00:21:54,490 --> 00:21:55,190 >> الجمهور: تحرير ذلك. 432 00:21:55,190 --> 00:21:55,470 >> JASON هيرشورن: نعم. 433 00:21:55,470 --> 00:21:56,500 ربما تحريرها. 434 00:21:56,500 --> 00:21:56,760 موافق. 435 00:21:56,760 --> 00:21:59,850 ماذا نفعل بعد أن إنشاء عقدة جديدة؟ 436 00:21:59,850 --> 00:22:02,260 آني؟ 437 00:22:02,260 --> 00:22:04,780 >> الحضور: وضعنا رقم في العقدة؟ 438 00:22:04,780 --> 00:22:05,140 >> JASON هيرشورن: بالضبط. 439 00:22:05,140 --> 00:22:07,190 وضعنا رقم - نحن malloc الفضاء. 440 00:22:07,190 --> 00:22:08,160 أنا ذاهب إلى ترك ذلك جميع كسطر واحد. 441 00:22:08,160 --> 00:22:08,720 ولكن كنت على حق. 442 00:22:08,720 --> 00:22:10,305 نحن malloc الفضاء، ومن ثم وضعنا فيها عدد 443 00:22:10,305 --> 00:22:12,585 نحن حتى يمكن تعيين المؤشر جزء منه إلى قيمة خالية. 444 00:22:12,585 --> 00:22:13,720 هذا صحيح تماما. 445 00:22:13,720 --> 00:22:17,400 ثم ماذا عن بعد ذلك؟ 446 00:22:17,400 --> 00:22:18,490 وضعنا هذه الصورة على متن الطائرة. 447 00:22:18,490 --> 00:22:21,190 فماذا نفعل؟ 448 00:22:21,190 --> 00:22:22,680 >> الجمهور: نذهب من خلال القائمة. 449 00:22:22,680 --> 00:22:23,930 >> JASON هيرشورن: اذهب من خلال القائمة. 450 00:22:23,930 --> 00:22:30,620 451 00:22:30,620 --> 00:22:31,100 موافق. 452 00:22:31,100 --> 00:22:34,280 وماذا علينا التحقق لفي كل عقدة. 453 00:22:34,280 --> 00:22:35,955 كورت، ماذا علينا التحقق لفي كل عقدة؟ 454 00:22:35,955 --> 00:22:41,640 >> الحضور: انظر ما إذا كانت قيمة ن من هذه العقدة هي أكبر من قيمة ن 455 00:22:41,640 --> 00:22:43,070 من عقدة لدينا. 456 00:22:43,070 --> 00:22:43,340 >> JASON هيرشورن: OK. 457 00:22:43,340 --> 00:22:44,280 انا ذاهب الى القيام به - 458 00:22:44,280 --> 00:22:45,855 نعم، حسنا. 459 00:22:45,855 --> 00:22:48,160 لذلك فمن ن - 460 00:22:48,160 --> 00:22:59,040 انا ذاهب الى القول ما اذا كان قيمة أكبر من هذه العقدة، ثم ماذا نفعل؟ 461 00:22:59,040 --> 00:23:07,290 >> الحضور: حسنا، ثم نحن إدراج الشيء الصحيح قبل ذلك. 462 00:23:07,290 --> 00:23:07,970 >> JASON هيرشورن: OK. 463 00:23:07,970 --> 00:23:09,410 حتى لو كان أكبر من ذلك، ثم نريد أن إدراج. 464 00:23:09,410 --> 00:23:14,010 لكننا نريد أن أدخله الحق قبل لأننا أيضا في حاجة إلى أن يكون 465 00:23:14,010 --> 00:23:16,070 تتبع، بعد ذلك، ما كان من قبل. 466 00:23:16,070 --> 00:23:22,690 حتى قبل إدراج. 467 00:23:22,690 --> 00:23:25,120 لذلك ربما فاتنا شيء في وقت سابق يوم. 468 00:23:25,120 --> 00:23:27,770 أننا ربما تحتاج إلى حفظ تتبع ما يجري. 469 00:23:27,770 --> 00:23:28,460 لكننا سنصل إلى هناك. 470 00:23:28,460 --> 00:23:30,160 فما قيمة أقل من؟ 471 00:23:30,160 --> 00:23:38,030 472 00:23:38,030 --> 00:23:39,710 كورت، ماذا نفعل إذا القيمة هي أقل من؟ 473 00:23:39,710 --> 00:23:43,000 >> الحضور: ثم يمكنك فقط الاستمرار إلا إذا كان واحد آخر. 474 00:23:43,000 --> 00:23:43,550 >> JASON هيرشورن: أحب ذلك. 475 00:23:43,550 --> 00:23:44,800 لذلك يذهب إلى العقدة المقبل. 476 00:23:44,800 --> 00:23:47,410 477 00:23:47,410 --> 00:23:48,930 إلا إذا كان آخر واحد - 478 00:23:48,930 --> 00:23:51,100 نحن ربما التحقق من أن في حيث شرط. 479 00:23:51,100 --> 00:23:54,870 ولكن نعم، العقدة المقبل. 480 00:23:54,870 --> 00:23:58,680 وهذا ما يحصل منخفضة جدا، ولذا فإننا سوف تتحرك فوق هنا. 481 00:23:58,680 --> 00:24:02,030 ولكن إذا - 482 00:24:02,030 --> 00:24:03,280 يمكن الجميع رؤية هذا؟ 483 00:24:03,280 --> 00:24:07,230 484 00:24:07,230 --> 00:24:11,610 إذا نحن على قدم المساواة ماذا نفعل؟ 485 00:24:11,610 --> 00:24:15,740 إذا كانت قيمة نحاول إدراج تساوي قيمة هذه العقدة؟ 486 00:24:15,740 --> 00:24:16,320 نعم؟ 487 00:24:16,320 --> 00:24:18,400 >> الحضور: [غير مسموع]. 488 00:24:18,400 --> 00:24:18,850 >> JASON هيرشورن: نعم. 489 00:24:18,850 --> 00:24:19,290 ونظرا لهذا - 490 00:24:19,290 --> 00:24:20,090 ماركوس هو الصحيح. 491 00:24:20,090 --> 00:24:21,330 كان بإمكاننا القيام به ربما شيء مختلف. 492 00:24:21,330 --> 00:24:25,360 ولكن نظرا لأننا قد خلقها، وهنا نحن يجب أن يكون حرا وثم العودة. 493 00:24:25,360 --> 00:24:26,774 يا صبي. 494 00:24:26,774 --> 00:24:30,080 هو أن أفضل؟ 495 00:24:30,080 --> 00:24:31,850 كيف هذا؟ 496 00:24:31,850 --> 00:24:33,100 موافق. 497 00:24:33,100 --> 00:24:35,360 498 00:24:35,360 --> 00:24:37,640 حرة ثم ماذا نحن العودة، [غير مسموع]؟ 499 00:24:37,640 --> 00:24:41,330 500 00:24:41,330 --> 00:24:44,110 موافق. 501 00:24:44,110 --> 00:24:45,360 نحن في عداد المفقودين أي شيء؟ 502 00:24:45,360 --> 00:24:53,500 503 00:24:53,500 --> 00:24:59,650 فأين نحن تتبع العقدة قبل؟ 504 00:24:59,650 --> 00:25:02,370 >> الجمهور: أعتقد أنه سيذهب بعد إنشاء عقدة جديدة. 505 00:25:02,370 --> 00:25:02,600 >> JASON هيرشورن: OK. 506 00:25:02,600 --> 00:25:03,940 حتى في بداية سنقوم على الأرجح - 507 00:25:03,940 --> 00:25:07,175 نعم، يمكننا خلق مؤشر إلى الجديد العقدة، مثل مؤشر العقدة السابقة و 508 00:25:07,175 --> 00:25:09,600 مؤشر العقدة الحالية. 509 00:25:09,600 --> 00:25:12,640 لذلك دعونا إدراج ذلك هنا. 510 00:25:12,640 --> 00:25:15,610 511 00:25:15,610 --> 00:25:26,900 إنشاء الحالية والسابقة مؤشرات إلى العقد. 512 00:25:26,900 --> 00:25:28,955 ولكن عندما لا علينا أن نعدل تلك المؤشرات؟ 513 00:25:28,955 --> 00:25:30,205 حيث نفعل ذلك في التعليمات البرمجية؟ 514 00:25:30,205 --> 00:25:33,830 515 00:25:33,830 --> 00:25:34,160 جيف؟ 516 00:25:34,160 --> 00:25:35,170 >> الحضور: - الظروف القيمة؟ 517 00:25:35,170 --> 00:25:36,420 >> JASON هيرشورن: أي واحد على وجه الخصوص؟ 518 00:25:36,420 --> 00:25:39,862 519 00:25:39,862 --> 00:25:40,720 >> الجمهور: أنا الخلط فقط. 520 00:25:40,720 --> 00:25:44,200 إذا كانت القيمة أكبر من هذه العقدة، لا يعني ذلك أن تريد أن تذهب 521 00:25:44,200 --> 00:25:45,320 إلى العقدة المقبل؟ 522 00:25:45,320 --> 00:25:49,515 >> JASON هيرشهورن: حتى إذا قيمة لدينا هو أكبر من قيمة هذه العقدة. 523 00:25:49,515 --> 00:25:52,130 >> الجمهور: نعم، ثم كنت تريد أن تذهب أبعد من أسفل الخط، أليس كذلك؟ 524 00:25:52,130 --> 00:25:52,590 >> JASON هيرشهورن: الحق. 525 00:25:52,590 --> 00:25:53,840 لذلك نحن لا أدخله هنا. 526 00:25:53,840 --> 00:25:58,430 527 00:25:58,430 --> 00:26:03,240 إذا كانت القيمة أقل من هذه العقدة، ثم نذهب إلى العقدة التالية - أو بعد ذلك نحن 528 00:26:03,240 --> 00:26:03,835 إدراج من قبل. 529 00:26:03,835 --> 00:26:05,966 >> الحضور: الانتظار، وهو هذا العقدة والتي هي القيمة؟ 530 00:26:05,966 --> 00:26:08,510 531 00:26:08,510 --> 00:26:09,280 >> JASON هيرشهورن: سؤال جيد. 532 00:26:09,280 --> 00:26:13,260 القيمة في هذا التعريف وظيفة هو ما نقوم معين. 533 00:26:13,260 --> 00:26:16,910 لذلك القيمة هي عدد أننا معين. 534 00:26:16,910 --> 00:26:21,120 لذلك إذا كانت القيمة أقل من ذلك عقدة، ونحن بحاجة الى وقت لإدراج. 535 00:26:21,120 --> 00:26:24,575 إذا كانت القيمة أكبر من هذه العقدة، نذهب إلى العقدة المقبل. 536 00:26:24,575 --> 00:26:26,790 ونعود إلى السؤال الأصلي، رغم ذلك، حيث - 537 00:26:26,790 --> 00:26:29,060 >> الحضور: إذا القيمة أكبر من هذه العقدة. 538 00:26:29,060 --> 00:26:30,310 >> JASON هيرشهورن: وهكذا ماذا نفعل هنا؟ 539 00:26:30,310 --> 00:26:36,790 540 00:26:36,790 --> 00:26:38,160 الحلو. 541 00:26:38,160 --> 00:26:38,860 وهذا هو الصحيح. 542 00:26:38,860 --> 00:26:41,370 أنا فقط أريد أن أكتب مؤشرات التحديث. 543 00:26:41,370 --> 00:26:44,010 ولكن نعم، مع واحد الحالية كنت تحديثه ل 544 00:26:44,010 --> 00:26:46,080 نشير إلى المرحلة التالية. 545 00:26:46,080 --> 00:26:47,330 أي شيء آخر نفتقده؟ 546 00:26:47,330 --> 00:26:52,710 547 00:26:52,710 --> 00:26:54,940 لذلك أنا ذاهب لكتابة هذا رمز في gedit. 548 00:26:54,940 --> 00:26:58,375 وحين أفعل هذا، هل يمكن أن يكون أكثر زوجين دقيقة للعمل على الترميز 549 00:26:58,375 --> 00:28:19,240 هذا في C. 550 00:28:19,240 --> 00:28:20,940 >> وذلك لدي إدخال شبة الكود. 551 00:28:20,940 --> 00:28:22,940 ملاحظة سريعة قبل أن نبدأ. 552 00:28:22,940 --> 00:28:25,560 نحن قد لا تكون قادرة على تماما الانتهاء من هذا في جميع 553 00:28:25,560 --> 00:28:27,300 ثلاثة من هذه الوظائف. 554 00:28:27,300 --> 00:28:30,630 هناك حلول صحيحة لها بأنني سوف البريد الإلكتروني إلى يا رفاق 555 00:28:30,630 --> 00:28:33,730 بعد القسم، وأنه سوف توضع على CS50.net. 556 00:28:33,730 --> 00:28:35,640 لذلك أنا لا نشجعك على يذهب للبحث في أقسام. 557 00:28:35,640 --> 00:28:40,550 أنا أشجعكم على محاولة هذه على الخاص تملك، ومن ثم استخدام هذه الممارسة 558 00:28:40,550 --> 00:28:41,760 مشاكل للتحقق إجاباتك. 559 00:28:41,760 --> 00:28:47,070 وقد تم تصميم جميع هذه لعن كثب تتصل ونتمسك بما 560 00:28:47,070 --> 00:28:48,400 ما عليك القيام به على مجموعة المشكلة. 561 00:28:48,400 --> 00:28:53,820 لذلك أنا لا نشجعك على ممارسة هذه لوحدك ومن ثم استخدام رمز ل 562 00:28:53,820 --> 00:28:54,660 التحقق من إجاباتك. 563 00:28:54,660 --> 00:28:57,060 لأنني لا أريد أن ننتقل إلى بعثرة الجداول في مرحلة ما من هذا الباب. 564 00:28:57,060 --> 00:28:58,150 ولذا فإننا قد لا تحصل من خلال كل ذلك. 565 00:28:58,150 --> 00:28:59,960 ولكن سنفعل ما في وسعنا من ذلك بكثير الآن. 566 00:28:59,960 --> 00:29:00,370 >> موافق. 567 00:29:00,370 --> 00:29:01,960 دعونا نبدأ. 568 00:29:01,960 --> 00:29:04,770 الأصم، كيف يمكننا إنشاء عقدة جديدة؟ 569 00:29:04,770 --> 00:29:06,810 >> الحضور: أنت البنية *. 570 00:29:06,810 --> 00:29:09,640 >> JASON هيرشهورن: لذلك نحن يكون هذا الأمر هنا. 571 00:29:09,640 --> 00:29:10,040 أوه، آسف. 572 00:29:10,040 --> 00:29:13,530 كنت قائلا البنية *. 573 00:29:13,530 --> 00:29:17,260 >> الحضور: وبعد ذلك [؟ نوع؟] عقدة عقدة أو ج. 574 00:29:17,260 --> 00:29:17,780 >> JASON هيرشهورن: OK. 575 00:29:17,780 --> 00:29:19,740 أنا ذاهب إلى نسميها new_node حتى نتمكن من البقاء متسقة. 576 00:29:19,740 --> 00:29:22,646 577 00:29:22,646 --> 00:29:33,180 >> الحضور: وأنت تريد تعيين هذا لرئاسة، العقدة الأولى. 578 00:29:33,180 --> 00:29:33,580 >> JASON هيرشهورن: OK. 579 00:29:33,580 --> 00:29:37,290 وحتى الآن هذا التأشير ل- وحتى هذا لم يخلق عقدة جديدة حتى الآن. 580 00:29:37,290 --> 00:29:41,380 هذا هو مجرد لافتا إلى العقدة الأولى في القائمة. 581 00:29:41,380 --> 00:29:42,630 كيف يمكنني إنشاء عقدة جديدة؟ 582 00:29:42,630 --> 00:29:45,490 583 00:29:45,490 --> 00:29:48,070 إذا كنت بحاجة إلى مساحة لإنشاء عقدة جديدة. 584 00:29:48,070 --> 00:29:49,230 Malloc. 585 00:29:49,230 --> 00:29:51,710 وكيف كبيرة؟ 586 00:29:51,710 --> 00:30:00,390 >> الجمهور: حجم البنية. 587 00:30:00,390 --> 00:30:01,150 >> JASON هيرشهورن: و حجم البنية. 588 00:30:01,150 --> 00:30:02,400 وما يسمى البنية؟ 589 00:30:02,400 --> 00:30:09,670 590 00:30:09,670 --> 00:30:09,840 >> الجمهور: عقدة؟ 591 00:30:09,840 --> 00:30:11,640 >> JASON هيرشهورن: عقدة. 592 00:30:11,640 --> 00:30:17,640 حتى malloc (sizeof (عقدة))؛ يعطينا الفضاء. 593 00:30:17,640 --> 00:30:19,740 وهذا الخط هو - 594 00:30:19,740 --> 00:30:21,740 شيء واحد غير صحيح على هذا الخط. 595 00:30:21,740 --> 00:30:24,430 هو new_node مؤشر إلى البنية؟ 596 00:30:24,430 --> 00:30:25,650 هذا هو اسم عام. 597 00:30:25,650 --> 00:30:26,520 ما هو عليه - 598 00:30:26,520 --> 00:30:27,450 عقدة، بالضبط. 599 00:30:27,450 --> 00:30:29,340 انها عقدة *. 600 00:30:29,340 --> 00:30:33,010 وماذا نفعل الحق بعد نحن malloc شيء، اسان؟ 601 00:30:33,010 --> 00:30:34,476 ما هو أول شيء نقوم به؟ 602 00:30:34,476 --> 00:30:38,850 603 00:30:38,850 --> 00:30:40,320 ماذا لو كان لا يعمل؟ 604 00:30:40,320 --> 00:30:42,430 >> الحضور: أوه، معرفة ما اذا كان يشير إلى العقدة؟ 605 00:30:42,430 --> 00:30:43,310 >> JASON هيرشهورن: بالضبط. 606 00:30:43,310 --> 00:30:46,750 لذلك إذا كنت new_node يساوي يساوي فارغة، ماذا نفعل؟ 607 00:30:46,750 --> 00:30:51,650 608 00:30:51,650 --> 00:30:54,820 هذا بإرجاع منطقي، هذه الوظيفة. 609 00:30:54,820 --> 00:30:57,760 بالضبط. 610 00:30:57,760 --> 00:30:58,450 تبدو جيدة. 611 00:30:58,450 --> 00:30:59,680 لإضافة أي شيء هناك؟ 612 00:30:59,680 --> 00:31:00,670 سنقوم بإضافة أشياء في نهاية المطاف. 613 00:31:00,670 --> 00:31:03,160 ولكن الذي يبدو حتى الآن جيدة. 614 00:31:03,160 --> 00:31:06,170 إنشاء مؤشرات الحالية والسابقة. 615 00:31:06,170 --> 00:31:08,650 مايكل، كيف أفعل ذلك؟ 616 00:31:08,650 --> 00:31:12,810 >> الحضور: سيكون لديك للقيام عقدة *. 617 00:31:12,810 --> 00:31:21,800 618 00:31:21,800 --> 00:31:25,502 وكنت قد لجعل واحدة لا لnew_node ولكن بالنسبة لل 619 00:31:25,502 --> 00:31:26,905 العقد لدينا بالفعل. 620 00:31:26,905 --> 00:31:27,230 >> JASON هيرشهورن: OK. 621 00:31:27,230 --> 00:31:29,255 وبالتالي فإن العقدة الحالية نحن على. 622 00:31:29,255 --> 00:31:30,505 سأتصل أن بالعملة. 623 00:31:30,505 --> 00:31:39,650 624 00:31:39,650 --> 00:31:39,770 حسنا. 625 00:31:39,770 --> 00:31:41,620 قررنا أننا نريد الحفاظ على اثنين لأننا بحاجة إلى معرفة 626 00:31:41,620 --> 00:31:42,870 ما قبل ذلك. 627 00:31:42,870 --> 00:31:45,770 628 00:31:45,770 --> 00:31:47,020 ماذا يحصلون على تهيئة ل؟ 629 00:31:47,020 --> 00:31:49,874 630 00:31:49,874 --> 00:31:54,180 >> الحضور: قيمتها في قائمتنا. 631 00:31:54,180 --> 00:31:58,090 >> JASON هيرشهورن: فما هو أول شيء على قائمتنا؟ 632 00:31:58,090 --> 00:32:04,050 أو كيف لنا أن نعرف حيث ابتداء من قائمتنا هو؟ 633 00:32:04,050 --> 00:32:08,015 >> الحضور: أليس مرت في وظيفة؟ 634 00:32:08,015 --> 00:32:08,466 >> JASON هيرشهورن: الحق. 635 00:32:08,466 --> 00:32:09,716 صدر في الحق هنا. 636 00:32:09,716 --> 00:32:15,910 637 00:32:15,910 --> 00:32:18,980 حتى إذا تم تمريرها إلى الدالة، و بدء من القائمة، ما يجب علينا 638 00:32:18,980 --> 00:32:21,270 تعيين الحالي يساوي؟ 639 00:32:21,270 --> 00:32:22,110 >> الحضور: قائمة. 640 00:32:22,110 --> 00:32:22,900 >> JASON هيرشهورن: قائمة. 641 00:32:22,900 --> 00:32:24,090 هذا صحيح تماما. 642 00:32:24,090 --> 00:32:26,290 والآن لديها عنوان بداية قائمتنا. 643 00:32:26,290 --> 00:32:28,450 وماذا عن السابق؟ 644 00:32:28,450 --> 00:32:31,920 >> الحضور: قائمة ناقص واحد؟ 645 00:32:31,920 --> 00:32:32,690 >> JASON هيرشهورن: هناك لا شيء أمامها. 646 00:32:32,690 --> 00:32:34,580 ذلك ما يمكن أن نقوم به للدلالة على شيء؟ 647 00:32:34,580 --> 00:32:35,050 >> الجمهور: خالية. 648 00:32:35,050 --> 00:32:35,450 >> JASON هيرشهورن: نعم. 649 00:32:35,450 --> 00:32:37,950 هذا يبدو وكأنه فكرة جيدة. 650 00:32:37,950 --> 00:32:38,360 الكمال. 651 00:32:38,360 --> 00:32:39,630 شكرا لك. 652 00:32:39,630 --> 00:32:42,850 تذهب من خلال القائمة. 653 00:32:42,850 --> 00:32:45,490 قسنطينة، متى نحن ذاهبون من خلال الذهاب الى القائمة؟ 654 00:32:45,490 --> 00:32:49,010 >> الحضور: حتى نصل فارغة. 655 00:32:49,010 --> 00:32:49,390 >> JASON هيرشهورن: OK. 656 00:32:49,390 --> 00:32:50,430 إذا كان الأمر كذلك، في حين، للحلقة. 657 00:32:50,430 --> 00:32:52,200 ما الذي نقوم به؟ 658 00:32:52,200 --> 00:32:53,320 >> الحضور: ربما لحلقة؟ 659 00:32:53,320 --> 00:32:53,910 >> JASON هيرشهورن: دعونا نفعل حلقة for. 660 00:32:53,910 --> 00:32:55,870 موافق. 661 00:32:55,870 --> 00:33:02,465 >> الحضور: ونحن نقول ل- 662 00:33:02,465 --> 00:33:09,764 663 00:33:09,764 --> 00:33:13,390 حتى المؤشر الحالي لا تساوي فارغة. 664 00:33:13,390 --> 00:33:19,160 >> JASON هيرشهورن: حتى إذا كنا نعرف حالة، وكيف يمكن أن نكتب حلقة 665 00:33:19,160 --> 00:33:21,740 القائم قبالة هذا الشرط. 666 00:33:21,740 --> 00:33:24,380 أي نوع من حلقة يجب أن نستخدم؟ 667 00:33:24,380 --> 00:33:25,260 >> الحضور: على الرغم من. 668 00:33:25,260 --> 00:33:25,590 >> JASON هيرشهورن: نعم. 669 00:33:25,590 --> 00:33:27,130 أن أكثر منطقية تستند الخروج من ما قلته. 670 00:33:27,130 --> 00:33:29,430 إذا كنا نريد فقط أن تذهب إلى أنه سيكون علينا مجرد معرفة هذا الشيء، من شأنه أن يجعل 671 00:33:29,430 --> 00:33:31,680 بمعنى أن تفعل حلقة while. 672 00:33:31,680 --> 00:33:39,880 حين يفعل الحالية لاغية وليس على قدم المساواة، إذا كانت القيمة أقل من هذه العقدة. 673 00:33:39,880 --> 00:33:41,650 اكشار، أعطني هذا الخط. 674 00:33:41,650 --> 00:33:48,810 675 00:33:48,810 --> 00:33:56,955 >> الحضور: إذا الحالي> ن ن أقل من القيمة. 676 00:33:56,955 --> 00:34:00,170 677 00:34:00,170 --> 00:34:03,260 أو عكس ذلك. 678 00:34:03,260 --> 00:34:06,140 التبديل أن قوس. 679 00:34:06,140 --> 00:34:06,620 >> JASON هيرشهورن: آسف. 680 00:34:06,620 --> 00:34:08,760 >> الحضور: تغيير قوس. 681 00:34:08,760 --> 00:34:10,914 >> JASON هيرشهورن: حتى لو كان أكبر من القيمة. 682 00:34:10,914 --> 00:34:18,719 683 00:34:18,719 --> 00:34:22,120 لأن هذا الخلط مع التعليق الوارد أعلاه، وانا ذاهب للقيام بذلك. 684 00:34:22,120 --> 00:34:22,480 ولكن نعم. 685 00:34:22,480 --> 00:34:25,125 إذا قيمة لدينا هو أقل من هذا عقدة، ماذا نفعل؟ 686 00:34:25,125 --> 00:34:25,540 اه. 687 00:34:25,540 --> 00:34:26,710 لدي هنا. 688 00:34:26,710 --> 00:34:27,960 إدراج من قبل. 689 00:34:27,960 --> 00:34:32,080 690 00:34:32,080 --> 00:34:32,370 موافق. 691 00:34:32,370 --> 00:34:33,933 كيف نفعل ذلك؟ 692 00:34:33,933 --> 00:34:34,900 >> الحضور: هل ما زال لي؟ 693 00:34:34,900 --> 00:34:36,150 >> JASON هيرشهورن: نعم. 694 00:34:36,150 --> 00:34:38,520 695 00:34:38,520 --> 00:34:39,770 >> الحضور: أنت - 696 00:34:39,770 --> 00:34:42,909 697 00:34:42,909 --> 00:34:44,159 new_node-> المقبل. 698 00:34:44,159 --> 00:34:46,770 699 00:34:46,770 --> 00:34:50,163 >> JASON هيرشهورن: إذن ما هو أن الذهاب إلى تساوي؟ 700 00:34:50,163 --> 00:34:52,070 >> الجمهور: انها سوف الحالية على قدم المساواة. 701 00:34:52,070 --> 00:34:53,889 >> JASON هيرشهورن: بالضبط. 702 00:34:53,889 --> 00:34:55,730 وهكذا والآخر - 703 00:34:55,730 --> 00:34:56,730 ماذا نحتاج لتحديث؟ 704 00:34:56,730 --> 00:34:59,982 >> الجمهور: معرفة ما اذا كان يساوي الماضية فارغة. 705 00:34:59,982 --> 00:35:01,870 >> JASON هيرشهورن: إذا السابق - 706 00:35:01,870 --> 00:35:03,730 حتى إذا المعاينة يساوي فارغة. 707 00:35:03,730 --> 00:35:05,990 >> الحضور: وهذا يعني انه سيكون ليصبح الرأس. 708 00:35:05,990 --> 00:35:06,780 >> JASON هيرشهورن: وهذا يعني أصبح من الرأس. 709 00:35:06,780 --> 00:35:07,620 حتى ذلك الحين ماذا نفعل؟ 710 00:35:07,620 --> 00:35:12,510 >> الحضور: نحن نفعل الرأس يساوي new_node. 711 00:35:12,510 --> 00:35:16,690 >> JASON هيرشهورن: رئيس يساوي new_node. 712 00:35:16,690 --> 00:35:20,540 ولماذا يتوجه هنا، وليس قائمة؟ 713 00:35:20,540 --> 00:35:24,940 >> الحضور: لأن الرأس هو عالمي متغير، الذي هو مكان الانطلاق. 714 00:35:24,940 --> 00:35:26,190 >> JASON هيرشهورن: الحلو. 715 00:35:26,190 --> 00:35:33,750 716 00:35:33,750 --> 00:35:34,170 موافق. 717 00:35:34,170 --> 00:35:36,150 و- 718 00:35:36,150 --> 00:35:53,796 >> الحضور: ثم كنت آخر الصفحة السابقة> يساوي المقبل new_node. 719 00:35:53,796 --> 00:35:55,080 ومن ثم يمكنك العودة الحقيقية. 720 00:35:55,080 --> 00:35:59,560 721 00:35:59,560 --> 00:36:02,700 >> JASON هيرشهورن: أين وضعنا نهاية new_node؟ 722 00:36:02,700 --> 00:36:04,850 >> الجمهور: أود - 723 00:36:04,850 --> 00:36:06,180 أنا وضعت ذلك في البداية. 724 00:36:06,180 --> 00:36:07,430 >> JASON هيرشهورن: فما الخط؟ 725 00:36:07,430 --> 00:36:10,000 726 00:36:10,000 --> 00:36:12,598 >> الحضور: بعد بيان إذا التحقق إذا هو معروف. 727 00:36:12,598 --> 00:36:13,057 >> JASON هيرشهورن: الحق هنا؟ 728 00:36:13,057 --> 00:36:18,335 >> الحضور: كنت تفعل new_node-> ن يساوي قيمة. 729 00:36:18,335 --> 00:36:19,585 >> JASON هيرشهورن: يبدو جيدا. 730 00:36:19,585 --> 00:36:21,740 731 00:36:21,740 --> 00:36:25,090 ربما كان من المنطقي - لم نفعل ذلك بحاجة إلى معرفة ما نحن في قائمة 732 00:36:25,090 --> 00:36:26,280 لأننا نتعامل فقط مع قائمة واحدة. 733 00:36:26,280 --> 00:36:29,560 لذلك أفضل تعريف الدالة ل هذا هو فقط للتخلص من هذه 734 00:36:29,560 --> 00:36:34,360 تماما وإدراج فقط قيمة في الرأس. 735 00:36:34,360 --> 00:36:35,930 نحن لا تحتاج حتى إلى معرفة ما نحن فيه. قائمة 736 00:36:35,930 --> 00:36:39,140 ولكنني لن يبقيه في الوقت الراهن و ثم تغييره عند تحديث 737 00:36:39,140 --> 00:36:42,590 الشرائح والتعليمات البرمجية. 738 00:36:42,590 --> 00:36:44,980 بحيث تبدو جيدة في الوقت الراهن. 739 00:36:44,980 --> 00:36:46,560 إذا كانت القيمة - الذين يمكن أن تفعل هذا الخط؟ 740 00:36:46,560 --> 00:36:47,810 إذا - 741 00:36:47,810 --> 00:36:52,240 742 00:36:52,240 --> 00:36:53,840 ماذا نفعل هنا، ونوح. 743 00:36:53,840 --> 00:36:57,890 744 00:36:57,890 --> 00:37:07,100 >> الحضور: إذا القيمة أكبر من بالعملة-> ن - 745 00:37:07,100 --> 00:37:16,830 746 00:37:16,830 --> 00:37:18,240 >> JASON هيرشهورن: كيف نذهب إلى العقدة المقبل؟ 747 00:37:18,240 --> 00:37:27,760 748 00:37:27,760 --> 00:37:30,530 >> الجمهور: بالعملة-> n هو يساوي new_node. 749 00:37:30,530 --> 00:37:37,630 750 00:37:37,630 --> 00:37:39,195 >> JASON هيرشهورن: n غير ذلك أي جزء من البنية؟ 751 00:37:39,195 --> 00:37:43,065 752 00:37:43,065 --> 00:37:46,020 عدد صحيح. 753 00:37:46,020 --> 00:37:50,420 وnew_node هو مؤشر إلى عقدة. 754 00:37:50,420 --> 00:37:51,880 وذلك ما ينبغي أن جزءا من بالعملة نقوم بتحديث؟ 755 00:37:51,880 --> 00:38:03,900 756 00:38:03,900 --> 00:38:05,400 إن لم يكن ن، ثم ما هو الجزء الآخر؟ 757 00:38:05,400 --> 00:38:21,680 758 00:38:21,680 --> 00:38:22,810 نوح، ما هو الجزء الآخر. 759 00:38:22,810 --> 00:38:23,570 >> الحضور: أوه، المقبل. 760 00:38:23,570 --> 00:38:25,645 >> JASON هيرشهورن: بعد ذلك، بالضبط. 761 00:38:25,645 --> 00:38:26,410 بالضبط. 762 00:38:26,410 --> 00:38:28,770 القادم هو حق واحد. 763 00:38:28,770 --> 00:38:31,540 وماذا نحتاج لتحديث ونوح؟ 764 00:38:31,540 --> 00:38:32,840 >> الجمهور: إن المؤشرات. 765 00:38:32,840 --> 00:38:34,840 >> JASON هيرشهورن: إذن قمنا بتحديث الحالية. 766 00:38:34,840 --> 00:38:36,090 >> الجمهور: السابق> المقبل. 767 00:38:36,090 --> 00:38:48,160 768 00:38:48,160 --> 00:38:49,410 >> JASON هيرشهورن: نعم. 769 00:38:49,410 --> 00:38:57,465 770 00:38:57,465 --> 00:38:58,370 موافق، ونحن سوف نتوقف. 771 00:38:58,370 --> 00:39:02,200 الذين يمكن أن تساعدنا هنا؟ 772 00:39:02,200 --> 00:39:03,385 مانو، ماذا علينا أن نفعل؟ 773 00:39:03,385 --> 00:39:05,615 >> الحضور: لقد حصلت على تعيين فإنه يساوي بالعملة-> المقبل. 774 00:39:05,615 --> 00:39:09,110 775 00:39:09,110 --> 00:39:11,630 ولكن القيام بذلك قبل السطر السابق. 776 00:39:11,630 --> 00:39:12,880 >> JASON هيرشهورن: OK. 777 00:39:12,880 --> 00:39:16,590 778 00:39:16,590 --> 00:39:18,260 أي شيء آخر؟ 779 00:39:18,260 --> 00:39:19,170 اكشار. 780 00:39:19,170 --> 00:39:22,680 >> الجمهور: لا أعتقد أن كنت تهدف إلى تغيير بالعملة-> المقبل. 781 00:39:22,680 --> 00:39:29,270 أعتقد أنك تعني أن تفعل يساوي بالعملة بالعملة-> التالي للذهاب إلى العقدة المقبل. 782 00:39:29,270 --> 00:39:30,500 >> JASON هيرشهورن: آسف لذلك، وأين؟ 783 00:39:30,500 --> 00:39:32,680 على ما الخط؟ 784 00:39:32,680 --> 00:39:33,420 هذا الخط؟ 785 00:39:33,420 --> 00:39:33,750 >> الجمهور: نعم. 786 00:39:33,750 --> 00:39:35,745 جعل بالعملة يساوي بالعملة-> المقبل. 787 00:39:35,745 --> 00:39:39,690 788 00:39:39,690 --> 00:39:43,360 >> JASON هيرشهورن: هذا هو الصحيح لأن الحالي هو 789 00:39:43,360 --> 00:39:45,220 مؤشر إلى العقدة. 790 00:39:45,220 --> 00:39:48,550 ونريد أن نشير إلى التالي عقدة ما يحصل حاليا 791 00:39:48,550 --> 00:39:49,930 وأشار إلى. 792 00:39:49,930 --> 00:39:54,410 بالعملة نفسها لديها المقبل. 793 00:39:54,410 --> 00:39:58,620 ولكن إذا كان لنا أن تحديث curr.next، ونحن سيتم تحديث هذه المذكرة الفعلية 794 00:39:58,620 --> 00:40:01,430 نفسه، وليس فيها هذا المؤشر كان لافتا. 795 00:40:01,430 --> 00:40:02,680 ماذا عن هذا الخط، وإن كان. 796 00:40:02,680 --> 00:40:05,160 797 00:40:05,160 --> 00:40:07,330 افي؟ 798 00:40:07,330 --> 00:40:09,590 >> الجمهور: السابق> يساوي بالعملة المقبل. 799 00:40:09,590 --> 00:40:12,500 800 00:40:12,500 --> 00:40:19,440 >> JASON هيرشهورن: وهكذا مرة أخرى، إذا المعاينة هو مؤشر إلى عقدة، المعاينة-> هو القادم 801 00:40:19,440 --> 00:40:23,020 المؤشر الفعلي في العقدة. 802 00:40:23,020 --> 00:40:27,190 ولذلك فإن هذا سيكون بتحديث المؤشر في عقدة لبالعملة. 803 00:40:27,190 --> 00:40:28,570 نحن لا نريد لتحديث مؤشر في عقدة. 804 00:40:28,570 --> 00:40:30,570 نحن نريد لتحديث السابقة. 805 00:40:30,570 --> 00:40:31,850 فكيف نفعل ذلك؟ 806 00:40:31,850 --> 00:40:34,250 >> الجمهور: أن يكون مجرد والصفحة السابقة. 807 00:40:34,250 --> 00:40:34,565 >> JASON هيرشهورن: الحق. 808 00:40:34,565 --> 00:40:35,560 السابق هو مؤشر إلى عقدة. 809 00:40:35,560 --> 00:40:38,750 نحن الآن تغييره ل مؤشر جديد لعقدة. 810 00:40:38,750 --> 00:40:40,830 موافق دعونا ننتقل إلى أسفل. 811 00:40:40,830 --> 00:40:41,940 أخيرا، وهذا الشرط الأخير. 812 00:40:41,940 --> 00:40:44,896 جيف، ماذا نفعل هنا؟ 813 00:40:44,896 --> 00:40:47,515 >> الحضور: إذا القيمة يساوي بالعملة-> ن. 814 00:40:47,515 --> 00:40:51,030 815 00:40:51,030 --> 00:40:51,300 >> JASON هيرشهورن: آسف. 816 00:40:51,300 --> 00:40:52,372 يا إلهي. 817 00:40:52,372 --> 00:40:54,330 ماذا؟ 818 00:40:54,330 --> 00:40:55,580 القيمة بالعملة ==> ن. 819 00:40:55,580 --> 00:41:01,050 820 00:41:01,050 --> 00:41:02,300 ماذا نفعل؟ 821 00:41:02,300 --> 00:41:04,760 822 00:41:04,760 --> 00:41:10,950 >> الحضور: كنت تحرير new_node لدينا، ثم كنت عودة كاذبة. 823 00:41:10,950 --> 00:41:21,410 824 00:41:21,410 --> 00:41:23,460 >> JASON هيرشهورن: هذا هو ما كتبناه حتى الآن. 825 00:41:23,460 --> 00:41:25,710 هل لدى أي شخص أي شيء لإضافة قبل أن نجعل؟ 826 00:41:25,710 --> 00:41:35,460 827 00:41:35,460 --> 00:41:35,710 موافق. 828 00:41:35,710 --> 00:41:36,960 دعونا نحاول ذلك. 829 00:41:36,960 --> 00:41:44,180 830 00:41:44,180 --> 00:41:46,110 التحكم قد تصل إلى نهاية من وظيفة غير باطلة. 831 00:41:46,110 --> 00:41:48,310 وافي، ما الذي يحدث؟ 832 00:41:48,310 --> 00:41:51,380 >> الحضور: هل من المفترض أن تضع عودة صحيح خارج حلقة في حين؟ 833 00:41:51,380 --> 00:41:53,900 834 00:41:53,900 --> 00:41:54,400 >> JASON هيرشهورن: أنا لا أعرف. 835 00:41:54,400 --> 00:41:54,780 هل تريد مني أن؟ 836 00:41:54,780 --> 00:41:55,520 >> الحضور: لا بأس. 837 00:41:55,520 --> 00:41:56,350 لا. 838 00:41:56,350 --> 00:41:57,180 >> JASON هيرشهورن: اكشار؟ 839 00:41:57,180 --> 00:41:59,460 >> الجمهور: أعتقد أنك تعني ل وضعت عودة كاذبة في نهاية 840 00:41:59,460 --> 00:42:02,230 الحلقة حين. 841 00:42:02,230 --> 00:42:03,270 >> JASON هيرشهورن: فأين هل تريد أن تذهب؟ 842 00:42:03,270 --> 00:42:05,270 >> الحضور: مثل حلقة خارج الوقت. 843 00:42:05,270 --> 00:42:08,800 لذلك إذا كنت الخروج من حلقة في حين أن الوسائل بعد أن كنت قد وصلت إلى نهاية و 844 00:42:08,800 --> 00:42:09,980 حدث شيء. 845 00:42:09,980 --> 00:42:10,410 >> JASON هيرشهورن: OK. 846 00:42:10,410 --> 00:42:12,340 لذلك ماذا نفعل هنا؟ 847 00:42:12,340 --> 00:42:13,702 >> الحضور: يمكنك العودة كاذبة هناك أيضا. 848 00:42:13,702 --> 00:42:15,040 >> JASON هيرشهورن: أوه، ونحن تفعل ذلك في كل الأماكن؟ 849 00:42:15,040 --> 00:42:15,650 >> الجمهور: نعم. 850 00:42:15,650 --> 00:42:16,900 >> JASON هيرشهورن: OK. 851 00:42:16,900 --> 00:42:24,840 852 00:42:24,840 --> 00:42:26,160 يجب ان نذهب؟ 853 00:42:26,160 --> 00:42:26,980 يا إلهي. 854 00:42:26,980 --> 00:42:27,290 أنا آسف. 855 00:42:27,290 --> 00:42:28,480 اعتذر عن الشاشة. 856 00:42:28,480 --> 00:42:30,530 انها نوع من ينقط بها علينا. 857 00:42:30,530 --> 00:42:31,520 حتى تختار خيارا. 858 00:42:31,520 --> 00:42:35,260 الصفر، في الرمز، إنهاء البرنامج. 859 00:42:35,260 --> 00:42:36,700 واحد يدرج شيئا. 860 00:42:36,700 --> 00:42:37,990 دعونا إدراج ثلاثة. 861 00:42:37,990 --> 00:42:42,900 862 00:42:42,900 --> 00:42:45,380 وكان إدراج لم تكن ناجحة. 863 00:42:45,380 --> 00:42:46,500 انا ذاهب للطباعة. 864 00:42:46,500 --> 00:42:48,050 ليس لدي أي شيء. 865 00:42:48,050 --> 00:42:48,450 موافق. 866 00:42:48,450 --> 00:42:50,250 ربما كان ذلك مجرد صدفة. 867 00:42:50,250 --> 00:42:52,810 إدراج واحد. 868 00:42:52,810 --> 00:42:55,770 لم يكن ناجحا. 869 00:42:55,770 --> 00:42:57,470 موافق. 870 00:42:57,470 --> 00:43:02,400 دعونا من خلال تشغيل GDB بسرعة حقا لمعرفة ما يجري. 871 00:43:02,400 --> 00:43:06,055 >> تذكر جدب. / اسم الخاص برنامج يحصل لنا في GDB. 872 00:43:06,055 --> 00:43:07,610 هو أن الكثير للتعامل مع؟ 873 00:43:07,610 --> 00:43:08,560 وامض؟ 874 00:43:08,560 --> 00:43:10,400 ربما. 875 00:43:10,400 --> 00:43:12,760 تغمض عينيك واتخاذ بعض العميقة الأنفاس إذا كنت تتعب 876 00:43:12,760 --> 00:43:13,580 للنظر في ذلك. 877 00:43:13,580 --> 00:43:14,200 أنا في GDB. 878 00:43:14,200 --> 00:43:15,830 ما هو أول شيء أفعله في GDB؟ 879 00:43:15,830 --> 00:43:17,050 لقد وصلنا إلى معرفة ما يحدث هنا. 880 00:43:17,050 --> 00:43:17,310 دعونا نرى. 881 00:43:17,310 --> 00:43:21,650 لدينا ست دقائق على الرقم ما يجري. 882 00:43:21,650 --> 00:43:22,900 كسر الرئيسي. 883 00:43:22,900 --> 00:43:25,950 884 00:43:25,950 --> 00:43:28,130 ثم ماذا أفعل؟ 885 00:43:28,130 --> 00:43:29,180 كارلوس؟ 886 00:43:29,180 --> 00:43:31,060 تشغيل. 887 00:43:31,060 --> 00:43:32,250 موافق. 888 00:43:32,250 --> 00:43:34,160 دعونا اختيار الخيار. 889 00:43:34,160 --> 00:43:36,330 وماذا تفعل N؟ 890 00:43:36,330 --> 00:43:38,480 المقبل. 891 00:43:38,480 --> 00:43:38,950 نعم. 892 00:43:38,950 --> 00:43:39,740 >> الحضور: لم أذكر لكم - 893 00:43:39,740 --> 00:43:45,230 لم تقولون بأن رئيس، كان عليه تهيئة لاغية في البداية. 894 00:43:45,230 --> 00:43:47,140 ولكن اعتقدت أنك قلت أنه موافق. 895 00:43:47,140 --> 00:43:50,040 896 00:43:50,040 --> 00:43:52,640 >> JASON هيرشهورن: دعونا نذهب - دعونا ننظر في GDB، ومن ثم فإننا سوف نعود. 897 00:43:52,640 --> 00:43:54,910 ولكن هذا يبدو وكأنه لديك بالفعل بعض الأفكار حول ما يجري. 898 00:43:54,910 --> 00:43:58,340 لذلك نحن نريد لادخال شيء. 899 00:43:58,340 --> 00:43:59,390 موافق. 900 00:43:59,390 --> 00:44:00,150 قمنا إدراج. 901 00:44:00,150 --> 00:44:00,770 الرجاء إدخال عدد صحيح. 902 00:44:00,770 --> 00:44:01,990 سنقوم بإدراج ثلاثة. 903 00:44:01,990 --> 00:44:03,000 ثم أنا على هذا الخط. 904 00:44:03,000 --> 00:44:07,030 كيف أذهب بدء التصحيح إدراج يعرف وظيفة؟ 905 00:44:07,030 --> 00:44:08,280 يا إلهي. 906 00:44:08,280 --> 00:44:10,990 907 00:44:10,990 --> 00:44:12,240 وهذا هو الكثير. 908 00:44:12,240 --> 00:44:14,372 909 00:44:14,372 --> 00:44:16,445 هو أن ينقط بها الكثير؟ 910 00:44:16,445 --> 00:44:19,696 911 00:44:19,696 --> 00:44:21,680 >> الحضور: أوه، أنها توفيت. 912 00:44:21,680 --> 00:44:22,930 >> JASON هيرشهورن: أنا فقط سحبت من ذلك. 913 00:44:22,930 --> 00:44:27,364 914 00:44:27,364 --> 00:44:28,310 موافق. 915 00:44:28,310 --> 00:44:29,560 >> الحضور: ربما يكون ل الطرف الآخر من السلك. 916 00:44:29,560 --> 00:44:37,000 917 00:44:37,000 --> 00:44:39,470 >> JASON هيرشهورن: نجاح باهر. 918 00:44:39,470 --> 00:44:42,330 وبالتالي فإن خلاصة القول - 919 00:44:42,330 --> 00:44:43,470 ماذا قلت؟ 920 00:44:43,470 --> 00:44:46,040 >> الحضور: قلت بسخرية التقنية الصعوبات في هذه الفئة. 921 00:44:46,040 --> 00:44:46,410 >> JASON هيرشهورن: أعرف. 922 00:44:46,410 --> 00:44:48,660 ولو كان لي السيطرة على هذا الجزء. 923 00:44:48,660 --> 00:44:49,910 [غير مسموع] 924 00:44:49,910 --> 00:44:54,430 925 00:44:54,430 --> 00:44:55,400 أن يبدو كبيرا. 926 00:44:55,400 --> 00:44:58,680 لماذا لا نبدأ في التفكير في اللاعبين ما كان يمكن أن يأتيه الباطل، 927 00:44:58,680 --> 00:45:01,140 وسوف نكون مرة أخرى في 90 ثانية. 928 00:45:01,140 --> 00:46:18,160 929 00:46:18,160 --> 00:46:23,010 >> Avica، وانا ذاهب لأطلب منكم كيفية التوجه insert_node داخل لتصحيح ذلك. 930 00:46:23,010 --> 00:46:28,940 931 00:46:28,940 --> 00:46:31,460 لذلك هذا هو المكان الذي توقفت الماضي. 932 00:46:31,460 --> 00:46:35,110 كيف أذهب داخل insert_node، Avica، لدراسة ما يحدث؟ 933 00:46:35,110 --> 00:46:36,360 ما الأمر GDB؟ 934 00:46:36,360 --> 00:46:41,050 935 00:46:41,050 --> 00:46:42,390 سوف كسر لا تأخذني في الداخل. 936 00:46:42,390 --> 00:46:46,200 937 00:46:46,200 --> 00:46:47,130 لا أعرف ماركيز؟ 938 00:46:47,130 --> 00:46:48,240 >> الحضور: ماذا؟ 939 00:46:48,240 --> 00:46:51,780 >> JASON هيرشهورن: ما الأمر GDB أنا استخدم للذهاب داخل هذه الوظيفة؟ 940 00:46:51,780 --> 00:46:52,070 >> الجمهور: الخطوة؟ 941 00:46:52,070 --> 00:46:55,140 >> JASON هيرشهورن: الخطوة عبر S. وهذا يأخذ مني في الداخل. 942 00:46:55,140 --> 00:46:55,476 موافق. 943 00:46:55,476 --> 00:46:58,040 New_node mallocing بعض المساحة. 944 00:46:58,040 --> 00:46:59,120 يبدو أن جميع مثل الذهاب لها. 945 00:46:59,120 --> 00:47:00,370 دعونا دراسة new_node. 946 00:47:00,370 --> 00:47:03,270 947 00:47:03,270 --> 00:47:05,410 انها حصلت على بعض عنوان الذاكرة. 948 00:47:05,410 --> 00:47:07,440 دعونا تحقق - 949 00:47:07,440 --> 00:47:08,500 هذا هو كل شيء الصحيح. 950 00:47:08,500 --> 00:47:12,220 لذلك كل شيء هنا يبدو أن أن تعمل بشكل صحيح. 951 00:47:12,220 --> 00:47:14,530 >> الحضور: ما هو الفرق بين P والعرض؟ 952 00:47:14,530 --> 00:47:16,160 >> JASON هيرشهورن: P تقف على الطباعة. 953 00:47:16,160 --> 00:47:19,310 وهكذا كنت طالبا ما هو الفرق بين هذا وهذا؟ 954 00:47:19,310 --> 00:47:22,330 في هذه الحالة، لا شيء. 955 00:47:22,330 --> 00:47:26,960 ولكن عموما هناك بعض الاختلافات. 956 00:47:26,960 --> 00:47:28,220 ويجب أن ننظر في دليل GDB. 957 00:47:28,220 --> 00:47:29,560 ولكن في هذه الحالة، لا شيء. 958 00:47:29,560 --> 00:47:31,460 ونحن نميل إلى استخدام الطباعة، وذلك لأن نحن لسنا بحاجة لتفعل أكثر بكثير من 959 00:47:31,460 --> 00:47:33,960 طباعة قيمة واحدة. 960 00:47:33,960 --> 00:47:34,640 >> موافق. 961 00:47:34,640 --> 00:47:40,300 لذلك نحن على خط 80 من التعليمات البرمجية لدينا، وضع العقدة * بالعملة يساوي القائمة. 962 00:47:40,300 --> 00:47:42,500 دعونا طباعة بالعملة. 963 00:47:42,500 --> 00:47:45,260 964 00:47:45,260 --> 00:47:46,840 فإنه يساوي القائمة. 965 00:47:46,840 --> 00:47:48,850 الحلو. 966 00:47:48,850 --> 00:47:49,340 الانتظار. 967 00:47:49,340 --> 00:47:50,590 فإنه يساوي شيئا. 968 00:47:50,590 --> 00:47:53,680 969 00:47:53,680 --> 00:47:56,190 لا يبدو من الصواب. 970 00:47:56,190 --> 00:47:56,840 هناك نذهب. 971 00:47:56,840 --> 00:47:59,470 انها لأنه في GDB، والحق، إذا انها خط كنت عليه 972 00:47:59,470 --> 00:48:00,330 لم تنفذ حتى الآن. 973 00:48:00,330 --> 00:48:03,100 لذلك تحتاج إلى كتابة الواقع بجانب تنفيذ السطر 974 00:48:03,100 --> 00:48:05,230 قبل رؤية نتائجها. 975 00:48:05,230 --> 00:48:06,680 لذلك نحن هنا. 976 00:48:06,680 --> 00:48:09,490 نحن فقط تنفيذ هذا الخط، السابقة يساوي فارغة. 977 00:48:09,490 --> 00:48:13,590 ذلك مرة أخرى، وإذا كنا طباعة السابقة نحن لن نرى أي شيء غريب. 978 00:48:13,590 --> 00:48:18,680 ولكن إذا كنا فعلا تنفيذ ذلك الخط، ثم سنرى 979 00:48:18,680 --> 00:48:20,380 ان هذا الخط يعمل. 980 00:48:20,380 --> 00:48:21,060 >> لذلك لدينا بالعملة. 981 00:48:21,060 --> 00:48:23,180 تلك هي سواء كانت جيدة. 982 00:48:23,180 --> 00:48:24,010 أليس كذلك؟ 983 00:48:24,010 --> 00:48:28,130 الآن نحن على هذا الخط هنا. 984 00:48:28,130 --> 00:48:29,310 بينما بالعملة لا فارغة متساوية. 985 00:48:29,310 --> 00:48:31,110 حسنا، ماذا يفعل بالعملة متساوية؟ 986 00:48:31,110 --> 00:48:32,450 رأينا فقط أنه يمثل فارغة. 987 00:48:32,450 --> 00:48:33,210 نحن المطبوعة بها. 988 00:48:33,210 --> 00:48:35,110 أنا طباعته مرة أخرى. 989 00:48:35,110 --> 00:48:36,720 ذلك هو أنه في حين أن حلقة ذاهب لتنفيذ؟ 990 00:48:36,720 --> 00:48:37,270 >> الحضور: رقم 991 00:48:37,270 --> 00:48:39,790 >> JASON هيرشهورن: لذلك عندما كتبت أن الخط، ترى نحن قفز على طول الطريق 992 00:48:39,790 --> 00:48:41,390 إلى أسفل، والعودة كاذبة. 993 00:48:41,390 --> 00:48:44,520 ثم نحن في طريقنا للعودة كاذبة ونعود إلى برنامجنا و 994 00:48:44,520 --> 00:48:48,020 طباعة في نهاية المطاف، كما رأينا، وكان إدراج لم تكن ناجحة. 995 00:48:48,020 --> 00:48:51,010 لذلك، أي شخص يحصل على أي أفكار بشأن ما يتعين علينا القيام به لإصلاح هذا؟ 996 00:48:51,010 --> 00:48:54,200 997 00:48:54,200 --> 00:48:57,570 انا ذاهب الى الانتظار حتى أرى زوجين من الأيدي ترتفع. 998 00:48:57,570 --> 00:48:58,830 لم نكن تنفيذ هذا. 999 00:48:58,830 --> 00:49:01,660 نضع في اعتبارنا، وكان هذا أول شيء كنا نفعله. 1000 00:49:01,660 --> 00:49:02,430 أنا لن تفعل زوجين. 1001 00:49:02,430 --> 00:49:03,670 انا ذاهب الى القيام ببعض. 1002 00:49:03,670 --> 00:49:04,830 لأن الزوجين يعني اثنين. 1003 00:49:04,830 --> 00:49:07,620 سأنتظر لأكثر من عقدين. 1004 00:49:07,620 --> 00:49:10,690 >> في الإدراج الأول، بالعملة، افتراضيا يساوي فارغة. 1005 00:49:10,690 --> 00:49:14,050 وهذه الحلقة ينفذ فقط إذا ليس بالعملة فارغة. 1006 00:49:14,050 --> 00:49:18,740 فكيف يمكنني الحصول على حول هذا؟ 1007 00:49:18,740 --> 00:49:19,990 أرى أن هناك ثلاثة اليدين. 1008 00:49:19,990 --> 00:49:28,490 1009 00:49:28,490 --> 00:49:29,780 انا انتظر أكثر من ثلاث. 1010 00:49:29,780 --> 00:49:33,460 1011 00:49:33,460 --> 00:49:35,940 ماركوس، ما رأيك؟ 1012 00:49:35,940 --> 00:49:37,730 >> الحضور: حسنا، إذا كنت في حاجة إليها ل تنفيذ أكثر من مرة واحدة، أنت فقط 1013 00:49:37,730 --> 00:49:39,948 تغييره إلى حلقة افعل حين. 1014 00:49:39,948 --> 00:49:41,250 >> JASON هيرشهورن: OK. 1015 00:49:41,250 --> 00:49:44,240 والتي تساهم في حل مشكلة لدينا، على الرغم من؟ 1016 00:49:44,240 --> 00:49:47,750 >> الحضور: في هذه الحالة لا بسبب حقيقة أن القائمة فارغة. 1017 00:49:47,750 --> 00:49:52,150 لذلك فإنك ربما تحتاج فقط إلى إضافة بيان أنه إذا كان مخارج حلقة 1018 00:49:52,150 --> 00:49:55,312 ثم عليك أن تكون في نهاية القائمة، وهي النقطة التي 1019 00:49:55,312 --> 00:49:56,562 يمكن فقط أدخله. 1020 00:49:56,562 --> 00:49:58,920 1021 00:49:58,920 --> 00:49:59,680 >> JASON هيرشهورن: أحب ذلك. 1022 00:49:59,680 --> 00:50:00,500 أن من المنطقي. 1023 00:50:00,500 --> 00:50:03,390 إذا يخرج من حلقة - 1024 00:50:03,390 --> 00:50:04,800 لأنه سوف عودة كاذبة هنا. 1025 00:50:04,800 --> 00:50:08,220 إذا كان الأمر كذلك مخارج حلقة، ثم نحن في في نهاية القائمة، أو ربما 1026 00:50:08,220 --> 00:50:10,690 بدء من قائمة إذا كان هناك شيء في ، والذي هو نفس النهاية. 1027 00:50:10,690 --> 00:50:12,770 وحتى الآن نحن نريد أن إدراج شيء هنا. 1028 00:50:12,770 --> 00:50:17,380 لذلك كيف يمكن أن ننظر رمز، ماركوس؟ 1029 00:50:17,380 --> 00:50:21,600 >> الحضور: إذا كنت بالفعل حصلت على عقدة malloced، هل يمكن أن نقول فقط 1030 00:50:21,600 --> 00:50:25,400 new_node-> يساوي القادم باطل لأن فإنه يجب أن يكون في نهاية المطاف. 1031 00:50:25,400 --> 00:50:27,510 أو new_node-> يساوي المقبل فارغة. 1032 00:50:27,510 --> 00:50:27,765 >> JASON هيرشهورن: OK. 1033 00:50:27,765 --> 00:50:28,190 آسف. 1034 00:50:28,190 --> 00:50:35,760 New_node-> يساوي المقبل فارغة لأننا في نهاية المطاف. 1035 00:50:35,760 --> 00:50:36,460 أن لا يضع فيه. 1036 00:50:36,460 --> 00:50:37,710 كيف يمكننا وضعه في القائمة؟ 1037 00:50:37,710 --> 00:50:46,130 1038 00:50:46,130 --> 00:50:46,460 الحق. 1039 00:50:46,460 --> 00:50:47,750 هذا مجرد تعيينها يساوي. 1040 00:50:47,750 --> 00:50:50,940 كيف لا ونحن في الواقع وضعه في القائمة؟ 1041 00:50:50,940 --> 00:50:54,170 ما يشير إلى نهاية القائمة؟ 1042 00:50:54,170 --> 00:50:56,090 >> الحضور: رئيس. 1043 00:50:56,090 --> 00:50:57,566 >> JASON هيرشهورن: عذرا؟ 1044 00:50:57,566 --> 00:50:59,440 >> الحضور: رئيس يتم الإشارة إلى نهاية القائمة. 1045 00:50:59,440 --> 00:51:01,480 >> JASON هيرشهورن: إذا كان هناك أي شيء في قائمة رئيس يشير إلى 1046 00:51:01,480 --> 00:51:04,170 نهاية القائمة. 1047 00:51:04,170 --> 00:51:06,920 بحيث سوف تعمل ل الإدراج الأول. 1048 00:51:06,920 --> 00:51:09,810 ماذا عن إذا كان هناك زوجين الأشياء في القائمة؟ 1049 00:51:09,810 --> 00:51:12,470 من نحن لا ترغب في تعيين يتوجه يساوي new_node. 1050 00:51:12,470 --> 00:51:13,790 ماذا نريد أن نفعل هناك؟ 1051 00:51:13,790 --> 00:51:15,610 نعم؟ 1052 00:51:15,610 --> 00:51:16,860 السابقة على الأرجح. 1053 00:51:16,860 --> 00:51:23,560 1054 00:51:23,560 --> 00:51:24,810 وسوف تعمل؟ 1055 00:51:24,810 --> 00:51:28,950 1056 00:51:28,950 --> 00:51:33,050 نذكر بأن السابق هو مجرد مؤشر إلى العقدة. 1057 00:51:33,050 --> 00:51:34,770 والسابق هو متغير محلي. 1058 00:51:34,770 --> 00:51:38,080 حتى هذا الخط سيتم تعيين متغير محلي، السابقة، أي ما يعادل أو 1059 00:51:38,080 --> 00:51:39,380 مشيرا إلى هذه العقدة الجديدة. 1060 00:51:39,380 --> 00:51:41,500 هذا لن وضعها في الواقع في قائمتنا، وإن كان. 1061 00:51:41,500 --> 00:51:44,330 كيف يمكننا وضعه في قائمتنا؟ 1062 00:51:44,330 --> 00:51:45,620 Akchar؟ 1063 00:51:45,620 --> 00:51:46,870 >> الجمهور: أعتقد أنك القيام الحالي> المقبل. 1064 00:51:46,870 --> 00:51:50,186 1065 00:51:50,186 --> 00:51:52,550 >> JASON هيرشهورن: OK. 1066 00:51:52,550 --> 00:51:54,010 بالعملة-> المقبل. 1067 00:51:54,010 --> 00:51:58,768 ذلك مرة أخرى، والسبب الوحيد اننا أسفل هنا هو، ماذا يفعل الحالية على قدم المساواة؟ 1068 00:51:58,768 --> 00:51:59,760 >> الجمهور: يساوي فارغة. 1069 00:51:59,760 --> 00:52:01,790 >> JASON هيرشهورن: وماذا في ذلك يحدث اذا لم نفعل خالية> في المرة القادمة؟ 1070 00:52:01,790 --> 00:52:02,810 ماذا نحن ذاهبون للحصول على؟ 1071 00:52:02,810 --> 00:52:04,060 وسوف نحصل على خطأ تجزئة. 1072 00:52:04,060 --> 00:52:06,600 1073 00:52:06,600 --> 00:52:08,880 >> الحضور: هل يساوي بالعملة فارغة. 1074 00:52:08,880 --> 00:52:10,760 >> JASON هيرشهورن: هذا هو نفس الشيء كما السابق، على الرغم من أنه لا يوجد 1075 00:52:10,760 --> 00:52:12,820 متغير محلي نقوم بوضع يساوي هذا عقدة جديدة. 1076 00:52:12,820 --> 00:52:16,680 1077 00:52:16,680 --> 00:52:20,920 دعونا نعود إلى الصورة لدينا ادخال شيء. 1078 00:52:20,920 --> 00:52:25,500 ويقول نحن إدراج في نهاية من القائمة، لذلك هنا. 1079 00:52:25,500 --> 00:52:30,010 لدينا مؤشر الحالي هذا مشيرا إلى فارغة والنقطة السابقة 1080 00:52:30,010 --> 00:52:32,800 وهذا ما يشير إلى 8. 1081 00:52:32,800 --> 00:52:35,330 لذلك ماذا نحن بحاجة إلى تحديث، آفي؟ 1082 00:52:35,330 --> 00:52:36,680 >> الحضور: السابق> في المرة القادمة؟ 1083 00:52:36,680 --> 00:52:41,980 >> JASON هيرشهورن: السابق> هو القادم ما نحن نريد لتحديث لأن ذلك 1084 00:52:41,980 --> 00:52:44,960 سوف أدخله في الواقع نهاية القائمة. 1085 00:52:44,960 --> 00:52:47,220 لا يزال لدينا علة واحدة، على الرغم من أننا ذاهبون لتشغيل في. 1086 00:52:47,220 --> 00:52:50,090 ما هو هذا الخطأ؟ 1087 00:52:50,090 --> 00:52:50,790 نعم؟ 1088 00:52:50,790 --> 00:52:53,860 >> الجمهور: انها سوف تعود كاذبة في هذه الحالة؟ 1089 00:52:53,860 --> 00:52:56,380 >> JASON هيرشهورن: أوه، هو و سوف تعود كاذبة. 1090 00:52:56,380 --> 00:52:57,430 ولكن هناك علة أخرى. 1091 00:52:57,430 --> 00:52:58,930 ولذا فإننا سوف تحتاج لوضع في العودة الحقيقية. 1092 00:52:58,930 --> 00:53:01,370 >> الحضور: هل لا تزال متساوية السابقة فارغة في أعلى القائمة؟ 1093 00:53:01,370 --> 00:53:03,645 >> JASON هيرشهورن: لا يزال السابقة لذلك يساوي فارغة في البداية. 1094 00:53:03,645 --> 00:53:07,480 1095 00:53:07,480 --> 00:53:10,440 فكيف يمكننا الحصول على أكثر من ذلك؟ 1096 00:53:10,440 --> 00:53:10,950 نعم؟ 1097 00:53:10,950 --> 00:53:15,280 >> الجمهور: أعتقد أنك يمكن أن تفعل الاختيار قبل حلقة في حين لمعرفة ما اذا كان 1098 00:53:15,280 --> 00:53:16,610 قائمة فارغة. 1099 00:53:16,610 --> 00:53:17,000 >> JASON هيرشهورن: OK. 1100 00:53:17,000 --> 00:53:17,710 لذلك دعونا نذهب هنا. 1101 00:53:17,710 --> 00:53:18,530 القيام فحص. 1102 00:53:18,530 --> 00:53:19,380 إذا - 1103 00:53:19,380 --> 00:53:20,770 >> الجمهور: حتى إذا كان الرأس يساوي يساوي فارغة. 1104 00:53:20,770 --> 00:53:24,300 1105 00:53:24,300 --> 00:53:26,320 >> JASON هيرشهورن: إذا الرأس يساوي يساوي فارغة - 1106 00:53:26,320 --> 00:53:27,790 التي سوف تقول لنا ما اذا كان قائمة فارغة. 1107 00:53:27,790 --> 00:53:31,090 >> الحضور: وبعد ذلك كنت قيام رئيس يساوي الجديدة. 1108 00:53:31,090 --> 00:53:34,740 >> JASON هيرشهورن: رئيس يساوي new_node؟ 1109 00:53:34,740 --> 00:53:35,730 وماذا نحتاج أن تفعل؟ 1110 00:53:35,730 --> 00:53:37,020 >> الحضور: وبعد ذلك العودة الحقيقية. 1111 00:53:37,020 --> 00:53:37,535 >> JASON هيرشهورن: ليس تماما. 1112 00:53:37,535 --> 00:53:38,785 نفتقده خطوة واحدة. 1113 00:53:38,785 --> 00:53:41,590 1114 00:53:41,590 --> 00:53:43,710 >> الجمهور: New_node المقبل يجب أن نشير إلى قيمة خالية. 1115 00:53:43,710 --> 00:53:44,570 >> JASON هيرشهورن: بالضبط، الدن. 1116 00:53:44,570 --> 00:53:46,600 وبعد ذلك يمكننا العودة الحقيقية. 1117 00:53:46,600 --> 00:53:47,560 موافق. 1118 00:53:47,560 --> 00:53:51,630 لكنه ما زال فكرة جيدة أن تفعل أشياء في نهاية القائمة، أليس كذلك؟ 1119 00:53:51,630 --> 00:53:51,950 حسنا. 1120 00:53:51,950 --> 00:53:54,450 ما زلنا قد تحصل في الواقع إلى نهاية القائمة. 1121 00:53:54,450 --> 00:53:57,870 ذلك هو هذا الرمز يرام إذا نحن في نهاية القائمة، وهناك بعض 1122 00:53:57,870 --> 00:53:59,120 الأشياء في القائمة؟ 1123 00:53:59,120 --> 00:54:01,830 1124 00:54:01,830 --> 00:54:02,040 أليس كذلك؟ 1125 00:54:02,040 --> 00:54:03,540 لأننا لا تزال لديها فكرة ماركوس. 1126 00:54:03,540 --> 00:54:06,870 ونحن قد إنهاء هذه الحلقة ل نحن في نهاية القائمة. 1127 00:54:06,870 --> 00:54:09,308 لذلك فإننا لا تزال تريد هذه رمز إلى هنا؟ 1128 00:54:09,308 --> 00:54:10,520 >> الجمهور: نعم. 1129 00:54:10,520 --> 00:54:11,000 >> JASON هيرشهورن: نعم. 1130 00:54:11,000 --> 00:54:14,190 وماذا نحتاج لتغيير هذا؟ 1131 00:54:14,190 --> 00:54:15,440 صحيح. 1132 00:54:15,440 --> 00:54:19,580 1133 00:54:19,580 --> 00:54:21,640 يفعل ذلك الصوت جيدة على الجميع حتى الآن؟ 1134 00:54:21,640 --> 00:54:22,420 أي شخص لديك أي - 1135 00:54:22,420 --> 00:54:23,480 افي، هل لديك شيء للإضافة؟ 1136 00:54:23,480 --> 00:54:23,920 >> الحضور: رقم 1137 00:54:23,920 --> 00:54:25,276 >> JASON هيرشهورن: OK. 1138 00:54:25,276 --> 00:54:27,010 لذلك نحن حققنا بضعة التغييرات. 1139 00:54:27,010 --> 00:54:29,540 لقد حققنا هذا الاختيار قبل أن ذهب في لائحة فارغة. 1140 00:54:29,540 --> 00:54:31,790 ولذا فإننا قد اتخذت الرعاية من قائمة فارغة. 1141 00:54:31,790 --> 00:54:35,500 ونحن هنا اعتنى إدراج شيء في نهاية القائمة. 1142 00:54:35,500 --> 00:54:38,930 لذلك يبدو مثل هذا أخذ حلقة في حين الرعاية من الأشياء في بين، 1143 00:54:38,930 --> 00:54:41,920 في مكان ما في قائمة إذا كان هناك أشياء في القائمة. 1144 00:54:41,920 --> 00:54:42,280 >> موافق. 1145 00:54:42,280 --> 00:54:44,310 دعونا تشغيل هذا البرنامج مرة أخرى. 1146 00:54:44,310 --> 00:54:50,170 1147 00:54:50,170 --> 00:54:50,755 لم يكن ناجحا. 1148 00:54:50,755 --> 00:54:52,190 >> الحضور: أنت لم يتمكنوا من ذلك. 1149 00:54:52,190 --> 00:54:53,940 >> JASON هيرشهورن: أوه، أنا لم يتمكنوا من ذلك. 1150 00:54:53,940 --> 00:54:56,250 نقطة جيدة، مايكل. 1151 00:54:56,250 --> 00:54:57,500 دعونا نضيف جعل المرتبطة. 1152 00:54:57,500 --> 00:55:01,590 1153 00:55:01,590 --> 00:55:04,830 خط 87 هناك خطأ. 1154 00:55:04,830 --> 00:55:05,420 خط 87. 1155 00:55:05,420 --> 00:55:06,600 الدن، وكان هذا الخط الذي قدمتموه لي. 1156 00:55:06,600 --> 00:55:08,962 ما هو الخطأ؟ 1157 00:55:08,962 --> 00:55:10,710 >> الحضور: يجب ان يكون لاغية. 1158 00:55:10,710 --> 00:55:11,000 >> JASON هيرشهورن: ممتاز. 1159 00:55:11,000 --> 00:55:11,630 صحيح تماما. 1160 00:55:11,630 --> 00:55:13,290 يجب أن تكون فارغة. 1161 00:55:13,290 --> 00:55:15,210 دعونا جعل مرة أخرى. 1162 00:55:15,210 --> 00:55:17,220 ترجمة. 1163 00:55:17,220 --> 00:55:17,890 موافق. 1164 00:55:17,890 --> 00:55:19,400 دعونا إدراج ثلاثة. 1165 00:55:19,400 --> 00:55:20,570 وكان إدراج ناجحة. 1166 00:55:20,570 --> 00:55:21,660 دعونا طباعته. 1167 00:55:21,660 --> 00:55:23,590 أوه، إلا إذا كان نتمكن من التحقق. 1168 00:55:23,590 --> 00:55:25,500 لكننا لم تفعل طباعة وظيفة حتى الآن. 1169 00:55:25,500 --> 00:55:27,840 دعونا إدخال شيء آخر. 1170 00:55:27,840 --> 00:55:29,090 ما ينبغي أن ندخل؟ 1171 00:55:29,090 --> 00:55:31,120 1172 00:55:31,120 --> 00:55:31,940 >> الحضور: سبعة. 1173 00:55:31,940 --> 00:55:33,340 >> JASON هيرشهورن: سبعة؟ 1174 00:55:33,340 --> 00:55:34,590 >> الجمهور: نعم. 1175 00:55:34,590 --> 00:55:38,680 1176 00:55:38,680 --> 00:55:39,780 >> JASON هيرشهورن: لدينا خطأ ثوانى. 1177 00:55:39,780 --> 00:55:43,760 حتى وصلنا واحد، ولكن من الواضح أننا لا يمكن الحصول على اثنين. 1178 00:55:43,760 --> 00:55:45,690 فمن 05:07. 1179 00:55:45,690 --> 00:55:48,370 حتى نتمكن من تصحيح هذا لمدة ثلاث دقائق. 1180 00:55:48,370 --> 00:55:51,240 ولكن أنا ذاهب إلى ترك لنا هنا وننتقل إلى تجزئة الجداول. 1181 00:55:51,240 --> 00:55:54,290 ولكن مرة أخرى، والأجوبة عن هذا الرمز وسوف ارسل لك في بعض الشيء. 1182 00:55:54,290 --> 00:55:55,440 نحن قريبون جدا من ذلك. 1183 00:55:55,440 --> 00:55:58,300 أنا أشجع بشدة لك لمعرفة ما يحدث هنا وإصلاحه. 1184 00:55:58,300 --> 00:56:02,400 ولذا فإنني سوف ارسل لكم هذا الكود كما كذلك بالإضافة إلى حل - 1185 00:56:02,400 --> 00:56:03,670 ربما الحل في وقت لاحق. 1186 00:56:03,670 --> 00:56:05,110 أول هذه التعليمات البرمجية. 1187 00:56:05,110 --> 00:56:08,290 >> الشيء الآخر أريد القيام به قبل أن النهاية هو أننا لم سراح أي شيء. 1188 00:56:08,290 --> 00:56:10,370 لذلك أريد أن تظهر لك ما valgrind يبدو. 1189 00:56:10,370 --> 00:56:14,310 إذا كنا تشغيل الحدود valgrind على برنامجنا،. / مرتبط. 1190 00:56:14,310 --> 00:56:22,540 مرة أخرى، وفقا لهذه الشريحة، ونحن يجب تشغيل valgrind مع بعض نوع من 1191 00:56:22,540 --> 00:56:26,410 الخيار، في هذه الحالة - تسرب الاختيار = الكامل. 1192 00:56:26,410 --> 00:56:27,660 لذلك دعونا إرسال valgrind - تسرب الاختيار = الكامل. 1193 00:56:27,660 --> 00:56:31,910 1194 00:56:31,910 --> 00:56:35,080 لذلك هذا سيتم تشغيل valgrind على برنامجنا. 1195 00:56:35,080 --> 00:56:37,000 والآن البرنامج يعمل فعلا. 1196 00:56:37,000 --> 00:56:40,190 لذلك نحن ذاهبون لتشغيله تماما مثل من قبل، وضع شيء فيها. 1197 00:56:40,190 --> 00:56:40,830 انا ذاهب الى وضعها في ثلاثة. 1198 00:56:40,830 --> 00:56:41,790 يعمل. 1199 00:56:41,790 --> 00:56:43,202 أنا لن أحاول أن أضع في شيء آخر لأننا في طريقنا لل 1200 00:56:43,202 --> 00:56:44,710 الحصول على كاذبة ثوانى في هذه الحالة. 1201 00:56:44,710 --> 00:56:46,700 لذلك أنا ذاهب لمجرد الإقلاع عن التدخين. 1202 00:56:46,700 --> 00:56:50,160 >> والآن ترى أسفل هنا تسرب وملخص الكومة. 1203 00:56:50,160 --> 00:56:52,310 هذه هي الأشياء الجيدة التي تريد إنهاء إجراءات المغادرة. 1204 00:56:52,310 --> 00:56:56,780 وبالتالي فإن ملخص كومة - على حد قولها، في استخدام في الخروج - ثمانية بايت في كتلة واحدة. 1205 00:56:56,780 --> 00:56:58,370 أن كتلة واحدة هي عقدة نحن malloced. 1206 00:56:58,370 --> 00:57:02,230 مايكل، وقال لك قبل عقدة ثمانية لدغات لأنه يحتوي على عدد صحيح 1207 00:57:02,230 --> 00:57:02,680 والمؤشر. 1208 00:57:02,680 --> 00:57:04,550 ذلك أن لدينا عقدة. 1209 00:57:04,550 --> 00:57:08,170 وبعد ذلك يقول كنا malloc سبع مرات، ونحن الافراج 1210 00:57:08,170 --> 00:57:08,940 شيء ست مرات. 1211 00:57:08,940 --> 00:57:13,680 لكننا أبدا يسمى الحرة، لذلك ليس لدي فكرة هذا ما يتحدث عنه. 1212 00:57:13,680 --> 00:57:18,490 >> ولكن يكفي أن نقول أنه عندما الخاص تشغيل البرنامج، يتم استدعاء malloc 1213 00:57:18,490 --> 00:57:20,330 في بعض الأماكن الأخرى التي نحن لا داعي للقلق حول. 1214 00:57:20,330 --> 00:57:22,460 لذلك ربما كان يسمى malloc في بعض الأماكن. 1215 00:57:22,460 --> 00:57:24,480 نحن لا داعي للقلق حيث. 1216 00:57:24,480 --> 00:57:26,240 ولكن هذا هو حقا لنا. 1217 00:57:26,240 --> 00:57:27,380 هذا الخط الأول هو لنا. 1218 00:57:27,380 --> 00:57:28,320 تركنا تلك الكتلة. 1219 00:57:28,320 --> 00:57:30,330 ويمكنك أن ترى أن هنا في الملخص تسرب. 1220 00:57:30,330 --> 00:57:31,950 لا تزال قابلة للوصول - 1221 00:57:31,950 --> 00:57:32,930 ثمانية بايت في كتلة واحدة. 1222 00:57:32,930 --> 00:57:34,100 وهذا يعني أن الذاكرة - 1223 00:57:34,100 --> 00:57:35,730 لقد تسربت تلك الذاكرة. 1224 00:57:35,730 --> 00:57:37,570 خسر بالتأكيد - 1225 00:57:37,570 --> 00:57:38,770 وفقدت شيئا من أجل الخير. 1226 00:57:38,770 --> 00:57:40,590 عموما، فلن ترى أي شيء هناك. 1227 00:57:40,590 --> 00:57:44,780 لا تزال قابلة للوصول بشكل عام حيث سترى الأشياء، حيث سترغب 1228 00:57:44,780 --> 00:57:48,900 لننظر لنرى ما يجب عليك كود وقد حررت ولكن كنت قد نسيت لتحرير. 1229 00:57:48,900 --> 00:57:53,170 >> ثم إذا كان هذا ليس هو الحال، إذا فعلنا كل شيء مجانا، 1230 00:57:53,170 --> 00:57:54,360 يمكننا التحقق من ذلك. 1231 00:57:54,360 --> 00:57:57,330 دعونا فقط تشغيل البرنامج عدم وضع أي شيء في. 1232 00:57:57,330 --> 00:57:59,800 سترى أسفل هنا في استخدامها في الخروج - 1233 00:57:59,800 --> 00:58:01,310 صفر بايت في كتل الصفر. 1234 00:58:01,310 --> 00:58:06,310 وهذا يعني أننا قد لا يبقى شيء عندما خرجت هذا البرنامج. 1235 00:58:06,310 --> 00:58:12,090 حتى قبل ان يتحول في pset6، تشغيل valgrind وتأكد من أنك لم يكن لديك 1236 00:58:12,090 --> 00:58:15,310 أي ذاكرة تسرب في البرنامج. 1237 00:58:15,310 --> 00:58:17,910 إذا كان لديك أي أسئلة مع valgrind، لا تتردد في التواصل. 1238 00:58:17,910 --> 00:58:18,700 ولكن هذا هو كيفية استخدامه. 1239 00:58:18,700 --> 00:58:20,890 بسيط جدا - معرفة ما اذا كنت يكون قيد الاستخدام في الخروج - 1240 00:58:20,890 --> 00:58:22,270 أي بايت في أي كتل. 1241 00:58:22,270 --> 00:58:27,890 1242 00:58:27,890 --> 00:58:29,580 >> لذلك كنا نعمل على إدراج عقدة. 1243 00:58:29,580 --> 00:58:33,840 كان لي اثنين من وظائف أخرى هنا - طباعة العقد والعقد مجانية. 1244 00:58:33,840 --> 00:58:37,780 مرة أخرى، وهذه هي الوظائف التي هي ستكون جيدة بالنسبة لك لممارسة 1245 00:58:37,780 --> 00:58:40,990 لأنها سوف تساعدك ليس فقط مع هذه التمارين عينة ولكن أيضا 1246 00:58:40,990 --> 00:58:42,180 على المشكلة المحددة. 1247 00:58:42,180 --> 00:58:44,230 أنها خريطة على نحو وثيق جدا لأشياء وأنت تسير لدينا للقيام في 1248 00:58:44,230 --> 00:58:45,010 تعيين المشكلة. 1249 00:58:45,010 --> 00:58:47,640 ولكن أنا لا أريد أن تأكد من ونحن على اتصال على كل شيء. 1250 00:58:47,640 --> 00:58:50,400 والجداول التجزئة هي أيضا حاسمة ل ما نقوم به في هذا القسم 1251 00:58:50,400 --> 00:58:51,980 الأسبوع - أو في المجموعة المشكلة. 1252 00:58:51,980 --> 00:58:55,200 >> لذلك نحن ذاهبون لإنهاء القسم نتحدث عن الجداول التجزئة. 1253 00:58:55,200 --> 00:58:58,140 إذا لاحظت أنني ارتكبت جدول التجزئة قليلا. 1254 00:58:58,140 --> 00:59:00,020 ليس هذا ما كنا نتحدث حول، ولكن. 1255 00:59:00,020 --> 00:59:03,540 نحن نتحدث عن مختلف نوع من الجداول التجزئة. 1256 00:59:03,540 --> 00:59:07,300 وفي جوهره، جدول تجزئة لها لا شيء أكثر من 1257 00:59:07,300 --> 00:59:08,860 مجموعة بالإضافة إلى وظيفة التجزئة. 1258 00:59:08,860 --> 00:59:11,150 نحن ذاهبون الى الحديث قليلا فقط ل تأكد الجميع يفهم ما 1259 00:59:11,150 --> 00:59:12,110 دالة تجزئة هو. 1260 00:59:12,110 --> 00:59:15,420 وأنا أقول لك الآن أنه من لا شيء أكثر من شيئين - 1261 00:59:15,420 --> 00:59:18,590 مجموعة ودالة تجزئة. 1262 00:59:18,590 --> 00:59:20,716 وهنا الخطوات من خلال هذا الذي يعمل. 1263 00:59:20,716 --> 00:59:31,560 1264 00:59:31,560 --> 00:59:32,810 >> هناك مجموعة لدينا. 1265 00:59:32,810 --> 00:59:38,460 1266 00:59:38,460 --> 00:59:39,460 هناك وظيفة لدينا. 1267 00:59:39,460 --> 00:59:43,180 على وجه الخصوص، بحاجة إلى وظائف التجزئة ل تفعل بضعة أشياء مع هذا. 1268 00:59:43,180 --> 00:59:45,040 انا ذاهب الى الحديث على وجه التحديد حول تعيين هذه المشكلة. 1269 00:59:45,040 --> 00:59:46,450 انه سيكون على الارجح ل تأخذ في سلسلة. 1270 00:59:46,450 --> 00:59:50,570 1271 00:59:50,570 --> 00:59:51,770 وماذا تسير الأمور في العودة؟ 1272 00:59:51,770 --> 00:59:52,640 ما هو نوع البيانات؟ 1273 00:59:52,640 --> 00:59:54,260 ألدين؟ 1274 00:59:54,260 --> 00:59:55,760 دالة تجزئة الخاصة بك العودة؟ 1275 00:59:55,760 --> 00:59:58,760 عدد صحيح. 1276 00:59:58,760 --> 01:00:01,700 لذلك هذا هو ما التجزئة يتكون جدول - 1277 01:00:01,700 --> 01:00:05,430 جدول في شكل مجموعة وظيفة تجزئة. 1278 01:00:05,430 --> 01:00:06,010 كيف يعمل؟ 1279 01:00:06,010 --> 01:00:07,300 يعمل في ثلاث خطوات. 1280 01:00:07,300 --> 01:00:08,740 اعطيناها مفتاح. 1281 01:00:08,740 --> 01:00:11,470 في هذه الحالة، فإننا سوف تعطيه سلسلة. 1282 01:00:11,470 --> 01:00:18,140 نسميه دالة تجزئة في خطوة واحدة على المفتاح ونحصل على القيمة. 1283 01:00:18,140 --> 01:00:20,310 >> على وجه التحديد، ونحن سوف يقول نحصل على عدد صحيح. 1284 01:00:20,310 --> 01:00:25,630 صحيح أن هناك محددة جدا حدود لما يمكن أن يكون صحيحا أن. 1285 01:00:25,630 --> 01:00:28,880 في هذا المثال، لدينا مجموعة هي من الحجم الثلاثة. 1286 01:00:28,880 --> 01:00:32,330 ذلك ما يمكن أن يكون أن أرقام عدد صحيح. 1287 01:00:32,330 --> 01:00:35,970 ما هو نطاق القيم الصالحة ل أن عدد صحيح، ونوع الإرجاع من هذا 1288 01:00:35,970 --> 01:00:37,220 تجزئة وظيفة؟ 1289 01:00:37,220 --> 01:00:40,440 1290 01:00:40,440 --> 01:00:42,110 صفر، واحد واثنين. 1291 01:00:42,110 --> 01:00:46,060 نقطة دالة البعثرة هو معرفة المكان في مجموعة 1292 01:00:46,060 --> 01:00:47,790 حيث لدينا مفتاح هو ذاهب. 1293 01:00:47,790 --> 01:00:51,290 هناك ثلاثة فقط ممكن الأماكن هنا - 1294 01:00:51,290 --> 01:00:52,130 صفر، واحد، أو اثنين. 1295 01:00:52,130 --> 01:00:55,360 حتى هذه الوظيفة أفضل العودة صفر، واحد، أو اثنين. 1296 01:00:55,360 --> 01:00:58,740 بعض indice صالح في هذه المجموعة. 1297 01:00:58,740 --> 01:01:02,770 >> ومن ثم تبعا للمكان فإنها ترجع، ترون هناك مجموعة مفتوحة 1298 01:01:02,770 --> 01:01:03,730 قوس القيمة. 1299 01:01:03,730 --> 01:01:05,800 حيث ان نضع المفتاح. 1300 01:01:05,800 --> 01:01:11,280 لذلك نحن في رمي اليقطين، نخرج صفر. 1301 01:01:11,280 --> 01:01:15,540 في مجموعة قوس 0، وضعنا اليقطين. 1302 01:01:15,540 --> 01:01:21,070 نحن رمي في القطط، وحصلنا على أصل واحد. 1303 01:01:21,070 --> 01:01:24,110 نضع القط في واحدة. 1304 01:01:24,110 --> 01:01:25,480 نضع في العنكبوت. 1305 01:01:25,480 --> 01:01:26,710 نخرج اثنين. 1306 01:01:26,710 --> 01:01:30,200 نضع العنكبوت في مجموعة قوس اثنين. 1307 01:01:30,200 --> 01:01:32,300 سيكون لطيفا إذا كان الأمر كذلك انها عملت من هذا القبيل. 1308 01:01:32,300 --> 01:01:35,570 ولكن للأسف، كما سنرى، انها قليلا أكثر تعقيدا. 1309 01:01:35,570 --> 01:01:37,570 >> قبل أن نصل إلى هناك، على أية أسئلة حول هذه الأساسية 1310 01:01:37,570 --> 01:01:38,820 انشاء جدول التجزئة؟ 1311 01:01:38,820 --> 01:01:49,050 1312 01:01:49,050 --> 01:01:51,940 هذا هو بالضبط صورة ما لفت على متن الطائرة. 1313 01:01:51,940 --> 01:01:55,420 ولكن بما أننا ووجه ذلك على متن الطائرة، وأنا أنا لن أخوض في ذلك المزيد. 1314 01:01:55,420 --> 01:02:00,430 مفاتيح أساسا، الصندوق الأسود السحر - أو في هذه الحالة، مربع البط البري - ل 1315 01:02:00,430 --> 01:02:02,410 دالة تجزئة يضعهم في الدلاء. 1316 01:02:02,410 --> 01:02:04,690 وفي هذا المثال نحن عدم وضع اسم. 1317 01:02:04,690 --> 01:02:07,880 نحن نضع الهاتف المرتبطة عدد الاسم في دلو. 1318 01:02:07,880 --> 01:02:10,430 ولكن هل يمكن بشكل جيد للغاية فقط وضع اسم في دلو. 1319 01:02:10,430 --> 01:02:12,950 >> هذا هو مجرد صورة ما تعادلنا على متن الطائرة. 1320 01:02:12,950 --> 01:02:14,460 لدينا المزالق المحتملة، وإن كان. 1321 01:02:14,460 --> 01:02:17,470 وهناك نوعان من على وجه الخصوص الشرائح التي أريد أن يذهب أكثر. 1322 01:02:17,470 --> 01:02:20,230 أول واحد هو حول دالة تجزئة. 1323 01:02:20,230 --> 01:02:22,620 لذلك أنا طرح السؤال، ما يجعل وظيفة تجزئة جيدة؟ 1324 01:02:22,620 --> 01:02:24,220 أعطي إجابتين. 1325 01:02:24,220 --> 01:02:26,630 الأول هو أنه من القطعية. 1326 01:02:26,630 --> 01:02:29,660 في سياق ظائف التجزئة، ماذا يعني هذا؟ 1327 01:02:29,660 --> 01:02:37,840 1328 01:02:37,840 --> 01:02:39,282 نعم؟ 1329 01:02:39,282 --> 01:02:42,850 >> الحضور: ويمكن العثور على الفهرس في وقت ثابت؟ 1330 01:02:42,850 --> 01:02:43,810 >> JASON هيرشهورن: هذا ليس هو ما يعنيه. 1331 01:02:43,810 --> 01:02:44,725 ولكن هذا تخمين جيد. 1332 01:02:44,725 --> 01:02:46,100 أي شخص آخر لديهم تخمين لماذا يعني هذا؟ 1333 01:02:46,100 --> 01:02:47,780 أن وظيفة تجزئة جيدة هي حتمية؟ 1334 01:02:47,780 --> 01:02:48,280 آني؟ 1335 01:02:48,280 --> 01:02:51,680 >> الحضور: هذا مفتاح لا يمكن إلا أن يتم تعيين إلى مكان واحد في جدول التجزئة. 1336 01:02:51,680 --> 01:02:53,070 >> JASON هيرشهورن: هذا صحيح تماما. 1337 01:02:53,070 --> 01:02:57,430 في كل مرة كنت وضعت في اليقطين، فإنها ترجع دائما صفر. 1338 01:02:57,430 --> 01:03:01,660 إذا وضعت في اليقطين والتجزئة الخاصة بك الدالة بإرجاع صفر ولكن لديه 1339 01:03:01,660 --> 01:03:06,060 احتمال عودته شيء أكبر آخر من الصفر - 1340 01:03:06,060 --> 01:03:09,280 وربما لذلك فإنه يمكن العودة احدة أحيانا أو مرتين أخرى - 1341 01:03:09,280 --> 01:03:11,100 ليست وظيفة تجزئة جيدة. 1342 01:03:11,100 --> 01:03:11,800 أنت على حق تماما. 1343 01:03:11,800 --> 01:03:15,680 يجب أن تعود وظيفة التجزئة الخاص بك نفس صحيحا بالضبط، في هذه الحالة، ل 1344 01:03:15,680 --> 01:03:17,780 نفس السلسلة بالضبط. 1345 01:03:17,780 --> 01:03:22,210 >> ربما تقوم بإرجاع عدد صحيح بالضبط نفس لنفس السلسلة بالضبط 1346 01:03:22,210 --> 01:03:24,430 بغض النظر عن القيمة. 1347 01:03:24,430 --> 01:03:27,980 ولكن في هذه الحالة فإنه لا يزال لأن الأمور القطعية متعددة 1348 01:03:27,980 --> 01:03:29,350 يتم تعيينها على نفس القيمة. 1349 01:03:29,350 --> 01:03:30,170 هذا شيء طيب. 1350 01:03:30,170 --> 01:03:32,615 طالما ليس هناك سوى واحد الناتج عن مدخلات معينة. 1351 01:03:32,615 --> 01:03:35,630 1352 01:03:35,630 --> 01:03:36,350 >> موافق. 1353 01:03:36,350 --> 01:03:38,340 الشيء الثاني هو أنه يعود مؤشرات صالحة. 1354 01:03:38,340 --> 01:03:40,220 أثرنا أنه في وقت سابق. 1355 01:03:40,220 --> 01:03:41,860 هذه الوظيفة التجزئة - 1356 01:03:41,860 --> 01:03:43,710 يا صبي - 1357 01:03:43,710 --> 01:03:46,840 ينبغي دالة تجزئة العودة مؤشرات صالحة. 1358 01:03:46,840 --> 01:03:47,740 لذلك أقول - 1359 01:03:47,740 --> 01:03:48,990 دعونا نعود إلى هذا المثال. 1360 01:03:48,990 --> 01:03:52,580 1361 01:03:52,580 --> 01:03:57,540 دالة تجزئة بلدي التهم تصل الحروف في الكلمة. 1362 01:03:57,540 --> 01:03:58,380 هذا هو دالة تجزئة. 1363 01:03:58,380 --> 01:03:59,740 ويعود ذلك صحيحا. 1364 01:03:59,740 --> 01:04:04,280 حتى إذا كان لدي كلمة A، انها سوف تعود واحدة. 1365 01:04:04,280 --> 01:04:06,900 وانه سيكون لوضع الحق هنا. 1366 01:04:06,900 --> 01:04:09,430 ماذا لو أنني وضعت في كلمة الخفافيش؟ 1367 01:04:09,430 --> 01:04:11,310 انها سوف تعود الثلاثة. 1368 01:04:11,310 --> 01:04:12,560 أين تذهب الخفافيش؟ 1369 01:04:12,560 --> 01:04:18,730 1370 01:04:18,730 --> 01:04:19,750 >> فإنه لا يصلح. 1371 01:04:19,750 --> 01:04:21,000 لكنه يحتاج إلى الذهاب إلى مكان. 1372 01:04:21,000 --> 01:04:23,340 هذا هو جدول التجزئة بلدي بعد كل شيء، و كل شيء يجب أن تذهب في مكان ما. 1373 01:04:23,340 --> 01:04:24,590 فأين يجب ان تذهب الخفافيش؟ 1374 01:04:24,590 --> 01:04:28,020 1375 01:04:28,020 --> 01:04:28,710 أي أفكار؟ 1376 01:04:28,710 --> 01:04:29,450 التخمينات؟ 1377 01:04:29,450 --> 01:04:30,280 التخمينات جيدة؟ 1378 01:04:30,280 --> 01:04:31,220 >> الحضور: صفر. 1379 01:04:31,220 --> 01:04:32,120 >> JASON هيرشهورن: لماذا الصفر؟ 1380 01:04:32,120 --> 01:04:35,990 >> الحضور: لأن ثلاثة نمطية ثلاثة صفرا؟ 1381 01:04:35,990 --> 01:04:38,620 >> JASON هيرشهورن: ثلاثة نمطية ثلاثة صفر. 1382 01:04:38,620 --> 01:04:40,810 وهذا هو تخمين كبيرة، وهذا هو الصحيح. 1383 01:04:40,810 --> 01:04:43,870 لذلك ينبغي في هذه الحالة ربما تذهب عند مستوى الصفر. 1384 01:04:43,870 --> 01:04:51,080 لذلك وسيلة جيدة لضمان أن هذه التجزئة الدالة بإرجاع فقط مؤشرات صالحة و 1385 01:04:51,080 --> 01:04:54,580 لمودولو ذلك حسب حجم الجدول. 1386 01:04:54,580 --> 01:04:57,360 إذا كنت مودولو مهما كانت هذه العائدات من ثلاثة، وكنت دائما ما تحصل 1387 01:04:57,360 --> 01:05:00,930 شيء بين صفر، واحد، واثنين. 1388 01:05:00,930 --> 01:05:05,160 وإذا كان هذا دوما بإرجاع سبعة، و كنت دائما مودولو ثلاثة، وكنت 1389 01:05:05,160 --> 01:05:06,030 دائما ما تحصل على نفس الشيء. 1390 01:05:06,030 --> 01:05:09,270 >> حتى انها لا تزال القطعية إذا كنت مودولو. 1391 01:05:09,270 --> 01:05:11,420 ولكن من شأنها أن تضمن أن ل لم تحصل على شيء - 1392 01:05:11,420 --> 01:05:12,940 صناعة غير صالحة. 1393 01:05:12,940 --> 01:05:16,840 عموما، يجب أن يحدث نمطية داخل دالة تجزئة الخاص بك. 1394 01:05:16,840 --> 01:05:18,240 لذلك كنت لا داعي للقلق حول هذا الموضوع. 1395 01:05:18,240 --> 01:05:20,555 يمكنك فقط ضمان هذا هو indice صالحة. 1396 01:05:20,555 --> 01:05:23,700 1397 01:05:23,700 --> 01:05:26,700 أي أسئلة حول هذا شرك المحتملة؟ 1398 01:05:26,700 --> 01:05:36,590 1399 01:05:36,590 --> 01:05:39,060 >> موافق. 1400 01:05:39,060 --> 01:05:40,290 وهناك نذهب. 1401 01:05:40,290 --> 01:05:42,890 شرك المحتملة المقبلة، و هذا هو واحد كبير. 1402 01:05:42,890 --> 01:05:46,880 ماذا لو مفتاحين الخريطة إلى نفس القيمة؟ 1403 01:05:46,880 --> 01:05:49,350 لذلك هناك طريقتان للتعامل مع هذا. 1404 01:05:49,350 --> 01:05:53,140 1405 01:05:53,140 --> 01:05:56,020 ويسمى أول واحد خطية التحقيق، الذي أنا 1406 01:05:56,020 --> 01:05:57,300 لن يذهب أكثر. 1407 01:05:57,300 --> 01:06:01,120 ولكن يجب أن تكون على دراية بكيفية الذي يعمل وما هو ذلك. 1408 01:06:01,120 --> 01:06:05,610 >> ثانية واحدة وانا ذاهب للذهاب أكثر لأن ذلك هو واحد أن العديد من 1409 01:06:05,610 --> 01:06:08,290 والناس سوف الارجح في نهاية المطاف اتخاذ قرار لاستخدامها في مجموعة مشكلتهم. 1410 01:06:08,290 --> 01:06:09,820 بطبيعة الحال، لم يكن لديك ل. 1411 01:06:09,820 --> 01:06:15,280 ولكن بالنسبة للمجموعة مشكلة، كثير من الناس تميل إلى اختيار لإنشاء جدول تجزئة 1412 01:06:15,280 --> 01:06:17,950 مع تسلسل منفصلة لتنفيذ قاموسهم. 1413 01:06:17,950 --> 01:06:21,390 لذلك نحن في طريقنا للذهاب أكثر ما يعنيه لإنشاء جدول تجزئة مع 1414 01:06:21,390 --> 01:06:23,890 تسلسل منفصلة. 1415 01:06:23,890 --> 01:06:26,260 >> لذلك أنا وضعت في اليقطين. 1416 01:06:26,260 --> 01:06:29,560 تقوم بإرجاع صفر. 1417 01:06:29,560 --> 01:06:31,410 وأضع هنا اليقطين. 1418 01:06:31,410 --> 01:06:35,880 1419 01:06:35,880 --> 01:06:37,930 ثم أضع في - 1420 01:06:37,930 --> 01:06:39,922 ما هو آخر شيء هالوين تحت عنوان؟ 1421 01:06:39,922 --> 01:06:42,200 >> الجمهور: كاندي. 1422 01:06:42,200 --> 01:06:42,770 >> JASON هيرشهورن: حلوى! 1423 01:06:42,770 --> 01:06:43,910 هذا هو واحد كبير. 1424 01:06:43,910 --> 01:06:47,760 أضع في الحلوى، والحلوى أيضا يعطيني صفر. 1425 01:06:47,760 --> 01:06:49,350 ماذا أفعل؟ 1426 01:06:49,350 --> 01:06:51,940 أي أفكار؟ 1427 01:06:51,940 --> 01:06:53,940 لأنك تعرف كل نوع من ما هو تسلسل منفصلة. 1428 01:06:53,940 --> 01:06:55,190 لذلك أي أفكار ماذا تفعل؟ 1429 01:06:55,190 --> 01:06:58,170 1430 01:06:58,170 --> 01:06:59,110 نعم. 1431 01:06:59,110 --> 01:07:03,810 >> الحضور: وضع السلسلة فعلا في جدول التجزئة. 1432 01:07:03,810 --> 01:07:08,910 >> JASON هيرشهورن: لذلك نحن ذاهبون ل رسم فكرة جيدة هنا. 1433 01:07:08,910 --> 01:07:09,340 موافق. 1434 01:07:09,340 --> 01:07:12,290 >> الجمهور: أن يكون لديه hashtable [غير مسموع] 1435 01:07:12,290 --> 01:07:16,640 المؤشر الذي يشير إلى بداية القائمة. 1436 01:07:16,640 --> 01:07:20,930 ومن ثم قد يكون اليقطين القيمة الأولى في تلك القائمة المرتبطة والحلوى تكون 1437 01:07:20,930 --> 01:07:22,800 القيمة الثانية في تلك القائمة المرتبطة. 1438 01:07:22,800 --> 01:07:23,420 >> JASON هيرشهورن: OK. 1439 01:07:23,420 --> 01:07:24,670 ماركوس، التي كانت معلقة. 1440 01:07:24,670 --> 01:07:26,160 انا ذاهب الى كسر ذلك. 1441 01:07:26,160 --> 01:07:28,890 يقول ماركوس لا الكتابة اليقطين. 1442 01:07:28,890 --> 01:07:30,660 من شأنها أن تكون سيئة. 1443 01:07:30,660 --> 01:07:33,640 لا تضع الحلوى في مكان آخر. 1444 01:07:33,640 --> 01:07:35,390 ونحن في طريقنا لوضعها سواء في صفر. 1445 01:07:35,390 --> 01:07:37,770 ولكن ونحن في طريقنا للتعامل مع وضعها في الصفر بحلول 1446 01:07:37,770 --> 01:07:39,395 إنشاء قائمة في صفر. 1447 01:07:39,395 --> 01:07:42,430 ونحن في طريقنا لإنشاء قائمة كل ما تعيينه إلى الصفر. 1448 01:07:42,430 --> 01:07:47,960 وأفضل وسيلة لخلق تعلمنا قائمة التي يمكن أن تنمو وتتقلص 1449 01:07:47,960 --> 01:07:49,840 هو حيوي ليس ضمن مجموعة أخرى. 1450 01:07:49,840 --> 01:07:51,510 حتى لا مجموعة متعددة الأبعاد. 1451 01:07:51,510 --> 01:07:54,080 ولكن لخلق مجرد قائمة مرتبطة. 1452 01:07:54,080 --> 01:07:55,330 >> وذلك ما اقترح - 1453 01:07:55,330 --> 01:07:57,950 1454 01:07:57,950 --> 01:07:59,200 انا ذاهب الى الحصول على الجديدة - 1455 01:07:59,200 --> 01:08:15,380 1456 01:08:15,380 --> 01:08:19,689 هو إنشاء صفيف مع مؤشرات، مجموعة من المؤشرات. 1457 01:08:19,689 --> 01:08:20,580 موافق. 1458 01:08:20,580 --> 01:08:24,180 أي فكرة أو التلميح ما نوع من هذه المؤشرات ينبغي أن يكون؟ 1459 01:08:24,180 --> 01:08:26,290 ماركوس؟ 1460 01:08:26,290 --> 01:08:27,250 >> الجمهور: مؤشرات ل- 1461 01:08:27,250 --> 01:08:28,609 >> JASON هيرشهورن: لأنك وقال قائمة مرتبطة، لذلك - 1462 01:08:28,609 --> 01:08:29,520 >> الجمهور: مؤشرات عقدة؟ 1463 01:08:29,520 --> 01:08:30,670 >> JASON هيرشهورن: مؤشرات عقدة. 1464 01:08:30,670 --> 01:08:32,830 إذا كانت الأمور في منطقتنا مرتبط القائمة هي العقد بعد ذلك 1465 01:08:32,830 --> 01:08:34,370 وينبغي أن تكون مؤشرات العقدة. 1466 01:08:34,370 --> 01:08:35,939 وماذا كانت تساوي في البداية؟ 1467 01:08:35,939 --> 01:08:36,990 >> الجمهور: خالية. 1468 01:08:36,990 --> 01:08:38,240 >> JASON هيرشهورن: خالية. 1469 01:08:38,240 --> 01:08:44,540 1470 01:08:44,540 --> 01:08:46,080 ولذلك لا يوجد لدينا شيء فارغ. 1471 01:08:46,080 --> 01:08:47,170 عوائد اليقطين الصفر. 1472 01:08:47,170 --> 01:08:48,569 ماذا نفعل؟ 1473 01:08:48,569 --> 01:08:49,609 المشي لي من خلال ذلك؟ 1474 01:08:49,609 --> 01:08:50,810 في الواقع، وقدم ماركوس بالفعل لي. 1475 01:08:50,810 --> 01:08:52,439 شخص آخر المشي لي من خلال ذلك. 1476 01:08:52,439 --> 01:08:54,760 ما نقوم به عندما كنا - 1477 01:08:54,760 --> 01:08:56,609 هذه تبدو مشابهة جدا ل ماذا كنا نفعل فقط. 1478 01:08:56,609 --> 01:08:57,396 افي. 1479 01:08:57,396 --> 01:08:59,090 >> الحضور: انا ذاهب الى اتخاذ تخمين. 1480 01:08:59,090 --> 01:09:01,250 لذلك عندما تحصل الحلوى. 1481 01:09:01,250 --> 01:09:01,640 >> JASON هيرشهورن: نعم. 1482 01:09:01,640 --> 01:09:03,120 حسنا، وصلنا اليقطين. 1483 01:09:03,120 --> 01:09:03,870 دعونا الحصول على أول واحد لدينا. 1484 01:09:03,870 --> 01:09:04,324 وصلنا اليقطين. 1485 01:09:04,324 --> 01:09:04,779 >> الحضور: OK. 1486 01:09:04,779 --> 01:09:05,880 عوائد اليقطين الصفر. 1487 01:09:05,880 --> 01:09:08,770 بحيث يمكنك وضعه في ذلك. 1488 01:09:08,770 --> 01:09:10,810 أو في الواقع، يمكنك وضعه في القائمة المرتبطة. 1489 01:09:10,810 --> 01:09:13,550 >> JASON هيرشهورن: كيف يمكننا وضعه في قائمة مرتبطة؟ 1490 01:09:13,550 --> 01:09:15,479 >> الحضور: أوه، بناء الجملة الفعلية؟ 1491 01:09:15,479 --> 01:09:16,240 >> JASON هيرشهورن: مجرد المشي - 1492 01:09:16,240 --> 01:09:16,740 أقول أكثر من ذلك. 1493 01:09:16,740 --> 01:09:19,310 ماذا نفعل؟ 1494 01:09:19,310 --> 01:09:22,100 >> الحضور: أنت فقط ضع أنها العقدة الأولى. 1495 01:09:22,100 --> 01:09:22,675 >> JASON هيرشهورن: OK. 1496 01:09:22,675 --> 01:09:29,069 لذلك نحن لدينا عقدة، اليقطين. 1497 01:09:29,069 --> 01:09:31,560 والآن كيف يمكنني إدراج ذلك؟ 1498 01:09:31,560 --> 01:09:34,590 1499 01:09:34,590 --> 01:09:37,090 >> الحضور: يمكنك تعيين إلى المؤشر. 1500 01:09:37,090 --> 01:09:37,970 >> JASON هيرشهورن: أي مؤشر؟ 1501 01:09:37,970 --> 01:09:39,620 >> الجمهور: المؤشر عند مستوى الصفر. 1502 01:09:39,620 --> 01:09:41,420 >> JASON هيرشهورن: فأين لا هذه النقطة؟ 1503 01:09:41,420 --> 01:09:42,810 >> الحضور: لاغية الآن. 1504 01:09:42,810 --> 01:09:43,529 >> JASON هيرشهورن: حسنا، انها لافتا إلى قيمة خالية. 1505 01:09:43,529 --> 01:09:44,499 ولكن أنا أضع في اليقطين. 1506 01:09:44,499 --> 01:09:46,053 فأين ينبغي أن نشير؟ 1507 01:09:46,053 --> 01:09:46,880 >> الحضور: لاليقطين. 1508 01:09:46,880 --> 01:09:47,399 >> JASON هيرشهورن: لاليقطين. 1509 01:09:47,399 --> 01:09:48,760 بالضبط. 1510 01:09:48,760 --> 01:09:50,010 ولذلك فإن هذا يشير إلى اليقطين. 1511 01:09:50,010 --> 01:09:52,500 1512 01:09:52,500 --> 01:09:54,250 وأين هذا المؤشر في نقطة اليقطين؟ 1513 01:09:54,250 --> 01:09:57,986 1514 01:09:57,986 --> 01:09:58,340 إلى 1515 01:09:58,340 --> 01:09:58,590 >> الجمهور: خالية. 1516 01:09:58,590 --> 01:09:59,210 >> JASON هيرشهورن: لاغية. 1517 01:09:59,210 --> 01:10:00,460 بالضبط. 1518 01:10:00,460 --> 01:10:03,570 1519 01:10:03,570 --> 01:10:05,140 لذلك نحن للتو بإدراجه شيء في القائمة المرتبطة. 1520 01:10:05,140 --> 01:10:07,210 كتبنا فقط هذا الرمز للقيام بذلك. 1521 01:10:07,210 --> 01:10:09,520 تقريبا ونحن تقريبا حصلت عليه تصدع تماما. 1522 01:10:09,520 --> 01:10:10,790 ونحن الآن إدراج الحلوى. 1523 01:10:10,790 --> 01:10:13,480 يذهب لدينا الحلوى أيضا إلى الصفر. 1524 01:10:13,480 --> 01:10:16,100 لذلك ماذا نفعل مع الحلوى؟ 1525 01:10:16,100 --> 01:10:18,790 >> الحضور: هذا يعتمد على ما إذا كان أو لا نحاول ترتيب هذا الامر. 1526 01:10:18,790 --> 01:10:19,640 >> JASON هيرشهورن: هذا صحيح تماما. 1527 01:10:19,640 --> 01:10:21,070 ذلك يعتمد على ما إذا كان أو لا نحاول ترتيب هذا الامر. 1528 01:10:21,070 --> 01:10:22,660 دعونا نفترض أننا لسنا الذهاب لترتيب هذا الامر. 1529 01:10:22,660 --> 01:10:24,880 >> الحضور: حسنا بعد ذلك، كما ناقشنا من قبل، هو أبسط هو فقط لوضعها 1530 01:10:24,880 --> 01:10:28,590 الحق في بداية ذلك المؤشر من نقطة الصفر إلى الحلوى. 1531 01:10:28,590 --> 01:10:29,020 >> JASON هيرشهورن: OK. 1532 01:10:29,020 --> 01:10:29,380 على عقد. 1533 01:10:29,380 --> 01:10:30,630 اسمحوا لي خلق الحلوى هنا. 1534 01:10:30,630 --> 01:10:34,030 1535 01:10:34,030 --> 01:10:35,150 لذلك هذا المؤشر - 1536 01:10:35,150 --> 01:10:37,590 >> الجمهور: نعم، ينبغي الآن مشيرا الى أن الحلوى. 1537 01:10:37,590 --> 01:10:40,580 ثم يكون المؤشر من نقطة الحلوى لاليقطين. 1538 01:10:40,580 --> 01:10:43,140 1539 01:10:43,140 --> 01:10:44,560 >> JASON هيرشهورن: أحب ذلك؟ 1540 01:10:44,560 --> 01:10:47,380 ويقول وصلنا أخرى شيء لتعيين الصفر؟ 1541 01:10:47,380 --> 01:10:48,660 >> الحضور: حسنا، أنت فقط تفعل الشيء نفسه؟ 1542 01:10:48,660 --> 01:10:50,290 >> JASON هيرشهورن: هل نفس الشيء. 1543 01:10:50,290 --> 01:10:53,700 حتى في هذه الحالة، إذا لم نفعل ذلك نريد أن نحافظ عليها فرزه 1544 01:10:53,700 --> 01:10:55,270 يبدو بسيطا نوعا ما. 1545 01:10:55,270 --> 01:10:59,920 نأخذ المؤشر في indice التي قدمها دالة البعثرة لدينا. 1546 01:10:59,920 --> 01:11:03,830 لدينا هذه النقطة لدينا عقدة جديدة. 1547 01:11:03,830 --> 01:11:07,830 ثم كل ما كان لافتا إليها سابقا - 1548 01:11:07,830 --> 01:11:10,620 في هذه الحالة لاغية، في اليقطين الحالة الثانية - 1549 01:11:10,620 --> 01:11:15,310 أنه مهما انها لافتا إلى سابقا، ونضيف إلى القادم من 1550 01:11:15,310 --> 01:11:17,810 عقدة جديدة لدينا. 1551 01:11:17,810 --> 01:11:19,650 نحن إدراج شيء في البداية. 1552 01:11:19,650 --> 01:11:22,900 في الواقع هذا هو أبسط بكثير من محاولة للحفاظ على قائمة تم فرزها. 1553 01:11:22,900 --> 01:11:25,340 ولكن مرة أخرى، سيكون البحث أكثر تعقيدا هنا. 1554 01:11:25,340 --> 01:11:28,300 سيكون لدينا دائما للذهاب حتى النهاية. 1555 01:11:28,300 --> 01:11:29,650 >> موافق. 1556 01:11:29,650 --> 01:11:32,750 أي أسئلة حول تسلسل منفصلة؟ 1557 01:11:32,750 --> 01:11:34,690 كيف يعمل؟ 1558 01:11:34,690 --> 01:11:35,820 من فضلك اطلب منهم الآن. 1559 01:11:35,820 --> 01:11:39,260 أريد حقا للتأكد من كل فهم هذا قبل أن يخرج. 1560 01:11:39,260 --> 01:11:48,410 1561 01:11:48,410 --> 01:11:52,060 >> الحضور: لماذا كنت وضعت اليقطين والحلوى في نفس 1562 01:11:52,060 --> 01:11:54,108 جزء من جدول التجزئة؟ 1563 01:11:54,108 --> 01:11:55,860 >> JASON هيرشهورن: سؤال جيد. 1564 01:11:55,860 --> 01:11:59,140 لماذا وضعنا لهم في نفس جزء من جدول التجزئة؟ 1565 01:11:59,140 --> 01:12:03,200 حسنا، في هذه الحالة دالة البعثرة لدينا بإرجاع صفر لكلا منهم. 1566 01:12:03,200 --> 01:12:05,310 لذلك هم بحاجة للذهاب في indice الصفر لأن هذا هو المكان الذي نحن ذاهبون ل 1567 01:12:05,310 --> 01:12:07,420 تبدو بالنسبة لهم إذا كان لنا أي وقت مضى تريد البحث عنها. 1568 01:12:07,420 --> 01:12:11,750 مرة أخرى، مع اتباع نهج خطي التحقيق ونحن لن نضع لهم على حد سواء عند مستوى الصفر. 1569 01:12:11,750 --> 01:12:13,900 ولكن في نهج منفصلة السلسلة، ونحن في طريقنا لوضعها سواء في صفر 1570 01:12:13,900 --> 01:12:16,620 ثم قم بإنشاء قائمة الخروج من نقطة الصفر. 1571 01:12:16,620 --> 01:12:20,140 >> ونحن لا نريد أن الكتابة اليقطين ببساطة لأنه بسبب ذلك سنقوم 1572 01:12:20,140 --> 01:12:21,860 نفترض أن اليقطين كان لم المدرجة. 1573 01:12:21,860 --> 01:12:25,230 إذا كان لنا أن تبقي فقط شيء واحد في الموقع الذي سيكون سيئا. 1574 01:12:25,230 --> 01:12:28,590 ثم لن يكون هناك أي فرصة منا من أي وقت مضى - 1575 01:12:28,590 --> 01:12:31,660 إذا كان لدينا أي وقت مضى مكررة، ثم نحن لن يمحو فقط القيمة الأولية لدينا. 1576 01:12:31,660 --> 01:12:34,090 ولهذا السبب نقوم به هذا النهج. 1577 01:12:34,090 --> 01:12:36,580 أو هذا هو السبب في أننا اخترنا - ولكن مرة أخرى، ونحن اختار نهج تسلسل منفصلة، 1578 01:12:36,580 --> 01:12:39,670 التي توجد عدة طرق أخرى يمكن للمرء أن يختار. 1579 01:12:39,670 --> 01:12:41,185 لا أن أجيب على سؤالك؟ 1580 01:12:41,185 --> 01:12:41,660 >> موافق. 1581 01:12:41,660 --> 01:12:42,910 كارلوس. 1582 01:12:42,910 --> 01:12:46,130 1583 01:12:46,130 --> 01:12:47,720 أن الخطية التحقيق تنطوي - 1584 01:12:47,720 --> 01:12:51,913 إذا وجدنا حادث تصادم عند مستوى الصفر، ونحن ستبحث في بقعة المقبل لمعرفة ما إذا 1585 01:12:51,913 --> 01:12:54,310 كان مفتوحا ووضعها هناك. 1586 01:12:54,310 --> 01:12:57,320 ثم ننظر في هذه الرياضة القادمة و معرفة ما إذا كان الذي كان مفتوحا ووضعها هناك. 1587 01:12:57,320 --> 01:12:59,780 لذلك نجد المتاحة المقبل بقعة مفتوحة وضعت تلك القبل هناك. 1588 01:12:59,780 --> 01:13:02,580 1589 01:13:02,580 --> 01:13:03,890 أي أسئلة أخرى؟ 1590 01:13:03,890 --> 01:13:05,370 نعم، آفي. 1591 01:13:05,370 --> 01:13:07,490 >> الحضور: وكمتابعة لذلك، ماذا تقصد بقعة في المرة القادمة؟ 1592 01:13:07,490 --> 01:13:10,250 في جدول تجزئة أو في قائمة مرتبطة. 1593 01:13:10,250 --> 01:13:12,100 >> JASON هيرشهورن: لخطي البرمجة، لا القوائم المرتبطة. 1594 01:13:12,100 --> 01:13:13,400 بقعة المقبل على جدول تجزئة. 1595 01:13:13,400 --> 01:13:13,820 >> الحضور: OK. 1596 01:13:13,820 --> 01:13:17,570 وبالتالي فإن جدول التجزئة سيكون تهيئة إلى حجم - 1597 01:13:17,570 --> 01:13:19,560 مثل عدد من السلاسل التي تم إدخالها؟ 1598 01:13:19,560 --> 01:13:22,170 >> JASON هيرشهورن: أنت سوف تريد أن تكون كبيرة حقا. 1599 01:13:22,170 --> 01:13:23,910 نعم. 1600 01:13:23,910 --> 01:13:27,900 هنا هو صورة لما نحن مجرد وجه على متن الطائرة. 1601 01:13:27,900 --> 01:13:29,470 مرة أخرى، لدينا الحق الاصطدام هنا. 1602 01:13:29,470 --> 01:13:30,710 في 152. 1603 01:13:30,710 --> 01:13:33,570 وسترى خلقنا قائمة مرتبطة الخروج من ذلك. 1604 01:13:33,570 --> 01:13:38,200 1605 01:13:38,200 --> 01:13:41,850 مرة أخرى، جدول التجزئة تسلسل منفصلة النهج ليس واحد كنت 1606 01:13:41,850 --> 01:13:45,590 يجب أن تأخذ لمشاكل تعيين ستة ولكن واحد هو أن الكثير من 1607 01:13:45,590 --> 01:13:47,100 الطلاب تميل إلى أن تأخذ. 1608 01:13:47,100 --> 01:13:51,140 لذلك على تلك المذكرة، دعونا نتحدث لفترة وجيزة قبل أن يخرج عن ستة المشكلة، 1609 01:13:51,140 --> 01:13:52,160 وبعد ذلك سوف حصة قصة معك. 1610 01:13:52,160 --> 01:13:55,120 لدينا ثلاث دقائق. 1611 01:13:55,120 --> 01:13:55,750 >> تعيين ستة المشكلة. 1612 01:13:55,750 --> 01:13:57,790 لديك أربع وظائف - 1613 01:13:57,790 --> 01:14:02,430 الحمل، والتحقق، والحجم، وتفريغ. 1614 01:14:02,430 --> 01:14:03,380 تحميل - 1615 01:14:03,380 --> 01:14:07,120 كذلك، لقد تم الذهاب خلال الحمل فقط الآن. 1616 01:14:07,120 --> 01:14:09,330 تعادلنا الحمل على متنها. 1617 01:14:09,330 --> 01:14:13,230 وحتى بدأنا الترميز الكثير من إدراج في قائمة مرتبطة. 1618 01:14:13,230 --> 01:14:18,020 ذلك الحمل ليست أكثر بكثير من ما كنا للتو به. 1619 01:14:18,020 --> 01:14:21,070 >> الاختيار هو مرة واحدة لديك شيء تحميلها. 1620 01:14:21,070 --> 01:14:22,580 انها نفس العملية لأن هذا. 1621 01:14:22,580 --> 01:14:26,845 نفس أول جزأين حيث يمكنك رمي شيء في وظيفة تجزئة 1622 01:14:26,845 --> 01:14:29,190 والحصول على قيمتها. 1623 01:14:29,190 --> 01:14:30,700 ولكن الآن نحن لا إدراجه. 1624 01:14:30,700 --> 01:14:33,350 الآن نحن نبحث عن ذلك. 1625 01:14:33,350 --> 01:14:37,130 لقد نموذج التعليمات البرمجية المكتوبة من أجل إيجاد شيء ما في قائمة مرتبطة. 1626 01:14:37,130 --> 01:14:38,250 أنا أشجعكم على ممارسة ذلك. 1627 01:14:38,250 --> 01:14:43,000 ولكن حدسي العثور على شيء و مشابهة جدا لادخال شيء. 1628 01:14:43,000 --> 01:14:46,540 في الواقع، نحن رسم صورة إيجاد شيء ما في قائمة مرتبطة، والانتقال 1629 01:14:46,540 --> 01:14:48,910 من خلال حتى وصلت الى نهاية المطاف. 1630 01:14:48,910 --> 01:14:52,430 وإذا كنت وصلت إلى نهاية لا يمكن و العثور عليه، ثم انها ليست هناك. 1631 01:14:52,430 --> 01:14:55,400 ولهذا الاختيار، أساسا. 1632 01:14:55,400 --> 01:14:57,030 >> التالي هو الحجم. 1633 01:14:57,030 --> 01:14:57,910 دعونا تخطي الحجم. 1634 01:14:57,910 --> 01:15:00,040 أخيرا قمت تفريغ. 1635 01:15:00,040 --> 01:15:02,890 تفريغ هي واحدة أننا لم يوجه على متن الطائرة أو مشفرة حتى الآن. 1636 01:15:02,890 --> 01:15:05,990 ولكن أنا أشجعكم على محاولة ذلك الترميز في عينة لدينا قائمة مرتبطة سبيل المثال. 1637 01:15:05,990 --> 01:15:11,440 ولكن تفريغ حدسي يشبه مجانا - 1638 01:15:11,440 --> 01:15:14,010 أو أعنيه هو مماثل للتحقق. 1639 01:15:14,010 --> 01:15:17,350 باستثناء الآن في كل مرة وأنت تسير من خلال، وكنت لا مجرد فحص ل 1640 01:15:17,350 --> 01:15:19,090 معرفة ما إذا كان لديك القيمة الخاصة بك هناك. 1641 01:15:19,090 --> 01:15:22,490 ولكن كنت تتناولين تلك العقدة و تخليصه، أساسا. 1642 01:15:22,490 --> 01:15:23,610 هذا ما يطلب منك تفريغ للقيام به. 1643 01:15:23,610 --> 01:15:24,670 كل شيء مجانا كنت قد malloced. 1644 01:15:24,670 --> 01:15:27,480 حتى وأنت تسير من خلال اللائحة بأكملها مرة أخرى، والذهاب من خلال تجزئة كله 1645 01:15:27,480 --> 01:15:27,760 الجدول مرة أخرى. 1646 01:15:27,760 --> 01:15:29,240 هذه المرة لا تحقق لمعرفة ما هو هناك. 1647 01:15:29,240 --> 01:15:31,080 مجرد تحرير ما هناك. 1648 01:15:31,080 --> 01:15:33,260 >> وأخيرا الحجم. 1649 01:15:33,260 --> 01:15:34,350 ينبغي أن تنفذ الحجم. 1650 01:15:34,350 --> 01:15:35,590 إذا كنت لا تنفذ حجم - 1651 01:15:35,590 --> 01:15:36,250 سأقولها من هذا القبيل. 1652 01:15:36,250 --> 01:15:39,740 إذا كنت لا تنفذ في حجم بالضبط سطر واحد من التعليمات البرمجية بما في ذلك 1653 01:15:39,740 --> 01:15:43,760 العودة البيان، كنت القيام الحجم بشكل غير صحيح. 1654 01:15:43,760 --> 01:15:47,170 لذلك تأكد من حجم، لتصميم كامل نقطة، كنت أفعل ذلك في واحد بالضبط 1655 01:15:47,170 --> 01:15:49,970 سطر من التعليمات البرمجية، بما في ذلك البيان العودة. 1656 01:15:49,970 --> 01:15:52,450 >> وليس حزمة تصل بعد، Akchar. 1657 01:15:52,450 --> 01:15:53,700 القندس حريصة. 1658 01:15:53,700 --> 01:15:55,820 1659 01:15:55,820 --> 01:16:01,300 أردت أن أقول شكرا يا رفاق على الحضور إلى القسم. 1660 01:16:01,300 --> 01:16:02,550 لها هالوين سعيد. 1661 01:16:02,550 --> 01:16:05,300 1662 01:16:05,300 --> 01:16:05,960 هذا هو زي بلدي. 1663 01:16:05,960 --> 01:16:08,850 سأكون ارتداء هذا يوم الخميس إذا أراك في ساعات العمل. 1664 01:16:08,850 --> 01:16:14,640 وإذا كنت غريبة عن بعض أكثر الخلفية لهذا الزي، ويشعر 1665 01:16:14,640 --> 01:16:19,135 الحرة للتحقق من القسم 2011 لقصة لماذا أنا 1666 01:16:19,135 --> 01:16:20,900 يرتدي زي القرع. 1667 01:16:20,900 --> 01:16:23,680 وأنه هو قصة حزينة. 1668 01:16:23,680 --> 01:16:27,050 لذا تأكد من لديك بعض الأنسجة المجاورة. 1669 01:16:27,050 --> 01:16:28,680 ولكن على ذلك، إذا كان لديك أي الأسئلة سوف حول عصا 1670 01:16:28,680 --> 01:16:29,960 بعد خارج القسم. 1671 01:16:29,960 --> 01:16:31,510 حظا سعيدا على مشكلة تعيين ستة. 1672 01:16:31,510 --> 01:16:33,540 وكما هو الحال دائما، إذا كان لديك أي الأسئلة، واسمحوا لي أن أعرف. 1673 01:16:33,540 --> 01:16:35,584