1 00:00:00,000 --> 00:00:02,730 [Powered by Google Translate] [অনুচ্ছেদ 6: কম আরামদায়ক] 2 00:00:02,730 --> 00:00:05,040 [Nate Hardison] [হার্ভার্ড বিশ্ববিদ্যালয়] 3 00:00:05,040 --> 00:00:07,320 [এটি CS50.] [CS50.TV] 4 00:00:07,320 --> 00:00:11,840 ঠিক আছে. স্বাগতম অধ্যায় 6. 5 00:00:11,840 --> 00:00:14,690 এই সপ্তাহে, আমরা বিভাগে চলুন ডেটা স্ট্রাকচার সম্পর্কে কথা করা, 6 00:00:14,690 --> 00:00:19,780 প্রাথমিকভাবে কারণ এই সপ্তাহে এর সমস্যা spellr সেট 7 00:00:19,780 --> 00:00:24,410 আছে একটি পৃথক তথ্য অনুসন্ধান গঠন আভা. 8 00:00:24,410 --> 00:00:26,520 বিভিন্ন উপায়ে আপনি সমস্যা সেট দিয়ে যেতে পারেন একটি গুচ্ছ আছে, 9 00:00:26,520 --> 00:00:31,570 এবং আরো ডাটা স্ট্রাকচার আপনি জানেন, আরো দুর্দান্ত জিনিস আপনি কি করতে পারেন. 10 00:00:31,570 --> 00:00:34,990 >> সুতরাং আসুন শুরু করি. প্রথম আমরা stacks সম্বন্ধেই চলুন, 11 00:00:34,990 --> 00:00:37,530 স্ট্যাকের এবং কিউ ডাটা স্ট্রাকচার যে আমরা যে বিষয়ে কথা বলতে যাচ্ছেন. 12 00:00:37,530 --> 00:00:40,560 Stacks এবং queues সত্যিই সহায়ক যখন আমরা শুরু গ্রাফ বিষয়ে কথা বলছি, 13 00:00:40,560 --> 00:00:44,390 যা আমরা এখন অধিকার যাতে খুব যাচ্ছেন না. 14 00:00:44,390 --> 00:00:52,820 কিন্তু তারা সত্যিই বড় মৌলিক সি এস এর ডাটা স্ট্রাকচার এক বুঝতে ভাল. 15 00:00:52,820 --> 00:00:54,880 সমস্যা সেট নির্দেশের মধ্যে বিবরণ, 16 00:00:54,880 --> 00:00:59,260 যদি আপনি এটি থামা stacks সম্পর্কে, সমগোত্রীয় যাও হিসাবে আলোচনা 17 00:00:59,260 --> 00:01:05,239 ডাইনিং ট্রে এর গাদা যে স্বয়ংপরিবেশন ভোজনালয় আপনাকে ডাইনিং হল এ আছে 18 00:01:05,239 --> 00:01:09,680 যেখানে যখন ডাইনিং কর্মী আসে এবং ডাইনিং ট্রে রাখে পরে তারা তাদের পরিষ্কার করেছি, 19 00:01:09,680 --> 00:01:12,000 তারা অন্যান্য উপরে এক গাদা. 20 00:01:12,000 --> 00:01:15,050 এবং তারপর যখন বাচ্চাদের খাবার পেতে আসা, 21 00:01:15,050 --> 00:01:19,490 তারা বৈঠাচালনা ট্রে বন্ধ, প্রথম শীর্ষ এক, তাহলে নীচের এক, তারপরে যে নীচের এক. 22 00:01:19,490 --> 00:01:25,190 কার্যকরী, তাই, প্রথম ট্রে যে ডাইনিং কর্মীদের আরোপ করা হয় যে গত এক বন্ধ গৃহীত হয়. 23 00:01:25,190 --> 00:01:32,330 গত এক যে ডাইনিং কর্মীদের আরোপ করা হয় যে প্রথম এক ডিনার পরার জন্য নেয়া বন্ধ. 24 00:01:32,330 --> 00:01:38,100 সমস্যা সেট এর বৈশিষ্ট যা, আপনি যদি আপনার আগে থেকেই আছে না ডাউনলোড করতে পারেন, 25 00:01:38,100 --> 00:01:46,730 আমরা একটি স্ট্যাক তথ্য stucture এই ধরনের struct মডেলিং ব্যবহার সম্পর্কে কথা বলুন. 26 00:01:46,730 --> 00:01:51,070 >> তাই এখানে আমরা পেয়েছেন, এই অনুরূপ কি বক্তৃতা উপস্থিত হয়েছিল, 27 00:01:51,070 --> 00:01:58,120 মধ্যে বক্তৃতা ছাড়া আমরা ints গৃহস্থালি * গুলি উল্টোদিকে সঙ্গে এই উপস্থাপিত. 28 00:01:58,120 --> 00:02:06,250 এটি একটি স্ট্যাক যে দোকানে কি হবে? 29 00:02:06,250 --> 00:02:09,009 Daniel? কি কি আমরা এই স্ট্যাকের মধ্যে সংরক্ষণ? 30 00:02:09,009 --> 00:02:15,260 [ড্যানিয়েল] টেলিভিশন? >> আমরা এই স্ট্যাকের মধ্যে সংরক্ষণ করা হয় স্ট্রিং ঠিক,. 31 00:02:15,260 --> 00:02:20,950 সমস্ত আপনার দরকার হবে যাতে একটি স্ট্যাক তৈরি একটি অ্যারে 32 00:02:20,950 --> 00:02:23,920 একটি নির্দিষ্ট ক্ষমতা, এই ক্ষেত্রে যা, 33 00:02:23,920 --> 00:02:28,020 ক্ষমতা সব ক্যাপ হওয়ার কারণে এর একটি ধ্রুবক হতে যাচ্ছে. 34 00:02:28,020 --> 00:02:36,340 অ্যারে ছাড়াও এবং তারপর, আমরা সব ট্র্যাক প্রয়োজন হয় অ্যারের বর্তমান আকার. 35 00:02:36,340 --> 00:02:38,980 একটি বিষয় মনে রাখবেন যে এখানে শীতল ধরনের 36 00:02:38,980 --> 00:02:47,060 যে আমরা অন্য তথ্য গঠন, অ্যারের উপর স্তুপীকৃত তথ্য কাঠামো তৈরি করছেন. 37 00:02:47,060 --> 00:02:50,110 বিভিন্ন উপায় stacks বাস্তবায়ন আছে. 38 00:02:50,110 --> 00:02:54,250 কিন্তু আমরা আশা সংযুক্ত-তালিকা সমস্যা করছে পরে এটা পুরোপুরি এখনো, হবে, 39 00:02:54,250 --> 00:03:00,520 আপনি কিভাবে আপনি সহজেই একটি লিঙ্ক তালিকা উপরে একটি স্ট্যাক হিসাবে ভাল বাস্তবায়ন করতে পারেন দেখতে পাবেন. 40 00:03:00,520 --> 00:03:02,640 কিন্তু এখন জন্য, আমরা অ্যারে লাগিয়া থাকা করব. 41 00:03:02,640 --> 00:03:06,350 তাই আবার, আমরা সব প্রয়োজন একটি অ্যারে এবং আমরা শুধু অ্যারের আকার ট্র্যাক প্রয়োজন. 42 00:03:06,350 --> 00:03:09,850 [স্যাম] দুঃখিত, কেন এটা যে আপনি বলেন স্ট্যাকের স্ট্রিং এর উপরে? 43 00:03:09,850 --> 00:03:13,440 এটা আমার মনে হয় ভালো স্ট্রিং স্ট্যাকের মধ্যে. 44 00:03:13,440 --> 00:03:16,790 [Hardison] হ্যাঁ. আমরা, তৈরি করা আমরা আমাদের অ্যারের তথ্য গঠন করছেন গ্রহণ করছেন - 45 00:03:16,790 --> 00:03:22,130 যে একটি বড় প্রশ্ন. তাই প্রশ্ন হচ্ছে যারা এই অনলাইন দেখছেন জন্য কেন,, 46 00:03:22,130 --> 00:03:24,140 কেন আমরা এই বলে যে পংক্তি স্ট্যাকের উপর হয়, 47 00:03:24,140 --> 00:03:27,990 কারণ এখানে এটা দেখে মনে হচ্ছে স্ট্রিং স্ট্যাকের ভিতর কি? 48 00:03:27,990 --> 00:03:31,050 যা সম্পূর্ণই ক্ষেত্রে. 49 00:03:31,050 --> 00:03:34,660 কি আমি উল্লেখ ছিল যে আমরা একটি অ্যারের ডাটা স্ট্রাকচার পেয়েছেন. 50 00:03:34,660 --> 00:03:39,290 আমরা গৃহস্থালি * s এর একটি অ্যারের, স্ট্রিং এই অ্যারে পেয়েছেন, 51 00:03:39,290 --> 00:03:45,300 এবং আমরা যে যাতে স্তুপীকৃত ডাটা স্ট্রাকচার নির্মাণ যুক্ত করতে যাচ্ছি. 52 00:03:45,300 --> 00:03:48,620 >> সুতরাং একটি স্ট্যাক সামান্য একটি অ্যারের তুলনায় আরো জটিল. 53 00:03:48,620 --> 00:03:51,890 আমরা একটি স্ট্যাক নির্মাণ একটি অ্যারে ব্যবহার করতে পারেন. 54 00:03:51,890 --> 00:03:55,810 তাই যে যেখানে আমরা বলতে যে একটি অ্যারের স্ট্যাকের উপর নির্মিত হয়. 55 00:03:55,810 --> 00:04:02,510 আমি তার আগে বলেন ভালো একইভাবে, আমরা একটি স্ট্যাক নির্মাণ একটি লিঙ্ক তালিকার শীর্ষে যাবে. 56 00:04:02,510 --> 00:04:04,960 পরিবর্তে একটি অ্যারের আমাদের রাখা উপাদান ব্যবহার করে, 57 00:04:04,960 --> 00:04:10,070 আমরা আমাদের উপাদান এবং রাখা প্রায় স্ট্যাকের নির্মাণ যুক্ত তালিকা ব্যবহার করতে পারেন. 58 00:04:10,070 --> 00:04:12,420 এর উদাহরণ কয়েক ভিতর দিয়ে হেটে যেতে যাক, কিছু কোড দিকে তাকিয়ে আছে, 59 00:04:12,420 --> 00:04:14,960 দেখতে আসলে এখানে কি ঘটছে. 60 00:04:14,960 --> 00:04:23,400 বাম দিকে, আমি নিচে অধ কি যে স্ট্যাকের struct মত মেমরি দেখাবে করেছি 61 00:04:23,400 --> 00:04:28,330 # যদি ক্ষমতা থেকে চার করা সংজ্ঞায়িত করা হয়. 62 00:04:28,330 --> 00:04:33,490 আমরা আমাদের চার উপাদান গৃহস্থালি * অ্যারের পেয়েছেন. 63 00:04:33,490 --> 00:04:38,110 আমরা স্ট্রিং [0], স্ট্রিং [1], স্ট্রিং [2], স্ট্রিং [3], পেয়েছেন 64 00:04:38,110 --> 00:04:43,800 এবং তারপর যে আমাদের আকার পূর্ণসংখ্যা জন্য সর্বশেষ স্থান. 65 00:04:43,800 --> 00:04:46,270 এই জানার জন্য? ঠিক আছে. 66 00:04:46,270 --> 00:04:48,790 এটি কি কি যদি আমি সঠিক কাজ, 67 00:04:48,790 --> 00:04:55,790 যা আমার কোড হতে হবে, শুধু একটি struct, স্তুপীকৃত struct নামক একটি গুলি ঘোষণা করা হয়. 68 00:04:55,790 --> 00:05:01,270 এটা কি আমরা পেতে. এটি টিম সীমানা মেমরির মধ্যে এই পদাঙ্ক ডাউন. 69 00:05:01,270 --> 00:05:05,590 প্রথম প্রশ্ন এখানে কি আছে এই স্ট্যাকের struct বিষয়বস্তু? 70 00:05:05,590 --> 00:05:09,250 রাইট এখন তারা কিছুই, কিন্তু তারা সম্পূর্ণই কিছুই করছি না. 71 00:05:09,250 --> 00:05:13,300 ঐগুলি আবর্জনা এই ধরণের. আমরা কোন ধারণা তাদের মধ্যে কি আছে. 72 00:05:13,300 --> 00:05:17,000 যখন আমরা স্ট্যাকের গুলি ডিক্লেয়ার, আমরা নিক্ষেপ করছি মেমরি উপরে যে ডাউন. 73 00:05:17,000 --> 00:05:19,840 এটা int তোমার ঘোষণা এবং এটি আরম্ভ করা হইনি মত ধরনের. 74 00:05:19,840 --> 00:05:21,730 আপনি কি আছে জানি না. আপনি সেখানে কি পড়তে পারেন, 75 00:05:21,730 --> 00:05:27,690 কিন্তু এটি সুপার সহায়ক হতে পারে না. 76 00:05:27,690 --> 00:05:32,680 একটা জিনিষ আপনি কি সবসময় স্মরণ করতে চান যাহা করা দরকার সক্রিয়া সূচনা. 77 00:05:32,680 --> 00:05:35,820 এই ক্ষেত্রে, আমরা সাইজ জিরো হতে আরম্ভ চলুন, 78 00:05:35,820 --> 00:05:39,960 কারণ যে আউট আমাদের জন্য খুবই গুরুত্বপূর্ণ হতে চালু হচ্ছে. 79 00:05:39,960 --> 00:05:43,450 আমরা এগিয়ে যাব সব পয়েন্টার, সব গুলি * গৃহস্থালির কাজ আরম্ভ করতে পারে নি, 80 00:05:43,450 --> 00:05:49,670 কিছু বোধগম্য মান, সম্ভবত ফাঁকা. 81 00:05:49,670 --> 00:05:58,270 কিন্তু এটি সম্পূর্ণই প্রয়োজন যে আমরা যে হইনি. 82 00:05:58,270 --> 00:06:04,200 >> এখন, দুই stacks মূল অপারেশন হয়? 83 00:06:04,200 --> 00:06:07,610 বক্তৃতা থেকে কেউ কি মনে রাখবেন আপনি stacks না? হ্যাঁ? 84 00:06:07,610 --> 00:06:09,700 [স্টেলা] ঠেলাঠেলি এবং পপিং? >> যথাযথভাবে. 85 00:06:09,700 --> 00:06:13,810 ঠেলাঠেলি এবং পপিং দুটি stacks মূল অপারেশন. 86 00:06:13,810 --> 00:06:17,060 ধাক্কা এবং কি করবেন না? >> এটা উপরের দিকে কিছু রাখে 87 00:06:17,060 --> 00:06:19,300 স্ট্যাকের, তারপর পপিং এবং এটি বন্ধ লাগে. 88 00:06:19,300 --> 00:06:23,150 [Hardison] যথাযথভাবে. তাই ঠেলে স্ট্যাকের উপর কিছু push কর্মের. 89 00:06:23,150 --> 00:06:27,700 এটা ডাইনিং কর্মীদের নির্বাণ পাল্টা একটি ডাইনিং ট্রে নিচে মত. 90 00:06:27,700 --> 00:06:33,630 পপিং এবং একটি ডাইনিং ট্রে গ্রহণ স্ট্যাকের বন্ধ হয়. 91 00:06:33,630 --> 00:06:36,460 চলুন শুরু করা যাক কি উদাহরণ কয়েক ভিতর দিয়ে হেটে যেতে 92 00:06:36,460 --> 00:06:39,720 যখন আমরা স্ট্যাকের মধ্যে জিনিষ ধাক্কা. 93 00:06:39,720 --> 00:06:45,110 যদি আমরা আমাদের স্ট্যাকের মধ্যে স্ট্রিং 'হ্যালো' ধাক্কা ছিল, 94 00:06:45,110 --> 00:06:49,760 এই কি আমাদের চিত্রটি এখন এরকম দেখাবে. 95 00:06:49,760 --> 00:06:53,410 দেখুন কি হয়? 96 00:06:53,410 --> 00:06:56,530 আমরা আমাদের স্ট্রিং অ্যারের প্রথম উপাদান মধ্যে push করা 97 00:06:56,530 --> 00:07:01,420 এবং আমরা আমাদের 1 আকার গণনা upped. 98 00:07:01,420 --> 00:07:05,340 তাই আপনি যদি আমরা দুটি স্লাইড মধ্যে পার্থক্য তাকান, এখানে ছিল 0, এখানে ধাক্কা এর আগে. 99 00:07:05,340 --> 00:07:08,690 Push-র পরে এখানে. 100 00:07:08,690 --> 00:07:13,460 ধাক্কা আগে, পরে ধাক্কা. 101 00:07:13,460 --> 00:07:16,860 এবং এখন আমরা আমাদের স্ট্যাকের মধ্যে একটি উপাদান আছে. 102 00:07:16,860 --> 00:07:20,970 এটা পংক্তি "হ্যালো", এবং যে এটি. 103 00:07:20,970 --> 00:07:24,440 আমাদের স্ট্রিং অ্যারের অ্যারের অন্য সবকিছু,, এখনও আবর্জনা. 104 00:07:24,440 --> 00:07:27,070 আমরা এটি সক্রিয়া করা হয়নি. 105 00:07:27,070 --> 00:07:29,410 চলুন শুরু করা যাক বলতে আমরা আমাদের স্ট্যাকের মধ্যে অন্য স্ট্রিং ধাক্কা. 106 00:07:29,410 --> 00:07:32,210 আমরা এই সময় "দুনিয়া" ধাক্কা চলুন. 107 00:07:32,210 --> 00:07:35,160 সুতরাং আপনি "দুনিয়া" এখানে "হ্যালো" উপরে যায় দেখতে পারেন, 108 00:07:35,160 --> 00:07:40,040 এবং আকার গণনা ঃ 2 যাও যায়. 109 00:07:40,040 --> 00:07:44,520 এখন আমরা "CS50", এবং আবার উপরে যাবেন ধাক্কা পারেন. 110 00:07:44,520 --> 00:07:51,110 যদি আমরা ফিরে যেতে, আপনি কিভাবে আমরা স্ট্যাকের উপর জিনিষ ঠেলাঠেলি করছি দেখতে পারেন. 111 00:07:51,110 --> 00:07:53,320 এবং এখন আমরা পপ পেতে. 112 00:07:53,320 --> 00:07:58,910 যখন আমরা স্ট্যাকের কিছু বন্ধ popped, কি ঘটেছে? 113 00:07:58,910 --> 00:08:01,540 কেহ পার্থক্য দেখতে? এটি বেশ সূক্ষ্ম. 114 00:08:01,540 --> 00:08:05,810 [ছাত্র] মাপ. >> হ্যাঁ, আকার পরিবর্তিত হয়েছে. 115 00:08:05,810 --> 00:08:09,040 >> আপনি আর কি পরিবর্তন আশা করে? 116 00:08:09,040 --> 00:08:14,280 [ছাত্র] স্ট্রিং খুব,. >> রাইট. খুব পংক্তি. 117 00:08:14,280 --> 00:08:17,110 এটা পরিনত হয় যে আপনি এটি যখন এই পথ করছেন, 118 00:08:17,110 --> 00:08:21,960 কারণ আমরা উপাদান অনুলিপি করছি আমাদের স্ট্যাকের মধ্যে না, 119 00:08:21,960 --> 00:08:24,670 আসলে আমরা কিছু করতে হবে না; আমরা শুধু আকার ব্যবহার করতে পারেন 120 00:08:24,670 --> 00:08:28,630 যেসব সংখ্যা আমাদের অ্যারের মধ্যে ট্র্যাক রাখা 121 00:08:28,630 --> 00:08:33,780 যাতে আমরা যখন আবার পপ আবার, আমরা শুধু আমাদের মাপ হ্রাস 1 ডাউন. 122 00:08:33,780 --> 00:08:39,440 কোন প্রয়োজন আসলে যান এবং কিছু মুছে ফেলা হয় না. 123 00:08:39,440 --> 00:08:41,710 ভীতু ধরনের. 124 00:08:41,710 --> 00:08:46,520 এটি সক্রিয় আউট সাধারণত আমরা যে জিনিসের ঘাঁটান না কারণ এটি কম কাজ করার জন্য আমাদের করার. 125 00:08:46,520 --> 00:08:50,060 যদি আমরা ফিরে যান এবং কিছু মুছে ফেলা হবে না, তাহলে কেন ভাবছি না? 126 00:08:50,060 --> 00:08:54,150 সুতরাং যখন আমরা স্ট্যাকের পপ দুইবার বন্ধ, সব যে আছে হয় বার কয়েক আকার হ্রাস. 127 00:08:54,150 --> 00:08:59,120 এবং আবার, এটি একমাত্র কারণ আমরা জিনিস অনুলিপি করছি আমাদের স্ট্যাকের মধ্যে না. 128 00:08:59,120 --> 00:09:01,320 হ্যাঁ? এগিয়ে যান. 129 00:09:01,320 --> 00:09:04,460 [ছাত্র, অপাচ্য] >> তারপর আর কি যখন আপনি আবার কিছু ধাক্কা? 130 00:09:04,460 --> 00:09:08,570 আপনি যখন কিছু আবার ধাক্কা যেখানে, এটা যেতে না? 131 00:09:08,570 --> 00:09:12,390 কোথায় বেসিল যান,? স্ট্রিং [1] রূপান্তর >>? >> রাইট. 132 00:09:12,390 --> 00:09:14,530 কেন এটা স্ট্রিং [3] ঢোকা না? 133 00:09:14,530 --> 00:09:19,410 [বেসিল] কারণ এটা ভুলে গেছেন যে ছিল স্ট্রিং মধ্যে কিছু আছে [1] [2]? 134 00:09:19,410 --> 00:09:24,040 [Hardison] যথাযথভাবে. আমাদের স্ট্যাকের মূলত,, "ভুলে গেছি" যে এটা কোন কিছুই আয়ত্ত ছিল 135 00:09:24,040 --> 00:09:29,480 এ স্ট্রিং [1] অথবা পংক্তি [2], তাই যখন আমরা "woot" ধাক্কা, 136 00:09:29,480 --> 00:09:36,670 এটা উপাদান মধ্যে স্ট্রিং [1] এ যে রাখে. 137 00:09:36,670 --> 00:09:41,590 কিভাবে এই কাজ সেখানে কোন প্রশ্ন একটি মৌলিক পর্যায়ে,? 138 00:09:41,590 --> 00:09:45,160 [স্যাম] সুতরাং এটি কোনো ভাবে পরিমাণ শর্তাবলী গতিশীল না 139 00:09:45,160 --> 00:09:47,620 অথবা স্ট্যাকের আকার শর্তাবলী? 140 00:09:47,620 --> 00:09:56,750 [Hardison] যথাযথভাবে. এটি - পয়েন্ট ছিল যে এই একটি পরিবর্তনশীল growning স্ট্যাকের ছিল না. 141 00:09:56,750 --> 00:10:02,850 এটি একটি স্ট্যাক যে অধিকাংশ, চার গৃহস্থালি * গুলি এ রাখা, সর্বাধিক চারটি জিনিস এ, করতে পারেন. 142 00:10:02,850 --> 00:10:07,580 যদি আমরা চেষ্টা এবং একটি পঞ্চম জিনিস ধাক্কা ছিল কি, আপনি মনে হওয়া উচিত নয়? 143 00:10:07,580 --> 00:10:11,870 [ছাত্র, অপাচ্য] 144 00:10:11,870 --> 00:10:14,600 [Hardison] যথাযথভাবে. যে ঘটতে পারে একটি নম্বর আছে. 145 00:10:14,600 --> 00:10:19,330 এটা সম্ভবত ফল্ট, seg কি আমরা উপর নির্ভর করতে পারে নি - 146 00:10:19,330 --> 00:10:22,530 ঠিক কিভাবে আমরা ফিরে শেষ রূপায়ণকারী ছিল. 147 00:10:22,530 --> 00:10:31,740 এটা মুছে ফেলা হতে পারে. এটা যে বাফার ওভারফ্লো যে আমরা ক্লাসে স্বপ্ন আছে পারে. 148 00:10:31,740 --> 00:10:35,240 কি সবচেয়ে বড় বিষয় যে মুছে ফেলা হতে পারে 149 00:10:35,240 --> 00:10:42,370 যদি আমরা আমাদের একটি স্ট্যাক অতিরিক্ত জিনিস ধাক্কা চেষ্টা করছেন? 150 00:10:42,370 --> 00:10:44,550 সুতরাং আপনি একটি বাফার ওভারফ্লো উল্লেখ করেছে. 151 00:10:44,550 --> 00:10:47,870 কি জিনিস যে লিখিত মাধ্যমে পেতে হবে অথবা stomped পারে 152 00:10:47,870 --> 00:10:52,320 যদি আমরা একটি অতিরিক্ত জিনিস ধাক্কা চেষ্টা দূর্ঘটনাক্রমে উদ্বেলিত? 153 00:10:52,320 --> 00:10:54,730 [ড্যানিয়েল, অপাচ্য] >> সম্ভাব্য. 154 00:10:54,730 --> 00:10:58,440 কিন্তু প্রথমে, কি ঘটতে পারে? যদি আমরা একটি চতুর্থ বিষয় ধাক্কা চেষ্টা করছেন? 155 00:10:58,440 --> 00:11:06,220 এটা অন্ততঃ এই মেমরি চিত্রটি যে আমরা পেয়েছেন সঙ্গে মাপ মুছে ফেলা যেতে পারে. 156 00:11:06,220 --> 00:11:10,880 >> সমস্যা সেট নির্দেশের মধ্যে, যা আমরা কি করা রূপায়ণকারী যাচ্ছে আজ করছি, 157 00:11:10,880 --> 00:11:16,030 আমরা কি কাজ করতে চান না, ঠিক হয় মিথ্যা ফিরে. 158 00:11:16,030 --> 00:11:20,030 আমাদের ধাক্কা পদ্ধতি একটি বুলিয়ান মান ফিরে যাচ্ছে, 159 00:11:20,030 --> 00:11:22,920 এবং যে বুলিয়ান মান সত্য যদি ধাক্কা সফল হবে 160 00:11:22,920 --> 00:11:29,730 এবং মিথ্যা যদি আমরা আরো কিছু কারণ স্ট্যাকের পূর্ণ push করতে পারবেন না. 161 00:11:29,730 --> 00:11:33,620 আসুন একটি কোড যে সামান্য বিট এর মাধ্যমে অধিকার এখন পদব্রজে ভ্রমণ. 162 00:11:33,620 --> 00:11:36,400 এখানে আমাদের ধাক্কা ফাংশন. 163 00:11:36,400 --> 00:11:40,380 আমাদের জন্য একটি স্ট্যাক ধাক্কা ফাংশন স্ট্রিং স্ট্যাক রাখতে নিতে যাচ্ছে. 164 00:11:40,380 --> 00:11:45,820 এটা সত্য ফিরে যাওয়া যদি সফলভাবে স্ট্রিং push করা ছিল এর 165 00:11:45,820 --> 00:11:51,820 স্ট্যাকের উপর এবং মিথ্যা অন্যথায়. 166 00:11:51,820 --> 00:11:59,740 কি কোন পরামর্শ একটি ভাল সর্বপ্রথম যে জিনিসটি এখানে কি হতে পারে? 167 00:11:59,740 --> 00:12:20,630 [স্যাম] তারপর যদি আকার ক্ষমতা সমান মিথ্যা ফিরে? 168 00:12:20,630 --> 00:12:23,320 [Hardison] বিঙ্গো. চমৎকার কাজ. 169 00:12:23,320 --> 00:12:26,310 যদি আকার ক্ষমতা, আমরা মিথ্যা ফিরে চলুন. 170 00:12:26,310 --> 00:12:29,270 আমরা আমাদের কিছু স্ট্যাকের মধ্যে আরো না লাগাতে পারেন. 171 00:12:29,270 --> 00:12:36,900 অন্যথায়, আমরা যাও স্ট্যাকের উপর কিছু করা চাই. 172 00:12:36,900 --> 00:12:41,670 "স্ট্যাকের উপরে," প্রথমে কি? 173 00:12:41,670 --> 00:12:43,650 [ড্যানিয়েল] ফাইলের আকার 0? >> ফাইলের আকার 0. 174 00:12:43,650 --> 00:12:49,990 স্ট্যাকের পরে স্ট্যাকের মধ্যে এক জিনিস আছে উপরে কি? দু, আপনি জানেন? 175 00:12:49,990 --> 00:12:52,720 [দু] একজন. >> ফাইলের আকার এক ঠিক,. আপনি রাখা যোগ মাপ, 176 00:12:52,720 --> 00:13:01,690 এবং প্রত্যেক সময় আপনি অ্যারের মধ্যে নতুন উপাদান ইনডেক্স আকারের মধ্যে স্থাপন করছি. 177 00:13:01,690 --> 00:13:05,470 আমরা এক অধি তজ্জাতীয় সাথে, না হলে যে বিষয়টি যুক্তিযুক্ত করতে পারেন. 178 00:13:05,470 --> 00:13:11,910 সুতরাং আমরা আমাদের স্ট্রিং অ্যারের পেয়েছেন, আমরা মাপ সূচিতে এটি অ্যাক্সেস করতে যাচ্ছেন, 179 00:13:11,910 --> 00:13:14,780 এবং আমরা সেখানে আমাদের গৃহস্থালি * সঞ্চয় করছেন যাচ্ছে. 180 00:13:14,780 --> 00:13:19,340 কিভাবে এখানে কোন পংক্তিটি কপি আছে যাচ্ছে উপর লক্ষ্য করুন, 181 00:13:19,340 --> 00:13:29,680 কোন মেমরি বরাদ্দকরণের গতিশীল? 182 00:13:29,680 --> 00:13:34,440 এবং তারপর দু প্রতিপালিত কি আমরা এখন কি আছে, 183 00:13:34,440 --> 00:13:40,570 কারণ আমরা অ্যারের মধ্যে যথাযথ স্থানে স্ট্রিং সঞ্চয় করে, 184 00:13:40,570 --> 00:13:49,230 এবং তিনি বলেন যে আমরা এক দ্বারা আকার যাতে আমরা পরের ধাক্কা জন্য প্রস্তুত ছিল বাড়ায়. 185 00:13:49,230 --> 00:13:53,950 সুতরাং আমরা s.size সঙ্গে তা করতে পারে +. 186 00:13:53,950 --> 00:13:59,330 এই সময়ে, আমরা আমাদের অ্যারের মধ্যে push করা করেছি. শেষ জিনিস আমরা কি কি? 187 00:13:59,330 --> 00:14:10,110 [ছাত্র] সত্য ফিরুন. >> সত্য ফিরুন. 188 00:14:10,110 --> 00:14:14,690 সুতরাং এটা বেশ সহজ, সুন্দর একটি সহজ কোড. . খুব বেশী নেই 189 00:14:14,690 --> 00:14:17,070 একবার আপনি কিভাবে স্ট্যাকের কাজ কাছাকাছি আপনার মাথা আবৃত করেছি, 190 00:14:17,070 --> 00:14:21,910 এটা বেশ প্রয়োগ করা অপেক্ষাকৃত সহজ. 191 00:14:21,910 --> 00:14:26,390 >> এখন, এই পরবর্তী অংশ একটি স্ট্যাকের স্ট্রিং বন্ধ পপিং হয়. 192 00:14:26,390 --> 00:14:29,410 আমি এই অল্প কাজ কিছু সময় দিন আপনি না চলেছি. 193 00:14:29,410 --> 00:14:34,320 এটা প্রায় মূলত কি আমরা এখানে ধাক্কা সম্পন্ন করেছি বিপরীত. 194 00:14:34,320 --> 00:14:38,510 আমি কি সম্পন্ন করেছি আসলে - ওহো. 195 00:14:38,510 --> 00:14:48,160 আমি উপর এখানে, এবং যন্ত্র মধ্যে বুট একটি যন্ত্র আপ করেছি, 196 00:14:48,160 --> 00:14:53,600 আমি আপ সমস্যা টানা 5 স্পেসিফিকেশন সেট করেছি. 197 00:14:53,600 --> 00:15:02,560 যদি আমরা এখানে জুম, আমরা আছি আমি cdn.cs50.net/2012/fall/psets/pset5.pdf এ দেখতে পারেন. 198 00:15:02,560 --> 00:15:08,590 আপনি কি না এই কোড যে এখানে অবস্থিত section6.zip, ডাউনলোড করা? 199 00:15:08,590 --> 00:15:15,030 ঠিক আছে. যদি আপনি যে, ঠিক না এখন, সত্যিই দ্রুত সম্পন্ন হয় না. 200 00:15:15,030 --> 00:15:22,130 আমি আমার টার্মিনাল উইন্ডোতে এটি করব. 201 00:15:22,130 --> 00:15:25,090 আমি আসলে তা এখানে আপ. হাঁ. 202 00:15:25,090 --> 00:15:34,730 হ্যাঁ, স্যাম? >> আমি কেন আপনি s.string 'গুলি বন্ধনী আকারের = str বলতে সম্পর্কে একটি প্রশ্ন আছে? 203 00:15:34,730 --> 00:15:42,910 Str কি? হয় যে আগে কোথাও সংজ্ঞায়িত করা হয়, অথবা - উহু, এ গৃহস্থালি * str? 204 00:15:42,910 --> 00:15:47,160 [Hardison] হ্যাঁ, ঠিক. যে যুক্তি ছিল. >> ওহ, ঠিক আছে. দুঃখিত. 205 00:15:47,160 --> 00:15:49,470 [Hardison] আমরা ইন ধাক্কা পংক্তি উল্লেখ করছি 206 00:15:49,470 --> 00:15:55,220 অন্য যে প্রশ্নের আপ যে সত্যিই আমরা এখানে সম্পর্কে কি কথা বলতে পারে না আসা ছিল 207 00:15:55,220 --> 00:15:58,810 আমরা গ্রহণ জন্য দেয়া হয় যে আমরা এই পরিবর্তনশীল নামক গুলি ছিল 208 00:15:58,810 --> 00:16:02,710 যে সুযোগ রয়েছে এবং অ্যাক্সেসযোগ্য আমাদের মধ্যে ছিল. 209 00:16:02,710 --> 00:16:06,960 আমরা গ্রহণ জন্য দেয়া হয় যে গুলি ছিল এই স্ট্যাকের struct. 210 00:16:06,960 --> 00:16:08,930 তাই এই ধাক্কা কোড আমি ফিরে, 211 00:16:08,930 --> 00:16:13,450 আপনি যে আমরা এই স্ট্রিংটি সালে পাশ ফেরার সঙ্গে স্টাফ করছি দেখতে পারেন 212 00:16:13,450 --> 00:16:19,210 কিন্তু তারপর হঠাৎ সব, আমরা s.size অ্যাক্সেস ভালো, করছি, যেখানে গুলি বার থেকে আসে? 213 00:16:19,210 --> 00:16:23,020 ইন কোড যে আমরা এ অধ্যায় আর্কাইভের মধ্যে চেয়ে চলুন 214 00:16:23,020 --> 00:16:27,100 এবং তারপর উপাদান যে আপনি আপনার সমস্যা হবে সেটা সেট করে, 215 00:16:27,100 --> 00:16:32,440 আমরা আমাদের স্ট্যাকের মধ্যে উপস্থিত একটি বিশ্বব্যাপী পরিবর্তনশীল struct করেছি 216 00:16:32,440 --> 00:16:36,380 যাতে আমরা আমাদের বিভিন্ন ফাংশন তা অ্যাক্সেস থাকতে পারে 217 00:16:36,380 --> 00:16:40,630 ছাড়াই নিজে কাছাকাছি পাস এবং রেফারেন্স দ্বারা এটি পাস হচ্ছে, 218 00:16:40,630 --> 00:16:44,870 এটি সমস্ত জিনিস যে ধরনের কাজ. 219 00:16:44,870 --> 00:16:52,280 আমরা ঠিক করছি অল্প ঠকায়, যদি আপনি হবে, যাও nicer জিনিস বানাতে. 220 00:16:52,280 --> 00:16:57,430 যা কিছু আমরা এখানে করছেন কারণ এটা মজার জন্য করছি, বেশি সহজ. 221 00:16:57,430 --> 00:17:02,800 প্রায়শই, আপনি এটাকে না যদি তারা এক বড় ডাটা স্ট্রাকচার আছে দেখতে পাবেন 222 00:17:02,800 --> 00:17:07,750 যে তাদের মধ্যে প্রোগ্রাম হচ্ছে পরিচালিত হয়. 223 00:17:07,750 --> 00:17:09,560 >> চলুন ফিরে যাও প্রয়োগ উপর যান. 224 00:17:09,560 --> 00:17:15,240 কি সফলভাবে সবাই section6.zip পেতে পারি? 225 00:17:15,240 --> 00:17:20,440 সকলে এটি আনজিপ আনজিপ section6.zip ব্যবহার করে? 226 00:17:20,440 --> 00:17:27,200 আপনি যদি অধ্যায় 6 ডিরেক্টরিতে যান - 227 00:17:27,200 --> 00:17:29,220 aah, সব জায়গা - 228 00:17:29,220 --> 00:17:32,840 এবং আপনি এখানে কি তালিকা, আপনি দেখতে যে আপনি তিনটি ভিন্ন. গ ফাইল পেয়েছেন. 229 00:17:32,840 --> 00:17:38,350 আপনি একটি কিউ, একটি sll, যা এককভাবে সংযুক্ত তালিকা, এবং একটি স্ট্যাক পেয়েছেন. 230 00:17:38,350 --> 00:17:44,600 আপনি যদি খুলুন stack.c আপ, 231 00:17:44,600 --> 00:17:47,330 আপনি যে আমরা এই struct আমাদের জন্য নির্ধারিত পেয়েছেন দেখতে পারেন, 232 00:17:47,330 --> 00:17:51,330 সঠিক struct যে আমরা কেবল স্লাইড সম্পর্কে বললাম. 233 00:17:51,330 --> 00:17:56,340 আমরা স্ট্যাকের জন্য আমাদের বিশ্বব্যাপী পরিবর্তনশীল পেয়েছিলাম, 234 00:17:56,340 --> 00:18:00,110 আমরা আমাদের ধাক্কা ফাংশন আছে, 235 00:18:00,110 --> 00:18:04,230 এবং তারপর আমরা আমাদের পপ ফাংশন পেয়েছেন. 236 00:18:04,230 --> 00:18:08,320 আমি কোড সবার জন্য স্লাইডে ফিরে ধাক্কা আপ পাবেন, 237 00:18:08,320 --> 00:18:10,660 কিন্তু আমি কি বলছি আপনি কি চাইবেন আপনার ক্ষমতা সবচেয়ে ভাল হয়,, 238 00:18:10,660 --> 00:18:13,790 যান এবং পপ ফাংশন বাস্তবায়ন. 239 00:18:13,790 --> 00:18:18,480 একবার আপনি এটি প্রয়োগ করেছি, আপনি স্ট্যাকের সঙ্গে এই কম্পাইল করতে পারেন, 240 00:18:18,480 --> 00:18:22,540 এবং তারপর পরিসমাপ্তি স্ট্যাক এক্সেকিউটেবল চালানো, 241 00:18:22,540 --> 00:18:28,390 এবং যে এই পরীক্ষার সব কোড থকা এখানে মূল যে দেবে. 242 00:18:28,390 --> 00:18:31,060 এবং প্রধান আসলে ধাক্কা এবং পপ কল যত্ন নেয় 243 00:18:31,060 --> 00:18:33,220 এবং এমনটা নিশ্চিত করা যে সমস্ত অধিকার মাধ্যমে সবকিছু যায়. 244 00:18:33,220 --> 00:18:36,820 এটি স্ট্যাকের আকার সূচনা অধিকার এখানে 245 00:18:36,820 --> 00:18:39,780 তাই আপনি যে বিষয়ে উদ্বিগ্ন হতে আরম্ভ করার প্রয়োজন হয় না. 246 00:18:39,780 --> 00:18:42,310 আপনি যে এটি সক্রিয়া করা হয়েছে এর সঠিকভাবে অনুমান করতে পারেন 247 00:18:42,310 --> 00:18:48,000 দ্বারা সময় যে আপনি এটি পপ অ্যাক্সেস ফাংশন. 248 00:18:48,000 --> 00:18:53,530 কি যে জানার জন্য? 249 00:18:53,530 --> 00:19:00,100 তাই আমরা এখানে. ধাক্কা কোড আছে. 250 00:19:00,100 --> 00:19:13,210 আমি বলছি 5 বা 10 মিনিট সময় দেব. 251 00:19:13,210 --> 00:19:15,690 এবং যদি আপনি অন্তর্বর্তী কোনো প্রশ্ন থাকে যখন আপনি কোডিং করছি, 252 00:19:15,690 --> 00:19:17,710 তাদের কে জিজ্ঞাসা অট্ট দয়া করে. 253 00:19:17,710 --> 00:19:23,080 তাই আপনি যদি একটি স্টিকিং পয়েন্ট পেতে ঠিক, জিজ্ঞাসা করুন. 254 00:19:23,080 --> 00:19:26,030 সম্পর্কে জানুক, সবাই অন্য জানাতে. 255 00:19:26,030 --> 00:19:28,160 আপনার প্রতিবেশীর সাথে খুব কাজ. 256 00:19:28,160 --> 00:19:30,360 [ড্যানিয়েল] আমরা শুধুমাত্র আপনার রূপায়ণকারী পপ অধিকার এখন? >> শুধু পপ. 257 00:19:30,360 --> 00:19:34,200 যদিও আপনি ধাক্কা বাস্তবায়ন কপি করতে পারেন যদি চান 258 00:19:34,200 --> 00:19:37,780 যাতে টেস্টিং কাজ করবে না. 259 00:19:37,780 --> 00:19:41,940 কারণ এটার মধ্যে জিনিস পেয়ে পরীক্ষা হার্ড - 260 00:19:41,940 --> 00:19:49,030 অথবা, এটা যাও পপিং জিনিষ পরীক্ষা স্ট্যাকের যদি আউট হয় স্ট্যাকের মধ্যে কিছু দিয়ে শুরু করতে না হার্ড. 261 00:19:49,030 --> 00:19:55,250 >> পপ অনুমিত করা ফিরে যাও কি? স্ট্যাকের উপর থেকে উপাদান. 262 00:19:55,250 --> 00:20:01,260 এটি উপাদান পেতে স্ট্যাকের মধ্যে শীর্ষ বন্ধ অনুমিত এর 263 00:20:01,260 --> 00:20:05,780 এবং তারপর স্ট্যাকের মাপ হ্রাস, 264 00:20:05,780 --> 00:20:07,810 এবং এখন আপনি উপরে উপাদান নষ্ট করেছি. 265 00:20:07,810 --> 00:20:11,420 এবং তারপর আপনি উপরে ফিরে উপাদান. 266 00:20:11,420 --> 00:20:20,080 [ছাত্র, অপাচ্য] 267 00:20:20,080 --> 00:20:28,810 [Hardison] তাই কি যদি আপনি না যে? [ছাত্র, অপাচ্য] 268 00:20:28,810 --> 00:20:34,000 কি শেষ পর্যন্ত কিন্তু তা সম্ভবত আপনি তা অ্যাক্সেস 269 00:20:34,000 --> 00:20:37,350 একটি উপাদান যা এখনও সক্রিয়া করা হয়েছে, যাতে আপনার গণনা 270 00:20:37,350 --> 00:20:39,990 যেখানে শেষ উপাদান হয় বন্ধ. 271 00:20:39,990 --> 00:20:46,260 তাই এখানে, ধাক্কা মধ্যে যদি আপনি বিজ্ঞপ্তি,, আমরা স্ট্রিং s.size উপাদান এ অ্যাক্সেস 272 00:20:46,260 --> 00:20:48,560 কারণ এটি একটি নতুন সূচক. 273 00:20:48,560 --> 00:20:51,460 এটা স্ট্যাকের নতুন সর্বোচ্চ. 274 00:20:51,460 --> 00:21:01,100 মধ্যে পপ যেহেতু, s.size পরবর্তী স্থান হবে, 275 00:21:01,100 --> 00:21:05,210 স্থান সব আপনার স্ট্যাকের মধ্যে উপাদানের উপরে যে. 276 00:21:05,210 --> 00:21:10,050 সুতরাং উপরের সবচেয়ে উপাদান s.size হয় না, 277 00:21:10,050 --> 00:21:14,930 বরং, এটা এর অন্তরালে. 278 00:21:14,930 --> 00:21:19,640 >> অন্যান্য জিনিস যখন না - করে পপ, 279 00:21:19,640 --> 00:21:22,030 আপনাকে মাপ হ্রাস আছে. 280 00:21:22,030 --> 00:21:28,750 আপনি যদি আমাদের সামান্য চিত্রটি ফিরে মনে রাখবেন ডান এখানে, 281 00:21:28,750 --> 00:21:30,980 সত্যিই, আছে শুধু যে আমরা কি ঘটছে তা আমরা দেখেছি যখন বলা পপ 282 00:21:30,980 --> 00:21:36,150 ছিল যে এই প্রথম আকার 2 নেমে গেলে, তাহলে 1. 283 00:21:36,150 --> 00:21:42,620 তারপর যখন আমরা একটি নতুন উপাদান push করা, এটা সঠিক স্থানে যেতে যেতে হবে. 284 00:21:42,620 --> 00:21:49,610 [বেসিল] যদি s.size 2 পরে, উপাদান 2 তা না যেতে হবে, 285 00:21:49,610 --> 00:21:54,400 এবং তারপরে আপনি যে উপাদান প্রস্থান করতে চান চান? 286 00:21:54,400 --> 00:21:59,510 তাই আপনি যদি আমরা গিয়েছিলাম - >> সুতরাং যাক এই সময়ে আবার এর চেহারা. 287 00:21:59,510 --> 00:22:07,730 যদি এই এই সময়ে আমাদের স্ট্যাকের 288 00:22:07,730 --> 00:22:12,130 এবং আমরা পপ, 289 00:22:12,130 --> 00:22:16,150 যা সূচক হল উপরের সবচেয়ে উপাদান? 290 00:22:16,150 --> 00:22:19,300 [বেসিল] এ 2, কিন্তু পপ 3 যাচ্ছে. >> রাইট. 291 00:22:19,300 --> 00:22:24,220 তাই যে যেখানে আমাদের আকার হচ্ছে 3, কিন্তু আমরা সূচক 2 এ উপাদান পপ চান. 292 00:22:24,220 --> 00:22:29,900 এটি বন্ধ আদর্শ এক যে আপনি অ্যারে এর শূন্য ইন্ডেক্স সঙ্গে আছে দ্বারা ধরনের. 293 00:22:29,900 --> 00:22:36,430 সুতরাং আপনি তৃতীয় উপাদান পপ করতে চান, কিন্তু কোনো তৃতীয় উপাদান সূচক 3 হয় না. 294 00:22:36,430 --> 00:22:39,430 এবং কারণ আমরা যে বিয়োগ 1 যখন আমরা ঠেলাঠেলি করছি না আছে 295 00:22:39,430 --> 00:22:44,120 এখনই কারণ, আপনি নোটিশ উপরের সবচেয়ে উপাদান, 296 00:22:44,120 --> 00:22:47,600 যদি আমরা এই সময়ে স্ট্যাকের মধ্যে অন্য কিছু ধাক্কা ছিল, 297 00:22:47,600 --> 00:22:50,360 আমরা সূচক 3 এ ধাক্কা চায়. 298 00:22:50,360 --> 00:23:03,550 এবং শুধু তাই যে আকার এবং সূচকগুলি সমপন্থী যখন আপনি ঠেলাঠেলি করছি. 299 00:23:03,550 --> 00:23:06,960 >> কে একটি কাজ স্ট্যাকের বাস্তবায়ন না? 300 00:23:06,960 --> 00:23:09,690 আপনি একটি কাজ স্ট্যাকের এক পেয়েছেন. আপনি কি এখনো পপ কাজ আছে? 301 00:23:09,690 --> 00:23:11,890 [ড্যানিয়েল] হ্যাঁ. আমি তাই মনে করি. 302 00:23:11,890 --> 00:23:14,610 >> প্রোগ্রাম এবং চলমান seg faulting না, এটা মুদ্রণ এর? 303 00:23:14,610 --> 00:23:17,520 এটা "সফল" প্রিন্ট আউট যখন আপনি এটি চালানো? 304 00:23:17,520 --> 00:23:22,630 হাঁ. গাদা না, এটি চালানোর জন্য, যদি সেটা ছাপে "সফল" আউট এবং না ধরাস না, 305 00:23:22,630 --> 00:23:26,000 তারপর সব ভাল. 306 00:23:26,000 --> 00:23:34,070 ঠিক আছে. এর প্রয়োগ যাও পুনরালোচনা সত্যিই দ্রুত করা যাক, 307 00:23:34,070 --> 00:23:46,100 এবং আমরা এই ভিতর দিয়ে হেটে যেতে হবে. 308 00:23:46,100 --> 00:23:51,110 যদি আমরা পপ সঙ্গে কি যাচ্ছে এখানে এর তাকান, 309 00:23:51,110 --> 00:23:55,220 ড্যানিয়েল, কি ছিল প্রথম যে কাজটা আপনি করেছেন? 310 00:23:55,220 --> 00:23:58,850 [ড্যানিয়েল] যদি s.size হয় 0 থেকে. 311 00:23:58,850 --> 00:24:03,120 [Hardison] ঠিক আছে. এবং কেন আপনি না যে? 312 00:24:03,120 --> 00:24:05,610 [ড্যানিয়েল] নিশ্চিত স্ট্যাকের ভিতরে কিছু ছিল না. 313 00:24:05,610 --> 00:24:10,950 [Hardison] ডান. আপনি কি নিশ্চিত যে s.size হয় 0 থেকে পরীক্ষা করতে চান; 314 00:24:10,950 --> 00:24:13,280 অন্যথায় কি, আপনি এরকম করতে না চান? 315 00:24:13,280 --> 00:24:16,630 [ড্যানিয়েল] ফিরে নাল? >> ফিরে নাল, ঠিক. 316 00:24:16,630 --> 00:24:20,740 তাই আপনি যদি s.size হয় 0 থেকে. তারপর কি আমরা চালু করতে হবে? 317 00:24:20,740 --> 00:24:25,890 কি আমরা যদি স্ট্যাকের খালি হয় না? 318 00:24:25,890 --> 00:24:31,210 [স্টেলা] আপনি মাপ হ্রাস? >> আপনি মাপ হ্রাস ঠিক আছে. 319 00:24:31,210 --> 00:24:34,440 সুতরাং কিভাবে আপনি কি না যে? >> S.size--. 320 00:24:34,440 --> 00:24:37,030 [Hardison] গ্রেট. এবং তারপর কি আপনি করবেন? 321 00:24:37,030 --> 00:24:44,140 [স্টেলা] তারপর আমি ফিরে s.string [s.size]. 322 00:24:44,140 --> 00:24:48,560 [Hardison] গ্রেট. 323 00:24:48,560 --> 00:24:51,940 অন্যথায় আপনি নাল ফিরে. হ্যাঁ, স্যাম? 324 00:24:51,940 --> 00:24:55,510 [স্যাম] কেন এটা করা s.size + 1 টি প্রয়োজন হয় না? 325 00:24:55,510 --> 00:24:58,430 [Hardison] প্লাস 1? >> হ্যাঁ. >> বুঝেছি. 326 00:24:58,430 --> 00:25:00,980 [স্যাম] আমি কারণ হল আপনি 1 আউট গ্রহণ করছেন, 327 00:25:00,980 --> 00:25:04,290 তারপর আপনি করা ফিরে এক যে তারা হাজির না যাও চলুন. 328 00:25:04,290 --> 00:25:09,400 [Hardison] এবং এই ছিল শুধু কি আমরা এই সূচকগুলি 0 পুরো সমস্যার কথা বলা হয়েছিল. 329 00:25:09,400 --> 00:25:11,380 তাই আপনি যদি আমরা এখানে আবার জুম. 330 00:25:11,380 --> 00:25:15,650 যদি আমরা এই লোক তাকান সরাসরি, আপনি যে, যখন আমরা পপ দেখতে পারেন, 331 00:25:15,650 --> 00:25:19,340 আমরা সূচক 2 এ উপাদান পপিং করছি. 332 00:25:19,340 --> 00:25:25,200 >> সুতরাং আমরা আমাদের প্রথম মাপ হ্রাস হয়, তাহলে আমাদের আকার সূচক আমাদের সাথে মেলে. 333 00:25:25,200 --> 00:25:39,650 আমরা যদি প্রথম হ্রাস না না আকার তারপর, আমরা মাপ -1 এবং তারপর হ্রাস করতে হবে. 334 00:25:39,650 --> 00:25:45,270 গ্রেট. সব ভাল? 335 00:25:45,270 --> 00:25:47,530 এই কোন প্রশ্ন? 336 00:25:47,530 --> 00:25:54,050 বিভিন্ন উপায়ে এই হিসাবে ভাল লিখুন আছে. 337 00:25:54,050 --> 00:26:03,290 আসলে, আমরা কিছু এমন কি কিছু করতে পারি - আমরা একটি এক অধি করতে পারেন. 338 00:26:03,290 --> 00:26:05,770 আমরা এক লাইন রিটার্ন করতে পারেন. 339 00:26:05,770 --> 00:26:12,980 তাই আসলে আমরা হ্রাস আগে আমরা যে করে ফিরে আসতে পারেন. 340 00:26:12,980 --> 00:26:18,320 সুতরাং নির্বাণ - s.size আগে. 341 00:26:18,320 --> 00:26:22,060 যে লাইন সত্যিই ঘন. 342 00:26:22,060 --> 00:26:30,940 যেখানে মধ্যে পার্থক্য -. গুলি আকার এবং s.size-- 343 00:26:30,940 --> 00:26:40,130 যে এই postfix - তারা কল এটি postfix কারণ - আসে পরে s.size-- 344 00:26:40,130 --> 00:26:47,430 এর মানে হল ইনডেক্স খুঁজে বের করার উদ্দেশ্যে s.size পরীক্ষিত হয় 345 00:26:47,430 --> 00:26:50,410 হিসাবে এটি বর্তমানে যখন এই লাইন মৃত্যুদন্ড কার্যকর করা হয়, 346 00:26:50,410 --> 00:26:54,290 এবং তারপর এই - ঘটলে পরে লাইন মৃত্যুদন্ড কার্যকর করা হয়. 347 00:26:54,290 --> 00:27:00,340 পরে সূচক s.size এ উপাদান ব্যবহার করা হয়. 348 00:27:00,340 --> 00:27:07,260 এবং যে, কারণ আমরা হ্রাস প্রথম ঘটতে চান কি আমরা চাই না. 349 00:27:07,260 --> 00:27:10,990 Othewise, আমরা অ্যারে অ্যাক্সেস করা যাচ্ছেন, কার্যকরীভাবে, চলাফেরার এলাকা - বহির্ভূত. 350 00:27:10,990 --> 00:27:16,850 আমরা এক যে আমরা আসলে অ্যাক্সেস করতে চান উপরোক্ত উপাদান অ্যাক্সেস করা চলুন. 351 00:27:16,850 --> 00:27:23,840 হাঁ, স্যাম? >> এটা দ্রুত বা কম RAM-র এক লাইন বা না করার জন্য ব্যবহার করেন? 352 00:27:23,840 --> 00:27:29,620 [Hardison] সত্যি সত্যিই এটা নির্ভর করে. 353 00:27:29,620 --> 00:27:34,220 [স্যাম, অপাচ্য] >> হ্যাঁ, এটা নির্ভর করে. আপনি কম্পাইলার ঠাট করতে পারেন 354 00:27:34,220 --> 00:27:41,580 কম্পাইলার যে স্বীকৃতি পেতে সাধারণত,, আমি কল্পনা. 355 00:27:41,580 --> 00:27:44,840 >> সুতরাং আমরা এই কম্পাইলারটি অপ্টিমাইজেশান উপাদান সম্পর্কে একটি সামান্য বিট উল্লেখ করেছি 356 00:27:44,840 --> 00:27:47,400 যে আপনাকে কম্পাইল করতে পারেন, 357 00:27:47,400 --> 00:27:50,580 এবং যে ব্যাপার ধরনের একটি কম্পাইলার যাও চিন্তা করতে পারেন, 358 00:27:50,580 --> 00:27:54,710 উহু ভালো, হেই হয়তো, আমি এক অপারেশন মধ্যে এই সব কাজ করতে পারেন, 359 00:27:54,710 --> 00:27:59,420 থেকে RAM-র মধ্যে লোড আকার পরিবর্তনশীল উল্টোদিকে, 360 00:27:59,420 --> 00:28:03,770 এটি decrementing, এটি ফিরিয়ে সংরক্ষণকারী আউট, এবং তারপর লোড করে আবার তা ফিরে 361 00:28:03,770 --> 00:28:08,000 এই অপারেশন বাকি প্রক্রিয়া. 362 00:28:08,000 --> 00:28:10,710 কিন্তু সাধারণত নেই,, এই ধরণের জিনিস নয় 363 00:28:10,710 --> 00:28:20,770 যে আপনার প্রোগ্রাম দ্রুত করতে যাচ্ছে. 364 00:28:20,770 --> 00:28:26,000 কোন stacks আরও প্রশ্ন? 365 00:28:26,000 --> 00:28:31,360 >> সুতরাং ঠেলাঠেলি এবং পপিং. আপনি যদি না যাও হ্যাকার সংস্করণ চেষ্টা করে দেখতে চান, 366 00:28:31,360 --> 00:28:33,660 আমরা কি হ্যাকার সংস্করণ মধ্যে সম্পন্ন করেছি প্রকৃতপক্ষে সর্বস্বান্ত 367 00:28:33,660 --> 00:28:37,670 এবং তৈরি এই স্ট্যাকের পরিবর্তনশীল বাড়া. 368 00:28:37,670 --> 00:28:43,190 চ্যালেঞ্জ প্রাথমিকভাবে সেখানে আপ এখানে ধাক্কা ফাংশন, 369 00:28:43,190 --> 00:28:48,820 যাও চিন্তা করা যে কিভাবে অ্যারে প্রসারণ করা 370 00:28:48,820 --> 00:28:52,450 হিসাবে আপনি রাখা স্ট্যাকের উপর আরো এবং আরো উপাদান ঠেলে. 371 00:28:52,450 --> 00:28:56,000 এটা আসলে খুব অতিরিক্ত কোড না. 372 00:28:56,000 --> 00:29:00,080 আপনি যাও যাও যাও malloc সেখানে কল সঠিকভাবে পেতে স্মরণ আছে, - শুধু একটি কল 373 00:29:00,080 --> 00:29:03,310 এবং তারপর চিন্তা করা আপনি যখন realloc কল চলুন. 374 00:29:03,310 --> 00:29:06,090 এটা একটা মজা চ্যালেঞ্জ আপনি আগ্রহী হলে. 375 00:29:06,090 --> 00:29:11,550 >> কিন্তু কিছু সময়ের জন্য, এর উপর সরানো যাক, এবং queues সম্পর্কে কথা বলতে আসুন. 376 00:29:11,550 --> 00:29:15,680 এখানে মাধ্যমে স্ক্রোল করুন. 377 00:29:15,680 --> 00:29:19,340 সারি একটি স্ট্যাকের বন্ধ সহোদর. 378 00:29:19,340 --> 00:29:25,380 সুতরাং স্ট্যাকের মধ্যে, যে শেষ স্থাপন করা হয়েছে 379 00:29:25,380 --> 00:29:28,810 প্রথম জিনিষ পরে ফাইলগুলি পুনরুদ্ধার করা. 380 00:29:28,810 --> 00:29:33,600 আমরা এই শেষ সালে, প্রথম আউট, বা LIFO, ক্রম পেয়েছেন. 381 00:29:33,600 --> 00:29:38,390 যেহেতু এ কিউ, হিসাবে আপনি যখন আপনি লাইনে দাঁড়িয়ে থেকে আশা করছি চাই, 382 00:29:38,390 --> 00:29:41,980 প্রথম ব্যক্তি লাইন পেতে, প্রথম জিনিস কিউ 'র মধ্যে পেতে, 383 00:29:41,980 --> 00:29:47,630 প্রথম যে কাজটা সারি থেকে উদ্ধার করা হয়. 384 00:29:47,630 --> 00:29:51,490 Queues এছাড়াও ঘন ঘন ব্যবহৃত হয় যখন আমরা গ্রাফ সঙ্গে লেনদেন করছেন, 385 00:29:51,490 --> 00:29:55,560 ভালো আমরা সম্পর্কে সংক্ষেপে বললাম stacks সঙ্গে, 386 00:29:55,560 --> 00:30:00,260 এবং queues এছাড়াও অন্যান্য জিনিস এক গুচ্ছ জন্য সুবিধাজনক. 387 00:30:00,260 --> 00:30:06,180 একটা জিনিষ যে আসে প্রায়ই আপ বজায় রাখার জন্য যেমন চেষ্টা, না, 388 00:30:06,180 --> 00:30:12,310 একটি উপাদানের অনুসারে সাজানো তালিকা. 389 00:30:12,310 --> 00:30:17,650 এবং আপনি একটি অ্যারের সাথে এটা করতে পারেন. আপনি একটি জিনিষ সাজানো একটি অ্যারের মধ্যে তালিকা তৈরি করতে পারেন, 390 00:30:17,650 --> 00:30:20,650 কিন্তু যেখানে যে পায় প্রবঞ্চক তারপর হয় আপনি সবসময় খুঁজে পেতে আছে 391 00:30:20,650 --> 00:30:26,160 উপযুক্ত স্থান পরবর্তী জিনিস সন্নিবেশ করুন. 392 00:30:26,160 --> 00:30:28,250 তাই আপনি যদি 10 এর মাধ্যমে সংখ্যার একটি অ্যারের, 1 আছে, 393 00:30:28,250 --> 00:30:31,630 এবং তারপর আপনি যে সব নম্বর 1 থেকে 100 এর মাধ্যমে যে প্রসারিত করতে চান, 394 00:30:31,630 --> 00:30:33,670 এবং আপনি র্যান্ডম ক্রম এই সংখ্যা পেয়ে থাকেন এবং সবকিছু রাখতে চেষ্টা 395 00:30:33,670 --> 00:30:40,650 সাজানো হিসাবে আপনি দিয়ে যেতে, আপনি শেষ পর্যন্ত নাড়াচাড়া অনেক কাজ হচ্ছে. 396 00:30:40,650 --> 00:30:43,910 সঙ্গে queues এবং অন্তর্নিহিত ডাটা স্ট্রাকচার নির্দিষ্ট ধরনের কিছু নির্দিষ্ট, 397 00:30:43,910 --> 00:30:46,670 আপনি আসলে রাখা এটি মোটামুটি সহজ করতে পারেন. 398 00:30:46,670 --> 00:30:50,640 আপনি কিছু যোগ করুন এবং তারপর প্রতিটি সময় পুরো বিষয় রদবদল করতে হবে না. 399 00:30:50,640 --> 00:30:56,770 তাছাড়াও আপনি কি আশেপাশে অভ্যন্তরীণ উপাদানের নড়ন অনেক কাজ আছে. 400 00:30:56,770 --> 00:31:02,990 Queue.c এ অধ্যায় কোড সালে - যখন আমরা একটি কিউ তাকান, দেখতে পাবেন আপনি যে - 401 00:31:02,990 --> 00:31:10,950 struct যে আমরা আপনাকে দিয়েছি struct হয় যে আমরা একটি স্ট্যাক জন্য আপনার দেওয়া সত্যিই অনুরূপ. 402 00:31:10,950 --> 00:31:13,770 >> এই এক ব্যতিক্রম আছে, এবং যে এক ব্যতিক্রম 403 00:31:13,770 --> 00:31:21,700 হয় যে আমরা এই অতিরিক্ত পূর্ণসংখ্যা নামক মাথা আছে, 404 00:31:21,700 --> 00:31:28,120 এবং এখানে মাথা কিউ প্রধান সম্পর্কে অবগত থাকার জন্য, 405 00:31:28,120 --> 00:31:32,160 বা সারিতে প্রথম উপাদান. 406 00:31:32,160 --> 00:31:37,470 একটি স্ট্যাক সঙ্গে, আমরা উপাদান সম্পর্কে অবগত যে আমরা পুনরুদ্ধার সম্পর্কে রাখতে সক্ষম, 407 00:31:37,470 --> 00:31:40,800 অথবা স্ট্যাকের উপরে, শুধু আকার ব্যবহার করে, 408 00:31:40,800 --> 00:31:44,220 সঙ্গে একটি কিউ যেহেতু, আমরা দুই বিপরীত প্রান্তে নিয়ে ভোগ করছি. 409 00:31:44,220 --> 00:31:49,000 আমরা এ প্রান্তে জিনিষ বন্ধনরজ্জু চেষ্টা করছেন, কিন্তু করছি তারপর সামনে থেকে জিনিষ ফেরত. 410 00:31:49,000 --> 00:31:54,640 মাথা যাতে কার্যকরভাবে,, আমরা কিউ শুরুর সূচক আছে, 411 00:31:54,640 --> 00:31:58,920 এবং আকার দেয় কিউ শেষে সূচী আমাদের 412 00:31:58,920 --> 00:32:03,730 যাতে আমরা মাথা থেকে জিনিষ এবং পুনরুদ্ধার লেঙ্গুড় উপর জিনিস যোগ করতে পারেন. 413 00:32:03,730 --> 00:32:06,890 সঙ্গে স্ট্যাকের যেহেতু, আমরা শুধুমাত্র কখনও স্ট্যাকের শীর্ষ সঙ্গে জড়িত. 414 00:32:06,890 --> 00:32:08,900 আমরা স্ট্যাকের নীচে অ্যাক্সেস ছিল না. 415 00:32:08,900 --> 00:32:12,220 আমরা শুধুমাত্র উপরের জিনিষ যোগ এবং গ্রহণ করে উপরের মধ্যে জিনিষ বন্ধ 416 00:32:12,220 --> 00:32:17,470 তাই আমরা যে আমাদের struct ভিতরে অতিরিক্ত ক্ষেত্র প্রয়োজন ছিল না. 417 00:32:17,470 --> 00:32:20,590 কিন্তু সাধারণত যে জানার জন্য? 418 00:32:20,590 --> 00:32:27,670 ঠিক আছে. হ্যাঁ, Charlotte? [Charlotte, অপাচ্য] 419 00:32:27,670 --> 00:32:32,660 [Hardison] এটা একটি বড় প্রশ্ন, এবং যে ছিল এক যে বক্তৃতা মধ্যে নিয়ে এসেছেন. 420 00:32:32,660 --> 00:32:36,290 হয়তো কয়েকটি উদাহরণ দিয়ে হাঁটা চিত্রিত করা হবে কেন? 421 00:32:36,290 --> 00:32:41,400 আমরা কিউ প্রধান হিসাবে [0] স্ট্রিং ব্যবহার করতে ইচ্ছুক না. 422 00:32:41,400 --> 00:32:46,770 >> যাতে আমরা আমাদের কিউ কল্পনা আছে, আমরা একে কিউ কল চলুন. 423 00:32:46,770 --> 00:32:49,210 আরম্ভে, যখন আমরা তা করেছি instantiated, 424 00:32:49,210 --> 00:32:53,330 যখন আমরা তা করেছি ঘোষিত, আমরা কিছু সক্রিয়া নি. 425 00:32:53,330 --> 00:32:56,790 এটা সব আবর্জনা. তাই আমরা নিশ্চিত যে আমরা আরম্ভ করা অবশ্যই চাই 426 00:32:56,790 --> 00:33:00,950 উভয় মাপ এবং মাথা ক্ষেত্র 0, কিছু যুক্তিসঙ্গত হতে হবে. 427 00:33:00,950 --> 00:33:05,770 আমরা এগিয়ে যেতে এবং আমাদের সারিতে উপাদান নাল আউট করতে পারে নি. 428 00:33:05,770 --> 00:33:09,930 এবং এই চিত্রটি উপযুক্ত করা, বিজ্ঞপ্তি যে এখন আমাদের কিউ শুধুমাত্র তিনটি উপাদানের ধরে রাখতে পারেন; 429 00:33:09,930 --> 00:33:13,150 যেহেতু আমাদের স্ট্যাকের চার রাখা যায়নি, আমাদের কিউ শুধুমাত্র তিনটি ধরে রাখতে পারেন. 430 00:33:13,150 --> 00:33:18,680 এবং যে ঠিক এর ডায়াগ্রাম ফিট করা. 431 00:33:18,680 --> 00:33:26,150 প্রথম যে কাজটা এখানে এইরকম ঘটনা আমরা স্ট্রিং "হাই" সারিবদ্ধ. 432 00:33:26,150 --> 00:33:30,380 এবং ঠিক মত আমরা স্ট্যাকের সঙ্গে করেছিল, কিছুই এখানে বিভিন্ন ভয়ঙ্কর, 433 00:33:30,380 --> 00:33:39,230 আমরা এ স্ট্রিং [0] এবং 1 দ্বারা আমাদের আকার বাড়ায় উপর স্ট্রিং নিক্ষেপ করা. 434 00:33:39,230 --> 00:33:42,720 আমরা সারিবদ্ধ "বিদায়", এটা করা হয়. 435 00:33:42,720 --> 00:33:45,870 তাই বেশিরভাগ অংশের জন্য একটি স্ট্যাক মত দেখাচ্ছে. 436 00:33:45,870 --> 00:33:53,230 আমরা শুরু এখানে বন্ধ নতুন উপাদান, নতুন উপাদান, আকার রাখে ঊর্ধ্বগামী. 437 00:33:53,230 --> 00:33:56,330 কি এই সময়ে যখন আমরা কিছু dequeue চান? 438 00:33:56,330 --> 00:34:01,280 যখন আমরা dequeue করতে চান, যা উপাদান যে আমরা dequeue চান? 439 00:34:01,280 --> 00:34:04,110 [বেসিল] টেলিভিশন [0]. >> জিরো. ঠিক অধিকার, বেসিল. 440 00:34:04,110 --> 00:34:10,960 আমরা প্রথম পংক্তি, এই এক, "হাই" পরিত্রাণ পেতে চান. 441 00:34:10,960 --> 00:34:13,170 কি ছিল অন্যান্য জিনিস পরিবর্তিত? 442 00:34:13,170 --> 00:34:17,010 যখন আমরা স্ট্যাকের কিছু বন্ধ popped লক্ষ্য করুন, আমরা শুধু আকার পরিবর্তন, 443 00:34:17,010 --> 00:34:22,080 কিন্তু এখানে, আমরা যে পরিবর্তনের একটি দম্পতি পেয়েছেন. 444 00:34:22,080 --> 00:34:27,440 নেই শুধু আকার পরিবর্তন, কিন্তু মাথা পরিবর্তন আছে. 445 00:34:27,440 --> 00:34:31,020 এই কোরআন এর বিন্দু পূর্ববর্তী ফিরে যাচ্ছে: 446 00:34:31,020 --> 00:34:38,699 কেন আমরা এই মাথা হিসাবে ভাল আছে? 447 00:34:38,699 --> 00:34:42,110 এটা এখন জানার জন্য, Charlotte? এর >> কাইন্ড. 448 00:34:42,110 --> 00:34:47,500 [Hardison] কাইন্ড অফ? সুতরাং কি ঘটেছিল যখন আমরা dequeued? 449 00:34:47,500 --> 00:34:54,340 কি মাথা না যে এখন খুবই মজার? 450 00:34:54,340 --> 00:34:56,449 [Charlotte] ওহ, কারণ এটি পরিবর্তিত - ঠিক আছে. আমি বুঝতে পেরেছি. 451 00:34:56,449 --> 00:35:02,090 কারণ মাথা - যেখানে মাথা অবস্থান শর্তাবলী পরিবর্তনের প্রতি নির্দেশ করা হয়. 452 00:35:02,090 --> 00:35:07,200 তাই এটা এখন আর সবসময় শূন্য সূচক এক. >> হ্যাঁ, ঠিক. 453 00:35:07,200 --> 00:35:17,660 যা ঘটেছে তা ছিল যদি উচ্চ উপাদান dequeueing 454 00:35:17,660 --> 00:35:20,590 কাজ এবং আমরা এই মাথা ক্ষেত্র কি না ছিল 455 00:35:20,590 --> 00:35:26,880 কারণ সবসময় আমরা আমাদের কিউ 0 সূচক মাথা এ ছিল এই স্ট্রিং কলিং, 456 00:35:26,880 --> 00:35:30,170 তারপর আমরা কিউ বাকি নিচে নামান আছে চাই. 457 00:35:30,170 --> 00:35:36,010 আমরা থেকে "বিদায়" থেকে নামান স্ট্রিং [1] স্ট্রিং [0] থাকতে চাই. 458 00:35:36,010 --> 00:35:38,760 এবং স্ট্রিং [2] নিচে স্ট্রিং [1]. 459 00:35:38,760 --> 00:35:43,050 এবং আমরা উপাদানের সম্পূর্ণ তালিকার জন্য এই করতে চাই, 460 00:35:43,050 --> 00:35:45,110 উপাদান সম্পূর্ণ অ্যারে. 461 00:35:45,110 --> 00:35:50,490 এবং যখন আমরা একটি অ্যারের সাথে এই করছি, যে পায় সত্যিই ব্যয়বহুল. 462 00:35:50,490 --> 00:35:53,340 তাই এখানে, এটি একটি বড় চুক্তি না. আমরা শুধু আমাদের অ্যারের মধ্যে তিনটি উপাদান আছে. 463 00:35:53,340 --> 00:35:57,230 কিন্তু আমরা যদি একটি হাজার উপাদানের একটি কিউ অথবা একটি মিলিয়ন উপাদান ছিল, 464 00:35:57,230 --> 00:36:00,060 এবং তারপর হঠাৎ সব, আমরা শুরু dequeue একটি গুচ্ছ তৈরীর একটি লুপ কল সব, 465 00:36:00,060 --> 00:36:03,930 জিনিষ সত্যিই হয় মন্দীভূত হিসাবে সবকিছু জনতার ক্রমাগত নিচে যাচ্ছে. 466 00:36:03,930 --> 00:36:07,320 আপনি কি জানেন 1 দ্বারা, স্থানান্তর নামান, 1, স্থানান্তর দ্বারা 1, 1 দ্বারা স্থানান্তর. 467 00:36:07,320 --> 00:36:13,650 পরিবর্তে, আমরা এই মাথা ব্যবহার, আমরা এটি একটি "পয়েন্টার" যদিও এটা সত্যিই একটি পয়েন্টার না 468 00:36:13,650 --> 00:36:16,430 কঠোর অর্থে; এটি একটি পয়েন্টার টাইপ না. 469 00:36:16,430 --> 00:36:19,410 এটা কোন int * অথবা একটি গৃহস্থালি * অথবা যে ভালো কিছু নয়. 470 00:36:19,410 --> 00:36:28,930 কিন্তু এটি অথবা আমাদের প্রতি নির্দেশ কিউ প্রধান কিনা তা নির্দেশ করে. হাঁ? 471 00:36:28,930 --> 00:36:38,800 >> [ছাত্র] কিভাবে dequeue জন্য শুধু ঘুমাইয়া মাথা এ যা কিছু থাকে জানেন? 472 00:36:38,800 --> 00:36:43,620 [Hardison] কিভাবে dequeue কীভাবে বন্ধ পপ মাথা এ যাই হোক না কেন এর জানি? >> রাইট, হাঁ. 473 00:36:43,620 --> 00:36:49,050 >> কি তা আমি ঠিক যাই হোক না কেন এর প্রধান ক্ষেত্র ধার্য করা হয়. 474 00:36:49,050 --> 00:36:52,710 তাই এই প্রথম ক্ষেত্রে, যদি আমরা চেহারা ডান এখানে, 475 00:36:52,710 --> 00:36:55,690 আমাদের প্রধান 0, 0 সূচক. >> রাইট. 476 00:36:55,690 --> 00:37:00,500 [Hardison] এটা ঠিক বলেছেন ঠিক আছে, ভাল, 0 সূচক এ উপাদান, স্ট্রিং "হাই", 477 00:37:00,500 --> 00:37:03,050 আমাদের এ কিউ প্রধান উপাদান. 478 00:37:03,050 --> 00:37:05,570 তাই আমরা যে লোক dequeue চলুন. 479 00:37:05,570 --> 00:37:09,800 এবং যে যে উপাদান আহ্বানকারী ফিরে পরার হবে. 480 00:37:09,800 --> 00:37:14,540 হ্যাঁ, সাদ? >> তাই মূলত মাথা সেট করে - যেখানে আপনি এটা সূচক যাচ্ছেন? 481 00:37:14,540 --> 00:37:17,750 এটা এটি শুরু? >> হ্যাঁ. >> ঠিক আছে. 482 00:37:17,750 --> 00:37:22,900 [Hardison] এটা হয়ে উঠছে আমাদের অ্যারের জন্য নতুন শুরু. 483 00:37:22,900 --> 00:37:28,930 সুতরাং যখন আপনি কিছু dequeue, সব আপনি করতে হবে তা হচ্ছে সূচক q.head এ উপাদান অ্যাক্সেস, 484 00:37:28,930 --> 00:37:32,240 এবং যে উপাদান যে আপনি চান dequeue হবে. 485 00:37:32,240 --> 00:37:34,930 আপনাকে মাপ হ্রাস আছে. 486 00:37:34,930 --> 00:37:39,430 আমরা কিছুক্ষণের মধ্যে যেখানে জিনিসপত্র পেতে এই সঙ্গে একটি সামান্য চতুর দেখতে পাবেন. 487 00:37:39,430 --> 00:37:46,520 আমরা dequeue, এবং এখন, যদি আমরা আবার সারিবদ্ধ, 488 00:37:46,520 --> 00:37:51,300 যেখানে আমরা সারিবদ্ধ? 489 00:37:51,300 --> 00:37:55,000 যেখানে পরবর্তী উপাদান আছে আমাদের সারিতে যেতে? 490 00:37:55,000 --> 00:37:57,980 বলুন, আমরা স্ট্রিং "সি এস" সারিবদ্ধ চান. 491 00:37:57,980 --> 00:38:02,240 যা সূচক এটি যেতে হবে? [ছাত্রদের] টেলিভিশন [2]. >> দুই. 492 00:38:02,240 --> 00:38:04,980 কেন না এবং 2 0? 493 00:38:04,980 --> 00:38:13,570 [বেসিল] যেহেতু এখন মাথা 1 টি, তাই তালিকা শুরু ভালো যে? 494 00:38:13,570 --> 00:38:21,220 [Hardison] ডান. এবং কি তালিকার শেষে উল্লেখ করে? 495 00:38:21,220 --> 00:38:23,290 হয়েছিল কি আমরা আমাদের কিউ শেষে বোঝান ব্যবহার করে? 496 00:38:23,290 --> 00:38:25,970 প্রধান কিউ আমাদের মাথা, আমাদের কিউ শুরুতে. 497 00:38:25,970 --> 00:38:29,530 আমাদের কিউ শেষে কি? [ছাত্রদের] ফাইলের আকার. >> ফাইলের আকার, ঠিক. 498 00:38:29,530 --> 00:38:36,360 তাই আমাদের নতুন উপাদান আকার এ যান, এবং অনেক উপাদান আছে যা আমরা খুলে মাথা এ খসা. 499 00:38:36,360 --> 00:38:45,390 যখন আমরা পরবর্তী উপাদান সারিবদ্ধ, আমরা এ মাপ এটাকে নির্বাণ. 500 00:38:45,390 --> 00:38:48,530 আপনি [ছাত্র] আগে রাখা যে যদিও মধ্যে, আকার ছিল 1 অধিকার,? 501 00:38:48,530 --> 00:38:55,690 [Hardison] ডান. তাই নয় এ মাপ. ফাইলের আকার + +, কিন্তু +1 + মাথা. 502 00:38:55,690 --> 00:38:59,990 কারণ আমরা মাথা পরিমাণ সবকিছু চলে যায়. 503 00:38:59,990 --> 00:39:14,270 সুতরাং এখানে এখন, আমরা মাপ 1 সারিতে সূচক 1 এ যে শুরু পেয়েছেন. 504 00:39:14,270 --> 00:39:20,730 লাঙ্গুলযুক্ত করা হয় সূচক 2. হ্যাঁ? 505 00:39:20,730 --> 00:39:25,780 >> [ছাত্র] তাহলে কি হবে যখন আপনি dequeue স্ট্রিং [0], এবং মেমরি স্ট্রিং 'স্লট 506 00:39:25,780 --> 00:39:29,420 শুধু emptied মূলত, পেতে, বা শুধু বিস্মৃত? 507 00:39:29,420 --> 00:39:34,700 [Hardison] হ্যাঁ. এই অর্থে, আমরা তাদের করছি বিস্মরণ. 508 00:39:34,700 --> 00:39:42,640 যদি আমরা তাদের জন্য কপি সংরক্ষণ করা হয় - 509 00:39:42,640 --> 00:39:46,310 অনেক ডাটা স্ট্রাকচার প্রায়ই তাদের উপাদানের নিজের কপি সংরক্ষণ করবে 510 00:39:46,310 --> 00:39:51,760 সুতরাং যে ব্যক্তি তথ্য গঠন ও পরিচালনার জন্য চিন্তা করবেন না 511 00:39:51,760 --> 00:39:53,650 সম্পর্কে যেখানে সমস্ত পয়েন্টার যাচ্ছি. 512 00:39:53,650 --> 00:39:56,000 তথ্য কাঠামো কিছু নিয়ে কথা যাও সব কপিতে, তসবিহ, 513 00:39:56,000 --> 00:39:59,580 নিশ্চিত করুন যে সব সুসংগত করা চলতেই থাকে. 514 00:39:59,580 --> 00:40:03,140 তবে, এই ক্ষেত্রে, ডাটা স্ট্রাকচার, শুধু জন্য সরলতা, 515 00:40:03,140 --> 00:40:05,580 কপি কিছু যে আমরা তাদের মধ্যে সংরক্ষণ করছেন না হয়. 516 00:40:05,580 --> 00:40:08,630 [ছাত্র] সুতরাং এটি একটি ধারাবাহিক অ্যারে -? >> হ্যাঁ. 517 00:40:08,630 --> 00:40:14,350 যদি আমরা কি এই সংজ্ঞা কাঠামো ছিল ফিরে, এটা. 518 00:40:14,350 --> 00:40:19,110 এটি শুধু একটি অ্যারের মান ভালো আপনি দেখা করেছি, 519 00:40:19,110 --> 00:40:24,280 গৃহস্থালি * s এর একটি অ্যারে. 520 00:40:24,280 --> 00:40:26,340 কিন্তু যে -? >> হ্যাঁ, আমি হতাশ ছিল 521 00:40:26,340 --> 00:40:29,130 যদি আপনি অবশেষে মেমরি রান আউট হবেন কতক কতক যাও, 522 00:40:29,130 --> 00:40:32,330 যদি আপনি এই সমস্ত আপনার অ্যারের মধ্যে খালি দাগ আছে? 523 00:40:32,330 --> 00:40:36,390 [Hardison] হ্যাঁ, এটা একটা ভালো পয়েন্ট. 524 00:40:36,390 --> 00:40:41,530 >> যদি আমরা কি ঘটেছে এর চেহারা এ এখন এই সময়ে, 525 00:40:41,530 --> 00:40:46,350 আমরা আমাদের কিউ ভরা আপ করেছি, এটা মনে হচ্ছে. 526 00:40:46,350 --> 00:40:50,390 কিন্তু আমরা আমাদের কিউ সত্যিই পূরণ না আপ 527 00:40:50,390 --> 00:40:57,710 কারণ আমরা এই সারির যে এর আকার 2 আছে, কিন্তু এটি সূচক 1 টায় শুরু হয়, 528 00:40:57,710 --> 00:41:02,160 কারণ যে যেখানে আমাদের মাথা পয়েন্টার হয়. 529 00:41:02,160 --> 00:41:08,400 ভালো লেগেছে আপনি বলছে ছিল, যে স্ট্রিং এ উপাদান [0], 0 সূচক, সত্যিই আছে না. 530 00:41:08,400 --> 00:41:10,450 এটা আর আমাদের মধ্যে উপস্থিত না. 531 00:41:10,450 --> 00:41:16,460 আমরা শুধুমাত্র যান এবং এটি যখন আমরা dequeued মুছে ফেলা হয়েছে কি না বিরক্ত. 532 00:41:16,460 --> 00:41:18,700 সুতরাং যদিও এটা দেখে মনে হচ্ছে আমরা মেমরি রান আউট করেছি, আমরা সত্যিই আছে না. 533 00:41:18,700 --> 00:41:23,270 যে স্পট উপলব্ধ জন্য আমাদের ব্যবহার করার জন্য. 534 00:41:23,270 --> 00:41:29,310 যথাযথ আচরণ, যদি আমরা চেষ্টা dequeue কিছু ছিল প্রথম 535 00:41:29,310 --> 00:41:34,420 "বিদায়" চান, যে বিদায় প্রস্থান করা হবে. 536 00:41:34,420 --> 00:41:38,460 এখন আমাদের কিউ সূচক 2 টায় শুরু হয় এবং মাপ হল 1. 537 00:41:38,460 --> 00:41:42,240 এবং এখন যদি আমরা এবং আবার চেষ্টা করুন কিছু সারিবদ্ধ, 50 বলে, 538 00:41:42,240 --> 00:41:47,880 50 এই স্পট মধ্যে সূচক 0 এ যেতে হবে 539 00:41:47,880 --> 00:41:51,270 কারণ এটা এখনও আমাদের জন্য উপলব্ধ. হ্যাঁ, সাদ? 540 00:41:51,270 --> 00:41:53,630 [Saad] স্বয়ংক্রিয়ভাবে যে কি ঘটবে? 541 00:41:53,630 --> 00:41:56,150 [Hardison] এটা বেশ স্বয়ংক্রিয়ভাবে না ঘটবে. আপনি গণিত কি আছে 542 00:41:56,150 --> 00:42:00,380 এটি কাজ করতে, কিন্তু মূলত আমরা কি কাজ করেছেন তা আমরা প্রায় আবৃত করেছি. 543 00:42:00,380 --> 00:42:04,070 [Saad] এবং এটা ঠিক আছে যদি এই এটি মাঝখানে একটা গর্ত আছে? 544 00:42:04,070 --> 00:42:08,720 [Hardison] এটা যদি আমরা গণিত আউট সঠিকভাবে কাজ করতে পারে. 545 00:42:08,720 --> 00:42:15,470 >> এবং এটি সক্রিয় করে যে এটা আসলে যে mod অপারেটর সাথে হার্ড না. 546 00:42:15,470 --> 00:42:20,040 তাই ঠিক মত আমরা সিজার এবং ক্রিপ্টো স্টাফ সঙ্গে কি, 547 00:42:20,040 --> 00:42:25,190 mod ব্যবহার করে, আমরা জিনিস চারপাশে মোড়ানো যাও এবং পেতে পারেন বর্তা 548 00:42:25,190 --> 00:42:28,090 কাছাকাছি এবং আশেপাশে এবং প্রায় সঙ্গে আমাদের কিউ, 549 00:42:28,090 --> 00:42:32,180 পালন যে মাথা পয়েন্টার কাছাকাছি চলন্ত. 550 00:42:32,180 --> 00:42:38,840 উল্লেখ্য যে আকার সর্বদা সম্মান কিউ 'র মধ্যে প্রকৃত উপাদানের সংখ্যা. 551 00:42:38,840 --> 00:42:43,110 এবং এটি শুধু মাথা পয়েন্টার যে রাখে সাইকেল মাধ্যমে. 552 00:42:43,110 --> 00:42:49,660 যদি আমরা কি ঘটেছে এখানে তাকান, যদি আমরা শুরুতে ফিরে যান, 553 00:42:49,660 --> 00:42:55,020 এবং শুধুমাত্র আপনার দেখা মাথা কি হবে 554 00:42:55,020 --> 00:42:58,240 যখন আমরা কিছু সারিবদ্ধ, মাথা কিছুই ঘটেছে. 555 00:42:58,240 --> 00:43:00,970 যখন আমরা অন্য কিছু enqueued, মাথা কিছুই ঘটেছে. 556 00:43:00,970 --> 00:43:04,130 যত তাড়াতাড়ি আমরা কিছু dequeued, মাথা এক দ্বারা যায়. 557 00:43:04,130 --> 00:43:06,600 আমরা কিছু enqueued, মাথা কিছুই ঘটে. 558 00:43:06,600 --> 00:43:11,060 যখন আমরা কিছু dequeue, হঠাৎ সব মাথা মান বৃদ্ধি হয়. 559 00:43:11,060 --> 00:43:14,660 যখন আমরা কিছু সারিবদ্ধ, মাথা কিছুই ঘটে. 560 00:43:14,660 --> 00:43:20,240 >> যদি আমরা আবার কিছু dequeue ছিল কি এই সময়ে ঘটতে পারে? 561 00:43:20,240 --> 00:43:23,240 কোন চিন্তা? কি মাথার চান? 562 00:43:23,240 --> 00:43:27,190 কি মাথার উচিত 563 00:43:27,190 --> 00:43:32,990 যদি আমরা অন্য কিছু dequeue ছিল? 564 00:43:32,990 --> 00:43:35,400 মাথা সূচক 2 এ অধিকার এখন হয়, 565 00:43:35,400 --> 00:43:38,920 যার মানে কিউ 'র প্রধান হয় স্ট্রিং [2]. 566 00:43:38,920 --> 00:43:44,280 [ছাত্র] কোন 0 ফেরৎ? >> এটা 0 ফিরে উচিত. এটি চারিদিকে মোড়ানো ফিরে ঠিক করা উচিত. 567 00:43:44,280 --> 00:43:48,440 এ পর্যন্ত, প্রতিটি সময় আমরা dequeue বলা হয়, আমরা আসছি মাথার এক যোগ, 568 00:43:48,440 --> 00:43:50,960 মাথার এক যোগ, মাথার এক যোগ, মাথার এক যোগ. 569 00:43:50,960 --> 00:43:58,400 যত তাড়াতাড়ি যে মাথা পয়েন্টার আমাদের অ্যারের মধ্যে শেষ সূচক বল, 570 00:43:58,400 --> 00:44:05,650 তারপর আমরা একে শুরুতে চারপাশে মোড়ানো ফেরত, 0 ফিরে যান. 571 00:44:05,650 --> 00:44:09,900 [Charlotte] কি একটি স্ট্যাকের মধ্যে কিউ ক্ষমতা নির্ধারণ করে? 572 00:44:09,900 --> 00:44:13,120 [Hardison] এই ক্ষেত্রে, আমরা ঠিক করেছি একটি # সংজ্ঞায়িত করা হয়েছে ধ্রুবক ব্যবহার করে. >> ঠিক আছে. 573 00:44:13,120 --> 00:44:19,590 [Hardison] প্রকৃত. গ ফাইল, আপনি কি এটা একটা সামান্য বিট দিয়ে যেতে পারে এবং গোবর 574 00:44:19,590 --> 00:44:21,710 এবং এটি হিসাবে বড় অথবা হিসাবে সামান্য হিসাবে আপনি চান না. 575 00:44:21,710 --> 00:44:25,310 [Charlotte] সুতরাং যখন আপনি এটি একটি কিউ তৈরি করছেন কিভাবে, আপনি কম্পিউটার জানি না 576 00:44:25,310 --> 00:44:29,120 কিভাবে আপনি বড় স্ট্যাকের হতে চান? 577 00:44:29,120 --> 00:44:31,700 [Hardison] এটা একটা বড় প্রশ্ন. 578 00:44:31,700 --> 00:44:34,800 উপায়ে একটি দম্পতি আছে. এক মাত্র এটা সংজ্ঞায়িত হয় সামনে 579 00:44:34,800 --> 00:44:42,050 এবং এই বলে যে এই সারির 4 উপাদান বা 50 বা উপাদান আছে 10,000 হবে. 580 00:44:42,050 --> 00:44:45,430 অন্যান্য উপায় কি হ্যাকার সংস্করণ ভাবেন করছেন না হয় 581 00:44:45,430 --> 00:44:52,310 এবং আপনার কিউ পরিবর্তনশীল হত্তয়া হিসাবে আরো অনেক ইন যোগ পেতে আছে ফাংশন তৈরি 582 00:44:52,310 --> 00:44:54,740 >> [Charlotte] সুতরাং প্রথম বিকল্পের সাথে যেতে কি সিনট্যাক্স, আপনি ব্যবহার করবেন 583 00:44:54,740 --> 00:44:57,830 যাও প্রোগ্রামকে স্পষ্টভাবে কি কিউ মাপ? 584 00:44:57,830 --> 00:45:04,780 [Hardison] আহ. তাই আসুন এই নামা. 585 00:45:04,780 --> 00:45:12,650 আমি stack.c এখানে এখনও নই, তাই আমি উপরে স্ক্রল আপ এখানে করছি না. 586 00:45:12,650 --> 00:45:17,920 এই অধিকার আপনি এখানে দেখতে পারেন? এই ক্ষমতা # 10 সংজ্ঞায়িত. 587 00:45:17,920 --> 00:45:24,600 এবং এই প্রায় একই সঠিক বাক্য গঠন যে আমরা কিউ জন্য আছে. 588 00:45:24,600 --> 00:45:28,390 এ কিউ ছাড়া, আমরা এখানে যে অতিরিক্ত struct ক্ষেত্রের পেয়েছেন. 589 00:45:28,390 --> 00:45:32,760 [Charlotte] ওহ, আমি ভাবলাম ক্ষমতা স্ট্রিং জন্য ক্ষমতা বোঝানো. 590 00:45:32,760 --> 00:45:36,770 [Hardison] আহ. >> এটাই শব্দ সর্বাধিক দৈর্ঘ্য. >> বুঝেছি. 591 00:45:36,770 --> 00:45:41,180 হাঁ. এখানে ক্ষমতা - যে একটি মহান বিন্দু. 592 00:45:41,180 --> 00:45:44,000 এবং এই এমন কিছু বিষয় যা এর প্রবঞ্চক 593 00:45:44,000 --> 00:45:49,480 কারণ আমরা এখানে কি ঘোষণা করেছেন তা গৃহস্থালি * s এর একটি অ্যারে. 594 00:45:49,480 --> 00:45:52,770 পয়েন্টার একটি অ্যারে. 595 00:45:52,770 --> 00:45:56,690 এই অক্ষর একটি শ্রেণীবিন্যাস. 596 00:45:56,690 --> 00:46:01,690 এটা সম্ভবত আপনি কি যখন আপনি ফাইলটি করছি আপনার জন্য বাফার প্রকাশক পাচ্ছি, I / O, 597 00:46:01,690 --> 00:46:06,840 যখন আপনি স্ট্রিং তৈরি করছি নিজে স্ট্যাকের উপর. 598 00:46:06,840 --> 00:46:09,090 যাইহোক, আমরা কি এখানে পেয়েছেন হয় গৃহস্থালি * s এর একটি অ্যারে. 599 00:46:09,090 --> 00:46:13,400 এটা পয়েন্টার একটি অ্যারে. 600 00:46:13,400 --> 00:46:18,350 বাস্তবিক, যদি আমরা জুম আউট এবং আমরা তাকান কি এখানে হচ্ছে 601 00:46:18,350 --> 00:46:23,140 উপস্থাপনার মধ্যে, আপনি যে প্রকৃত উপাদান, চরিত্র তথ্য দেখুন 602 00:46:23,140 --> 00:46:26,180 অ্যারের মধ্যে নিজে সঞ্চিত না হয়. 603 00:46:26,180 --> 00:46:42,690 আমাদের এখানে কি অ্যারের মধ্যে সঞ্চিত হয় পয়েন্টার অক্ষর তথ্য যাও. 604 00:46:42,690 --> 00:46:52,560 ঠিক আছে. তাই আমরা কিভাবে কিউ মাপ ঠিক স্ট্যাকের সঙ্গে দেখা হয় পছন্দ করেছি, 605 00:46:52,560 --> 00:46:58,670 আকার সর্বদা সম্মান কিউ 'র মধ্যে বর্তমানে উপাদানের সংখ্যা. 606 00:46:58,670 --> 00:47:02,720 2 enqueues পরে, আকার হল 2. 607 00:47:02,720 --> 00:47:07,110 আকার একটি dequeue পরে এখন হল 1. 608 00:47:07,110 --> 00:47:09,330 অন্য সারিবদ্ধ পরে আকার ব্যাক আপ হয় 2. 609 00:47:09,330 --> 00:47:12,340 তাই স্পষ্টভাবে আকার সারিতে উপাদানের সংখ্যা সম্মান করে, 610 00:47:12,340 --> 00:47:15,580 এবং তারপরে শুধু মাথা সাইকেল রাখে. 611 00:47:15,580 --> 00:47:20,210 এটা 0-1-2, 0-1-2, 0-1-2 থেকে যায়. 612 00:47:20,210 --> 00:47:25,620 এবং প্রত্যেক সময় আমরা dequeue কল, মাথা পয়েন্টার পরের সূচক যাও মান বৃদ্ধি হয়. 613 00:47:25,620 --> 00:47:29,930 এবং যদি আমার মাথা ধরে যেতে হয়, এটা প্রায় loops ফিরে যাও 0. 614 00:47:29,930 --> 00:47:34,870 সুতরাং যে, আমরা dequeue ফাংশন লিখতে পারেন. 615 00:47:34,870 --> 00:47:40,200 এবং আমরা সারিবদ্ধ ফাংশন জন্য পরিবর্তে আপনি না বাস্তবায়ন ছেড়ে যাচ্ছেন. 616 00:47:40,200 --> 00:47:45,880 >> যখন আমরা আমাদের dequeue কিউ একটি উপাদান আউট, 617 00:47:45,880 --> 00:47:55,490 কি ছিল প্রথম যে কাজটা করেছিলাম ড্যানিয়েল যখন আমরা শুরু stacks জন্য পপ ফাংশন লেখা? 618 00:47:55,490 --> 00:48:00,490 আমাকে এমন কারো জন্য যিনি এখনও উচ্চারিত না থেকে শুনতে. 619 00:48:00,490 --> 00:48:06,710 এর দেখতে দিন সাদ,, আপনি কি প্রথম ড্যানিয়েল জিনিস যখন তিনি লেখেন পপ হিসাবে কি কি মনে পড়ে? 620 00:48:06,710 --> 00:48:08,860 [Saad] ছিল, এখন পর্যন্ত এটি ছিল - >> এমন কিছু একটা জন্য পরীক্ষিত. 621 00:48:08,860 --> 00:48:12,140 [Saad] যদি আকার 0 চেয়ে বেশী. >> যথাযথভাবে. 622 00:48:12,140 --> 00:48:14,390 এবং কি জন্য যে টেস্টিং? 623 00:48:14,390 --> 00:48:19,090 [Saad] যে যদি অ্যারের ভিতরে কিছু আছে দেখতে পরীক্ষা ছিল. 624 00:48:19,090 --> 00:48:23,210 [Hardison] হ্যাঁ. ঠিক. সুতরাং আপনি স্ট্যাকের কিছু আউট করে যদি খালি পপ করতে পারবেন না. 625 00:48:23,210 --> 00:48:26,510 অনুরূপভাবে, আপনি একটি সারি থেকে কিছু না dequeue যদি এটা খালি করতে পারেন. 626 00:48:26,510 --> 00:48:30,420 কি প্রথম জিনিস আমরা এখানে আমাদের dequeue ফাংশন কি করা উচিত, আপনি কি মনে করেন না? 627 00:48:30,420 --> 00:48:33,860 [Saad] যদি আকার 0 তুলনায়? >> হ্যাঁ. 628 00:48:33,860 --> 00:48:37,710 এই ক্ষেত্রে, আসলে আমি ঠিক করেছি যদি দেখতে 0 পরীক্ষিত. 629 00:48:37,710 --> 00:48:42,240 যদি 0, আমরা নাল ফিরে আসতে পারেন. 630 00:48:42,240 --> 00:48:45,280 কিন্তু সঠিক একই যুক্তি. 631 00:48:45,280 --> 00:48:49,110 এই দিন এর সঙ্গে অবিরত. 632 00:48:49,110 --> 00:48:54,600 যদি আকার 0 নয়, যেখানে উপাদান হল যে আমরা dequeue চান? 633 00:48:54,600 --> 00:48:58,550 [Saad] এ মাথা? >> যথাযথভাবে. 634 00:48:58,550 --> 00:49:01,720 আমরা শুধু আমাদের বৈঠাচালনা সারিতে প্রথম উপাদান বের করতে পারেন 635 00:49:01,720 --> 00:49:07,040 প্রধান উপাদান দ্বারা এ অ্যাক্সেস. 636 00:49:07,040 --> 00:49:14,630 কিছুই ছবি. 637 00:49:14,630 --> 00:49:19,620 এর পরে, আমরা কি করা উচিত? আছে কি? 638 00:49:19,620 --> 00:49:23,740 অন্য যে জিনিস সম্পর্কে আমরা dequeue মধ্যে সায়ীদ কী ছিল? 639 00:49:23,740 --> 00:49:28,130 দুটি ব্যাপার ঘটতে থাকে, কারণ আমাদের কিউ পরিবর্তিত হয়েছে. 640 00:49:28,130 --> 00:49:35,640 [ড্যানিয়েল] মাপ হ্রাস করুন. >> আমরা মাপ হ্রাস করা এবং মাথা বৃদ্ধি আছে? ঠিক. 641 00:49:35,640 --> 00:49:40,600 মাথা বৃদ্ধি, আমরা অন্ধভাবে মাথা না, মনে রাখবেন বাড়াতে পারেন. 642 00:49:40,600 --> 00:49:45,080 আমরা ঠিক না queue.head করতে পারেন +. 643 00:49:45,080 --> 00:49:51,630 আমরা আরও ক্ষমতা দ্বারা এই mod অন্তর্ভুক্ত আছে. 644 00:49:51,630 --> 00:49:54,740 এবং কেন ক্ষমতা দ্বারা আমরা স্টেলা mod,? 645 00:49:54,740 --> 00:49:58,680 [স্টেলা] যেহেতু এটি চারিদিকে মোড়ানো আছে. >> যথাযথভাবে. 646 00:49:58,680 --> 00:50:04,750 আমরা ক্ষমতা দ্বারা mod কারণ এটি যাও যাও 0 চারপাশে ফিরে মোড়ানো আছে. 647 00:50:04,750 --> 00:50:07,400 এই সময়ে সুতরাং এখন, আমরা কি ড্যানিয়েল বলেন করতে পারেন. 648 00:50:07,400 --> 00:50:12,700 আমরা মাপ হ্রাস করতে পারেন. 649 00:50:12,700 --> 00:50:29,170 এবং তারপর আমরা মাত্র উপাদান কিউ 'র শীর্ষে ছিল যে ফিরে আসতে পারেন. 650 00:50:29,170 --> 00:50:34,000 দেখে মনে হচ্ছে প্রথম এ ধরনের খুঁতখুঁতে. আপনি একটি প্রশ্ন থাকতে পারে. দুঃখিত? 651 00:50:34,000 --> 00:50:37,260 >> [স্যাম] কেন কিউ 'র শীর্ষে এর প্রথম? যেখানে যে কোনদিকে? 652 00:50:37,260 --> 00:50:42,480 [Hardison] এটা নিচ থেকে চতুর্থ লাইন থেকে আসে. 653 00:50:42,480 --> 00:50:46,060 পরে আমরা নিশ্চিত করুন যে আমাদের কিউ খালি হয় না পরীক্ষা, 654 00:50:46,060 --> 00:50:54,100 আমরা গৃহস্থালি * বৈঠাচালনা প্রথম আউট, আমরা উপাদান যে মাথা সূচিতে বসা এর বৈঠাচালনা আউট 655 00:50:54,100 --> 00:50:58,680 আমাদের অ্যারে, আমাদের স্ট্রিং অ্যারে, >> এবং কল যে প্রথম? 656 00:50:58,680 --> 00:51:04,500 [Hardison] এবং আমরা এটি প্রথম. হাঁ. 657 00:51:04,500 --> 00:51:09,850 শুধু যে অনুসরণের, আপনি কেন আমরা কি সেটা ছিল মনে? 658 00:51:09,850 --> 00:51:18,270 [স্যাম] প্রত্যেকটি প্রথম ঠিক না q.strings ফিরে [q.head]? >> হ্যাঁ. 659 00:51:18,270 --> 00:51:23,830 >> যেহেতু আমরা mod ফাংশন সঙ্গে q.head এই চেঞ্জিং করছি, 660 00:51:23,830 --> 00:51:27,810 এবং কোন উপায় ফিরে লাইন মধ্যে যে কি আছে. 661 00:51:27,810 --> 00:51:31,640 [Hardison] যথাযথভাবে. আপনি সঙ্কটাপন্ন. Sam এর উপর সম্পূর্ণভাবে স্পট. 662 00:51:31,640 --> 00:51:36,800 কারণ আমরা আমাদের কিউ কমান প্রথম উপাদান আউট এবং একটি পরিবর্তনশীল মধ্যে এটি সংরক্ষণ করে 663 00:51:36,800 --> 00:51:43,030 এই লাইন কারণ যেখানে আমরা q.head ছিল, 664 00:51:43,030 --> 00:51:47,030 সেখানে mod অপারেটর আছে যা আমরা করতে পারি না 665 00:51:47,030 --> 00:51:51,230 এক লাইন - এবং তা ছাড়া মাথা কার্যকর. 666 00:51:51,230 --> 00:51:54,480 সুতরাং আমরা আসলে প্রথম উপাদান বৈঠাচালনা আউট আছে, তাহলে মাথা সমন্বয়, 667 00:51:54,480 --> 00:52:00,430 আকার, সমন্বয় এবং তারপর উপাদান যে আমরা টানা আউট ফিরে. 668 00:52:00,430 --> 00:52:02,680 এবং এই এমন কিছু বিষয় যা আমরা আসা পর্যন্ত দেখতে পাবেন না পরে 669 00:52:02,680 --> 00:52:04,920 লিঙ্ক তালিকা হিসাবে আমরা তাদের সঙ্গে খেলা কাছাকাছি. 670 00:52:04,920 --> 00:52:08,410 প্রায়ই যখন আপনি লিঙ্ক তালিকা freeing বা বিক্রয়কালে করছি 671 00:52:08,410 --> 00:52:13,500 আপনি পরবর্তী উপাদান, একটি লিঙ্ক তালিকা পরবর্তী পয়েন্টার মনে রাখা প্রয়োজন 672 00:52:13,500 --> 00:52:16,330 আগে বর্তমান এক বিক্রয়কালে. 673 00:52:16,330 --> 00:52:23,580 কারণ অন্যথায় আপনি কি তালিকার বাকি এর তথ্য সরিয়ে রাখার. 674 00:52:23,580 --> 00:52:34,160 এখন, যদি আপনি আপনার প্রয়োগ যান, আপনি খুলুন এই queue.c--x আউট. 675 00:52:34,160 --> 00:52:39,390 সুতরাং যদি আমি খুলুন queue.c আপ, এখানে আমাকে জুম, 676 00:52:39,390 --> 00:52:44,970 আপনি যে আপনি একটি অনুরূপ সুদর্শন ফাইল দেখতে পাবেন. 677 00:52:44,970 --> 00:52:49,200 আমরা কি ছিল stack.c সঙ্গে পূর্ববর্তী স্তরে সুদর্শন ফাইল. 678 00:52:49,200 --> 00:52:54,690 আমরা কিউ সংজ্ঞায়িত করে, ঠিক যেমন আমরা দেখেছি স্লাইড উপর জন্য আমাদের struct পেয়েছিলাম. 679 00:52:54,690 --> 00:52:59,870 >> আমরা আমাদের সারিবদ্ধ ফাংশন যার জন্য আপনি কি আছে. 680 00:52:59,870 --> 00:53:04,340 এবং আমরা এখানে dequeue ফাংশন আছে. 681 00:53:04,340 --> 00:53:06,870 ফাইলের মধ্যে dequeue ফাংশন প্রজেক্ট হয়, 682 00:53:06,870 --> 00:53:13,230 কিন্তু আমি এটা করা ফিরে পাওয়ার পয়েন্ট উপরে পাবেন যাতে আপনি তা টাইপ করে যদি চান করতে পারেন. 683 00:53:13,230 --> 00:53:16,690 সুতরাং পরের 5 মিনিট বা যাতে জন্য, আপনাকে বলছি সারিবদ্ধ কাজ 684 00:53:16,690 --> 00:53:22,570 যা প্রায় dequeue ঠিক বিপরীত. 685 00:53:22,570 --> 00:53:29,560 আপনার মাথা যখন আপনি enqueueing সমন্বয় করছি না, কিন্তু তখন আপনি কি সামঞ্জস্য আছে? 686 00:53:29,560 --> 00:53:38,920 ফাইলের আকার. সুতরাং যখন আপনি সারিবদ্ধ, মাথা থাকে অস্পৃষ্ট, আকার পরিবর্তিত হয়. 687 00:53:38,920 --> 00:53:46,920 কিন্তু এটি একটি অল্প সময় লাগবে - আপনি যে mod সঙ্গে চারপাশে খেলা হবে 688 00:53:46,920 --> 00:53:57,560 যাও ঠিক জিনিসটা কি নতুন উপাদান ইনডেক্স করা উচিত এ ঢোকানো হয়েছে. 689 00:53:57,560 --> 00:54:03,080 তাই আমি একটি সামান্য বিট আপনি না দেব, dequeue করা স্লাইডে ফিরে আপ, 690 00:54:03,080 --> 00:54:05,200 এবং হিসাবে আপনি প্রশ্ন থাকে না, তাদের আউট চিত্কার যাতে আমরা করতে পারেন 691 00:54:05,200 --> 00:54:09,220 তাদের বিষয়ে সমস্ত একটি গ্রুপ হিসাবে আলাপ. 692 00:54:09,220 --> 00:54:13,960 সাইজ don't সঙ্গে এছাড়াও, - যখন আপনি আকার সামঞ্জস্য, আপনি সবসময় ঠিক করতে পারেন - 693 00:54:13,960 --> 00:54:18,720 আপনি কি কখনও আকার Mod আছে? [ড্যানিয়েল] নং >> আপনি আকার Mod অধিকার না থাকে. 694 00:54:18,720 --> 00:54:24,260 কারণ আকার সবসময়, যদি you're হবে - গ্রহ আপনাকে জিনিষ পরিচালনার উপযুক্তভাবে, 695 00:54:24,260 --> 00:54:30,840 আকার সর্বদা 0 এবং 3 এর মধ্যে হতে হবে. 696 00:54:30,840 --> 00:54:38,680 আপনি কোথায় যখন সারিবদ্ধ করছেন Mod আছে? 697 00:54:38,680 --> 00:54:41,060 শুধু মাথা জন্য [ছাত্র]. শুধু মাথা জন্য >>, ঠিক. 698 00:54:41,060 --> 00:54:44,620 এবং কেন আপনি কি সারিবদ্ধ এ সমস্ত Mod আছে? 699 00:54:44,620 --> 00:54:48,830 যখন একটি অবস্থা যা আপনি mod করতে চাই? 700 00:54:48,830 --> 00:54:53,630 [ছাত্র] যদি আপনি শূণ্যস্থান এ উপাদান আছে শূণ্যস্থান 1 এবং 2 এ, পছন্দ, 701 00:54:53,630 --> 00:54:55,950 এবং তারপরে আপনি 0 এ কিছু যোগ করা প্রয়োজন. 702 00:54:55,950 --> 00:55:02,570 [Hardison] হ্যাঁ, ঠিক. তাই আপনি যদি আপনার মাথা পয়েন্টার খুব শেষে হয়, 703 00:55:02,570 --> 00:55:14,210 অথবা যদি আপনার আকার প্লাস আপনার মাথা বড় হয়, অথবা বরং, কিউ 'র চারপাশে মোড়ানো যাচ্ছে. 704 00:55:14,210 --> 00:55:17,830 >> তাই এই অবস্থা যে আমরা স্লাইডে আছে এখানে আপ করেছি, এখন নয়, 705 00:55:17,830 --> 00:55:24,370 যদি আমি কিছু অধিকার এখন সারিবদ্ধ করতে চান, 706 00:55:24,370 --> 00:55:31,110 আমরা সূচক 0 সারিবদ্ধ এ কিছু করতে চান. 707 00:55:31,110 --> 00:55:35,450 তাই আপনি যদি যায় যেখানে 50 তাকান, এবং আমি সারিবদ্ধ 50 কল, 708 00:55:35,450 --> 00:55:40,840 এটি যায় নিচে নীচে আছে. এটা 0 সূচক যায়. 709 00:55:40,840 --> 00:55:44,160 এটা 'হাই' যে ইতিমধ্যেই dequeued প্রতিস্থাপন. 710 00:55:44,160 --> 00:55:46,210 [ড্যানিয়েল] কি dequeue যে যত্ন আপনি ইতিমধ্যে গ্রহণ করা না? 711 00:55:46,210 --> 00:55:50,550 কেন এটা সারিবদ্ধ মধ্যে মাথা নিয়ে কিছু করতে? 712 00:55:50,550 --> 00:55:55,770 [Hardison] ওহ, তাই আপনি মাথা পরিবর্তন করছি না, দুঃখিত. 713 00:55:55,770 --> 00:56:02,310 কিন্তু আপনি mod অপারেটর যখন আপনি অ্যাক্সেস করছি ব্যবহার আছে 714 00:56:02,310 --> 00:56:04,250 উপাদান যে আপনি যখন আপনি অ্যাক্সেস করছি সারিবদ্ধ চান 715 00:56:04,250 --> 00:56:06,960 আপনার সারিতে পরবর্তী উপাদান. 716 00:56:06,960 --> 00:56:10,960 [বেসিল] আমি, যে কি না না এবং আমি নেই "সফল" পেয়েছিলাম. 717 00:56:10,960 --> 00:56:13,370 [ড্যানিয়েল] ওহ, আমি বুঝতে কি বলছে. 718 00:56:13,370 --> 00:56:16,240 [Hardison] সুতরাং আপনি didn't - আপনি শুধু q.size এ কি? 719 00:56:16,240 --> 00:56:20,670 [বেসিল] হ্যাঁ. আমি পাশ পরিবর্তন, আমি কিছু মাথা কি না. 720 00:56:20,670 --> 00:56:24,300 [Hardison] আপনি মাথার কিছু রিসেট করা আছে আসলে না, 721 00:56:24,300 --> 00:56:31,650 কিন্তু যখন আপনি স্ট্রিং অ্যারের মধ্যে সূচক, 722 00:56:31,650 --> 00:56:39,500 আপনি আসলে এগিয়ে যান এবং যেখানে পরবর্তী উপাদান হল গণনা করা আছে, 723 00:56:39,500 --> 00:56:44,230 কারণ স্ট্যাকের নমনীয় শাখা, আপনার স্ট্যাকের মধ্যে পরবর্তী উপাদান সবসময় ছিল 724 00:56:44,230 --> 00:56:48,740 সূচক অনুরূপ মাপ. 725 00:56:48,740 --> 00:56:55,850 যদি আমরা আমাদের আপ স্ট্যাকের ধাক্কা ফাংশন ফিরে, 726 00:56:55,850 --> 00:57:03,100 আমরা সবসময় আমাদের নতুন উপাদান ইনডেক্স সঠিক আকারের বাজা পারে. 727 00:57:03,100 --> 00:57:06,710 সঙ্গে কিউ যেহেতু, আমরা যা করতে পারবেন না 728 00:57:06,710 --> 00:57:10,340 কারণ আমরা যদি এই পরিস্থিতি করেন, 729 00:57:10,340 --> 00:57:18,130 যদি আমরা enqueued 50 আমাদের নতুন স্ট্রিং স্ট্রিং [1] এ অধিকার যেতে হবে 730 00:57:18,130 --> 00:57:20,540 যা আমরা করতে চাই না. 731 00:57:20,540 --> 00:57:41,200 আমরা নতুন স্ট্রিং সূচক 0 এ যেতে চাই. 732 00:57:41,200 --> 00:57:44,320 >> কেহ আছে - হ্যাঁ? [ছাত্র] আমি একটা প্রশ্ন আছে কিন্তু এটি সত্যিই সাথে সম্পর্কিত নয়. 733 00:57:44,320 --> 00:57:48,160 কি যখন একজনের pred পয়েন্টার মত কল মানে? 734 00:57:48,160 --> 00:57:51,260 কি যে নামের জন্য ছোট? আমি জানি এটা শুধু একটি নাম. 735 00:57:51,260 --> 00:57:59,110 [Hardison] Pred পয়েন্টার? চলুন দেখুন. কোন প্রসঙ্গে? 736 00:57:59,110 --> 00:58:01,790 [ছাত্র] সন্নিবেশ জন্য এটা ছিল. আমি আপনাকে পরে চাইতে হবে, যদি আপনি চান করতে পারেন 737 00:58:01,790 --> 00:58:03,920 কারণ এটা, কিন্তু সত্যিই আমি ঠিক সম্পর্কিত নয় - 738 00:58:03,920 --> 00:58:07,300 [Hardison] থেকে ডেভিড এর বক্তৃতা থেকে কোড সন্নিবেশ? 739 00:58:07,300 --> 00:58:10,860 আমরা যে মুঠি ধরে টেনে তুলবো এবং যে বিষয়ে কথা বলতে পারেন. 740 00:58:10,860 --> 00:58:15,550 আমরা যে পরবর্তী একবার, আমরা সংযুক্ত তালিকা পেতে সম্পর্কে কথা বলতে পারবেন. 741 00:58:15,550 --> 00:58:21,440 >> সুতরাং এর দিন কি সত্যিই দ্রুত সারিবদ্ধ ফাংশন মনে তাকান. 742 00:58:21,440 --> 00:58:26,530 প্রথম জিনিস যে মানুষ আপনার সারিবদ্ধ লাইন কি চেষ্টা কী ছিল? এই কিউ? 743 00:58:26,530 --> 00:58:29,960 অনুরূপ কি আপনি স্ট্যাকের ঠেলে জন্য কি যাও. 744 00:58:29,960 --> 00:58:32,080 কি কি, স্টেলা? 745 00:58:32,080 --> 00:58:35,050 [স্টেলা, অপাচ্য] 746 00:58:35,050 --> 00:58:45,700 [Hardison] যথাযথভাবে. যদি (== ক্ষমতা q.size) - 747 00:58:45,700 --> 00:58:54,720 আমি যথাস্থানে আমার ধনুর্বন্ধনী করা প্রয়োজন - মিথ্যা ফিরে. 748 00:58:54,720 --> 00:59:01,370 কিছুক্ষন জুম. ঠিক আছে. 749 00:59:01,370 --> 00:59:03,800 এখন কি এর পরের বিষয় যে আমরা কি ছিল? 750 00:59:03,800 --> 00:59:11,370 স্ট্যাকের সঙ্গে শুধু, পছন্দ এবং ডান জায়গায় ঢোকানো. 751 00:59:11,370 --> 00:59:16,010 তাই কি ছিল যথাস্থান যে সন্নিবেশ? 752 00:59:16,010 --> 00:59:23,170 এটি ছিল এই স্ট্যাকের সঙ্গে সঙ্গে সূচক আকার, এটা নয় যে. 753 00:59:23,170 --> 00:59:30,210 [ড্যানিয়েল] আমি q.head-বা আছে - >> q.strings? >> হাঁ. 754 00:59:30,210 --> 00:59:40,470 q.strings [q.head + q.size mod ক্ষমতা]? 755 00:59:40,470 --> 00:59:42,740 [Hardison] আমরা সম্ভবত এই সমস্যা এড়ানোর এব w বন্ধনী ববহার করা চাই 756 00:59:42,740 --> 00:59:48,830 যাতে আমরা যথাযথ প্রাধান্য পেয়ে করছি যাতে যে cleart সবাই যাও. 757 00:59:48,830 --> 00:59:55,800 এবং যে সেট সমান? >> Str করবেন? Str বন্ধ >>. গ্রেট. 758 00:59:55,800 --> 01:00:00,160 এবং এখন কি শেষ বিষয় যে আমরা কি আছে? 759 01:00:00,160 --> 01:00:06,780 শুধু ভালো আমরা স্ট্যাকের করেছিল. >> মাপ বৃদ্ধি? >> মাপ বৃদ্ধি. 760 01:00:06,780 --> 01:00:13,830 পরিস্ফুটন. এবং তারপর স্টার্টার কোড থেকে, ঠিক ফিরিয়ে ডিফল্টরূপে মিথ্যা, 761 01:00:13,830 --> 01:00:27,460 আমরা সত্য যদি এই সমস্ত যায় এবং সব ভাল যায় পরিবর্তন করতে চান. 762 01:00:27,460 --> 01:00:33,050 ঠিক আছে. যে বিভাগের জন্য তথ্য অনেক. 763 01:00:33,050 --> 01:00:39,480 আমরা খুব বেশী না. আমরা এককভাবে সংযুক্ত তালিকা সম্পর্কে সত্যিই দ্রুত কথা বলতে চান. 764 01:00:39,480 --> 01:00:44,010 আমি এই ঠেলা আপ করুন যাতে আমরা তা পরে ফিরে যেতে পারেন. 765 01:00:44,010 --> 01:00:50,850 কিন্তু যাক এর আমাদের উপস্থাপনায় মাত্র কয়েক আরো স্লাইডের জন্য ফিরে যেতে. 766 01:00:50,850 --> 01:00:53,790 সুতরাং সারিবদ্ধ হয় করণীয় এখন, আমরা এটি সম্পন্ন করেছি. 767 01:00:53,790 --> 01:00:57,430 >> এখন আসুন একেলা সংযুক্ত তালিকা কটাক্ষপাত করা. 768 01:00:57,430 --> 01:01:00,040 এই অল্প আরো সম্পর্কে আমরা বক্তৃতায় সায়ীদ. 769 01:01:00,040 --> 01:01:02,540 আপনি না কিভাবে ডেমো অনেক দেখেছি যেখানে আমরা মানুষ ছিল 770 01:01:02,540 --> 01:01:08,220 একে অপরকে এবং জোত নম্বর awkwardly প্রতি নির্দেশ? >> আমি যে ছিল. 771 01:01:08,220 --> 01:01:16,620 >> কি আপনি মনে করেন কি না? যে কি আশা, এই সামান্য বিট demystify? 772 01:01:16,620 --> 01:01:25,990 একটি তালিকা দিয়ে, এটি সক্রিয় করে যে আমরা এই টাইপ মোকাবেলা যে আমরা একটি নোড কল চলুন. 773 01:01:25,990 --> 01:01:32,520 সঙ্গে কিউ এবং স্ট্যাকের যেহেতু আমরা structs যে আমরা স্ট্যাকের মধ্যে কিউ কল দিন ছিল, 774 01:01:32,520 --> 01:01:34,860 আমরা এই স্ট্যাকের মধ্যে নতুন ধরনের কিউ ছিল, 775 01:01:34,860 --> 01:01:39,240 এখানে সত্যিই একটি তালিকা ঠিক হয় নোডের একটি গুচ্ছ গঠিত. 776 01:01:39,240 --> 01:01:45,920 সব একই ভাবে স্ট্রিং শুধু অক্ষর একটি গুচ্ছ ইন বূ্যহিত পরবর্তী প্রতিটি অন্যান্য. 777 01:01:45,920 --> 01:01:50,650 একটি লিঙ্ক তালিকা শুধু একটি নোডের মধ্যে এবং অন্য একটি নোড এবং অন্য একটি নোড এবং অন্য একটি নোড. 778 01:01:50,650 --> 01:01:55,080 এবং বদলে সমস্ত নোড একসঙ্গে মর্মান্তিক এবং তাদের contiguously সংরক্ষণ 779 01:01:55,080 --> 01:01:58,090 সমস্ত সঠিক মেমরির মধ্যে পরবর্তী প্রতিটি অন্যান্য, 780 01:01:58,090 --> 01:02:04,470 এই হচ্ছে আমাদের পরবর্তী পয়েন্টার নোড যেখানেই যাও সঞ্চয় র্যান্ডম এ, পারবেন. 781 01:02:04,470 --> 01:02:10,500 এবং তারপর তারের ধরনের একসঙ্গে তাদের সব থেকে পরবর্তী নির্দেশ. 782 01:02:10,500 --> 01:02:15,850 >> এবং কি ছিল বড় সুবিধা এই যে একটি অ্যারের ছিল? 783 01:02:15,850 --> 01:02:21,680 সংরক্ষণের উপর সবকিছু ঠিক contiguously আটকে পরের একে অপরকে? 784 01:02:21,680 --> 01:02:24,190 আপনি মনে পড়ে? হাঁ? >> ডাইনামিক মেমরি বরাদ্দকরণের? 785 01:02:24,190 --> 01:02:27,220 >> ডায়নামিক কি অর্থে মেমরি বরাদ্দকরণের? 786 01:02:27,220 --> 01:02:31,780 [ছাত্র] ইন যে আপনি এটিকে বড় এবং আপনার সম্পূর্ণ অ্যারে সরাতে না আছে রাখতে পারি না? 787 01:02:31,780 --> 01:02:40,940 [Hardison] যথাযথভাবে. তাই সঙ্গে একটি অ্যারের, যখন আপনি তা মধ্যম মধ্যে একটি নতুন উপাদান লাগাতে চান, 788 01:02:40,940 --> 01:02:45,320 আপনি সবকিছুর জন্য পর্যাপ্ত স্থান না নামান আছে. 789 01:02:45,320 --> 01:02:47,880 এবং ভালো আমরা কিউ সঙ্গে সম্পর্কে কথা বললাম, 790 01:02:47,880 --> 01:02:50,080 সে জন্যই আমরা যে মাথা পয়েন্টার রাখা, 791 01:02:50,080 --> 01:02:52,050 যাতে আমরা জিনিস ক্রমাগত নাড়াচাড়া করছি না. 792 01:02:52,050 --> 01:02:54,520 কারণ যে পায় ব্যয়বহুল যদি আপনি একটি বড় অ্যারে পেয়েছেন 793 01:02:54,520 --> 01:02:57,130 ক্রমাগত এবং আপনি এই র্যান্ডম insertions করছি. 794 01:02:57,130 --> 01:03:00,820 সঙ্গে একটি তালিকা যেহেতু, সমস্ত আপনি কি একটি নতুন নোডের এটি নিক্ষেপ করা, 795 01:03:00,820 --> 01:03:06,330 পয়েন্টার, সমন্বয় এবং আপনি সম্পন্ন করেছেন. 796 01:03:06,330 --> 01:03:10,940 Sucks কি এই সম্পর্কে? 797 01:03:10,940 --> 01:03:16,830 সরাইয়া থেকে যে এটি দিয়ে একটি অ্যারের হিসাবে কাজ হিসাবে এর সহজ না? হাঁ? 798 01:03:16,830 --> 01:03:22,980 [ড্যানিয়েল] ওয়েল, আমি অনুমান এটা অনেক বেশি কঠিন একটি লিঙ্ক তালিকায় নির্দিষ্ট উপাদান অ্যাক্সেস? 799 01:03:22,980 --> 01:03:30,470 [Hardison] আপনি শুধু আপনার একটি লিঙ্ক তালিকা মাঝখানে নির্বিচারে উপাদান যাও না তিড়িং লাফ পারেন. 800 01:03:30,470 --> 01:03:33,800 আপনি কিভাবে পরিবর্তে এটি কি আছে? >> আপনি সম্পূর্ণ জিনিস মাধ্যমে সিঁড়ির ধাপ আছে. 801 01:03:33,800 --> 01:03:35,660 [Hardison] হ্যাঁ. আপনি এক একটি সময়, একটি সময়ে এক মধ্য দিয়ে যেতে হবে. 802 01:03:35,660 --> 01:03:38,480 এটা একটা বিশাল - এটা একটা ব্যথা. 803 01:03:38,480 --> 01:03:41,550 অন্যান্য কি - এই যাও অন্য পতন আছে. 804 01:03:41,550 --> 01:03:45,340 [বেসিল] আপনি এবং পিছনের দিকে এগিয়ে যেতে পারে না? আপনি এক দিক যেতে আছে? 805 01:03:45,340 --> 01:03:48,570 [Hardison] হ্যাঁ. তাই কিভাবে আমরা যে না, কখনও কখনও সমাধান? 806 01:03:48,570 --> 01:03:53,370 [বেসিল] দোকর-লিঙ্ক তালিকা? >> যথাযথভাবে. দোকর-লিঙ্ক তালিকা আছে. 807 01:03:53,370 --> 01:03:55,540 এছাড়াও রয়েছে - দুঃখিত? 808 01:03:55,540 --> 01:03:57,620 >> [স্যাম] এটা কি জিনিস যে pred হিসাবে ব্যবহার করে একই - 809 01:03:57,620 --> 01:04:01,090 আমি ঠিক মনে হয় না যে কি জিনিস pred জন্য হয়? 810 01:04:01,090 --> 01:04:05,850 এটা মধ্যে দোকর এবং একেলা? যে হইনি 811 01:04:05,850 --> 01:04:10,020 কি ঠিক করছেন তিনি এ [Hardison] যাক এর চেহারা. 812 01:04:10,020 --> 01:04:15,760 তাই আমরা এখানে. এখানে তালিকা কোড. 813 01:04:15,760 --> 01:04:25,620 এখানে আমরা আছে এখানে predptr,. এটা কি আপনার সম্পর্কে কথা বলা হয়েছে? 814 01:04:25,620 --> 01:04:30,750 তাই এই ছিল - তিনি একটি তালিকা এর freeing এবং তিনি তা একটি পয়েন্টার জমা করার চেষ্টা হচ্ছে. 815 01:04:30,750 --> 01:04:35,000 এই দোকর, একেলা লিঙ্ক-তালিকা নয়. 816 01:04:35,000 --> 01:04:40,090 আমরা এই সম্পর্কে আরো কথা বলার পরে তালিকা freeing সম্পর্কে এই কথা বলা যাবে না 817 01:04:40,090 --> 01:04:42,900 এবং আমি প্রথম কিছু অন্যান্য পণ্যদ্রব্য প্রদর্শন করতে ইচ্ছুক. 818 01:04:42,900 --> 01:04:51,480 কিন্তু এটি শুধু - এটি ptr মান এর স্মরণে 819 01:04:51,480 --> 01:04:54,170 [ছাত্র] ওহ, এটা preceeding পয়েন্টার? >> হ্যাঁ. 820 01:04:54,170 --> 01:05:04,070 যাতে আমরা তারপর আমরা বিনামূল্যে তারপর কি হল predptr আগে ptr নিজেই বাড়াতে পারেন. 821 01:05:04,070 --> 01:05:09,130 যেহেতু আমরা মুক্ত ptr এবং তারপর ptr = ptr পরের, ডান? আপনি কল করতে পারবেন 822 01:05:09,130 --> 01:05:11,260 যে খারাপ হবে. 823 01:05:11,260 --> 01:05:20,940 সুতরাং এর দেখতে দিন, ফিরে যাও এই লোক. 824 01:05:20,940 --> 01:05:23,900 >> অন্যান্য তালিকা সম্পর্কে খারাপ ব্যাপার হল যেহেতু সঙ্গে অ্যারে 825 01:05:23,900 --> 01:05:26,520 আমরা শুধু সব উপাদান নিজেরাই স্তুপীকৃত পরবর্তী প্রতিটি অন্যান্য আছে, 826 01:05:26,520 --> 01:05:29,050 এখানে আমরা এই পয়েন্টার প্রচলন করেছে. 827 01:05:29,050 --> 01:05:34,060 সুতরাং আমি কি একটা মেমরি অতিরিক্ত অঞ্চলে যা আমরা ব্যবহার করতে সমস্যা হয় তাহলে আছে 828 01:05:34,060 --> 01:05:37,910 প্রতিটি উপাদান যে আমরা আমাদের তালিকায় সংরক্ষণ করছেন. 829 01:05:37,910 --> 01:05:40,030 আমরা নমনীয়তা পেতে, কিন্তু এটি একটি খরচে আসে. 830 01:05:40,030 --> 01:05:42,230 এই সময় খরচ আসে, 831 01:05:42,230 --> 01:05:45,270 এবং এটি এই মেমরি খরচ খুব আসে. 832 01:05:45,270 --> 01:05:47,800 অর্থে সময় যে আমরা এখন প্রতিটি উপাদান মাধ্যমে অ্যারের মধ্যে যেতে আছে 833 01:05:47,800 --> 01:05:58,670 সূচক 10 এক, বা যে একটি অ্যারের মধ্যে সূচক 10 হতো না খুঁজে. 834 01:05:58,670 --> 01:06:01,230 >> শুধু সত্যিই দ্রুত, যখন আমরা এই চিত্রটি তালিকা আউট, 835 01:06:01,230 --> 01:06:05,980 সাধারণত আমরা তালিকা মাথা অথবা তালিকার প্রথম পয়েন্টার রাখা নেভিগেশন এড়িয়ে যাও 836 01:06:05,980 --> 01:06:08,010 এবং মনে রাখবেন যে এই একটি সত্য পয়েন্টার. 837 01:06:08,010 --> 01:06:11,100 শুধু 4 বাইট. এটি একটি প্রকৃত নোড নিজেই না. 838 01:06:11,100 --> 01:06:17,120 তাহলে আপনি দেখতে পাবেন যে এটি কোন এটি int মান, কোন এটি পরবর্তী পয়েন্টার আছে. 839 01:06:17,120 --> 01:06:20,790 এটা আক্ষরিক শুধু একটি পয়েন্টার. 840 01:06:20,790 --> 01:06:23,550 এটা কিছু যে একটি প্রকৃত নোড struct দিকে নির্দেশ করছে. 841 01:06:23,550 --> 01:06:28,480 [স্যাম] নামক একটি পয়েন্টার নোড? >> এটি - নেই. এটি টাইপ নোডের মধ্যে কিছু একটা পয়েন্টার. 842 01:06:28,480 --> 01:06:32,540 এটি একটি নোড struct একটি পয়েন্টার. >> ওহ, ঠিক আছে. 843 01:06:32,540 --> 01:06:36,870 বাম ডান, কোডের উপর চিত্র. 844 01:06:36,870 --> 01:06:42,190 আমরা এটা নাল, যা একটি ভালো উপায় শুরু সেট করতে পারেন. 845 01:06:42,190 --> 01:06:49,850 যখন এটি ডায়াগ্রাম, হয় আপনি এটি হিসাবে নাল লিখুন অথবা আপনি এটি দিয়ে একটি লাইন রাখতে চাই যে. 846 01:06:49,850 --> 01:06:53,910 >> সহজতম উপায়ে তালিকা সঙ্গে কাজ এক, 847 01:06:53,910 --> 01:06:57,430 এবং আমরা আপনাকে উভয় শুরুতে যোগ এবং দুই মধ্যে পার্থক্য জানার লিখবেন না, 848 01:06:57,430 --> 01:07:01,320 কিন্তু prepending নিঃসন্দেহে সহজ. 849 01:07:01,320 --> 01:07:05,790 যখন আপনি পূর্বে লিখুন, এই হল যেখানে আপনি - আপনি যখন শুরুতে যোগ (7), 850 01:07:05,790 --> 01:07:10,050 আপনি যান এবং নোড struct তৈরি 851 01:07:10,050 --> 01:07:13,870 এবং আপনি প্রথম সেট এটি যাও, যাও নির্দেশ কারণ এখন, যেহেতু আমরা এটি prepended, 852 01:07:13,870 --> 01:07:17,240 এটি তালিকা প্রারম্ভে করা যাচ্ছে. 853 01:07:17,240 --> 01:07:22,540 যদি আমরা শুরুতে যোগ (3), যে অন্য কোনো নোডের মধ্যে সৃষ্টি, কিন্তু এখন 3 7 আগে আসে. 854 01:07:22,540 --> 01:07:31,130 তাই আমরা মূলত আমাদের তালিকা সম্মুখের জিনিষ ঠেলাঠেলি করছি. 855 01:07:31,130 --> 01:07:34,720 এখন, আপনি যে শুরুতে যোগ কখনও কখনও লোকেরা এটা কল ধাক্কা দেখতে পারেন, 856 01:07:34,720 --> 01:07:39,600 কারণ আপনি আপনার তালিকা সম্মুখের একটি নতুন উপাদান ঠেলাঠেলি করছি. 857 01:07:39,600 --> 01:07:43,270 এখানে একটি তালিকা সামনে এ মুছে দিন সহজ. 858 01:07:43,270 --> 01:07:45,650 তাই প্রায়ই যে পপ কল হবে. 859 01:07:45,650 --> 01:07:52,200 এবং যে উপায়ে, আপনি একটি স্ট্যাকের মধ্যে উপস্থিত একটি লিঙ্ক তালিকা ব্যবহার করে অনুকরণ করা যাবে. 860 01:07:52,200 --> 01:07:57,880 ওহো. দুঃখিত এখন, আমরা append মধ্যে পেয়ে থাকেন. তাই আমরা এখানে prepended (7) এখন, আমরা শুরুতে যোগ (3). 861 01:07:57,880 --> 01:08:02,600 যদি আমরা এই তালিকা সম্মুখের অন্য কিছু prepended, যদি আমরা prepended (4), 862 01:08:02,600 --> 01:08:06,540 তারপর আমরা 4 আছে এবং তারপর 3 এবং তারপর 7 চাই. 863 01:08:06,540 --> 01:08:14,220 তখন আমরা এবং 4, অপসারণ সরানোর 3 পপ পারে, 7 সরান. 864 01:08:14,220 --> 01:08:16,500 প্রায়ই আরও বেশি ধারণাসম্পন্ন উপায় এই সম্পর্কে চিন্তা append হয়. 865 01:08:16,500 --> 01:08:20,310 তাই আমি আউট diagrammed কি এটা এখানে লিখবেন দেখাবে করেছি. 866 01:08:20,310 --> 01:08:23,380 এখানে যোগ করা (7) কোনো ভিন্ন চেহারা না 867 01:08:23,380 --> 01:08:25,160 কারণ শুধুমাত্র তালিকায় একটি উপাদান আছে. 868 01:08:25,160 --> 01:08:28,620 সংযোজন এবং (3) শেষে এটা বন্ধ রাখে. 869 01:08:28,620 --> 01:08:31,020 হতে পারে আপনি append সঙ্গে কৌতুক অধিকার এখন দেখতে পারেন 870 01:08:31,020 --> 01:08:36,600 হয় যে যেহেতু আমরা কেবল যেখানে তালিকা শুরুতে হয় জানি, 871 01:08:36,600 --> 01:08:39,450 একটি তালিকা আপনি তালিকার মাধ্যমে সব উপায় পায়চারি করা আছে লিখবেন যাও 872 01:08:39,450 --> 01:08:46,500 শেষে, পেতে থামাতে তারপর, আপনার নোড এবং বাজা ডাউন সবকিছু গড়ে তুলতে. 873 01:08:46,500 --> 01:08:50,590 সব উপাদান আপ টেলিগ্রাম. 874 01:08:50,590 --> 01:08:55,170 তাই শুরুতে যোগ দিয়ে, আমরা কেবল এই মাধ্যমে ripped সত্যিই দ্রুত, 875 01:08:55,170 --> 01:08:58,170 যখন আপনি একটি তালিকা পূর্বে লিখুন, এটা মোটামুটি সহজ. 876 01:08:58,170 --> 01:09:02,960 >> আপনি আপনার নতুন নোডের জন্য, কিছু ডাইনামিক মেমরি বরাদ্দকরণের জড়িত. 877 01:09:02,960 --> 01:09:09,830 তাই আমরা এখানে একটি নোড struct malloc ব্যবহার করে তৈরি করছেন. 878 01:09:09,830 --> 01:09:14,710 সুতরাং malloc আমরা যে কারণ পরে আমাদের জন্য মেমরি সেট করব সরাইয়া ব্যবহার করছেন 879 01:09:14,710 --> 01:09:20,350 কারণ আমরা এই চাই না - আমরা এই মেমরি একটি দীর্ঘ সময়ের জন্য জিদ করতে চান. 880 01:09:20,350 --> 01:09:25,350 এবং আমরা মেমরি স্পেস বরাদ্দ যে আমরা একটি পয়েন্টার পাবেন. 881 01:09:25,350 --> 01:09:29,260 আমরা নোড মাপ ব্যবহার, আমরা ক্ষেত্র যোগফল না. 882 01:09:29,260 --> 01:09:31,899 আমরা বাইট নম্বর ম্যানুয়ালি কি নির্মাণ করা হবে না, 883 01:09:31,899 --> 01:09:39,750 এর পরিবর্তে আমরা ব্যবহার sizeof যাতে আমরা জানতে পারি যে আমরা বাইট যথাযথ নম্বর পেয়ে থাকেন. 884 01:09:39,750 --> 01:09:43,660 আমরা না যে আমাদের malloc কল সফল পরীক্ষা করতে ভুলবেন না. 885 01:09:43,660 --> 01:09:47,939 এইটি এমন কিছু বিষয় আপনি সাধারণ কাজ করতে চান. 886 01:09:47,939 --> 01:09:52,590 আধুনিক মেশিনে, মেমরি দৌড়ে বাইরে কিছু যে সহজ নয় 887 01:09:52,590 --> 01:09:56,610 যদি না আপনি একটি জিনিস টন বণ্টন করছেন এবং একটি বিশাল তালিকা তৈরি, 888 01:09:56,610 --> 01:10:02,220 কিন্তু আপনি যদি একটি আইফোন বা একটি Android ভালো,, বলার জন্য স্টাফ করছি ভবন, 889 01:10:02,220 --> 01:10:05,230 আপনি সীমিত মেমরি রিসোর্স কি আছে, বিশেষত যদি আপনি কিছু তীব্র করছেন. 890 01:10:05,230 --> 01:10:08,300 তাই এর অনুশীলনের মধ্যে পেতে ভাল. 891 01:10:08,300 --> 01:10:10,510 >> উল্লেখ্য, আমি একটি দম্পতি বিভিন্ন ফাংশন ব্যবহার করেছি এখানে 892 01:10:10,510 --> 01:10:12,880 আপনি যে যে নতুন ধরনের দেখা করেছি. 893 01:10:12,880 --> 01:10:15,870 সুতরাং fprintf ঠিক printf হয় পছন্দ 894 01:10:15,870 --> 01:10:21,320 তার প্রথম যুক্তি ছাড়া হয় প্রবাহে যা আপনি প্রিন্ট করতে চান. 895 01:10:21,320 --> 01:10:23,900 এই ক্ষেত্রে, আমরা মান ত্রুটি স্ট্রিং প্রিন্ট করতে চান 896 01:10:23,900 --> 01:10:29,410 যা প্রমিত outstream থেকে ভিন্ন. 897 01:10:29,410 --> 01:10:31,620 ডিফল্টরূপে এটি একই স্থানে প্রদর্শিত হয়. 898 01:10:31,620 --> 01:10:34,600 এটি টার্মিনালে ছাপে আউট, কিন্তু আপনি যা করতে পারেন - 899 01:10:34,600 --> 01:10:38,790 যারা কমান্ড ব্যবহার করে আপনার সম্পর্কে, ফেরৎ কৌশল শিখেছি 900 01:10:38,790 --> 01:10:42,290 আপনি টমি এর ভিডিওতে শিখেছি সম্পর্কে সমস্যা সেট 4 জন্য, আপনি এটি করতে পারি 901 01:10:42,290 --> 01:10:47,900 বিভিন্ন ক্ষেত্রে; তারপর, প্রস্থান অধিকার এখানে, প্রস্থান করে আপনার প্রোগ্রাম. 902 01:10:47,900 --> 01:10:50,440 এটি মূল থেকে ফিরে মূলত এর মত, 903 01:10:50,440 --> 01:10:53,600 কারণ ছাড়া আমরা প্রস্থান করুন এখানে ফিরে কিছু না ব্যবহার করবেন. 904 01:10:53,600 --> 01:10:57,140 আমরা প্রধান মধ্যে পারব না, তাই ফিরে প্রোগ্রামের মত আমরা প্রস্থান করতে চান না. 905 01:10:57,140 --> 01:11:03,020 সুতরাং আমরা ফাংশান ব্যবহার করে প্রস্থান করুন এবং এটি একটি ত্রুটির কোড দিন. 906 01:11:03,020 --> 01:11:11,890 তারপর এখানে আমরা তোমার সমান হতে নতুন নোড এর মান ক্ষেত্র, তার তোমার ক্ষেত্র সেট করা, এবং তারপর আমরা এটা টেলিগ্রাম. 907 01:11:11,890 --> 01:11:15,530 আমরা প্রথম দিকে নির্দেশ করে নতুন নোডের এর পরের পয়েন্টার সেট, 908 01:11:15,530 --> 01:11:20,460 প্রথম এবং তারপর এখন নতুন নোডের নির্দেশ করবে. 909 01:11:20,460 --> 01:11:25,120 এই কোড প্রথম লাইন, আসলে আমরা নতুন নোড নির্মাণের করছি. 910 01:11:25,120 --> 01:11:27,280 এই ফাংশন নেই শেষ দুই লাইন কিন্তু প্রথম বেশী. 911 01:11:27,280 --> 01:11:30,290 আপনি আসলে একটি ফাংশন মধ্যে উঠিয়ে ফেলা একটি সাহায্যকারী ফাংশন যায়,. 912 01:11:30,290 --> 01:11:32,560 যে প্রায়ই কি আমি এর হল, আমি বৈঠাচালনা একটি ফাংশন মধ্যে আউট, 913 01:11:32,560 --> 01:11:36,040 আমি কল করার জন্য এটি বিল্ড নোড মত, 914 01:11:36,040 --> 01:11:40,410 এবং যে রাখে শুরুতে যোগ ফাংশন খুবই ছোট, এটা তো শুধু 3 লাইন তারপর. 915 01:11:40,410 --> 01:11:48,710 আমি আমার বিল্ড নোডের একটি ফাংশন কল করা, এবং তারপর আমি টেলিগ্রাম আপ সবকিছু. 916 01:11:48,710 --> 01:11:51,970 >> চূড়ান্ত জিনিস আমি আপনাকে দেখাতে চাই, 917 01:11:51,970 --> 01:11:54,030 এবং আমি আপনাকে আপনার নিজস্ব append এবং যে সব না জানাব, 918 01:11:54,030 --> 01:11:57,500 কিভাবে একটি তালিকা পুনরুক্তি উপর. 919 01:11:57,500 --> 01:12:00,780 বিভিন্ন উপায়ে একটি তালিকা পুনরুক্তি উপর একটি গুচ্ছ আছে. 920 01:12:00,780 --> 01:12:03,140 এই ক্ষেত্রে, আমরা একটি তালিকা দ্বারা খুঁজে পেতে যাচ্ছেন. 921 01:12:03,140 --> 01:12:06,570 সুতরাং আমরা দ্বারা = 0 দিয়ে শুরু. 922 01:12:06,570 --> 01:12:11,580 এটি একটি স্ট্রিং জন্য strlen লেখা অনুরূপ. 923 01:12:11,580 --> 01:12:17,780 এটা কি আমি লুপ জন্য আপনাকে দেখাবে, এখানে এই অধিকার চাই. 924 01:12:17,780 --> 01:12:23,530 ধরণ দেখে মনে হচ্ছে ভীতু; এটা স্বাভাবিক না int i = 0, তোমার <যাই হোক না কেন, আমি +. 925 01:12:23,530 --> 01:12:34,920 এর পরিবর্তে এটি আমাদের পরিবর্তনশীল n তালিকার শুরুতে হতে এর আরম্ভ করা হচ্ছে. 926 01:12:34,920 --> 01:12:40,620 এবং তারপরে যখন আমাদের iterator পরিবর্তনশীল নাল নয়, আমরা রাখা যাচ্ছে. 927 01:12:40,620 --> 01:12:46,340 কারণ, প্রচলিত রীতি দ্বারা, আমাদের তালিকার শেষে নাল হবে. 928 01:12:46,340 --> 01:12:48,770 এবং তারপর বরং + করছেন তুলনায়, যাও বাড়ায়, 929 01:12:48,770 --> 01:12:57,010 লিঙ্ক + তালিকা সমতুল্য হয় + n = n-> পরের. 930 01:12:57,010 --> 01:13:00,410 >> আমি এখানে আপনি ফাঁক পূরণ কারণ আমরা সময় ফুরিয়েছে জানাবো. 931 01:13:00,410 --> 01:13:09,300 কিন্তু মনের মধ্যে এই হিসাবে আপনি আপনার spellr psets কাজ রাখা. 932 01:13:09,300 --> 01:13:11,650 লিঙ্ক তালিকা, যদি আপনি একটি হ্যাশ টেবিল রূপায়ণকারী করছি, 933 01:13:11,650 --> 01:13:14,010 স্পষ্টভাবে খুব উপকারে আসবে. 934 01:13:14,010 --> 01:13:21,780 এবং বিষয়ের উপর looping জন্য এই বাগ্ধারা থাকার জন্য জীবন অনেক সহজ আশা, হবে. 935 01:13:21,780 --> 01:13:25,910 আপনার কোন প্রশ্ন থাকলে, দ্রুত? 936 01:13:25,910 --> 01:13:28,920 [স্যাম] পাঠাতে সম্পন্ন sll এবং sc আউট হবে? 937 01:13:28,920 --> 01:13:38,360 [Hardison] হ্যাঁ. আমি সম্পূর্ণ স্লাইড এবং সম্পন্ন sll স্ট্যাকের এবং queue.cs আউট পাঠাব. 938 01:13:38,360 --> 01:13:41,360 [CS50.TV]