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