1 00:00:00,000 --> 00:00:04,074 2 00:00:04,074 --> 00:00:05,990 ডগ লয়েড: ঠিক আছে, আপনি আছেন এই বিন্দু দ্বারা তাই 3 00:00:05,990 --> 00:00:09,020 সম্ভবত বেশ পরিচিত অ্যারে এবং সংযুক্ত তালিকার সঙ্গে 4 00:00:09,020 --> 00:00:10,950 দুটি প্রধান যা হয় ডাটা স্ট্রাকচার আমরা করেছি 5 00:00:10,950 --> 00:00:16,810 সেট পালন সম্পর্কে সায়ীদ একই ধরনের তথ্য নিয়ে তথ্য সংগঠিত. 6 00:00:16,810 --> 00:00:19,080 >> এখন আমরা কথা বলতে যাচ্ছেন পরিবর্তনের একটি দম্পতি সম্পর্কে 7 00:00:19,080 --> 00:00:20,330 অ্যারে এবং সংযুক্ত তালিকার উপর. 8 00:00:20,330 --> 00:00:22,362 এই ভিডিওতে আমরা চলুন stacks সম্পর্কে কথা বলার জন্য. 9 00:00:22,362 --> 00:00:25,320 বিশেষভাবে আমরা কথা বলতে যাচ্ছেন সম্পর্কে একটি ডাটা স্ট্রাকচার একটি স্ট্যাকের বলা. 10 00:00:25,320 --> 00:00:28,510 আগের আলোচনা থেকে প্রত্যাহার পয়েন্টার এবং মেমরি সম্পর্কে, 11 00:00:28,510 --> 00:00:32,060 স্ট্যাকের হয় যে মেমরি সেগমেন্ট জন্য নাম 12 00:00:32,060 --> 00:00:34,980 স্ট্যাটিক্যালি ঘোষণা করেন মেমরি মেমরি যে আপনি 13 00:00:34,980 --> 00:00:38,730 আপনার নাম যে ভেরিয়েবল, নাম, এবং ইত্যাদি এবং ফাংশন ফ্রেম যা আমরা 14 00:00:38,730 --> 00:00:41,000 কল স্ট্যাক ফ্রেম অস্তিত্ব. 15 00:00:41,000 --> 00:00:45,421 সুতরাং এই একটি স্ট্যাক ডাটা স্ট্রাকচার মেমরি না একটি স্ট্যাক সেগমেন্ট. 16 00:00:45,421 --> 00:00:45,920 ঠিক আছে. 17 00:00:45,920 --> 00:00:46,890 >> কিন্তু একটি স্ট্যাক কি? 18 00:00:46,890 --> 00:00:49,220 তাই এটা শুধু একটা বেশ অনেক কাঠামো বিশেষ ধরনের 19 00:00:49,220 --> 00:00:51,190 যে একটি সংগঠিত উপায়ে তথ্য রক্ষণাবেক্ষণ. 20 00:00:51,190 --> 00:00:53,760 আর দুটি খুব আছে সাধারণ উপায় বাস্তবায়ন 21 00:00:53,760 --> 00:00:57,380 দুটি ডাটা স্ট্রাকচার ব্যবহার stacks আমরা ইতিমধ্যে সাথে পরিচিত হন যে, 22 00:00:57,380 --> 00:01:00,340 অ্যারে এবং সংযুক্ত তালিকা. 23 00:01:00,340 --> 00:01:04,430 কি একটি স্ট্যাক বিশেষ করে তোলে আমরা তথ্য করা যা ভাবে 24 00:01:04,430 --> 00:01:08,200 স্ট্যাক, এবং পথ আমরা মধ্যে স্ট্যাক থেকে তথ্য মুছে ফেলার. 25 00:01:08,200 --> 00:01:11,600 Stacks সঙ্গে বিশেষ করে নিয়ম শুধুমাত্র সবচেয়ে হয় 26 00:01:11,600 --> 00:01:15,830 সম্প্রতি যোগ উপাদান মুছে ফেলা হতে পারে. 27 00:01:15,830 --> 00:01:17,660 >> এটি একটি স্ট্যাক হিসাবে যদি এটি সম্পর্কে চিন্তা. 28 00:01:17,660 --> 00:01:21,170 আমরা তথ্য পাইল করছি নিজেই উপরে, 29 00:01:21,170 --> 00:01:24,271 উপরের এবং শুধুমাত্র জিনিস গাদা মুছে ফেলা হতে পারে. 30 00:01:24,271 --> 00:01:27,020 আমরা নীচে জিনিস সরাতে পারবেন না অন্য সব কিছুর কারণ 31 00:01:27,020 --> 00:01:28,020 ভেঙ্গে উপর পড়ে. 32 00:01:28,020 --> 00:01:32,580 সুতরাং আমরা সত্যিই একটি স্ট্যাক নির্মাণ করা হয় যে আমরা তখন টুকরা টুকরা দ্বারা মুছে ফেলা হবে. 33 00:01:32,580 --> 00:01:36,590 এই কারণে আমরা সাধারণভাবে পড়ুন একটি LIFO কাঠামো হিসেবে একটি স্ট্যাক, 34 00:01:36,590 --> 00:01:38,940 , প্রথম স্থায়ী আউট. 35 00:01:38,940 --> 00:01:42,290 LIFO, প্রথম, শেষ বার. 36 00:01:42,290 --> 00:01:45,635 >> সুতরাং, কারণ এই সীমাবদ্ধতা নিয়ে তথ্য যোগ করা যেতে পারে কিভাবে 37 00:01:45,635 --> 00:01:49,080 এবং একটি স্ট্যাক থেকে মুছে, সত্যিই আছে শুধু দুটি জিনিস আমরা একটি স্ট্যাক দিয়ে করতে পারেন. 38 00:01:49,080 --> 00:01:52,010 আমরা যা, ধাক্কা পারেন আমরা যোগ করার জন্য ব্যবহার শব্দটি 39 00:01:52,010 --> 00:01:55,130 উপরের একটি নতুন উপাদান গাদা, অথবা যদি স্ট্যাক অস্তিত্ব নেই 40 00:01:55,130 --> 00:01:58,550 এবং আমরা তা গোড়া থেকে তৈরি করছি প্রথমেই স্ট্যাক তৈরি 41 00:01:58,550 --> 00:02:00,110 ঠেলাঠেলি হবে. 42 00:02:00,110 --> 00:02:04,990 এবং তারপর পপ, যে সি এস কতকাংশে শব্দটি আমরা অতি সম্প্রতি মুছে ফেলার জন্য ব্যবহার 43 00:02:04,990 --> 00:02:08,330 স্ট্যাকের উপর থেকে উপাদান যোগ. 44 00:02:08,330 --> 00:02:11,130 >> তাই আমরা উভয় তাকান চলুন বাস্তবায়নের উভয় অ্যারে ভিত্তিক 45 00:02:11,130 --> 00:02:13,120 এবং লিঙ্ক তালিকা ভিত্তিক. 46 00:02:13,120 --> 00:02:14,870 আর আমরা চলুন ভিত্তি অ্যারে দিয়ে শুরু. 47 00:02:14,870 --> 00:02:19,990 সুতরাং এখানে মৌলিক ধারণা কি অ্যারে ভিত্তিক স্ট্যাক ডাটা স্ট্রাকচার 48 00:02:19,990 --> 00:02:21,140 মত দেখাবে. 49 00:02:21,140 --> 00:02:23,740 আমরা এখানে একটি টাইপ সংজ্ঞা আছে. 50 00:02:23,740 --> 00:02:27,790 যে এর ভিতর আমরা দুই সদস্য আছে কাঠামো বা ক্ষেত্র. 51 00:02:27,790 --> 00:02:29,880 আমরা একটি অ্যারে আছে. 52 00:02:29,880 --> 00:02:32,400 এবং আবার আমি ব্যবহার করছি নির্বিচারে ডাটা টাইপ মান. 53 00:02:32,400 --> 00:02:35,180 >> সুতরাং এই কোন ডাটা টাইপ হতে পারে, কোন int গৃহস্থালি বা অন্য কিছু তথ্য 54 00:02:35,180 --> 00:02:37,080 আপনি পূর্বে তৈরি করা টাইপ. 55 00:02:37,080 --> 00:02:39,861 সুতরাং আমরা মাপ ক্ষমতা একটি অ্যারে আছে. 56 00:02:39,861 --> 00:02:44,010 ক্যাপাসিটি পাউন্ড, ধ্রুব সংজ্ঞায়িত হচ্ছে সম্ভবত অন্য কোথাও আমাদের ফাইলে. 57 00:02:44,010 --> 00:02:47,550 তাই এই বিশেষ সঙ্গে ইতিমধ্যে লক্ষ্য আমরা সীমান্ত হয় বাস্তবায়ন 58 00:02:47,550 --> 00:02:49,800 নিজেদেরকে হিসাবে সাধারণত ছিল অ্যারে ক্ষেত্রে, 59 00:02:49,800 --> 00:02:53,170 আমরা পরিবর্তনশীল মাপ পরিবর্তন করা যেতে পারে, যা, যেখানে একটি নির্দিষ্ট সংখ্যক আছে 60 00:02:53,170 --> 00:02:55,450 উপাদান সর্বোচ্চ যে আমরা আমাদের স্ট্যাকের মধ্যে লাগাতে পারেন. 61 00:02:55,450 --> 00:02:57,930 এই ক্ষেত্রে এটি ক্ষমতা উপাদান. 62 00:02:57,930 --> 00:03:00,310 >> আমরা ট্র্যাক রাখতে স্ট্যাক উপরের. 63 00:03:00,310 --> 00:03:04,350 সবচেয়ে কি উপাদান সম্প্রতি স্ট্যাক যোগ? 64 00:03:04,350 --> 00:03:07,470 এবং তাই আমরা যে ট্র্যাক রাখতে একটি পরিবর্তনশীল নামক উপরে. 65 00:03:07,470 --> 00:03:11,692 আর এই সব একসাথে আবৃত পরার একটি স্ট্যাক নামে একটি নতুন ডাটা টাইপ মধ্যে. 66 00:03:11,692 --> 00:03:13,400 এবং আমরা তৈরি করছি একবার এই নতুন ডাটা টাইপ 67 00:03:13,400 --> 00:03:15,410 আমরা এটা করতে চাই বিবেচনা করতে পারেন অন্য কোন ডাটা টাইপ. 68 00:03:15,410 --> 00:03:20,970 আমরা ঠিক মত স্ট্যাক এর ঘোষণা করতে পারেন আমরা int x, বা গৃহস্থালির কাজ y করতে পারে. 69 00:03:20,970 --> 00:03:22,990 আর আমরা গাদা বলুন যখন এস, ভাল কি ঘটবে 70 00:03:22,990 --> 00:03:26,420 আমরা একটি সেট পেতে হয় স্মৃতি আমাদের জন্য সেট একপাশে. 71 00:03:26,420 --> 00:03:28,770 >> এই ক্ষেত্রে ক্ষমতা ইন আমি দৃশ্যত সিদ্ধান্ত নিয়েছে করেছি 72 00:03:28,770 --> 00:03:33,470 আমি একটি পেয়েছেন কারণ 10 টাইপ স্ট্যাকের পরিবর্তনশীল 73 00:03:33,470 --> 00:03:35,320 যা দুটি ক্ষেত্র প্রত্যাহার রয়েছে. 74 00:03:35,320 --> 00:03:38,330 এই ক্ষেত্রে একটি অ্যারে, যাচ্ছে পূর্ণসংখ্যার একটি অ্যারে হতে 75 00:03:38,330 --> 00:03:40,440 যেমন আমার উদাহরণ অধিকাংশ ক্ষেত্রে. 76 00:03:40,440 --> 00:03:43,996 আর অন্য একটি পূর্ণসংখ্যা পরিবর্তনশীল শীর্ষ সংরক্ষণ করতে সক্ষম, 77 00:03:43,996 --> 00:03:45,870 অতি সম্প্রতি যোগ স্ট্যাকে উপাদান. 78 00:03:45,870 --> 00:03:50,290 তাই এক একক স্ট্যাক কি আমরা শুধু ভালো দেখায় সংজ্ঞায়িত. 79 00:03:50,290 --> 00:03:53,190 এটা ধারণকারী একটি বক্স 10 একটি অ্যারের কি 80 00:03:53,190 --> 00:03:57,280 এই ক্ষেত্রে পূর্ণসংখ্যা হতে হবে এবং সবুজ সেখানে অন্য একটি পূর্ণসংখ্যা পরিবর্তনশীল 81 00:03:57,280 --> 00:04:00,010 স্ট্যাক উপরের ইঙ্গিত. 82 00:04:00,010 --> 00:04:02,600 >> উপরের সেট করুন স্ট্যাক আমরা শুধু s.top বলে. 83 00:04:02,600 --> 00:04:04,890 যে আমরা একটি অ্যাক্সেস কিভাবে একটি কাঠামো রিকল ক্ষেত্র. 84 00:04:04,890 --> 00:04:10,460 s.top কার্যকরভাবে 0 সমান আমাদের স্ট্যাকের এই আছে. 85 00:04:10,460 --> 00:04:12,960 তাই আবার আমরা দুটি অপারেশন আছে আমরা এখন সঞ্চালন করতে পারে. 86 00:04:12,960 --> 00:04:14,270 আমরা ধাক্কা পারেন এবং আমরা পপ পারেন. 87 00:04:14,270 --> 00:04:15,635 এর ধাক্কা দিয়ে শুরু করা যাক. 88 00:04:15,635 --> 00:04:18,260 আবার, একটি নতুন যোগ করা হয় ঠেলাঠেলি স্ট্যাকের উপর থেকে উপাদান. 89 00:04:18,260 --> 00:04:21,460 >> তাই কি আমরা করতে প্রয়োজন না এই অ্যারে ভিত্তিক বাস্তবায়ন? 90 00:04:21,460 --> 00:04:23,210 পাশাপাশি সাধারণ দ্য এ ধাক্কা ফাংশন যাচ্ছে 91 00:04:23,210 --> 00:04:26,160 একটি গ্রহণ করার প্রয়োজন স্ট্যাক পয়েন্টার. 92 00:04:26,160 --> 00:04:28,610 এখন একটি দ্বিতীয় নিতে এবং এটি সম্পর্কে চিন্তা. 93 00:04:28,610 --> 00:04:32,840 কেন আমরা গ্রহণ করতে চায় স্ট্যাক একটি পয়েন্টার? 94 00:04:32,840 --> 00:04:36,830 পূর্ববর্তী ভিডিও থেকে প্রত্যাহার পরিবর্তনশীল সুযোগ এবং পয়েন্টার, 95 00:04:36,830 --> 00:04:42,350 আমরা শুধু পাঠানো হলে হবে কি স্ট্যাক, একটি প্যারামিটার হিসেবে বরং এর? 96 00:04:42,350 --> 00:04:45,770 আসলে সেখানে কি হস্তান্তর করা হবে? 97 00:04:45,770 --> 00:04:49,430 আমরা একটি কপি তৈরি করছি মনে রাখুন আমরা একটি ফাংশন এটি পাস হলে 98 00:04:49,430 --> 00:04:51,160 তবে আমরা পয়েন্টার ব্যবহার. 99 00:04:51,160 --> 00:04:55,380 আর তাই এই ফাংশন চাহিদা ধাক্কা স্ট্যাক একটি পয়েন্টার গ্রহণ করতে 100 00:04:55,380 --> 00:04:59,160 আমরা আসলে পরিবর্তন করছি যাতে স্ট্যাক আমরা পরিবর্তন অভিপ্রায়. 101 00:04:59,160 --> 00:05:03,060 >> অন্যান্য জিনিস ধাক্কা সম্ভবত চায় গ্রহণ টাইপ মান একটি তথ্য উপাদান. 102 00:05:03,060 --> 00:05:06,970 এই ক্ষেত্রে, আবার একটি পূর্ণসংখ্যা যে আমরা স্ট্যাকের শীর্ষে যোগ চলুন. 103 00:05:06,970 --> 00:05:08,680 তাই আমরা আমাদের দুটি প্যারামিটার পেয়েছেন. 104 00:05:08,680 --> 00:05:11,310 আমরা কি যাচ্ছি এখন ধাক্কা ভেতরে কি? 105 00:05:11,310 --> 00:05:14,860 ওয়েল, কেবল, আমরা শুধু যোগ করতে যাচ্ছেন স্ট্যাক উপরের যে উপাদান 106 00:05:14,860 --> 00:05:22,860 এবং তারপর এর ঊর্ধ্বতন পরিবর্তন স্ট্যাকের যে মূল্য বিন্দু গুলি, হয়. 107 00:05:22,860 --> 00:05:25,639 তাই এই কি একটি ফাংশন ধাক্কা জন্য ঘোষণা 108 00:05:25,639 --> 00:05:27,680 একটি অনুরূপ হতে পারে অ্যারে ভিত্তিক বাস্তবায়ন. 109 00:05:27,680 --> 00:05:30,967 >> আবার এই একটি ধরাবাঁধা নিয়ম নয় আপনার এটি পরিবর্তন এবং হতে পারে 110 00:05:30,967 --> 00:05:32,050 এটা বিভিন্ন উপায়ে পরিবর্তন হওয়ার সম্ভাবনা রয়েছে. 111 00:05:32,050 --> 00:05:33,840 সম্ভবত এর বিশ্বব্যাপী ঘোষিত হয়. 112 00:05:33,840 --> 00:05:36,180 এবং যাতে আপনি এমন হবে না এটি একটি প্যারামিটার হিসেবে পাস করতে. 113 00:05:36,180 --> 00:05:39,125 এই আবার মাত্র হয় ধাক্কা জন্য সাধারণ ক্ষেত্রে. 114 00:05:39,125 --> 00:05:41,000 আর বিভিন্ন আছে উপায় এটি বাস্তবায়ন. 115 00:05:41,000 --> 00:05:42,810 কিন্তু এই ক্ষেত্রে আমাদের ধাক্কা নিতে যাচ্ছে 116 00:05:42,810 --> 00:05:48,540 দুটি আর্গুমেন্ট, একটি স্ট্যাক একটি পয়েন্টার এবং টাইপ মান, পূর্ণসংখ্যা একটি তথ্য উপাদান 117 00:05:48,540 --> 00:05:49,840 এই ক্ষেত্রে. 118 00:05:49,840 --> 00:05:52,100 >> তাই আমরা যদি আমরা, এর ঘোষণা s.top 0 সমান বলেন. 119 00:05:52,100 --> 00:05:55,969 এখন এর ধাক্কা দেওয়া স্ট্যাকের মধ্যে সংখ্যা 28. 120 00:05:55,969 --> 00:05:57,010 ওয়েল, যে কি মানে? 121 00:05:57,010 --> 00:05:59,600 ওয়েল বর্তমানে স্ট্যাক উপরের 0 হয়. 122 00:05:59,600 --> 00:06:01,350 তাই কি মূলত ঘটতে যাচ্ছে 123 00:06:01,350 --> 00:06:05,820 আমরা সংখ্যা বিদ্ধ চলুন অ্যারে পাঁচ 0 মধ্যে 28. 124 00:06:05,820 --> 00:06:09,540 বেশ সহজবোধ্য, ঠিক আছে, যে শীর্ষ ছিল এবং এখন আমরা যেতে ভাল. 125 00:06:09,540 --> 00:06:12,910 এবং তারপর আমরা তা পরিবর্তন করতে হবে স্ট্যাক উপরের হতে হবে. 126 00:06:12,910 --> 00:06:15,130 পরবর্তী সময় যাতে আমরা একটি উপাদান ধাক্কা, 127 00:06:15,130 --> 00:06:18,017 আমরা তা ধারণ করতে যাচ্ছেন অ্যারে অবস্থান, সম্ভবত না 0. 128 00:06:18,017 --> 00:06:20,100 আমরা মুছে ফেলার ব্যাপারে না আমরা ঠিক আছে কি করা. 129 00:06:20,100 --> 00:06:23,510 তাই আমরা ঠিক উপরের 1 স্থানান্তর করব. 130 00:06:23,510 --> 00:06:24,890 যে সম্ভবত ইন্দ্রিয় তোলে. 131 00:06:24,890 --> 00:06:28,940 >> এখন আমরা অন্য উপাদান লাগাতে চান তাহলে স্ট্যাকের মধ্যে, আমরা 33 ধাক্কা চান বলে 132 00:06:28,940 --> 00:06:33,190 অবশ্য, এখন আমরা শুধু 33 নিতে যাচ্ছেন এবং অ্যারের পাঁচ নম্বর এ লাগাতে হবে 133 00:06:33,190 --> 00:06:37,580 1, এবং তারপর উপরের পরিবর্তন আমাদের অ্যারে পাঁচ দুই নম্বর হতে গাদা. 134 00:06:37,580 --> 00:06:40,650 তাই পরবর্তী সময় যদি আমরা করতে চান স্ট্যাকের মধ্যে একটি উপাদান ধাক্কা, 135 00:06:40,650 --> 00:06:43,087 এটা অ্যারের পাঁচ 2 রাখা হবে. 136 00:06:43,087 --> 00:06:44,420 আর এর এক যে আরো সময় না দেওয়া. 137 00:06:44,420 --> 00:06:45,753 আমরা stacks বন্ধ 19 ধাক্কা করব. 138 00:06:45,753 --> 00:06:48,940 আমরা অ্যারে পাঁচ 2 19 করা হবে এবং আমাদের স্ট্যাক উপরের পরিবর্তন 139 00:06:48,940 --> 00:06:51,220 অ্যারে পাঁচ 3 হতে তাই পরবর্তী সময় আমরা যদি 140 00:06:51,220 --> 00:06:54,780 আমরা যেতে ভাল একটি ধাক্কা করা প্রয়োজন. 141 00:06:54,780 --> 00:06:56,980 >> ঠিক আছে, তাই যে সংক্ষেপে ঠেলে. 142 00:06:56,980 --> 00:06:57,830 কি পপিং সম্পর্কে? 143 00:06:57,830 --> 00:07:00,240 তাই পপিং সাজানোর ঠেলাঠেলি করতে সহযোগীর. 144 00:07:00,240 --> 00:07:02,720 এটা আমরা স্ট্যাক থেকে তথ্য মুছে ফেলার কিভাবে. 145 00:07:02,720 --> 00:07:04,610 আর সাধারণ পপ চাহিদা মধ্যে নিচের কাজগুলো করতে. 146 00:07:04,610 --> 00:07:07,600 এটি একটি পয়েন্টার গ্রহণ করা প্রয়োজন সাধারণ ক্ষেত্রে আবার গাদা. 147 00:07:07,600 --> 00:07:10,480 অন্য কিছু যদি আপনি পারে বিশ্বব্যাপী স্ট্যাক ঘোষণা করেছেন, 148 00:07:10,480 --> 00:07:13,910 সেক্ষেত্রেও আপনি তা পাস করার প্রয়োজন না কারণ এটি ইতিমধ্যেই তা অ্যাক্সেস আছে 149 00:07:13,910 --> 00:07:15,541 একটি বিশ্বব্যাপী পরিবর্তনশীল হিসাবে. 150 00:07:15,541 --> 00:07:17,040 কিন্তু অন্য তখন আমরা কি করতে হবে? 151 00:07:17,040 --> 00:07:21,000 আচ্ছা আমরা বৃদ্ধিশীল হয়েছে ধাক্কা স্ট্যাকের উপরে, 152 00:07:21,000 --> 00:07:24,050 তাই আমরা সম্ভবত চান চলুন স্ট্যাক উপরের হ্রাস 153 00:07:24,050 --> 00:07:25,009 পপ, ডান? 154 00:07:25,009 --> 00:07:26,800 এবং তারপর অবশ্যই আমরা চাই চলুন 155 00:07:26,800 --> 00:07:29,240 আমরা মুছে ফেলার জন্য যে মূল্য ফেরত দিতে. 156 00:07:29,240 --> 00:07:32,125 আমরা উপাদান যোগ করছি, আমরা চাই পরবর্তী উপাদান খুঁজে পেতে, 157 00:07:32,125 --> 00:07:34,000 সম্ভবত আসলে আমরা তাদের তাই আমরা সঞ্চয় করতে চান 158 00:07:34,000 --> 00:07:36,490 শুধু থেকে তাদের মুছে না গাদা এবং তারপর তাদের সঙ্গে কিছুই না. 159 00:07:36,490 --> 00:07:38,500 সাধারনত আমরা হন তাহলে ঠেলাঠেলি এবং এখানে পপিং 160 00:07:38,500 --> 00:07:41,250 আমরা এই সঞ্চয় করতে চান একটি অর্থপূর্ণ ভাবে তথ্য 161 00:07:41,250 --> 00:07:43,250 এবং তাই এটা দেখা যায় না অর্থে শুধু এটা বর্তমান অবস্থাই রেখে দিতে. 162 00:07:43,250 --> 00:07:46,380 তাই এই কাজ করা উচিত সম্ভবত আমাদের জন্য একটি মান প্রত্যাবর্তন. 163 00:07:46,380 --> 00:07:51,040 >> তাই এই পপ জন্য কি একটি ঘোষণা উপরের বামদিকের সেখানে অনুরূপ হতে পারে. 164 00:07:51,040 --> 00:07:53,870 এই ফাংশন আয় টাইপ মান তথ্য. 165 00:07:53,870 --> 00:07:56,320 আবার আমরা ব্যবহার করছি পূর্ণসংখ্যার জুড়ে. 166 00:07:56,320 --> 00:08:01,916 এবং এটি একটি স্ট্যাক হিসাবে একটি পয়েন্টার গ্রহণ তার একমাত্র যুক্তি বা একমাত্র প্যারামিটার. 167 00:08:01,916 --> 00:08:03,040 তাই কি পপ করতে যাচ্ছে? 168 00:08:03,040 --> 00:08:07,990 আসুন আমরা এখন সেটি যাক এর বন্ধ একটি উপাদান পপ. 169 00:08:07,990 --> 00:08:14,000 তাই আমি stacks এর সর্বশেষ যে বলেন স্মরণ প্রথম আউট, LIFO ডাটা স্ট্রাকচার, মধ্যে. 170 00:08:14,000 --> 00:08:17,855 যা উপাদান যাচ্ছে স্ট্যাক থেকে অপসারণ করা? 171 00:08:17,855 --> 00:08:21,780 172 00:08:21,780 --> 00:08:24,150 আপনি 19 অনুমান করেছেন? 173 00:08:24,150 --> 00:08:25,290 ডান হতে চাই, কারণ. 174 00:08:25,290 --> 00:08:28,836 19 আমরা যোগ শেষ উপাদান ছিল আমরা উপাদান ঠেলাঠেলি করছিল যখন গাদা, 175 00:08:28,836 --> 00:08:31,210 এবং তাই এটি প্রথম যাচ্ছে মুছে পরার যে উপাদান. 176 00:08:31,210 --> 00:08:34,780 এটা আমরা 28 বলেছেন হিসাবে যদি, এবং তারপর আমরা, এটি উপরে 33 করা 177 00:08:34,780 --> 00:08:36,659 এবং আমরা যে উপরে 19 করা. 178 00:08:36,659 --> 00:08:40,650 আমরা বন্ধ করা যাবে একমাত্র উপাদান 19. 179 00:08:40,650 --> 00:08:45,019 >> এখন এখানে চিত্রটি আমি কাজ করেছি তা সাজান অ্যারে থেকে 19 মুছে ফেলা হয়. 180 00:08:45,019 --> 00:08:46,810 যে আসলে না আমরা কি করতে যাচ্ছেন. 181 00:08:46,810 --> 00:08:48,934 আমরা ঠিক মত করতে যাচ্ছেন এটা নেই জাহির. 182 00:08:48,934 --> 00:08:51,441 এটা সেখানে এখনও যে মেমরি পাঁচ, 183 00:08:51,441 --> 00:08:54,190 কিন্তু আমরা এটা উপেক্ষা করতে যাচ্ছেন আমাদের স্ট্যাক উপরের পরিবর্তন করে 184 00:08:54,190 --> 00:08:56,080 2 3 থেকে. 185 00:08:56,080 --> 00:08:58,720 আমরা হলে তাই এখন ধাক্কা স্ট্যাকের মধ্যে অন্য উপাদান, 186 00:08:58,720 --> 00:09:00,720 এটা ওভার 19 লিখতে হবে. 187 00:09:00,720 --> 00:09:03,990 >> কিন্তু এর না কষ্ট দিয়ে যেতে দেওয়া স্ট্যাক থেকে 19 মোছার. 188 00:09:03,990 --> 00:09:05,830 আমরা শুধু এটা নেই সাজা হতে পারে. 189 00:09:05,830 --> 00:09:11,107 স্ট্যাকের উদ্দেশ্যে এটি যদি চলে গেছে আমরা 2 পরিবর্তে 3 হতে উপরের পরিবর্তন. 190 00:09:11,107 --> 00:09:12,690 ঠিক আছে, এটা অনেক সুন্দর ছিল তাই. 191 00:09:12,690 --> 00:09:15,080 যে আমরা যা করতে হবে সব একটি উপাদান প্রস্থান করতে. 192 00:09:15,080 --> 00:09:16,090 চলো এটা আবার করি. 193 00:09:16,090 --> 00:09:18,610 তাই আমি এখানে লাল এটা হাইলাইট করেছি আমরা অন্য কল করছেন ইঙ্গিত. 194 00:09:18,610 --> 00:09:19,720 আমরা একই জিনিস কাজ করতে যাচ্ছেন. 195 00:09:19,720 --> 00:09:20,803 >> তাই কি ঘটতে যাচ্ছে? 196 00:09:20,803 --> 00:09:23,670 ওয়েল, আমরা সংরক্ষণ চলুন এক্স 33 এবং আমরা চলুন 197 00:09:23,670 --> 00:09:26,217 1 স্ট্যাকের উপরের পরিবর্তন. 198 00:09:26,217 --> 00:09:29,050 আমরা একটি ধাক্কা এখন হলে যে তাই আমরা করছি যা স্ট্যাকের মধ্যে উপাদান 199 00:09:29,050 --> 00:09:31,610 এখনই করতে যাচ্ছে, কি ঘটতে যাচ্ছে 200 00:09:31,610 --> 00:09:36,367 আমরা মুছে ফেলা চলুন অ্যারে পাঁচ নম্বর 1. 201 00:09:36,367 --> 00:09:38,950 সাজান বাকি ছিল যে 33 যাতে যে পিছনে আমরা কৃত্রিম 202 00:09:38,950 --> 00:09:44,390 এখন আর নেই, আমরা শুধু চলুন এটা জখম পরিবর্তে সেখানে 40 করা. 203 00:09:44,390 --> 00:09:46,290 এবং তারপর অবশ্যই, আমরা সঙ্কটকালে তৈরি থেকে, 204 00:09:46,290 --> 00:09:48,780 আমরা বাড়ায় চলুন 1 থেকে 2 স্ট্যাক উপরের 205 00:09:48,780 --> 00:09:50,950 তাই আমরা এখন যোগ তাহলে যে অন্য উপাদান এটা করব 206 00:09:50,950 --> 00:09:54,700 অ্যারে পাঁচ নম্বর দুটি ঢোকা. 207 00:09:54,700 --> 00:09:57,590 >> এখন লিঙ্ক তালিকা অন্য হয় stacks এর বাস্তবায়ন ভাবে. 208 00:09:57,590 --> 00:10:01,210 আর এই সংজ্ঞা যদি পর্দা এখানে, আপনি পরিচিত দেখায় 209 00:10:01,210 --> 00:10:04,260 এটা প্রায় মনে হচ্ছে, কারণ এটি ঠিক একই, আসলে, 210 00:10:04,260 --> 00:10:07,790 এটা অনেক সুন্দর ঠিক হয় একটি একেলা লিঙ্ক তালিকা হিসাবে একই, 211 00:10:07,790 --> 00:10:11,990 আপনাকে আমাদের আলোচনা থেকে প্রত্যাহার হলে একেলা অন্য ভিডিওতে তালিকা লিঙ্ক. 212 00:10:11,990 --> 00:10:15,510 এখানে শুধুমাত্র সীমাবদ্ধতা , প্রোগ্রামার হিসেবে আমাদের জন্য নয় 213 00:10:15,510 --> 00:10:17,900 আমরা অনুমতি দেওয়া হয় না সন্নিবেশ বা এলোমেলোভাবে মুছে 214 00:10:17,900 --> 00:10:20,620 একেলা লিঙ্ক তালিকা থেকে আমরা পূর্বে কাজ করতে পারে যা. 215 00:10:20,620 --> 00:10:25,820 আমরা কেবল এখন ঢুকিয়ে থেকে মুছে দিতে পারেন সামনে বা লিঙ্ক উপরের 216 00:10:25,820 --> 00:10:26,320 তালিকায়. 217 00:10:26,320 --> 00:10:28,028 যে সত্যিই শুধুমাত্র এর পার্থক্য যদিও. 218 00:10:28,028 --> 00:10:29,700 এই অন্যথায় একটি একেলা লিঙ্ক তালিকা. 219 00:10:29,700 --> 00:10:32,060 এটা শুধুমাত্র সীমাবদ্ধতা নিজেদের উপর প্রতিস্থাপন 220 00:10:32,060 --> 00:10:35,770 প্রোগ্রামারদের হিসাবে যে একটি স্ট্যাকের মধ্যে এটি পরিবর্তন. 221 00:10:35,770 --> 00:10:39,280 >> এখানে নিয়ম সবসময় একটি বজায় রাখা হয় একটি লিঙ্ক তালিকা মাথার পয়েন্টার. 222 00:10:39,280 --> 00:10:41,520 এই কোর্সের একটি সাধারণত হয় প্রথম গুরুত্বপূর্ণ নিয়ম. 223 00:10:41,520 --> 00:10:44,260 একেলা আপনি তালিকা যাহাই হউক না কেন লিঙ্ক জন্য শুধুমাত্র মাথার একটি পয়েন্টার প্রয়োজন 224 00:10:44,260 --> 00:10:46,160 যে আছে যাতে চেইন পড়ুন পাবে 225 00:10:46,160 --> 00:10:48,596 প্রত্যেক অন্যান্য উপাদান লিঙ্ক তালিকায়. 226 00:10:48,596 --> 00:10:50,470 কিন্তু এটি বিশেষ করে এর একটি স্ট্যাক সঙ্গে গুরুত্বপূর্ণ. 227 00:10:50,470 --> 00:10:52,386 আর তাই সাধারণত আপনি আছেন আসলে চান যাচ্ছে 228 00:10:52,386 --> 00:10:54,090 এই পয়েন্টার একটি বিশ্বব্যাপী পরিবর্তনশীল হতে. 229 00:10:54,090 --> 00:10:56,574 এটা সম্ভবত যাচ্ছে আরও সহজ যে ভাবে হতে. 230 00:10:56,574 --> 00:10:58,240 তাই ধাক্কা এবং পপ সহধর্মীদের কি হয়? 231 00:10:58,240 --> 00:10:58,740 রাইট. 232 00:10:58,740 --> 00:11:01,812 তাই আবার ঠেলে যোগ হয় স্ট্যাক একটি নতুন উপাদান. 233 00:11:01,812 --> 00:11:03,770 একটি লিঙ্ক তালিকায় যে আমরা আছে চলুন মানে 234 00:11:03,770 --> 00:11:07,770 আমরা যে একটি নতুন নোড তৈরি করতে লিঙ্ক তালিকায় যোগ করতে যাচ্ছে, 235 00:11:07,770 --> 00:11:10,500 এবং তারপর সতর্ক পদক্ষেপ অনুসরণ আমরা পূর্বে রূপরেখা করেছি যে 236 00:11:10,500 --> 00:11:16,050 একেলা লিঙ্ক তালিকা মধ্যে এটি যোগ করতে চেইন ভঙ্গ ছাড়া চেইন 237 00:11:16,050 --> 00:11:18,900 এবং হারানো বা কোনো অনাথ লিঙ্ক তালিকা উপাদান. 238 00:11:18,900 --> 00:11:21,820 এবং যে মূলত কি যে লেখার একটু ছিটে আছে সংক্ষিপ্ত বিবরণ. 239 00:11:21,820 --> 00:11:23,740 আর এর কটাক্ষপাত করা যাক একটি ডায়াগ্রাম হিসাবে এটি এ. 240 00:11:23,740 --> 00:11:24,823 >> তাই এখানে আমাদের লিঙ্ক তালিকা. 241 00:11:24,823 --> 00:11:26,620 এটা একই সময়ে চারটি উপাদান রয়েছে. 242 00:11:26,620 --> 00:11:30,420 আরো নিখুঁতভাবে এখানে আমাদের কী চারটি উপাদান ধারণকারী গাদা. 243 00:11:30,420 --> 00:11:36,030 আর আসুন আমরা এখন সেটি যাক এই স্ট্যাকের মধ্যে একটি নতুন আইটেম ধাক্কা. 244 00:11:36,030 --> 00:11:39,792 এবং আমরা একটি নতুন ধাক্কা চান যার ডাটা মূল্য আইটেমটি 12. 245 00:11:39,792 --> 00:11:41,000 আচ্ছা আমরা কি করতে যাচ্ছি কি? 246 00:11:41,000 --> 00:11:43,420 ওয়েল প্রথম আমরা চলুন পরিবর্তনশীল malloc স্থান, 247 00:11:43,420 --> 00:11:45,411 একটি নতুন নোডের জন্য স্থান বরাদ্দ. 248 00:11:45,411 --> 00:11:48,160 এবং অবশ্যই অবিলম্বে পরে আমরা সবসময় আমরা malloc একটি কল করা 249 00:11:48,160 --> 00:11:52,989 শূন্য চেক করতে ভুলবেন না আমরা ফিরে নাল পেয়েছিলাম কারণ যদি 250 00:11:52,989 --> 00:11:54,280 সমস্যা কিছু বাছাই করা হয়েছে. 251 00:11:54,280 --> 00:11:57,570 আমরা যে নাল ডি-রেফারেন্স করতে চান না পয়েন্টার অথবা আপনি একটি seg দোষ ক্ষতিগ্রস্ত হবে. 252 00:11:57,570 --> 00:11:58,510 এটা ভালো না. 253 00:11:58,510 --> 00:11:59,760 সুতরাং আমরা নোড malloced থাকেন. 254 00:11:59,760 --> 00:12:01,260 আমরা এখানে সাফল্য ছিল করেছি অনুমান করব. 255 00:12:01,260 --> 00:12:06,090 আমরা শুধুমাত্র 12 লাগাতে যাচ্ছেন যে নোড ডাটা ক্ষেত্র. 256 00:12:06,090 --> 00:12:11,570 এখন আপনি কি মনে করতে আমাদের পয়েন্টার যা তাই আমরা শৃঙ্খল বিরতি না পরের প্যাচসমূহ? 257 00:12:11,570 --> 00:12:15,100 আমরা এখানে বিকল্প একটি দম্পতি আছে কিন্তু নিরাপদ হতে যাচ্ছে যে শুধুমাত্র এক 258 00:12:15,100 --> 00:12:19,330 পয়েন্টার পরবর্তী সংবাদ সেট করা হয় তালিকার পুরানো মাথার দিকে নির্দেশ 259 00:12:19,330 --> 00:12:21,360 বা শীঘ্রই হবে কি তালিকার পুরানো মাথা. 260 00:12:21,360 --> 00:12:23,610 আর এখন সব যে আমাদের উপাদান একসঙ্গে শৃঙ্খলিত করা হয়, 261 00:12:23,610 --> 00:12:27,370 আমরা শুধু নির্দেশ তালিকায় স্থানান্তর করতে পারেন নতুন করে যে একই জায়গা. 262 00:12:27,370 --> 00:12:33,550 আর আমরা এখন কার্যকরভাবে push করা একটি স্ট্যাক সামনে সম্মুখের নতুন উপাদান. 263 00:12:33,550 --> 00:12:36,420 >> আমরা পপ শুধু চাই যে প্রথম উপাদান মুছে দিন. 264 00:12:36,420 --> 00:12:38,150 তাই মূলত কি আমরা এখানে যা করতে হবে 265 00:12:38,150 --> 00:12:40,050 আমরা দ্বিতীয় উপাদান খুঁজে পেতে আছে. 266 00:12:40,050 --> 00:12:43,540 অবশেষে যে নতুন হয়ে যাবে আমরা প্রথম এক মোছার পর মাথা. 267 00:12:43,540 --> 00:12:47,300 তাই আমরা ঠিক থেকে শুরু করতে হবে শুরুতে, এক অগ্রসর. 268 00:12:47,300 --> 00:12:50,340 আমরা এক একটি হোল্ড পেয়েছিলাম করেছি যেখানে আমরা এগিয়ে বর্তমানে 269 00:12:50,340 --> 00:12:53,850 আমরা নিরাপদে প্রথম এক মুছে দিতে পারেন হয় এবং তারপর আমরা শুধু মাথা সরাতে পারেন 270 00:12:53,850 --> 00:12:57,150 কি ছিল নির্দেশ এখন তাহলে দ্বিতীয় মেয়াদে এবং 271 00:12:57,150 --> 00:12:59,170 এর পর প্রথম নোড মুছে ফেলা হয়েছে. 272 00:12:59,170 --> 00:13:01,160 >> তাই আবার, কটাক্ষপাত গ্রহণ এটা একটি ডায়াগ্রাম হিসাবে আমরা 273 00:13:01,160 --> 00:13:05,022 এখন একটি পপ চান এই স্ট্যাকের বন্ধ উপাদান. 274 00:13:05,022 --> 00:13:05,730 তাই আমরা কি করব? 275 00:13:05,730 --> 00:13:08,188 আচ্ছা আমরা প্রথম তৈরি করতে যাচ্ছেন যাচ্ছে যে একটি নতুন পয়েন্টার 276 00:13:08,188 --> 00:13:10,940 প্রধান হিসেবে একই স্পট নির্দেশ. 277 00:13:10,940 --> 00:13:13,790 আমরা এটা এক অবস্থানে স্থানান্তর করতে যাচ্ছেন এগিয়ে trav সমান বলার অপেক্ষা রাখে না 278 00:13:13,790 --> 00:13:17,510 উদাহরণস্বরূপ, পরের trav যা trav পয়েন্টার এক আগাম হবে 279 00:13:17,510 --> 00:13:19,324 অগ্রবর্তী অবস্থানে. 280 00:13:19,324 --> 00:13:21,240 এখন আমরা পেয়েছেন যে একটি প্রথম উপাদান উপর রাখা 281 00:13:21,240 --> 00:13:24,573 পয়েন্টার বলা তালিকা, এবং এর মাধ্যমে নামক একটি পয়েন্টার মাধ্যমে দ্বিতীয় উপাদান 282 00:13:24,573 --> 00:13:28,692 trav, আমরা নিরাপদে যে মুছে দিতে পারেন স্ট্যাক থেকে প্রথম উপাদান 283 00:13:28,692 --> 00:13:30,650 বাকি হারানো ছাড়া চেন আমরা কারণ 284 00:13:30,650 --> 00:13:32,358 পড়ুন একটি উপায় আছে দ্বিতীয় উপাদান 285 00:13:32,358 --> 00:13:34,780 প্রণালী দ্বারা ফরোয়ার্ড পয়েন্টার trav বলা. 286 00:13:34,780 --> 00:13:37,100 >> তাই এখন আমরা যে নোড মুক্ত করতে পারেন. 287 00:13:37,100 --> 00:13:38,404 আমরা তালিকা পারেন. 288 00:13:38,404 --> 00:13:41,320 এবং তারপর আমরা এখন কি করতে হবে সব হয় একই জায়গা বিন্দু তালিকা স্থানান্তর 289 00:13:41,320 --> 00:13:44,482 যে trav আছে, এবং আমরা ফিরে সাজান আছেন আমরা 12 push করা আগে আমরা শুরু যেখানে 290 00:13:44,482 --> 00:13:45,690 প্রথমেই উপর, ঠিক আছে. 291 00:13:45,690 --> 00:13:46,940 আমরা কোথায় ছিলাম এই ঠিক হয়. 292 00:13:46,940 --> 00:13:48,840 আমরা এই চারটি উপাদান স্ট্যাক ছিল. 293 00:13:48,840 --> 00:13:49,690 আমরা একটি পঞ্চম যোগ. 294 00:13:49,690 --> 00:13:51,910 আমরা একটি পঞ্চম ধাক্কা উপাদান, এবং তারপর আমরা 295 00:13:51,910 --> 00:13:55,980 popped যে অতি সম্প্রতি পিছন থেকে উপাদান যোগ. 296 00:13:55,980 --> 00:13:58,816 >> যে অনেক সুন্দর সত্যিই সব stacks আছে. 297 00:13:58,816 --> 00:14:00,190 আপনি অ্যারে হিসাবে তাদের বাস্তবায়ন করতে পারে. 298 00:14:00,190 --> 00:14:01,815 আপনি লিঙ্ক তালিকা হিসাবে তাদের বাস্তবায়ন করতে পারে. 299 00:14:01,815 --> 00:14:04,810 অন্যান্য, অবশ্যই, আছে উপায় হিসেবে তাদের বাস্তবায়ন করতে. 300 00:14:04,810 --> 00:14:09,060 আমরা ব্যবহার হবে মূলত কারণ stacks এর এমনভাবে তথ্য বজায় রাখার জন্য হয় 301 00:14:09,060 --> 00:14:12,090 অতি সম্প্রতি যোগ করে উপাদান আমরা প্রথম জিনিস হয় 302 00:14:12,090 --> 00:14:14,980 ফিরে পেতে চান যাচ্ছে. 303 00:14:14,980 --> 00:14:17,900 আমি ডগ লয়েড আছি, এই CS50 হয়. 304 00:14:17,900 --> 00:14:19,926