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