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