1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:03,340 [MUSIC پخش] 3 00:00:03,340 --> 00:00:11,020 4 00:00:11,020 --> 00:00:14,010 >> DAVID مالان: این CS50 است. 5 00:00:14,010 --> 00:00:18,090 و این هر دو شروع و است end-- مانند literally-- تقریبا پایان 6 00:00:18,090 --> 00:00:18,825 هفته ششم است. 7 00:00:18,825 --> 00:00:20,030 8 00:00:20,030 --> 00:00:22,640 >> من فکر کردم من می خواهم به اشتراک بگذارید کمی از حقیقت سرگرم کننده است. 9 00:00:22,640 --> 00:00:25,370 من این رو از کشیده ام اطلاعات ترم گذشته تعیین شده است. 10 00:00:25,370 --> 00:00:29,710 شما ممکن است به یاد که ما از شما می خواهیم در هر فرم مجموعه ای P اگر شما آنلاین تماشا کرده ام 11 00:00:29,710 --> 00:00:31,580 و یا اگر شما در حضور شخص. 12 00:00:31,580 --> 00:00:33,020 و در اینجا داده است. 13 00:00:33,020 --> 00:00:34,710 بنابراین، امروز خیلی قابل پیش بینی بود. 14 00:00:34,710 --> 00:00:37,126 اما ما می خواستیم به صرف کمی از زمان با شما با این حال. 15 00:00:37,126 --> 00:00:40,599 آیا کسی می خواهم به حدس چرا این نمودار است تا jaggy، تا پایین، تا به پایین، 16 00:00:40,599 --> 00:00:41,265 بنابراین به طور مداوم؟ 17 00:00:41,265 --> 00:00:42,980 18 00:00:42,980 --> 00:00:45,130 هر یک از قله چه و فرورفتگی نشان؟ 19 00:00:45,130 --> 00:00:46,005 >> رسید [نامفهوم] 20 00:00:46,005 --> 00:00:47,002 21 00:00:47,002 --> 00:00:47,835 DAVID مالان: در واقع. 22 00:00:47,835 --> 00:00:50,900 23 00:00:50,900 --> 00:00:55,480 و amusingly بیشتر، خدای ناکرده، ما یکی از سخنرانی برگزاری در روز جمعه 24 00:00:55,480 --> 00:00:58,960 در آغاز ترم، که آنچه ما می بینیم اتفاق می افتد. 25 00:00:58,960 --> 00:01:03,430 بنابراین، امروز، ما در یک بیت جنبهی اطلاعات بیشتر در مورد ساختمان داده. 26 00:01:03,430 --> 00:01:06,660 و به شما بیشتر از یک جامد را مدل ذهنی برای مشکلات در پنج، 27 00:01:06,660 --> 00:01:07,450 که در حال حاضر است. 28 00:01:07,450 --> 00:01:10,817 املای غلط، که در آن، ما به شما یک فایل متنی به دست شما برخی از 100000 29 00:01:10,817 --> 00:01:12,650 به علاوه واژه های انگلیسی، و شما در حال رفتن به 30 00:01:12,650 --> 00:01:17,770 به شکل از چگونه هوشمندانه آنها را بارگذاری در حافظه، به RAM، با استفاده از برخی از داده 31 00:01:17,770 --> 00:01:19,330 ساختار از انتخاب شما. 32 00:01:19,330 --> 00:01:22,470 >> در حال حاضر یک ساختار داده از جمله می تواند باشد، اما احتمالا باید باشد، 33 00:01:22,470 --> 00:01:25,630 لیست نسبتا ساده مرتبط، که ما آن را معرفی و زمان آخرین. 34 00:01:25,630 --> 00:01:29,220 و یک لیست پیوندی حداقل به حال یکی از مزایای بیش از یک آرایه. 35 00:01:29,220 --> 00:01:32,096 یکی از مزایای چه یک لیست پیوندی مسلما؟ 36 00:01:32,096 --> 00:01:32,950 >> رسید درج. 37 00:01:32,950 --> 00:01:33,908 >> DAVID مالان: درج. 38 00:01:33,908 --> 00:01:34,155 39 00:01:34,155 --> 00:01:35,196 چه چیزی شما را در آن چیست؟ 40 00:01:35,196 --> 00:01:37,872 >> رسید همه جا همراه لیست [نامفهوم]. 41 00:01:37,872 --> 00:01:38,770 >> DAVID مالان: خوب. 42 00:01:38,770 --> 00:01:42,090 بنابراین شما می توانید یک عنصر در هر کجا وارد شما در وسط لیست می خواهید 43 00:01:42,090 --> 00:01:45,490 بدون نیاز به زدن هر چیزی، که ما به این نتیجه رسیدند، در مرتب سازی ما 44 00:01:45,490 --> 00:01:47,630 بحث، نیست لزوما چیز خوبی است، 45 00:01:47,630 --> 00:01:51,200 زیرا زمان لازم برای حرکت در واقع همه کسانی که انسان به سمت چپ یا راست. 46 00:01:51,200 --> 00:01:55,540 و به این ترتیب با یک لیست پیوندی، شما می توانید فقط با malloc تخصیص، یک گره جدید، 47 00:01:55,540 --> 00:01:58,385 و پس از آن به روز رسانی یک زن و شوهر از pointers-- دو، سه عملیات max-- 48 00:01:58,385 --> 00:02:01,480 و ما قادر به شکاف کسی هستید در هر نقطه را به یک لیست. 49 00:02:01,480 --> 00:02:03,550 >> چه چیز دیگری مزیت داشت درباره لیست پیوندی؟ 50 00:02:03,550 --> 00:02:04,980 51 00:02:04,980 --> 00:02:05,659 آره؟ 52 00:02:05,659 --> 00:02:06,534 >> رسید [نامفهوم] 53 00:02:06,534 --> 00:02:07,538 54 00:02:07,538 --> 00:02:08,413 DAVID مالان: کامل. 55 00:02:08,413 --> 00:02:10,590 56 00:02:10,590 --> 00:02:11,090 کامل است. 57 00:02:11,090 --> 00:02:12,070 این واقعا پویا. 58 00:02:12,070 --> 00:02:15,100 و است که شما مرتکب نیست، در پیش است، تا اندازه ای ثابت 59 00:02:15,100 --> 00:02:18,750 تکه از حافظه، مانند شما را مجبور با یک آرایه، حرکت صعودی که 60 00:02:18,750 --> 00:02:22,455 این است که شما می توانید گره تنها در تخصیص تقاضا در نتیجه تنها با استفاده از فضای به اندازه 61 00:02:22,455 --> 00:02:23,330 عنوان شما در واقع نیاز دارید. 62 00:02:23,330 --> 00:02:26,830 در مقابل با یک آرایه، شما ممکن است به طور تصادفی خیلی کم اختصاص دهند. 63 00:02:26,830 --> 00:02:28,871 و سپس آن را فقط رفتن به درد در گردن 64 00:02:28,871 --> 00:02:32,440 به دوباره اختصاص یک آرایه بزرگتر جدید، کپی همه چیز بیش از، آزاد آرایه های قدیمی، 65 00:02:32,440 --> 00:02:33,990 و پس از آن در مورد کسب و کار شما حرکت می کند. 66 00:02:33,990 --> 00:02:37,479 یا بدتر از آن، شما ممکن است راه تخصیص حافظه بیش از شما در واقع نیاز، 67 00:02:37,479 --> 00:02:40,520 و بنابراین شما در حال رفتن به یک بسیار کم جمعیت آرایه، پس به صحبت می کنند. 68 00:02:40,520 --> 00:02:44,350 >> بنابراین یک لیست پیوندی به شما می دهد این مزایای استفاده از پویایی و انعطاف پذیری 69 00:02:44,350 --> 00:02:46,080 با اضافه و حذف. 70 00:02:46,080 --> 00:02:48,000 اما مطمئنا قیمت پرداخت می شود وجود داشته باشد. 71 00:02:48,000 --> 00:02:50,000 در واقع، یکی از تم کاوش در مسابقه صفر 72 00:02:50,000 --> 00:02:52,430 یک زن و شوهر از تجارت آف ما دیده ایم که تا کنون. 73 00:02:52,430 --> 00:02:56,161 پس چه قیمت پرداخت می شود و یا یک است حرکت نزولی از یک لیست پیوندی؟ 74 00:02:56,161 --> 00:02:56,660 آره. 75 00:02:56,660 --> 00:02:57,560 >> رسید بدون دسترسی تصادفی. 76 00:02:57,560 --> 00:02:58,809 >> DAVID مالان: بدون دسترسی تصادفی. 77 00:02:58,809 --> 00:02:59,540 اما چه کسی اهمیت میدهد؟ 78 00:02:59,540 --> 00:03:01,546 دسترسی تصادفی صدا نمی فوتی و فوری. 79 00:03:01,546 --> 00:03:02,421 >> رسید [نامفهوم] 80 00:03:02,421 --> 00:03:04,865 81 00:03:04,865 --> 00:03:05,740 DAVID مالان: دقیقا. 82 00:03:05,740 --> 00:03:07,580 اگر شما می خواهید به algorithm-- خاص 83 00:03:07,580 --> 00:03:10,170 و اجازه دهید من در واقع پیشنهاد جستجوی دودویی به طور خاص، که 84 00:03:10,170 --> 00:03:12,600 یکی از ما کاملا bit-- استفاده می شود اگر شما با دسترسی تصادفی را ندارد، 85 00:03:12,600 --> 00:03:15,516 شما می توانید حساب ساده که نمی کنند پیدا کردن مانند عنصر وسط 86 00:03:15,516 --> 00:03:16,530 و پریدن سمت راست آن. 87 00:03:16,530 --> 00:03:20,239 شما به جای باید شروع در اولین عنصر و خطی از سمت چپ جستجو 88 00:03:20,239 --> 00:03:22,780 به سمت راست اگر شما می خواهید برای پیدا کردن وسط یا هر عنصر دیگر. 89 00:03:22,780 --> 00:03:24,410 >> رسید احتمالا حافظه بیشتر طول می کشد. 90 00:03:24,410 --> 00:03:25,040 >> DAVID مالان: طول می کشد حافظه بیشتر است. 91 00:03:25,040 --> 00:03:27,464 که در آن است که اضافی است هزینه که از در حافظه؟ 92 00:03:27,464 --> 00:03:28,339 >> رسید [نامفهوم] 93 00:03:28,339 --> 00:03:32,566 94 00:03:32,566 --> 00:03:33,440 DAVID مالان: دقیقا. 95 00:03:33,440 --> 00:03:35,679 در این مورد در اینجا، ما تا به حال یک لیست پیوندی برای اعداد صحیح، 96 00:03:35,679 --> 00:03:37,470 و در عین حال ما در حال دو برابر شدن مقدار حافظه 97 00:03:37,470 --> 00:03:39,680 ما همچنین ذخیره سازی این اشاره گر نیاز دارند. 98 00:03:39,680 --> 00:03:42,090 در حال حاضر کمتر از یک معامله بزرگ به عنوان ساختمانها خود را دریافت کنید بزرگتر 99 00:03:42,090 --> 00:03:45,320 و شما ذخیره سازی تعداد نیست، بلکه شاید یک دانش آموز یا برخی از شیء دیگر. 100 00:03:45,320 --> 00:03:46,880 اما نکته قطعا باقی مانده است. 101 00:03:46,880 --> 00:03:49,421 و به این ترتیب تعدادی از عملیات در لیست های پیوندی نامیده می شدند 102 00:03:49,421 --> 00:03:50,570 O بزرگ خطی n-- بودند. 103 00:03:50,570 --> 00:03:54,730 چیزهایی مثل درج و یا جستجو و یا حذف در مورد یک عنصر 104 00:03:54,730 --> 00:03:57,720 اتفاق افتاده است که در پایان است لیست طبقه بندی شده اند چه آن را یا نه. 105 00:03:57,720 --> 00:04:01,167 >> گاهی اوقات شما ممکن است خوش شانس و در مرزهای بنابراین کمتر در این عملیات 106 00:04:01,167 --> 00:04:04,250 ممکن است زمان ثابت باشد اگر شما همیشه به دنبال در عنصر اول، 107 00:04:04,250 --> 00:04:05,070 به عنوان مثال. 108 00:04:05,070 --> 00:04:09,360 اما در نهایت، ما وعده داده برای رسیدن به جام مقدس 109 00:04:09,360 --> 00:04:12,630 ساختمان داده، و یا برخی از آن تقریب، 110 00:04:12,630 --> 00:04:14,290 از طریق زمان ثابت است. 111 00:04:14,290 --> 00:04:17,579 آیا ما می توانیم عناصر پیدا کردن و یا اضافه کردن عناصر و یا عناصر را از یک لیست را حذف کنم؟ 112 00:04:17,579 --> 00:04:19,059 ما باید کاملا دیده می شود. 113 00:04:19,059 --> 00:04:21,100 و معلوم است که یک از مکانیسم های ما 114 00:04:21,100 --> 00:04:23,464 رفتن به شروع به استفاده از امروز، استفاده سالانه در P مجموعه پنج، 115 00:04:23,464 --> 00:04:24,630 است که در واقع بسیار آشنا. 116 00:04:24,630 --> 00:04:27,430 به عنوان مثال، در صورتی که این یک دسته است کتاب آزمون، هر یک از آنها 117 00:04:27,430 --> 00:04:29,660 یک دانش آموز اول نام و نام خانوادگی بر روی آن، 118 00:04:29,660 --> 00:04:31,820 و من آنها را انتخاب کنید تا از در پایان امتحان، 119 00:04:31,820 --> 00:04:33,746 و همه آنها زیبا هستی بسیار به صورت تصادفی، 120 00:04:33,746 --> 00:04:36,370 و ما می خواهیم در مورد مرتب سازی بروید این آزمون به طوری که یک بار درجه بندی شده 121 00:04:36,370 --> 00:04:38,661 آن را فقط خیلی آسان تر و سریعتر به آنها دست به عقب ها را 122 00:04:38,661 --> 00:04:40,030 به دانش آموزان بر اساس حروف الفبا. 123 00:04:40,030 --> 00:04:42,770 غرایز خود را چه می شود برای یک توده ای از امتحانات مثل این؟ 124 00:04:42,770 --> 00:04:45,019 >> خوب، اگر شما مانند من هستید، شما ممکن است ببینید که این متر است، 125 00:04:45,019 --> 00:04:48,505 بنابراین من قصد دارم به نوعی از این قرار داده و به، اگر این جدول یا طبقه است که در آن من 126 00:04:48,505 --> 00:04:50,650 من همه چیز گسترش out-- یا آرایه من really-- 127 00:04:50,650 --> 00:04:52,210 من ممکن است تمام خانم در آن وجود دارد قرار داده است. 128 00:04:52,210 --> 00:04:52,710 اوه. 129 00:04:52,710 --> 00:04:55,020 در اینجا یک A. است بنابراین من ممکن است قرار دادن به عنوان بیش از اینجا. 130 00:04:55,020 --> 00:04:55,520 اوه. 131 00:04:55,520 --> 00:04:57,980 در اینجا یکی دیگر از A. من قصد دارم به برای قرار دادن که بیش از اینجا. 132 00:04:57,980 --> 00:05:02,490 در اینجا یک Z. اینجا M. دیگر و به این ترتیب است من ممکن است شروع به ساختن شمع مثل این. 133 00:05:02,490 --> 00:05:06,620 و پس از آن شاید من می خواهم در بعد بروید و نوع بسیار nitpicky-سال نوری مرتب سازی بر 134 00:05:06,620 --> 00:05:07,710 شمع فردی است. 135 00:05:07,710 --> 00:05:11,300 اما نکته این است که من را نگاه در ورودی که من دست هستم 136 00:05:11,300 --> 00:05:14,016 و من چند تا محاسبه را تصمیم بر اساس ورودی. 137 00:05:14,016 --> 00:05:15,640 اگر آن را با یک شروع می شود، آن را بیش از وجود دارد. 138 00:05:15,640 --> 00:05:18,980 اگر آن را با Z شروع می شود، آن را بیش از وجود دارد، و همه چیز را در میان. 139 00:05:18,980 --> 00:05:22,730 >> بنابراین این یک تکنیک است که به طور کلی به عنوان hashing-- H-A-S-H-- شناخته شده 140 00:05:22,730 --> 00:05:26,550 که به طور کلی به معنی در نظر گرفتن به عنوان ورودی و با استفاده از ورودی برای محاسبه 141 00:05:26,550 --> 00:05:30,940 ارزش، به طور کلی تعداد، و تعداد شاخص به ذخیره سازی است 142 00:05:30,940 --> 00:05:32,260 ظروف، مانند یک آرایه. 143 00:05:32,260 --> 00:05:35,490 بنابراین به عبارت دیگر، من ممکن است داشته باشد تابع هش، که من در سر من انجام دهید، 144 00:05:35,490 --> 00:05:37,940 که اگر من کسی را دیدن است نام که با شروع می شود، 145 00:05:37,940 --> 00:05:40,190 من قصد دارم به نقشه به صفر در سر من. 146 00:05:40,190 --> 00:05:44,160 و اگر من کسی را ببینید که با Z، من هستم رفتن به نقشه است که به 25 در سر من 147 00:05:44,160 --> 00:05:46,220 و پس از آن قرار داده است که به آخرین ترین شمع. 148 00:05:46,220 --> 00:05:50,990 >> در حال حاضر، اگر شما در مورد مغز من فکر می کنم اما یک برنامه C، چه تعداد می تواند 149 00:05:50,990 --> 00:05:53,170 شما تکیه برای رسیدن به نتیجه همان؟ 150 00:05:53,170 --> 00:05:55,594 به عبارت دیگر، اگر شما حال ASCII کاراکتر A، 151 00:05:55,594 --> 00:05:57,510 چگونه می توانم شما را تعیین چه سطل به آن را در؟ 152 00:05:57,510 --> 00:05:59,801 شما احتمالا نمی خواهید آن را به سطل 65، که 153 00:05:59,801 --> 00:06:01,840 می خواهم بیش از وجود دارد بدون هیچ دلیل خوب است. 154 00:06:01,840 --> 00:06:04,320 که در آن شما می خواهید برای قرار دادن از نظر ارزش ASCII آن؟ 155 00:06:04,320 --> 00:06:05,600 156 00:06:05,600 --> 00:06:08,920 که در آن شما می خواهید برای انجام به ASCII آن ارزش به آمده تا با یک سطل دقیق 157 00:06:08,920 --> 00:06:09,480 آن را در؟ 158 00:06:09,480 --> 00:06:10,206 >> رسید منهای A. 159 00:06:10,206 --> 00:06:10,956 >> DAVID مالان: آره. 160 00:06:10,956 --> 00:06:13,190 بنابراین منهای یک منهای به طور خاص 65 اگر آن را 161 00:06:13,190 --> 00:06:18,240 A. سرمایه و یا اگر 98 آن حروف کوچک است. 162 00:06:18,240 --> 00:06:21,300 و به این ترتیب بود که به ما اجازه می دهد، بسیار به سادگی و بسیار حساب شده، 163 00:06:21,300 --> 00:06:23,260 چیزی را به یک سطل که می خواهم. 164 00:06:23,260 --> 00:06:26,010 پس از آن که معلوم ما در واقع انجام این نیز حتی با آزمونها. 165 00:06:26,010 --> 00:06:29,051 >> بنابراین شما ممکن است به خاطر شما دور خود نام همکار آموزش را بر روی جلد. 166 00:06:29,051 --> 00:06:32,270 و نام TF را سازماندهی شدند به این ستون ها بر اساس حروف الفبا، 167 00:06:32,270 --> 00:06:34,400 خب، باور کنید یا نه، زمانی که همه 80 به علاوه ما 168 00:06:34,400 --> 00:06:37,800 با هم از شب های دیگر رو به کلاس، آخرین مرحله در فرآیند درجه بندی ما 169 00:06:37,800 --> 00:06:41,830 است به هش آزمونها به یک بزرگ فضای طبقه در [نامفهوم] 170 00:06:41,830 --> 00:06:45,110 و به وضع آزمونها همه از دقیقا منظور از TF خود 171 00:06:45,110 --> 00:06:47,700 نام بر روی جلد، به دلیل سپس آن را خیلی آسان تر برای ما 172 00:06:47,700 --> 00:06:51,290 برای جستجو از طریق خطی با استفاده از جستجو و یا نوعی از هوش و ذکاوت 173 00:06:51,290 --> 00:06:54,050 برای TF برای پیدا کردن او و یا آزمونها دانش آموزان خود را. 174 00:06:54,050 --> 00:06:56,060 >> بنابراین این ایده از هش کردن که شما خواهید دید است 175 00:06:56,060 --> 00:07:00,520 بسیار قدرتمند است که در واقع بسیار امری عادی و بسیار بصری، 176 00:07:00,520 --> 00:07:03,000 شاید بسیار شبیه به تقسیم و حل در هفته صفر بود. 177 00:07:03,000 --> 00:07:05,250 من سریع به جلو به هکاتون چند سال پیش. 178 00:07:05,250 --> 00:07:08,040 این Zamyla و چند بود دیگر دانش آموزان تبریک کارکنان 179 00:07:08,040 --> 00:07:09,030 به عنوان آنها در آمد. 180 00:07:09,030 --> 00:07:12,680 و ما یک دسته کامل از تاشو به حال جدول وجود دارد با نام برچسب ها. 181 00:07:12,680 --> 00:07:15,380 و ما برچسب ها نام سازمان با مثل به عنوان بیش از وجود دارد 182 00:07:15,380 --> 00:07:16,690 و ZS بیش از وجود دارد. 183 00:07:16,690 --> 00:07:20,350 و به این ترتیب یکی از TFS بسیار هوشمندانه این را به عنوان دستورالعمل نوشت 184 00:07:20,350 --> 00:07:21,030 برای روز. 185 00:07:21,030 --> 00:07:24,480 و در هفته 12 از این ترم تمام معنا کامل و همه 186 00:07:24,480 --> 00:07:25,310 می دانستم که چه باید بکنید. 187 00:07:25,310 --> 00:07:27,900 اما هر زمان که شما صف در همان راه، 188 00:07:27,900 --> 00:07:30,272 شما در حال اجرای همان مفهوم یک رشته هش. 189 00:07:30,272 --> 00:07:31,730 بنابراین اجازه دهید آن را کمی به رسمی. 190 00:07:31,730 --> 00:07:32,890 در اینجا یک آرایه است. 191 00:07:32,890 --> 00:07:36,820 این رسم که کمی گسترده فقط به تصویر کشیدن، بصری، 192 00:07:36,820 --> 00:07:38,920 که ما ممکن است رشته را در چیزی شبیه به این. 193 00:07:38,920 --> 00:07:41,970 و این آرایه است به وضوح از اندازه 26 در کل. 194 00:07:41,970 --> 00:07:43,935 و چیزی است که به نام جدول خودسرانه. 195 00:07:43,935 --> 00:07:48,930 اما این فقط تفسیر یک هنرمند است از آنچه یک جدول هش ممکن است. 196 00:07:48,930 --> 00:07:52,799 >> بنابراین یک جدول هش در حال حاضر در حال رفتن به یک ساختار داده ها در سطح بالاتر. 197 00:07:52,799 --> 00:07:54,840 در پایان روز باید ببینیم که شما هستید 198 00:07:54,840 --> 00:07:58,700 می توانید یک جدول هش، پیاده سازی آن بسیار شبیه به خط چک در 199 00:07:58,700 --> 00:08:02,059 در یک هکاتون بسیار شبیه به این جدول برای مرتب سازی کتاب آزمون استفاده می شود. 200 00:08:02,059 --> 00:08:03,850 اما یک جدول هش است مرتب کردن بر اساس این سطح بالا 201 00:08:03,850 --> 00:08:08,250 مفهوم است که می تواند یک آرایه استفاده در زیر هود به پیاده سازی آن، 202 00:08:08,250 --> 00:08:11,890 یا آن را می فهرست طول و حتی استفاده کنید، و یا شاید برخی از ساختارهای داده ای است. 203 00:08:11,890 --> 00:08:15,590 و در حال حاضر که گرفتن theme-- است برخی از این مواد اولیه 204 00:08:15,590 --> 00:08:18,310 مانند یک آرایه و این ساختمان مسدود کن از لیست طول 205 00:08:18,310 --> 00:08:21,740 و دیدن چه چیز دیگری ما می توانیم ساخت در بالای آن، مانند مواد تشکیل دهنده 206 00:08:21,740 --> 00:08:26,550 به یک دستور غذا، و بیشتر و بیشتر نتایج نهایی جالب و مفید است. 207 00:08:26,550 --> 00:08:28,680 >> بنابراین با جدول هش ما ممکن است آن را اجرا 208 00:08:28,680 --> 00:08:32,540 در حافظه pictorially شبیه به این، اما چگونه ممکن است آن را در واقع کد گذاری شود تا؟ 209 00:08:32,540 --> 00:08:33,789 خوب، شاید به سادگی این است. 210 00:08:33,789 --> 00:08:38,270 اگر ظرفیت در همه کلاه است، فقط برخی از constant-- برای مثال 26، 211 00:08:38,270 --> 00:08:42,030 برای 26 حرف از alphabet-- من ممکن است جدول متغیر من تماس بگیرید، 212 00:08:42,030 --> 00:08:45,630 و من ممکن است ادعا می کنند که من قصد دارم به قرار داده ستاره کاراکتر در آن وجود دارد، و یا رشته ای. 213 00:08:45,630 --> 00:08:49,880 پس از آن را به عنوان ساده به عنوان این که اگر شما می خواهید به پیاده سازی یک جدول هش. 214 00:08:49,880 --> 00:08:51,490 و با این حال، این است که واقعا فقط یک آرایه. 215 00:08:51,490 --> 00:08:53,198 اما باز هم، یک رشته هش جدول در حال حاضر چه می کنیم 216 00:08:53,198 --> 00:08:57,470 تماس نوع داده انتزاعی که فقط مرتب کردن بر اساس لایه بندی شده ادراکی در بالا 217 00:08:57,470 --> 00:09:00,780 از چیزی بیشتر دنیوی در حال حاضر می خواهم یک آرایه. 218 00:09:00,780 --> 00:09:02,960 >> در حال حاضر، ما چگونه به در مورد حل مشکلات؟ 219 00:09:02,960 --> 00:09:06,980 خب، قبل از آن من تا به حال لوکس داشتن فضای میز به اندازه کافی در اینجا 220 00:09:06,980 --> 00:09:09,460 به طوری که من می تواند قرار داده آزمونها در هر نقطه من می خواستم. 221 00:09:09,460 --> 00:09:10,620 بنابراین به عنوان ممکن است به اینجا بروید. 222 00:09:10,620 --> 00:09:12,100 ZS ممکن است به اینجا بروید. 223 00:09:12,100 --> 00:09:13,230 خانم ممکن است به اینجا بروید. 224 00:09:13,230 --> 00:09:14,740 و سپس من مقداری فضای اضافی بود. 225 00:09:14,740 --> 00:09:18,740 اما این یک بیت از یک سمت راست تقلب است در حال حاضر به دلیل این جدول، اگر من واقعا 226 00:09:18,740 --> 00:09:22,720 از آن به عنوان یک آرایه فکر است که فقط، رفتن به برخی از اندازه ثابت باشد. 227 00:09:22,720 --> 00:09:25,380 >> بنابراین از لحاظ فنی، اگر من جلو تا مسابقه دانشجویی دیگر 228 00:09:25,380 --> 00:09:28,490 و ببینید، آه، این شخص نام و نام خانوادگی شروع می شود بیش از حد، 229 00:09:28,490 --> 00:09:30,980 من نوع می خواهم به آن را قرار داده است. 230 00:09:30,980 --> 00:09:34,740 اما به محض این که من آن را اگر می شود وجود دارد، این جدول در واقع نشان دهنده یک آرایه، 231 00:09:34,740 --> 00:09:37,840 من قصد دارم به لغو و یا ضربه بزند هر کس این مسابقه دانش آموزان است. 232 00:09:37,840 --> 00:09:38,340 درست است؟ 233 00:09:38,340 --> 00:09:41,972 اگر این یک آرایه است، فقط یک چیز می تواند رفتن به در هر یک از این سلول ها یا عناصر. 234 00:09:41,972 --> 00:09:43,680 و بنابراین من نوع از انتخاب کنید و را انتخاب کنید. 235 00:09:43,680 --> 00:09:45,735 >> در حال حاضر قبل از من نوع فریب خورده و این یا من 236 00:09:45,735 --> 00:09:47,526 فقط نوع انباشته آنها را در بالا به یکدیگر. 237 00:09:47,526 --> 00:09:49,170 اما این که در آینده به پرواز در کد. 238 00:09:49,170 --> 00:09:52,260 تا جایی که می تواند من را از دانش آموز دوم که نام 239 00:09:52,260 --> 00:09:54,964 است اگر من تا به حال همه این است فضای میز در دسترس است؟ 240 00:09:54,964 --> 00:09:57,880 و من سه اسلات و از آن استفاده کرده اید به نظر می رسد فقط چند نفر دیگر وجود دارد. 241 00:09:57,880 --> 00:09:58,959 چه کاری می توانید انجام دهید؟ 242 00:09:58,959 --> 00:09:59,834 رسید [نامفهوم] 243 00:09:59,834 --> 00:10:00,565 244 00:10:00,565 --> 00:10:01,315 DAVID مالان: آره. 245 00:10:01,315 --> 00:10:02,370 شاید اجازه دهید فقط آن را ساده نگه دارید. 246 00:10:02,370 --> 00:10:02,660 درست است؟ 247 00:10:02,660 --> 00:10:04,243 این جور نیست که در آن من می خواهم به آن را قرار داده. 248 00:10:04,243 --> 00:10:07,450 بنابراین من قصد دارم به آن را قرار داده فنی که در آن B خواهند رفت. 249 00:10:07,450 --> 00:10:09,932 در حال حاضر، البته، من شروع به خودم را به گوشه نقاشی. 250 00:10:09,932 --> 00:10:11,890 اگر من به یک دانش آموز دریافت که نام است که در واقع B، 251 00:10:11,890 --> 00:10:14,840 در حال حاضر B در حال رفتن به یک کمی نقل مکان کرد به جلو، به عنوان ممکن است رخ دهد، بله، 252 00:10:14,840 --> 00:10:17,530 در صورتی که این B ​​است، در حال حاضر آن را به اینجا بروید. 253 00:10:17,530 --> 00:10:20,180 >> و به این ترتیب این بسیار سریع می تواند تبدیل به مشکل، 254 00:10:20,180 --> 00:10:23,850 اما این روش که در واقع به عنوان کاوش خطی اشاره شد، 255 00:10:23,850 --> 00:10:26,650 به موجب آن شما فقط در نظر شما آرایه به طول خط باشد. 256 00:10:26,650 --> 00:10:29,680 و شما فقط نوع پروب یا بازرسی هر یک از عناصر موجود 257 00:10:29,680 --> 00:10:31,360 به دنبال یک نقطه در دسترس است. 258 00:10:31,360 --> 00:10:34,010 و به محض اینکه شما پیدا یک، شما را رها در آن وجود دارد. 259 00:10:34,010 --> 00:10:38,390 >> در حال حاضر، قیمت در حال حاضر پرداخت می شود برای این راه حل چیزی است؟ 260 00:10:38,390 --> 00:10:41,300 ما یک آرایه با اندازه ثابت، و وقتی که من وارد نام 261 00:10:41,300 --> 00:10:44,059 به آن، حداقل در ابتدا، چه زمان در حال اجرا از درج 262 00:10:44,059 --> 00:10:46,350 برای قرار دادن دانش آموزان آزمونها در سطل درست است؟ 263 00:10:46,350 --> 00:10:48,710 264 00:10:48,710 --> 00:10:50,002 بزرگ O از چه؟ 265 00:10:50,002 --> 00:10:51,147 >> رسید N. 266 00:10:51,147 --> 00:10:52,480 DAVID مالان: من شنیده O بزرگ N. 267 00:10:52,480 --> 00:10:53,530 268 00:10:53,530 --> 00:10:54,300 درست نیست. 269 00:10:54,300 --> 00:10:56,490 اما ما از هم جدا خواهیم کسی را دست انداختن چرا در یک لحظه. 270 00:10:56,490 --> 00:10:57,702 چه چیز دیگری ممکن بود؟ 271 00:10:57,702 --> 00:10:58,755 >> رسید [نامفهوم] 272 00:10:58,755 --> 00:11:00,380 DAVID مالان: و به من اجازه انجام این کار را به صورت بصری. 273 00:11:00,380 --> 00:11:04,720 بنابراین فرض کنید این نامه S. است 274 00:11:04,720 --> 00:11:05,604 >> رسید این یکی است. 275 00:11:05,604 --> 00:11:06,520 DAVID مالان: این یکی است. 276 00:11:06,520 --> 00:11:06,710 درست است؟ 277 00:11:06,710 --> 00:11:08,950 این یک آرایه است که یعنی دسترسی تصادفی. 278 00:11:08,950 --> 00:11:11,790 و اگر ما از این فکر می کنم به عنوان صفر و این را به عنوان 25، 279 00:11:11,790 --> 00:11:13,800 و ما متوجه است که، اوه، اینجا ورودی S من، 280 00:11:13,800 --> 00:11:16,350 من قطعا می تواند تبدیل S، یک کاراکتر اسکی، 281 00:11:16,350 --> 00:11:18,540 به تعدادی مربوطه بین صفر و 25 282 00:11:18,540 --> 00:11:20,910 و سپس بلافاصله آن را که در آن تعلق دارد. 283 00:11:20,910 --> 00:11:26,120 >> اما البته، به زودی به عنوان من به دریافت نفر دوم که نام یک و یا B و یا C است 284 00:11:26,120 --> 00:11:29,300 در نهایت، اگر من از کاوش خطی به عنوان راه حل من، 285 00:11:29,300 --> 00:11:31,360 زمان در حال اجرا از درج در بدترین حالت 286 00:11:31,360 --> 00:11:33,120 در واقع رفتن به محول به چه؟ 287 00:11:33,120 --> 00:11:34,270 288 00:11:34,270 --> 00:11:36,045 و من آن را در اینجا می شنوید درست در اوایل. 289 00:11:36,045 --> 00:11:36,920 رسید [نامفهوم] 290 00:11:36,920 --> 00:11:41,620 DAVID مالان: پس از آن N واقع یک بار است شما یک مجموعه داده به اندازه کافی بزرگ است. 291 00:11:41,620 --> 00:11:44,410 بنابراین، از یک سو، اگر آرایه شما به اندازه کافی بزرگ است 292 00:11:44,410 --> 00:11:48,287 و اطلاعات خود را به اندازه کافی نادر است، شما این زمان ثابت زیبا. 293 00:11:48,287 --> 00:11:50,620 اما به محض اینکه شما شروع به گرفتن عناصر بیشتر و بیشتر، 294 00:11:50,620 --> 00:11:53,200 و فقط آماری شما بیشتر مردم با حرف 295 00:11:53,200 --> 00:11:56,030 همانطور که از نام و یا حرف B، می تواند به طور بالقوه 296 00:11:56,030 --> 00:11:57,900 محول را به چیزی خطی. 297 00:11:57,900 --> 00:11:59,640 بنابراین کاملا بی نقص نیست. 298 00:11:59,640 --> 00:12:00,690 بنابراین می تواند ما انجام می دهیم بهتر است؟ 299 00:12:00,690 --> 00:12:03,210 >> خب، چه شد ما راه حل قبل از زمانی که ما 300 00:12:03,210 --> 00:12:06,820 می خواهم به پویایی بیشتر از چیزی شبیه به یک آرایه اجازه؟ 301 00:12:06,820 --> 00:12:08,085 302 00:12:08,085 --> 00:12:08,960 رسید [نامفهوم] 303 00:12:08,960 --> 00:12:10,030 DAVID مالان: چه معرفی به ما؟ 304 00:12:10,030 --> 00:12:10,530 آره. 305 00:12:10,530 --> 00:12:11,430 بنابراین یک لیست پیوندی. 306 00:12:11,430 --> 00:12:14,430 خوب، اجازه دهید ببینیم که چه چیزی مرتبط لیست ممکن است برای ما به جای انجام دهد. 307 00:12:14,430 --> 00:12:17,630 خوب، اجازه دهید که ما پیشنهاد می کنیم رسم تصویر به شرح زیر است. 308 00:12:17,630 --> 00:12:19,620 در حال حاضر این است مختلف عکس از یک مثال 309 00:12:19,620 --> 00:12:24,750 از متن های مختلف، در واقع، که در واقع با استفاده از آرایه ای از اندازه 31. 310 00:12:24,750 --> 00:12:28,220 و این کاربر به سادگی تصمیم به هش از رشته ها 311 00:12:28,220 --> 00:12:32,430 بر روی نام فرد بر اساس نیست، اما بر اساس تولد خود را. 312 00:12:32,430 --> 00:12:35,680 صرف نظر از ماه، آنها نمیفهمد اگر شما در اول ماه به دنیا 313 00:12:35,680 --> 00:12:39,580 یا 31 از یک ماه، نویسنده خواهد شد که بر اساس مقدار hash، 314 00:12:39,580 --> 00:12:44,154 تا که به گسترش این نام از یک بیت بیش از 26 نقاط ممکن است اجازه می دهد. 315 00:12:44,154 --> 00:12:47,320 و شاید آن را کمی یکنواخت تر است از رفتن با حروف الفبا، 316 00:12:47,320 --> 00:12:50,236 چون البته احتمالا وجود دارد بیشتر مردم در جهان با نام های 317 00:12:50,236 --> 00:12:54,020 که شروع با از قطعا برخی از نامه های دیگر از حروف الفبا. 318 00:12:54,020 --> 00:12:56,380 بنابراین شاید این است که کمی یکنواخت تر، فرض 319 00:12:56,380 --> 00:12:58,640 توزیع یکنواخت از نوزادان در سراسر یک ماه. 320 00:12:58,640 --> 00:12:59,990 >> اما، البته، این است که هنوز ناقص است. 321 00:12:59,990 --> 00:13:00,370 درست است؟ 322 00:13:00,370 --> 00:13:01,370 ما با داشتن برخورد. 323 00:13:01,370 --> 00:13:04,680 چند نفر در این ساختار داده ها هنوز هم هستند 324 00:13:04,680 --> 00:13:08,432 داشتن تاریخ تولد همان حداقل شما بدون در نظر گرفتن ماه است. 325 00:13:08,432 --> 00:13:09,640 اما آنچه نویسنده انجام می شود؟ 326 00:13:09,640 --> 00:13:13,427 خب، به نظر می رسد ما یک آرایه در سمت چپ به صورت عمودی کشیده شده، 327 00:13:13,427 --> 00:13:15,010 اما تفسیر یک هنرمند فقط. 328 00:13:15,010 --> 00:13:18,009 مهم نیست که در چه جهتی شما قرعه کشی یک آرایه، آن را هنوز هم یک آرایه. 329 00:13:18,009 --> 00:13:20,225 آرایه ای از ظاهرا این چیست؟ 330 00:13:20,225 --> 00:13:21,500 >> رسید لیست پیوندی. 331 00:13:21,500 --> 00:13:21,650 >> DAVID مالان: آره. 332 00:13:21,650 --> 00:13:23,490 به نظر می رسد آن را آرایه ای از لیست پیوندی. 333 00:13:23,490 --> 00:13:26,490 بنابراین دوباره، به این نقطه از مرتب کردن بر اساس استفاده از این ساختمان داده در حال حاضر 334 00:13:26,490 --> 00:13:28,550 به عنوان مواد تشکیل دهنده به بیش راه حل های جالب، 335 00:13:28,550 --> 00:13:30,862 شما کاملا می تواند یک اساسی، مانند یک آرایه، 336 00:13:30,862 --> 00:13:33,320 و پس از آن چیزی بیشتر جالب مانند یک لیست پیوندی 337 00:13:33,320 --> 00:13:36,660 و حتی آنها را به حتی ترکیب ساختار داده ها جالب تر است. 338 00:13:36,660 --> 00:13:39,630 و در واقع، این بیش از حد به نام جدول هش، 339 00:13:39,630 --> 00:13:42,610 به موجب آن آرایه است واقعا جدول هش، 340 00:13:42,610 --> 00:13:45,600 اما این جدول هش است زنجیر، پس به صحبت می کنند، 341 00:13:45,600 --> 00:13:50,220 که می تواند به رشد و یا کوچک در بر تعدادی از عناصر که می خواهید وارد کنید. 342 00:13:50,220 --> 00:13:52,990 >> در حال حاضر، بر این اساس، آنچه که زمان در حال اجرا در حال حاضر؟ 343 00:13:52,990 --> 00:13:58,030 اگر من می خواهم به کسی وارد که روز تولد اکتبر 31 است، 344 00:13:58,030 --> 00:13:59,040 کجا او برود؟ 345 00:13:59,040 --> 00:14:00,530 346 00:14:00,530 --> 00:14:01,030 همه راست. 347 00:14:01,030 --> 00:14:02,819 در پایین که در آن می گوید 31. 348 00:14:02,819 --> 00:14:03,610 و این عالی است. 349 00:14:03,610 --> 00:14:05,060 در آن زمان ثابت بود. 350 00:14:05,060 --> 00:14:08,760 اما اگر ما شخص دیگری را پیدا که روز تولد است، بیایید ببینید، 351 00:14:08,760 --> 00:14:10,950 اکتبر، نوامبر، دسامبر 31؟ 352 00:14:10,950 --> 00:14:12,790 که در آن است که او برای رفتن؟ 353 00:14:12,790 --> 00:14:13,290 همین. 354 00:14:13,290 --> 00:14:13,970 دو گام هر چند. 355 00:14:13,970 --> 00:14:15,303 که این ثابت هر چند نمی باشد؟ 356 00:14:15,303 --> 00:14:16,360 357 00:14:16,360 --> 00:14:16,860 همه راست. 358 00:14:16,860 --> 00:14:17,840 در حال حاضر در آن است. 359 00:14:17,840 --> 00:14:20,570 اما در حالت کلی، مردم بیشتر اضافه می کنیم، 360 00:14:20,570 --> 00:14:23,790 احتمالا، ما قصد داریم برای به دست آوردن برخورد بیشتر و بیشتر. 361 00:14:23,790 --> 00:14:26,820 >> در حال حاضر این است که کمی بهتر است به دلیل از لحاظ فنی 362 00:14:26,820 --> 00:14:34,580 در حال حاضر من می تواند در زنجیره است بدترین حالت چه مدت؟ 363 00:14:34,580 --> 00:14:38,890 اگر من N مردم را به این تر وارد ساختمان داده های پیچیده، n نفر، 364 00:14:38,890 --> 00:14:41,080 در بدترین حالت آن را به N. 365 00:14:41,080 --> 00:14:41,815 چرا؟ 366 00:14:41,815 --> 00:14:43,332 >> رسید از آنجا که اگر همه همان روز تولد، 367 00:14:43,332 --> 00:14:44,545 آنها در حال رفتن به یک خط. 368 00:14:44,545 --> 00:14:45,420 DAVID مالان: کامل. 369 00:14:45,420 --> 00:14:47,480 این ممکن است کمی ساختگی، اما واقعا در بدترین حالت، 370 00:14:47,480 --> 00:14:50,117 اگر هر کس همان روز تولد، با توجه به ورودی های شما داشته باشد، 371 00:14:50,117 --> 00:14:51,950 شما در حال رفتن به یک زنجیره گسترده طولانی است. 372 00:14:51,950 --> 00:14:54,241 و به این ترتیب، شما می توانید آن را به یک تماس هش جدول، اما واقعا آن را 373 00:14:54,241 --> 00:14:56,810 فقط یک لیست گسترده مرتبط با زیادی از فضای هدر رفته. 374 00:14:56,810 --> 00:15:00,460 اما به طور کلی، اگر ما فرض کنیم که حداقل تولدها uniform-- هستند 375 00:15:00,460 --> 00:15:01,750 و آن را احتمالا نه. 376 00:15:01,750 --> 00:15:02,587 من ساخت که تا. 377 00:15:02,587 --> 00:15:04,420 اما اگر فرض کنیم، برای به خاطر بحث 378 00:15:04,420 --> 00:15:07,717 که آنها، پس از آن در تئوری، اگر این نمایندگی عمودی است 379 00:15:07,717 --> 00:15:11,050 از آرایه، و سپس امیدوارم شما رفتن به زنجیر که می دانید، 380 00:15:11,050 --> 00:15:15,880 تقریبا همان طول که در آن هر یک از این نشان دهنده یک روز از ماه. 381 00:15:15,880 --> 00:15:19,930 >> حال اگر 31 روز در ماه وجود دارد، این بدان معناست که زمان در حال اجرا من واقعا 382 00:15:19,930 --> 00:15:25,230 O بزرگ N بیش از 31 است، که احساس بهتر از خطی می باشند. 383 00:15:25,230 --> 00:15:27,950 اما آنچه یکی از ما بود تعهدات دو هفته 384 00:15:27,950 --> 00:15:31,145 پیش هر زمان که آن را به بیان آمد زمان اجرای یک الگوریتم؟ 385 00:15:31,145 --> 00:15:33,450 386 00:15:33,450 --> 00:15:35,190 فقط تنها در مدت بالا نگاه کنید. 387 00:15:35,190 --> 00:15:35,690 درست است؟ 388 00:15:35,690 --> 00:15:37,400 31 قطعا مفید است. 389 00:15:37,400 --> 00:15:39,610 اما این است که هنوز O بزرگ N. 390 00:15:39,610 --> 00:15:41,730 اما یکی از تم مشکل تنظیم پنج 391 00:15:41,730 --> 00:15:43,950 در حال رفتن به به اذعان کرد که مطلقا، 392 00:15:43,950 --> 00:15:47,320 مجانبی، به لحاظ نظری این ساختار داده ها 393 00:15:47,320 --> 00:15:50,470 از آن بهتر است فقط یک لیست گسترده مرتبط است. 394 00:15:50,470 --> 00:15:53,550 و در واقع، در بدترین حالت، این جدول هش ممکن است به آن محول. 395 00:15:53,550 --> 00:15:57,620 >> اما در دنیای واقعی، با ما انسان ها که مکینتاش خود و یا رایانه های شخصی یا هر چیز دیگری 396 00:15:57,620 --> 00:16:01,240 و در حال اجرا هستند در دنیای واقعی نرم افزار بر روی داده های دنیای واقعی، 397 00:16:01,240 --> 00:16:03,260 که الگوریتم می توانید به ترجیح می دهند؟ 398 00:16:03,260 --> 00:16:09,180 و یکی که مراحل پایان یا طول می کشد یکی طول می کشد که N 31 مرحله تقسیم می 399 00:16:09,180 --> 00:16:12,900 برای پیدا کردن برخی از قطعه ای از داده ها و یا برای نگاه کردن به برخی از اطلاعات؟ 400 00:16:12,900 --> 00:16:16,580 منظور من، مطلقا 31 می سازد تفاوت در جهان واقعی است. 401 00:16:16,580 --> 00:16:18,540 این 31 برابر سریعتر است. 402 00:16:18,540 --> 00:16:20,880 و ما انسان ها قطعا رفتن به قدر. 403 00:16:20,880 --> 00:16:23,004 >> بنابراین دوگانگی درک بین در واقع وجود دارد 404 00:16:23,004 --> 00:16:25,920 صحبت کردن در مورد چیزهایی که از لحاظ نظری و مجانبی که قطعا 405 00:16:25,920 --> 00:16:28,760 ارزش ما به عنوان دیده می شود، اما در دنیای واقعی، 406 00:16:28,760 --> 00:16:32,930 اگر شما در مورد ساخت فقط مراقبت خوشحال انسان برای ورودی به طور کلی، 407 00:16:32,930 --> 00:16:36,010 شما ممکن است به خوبی می خواهم به شرایط این واقعیت است که، بله، این خطی است، 408 00:16:36,010 --> 00:16:38,360 اما آن را 31 برابر سریعتر از خطی ممکن است. 409 00:16:38,360 --> 00:16:41,610 و بهتر از آن، ما نه تنها به انجام کاری دلخواه مانند تاریخ تولد، 410 00:16:41,610 --> 00:16:44,030 ما می تواند کمی صرف زمان و هوش و ذکاوت بیشتری 411 00:16:44,030 --> 00:16:47,140 و فکر می کنم در مورد آنچه که ممکن است انجام دهید، نام فرد داده می شود و شاید 412 00:16:47,140 --> 00:16:50,130 تاریخ تولد خود را به ترکیب آن مواد تشکیل دهنده به شکل چیزی 413 00:16:50,130 --> 00:16:52,720 که واقعا تر لباس و کمتر jaggy، 414 00:16:52,720 --> 00:16:56,250 تا به این تصویر از صحبت در حال حاضر نشان می دهد ممکن است. 415 00:16:56,250 --> 00:16:57,750 چگونه می تواند از این پیاده سازی می کنیم در کد؟ 416 00:16:57,750 --> 00:17:00,280 خوب، اجازه دهید که ما پیشنهاد می کنیم فقط قرض برخی از نحو ایم 417 00:17:00,280 --> 00:17:01,799 تا کنون چند بار استفاده. 418 00:17:01,799 --> 00:17:03,590 و من قصد دارم برای تعریف یک گره، که دوباره 419 00:17:03,590 --> 00:17:06,812 یک اصطلاح عمومی برای برخی است ظرف برای برخی از ساختمان داده. 420 00:17:06,812 --> 00:17:09,020 من قصد دارم به پیشنهاد که یک رشته است که در آن وجود دارد. 421 00:17:09,020 --> 00:17:11,369 اما ما قصد داریم به شروع مصرف کسانی که آموزش چرخ فعال کن. 422 00:17:11,369 --> 00:17:13,230 >> هیچ کتابخانه تر CS50 واقعا، مگر اینکه شما می خواهید 423 00:17:13,230 --> 00:17:15,230 برای استفاده از آن برای نهایی خود را پروژه، که خوب است، 424 00:17:15,230 --> 00:17:18,569 اما در حال حاضر ما در حال رفتن به جلو و عقب پرده و می گویند که تنها یک ستاره کاراکتر است. 425 00:17:18,569 --> 00:17:22,069 بنابراین کلمه است برای رفتن به وجود نام شخص مورد نظر. 426 00:17:22,069 --> 00:17:25,079 و در حال حاضر من یک لینک در اینجا به گره بعدی 427 00:17:25,079 --> 00:17:28,170 به طوری که این نشان دهنده هر یک از گره ها 428 00:17:28,170 --> 00:17:30,950 در زنجیره ای، به طور بالقوه، یک لیست پیوندی. 429 00:17:30,950 --> 00:17:34,090 >> و در حال حاضر چگونه می توانم اعلام جدول هش خود را؟ 430 00:17:34,090 --> 00:17:36,660 چگونه این ساختار کل اعلام کنم؟ 431 00:17:36,660 --> 00:17:40,960 خب، واقعا، بسیار شبیه به من استفاده از یک اشاره گر فقط به عنصر اول لیست 432 00:17:40,960 --> 00:17:44,510 قبل از آن، به طور مشابه می تواند من فقط می گویند من فقط نیاز به یک دسته از اشاره گر 433 00:17:44,510 --> 00:17:46,270 برای پیاده سازی این جدول هش کامل. 434 00:17:46,270 --> 00:17:49,484 من قصد دارم به یک آرایه جدول نام برای جدول هش. 435 00:17:49,484 --> 00:17:50,900 آن را به اندازه ظرفیت باشد. 436 00:17:50,900 --> 00:17:52,525 که چگونه بسیاری از عناصر می تواند در آن جا داد. 437 00:17:52,525 --> 00:17:56,180 و هر یک از این عناصر در این آرایه است برای رفتن به یک ستاره گره. 438 00:17:56,180 --> 00:17:56,810 چرا؟ 439 00:17:56,810 --> 00:18:00,160 خب، در این تصویر، چه من اجرای جدول هش عنوان 440 00:18:00,160 --> 00:18:04,330 به طور موثر در آغاز فقط این آرایه است که ما به صورت عمودی کشیده شده ام، 441 00:18:04,330 --> 00:18:06,820 هر یک از مربع ها که نشان دهنده یک اشاره گر. 442 00:18:06,820 --> 00:18:09,170 که آنهایی که اسلش داشته از طریق آنها فقط تهی. 443 00:18:09,170 --> 00:18:11,410 و آنهایی که فلش به راست 444 00:18:11,410 --> 00:18:16,140 اشاره گر به گره های واقعی واقعی، بنابر این شروع یک لیست پیوندی. 445 00:18:16,140 --> 00:18:19,050 >> بنابراین در اینجا، پس از آن، این است که چگونه ممکن است ما پیاده سازی یک جدول هش که 446 00:18:19,050 --> 00:18:21,580 پیاده سازی زنجیره جداگانه. 447 00:18:21,580 --> 00:18:22,840 هم اکنون می توانید ما بهتر؟ 448 00:18:22,840 --> 00:18:25,632 کلیه حقوق من قول داده است که آخرین بار ما می تواند رسیدن به زمان ثابت. 449 00:18:25,632 --> 00:18:27,381 و من این به شما زمان ثابت در اینجا، 450 00:18:27,381 --> 00:18:29,850 اما پس از آن گفت: واقعا نمی زمان ثابت به دلیل آن را هنوز هم 451 00:18:29,850 --> 00:18:31,890 وابسته به تعداد تعداد عناصر 452 00:18:31,890 --> 00:18:34,500 شما در حال ورود به ساختار داده ها. 453 00:18:34,500 --> 00:18:35,980 اما فرض کنید که ما این را انجام داد. 454 00:18:35,980 --> 00:18:39,550 به من اجازه رفتن به صفحه بیش از اینجا. 455 00:18:39,550 --> 00:18:44,520 اجازه دهید من نیز این پروژه تا اینجا، روشن صفحه نمایش، و گمان می کنم این بود. 456 00:18:44,520 --> 00:18:49,300 فرض کنید من می خواستم برای وارد کردن نام و نام خانوادگی Daven در به ساختار داده ام. 457 00:18:49,300 --> 00:18:52,100 >> بنابراین من می خواهم برای وارد کردن یک رشته Daven به ساختار داده ها. 458 00:18:52,100 --> 00:18:54,370 چه می شود اگر من استفاده نمی هش جدول، اما من با استفاده از 459 00:18:54,370 --> 00:18:56,980 چیزی که بیشتر درخت مانند مانند یک درخت خانواده، که در آن 460 00:18:56,980 --> 00:18:59,670 شما باید برخی از ریشه در گره های بالا و پس از آن و برگ 461 00:18:59,670 --> 00:19:01,440 که به رو به پایین و به سمت خارج. 462 00:19:01,440 --> 00:19:04,450 فرض کنید پس از آن، که من می خواهید برای وارد کردن در Daven 463 00:19:04,450 --> 00:19:06,430 به آنچه در حال حاضر یک لیست خالی است. 464 00:19:06,430 --> 00:19:09,780 من قصد دارم به انجام موارد زیر: من هستم برای ایجاد یک گره در این خانواده 465 00:19:09,780 --> 00:19:15,170 درخت مانند ساختار داده است که به نظر می رسد کمی شبیه به این، که هر کدام 466 00:19:15,170 --> 00:19:19,640 مستطیل است، اجازه دهید بگویم، در حال حاضر 26 عناصر در آن است. 467 00:19:19,640 --> 00:19:21,650 و هر یک از سلول در این آرایه است که 468 00:19:21,650 --> 00:19:23,470 برای نشان دادن نامه ای از حروف الفبا. 469 00:19:23,470 --> 00:19:28,190 >> به طور خاص، من قصد دارم برای درمان این است A، B پس از آن، و سپس C، D و سپس، 470 00:19:28,190 --> 00:19:29,310 این یکی در اینجا. 471 00:19:29,310 --> 00:19:32,940 پس این است که به طور موثر نشان نامه D. 472 00:19:32,940 --> 00:19:36,040 اما برای وارد کردن همه این Daven نام من نیاز به انجام کمی بیشتر. 473 00:19:36,040 --> 00:19:37,840 بنابراین من برای اولین بار از رفتن به هش، پس به صحبت می کنند. 474 00:19:37,840 --> 00:19:41,049 من قصد دارم در این نامه اولین نگاه در این Daven است که به وضوح D، 475 00:19:41,049 --> 00:19:42,840 و من قصد دارم به تخصیص یک گره که به نظر می رسد 476 00:19:42,840 --> 00:19:45,570 مانند this-- یک مستطیل بزرگ مناسب به اندازه کافی در تمام حروف الفبا. 477 00:19:45,570 --> 00:19:47,140 >> حالا D انجام شده است. 478 00:19:47,140 --> 00:19:49,720 در حال حاضر A. D-A-V-E-N هدف است. 479 00:19:49,720 --> 00:19:51,220 بنابراین در حال حاضر آنچه که من قصد دارم برای انجام این کار است. 480 00:19:51,220 --> 00:19:54,027 به محض این که من اطلاع D آغاز شده هیچ اشاره گر وجود دارد. 481 00:19:54,027 --> 00:19:56,860 این ارزش زباله در حال حاضر، یا من ممکن است آن را مقدار دهی اولیه به تهی. 482 00:19:56,860 --> 00:19:59,630 اما به من اجازه ادامه با این ایده ساخت یک درخت. 483 00:19:59,630 --> 00:20:04,260 به من اجازه تخصیص یکی دیگر از این گره های که دارای 26 عنصر در آن است. 484 00:20:04,260 --> 00:20:05,150 >> و شما می دانید چه؟ 485 00:20:05,150 --> 00:20:09,130 اگر این فقط یک گره در حافظه است که من با malloc ایجاد شده، با استفاده از یک ساختار 486 00:20:09,130 --> 00:20:11,240 همانطور که ما به زودی خواهید دید، من قصد دارم به انجام this-- 487 00:20:11,240 --> 00:20:14,450 من قصد دارم به رسم فلش از چیزی که D را نشان داده 488 00:20:14,450 --> 00:20:15,860 این گره جدید است. 489 00:20:15,860 --> 00:20:19,240 و در حال حاضر، برای اولین بار بعد حرف در نام Daven است، 490 00:20:19,240 --> 00:20:24,150 V-- D-A-V-- من قصد دارم به جلو بروید و رسم گره دیگر شبیه به این، 491 00:20:24,150 --> 00:20:30,150 به موجب آن، عناصر V در اینجا، که ما برای جلب اوه instance--. 492 00:20:30,150 --> 00:20:31,020 ما نمی خواهد وجود دارد را جلب کند. 493 00:20:31,020 --> 00:20:31,936 آن را به اینجا بروید. 494 00:20:31,936 --> 00:20:32,890 495 00:20:32,890 --> 00:20:35,712 >> پس از آن ما در حال رفتن به در نظر این به V. 496 00:20:35,712 --> 00:20:44,920 و سپس در اینجا ما قصد داریم به شاخص از V به آنچه که ما را در نظر E. 497 00:20:44,920 --> 00:20:50,100 و سپس از اینجا ما قصد داریم به به یکی از این گره های اینجا. 498 00:20:50,100 --> 00:20:52,930 و در حال حاضر ما یک سوال برای پاسخ. 499 00:20:52,930 --> 00:20:57,840 من نیاز به نوعی نشان می دهد که ما در پایان رشته Daven هستید. 500 00:20:57,840 --> 00:20:59,490 بنابراین من فقط می تواند آن را ترک تهی. 501 00:20:59,490 --> 00:21:02,670 >> اما اگر ما به Daven نام و نام خانوادگی نیز، که 502 00:21:02,670 --> 00:21:04,280 است، همانطور که ما گفته ایم، داونپورت؟ 503 00:21:04,280 --> 00:21:06,970 پس چه می شود اگر Daven است در واقع یک زیر رشته، 504 00:21:06,970 --> 00:21:08,960 یک پیشوند از یک رشته بسیار طولانی؟ 505 00:21:08,960 --> 00:21:11,450 ما نمی توانیم فقط به طور دائم می گویند هیچ چیزی در جریان است 506 00:21:11,450 --> 00:21:14,410 برای رفتن وجود دارد، چرا که ما می تواند هرگز یک کلمه مانند داونپورت وارد 507 00:21:14,410 --> 00:21:15,840 در این ساختار داده ها 508 00:21:15,840 --> 00:21:19,560 >> بنابراین آنچه که ما می تواند انجام دهد به جای است درمان هر یک از این عناصر 509 00:21:19,560 --> 00:21:22,170 به عنوان شاید داشتن دو عناصر داخل آنها. 510 00:21:22,170 --> 00:21:24,810 یک اشاره گر است، در واقع، که من انجام شده است. 511 00:21:24,810 --> 00:21:27,100 بنابراین هر یک از این جعبه فقط یک سلول نیست. 512 00:21:27,100 --> 00:21:29,855 اما اگر بالا one-- یکی پایین است 513 00:21:29,855 --> 00:21:32,230 رفتن به تهی، به دلیل هیچ داونپورت فقط رتبهدهی نشده است وجود دارد. 514 00:21:32,230 --> 00:21:34,197 چه می شود اگر یکی از بالا برخی از ارزش ویژه است؟ 515 00:21:34,197 --> 00:21:36,530 و آن را برای رفتن به یک کمی سخت به آن اندازه این قرعه کشی. 516 00:21:36,530 --> 00:21:38,130 اما فرض کنید که این فقط یک علامت چک است. 517 00:21:38,130 --> 00:21:38,920 را بررسی کنید. 518 00:21:38,920 --> 00:21:44,230 D-A-V-E-N یک رشته است در این ساختار داده ها. 519 00:21:44,230 --> 00:21:48,350 >> در همین حال، اگر من فضای بیشتری داشت در اینجا، من می توانم P-O-R-T انجام دهید، 520 00:21:48,350 --> 00:21:52,650 و من می توانم چک در گره قرار داده که حرف T در پایان بسیار. 521 00:21:52,650 --> 00:21:55,460 پس این است که انبوه پیچیده، به دنبال ساختار داده ها. 522 00:21:55,460 --> 00:21:57,210 و دست خط من قطعا کمک نمی کند. 523 00:21:57,210 --> 00:22:00,043 اما اگر من می خواستم به وارد کردن چیزی دیگری، در نظر گرفتن آنچه که ما انجام می دهند. 524 00:22:00,043 --> 00:22:03,370 اگر ما می خواستیم برای قرار دادن دیوید در، ما می خواهم از همین منطق، D-A-V را دنبال، 525 00:22:03,370 --> 00:22:08,802 اما در حال حاضر من می خواهم در آینده اشاره عنصر نه از E است، اما از من به D. 526 00:22:08,802 --> 00:22:10,760 پس برای رفتن به وجود گره در این درخت. 527 00:22:10,760 --> 00:22:12,325 ما قصد داریم به malloc تماس است. 528 00:22:12,325 --> 00:22:14,700 اما من نمی خواهم به یک ظروف سرباز یا مسافر کامل از این تصویر. 529 00:22:14,700 --> 00:22:17,710 بنابراین اجازه دهید به جای در یک نگاه که از پیش فرموله شده است 530 00:22:17,710 --> 00:22:21,810 مثل این که با نقطه نیست، نقطه، نقاط، اما فقط به صورت مختصر آرایه. 531 00:22:21,810 --> 00:22:23,950 اما هر یک از گره ها در این درخت در اینجا 532 00:22:23,950 --> 00:22:26,700 نشان دهنده thing-- همان آرایه ای از اندازه ری 26. 533 00:22:26,700 --> 00:22:28,860 >> یا اگر ما می خواهیم به واقعا مناسب در حال حاضر، چه 534 00:22:28,860 --> 00:22:30,790 اگر نام کسی را به عنوان آپوستروف، اجازه دهید 535 00:22:30,790 --> 00:22:35,560 فرض کنیم که هر گره در واقع تا مانند 27 شاخص در آن، نه فقط 26. 536 00:22:35,560 --> 00:22:42,020 پس این در حال حاضر است برای رفتن به یک داده ساختار به نام trie-- T-R-I-E. 537 00:22:42,020 --> 00:22:46,120 درخت، است که ظاهرا در طول تاریخ نام هوشمندانه برای یک درخت 538 00:22:46,120 --> 00:22:49,040 که برای بهینه سازی بازیابی، که البته، 539 00:22:49,040 --> 00:22:50,870 با I-E املای پس از آن درخت. 540 00:22:50,870 --> 00:22:52,710 اما تاریخ این درخت است. 541 00:22:52,710 --> 00:22:55,860 >> بنابراین یک درخت این درخت مانند داده است ساختار مانند یک درخت خانواده 542 00:22:55,860 --> 00:22:57,510 که در نهایت مانند که رفتار می کند. 543 00:22:57,510 --> 00:23:00,890 و در اینجا فقط یک مثال دیگر از یک است تمام دسته از نام های افراد دیگر است. 544 00:23:00,890 --> 00:23:03,540 اما سوال در حال حاضر در دست است چه 545 00:23:03,540 --> 00:23:08,070 ما با معرفی مسلما بیشتر به دست آورد ساختار داده های پیچیده، و یک، 546 00:23:08,070 --> 00:23:09,870 رک و پوست کنده، که با استفاده از مقدار زیادی از حافظه. 547 00:23:09,870 --> 00:23:11,703 >> از آنجا که حتی اگر، در حال حاضر، من فقط هستم 548 00:23:11,703 --> 00:23:15,050 با استفاده از اشاره گر ها D'و و V و Es و NS، 549 00:23:15,050 --> 00:23:16,700 من هدر دادن یک معامله از مقدار زیادی از حافظه. 550 00:23:16,700 --> 00:23:18,030 551 00:23:18,030 --> 00:23:22,660 اما جایی که من صرف یک منبع، من تمایل به انجام دست آوردن دوباره یکی دیگر از. 552 00:23:22,660 --> 00:23:26,020 پس اگر من صرف فضای بیشتر، آنچه احتمالا به این امید؟ 553 00:23:26,020 --> 00:23:27,407 که من هزینه های کمتر چه؟ 554 00:23:27,407 --> 00:23:28,240 رسید زمان کمتر. 555 00:23:28,240 --> 00:23:28,990 DAVID مالان: زمان. 556 00:23:28,990 --> 00:23:30,320 حالا چرا ممکن است؟ 557 00:23:30,320 --> 00:23:33,880 خب، چه درج شده است زمان، از نظر O بزرگ در حال حاضر، 558 00:23:33,880 --> 00:23:37,660 از یک نام مانند Daven یا داونپورت و یا دیوید؟ 559 00:23:37,660 --> 00:23:39,340 خوب، Daven پنج مرحله بود. 560 00:23:39,340 --> 00:23:42,350 داونپورت خواهد بود نه گام، بنابراین این امر می تواند گام های چند. 561 00:23:42,350 --> 00:23:44,250 دیوید خواهد بود پنج مرحله نیز هست. 562 00:23:44,250 --> 00:23:47,230 بنابراین کسانی که بتن اعداد، اما مطمئنا وجود دارد 563 00:23:47,230 --> 00:23:49,550 حد بالا در طول نام کسی. 564 00:23:49,550 --> 00:23:52,240 و در واقع، در مشکل مجموعه از پنج خصوصیات، 565 00:23:52,240 --> 00:23:54,050 ما قصد داریم به پیشنهاد که آن چیزی 566 00:23:54,050 --> 00:23:55,470 که شخصیت های 40 و برخی از عجیب و غریب است. 567 00:23:55,470 --> 00:23:58,180 >> در واقع، هیچ کس نام بی نهایت طولانی، 568 00:23:58,180 --> 00:24:01,542 است که می گویند که طول نام و یا طول یک رشته ممکن است ما 569 00:24:01,542 --> 00:24:03,750 باید برخی از دولت ساختار مسلما چه؟ 570 00:24:03,750 --> 00:24:05,550 571 00:24:05,550 --> 00:24:06,250 این ثابت است. 572 00:24:06,250 --> 00:24:06,430 درست است؟ 573 00:24:06,430 --> 00:24:09,310 این ممکن است یک ثابت بزرگ مانند 40-چیزی، اما آن ثابت است. 574 00:24:09,310 --> 00:24:13,752 و هیچ وابستگی به چه تعداد نام دیگر در این ساختار داده ها می باشد. 575 00:24:13,752 --> 00:24:15,460 به عبارت دیگر، اگر من می خواستم به در حال حاضر وارد 576 00:24:15,460 --> 00:24:20,540 کولتون یا جبرئیل و یا راب یا Zamyla یا آلیسون و یا بلیندا و یا هر نام دیگر 577 00:24:20,540 --> 00:24:23,940 از کارکنان را به این داده ها ساختار، زمان در حال اجرا است 578 00:24:23,940 --> 00:24:26,750 از قرار دادن نام های دیگر رفتن به در همه نهفته است 579 00:24:26,750 --> 00:24:30,220 توسط چگونه بسیاری از عناصر دیگر هستند در ساختار داده ها در حال حاضر؟ 580 00:24:30,220 --> 00:24:31,040 این طور نیست. 581 00:24:31,040 --> 00:24:31,540 درست است؟ 582 00:24:31,540 --> 00:24:36,150 از آنجا که ما در حال به طور موثر با استفاده از این چند لایه جدول هش. 583 00:24:36,150 --> 00:24:38,280 و زمان اجرای هر یک از این عملیات 584 00:24:38,280 --> 00:24:41,510 وابسته به تعداد نمی باشد. عناصری که در ساختار داده ها هستند 585 00:24:41,510 --> 00:24:43,090 یا که در نهایت رفتن در ساختار داده شود، 586 00:24:43,090 --> 00:24:44,714 اما در طول آنچه به طور خاص؟ 587 00:24:44,714 --> 00:24:46,500 588 00:24:46,500 --> 00:24:49,200 >> رشته بودن درج شده است، که می کند را 589 00:24:49,200 --> 00:24:52,580 این مجانبی ثابت O بزرگ time-- یک. 590 00:24:52,580 --> 00:24:54,720 و رک و پوست کنده، فقط در در دنیای واقعی، این 591 00:24:54,720 --> 00:24:58,380 به معنی قرار دادن نام Daven طول می کشد مثل پنج مرحله، یا نه داونپورت 592 00:24:58,380 --> 00:25:00,100 مراحل، یا دیوید پنج مرحله. 593 00:25:00,100 --> 00:25:03,071 که زیبا رفو بار کوچک در حال اجرا. 594 00:25:03,071 --> 00:25:05,320 و، در واقع، که بسیار چیز خوبی است، به ویژه هنگامی که 595 00:25:05,320 --> 00:25:08,126 آن را وابسته به کل نیست تعدادی از عناصر در آن وجود دارد. 596 00:25:08,126 --> 00:25:10,500 پس چگونه ممکن است که ما از این اجرا نوع ساختار در کد؟ 597 00:25:10,500 --> 00:25:12,900 این کمی بیشتر پیچیده است، اما هنوز هم آن را 598 00:25:12,900 --> 00:25:15,050 فقط استفاده از بلوک های ساختمان اصلی. 599 00:25:15,050 --> 00:25:17,830 من قصد دارم به دوباره تعریف گره ما به شرح زیر است: 600 00:25:17,830 --> 00:25:21,100 بولی نامیده می شود و این word-- می تواند هر چیزی گفته می شود. 601 00:25:21,100 --> 00:25:23,970 اما بولی نشان دهنده آنچه که من به عنوان یک علامت چک کشید. 602 00:25:23,970 --> 00:25:24,490 بله. 603 00:25:24,490 --> 00:25:26,720 این پایان یک رشته است در این ساختار داده ها. 604 00:25:26,720 --> 00:25:30,702 >> و، البته، ستاره گره با اشاره به کودکان وجود دارد. 605 00:25:30,702 --> 00:25:32,410 و، در واقع، درست مثل یک درخت خانواده، شما 606 00:25:32,410 --> 00:25:34,370 به گره در نظر که به حلق آویز کردن 607 00:25:34,370 --> 00:25:36,920 از پایین برخی از پدر و مادر عنصر به کودکان. 608 00:25:36,920 --> 00:25:40,510 و به این ترتیب کودکان در حال رفتن به یک مجموعه ای از 27، یکی از 27 609 00:25:40,510 --> 00:25:41,680 تنها بودن برای آپوستروف. 610 00:25:41,680 --> 00:25:43,390 ما قصد داریم به مرتب کردن بر اساس از موارد خاص است. 611 00:25:43,390 --> 00:25:45,400 بنابراین شما می توانید برخی از آنها دارای نام با آپوستروف. 612 00:25:45,400 --> 00:25:47,399 شاید حتی خط تیره باید در وجود دارد، اما شما 613 00:25:47,399 --> 00:25:50,330 در ص 5 مجموعه ما فقط مراقبت ببینید درباره نامه ها و نشانه اپوستروف. 614 00:25:50,330 --> 00:25:52,990 >> و سپس چگونه شما نماینده ساختار داده ها خود را؟ 615 00:25:52,990 --> 00:25:56,454 چگونه می توانم به شما نشان ریشه این درخت، پس به صحبت می کنند؟ 616 00:25:56,454 --> 00:25:59,620 خوب، فقط با یک لیست پیوندی را دوست دارم، شما نیاز به یک اشاره گر به اولین عنصر. 617 00:25:59,620 --> 00:26:04,270 با درخت شما فقط نیاز به یک اشاره گر به ریشه این درخت. 618 00:26:04,270 --> 00:26:07,290 و از آنجا شما می توانید هش راه خود را به پایین عمیق تر و عمیق تر 619 00:26:07,290 --> 00:26:10,460 به هر گره دیگر در ساختار. 620 00:26:10,460 --> 00:26:13,440 بنابراین به سادگی با این می ما نماینده که ساختار. 621 00:26:13,440 --> 00:26:15,877 >> در حال حاضر Meanwhile-- اوه، سوال. 622 00:26:15,877 --> 00:26:17,220 >> رسید کلمه بولی چیست؟ 623 00:26:17,220 --> 00:26:20,490 >> DAVID مالان: کلمه بولی است فقط این تجسم C 624 00:26:20,490 --> 00:26:22,920 از آنچه من توصیف در این کادر در اینجا، هنگامی که 625 00:26:22,920 --> 00:26:26,000 من شروع به تقسیم هر یک از عناصر آرایه را به دو تکه. 626 00:26:26,000 --> 00:26:27,600 یک اشاره گر به گره بعدی است. 627 00:26:27,600 --> 00:26:30,280 دیگر باید چیزی شبیه به یک جعبه چک 628 00:26:30,280 --> 00:26:33,770 می گویند بله، یک وجود دارد کلمه Daven که در اینجا به پایان می رسد، 629 00:26:33,770 --> 00:26:35,610 چون ما نمی خواهیم، در حال حاضر، دیو. 630 00:26:35,610 --> 00:26:39,320 >> حتی اگر دیو است برای رفتن به یک کلمه مشروع، او در این درخت نمی 631 00:26:39,320 --> 00:26:39,830 هنوز. 632 00:26:39,830 --> 00:26:40,950 و D است یک کلمه نیست. 633 00:26:40,950 --> 00:26:42,770 و D-A است یک کلمه یا یک نام نیست. 634 00:26:42,770 --> 00:26:45,020 بنابراین علامت چک فقط یک بار به شما نشان می دهد 635 00:26:45,020 --> 00:26:48,190 ضربه این گره است مسیر قبلی از شخصیت 636 00:26:48,190 --> 00:26:50,700 در واقع یک رشته که شما قرار داده ایم. 637 00:26:50,700 --> 00:26:53,660 به طوری که تمام بولی است در حال انجام برای ما وجود دارد. 638 00:26:53,660 --> 00:26:55,500 >> هر گونه سؤال دیگر در تلاش؟ 639 00:26:55,500 --> 00:26:56,215 آره. 640 00:26:56,215 --> 00:26:58,035 >> رسید همپوشانی چیست؟ 641 00:26:58,035 --> 00:26:59,945 اگر شما یک دیو و Daven چه؟ 642 00:26:59,945 --> 00:27:00,820 DAVID مالان: کامل. 643 00:27:00,820 --> 00:27:02,580 اگر شما یک دیو و Daven چه؟ 644 00:27:02,580 --> 00:27:06,240 بنابراین اگر ما وارد است، می گویند که یک نام مستعار، برای David-- Dave-- D-A-V-E؟ 645 00:27:06,240 --> 00:27:07,370 646 00:27:07,370 --> 00:27:08,700 این است که در واقع فوق العاده ساده است. 647 00:27:08,700 --> 00:27:10,325 بنابراین ما تنها رفتن به چهار مرحله. 648 00:27:10,325 --> 00:27:11,042 649 00:27:11,042 --> 00:27:15,847 D-A-V-E. و چه چیزی به من انجام یک بار به من ضربه که گره چهارم؟ 650 00:27:15,847 --> 00:27:16,680 فقط رفتن به تیک بزنید. 651 00:27:16,680 --> 00:27:18,000 ما در حال حاضر خوب به آن بروید. 652 00:27:18,000 --> 00:27:18,840 انجام می شود. 653 00:27:18,840 --> 00:27:19,750 چهار مرحله. 654 00:27:19,750 --> 00:27:21,590 زمان ثابت مجانبی. 655 00:27:21,590 --> 00:27:26,300 و در حال حاضر ما نشان داده ایم که هر دو دیو و Daven رشته در ساختار هستند. 656 00:27:26,300 --> 00:27:27,710 بنابراین یک مشکل نیست. 657 00:27:27,710 --> 00:27:30,200 و توجه کنید که چگونه حضور از Daven انجام آن را ندارد 658 00:27:30,200 --> 00:27:34,750 را هر زمان بیشتر یا کمتر زمان برای دیو و بالعکس. 659 00:27:34,750 --> 00:27:36,000 >> پس چه چیز دیگری می تواند ما در حال حاضر انجام می دهید؟ 660 00:27:36,000 --> 00:27:40,680 ما این استعاره قبل استفاده کرده اید سینی های نمایندگی چیزی. 661 00:27:40,680 --> 00:27:43,380 اما معلوم است که پشته از سینی است که در واقع 662 00:27:43,380 --> 00:27:47,187 نمایشی از داده انتزاعی دیگر type-- ساختمان داده سطح بالاتر 663 00:27:47,187 --> 00:27:49,770 که در پایان روز است فقط مانند یک آرایه یا لیست پیوندی 664 00:27:49,770 --> 00:27:50,970 و یا چیزی بیشتر دنیوی. 665 00:27:50,970 --> 00:27:53,270 اما جالب تر مفهوم مفهومی. 666 00:27:53,270 --> 00:27:56,440 پشته، مثل این سینی اینجا در مدر، 667 00:27:56,440 --> 00:27:58,750 به طور کلی نام فقط that-- پشته. 668 00:27:58,750 --> 00:28:02,540 >> و در این نوع از ساختمان داده شما دو operations-- 669 00:28:02,540 --> 00:28:05,880 شما باید یک فشار نامیده می شود برای اضافه کردن چیزی به پشته، 670 00:28:05,880 --> 00:28:08,320 مانند قرار دادن سینی دیگر پشت در بالای پشته. 671 00:28:08,320 --> 00:28:11,350 و سپس پاپ، که به معنی شما را بالاترین سینی کردن. 672 00:28:11,350 --> 00:28:16,210 اما چه کلیدی در مورد پشته است که آن را کردم این ویژگی کنجکاو. 673 00:28:16,210 --> 00:28:19,560 به عنوان سالن غذاخوری کارکنان هستند مجددا مرتب و سینی برای وعده بعدی غذا، 674 00:28:19,560 --> 00:28:21,380 چه خواهد بود درست است در مورد اینکه چگونه دانش آموزان 675 00:28:21,380 --> 00:28:22,856 با این ساختار داده ها ارتباط برقرار کنند؟ 676 00:28:22,856 --> 00:28:24,480 رسید آنها در حال رفتن به پاپ یکی کردن. 677 00:28:24,480 --> 00:28:26,550 DAVID مالان: آنها در حال رفتن به پاپ یکی کردن، امیدوارم بالا. 678 00:28:26,550 --> 00:28:28,910 در غیر این صورت آن را فقط به نوع احمقانه برای رفتن تمام راه را به پایین. 679 00:28:28,910 --> 00:28:29,070 درست است؟ 680 00:28:29,070 --> 00:28:31,620 ساختار داده ها واقعا اجازه نمی دهد شما برای گرفتن سینی پایین حداقل 681 00:28:31,620 --> 00:28:32,520 به راحتی. 682 00:28:32,520 --> 00:28:35,040 بنابراین این کنجکاو وجود دارد اموال را به پشته 683 00:28:35,040 --> 00:28:39,730 که آخرین مورد در است رفتن به یکی از اولین. 684 00:28:39,730 --> 00:28:43,400 و دانشمندان کامپیوتر تماس بگیرید اولین بار از این LIFO-- گذشته در خارج. 685 00:28:43,400 --> 00:28:45,540 و آن را در واقع اختصاص برنامه های جالب. 686 00:28:45,540 --> 00:28:50,090 این لزوما به عنوان برخی از آشکار دیگران، اما می توان آن را، در واقع، مفید باشد، 687 00:28:50,090 --> 00:28:54,040 و می توان آن را، در واقع، به اجرا در یک زن و شوهر از راه های مختلف. 688 00:28:54,040 --> 00:28:58,550 >> بنابراین یکی، و در واقع، اجازه من به شیرجه رفتن نه به که. 689 00:28:58,550 --> 00:28:59,860 بیایید به جای این کار را انجام. 690 00:28:59,860 --> 00:29:03,700 بیایید در یک نگاه که تقریبا همان ایده است، اما آن را عادلانه تر کم است. 691 00:29:03,700 --> 00:29:04,200 درست است؟ 692 00:29:04,200 --> 00:29:07,560 اگر شما یکی از این بچه ها فن هستید یا دختران که واقعا دوست دارد محصولات اپل 693 00:29:07,560 --> 00:29:10,130 و شما را تا در 3:00 بیدار به خط کردن در برخی از فروشگاه 694 00:29:10,130 --> 00:29:14,150 برای دریافت آخرین آی فون، شما ممکن است مثل این صف. 695 00:29:14,150 --> 00:29:15,800 >> در حال حاضر یک صف بسیار عمدا به نام. 696 00:29:15,800 --> 00:29:18,190 این یک خط به این دلیل وجود دارد برخی از انصاف به آن. 697 00:29:18,190 --> 00:29:18,690 درست است؟ 698 00:29:18,690 --> 00:29:21,690 این نوع را مکیده اگر شما در فروشگاه اپل برای اولین بار وجود دارد 699 00:29:21,690 --> 00:29:25,700 اما شما به طور موثر پایین ترین سینی زیرا کارکنان اپل در آن زمان 700 00:29:25,700 --> 00:29:28,189 پاپ آخرین کسی که در واقع در خط کردم. 701 00:29:28,189 --> 00:29:31,230 پس پشته و صف، حتی اگر عملکرد آنها نوعی از same-- هستید 702 00:29:31,230 --> 00:29:33,105 آن را فقط به این مجموعه است منابع که 703 00:29:33,105 --> 00:29:36,210 رفتن به رشد و shrink-- وجود دارد این جنبه انصاف به آن، 704 00:29:36,210 --> 00:29:39,634 حداقل در دنیای واقعی، که در آن عملیات ورزش 705 00:29:39,634 --> 00:29:40,800 اساسا متفاوت است. 706 00:29:40,800 --> 00:29:43,360 stack-- یک صف rather-- است گفت: به 707 00:29:43,360 --> 00:29:45,320 دو عملیات: N صف و صف د. 708 00:29:45,320 --> 00:29:46,341 709 00:29:46,341 --> 00:29:48,090 یا شما می توانید آنها را هر تعداد از چیزها. 710 00:29:48,090 --> 00:29:50,770 اما شما فقط می خواهید را به تصرف این تصور که یکی اضافه کردن 711 00:29:50,770 --> 00:29:53,230 و در نهایت کم کردن. 712 00:29:53,230 --> 00:29:58,840 >> در حال حاضر در زیر هود، هر دو پشته و یک صف می تواند اجرا شود چگونه؟ 713 00:29:58,840 --> 00:30:01,390 ما نمی خواهد به کد بروید آن را به دلیل سطح بالاتر 714 00:30:01,390 --> 00:30:03,387 ایده این است که نوعی از بیشتر آشکار است. 715 00:30:03,387 --> 00:30:04,470 منظور من، چه چیزی انسان را انجام دهید؟ 716 00:30:04,470 --> 00:30:07,030 اگر من اولین کسی هستم در اپل ذخیره و این درب جلو است، 717 00:30:07,030 --> 00:30:08,130 شما می دانید، من قصد دارم به اینجا ایستاده. 718 00:30:08,130 --> 00:30:09,750 و شخص بعد رفتن به اینجا ایستاده. 719 00:30:09,750 --> 00:30:11,500 و شخص بعد رفتن به اینجا ایستاده. 720 00:30:11,500 --> 00:30:13,792 پس چه ساختار داده خود را به یک صف آشنایی؟ 721 00:30:13,792 --> 00:30:14,542 >> رسید یک صف. 722 00:30:14,542 --> 00:30:15,667 DAVID مالان: خوب، یک صف. 723 00:30:15,667 --> 00:30:16,390 مطمئن شوید. 724 00:30:16,390 --> 00:30:16,920 چه چیز دیگری؟ 725 00:30:16,920 --> 00:30:17,600 >> رسید لیست پیوندی. 726 00:30:17,600 --> 00:30:18,990 >> DAVID مالان: A مرتبط شما می توانید از لیست اجرا. 727 00:30:18,990 --> 00:30:22,500 و یک لیست پیوندی خوب است زیرا پس از آن است می توان آن را بلند خودسرانه رشد به عنوان مخالف 728 00:30:22,500 --> 00:30:24,880 به داشتن مقداری ثابت از مردم در فروشگاه. 729 00:30:24,880 --> 00:30:27,030 اما شاید یک عدد ثابت از مکان های مشروع است. 730 00:30:27,030 --> 00:30:30,350 از آنجا که اگر آنها فقط مثل 20 باید اپل در روز اول، شاید 731 00:30:30,350 --> 00:30:33,930 آنها فقط نیاز به یک آرایه ای از اندازه 20 برای نشان دادن که صف، که 732 00:30:33,930 --> 00:30:37,070 فقط می گویند در حال حاضر زمانی که ما شروع به صحبت کردن در مورد این مشکلات در سطح بالاتر، 733 00:30:37,070 --> 00:30:38,890 شما می توانید پیاده سازی آن در هر تعداد از راه. 734 00:30:38,890 --> 00:30:42,030 و احتمالا فقط رفتن به وجود یک تجارت را در فضا و زمان 735 00:30:42,030 --> 00:30:43,950 و یا فقط در پیچیدگی کد خود را. 736 00:30:43,950 --> 00:30:45,380 >> چه در مورد پشته؟ 737 00:30:45,380 --> 00:30:48,190 خب، پشته، ما دیده ایم بیش از حد فقط می تواند این سینی باشد. 738 00:30:48,190 --> 00:30:50,007 و شما می توانید از این آرایه پیاده سازی. 739 00:30:50,007 --> 00:30:53,090 اما در برخی از نقطه در صورت استفاده از یک آرایه، آنچه اتفاق می افتد به سینی 740 00:30:53,090 --> 00:30:54,173 شما در حال تلاش برای قرار دادن پایین؟ 741 00:30:54,173 --> 00:30:55,170 742 00:30:55,170 --> 00:30:55,670 همه راست. 743 00:30:55,670 --> 00:30:57,490 شما تنها به رفتن قادر به رفتن تا بالا. 744 00:30:57,490 --> 00:31:00,156 و من در ماتر فکر می کنم آنها در واقع در آن باز احتمالا. 745 00:31:00,156 --> 00:31:01,950 پس در واقع، آن را تقریبا مثل مادر با استفاده از 746 00:31:01,950 --> 00:31:03,783 آرایه ای از اندازه ثابت، چون شما فقط می توانید 747 00:31:03,783 --> 00:31:08,302 جا بسیاری از سینی را در آن باز کردن در دیوار پایین زانو مردم است. 748 00:31:08,302 --> 00:31:10,010 و به طوری که ممکن است گفته می شود یک آرایه، 749 00:31:10,010 --> 00:31:14,300 اما ما قطعا می تواند پیاده سازی است که به طور کلی با یک لیست پیوندی. 750 00:31:14,300 --> 00:31:16,390 >> خب، چه در مورد ساختار دیگری داده؟ 751 00:31:16,390 --> 00:31:18,760 اجازه بدهید من را بالا بکشد یکی دیگر بصری در اینجا. 752 00:31:18,760 --> 00:31:24,710 چیزی شبیه به این یکی چطور است؟ 753 00:31:24,710 --> 00:31:28,920 چرا ممکن است آن را مفید باشد نیست چیزی به عنوان به عنوان یک درخت فانتزی، که 754 00:31:28,920 --> 00:31:32,370 ما دیدم این گره بسیار گسترده ای داشتند، که هر کدام در یک آرایه است؟ 755 00:31:32,370 --> 00:31:35,740 اما اگر ما چیزی بیش از انجام به سادگی، مانند یک درخت خانواده مدرسه قدیمی، 756 00:31:35,740 --> 00:31:38,110 هر یک از گره ها که در اینجا است فقط ذخیره سازی یک عدد است. 757 00:31:38,110 --> 00:31:42,180 در عوض از یک نام یا یک نسل است فقط ذخیره سازی یک عدد مانند این. 758 00:31:42,180 --> 00:31:45,250 >> خب، ما با استفاده از اصطلاحات مخصوص یک صنف در ساختمان داده هر دو تلاش می کند است 759 00:31:45,250 --> 00:31:49,510 و درختان، که در آن یک درخت، دوباره، است فقط یک گره که آرایه ها، 760 00:31:49,510 --> 00:31:51,680 هنوز هم چیزی است که شما ممکن است استفاده از ابتدائی 761 00:31:51,680 --> 00:31:53,860 زمانی که شما یک خانواده ساخته شده برگ tree-- و ریشه 762 00:31:53,860 --> 00:31:57,250 از درخت و فرزندان پدر و مادر و خواهر و برادر آن. 763 00:31:57,250 --> 00:32:03,670 و ما ممکن است یک درخت پیاده سازی، به عنوان مثال، به عنوان صرفا به عنوان این. 764 00:32:03,670 --> 00:32:07,420 درخت، اگر آن را به عنوان یک گره، یکی از این محافل است که تعداد، 765 00:32:07,420 --> 00:32:09,947 آن را نخواهیم داشت یک اشاره گر است، اما دو. 766 00:32:09,947 --> 00:32:11,780 و به محض اینکه شما اضافه یک اشاره گر دوم، شما 767 00:32:11,780 --> 00:32:13,905 در واقع می تواند در حال حاضر مرتب سازی بر را از داده های دو بعدی 768 00:32:13,905 --> 00:32:14,780 ساختار در حافظه است. 769 00:32:14,780 --> 00:32:16,660 بسیار شبیه به دو بعدی آرایه، شما می توانید 770 00:32:16,660 --> 00:32:18,904 دارای نوع دو بعدی لیست های پیوندی، اما آنهایی که 771 00:32:18,904 --> 00:32:20,820 که یک الگوی دنبال که در آن هیچ چرخه وجود دارد. 772 00:32:20,820 --> 00:32:24,487 این واقعا یک درخت با یک است راه پدربزرگ و مادر بزرگ تا در اینجا و پس از آن 773 00:32:24,487 --> 00:32:27,320 برخی از پدر و مادر و فرزندان و نوه و بزرگ نوه. 774 00:32:27,320 --> 00:32:28,370 و غیره. 775 00:32:28,370 --> 00:32:32,390 >> اما آنچه واقعا شسته و رفته در مورد این بیش از حد، فقط به کسی را دست انداختن شما را با یک بیت از کد، 776 00:32:32,390 --> 00:32:35,370 بازگشت فراخوان از چندی بازگشت، به موجب آن 777 00:32:35,370 --> 00:32:38,220 شما ارسال نامه تابع که خود می نامد. 778 00:32:38,220 --> 00:32:41,140 این یک فرصت زیبا است برای پیاده سازی چیزی 779 00:32:41,140 --> 00:32:42,920 مانند بازگشت، به دلیل در نظر گرفتن این. 780 00:32:42,920 --> 00:32:43,860 >> این یک درخت است. 781 00:32:43,860 --> 00:32:48,040 و من کمی مقعد با توجه بوده است من اعداد صحیح را به خیابان قرار داده است. 782 00:32:48,040 --> 00:32:51,020 به طوری که آن را به یک ویژه name-- یک درخت جستجوی دودویی. 783 00:32:51,020 --> 00:32:53,460 در حال حاضر ما از باینری شنیده ام جستجو، اما می تواند شما 784 00:32:53,460 --> 00:32:55,180 کار عقب از نام این چیزی است؟ 785 00:32:55,180 --> 00:32:59,280 الگوی چگونه من چیست اعداد صحیح را به این درخت قرار داده؟ 786 00:32:59,280 --> 00:33:00,696 این دلخواه نیست. 787 00:33:00,696 --> 00:33:01,570 برخی از الگو وجود دارد. 788 00:33:01,570 --> 00:33:02,090 آره. 789 00:33:02,090 --> 00:33:03,370 >> رسید کوچکتر در سمت چپ. 790 00:33:03,370 --> 00:33:03,690 >> DAVID مالان: آره. 791 00:33:03,690 --> 00:33:05,062 کوچکتر در سمت چپ می باشد. 792 00:33:05,062 --> 00:33:06,270 آنهایی که بزرگتر در سمت راست هستند. 793 00:33:06,270 --> 00:33:12,940 چنین است که یک عبارت صحیح است پدر و مادر بیشتر از کودک سمت چپ آن است، 794 00:33:12,940 --> 00:33:14,850 اما کمتر از فرزند راست آن است. 795 00:33:14,850 --> 00:33:17,750 و این تنهایی است که حتی یک تعریف لفظی بازگشتی 796 00:33:17,750 --> 00:33:20,500 زیرا شما می توانید درخواست که همان منطق به هر گره 797 00:33:20,500 --> 00:33:23,080 و آن را تنها پایین ، یک مورد پایه اگر شما 798 00:33:23,080 --> 00:33:25,740 خواهد شد، هنگامی که شما ضربه یکی از برگ، پس به صحبت، 799 00:33:25,740 --> 00:33:28,580 که در آن یک مرخصی بدون فرزند بیشتر است. 800 00:33:28,580 --> 00:33:30,614 >> در حال حاضر چگونه ممکن است تعداد 44 را پیدا کردید؟ 801 00:33:30,614 --> 00:33:32,280 شما را در ریشه شروع و می گویند، HM. 802 00:33:32,280 --> 00:33:35,690 55 44 است نه بنابراین من می خواهم برای رفتن راست یا من می خواهم برای رفتن به سمت چپ؟ 803 00:33:35,690 --> 00:33:37,190 خب، بدیهی است که شما می خواهید برای رفتن به سمت چپ. 804 00:33:37,190 --> 00:33:40,060 و پس از آن درست مانند تلفن به عنوان مثال کتاب در جستجوی دودویی 805 00:33:40,060 --> 00:33:41,099 به طور کلی. 806 00:33:41,099 --> 00:33:43,390 اما ما در حال اجرای آن در حال حاضر کمی بیشتر به صورت پویا 807 00:33:43,390 --> 00:33:45,339 از یک آرایه ممکن است اجازه می دهد. 808 00:33:45,339 --> 00:33:48,130 و در واقع، اگر شما می خواهید به نگاه در کد، در نگاه اول مطمئن شوید. 809 00:33:48,130 --> 00:33:49,671 آن را مانند یک دسته کامل از خطوط به نظر می رسد. 810 00:33:49,671 --> 00:33:51,220 اما این زیبایی ساده. 811 00:33:51,220 --> 00:33:54,490 اگر می خواهید به پیاده سازی یک تابع جستجو نام که هدف در زندگی 812 00:33:54,490 --> 00:33:57,290 است به جستجو برای یک مقدار مانند N، یک عدد صحیح، 813 00:33:57,290 --> 00:34:01,756 و شما در یک pointer-- گذشت یک اشاره گر به گره ریشه، 814 00:34:01,756 --> 00:34:04,380 نه، از آن درخت که از آن شما می توانید هر چیز دیگری دسترسی داشته باشید، 815 00:34:04,380 --> 00:34:08,850 توجه کنید که چگونه سرراست شما می توانید منطق پیاده سازی. 816 00:34:08,850 --> 00:34:10,880 اگر درخت تهی است، بدیهی است که آن وجود ندارد. 817 00:34:10,880 --> 00:34:11,880 اجازه دهید فقط بازگشت نادرست است. 818 00:34:11,880 --> 00:34:12,000 درست است؟ 819 00:34:12,000 --> 00:34:14,040 اگر شما از آن دست هیچ چیز، هیچ چیز وجود دارد وجود دارد. 820 00:34:14,040 --> 00:34:17,900 >> دیگری، اگر n کمتر از است درخت فلش n-- در حال حاضر فلش N، 821 00:34:17,900 --> 00:34:20,670 به یاد ما معرفی فوق العاده به طور خلاصه روز دیگر، 822 00:34:20,670 --> 00:34:25,100 و فقط بدان معناست که د مرجع اشاره گر و در این زمینه به نام N است. 823 00:34:25,100 --> 00:34:27,690 پس از آن بدان معنی است وجود دارد و در این زمینه به نام N است. 824 00:34:27,690 --> 00:34:33,810 بنابراین اگر N، ارزش به شما داده می شود، کمتر است از مقدار در عدد صحیح درختان، 825 00:34:33,810 --> 00:34:35,449 که در آن شما می خواهید برای رفتن؟ 826 00:34:35,449 --> 00:34:36,389 به چپ. 827 00:34:36,389 --> 00:34:37,780 >> بنابراین متوجه بازگشت. 828 00:34:37,780 --> 00:34:39,860 من returning-- درست نیست. 829 00:34:39,860 --> 00:34:40,989 غلط است. 830 00:34:40,989 --> 00:34:45,670 من از بازگشت هر پاسخ است از یک تماس به خودم، عبور 831 00:34:45,670 --> 00:34:50,100 N دوباره، که کار برکنار شده، اما آنچه که کمی متفاوت در حال حاضر؟ 832 00:34:50,100 --> 00:34:51,989 چگونه منظورم را به مشکل کوچکتر؟ 833 00:34:51,989 --> 00:34:54,920 من عبور در عنوان دوم بحث، نه ریشه درخت، 834 00:34:54,920 --> 00:34:59,616 اما کودک سمت چپ در این مورد. 835 00:34:59,616 --> 00:35:00,990 بنابراین من عبور در کودک سمت چپ. 836 00:35:00,990 --> 00:35:04,720 >> در همین حال، اگر n بزرگتر از است گره من در حال حاضر در به دنبال، 837 00:35:04,720 --> 00:35:06,690 من جستجو از سمت راست. 838 00:35:06,690 --> 00:35:10,880 دیگری، اگر درخت تهی نیست، و اگر عنصر به سمت چپ نمی 839 00:35:10,880 --> 00:35:13,240 و آن را به سمت راست نیست، آنچه که زیبا و مورد؟ 840 00:35:13,240 --> 00:35:14,630 841 00:35:14,630 --> 00:35:18,440 ما در واقع گره در بر داشت سوال و بنابراین ما به راست. 842 00:35:18,440 --> 00:35:21,490 >> بنابراین ما تنها خراش سطح در حال حاضر برخی از این ساختمان داده. 843 00:35:21,490 --> 00:35:24,370 در مجموعه مسائل پنج نظر شما بررسی این هنوز بیشتر، 844 00:35:24,370 --> 00:35:27,250 و به شما امکان طراحی خود را با توجه به انتخاب چگونه در این مورد. 845 00:35:27,250 --> 00:35:30,250 چیزی که من می خواهم به این نتیجه در فقط یک تیزر 30 ثانیه است 846 00:35:30,250 --> 00:35:32,080 از آنچه در هفته آینده و فراتر از انتظار. 847 00:35:32,080 --> 00:35:35,390 >> همانطور که ما خوشبختانه begin-- شما ممکن است think-- گذار ما به آرامی 848 00:35:35,390 --> 00:35:38,680 از دنیای C و پایین جزئیات پیاده سازی سطح، 849 00:35:38,680 --> 00:35:42,090 به جهانی که در آن ما می توانیم برای گرفتن مسلم است که شخص دیگری در نهایت 850 00:35:42,090 --> 00:35:44,010 اجرا این داده ها سازه دیگر برای ما، 851 00:35:44,010 --> 00:35:47,570 و ما شروع به درک دنیای واقعی به معنای اجرای 852 00:35:47,570 --> 00:35:50,560 برنامه های مبتنی بر وب و به طور کلی وب سایت 853 00:35:50,560 --> 00:35:52,910 و همچنین امنیت بسیار مفاهیم است که ما فقط باید 854 00:35:52,910 --> 00:35:54,850 شروع به خراش سطح. 855 00:35:54,850 --> 00:35:57,320 در اینجا چیزی است که انتظار ما در روزهای آینده. 856 00:35:57,320 --> 00:36:00,480 >> [VIDEO PLAYBACK] 857 00:36:00,480 --> 00:36:03,432 858 00:36:03,432 --> 00:36:12,780 >> -He با یک پیام آمد، با یک پروتکل خاص خود. 859 00:36:12,780 --> 00:36:26,110 860 00:36:26,110 --> 00:36:30,894 او را به یک جهان بی رحمانه آمد فایروال ها، روترها uncaring، 861 00:36:30,894 --> 00:36:33,368 و خطرات به مراتب بدتر از مرگ است. 862 00:36:33,368 --> 00:36:35,280 863 00:36:35,280 --> 00:36:36,236 او سریع می باشد. 864 00:36:36,236 --> 00:36:37,980 او قوی است. 865 00:36:37,980 --> 00:36:42,830 او TCP / IP است، و او آدرس خود را. 866 00:36:42,830 --> 00:36:45,290 867 00:36:45,290 --> 00:36:48,074 "رزمندگان از خالص." 868 00:36:48,074 --> 00:36:49,660 [END پخش ویدئو] 869 00:36:49,660 --> 00:36:50,910 DAVID مالان: آمدن هفته آینده. 870 00:36:50,910 --> 00:36:51,880 ما شما را پس از آن را مشاهده کنید. 871 00:36:51,880 --> 00:36:54,615 872 00:36:54,615 --> 00:36:56,060 [VIDEO PLAYBACK] 873 00:36:56,060 --> 00:36:59,240 که البته در حال حاضر، "افکار عمیق" توسط Daven فارنام، کبک. 874 00:36:59,240 --> 00:37:02,030 875 00:37:02,030 --> 00:37:05,820 -David همیشه سخنرانی با، "بسیار خوب." 876 00:37:05,820 --> 00:37:08,750 چرا که نه، "در اینجا راه حل این هفته مجموعه ای مشکل " 877 00:37:08,750 --> 00:37:12,180 و یا: "ما در حال دادن همه شما؟" 878 00:37:12,180 --> 00:37:13,380 [خنده] 879 00:37:13,380 --> 00:37:15,530 [END پخش ویدئو]