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