1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:05,120 [MUSIC پخش] 3 00:00:05,120 --> 00:00:12,026 4 00:00:12,026 --> 00:00:12,900 SPEAKER 1: خوب. 5 00:00:12,900 --> 00:00:14,600 هر کس به بخش خوش آمدید. 6 00:00:14,600 --> 00:00:18,660 من امیدوارم که همه شما با موفقیت هستند بهبود از شما امتحان 7 00:00:18,660 --> 00:00:19,510 از هفته گذشته است. 8 00:00:19,510 --> 00:00:22,564 من می دانم که آن را کمی دیوانه در زمان. 9 00:00:22,564 --> 00:00:25,230 همانطور که من می گفت قبل، اگر شما در انحراف استاندارد، 10 00:00:25,230 --> 00:00:28,188 واقعا در مورد آن نگران نباشید، به خصوص برای یک بخش کمتر راحت است. 11 00:00:28,188 --> 00:00:30,230 که در مورد که در آن شما باید است. 12 00:00:30,230 --> 00:00:32,850 >> اگر شما بزرگ، پس از آن عالی بود. 13 00:00:32,850 --> 00:00:33,650 تجلیل به شما. 14 00:00:33,650 --> 00:00:36,149 و اگر شما احساس می کنید نیاز کمی کمک بیشتر، لطفا 15 00:00:36,149 --> 00:00:38,140 احساس رایگان برای رسیدن به به هر یک از TFS. 16 00:00:38,140 --> 00:00:40,030 ما همه در اینجا برای کمک به. 17 00:00:40,030 --> 00:00:40,960 >> به همین دلیل ما آموزش می دهند. 18 00:00:40,960 --> 00:00:44,550 به همین دلیل من در اینجا هستم هر دوشنبه برای شما بچه ها و در دفتر ساعت در پنج شنبه ها. 19 00:00:44,550 --> 00:00:48,130 پس لطفا احساس رایگان به من اطلاع دهید اگر شما در مورد هر چیزی نگران 20 00:00:48,130 --> 00:00:52,450 یا اگر هر چیزی در مسابقه وجود دارد که شما واقعا می خواهم به آدرس. 21 00:00:52,450 --> 00:00:56,940 >> بنابراین دستور کار امروز همه چیز در مورد ساختمان داده. 22 00:00:56,940 --> 00:01:01,520 بعضی از این فقط رفتن به فقط برای دریافت شما با این آشنا. 23 00:01:01,520 --> 00:01:04,870 ممکن است شما تا به حال اجرا آنها در این کلاس. 24 00:01:04,870 --> 00:01:08,690 برخی از آنها به شما خواهد شد، مانند برای pset کتاب املاء خود را. 25 00:01:08,690 --> 00:01:11,380 >> شما انتخاب خود را داشته باشند بین جداول هش و تلاش می کند. 26 00:01:11,380 --> 00:01:13,680 بنابراین ما قطعا رفتن بیش از آن. 27 00:01:13,680 --> 00:01:18,690 این رفتن به قطعا بیشتر از نوع از بخش سطح بالا امروز، هر چند، 28 00:01:18,690 --> 00:01:22,630 زیرا بسیاری از آنها وجود دارد، و اگر ما به جزییات پیاده سازی کرد 29 00:01:22,630 --> 00:01:26,490 در تمام این، ما نه حتی از طریق لیست های پیوندی دریافت 30 00:01:26,490 --> 00:01:28,520 و شاید کمی از جداول هش. 31 00:01:28,520 --> 00:01:31,200 >> پس با من داشته باشد. 32 00:01:31,200 --> 00:01:33,530 ما در حال رفتن به انجام می شود به اندازه برنامه نویسی این زمان. 33 00:01:33,530 --> 00:01:36,870 اگر شما هر گونه سوال در مورد آن را دارند و یا می خواهید برای دیدن آن اجرا 34 00:01:36,870 --> 00:01:39,260 و یا آن را امتحان کنید برای خودتان، من قطعا توصیه 35 00:01:39,260 --> 00:01:44,250 رفتن به study.cs50.net، که دارای نمونه هایی از همه از این. 36 00:01:44,250 --> 00:01:46,400 این ارائه های من باید با یادداشت هایی که ما 37 00:01:46,400 --> 00:01:50,860 تمایل به استفاده از و همچنین برخی از برنامه نویسی ورزش، به ویژه برای چیز 38 00:01:50,860 --> 00:01:55,250 مثل لیست های پیوندی و باینری پشته ها و نشانه های درختان. 39 00:01:55,250 --> 00:01:59,590 کمی سطح بالا تر، که ممکن است خوب برای شما بچه ها. 40 00:01:59,590 --> 00:02:01,320 >> بنابراین با توجه به، ما آغاز شده است. 41 00:02:01,320 --> 00:02:03,060 و همچنین، آزمونها yes--. 42 00:02:03,060 --> 00:02:06,550 من فکر می کنم بیشتر از شما که در هستند بخش من آزمونها خود را، 43 00:02:06,550 --> 00:02:12,060 اما هر کسی می آید و یا در برخی از دلایل شما نمی کنند، آنها حق در اینجا در مقابل هستید. 44 00:02:12,060 --> 00:02:12,740 >> بنابراین لیست مرتبط است. 45 00:02:12,740 --> 00:02:15,650 من می دانم که این نوع می رود قبل از مسابقه خود را به عقب. 46 00:02:15,650 --> 00:02:17,940 که هفته قبل بود که ما در مورد این آموخته است. 47 00:02:17,940 --> 00:02:21,040 اما در این مورد، ما فقط رفتن کمی بیشتر در عمق. 48 00:02:21,040 --> 00:02:25,900 >> پس چرا ما را انتخاب کنید ممکن است لیست پیوندی بیش از یک آرایه؟ 49 00:02:25,900 --> 00:02:27,130 چه آنها را متمایز می کند؟ 50 00:02:27,130 --> 00:02:27,630 بله؟ 51 00:02:27,630 --> 00:02:30,464 >> رسید شما می توانید گسترش مرتبط لیست مقابل اندازه ثابت یک آرایه است. 52 00:02:30,464 --> 00:02:31,171 SPEAKER 1: درست است. 53 00:02:31,171 --> 00:02:33,970 آرایه اندازه در حالی که ثابت شده است لیست پیوندی یک اندازه متغیر. 54 00:02:33,970 --> 00:02:36,970 بنابراین اگر ما نمی دانیم که چگونه بسیار ما می خواهیم برای ذخیره، 55 00:02:36,970 --> 00:02:39,880 یک لیست پیوندی به ما می دهد بزرگ راه برای انجام این کار از آنجا که ما فقط می توانیم 56 00:02:39,880 --> 00:02:43,730 اضافه کردن گره دیگر و اضافه کردن در گره دیگر و اضافه کردن در گره دیگر. 57 00:02:43,730 --> 00:02:45,750 اما آنچه ممکن است یک تجارت کردن؟ 58 00:02:45,750 --> 00:02:49,521 آیا کسی به یاد داشته باشید تجارت کردن بین آرایه ها و لیست های پیوندی؟ 59 00:02:49,521 --> 00:02:50,020 Mmhmm؟ 60 00:02:50,020 --> 00:02:51,460 >> رسید شما را به رفتن را از طریق تمام راه 61 00:02:51,460 --> 00:02:53,738 از طریق لیست پیوندی پیدا کردن یک عنصر در یک لیست. 62 00:02:53,738 --> 00:02:55,570 در یک آرایه، شما می توانید فقط یک عنصر را پیدا کنید. 63 00:02:55,570 --> 00:02:56,278 >> SPEAKER 1: درست است. 64 00:02:56,278 --> 00:02:57,120 بنابراین با arrays-- 65 00:02:57,120 --> 00:02:58,500 >> رسید [نامفهوم]. 66 00:02:58,500 --> 00:03:01,090 >> SPEAKER 1: با آرایه ها، ما آنچه دسترسی تصادفی نامیده می شود. 67 00:03:01,090 --> 00:03:04,820 بدان معنی است که اگر ما می خواهیم چه چیزی است همیشه نقطه پنجم فهرست 68 00:03:04,820 --> 00:03:07,230 و یا نقطه پنجم ما آرایه، ما فقط می توانید آن را گرفتن. 69 00:03:07,230 --> 00:03:10,440 اگر آن را به یک لیست پیوندی است، ما باید به تکرار از طریق، درست است؟ 70 00:03:10,440 --> 00:03:14,020 بنابراین دسترسی به یک عنصر در یک آرایه ثابت است، 71 00:03:14,020 --> 00:03:19,530 در حالی که با یک لیست پیوندی آن را به احتمال زیاد زمان خطی چرا که شاید 72 00:03:19,530 --> 00:03:21,370 عنصر ما تمام راه را در پایان است. 73 00:03:21,370 --> 00:03:23,446 ما باید همه چیز را از طریق جستجو. 74 00:03:23,446 --> 00:03:25,320 بنابراین با تمام این داده ها ساختارهای ما در حال رفتن 75 00:03:25,320 --> 00:03:29,330 به صرف کمی زمان بیشتری را در، علامت + و منفی چه هستند. 76 00:03:29,330 --> 00:03:31,480 هنگامی که ممکن است ما به خواهید استفاده از یکی را بر دیگری؟ 77 00:03:31,480 --> 00:03:34,970 و این نوع از است چیزی بزرگتر را به دور. 78 00:03:34,970 --> 00:03:40,140 >> بنابراین ما باید در اینجا تعریف یک گره. 79 00:03:40,140 --> 00:03:43,040 آن را مانند یک عنصر در است لیست پیوندی ما، درست است؟ 80 00:03:43,040 --> 00:03:46,180 بنابراین ما همه آشنا با ساختمانها typedef ما، 81 00:03:46,180 --> 00:03:47,980 که ما بیش از در بررسی زمان آخرین رفت. 82 00:03:47,980 --> 00:03:53,180 اساسا فقط ایجاد یکی دیگر از نوع داده که ما می تواند استفاده کنید. 83 00:03:53,180 --> 00:03:57,930 >> و در این مورد، برخی از گره که یک عدد صحیح در خود نگه دارد. 84 00:03:57,930 --> 00:04:00,210 و پس از آن چه بخش دوم در اینجا؟ 85 00:04:00,210 --> 00:04:03,192 86 00:04:03,192 --> 00:04:05,677 هر کسی؟ 87 00:04:05,677 --> 00:04:06,680 >> رسید [نامفهوم]. 88 00:04:06,680 --> 00:04:07,020 >> SPEAKER 1: آره. 89 00:04:07,020 --> 00:04:08,400 این یک اشاره گر به گره بعدی است. 90 00:04:08,400 --> 00:04:12,610 پس این در واقع باید اینجا باشد. 91 00:04:12,610 --> 00:04:18,790 این یک اشاره گر از نوع است گره به چیزی که بعد از. 92 00:04:18,790 --> 00:04:22,410 و این چیزی است که آنها شامل گره های ما. 93 00:04:22,410 --> 00:04:24,060 سرد. 94 00:04:24,060 --> 00:04:29,390 >> همه حق است، بنابراین با جستجو، به عنوان ما فقط گفت: قبل از دست، اگر شما 95 00:04:29,390 --> 00:04:31,840 رفتن به جستجو از طریق، شما باید در واقع تکرار 96 00:04:31,840 --> 00:04:33,660 از طریق لیست پیوندی شما. 97 00:04:33,660 --> 00:04:38,530 بنابراین اگر ما به دنبال تعداد 9، ما را در سر ما شروع 98 00:04:38,530 --> 00:04:41,520 و ما اشاره در آغاز از لیست پیوندی ما، درست است؟ 99 00:04:41,520 --> 00:04:44,600 و ما می گوییم، خوب، این به آن گره، شامل تعداد 9؟ 100 00:04:44,600 --> 00:04:45,690 هیچ؟ 101 00:04:45,690 --> 00:04:47,500 >> همه حق است، به آنها توجه کنیم. 102 00:04:47,500 --> 00:04:48,312 آن را دنبال کنید. 103 00:04:48,312 --> 00:04:49,520 آیا این شامل تعداد 9؟ 104 00:04:49,520 --> 00:04:50,570 شماره 105 00:04:50,570 --> 00:04:51,550 دنبال یک بعدی. 106 00:04:51,550 --> 00:04:55,490 >> بنابراین ما باید به واقع تکرار از طریق لیست پیوندی ما. 107 00:04:55,490 --> 00:05:00,070 ما نمی توانیم فقط به طور مستقیم به که در آن 9 است. 108 00:05:00,070 --> 00:05:05,860 و اگر شما بچه ها در واقع می خواهند به برخی از شبه کد نام وجود داشته است. 109 00:05:05,860 --> 00:05:10,420 ما برخی از تابع جستجو در اینجا که طول می کشد in-- چه در می برد؟ 110 00:05:10,420 --> 00:05:13,110 111 00:05:13,110 --> 00:05:14,320 شما چه فکر میکنید؟ 112 00:05:14,320 --> 00:05:15,960 یکی بسیار آسان است. 113 00:05:15,960 --> 00:05:17,784 این چیست؟ 114 00:05:17,784 --> 00:05:18,700 رسید [نامفهوم]. 115 00:05:18,700 --> 00:05:20,366 SPEAKER 1: تعداد ما به دنبال. 116 00:05:20,366 --> 00:05:20,980 درست است؟ 117 00:05:20,980 --> 00:05:22,875 و آنچه را که از این به مطابقت دارد؟ 118 00:05:22,875 --> 00:05:25,020 این یک اشاره گر به چیست؟ 119 00:05:25,020 --> 00:05:26,000 >> رسید گره. 120 00:05:26,000 --> 00:05:28,980 >> SPEAKER 1: گره به لیست که ما به دنبال در، درست است؟ 121 00:05:28,980 --> 00:05:33,700 بنابراین ما باید بعضی از گره در اینجا اشاره گر می باشد. 122 00:05:33,700 --> 00:05:37,240 این یک نقطه است که رفتن به است در واقع از طریق لیست ما تکرار. 123 00:05:37,240 --> 00:05:39,630 ما آن را برابر با لیست مجموعه چرا که فقط 124 00:05:39,630 --> 00:05:44,380 تنظیم آن را به مساوی شروع از لیست پیوندی ما. 125 00:05:44,380 --> 00:05:50,660 >> و در حالی که آن را NULL نیست، در حالی که ما هنوز هم چیزهایی در لیست ما، 126 00:05:50,660 --> 00:05:55,580 چک کنید اگر که گره تعداد ما به دنبال. 127 00:05:55,580 --> 00:05:57,740 بازگشت درست است. 128 00:05:57,740 --> 00:06:01,070 در غیر این صورت، آن را بروز رسانی، درست است؟ 129 00:06:01,070 --> 00:06:04,870 >> اگر آن را NULL است، ما خروج ما در حالی که حلقه و بازگشت کاذب 130 00:06:04,870 --> 00:06:08,340 چرا که به این معنی است که ما آن را پیدا نمی کند. 131 00:06:08,340 --> 00:06:11,048 آیا هر کس که چگونه کار می کند؟ 132 00:06:11,048 --> 00:06:11,548 OK. 133 00:06:11,548 --> 00:06:14,940 134 00:06:14,940 --> 00:06:20,260 >> بنابراین با درج، شما سه راه مختلف. 135 00:06:20,260 --> 00:06:25,250 شما می توانید prepend، شما می توانید اضافه و شما می توانید وارد به همه فن حریف. 136 00:06:25,250 --> 00:06:28,215 در این مورد، ما رفتن به انجام prepend. 137 00:06:28,215 --> 00:06:33,380 آیا کسی می داند که چگونه کسانی که سه مورد ممکن است متفاوت باشد؟ 138 00:06:33,380 --> 00:06:36,920 >> بنابراین prepend بدان معنی است که شما را آن را در مقابل لیست شما. 139 00:06:36,920 --> 00:06:39,770 به طوری که بدان معنی است که بدون توجه به چه گره خود را، بدون توجه به است 140 00:06:39,770 --> 00:06:43,160 آنچه ارزش است، شما در حال رفتن آن را به حق در اینجا در مقابل، OK؟ 141 00:06:43,160 --> 00:06:45,160 این رفتن به اولین عنصر در لیست شما. 142 00:06:45,160 --> 00:06:49,510 >> اگر شما آن را اضافه، آن را برای رفتن به پشت لیست شما. 143 00:06:49,510 --> 00:06:54,010 و وارد کردن به معنی است که شما همه فن حریف برای قرار دادن در واقع به جای 144 00:06:54,010 --> 00:06:57,700 که در آن نگه می دارد لیست پیوندی شما طبقه بندی شده اند. 145 00:06:57,700 --> 00:07:00,810 باز هم، نحوه استفاده از و هنگامی که شما آن استفاده 146 00:07:00,810 --> 00:07:02,530 آنها بسته به مورد شما متفاوت خواهد بود. 147 00:07:02,530 --> 00:07:05,834 148 00:07:05,834 --> 00:07:07,750 اگر آن را به نیاز ندارد مرتب، prepend تمایل دارد 149 00:07:07,750 --> 00:07:10,460 به آنچه اکثر مردم استفاده از خاطر شما نیست 150 00:07:10,460 --> 00:07:15,680 باید از طریق لیست کامل بروید برای پیدا کردن پایان به آن اضافه کنید در، درست است؟ 151 00:07:15,680 --> 00:07:17,720 شما فقط می توانید آن را در سمت راست می چسبد. 152 00:07:17,720 --> 00:07:21,930 >> بنابراین ما را از طریق رفتن درج 1 در حال حاضر. 153 00:07:21,930 --> 00:07:26,360 بنابراین آن چیزی است که من قصد دارم به در این pset به شدت توصیه 154 00:07:26,360 --> 00:07:29,820 به منظور جلب همه چیز را، مثل همیشه. 155 00:07:29,820 --> 00:07:35,130 این بسیار مهم است که شما به روز رسانی اشاره گر خود را در جهت درست 156 00:07:35,130 --> 00:07:38,620 چرا که اگر شما آنها را به روز رسانی کمی خارج از دستور، 157 00:07:38,620 --> 00:07:42,210 شما در حال رفتن برای پایان دادن به از دست دادن بخش هایی از لیست شما. 158 00:07:42,210 --> 00:07:49,680 >> بنابراین برای مثال، در این مورد، ما هستیم گفتن تا 1، سر به نقطه فقط. 159 00:07:49,680 --> 00:07:56,070 اگر ما فقط انجام این کار بدون صرفه جویی در این 1، 160 00:07:56,070 --> 00:07:58,570 ما هیچ ایده چه 1 در حال حاضر باید به آن اشاره 161 00:07:58,570 --> 00:08:02,490 از آنجا که ما از دست داده ایم چه سر با اشاره به. 162 00:08:02,490 --> 00:08:05,530 بنابراین یک چیز به خاطر داشته باشید هنگامی که شما در حال انجام یک prepend 163 00:08:05,530 --> 00:08:09,630 برای نجات چه نقاط سر به اولین، 164 00:08:09,630 --> 00:08:15,210 سپس آن را جابهجا، و پس از آن به روز رسانی چه گره جدید خود را باید به نقطه. 165 00:08:15,210 --> 00:08:20,870 166 00:08:20,870 --> 00:08:22,560 در این مورد، این یک راه برای انجام آن است. 167 00:08:22,560 --> 00:08:25,440 >> بنابراین اگر ما آن را در این راه انجام داده بود که در آن ما فقط منصوب به سر، 168 00:08:25,440 --> 00:08:30,320 ما اساسا خود را از دست لیست کامل، درست است؟ 169 00:08:30,320 --> 00:08:38,000 یک راه برای انجام آن است به 1 نقطه به نقطه بعد، و پس از آن نقطه سر به 1. 170 00:08:38,000 --> 00:08:42,650 یا شما می توانید نوع دوست ذخیره سازی موقت، که من در مورد صحبت کردیم. 171 00:08:42,650 --> 00:08:45,670 >> اما مجدد شما اشاره گر را در جهت درست 172 00:08:45,670 --> 00:08:48,750 در حال رفتن به بسیار، بسیار برای این pset مهم است. 173 00:08:48,750 --> 00:08:53,140 در غیر این صورت، شما در حال رفتن به یک رشته هش جدول و یا سعی کنید که فقط رفتن به 174 00:08:53,140 --> 00:08:56,014 تنها بخشی از کلمات که شما می خواهید و سپس mmhmm you're--؟ 175 00:08:56,014 --> 00:08:58,930 رسید چه موقت بود چیزی که ذخیره سازی شما صحبت کردن در مورد؟ 176 00:08:58,930 --> 00:09:00,305 SPEAKER 1: ذخیره سازی موقت. 177 00:09:00,305 --> 00:09:02,760 بنابراین اساسا دیگر راه شما می توانید این کار را انجام 178 00:09:02,760 --> 00:09:07,650 ذخیره شده است سر از چیزی مثل متغیر موقت ذخیره آن. 179 00:09:07,650 --> 00:09:11,250 انتساب آن را به 1 و پس از آن به روز رسانی 1 به نقطه 180 00:09:11,250 --> 00:09:13,830 به هر سر استفاده می شود به نقطه را به. 181 00:09:13,830 --> 00:09:16,920 به این ترتیب واضح است زیبا تر به خاطر شما 182 00:09:16,920 --> 00:09:20,770 یک مقدار به طور موقت لازم نیست، اما فقط ارائه راه دیگری برای آن انجام دهد. 183 00:09:20,770 --> 00:09:23,999 184 00:09:23,999 --> 00:09:25,790 و ما در واقع انجام برخی از کد برای این. 185 00:09:25,790 --> 00:09:28,080 بنابراین برای لیست پیوندی، ما در واقع برخی از کد داشته باشد. 186 00:09:28,080 --> 00:09:31,930 بنابراین در اینجا وارد است، این است prepending. 187 00:09:31,930 --> 00:09:34,290 پس این را وارد در سر. 188 00:09:34,290 --> 00:09:38,820 >> بنابراین اولین چیزی که، شما به نیاز ایجاد گره جدید خود را، البته، 189 00:09:38,820 --> 00:09:40,790 و بررسی برای NULL. 190 00:09:40,790 --> 00:09:43,250 همیشه خوب است. 191 00:09:43,250 --> 00:09:47,840 و سپس شما نیاز به اختصاص ارزش. 192 00:09:47,840 --> 00:09:51,260 هر زمان که شما ایجاد یک گره جدید، نمی دانم چه آن را با اشاره به بعد، 193 00:09:51,260 --> 00:09:54,560 بنابراین شما می خواهید به مقداردهی اولیه آن را به NULL. 194 00:09:54,560 --> 00:09:58,760 اگر آن را تا پایان با اشاره به چیزی دیگری، آن را می شود منصوب و آن را خوب است. 195 00:09:58,760 --> 00:10:00,740 اگر آن را اولین چیزی که در این فهرست، به آن نیاز دارد 196 00:10:00,740 --> 00:10:04,270 به نقطه را به NULL دلیل که انتهای لیست است. 197 00:10:04,270 --> 00:10:12,410 >> پس به آن وارد است، ما در اینجا مشاهده کنید ما در حال تعیین مقدار بعدی از گره های ما 198 00:10:12,410 --> 00:10:17,380 به هر سر می باشد، که چیزی است که ما در اینجا بود. 199 00:10:17,380 --> 00:10:19,930 این چیزی است که ما فقط. 200 00:10:19,930 --> 00:10:25,820 و سپس ما در حال تعیین سر به نقطه به گره جدید ما، چون به یاد داشته باشید، 201 00:10:25,820 --> 00:10:31,090 جدید برخی از اشاره گر به گره است، و این دقیقا همان چیزی سر است. 202 00:10:31,090 --> 00:10:34,370 این است که دقیقا به همین دلیل ما این فلش لوازم جانبی. 203 00:10:34,370 --> 00:10:37,030 204 00:10:37,030 --> 00:10:37,530 سرد؟ 205 00:10:37,530 --> 00:10:38,130 Mmhmm؟ 206 00:10:38,130 --> 00:10:41,100 >> رسید آیا ما به مقداردهی اولیه بعدی جدید به NULL اول، 207 00:10:41,100 --> 00:10:44,240 و یا می تواند ما فقط آن را مقداردهی اولیه به سر؟ 208 00:10:44,240 --> 00:10:48,210 >> SPEAKER 1: جدید بعدی نیاز به NULL برای شروع 209 00:10:48,210 --> 00:10:53,760 چون شما نمی دانید که در آن خواهد بود. 210 00:10:53,760 --> 00:10:56,100 همچنین، این نوع از درست مثل یک پارادایم. 211 00:10:56,100 --> 00:10:59,900 شما آن را به NULL برابر فقط به مطمئن شوید که تمام پایگاه های خود را پوشش داده 212 00:10:59,900 --> 00:11:04,070 قبل از انجام هر گونه تغییر به طوری که شما همیشه تضمین شده است که آن را 213 00:11:04,070 --> 00:11:08,880 شود با اشاره به یک مقدار خاص در مقابل مانند یک مقدار زباله. 214 00:11:08,880 --> 00:11:12,210 از آنجا که، بله، ما اختصاص جدید بعدی به صورت خودکار، 215 00:11:12,210 --> 00:11:15,420 اما آن را بیشتر به مانند یک تمرین خوبی برای آن مقداردهی اولیه 216 00:11:15,420 --> 00:11:19,270 در آن راه و پس از آن تخصیص دهید. 217 00:11:19,270 --> 00:11:23,420 >> OK، بنابراین در حال حاضر لیست مضاعف مرتبط است. 218 00:11:23,420 --> 00:11:24,601 چه فکر می کنم ما؟ 219 00:11:24,601 --> 00:11:26,350 چه با مختلف لیست مضاعف مرتبط است؟ 220 00:11:26,350 --> 00:11:30,750 221 00:11:30,750 --> 00:11:34,300 >> بنابراین در لیست های پیوندی ما، ما می توانیم تنها در یک جهت حرکت می کند، درست است؟ 222 00:11:34,300 --> 00:11:35,270 ما فقط در کنار داشته باشد. 223 00:11:35,270 --> 00:11:36,760 ما فقط می توانیم به جلو بروید. 224 00:11:36,760 --> 00:11:40,300 >> با یک لیست مضاعف مرتبط، ما همچنین می توانیم به عقب حرکت می کند. 225 00:11:40,300 --> 00:11:44,810 بنابراین ما باید نه تنها تعداد که ما می خواهیم برای ذخیره، 226 00:11:44,810 --> 00:11:50,110 ما که آن را به آینده اشاره و جایی که ما فقط از آمد. 227 00:11:50,110 --> 00:11:52,865 پس این اجازه می دهد تا برای برخی از پیمایش بهتر است. 228 00:11:52,865 --> 00:11:56,620 229 00:11:56,620 --> 00:12:01,240 >> گره بنابراین مضاعف مرتبط، بسیار مشابه، درست است؟ 230 00:12:01,240 --> 00:12:05,000 تنها تفاوت این است در حال حاضر ما یک بعدی و قبلی. 231 00:12:05,000 --> 00:12:06,235 این تنها تفاوت است. 232 00:12:06,235 --> 00:12:09,570 233 00:12:09,570 --> 00:12:14,790 >> بنابراین اگر ما به prepend یا append-- ما هیچ کد برای این نیست تا here-- 234 00:12:14,790 --> 00:12:17,830 اما اگر شما را امتحان کنید و درج آن، نکته مهم 235 00:12:17,830 --> 00:12:19,980 این است که شما نیاز به ایجاد مطمئن شوید که شما تعیین 236 00:12:19,980 --> 00:12:23,360 هر دو قبل و خود شما اشاره گر بعدی به درستی. 237 00:12:23,360 --> 00:12:29,010 بنابراین در این مورد، شما را نه تنها بعد مقداردهی اولیه، 238 00:12:29,010 --> 00:12:31,820 شما مقداردهی اولیه قبلی. 239 00:12:31,820 --> 00:12:36,960 اگر ما در سر لیست، ما نه تنها سر برابر جدید، 240 00:12:36,960 --> 00:12:41,750 اما باید قبل جدید ما اشاره به سر، درست است؟ 241 00:12:41,750 --> 00:12:43,380 >> این تنها تفاوت است. 242 00:12:43,380 --> 00:12:47,200 و اگر شما می خواهید عمل بیشتر با این با لیست های پیوندی، با قرار دادن، 243 00:12:47,200 --> 00:12:49,900 با حذف، با درج به یک لیست همه فن حریف، 244 00:12:49,900 --> 00:12:52,670 لطفا study.cs50.net. 245 00:12:52,670 --> 00:12:54,870 یک دسته از تمرینات بزرگ وجود دارد. 246 00:12:54,870 --> 00:12:55,870 من به شدت توصیه آنها. 247 00:12:55,870 --> 00:12:59,210 کاش ما هم به از طریق آنها به حال اما در بسیاری از ساختمان های داده وجود دارد 248 00:12:59,210 --> 00:13:01,530 از طریق دریافت کنید. 249 00:13:01,530 --> 00:13:02,650 >> OK، بنابراین جداول هش. 250 00:13:02,650 --> 00:13:07,070 این است که احتمالا بیشتر کمی مفید برای pset شما 251 00:13:07,070 --> 00:13:11,090 در اینجا دلیل این که شما در حال رفتن به اجرای یکی از این، یا امتحان کنید. 252 00:13:11,090 --> 00:13:12,200 من واقعا جداول هش می خواهم. 253 00:13:12,200 --> 00:13:13,110 آنها بسیار سرد است. 254 00:13:13,110 --> 00:13:17,080 >> پس اساسا چه اتفاق می افتد یک جدول هش است 255 00:13:17,080 --> 00:13:22,050 وقتی است که ما واقعا نیاز سریع درج، حذف و مراجعه به. 256 00:13:22,050 --> 00:13:25,010 آن چیزهایی که ما می اولویت در یک جدول هش. 257 00:13:25,010 --> 00:13:29,500 آنها می توانند بسیار بزرگ، اما به عنوان ما با تلاش را ببینید، 258 00:13:29,500 --> 00:13:33,040 چیزهایی هستند که بسیار بزرگتر وجود دارد. 259 00:13:33,040 --> 00:13:38,330 >> اما در واقع، همه یک رشته هش جدول تابع هش 260 00:13:38,330 --> 00:13:47,215 که به شما می گوید که سطل برای قرار دادن هر از داده های خود، هر یک از عناصر خود را در. 261 00:13:47,215 --> 00:13:51,140 یک راه ساده برای یک جدول هش فکر می کنم این است که آن را فقط به گرمی از همه چیز، 262 00:13:51,140 --> 00:13:51,770 درست است؟ 263 00:13:51,770 --> 00:13:59,720 بنابراین، هنگامی که شما در حال مرتب سازی چیز مثل حرف اول نام خود، 264 00:13:59,720 --> 00:14:01,820 که نوع مانند یک جدول هش. 265 00:14:01,820 --> 00:14:06,180 >> بنابراین اگر من به گروه شما بچه ها است به دو گروه از هر کس نام و نام خانوادگی را شروع می شود 266 00:14:06,180 --> 00:14:11,670 با بیش از اینجا، و یا هر کس تولد است است در ماه ژانویه، فوریه، مارس، 267 00:14:11,670 --> 00:14:15,220 هر، است که به طور موثر ایجاد یک جدول هش. 268 00:14:15,220 --> 00:14:18,120 این فقط ایجاد سطل که شما از عناصر خود را به مرتب کردن بر اساس 269 00:14:18,120 --> 00:14:19,520 به طوری که شما می توانید آنها را راحت تر پیدا کنید. 270 00:14:19,520 --> 00:14:22,300 بنابراین این راه وقتی که من نیاز برای پیدا کردن یکی از شما، 271 00:14:22,300 --> 00:14:24,680 من لازم نیست برای جستجو از طریق هر یک از نام های خود را. 272 00:14:24,680 --> 00:14:29,490 من می توانم می کنم که می شود، من می دانم که تولد دانیل را in-- است 273 00:14:29,490 --> 00:14:30,240 رسید --April. 274 00:14:30,240 --> 00:14:30,948 SPEAKER 1: ماه آوریل است. 275 00:14:30,948 --> 00:14:33,120 بنابراین من در ماه آوریل من نگاه سطل، و با هر آرزوی موفقیت، 276 00:14:33,120 --> 00:14:38,270 او خواهید بود تنها در آن وجود دارد و زمان من در آن حس ثابت بود، 277 00:14:38,270 --> 00:14:41,230 در حالی که اگر من به نگاه از طریق یک دسته کامل از مردم، 278 00:14:41,230 --> 00:14:43,090 آن را به بسیار خرد است. 279 00:14:43,090 --> 00:14:45,830 بنابراین جداول هش واقعا فقط سطل. 280 00:14:45,830 --> 00:14:48,630 راه آسان برای از آنها فکر می کنم. 281 00:14:48,630 --> 00:14:52,930 >> بنابراین یک چیز بسیار مهم در مورد جدول هش یک تابع هش است. 282 00:14:52,930 --> 00:14:58,140 بنابراین چیزهایی که من فقط در مورد، صحبت مانند اولین نامه خود را از نام خود را 283 00:14:58,140 --> 00:15:01,450 یا ماه تولد شما، این ایده ها هستند که 284 00:15:01,450 --> 00:15:03,070 واقعا به یک تابع هش مرتبط. 285 00:15:03,070 --> 00:15:08,900 این فقط یک راه است که تصمیم گیری سطل شما عنصر دادی می رود به، OK؟ 286 00:15:08,900 --> 00:15:14,850 بنابراین برای این pset، شما می توانید نگاه کردن تقریبا هر تابع هش می خواهید. 287 00:15:14,850 --> 00:15:16,030 >> آیا لازم نیست به خود شما. 288 00:15:16,030 --> 00:15:21,140 برخی از آنهایی که واقعا سرد وجود دارد از وجود دارد که همه انواع ریاضی دیوانه. 289 00:15:21,140 --> 00:15:25,170 و اگر می خواهید مطمئن شما غلط گیر املا فوق العاده سریع، 290 00:15:25,170 --> 00:15:27,620 من قطعا به یکی از آن نگاه کنید. 291 00:15:27,620 --> 00:15:32,390 >> بلکه وجود دارد آنهایی که ساده مانند محاسبه 292 00:15:32,390 --> 00:15:39,010 از مجموع کلمات، مانند هر حرف دارای یک عدد است. 293 00:15:39,010 --> 00:15:39,940 محاسبه مجموع. 294 00:15:39,940 --> 00:15:42,230 که تعیین سطل. 295 00:15:42,230 --> 00:15:45,430 آنها همچنین آنهایی که آسان درست مثل همه در اینجا، 296 00:15:45,430 --> 00:15:47,050 همه از B را در اینجا. 297 00:15:47,050 --> 00:15:48,920 هر یکی از آن. 298 00:15:48,920 --> 00:15:55,770 >> در واقع، آن را فقط به شما می گوید که اندیس عنصر شما باید وارد. 299 00:15:55,770 --> 00:15:58,690 فقط تصمیم گیری bucket-- این همه یک تابع هش است. 300 00:15:58,690 --> 00:16:04,180 بنابراین در اینجا ما یک مثال است که فقط اولین حرف رشته 301 00:16:04,180 --> 00:16:05,900 که من فقط در مورد صحبت شد. 302 00:16:05,900 --> 00:16:11,900 >> بنابراین شما باید برخی از هش که فقط حرف اول رشته خود را منهای A، 303 00:16:11,900 --> 00:16:16,090 که به شما برخی را عدد بین 0 و 25. 304 00:16:16,090 --> 00:16:20,790 و آنچه که می خواهید انجام دهید این است مطمئن شوید که این نشان دهنده 305 00:16:20,790 --> 00:16:24,110 اندازه هش خود را table-- چگونه بسیاری از سطل وجود دارد. 306 00:16:24,110 --> 00:16:25,860 با بسیاری از این توابع هش، آنها 307 00:16:25,860 --> 00:16:31,630 رفتن به برگرداندن داده که ممکن است بسیار بالاتر از تعداد سطل شود 308 00:16:31,630 --> 00:16:33,610 که شما در واقع در جدول هش خود، 309 00:16:33,610 --> 00:16:37,240 بنابراین شما نیاز به ایجاد مطمئن و وزارت دفاع توسط کسانی که. 310 00:16:37,240 --> 00:16:42,190 در غیر این صورت، آن را می گویند، آه، آن را باید در سطل 5000 است 311 00:16:42,190 --> 00:16:46,040 اما شما فقط 30 دارند سطل در جدول هش شما. 312 00:16:46,040 --> 00:16:49,360 و البته، همه ما می دانیم که رفتن به منجر به برخی از اشتباهات دیوانه. 313 00:16:49,360 --> 00:16:52,870 بنابراین مطمئن شوید که به وزارت دفاع توسط اندازه جدول هش شما. 314 00:16:52,870 --> 00:16:58,430 315 00:16:58,430 --> 00:16:58,930 سرد. 316 00:16:58,930 --> 00:17:00,506 بنابراین برخورد. 317 00:17:00,506 --> 00:17:02,620 آیا همه خوب تا کنون؟ 318 00:17:02,620 --> 00:17:03,120 Mmhmm؟ 319 00:17:03,120 --> 00:17:05,900 >> رسید: چرا آن را چنین ارزش های عظیم بازگشت؟ 320 00:17:05,900 --> 00:17:09,210 >> SPEAKER 1: با توجه به الگوریتم که تابع هش خود استفاده می کند. 321 00:17:09,210 --> 00:17:12,270 برخی از آنها را انجام خواهد داد ضرب دیوانه. 322 00:17:12,270 --> 00:17:16,270 و این همه در مورد گرفتن حتی یک توزیع، 323 00:17:16,270 --> 00:17:18,490 به طوری که آنها انجام برخی از واقعا چیز دیوانه گاهی اوقات. 324 00:17:18,490 --> 00:17:20,960 که همه. 325 00:17:20,960 --> 00:17:22,140 هر چیز دیگری؟ 326 00:17:22,140 --> 00:17:22,829 OK. 327 00:17:22,829 --> 00:17:24,480 >> بنابراین برخورد. 328 00:17:24,480 --> 00:17:29,270 در واقع، همانطور که قبلا هم گفتم، در بهترین حالت، 329 00:17:29,270 --> 00:17:32,040 هر سطل به من نگاه است رفتن به یک چیز، 330 00:17:32,040 --> 00:17:34,160 بنابراین من لازم نیست که در تمام نگاه، درست است؟ 331 00:17:34,160 --> 00:17:37,040 من می دانم که هر دو از آن وجود دارد و یا آن را نیست، و این چیزی است که ما واقعا می خواهید. 332 00:17:37,040 --> 00:17:43,960 اما اگر ما ده ها هزار نفر از نقاط داده و کمتر از آن تعداد 333 00:17:43,960 --> 00:17:48,700 از سطل، ما قصد داریم به برخورد که در آن در نهایت چیزی 334 00:17:48,700 --> 00:17:54,210 در حال رفتن به برای پایان دادن به در سطل که در حال حاضر دارای یک عنصر. 335 00:17:54,210 --> 00:17:57,390 >> بنابراین سوال این است، چه ما در این مورد انجام دهید؟ 336 00:17:57,390 --> 00:17:58,480 چه کنیم؟ 337 00:17:58,480 --> 00:17:59,300 ما در حال حاضر چیزی وجود دارد؟ 338 00:17:59,300 --> 00:18:00,060 آیا ما فقط آن را دور بریزید؟ 339 00:18:00,060 --> 00:18:00,700 >> شماره 340 00:18:00,700 --> 00:18:01,980 ما برای حفظ هر دو آنها را. 341 00:18:01,980 --> 00:18:06,400 بنابراین راه است که ما به طور معمول انجام این کار چیست؟ 342 00:18:06,400 --> 00:18:08,400 ساختار داده ها چیست ما فقط در مورد صحبت کردیم؟ 343 00:18:08,400 --> 00:18:09,316 رسید لیست پیوندی. 344 00:18:09,316 --> 00:18:10,500 SPEAKER 1: لیست پیوندی. 345 00:18:10,500 --> 00:18:16,640 بنابراین در حال حاضر، به جای هر یک از این سطل تنها با داشتن یک عنصر، 346 00:18:16,640 --> 00:18:24,020 آن را شامل یک لیست پیوندی از عناصری که به آن درهم شد. 347 00:18:24,020 --> 00:18:27,588 OK، آیا همه نوع از آن ایده را دریافت کنم؟ 348 00:18:27,588 --> 00:18:30,546 از آنجا که ما می تواند یک آرایه ندارد چون ما نمی دانیم که چگونه بسیاری از چیزها را نمی 349 00:18:30,546 --> 00:18:31,730 در حال رفتن به در وجود داشته باشد. 350 00:18:31,730 --> 00:18:36,540 لیست پیوندی ما اجازه می دهد تا به فقط تعداد دقیق که 351 00:18:36,540 --> 00:18:38,465 به که سطل هش، درست است؟ 352 00:18:38,465 --> 00:18:42,260 353 00:18:42,260 --> 00:18:50,500 >> بنابراین کاوش خطی است اساسا این idea-- 354 00:18:50,500 --> 00:18:52,300 آن یک راه برای مقابله با برخورد است. 355 00:18:52,300 --> 00:18:58,010 چه می توانید انجام دهید این است اگر، در این مورد، انواع توت ها را به 1 درهم شد 356 00:18:58,010 --> 00:19:01,130 و ما در حال حاضر چیزی وجود دارد، شما فقط 357 00:19:01,130 --> 00:19:04,840 رفتن به پایین نگه دارید تا شما در پیدا کردن یک اسلات خالی. 358 00:19:04,840 --> 00:19:06,370 که یک راه برای رسیدگی به آن است. 359 00:19:06,370 --> 00:19:09,020 راه دیگر برای رسیدگی به آن را با چیزی است که ما فقط 360 00:19:09,020 --> 00:19:12,280 called-- مرتبط لیست نام زنجیری. 361 00:19:12,280 --> 00:19:20,510 >> بنابراین این ایده کار می کند که جدول هش شما شما فکر می کنم 362 00:19:20,510 --> 00:19:24,150 بسیار بزرگتر از اطلاعات خود را تنظیم کنید و یا اگر شما 363 00:19:24,150 --> 00:19:28,870 می خواهید امتحان کنید و به حداقل رساندن زنجیری تا زمانی که کاملا ضروری است. 364 00:19:28,870 --> 00:19:34,050 بنابراین یک چیز خطی است پروب به وضوح به معنی 365 00:19:34,050 --> 00:19:37,290 که تابع هش شما کاملا مفید 366 00:19:37,290 --> 00:19:42,200 دلیل این که شما در حال رفتن برای پایان دادن به استفاده از تابع هش خود را، رسیدن به یک نقطه، 367 00:19:42,200 --> 00:19:46,400 شما خطی برای بررسی کردن برخی از مکان است که در دسترس است. 368 00:19:46,400 --> 00:19:49,670 اما در حال حاضر، البته، هر چیزی چیز دیگری که به پایان می رسد تا در آنجا، 369 00:19:49,670 --> 00:19:52,050 شما در حال رفتن به به جستجو حتی بیشتر پایین. 370 00:19:52,050 --> 00:19:55,650 >> و زیادی وجود دارد هزینه جستجو است که 371 00:19:55,650 --> 00:19:59,820 می رود به ورود یک عنصر در جدول هش شما در حال حاضر، درست است؟ 372 00:19:59,820 --> 00:20:05,640 و در حال حاضر زمانی که شما بروید و سعی کنید و پیدا کردن توت باز هم، شما در حال رفتن به آن را هش، 373 00:20:05,640 --> 00:20:07,742 و آن را می گویند، آه، نگاه در سطل 1، 374 00:20:07,742 --> 00:20:09,700 و آن نخواهد بود در سطل 1، پس شما 375 00:20:09,700 --> 00:20:11,970 رفتن به گذشتن از بقیه از این. 376 00:20:11,970 --> 00:20:17,720 پس از آن گاهی اوقات مفید است، اما در اغلب موارد، 377 00:20:17,720 --> 00:20:22,660 ما در حال رفتن به می گویند که زنجیری شدن این همان چیزی است که می خواهید انجام دهید. 378 00:20:22,660 --> 00:20:25,520 >> بنابراین ما در مورد این که قبلا صحبت کردیم. 379 00:20:25,520 --> 00:20:27,812 من پیش رو کمی از خودم کردم. 380 00:20:27,812 --> 00:20:33,560 اما زنجیری شدن این است که اساسا هر سطل در جدول هش شما 381 00:20:33,560 --> 00:20:36,120 فقط یک لیست پیوندی است. 382 00:20:36,120 --> 00:20:39,660 >> بنابراین یکی دیگر از راه، و یا فنی راه، به یک جدول هش فکر می کنم 383 00:20:39,660 --> 00:20:44,490 این است که آن را فقط یک آرایه از لیست های پیوندی، که 384 00:20:44,490 --> 00:20:49,330 هنگامی که شما در حال نوشتن فرهنگ لغت خود و شما در حال تلاش برای آن را بار، 385 00:20:49,330 --> 00:20:52,070 فکر کردن به آن به عنوان یک آرایه ای از لیست های پیوندی 386 00:20:52,070 --> 00:20:54,390 آن را بسیار آسان تر خواهد شد برای شما به مقداردهی اولیه. 387 00:20:54,390 --> 00:20:57,680 >> رسید بنابراین جدول هش تا به اندازه از پیش تعیین شده، 388 00:20:57,680 --> 00:20:58,980 مانند یک [نامفهوم] سطل؟ 389 00:20:58,980 --> 00:20:59,220 >> SPEAKER 1: درست است. 390 00:20:59,220 --> 00:21:01,655 پس از آن تا مجموعه ای از تعداد سطل که شما determine-- 391 00:21:01,655 --> 00:21:03,530 که شما بچه ها باید در صورت تمایل به بازی کردن با. 392 00:21:03,530 --> 00:21:05,269 می توان آن را بسیار سرد برای دیدن آنچه که اتفاق می افتد 393 00:21:05,269 --> 00:21:06,810 تعداد خود را از سطل را تغییر دهید. 394 00:21:06,810 --> 00:21:09,410 395 00:21:09,410 --> 00:21:11,510 اما آره، آن را تا مجموعه ای از تعداد سطل. 396 00:21:11,510 --> 00:21:15,360 چه اجازه می دهد تا شما را به عنوان مناسب عناصر بسیاری از شما نیاز دارید 397 00:21:15,360 --> 00:21:19,350 این زنجیره را جداگانه که در آن شما فهرست در هر سطل مرتبط دانسته اند. 398 00:21:19,350 --> 00:21:22,850 این بدان معناست که جدول هش شما خواهد بود که دقیقا به اندازه 399 00:21:22,850 --> 00:21:25,440 که شما به آن نیاز دارید می شود، درست است؟ 400 00:21:25,440 --> 00:21:27,358 که نقطه تمام لیست های پیوندی است. 401 00:21:27,358 --> 00:21:30,850 402 00:21:30,850 --> 00:21:32,480 سرد. 403 00:21:32,480 --> 00:21:38,780 >> پس هر کس OK وجود دارد؟ 404 00:21:38,780 --> 00:21:39,801 همه راست. 405 00:21:39,801 --> 00:21:40,300 آه. 406 00:21:40,300 --> 00:21:41,860 چه اتفاقی افتاده؟ 407 00:21:41,860 --> 00:21:42,960 واقعا در حال حاضر. 408 00:21:42,960 --> 00:21:45,250 حدس می زنم کسی به من کشتن. 409 00:21:45,250 --> 00:21:52,060 >> OK ما در حال رفتن به رفتن به تلاش می کند، که یک کمی دیوانه هستند. 410 00:21:52,060 --> 00:21:53,140 من جداول هش می خواهم. 411 00:21:53,140 --> 00:21:54,460 من فکر می کنم آنها واقعا سرد است. 412 00:21:54,460 --> 00:21:56,710 تلاش ها سرد است، بیش از حد. 413 00:21:56,710 --> 00:21:59,590 >> بنابراین هر کسی به یاد داشته باشید آنچه که امتحان کنید؟ 414 00:21:59,590 --> 00:22:01,740 شما باید بیش از رفته آن به طور خلاصه در سخنرانی؟ 415 00:22:01,740 --> 00:22:04,570 416 00:22:04,570 --> 00:22:06,377 آیا شما نوع چگونه کار می کند به یاد داشته باشید؟ 417 00:22:06,377 --> 00:22:08,460 رسید من فقط تکان که ما بیش از آن رفتن. 418 00:22:08,460 --> 00:22:09,626 SPEAKER 1: ما بیش از آن بروید. 419 00:22:09,626 --> 00:22:13,100 OK، ما واقعا برای رفتن بیش از آن چیزی است که ما در حال حاضر در حال گفت. 420 00:22:13,100 --> 00:22:14,860 >> رسید که برای یک درخت بازیابی. 421 00:22:14,860 --> 00:22:15,280 >> SPEAKER 1: آره. 422 00:22:15,280 --> 00:22:16,196 این یک درخت بازیابی است. 423 00:22:16,196 --> 00:22:16,960 بسیار جذاب است. 424 00:22:16,960 --> 00:22:23,610 بنابراین یک چیز متوجه هستند که ما به دنبال شخصیت های منحصر به فرد 425 00:22:23,610 --> 00:22:24,480 در اینجا، درست است؟ 426 00:22:24,480 --> 00:22:29,710 >> بنابراین قبل از تابع هش را با ما، ما در کلمات به عنوان یک کل نگاه می شد، 427 00:22:29,710 --> 00:22:32,270 و در حال حاضر ما به دنبال تر در حرف، درست است؟ 428 00:22:32,270 --> 00:22:38,380 بنابراین ما باید ماکسول اینجا و مندل. 429 00:22:38,380 --> 00:22:47,840 بنابراین اساسا try-- راه به فکر می کنم در مورد این که هر سطح در اینجا است 430 00:22:47,840 --> 00:22:49,000 مجموعه ای از حروف است. 431 00:22:49,000 --> 00:22:53,310 432 00:22:53,310 --> 00:22:55,790 بنابراین این گره ریشه خود را در اینجا، درست است؟ 433 00:22:55,790 --> 00:23:01,980 این همه حرف از ای بی سی برای شروع هر کلمه. 434 00:23:01,980 --> 00:23:06,480 >> و آنچه که می خواهید انجام دهید این است بگو، OK، ما باید برخی از کلمه M. 435 00:23:06,480 --> 00:23:10,590 ما قصد داریم برای ماکسول نگاه کنید، به طوری که ما به M. M و نقطه رفتن به یک کل 436 00:23:10,590 --> 00:23:14,800 دیگر یک آرایه که در آن هر کلمه، تا زمانی که وجود دارد 437 00:23:14,800 --> 00:23:17,044 یک کلمه است که است عنوان نامه دوم، 438 00:23:17,044 --> 00:23:19,460 تا زمانی که یک کلمه ای که وجود دارد است B به عنوان نامه دوم، 439 00:23:19,460 --> 00:23:24,630 آن را به یک اشاره گر دارند رفتن به برخی از آرایه بعدی. 440 00:23:24,630 --> 00:23:29,290 >> احتمالا وجود ندارد کلمه ای که MP چیزی، 441 00:23:29,290 --> 00:23:32,980 بنابراین در موقعیت P در این آرایه، آن را فقط NULL باشد. 442 00:23:32,980 --> 00:23:38,840 این امر می گویند، OK، هیچ کلمه ای وجود دارد است که M به دنبال P، OK؟ 443 00:23:38,840 --> 00:23:43,100 بنابراین اگر ما در مورد آن، هر فکر یکی از این چیزها کوچکتر 444 00:23:43,100 --> 00:23:47,990 است که در واقع یکی از این آرایه های بزرگ از طریق Z. 445 00:23:47,990 --> 00:23:55,064 پس چه ممکن است یکی از چیزهایی که این نوع از اشکال امتحان کنید؟ 446 00:23:55,064 --> 00:23:56,500 >> رسید مقدار زیادی از حافظه. 447 00:23:56,500 --> 00:23:59,940 >> SPEAKER 1: این یک تن از حافظه است، درست است؟ 448 00:23:59,940 --> 00:24:08,750 هر یک از این بلوک در اینجا نشان دهنده 26 فضاهای، 26 عنصر آرایه. 449 00:24:08,750 --> 00:24:13,680 بنابراین تلاش می کند دریافت فوق العاده سنگین فضا. 450 00:24:13,680 --> 00:24:17,100 >> اما آنها بسیار سریع می باشد. 451 00:24:17,100 --> 00:24:22,540 بنابراین سرعت باور نکردنی اما واقعا فضای ناکارآمد. 452 00:24:22,540 --> 00:24:24,810 نوع باید به شکل که یکی از شما می خواهید. 453 00:24:24,810 --> 00:24:29,470 این واقعا سرد برای pset خود را، اما آنها را تا مقدار زیادی از حافظه، 454 00:24:29,470 --> 00:24:30,290 بنابراین شما معامله خاموش است. 455 00:24:30,290 --> 00:24:31,480 آره؟ 456 00:24:31,480 --> 00:24:34,300 >> رسید آیا امکان آن وجود داشته باشد برای راه اندازی یک امتحان کنید و پس از آن 457 00:24:34,300 --> 00:24:37,967 هنگامی که شما همه داده ها در آن است که شما need-- 458 00:24:37,967 --> 00:24:39,550 من نمی دانم اگر آن را حس کند. 459 00:24:39,550 --> 00:24:42,200 من خلاص شدن از همه بود شخصیت های NULL، اما بعد از آن 460 00:24:42,200 --> 00:24:42,910 شما نمی قادر خواهد بود تا شاخص them-- 461 00:24:42,910 --> 00:24:43,275 >> SPEAKER 1: شما هنوز به آنها نیاز دارید. 462 00:24:43,275 --> 00:24:44,854 >> رسید - به همان شیوه در هر زمان. 463 00:24:44,854 --> 00:24:45,520 SPEAKER 1: آره. 464 00:24:45,520 --> 00:24:50,460 شما باید شخصیت NULL به اجازه شما می دانید اگر یک کلمه وجود دارد وجود ندارد. 465 00:24:50,460 --> 00:24:52,040 بن آیا شما چیزی است که شما می خواهید؟ 466 00:24:52,040 --> 00:24:52,540 OK. 467 00:24:52,540 --> 00:24:54,581 همه حق است، بنابراین ما در حال رفتن برای رفتن کمی بیشتر 468 00:24:54,581 --> 00:24:58,920 به جزئیات فنی پشت امتحان کنید و کار را از طریق یک مثال. 469 00:24:58,920 --> 00:25:01,490 >> خوب، پس این همان چیزی است. 470 00:25:01,490 --> 00:25:06,290 در حالی که در یک لیست پیوندی، اصلی ما نوع of-- چه کلمه من می خواهم به - 471 00:25:06,290 --> 00:25:08,350 مانند ساختمان بلوک گره بود. 472 00:25:08,350 --> 00:25:12,280 در را امتحان کنید، ما نیز یک گره داشته باشد، اما آن را متفاوت تعریف شده است. 473 00:25:12,280 --> 00:25:17,000 >> بنابراین ما باید برخی از بولی که نشان دهنده اینکه آیا یک کلمه در واقع 474 00:25:17,000 --> 00:25:23,530 در این مکان وجود دارد، و پس از آن ما به برخی از آرایه here-- یا نه، 475 00:25:23,530 --> 00:25:27,840 این یک اشاره گر به یک است مجموعه ای از 27 حرف می باشد. 476 00:25:27,840 --> 00:25:33,339 و این برای، در این مورد، این 27-- من مطمئن هستم که همه شما مانند هستم، صبر کنید، 477 00:25:33,339 --> 00:25:34,880 26 حرف در الفبای وجود دارد. 478 00:25:34,880 --> 00:25:36,010 چرا ما باید 27؟ 479 00:25:36,010 --> 00:25:37,870 >> بنابراین بسته به راه شما این پیاده سازی، 480 00:25:37,870 --> 00:25:43,240 این است که از یک pset که اجازه برای آپوستروف. 481 00:25:43,240 --> 00:25:46,010 به طوری که به همین دلیل یکی از فوق العاده است. 482 00:25:46,010 --> 00:25:50,500 شما همچنین می خواهید در برخی از موارد نابودگر پوچ 483 00:25:50,500 --> 00:25:53,230 به عنوان یکی از شامل شخصیت های است که آن را اجازه داده است، 484 00:25:53,230 --> 00:25:56,120 و این که چگونه آنها برای بررسی دیدن اگر آن را به پایان کلمه است. 485 00:25:56,120 --> 00:26:01,340 اگر شما علاقه مند هستید، لطفا ویدئو کوین در study.cs50، 486 00:26:01,340 --> 00:26:04,790 همچنین ویکیپدیا برخی از منابع خوب وجود دارد. 487 00:26:04,790 --> 00:26:09,000 >> اما ما قصد داریم تا از طریق فقط نوع به از اینکه چگونه ممکن است از طریق یک امتحان کار 488 00:26:09,000 --> 00:26:11,010 اگر شما با توجه به یکی. 489 00:26:11,010 --> 00:26:16,230 بنابراین ما باید یک سوپر ساده که در اینجا دارای کلمات "بت" و "زوم" در آنها است. 490 00:26:16,230 --> 00:26:18,920 و به ما می بینیم در اینجا، این فضای کوچک در اینجا 491 00:26:18,920 --> 00:26:22,560 نشان دهنده بولی ما که می گوید، بله، این یک کلمه است. 492 00:26:22,560 --> 00:26:27,060 و پس از آن این است ما آرایه از کاراکتر ها، درست است؟ 493 00:26:27,060 --> 00:26:33,480 >> بنابراین ما در حال رفتن را از طریق رفتن پیدا کردن "بت" در این را امتحان کنید. 494 00:26:33,480 --> 00:26:38,340 بنابراین در بالا شروع شود، درست است؟ 495 00:26:38,340 --> 00:26:46,290 و ما می دانیم که ب مربوط به شاخص دوم، عنصر دوم 496 00:26:46,290 --> 00:26:47,840 در این آرایه، به خاطر A و B. 497 00:26:47,840 --> 00:26:51,340 بنابراین حدود یک ثانیه. 498 00:26:51,340 --> 00:26:58,820 >> و آن را می گوید، OK، سرد، به دنبال که به آرایه بعدی، چرا که اگر ما به یاد داشته باشید، 499 00:26:58,820 --> 00:27:02,160 آن است که هر یک از این نمی در واقع حاوی عنصر. 500 00:27:02,160 --> 00:27:07,110 هر یک از این آرایه ها شامل یک اشاره گر، درست است؟ 501 00:27:07,110 --> 00:27:10,030 این یک تمایز مهم را دارد. 502 00:27:10,030 --> 00:27:13,450 >> من می دانم این است که رفتن به be-- تلاش هستند واقعا سخت است در اولین زمان، 503 00:27:13,450 --> 00:27:15,241 بنابراین حتی اگر این است بار دوم و سوم 504 00:27:15,241 --> 00:27:18,370 و هنوز هم نوع از ظاهری دشوار است، 505 00:27:18,370 --> 00:27:21,199 من قول می دهم اگر شما به تماشای کوتاه دوباره فردا، 506 00:27:21,199 --> 00:27:22,740 احتمالا شما حس خیلی بیشتر. 507 00:27:22,740 --> 00:27:23,890 طول می کشد تا مقدار زیادی به هضم. 508 00:27:23,890 --> 00:27:27,800 من هنوز هم گاهی اوقات دارم مانند، صبر کنید، چه امتحان کنید؟ 509 00:27:27,800 --> 00:27:29,080 چگونه می توانم از این استفاده کنم؟ 510 00:27:29,080 --> 00:27:33,880 >> پس ما در این مورد ب، که شاخص دوم ما است. 511 00:27:33,880 --> 00:27:40,240 اگر ما تا به حال، می گویند، C و یا D یا هر حرف دیگر، 512 00:27:40,240 --> 00:27:45,810 ما نیاز به نقشه که قدمت آن به شاخص از آرایه ما است که که مربوط به. 513 00:27:45,810 --> 00:27:56,930 بنابراین ما می خواهیم را rchar و ما فقط تفریق کردن به آن نقشه را به 0 تا 25. 514 00:27:56,930 --> 00:27:58,728 همه خوب چگونه ما نقشه شخصیت ما؟ 515 00:27:58,728 --> 00:28:00,440 OK. 516 00:28:00,440 --> 00:28:05,980 >> بنابراین ما به یک دوم و ما به می بینیم که، بله، آن است که به NULL نیست. 517 00:28:05,980 --> 00:28:07,780 ما می توانیم در این آرایه بعدی حرکت می کند. 518 00:28:07,780 --> 00:28:12,300 بنابراین ما در این آرایه بعدی اینجا بروید. 519 00:28:12,300 --> 00:28:15,500 >> و ما می گوییم، خوب، در حال حاضر ما نیاز به مراجعه در صورت است که در اینجا. 520 00:28:15,500 --> 00:28:18,590 آیا پوچ و یا آن را ندارد در واقع رو به جلو حرکت می کند؟ 521 00:28:18,590 --> 00:28:21,880 بنابراین در واقع حرکت می کند به جلو در این آرایه. 522 00:28:21,880 --> 00:28:24,570 و ما می گویند، OK، T آخرین نامه ما است. 523 00:28:24,570 --> 00:28:27,580 بنابراین ما به T در صفحه اول بروید. 524 00:28:27,580 --> 00:28:30,120 و بعد ما حرکت رو به جلو چرا که یکی دیگر وجود دارد. 525 00:28:30,120 --> 00:28:38,340 و این یکی می گوید اساسا که، بله، آن را می گوید که یک کلمه وجود دارد here-- 526 00:28:38,340 --> 00:28:41,750 که اگر این را دنبال راه رسیدی 527 00:28:41,750 --> 00:28:43,210 در یک کلمه، که ما می دانیم "خفاش" است. 528 00:28:43,210 --> 00:28:43,800 بله؟ 529 00:28:43,800 --> 00:28:46,770 >> رسید آیا این استاندارد است که این به عنوان شاخص 0 و پس از آن نوعی در 1 530 00:28:46,770 --> 00:28:47,660 و یا در پایان دارند؟ 531 00:28:47,660 --> 00:28:48,243 >> SPEAKER 1: شماره 532 00:28:48,243 --> 00:28:55,360 بنابراین اگر ما نگاهی به ما اعلامیه در اینجا، آن است که یک بولی است، 533 00:28:55,360 --> 00:28:59,490 پس از آن عنصر خود را در گره خود. 534 00:28:59,490 --> 00:29:03,331 پس از آن بخشی از آرایه نیست. 535 00:29:03,331 --> 00:29:03,830 سرد. 536 00:29:03,830 --> 00:29:08,370 بنابراین، هنگامی که ما به حرف ما و پایان ما در این آرایه، آنچه که ما می خواهیم انجام دهیم 537 00:29:08,370 --> 00:29:12,807 است انجام بررسی برای این یک کلمه است. 538 00:29:12,807 --> 00:29:14,390 و در این مورد، آن را بله بازگشت. 539 00:29:14,390 --> 00:29:17,220 540 00:29:17,220 --> 00:29:24,090 >> پس در آن توجه داشته باشید، ما می دانیم که "باغ وحش" - ما می دانیم که به عنوان انسان "باغ وحش" یک کلمه است، 541 00:29:24,090 --> 00:29:24,820 درست است؟ 542 00:29:24,820 --> 00:29:28,990 اما در اینجا سعی می کنم می گویند، نه، این طور نیست. 543 00:29:28,990 --> 00:29:33,980 و آن را می گویند که چون ما آن را به عنوان یک کلمه در اینجا تعیین شده نیست. 544 00:29:33,980 --> 00:29:40,440 اگرچه ما می توانیم عبور از طریق این آرایه، 545 00:29:40,440 --> 00:29:43,890 این را امتحان کنید می گویند که، نه، باغ وحش است در فرهنگ لغت خود را نمی 546 00:29:43,890 --> 00:29:47,070 چرا که ما نمی آن را به عنوان چنین تعیین شده است. 547 00:29:47,070 --> 00:29:52,870 >> بنابراین یک راه برای انجام that-- اوه، ببخشید، این یکی. 548 00:29:52,870 --> 00:29:59,450 بنابراین در این مورد، "باغ وحش" است یک کلمه است، اما آن را در تلاش های ما است. 549 00:29:59,450 --> 00:30:05,690 اما در این یکی، می گویند که ما آن را می خواهم معرفی کلمه "حمام"، چه اتفاقی می افتد 550 00:30:05,690 --> 00:30:08,260 این است که ما به دنبال through-- B، A، T. 551 00:30:08,260 --> 00:30:11,820 ما در این مجموعه، و ما به جستجو برای ساعت رفتن. 552 00:30:11,820 --> 00:30:15,220 >> در این مورد، زمانی که ما در اشاره گر نگاه در ساعت، 553 00:30:15,220 --> 00:30:17,890 آن را با اشاره به NULL، OK؟ 554 00:30:17,890 --> 00:30:20,780 بنابراین مگر اینکه آن را به صراحت اشاره به آرایه دیگر، 555 00:30:20,780 --> 00:30:25,000 شما فرض کنیم که تمام اشاره گرها در این آرایه ها با اشاره به تهی. 556 00:30:25,000 --> 00:30:28,270 بنابراین در این مورد، در ساعت است اشاره تهی بنابراین ما می تواند هر چیزی را انجام دهید، 557 00:30:28,270 --> 00:30:31,540 پس از آن نیز بازگشت نادرست، "حمام" است را در اینجا نیست. 558 00:30:31,540 --> 00:30:34,102 559 00:30:34,102 --> 00:30:35,810 بنابراین در حال حاضر ما در واقع هستید رفتن را از طریق رفتن 560 00:30:35,810 --> 00:30:39,790 چگونه در واقع ما می گویند که "باغ وحش" در تلاش ما است. 561 00:30:39,790 --> 00:30:42,920 چگونه ما وارد "باغ وحش" به تلاش های ما؟ 562 00:30:42,920 --> 00:30:47,810 بنابراین در راه همان است که ما با آغاز شده لیست پیوندی ما، ما را در ریشه شروع می شود. 563 00:30:47,810 --> 00:30:50,600 زمانی که در شک، در شروع ریشه این چیزها. 564 00:30:50,600 --> 00:30:53,330 >> و ما می گویند، OK، Z. 565 00:30:53,330 --> 00:30:55,650 Z در این وجود دارد، و آن را انجام می دهد. 566 00:30:55,650 --> 00:30:58,370 بنابراین شما در حال حرکت به آرایه بعدی خود، OK؟ 567 00:30:58,370 --> 00:31:01,482 و سپس در یک بعدی، ما می گوییم، خوب، نمی ای وجود دارد؟ 568 00:31:01,482 --> 00:31:03,000 آن را ندارد. 569 00:31:03,000 --> 00:31:04,330 این دوباره. 570 00:31:04,330 --> 00:31:08,670 >> و به همین ترتیب بعدی ما، ما گفته اید، OK، "باغ وحش" در حال حاضر در اینجا وجود دارد. 571 00:31:08,670 --> 00:31:12,440 همه ما باید انجام دهیم این مجموعه برابر است درست، این است که یک کلمه وجود دارد وجود دارد. 572 00:31:12,440 --> 00:31:15,260 اگر شما همه چیز را دنبال کرده بود، تا قبل از آن نقطه، 573 00:31:15,260 --> 00:31:17,030 یک کلمه است، بنابراین فقط تنظیم آن را به مانند برابر است. 574 00:31:17,030 --> 00:31:17,530 بله؟ 575 00:31:17,530 --> 00:31:22,550 >> رسید پس می کند که این معنی است که "کارشناسی" یک کلمه نیز می باشد؟ 576 00:31:22,550 --> 00:31:24,120 >> SPEAKER 1: شماره 577 00:31:24,120 --> 00:31:28,870 بنابراین در این مورد، "کارشناسی" ما را دریافت در اینجا، ما می گویند این است که آن یک کلمه، 578 00:31:28,870 --> 00:31:31,590 و آن را هنوز هم هیچ است. 579 00:31:31,590 --> 00:31:32,822 OK؟ 580 00:31:32,822 --> 00:31:33,740 Mmhmm؟ 581 00:31:33,740 --> 00:31:36,360 >> رسید بنابراین هنگامی که شما آن را کلمه و به شما می گویند بله، سپس آن را 582 00:31:36,360 --> 00:31:38,380 شامل رفتن به متر؟ 583 00:31:38,380 --> 00:31:42,260 >> SPEAKER 1: پس این را به انجام with-- شما بارگیری این در. 584 00:31:42,260 --> 00:31:43,640 به شما می گویند "باغ وحش" یک کلمه است. 585 00:31:43,640 --> 00:31:47,020 هنگامی که شما به check-- مانند، می گویند شما می خواهید بگویید، 586 00:31:47,020 --> 00:31:49,400 می کند "باغ وحش" در این فرهنگ وجود دارد؟ 587 00:31:49,400 --> 00:31:54,200 تو فقط رفتن برای جستجوی "باغ وحش" و سپس بررسی کنید که آیا آن یک کلمه است. 588 00:31:54,200 --> 00:31:57,291 شما هرگز به حرکت از طریق به متر چرا که نه 589 00:31:57,291 --> 00:31:58,290 آنچه شما دنبال آن هستید. 590 00:31:58,290 --> 00:32:02,690 591 00:32:02,690 --> 00:32:08,070 >> بنابراین اگر ما در واقع به خواست اضافه کردن "حمام" را به این امتحان، 592 00:32:08,070 --> 00:32:11,390 ما را همین کار را بکند همانطور که ما با انجام "باغ وحش" 593 00:32:11,390 --> 00:32:15,380 به جز ما می بینیم که وقتی ما سعی کنید و به ساعت، وجود ندارد. 594 00:32:15,380 --> 00:32:20,090 بنابراین شما می توانید از این به عنوان تلاش فکر می کنم برای اضافه کردن یک گره جدید به یک لیست پیوندی، 595 00:32:20,090 --> 00:32:27,210 بنابراین ما نیاز به اضافه کردن یکی دیگر یکی از این آرایه ها، مانند. 596 00:32:27,210 --> 00:32:35,670 و پس از آن چیزی است که ما انجام میدهیم فقط تنظیم ساعت عنصر این آرایه با اشاره به این. 597 00:32:35,670 --> 00:32:39,430 >> و سپس آنچه را که ما می خواهیم انجام دهیم که اینجا هستید؟ 598 00:32:39,430 --> 00:32:43,110 اضافه کردن آن را به درست برابر یک کلمه است. 599 00:32:43,110 --> 00:32:46,350 600 00:32:46,350 --> 00:32:48,150 سرد. 601 00:32:48,150 --> 00:32:48,700 من می دانم. 602 00:32:48,700 --> 00:32:51,170 تلاش ها هیجان انگیز ترین نیست. 603 00:32:51,170 --> 00:32:54,250 به من اعتماد کن، من می دانم. 604 00:32:54,250 --> 00:32:58,040 >> بنابراین یک چیز به درک با تلاش، من گفتم، آنها را بسیار موثر است. 605 00:32:58,040 --> 00:33:00,080 بنابراین ما آنها را دیده ام را تا یک تن از فضا. 606 00:33:00,080 --> 00:33:01,370 آنها نوع گیج کننده است. 607 00:33:01,370 --> 00:33:03,367 پس چرا ما تا کنون با استفاده از این؟ 608 00:33:03,367 --> 00:33:05,450 ما با استفاده از این زیرا آنها فوق العاده کارآمد می باشد. 609 00:33:05,450 --> 00:33:08,130 >> بنابراین اگر شما همیشه به دنبال تا یک کلمه، شما تنها 610 00:33:08,130 --> 00:33:10,450 محدود به طول کلمه. 611 00:33:10,450 --> 00:33:15,210 بنابراین اگر شما به دنبال یک کلمه این است که طول پنج، 612 00:33:15,210 --> 00:33:20,940 شما فقط باید به را در پنج ترین مقایسه، OK؟ 613 00:33:20,940 --> 00:33:25,780 بنابراین آن را می سازد آن را اساسا ثابت است. 614 00:33:25,780 --> 00:33:29,150 مانند درج و مراجعه در واقع زمان ثابت است. 615 00:33:29,150 --> 00:33:33,750 >> بنابراین اگر شما همیشه می توانید دریافت کنید چیزی در زمان ثابت، 616 00:33:33,750 --> 00:33:35,150 که به خوبی به عنوان آن می شود. 617 00:33:35,150 --> 00:33:37,990 شما نمی توانید بهتر از زمان ثابت برای این چیزها. 618 00:33:37,990 --> 00:33:43,150 به طوری که یکی از است علامت + بزرگ از تلاش می کند. 619 00:33:43,150 --> 00:33:46,780 >> اما مقدار زیادی از فضای است. 620 00:33:46,780 --> 00:33:50,380 بنابراین شما نوع باید تصمیم بگیرید چه چیزی برای شما مهم تر است. 621 00:33:50,380 --> 00:33:54,700 و در کامپیوترهای امروزی، فضایی که سعی کنید ممکن است تا 622 00:33:54,700 --> 00:33:57,740 شاید تاثیر نمی گذارد شما که زیاد است، اما شاید 623 00:33:57,740 --> 00:34:01,350 شما با چیزی است که همه چیز دور و خیلی بیشتر، 624 00:34:01,350 --> 00:34:02,810 و سعی کنید فقط منطقی نیست. 625 00:34:02,810 --> 00:34:03,000 بله؟ 626 00:34:03,000 --> 00:34:05,610 >> رسید صبر کنید، بنابراین شما باید 26 حروف در هر یک؟ 627 00:34:05,610 --> 00:34:07,440 >> SPEAKER 1: Mmhmm. 628 00:34:07,440 --> 00:34:08,570 بله، شما باید 26. 629 00:34:08,570 --> 00:34:16,984 شما باید برخی از نشانگر کلمه و پس از آن است شما باید اشاره گر 26 در هر یک. 630 00:34:16,984 --> 00:34:17,775 و آنها point-- 631 00:34:17,775 --> 00:34:20,280 >> رسید و هر 26، آنها هر کدام 26؟ 632 00:34:20,280 --> 00:34:21,500 >> SPEAKER 1: بله. 633 00:34:21,500 --> 00:34:27,460 و به همین دلیل، به عنوان شما می توانید ببینید، آن را کاملا به سرعت گسترش می یابد. 634 00:34:27,460 --> 00:34:28,130 همه راست. 635 00:34:28,130 --> 00:34:32,524 بنابراین ما در حال رفتن به به درختان می کنید، که من احساس می کنم دوست دارم این است ساده تر و احتمالا خواهد شد 636 00:34:32,524 --> 00:34:36,150 شود یک تاخیر کمی خوب از تلاش می کند وجود دارد. 637 00:34:36,150 --> 00:34:39,620 پس امیدوارم بیشتر از شما قبل دیده اند، یک درخت. 638 00:34:39,620 --> 00:34:41,820 نه مثل خیلی آنهایی که در خارج، که من 639 00:34:41,820 --> 00:34:44,340 آیا اگر کسی نمی دانم خارج از منزل اخیرا رفت. 640 00:34:44,340 --> 00:34:49,230 من رفتم سیب چیدن این آخر هفته، و آه خدای من، آن زیبا بود. 641 00:34:49,230 --> 00:34:52,250 من برگ را نمی دانم که می تواند بسیار است. 642 00:34:52,250 --> 00:34:53,610 >> پس این فقط یک درخت است، درست است؟ 643 00:34:53,610 --> 00:34:56,790 این فقط برخی از گره است، و آن اشاره به یک دسته از گره های دیگر. 644 00:34:56,790 --> 00:34:59,570 همانطور که شما در اینجا مشاهده می کنید، این است نوع تکرار. 645 00:34:59,570 --> 00:35:03,720 گره اشاره به گره است نوع جوهر بسیاری از ساختمان داده. 646 00:35:03,720 --> 00:35:06,670 این فقط در مورد چگونه ما بستگی دارد آنها را به یکدیگر اشاره 647 00:35:06,670 --> 00:35:08,600 و چگونه ما گذشتن از طریق آنها و ما چگونه 648 00:35:08,600 --> 00:35:14,500 درج چیزهایی است که تعیین ویژگی های مختلف آنها. 649 00:35:14,500 --> 00:35:17,600 >> پس فقط برخی از اصطلاحات، که من قبل از استفاده می شود. 650 00:35:17,600 --> 00:35:20,010 بنابراین ریشه است هر آنچه در بالا بسیار. 651 00:35:20,010 --> 00:35:21,200 این جایی که ما همیشه شروع می شود. 652 00:35:21,200 --> 00:35:23,610 شما می توانید از آن به عنوان سر هم فکر می کنم. 653 00:35:23,610 --> 00:35:28,750 اما برای درختان، ما به تمایل آن را به عنوان ریشه مراجعه کنید. 654 00:35:28,750 --> 00:35:32,820 >> هر چیزی در here-- پایین در بسیار، بسیار bottom-- 655 00:35:32,820 --> 00:35:34,500 برگ در نظر گرفته شده. 656 00:35:34,500 --> 00:35:37,210 پس از آن همراه با چیزی که تمامی درخت، درست است؟ 657 00:35:37,210 --> 00:35:39,860 برگ در لبه های درخت خود را می باشد. 658 00:35:39,860 --> 00:35:45,820 >> و سپس ما نیز یک زن و شوهر از نظر در مورد گره در رابطه با بحث 659 00:35:45,820 --> 00:35:46,680 به هر یک از دیگر. 660 00:35:46,680 --> 00:35:49,700 بنابراین ما باید پدر و مادر، کودکان، و خواهر و برادر. 661 00:35:49,700 --> 00:35:56,260 بنابراین در این مورد، 3 است پدر و مادر از 5، 6، و 7. 662 00:35:56,260 --> 00:36:00,370 بنابراین پدر و مادر است هر چه باشد یک مرحله بالاتر از هر آنچه که شما هستید 663 00:36:00,370 --> 00:36:02,940 با اشاره به، به طوری که فقط مثل یک شجره نامه. 664 00:36:02,940 --> 00:36:07,090 خوشبختانه، این همه کمی است کمی درک تر از تلاش می کند. 665 00:36:07,090 --> 00:36:10,970 >> خواهر و برادر هستند هر که پدر و مادر همان، درست است؟ 666 00:36:10,970 --> 00:36:13,470 آنها در همان سطح در اینجا. 667 00:36:13,470 --> 00:36:16,960 و پس از آن، به عنوان من بود گفت: کودکان تنها 668 00:36:16,960 --> 00:36:22,630 هر یک قدم زیر است گره مورد نظر، OK؟ 669 00:36:22,630 --> 00:36:23,470 سرد. 670 00:36:23,470 --> 00:36:25,610 بنابراین یک درخت دودویی. 671 00:36:25,610 --> 00:36:31,450 هر کسی می تواند خطر حدس بر روی یکی از ویژگی های درخت دودویی؟ 672 00:36:31,450 --> 00:36:32,770 >> رسید حداکثر دو برگ. 673 00:36:32,770 --> 00:36:33,478 >> SPEAKER 1: درست است. 674 00:36:33,478 --> 00:36:34,640 بنابراین حداکثر دو برگ. 675 00:36:34,640 --> 00:36:39,730 بنابراین در این یکی قبل از ما این بود که تا به حال سه، اما در یک درخت دودویی، 676 00:36:39,730 --> 00:36:45,000 شما باید حداکثر دو کودکان در هر پدر و مادر، درست است؟ 677 00:36:45,000 --> 00:36:46,970 یکی دیگر وجود دارد ویژگی جالب است. 678 00:36:46,970 --> 00:36:51,550 آیا کسی می داند که؟ 679 00:36:51,550 --> 00:36:52,620 درخت دودویی. 680 00:36:52,620 --> 00:37:00,350 >> بنابراین یک درخت دودویی خواهد همه چیز در the-- این یکی نمی sorted-- 681 00:37:00,350 --> 00:37:05,320 اما در یک درخت دودویی طبقه بندی شده اند، همه چیز را در سمت راست 682 00:37:05,320 --> 00:37:08,530 بیشتر از پدر و مادر است، و همه چیز را در سمت چپ 683 00:37:08,530 --> 00:37:10,035 کمتر از پدر و مادر است. 684 00:37:10,035 --> 00:37:15,690 و است که یک مسابقه سوال قبل، خیلی خوب می دانند. 685 00:37:15,690 --> 00:37:19,500 پس راه این تعریف می کنیم، دوباره، ما گره دیگر. 686 00:37:19,500 --> 00:37:21,880 این به نظر می رسد بسیار شبیه به چه چیزی؟ 687 00:37:21,880 --> 00:37:28,336 688 00:37:28,336 --> 00:37:28,836 مضاعف 689 00:37:28,836 --> 00:37:29,320 >> رسید لینک لیست 690 00:37:29,320 --> 00:37:31,100 >> SPEAKER 1: لیست پیوندی دو، درست است؟ 691 00:37:31,100 --> 00:37:33,690 بنابراین اگر ما این جایگزین با قبلی و بعدی، 692 00:37:33,690 --> 00:37:35,670 این امر می تواند یک لیست مضاعف مرتبط. 693 00:37:35,670 --> 00:37:40,125 اما در این مورد، ما در واقع ترک کرده اند و حق و آن نیست. 694 00:37:40,125 --> 00:37:41,500 در غیر این صورت، آن را دقیقا همان. 695 00:37:41,500 --> 00:37:43,374 ما هنوز عنصر دارند شما دنبال آن هستید، 696 00:37:43,374 --> 00:37:45,988 و شما فقط باید دو اشاره گر رفتن به هر بعدی. 697 00:37:45,988 --> 00:37:49,210 698 00:37:49,210 --> 00:37:51,870 بله، درخت جستجوی دودویی تا. 699 00:37:51,870 --> 00:37:57,665 در صورت توجه به، همه چیز را در حق در اینجا than-- بیشتر است 700 00:37:57,665 --> 00:37:59,850 یا همه چیز را بلافاصله به حق در اینجا 701 00:37:59,850 --> 00:38:02,840 بیشتر از، همه چیز است در اینجا کمتر از است. 702 00:38:02,840 --> 00:38:06,980 703 00:38:06,980 --> 00:38:14,000 >> بنابراین اگر ما به جستجو از طریق آن بودند، باید بسیار نزدیک به جستجوی دودویی نگاه 704 00:38:14,000 --> 00:38:14,910 در اینجا، درست است؟ 705 00:38:14,910 --> 00:38:17,640 جز به جای دنبال در نیمی از آرایه، 706 00:38:17,640 --> 00:38:21,720 ما فقط به دنبال در هر دو سمت چپ سمت یا سمت راست درخت. 707 00:38:21,720 --> 00:38:24,850 پس از آن می شود کمی ساده تر، من فکر می کنم. 708 00:38:24,850 --> 00:38:29,300 >> بنابراین اگر ریشه خود NULL است، بدیهی است که آن را فقط نادرست است. 709 00:38:29,300 --> 00:38:33,470 و اگر آن وجود دارد، بدیهی است که این درست است. 710 00:38:33,470 --> 00:38:35,320 اگر آن را کمتر از، ما سمت چپ را جستجو کنید. 711 00:38:35,320 --> 00:38:37,070 اگر آن را بیش از، ما حق را جستجو کنید. 712 00:38:37,070 --> 00:38:39,890 این دقیقا مانند جستجوی دودویی، فقط یک ساختمان داده های مختلف 713 00:38:39,890 --> 00:38:40,600 که ما با استفاده از. 714 00:38:40,600 --> 00:38:42,790 در عوض از یک آرایه، این فقط یک درخت دودویی است. 715 00:38:42,790 --> 00:38:45,820 716 00:38:45,820 --> 00:38:48,090 >> OK، پشته. 717 00:38:48,090 --> 00:38:51,550 و نیز، آن را مانند به نظر می رسد ما ممکن است یک کمی از زمان داشته باشد. 718 00:38:51,550 --> 00:38:54,460 اگر ما، من خوشحال میرم بیش از هر یک از این دوباره. 719 00:38:54,460 --> 00:38:56,856 خوب، پس پشته. 720 00:38:56,856 --> 00:39:02,695 آیا کسی به یاد داشته باشید آنچه که stacks-- هر ویژگی های یک پشته؟ 721 00:39:02,695 --> 00:39:05,550 722 00:39:05,550 --> 00:39:10,400 >> OK، بنابراین بسیاری از ما، من فکر می کنم، غذا خوردن در ناهار خوری halls-- 723 00:39:10,400 --> 00:39:13,100 تا آنجا که ممکن است ما را به دوست ندارند. 724 00:39:13,100 --> 00:39:16,900 اما بدیهی است، شما می توانید از یک پشته فکر می کنم به معنای واقعی کلمه فقط به عنوان یک پشته از سینی 725 00:39:16,900 --> 00:39:18,460 و یا یک پشته از همه چیز. 726 00:39:18,460 --> 00:39:21,820 و آنچه که مهم است برای تحقق بخشیدن به این است که آن را 727 00:39:21,820 --> 00:39:26,850 something-- مشخصه که ما آنرا by-- LIFO می باشد. 728 00:39:26,850 --> 00:39:28,450 آیا کسی می داند که چه چیزی برای ایستد؟ 729 00:39:28,450 --> 00:39:29,070 Mmhmm؟ 730 00:39:29,070 --> 00:39:30,650 >> رسید در آخرین، اولین بار. 731 00:39:30,650 --> 00:39:32,250 >> SPEAKER 1: راست، در آخرین، اولین بار. 732 00:39:32,250 --> 00:39:36,585 بنابراین اگر ما می دانیم، اگر ما انباشته چیز تا، ساده ترین چیزی که برای گرفتن off-- 733 00:39:36,585 --> 00:39:39,570 و شاید تنها چیزی که ما می توانیم با شتاب خاموش اگر پشته ما enough-- بزرگ است 734 00:39:39,570 --> 00:39:40,850 که عنصر بالا است. 735 00:39:40,850 --> 00:39:43,460 بنابراین هر آنچه در قرار داده شد last-- که ما در اینجا مشاهده می کنید، 736 00:39:43,460 --> 00:39:46,370 هر رانده شد در اکثر recently-- است 737 00:39:46,370 --> 00:39:51,160 رفتن به اولین چیزی که ما پاپ کردن، OK؟ 738 00:39:51,160 --> 00:39:56,324 >> بنابراین آنچه که ما را در اینجا است یکی دیگر از ساختار typedef. 739 00:39:56,324 --> 00:39:58,740 این است که واقعا فقط دوست تصادف البته در ساختار داده ها، 740 00:39:58,740 --> 00:40:01,650 بنابراین در بسیاری پرتاب در شما بچه ها وجود دارد. 741 00:40:01,650 --> 00:40:02,540 من می دانم. 742 00:40:02,540 --> 00:40:04,970 بنابراین هنوز ساختار دیگری است. 743 00:40:04,970 --> 00:40:06,740 ماهواره برای سازه. 744 00:40:06,740 --> 00:40:16,660 >> و در این مورد، برخی از اشاره گر است به آرایه ای است که برخی از ظرفیت. 745 00:40:16,660 --> 00:40:20,830 پس این نشان دهنده پشته ما در اینجا، مانند آرایه واقعی ما 746 00:40:20,830 --> 00:40:22,520 که برگزاری عناصر است. 747 00:40:22,520 --> 00:40:24,850 و سپس در اینجا ما به برخی از اندازه. 748 00:40:24,850 --> 00:40:31,170 >> و به طور معمول، شما می خواهید به نگه داشتن پیگیری چقدر بزرگ پشته شما است 749 00:40:31,170 --> 00:40:36,180 زیرا آنچه آن را اجازه می دهد تا شما را به انجام است اگر شما می دانید به اندازه، 750 00:40:36,180 --> 00:40:39,170 آن اجازه می دهد تا شما را به می گویند، OK، من در ظرفیت هستم؟ 751 00:40:39,170 --> 00:40:40,570 آیا من می توانم هر چیزی بیشتر اضافه کنید؟ 752 00:40:40,570 --> 00:40:44,650 و آن را نیز به شما می گوید که در آن بالای پشته شما 753 00:40:44,650 --> 00:40:48,180 است، بنابراین شما می دانید آنچه شما در واقع می تواند خاموش کنند. 754 00:40:48,180 --> 00:40:51,760 و این در واقع به رفتن روشن کمی بیشتر در اینجا. 755 00:40:51,760 --> 00:40:57,350 >> بنابراین برای فشار، یک چیز، اگر شما تا کنون برای اجرای فشار بودند، 756 00:40:57,350 --> 00:41:01,330 که من فقط گفت شد، خود را پشته تا به اندازه محدود، درست است؟ 757 00:41:01,330 --> 00:41:03,990 آرایه ما ظرفیت داشت. 758 00:41:03,990 --> 00:41:04,910 این آرایه است. 759 00:41:04,910 --> 00:41:08,930 این یک اندازه ثابت است، بنابراین ما نیاز به مطمئن شوید که ما در حال دادن نه بیشتر 760 00:41:08,930 --> 00:41:11,950 به آرایه ما از ما در واقع فضا برای دارند. 761 00:41:11,950 --> 00:41:16,900 >> بنابراین، هنگامی که شما در حال ایجاد یک فشار تابع، اولین چیزی که شما باید انجام دهید این است که می گویند، OK، 762 00:41:16,900 --> 00:41:18,570 من باید در فضای پشته من؟ 763 00:41:18,570 --> 00:41:23,330 چرا که اگر من را انجام دهد، با عرض پوزش، من می توانم عنصر خود را ذخیره نمی کند. 764 00:41:23,330 --> 00:41:28,980 اگر من انجام دهید، سپس شما می خواهید برای ذخیره آن را در بالای پشته، درست است؟ 765 00:41:28,980 --> 00:41:31,325 >> و این دلیل است که برای پیگیری از اندازه ما است. 766 00:41:31,325 --> 00:41:35,290 اگر ما آهنگ از اندازه ما را حفظ کند، ما نمی دانیم که در آن به آن قرار داده است. 767 00:41:35,290 --> 00:41:39,035 ما نمی دانیم که چگونه بسیاری از چیزهای نه در آرایه های ما در حال حاضر می باشد. 768 00:41:39,035 --> 00:41:41,410 مانند بدیهی است راه وجود دارد. که شاید شما می توانید آن را انجام دهید. 769 00:41:41,410 --> 00:41:44,610 شما می توانید همه چیز را مقداردهی اولیه به NULL و سپس برای آخرین NULL را بررسی کنید، 770 00:41:44,610 --> 00:41:47,950 اما یک چیز بسیار ساده تر است فقط می گویند، OK، پیگیری از اندازه. 771 00:41:47,950 --> 00:41:51,840 مانند من می دانم که من چهار عنصر دارند در آرایه من است، پس چیزی که بعد از 772 00:41:51,840 --> 00:41:55,930 که ما را، ما هستیم رفتن به فروشگاه در صفحه اول 4. 773 00:41:55,930 --> 00:42:00,940 و پس از آن، البته، این بدان معنی است که شما با موفقیت تحت فشار قرار دادند ام چیزی 774 00:42:00,940 --> 00:42:03,320 بر روی پشته خود را، شما می خواهید برای افزایش اندازه 775 00:42:03,320 --> 00:42:08,880 به طوری که شما می دانید که در آن شما هستند تا که شما می توانید کارهای بیشتری در فشار. 776 00:42:08,880 --> 00:42:12,730 >> بنابراین اگر ما در حال تلاش برای پاپ چیزی پشته، 777 00:42:12,730 --> 00:42:16,072 آنچه ممکن است اولین چیزی که که ما می خواهیم برای چک کردن؟ 778 00:42:16,072 --> 00:42:18,030 شما در حال تلاش برای گرفتن چیزی پشته شما. 779 00:42:18,030 --> 00:42:21,710 780 00:42:21,710 --> 00:42:24,781 آیا مطمئن هستید که وجود دارد چیزی در پشته خود را؟ 781 00:42:24,781 --> 00:42:25,280 شماره 782 00:42:25,280 --> 00:42:26,894 پس چه ممکن است که ما می خواهیم به بررسی؟ 783 00:42:26,894 --> 00:42:27,810 >> رسید [نامفهوم]. 784 00:42:27,810 --> 00:42:29,880 SPEAKER 1: بررسی برای اندازه؟ 785 00:42:29,880 --> 00:42:31,840 اندازه. 786 00:42:31,840 --> 00:42:38,520 بنابراین ما می خواهیم به بررسی کنید اندازه ما بزرگتر از 0 است، OK؟ 787 00:42:38,520 --> 00:42:44,970 و اگر چنین باشد، پس از آن ما می خواهیم به کاهش اندازه خود را با 0 و بازگشت است. 788 00:42:44,970 --> 00:42:45,840 چرا؟ 789 00:42:45,840 --> 00:42:49,950 >> در یکی از اولین ما هل دادن، ما آن را تحت فشار قرار دادند 790 00:42:49,950 --> 00:42:52,460 بر روی اندازه و اندازه و سپس به روز شد. 791 00:42:52,460 --> 00:42:57,850 در این مورد، ما یک طرح ساده اندازه و سپس به مصرف آن را خاموش، برداشت آن 792 00:42:57,850 --> 00:42:58,952 از آرایه ما است. 793 00:42:58,952 --> 00:42:59,826 چرا ممکن است ما انجام این کار؟ 794 00:42:59,826 --> 00:43:04,800 795 00:43:04,800 --> 00:43:11,811 بنابراین اگر من یک چیز در پشته من، چه خواهد بود اندازه من در آن نقطه؟ 796 00:43:11,811 --> 00:43:13,140 1. 797 00:43:13,140 --> 00:43:15,180 >> و در جایی که عنصر 1 ذخیره می شود؟ 798 00:43:15,180 --> 00:43:17,621 در چه شاخص؟ 799 00:43:17,621 --> 00:43:18,120 رسید 0. 800 00:43:18,120 --> 00:43:19,060 SPEAKER 1: 0. 801 00:43:19,060 --> 00:43:22,800 بنابراین در این مورد، ما همیشه نیاز به sure-- 802 00:43:22,800 --> 00:43:27,630 به جای بازگشت اندازه منهای 1، چون ما 803 00:43:27,630 --> 00:43:31,730 می دانیم که عنصر ما رفتن به در 1 کمتر ذخیره می شود 804 00:43:31,730 --> 00:43:34,705 هر اندازه ما است، این فقط طول می کشد مراقبت از آن. 805 00:43:34,705 --> 00:43:36,080 این راه کمی ظریف تر است. 806 00:43:36,080 --> 00:43:41,220 و ما فقط واحد کم میکنیم به ما اندازه و اندازه و سپس بازگشت. 807 00:43:41,220 --> 00:43:42,330 Mmhmm؟ 808 00:43:42,330 --> 00:43:45,300 >> رسید من فقط به طور کلی حدس می زنم، چرا این ساختار داده ها 809 00:43:45,300 --> 00:43:47,800 مفید باشد؟ 810 00:43:47,800 --> 00:43:50,660 >> SPEAKER 1: این متن شما بستگی دارد. 811 00:43:50,660 --> 00:43:57,420 بنابراین برای برخی از نظریه، اگر شما در حال کار with-- OK، 812 00:43:57,420 --> 00:44:02,750 به من اجازه دیدن یک یک مفید وجود دارد که به بیش از خارج مفید است 813 00:44:02,750 --> 00:44:05,420 از CS. 814 00:44:05,420 --> 00:44:15,780 با پشته، هر زمان که شما نیاز دارید برای پیگیری چیزی است که 815 00:44:15,780 --> 00:44:20,456 است اخیرا اضافه شده است زمانی که شما در حال رفتن به می خواهید به استفاده از یک پشته. 816 00:44:20,456 --> 00:44:24,770 >> و من نمی توانم از فکر می کنم خوب است به عنوان مثال از آن در حال حاضر. 817 00:44:24,770 --> 00:44:29,955 اما هر زمان که جدید ترین چیزی که مهم است برای شما، 818 00:44:29,955 --> 00:44:31,705 که زمانی که یک پشته است است که مفید باشد. 819 00:44:31,705 --> 00:44:35,797 820 00:44:35,797 --> 00:44:39,330 من سعی اگر به فکر می کنم این یکی خوب برای این وجود دارد. 821 00:44:39,330 --> 00:44:43,720 اگر من از یک مثال خوب در آینده فکر می کنم 20 دقیقه، من قطعا به شما خواهد گفت. 822 00:44:43,720 --> 00:44:49,455 >> اما به طور کلی، اگر چیزی وجود داشته باشد، مثل من گفت که بیشتر، که در آن جدید ترین 823 00:44:49,455 --> 00:44:52,470 مهم است، که که در آن پشته به بازی می آید. 824 00:44:52,470 --> 00:44:58,860 در حالی که صف ها از نوع مخالف است. 825 00:44:58,860 --> 00:44:59,870 و همه سگ ها کم است. 826 00:44:59,870 --> 00:45:00,890 آیا این بزرگ، درست است؟ 827 00:45:00,890 --> 00:45:03,299 من مثل من باید احساس فقط یک ویدیو اسم حیوان دست اموز دارند 828 00:45:03,299 --> 00:45:05,090 درست در وسط از بخش برای شما بچه ها 829 00:45:05,090 --> 00:45:08,870 به این دلیل که بخش های شدید است. 830 00:45:08,870 --> 00:45:10,480 >> بنابراین یک صف. 831 00:45:10,480 --> 00:45:12,710 اساسا یک صف است مانند یک خط است. 832 00:45:12,710 --> 00:45:15,780 شما بچه ها من استفاده مطمئن از این روزمره هستم، فقط در غذاخوری ما می خواهم. 833 00:45:15,780 --> 00:45:18,160 بنابراین ما باید به در و سینی ما، من 834 00:45:18,160 --> 00:45:21,260 اطمینان حاصل کنید که در صف انتظار به کش رفتن و یا مواد غذایی خود را. 835 00:45:21,260 --> 00:45:24,650 >> بنابراین تفاوت در اینجا این است که این FIFO است. 836 00:45:24,650 --> 00:45:30,090 بنابراین اگر LIFO گذشته در بود، برای اولین بار از، FIFO است برای اولین بار در، اولین بار. 837 00:45:30,090 --> 00:45:33,400 پس این است که هر آنچه شما قرار داده در اول شما مهم است. 838 00:45:33,400 --> 00:45:35,540 بنابراین اگر شما در انتظار بودند در line-- می تواند به شما 839 00:45:35,540 --> 00:45:39,130 تصور کنید اگر شما به رفت رم آی فون جدید 840 00:45:39,130 --> 00:45:42,800 و آن را به یک پشته بود که در آن آخرین فرد خط اول آن را کردم، 841 00:45:42,800 --> 00:45:44,160 مردم یکدیگر را می کشند. 842 00:45:44,160 --> 00:45:49,800 >> بنابراین FIFO، ما همه بسیار آشنا با در اینجا دنیای واقعی، 843 00:45:49,800 --> 00:45:54,930 و از آن همه است که با واقع نوع دوباره این خط کل 844 00:45:54,930 --> 00:45:56,900 و صف بندی ساختار. 845 00:45:56,900 --> 00:46:02,390 بنابراین در حالی که با پشته، ما باید فشار و پاپ. 846 00:46:02,390 --> 00:46:06,440 با یک صف، ما در نوبت قراردادن و dequeue. 847 00:46:06,440 --> 00:46:10,910 بنابراین در نوبت قراردادن و اساسا به معنای آن را قرار داده و بر روی پشت، 848 00:46:10,910 --> 00:46:13,680 و ابزار dequeue را از جلو. 849 00:46:13,680 --> 00:46:18,680 بنابراین ساختار داده های ما است کمی پیچیده تر. 850 00:46:18,680 --> 00:46:21,060 ما یک چیز دوم برای پیگیری. 851 00:46:21,060 --> 00:46:25,950 >> بنابراین بدون سر، این دقیقا پشته، درست است؟ 852 00:46:25,950 --> 00:46:27,900 این همان ساختار به عنوان یک پشته است. 853 00:46:27,900 --> 00:46:32,480 تنها چیزی که در حال حاضر ما متفاوت است این سر، که شما چه فکر میکنید 854 00:46:32,480 --> 00:46:34,272 رفتن به پیگیری؟ 855 00:46:34,272 --> 00:46:35,510 >> رسید یکی از اولین. 856 00:46:35,510 --> 00:46:38,685 >> SPEAKER 1: راست، اولین چیزی که ما در قرار داده است. 857 00:46:38,685 --> 00:46:41,130 سر صف ما. 858 00:46:41,130 --> 00:46:42,240 هر کس برای اولین بار در خط. 859 00:46:42,240 --> 00:46:45,300 860 00:46:45,300 --> 00:46:49,420 همه حق است، اگر ما در نوبت قراردادن. 861 00:46:49,420 --> 00:46:52,720 862 00:46:52,720 --> 00:46:55,920 باز هم، با هر یک از این ساختمان داده، 863 00:46:55,920 --> 00:46:59,760 از آنجایی که ما در حال برخورد با یک آرایه، ما نیاز به بررسی در صورتی که ما باید فضا. 864 00:46:59,760 --> 00:47:03,290 >> این نوع مانند من گفتن شما بچه ها، اگر شما برای باز کردن یک فایل، 865 00:47:03,290 --> 00:47:04,760 شما باید برای null به. 866 00:47:04,760 --> 00:47:08,330 با هر یک از این دسته و صف، شما باید 867 00:47:08,330 --> 00:47:13,420 برای دیدن اگر فضا وجود دارد زیرا ما برخورد با یک آرایه اندازه ثابت، 868 00:47:13,420 --> 00:47:16,030 به ما می بینیم here-- 0، 1 تمام تا 5. 869 00:47:16,030 --> 00:47:20,690 بنابراین آنچه که ما در این مورد انجام چک است برای دیدن اگر ما هنوز هم فضای دارند. 870 00:47:20,690 --> 00:47:23,110 آیا اندازه ما کمتر از ظرفیت؟ 871 00:47:23,110 --> 00:47:28,480 >> اگر چنین است، ما نیاز به ذخیره سازی آن در دم و ما به اندازه ما را به روز. 872 00:47:28,480 --> 00:47:30,250 پس چه ممکن است دم در این مورد خواهد بود؟ 873 00:47:30,250 --> 00:47:32,360 این صراحت نوشته شده است. 874 00:47:32,360 --> 00:47:33,380 چگونه آن را ذخیره کنیم؟ 875 00:47:33,380 --> 00:47:34,928 دم چه خواهد بود؟ 876 00:47:34,928 --> 00:47:38,600 877 00:47:38,600 --> 00:47:40,190 >> بنابراین اجازه دهید از طریق این مثال راه رفتن. 878 00:47:40,190 --> 00:47:44,590 پس این آرایه ای از اندازه 6 است، درست است؟ 879 00:47:44,590 --> 00:47:49,220 و ما در حال حاضر، اندازه ما 5 است. 880 00:47:49,220 --> 00:47:55,240 و هنگامی که ما آن را در، این رفتن به شاخص پنجم، سمت راست بروید؟ 881 00:47:55,240 --> 00:47:57,030 بنابراین در دم ذخیره کنید. 882 00:47:57,030 --> 00:48:05,600 >> راه دیگر برای ارسال دم را فقط شود آرایه ما در شاخص اندازه، درست است؟ 883 00:48:05,600 --> 00:48:07,560 این اندازه 5 است. 884 00:48:07,560 --> 00:48:11,490 نکته بعدی این است برای رفتن به 5. 885 00:48:11,490 --> 00:48:12,296 سرد؟ 886 00:48:12,296 --> 00:48:13,290 OK. 887 00:48:13,290 --> 00:48:16,350 این می شود کمی پیچیده تر است زمانی که ما شروع به خراب با سر. 888 00:48:16,350 --> 00:48:17,060 بله؟ 889 00:48:17,060 --> 00:48:20,090 >> رسید که آیا معنی است که ما می توانست یک آرایه اعلام کرد که 890 00:48:20,090 --> 00:48:23,880 پنج عنصر بلند بود و پس از آن ما در حال اضافه کردن بر روی آن؟ 891 00:48:23,880 --> 00:48:24,730 >> SPEAKER 1: شماره 892 00:48:24,730 --> 00:48:27,560 بنابراین در این مورد، این است که یک پشته است. 893 00:48:27,560 --> 00:48:31,760 این امر می تواند به اعلام به عنوان آرایه ای از اندازه 6. 894 00:48:31,760 --> 00:48:37,120 و در این مورد، ما فقط باید یک فضای سمت چپ. 895 00:48:37,120 --> 00:48:42,720 >> خوب، پس یک چیز است در این صورت، اگر سر ما است در 0، 896 00:48:42,720 --> 00:48:45,270 پس ما فقط می توانید آن را در اندازه اضافه کنید. 897 00:48:45,270 --> 00:48:51,020 اما می شود کمی سختتر چون در واقع، آنها 898 00:48:51,020 --> 00:48:52,840 یک اسلاید ندارد برای این کار، بنابراین من قصد دارم 899 00:48:52,840 --> 00:48:56,670 به منظور جلب یک دلیل آن را نمی کاملا ساده است که یک بار شما 900 00:48:56,670 --> 00:48:59,230 شروع شدن از همه چیز خلاص شوید. 901 00:48:59,230 --> 00:49:03,920 بنابراین در حالی که با یک پشته شما فقط باید 902 00:49:03,920 --> 00:49:08,920 در مورد آنچه که اندازه است نگران زمانی که شما با اضافه کردن چیزی در، 903 00:49:08,920 --> 00:49:15,710 با یک صف شما همچنین نیاز به ایجاد مطمئن شوید که سر خود را به حساب، 904 00:49:15,710 --> 00:49:20,760 به خاطر یک چیز جالب در مورد صف این است که اگر شما در ظرفیت نیست، 905 00:49:20,760 --> 00:49:23,040 شما در واقع می تواند آن را به بسته بندی کردن اطراف. 906 00:49:23,040 --> 00:49:28,810 >> OK، بنابراین thing-- آه، این گچ وحشتناک است. 907 00:49:28,810 --> 00:49:31,815 یک چیز را به در نظر گرفتن مورد است. 908 00:49:31,815 --> 00:49:35,514 909 00:49:35,514 --> 00:49:37,140 ما فقط انجام پنج. 910 00:49:37,140 --> 00:49:41,810 OK، بنابراین ما در حال رفتن به می گویند سر است که در اینجا. 911 00:49:41,810 --> 00:49:46,140 این 0، 1، 2، 3، 4 می باشد. 912 00:49:46,140 --> 00:49:54,210 >> سر وجود دارد، و لطفا همه چیز در آنها را داشته باشد. 913 00:49:54,210 --> 00:49:58,340 و ما می خواهیم به اضافه کردن چیزی در، درست است؟ 914 00:49:58,340 --> 00:50:01,170 بنابراین چیزی که ما به نیاز می دانم این است که سر این است که همیشه 915 00:50:01,170 --> 00:50:05,620 رفتن به حرکت در این راه و سپس حلقه در اطراف، OK؟ 916 00:50:05,620 --> 00:50:10,190 >> پس این صف جای، درست است؟ 917 00:50:10,190 --> 00:50:13,950 آن را تا به فضا در ابتدا، نوع مخالف از این. 918 00:50:13,950 --> 00:50:17,920 بنابراین آنچه که ما باید انجام دهیم این است که ما نیاز به محاسبه دم. 919 00:50:17,920 --> 00:50:20,530 اگر شما می دانید که شما سر منتقل نمی دم 920 00:50:20,530 --> 00:50:24,630 فقط آرایه خود را در است شاخص از اندازه. 921 00:50:24,630 --> 00:50:30,000 >> اما در واقع، اگر شما با استفاده از یک صف، سر خود را احتمالا در حال بروز رسانی. 922 00:50:30,000 --> 00:50:33,890 بنابراین آنچه که باید انجام دهید این است در واقع دم محاسبه. 923 00:50:33,890 --> 00:50:39,990 بنابراین آنچه که ما انجام این فرمول این است در اینجا، که من قصد دارم به شما اجازه 924 00:50:39,990 --> 00:50:42,680 بچه ها فکر می کنم، و پس از آن ما در مورد آن صحبت کنید. 925 00:50:42,680 --> 00:50:49,567 926 00:50:49,567 --> 00:50:50,400 بنابراین این ظرفیت است. 927 00:50:50,400 --> 00:50:55,890 928 00:50:55,890 --> 00:50:59,660 >> پس این در واقع شما یک راه برای انجام آن به شما بدهد. 929 00:50:59,660 --> 00:51:03,205 930 00:51:03,205 --> 00:51:04,330 از آنجا که در این مورد، چه؟ 931 00:51:04,330 --> 00:51:09,205 سر ما این است که در 1، اندازه ما 4 است. 932 00:51:09,205 --> 00:51:11,760 933 00:51:11,760 --> 00:51:18,490 اگر ما وزارت دفاع که توسط 5، ما 0، که جایی است که ما باید ورودی آن است. 934 00:51:18,490 --> 00:51:23,320 935 00:51:23,320 --> 00:51:26,080 >> بنابراین پس از آن در مورد آینده، اگر ما برای انجام این کار، 936 00:51:26,080 --> 00:51:33,390 ما می گوییم، خوب، اجازه دهید چیزی dequeue. 937 00:51:33,390 --> 00:51:34,390 ما این dequeue. 938 00:51:34,390 --> 00:51:37,740 ما را از این عنصر، درست است؟ 939 00:51:37,740 --> 00:51:47,930 >> و در حال حاضر سر ما اشاره در اینجا، و ما می خواهیم برای اضافه کردن در یک چیز دیگر. 940 00:51:47,930 --> 00:51:52,470 این است که اساسا پشت خط ما، درست است؟ 941 00:51:52,470 --> 00:51:55,450 صف می تواند در سراسر آرایه بپیچید. 942 00:51:55,450 --> 00:51:57,310 این یکی از تفاوت های اصلی است. 943 00:51:57,310 --> 00:51:58,780 پشته، شما نمی توانید این کار را انجام. 944 00:51:58,780 --> 00:52:01,140 >> با صف، شما می توانید به خاطر تمام آنچه که مهم 945 00:52:01,140 --> 00:52:03,940 این است که شما می دانید چه اخیرا اضافه شده است. 946 00:52:03,940 --> 00:52:10,650 از آنجا که همه چیز در آن اضافه شود این مسیر به سمت چپ، در این مورد، 947 00:52:10,650 --> 00:52:16,480 و سپس در اطراف بسته بندی، شما می توانید ادامه دادن در عناصر جدید 948 00:52:16,480 --> 00:52:18,830 در مقابل از آرایه چرا که آن را واقعا نمی 949 00:52:18,830 --> 00:52:20,640 در مقابل آرایه دیگر. 950 00:52:20,640 --> 00:52:26,320 شما می توانید از همان ابتدا از فکر می کنم آرایه به عنوان جایی که سر خود را واقع شده است. 951 00:52:26,320 --> 00:52:29,710 >> بنابراین این فرمول این است که چگونه شما محاسبه دم خود را. 952 00:52:29,710 --> 00:52:32,780 953 00:52:32,780 --> 00:52:35,610 آیا که حس می کند؟ 954 00:52:35,610 --> 00:52:36,110 OK. 955 00:52:36,110 --> 00:52:39,400 956 00:52:39,400 --> 00:52:44,040 OK، dequeue، و پس از آن شما بچه ها باید 10 دقیقه 957 00:52:44,040 --> 00:52:48,840 به من هر گونه سوال روشن بپرسید شما می خواهید، زیرا من می دانم که این دیوانه. 958 00:52:48,840 --> 00:52:51,980 >> همه حق است، به طوری که در همان way-- من نمی دانم اگر شما بچه ها متوجه شده، 959 00:52:51,980 --> 00:52:53,450 اما CS همه چیز در مورد الگوهای است. 960 00:52:53,450 --> 00:52:57,370 همه چیز خیلی همان، فقط با ترفند کوچک. 961 00:52:57,370 --> 00:52:58,950 بنابراین همان چیزی که در اینجا. 962 00:52:58,950 --> 00:53:04,040 ما نیاز به چک کنید اگر ما در واقع چیزی در صف ما، درست است؟ 963 00:53:04,040 --> 00:53:05,960 می گویند، خوب، است اندازه ما بیشتر از 0؟ 964 00:53:05,960 --> 00:53:06,730 سرد. 965 00:53:06,730 --> 00:53:10,690 >> اگر ما، پس ما سر ما، حرکت که چیزی است که من فقط در اینجا نشان داده است. 966 00:53:10,690 --> 00:53:13,870 ما سر خود را به روزرسانی می شود یکی بیشتر. 967 00:53:13,870 --> 00:53:18,390 و پس از آن ما واحد کم میکنیم ما اندازه و بازگشت عنصر. 968 00:53:18,390 --> 00:53:21,000 969 00:53:21,000 --> 00:53:26,250 >> بسیار ملموس تر وجود دارد کد study.cs50.net، 970 00:53:26,250 --> 00:53:29,440 و من به شدت توصیه رفتن از طریق آن، اگر شما هم، 971 00:53:29,440 --> 00:53:30,980 حتی اگر آن را فقط یک شبه کد است. 972 00:53:30,980 --> 00:53:35,980 و اگر شما بچه ها می خواهید به صحبت از طریق که با من یک در یک، لطفا اجازه دهید من 973 00:53:35,980 --> 00:53:37,500 می دانم. 974 00:53:37,500 --> 00:53:38,770 من خوشحال می شود. 975 00:53:38,770 --> 00:53:42,720 ساختمان داده، اگر شما را CS 124، نظر شما 976 00:53:42,720 --> 00:53:47,830 می دانیم که ساختارهای داده ای بسیار دریافت سرگرم کننده است و این فقط آغاز است. 977 00:53:47,830 --> 00:53:50,350 >> بنابراین من می دانم که آن را سخت. 978 00:53:50,350 --> 00:53:51,300 این OK. 979 00:53:51,300 --> 00:53:52,410 ما مبارزه است. 980 00:53:52,410 --> 00:53:53,630 من هنوز هم دارم. 981 00:53:53,630 --> 00:53:56,660 پس نگران نباشید بیش از حد در مورد آن. 982 00:53:56,660 --> 00:54:02,390 >> اما این است که اساسا شما تصادف البته در ساختمان داده. 983 00:54:02,390 --> 00:54:03,400 من می دانم که آن را بسیار. 984 00:54:03,400 --> 00:54:06,860 آیا چیزی هست که ما می خواهم به بیش از دوباره؟ 985 00:54:06,860 --> 00:54:09,400 هر چیزی که ما می خواهیم به صحبت از طریق؟ 986 00:54:09,400 --> 00:54:10,060 بله؟ 987 00:54:10,060 --> 00:54:16,525 >> رسید برای که به عنوان مثال، تا دم جدید در 0 بیش از که؟ 988 00:54:16,525 --> 00:54:17,150 SPEAKER 1: بله. 989 00:54:17,150 --> 00:54:18,230 رسید OK. 990 00:54:18,230 --> 00:54:24,220 پس رفتن را از طریق، شما می خواهم 1 به علاوه 4 or-- دارند 991 00:54:24,220 --> 00:54:27,671 >> SPEAKER 1: پس شما، گفتند زمانی که ما می خواهم به انجام این کار دوباره؟ 992 00:54:27,671 --> 00:54:28,296 رسید: آره. 993 00:54:28,296 --> 00:54:38,290 بنابراین اگر شما out-- بدانند شد که در آن شما محاسبه دم از در که؟ 994 00:54:38,290 --> 00:54:44,260 >> SPEAKER 1: پس دم بود in-- من این را تغییر داد. 995 00:54:44,260 --> 00:54:52,010 بنابراین در این مثال در اینجا، این بود آرایه ما به دنبال در، OK؟ 996 00:54:52,010 --> 00:54:54,670 بنابراین ما باید همه چیز در 1، 2، 3، و 4. 997 00:54:54,670 --> 00:55:05,850 بنابراین ما باید سر ما را به 1 در برابر است این نقطه، و ما را به اندازه 4 برابر است با 998 00:55:05,850 --> 00:55:07,050 در این نقطه، درست است؟ 999 00:55:07,050 --> 00:55:08,960 >> همه شما توافق می کنید که مورد؟ 1000 00:55:08,960 --> 00:55:14,620 بنابراین ما سر به علاوه اندازه، که به ما می دهد 5، و سپس ما از 5 وزارت دفاع. 1001 00:55:14,620 --> 00:55:20,690 ما دریافت 0، که به ما می گوید که 0 است که در آن دم ما، که در آن ما فضا است. 1002 00:55:20,690 --> 00:55:22,010 >> رسید کلاه چیست؟ 1003 00:55:22,010 --> 00:55:23,520 >> SPEAKER 1: ظرفیت. 1004 00:55:23,520 --> 00:55:24,020 متأسفم. 1005 00:55:24,020 --> 00:55:29,640 به طوری که اندازه آرایه شما می باشد. 1006 00:55:29,640 --> 00:55:35,210 1007 00:55:35,210 --> 00:55:36,047 بله؟ 1008 00:55:36,047 --> 00:55:39,210 >> رسید [نامفهوم] قبل ما به عنصر؟ 1009 00:55:39,210 --> 00:55:46,270 >> SPEAKER 1: پس ما حرکت سر و یا بازگشت در حال حاضر؟ 1010 00:55:46,270 --> 00:55:52,680 بنابراین اگر ما حرکت یک واحد کم میکنیم به اندازه؟ 1011 00:55:52,680 --> 00:55:54,150 در خود نگه دارد. 1012 00:55:54,150 --> 00:55:55,770 من قطعا دیگر را فراموش کرده. 1013 00:55:55,770 --> 00:56:00,646 1014 00:56:00,646 --> 00:56:01,990 اهمیتی ندارد. 1015 00:56:01,990 --> 00:56:04,980 است فرمول دیگری وجود ندارد. 1016 00:56:04,980 --> 00:56:09,980 بله، شما می خواهید به بازگشت سر و سپس آن را به عقب. 1017 00:56:09,980 --> 00:56:13,270 >> رسید OK، چرا که در این نقطه، سر در 0، 1018 00:56:13,270 --> 00:56:18,452 و پس از آن شما می خواهید به بازگشت صفحه اول 0 و سپس سر 1؟ 1019 00:56:18,452 --> 00:56:19,870 >> SPEAKER 1: درست است. 1020 00:56:19,870 --> 00:56:22,820 من فکر می کنم دیگر وجود دارد نوع فرمول شبیه به این. 1021 00:56:22,820 --> 00:56:26,970 من آن را در بالا به عنوان سر من نیست من نمی خواهم به شما یک اشتباه را. 1022 00:56:26,970 --> 00:56:35,470 اما من فکر می کنم آن را کاملا به معتبر بگو، OK، ذخیره این element-- هر 1023 00:56:35,470 --> 00:56:40,759 عنصر سر را is-- واحد کم میکنیم شما اندازه، بیش از حرکت سر خود، و بازگشت 1024 00:56:40,759 --> 00:56:41,800 هر چه که عنصر است. 1025 00:56:41,800 --> 00:56:44,760 که کاملا معتبر است. 1026 00:56:44,760 --> 00:56:45,260 OK. 1027 00:56:45,260 --> 00:56:48,360 1028 00:56:48,360 --> 00:56:53,560 احساس می کنم مثل این است که مانند most-- شما نیست 1029 00:56:53,560 --> 00:56:55,740 رفتن به قدم زدن به بیرون از اینجا مانند، بله، من می دانم که تلاش می کند. 1030 00:56:55,740 --> 00:56:56,880 من آن را تمام کردم. 1031 00:56:56,880 --> 00:56:57,670 که OK. 1032 00:56:57,670 --> 00:57:00,200 من قول می دهم. 1033 00:57:00,200 --> 00:57:05,240 اما ساختمان داده چیزی است که آن طول می کشد زمان زیادی را به مورد استفاده برای. 1034 00:57:05,240 --> 00:57:10,010 احتمالا یکی از سخت ترین همه چیز، من فکر می کنم، در این دوره. 1035 00:57:10,010 --> 00:57:15,330 >> پس از آن قطعا طول می کشد تکرار و به دنبال at-- من 1036 00:57:15,330 --> 00:57:20,050 واقعا نمی دانم لیست های پیوندی تا زمانی که من بیش از حد با آنها انجام داد، 1037 00:57:20,050 --> 00:57:22,550 در راه همان است که من نمی واقعا درک اشاره گر 1038 00:57:22,550 --> 00:57:27,040 تا زمانی که من تا به حال به آن آموزش برای دو سال و انجام psets خود من با آن. 1039 00:57:27,040 --> 00:57:28,990 طول می کشد تا مقدار زیادی از تکرار و زمان. 1040 00:57:28,990 --> 00:57:32,600 و در نهایت، آن نوع از کلیک خواهد شد. 1041 00:57:32,600 --> 00:57:36,320 >> اما در عین حال، اگر شما نوع درک سطح بالایی از آنچه 1042 00:57:36,320 --> 00:57:39,321 این کار را انجام، جوانب مثبت خود و cons-- است که چه 1043 00:57:39,321 --> 00:57:41,820 ما واقعا تمایل به تاکید، به خصوص در این دوره مقدمه. 1044 00:57:41,820 --> 00:57:45,511 مانند، چرا که استفاده می کنیم بیش از یک آرایه را امتحان کنید؟ 1045 00:57:45,511 --> 00:57:48,010 مانند، چه مثبت هستند و منفی هر یک از این؟ 1046 00:57:48,010 --> 00:57:51,610 >> و درک تجارت آف بین هر یک از این ساختارها 1047 00:57:51,610 --> 00:57:54,910 چیزی است که بسیار مهم تر در حال حاضر. 1048 00:57:54,910 --> 00:57:58,140 ممکن است یک دیوانه وجود دارد سوال یا دو که 1049 00:57:58,140 --> 00:58:03,710 رفتن به شما می خواهیم برای اجرای فشار و یا اجرای موسیقی پاپ و یا در نوبت قراردادن و dequeue. 1050 00:58:03,710 --> 00:58:07,340 اما در بیشتر قسمت ها، داشتن که درک سطح بالاتر و بیشتر 1051 00:58:07,340 --> 00:58:09,710 از درک شهودی است از واقع مهم تر 1052 00:58:09,710 --> 00:58:11,250 قادر بودن به پیاده سازی آن. 1053 00:58:11,250 --> 00:58:14,880 >> می شود، واقعا عالی اگر از همه شما می تواند به بیرون بروید و به اجرای امتحان کنید، 1054 00:58:14,880 --> 00:58:19,720 اما ما درک می کنیم آن را لزوما چیزی که معقول ترین در حال حاضر. 1055 00:58:19,720 --> 00:58:23,370 اما شما می توانید در pset خود را، اگر شما می خواهید به، و سپس شما عمل کنید، 1056 00:58:23,370 --> 00:58:27,200 و پس از آن شاید شما واقعا آن را درک کنند. 1057 00:58:27,200 --> 00:58:27,940 بله؟ 1058 00:58:27,940 --> 00:58:30,440 >> رسید OK، بنابراین آنهایی که ما به معنای استفاده در pset؟ 1059 00:58:30,440 --> 00:58:31,916 آیا من نیاز به استفاده از یکی از آنها؟ 1060 00:58:31,916 --> 00:58:32,540 SPEAKER 1: بله. 1061 00:58:32,540 --> 00:58:34,199 بنابراین شما باید انتخاب کنید. 1062 00:58:34,199 --> 00:58:36,740 من در این مورد حدس می زنم، ما می توانیم بحث در مورد pset کمی 1063 00:58:36,740 --> 00:58:40,480 چون من از طریق این زد. 1064 00:58:40,480 --> 00:58:47,779 بنابراین در pset خود را، شما باید خود را انتخاب از تلاش می کند و یا جداول هش. 1065 00:58:47,779 --> 00:58:49,570 بعضی از مردم سعی خواهد کرد و استفاده از فیلترهای بلوم، 1066 00:58:49,570 --> 00:58:51,840 ولی برای کسانی که به لحاظ فنی درست نیست. 1067 00:58:51,840 --> 00:58:55,804 به دلیل ماهیت احتمالاتی خود، آنها را مثبت کاذب گاهی اوقات. 1068 00:58:55,804 --> 00:58:57,095 نگاه سرد به هستی، هر چند. 1069 00:58:57,095 --> 00:58:59,030 به شدت توصیه به دنبال در آنها حداقل. 1070 00:58:59,030 --> 00:59:03,260 اما شما باید انتخاب خود را بین یک جدول هش و امتحان کنید. 1071 00:59:03,260 --> 00:59:06,660 و رفتن به جایی که شما در فرهنگ لغت خود را بارگذاری. 1072 00:59:06,660 --> 00:59:09,230 >> و شما نیاز به را انتخاب کنید تابع هش خود، 1073 00:59:09,230 --> 00:59:13,420 شما باید انتخاب کنید که چگونه بسیاری از سطل شما داشته باشد، و آن را متفاوت خواهد بود. 1074 00:59:13,420 --> 00:59:17,440 اگر شما مانند سطل بیشتر، شاید آن را سریع تر اجرا کنید. 1075 00:59:17,440 --> 00:59:22,790 اما شاید شما به هدر رفتن مقدار زیادی از فضای به این ترتیب، هر چند. 1076 00:59:22,790 --> 00:59:26,320 شما باید آن را کشف کردن. 1077 00:59:26,320 --> 00:59:27,140 Mmhmm؟ 1078 00:59:27,140 --> 00:59:29,875 >> رسید شما قبل از آن گفت: ما می توانیم دیگر توابع هش استفاده کنید، 1079 00:59:29,875 --> 00:59:31,750 که ما لازم نیست ایجاد یک تابع هش؟ 1080 00:59:31,750 --> 00:59:32,666 >> SPEAKER 1: بله، درست است. 1081 00:59:32,666 --> 00:59:38,150 بنابراین به معنای واقعی کلمه برای تابع هش خود، مانند گوگل "تابع هش" 1082 00:59:38,150 --> 00:59:40,770 و برای برخی از آنهایی که سرد است. 1083 00:59:40,770 --> 00:59:43,250 شما انتظار نمی رود که برای ساخت توابع هش خود را. 1084 00:59:43,250 --> 00:59:46,100 مردم صرف خود پایان نامه در این چیزها. 1085 00:59:46,100 --> 00:59:50,250 >> پس وقت را در مورد ساختمان خود نگران نباشید. 1086 00:59:50,250 --> 00:59:53,350 یافتن یک آنلاین برای شروع با. 1087 00:59:53,350 --> 00:59:56,120 برخی از آنها شما را به دستکاری کمی 1088 00:59:56,120 --> 00:59:59,430 به انواع بازگشت مطمئن مطابقت و فلان چیز، به طوری که در آغاز، 1089 00:59:59,430 --> 01:00:02,420 من با استفاده از چیزی توصیه می کنم واقعا آسان است که شاید فقط 1090 01:00:02,420 --> 01:00:04,680 کردند در حرف اول. 1091 01:00:04,680 --> 01:00:08,760 و پس از آن زمانی که کار می کند، ترکیب یک تابع هش کولر. 1092 01:00:08,760 --> 01:00:09,260 Mmhmm؟ 1093 01:00:09,260 --> 01:00:13,020 >> رسید: آیا سعی می کنید و یا کارآمد اما فقط سخت تر به، like-- 1094 01:00:13,020 --> 01:00:15,880 >> SPEAKER 1: پس امتحان کنید، من فکر می کنم، است به طور مستقیم به پیاده سازی سخت 1095 01:00:15,880 --> 01:00:18,310 اما بسیار سریع می باشد. 1096 01:00:18,310 --> 01:00:20,620 با این حال، طول می کشد تا فضای بیشتری. 1097 01:00:20,620 --> 01:00:25,270 باز هم، شما می توانید هر دو از کسانی که در بهینه سازی راه های مختلف و راه های وجود دارد to-- 1098 01:00:25,270 --> 01:00:26,770 رسید: چگونه ما در این درجه بندی؟ 1099 01:00:26,770 --> 01:00:27,540 آیا این matter-- 1100 01:00:27,540 --> 01:00:29,164 >> SPEAKER 1: بنابراین شما به صورت طبیعی مدرج. 1101 01:00:29,164 --> 01:00:31,330 شما در حال رفتن به در طراحی درجه بندی شود. 1102 01:00:31,330 --> 01:00:36,020 هر کدام راه شما انجام دهید، شما می خواهید مطمئن شوید که آن را به عنوان زیبا به عنوان آن می تواند 1103 01:00:36,020 --> 01:00:38,610 و به عنوان کارآمد به عنوان آن می باشد. 1104 01:00:38,610 --> 01:00:41,950 اما اگر شما را امتحان کنید و یا هش را انتخاب کنید جدول، تا زمانی که آن کار می کند، 1105 01:00:41,950 --> 01:00:45,350 ما خوشحال هستیم که با. 1106 01:00:45,350 --> 01:00:48,370 و اگر شما استفاده از چیزی است که می کردند در حرف اول، که خوب است، 1107 01:00:48,370 --> 01:00:51,410 مانند شاید مانند طراحی و زرنگ. 1108 01:00:51,410 --> 01:00:53,410 ما همچنین در حال رسیدن به نکته در این semester-- 1109 01:00:53,410 --> 01:00:55,340 من نمی دانم اگر شما بچه noticed-- اگر شما 1110 01:00:55,340 --> 01:00:58,780 نمرات pset کاهش کمی به دلیل طراحی و فلان چیز، 1111 01:00:58,780 --> 01:00:59,900 که کاملا خوب است. 1112 01:00:59,900 --> 01:01:02,960 آن را گرفتن به یک نقطه که در آن شما برنامه های در حال گرفتن پیچیده تر است. 1113 01:01:02,960 --> 01:01:04,830 مکان های بیشتری وجود دارد شما می توانید در بهبود. 1114 01:01:04,830 --> 01:01:06,370 >> پس از آن کاملا طبیعی است. 1115 01:01:06,370 --> 01:01:08,810 این که شما نمی انجام بدتر در pset شما. 1116 01:01:08,810 --> 01:01:11,885 این فقط ما را سخت تر بر شما در حال حاضر. 1117 01:01:11,885 --> 01:01:13,732 پس هر کس آن را احساس. 1118 01:01:13,732 --> 01:01:14,940 من فقط تمام psets خود را درجه بندی. 1119 01:01:14,940 --> 01:01:16,490 من می دانم که هر کس احساس می کند. 1120 01:01:16,490 --> 01:01:19,600 >> پس آیا می شود در مورد آن نگران است. 1121 01:01:19,600 --> 01:01:23,580 و اگر شما هر گونه سوال در مورد داشته باشد psets قبل و یا شما می توانید از راه های بهبود، 1122 01:01:23,580 --> 01:01:27,760 من سعی می کنم و اظهار نظر های خاص مکان، اما گاهی اوقات آن را به اواخر 1123 01:01:27,760 --> 01:01:30,840 و من خسته. 1124 01:01:30,840 --> 01:01:34,885 آیا چیز دیگری هم وجود دارد درباره ساختمان داده؟ 1125 01:01:34,885 --> 01:01:37,510 من مطمئن هستم که شما بچه ها واقعا هستم می خواهم در مورد آنها صحبت کنی، 1126 01:01:37,510 --> 01:01:42,650 اما اگر وجود دارد، من خوشحال هستم رفتن بر آنها، و همچنین هر چیزی 1127 01:01:42,650 --> 01:01:45,580 از سخنرانی این گذشته هفته یا هفته گذشته است. 1128 01:01:45,580 --> 01:01:51,580 >> من می دانم که در هفته گذشته تمام بررسی بود، بنابراین ما ممکن است در طول برخی از بررسی قلم 1129 01:01:51,580 --> 01:01:54,190 از سخنرانی. 1130 01:01:54,190 --> 01:01:58,230 هر گونه سؤال دیگر من می توانم پاسخ خواهد داد؟ 1131 01:01:58,230 --> 01:01:59,350 OK، همه حق. 1132 01:01:59,350 --> 01:02:02,400 خوب، شما بچه ها زود بیرون 15 دقیقه. 1133 01:02:02,400 --> 01:02:08,370 >> من امیدوارم که این نیمه مفید حداقل بود، و من به شما بچه ها در هفته آینده را ببینید، 1134 01:02:08,370 --> 01:02:12,150 و یا ساعت اداری روز پنج شنبه. 1135 01:02:12,150 --> 01:02:15,285 آیا درخواست برای تنقلات وجود دارد برای هفته آینده، آن چیزی است؟ 1136 01:02:15,285 --> 01:02:17,459 از آنجا که من آب نبات را فراموش امروز. 1137 01:02:17,459 --> 01:02:19,750 و من به ارمغان آورد آب نبات گذشته هفته است، اما آن روز کلمبوس بود، 1138 01:02:19,750 --> 01:02:25,400 تا بود مانند شش نفر وجود دارد که چهار کیسه از آب نبات به خود بود. 1139 01:02:25,400 --> 01:02:28,820 من می توانم Starbursts را دوباره اگر شما می خواهم. 1140 01:02:28,820 --> 01:02:29,580 Starbursts؟ 1141 01:02:29,580 --> 01:02:32,250 OK، خیلی خوب است. 1142 01:02:32,250 --> 01:02:35,050 یک روز بزرگ، بچه ها. 1143 01:02:35,050 --> 01:02:39,510