1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:11,137 [সঙ্গীত বাজানো] 3 00:00:11,137 --> 00:00:12,220 ডেভিড জে MALAN: ঠিক আছে. 4 00:00:12,220 --> 00:00:13,950 এটি CS50. 5 00:00:13,950 --> 00:00:18,560 এই সপ্তাহে পাঁচ অব্যাহত, এবং আমরা কিছু ভাল খবর এবং কিছু খারাপ খবর আছে. 6 00:00:18,560 --> 00:00:21,140 সুতরাং ভাল খবর হল যে CS50 হয় এই শুক্রবার আরম্ভ করা হয়. 7 00:00:21,140 --> 00:00:24,430 আপনি আমাদের সঙ্গে যোগদান করতে চান তাহলে, এখানে স্বাভাবিক URL এ নেতা. 8 00:00:24,430 --> 00:00:28,670 আরও ভাল খবর, কোন বক্তৃতা এই 13 সোমবার আসছে. 9 00:00:28,670 --> 00:00:31,970 সামান্য কম ভাল খবর, ব্যঙ্গ শূন্য পরের বুধবার. 10 00:00:31,970 --> 00:00:33,840 আরো বিস্তারিত হতে পারে এখানে এই URL এ খুঁজে পাওয়া যায়নি. 11 00:00:33,840 --> 00:00:36,340 এবং পরবর্তী কয়েক দিন ধরে আমরা ঐ খালি স্থান পূরণ করা হবে 12 00:00:36,340 --> 00:00:39,234 কক্ষ শুভেচ্ছা সঙ্গে আমরা সংরক্ষিত থাকবে. 13 00:00:39,234 --> 00:00:41,400 ভাল খবর আছে করব একটি কোর্স ব্যাপী পর্যালোচনা করা 14 00:00:41,400 --> 00:00:43,570 সময় এই আসছে সন্ধ্যায় সোমবার. 15 00:00:43,570 --> 00:00:46,270 অবশ্যই এর জন্য tuned থাকুন অবস্থান এবং বিস্তারিত তথ্যের জন্য ওয়েবসাইট. 16 00:00:46,270 --> 00:00:49,290 এটি একটি যদিও বিভাগে, ছুটির দিন, হিসাবে ভাল হবে. 17 00:00:49,290 --> 00:00:50,490 18 00:00:50,490 --> 00:00:52,940 ভাল খবর, আগামী শুক্রবার বক্তৃতা. 19 00:00:52,940 --> 00:00:56,220 সুতরাং এই একটি ঐতিহ্য আমরা পাঠ্যক্রম অনুযায়ী, আছে. 20 00:00:56,220 --> 00:00:58,100 ঠিক করা এটা আশ্চর্যজনক হতে যাচ্ছে. 21 00:00:58,100 --> 00:01:02,510 আপনি ভালো জিনিস দেখতে হবে ধ্রুব সময় ডাটা স্ট্রাকচার 22 00:01:02,510 --> 00:01:04,730 এবং হ্যাশ টেবিল এবং গাছ এবং চেষ্টা করে. 23 00:01:04,730 --> 00:01:07,150 এবং আমরা জন্মদিন সমস্যা সম্পর্কে কথা বলতে পারবেন. 24 00:01:07,150 --> 00:01:09,440 স্টাফ একটি আভা পরের শুক্রবার awaits. 25 00:01:09,440 --> 00:01:11,212 26 00:01:11,212 --> 00:01:12,200 ঠিক আছে. 27 00:01:12,200 --> 00:01:13,190 যাহাই হউক না কেন. 28 00:01:13,190 --> 00:01:17,080 >> তাই আমরা করেছি প্রত্যাহার কি এই ছবি উপর মনোযোগ নিবদ্ধ করে 29 00:01:17,080 --> 00:01:18,980 আমাদের কম্পিউটার এর মেমরি ভিতরে. 30 00:01:18,980 --> 00:01:22,875 তাই মেমরি বা RAM উপস্থিত যেখানে প্রোগ্রাম আপনি তাদের চালাচ্ছেন যখন বিদ্যমান. 31 00:01:22,875 --> 00:01:25,215 আপনি একটি ডবল ক্লিক করুন আইকন কিছু প্রোগ্রাম চালানো 32 00:01:25,215 --> 00:01:27,520 অথবা একটি ডবল ক্লিক করুন কিছু ফাইল খোলার জন্য আইকন, 33 00:01:27,520 --> 00:01:30,430 এটি আপনার হার্ড থেকে লোড এর ড্রাইভ বা সলিড স্টেট ড্রাইভ 34 00:01:30,430 --> 00:01:34,190 র্যাম, র্যান্ডম অ্যাক্সেস মেমরি, যেখানে মধ্যে ক্ষমতা যায় বন্ধ না হওয়া পর্যন্ত এটা জীবন 35 00:01:34,190 --> 00:01:36,700 ল্যাপটপ ঢাকনা, প্রচেষ্টা অথবা আপনি প্রোগ্রাম প্রস্থান. 36 00:01:36,700 --> 00:01:38,960 >> এখন যে মেমরি যা আপনি সম্ভবত আছে 37 00:01:38,960 --> 00:01:41,950 1 গিগাবাইট এই দিন, 2 গিগাবাইট, অথবা এমনকি আরো অনেক কিছু, 38 00:01:41,950 --> 00:01:44,420 সাধারণত পরিপূর্ণ হয় একটি নির্দিষ্ট প্রোগ্রামের জন্য 39 00:01:44,420 --> 00:01:47,170 আয়তক্ষেত্রাকার এই সাজানোর মধ্যে ধারণাগত মডেল 40 00:01:47,170 --> 00:01:50,860 আমরা নীচে স্ট্যাকের আছে যদ্দ্বারা এবং উপরের অন্যান্য পণ্যদ্রব্য একটি গুচ্ছ. 41 00:01:50,860 --> 00:01:53,140 খুব উপরের জিনিস আমরা এই ছবি দেখা করেছি 42 00:01:53,140 --> 00:01:55,670 কিন্তু আগে কখনও বিষয়ে কথা বলত তথাকথিত টেক্সট সেগমেন্ট. 43 00:01:55,670 --> 00:01:58,419 টেক্সট সেগমেন্ট শুধু একটি অভিনব উপায় zeros এবং বেশী বলছে যে 44 00:01:58,419 --> 00:02:01,150 আপনার প্রকৃত কম্পাইল প্রোগ্রাম রচনা. 45 00:02:01,150 --> 00:02:03,910 >> সুতরাং যখন আপনি ডবল ক্লিক করুন আপনার Mac বা PC মাইক্রোসফট ওয়ার্ড, 46 00:02:03,910 --> 00:02:08,030 আপনি বিন্দু যখন চালানো বা উপর মারিও কাট আপনার টার্মিনাল উইন্ডোর এ লিনাক্স কম্পিউটার, 47 00:02:08,030 --> 00:02:12,460 রচনা যে zeros এবং বেশী শব্দ বা মারিও সাময়িকভাবে সংরক্ষণ করা হয় 48 00:02:12,460 --> 00:02:16,610 তথাকথিত মধ্যে আপনার কম্পিউটার এর RAM উপস্থিত মধ্যে একটি নির্দিষ্ট প্রোগ্রামের জন্য টেক্সট সেগমেন্ট. 49 00:02:16,610 --> 00:02:19,080 যে যায় নীচে সক্রিয়া এবং uninitialized তথ্য. 50 00:02:19,080 --> 00:02:22,655 এই গ্লোবাল ভেরিয়েবল মত উপাদান, আমরা অনেক ব্যবহার করেছি না যে, 51 00:02:22,655 --> 00:02:24,910 কিন্তু অনুষ্ঠানে আমরা করেছি গ্লোবাল ভেরিয়েবল ছিল 52 00:02:24,910 --> 00:02:28,819 বা স্ট্যাটিক্যালি স্ট্রিং সংজ্ঞায়িত যে কঠিন "হ্যালো" মত শব্দ কোডেড হয় 53 00:02:28,819 --> 00:02:31,860 ব্যবহারকারীর কাছ থেকে নেওয়া না হয় যে আপনার প্রোগ্রাম হার্ড কোড করা হয়. 54 00:02:31,860 --> 00:02:34,230 >> এখন, নিচে নীচে আমরা তথাকথিত স্ট্যাকের আছে. 55 00:02:34,230 --> 00:02:37,665 এবং স্ট্যাকের, এ পর্যন্ত, আমরা চলেছি উদ্দেশ্য কি ধরণের জন্য ব্যবহার করে? 56 00:02:37,665 --> 00:02:39,706 57 00:02:39,706 --> 00:02:40,997 স্ট্যাকের কি জন্য ব্যবহার করা হয়েছে? 58 00:02:40,997 --> 00:02:41,160 হ্যাঁ? 59 00:02:41,160 --> 00:02:42,070 >> শ্রোতা: কার্যাবলী. 60 00:02:42,070 --> 00:02:43,320 >> ডেভিড জে MALAN: ফাংশন জন্য? 61 00:02:43,320 --> 00:02:44,980 ফাংশন জন্য কি অর্থে? 62 00:02:44,980 --> 00:02:48,660 >> শ্রোতা: আপনি যখন একটি ফাংশন কল, আর্গুমেন্ট স্ট্যাকের মধ্যে কপি করা হয়. 63 00:02:48,660 --> 00:02:49,660 >> ডেভিড জে MALAN: যথাযথভাবে. 64 00:02:49,660 --> 00:02:52,650 আপনি যখন একটি ফাংশন কল, তার আর্গুমেন্ট স্ট্যাকের মধ্যে কপি করা হয়. 65 00:02:52,650 --> 00:02:56,330 তাই যে কোনো X বা Y এর বা এর একটি অথবা B এর আপনি একটি ফাংশন মধ্যে পার করছি 66 00:02:56,330 --> 00:02:58,680 সাময়িকভাবে আরোপ করা হয় তথাকথিত স্ট্যাকের, 67 00:02:58,680 --> 00:03:02,000 শুধু ইচ্ছাশক্তি Annenberg এক মত ডাইনিং হল ট্রে, এবং জিনিস 68 00:03:02,000 --> 00:03:03,190 স্থানীয় ভেরিয়েবল মত. 69 00:03:03,190 --> 00:03:06,290 যদি আপনার foo বিন্যাস ফাংশন বা আপনার swap ' ফাংশন স্থানীয় ভেরিয়েবল আছে, 70 00:03:06,290 --> 00:03:08,602 temp হয় মত, যারা দুই স্ট্যাক শেষ পর্যন্ত. 71 00:03:08,602 --> 00:03:11,560 এখন, আমরা সম্পর্কে খুব বেশী কথা বলতে হবে না তাদের, কিন্তু এই পরিবেশের 72 00:03:11,560 --> 00:03:15,690 নীচে আমরা একটি সময় আগে যখন দেখেছি আমি কীবোর্ড এক দিন এ futzing ছিল 73 00:03:15,690 --> 00:03:20,050 আমি কিছু জিনিস ব্যবহার শুরু argv হয় 100 বা argv হয় 1,000 মত, 74 00:03:20,050 --> 00:03:22,320 শুধু elements-- আমি ভুলবেন সংখ্যার কিন্তু যে 75 00:03:22,320 --> 00:03:24,330 আমার দ্বারা ব্যবহার করা অনুমিত হয় না. 76 00:03:24,330 --> 00:03:26,581 আমরা কিছু নিরীক্ষা শুরু পর্দায় ভীতু চিহ্ন. 77 00:03:26,581 --> 00:03:28,330 যারা তথাকথিত ছিল পরিবেশের 78 00:03:28,330 --> 00:03:32,390 গ্লোবাল সেটিংস মত আমার প্রোগ্রাম বা আমার কম্পিউটার না জন্য 79 00:03:32,390 --> 00:03:37,090 সাম্প্রতিক সম্পর্কহীন আমরা আলোচনা বাগ, 80 00:03:37,090 --> 00:03:39,670 ShellShock, যে হয়েছে বেশ কয়েকটি কম্পিউটার মহামারীর মত ছড়িয়ে পড়া. 81 00:03:39,670 --> 00:03:42,960 >> এখন সর্বশেষে, আজ এর ফোকাস আমরা শেষ পর্যন্ত গাদা করা হবে. 82 00:03:42,960 --> 00:03:44,864 এই মেমরি অন্য চাঙ্গড়. 83 00:03:44,864 --> 00:03:47,030 এবং মৌলিকভাবে এই সব মেমরি একই উপাদান. 84 00:03:47,030 --> 00:03:48,040 এটা একই হার্ডওয়্যারের জন্য. 85 00:03:48,040 --> 00:03:49,956 আমরা ধরণের ঠিক করছি বিভিন্ন ক্লাস্টারগুলি চিকিত্সা 86 00:03:49,956 --> 00:03:51,460 এর বিভিন্ন কাজের জন্য বাইট. 87 00:03:51,460 --> 00:03:56,540 গাদা যেখানে হতে যাচ্ছে আপনি অনুরোধ যে ভেরিয়েবল এবং মেমরি 88 00:03:56,540 --> 00:03:58,810 অপারেটিং সিস্টেম থেকে সাময়িকভাবে সংরক্ষণ করা হয়. 89 00:03:58,810 --> 00:04:01,890 >> কিন্তু একটা সমস্যা ধরনের আছে এখানে, ছবি থেকেই বোঝা যায়. 90 00:04:01,890 --> 00:04:05,261 আমরা ধরণের দুই আছে সম্পর্কে জাহাজ ধাক্কা লাগা. 91 00:04:05,261 --> 00:04:08,010 আপনি আরো এবং আরো ব্যবহার কারণ আমরা আজ দেখতে স্ট্যাকের, এবং 92 00:04:08,010 --> 00:04:11,800 অনওয়ার্ড, আপনি আরো এবং আরো ব্যবহার গাদা, নিশ্চয় খারাপ কিছু ঘটতে পারে. 93 00:04:11,800 --> 00:04:15,054 এবং প্রকৃতপক্ষে, আমরা যে রাজি করানো যাবে ইচ্ছাকৃতভাবে বা অনিচ্ছাকৃতভাবে. 94 00:04:15,054 --> 00:04:16,970 গত cliffhanger তাই সময় এই প্রোগ্রাম ছিল, 95 00:04:16,970 --> 00:04:20,570 কোন কার্যকরী পরিবেশন করা হয়নি, যা প্রদর্শন ছাড়া অন্য উদ্দেশ্য 96 00:04:20,570 --> 00:04:24,750 কিভাবে আপনি একটি খারাপ লোক আসলে গ্রহণ করতে পারেন হিসাবে কেউ এর প্রোগ্রাম বাগ সুবিধা 97 00:04:24,750 --> 00:04:28,460 এবং এমনকি একটি একটি প্রোগ্রাম বা নিতে পুরো কম্পিউটার সিস্টেম বা সার্ভার. 98 00:04:28,460 --> 00:04:31,660 তাই শুধু এক নজরে সংক্ষেপে, আপনি নীচে যে প্রধান লক্ষ্য 99 00:04:31,660 --> 00:04:34,510 কমান্ড লাইন লাগে argv হয় প্রতি আর্গুমেন্ট,. 100 00:04:34,510 --> 00:04:38,480 এবং এটি একটি ফাংশন f একটি কল আছে, মূলত একটি অখ্যাত ফাংশন বলা 101 00:04:38,480 --> 00:04:40,250 চ, এবং এটি argv মধ্যে ক্ষণস্থায়ী [1]. 102 00:04:40,250 --> 00:04:43,960 >> তাই এ যাই হোক না কেন শব্দ ব্যবহারকারী ধরনের এই প্রোগ্রাম এর নাম পরে প্রম্পট, 103 00:04:43,960 --> 00:04:49,310 এবং তারপর এই অবাধ ফাংশন আপ উপরে, চ, একটি স্ট্রিং লাগে, ওরফে গৃহস্থালি *, 104 00:04:49,310 --> 00:04:51,720 আমরা আলোচনা শুরু করেছি, এবং এটি শুধু "বার." কল 105 00:04:51,720 --> 00:04:53,310 কিন্তু আমরা কিছু কল করতে পারে. 106 00:04:53,310 --> 00:04:57,470 এবং তারপর এটি ভিতরে ঘোষণা চ, অক্ষরের একটি অ্যারের 107 00:04:57,470 --> 00:04:59,930 12 যেমন অক্ষর সি বলা হয়. 108 00:04:59,930 --> 00:05:03,580 >> এখন, গল্প করে আমি বলার ছিল একটি মুহূর্ত আগে, যেখানে মেমরি 109 00:05:03,580 --> 00:05:06,720 গ, অথবা যারা 12 আপ শেষ হয়ে যাচ্ছে চর? 110 00:05:06,720 --> 00:05:07,570 শুধু পরিষ্কার করা. 111 00:05:07,570 --> 00:05:08,070 হ্যাঁ? 112 00:05:08,070 --> 00:05:08,590 >> শ্রোতা: স্ট্যাকের উপর. 113 00:05:08,590 --> 00:05:09,420 >> ডেভিড জে MALAN: স্ট্যাকের উপর. 114 00:05:09,420 --> 00:05:10,720 তাই গ একটি স্থানীয় পরিবর্তনশীল. 115 00:05:10,720 --> 00:05:14,079 আমরা 12 অক্ষর বা 12 বাইট জন্য বলছি. 116 00:05:14,079 --> 00:05:16,120 যারা আপ শেষ হয়ে যাচ্ছে তথাকথিত স্ট্যাকের উপর. 117 00:05:16,120 --> 00:05:18,530 এখন অবশেষে এই অন্যান্য ফাংশন যে, আসলে বেশ দরকারী 118 00:05:18,530 --> 00:05:20,571 কিন্তু আমরা সত্যিই ব্যবহার করেছি না এটা আমাদের নিজেদের, strncopy. 119 00:05:20,571 --> 00:05:21,550 120 00:05:21,550 --> 00:05:25,200 এটা স্ট্রিং কপি মানে কিন্তু শুধুমাত্র অক্ষর, এন অক্ষর n. 121 00:05:25,200 --> 00:05:31,990 সুতরাং n অক্ষর ব্যবহার করা হবে গ মধ্যে বার থেকে কপি করা. 122 00:05:31,990 --> 00:05:32,980 এবং কিভাবে অনেক? 123 00:05:32,980 --> 00:05:34,110 বার দৈর্ঘ্য. 124 00:05:34,110 --> 00:05:36,330 তাই অন্য কথায়, যে এক লাইন, strncopy, 125 00:05:36,330 --> 00:05:39,500 কপি করতে যাচ্ছে কার্যকরভাবে গ এ বার. 126 00:05:39,500 --> 00:05:42,340 >> এখন, শুধু ধরনের কহা এই গল্পের নৈতিক, 127 00:05:42,340 --> 00:05:44,750 কি এখানে সম্ভাব্য সমস্যা হয়? 128 00:05:44,750 --> 00:05:49,710 আমরা দৈর্ঘ্য চেক করছি, যদিও বার ও strncopy মধ্যে এটি ক্ষণস্থায়ী, 129 00:05:49,710 --> 00:05:53,145 কি আপনার অন্ত্রে আপনি কহন হয় এখনও এই প্রোগ্রাম সম্পর্কে ভাঙ্গা? 130 00:05:53,145 --> 00:05:54,410 131 00:05:54,410 --> 00:05:55,220 হ্যাঁ? 132 00:05:55,220 --> 00:05:57,491 >> শ্রোতা: অন্তর্ভুক্ত নয় নাল অক্ষর জন্য রুম. 133 00:05:57,491 --> 00:05:59,990 ডেভিড জে MALAN: অন্তর্ভুক্ত নয় নাল অক্ষর জন্য রুম. 134 00:05:59,990 --> 00:06:02,073 সম্ভাব্য, অসদৃশ গত অনুশীলন এমনকি আমরা না 135 00:06:02,073 --> 00:06:04,810 একটি প্লাস 1, তাই হিসাবে অনেক যে নাল অক্ষর মিটমাট করা. 136 00:06:04,810 --> 00:06:06,649 কিন্তু এটা যে তুলনায় এমনকি খারাপ. 137 00:06:06,649 --> 00:06:07,940 কি কি আমরা করতে ব্যর্থ হয়? 138 00:06:07,940 --> 00:06:08,432 হ্যাঁ? 139 00:06:08,432 --> 00:06:09,307 >> শ্রোতা: [শ্রবণাতীত] 140 00:06:09,307 --> 00:06:15,440 141 00:06:15,440 --> 00:06:16,440 ডেভিড জে MALAN: পারফেক্ট. 142 00:06:16,440 --> 00:06:18,490 আমরা হার্ড প্রশংসনীয় ইচ্ছামত 12 কোডেড করেছি. 143 00:06:18,490 --> 00:06:19,497 144 00:06:19,497 --> 00:06:21,330 তাই অনেক না সমস্যা নেই, কিন্তু সত্য 145 00:06:21,330 --> 00:06:25,630 এমনকি আমরা যদি চেক করছি না বার দৈর্ঘ্য কম 12 146 00:06:25,630 --> 00:06:28,530 যে ক্ষেত্রে এটি হতে যাচ্ছে মেমরির মধ্যে এটা করা নিরাপদ 147 00:06:28,530 --> 00:06:30,260 আমরা বরাদ্দ করেছি যে বলা গ. 148 00:06:30,260 --> 00:06:32,960 প্রকৃতপক্ষে, বার ভালো হয় যদি দীর্ঘ 20 অক্ষর, 149 00:06:32,960 --> 00:06:39,010 এই ফাংশন কপি করা হবে যার ফলে গ মধ্যে বার থেকে 20 অক্ষর 150 00:06:39,010 --> 00:06:41,310 অন্তত 8 বাইট গ্রহণ এটা করা উচিত হবে না যে. 151 00:06:41,310 --> 00:06:42,690 এখানে যে সংশ্লেষ আছে. 152 00:06:42,690 --> 00:06:44,347 >> ছোট, ভাঙা প্রোগ্রাম তাই. 153 00:06:44,347 --> 00:06:45,180 একটি বড় চুক্তি, যেমন নেই. 154 00:06:45,180 --> 00:06:46,360 হতে পারে আপনি একটি সেগমেন্টেশন ফল্ট পেতে. 155 00:06:46,360 --> 00:06:47,651 আমরা সব প্রোগ্রাম বাগ ছিল. 156 00:06:47,651 --> 00:06:50,196 আমরা সব বাগ থাকতে পারে এখন ডান প্রোগ্রাম. 157 00:06:50,196 --> 00:06:51,320 কিন্তু কি সংশ্লেষ? 158 00:06:51,320 --> 00:06:54,390 ভাল, এখানে এর একটি জুম ইন সংস্করণ আমার কম্পিউটার এর মেমরি যে ছবি. 159 00:06:54,390 --> 00:06:56,230 এই আমার স্ট্যাকের নীচে হয়. 160 00:06:56,230 --> 00:06:59,644 এবং প্রকৃতপক্ষে, খুব নীচে কি হয় বলা ঊর্ধ্বতন রুটিন স্ট্যাকের, অভিনব উপায় 161 00:06:59,644 --> 00:07:00,560 যে প্রধান বলছে. 162 00:07:00,560 --> 00:07:03,772 ফাংশন বলা হয় যে কেহ যে তাই আমরা যে বিষয়ে কথা বলছি যে চ. 163 00:07:03,772 --> 00:07:05,230 তাই এই স্ট্যাকের নীচে হয়. 164 00:07:05,230 --> 00:07:06,640 ফিরতি ঠিকানা হল নতুন কিছু. 165 00:07:06,640 --> 00:07:08,810 এটা সবসময়, সেখানে এর সবসময় যে ছবি হয়েছে. 166 00:07:08,810 --> 00:07:10,440 আমরা এটা মনোযোগ বলা ঠিক না. 167 00:07:10,440 --> 00:07:15,290 এটি সক্রিয় আউট, কারণ গ কাজ করে উপায় এক ফাংশন অন্য কল যখন যে, 168 00:07:15,290 --> 00:07:18,780 শুধুমাত্র যে আর্গুমেন্ট করবেন ফাংশন স্ট্যাকের মধ্যে push করা, 169 00:07:18,780 --> 00:07:22,470 না শুধুমাত্র ফাংশন এর স্থানীয় করতে ভেরিয়েবল স্ট্যাকের মধ্যে push করা, 170 00:07:22,470 --> 00:07:26,820 কিছু একটি ফিরতি ঠিকানা বলা এছাড়াও স্ট্যাকের মধ্যে করা হয়. 171 00:07:26,820 --> 00:07:33,330 বিশেষ করে, প্রধান কল foo বিন্যাস, যদি প্রধান এর মেমরি নিজের ঠিকানা, বলদ কিছু, 172 00:07:33,330 --> 00:07:38,240 কার্যকরভাবে স্ট্যাকের মধ্যে করা হয় যাতে এটা চ নির্বাহ করা হয় যখন 173 00:07:38,240 --> 00:07:43,630 টেক্সট ফিরে তিড়িং লাফ জানেন যেখানে নির্বাহ অবিরত করার জন্য সেগমেন্ট. 174 00:07:43,630 --> 00:07:47,760 >> আমরা ধারণার এখানে এসেছি সুতরাং, যদি প্রধান, তারপর চ বলা হয়. 175 00:07:47,760 --> 00:07:50,200 চ জানি না যারা পিছনে হাত নিয়ন্ত্রণ করতে? 176 00:07:50,200 --> 00:07:52,020 ওয়েল, এই সামান্য এখানে লাল ব্রেডক্রম্বে, 177 00:07:52,020 --> 00:07:54,978 ফিরতি ঠিকানা বলা হয়, এটা ঠিক চেক, যে ফিরতি ঠিকানা কি? 178 00:07:54,978 --> 00:07:57,039 ওহ, আমাকে এখানে প্রধান ফিরে তিড়িং লাফ. 179 00:07:57,039 --> 00:07:59,080 এবং যে একটি সামান্য বিট একটি অতিসরলীকরণ, 180 00:07:59,080 --> 00:08:00,750 zeros এবং বেশী, কারণ প্রধান জন্য টেকনিক্যালি হয় 181 00:08:00,750 --> 00:08:01,967 এখানে কারিগরি সেগমেন্ট আপ. 182 00:08:01,967 --> 00:08:03,800 কিন্তু যে ধারণা. চ ঠিক কি জানা আছে 183 00:08:03,800 --> 00:08:06,680 যেখানে নিয়ন্ত্রণ শেষ পর্যন্ত ফিরে যায়. 184 00:08:06,680 --> 00:08:09,790 >> কিন্তু উপায় কম্পিউটার দীর্ঘ জিনিষ আছে পাড়া 185 00:08:09,790 --> 00:08:12,320 স্থানীয় ভেরিয়েবল মত এবং আর্গুমেন্ট ভালো হয়. 186 00:08:12,320 --> 00:08:17,180 এই ছবি উপরে তাই নীল তাই সব, চ জন্য স্ট্যাকের ফ্রেম 187 00:08:17,180 --> 00:08:19,630 মেমরি যে চ বিশেষভাবে ব্যবহার করা হয়. 188 00:08:19,630 --> 00:08:22,990 তাই সেই অনুযায়ী, যে লক্ষ্য বার এই ছবি হয়. 189 00:08:22,990 --> 00:08:23,980 বার তার যুক্তি ছিল. 190 00:08:23,980 --> 00:08:27,240 এবং আমরা দাবি করেন আর্গুমেন্ট যে ফাংশন স্ট্যাকের মধ্যে push করা. 191 00:08:27,240 --> 00:08:29,910 এবং সি, অবশ্যই, হয় এছাড়াও এই ছবি. 192 00:08:29,910 --> 00:08:33,520 >> এবং শুধু notational উদ্দেশ্যে, উপরের বাম দিকের কোণায় লক্ষ্য 193 00:08:33,520 --> 00:08:37,020 বন্ধনী 0 গ কি হবে এবং তারপর সামান্য ডান নিচে 194 00:08:37,020 --> 00:08:38,220 গ বন্ধনী 11. 195 00:08:38,220 --> 00:08:41,240 তাই অন্য কথায়, আপনি কল্পনা করতে পারেন বাইটের একটি গ্রিড আছে 196 00:08:41,240 --> 00:08:44,380 সেখানে হয়, যা প্রথম উপরের বাম, নীচে যা 197 00:08:44,380 --> 00:08:48,360 যারা 12 বাইট শেষ হয়. 198 00:08:48,360 --> 00:08:49,930 >> কিন্তু এখন দ্রুত এগিয়ে চেষ্টা করুন. 199 00:08:49,930 --> 00:08:55,580 আমরা কি পাস ঘটতে সম্পর্কে গ সময়ের চেয়ে যে একটি স্ট্রিং বার? 200 00:08:55,580 --> 00:08:59,130 এবং আমরা যদি চেক না এটা সত্যিই আর 12 এর বেশী. 201 00:08:59,130 --> 00:09:03,146 এই ছবি কোন অংশ যাচ্ছে বাইট 0, 1, 2, 3 দ্বারা মুছে ফেলা পেতে, 202 00:09:03,146 --> 00:09:07,890 ডট ডট ডট, 11, এবং তারপর খারাপ, 12, 19 মাধ্যমে 13? 203 00:09:07,890 --> 00:09:11,820 কি, এখানে ঘটতে যাচ্ছে আপনি ক্রম থেকে অনুমান যদি 204 00:09:11,820 --> 00:09:14,790 যে গ বন্ধনী 0 উপরে হয় এবং গ বন্ধনী 11 নিচে সাজানোর 205 00:09:14,790 --> 00:09:15,812 ডান? 206 00:09:15,812 --> 00:09:16,796 হ্যাঁ? 207 00:09:16,796 --> 00:09:19,260 >> শ্রোতা: ওয়েল, এটা যাচ্ছে গৃহস্থালি * বার মুছে ফেলা. 208 00:09:19,260 --> 00:09:22,260 >> ডেভিড জে MALAN: হ্যাঁ, এটা দেখে মনে হচ্ছে আপনি গৃহস্থালি * বার মুছে ফেলা চলুন. 209 00:09:22,260 --> 00:09:26,245 এবং তার থেকেও খারাপ, আপনি সত্যিই একটি দীর্ঘ পাঠাতে যদি স্ট্রিং, এমনকি আপনি কি মুছে ফেলা হতে পারে? 210 00:09:26,245 --> 00:09:27,460 211 00:09:27,460 --> 00:09:28,570 ফিরতি ঠিকানা. 212 00:09:28,570 --> 00:09:31,380 যা আবার, শুধু একটি ভালো হয় প্রোগ্রাম যেখানে বলা ব্রেডক্রম্বে 213 00:09:31,380 --> 00:09:34,060 যখন চ ফিরে যেতে বলা হচ্ছে সম্পন্ন করা হয়. 214 00:09:34,060 --> 00:09:37,140 >> তাই খারাপ না সাধারণত কি তারা একটি প্রোগ্রাম জুড়ে হয় 215 00:09:37,140 --> 00:09:41,290 তারা কিনা জানতে আগ্রহী যে যেমন একটি উপায় উপযোগী, বগী 216 00:09:41,290 --> 00:09:43,550 তিনি গ্রহণ করতে পারেন যে যে বাগ সুবিধা, 217 00:09:43,550 --> 00:09:45,720 সাধারণত তারা পাবেন না এই অধিকার প্রথমবার. 218 00:09:45,720 --> 00:09:48,590 তারা শুধু উদাহরণস্বরূপ, পাঠানো শুরু, আপনার প্রোগ্রাম র্যান্ডম স্ট্রিং, 219 00:09:48,590 --> 00:09:50,260 কীবোর্ড কিনা, বা উন্মুক্তভাবে সম্ভবত তারা 220 00:09:50,260 --> 00:09:52,740 একটি ছোট প্রোগ্রাম লিখতে ঠিক স্বয়ংক্রিয়ভাবে পংক্তি নির্মাণ, 221 00:09:52,740 --> 00:09:55,430 এবং আপনার প্রোগ্রাম banging শুরু বিভিন্ন ইনপুট প্রচুর পাঠানোর 222 00:09:55,430 --> 00:09:56,340 বিভিন্ন লেন্থ. 223 00:09:56,340 --> 00:09:58,990 >> যত তাড়াতাড়ি আপনার প্রোগ্রাম ক্র্যাশ হিসাবে, যে একটি আশ্চর্যজনক জিনিস. 224 00:09:58,990 --> 00:10:01,020 তিনি মানে বা সে আবিষ্কার করেছে 225 00:10:01,020 --> 00:10:02,660 কি প্রকৃতপক্ষে সম্ভবত একটি বাগ সংশোধন করা হয়. 226 00:10:02,660 --> 00:10:05,830 এবং তারপর তারা আরো চতুর পেতে পারেন এবং শুরু আরো একটুর জন্য মনোযোগ নিবদ্ধ 227 00:10:05,830 --> 00:10:07,420 যে বাগ কাজে লাগান কিভাবে. 228 00:10:07,420 --> 00:10:11,480 বিশেষ করে, তিনি কি সে পারে কি হ্যালো, সেরা ক্ষেত্রে, পাঠাতে হয়. 229 00:10:11,480 --> 00:10:12,210 কোন বড় চুক্তি. 230 00:10:12,210 --> 00:10:14,750 এটা যথেষ্ট ছোট যে একটি স্ট্রিং. 231 00:10:14,750 --> 00:10:18,100 কিন্তু কি সে পাঠায় যদি, এবং আমরা, এটা বিশ্বজনীন করব 232 00:10:18,100 --> 00:10:20,890 আক্রমণ শূন্য, তাই code-- এবং বেশী যে কি জিনিস 233 00:10:20,890 --> 00:10:25,150 RM-RF মত, সবকিছু মুছে ফেলার যে হার্ড ড্রাইভ থেকে বা স্প্যাম পাঠানোর 234 00:10:25,150 --> 00:10:27,000 একরকম বা মেশিন আক্রমণ? 235 00:10:27,000 --> 00:10:29,570 >> এই প্রতিটি সুতরাং যদি একটি চিঠি শুধু প্রতিনিধিত্ব করে 236 00:10:29,570 --> 00:10:32,380 ধারণার দিক, আক্রমণ, আক্রমণ, আক্রমণ, আক্রমণ, কিছু খারাপ কোড 237 00:10:32,380 --> 00:10:36,410 অন্য কেউ লিখেছে, কিন্তু যে ব্যক্তি স্মার্ট যথেষ্ট যদি 238 00:10:36,410 --> 00:10:40,790 না শুধুমাত্র অন্তর্ভুক্ত যারা RM-RFS এর, কিন্তু 239 00:10:40,790 --> 00:10:46,100 তার বা তার গত কয়েক বাইট, যে অনুরূপ একটি সংখ্যা হতে 240 00:10:46,100 --> 00:10:50,540 ঠিকানা তার অথবা তার নিজের আক্রমণ কোড 241 00:10:50,540 --> 00:10:53,820 সে শুধু যে পাশ প্রম্পটে এটি প্রদান করে, 242 00:10:53,820 --> 00:10:58,760 আপনি কার্যকরভাবে কম্পিউটার রত পারেন চ নির্বাহ করা হয় যখন ঠাহর মধ্যে, 243 00:10:58,760 --> 00:11:02,400 ওহ, এটা আমার তিড়িং লাফ জন্য সময় ফিরে লাল ফিরতি ঠিকানা থেকে. 244 00:11:02,400 --> 00:11:06,070 কিন্তু সে একরকম আছে, কারণ যে ফিরতি ঠিকানা overlapped 245 00:11:06,070 --> 00:11:09,602 তাদের নিজস্ব সংখ্যা সঙ্গে, এবং তারা যথেষ্ট স্মার্ট 246 00:11:09,602 --> 00:11:11,560 যে কনফিগার করা আছে সংখ্যা হিসাবে আপনি, পড়ুন 247 00:11:11,560 --> 00:11:13,740 সুপার উপরে দেখুন সেখানে বাঁদিকের কোণায়, 248 00:11:13,740 --> 00:11:18,020 কম্পিউটার এর মধ্যে প্রকৃত ঠিকানা তাদের আক্রমণ কোড কিছু স্মৃতি, 249 00:11:18,020 --> 00:11:21,740 একটি খারাপ লোক কম্পিউটার রত পারেন তার নিজস্ব কোড নির্বাহ মধ্যে. 250 00:11:21,740 --> 00:11:23,700 >> এবং যে কোড, আবার, কিছু হতে পারে. 251 00:11:23,700 --> 00:11:26,120 সাধারণভাবে বলা হয় ঠিক যা শেল কোড, 252 00:11:26,120 --> 00:11:29,030 এটা না বলে যে একটি উপায় RM-RF হিসাবে হিসাবে সহজ সাধারণত কিছু. 253 00:11:29,030 --> 00:11:32,340 এটা আসলে ব্যাশ মত কিছু বা একটি প্রকৃত প্রোগ্রাম তাকে যে দেয় 254 00:11:32,340 --> 00:11:37,230 বা তার কর্মসূচি নিয়ন্ত্রণ চালানো তারা চায় যে অন্য কিছু. 255 00:11:37,230 --> 00:11:40,210 তাই সংক্ষিপ্ত, এই সব সহজ থেকে আহরিত 256 00:11:40,210 --> 00:11:44,490 জড়িত এই বাগ চেক না যে আপনার অ্যারের সীমানা. 257 00:11:44,490 --> 00:11:47,250 এবং উপায় কারণ কম্পিউটার কাজ করে যে তারা 258 00:11:47,250 --> 00:11:49,430 থেকে স্ট্যাক ব্যবহার কার্যকরভাবে ধারণার দিক থেকে, 259 00:11:49,430 --> 00:11:54,830 আপ নীচে, কিন্তু তারপর উপাদান আপনি, উপরে নিচে হত্তয়া স্ট্যাকের মধ্যে ধাক্কা 260 00:11:54,830 --> 00:11:56,624 এই অবিশ্বাস্যভাবে সমস্যাযুক্ত. 261 00:11:56,624 --> 00:11:58,290 এখন, এই সমস্যা এড়ানোর উপায় আছে. 262 00:11:58,290 --> 00:12:00,800 এবং সত্যি, ভাষা আছে যা দিয়ে প্রায় এই কাজ. 263 00:12:00,800 --> 00:12:03,100 জাভা, উদাহরণস্বরূপ, অনাক্রম্য এই বিশেষ সমস্যা. 264 00:12:03,100 --> 00:12:04,110 তারা আপনার পয়েন্টার দিতে না. 265 00:12:04,110 --> 00:12:05,943 তারা আপনাকে দেবে না সরাসরি মেমরি অ্যাড্রেস. 266 00:12:05,943 --> 00:12:08,560 যে আমরা এই ক্ষমতা তাই সঙ্গে মেমরি কিছু স্পর্শ 267 00:12:08,560 --> 00:12:11,580 আমরা নিঃসন্দেহে, মহান ঝুঁকি, আসে চান. 268 00:12:11,580 --> 00:12:12,430 >> তাই নজর রাখা. 269 00:12:12,430 --> 00:12:14,596 উন্মুক্তভাবে,, তাহলে মাসের মধ্যে বা বছর যে কোন সময়, আসা 270 00:12:14,596 --> 00:12:17,740 আপনি কিছু শোষণ সম্পর্কে পড়া একটি প্রোগ্রাম বা একটি সার্ভার, 271 00:12:17,740 --> 00:12:22,370 আপনি কি কখনও কিছু একটা ইঙ্গিত দেখতে হলে একটি বাফার ওভারফ্লো আক্রমণের মতো, 272 00:12:22,370 --> 00:12:25,390 বা স্ট্যাক ওভারফ্লো অন্য টাইপ আক্রমণ, অনুরূপ মধ্যে আত্মা, 273 00:12:25,390 --> 00:12:28,770 ওয়েবসাইট এর অনুপ্রাণিত হিসাবে অনেক যদি আপনি এটা জানেন, নাম, 274 00:12:28,770 --> 00:12:33,170 এটা সব ঠিক সম্পর্কে কথা বলা কিছু চরিত্রের আকার উদ্বেল 275 00:12:33,170 --> 00:12:36,200 অ্যারে অথবা আরো সাধারণভাবে কিছু অ্যারে. 276 00:12:36,200 --> 00:12:38,822 এই তারপর কোন প্রশ্ন,,? 277 00:12:38,822 --> 00:12:39,780 বাড়িতে এই চেষ্টা করবেন না. 278 00:12:39,780 --> 00:12:41,620 279 00:12:41,620 --> 00:12:42,300 >> ঠিক আছে. 280 00:12:42,300 --> 00:12:47,270 সুতরাং malloc পর্যন্ত আমাদের নতুন হয়েছে আমরা মেমরি বরাদ্দ করতে পারে বন্ধু 281 00:12:47,270 --> 00:12:50,540 অগত্যা আমরা জানি না যে আমরা তাই আমরা না চাই যে আগাম 282 00:12:50,540 --> 00:12:52,920 মধ্যে হার্ড কোড আমাদের 12 ভালো প্রোগ্রাম সংখ্যা. 283 00:12:52,920 --> 00:12:55,550 ব্যবহারকারী আমাদের কত বলে একবার তিনি ইনপুট করতে চায় তথ্য, 284 00:12:55,550 --> 00:12:58,000 আমরা যে অনেক মেমরি malloc করতে পারেন. 285 00:12:58,000 --> 00:13:01,484 >> সুতরাং malloc এটি সক্রিয় আউট, আমরা এটি ব্যবহার করছি পরিমাণ, 286 00:13:01,484 --> 00:13:03,900 স্পষ্টভাবে শেষ সময়, এবং তারপর আপনি যদি না এটি ব্যবহার করা হয়েছে 287 00:13:03,900 --> 00:13:08,160 জন্য অজ্ঞাতসারে GetString জন্য কয়েক সপ্তাহ, malloc এর মেমরি সব 288 00:13:08,160 --> 00:13:09,820 তথাকথিত গাদা থেকে আসে. 289 00:13:09,820 --> 00:13:13,852 এবং এই, উদাহরণস্বরূপ, কেন GetString হয় পরিবর্তনশীল মেমরি বরাদ্দ করতে পারেন 290 00:13:13,852 --> 00:13:16,060 আপনি কি জেনে আগাম টাইপ করা যাচ্ছে, 291 00:13:16,060 --> 00:13:21,520 যে মেমরি ফিরে একটি পয়েন্টার আপনি হাতে, এবং যে মেমরি পুলিশের রাখা এখনও, 292 00:13:21,520 --> 00:13:24,080 এমনকি আয় GetString পরে. 293 00:13:24,080 --> 00:13:27,450 কারণ রিকল পরে যে সব স্ট্যাকের ক্রমাগত, আপ করুন এবং নিচে যাচ্ছে 294 00:13:27,450 --> 00:13:27,950 আপ করুন এবং নিচে. 295 00:13:27,950 --> 00:13:30,230 এবং যত তাড়াতাড়ি হিসাবে এটি যায় নিচে, যে কোন মেমরি মানে 296 00:13:30,230 --> 00:13:33,030 ব্যবহৃত এই ফাংশন উচিত অন্য কারো দ্বারা ব্যবহার করা যাবে না. 297 00:13:33,030 --> 00:13:34,570 এটা এখন আবর্জনা মান. 298 00:13:34,570 --> 00:13:36,120 >> কিন্তু গাদা এখানে আপ হয়. 299 00:13:36,120 --> 00:13:39,360 এবং malloc যে সম্পর্কে চমৎকার কি যদি malloc এখানে মেমরি বরাদ্দ যখন, 300 00:13:39,360 --> 00:13:42,070 এটা জন্য, প্রভাবিত না স্ট্যাকের দ্বারা অধিকাংশ অংশ,. 301 00:13:42,070 --> 00:13:46,000 তাই কোনো ফাংশন অ্যাক্সেস করতে পারেন malloc'd হয়েছে যে মেমরি, 302 00:13:46,000 --> 00:13:49,120 এমনকি GetString মত একটি ফাংশন দ্বারা, এমনকি পরে এটি ফিরিয়ে দেওয়া হয়. 303 00:13:49,120 --> 00:13:51,700 >> এখন, যদি malloc এর বিপরীতটি বিনামূল্যে. 304 00:13:51,700 --> 00:13:53,900 এবং প্রকৃতপক্ষে, নিয়ম আপনি গ্রহণ শুরু করা দরকার 305 00:13:53,900 --> 00:13:58,950 কোনো কোনো, আপনি malloc ব্যবহার কোন সময় আপনি নিজে করুন, শেষ পর্যন্ত, বিনামূল্যে ব্যবহার করা আবশ্যক 306 00:13:58,950 --> 00:14:00,280 একই পয়েন্টার উপর. 307 00:14:00,280 --> 00:14:03,289 আমরা লেখা হয়েছে এই সময় বগী, অনেক কারণের জন্য বগী কোড. 308 00:14:03,289 --> 00:14:05,580 কিন্তু যা এক হয়েছে CS50 লাইব্রেরি ব্যবহার করে, যা 309 00:14:05,580 --> 00:14:09,010 নিজেই ইচ্ছাকৃতভাবে হয় বগী, এটি মেমরি ডিস্ক্রিপ্টরের লিক সম্বন্ধে সূচিত. 310 00:14:09,010 --> 00:14:11,410 আপনি GetString বলা করেছি কোন সময় গত কয়েক সপ্তাহ ধরে 311 00:14:11,410 --> 00:14:13,870 আমরা অপারেটিং বলছি সিস্টেম, লিনাক্স, মেমরির জন্য. 312 00:14:13,870 --> 00:14:15,780 এবং আপনি একবার এটি ফিরিয়ে দেওয়া না. 313 00:14:15,780 --> 00:14:17,730 এবং এই, না হয় , একটি ভাল জিনিস অভ্যাস. 314 00:14:17,730 --> 00:14:20,330 >> এবং Valgrind, এক pset 4 চালু সরঞ্জাম, 315 00:14:20,330 --> 00:14:22,900 আপনার পক্ষে সব বিষয়ে এখন যে মত বাগ খুঁজে. 316 00:14:22,900 --> 00:14:27,060 কিন্তু সৌভাগ্যক্রমে pset 4 জন্য প্রয়োজন হবে না CS50 লাইব্রেরি বা GetString ব্যবহার করার জন্য. 317 00:14:27,060 --> 00:14:31,220 তাই মেমরি এর সাথে সম্পর্কিত কোন বাগ আছে শেষ পর্যন্ত আপনার নিজের হতে যাচ্ছে. 318 00:14:31,220 --> 00:14:34,060 >> সুতরাং malloc বেশী মাত্র এই কাজের জন্য সুবিধাজনক. 319 00:14:34,060 --> 00:14:37,420 আমরা আসলে এখন সমাধান করতে পারে মৌলিকভাবে ভিন্ন সমস্যা, 320 00:14:37,420 --> 00:14:41,640 এবং মৌলিকভাবে আরো সমস্যার সমাধান কার্যকরভাবে সপ্তাহে শূন্য প্রতিশ্রুতি অনুযায়ী. 321 00:14:41,640 --> 00:14:44,720 এ পর্যন্ত এই সেক্সি হয় তথ্য কাঠামো আমরা করেছি. 322 00:14:44,720 --> 00:14:47,804 এবং ডাটা স্ট্রাকচার দ্বারা আমি বলতে চাচ্ছি হানিফ মেমোরিয়াল স্মৃতি একটি উপায় 323 00:14:47,804 --> 00:14:50,720 ঠিক বলছে বহির্ভূত একটি উপায় যে, এই একটি গৃহস্থালি, কোন int হয়. 324 00:14:50,720 --> 00:14:52,930 আমরা একসঙ্গে ক্লাস্টার কিছু শুরু করতে পারেন. 325 00:14:52,930 --> 00:14:54,460 >> আমি একটি অ্যারের ভালো লাগছিল. 326 00:14:54,460 --> 00:14:57,270 এবং সম্পর্কে কি কি ছিল অ্যারে এটি আপনাকে যে 327 00:14:57,270 --> 00:14:59,724 ব্যাক টু ব্যাক অংশ মেমরি, প্রতিটি যা 328 00:14:59,724 --> 00:15:02,765 একই ধরনের হতে যাচ্ছে, কোন int, কোন int, কোন int, কোন int, বা গৃহস্থালির কাজ, গৃহস্থালির কাজ, গৃহস্থালির কাজ, 329 00:15:02,765 --> 00:15:03,330 গৃহস্থালির কাজ. 330 00:15:03,330 --> 00:15:04,496 কিন্তু কয়েক downsides আছে এর. 331 00:15:04,496 --> 00:15:06,570 এই উদাহরণস্বরূপ, হয় আকার ছয় একটি অ্যারের. 332 00:15:06,570 --> 00:15:10,650 আপনি ছয় সঙ্গে এই অ্যারে পূরণ ধরুন সংখ্যা এবং তারপর, যাই হোক না কেন কারণে, 333 00:15:10,650 --> 00:15:13,187 আপনার ব্যবহারকারী দিতে চায় আপনি একটি সপ্তম সংখ্যা. 334 00:15:13,187 --> 00:15:14,020 যেখানে আপনি এটা করা না? 335 00:15:14,020 --> 00:15:15,490 336 00:15:15,490 --> 00:15:18,990 >> যদি আপনি সমাধান কি স্ট্যাকের উপর একটি অ্যারের নির্মিত, 337 00:15:18,990 --> 00:15:22,030 উদাহরণস্বরূপ, শুধু সপ্তাহে আমরা চালু যে দুটি স্বরলিপি, 338 00:15:22,030 --> 00:15:23,730 ভিতরে একটি সংখ্যা সঙ্গে বর্গাকার বন্ধনী? 339 00:15:23,730 --> 00:15:25,160 340 00:15:25,160 --> 00:15:27,260 হ্যাঁ, আপনি ছয় পেয়েছেন এই বাক্সে সংখ্যা. 341 00:15:27,260 --> 00:15:28,530 আপনার সহজাত কি হবে? 342 00:15:28,530 --> 00:15:29,973 যেখানে আপনি এটা করা করতে চান? 343 00:15:29,973 --> 00:15:30,860 >> শ্রোতা: [শ্রবণাতীত] 344 00:15:30,860 --> 00:15:31,315 >> ডেভিড জে MALAN: দুঃখিত? 345 00:15:31,315 --> 00:15:32,380 >> শ্রোতা: শেষ এটি. 346 00:15:32,380 --> 00:15:33,796 >> ডেভিড জে MALAN: শেষ এটি. 347 00:15:33,796 --> 00:15:35,880 তাই শুধু ডান উপর, এই বক্স বাইরে. 348 00:15:35,880 --> 00:15:38,710 যা সুন্দর হতে পারে, কিন্তু এটা হবে আপনি যা করতে পারবেন না দেখা যাচ্ছে. 349 00:15:38,710 --> 00:15:41,350 আপনাকে জিজ্ঞাসা করেছি কারণ যদি মেমরি এই অঞ্চলে জন্য, 350 00:15:41,350 --> 00:15:44,490 এই যে কাকতালীয় হতে পারে কিছু অন্যান্য পরিবর্তনশীল দ্বারা ব্যবহৃত হচ্ছে 351 00:15:44,490 --> 00:15:45,030 পুরাপুরি. 352 00:15:45,030 --> 00:15:49,210 আমরা পাড়া তাই যখন একটি সপ্তাহ ফিরে মনে করেন বা , Zamyla এবং ডেভিন এবং গেব এর নাম আউট 353 00:15:49,210 --> 00:15:49,930 মেমরি. 354 00:15:49,930 --> 00:15:51,638 তারা আক্ষরিক ছিল ফিরে ফিরে ফিরে যাও. 355 00:15:51,638 --> 00:15:53,550 তাই আমরা অগত্যা না করতে পারেন যে যাই হোক না কেন এর বিশ্বাস 356 00:15:53,550 --> 00:15:55,800 এখানে আমাকে ব্যবহার করার জন্য পাওয়া যায়. 357 00:15:55,800 --> 00:15:56,990 >> সুতরাং আপনি কি কি করতে পারে? 358 00:15:56,990 --> 00:16:00,282 ওয়েল, একবার আপনি বুঝতে , আকার সাত একটি অ্যারের প্রয়োজন 359 00:16:00,282 --> 00:16:02,490 আপনি শুধু একটি তৈরী করতে পারে আকার সাত অ্যারে তারপর ব্যবহার 360 00:16:02,490 --> 00:16:05,950 একটি লুপ বা যখন একটি লুপ জন্য, নতুন অ্যারের মধ্যে কপি, 361 00:16:05,950 --> 00:16:09,680 এবং তারপর একরকম ঠিক পরিত্রাণ পেতে এই অ্যারে বা শুধু এটি ব্যবহার করা বন্ধ. 362 00:16:09,680 --> 00:16:12,130 কিন্তু যে বিশেষ করে দক্ষ না. 363 00:16:12,130 --> 00:16:15,340 সংক্ষেপে, অ্যারে দেবেন না আপনি পরিবর্তনশীল মাপ পরিবর্তন. 364 00:16:15,340 --> 00:16:17,900 >> তাই এক দিকে আপনি পেতে আশ্চর্যজনক যা র্যান্ডম এক্সেস,. 365 00:16:17,900 --> 00:16:20,108 এটা দেয়, কারণ আমাদের কিছু করার এবং ভাগ অতিক্রম মত, 366 00:16:20,108 --> 00:16:23,100 আমরা করেছি, যা সব বাইনারি অনুসন্ধান, এখানে পর্দায় সম্পর্কে বললাম. 367 00:16:23,100 --> 00:16:24,950 কিন্তু আপনি যদি একটি কোণার মধ্যে নিজেকে আঁকা. 368 00:16:24,950 --> 00:16:27,810 যত তাড়াতাড়ি আপনি আঘাত আপনার অ্যারের শেষ, 369 00:16:27,810 --> 00:16:29,980 আপনি একটি খুব কি আছে ব্যয়বহুল অপারেশন 370 00:16:29,980 --> 00:16:33,910 বা কোড আভা লিখুন এখন যে সমস্যা মোকাবেলা করতে. 371 00:16:33,910 --> 00:16:36,680 >> তাই যদি আমরা ছিল কি কিছু একটি তালিকা বলা হয়, 372 00:16:36,680 --> 00:16:38,820 বা একটি বিশেষ লিঙ্ক তালিকা? 373 00:16:38,820 --> 00:16:41,930 কি যদি পরিবর্তে হচ্ছে আয়তক্ষেত্র, ব্যাক ব্যাক ব্যাক 374 00:16:41,930 --> 00:16:45,730 আমরা একটু ছেড়ে আয়তক্ষেত্র আছে তাদের মধ্যে আন্দোলিত রুম বিট? 375 00:16:45,730 --> 00:16:49,670 যদিও আমি এই টানা করেছি ছবি বা এই ছবি অভিযোজিত 376 00:16:49,670 --> 00:16:54,696 গ্রন্থে এক থেকে এখানে ফিরে হতে ফিরে বাস্তবতা, খুব সুশৃঙ্খল ব্যাক, 377 00:16:54,696 --> 00:16:56,820 যারা আয়তক্ষেত্র এক এখানে মেমরি হতে পারে. 378 00:16:56,820 --> 00:16:58,028 তাদের মধ্যে একজন এখানে হতে পারে. 379 00:16:58,028 --> 00:17:00,420 তাদের মধ্যে একজন, এখানে হতে পারে এখানে, এবং তাই ঘোষণা উপর. 380 00:17:00,420 --> 00:17:02,910 >> কিন্তু আমরা সৃষ্টি কি করে এই ক্ষেত্রে, তীর 381 00:17:02,910 --> 00:17:05,650 একরকম এই যে লিঙ্ক একসঙ্গে আয়তক্ষেত্র? 382 00:17:05,650 --> 00:17:08,170 প্রকৃতপক্ষে, আমরা একটি প্রযুক্তিগত দেখা করেছি একটি তীর এর আবির্ভাব. 383 00:17:08,170 --> 00:17:09,839 384 00:17:09,839 --> 00:17:13,710 আমরা কি সাম্প্রতিক ব্যবহার করেছেন দিন যে, ফণা নীচে, 385 00:17:13,710 --> 00:17:15,210 একটি তীর প্রতিনিধি? 386 00:17:15,210 --> 00:17:16,290 387 00:17:16,290 --> 00:17:17,349 একটি পয়েন্টার, ডান? 388 00:17:17,349 --> 00:17:19,780 >> তাই যদি, পরিবর্তে শুধু সংখ্যা সংরক্ষণ, 389 00:17:19,780 --> 00:17:23,130 মত 9, 17, 22, 26, 34, আমরা কি না সংরক্ষণ করা হলে 390 00:17:23,130 --> 00:17:27,079 শুধুমাত্র একটি সংখ্যা কিন্তু একটি পয়েন্টার প্রতিটি যেমন সংখ্যা পরের? 391 00:17:27,079 --> 00:17:30,690 সুতরাং যে অনেক আপনি একটি থ্রেড চাই ফ্যাব্রিক আভা মাধ্যমে সুই, 392 00:17:30,690 --> 00:17:32,950 একরকম বিস্তারিত tying জিনিস একসঙ্গে একভাবে করতে পারেন 393 00:17:32,950 --> 00:17:35,550 পয়েন্টার, হিসাবে আমরা এখানে তীরচিহ্ন দ্বারা incarnated, 394 00:17:35,550 --> 00:17:38,550 ধরনের একসঙ্গে বুনা এই স্বতন্ত্র আয়তক্ষেত্র 395 00:17:38,550 --> 00:17:41,780 কার্যকরভাবে একটি পয়েন্টার ব্যবহার করে প্রতিটি সংখ্যা পরের যে 396 00:17:41,780 --> 00:17:46,065 যে, কিছু পরবর্তী সংখ্যা পয়েন্ট ঘুরে, কিছু পরবর্তী সংখ্যা স্থানটিকে? 397 00:17:46,065 --> 00:17:47,940 তাই অন্য কথায়, কি আমরা আসলে চেয়েছিলেন 398 00:17:47,940 --> 00:17:49,820 ভালো কিছু বাস্তবায়ন করতে? 399 00:17:49,820 --> 00:17:53,610 ভাল দুর্ভাগ্যবশত, এই আয়তক্ষেত্র, 9 অন্তত এক, 17, 22 এ, 400 00:17:53,610 --> 00:17:57,040 এবং তাই ঘোষণা, এই আর একক সংখ্যার চমৎকার স্কোয়ার. 401 00:17:57,040 --> 00:17:59,960 নীচে, আয়তক্ষেত্র 9 নিচে, উদাহরণস্বরূপ, 402 00:17:59,960 --> 00:18:04,330 প্রতিনিধিত্ব করে কি করা উচিত একটি পয়েন্টার, 32 বিট হতে হবে. 403 00:18:04,330 --> 00:18:09,460 এখন, আমি কোনো তথ্য টাইপ সচেতন নই সি যে আপনি না কোন int দেয় 404 00:18:09,460 --> 00:18:11,630 কিন্তু একটি পয়েন্টার সম্পূর্ণভাবে. 405 00:18:11,630 --> 00:18:15,020 >> আমরা চাই, তাই যদি সমাধান কি এই আমাদের নিজস্ব উত্তর উদ্ভাবিত? 406 00:18:15,020 --> 00:18:15,760 হ্যাঁ? 407 00:18:15,760 --> 00:18:16,640 >> শ্রোতা: [শ্রবণাতীত] 408 00:18:16,640 --> 00:18:17,360 >> ডেভিড জে MALAN: কি যে? 409 00:18:17,360 --> 00:18:17,880 >> শ্রোতা: নতুন কাঠামো. 410 00:18:17,880 --> 00:18:19,590 >> ডেভিড জে MALAN: হ্যাঁ, কেন আমরা একটি নতুন কাঠামো তৈরি না, 411 00:18:19,590 --> 00:18:20,920 বা C, একটি struct মধ্যে? 412 00:18:20,920 --> 00:18:25,990 আমরা যদি সংক্ষেপে, আগে structs দেখা করেছি আমরা একটি ছাত্র কাঠামো সঙ্গে মোকাবিলা যেখানে 413 00:18:25,990 --> 00:18:27,780 এই মত একটি নাম এবং একটি ঘর ছিল. 414 00:18:27,780 --> 00:18:31,980 Pset মধ্যে 3 ব্রেকআউট আপনি একটি সম্পূর্ণ ব্যবহার structs-- GRect এবং GOvals গুচ্ছ 415 00:18:31,980 --> 00:18:34,810 স্ট্যানফোর্ড নির্মিত যে একসঙ্গে ক্লাস্টার তথ্য. 416 00:18:34,810 --> 00:18:38,580 তাই আমরা এই একই ধারণা নিতে হলে মূলশব্দ "typedef" এবং "struct,," 417 00:18:38,580 --> 00:18:42,890 এবং তারপর কিছু ছাত্র নির্দিষ্ট উপাদান, এবং নিম্নলিখিত মধ্যে এই অভিব্যক্ত: 418 00:18:42,890 --> 00:18:46,210 typedef struct নোড এবং নোড শুধু একটি খুব জেনেরিক কম্পিউটার বিজ্ঞান 419 00:18:46,210 --> 00:18:49,980 একটি তথ্য কাঠামো কিছু শব্দ, একটি তথ্য কাঠামো একটি ধারক. 420 00:18:49,980 --> 00:18:53,900 আমি দাবি একটি নোড আছে যাচ্ছে সম্পূর্ণ সহজবোধ্য কোন int n, 421 00:18:53,900 --> 00:18:58,810 এবং তারপর আরো cryptically একটু, এই দ্বিতীয় লাইন, struct নোড * পরবর্তী. 422 00:18:58,810 --> 00:19:01,300 কিন্তু কম প্রযুক্তিগত পদ, যে দ্বিতীয় লাইন কি 423 00:19:01,300 --> 00:19:02,980 কোঁকড়া ধনুর্বন্ধনী ভিতরে কোড? 424 00:19:02,980 --> 00:19:03,737 হ্যাঁ? 425 00:19:03,737 --> 00:19:04,851 >> শ্রোতা: [শ্রবণাতীত] 426 00:19:04,851 --> 00:19:06,600 ডেভিড জে MALAN: একটি অন্য একটি নোড পয়েন্টার. 427 00:19:06,600 --> 00:19:09,910 সুতরাং নিঃসন্দেহে, একটু রহস্যপূর্ণ সিনট্যাক্স. 428 00:19:09,910 --> 00:19:13,250 কিন্তু আপনি আক্ষরিক এটি পড়া, পরবর্তী একটি পরিবর্তনশীল এর নাম. 429 00:19:13,250 --> 00:19:14,410 তার তথ্য টাইপ কি? 430 00:19:14,410 --> 00:19:18,206 এটা, এই সময় একটু বাগাড়ম্বরপূর্ণ কিন্তু এটি টাইপ * struct নোড এর মধ্যে. 431 00:19:18,206 --> 00:19:22,960 আমরা কিছু তারা দেখা করেছেন কোন সময়, যে এটা যে ডাটা টাইপ একটি পয়েন্টার মানে. 432 00:19:22,960 --> 00:19:26,810 তাই পরবর্তী দৃশ্যত একটি হল একটি struct নোড পয়েন্টার. 433 00:19:26,810 --> 00:19:28,310 >> এখন, একটি struct নোড কি? 434 00:19:28,310 --> 00:19:31,044 হ্যাঁ, আপনি যারা দেখতে বিজ্ঞপ্তি উপরের ডানদিকে একই শব্দ. 435 00:19:31,044 --> 00:19:33,960 এবং প্রকৃতপক্ষে, আপনি শব্দ দেখতে নিচে এখানে নীচে বাম দিকে "নোড". 436 00:19:33,960 --> 00:19:35,640 এবং এই আসলে শুধু একটি সুবিধার্থে. 437 00:19:35,640 --> 00:19:39,930 আমাদের ছাত্র সংজ্ঞা যে লক্ষ্য করুন শুধুমাত্র একবার শব্দ "ছাত্র" আছে. 438 00:19:39,930 --> 00:19:42,510 এবং যে একটি ছাত্র এর কারণ বস্তু স্ব উল্লেখ ছিল না. 439 00:19:42,510 --> 00:19:45,340 একটি ছাত্র এর ভিতরে কিছুই নেই অন্য যে ছাত্র নির্দেশ করা প্রয়োজন, 440 00:19:45,340 --> 00:19:45,610 persay. 441 00:19:45,610 --> 00:19:47,630 যে ধরণের হবে বাস্তব জগতে অদ্ভুত. 442 00:19:47,630 --> 00:19:50,880 >> কিন্তু একটি একটি নোডের সাথে সংযুক্ত তালিকা, আমরা একটি নোড চান 443 00:19:50,880 --> 00:19:53,970 একটি অনুরূপ বস্তু উল্লেখ করতে হবে. 444 00:19:53,970 --> 00:19:57,900 তাই এখানে পরিবর্তন না বিজ্ঞপ্তি শুধু কি তরঙ্গায়িত ধনুর্বন্ধনী ভিতরে. 445 00:19:57,900 --> 00:20:00,800 কিন্তু আমরা "নোড" শব্দ যোগ উপরের হিসাবে ভাল হিসাবে 446 00:20:00,800 --> 00:20:02,930 নীচে এটি যোগ পরিবর্তে "ছাত্র". 447 00:20:02,930 --> 00:20:06,000 এবং এই শুধুমাত্র একটি প্রযুক্তিগত বিস্তারিত তাই যে, আবার, আপনার তথ্য গঠন 448 00:20:06,000 --> 00:20:11,380 , স্ব উল্লেখ করা যেতে পারে একটি যাতে নোড অন্য যেমন নোড নির্দেশ করতে পারেন. 449 00:20:11,380 --> 00:20:13,840 >> তাই শেষ পর্যন্ত এই কি আমাদের জন্য মানে যাচ্ছে? 450 00:20:13,840 --> 00:20:17,560 ওয়েল, এক, এই জিনিস ভিতরে আমাদের নোড বিষয়বস্তু হয়. 451 00:20:17,560 --> 00:20:19,360 এখানে এই জিনিস, উপরের ডান, ঠিক তাই 452 00:20:19,360 --> 00:20:20,860 যে, আবার, আমরা আমাদের নিজেদের পাঠাতে পারেন. 453 00:20:20,860 --> 00:20:23,401 এবং তারপর দূরতম কাপড়, নোড একটি নতুন শব্দ, যদিও 454 00:20:23,401 --> 00:20:25,500 সম্ভবত, এটা এখনও ছাত্র এবং কি হিসাবে একই 455 00:20:25,500 --> 00:20:27,520 SPL, ফণা নীচে ছিল. 456 00:20:27,520 --> 00:20:31,095 >> সুতরাং আমরা এখন শুরু করতে চেয়েছিলেন এই লিঙ্ক তালিকা বাস্তবায়ন, 457 00:20:31,095 --> 00:20:33,220 কিভাবে আমরা অনুবাদ হতে পারে ভালো কিছু কোড? 458 00:20:33,220 --> 00:20:35,350 ভাল, এর মাত্র একটি দেখুন একটি প্রোগ্রাম যেমন যে 459 00:20:35,350 --> 00:20:36,840 আসলে একটি লিঙ্ক তালিকা ব্যবহার করে. 460 00:20:36,840 --> 00:20:40,870 আজকের বিতরণ কোড মধ্যে তালিকা জিরো নামে একটি প্রোগ্রাম. 461 00:20:40,870 --> 00:20:44,980 আমি এই রান এবং আমি একটি সুপার নির্মিত সহজ গ্রাফিক্যাল ইউজার ইন্টারফেস, গ্রাফিক্যাল ইউজার ইন্টারফেস, 462 00:20:44,980 --> 00:20:46,460 কিন্তু এটি সত্যিই ঠিক printf এর. 463 00:20:46,460 --> 00:20:50,930 এবং এখন আমি নিজেকে কয়েক মেনু দিয়েছি অপশন মুছে ফেলুন, সন্নিবেশ, অনুসন্ধান, 464 00:20:50,930 --> 00:20:51,750 এবং তর্ক. 465 00:20:51,750 --> 00:20:52,630 এবং প্রস্থান. 466 00:20:52,630 --> 00:20:55,970 এই একটি মাত্র সাধারণ অপারেশন একটি লিঙ্ক তালিকা হিসাবে পরিচিত তথ্য কাঠামো. 467 00:20:55,970 --> 00:20:58,409 >> এখন, যাচ্ছে মুছে দিন তালিকা থেকে একটি সংখ্যা মুছে দিন. 468 00:20:58,409 --> 00:21:00,200 সন্নিবেশ যোগ করতে যাচ্ছে তালিকায় একটি সংখ্যা. 469 00:21:00,200 --> 00:21:02,181 অনুসন্ধান চেহারা হবে তালিকার মধ্যে সংখ্যার জন্য. 470 00:21:02,181 --> 00:21:04,930 এবং তর্ক করা শুধু একটি অভিনব উপায় বলার অপেক্ষা রাখে না, তালিকা ভিতর দিয়ে হেটে যেতে, 471 00:21:04,930 --> 00:21:06,245 এটি প্রিন্ট আউট, কিন্তু যে এটি. 472 00:21:06,245 --> 00:21:07,720 কোনো উপায়ে তা পরিবর্তন করবেন না. 473 00:21:07,720 --> 00:21:08,570 >> তাই আসুন এই চেষ্টা. 474 00:21:08,570 --> 00:21:10,160 এর এগিয়ে যান এবং 2 টাইপ করুন. 475 00:21:10,160 --> 00:21:12,710 এবং তারপর আমি যাচ্ছি সংখ্যা সন্নিবেশ, 9 বলে. 476 00:21:12,710 --> 00:21:13,620 লিখুন. 477 00:21:13,620 --> 00:21:17,480 এবং এখন আমার প্রোগ্রাম ঠিক হয় বলতে প্রোগ্রাম, তালিকা এখন 9. 478 00:21:17,480 --> 00:21:20,190 এখন, আমি এগিয়ে যান এবং আবার ঢোকান না, যাক 479 00:21:20,190 --> 00:21:23,680 আমাকে এগিয়ে যান এবং জুম আউট এবং 17 টাইপ. 480 00:21:23,680 --> 00:21:25,770 এখন আমার তালিকা তারপর, 17 9. 481 00:21:25,770 --> 00:21:27,750 আমি আবার সন্নিবেশ না, এর এক লাফালাফি করা যাক. 482 00:21:27,750 --> 00:21:32,400 পরিবর্তে 22, ছবি অনুযায়ী আমরা করেছি এখানে এ খুঁজছেন করা হয়েছে, আমাকে এগিয়ে তিড়িং লাফ দিন 483 00:21:32,400 --> 00:21:34,630 এবং পরবর্তী 26 সন্নিবেশ করুন. 484 00:21:34,630 --> 00:21:36,230 তাই আমি 26 টাইপ করতে যাচ্ছি. 485 00:21:36,230 --> 00:21:37,755 আমি আশা তালিকা. 486 00:21:37,755 --> 00:21:40,630 কিন্তু এখন, শুধু এই কোড যদি দেখতে নমনীয় হতে যাচ্ছে, এখন আমাকে 487 00:21:40,630 --> 00:21:43,520 টাইপ 22, যা অন্তত ধারণার দিক থেকে, আমরা যদি 488 00:21:43,520 --> 00:21:46,520 এই প্রকৃতপক্ষে, যা সাজানো পালন ডান এখন আরেকটি লক্ষ্য করা যাচ্ছে, 489 00:21:46,520 --> 00:21:48,690 17 এবং 26 এর মধ্যে যেতে হবে. 490 00:21:48,690 --> 00:21:50,270 তাই আমি আঘাত লিখুন. 491 00:21:50,270 --> 00:21:51,380 প্রকৃতপক্ষে, যে কাজ করে. 492 00:21:51,380 --> 00:21:54,950 তাই এখন আমাকে সন্নিবেশ করা শেষ, ছবি, 34 প্রতি. 493 00:21:54,950 --> 00:21:55,450 >> ঠিক আছে. 494 00:21:55,450 --> 00:21:58,980 তাই এখন আমাকে যে চুক্তির শর্ত দেওয়া এবং মুছে দিন, তর্ক এবং অনুসন্ধান, কি 495 00:21:58,980 --> 00:21:59,760 আসলে, কাজ করে. 496 00:21:59,760 --> 00:22:04,180 আমি অনুসন্ধান চালানোর জন্য বস্তুত, যদি, যাক লিখুন, সংখ্যা 22 জন্য অনুসন্ধান. 497 00:22:04,180 --> 00:22:05,010 এটা 22 পাওয়া যায় নি. 498 00:22:05,010 --> 00:22:07,580 সুতরাং যে কি এই হয় প্রোগ্রাম তালিকা জিরো আছে. 499 00:22:07,580 --> 00:22:10,230 >> কিন্তু আসলে কি হচ্ছে যে এই কার্যকরী? 500 00:22:10,230 --> 00:22:14,530 আচ্ছা, প্রথম আমি আছে, এবং প্রকৃতপক্ষে হতে পারে আমি একটি ফাইল list0.h বলা হয়, আছে. 501 00:22:14,530 --> 00:22:16,540 502 00:22:16,540 --> 00:22:20,690 এবং এই আছে কোথাও লাইন, typedef, struct নোড, 503 00:22:20,690 --> 00:22:24,850 তারপর আমি আমার কোঁকড়া ধনুর্বন্ধনী আছে এন int, এবং তারপর সংজ্ঞা কি ছিল struct--? 504 00:22:24,850 --> 00:22:26,530 505 00:22:26,530 --> 00:22:28,545 Struct নোড পরবর্তী. 506 00:22:28,545 --> 00:22:29,920 507 00:22:29,920 --> 00:22:31,045 তাই আমরা তারা প্রয়োজন. 508 00:22:31,045 --> 00:22:33,420 এখন টেকনিক্যালি আমরা মধ্যে পেতে এখানে আঁকার অভ্যাস. 509 00:22:33,420 --> 00:22:35,670 আপনি পাঠ্যবই দেখতে হতে পারে এবং অনলাইন রেফারেন্স আছে এটা. 510 00:22:35,670 --> 00:22:36,660 এই বৈশিষ্ট্যগুলি সমতুল্য. 511 00:22:36,660 --> 00:22:37,980 বস্তুত, এই একটি সামান্য আরো আদর্শ. 512 00:22:37,980 --> 00:22:40,563 কিন্তু আমি কি সঙ্গে সামঞ্জস্যপূর্ণ হতে হবে আমরা শেষ সময় এবং এই কাজ. 513 00:22:40,563 --> 00:22:42,350 এবং তারপর সর্বশেষে, আমি এই কাজ করতে যাচ্ছি. 514 00:22:42,350 --> 00:22:45,550 >> একটি হেডার ফাইল তাই কোথাও, list0.h মধ্যে 515 00:22:45,550 --> 00:22:49,200 আজ এই struct সংজ্ঞা, এবং হয়ত অন্য কিছু উপাদান. 516 00:22:49,200 --> 00:22:52,580 এদিকে list0c মধ্যে আছে কিছু বিষয় হতে যাচ্ছে. 517 00:22:52,580 --> 00:22:54,740 কিন্তু আমরা চলুন মাত্র শুরু এবং এই শেষ না. 518 00:22:54,740 --> 00:22:59,690 List0.h আমি চাই একটি ফাইল আমার সি ফাইল অন্তর্ভুক্ত করতে. 519 00:22:59,690 --> 00:23:03,910 এবং তারপর কিছু সময়ে আমি , প্রধান, কোন int আছে অকার্যকর করতে যাচ্ছে. 520 00:23:03,910 --> 00:23:06,530 এবং তারপর আমি যাচ্ছি বিক্ষোভ কিছু এখানে আছে. 521 00:23:06,530 --> 00:23:10,620 আমি একটি আছে যাচ্ছি প্রোটোটাইপ, অকার্যকর, অনুসন্ধান, int মত, 522 00:23:10,620 --> 00:23:13,610 এন, জীবনে যার উদ্দেশ্য একটি উপাদান জন্য অনুসন্ধান. 523 00:23:13,610 --> 00:23:18,310 এবং তারপর নিচে এখানে আমি দাবি আজ এর কোড, অকার্যকর, অনুসন্ধান, কোন int, এন, 524 00:23:18,310 --> 00:23:21,020 কোন সেমিকোলন কিন্তু খোলা কোঁকড়া ধনুর্বন্ধনী. 525 00:23:21,020 --> 00:23:25,049 এবং এখন আমি একরকম অনুসন্ধান করতে চান এই তালিকায় একটি উপাদান জন্য. 526 00:23:25,049 --> 00:23:27,340 কিন্তু আমরা যথেষ্ট হবে না এখনো পর্দায় তথ্য. 527 00:23:27,340 --> 00:23:29,800 আমি না আসলে আছে তালিকা নিজেই প্রতিনিধিত্ব. 528 00:23:29,800 --> 00:23:33,070 তাই এক উপায় আমরা বাস্তবায়ন হতে পারে একটি প্রোগ্রাম একটি লিঙ্ক তালিকা 529 00:23:33,070 --> 00:23:37,520 আমি ধরনের কিছু করতে চান হয় মত এখানে তালিকা সংযুক্ত ঘোষণা. 530 00:23:37,520 --> 00:23:40,520 সরলতা, আমি করতে যাচ্ছি এই এমনকি সাধারণ আমরা যদিও, আন্তর্জাতিক 531 00:23:40,520 --> 00:23:41,645 এই অত্যধিক না করা উচিত. 532 00:23:41,645 --> 00:23:43,260 কিন্তু এটা এই যেমন সহজতর করা হবে. 533 00:23:43,260 --> 00:23:45,890 তাই আমি ডিক্লেয়ার করতে চান এখানে একটি লিঙ্ক তালিকা আপ. 534 00:23:45,890 --> 00:23:47,010 এখন, আমি কিভাবে যে কি হতে পারে? 535 00:23:47,010 --> 00:23:48,810 536 00:23:48,810 --> 00:23:50,750 >> এখানে একটি লিঙ্ক তালিকা ছবি. 537 00:23:50,750 --> 00:23:53,030 এবং আমি সত্যিই না কিভাবে মুহূর্তে জানি 538 00:23:53,030 --> 00:23:56,710 আমি প্রতিনিধিত্বমূলক সম্পর্কে যেতে যাচ্ছি মাত্র এক সঙ্গে অনেক কিছু 539 00:23:56,710 --> 00:23:58,040 মেমরি পরিবর্তনশীল. 540 00:23:58,040 --> 00:23:59,160 কিন্তু একটি মুহূর্ত মনে. 541 00:23:59,160 --> 00:24:00,830 আমরা করেছি এই সময় স্ট্রিং, তারপর যা আমরা 542 00:24:00,830 --> 00:24:02,913 অ্যারে হতে উদ্ভূত অক্ষর, তারপর যা আমরা 543 00:24:02,913 --> 00:24:05,740 একটি পয়েন্টার হতে উদ্ভূত প্রথম চরিত্র 544 00:24:05,740 --> 00:24:08,890 অক্ষরের একটি অ্যারের মধ্যে যে নাল বাতিল হচ্ছে. 545 00:24:08,890 --> 00:24:13,530 যে যুক্তি দ্বারা, এবং এই সঙ্গে তাই আপনার চিন্তা seeding এর ছবি ধরনের, 546 00:24:13,530 --> 00:24:17,964 আমরা আসলে কি লিখতে প্রয়োজন আমাদের কোড একটি লিঙ্ক তালিকা প্রতিনিধিত্ব করতে? 547 00:24:17,964 --> 00:24:21,130 কত এই তথ্য আমরা প্রয়োজন সি কোড ক্যাপচার, আপনি বলতে হবে? 548 00:24:21,130 --> 00:24:22,654 549 00:24:22,654 --> 00:24:23,154 হ্যাঁ? 550 00:24:23,154 --> 00:24:24,738 >> শ্রোতা: আমরা একটি নোডের একটি পয়েন্টার প্রয়োজন. 551 00:24:24,738 --> 00:24:26,237 ডেভিড জে MALAN: একটি নোডের একটি পয়েন্টার. 552 00:24:26,237 --> 00:24:29,320 বিশেষ করে, যা নোড আপনার হবে সহজাত একটি পয়েন্টার রাখা হবে? 553 00:24:29,320 --> 00:24:30,026 >> শ্রোতা: প্রথম নোডের. 554 00:24:30,026 --> 00:24:31,942 >> ডেভিড জে MALAN: হ্যাঁ, সম্ভবত প্রথম. 555 00:24:31,942 --> 00:24:34,030 এবং, প্রথম লক্ষ্য নোড বিভিন্ন আকৃতি হয়. 556 00:24:34,030 --> 00:24:37,690 এটা struct, কেবলমাত্র অর্ধেক আকার, কারণ এটা সত্যিই শুধুমাত্র একটি পয়েন্টার. 557 00:24:37,690 --> 00:24:44,650 তাই আপনি যদি প্রকৃতপক্ষে কি করতে পারেন ঘোষণা করা হয় একটি লিঙ্ক তালিকা * টাইপ নোড হতে হবে. 558 00:24:44,650 --> 00:24:47,780 আর এর প্রথম কল করা যাক এবং নাল এটি আরম্ভ. 559 00:24:47,780 --> 00:24:49,910 তাই নাল, আবার, আসছে এখানে ছবি. 560 00:24:49,910 --> 00:24:53,620 নেই শুধু নাল একটি বিশেষ মত হিসাবে ব্যবহার করা হয় GetString ভালো জিনিস বিনিময়ে মূল্য 561 00:24:53,620 --> 00:24:57,770 এবং malloc, নাল এছাড়াও শূন্য পয়েন্টার, একটি পয়েন্টার অভাব, 562 00:24:57,770 --> 00:24:58,430 যদি আপনি হবে. 563 00:24:58,430 --> 00:25:00,309 এটা ঠিক কিছুই এখনো এখানে হয় না. 564 00:25:00,309 --> 00:25:02,100 এখন প্রথম, আমি করেছি পারে এই কিছু বলা. 565 00:25:02,100 --> 00:25:04,200 আমি "তালিকা" এটা বলা যেতে পারে বা অন্য যে কোনো সংখ্যা. 566 00:25:04,200 --> 00:25:06,960 কিন্তু আমি যে তাই "প্রথম" এটা আহ্বান করছি এই ছবি সঙ্গে এটি লাইন আপ. 567 00:25:06,960 --> 00:25:10,280 তাই শুধু একটি স্ট্রিং মত প্রতিনিধিত্ব করা যাবে তার প্রথম বাইট এর ঠিকানা দিয়ে, 568 00:25:10,280 --> 00:25:11,280 তাই একটি লিঙ্ক তালিকা করতে পারেন. 569 00:25:11,280 --> 00:25:13,480 এবং আমরা অন্যান্য তথ্য দেখতে পাবেন কাঠামো প্রতিনিধিত্ব করা 570 00:25:13,480 --> 00:25:16,700 মাত্র এক পয়েন্টার দিয়ে, একটি 32 বিট তীর, প্রতি নির্দেশ 571 00:25:16,700 --> 00:25:18,740 গঠন খুব প্রথম নোড. 572 00:25:18,740 --> 00:25:20,340 >> কিন্তু এখন এর একটি সমস্যা কহা যাক. 573 00:25:20,340 --> 00:25:23,230 আমি শুধু মনে করছি আমার প্রোগ্রাম ঠিকানা 574 00:25:23,230 --> 00:25:27,220 প্রথম নোডের প্রথম এই তথ্য কাঠামো আয়তক্ষেত্র, 575 00:25:27,220 --> 00:25:31,760 ভাল ছিল প্রায় ক্ষেত্রে হতে কি আমার তালিকা বাকি বাস্তবায়ন? 576 00:25:31,760 --> 00:25:35,820 যাচ্ছে যে একটি কী বিস্তারিত কি আসলে এই কাজ করে তা নিশ্চিত করার জন্য? 577 00:25:35,820 --> 00:25:39,250 এবং আমি "আসলে কাজ করে" অনেক একটি স্ট্রিং মত, মানে, 578 00:25:39,250 --> 00:25:42,180 আমাদের প্রথম অক্ষর থেকে যেতে দেয় দ্বিতীয় ডেভিন এর নামে, 579 00:25:42,180 --> 00:25:44,755 তৃতীয় থেকে চতুর্থ, খুব শেষ, 580 00:25:44,755 --> 00:25:47,880 আমরা শেষ এ যখন আমরা জানি কিভাবে ভালো দেখায় যে একটি লিঙ্ক তালিকা? 581 00:25:47,880 --> 00:25:50,035 582 00:25:50,035 --> 00:25:50,660 যখন এটা নাল. 583 00:25:50,660 --> 00:25:53,640 এবং আমি এই সাজানোর প্রতিনিধিত্ব করেছি একটি তড়িৎ প্রকৌশলী যথাসাধ্য মত, 584 00:25:53,640 --> 00:25:56,420 সামান্য ভিত্তি সঙ্গে প্রতীক, অসুস্থ. 585 00:25:56,420 --> 00:25:58,246 কিন্তু যে শুধু এই ক্ষেত্রে নাল মানে. 586 00:25:58,246 --> 00:26:00,370 আপনি এটা কোনো নম্বর আহরণ করতে পারে উপায়, কিন্তু এই লেখক 587 00:26:00,370 --> 00:26:02,800 এখানে এই প্রতীক ব্যবহার করতে ঘটেছে. 588 00:26:02,800 --> 00:26:06,260 >> আমরা গাঁথন করছি তাই দীর্ঘ একসঙ্গে এই নোডের মধ্যে সমস্ত, 589 00:26:06,260 --> 00:26:08,600 শুধুমাত্র যেখানে মনে প্রথম এক, তাই দীর্ঘ 590 00:26:08,600 --> 00:26:11,760 আমরা একটি বিশেষ চিহ্ন হিসাবে রাখা তালিকায় শেষ নোড, 591 00:26:11,760 --> 00:26:15,130 কারণ যে আমরা, নাল ব্যবহার করব উপলব্ধ আমাদের কি আমরা আছে, 592 00:26:15,130 --> 00:26:16,480 এই তালিকা সম্পূর্ণ. 593 00:26:16,480 --> 00:26:20,190 এমনকি আমি শুধুমাত্র যদি আপনি একটি পয়েন্টার দিতে প্রথম উপাদান, আপনি, প্রোগ্রামার, 594 00:26:20,190 --> 00:26:22,486 অবশ্যই এটা বাকি অ্যাক্সেস করতে পারেন. 595 00:26:22,486 --> 00:26:24,360 কিন্তু আপনার মন দেওয়া যাক একটি সামান্য বিট বেড়ান, 596 00:26:24,360 --> 00:26:26,140 ইতিমধ্যে তারা না হন তাহলে বেশ কি wandered-- 597 00:26:26,140 --> 00:26:28,723 চলমান সময় হতে যাচ্ছে এই তালিকায় কিছু খুঁজে পেতে? 598 00:26:28,723 --> 00:26:30,450 599 00:26:30,450 --> 00:26:33,470 এটা অভিশাপ, এটা n এর বড় হে, যা সততা, খারাপ না. 600 00:26:33,470 --> 00:26:34,800 কিন্তু এটা রৈখিক. 601 00:26:34,800 --> 00:26:37,980 আমরা কি বৈশিষ্ট্য দেওয়া আছে আরো সরিয়ে অ্যারে 602 00:26:37,980 --> 00:26:43,130 পরিবর্তনশীল এর এই ছবি দিকে একসঙ্গে বোনা বা নোড সংযুক্ত? 603 00:26:43,130 --> 00:26:44,970 604 00:26:44,970 --> 00:26:46,687 আমরা র্যান্ডম অ্যাক্সেস আপনি. 605 00:26:46,687 --> 00:26:48,770 একটি অ্যারের কারণ চমৎকার গাণিতিকভাবে সবকিছু 606 00:26:48,770 --> 00:26:50,340 ফিরে ফিরে পশ্চাতে ফিরে. 607 00:26:50,340 --> 00:26:52,370 এমনকি এই ছবি যদিও সুন্দর দেখায়, এবং এমনকি 608 00:26:52,370 --> 00:26:55,830 এটা এই নোডের মত দেখায়, যদিও সুন্দরভাবে বাস্তবতা, পৃথক্ হয় ব্যবধানে 609 00:26:55,830 --> 00:26:56,830 তারা যে কোন জায়গায় হতে পারে. 610 00:26:56,830 --> 00:27:01,590 OX1, Ox50, ox123, Ox99, এই নোড যে কোন জায়গায় হতে পারে. 611 00:27:01,590 --> 00:27:05,960 Malloc মেমরি বরাদ্দ করা আছে, কারণ গাদা থেকে, কিন্তু কোথাও গাদা. 612 00:27:05,960 --> 00:27:09,080 আপনি অগত্যা যে এটা জানি না ফিরে যাচ্ছে, ফিরে যাও ফিরে যাও. 613 00:27:09,080 --> 00:27:12,460 এবং বাস্তবতা এর মধ্যে তাই এই ছবি বেশ সুন্দর করা যাচ্ছে না. 614 00:27:12,460 --> 00:27:16,140 >> সুতরাং এটি একটি বিট গ্রহণ করা যাচ্ছে এই ফাংশন বাস্তবায়ন কাজ. 615 00:27:16,140 --> 00:27:17,880 তাই আসুন এখন অনুসন্ধান বাস্তবায়ন. 616 00:27:17,880 --> 00:27:20,250 এবং আমরা একটি ধরনের দেখতে পাবেন এই করছেন চতুর উপায়. 617 00:27:20,250 --> 00:27:24,660 আমি একটি অনুসন্ধান ফাংশন হলে তাই এবং আমি একটি পরিবর্তনশীল, পূর্ণসংখ্যা এন দেওয়া করছি 618 00:27:24,660 --> 00:27:28,490 এ জন্য চেহারা, আমি জানা প্রয়োজন ভিতরে খুঁজছেন জন্য নতুন বাক্য গঠন 619 00:27:28,490 --> 00:27:32,400 যে একটি কাঠামো , এন খুঁজে তীক্ষ্ন. 620 00:27:32,400 --> 00:27:33,210 তাই এর এই না দেওয়া. 621 00:27:33,210 --> 00:27:36,030 >> সুতরাং প্রথম আমি যেতে চলেছি এগিয়ে এবং * একটি নোডের ঘোষণা. 622 00:27:36,030 --> 00:27:39,400 এবং আমি কল করা যাচ্ছে না শুধু প্রচল পয়েন্টার,. 623 00:27:39,400 --> 00:27:41,710 এবং আমি প্রথম থেকে এটি আরম্ভ করতে যাচ্ছি. 624 00:27:41,710 --> 00:27:43,770 এবং এখন আমি এটা করতে পারেন উপায় একটি নম্বর. 625 00:27:43,770 --> 00:27:45,436 কিন্তু আমি একটি সাধারণ পদ্ধতি গ্রহণ করা যাচ্ছে না. 626 00:27:45,436 --> 00:27:50,180 পয়েন্টার সমান হয় না নাল, এবং যে বৈধ সিনট্যাক্স না. 627 00:27:50,180 --> 00:27:54,550 এবং শুধু তাই, নিম্নলিখিত কাজগুলো মানে দীর্ঘ আপনি কিছুই নির্দেশ করে না করছি. 628 00:27:54,550 --> 00:27:55,800 আমি কি করতে চান? 629 00:27:55,800 --> 00:28:01,939 >> পয়েন্টার বিন্দু এন, আমার ফিরে আসা দিন যে, সমান কি সমান? 630 00:28:01,939 --> 00:28:03,105 কি মান আমি করছি? 631 00:28:03,105 --> 00:28:04,920 632 00:28:04,920 --> 00:28:06,590 পাস করা হয়েছিল যে প্রকৃত এন. 633 00:28:06,590 --> 00:28:09,020 তাই এখানে অন্য বৈশিষ্ট্য সি এবং অনেক ভাষার. 634 00:28:09,020 --> 00:28:13,705 এমনকি গঠন নামক নোড যদিও একটি মান, সম্পূর্ণ বৈধ হয়েছে 635 00:28:13,705 --> 00:28:17,530 একটি স্থানীয় যুক্তি আছে বা পরিবর্তনশীল n বলা হয়. 636 00:28:17,530 --> 00:28:20,085 এমনকি আমরা, কারণ মানুষের চোখ, আলাদা করতে পারেন 637 00:28:20,085 --> 00:28:22,087 এই এন সম্ভবতঃ যে এই n থেকে বিভিন্ন. 638 00:28:22,087 --> 00:28:23,420 বাক্য গঠন আলাদা. 639 00:28:23,420 --> 00:28:26,211 আপনি একটি বিন্দু এবং একটি পয়েন্টার আছে, এই এক, যেহেতু কোন জিনিস আছে. 640 00:28:26,211 --> 00:28:27,290 তাই এই ঠিক আছে. 641 00:28:27,290 --> 00:28:29,120 একই জিনিস তাদের কল ঠিক আছে. 642 00:28:29,120 --> 00:28:32,380 >> আমি আপনি এই খুঁজে না, আমি আছি কিছু করতে চান যাচ্ছে 643 00:28:32,380 --> 00:28:35,000 মত আমরা n পাওয়া ঘোষণা. 644 00:28:35,000 --> 00:28:37,930 এবং আমরা একটি হিসাবে যে ছেড়ে দেব মন্তব্য বা pseudocode হয় কোড. 645 00:28:37,930 --> 00:28:40,190 অন্যথায়, এবং এখানে আকর্ষণীয় অংশ, কি 646 00:28:40,190 --> 00:28:47,320 আমি বর্তমান নোড যদি কাজ করতে চান না আমি যত্ন সম্পর্কে যে n ধারণকারী করা হয় না? 647 00:28:47,320 --> 00:28:50,700 আমি কিভাবে নিম্নলিখিত অর্জন না? 648 00:28:50,700 --> 00:28:53,710 যদি আমার আঙুল মুহূর্ত PTR, এবং এটা 649 00:28:53,710 --> 00:28:55,920 যাই হোক না কেন নির্দেশ প্রথম, নির্দেশ করা হয় 650 00:28:55,920 --> 00:28:59,290 আমি আমার আঙুল সরাতে কিভাবে কোড পরবর্তী নোডের? 651 00:28:59,290 --> 00:29:01,915 ভাল, আমরা করছি ব্রেডক্রম্বে কি এই ক্ষেত্রে অনুসরণ করতে যাচ্ছে? 652 00:29:01,915 --> 00:29:03,464 653 00:29:03,464 --> 00:29:04,380 শ্রোতা: [শ্রবণাতীত]. 654 00:29:04,380 --> 00:29:05,630 ডেভিড জে MALAN: হ্যাঁ, তাই পরবর্তী. 655 00:29:05,630 --> 00:29:06,640 656 00:29:06,640 --> 00:29:09,824 আমি ফিরে যান তাই আমার এখানে কোড, প্রকৃতপক্ষে, আমি 657 00:29:09,824 --> 00:29:12,990 , পয়েন্টার এগিয়ে যান এবং বলতে যাচ্ছে যা এটি শুধু একটি অস্থায়ী ভেরিয়েবল হয় 658 00:29:12,990 --> 00:29:15,320 একটি অদ্ভুত নাম, ptr, কিন্তু এটা ঠিক temp-- মত 659 00:29:15,320 --> 00:29:19,234 আমি পয়েন্টার সেট করা যাচ্ছে না যাই হোক না কেন পয়েন্টার যাই সমান 660 00:29:19,234 --> 00:29:22,150 এবং আবার, এই একটি হতে যাচ্ছে পরবর্তী একটি মুহূর্ত ডট জন্য একটু বগী. 661 00:29:22,150 --> 00:29:23,551 662 00:29:23,551 --> 00:29:26,550 অন্য কথায়, আমি নিতে যাচ্ছি আমার এই নোড এর প্রতি নির্দেশ করে যে আঙুল 663 00:29:26,550 --> 00:29:31,247 এখানে এবং আমি আপনি কি জানেন, বলতে যাচ্ছি কি, পরবর্তী ক্ষেত্র কটাক্ষপাত করা 664 00:29:31,247 --> 00:29:33,330 এবং আপনার আঙুল সরাতে যাই হোক না কেন এটা নির্দেশ করে. 665 00:29:33,330 --> 00:29:35,163 এবং এই যাচ্ছে , পুনরাবৃত্তি, পুনরাবৃত্তি পুনরাবৃত্তি. 666 00:29:35,163 --> 00:29:37,630 কিন্তু যখন আমার আঙুল আছে এ সব কিছু করছেন থামাতে? 667 00:29:37,630 --> 00:29:40,095 যত তাড়াতাড়ি কি কোড kicks এর লাইন হিসাবে? 668 00:29:40,095 --> 00:29:40,970 শ্রোতা: [শ্রবণাতীত] 669 00:29:40,970 --> 00:29:43,060 ডেভিড জে MALAN: যদি বিন্দু যখন পয়েন্টার নাল সমান হয় না. 670 00:29:43,060 --> 00:29:44,900 কিছু পয়েন্ট আমার আঙুল এর সময়ে নাল নির্দেশ করা যাচ্ছে 671 00:29:44,900 --> 00:29:47,070 এবং আমি বুঝতে পারছি করা যাচ্ছে না এই তালিকা যে শেষে. 672 00:29:47,070 --> 00:29:48,910 এখন, এই একটি সামান্য সরলতা জন্য সাদা মিথ্যা. 673 00:29:48,910 --> 00:29:51,580 এটা পরিনত হয় যে, যদিও আমরা শুধু এই বিন্দু স্বরলিপি শিখেছি 674 00:29:51,580 --> 00:29:55,220 কাঠামোর জন্য, পয়েন্টার একটি struct হয় না. 675 00:29:55,220 --> 00:29:56,580 ptr কি? 676 00:29:56,580 --> 00:29:58,350 শুধু আরো nitpicky হতে. 677 00:29:58,350 --> 00:29:59,720 678 00:29:59,720 --> 00:30:01,360 এটি একটি নোডের একটি পয়েন্টার. 679 00:30:01,360 --> 00:30:03,120 এটি একটি নোড নিজেই না. 680 00:30:03,120 --> 00:30:06,650 আমি এখানে তারা ছিল, পয়েন্টার সুখেন্দু এটি একটি নোড. 681 00:30:06,650 --> 00:30:08,650 এই সপ্তাহে এক মত একটি পরিবর্তনশীল ঘোষণা, 682 00:30:08,650 --> 00:30:10,120 এমনকি শব্দ "নোড" নতুন যদিও. 683 00:30:10,120 --> 00:30:13,860 >> কিন্তু আমরা একটি পরিচয় করিয়ে যত তাড়াতাড়ি তারকা, এটি এখন একটি নোডের একটি পয়েন্টার. 684 00:30:13,860 --> 00:30:17,960 এবং দুর্ভাগ্যবশত আপনি ব্যবহার করতে পারবেন না একটি পয়েন্টার জন্য বিন্দু স্বরলিপি. 685 00:30:17,960 --> 00:30:21,070 আপনি তীর ব্যবহার আছে স্বরলিপি, যা, অদ্ভূত, 686 00:30:21,070 --> 00:30:23,470 প্রথম সময় কোনো টুকরা বাক্য গঠন স্বজ্ঞাত দেখায়. 687 00:30:23,470 --> 00:30:25,245 এই আক্ষরিক একটি তীর মত দেখায়. 688 00:30:25,245 --> 00:30:26,370 তাই যে একটা ভাল জিনিস. 689 00:30:26,370 --> 00:30:28,995 এবং এখানে নিচে আক্ষরিক একটি তীর মত দেখায়. 690 00:30:28,995 --> 00:30:31,870 তাই আমি যে আমি না la-- মনে করি আমি এখানে ওভার সংগঠনের করছি আমি 691 00:30:31,870 --> 00:30:34,120 শেষ নতুন টুকরা মনে করি বাক্য গঠন আমরা দেখতে যাচ্ছেন. 692 00:30:34,120 --> 00:30:36,500 এবং সৌভাগ্যক্রমে, এটা প্রকৃতপক্ষে এর একটু আরও বেশি ধারণাসম্পন্ন. 693 00:30:36,500 --> 00:30:40,090 >> এখন, আপনি তাদের জন্য যারা পুরানো উপায় পছন্দ হতে পারে, 694 00:30:40,090 --> 00:30:42,550 আপনি যদি এখনও বিন্দু স্বরলিপি ব্যবহার করতে পারেন. 695 00:30:42,550 --> 00:30:45,380 কিন্তু সোমবার এর প্রতি কথোপকথন, আমরা প্রথম 696 00:30:45,380 --> 00:30:50,530 যে যান, সেখানে যেতে হবে ঠিকানা, এবং তারপর ক্ষেত্র অ্যাক্সেস. 697 00:30:50,530 --> 00:30:51,897 তাই এই সঠিক. 698 00:30:51,897 --> 00:30:53,730 এবং অকপটে, এই একটি আরো গোঁড়া সামান্য. 699 00:30:53,730 --> 00:30:56,530 আপনি আক্ষরিক বলছে, ডি-রেফারেন্স পয়েন্টার এবং সেখানে যান. 700 00:30:56,530 --> 00:30:59,320 তারপর এন দখল, ক্ষেত্র বলা. 701 00:30:59,320 --> 00:31:01,370 কিন্তু অকপটে, কোন এক চায় টাইপ করুন অথবা এই পড়া. 702 00:31:01,370 --> 00:31:03,620 তাই বিশ্বের আবিষ্কার তীর স্বরলিপি, যা 703 00:31:03,620 --> 00:31:06,980 , অভিন্ন, সমতূল্য এটা ঠিক অন্বিত চিনি না. 704 00:31:06,980 --> 00:31:10,570 এই বলছে তাই একটি অভিনব উপায় ভাল দেখায়, বা সহজ মনে হচ্ছে. 705 00:31:10,570 --> 00:31:12,296 >> তাই এখন আমি অন্য একটি জিনিস করতে যাচ্ছি. 706 00:31:12,296 --> 00:31:15,420 আমি করেছি "বিরতি" বলতে যাচ্ছি তাই আমি এটা খুঁজছেন রাখা না পাওয়া. 707 00:31:15,420 --> 00:31:17,620 কিন্তু এই সারকথা একটি অনুসন্ধান ফাংশন. 708 00:31:17,620 --> 00:31:21,710 কিন্তু এটা অনেক সহজ শেষ, কোড দিয়ে হেটে যেতে না. 709 00:31:21,710 --> 00:31:25,570 এটি প্রকৃতপক্ষে প্রথাগত বাস্তবায়ন আজকের বিতরণ কোড অনুসন্ধান. 710 00:31:25,570 --> 00:31:30,530 আমি যে সন্নিবেশ না বলার সাহস ভিতর দিয়ে হেটে যেতে, বিশেষ করে মজা 711 00:31:30,530 --> 00:31:33,180 দৃশ্যত, না, এমনকি, মুছে দিন দিনের শেষে, যদিও 712 00:31:33,180 --> 00:31:35,460 তারা মোটামুটি ফুটাইয়া কমান সহজ হিউরিস্টিক. 713 00:31:35,460 --> 00:31:36,330 >> তাই এর এই না দেওয়া. 714 00:31:36,330 --> 00:31:39,250 আপনি এখানে মেজাজ আমার হবে না, আমি কি চাপ বল একটি গুচ্ছ আনা. 715 00:31:39,250 --> 00:31:40,620 আমি সংখ্যার একটি গুচ্ছ আনা. 716 00:31:40,620 --> 00:31:46,562 এবং আমরা মাত্র কয়েক স্বেচ্ছাসেবকদের পেতে পারে 9, 17, 20, 22, 29, এবং 34 প্রতিনিধিত্ব করতে? 717 00:31:46,562 --> 00:31:48,270 তাই মূলত সবাই এখানে যারা আজকে. 718 00:31:48,270 --> 00:31:50,170 719 00:31:50,170 --> 00:31:52,760 যে, এক, দুই, তিন চার, পাঁচ, ছয় জনের. 720 00:31:52,760 --> 00:31:55,740 এবং আমি না, দেখতে go-- করতে বলা হয়েছে ফিরে এক তাদের হাত উত্থাপন. 721 00:31:55,740 --> 00:32:01,910 ঠিক আছে, এক, দুই, তিন, চার, পাঁচটি আমাকে ছয় balance-- লোড করা যাক. 722 00:32:01,910 --> 00:32:03,051 ঠিক আছে, আপনি ছয় উপর আসা. 723 00:32:03,051 --> 00:32:04,050 আমরা অন্য মানুষ প্রয়োজন হবে. 724 00:32:04,050 --> 00:32:05,460 আমরা অতিরিক্ত চাপ বল আনা. 725 00:32:05,460 --> 00:32:08,200 এবং আপনি যদি পারে, জন্য শুধু একটা মুহূর্ত, লাইন 726 00:32:08,200 --> 00:32:10,490 নিজের আপ ঠিক এখানে এই ছবি মত. 727 00:32:10,490 --> 00:32:15,200 728 00:32:15,200 --> 00:32:15,959 >> ঠিক আছে. 729 00:32:15,959 --> 00:32:17,125 আপনার নাম কি, এর দেখতে দিন? 730 00:32:17,125 --> 00:32:17,550 >> শ্রোতা: অ্যান্ড্রু. 731 00:32:17,550 --> 00:32:18,800 >> ডেভিড জে MALAN: অ্যান্ড্রু, আপনি সংখ্যা 9 দ্বারা. 732 00:32:18,800 --> 00:32:19,540 দেখা হওয়ায় খুশী হলাম. 733 00:32:19,540 --> 00:32:20,400 এখানে আপনি যান. 734 00:32:20,400 --> 00:32:21,593 735 00:32:21,593 --> 00:32:22,176 শ্রোতা: জেন. 736 00:32:22,176 --> 00:32:22,662 ডেভিড জে MALAN: জেন. 737 00:32:22,662 --> 00:32:23,162 ডেভিড. 738 00:32:23,162 --> 00:32:23,765 সংখ্যা 17. 739 00:32:23,765 --> 00:32:24,950 740 00:32:24,950 --> 00:32:25,450 হ্যাঁ? 741 00:32:25,450 --> 00:32:26,400 >> শ্রোতা: আমি জুলিয়া আছি. 742 00:32:26,400 --> 00:32:26,980 >> ডেভিড জে MALAN: জুলিয়া, ডেভিড. 743 00:32:26,980 --> 00:32:27,545 সংখ্যা 20. 744 00:32:27,545 --> 00:32:28,507 745 00:32:28,507 --> 00:32:29,340 শ্রোতা: খৃস্টান. 746 00:32:29,340 --> 00:32:30,715 ডেভিড জে MALAN: খৃস্টান, ডেভিড. 747 00:32:30,715 --> 00:32:31,541 সংখ্যা 22. 748 00:32:31,541 --> 00:32:32,040 এবং? 749 00:32:32,040 --> 00:32:32,649 >> শ্রোতা: জেপি. 750 00:32:32,649 --> 00:32:33,440 ডেভিড জে MALAN: জেপি. 751 00:32:33,440 --> 00:32:34,880 সংখ্যা 29. 752 00:32:34,880 --> 00:32:37,080 তাই উহু উহ এগিয়ে যান এবং in-- পেতে. 753 00:32:37,080 --> 00:32:38,486 754 00:32:38,486 --> 00:32:38,985 ওহ উহ. 755 00:32:38,985 --> 00:32:39,650 756 00:32:39,650 --> 00:32:40,150 স্ট্যান্ডবাইতে রাখুন. 757 00:32:40,150 --> 00:32:41,360 758 00:32:41,360 --> 00:32:42,390 20. 759 00:32:42,390 --> 00:32:43,682 যে কেউ একটি চিহ্নিতকারী আছে? 760 00:32:43,682 --> 00:32:44,890 শ্রোতা: আমি একটি Sharpie পেয়েছেন. 761 00:32:44,890 --> 00:32:45,660 ডেভিড জে MALAN: আপনি একটি Sharpie পেয়েছেন? 762 00:32:45,660 --> 00:32:46,159 ঠিক আছে. 763 00:32:46,159 --> 00:32:47,577 764 00:32:47,577 --> 00:32:49,160 এবং যে কেউ এক টুকরা কাগজ আছে? 765 00:32:49,160 --> 00:32:51,562 766 00:32:51,562 --> 00:32:52,270 বক্তৃতা সংরক্ষণ করুন. 767 00:32:52,270 --> 00:32:53,810 768 00:32:53,810 --> 00:32:55,362 চলো. 769 00:32:55,362 --> 00:32:56,320 শ্রোতা: আমরা এটা পেয়েছেন. 770 00:32:56,320 --> 00:32:57,600 ডেভিড জে MALAN: আমরা পেয়েছি? 771 00:32:57,600 --> 00:32:58,577 সমস্ত অধিকার, আপনাকে ধন্যবাদ. 772 00:32:58,577 --> 00:33:01,380 773 00:33:01,380 --> 00:33:02,520 আমরা এখানে. 774 00:33:02,520 --> 00:33:03,582 এই আপনি থেকে লেগেছে? 775 00:33:03,582 --> 00:33:04,540 আপনি শুধু দিন সংরক্ষিত. 776 00:33:04,540 --> 00:33:05,670 777 00:33:05,670 --> 00:33:07,220 তাই 29. 778 00:33:07,220 --> 00:33:10,510 779 00:33:10,510 --> 00:33:11,110 ঠিক আছে. 780 00:33:11,110 --> 00:33:13,360 781 00:33:13,360 --> 00:33:14,890 আমি 29 misspelled, কিন্তু ঠিক আছে. 782 00:33:14,890 --> 00:33:15,720 এগিয়ে যান. 783 00:33:15,720 --> 00:33:18,114 সমস্ত অধিকার, আমি দেব আপনার কলম ফিরে প্রতিমুহূর্তে. 784 00:33:18,114 --> 00:33:19,280 তাই আমরা এখানে এইসব লোকেরা আছে. 785 00:33:19,280 --> 00:33:20,330 এর অন্য এক আছে. 786 00:33:20,330 --> 00:33:23,750 গেব, প্লে করতে চান না এখানে প্রথম উপাদান? 787 00:33:23,750 --> 00:33:25,705 আমরা নির্দেশ আপনার প্রয়োজন হবে এই সূক্ষ্ম ভাবেন এ. 788 00:33:25,705 --> 00:33:26,930 789 00:33:26,930 --> 00:33:31,030 তাই 9, 17, 20, 22, সাজানোর 29, এবং তারপর 34. 790 00:33:31,030 --> 00:33:32,160 791 00:33:32,160 --> 00:33:33,325 আমরা কেউ হারান? 792 00:33:33,325 --> 00:33:33,950 আমি একটি 34 আছে. 793 00:33:33,950 --> 00:33:36,730 যেখানে চায় did-- ঠিক আছে, 34 হতে? 794 00:33:36,730 --> 00:33:37,605 ঠিক আছে, 34, উপর আসা. 795 00:33:37,605 --> 00:33:39,280 796 00:33:39,280 --> 00:33:41,220 সমস্ত অধিকার, এই হবে শীর্ষবিন্দু ভাল মূল্য. 797 00:33:41,220 --> 00:33:41,550 আপনার নাম কি? 798 00:33:41,550 --> 00:33:42,040 >> শ্রোতা: পিটার. 799 00:33:42,040 --> 00:33:43,456 >> ডেভিড জে MALAN: পিটার, উপর আসা. 800 00:33:43,456 --> 00:33:46,810 সমস্ত অধিকার, তাই এখানে একটি নোড আভা. 801 00:33:46,810 --> 00:33:49,060 আপনি যদি না প্রতিটি প্রতিনিধিত্ব করে এই আয়তক্ষেত্র এক. 802 00:33:49,060 --> 00:33:51,930 এবং গেব, সামান্য বিজোড় আউট মানুষ, প্রথম প্রতিনিধিত্ব করে. 803 00:33:51,930 --> 00:33:54,850 তাই তার পয়েন্টার একটু ছোট হয় বাকিদের তুলনায় পর্দায়. 804 00:33:54,850 --> 00:33:58,120 এবং এই ক্ষেত্রে, আপনার প্রতিটি বাকি হাত, নিচে নির্দেশ হয় যাচ্ছে 805 00:33:58,120 --> 00:34:01,085 যার ফলে, তাই নাল প্রতিনিধিত্বমূলক একটি পয়েন্টার অনুপস্থিতি, 806 00:34:01,085 --> 00:34:03,210 অথবা এটি প্রতি নির্দেশ করা যাচ্ছে আপনি পাশে একটি নোড. 807 00:34:03,210 --> 00:34:05,440 >> তাই এখন আপনি ডান অলঙ্কৃত করা যদি ছবি মত নিজের 808 00:34:05,440 --> 00:34:07,585 এখানে, এগিয়ে যান এবং বিন্দু গেব সঙ্গে, প্রতিটি অন্যান্য সময়ে 809 00:34:07,585 --> 00:34:11,030 এ বিশেষ ইশারা মধ্যে 9 নম্বর তালিকায় প্রতিনিধিত্ব করতে. 810 00:34:11,030 --> 00:34:14,050 ঠিক আছে, সংখ্যা 34, আপনার বাম হাত শুধু মেঝে নির্দেশ করা উচিত. 811 00:34:14,050 --> 00:34:15,750 >> ঠিক আছে, তাই এই লিঙ্ক তালিকা. 812 00:34:15,750 --> 00:34:17,580 তাই এই প্রশ্ন দৃশ্যকল্প. 813 00:34:17,580 --> 00:34:20,210 এবং প্রকৃতপক্ষে, এই প্রতিনিধি সমস্যার একটি বর্গ 814 00:34:20,210 --> 00:34:21,929 আপনি যে কোড সমাধানের চেষ্টা হতে পারে. 815 00:34:21,929 --> 00:34:25,020 আপনি শেষ পর্যন্ত সন্নিবেশ করতে চান তালিকায় একটি নতুন উপাদান. 816 00:34:25,020 --> 00:34:27,494 এই ক্ষেত্রে, আমরা চলুন 55 নম্বর ঢোকাতে চেষ্টা করুন. 817 00:34:27,494 --> 00:34:28,500 818 00:34:28,500 --> 00:34:30,860 কিন্তু হতে যাচ্ছে বিভিন্ন ক্ষেত্রে বিবেচনা. 819 00:34:30,860 --> 00:34:34,409 এবং প্রকৃতপক্ষে, এই এক হতে যাচ্ছে বড় ছবি এখানে takeaways এর,, হয় 820 00:34:34,409 --> 00:34:35,659 বিভিন্ন ক্ষেত্রে কি হয়. 821 00:34:35,659 --> 00:34:39,120 শর্ত যদি বা বিভিন্ন কি আপনার প্রোগ্রাম থাকতে পারে শাখা? 822 00:34:39,120 --> 00:34:42,024 >> ওয়েল, সংখ্যা আপনি করার চেষ্টা করছেন আমরা 55 হতে এখন জানি, যা সন্নিবেশ,, 823 00:34:42,024 --> 00:34:44,650 কিন্তু আপনি কি জানেন না আগাম, আমি অনুমান 824 00:34:44,650 --> 00:34:47,840 অন্তত তিনটি মধ্যে পড়ে সম্ভব পরিস্থিতিতে. 825 00:34:47,840 --> 00:34:49,717 যেখানে একটি নতুন উপাদান হতে পারে? 826 00:34:49,717 --> 00:34:51,050 শ্রোতা: এবং শেষ বা মধ্যম. 827 00:34:51,050 --> 00:34:54,150 ডেভিড জে MALAN: শেষে, এ মাঝখানে, বা শুরুতে. 828 00:34:54,150 --> 00:34:56,650 তাই আমি অন্তত আছে দাবি তিনটি সমস্যা আমরা সমাধান করতে হবে. 829 00:34:56,650 --> 00:34:58,691 এর সম্ভবত কি চয়ন করা যাক তর্কসাপেক্ষ সহজ 830 00:34:58,691 --> 00:35:01,090 এক, যেখানে নতুন উপাদান শুরুতে জন্যে. 831 00:35:01,090 --> 00:35:04,040 তাই আমি বেশ কোড আছে যাচ্ছি আমি ঠিক লিখেছেন, যা অনুসন্ধান. 832 00:35:04,040 --> 00:35:07,670 এবং আমি ptr আছে যাচ্ছি, যা আমি আমার আঙুল দিয়ে এখানে প্রতিনিধিত্ব করব 833 00:35:07,670 --> 00:35:08,370 স্বাভাবিক হিসাবে. 834 00:35:08,370 --> 00:35:12,430 >> এবং, কি মান মনে রাখা আমরা ptr আরম্ভ না? 835 00:35:12,430 --> 00:35:15,300 তাই আমরা প্রথমে নাল এটি সক্রিয়. 836 00:35:15,300 --> 00:35:16,410 837 00:35:16,410 --> 00:35:19,770 কিন্তু তারপর আমরা আমরা একবার কি কি আমাদের অনুসন্ধান ফাংশন ভিতরে ছিল? 838 00:35:19,770 --> 00:35:20,940 839 00:35:20,940 --> 00:35:24,870 আমরা প্রথম এটা সেট সমান এই কাজ মানে না. 840 00:35:24,870 --> 00:35:25,890 841 00:35:25,890 --> 00:35:30,570 আমি প্রথম সমান ptr সেট করেন তাহলে, কি আমার হাত সত্যিই নির্দেশ করা উচিত? 842 00:35:30,570 --> 00:35:31,070 রাইট. 843 00:35:31,070 --> 00:35:33,290 গেব এবং আমি যাচ্ছি তাই এখানে সমান মান হতে, 844 00:35:33,290 --> 00:35:34,760 আমরা সংখ্যা 9 এ উভয় পয়েন্ট প্রয়োজন. 845 00:35:34,760 --> 00:35:36,420 >> তাই এই আমাদের গল্প শুরু. 846 00:35:36,420 --> 00:35:38,700 এবং এখন এই, শুধু সহজবোধ্য যদিও সিনট্যাক্স নতুন. 847 00:35:38,700 --> 00:35:40,580 ধারণার দিক থেকে এই মাত্র রৈখিক অনুসন্ধান. 848 00:35:40,580 --> 00:35:42,750 9 সমান 55 হয়? 849 00:35:42,750 --> 00:35:45,559 অথবা এর পরিবর্তে, এর 9 কম বলে. 850 00:35:45,559 --> 00:35:47,600 আমি চেষ্টা করছি কারণ 55 করা চিন্তা করা যেখানে. 851 00:35:47,600 --> 00:35:51,270 9 এর চেয়ে কম, কম 17 কম 20 কম 22 কম 29, 852 00:35:51,270 --> 00:35:52,510 কম 34, কোন. 853 00:35:52,510 --> 00:35:55,080 তাই এখন আমরা কেস মধ্যে আছেন অন্তত তিনটি এক. 854 00:35:55,080 --> 00:35:59,910 >> আমি এখানে 55 সন্নিবেশ করতে চান, কি কোড প্রয়োজন লাইন মৃত্যুদন্ড কার্যকর করতে হবে? 855 00:35:59,910 --> 00:36:01,890 কিভাবে এই ছবি আছে মানুষের পরিবর্তন করতে হবে? 856 00:36:01,890 --> 00:36:03,181 আমি আমার বাম হাত দিয়ে কি করবেন? 857 00:36:03,181 --> 00:36:04,530 858 00:36:04,530 --> 00:36:07,360 এই, প্রথমে নাল হতে হবে আমি তালিকা শেষে করছি কারণ. 859 00:36:07,360 --> 00:36:09,318 এবং কি হওয়া উচিত এখানে পিটার সঙ্গে, এটি ছিল? 860 00:36:09,318 --> 00:36:10,520 861 00:36:10,520 --> 00:36:12,430 তিনি সম্ভবত আমাকে নির্দেশ করছে. 862 00:36:12,430 --> 00:36:15,580 তাই আমি অন্তত দুটি লাইন আছে দাবি আজ থেকে নমুনা কোড কোড 863 00:36:15,580 --> 00:36:18,570 যে এই বাস্তবায়ন করতে যাচ্ছে লেঙ্গুড় এ 55 যোগ দৃশ্যকল্প. 864 00:36:18,570 --> 00:36:20,950 এবং আমি কেউ হপ হতে পারে আপ এবং মাত্র 55 প্রতিনিধিত্ব করে? 865 00:36:20,950 --> 00:36:22,200 ঠিক আছে, আপনি নতুন 55 হয়. 866 00:36:22,200 --> 00:36:23,580 867 00:36:23,580 --> 00:36:27,054 >> তাই এখন কি পরবর্তী যদি দৃশ্যকল্প, বরাবর আসে 868 00:36:27,054 --> 00:36:29,720 এবং আমরা সন্নিবেশ করতে চান শুরু এই তালিকা মাথা? 869 00:36:29,720 --> 00:36:31,100 এবং আপনার নাম, সংখ্যা 55 কি? 870 00:36:31,100 --> 00:36:31,420 >> শ্রোতা: জ্যাক. 871 00:36:31,420 --> 00:36:32,295 >> ডেভিড জে MALAN: জ্যাক? 872 00:36:32,295 --> 00:36:33,585 ঠিক আছে, আপনি দেখা করতে চমৎকার. 873 00:36:33,585 --> 00:36:34,210 জাহাজের উপরে স্বাগতম. 874 00:36:34,210 --> 00:36:36,640 তাই এখন আমরা চলুন , বলে, 5 নম্বর সন্নিবেশ করুন. 875 00:36:36,640 --> 00:36:39,840 এখানে দ্বিতীয় ক্ষেত্রে তিন আমরা আগে নিয়ে এসেছেন. 876 00:36:39,840 --> 00:36:43,050 তাই 5 শুরুতে জন্যে যদি, আমরা যে খুঁজে বের করে দেখুন. 877 00:36:43,050 --> 00:36:46,310 আমি আমার ptr আরম্ভ আবার সংখ্যা 9 পয়েন্টার. 878 00:36:46,310 --> 00:36:49,140 এবং আমি 5 কম 9, ওহ, বুঝতে পেরেছি. 879 00:36:49,140 --> 00:36:50,880 তাই আমাদের জন্য এই ছবি ঠিক. 880 00:36:50,880 --> 00:36:54,820 যার হাত, গেব বা ডেভিড এর or-- সংখ্যা 9 এর নাম কি? 881 00:36:54,820 --> 00:36:55,740 >> শ্রোতা: জেন. 882 00:36:55,740 --> 00:36:58,406 >> ডেভিড জে MALAN: জেন এর hands-- আমাদের হাতে যা পরিবর্তন করতে হবে? 883 00:36:58,406 --> 00:36:58,905 884 00:36:58,905 --> 00:37:00,970 ঠিক আছে, তাই গেব এখন কি পয়েন্ট? 885 00:37:00,970 --> 00:37:01,640 এ সম্পর্কে. 886 00:37:01,640 --> 00:37:02,750 আমি নতুন নোড থাকি. 887 00:37:02,750 --> 00:37:04,870 তাই আমি সরানো শুধু ধরনের হবে এখানে দৃশ্যত এটি দেখতে. 888 00:37:04,870 --> 00:37:06,435 এবং ইতিমধ্যে আমি কি যে নির্দেশ না? 889 00:37:06,435 --> 00:37:07,910 890 00:37:07,910 --> 00:37:09,020 এখনও যেখানে আমি প্রতি নির্দেশ করছি. 891 00:37:09,020 --> 00:37:10,000 সুতরাং যে এটি. 892 00:37:10,000 --> 00:37:13,717 কোড সংশোধন করা হয়েছে তাই শুধু সত্যিই এক লাইন এই বিশেষ সমস্যা, মনে হবে. 893 00:37:13,717 --> 00:37:14,800 সমস্ত অধিকার, তাই যে ভালো. 894 00:37:14,800 --> 00:37:17,580 এবং কেউ 5 জন্য একটি স্থানধারক হতে পারে? 895 00:37:17,580 --> 00:37:18,080 উপর আসা. 896 00:37:18,080 --> 00:37:20,270 897 00:37:20,270 --> 00:37:21,320 আমরা আপনাকে পরবর্তী সময় পাবেন. 898 00:37:21,320 --> 00:37:24,280 >> সমস্ত অধিকার, তাই now-- এবং একটি সরাইয়া, নাম হিসাবে 899 00:37:24,280 --> 00:37:28,510 আমি এর স্পষ্ট উল্লেখ তৈরীর করছি না এখন, Pred পয়েন্টার, পয়েন্টার পূর্বসুরী 900 00:37:28,510 --> 00:37:31,260 এবং নতুন পয়েন্টার, যে শুধু নাম দেওয়া 901 00:37:31,260 --> 00:37:35,280 পয়েন্টার নমুনা কোড বা ধরনের প্রায় প্রতি নির্দেশ করে যে আমার হাতে. 902 00:37:35,280 --> 00:37:36,060 আপনার নাম কি? 903 00:37:36,060 --> 00:37:36,700 >> শ্রোতা: ক্রিস্টিন. 904 00:37:36,700 --> 00:37:37,100 >> ডেভিড জে MALAN: ক্রিস্টিন. 905 00:37:37,100 --> 00:37:38,090 জাহাজের উপরে স্বাগতম. 906 00:37:38,090 --> 00:37:42,180 ঠিক আছে, তাই এর এখন বিবেচনা করা যাক একটি সামান্য আরো বিরক্তিকর দৃশ্যকল্প, 907 00:37:42,180 --> 00:37:46,350 আমি সন্নিবেশ করতে চান যদ্দ্বারা এই মধ্যে 26 ভালো কিছু. 908 00:37:46,350 --> 00:37:47,090 20? 909 00:37:47,090 --> 00:37:47,590 কি? 910 00:37:47,590 --> 00:37:50,510 এই আমরা এই কলম আছে ভাল জিনিস are--. 911 00:37:50,510 --> 00:37:51,955 সমস্ত অধিকার, 20. 912 00:37:51,955 --> 00:37:53,640 913 00:37:53,640 --> 00:37:57,570 কেউ অন্য টুকরা পেতে পারে কাগজ ঠিক সব ঠিক ক্ষেত্রেই এ, প্রস্তুত. 914 00:37:57,570 --> 00:37:58,370 ওহ, আকর্ষণীয়. 915 00:37:58,370 --> 00:37:59,760 916 00:37:59,760 --> 00:38:02,390 আচ্ছা এই একটি উদাহরণ একটি বক্তৃতা বাগ. 917 00:38:02,390 --> 00:38:03,894 ঠিক আছে, তাই আপনার নাম আবার কি? 918 00:38:03,894 --> 00:38:04,560 শ্রোতা: জুলিয়া. 919 00:38:04,560 --> 00:38:07,559 ডেভিড জে MALAN: জুলিয়া, আপনি পপ করতে পারেন আউট এবং সাজা আপনি না ছিল? 920 00:38:07,559 --> 00:38:09,040 ঠিক আছে, এই কি না. 921 00:38:09,040 --> 00:38:09,680 আপনাকে ধন্যবাদ. 922 00:38:09,680 --> 00:38:12,180 তাই আমরা সন্নিবেশ চাই এই লিঙ্ক তালিকায় জুলিয়া. 923 00:38:12,180 --> 00:38:13,780 তিনি সংখ্যা 20. 924 00:38:13,780 --> 00:38:15,530 এবং অবশ্যই সে এ অন্তর্গত যাচ্ছে 925 00:38:15,530 --> 00:38:17,521 begin-- এখনো কিছু নির্দেশ করে না. 926 00:38:17,521 --> 00:38:20,020 সুতরাং আপনার হাত ধরনের হতে পারে নিচে নাল বা কিছু আবর্জনা মান. 927 00:38:20,020 --> 00:38:21,210 এর দ্রুত গল্প বলা যাক. 928 00:38:21,210 --> 00:38:22,980 আমি 5 নম্বর এই সময় নির্দেশ করে না. 929 00:38:22,980 --> 00:38:23,880 তারপর আমি 9 বার করো. 930 00:38:23,880 --> 00:38:25,130 তারপর আমি 17 বার করো. 931 00:38:25,130 --> 00:38:26,247 তারপর আমি 22 বার করো. 932 00:38:26,247 --> 00:38:27,650 933 00:38:27,650 --> 00:38:32,485 এবং আমি খুশি, জুলিয়া বুঝতে 22 আগে যেতে প্রয়োজন. 934 00:38:32,485 --> 00:38:33,580 935 00:38:33,580 --> 00:38:34,660 তাই কি কি করা প্রয়োজন? 936 00:38:34,660 --> 00:38:35,786 937 00:38:35,786 --> 00:38:36,910 যার হাত পরিবর্তন করতে হবে? 938 00:38:36,910 --> 00:38:38,360 জুলিয়া এর, খনি, or-- আপনার নাম আবার কি? 939 00:38:38,360 --> 00:38:39,230 >> শ্রোতা: খৃস্টান. 940 00:38:39,230 --> 00:38:40,060 >> ডেভিড জে MALAN: খৃস্টান বা? 941 00:38:40,060 --> 00:38:40,560 >> শ্রোতা: অ্যান্ডি. 942 00:38:40,560 --> 00:38:40,905 >> ডেভিড জে MALAN: অ্যান্ডি. 943 00:38:40,905 --> 00:38:41,654 খৃস্টান বা অ্যান্ডি? 944 00:38:41,654 --> 00:38:44,280 945 00:38:44,280 --> 00:38:45,690 অ্যান্ডি এ নির্দেশ প্রয়োজন? 946 00:38:45,690 --> 00:38:46,780 947 00:38:46,780 --> 00:38:47,341 জুলিয়া. 948 00:38:47,341 --> 00:38:47,840 ঠিক আছে. 949 00:38:47,840 --> 00:38:48,960 তাই অ্যান্ডি, আপনি জুলিয়া এ নির্দেশ করতে চান? 950 00:38:48,960 --> 00:38:50,120 কিন্তু একটি মিনিট অপেক্ষা করুন. 951 00:38:50,120 --> 00:38:53,260 এ পর্যন্ত গল্প, আমি এক ধরণের 952 00:38:53,260 --> 00:38:56,800 অর্থে চার্জ, যে পয়েন্টার যে জিনিস 953 00:38:56,800 --> 00:38:57,850 তালিকা মাধ্যমে পরিবর্তনশীল. 954 00:38:57,850 --> 00:39:00,800 আমরা অ্যান্ডি জন্য একটি নাম আছে, কিন্তু হতে পারে অ্যান্ডি নামক কোন পরিবর্তনশীল আছে. 955 00:39:00,800 --> 00:39:04,320 আমরা শুধুমাত্র অন্যান্য পরিবর্তনশীল প্রথম, গেব দ্বারা প্রতিনিধিত্ব করে না. 956 00:39:04,320 --> 00:39:07,690 >> তাই এই কেন এইভাবে আসলে পর্যন্ত আমরা এই প্রয়োজন হয় না করেছি. 957 00:39:07,690 --> 00:39:10,846 কিন্তু এখন পর্দায় আছে Pred পয়েন্টার আবার উল্লেখ. 958 00:39:10,846 --> 00:39:11,970 তাই আমাকে আরো স্পষ্ট হবে. 959 00:39:11,970 --> 00:39:14,820 এই পয়েন্টার, আমি ভাল ছিল একটু বেশি বুদ্ধিমান পেতে 960 00:39:14,820 --> 00:39:15,950 আমার পুনরাবৃত্তির সম্পর্কে. 961 00:39:15,950 --> 00:39:19,580 আপনি আমার এখানে দিয়ে যাচ্ছে কিছু মনে না করেন আবার, এখানে প্রতি নির্দেশ, এখানে প্রতি নির্দেশ. 962 00:39:19,580 --> 00:39:22,500 কিন্তু আমার একটি Pred পয়েন্টার আছে, পূর্বসুরী পয়েন্টার, যে 963 00:39:22,500 --> 00:39:24,740 ধরনের নির্দেশ উপাদান আমি ছিল. 964 00:39:24,740 --> 00:39:27,330 তাই আমি এখানে যান, এখন আমার বাম হাত আপডেট. 965 00:39:27,330 --> 00:39:29,370 আমি এখানে আমার বাম হাত আপডেট যান. 966 00:39:29,370 --> 00:39:33,090 এবং এখন আমি একটি পয়েন্টার না শুধুমাত্র আছে জুলিয়া পরে যায় যে উপাদান, 967 00:39:33,090 --> 00:39:36,300 আমি এখনও একটি পয়েন্টার আছে অ্যান্ডি, আগে উপাদান. 968 00:39:36,300 --> 00:39:39,430 তাই আপনি যদি, মূলত এক্সেস আছে breadcrumbs মধ্যে, যদি আপনি হবে, 969 00:39:39,430 --> 00:39:41,500 প্রয়োজনীয় পয়েন্টার সব. 970 00:39:41,500 --> 00:39:43,710 >> আমি নির্দেশ করছি, তাই যদি অ্যান্ডি এবং আমি ইশারা করছি 971 00:39:43,710 --> 00:39:47,105 যার হাত খৃস্টান, এ এখন অন্যত্র নির্দিষ্ট করা উচিত? 972 00:39:47,105 --> 00:39:48,770 973 00:39:48,770 --> 00:39:51,960 অ্যান্ডি তাই এখন জুলিয়া এ নির্দেশ করতে পারেন. 974 00:39:51,960 --> 00:39:54,460 জুলিয়া এখন খৃস্টান এ নির্দেশ করতে পারেন. 975 00:39:54,460 --> 00:39:56,950 তিনি কপি করতে পারেন, কারণ আমার ডান হাত এর পয়েন্টার. 976 00:39:56,950 --> 00:40:00,044 এবং যে কার্যকরভাবে আপনি রাখে এখানে ফিরে এই জায়গায়. 977 00:40:00,044 --> 00:40:02,460 তাই সংক্ষিপ্ত, এমনকি এই যদিও এর চিরতরে ধরনের আমাদের গ্রহণ করা হয় 978 00:40:02,460 --> 00:40:04,510 আসলে আপডেট লিঙ্ক তালিকা, বুঝতে পারছি 979 00:40:04,510 --> 00:40:06,580 অপারেশন যে অপেক্ষাকৃত সহজ. 980 00:40:06,580 --> 00:40:10,030 এটা, দুই, এক তিন শেষ পর্যন্ত লাইনের কোড. 981 00:40:10,030 --> 00:40:12,780 কিন্তু যারা প্রায় আবৃত সম্ভবতঃ কোড লাইন 982 00:40:12,780 --> 00:40:16,350 যুক্তি একটি বিট যে কার্যকরভাবে প্রশ্ন, আমরা কোথায় জিজ্ঞেস করে? 983 00:40:16,350 --> 00:40:18,970 আমরা প্রারম্ভে হয়, মধ্যম, বা শেষ? 984 00:40:18,970 --> 00:40:21,890 >> এখন, অবশ্যই অন্য কিছু আছে আমরা বাস্তবায়ন হতে পারে অপারেশন. 985 00:40:21,890 --> 00:40:24,880 এবং এখানে এই ছবি শুধু বর্ণা আমরা কি শুধু মানুষের সাথে হয়নি. 986 00:40:24,880 --> 00:40:26,080 কি অপসারণের সম্পর্কে? 987 00:40:26,080 --> 00:40:30,650 আমি করতে চান, উদাহরণস্বরূপ, সংখ্যা অপসারণ 34 বা 55, 988 00:40:30,650 --> 00:40:34,680 আমি, কোড একই ধরনের হতে পারে কিন্তু আমি এক বা দুই ধাপ প্রয়োজন যাচ্ছি. 989 00:40:34,680 --> 00:40:36,110 নতুন কি কারণ? 990 00:40:36,110 --> 00:40:40,460 আমি শেষে কেউ অপসারণ, সংখ্যা মত 55 এবং তারপর 34, 991 00:40:40,460 --> 00:40:42,995 কি আমি যে কি পরিবর্তন হয়েছে? 992 00:40:42,995 --> 00:40:44,870 আমি evict-- না আছে আপনার নাম আবার কি? 993 00:40:44,870 --> 00:40:45,380 >> শ্রোতা: জ্যাক. 994 00:40:45,380 --> 00:40:46,255 >> ডেভিড জে MALAN: জ্যাক. 995 00:40:46,255 --> 00:40:49,770 আমি evict-- বিনামূল্যে জ্যাক না শুধুমাত্র আছে তাই আক্ষরিক অন্তত বিনামূল্যে কল জ্যাক, বা 996 00:40:49,770 --> 00:40:53,530 সেখানে পয়েন্টার খুব, কিন্তু এখন কি পিটার সঙ্গে পরিবর্তন করার প্রয়োজন? 997 00:40:53,530 --> 00:40:55,510 তার হাত ভাল নিচে প্রতি নির্দেশ শুরু. 998 00:40:55,510 --> 00:40:59,300 যত তাড়াতাড়ি আমি বিনামূল্যে কল হিসাবে কারণ জ্যাক, পিটার এর এখনও জ্যাক নির্দেশ যদি 999 00:40:59,300 --> 00:41:02,530 এবং আমি তাই ঢোঁড়ন রাখা তালিকা এবং প্রবেশাধিকার এই পয়েন্টার, 1000 00:41:02,530 --> 00:41:05,650 যে যখন আমাদের পুরানো বন্ধু সেগমেন্টেশন এর আসলে ফেলা হতে পারে দোষ. 1001 00:41:05,650 --> 00:41:07,860 আমরা করেছি দেওয়া কারণ জ্যাক মেমরি ফিরে. 1002 00:41:07,860 --> 00:41:10,760 >> আপনি সেখানে থাকতে পারেন awkwardly শুধু একটা মুহূর্ত জন্য. 1003 00:41:10,760 --> 00:41:13,410 আমরা মাত্র কয়েক আছে চূড়ান্ত অপারেশন বিবেচনা. 1004 00:41:13,410 --> 00:41:15,600 তালিকা মাথা মুছে ফেলার পদ্ধতি, beginning-- এবং এই এক বা 1005 00:41:15,600 --> 00:41:16,349 একটু বিরক্তিকর. 1006 00:41:16,349 --> 00:41:19,640 আমরা জানি যে আছে, কারণ গেব ধরনের বিশেষ এই প্রোগ্রাম হয়. 1007 00:41:19,640 --> 00:41:21,440 কারণ প্রকৃতপক্ষে, তিনি তার নিজের পয়েন্টার আছে. 1008 00:41:21,440 --> 00:41:24,860 তিনি শুধু, এ তীক্ষ্ন হচ্ছে না এখানে প্রায় সবাই হয়. 1009 00:41:24,860 --> 00:41:28,112 >> তাই তালিকা মাথা যখন , যার হাত এখন পরিবর্তন প্রয়োজন মুছে ফেলা? 1010 00:41:28,112 --> 00:41:29,070 আপনার নাম আবার কি? 1011 00:41:29,070 --> 00:41:29,450 >> শ্রোতা: ক্রিস্টিন. 1012 00:41:29,450 --> 00:41:31,408 >> ডেভিড জে MALAN: আমি ভয়াবহ আছি নামের এ, দৃশ্যত. 1013 00:41:31,408 --> 00:41:34,011 তাই Christine এবং গেব, যার হাত পরিবর্তন করতে হবে 1014 00:41:34,011 --> 00:41:36,510 আমরা ক্রিস্টিন অপসারণ করার চেষ্টা করুন, ছবি থেকে 5 নম্বর? 1015 00:41:36,510 --> 00:41:37,550 1016 00:41:37,550 --> 00:41:38,820 ঠিক আছে, তাই এর গেব না দেওয়া. 1017 00:41:38,820 --> 00:41:40,950 গেব নির্দেশ করে যাচ্ছে, সম্ভবতঃ, সংখ্যা 9 এ. 1018 00:41:40,950 --> 00:41:42,230 1019 00:41:42,230 --> 00:41:44,642 কিন্তু পরের কি করা উচিত? 1020 00:41:44,642 --> 00:41:46,600 শ্রোতা: ক্রিস্টিন উচিত [শ্রবণাতীত] নাল হতে. 1021 00:41:46,600 --> 00:41:50,244 ডেভিড জে MALAN: ঠিক আছে, আমরা সম্ভবত উচিত make-- আমি কোথাও "নাল" শোনা. 1022 00:41:50,244 --> 00:41:51,410 শ্রোতা: শূন্য এবং তার বিনামূল্যে. 1023 00:41:51,410 --> 00:41:51,855 ডেভিড জে MALAN: কি শূন্য? 1024 00:41:51,855 --> 00:41:53,074 শ্রোতা: শূন্য এবং তার বিনামূল্যে. 1025 00:41:53,074 --> 00:41:54,490 ডেভিড জে MALAN: শূন্য এবং তার বিনামূল্যে. 1026 00:41:54,490 --> 00:41:55,422 তাই এই খুবই সহজ. 1027 00:41:55,422 --> 00:41:58,380 এবং এটি আপনি এখন কেমন আছেন যে নিখুঁত এর অন্তর্গত, সেখানে না দাঁড়িয়ে. 1028 00:41:58,380 --> 00:42:00,430 আপনি চলেছি কারণ তালিকা থেকে decoupled. 1029 00:42:00,430 --> 00:42:02,820 আপনি কার্যকরভাবে হয়েছে তালিকা থেকে এতিম. 1030 00:42:02,820 --> 00:42:07,770 এবং তাই আমরা ভাল এখন বিনামূল্যে কল ছিল ক্রিস্টিন যে মেমরি ফেরত দিতে. 1031 00:42:07,770 --> 00:42:10,240 অন্যথা প্রতিটি সময় আমরা তালিকা থেকে একটি নোড মুছে দিন 1032 00:42:10,240 --> 00:42:14,230 আমরা তালিকা তৈরি করা হতে পারে খাটো, কিন্তু আসলে কমে না 1033 00:42:14,230 --> 00:42:15,096 মেমরি আকার. 1034 00:42:15,096 --> 00:42:17,720 এবং তাই আমরা যোগ রাখা এবং , যোগ তালিকায় কিছু যোগ, 1035 00:42:17,720 --> 00:42:19,280 আমার কম্পিউটার ধীর পেতে পারে এবং ধীর এবং ধীর, 1036 00:42:19,280 --> 00:42:21,740 আমি চলমান আউট করছি, কারণ মেমরি, আমি আসলে না, এমনকি যদি 1037 00:42:21,740 --> 00:42:25,580 ক্রিস্টিন এর বাইট ব্যবহার করে মেমরি আর. 1038 00:42:25,580 --> 00:42:28,500 >> তাই শেষ পর্যন্ত অন্য রয়েছে অবশ্যই অপসারণ পরিস্থিতিতে, 1039 00:42:28,500 --> 00:42:30,640 মধ্যম, অপসারণ শেষে, হিসাবে আমরা দেখেছি. 1040 00:42:30,640 --> 00:42:32,348 কিন্তু আরো আকর্ষণীয় চ্যালেঞ্জ এখন 1041 00:42:32,348 --> 00:42:34,770 যাচ্ছে ঠিক বিবেচনা করা চলমান সময় কি. 1042 00:42:34,770 --> 00:42:36,640 তাই না শুধুমাত্র আপনি রাখতে পারেন আপনার কাগজের টুকরা, গেব, যদি, 1043 00:42:36,640 --> 00:42:38,640 আপনি দান মনে করবেন না সবাই একটি চাপ বল. 1044 00:42:38,640 --> 00:42:42,100 আমাদের লিঙ্ক তালিকায় তাই আপনাকে অনেক ধন্যবাদ এখানে স্বেচ্ছাসেবী, যদি আপনি করতে পারে. 1045 00:42:42,100 --> 00:42:45,320 >> [সাধুবাদ] 1046 00:42:45,320 --> 00:42:46,700 >> ডেভিড জে MALAN: ঠিক আছে. 1047 00:42:46,700 --> 00:42:51,110 বিশ্লেষণাত্মক তাই একটি দম্পতি তারপর প্রশ্ন, যদি আমি পারে. 1048 00:42:51,110 --> 00:42:59,670 আমরা আগে এই স্বরলিপি দেখা করেছি, বড় হে এবং ওমেগা, উপরের কোট 1049 00:42:59,670 --> 00:43:02,520 এবং নিম্ন সীমার কিছু অ্যালগরিদম চলমান সময়. 1050 00:43:02,520 --> 00:43:04,950 তাই আসুন শুধু বিবেচনা করা যাক প্রশ্নগুলির একটি দম্পতি. 1051 00:43:04,950 --> 00:43:07,090 >> এক, এবং আমরা এটা বলেন আগে, চলমান কি 1052 00:43:07,090 --> 00:43:10,647 একটি জন্য অনুসন্ধান সময় বড় হে শর্তাবলী তালিকা? 1053 00:43:10,647 --> 00:43:13,480 কি চলমান একটি ঊর্ধ্ব আবদ্ধ একটি লিঙ্ক তালিকা অনুসন্ধান সময় 1054 00:43:13,480 --> 00:43:16,340 এখানে আমাদের স্বেচ্ছাসেবকদের দ্বারা হিসাবে প্রয়োগ? 1055 00:43:16,340 --> 00:43:17,820 এটা বড় হে n র, রৈখিক না. 1056 00:43:17,820 --> 00:43:20,630 , সবচেয়ে খারাপ ক্ষেত্রে, কারণ উপাদান, 55 মত, 1057 00:43:20,630 --> 00:43:23,830 আমরা যেখানে হতে পারে জন্য খুঁজছেন হতে পারে জ্যাক, শেষে সব উপায়. 1058 00:43:23,830 --> 00:43:28,250 এবং দুর্ভাগ্যবশত, একটি অ্যারের অসদৃশ আমরা এই সময় অভিনব পেতে পারে না. 1059 00:43:28,250 --> 00:43:31,820 আমাদের মানুষের সব ছিল, যদিও ছোট উপাদান, 5 থেকে সাজানো, 1060 00:43:31,820 --> 00:43:35,900 বড় উপাদান পর্যন্ত সব পথ, 55, যে সাধারণত একটি ভাল জিনিস. 1061 00:43:35,900 --> 00:43:38,815 কিন্তু যে ধৃষ্টতা কি আর আমাদের করার অনুমতি দেয়? 1062 00:43:38,815 --> 00:43:39,775 1063 00:43:39,775 --> 00:43:40,650 শ্রোতা: [শ্রবণাতীত] 1064 00:43:40,650 --> 00:43:40,920 ডেভিড জে MALAN: আবার বলুন? 1065 00:43:40,920 --> 00:43:41,800 শ্রোতা: র্যান্ডম এক্সেস. 1066 00:43:41,800 --> 00:43:43,049 ডেভিড জে MALAN: র্যান্ডম এক্সেস. 1067 00:43:43,049 --> 00:43:46,330 এবং ঘুরে যে কোন আমরা করতে পারেন এর মানে হল আর, দুর্বল শূন্য, অনুভূতি ব্যবহার 1068 00:43:46,330 --> 00:43:49,365 বাইনারি ব্যবহার করে এবং স্পষ্টতা অনুসন্ধান ও বিভক্ত করা এবং জেতা. 1069 00:43:49,365 --> 00:43:51,240 কারণ যদিও আমরা মানুষের সম্ভবত পারা 1070 00:43:51,240 --> 00:43:54,610 অ্যান্ডি বা খৃস্টান ছিল দেখতে প্রায় তালিকা মাঝখানে, 1071 00:43:54,610 --> 00:43:57,670 আমরা কেবল একটি হিসাবে জানি যে তালিকা skimming দ্বারা কম্পিউটার 1072 00:43:57,670 --> 00:43:59,029 খুব শুরুতে থেকে. 1073 00:43:59,029 --> 00:44:00,570 তাই আমরা যে র্যান্ডম অ্যাক্সেস আপনি. 1074 00:44:00,570 --> 00:44:04,380 >> N এর এত বড় হে এখন উপরের হয় আমাদের অনুসন্ধান সময় আবদ্ধ. 1075 00:44:04,380 --> 00:44:07,920 কি আমাদের অনুসন্ধান ওমেগা সম্পর্কে? 1076 00:44:07,920 --> 00:44:11,535 নিম্ন পরিসর অনুসন্ধানের কি এই তালিকায় কিছু সংখ্যক জন্য? 1077 00:44:11,535 --> 00:44:12,410 শ্রোতা: [শ্রবণাতীত] 1078 00:44:12,410 --> 00:44:13,040 ডেভিড জে MALAN: আবার বলুন? 1079 00:44:13,040 --> 00:44:13,420 শ্রোতা: এক. 1080 00:44:13,420 --> 00:44:13,800 ডেভিড জে MALAN: এক. 1081 00:44:13,800 --> 00:44:14,760 তাই সময় ধ্রুবক. 1082 00:44:14,760 --> 00:44:17,020 সেরা ক্ষেত্রে, Christine হয় প্রকৃতপক্ষে তালিকা প্রারম্ভে. 1083 00:44:17,020 --> 00:44:19,020 এবং আমরা খুঁজছি 5 নম্বর, তাই আমরা তার পাওয়া গেছে. 1084 00:44:19,020 --> 00:44:19,787 তাই কোন বড় চুক্তি. 1085 00:44:19,787 --> 00:44:22,370 কিন্তু সে সময়ে হবে না এর এই ক্ষেত্রে তালিকার শুরুতে. 1086 00:44:22,370 --> 00:44:23,745 ভালো কিছু সম্পর্কে কি মুছবেন? 1087 00:44:23,745 --> 00:44:24,717 1088 00:44:24,717 --> 00:44:26,300 আপনি একটি উপাদান মুছে ফেলতে কি চান? 1089 00:44:26,300 --> 00:44:29,200 কি সর্বোচ্চ সীমা এবং নিম্ন আবদ্ধ একটি লিঙ্ক থেকে কিছু মুছে ফেলার উপর 1090 00:44:29,200 --> 00:44:29,699 তালিকা? 1091 00:44:29,699 --> 00:44:35,195 1092 00:44:35,195 --> 00:44:36,070 শ্রোতা: [শ্রবণাতীত] 1093 00:44:36,070 --> 00:44:36,420 ডেভিড জে MALAN: আবার বলুন? 1094 00:44:36,420 --> 00:44:37,067 শ্রোতা: এন. 1095 00:44:37,067 --> 00:44:38,900 ডেভিড জে MALAN: n হল আবদ্ধ প্রকৃতপক্ষে উপরের. 1096 00:44:38,900 --> 00:44:41,700 সবচেয়ে খারাপ ক্ষেত্রে আমরা চেষ্টা করুন, কারণ আমরা শুধু ভালো, জ্যাক মুছে দিন. 1097 00:44:41,700 --> 00:44:43,050 তিনি শেষে সব উপায়. 1098 00:44:43,050 --> 00:44:45,419 সব সময় প্রবেশ করুন আমাদের লাগে, বা n ধাপ তাকে খুঁজে পেতে. 1099 00:44:45,419 --> 00:44:46,460 সুতরাং যে একটি ঊর্ধ্ব আবদ্ধ. 1100 00:44:46,460 --> 00:44:47,430 এটা নিশ্চিত, রৈখিক না. 1101 00:44:47,430 --> 00:44:50,970 এবং সেরা ক্ষেত্রে সময় চলমান, বা সেরা ক্ষেত্রে নিম্ন সীমার 1102 00:44:50,970 --> 00:44:51,975 ধ্রুব সময় হবে. 1103 00:44:51,975 --> 00:44:54,600 হয়তো আমরা মুছে ফেলতে চেষ্টা করুন, কারণ ক্রিস্টিন, এবং আমরা পেতে ভাগ্যবান 1104 00:44:54,600 --> 00:44:55,558 তিনি শুরুতে আছে. 1105 00:44:55,558 --> 00:44:56,350 এখন একটি মিনিট অপেক্ষা করুন. 1106 00:44:56,350 --> 00:44:59,370 গেব, শুরুতে ছিল এবং আমরা গেব আপডেট ছিল. 1107 00:44:59,370 --> 00:45:01,150 সুতরাং যে মাত্র এক ধাপ ছিল না. 1108 00:45:01,150 --> 00:45:04,210 সুতরাং এটি প্রকৃতপক্ষে ধ্রুবক সময়, সেরা ক্ষেত্রে, 1109 00:45:04,210 --> 00:45:06,345 ক্ষুদ্রতম উপাদান মুছে ফেলার জন্য? 1110 00:45:06,345 --> 00:45:07,360 1111 00:45:07,360 --> 00:45:10,960 এটি দুটি হতে পারে, যদিও এটা হয়, কোড তিনটি, অথবা এমনকি 100 লাইন, 1112 00:45:10,960 --> 00:45:14,000 এটি একই সংখ্যা যদি না কিছু লুপ লাইন,, 1113 00:45:14,000 --> 00:45:16,577 এবং আকার স্বাধীন তালিকার একেবারে. 1114 00:45:16,577 --> 00:45:18,660 উপাদান মুছে ফেলার পদ্ধতি তালিকার শুরুতে, 1115 00:45:18,660 --> 00:45:21,940 আমরা মোকাবেলা করতে হবে, এমনকি যদি গেব, এখনও সময় ধ্রুবক. 1116 00:45:21,940 --> 00:45:24,220 >> সুতরাং এই একটি মত মনে হয় পিছন দিকে বিশাল পদক্ষেপ. 1117 00:45:24,220 --> 00:45:27,000 এবং সময় কি একটি বর্জ্য , যদি এক সপ্তাহ এবং সপ্তাহে 1118 00:45:27,000 --> 00:45:30,250 শূন্য আমরা না শুধুমাত্র ছিল pseudocode হয় কোড কিন্তু প্রকৃত কোড 1119 00:45:30,250 --> 00:45:35,780 লগ যে কিছু বাস্তবায়ন বেস এন, অথবা লগ ইন করুন, বরং, n এর, বেস 2, 1120 00:45:35,780 --> 00:45:37,150 তার চলমান সময় পদ. 1121 00:45:37,150 --> 00:45:40,710 তাই নরক আমরা শুরু করতে চান কেন একটি লিঙ্ক তালিকা মত ব্যবহার করে? 1122 00:45:40,710 --> 00:45:41,517 হ্যাঁ. 1123 00:45:41,517 --> 00:45:44,022 >> AUDIENCE: তাই আপনি যোগ করতে পারেন অ্যারের উপাদান. 1124 00:45:44,022 --> 00:45:46,230 ডেভিড জে MALAN: তাই আপনি যা করতে পারেন অ্যারের উপাদান যোগ করুন. 1125 00:45:46,230 --> 00:45:47,550 এবং এই খুব বিষয়ভিত্তিক হয়. 1126 00:45:47,550 --> 00:45:49,740 এবং আমরা দেখতে চালিয়ে যাব এই, এই বাণিজ্য বন্ধ, অনেক 1127 00:45:49,740 --> 00:45:51,573 মত আমরা দেখা করেছি একটি একত্রীকরণ সাজানোর সঙ্গে ট্রেড বন্ধ. 1128 00:45:51,573 --> 00:45:54,606 আমরা সত্যিই গতি বাড়াতে পারে বরং, অনুসন্ধান বা বাছাই, 1129 00:45:54,606 --> 00:45:57,480 আমরা একটি বিট আরো স্থান ব্যয় এবং যদি একটি মেমরি অতিরিক্ত তাল আছে 1130 00:45:57,480 --> 00:45:58,760 বা একত্রীকরণ সাজানোর জন্য একটি অ্যারের. 1131 00:45:58,760 --> 00:46:01,270 কিন্তু আমরা আরো ব্যয় স্থান, কিন্তু আমরা সময় বাঁচাতে. 1132 00:46:01,270 --> 00:46:04,820 এই ক্ষেত্রে, আমরা সময় দেবার কিন্তু আমরা 1133 00:46:04,820 --> 00:46:08,170 নমনীয়তা অর্জন, গতিশীলতা যদি আপনি হবে, 1134 00:46:08,170 --> 00:46:10,280 যা তর্কসাপেক্ষ একটি ইতিবাচক বৈশিষ্ট্য. 1135 00:46:10,280 --> 00:46:11,520 >> আমরা স্থান খরচ করছেন. 1136 00:46:11,520 --> 00:46:13,710 কি অর্থে একটি লিঙ্ক করা আরো ব্যয়বহুল তালিকা 1137 00:46:13,710 --> 00:46:15,700 একটি অ্যারের তুলনায় স্থান পদ? 1138 00:46:15,700 --> 00:46:18,379 1139 00:46:18,379 --> 00:46:19,920 যেখানে অতিরিক্ত স্থান থেকে আসছে? 1140 00:46:19,920 --> 00:46:20,460 হ্যাঁ? 1141 00:46:20,460 --> 00:46:21,800 >> শ্রোতা: [শ্রবণাতীত] পয়েন্টার. 1142 00:46:21,800 --> 00:46:23,310 >> ডেভিড জে MALAN: হ্যাঁ, আমরা এছাড়াও পয়েন্টার আছে. 1143 00:46:23,310 --> 00:46:25,560 তাই এই minorly বিরক্তিকর যে আর am 1144 00:46:25,560 --> 00:46:27,780 আমি কোন int সংরক্ষণ কোন int প্রতিনিধিত্ব করতে. 1145 00:46:27,780 --> 00:46:30,990 আমি কোন int এবং একটি সংরক্ষণ করছি এছাড়াও যা 32 বিট পয়েন্টার,. 1146 00:46:30,990 --> 00:46:33,470 তাই আমি আক্ষরিক দ্বিগুনের করছি স্থান পরিমাণ জড়িত. 1147 00:46:33,470 --> 00:46:36,040 সুতরাং যে একটি ট্রেড বন্ধ, কিন্তু যে কোন int ক্ষেত্রে এর. 1148 00:46:36,040 --> 00:46:39,580 , আপনি কোন int সংরক্ষণ করছি না যে ধরুন কিন্তু এই আয়তক্ষেত্র প্রতিটি অনুমান 1149 00:46:39,580 --> 00:46:43,290 বা এই মানুষের প্রতিটি প্রতিনিধিত্বমূলক ছিল একটি শব্দ, একটি ইংরেজি শব্দ যে 1150 00:46:43,290 --> 00:46:46,430 পাঁচটি অক্ষর, 10 হতে পারে অক্ষর, এমনকি আরো. 1151 00:46:46,430 --> 00:46:49,940 তারপর শুধু আরো 32 বিট যোগ একটি বড় চুক্তি কম হতে পারে. 1152 00:46:49,940 --> 00:46:52,160 >> কি ছাত্র প্রতিটি যদি বিক্ষোভের মধ্যে 1153 00:46:52,160 --> 00:46:55,107 ছিল আক্ষরিক ছাত্র structs যে হয়তো নাম এবং ঘর এবং আছে 1154 00:46:55,107 --> 00:46:57,065 ফোন নম্বর এবং টুইটার পরিচালনা এবং ভালো. 1155 00:46:57,065 --> 00:46:59,564 তাই সব ক্ষেত্র আমরা শুরু অন্যান্য দিন সম্পর্কে কথা বলা, 1156 00:46:59,564 --> 00:47:02,410 হিসাবে একটি বড় চুক্তি অনেক কম আমাদের নোড পেতে আরো আকর্ষণীয় 1157 00:47:02,410 --> 00:47:05,972 এবং বড়, অঁ্যা, একটি অতিরিক্ত ব্যয় পয়েন্টার ঠিক তাদের একসঙ্গে লিঙ্ক. 1158 00:47:05,972 --> 00:47:07,180 কিন্তু প্রকৃতপক্ষে, এটি একটি ট্রেড বন্ধ আছে. 1159 00:47:07,180 --> 00:47:09,560 এবং প্রকৃতপক্ষে, কোড আরো জটিল, হিসাবে আপনি পাবেন 1160 00:47:09,560 --> 00:47:11,770 এর মাধ্যমে skimming করে দেখতে যে বিশেষ উদাহরণ. 1161 00:47:11,770 --> 00:47:14,302 কিন্তু কি ছিল এখানে কিছু পবিত্র ঈপ্সিত বস্তু. 1162 00:47:14,302 --> 00:47:17,010 আমরা একটি পদক্ষেপ গ্রহণ করা না হলে কি পিছন দিকে কিন্তু একটি বিশাল পদক্ষেপ এগিয়ে 1163 00:47:17,010 --> 00:47:19,180 এবং একটি তথ্য বাস্তবায়ন গঠন যার মাধ্যমে আমরা 1164 00:47:19,180 --> 00:47:22,870 জ্যাক বা মত উপাদান খুঁজে পেতে পারেন ক্রিস্টিন বা অন্য কোন উপাদান 1165 00:47:22,870 --> 00:47:25,870 সত্য ধ্রুব সময় এই অ্যারের মধ্যে? 1166 00:47:25,870 --> 00:47:26,920 অনুসন্ধান ধ্রুবক. 1167 00:47:26,920 --> 00:47:28,320 মুছে দিন ধ্রুবক. 1168 00:47:28,320 --> 00:47:29,570 সন্নিবেশ ধ্রুবক. 1169 00:47:29,570 --> 00:47:32,260 এই অপারেশন সমস্ত ধ্রুবক হয়. 1170 00:47:32,260 --> 00:47:33,750 এটা আমাদের পবিত্র ঈপ্সিত বস্তু হবে. 1171 00:47:33,750 --> 00:47:36,690 এবং যে যেখানে আমরা পরবর্তী সময় নিতে হবে. 1172 00:47:36,690 --> 00:47:38,600 তারপর আপনি দেখুন. 1173 00:47:38,600 --> 00:47:39,371