1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [সারি] 2 00:00:02,000 --> 00:00:05,000 [ক্রিস GERBER, হার্ভার্ড বিশ্ববিদ্যালয়] 3 00:00:05,000 --> 00:00:07,000 এটি CS50, CS50.TV] 4 00:00:07,000 --> 00:00:11,000 একটি দরকারী একটি উপাদানের আদেশ সংগ্রহে তথ্য জমা করার জন্য একটি কাঠামো কিউ. 5 00:00:11,000 --> 00:00:14,000 এটা যখন উপাদানের প্রয়োজন অপসারণের জন্য ব্যবহৃত হয় 6 00:00:14,000 --> 00:00:16,000 একই আদেশ হিসাবে তারা যোগ করা হয় নি. 7 00:00:16,000 --> 00:00:20,000 এই ধারণা হিসাবে FIFO, যা প্রথম জন্য একটি, প্রথম আউট আদ্যক্ষরা বলা হয়. 8 00:00:20,000 --> 00:00:23,000 এই মনশ্চক্ষুতে সাহায্য, এটি দরকারী ছবি হতে পারে 9 00:00:23,000 --> 00:00:25,000 একটি একটি দোকান চেকআউটে লাইন. 10 00:00:25,000 --> 00:00:28,000 মানুষ হিসাবে আসে, তাদের লাইন পিছে অপেক্ষা করুন. 11 00:00:28,000 --> 00:00:31,000 কোষাধ্যক্ষ তারপর পালাক্রমে লাগে সামনে কাস্টমারদের ভজনা, 12 00:00:31,000 --> 00:00:34,000 একটি সময়ে যিনি তখন এক লাইন থেকে প্রস্থান করুন. 13 00:00:34,000 --> 00:00:37,000 কম্পিউটার বিজ্ঞান ইন, কিউ 'র সামনে আমরা মাথা হিসাবে দেখুন 14 00:00:37,000 --> 00:00:39,000 এবং লেঙ্গুড় হিসাবে ফিরে. 15 00:00:39,000 --> 00:00:41,000 যখন আমরা একটি অ্যাপ্লিকেশন ব্যবহার করতে পারে একটি উদাহরণ 16 00:00:41,000 --> 00:00:44,000 হয় বর্গ enrollments জন্য একটি waitlist. 17 00:00:44,000 --> 00:00:46,000 হিসাবে আসন বর্গ মধ্যে উপলব্ধ, 18 00:00:46,000 --> 00:00:50,000 ওয়েটিং লিস্টে প্রধান এ ব্যক্তি বর্গ মধ্যে তালিকাভুক্ত সুযোগ প্রদান করা হয়. 19 00:00:50,000 --> 00:00:53,000 >> একটি কিউ নির্মিত কোনো সংগ্রহ ব্যবহার করা যাবে 20 00:00:53,000 --> 00:00:57,000 যে অনুক্রমে তথ্য সঞ্চয় করে, যেমন একটি অ্যারে অথবা একটি তালিকা সংযুক্ত হিসাবে,. 21 00:00:57,000 --> 00:01:00,000 সহ সংগ্রহে সারিতে আইটেম সঞ্চয়, 22 00:01:00,000 --> 00:01:02,000 আমরা যাও কিউ শেষে আইটেম যোগ একটি পদ্ধতি প্রয়োজন, 23 00:01:02,000 --> 00:01:04,000 যা enqueuing বলা হয়, 24 00:01:04,000 --> 00:01:07,000 এবং অন্য কিউ মাথা থেকে একটি আইটেম সরাতে, 25 00:01:07,000 --> 00:01:09,000 যা dequeuing বলা হয়. 26 00:01:09,000 --> 00:01:14,000 এটা প্রায়ই হয় অন্য পদ্ধতি কিউ বর্তমান দ্বারা ফিরে অন্তর্ভুক্ত দরকারী 27 00:01:14,000 --> 00:01:17,000 সেইসাথে একটি পদ্ধতি যদি সারি খালি চেক. 28 00:01:17,000 --> 00:01:20,000 কিভাবে আমরা এর সি পূর্ণসংখ্যার একটি কিউ বাস্তবায়ন হতে পারে যাক, 29 00:01:20,000 --> 00:01:23,000 উপাদান সংগ্রহের জন্য একটি অ্যারে ব্যবহার করে. 30 00:01:23,000 --> 00:01:27,000 প্রথমত, আমরা একটি কাঠামো নামক সারিতে আমাদের ভেরিয়েবল তৈরি রাখা. 31 00:01:27,000 --> 00:01:30,000 আমরা একটি নির্দিষ্ট মাপের পূর্ণসংখ্যা 0 সূচক অ্যারে ব্যবহার করা 32 00:01:30,000 --> 00:01:33,000 যাও উপাদান সঞ্চয়. 33 00:01:33,000 --> 00:01:35,000 আমরা একটি পরিবর্তনশীল নামক মাথা অন্তর্ভুক্ত করা হবে 34 00:01:35,000 --> 00:01:39,000 যে যে উপাদান কিউ প্রধান এ বর্তমানে সূচী সঞ্চয়. 35 00:01:39,000 --> 00:01:42,000 তৃতীয় পরিবর্তনশীল, বলা দ্বারা, ব্যবহার করা হবে 36 00:01:42,000 --> 00:01:45,000 যাও অ্যারের মধ্যে উপাদানের সংখ্যা ট্র্যাক রাখতে. 37 00:01:45,000 --> 00:01:48,000 বিকল্প হিসাবে, আপনি একটি পরিবর্তনশীল নামক লেঙ্গুড় ব্যবহারের বিষয়ে বিবেচনা করতে পারে 38 00:01:48,000 --> 00:01:51,000 শেষ অ্যারের মধ্যে ক্ষেত্রের উপাদান নির্দেশ. 39 00:01:51,000 --> 00:01:53,000 আগে আমরা আরো কোনো কোড লিখুন 40 00:01:53,000 --> 00:01:55,000 আসুন আমাদের নকশা চেষ্টা করে. 41 00:01:55,000 --> 00:01:58,000 এর একটি দ্বারা ফাঁকা 0 অ্যারে দিয়ে শুরু করা যাক, 42 00:01:58,000 --> 00:02:02,000 সঙ্গে মাথা 0 সেট. 43 00:02:02,000 --> 00:02:11,000 এখন let সারিবদ্ধ এর মান 4 - 6, 2, 3, এবং 1. 44 00:02:11,000 --> 00:02:14,000 দ্বারা এখন 4 হতে হবে, 45 00:02:14,000 --> 00:02:17,000 মাথা এবং 0 এ থাকবো. 46 00:02:17,000 --> 00:02:20,000 >> যদি আমরা একটি মান dequeue কি হবে? 47 00:02:20,000 --> 00:02:24,000 আমরা দৈর্ঘ্য 3 কমাতে হবে, 48 00:02:24,000 --> 00:02:28,000 1 মাথা সেট, 49 00:02:28,000 --> 00:02:33,000 এবং মান প্রত্যাবর্তন 6. 50 00:02:33,000 --> 00:02:36,000 যে কোড ভালো চেহারা হতে পারে. 51 00:02:36,000 --> 00:02:38,000 এখানে আমরা dequeue ফাংশন আছে, 52 00:02:38,000 --> 00:02:41,000 থ - - যা সারিতে একটি পয়েন্টার নেয় এবং উপাদান একটি পয়েন্টার, 53 00:02:41,000 --> 00:02:44,000 যা টাইপ int. 54 00:02:44,000 --> 00:02:47,000 প্রথম আমরা কিউ 'র মধ্যে সে বিষয়ে নিশ্চিত হতে অধিক 0 দ্বারা চেক করা, 55 00:02:47,000 --> 00:02:50,000 যে একটি উপাদান dequeued করা হয় সেখানে নিশ্চিত. 56 00:02:50,000 --> 00:02:54,000 তারপর উপাদান অ্যারের মধ্যে আমরা অবস্থান মাথা তাকান,, 57 00:02:54,000 --> 00:02:58,000 এবং উপাদান মূল্য যে স্থান এ মান সেট করা. 58 00:02:58,000 --> 00:03:01,000 তারপর আমরা পরের সূচক মাথা পরিবর্তন করা 59 00:03:01,000 --> 00:03:04,000 ক্ষমতা%. 60 00:03:04,000 --> 00:03:07,000 আমরা তখন 1 দ্বারা কিউ দৈর্ঘ্য কমাতে. 61 00:03:07,000 --> 00:03:12,000 পরিশেষে, আমরা ফিরে যাও যে dequeue ছিল সফল ইঙ্গিত সত্য. 62 00:03:12,000 --> 00:03:19,000 যদি আমরা আবার dequeue, দৈর্ঘ্য 2 হয়ে যাবে, 63 00:03:19,000 --> 00:03:24,000 মাথা হয়ে 2 হবে, 64 00:03:24,000 --> 00:03:32,000 এবং ফিরতি মূল্য 2 হতে হবে. 65 00:03:32,000 --> 00:03:35,000 >> যদি আমরা যেমন একটি 7 হিসাবে অন্য সারিবদ্ধ মান কি হবে? 66 00:03:35,000 --> 00:03:37,000 হিসাবে আমরা কিউ শেষে ছিল, 67 00:03:37,000 --> 00:03:47,000 আমরা চারিদিকে মোড়ানো এবং অ্যারের উপাদান 0 মান সংরক্ষণ করতে হবে. 68 00:03:47,000 --> 00:03:50,000 গাণিতিকভাবে, এই দ্বারা যুক্ত করা যাবে প্রতিনিধিত্ব 69 00:03:50,000 --> 00:03:52,000 মাথা সূচী 70 00:03:52,000 --> 00:03:55,000 এবং একটি মডুলাস কিউ ক্ষমতা ব্যবহার করে সম্পাদন. 71 00:03:55,000 --> 00:04:00,000 এখানে যে 2 +2, যা 4% 4, 72 00:04:00,000 --> 00:04:02,000 যা 0. 73 00:04:02,000 --> 00:04:05,000 এই ধারণা আমরা এই ফাংশন কোড অনুবাদ আছে. 74 00:04:05,000 --> 00:04:08,000 এখানে আমরা সারিবদ্ধ ফাংশন দেখতে, 75 00:04:08,000 --> 00:04:10,000 থ - যা সারিতে একটি পয়েন্টার লাগে - 76 00:04:10,000 --> 00:04:14,000 এবং লাগে উপাদান enqueued করা, যা একটি পূর্ণসংখ্যা. 77 00:04:14,000 --> 00:04:18,000 আমরা পরের যাও নিশ্চিত করুন যে চেক কিউ 'র ক্ষমতা 78 00:04:18,000 --> 00:04:21,000 হয় কিউ বর্তমান দ্বারা তুলনায় এখনও বৃহত্তর. 79 00:04:21,000 --> 00:04:24,000 এর পরে, আমরা উপাদান অ্যারের মধ্যে উপাদান সঞ্চয় 80 00:04:24,000 --> 00:04:30,000 সূচক যার মাথা + দ্বারা% কিউ ক্ষমতার দ্বারা নির্ধারিত হয়. 81 00:04:30,000 --> 00:04:33,000 আমরা তখন 1 দ্বারা কিউ দৈর্ঘ্য বৃদ্ধি, 82 00:04:33,000 --> 00:04:39,000 এবং তারপরে আসল যে সারিবদ্ধ ফাংশন ছিল সফল ইঙ্গিত ফিরে. 83 00:04:39,000 --> 00:04:42,000 >> দুটি ফাংশন আমরা উল্লেখ করেছি ছাড়াও, 84 00:04:42,000 --> 00:04:44,000 দুটি অতিরিক্ত ফাংশন আছে. 85 00:04:44,000 --> 00:04:46,000 প্রথম isempty ফাংশন, 86 00:04:46,000 --> 00:04:48,000 যা সারিতে একটি পয়েন্টার লাগে 87 00:04:48,000 --> 00:04:51,000 এবং যাচাই দৈর্ঘ্য হল 0. 88 00:04:51,000 --> 00:04:53,000 দ্বিতীয়টি হল দ্বারা ফাংশন, 89 00:04:53,000 --> 00:04:55,000 যা সারিতে একটি পয়েন্টার লাগে 90 00:04:55,000 --> 00:04:58,000 এবং struct থেকে বর্তমান দ্বারা উত্পন্ন হবে. 91 00:04:58,000 --> 00:05:03,000 এই সংক্ষিপ্ত অবলোকন এক সারিতে সম্ভাব্য বাস্তবায়ন করেনি প্রদর্শিত. 92 00:05:03,000 --> 00:05:06,000 এই বাস্তবায়ন যাও সীমাবদ্ধতা এক 93 00:05:06,000 --> 00:05:08,000 যে কিউ একটি নির্দিষ্ট মাপ আছে. 94 00:05:08,000 --> 00:05:11,000 যদি আমরা আরো বেশী উপাদান কিউ ধরে রাখতে পারেন যোগ চেষ্টা, 95 00:05:11,000 --> 00:05:14,000 আমরা অনুরোধ উপেক্ষা উপাদান এবং ড্রপ করার প্রয়োজন হতে পারে, 96 00:05:14,000 --> 00:05:17,000 অথবা আমরা ত্রুটির কিছু রিটার্ন টাইপ পছন্দ হতে পারে. 97 00:05:17,000 --> 00:05:20,000 একটি পরিবর্তে একটি অ্যারের তুলনায় লিঙ্ক তালিকা ব্যবহার করে 98 00:05:20,000 --> 00:05:22,000 এটি পরিবর্তনশীল আকার সারিতে আরও সহজ করতে হবে. 99 00:05:22,000 --> 00:05:26,000 যাইহোক, যেহেতু আমরা একটি লিঙ্ক তালিকা উপাদান সরাসরি এক্সেস না থাকে, 100 00:05:26,000 --> 00:05:28,000 যদি আমরা লেঙ্গুড় ট্র্যাক রাখতে না, 101 00:05:28,000 --> 00:05:32,000 আমরা সমগ্র লিঙ্ক তালিকা শেষে প্রতিটি সময় পেতে স্ক্যান করতে হবে. 102 00:05:32,000 --> 00:05:35,000 আমরা বিবেচনা তথ্য অন্য ধরনের একটি অ্যারে ব্যবহার করতে পারে, 103 00:05:35,000 --> 00:05:39,000 structs হিসাবে যেমন, আরো জটিল উপাদানের queues তৈরি. 104 00:05:39,000 --> 00:05:42,000 একটি বর্গ waitlist আমাদের যেমন ফিরে চিন্তা, 105 00:05:42,000 --> 00:05:45,000 এই কাঠামো পৃথক ছাত্র প্রতিনিধিত্ব করতে পারে. 106 00:05:45,000 --> 00:05:48,000 >> আমার নাম ক্রিস GERBER, এবং এই CS50. 107 00:05:48,000 --> 00:05:51,000 [CS50.TV] 108 00:05:51,000 --> 00:05:55,000 এবং আয় - >> আরও একটি সময়. 109 00:05:55,000 --> 00:06:00,000 এবং যে ইঙ্গিত সত্য ফেরত - কিউ 'র সফল হয়েছে. 110 00:06:00,000 --> 00:06:03,000 -% কিউ ক্ষমতা - 111 00:06:03,000 --> 00:06:06,000 এটি সম্পাদনা মধ্যে মজা করা যাচ্ছে. [হাস্য]