DAVID Malan: ঠিক আছে. এবং CS50 ফিরে আসায় স্বাগতম. এই সপ্তাহে 8 শুরু. এবং যে সমস্যা সেট 5 শেষ প্রত্যাহার একটি চ্যালেঞ্জ এর সামান্য বিট সঙ্গে. সুতরাং আপনি আপনার সব উদ্ধার অভিমানী শিক্ষণ ফেলোগণ এবং CA এর ছবি card.raw ফাইলের মধ্যে, আপনি যোগ্য এখন যাদের সব অনুসন্ধান, এবং আপনি এক ভাগ্যবান বিজয়ী এক সঙ্গে বাড়ি হেটে যেতে হবে এই জিনিস, লিপ গতি আপনি চূড়ান্ত জন্য ব্যবহার করতে পারেন ডিভাইস উদাহরণস্বরূপ প্রকল্প,. এটি প্রতি বছর, জন্মাতে creepiness একটি বিট. এবং তাই আমি কি আমি কি চাই সেয়ার হয় আপনার সাথে আছে নোট কিছু ওভার পিছনে চলে গেছে দেরী কর্মচারীদের তালিকা. উদাহরণস্বরূপ, গত রাতে, মূল্যউদ্ধৃতি জন্য কর্মীদের এক থেকে unquote সদস্য, "আমি একজন ছাত্র নক ছিল আমার দরজায় আমার সাথে একটি ফটো নিতে. Stalkers, আমি আপনাকে জানাবে. "বন্ধ শুরু আমরা সরানো তারপর মোটামুটি বর্ণনামূলক এবং উপর, একটি ঘন্টা বা তাই পরে, "আমি একটি ছিল ছাত্র সেকশন আমার জন্য অপেক্ষা করছে এবং তিনি আমাদের নামগুলি এবং ফটো ছিল কাগজ কিছু শীট উপর. "ঠিক আছে. সুতরাং সংগঠিত, কিন্তু না এখনও যে সব রোমাঞ্চকর. তারপর, "আমি এই সপ্তাহের শেষের ছুটির শহরে ছিল আউট এবং আমি ফিরে পেয়েছিলাম, যখন এক ছিল আমার শয়নকক্ষ. "[হাস্য] DAVID Malan: স্টাফ থেকে পরবর্তী মূল্যউদ্ধৃতি সদস্য, "একজন ছাত্র এ আমার ঘর থেকে এসেছেন 4 SOMERVILLE এই সকালে আমি. "পরবর্তী স্টাফ, "আমি সান আমার হোটেলে পেয়েছিলাম ফ্রান্সিসকো এবং একটি ছাত্র জন্য অপেক্ষা করেছেন তিনটি DSLR এর সঙ্গে লবি আমাকে. " ক্যামেরা প্রকার. "আমি কর্মীরা এই সেমিস্টারে ভর্তি করা এমনকি নই কিন্তু একজন ছাত্র আমার ঘর এই কপর্দকশূন্য গোটা ব্যাপারটাই সকালে এবং রেকর্ড . গুগল গ্লাস সঙ্গে "এবং তারপর সর্বশেষে, "অন্তত 12 জনের সাগ্রহে ছিল আমি বেরিয়ে এলাম যখন আমার জন্য অপেক্ষা করছে Limo, এবং তারপর আমি woke আপ. "ঠিক আছে. সুতরাং ফোটোগ্রাফ মধ্যে, হিসাবে আপনি হতে পারে স্মরণ করছি, এই সহকর্মী কে আপনি, এখানে আছেন যারা বসবাস Milo কলা, হিসাবে চিনতে Lauren Carvalho, আমাদের মাথা ফেলো অধ্যাপনা. Milo, Milo, এখানে ছেলে আসা. Milo. Milo. আপনি মন, তিনি তাই, গুগল গ্লাস পরা এর আমরা আপনাকে এই সব পরে দেখাব. আপনি চান তাহলে তাই এই Milo হয় পরে তার সঙ্গে একটি ফটোগ্রাফ নিতে. আপনি তাকান করতে চান তাহলে সেখানে দর্শকদের এ. ঠিক আছে. যে ভাল ফুটেজ আছে. ওয়েল, Milo কলা. ওহ, যে করবেন না. [হাস্য] ঠিক আছে. এগিয়ে মিথ্যা কি তারপর, একটি শব্দ, তাই আমরা এই পরিবর্তনকে শুরু, কারণ এই সপ্তাহে নির্দিষ্টভাবে, একটি সি থেকে কমান্ড লাইন থেকে পিএইচপি পরিবেশ এবং জাভাস্ক্রিপ্ট এবং এসকিউএল এবং HTML এবং CSS এর মধ্যে একটি ওয়েব ভিত্তিক পরিবেশ, আমরা থাকব সমস্ত সঙ্গে আপনি equipping জন্য আরো জ্ঞান সম্ভাব্য চূড়ান্ত প্রকল্প. যে শেষ দিকে অবশ্যই একটি আছে সেমিনার অধিষ্ঠিত ঐতিহ্য যা tangential বিষয়গুলি সম্পর্কে আলোচনা করা হয় কোর্সে. অনেক প্রোগ্রামিং এবং এর সাথে সম্পর্কিত অ্যাপ্লিকেশন উন্নয়ন এবং তাই ঘোষণা, কিন্তু আছে অগত্যা দ্বারা অন্বেষণ না অবশ্যই নিজের পাঠ্যক্রম. আপনি এক আগ্রহী হতে পারে তাই আপনি যদি এই বছর এর সেমিনার বা তার বেশি, cs50.net/seminar এ নিবন্ধিত করুন. পুরোনো সেমিনার আছে cs50.net/seminars এ. এবং এই বছরের জন্য এ পর্যন্ত পালা নেভিগেশন রুবি সঙ্গে অ্যামেজিং ওয়েব অ্যাপস হয় একটি বিকল্প যা পাগল, পিএইচপি ভাষা. গণনীয় ভাষাতত্ত্ব. যা iOS, পরিচিতি এবং আইফোন জন্য ব্যবহৃত যে প্ল্যাটফর্ম রহমান উন্নয়ন. জাভাস্ক্রিপ্ট ওয়েব অ্যাপস জন্য, আমরা আবরণ করব যে, কিন্তু এই সেমিনার, আপনি যাবেন আরো বিস্তারিত মধ্যে. মোশন LEAP, তাই আসলে আমরা কিছু করতে হবে লিপ মোশন থেকে আমাদের বন্ধুরা, কোম্পানী নিজেই, আমাদের সঙ্গে যোগদান. আগামী কাল, আসলে, প্রদান একটি হাত অন সেমিনার, যদি আপনার আগ্রহের. Meteor.js জন্য একটি বিকল্প পন্থা না একটি ব্রাউজার জাভাস্ক্রিপ্ট ব্যবহার করে, কিন্তু একটি সার্ভার. খুব যা Node.js, যে শিরা মধ্যে হিসাবে ভাল. মসৃণ অ্যানড্রইড ডিজাইন. অ্যানড্রইড খুব জনপ্রিয় বিকল্প হচ্ছে iOS এবং উইন্ডোজ ফোন এবং অন্যান্য মোবাইল প্ল্যাটফর্ম. এবং ওয়েব নিরাপত্তা অনলাইনে প্রতিরক্ষা. তাই আসলে, আপনি যদি চান এই নিয়োজিত থেকে, আমাকে এই নোট. আমরা যে খুব খুশি লিপ এ আমাদের বন্ধু একটি প্রারম্ভিক যা গতি, - এই ডিভাইসটি সত্যিই আসেন কয়েক মাস আগে খুঁজে - অনুগ্রহপূর্বক 30 এই সমস্ত ডিভাইসের ক্ষেত্রে দান করা হয়েছে অনেক ছাত্র হিসাবে জন্য বর্গ, যদি আপনি আপনি হার্ডওয়্যার ধার চাই সেমেস্ত্র এর শেষের দিকে এবং জন্য এটি ব্যবহার একটি প্রকৃত চূড়ান্ত প্রকল্প. তারা ভাষার একটি সংখ্যা সমর্থন. তাদের কেউ তাই সি, তাদের কেউ পিএইচপি, বুঝতে পারছি এই সেমিনার এক বা একাধিক আগ্রহের প্রমাণ হতে পারে. এবং তাদের সব শুট করা হবে আপনি করতে পারেন না যে ঘটনা ব্যক্তির মধ্যে উপস্থিত. সময়সূচী মাধ্যমে ঘোষণা করা হবে আমরা ঘর ঘনীভূত হিসাবে ইমেইল করুন. এবং সর্বশেষে, আপনি যান projects.cs.50.net, এই একটি ওয়েবসাইট আমরা আমন্ত্রণ জানাতে প্রতি বছর যে বজায় রাখা সম্প্রদায়, অনুষদ, থেকে ভাবেন বিভাগ, কর্মী, এবং উভয় এবং CS50 আপনি একটি বাইরের মধ্যে প্রকল্প ধারণা উত্থাপন করা. ছাত্র দলের আগ্রহের বিষয়. বিভাগ আগ্রহের বিষয়. আপনি সংগ্রাম করছি যদি তাই সেখানে চালু করবেন আপনি কি হিসেবে অনিশ্চয়তা সঙ্গে নিজেকে মোকাবেলা করতে চাই. তাই শেষ সময় আমরা একটি তর্কসাপেক্ষ চালু আরো জটিল ডাটা স্ট্রাকচার আমরা চাই আর গত সপ্তাহের মধ্যে দেখা যায়. আমরা বেশ অ্যারে ব্যবহার করে চাই যদি সুখে হিসাবে একটি দরকারী সহজ ডাটা স্ট্রাকচার. তারপর আমরা, এই যা চালু অবশ্যই তালিকায় সংযুক্ত করা হয়. এবং জন্য প্রেরণার এক কি ছিল এই তথ্য কাঠামো প্রবর্তনের? হ্যাঁ? ওটা কি? শ্রোতা: ডাইনামিক মাপ. DAVID Malan: ডাইনামিক মাপ. অ্যারের মধ্যে যেহেতু সুতরাং, যদি আপনি আছে আগাম তার আকার যখন জানতে আপনি এটি বরাদ্দ. লিঙ্ক তালিকা, আপনি করবেন না জানা আছে. আপনি আরো সাধারণভাবে শুধু malloc, বা করতে পারেন একটি অতিরিক্ত বরাদ্দ করা নোড, তাই কথা বলতে, যে কোনো সময় আপনি আরো তথ্য সন্নিবেশ করতে চান. এবং নোড কোন অর্থ predetermined হয়েছে. এটা ঠিক বর্ণনা সঙ্গা এর আমরা যে ধারক কিছু সঞ্চয় আমাদের তথ্য কাঠামো ব্যবহার করে এই সুদের কিছু আইটেম, যা ক্ষেত্রে পূর্ণসংখ্যা হতে ঘটবে. কিন্তু একটি tradeoff সবসময় আছে. সুতরাং আমরা তথ্য গতিশীল মাপ পেতে গঠন, কিন্তু আমরা কি মূল্য দিতে হয়? সংযুক্ত তালিকার downside হয় কি? হ্যাঁ? শ্রোতা: আরো মেমরি প্রয়োজন. DAVID Malan: এটা করা প্রয়োজন মেমরি, কিভাবে ঠিক? শ্রোতা: [শ্রবণাতীত]. DAVID Malan: যথাযথভাবে. তাই এখন আমরা পয়েন্টার গ্রহণ করেছেন অতিরিক্ত মেমরি আমরা পূর্বে যে প্রয়োজন ছিল না, কারণ সুবিধা একটি অ্যারের, অবশ্যই, যে সবকিছু সংলগ্ন, শয্যাশায়ী ফিরে ফিরে যাও, যা আপনি র্যান্ডম অ্যাক্সেস দেয়. কারণ শুধু বর্গাকার বন্ধনী ব্যবহার করে স্বরলিপি, অথবা আরো টেকনিক্যালি পয়েন্টার গাণিতিক খুব সহজ উপরন্তু, যদি আপনার কোন অ্যাক্সেস করতে পারেন ধ্রুবক সময়ের মধ্যে উপাদান. এবং বাস্তবিকই, যে এ hinting ধরনের আমরা একটি সঙ্গে অর্থপ্রদানকারী করছি অন্য যে দাম লিঙ্ক তালিকা. কি চলমান সময় ঘটবে খোঁজো মত কিছু, আমি যদি চান কিছু মান এবং ভেতরের এটি একটি লিঙ্ক তালিকা? আমার চলমান সময় কি হয়ে আছে? N বিগ হে. এটা সাজানো হলে? কি তথ্য কাঠামো অনুসারে সাজানো হলে? আমি বড় বেশী ভালো করতে পারেন অনুসন্ধানের জন্য N হে? না, কারণ সবচেয়ে খারাপ ক্ষেত্রে এটি প্রতাপ খুব ভাল সাজানো, কিন্তু নম্বর আপনার বড় হতে পারে খুঁজছি. এটা যার নম্বর 100, হতে পারে সমস্ত হতে ঘটতে পারে শেষে উপায়. এবং আপনি শুধুমাত্র একটি লিঙ্ক অ্যাক্সেস করতে পারেন, কারণ দ্বারা এই বাস্তবায়ন তালিকা প্রথম নোড পথ, আপনি ভাগ্য খুঁজে এখনও ধরনের. আপনি গোটা ব্যাপারটাই তর্ক আছে প্রথম থেকে এটি করার জন্য শেষ 100 মত যে বড় মূল্য. এটা যদি বা নির্ধারণ এমনকি সেখানে. সুতরাং আমরা একটি তথ্য কি এলগরিদম ব্যবহার করতে পারবেন না গঠন ভালো দেখায় যে? আমরা বাইনারি অনুসন্ধান করতে পারবেন না, কারণ বাইনারি অনুসন্ধান আমরা তা দরকার র্যান্ডম অ্যাক্সেস. আমরা শুধু পাঁচ থেকে লিপ পারে অনুসরণ করেও অবস্থান আকারে এই রুটি crumbs সব এই পয়েন্টার. এখন, কিভাবে আমরা এই বাস্তবায়ন হয়নি? ভাল, আমরা এখানে পর্দা যান, যদি আমরা দ্রুত এই তথ্য reimplement করতে পারেন গঠন - আমার হস্তাক্ষর যে সব না এখানে মহান, কিন্তু আমরা চেষ্টা করব. সুতরাং typedef struct, এবং কি আমি এই জিনিস এখানে আপ কল করতে চান? নোড. তাই আমি আমাদের শুরু করব. এবং এখন, কি ভিতরে করতে হবে যে singly জন্য ডাটা স্ট্রাকচার তালিকার সাথে যুক্ত? কিভাবে বহু ক্ষেত্রে? দুই তাই. এক প্রশংসনীয় সহজ. N সুতরাং int-. এবং আমরা, আমরা চাই N কিছু বলতে পেরেছিলাম আমরা কিন্তু যদি এটি কোন int হতে হবে ints জন্য একটি লিঙ্ক তালিকা প্রয়োগ. এবং এখন কি দ্বিতীয় আছে যদি ক্ষেত্রের কিছু r করতে হবে? Struct নোড *. আমি struct নোড *, এবং তারপর আমি কি তাই আপনি যদি এছাড়াও আমি চাই যাই হোক না কেন এই কল করতে পারেন, কিন্তু আমি ডাকবো পরিষ্কার করা এটা পরে, আমরা করছেন করেছি. এবং তারপর আমি আমার কোঁকড়া ধনুর্বন্ধনী বন্ধ করব. এবং এখন, শেষ সময়, আমি এখানে নোড আরোপ করা. কিন্তু আমি এই ঘোষণা করছি এটি একটি নোড, কেন আমি তাই হচ্ছে বিরক্ত হয়নি এখানে struct প্রকাশক মধ্যে ভার্বোস নোড * পরের, হিসাবে বিরোধিতা পরবর্তী শুধু নোড * আপনি? হ্যাঁ? শ্রোতা: [শ্রবণাতীত]. DAVID Malan: যথাযথভাবে. যথাযথভাবে. সি সত্যিই আপনি আক্ষরিক লাগে এবং কারণ শুধুমাত্র নোড সংজ্ঞা উদ্ধার এখানে নিচে ভাবে, আপনি করতে পারেন না এটা এখানে পর্যন্ত পড়ুন. সুতরাং আমরা preemptive এই সাজানোর আছে নিঃসন্দেহে যা এখানে ঘোষণা, আরো ভার্বোস. Struct নোড, এর মানে হল যে এখন আমরা এটি অ্যাক্সেস করতে পারেন ডাটা স্ট্রাকচার এর ভিতরে. এবং একটি সরাইয়া হিসাবে, এই কারণ , এখন একটু বেশি বিষয়ী হয়ে উঠছে তারা টেকনিক্যালি এখানে যেতে পারেন, এখানে যেতে পারেন, এটা করতে পারেন এমনকি মাঝখানে যান. আমরা শৈলী গাইড গ্রহণ করেছি অবশ্যই, নির্বাণ কনভেনশন তথ্য ডান পাশে তারা টাইপ, এই ক্ষেত্রে যা, struct নোড হবে. কিন্তু পাঠ্যবই অনেক মধ্যে উপলব্ধি করা এবং অনলাইন রেফারেন্স, আপনি সত্যিই প্রতাপ অন্য দিকে এটি দেখুন. কিন্তু ঠিক যে আসলে পাবেন উভয় বুঝতে কাজ এবং আপনি কেবল হতে হবে সামঞ্জস্যপূর্ণ. ঠিক আছে. সুতরাং আমাদের ঘোষণা ছিল যে struct নোড. কিন্তু তারপর আমরা আরও কাজ শুরু অত্যাধুনিক জিনিস. উদাহরণস্বরূপ, আমরা পরিচয় করিয়ে করার সিদ্ধান্ত নিয়েছে একটি হ্যাশ টেবিল মত. সুতরাং এখানে আকার N একটি হ্যাশ টেবিল, হল N বামে উপরে থেকে 0 সূচীবদ্ধ বিয়োগ নীচে 1 বামে. এটি একটি হ্যাশ হতে পারে কিছু জন্য টেবিল. কিন্তু আমরা কিছু ধরণের কথা বলতে কি জন্য একটি হ্যাশ টেবিল ব্যবহার সম্পর্কে? কি সংরক্ষণ? নাম. আমরা চাই নাম করতে পারে আমরা শেষ সময়. এবং সত্যিই, আপনি কিছু সঞ্চয় করতে পারবেন. এবং আমরা আবার এই দেখতে পাবেন পিএইচপি এবং জাভাস্ক্রিপ্ট মধ্যে. একটি হ্যাশ টেবিল সুইস একটি চমৎকার সাজান আপনি সংরক্ষণ করতে পারবেন আর্মি ছুরি অনেক সুন্দর আপনি ভিতরে চান যাই হোক না কেন মান নির্দেশক সাথে সংযুক্ত করে এটি. মান নির্দেশক. এখন এই সহজ ক্ষেত্রে, আমাদের কি শুধু সংখ্যা. আমরা একটি হ্যাশ প্রয়োগ করছি একটি অ্যারে হিসাবে টেবিল. তাই কি 0 আছে, 1, 2, এবং তাই ঘোষণা. এবং তাই আমরা, মানুষ হিসাবে, শেষ করার সিদ্ধান্ত নিয়েছে আপনি আমরা যদি কি জানেন, যে সপ্তাহে দোকান নামের যাচ্ছে, যাক এর মাত্র ইচ্ছামত, কিন্তু বেশ যুক্তিসঙ্গতভাবে, অনুমান যে এলিস, একটি নাম, শুধু 0 মধ্যে সূচিবদ্ধ করা হবে. এবং বব, একটি B নাম, সূচিবদ্ধ করা হবে 1 মধ্যে, এবং তাই ঘোষণা. সুতরাং আমরা ইনপুট মধ্যে একটি ম্যাপিং ছিল যা স্ট্রিং আছে, এবং হ্যাশ সংখ্যা, যা স্থান,. সুতরাং যে প্রক্রিয়া সাধারণভাবে হিসাবে পরিচিত হয় একটি হ্যাশ ফাংশন, এবং আপনি সত্যিই করতে পারেন এটা কোড বাস্তবায়ন. আমি একটি হ্যাশ ফাংশন বাস্তবায়ন করতে চেয়েছিলেন যে ঠিক কি আমরা আছে শুধু শেষ সময় থেকে বর্ণিত, আমি প্রতাপ হিসাবে, প্রদর্শিত হয় একটি ফাংশন যে ঘোষণা উদাহরণস্বরূপ ইনপুট - এবং এর যাক এই এই কাজ করতে এখানে উপর পর্দা. আমি একটি হ্যাশ বাস্তবায়ন চেয়েছিলেন ফাংশন, আমি বলতে পারে ভালো কিছু. এটা কোন int ফিরে যাচ্ছে. এটি হ্যাশ নামে পরিচিত হতে যাচ্ছে, এবং এটা একটি যুক্তি হিসেবে গ্রহণ করতে যাচ্ছে স্ট্রিং, বা আমরা, এখন আরো সঠিক হতে পারে এবং গৃহস্থালি * বলে, আমরা এটি গুলি ডাকবো. এবং তারপর এই ফাংশন কি আছে শেষ পর্যন্ত, কোন int ফিরে না. এখন, এটা কিভাবে যে প্রতাপ তাই পরিষ্কার হবে না. আমি কোনো ছাড়াই এই বাস্তবায়ন করা যাচ্ছে না এখনই চেক ত্রুটি আকারে. আমি অন্ধভাবে বলতে যাচ্ছি, ফিরে গুলি বন্ধনী 0 যাই হোক না কেন হল, বিয়োগ, যাক রাজধানী একটি সেমিকোলন, বলে. সম্পূর্ণ ভাঙ্গা. এটা নিখুঁত না কারণ এক, গুলি নাল কি হয়? খারাপ ঘটতে যাচ্ছে. দুই, কি যদি এই প্রথম অক্ষর নামের একটি বড় হাতের অক্ষর না? চালু করা যাচ্ছে না যে খুঁজে ভাল হয়. এটি একটি ছোট হাতের অক্ষর হতে পারে বা না সব সময়ে একটি চিঠি. এখানে উন্নতির জন্য তাই সম্পূর্ণভাবে রুম, কিন্তু এই মৌলিক ধারণা. আমরা শব্দগতভাবে গত সপ্তাহে বর্ণিত কি এলিস ম্যাপিং শুধু একটি প্রক্রিয়া 1 ২ 0 এবং বব প্রকাশ করা যেতে পারে অবশ্যই আরো formulaically একটি সি এখানে কাজ করে. আবার হ্যাশ বলা হয়, হিসাবে একটি স্ট্রিং লাগে ইনপুট, এবং তারপর একরকম কিছু আছে একটি আউটপুট উত্পাদন যে ইনপুট সঙ্গে. নেই আমাদের কালো বাক্সে বর্ণনা অসদৃশ আমরা কাজ করেছি. আমি এই হতে পারে কিভাবে জানি না, ফণা নীচে কাজ. সমস্যা সেট 6, চ্যালেঞ্জ এক জন্য আপনি স্থির করতে হবে কি আপনার হ্যাশ ফাংশন হবে? যে কালো ভিতর হতে যাচ্ছে কি বাক্স, এবং সম্ভবতঃ, এটি একটি হবেন একটু বেশি এই আর আকর্ষণীয়, এবং ত্রুটির স্পষ্টভাবে আরো প্রবণ এই বিশেষ তুলনায় পরীক্ষণের বাস্তবায়ন. কিন্তু সমস্যা অধিকার, গাত্রোত্থান করতে পারেন? আমরা যেমন এই হিসাবে একটি ডাটা স্ট্রাকচার থাকে তাহলে এক, সমস্যা কি আপনি সন্নিবেশ হিসাবে আপনি সময়ের মধ্যে চালাতে পারেন আরও বেশি এবং আরও নাম হ্যাশ টেবিল? আপনি ঠিক, collisions পেতে? আপনি কি এলিস এবং আরন আছে, যার নাম ঘটেছে দুটি মানুষ একটি দিয়ে শুরু? যে যেখানে আপনি প্রশ্ন begs দ্বিতীয় যেমন একটি নাম রাখা? হ্যাঁ, আপনি naively এটা করা হতে পারে বব জন্যে যেখানে, কিন্তু তারপর বব হয় আপনি চেষ্টা ধরনের মাতাল পরবর্তী তার নাম ঢুকিয়ে তার জন্য কোন রুম আছে. তাই আপনি যদি চার্লি যেখানে বব, করা হতে পারে এবং আপনি এই খুব দ্রুত কল্পনা করতে পারেন একটি জগাখিচুড়ি একটি বিট মধ্যে devolving. শেষ রৈখিক কিছু, আপনি কোথায় শুধু গোটা ব্যাপারটাই অনুসন্ধান আছে এলিস বা বব খুঁজছেন অথবা আরন বা চার্লি. তাই আমরা এর পরিবর্তে শুধু প্রস্তাবিত সুসংগত ভাবে খোলা স্পেস জন্য অনুসন্ধান এবং আমরা সেখানে নাম plopping একটি fancier পদ্ধতির প্রস্তাব. একটি সঙ্গে এখনও বাস্তবায়িত একটি হ্যাশ টেবিল সূচকের অ্যারে, কিন্তু তথ্য ধরণ যারা সূচকের এখন পয়েন্টার ছিল. কি পয়েন্টার? লিঙ্ক তালিকা পয়েন্টার. কারণ একটি লিঙ্ক তালিকা যে রিকল সত্যিই শুধু একটি একটি নোড যাও পয়েন্টার, এবং নোড পরবর্তী যদি ক্ষেত্রের কিছু r, এবং যে নোড আছে পরবর্তী ক্ষেত্র আছে, এবং তাই ঘোষণা. সুতরাং আপনি এখন এই অ্যারে মনে করতে পারেন একটি হ্যাশ টেবিল হিসাবে বাম দিকে একটি লিঙ্ক তালিকা নেতৃস্থানীয়. যদি আপনি একটি পেতে হলে যা সুবিধা এলিস এবং আরন সংঘর্ষের, আপনার সাথে কি করবেন দ্বিতীয় ব্যক্তির? আপনি শুধু তাকে জোড়া বা তার শেষে, অথবা এমনকি এ যে লিঙ্ক তালিকা. এবং প্রকৃতপক্ষে, এর মাধ্যমে শুধু নুডলের আসুন যে শুধু এই একটি দ্বিতীয় জন্য. যেখানে সবচেয়ে জানার জন্য হবে? আমি এলিস সন্নিবেশ এবং সে সময়ে শেষ পর্যন্ত যদি প্রথম অবস্থান, তাহলে আমি চেষ্টা আরন এর নাম সন্নিবেশ, এবং আছে সম্ভবত একটি সংঘর্ষের, আমি করা উচিত তাকে শুরুতে লিঙ্ক তালিকা? যে, যে প্রথম অবস্থান এ বা শেষে? শ্রোতা: [শ্রবণাতীত]. DAVID Malan: ঠিক আছে. আমি শুরু শুনেছেন. কেন শুরুতে? শ্রোতা: [শ্রবণাতীত]. DAVID Malan: ঠিক আছে. এটা বর্ণানুক্রমিক এর চমৎকার, যাতে. এটা একটি ভাল সম্পত্তি না. এটা আমার সম্ভাব্য কিছু সময় সংরক্ষণ করতে হবে. এটা আমার বাইনারি অনুসন্ধান করুক, কিন্তু করবে না আমি অন্তত খুঁজে ভঙ্গ করতে সক্ষম হতে পারেন আমি বুঝতে পারি যদি একটি লুপ, ভাল, আমি উপায় না অতীতে ছিল আরন এই হবে লিঙ্ক তালিকা অনুসারে সাজানো. আমি খুঁজছেন থেকে আমার সময় নষ্ট করতে হবে না শেষ সব পথ. সুতরাং যে যুক্তিসঙ্গত হবে. কেন অন্য আপনি সন্নিবেশ করতে পারেন এ colliding নাম তালিকার শুরুতে? ওটা কি? শ্রোতা: [শ্রবণাতীত]. DAVID Malan: এটি একটি দীর্ঘ সময় লাগতে পারে তালিকার শেষে পেতে. এবং বাস্তবিকই, আর এবং আর. আপনি সন্নিবেশ আরও নাম যে একটি, আর যে দিয়ে শুরু শৃঙ্খল পেতে যাচ্ছে. আর লিঙ্ক যে তালিকা পেতে যাচ্ছে. তাই আপনি যদি সত্যিই ঠিক করছি আপনার সময় নষ্ট. হয়তো আপনি বজায় রাখার ভাল অফ করছি ধ্রুবক সন্নিবেশ সময়, 1 বড় হে, সবসময় colliding নাম এ নির্বাণ দ্বারা লিঙ্ক তালিকা প্রারম্ভে, এবং যতটা উদ্বেজক না বাছাই ওপর. সেরা উত্তর কি? এটা স্পষ্ট হয়. এটা কোন ধরনের উপর নির্ভর করে কি বন্টন প্যাটার্ন কি না, নামের আপনি ঢোকাতে হয়. এটা অপরিহার্যভাবে না একটি সুস্পষ্ট উত্তর. কিন্তু এখানে আবার,, হয় একটি নকশা সুযোগ. সুতরাং আমরা, তারপর এই জিনিস দিকে তাকিয়ে যা সত্যিই অন্যান্য বড় সুযোগ P-সেট 6. এবং, যদি আপনি ইতিমধ্যে না করে থাকেন, বুঝতে হ্যাশ এই দুটি মধ্যে Zamyla ধনী, টেবিল এবং আরো বিস্তারিতভাবে চেষ্টা. এবং ভিডিও walkthrough হয় P-সেট বৈশিষ্ট এমবেড করা. এটি একটি trie ছিল - টি আর আমি ই. এবং আকর্ষণীয় কি ছিল এই যে চলমান সময় ছিল ম্যাক্সওয়েল মত একটি নাম জন্য অনুসন্ধান শেষ সময়, কি বড় হে ছিল? ওটা কি? শ্রোতা: অক্ষর সংখ্যা. DAVID Malan: অক্ষর সংখ্যা. আমি দুটি জিনিস শোনা. অক্ষর এবং ধ্রুবক সময় সংখ্যা. তাই এর প্রথম যে সঙ্গে যান. অক্ষর সংখ্যা. ওয়েল, এই তথ্য গঠন, রিকল হয় একটি গাছ, একটি পরিবার গাছ, প্রতিটি পছন্দ যার নোড অ্যারে গঠিত হয়. এবং যারা অ্যারে পয়েন্টার হয় অন্যান্য যেমন নোড, বা এই ধরনের অন্য গাছ অ্যারে. তারপর আমরা নির্ধারণ করতে চেয়েছিলেন তাই আপনি যদি ম্যাক্সওয়েল এখানে কিনা, আমি যেতে পারি খুব শীর্ষে প্রথম অ্যারে, আপনি গাছ, তথাকথিত root পরিচয়ে, উপরে তারপর, trie, এবং M পয়েন্টার অনুসরণ তারপর একটি পয়েন্টার, X, W, ই, এল, এল. এবং তারপর আমি কিছু বিশেষ চিহ্ন দেখুন একটি ত্রিভুজ এখানে denoted. কোড আপনাকে আমরা উপস্থাপিত দেখতে পাবেন যে আপনি শুধু হ্যাঁ বলার অপেক্ষা রাখে না, একটি bool হিসাবে স্থাপিত অথবা কোন একটি শব্দ এখানে স্টপ. ওয়েল, একবার আমরা এম একটি এক্স ওয়াট ই, L-L-সর্বস্বান্ত করেছি, হয়তো সাত মত মতানুযায়ী আট আমরা এটা গত এক, আট যান ম্যাক্সওয়েল এটি ধাপ. বা এটা কে কল করা যাক কিন্তু গত প্রত্যাহার সময়, আমি আছে যে যদি যুক্তি একটি নেভিগেশন বাস্তবানুগভাবে সর্বোচ্চ দৈর্ঘ্য শব্দ, 40 কিছু অদ্ভুত-অক্ষরের মত একটি সর্বাধিক দৈর্ঘ্য বোঝা একটি ধ্রুবক মান. সত্যিই তাই, হ্যাঁ, এটা টেকনিক্যালি বড় হে এর কিন্তু 8 বা 7, অথবা কে সত্যিই বড় হে সম্পর্কে কি একটি সসীম টুপি আছে যদি কে হতে পারে, এটি একটি ধ্রুবক এর. এবং তাই এটি 1 বড় হে এ দিনের শেষে. নেই বাস্তব জগতে. আপনি আসলে পর্যবেক্ষক শুরু করতে হলে আপনার প্রোগ্রাম এর চাটা হিসেবে আপনার ঘড়ি. এটি নিছক একটি বিট হতে যাচ্ছে সত্যিকারের ধ্রুবক তুলনায় ধীর এক ধাপ সঙ্গে সময়. এটা, সাত বা আট ধাপ হতে যাচ্ছে কিন্তু এখনও যে অনেক, অনেক ভাল যে N বড় হে মত একটি অ্যালগরিদম আর কি আকারের উপর নির্ভর করে ডাটা স্ট্রাকচার. এখানে গোলমালে আমরা সন্নিবেশ করতে পারেন বিজ্ঞপ্তি এই মধ্যে একটি মিলিয়ন বেশি নাম ডাটা স্ট্রাকচার, কিন্তু কিভাবে আরো অনেক পদক্ষেপ এটা এটি আমাদের নিতে যাচ্ছে যে ক্ষেত্রে ম্যাক্সওয়েল? কেউ না. তিনি সাদাসিধা এর. এবং তারিখ, আমি আমরা দেখা করেছি তা মনে করি না একটি তথ্য গঠন বা একটি উদাহরণ সম্পূর্ণ যে অ্যালগরিদম বহিরাগত দ্বারা অপ্রভাবিত যে মত আচরণ. কিন্তু এই বিস্ময়কর হতে পারে না. এটি কেবলমাত্র সমাধান হতে পারে না P-সেট জন্য এবং এটা না. এই তথ্য অগত্যা না হয় গঠন আপনি করতে gravitate উচিত কারণ হ্যাশ টেবিল মত tradeoff. আপনি এখানে দিতে দাম কি? স্মৃতি. আমি বলতে চাচ্ছি, এই একটি atrocious হয় মেমরির পরিমাণ. এবং আপনি পুরোপুরি তা এখানে দেখতে পারে না, কারণ এই ছবি লেখক স্পষ্টত,, অ্যারে সব ছেঁটে ফেলা হয়েছে এবং আমরা একটি এর প্রচুর প্রেক্ষণ এবং করছি না বি ও সি এর এবং এর প্রশ্ন এবং Y এর ও z এর এই অ্যারে মধ্যে. কিন্তু তারা সেখানে আছেন. এই নোডের প্রত্যেকটি একটি সম্পূর্ণ অ্যারে কিছু 26 বা আরো বাইট, প্রতিটি যা একটি চিঠি উপস্থাপন করে. আমরা সমর্থন করতে পারে না, যাতে আমাদের ক্ষেত্রে 27, সমস্যা সেটে apostrophes. এই ডাটা স্ট্রাকচার সত্যিই তাই, সত্যিই ঘন এবং ব্যাপক. এবং একা যে গতি কমে শেষ পর্যন্ত হতে পারে জিনিষ নিচে, বা অন্তত আপনি একটি খোয়াতে আরো অনেক স্থান. কিন্তু আবার, আমরা আহরণ করতে পারে এখানে তুলনা. ফিরে যখন একটি প্রত্যাহার, আমরা অনেক অর্জন বাছাই আরও উত্তেজনাপূর্ণ সময় চলমান আমরা একত্রীকরণ সাজানোর, কিন্তু দাম ব্যবহার করার সময় আমরা একত্রীকরণ জন্য N অর্জন N লগিন দেওয়া সাজানোর আমরা ব্যয় দরকার আরো কি সম্পদ? আরো স্থান. আমরা একটি দ্বিতীয় অ্যারের প্রয়োজন ঠিক মত মধ্যে মানুষ কপি আমরা মঞ্চে এখানে কি. তাই আবার, কোন পরিষ্কার বিজয়ী, কিন্তু ঠিক বিষয়ী নকশা সিদ্ধান্ত তৈরি করতে হবে. ঠিক আছে. সুতরাং কিভাবে এই বিষয়ে? যে কেউ যা ডি হল চিনতে? ঠিক আছে. তাই আমাদের তিন কি. মাথের হাউস. তাই এই মাথের এর ডাইনিং জন্য. আমি সমস্ত ডাইনিং হল আছে বাজি করব ভালো ট্রে এর stacks. এবং এই আসলে প্রতিনিধি আমরা করেছি কিছু সম্ভবত ইতিমধ্যে দেখা যায়. আমরা আক্ষরিক একটি স্ট্যাকের বলা. আপনার পদ এবং স্ট্যাকের, তথ্য যায় যেখানে কম্পিউটার এর মেমরি হয় ফাংশন বলা হচ্ছে যখন. উদাহরণস্বরূপ, কিছু কি ধরণের যান সম্মান সঙ্গে স্ট্যাকের উপর আমরা আলোচনা করেছি মেমরি লেআউট গত সপ্তাহের মধ্যে? ওটা কি? শ্রোতা: ফাংশান কল. DAVID Malan: আমি দুঃখিত. শ্রোতা: ফাংশান কল. DAVID Malan: ফাংশান কল, কিন্তু আছে নির্দিষ্টভাবে, প্রতিটি ভিতরে কি যারা ফ্রেম? জিনিস কি ধরণের? হ্যাঁ. স্থানীয় ভেরিয়েবল তাই. যে কোন সময় আমরা, কিছু স্থানীয় সংগ্রহস্থল প্রয়োজন একটি যুক্তি চাই, অথবা int i, অথবা কোন int temp, বা যাই হোক না কেন স্থানীয় পরিবর্তনশীল, আমরা চলেছি হয় স্ট্যাকের উপর নির্বাণ. এবং আমরা এটি একটি স্ট্যাক কল কারণ যে layering ধারণা. বাস্তবতার সঙ্গে মিল শুধু ধরনের আপ, উহার ধারণা. কিন্তু এটি সক্রিয় আউট একটি স্ট্যাক এটিও করতে পারেন যে একটি ডাটা স্ট্রাকচার হিসাবে দেখা যায়, একটি একটি অ্যারের বিকল্প, একটি বিকল্প একটি লিঙ্ক তালিকা আপনি. ধারণার দিক থেকে আরও বেশি আকর্ষণীয় কিছু এখনও হতে পারে যারা ব্যবহার করে বাস্তবায়িত জিনিষ, কিন্তু এটি একটি ভিন্ন ধরনের ডাটা স্ট্রাকচার সত্যিই,, সমর্থনকারী মাত্র দুটি অপারেশন. কিন্তু আপনি fancier নেভিগেশন যুক্ত করতে পারেন এই আর বৈশিষ্ট্য. কিন্তু এই মূলসূত্র আছে - ধাক্কা এবং পপ. ও একটি স্ট্যাক সঙ্গে ধারণা যে যদি আমি সঙ্গে সঙ্গে অথবা Annenberg ছাড়া এখানে আছে পাশের বাড়ির থেকে একটি ট্রে বুদ্ধিমান এটা সংখ্যা 9. তাই ঠিক কোন int. এবং আমি তথ্য সম্মুখের দিকে এই ধাক্কা চান বর্তমানে খালি যা গঠন,. এই স্ট্যাকের নীচে বিবেচনা করুন. আমি সম্মুখের দিকে এই সংখ্যা 9 ধাক্কা হবে গাদা, এবং এখন এটা ঠিক আছে. কিন্তু একটি স্ট্যাকের সম্পর্কে আকর্ষণীয় বিষয় এখন আমি ধাক্কা যদি চান যে কিছু অন্যান্য মান, যেমন 17, এবং আমি ধাক্কা স্ট্যাকের সম্মুখের দিকে এই, আমি কাজ করতে যাচ্ছি , আমি যাচ্ছি শুধুমাত্র স্বজ্ঞাত জিনিস ডান এটা করা যেখানে আমরা মানুষ উপরে, এটা করা নত করা হবে. কিন্তু কি এখন আকর্ষণীয় , কিভাবে আমি 9 এ পেতে পারি না? আপনি কি জানেন, আমি কিছু প্রচেষ্টা ছাড়া না. তাই কি সম্পর্কে আকর্ষণীয় একটি স্ট্যাক, যে নকশা করা হয় এটি একটি LIFO ডাটা স্ট্রাকচার এর. বর্ণনা নিরীহ উপায় শেষ, প্রথম আউট. তাই শেষ সংখ্যা এই সময়ে 17 ছিল. আমি কিছু প্রস্থান করতে চান তাই আপনি যদি স্ট্যাকের, এটি মাত্র 17 হতে পারে. সুতরাং একটি বাধ্যতামূলক করার আছে এখানে অপারেশন, যেখানে গত আইটেমটি প্রথম এক হতে হবে. অতএব আদ্যক্ষরা, LIFO. সুতরাং কেন এই দরকারী হতে পারে? তাদের কনটেক্সট আপনি চাই যা এই মত একটি তথ্য গঠন করতে চান? ওয়েল, এটা অবশ্যই দরকারী হয়েছে একটি কম্পিউটার এর ভিতরে. তাই অপারেটিং সিস্টেম পরিষ্কারভাবে এই ব্যবহার stacks জন্য ডাটা স্ট্রাকচার ধরনের. আমরা একই ধারণা দেখতে পাবেন ওয়েব পেজ আসে যখন. এই সপ্তাহ এবং আগামী সপ্তাহে তাই এবং বহুদূরে, এবং আপনি ওয়েব প্রয়োগ শুরু একটি ভাষা পেজ এইচটিএমএল, আপনি যা করতে পারেন বলা আসলে মত একটি ডাটা স্ট্রাকচার ব্যবহার এই নির্ধারণ যদি পাতা সঠিকভাবে ফরম্যাট করা. আমরা দেখতে পাবেন, কারণ সমস্ত ওয়েব পেজ অনুসরণ অনুক্রমের কেমন, একটি খাঁজ , দিনের শেষে, একটি হবে ফণা নীচে ট্রি. শুধুমাত্র একটি বিট মধ্যে যে তাই আরো. কিন্তু এখন জন্য, এর জন্য উত্থাপন করা যাক মুহূর্ত, আমরা কিভাবে যেতে পারে একটি স্ট্যাক কি? প্রতিনিধিত্বমূলক আমরা বাস্তবায়ন যে সম্পর্কে উত্থাপন করা যাক ভালো কোডের সঙ্গে একটি স্ট্যাক. সুতরাং একটি স্ট্যাক এটা ভিতরে আছে যাচ্ছে দুটি জিনিস, একটি অ্যারের, বলা ট্রে, শুধু ডেমো সঙ্গে সামঞ্জস্যপূর্ণ হতে. এবং যে অ্যারের মধ্যে আইটেম প্রতিটি একটি টাইপ int-এ হতে যাচ্ছে. এবং ক্ষমতা সম্ভবতঃ কি? আমি লিখিত না করেছি কারণ এখানে পূর্ণ সংজ্ঞা. এটা সম্ভবত এর সর্বোচ্চ অ্যারের আকার. এবং এটি সম্ভবত একটি ধারালো হিসাবে ঘোষিত হচ্ছে কিছু ফাইল শীর্ষে নির্ধারণ ধ্রুব ধরনের হিসাবে উহ্য নিছক ক্যাপিটালাইজেশন. সুতরাং কোথাও ক্ষমতা সংজ্ঞায়িত করা হয় সর্বোচ্চ সম্ভাব্য আকার. এদিকে, অভ্যন্তরীণ তথ্য গঠন একটি স্ট্যাক হিসাবে পরিচিত সেখানে পাবেন শুধু পরিচিত একটি পূর্ণসংখ্যা হতে সহজভাবে আকার. আমি এখন এই প্রতিনিধিত্ব ছিল তাই আপনি যদি pictorially, এর কল্পনা করা যাক যে এই পুরো কালো বাক্সে আমার স্ট্যাক প্রতিনিধিত্ব করে. এটা ভিতরে দুটি ভেরিয়েবল হয়. তাই আমি আঁকতে চলেছি মাপ হিসাবে প্রথম এক. এবং আমি যাচ্ছি দ্বিতীয় এক একটি অ্যারে হিসাবে আঁকা. তবে, কিছু সুশৃঙ্খল রাখা সাধারণত আমি ভালো একটি অ্যারের আঁকা হবে চমৎকার এই, কিন্তু এটা ধরনের আমরা বাস্তবতা মেলে, অথবা যদি মানসিক মডেল মেলে. তাই আমাকে পরিবর্তে অ্যারের আঁকা যাক উল্লম্বভাবে, যা শুধু, আবার, শিল্পী এর প্রতিদান. সত্যিই কি এটা কোন ব্যাপার না ফণা নীচে. এবং আমরা, ডিফল্টরূপে, যে বলবো ক্ষমতা তিনটি হতে যাচ্ছে. তাই এই অবস্থান 0, এই হবে অবস্থান 1, এই হবে পাঁচ 2 হবে. আমি একটা চাপ বল সঙ্গে ঘুষ, তাহলে হবে কেউ আসা পর্যন্ত এবং চালানোর জন্য চাই শুধু একটা মুহূর্ত জন্য এখানে উঠতে? ঠিক আছে, প্রথমে আপনার হাত দেখেছি. উপর আসা. ঠিক আছে. তাই আমি এটা স্টিভেন বিশ্বাস করেন. উপর আসা. ঠিক আছে. কিন্তু এখন আমরা প্রাথমিক আপনি গুটিয়ে ধরুন বিশ্বের রাষ্ট্র যেখানে আমি শুধু একটি স্ট্যাক ঘোষণা, এবং এটা করেছেন ক্ষমতা তিনটি হতে যাচ্ছে. কিন্তু আকার এখনো নির্ধারিত হয় নি. ট্রে এখনো নির্ধারিত হয় নি. প্রথম প্রশ্নের একটি দম্পতি আছে. এবং আমাকে আপনার মাইক দিতে পারেন তাই এই আরও সক্রিয়ভাবে অংশ নিতে পারে. তাই আকার ভিতরে এই মুহূর্তে কি সময় আমি কৃতকর্মের সমস্ত যদি সঙ্গে একটি স্ট্যাক ঘোষণা কোড একটি লাইন? Steven: অনেক নেই. DAVID Malan: ঠিক আছে, অনেক না. আমরা, আয়তন ভিতরে কি জানেন আমরা ভিতরে কি জানেন এখানে এই অ্যারের? Steven: শুধু র্যান্ডম কোড, ডান? শুধু - DAVID Malan: হ্যাঁ, আমি যাচ্ছি এটা কোড কল, কিন্তু র্যান্ডম - Steven: থিংস. DAVID Malan: র্যান্ডম ভালো জিনিস Steven: বিট. DAVID Malan: বিট, ডান? আবর্জনা মান তাই, ডান? সুতরাং 0 এবং 1 এর permutations. পূর্ববর্তী রীতিনীতি এর অবশিষ্টাংশ এই মেমরি. এবং সত্যিই আমরা জানি না কি মান , তাই আমরা সাধারণত তাদের আঁকা হয় প্রশ্ন চিহ্ন হিসাবে. আমরা সম্ভবতঃ করছি প্রথম জিনিস এখানে কাজ করতে চান যাচ্ছে - আমার ভিতর এই ক্ষেত্র দিতে ট্রে - সেখানে একটি নাম. আমরা সম্ভবতঃ কি স্থাপনা করা হবে আকার আমরা করতে চান তাহলে আপনি এই স্ট্যাকের ব্যবহার শুরু করতে? Steven: ট্রে সাব 3. DAVID Malan: তাই, ঠিক আছে. পরিষ্কার করা, ক্ষমতা ঘোষিত হয় অন্যত্র তিন. এবং যে আমি ব্যবহার করেছি কি অ্যারের বরাদ্দ. আয়তন পড়ুন যাচ্ছে কত ট্রে স্ট্যাকের উপর বর্তমানে. Steven: জিরো. DAVID Malan: সুতরাং এটা শূন্য হতে হবে. তাই এগিয়ে যান, এবং কোনো আঙুল দিয়ে, মাপের একটি শূন্য আঁকা. ঠিক আছে. সুতরাং এখন, এই ভিতরে কি এখানে, আমরা জানি না. এই সত্যিই শুধু আবর্জনা মান. সুতরাং আমরা প্রশ্ন চিহ্ন আঁকা, কিন্তু পারে এখন বোর্ড পরিষ্কার রাখা যাক এটা কোন ব্যাপার না কারণ আছে কি. আমরা অ্যারের আরম্ভ করার প্রয়োজন হবে না কিছু, আমরা জানি যে, যদি কারণ স্ট্যাকের আকার শূন্য হয়, ভাল, আমরা কিছু খুঁজছি করা উচিত নয় যাহাই হউক না কেন এই অ্যারে এই বিন্দু সময়. তাই এখন আমি ধাক্কা অনুমান স্ট্যাকের সম্মুখের সংখ্যা 9. কিভাবে আমরা তথ্য কাঠামো আপডেট করা উচিত এই কালো বাক্সের ভিতরে? কি মান পরিবর্তন করার প্রয়োজন? Steven: মধ্যে - মাপ? DAVID Malan: ঠিক আছে. আয়তন কি হওয়া উচিত? Steven: ফাইলের আকার এক হতে হবে. DAVID Malan: ঠিক আছে. তাই আকার এক হওয়া উচিত. তাই আপনি যদি একটি দম্পতি উপায়ে এই কাজ করতে পারেন. এখন, আমাকে আপনাকে যাক আপনার আঙুল একটি রবার হয়. ঠিক আছে. তারপর এখন আপনার আঙুল একটি বুরুশ হয়. ঠিক আছে. এবং এখন কি কি পরিবর্তন হয়েছে সম্ভবত, তথ্য কাঠামো? Steven: আমরা চলুন 9 নিচ থেকে আপ. DAVID Malan: 9. ঠিক আছে, ভাল. তাই এখনও এ কি ব্যাপার না অবস্থান এক বা দুই তারা কারণ আবর্জনা মান, কিন্তু আমরা বিরক্ত করা উচিত নয় মাপ কারণ খুঁজছেন আমাদের বলার যে শুধুমাত্র প্রথম উপাদান আসলে বৈধ. তাই এখন আমি তালিকা সম্মুখের 17 ধাক্কা. কি এই ছবি কি? Steven: তাই আকার দুই যেতে যাচ্ছে. DAVID Malan: ঠিক আছে. আপনি রবার করছি - ওহো. আপনি একটি রবার করছি. Steven: রবার. DAVID Malan: আপনি একটি বুরুশ করছি. Steven: ব্রুস. DAVID Malan: ঠিক আছে. এবং কি কি? এবং তারপর আমরা -: Steven DAVID Malan: আমরা 17 push করা. Steven: আমরা, তাই উপরে 17 বিদ্ধ - DAVID Malan: ঠিক আছে, ভাল. Steven: - এটা ড্রপ ডাউন. DAVID Malan: ঠিক আছে. এটা সহজ হচ্ছে. আমি আপনাকে এই সময় সাহায্য করতে যাচ্ছি না. 22 push করা হবে. Steven: সম্পন্ন হয়েছে. একটি রবার হয়ে উঠছে. আমি একটি বুরুশ হয়ে উঠছে না. এবং তারপর আমি 22 নির্বাণ করছি. DAVID Malan: 22. চমৎকার. তাই এক সময়. আমি এখন ধাক্কা যাচ্ছি স্ট্যাকের 26 সম্মুখের দিকে. Steven: Ooh. ভগবন্ ওহ. আপনি সত্যিই প্রহরীদের বন্ধ সম্পর্কে ধরা. DAVID Malan: আপনি না এই আসছে দেখতে? Steven: আমি এই আসছে দেখতে পাইনি. আমরা পুনরায় প্রারম্ভিক ক্ষমতা হতে পারে? DAVID Malan: এটা একটা ভাল প্রশ্ন. সুতরাং আমরা ধরনের নিজেদেরকে আঁকা করেছি এখানে একটি কোণায়. সত্যিই স্টিভেন জন্য ভাল খুঁজে নেই আমরা এই অ্যারে বরাদ্দ করেছি statically, তাই ভিতরে, কথা বলতে তথ্য গঠন. এবং আমরা মূলত হার্ড কোডেড করেছি এটি আয়তন তিন হবে. সুতরাং আমরা সত্যিই এটি reallocate করতে পারবে না. আমরা যখন আমরা ফিরে গিয়েছিলাম পারে ট্রে একটি পয়েন্টার হতে পুনরায় নির্ধারণ তারপর আমরা হাতে মেমরি malloc ব্যবহার করুন. কারণ আমরা থেকে মেমরি পেয়েছিলাম যদি malloc মাধ্যমে গাদা, আমরা তারপর এটি মুক্ত পারে. কিন্তু এটা freeing আগে, আমরা পারা , মেমরি একটি বড় খণ্ড reallocate পয়েন্টার আপডেট, এবং তাই ঘোষণা. কিন্তু এখন জন্য, এই সত্যিই হয় সেরা আমরা করতে পারেন. ধাক্কা এবং পপ সম্ভবতঃ যাচ্ছে কিছু ত্রুটি সংকেত আছে. সুতরাং উদাহরণস্বরূপ, আমাদের বাস্তবায়ন ধাক্কা একটি bool ফিরে পারে যা পূর্বে সত্য, সত্য, সত্য ফিরে. কিন্তু চতুর্থ সময়, এটা আছে যাচ্ছে উদাহরণস্বরূপ, মিথ্যা ফিরে যাওয়ার জন্য. ঠিক আছে. খুব ভাল কাজ করেছেন. অভিনন্দন. আপনি যদি আজকে আপনার স্ট্রেস বল অর্জন করেছি. [সাধুবাদ] Steven: আপনাকে ধন্যবাদ. DAVID Malan: আপনাকে ধন্যবাদ. ঠিক আছে, তাই এই অনেক না বলে মনে হয় এগিয়ে একটি পদক্ষেপ নেয়ার জন্য, ডান? আমরা এই তথ্য কাঠামো বর্ণিত. এটা ঠিক আছে, বাধ্যকারী করা হয়েছে? অপারেটিং সিস্টেম এটা পছন্দ. দৃশ্যত: ওয়েব, এই ব্যবহার করতে পারেন এখনও এবং অন্যান্য অ্যাপ্লিকেশন. কিন্তু আমরা কি করছি একটি মূঢ় সীমাবদ্ধতা সাজানোর সপ্তাহে দুই সীমা ফিরে যেখানে আমরা অ্যারে আকার সংশোধন করা হয়েছে. সুতরাং একটি দম্পতি সত্যিই আছে উপায় আমরা এই সমাধান করতে পারে. আমরা পরিবর্তনশীল, অ্যারের বরাদ্দ করা হতে পারে আমি করেছি দ্বারা কঠিন কোডিং না এখানে সম্পন্ন, কিন্তু এর পরিবর্তে পুনরায় ঘোষণা এই, ঠিক যেমন স্পষ্ট হতে ভালো কিছু. Int * ট্রে, সিদ্ধান্ত না কোনো ক্ষমতা নেই. কিন্তু আমি অন্যত্র স্ট্যাক ডিক্লেয়ার যখন আমার কোড, আমি, তারপর malloc কল পারে একটি খণ্ড এর ঠিকানা পেতে মেমরি, এবং আমি দায়িত্ব অর্পণ করা হতে পারে ট্রে যে ঠিকানা. এবং তারপর, কারণ এটি শুধু একটি খণ্ড এর স্মৃতি, আমি বর্গক্ষেত্র ব্যবহার করা চালিয়ে যেতে পারে স্বাভাবিক ভাবেই বন্ধনী স্বরলিপি. আবার, এই ধরণের আছে কারণ ক্রিয়ামূলক অ্যারে এর সমতুল্য এবং আসা যে মেমরি অংশ ফিরে malloc থেকে. আমরা অন্য এক বিবেচনা করতে পারেন পয়েন্টার এরিথমেটিক ব্যবহার করে অথবা গুরুবন্ধনী স্বরলিপি. যাতে এক প্রয়াস. কিন্তু কিভাবে অন্যথায় আমরা এই বাস্তবায়ন হতে পারে একই ডাটা স্ট্রাকচার, সম্ভাব্য? রাইট? আমরা এই মীমাংসিত মনে এক সপ্তাহ আগে মত সমস্যা. এই সমস্যার সমাধান কী ছিল স্টিভেন মধ্যে স্থাপিত যে? তাই লিঙ্ক তালিকা, ঠিক আছে. সমস্যা আমরা পেইন্টিং করছি যে যদি বণ্টন দ্বারা কোণার মধ্যে নিজেদেরকে অগ্রিম খুব সামান্য মেমরির মধ্যে যে আমরা তারপর একরকম, ভাল, মোকাবেলা করতে হবে কেন শুধু যে এড়াতে না পুরাপুরি ইস্যু? কেন শুধু ট্রে একটি হতে ডিক্লেয়ার না একটি নোড, ergo একটি লিঙ্ক তালিকা, যাও পয়েন্টার এবং তারপর কেবল নতুন নোড বরাদ্দ স্টিভেন হইয়া প্রয়োজন প্রত্যেক সময় তথ্য গঠন মধ্যে সংখ্যা. তাই ছবি পরিবর্তন করতে হবে. এটি পরিষ্কার এবং করা যাচ্ছে না তিনটি ints শুধু একটি অ্যারে হিসাবে সহজ. এখন এটি একটি একটি পয়েন্টার হতে যাচ্ছে struct, এবং যে struct যাচ্ছে কোন int এবং একটি পরবর্তী পয়েন্টার আছে. এটা যে পয়েন্টার মাধ্যমে হতে যাচ্ছে অন্য ধরনের struct করতে অন্য ধরনের struct. তাই ছবি আসলে হবে একটি বিট Messier পেতে. এবং আমরা তীর tying আছে চাই সবকিছু একসঙ্গে. কিন্তু যে কারণ, অধিকার, জরিমানা আমরা এই কাজ কিভাবে দেখা করেছি. এবং একবার আপনি আরামদায়ক পেতে একটি লিঙ্ক চাই রূপায়ণকারী কিছু আপনাকে যা করতে হবে, যা তালিকা, যদি আপনি সঙ্গে একটি হ্যাশ টেবিল বাস্তবায়নের চয়ন P-সেট 6 জন্য পৃথক chaining, আপনি যা করতে পারেন একটি বিল্ডিং ব্লক, অথবা একটি হিসাবে এটি ব্যবহার উপাদান, বা ভূত একটি কথা বলতে, পদ্ধতি, আপনি কিছু যে করা আপনার নিজস্ব পাজল টুকরা তৈরি তারপর আপনি পুনরায় ব্যবহার করতে পারেন. সুতরাং tradeoffs, কিন্তু সম্ভাব্য সমাধান আসলে আমরা আগে দেখা করেছি. তাই বেশ প্রায়ই, যদি আপনি এই প্রত্যেক দেখুন বছর বা দুই যখন অ্যাপল রিলিজ এক্সপ্লোর পরিচালনা, এবং সব পাগল মানুষ কিছু আপেল বাইরে লাইন আপ তাদের প্রান্তিক কিনতে সংরক্ষণ হার্ডওয়্যারের উপর আপগ্রেড করতে পারবেন. আমি এই বলে, কারণ ঠিক আছে, আমি যাদের এক না. তাই কি ধরনের তথ্য গঠন এই বাস্তবতা উপস্থাপন হতে পারে? ওয়েল, এটা একটি কিউ, একটি লাইন কল করা যাক. তাই ব্রিটিশ এটি সাধারণত একটি কল করবে কিউ যাহাই হউক না কেন, তাই এটি একটি সুন্দর নাম. এবং যে একটি কিউ দুটি অপারেশন আমরা একটি সারিবদ্ধ ডাকবো সমর্থন করিবেন অপারেশন এবং একটি dequeue অপারেশন, যা একই রকম ধাক্কা এবং পপ আত্মা. এটি বিভিন্ন শুধু সাজানোর প্রচলিত রীতি অনুযায়ী, আমরা কি এই আহ্বান করছি. কিন্তু কিছু সারিবদ্ধ যোগ করার মানে অথবা ডাটা স্ট্রাকচার এটি সন্নিবেশ করুন. Dequeue আপনি এটি সরাতে মানে. কিন্তু একটি স্ট্যাক একটি LIFO তথ্য ছিল, যেহেতু গঠন, একটি কিউ, একটি প্রথম হয় তথ্য কাঠামো খুঁজে প্রথম. আপনি লাইন প্রথম ব্যক্তি হন, তাহলে আপনি পেতে প্রথম ব্যক্তি হতে হবে লাইন আউট এবং আপনার নতুন ডিভাইস কিনতে. এই মানুষ কতটা দুঃশ্চিন্তাগ্রস্ত সেটা হবে কল্পনা করা আপেল এর পরিবর্তে একটি স্ট্যাকের ব্যবহৃত হলে, জন্য উদাহরণস্বরূপ, পিকিং বাস্তবায়ন আপনার নতুন খেলনা আপ. তাই সারির অবশ্যই, জানার জন্য, এবং আমরা সব বিশৃঙ্খলভাবে মনে করতে পারেন অ্যাপ্লিকেশন, সম্ভবতঃ, সারির জন্য, আপনি সততা করতে চান, বিশেষ করে যখন. তাই কিভাবে আমরা এই বাস্তবায়ন হতে পারে একটি ডাটা স্ট্রাকচার হিসাবে? ওয়েল, আমি যে আমরা বল উত্থাপন এই ভাবে করতে হবে. তাই আমি এখন সংখ্যা আছে যাচ্ছি. সুতরাং আমরা এটা সহজ এবং না যাব অগত্যা ট্রে পদ কথা বলুন. মানুষের অর্জিত শুধু সংখ্যার যে. ক্যাপাসিটি আবার, যাচ্ছে, ফিক্স হতে পারে যে মানুষের মোট সংখ্যা এই লাইন হিসাবে, তিন বা অন্য যাই হোক না কেন মান. কিন্তু আমি ট্র্যাক রাখা প্রয়োজন যে প্রস্তাব মাপ না শুধুমাত্র কিউ, এটি কতগুলি জিনিস. তাই বর্তমান আকার আয়তন, ক্ষমতা সর্বাধিক মাপ. শুধু আবার, নামকরণের কনভেনশন দ্বারা. কেন আমি একটি অতিরিক্ত int-ভিতরে দরকার এর যারা ট্র্যাক রাখা একটি কিউ এর লাইন সামনে? কেন আমি এই ক্ষেত্রে যে কি প্রয়োজন? ওয়েল, এই ছবি কিভাবে পরিবর্তন করতে যাচ্ছেন? আমি সম্ভবত সবচেয়ে পুনরায় করতে পারেন এই ছবি. আমাকে এগিয়ে যান এবং এখানে কি নিশ্চিহ্ন করা যাক. আমরা এই সামান্য দেব এখানে ভিন্ন নাম আপ. 17 পরিত্রাণ পেতে চলুন শুরু করা যাক, যাক এর পরিত্রাণ পেতে 9, 3 এর পরিত্রাণ পেতে যাক. এবং এর এক অন্য জিনিস যোগ করা যাক. আমি ট্র্যাক রাখা প্রয়োজন যে প্রস্তাব তালিকার সামনে, যা শুধু পাশাপাশি কোন int হতে যাচ্ছে. এবং আমরা এটা সহজ রাখা চলুন. এখন জন্য কোন লিঙ্ক তালিকা. আমরা চলুন মানা করব এই সীমা বিরুদ্ধে আপ আচমকা. কিন্তু আমি দেখতে কি চান এই সময় ঘটতে? আমি এগিয়ে যান এবং প্রথমে তাই মনে করা ব্যক্তি লাইন আপ আসে, এবং এটি সংখ্যা 9 এর. আমরা চাপ বল আছে. আমি বলে, দুই বা তিন মানুষ চুরি করতে পারি? এক, দুই, তিন? উপর আসা. রাইট সামনে থেকে, কারণ আমরা এই একটি দ্রুত করতে হবে. আপনি প্রতিটি এখন হতে যাচ্ছে অ্যাপল এ লাইনে একটি পাখা ছেলে. আপনি আপেল হার্ডওয়্যার গ্রহণ করা এই যদিও শেষে. ঠিক আছে. আপনি সংখ্যা 9 করছি, আপনি সংখ্যা 17, সংখ্যা 22. এই মত, নির্বিচারে সংখ্যা ছাত্রদের পরিচয় বা যে কোন বস্তু. এবং শুধুমাত্র একটি মুহূর্ত, এর শুরু করা যাক কিছু যোগ করার শুরু. এবং আমি এখানে এই সময় বোর্ড রান করব. তাই এই ক্ষেত্রে, আমি সক্রিয়া করেছি সামনে হতে - আমি আসলে সত্যিই গ্রাহ্য না কি আয়তন শূন্য হয়, কারণ সামনে, না. তাই এই হিসাবে ভাল শুধু প্রতাপ একটি প্রশ্ন চিহ্ন হবে. এই সমস্ত প্রশ্ন চিহ্ন আছে. তাই এখন আমরা আসলে কিছু দেখতে শুরু করব মানুষ দোকান আপ আবরণের. সুতরাং সংখ্যা 9, তাহলে প্রথমে আপনাকে একজন হন সেখানে আমি 5 এ, এগিয়ে যান এবং এই লম্বা লাইনে দাড়িয়ে বা আগে রাতে. ঠিক আছে. তাই এখন 9 এখানে. তাই 9 তালিকা সামনে. তাই আমি এগিয়ে যান এবং আপডেট করতে যাচ্ছি এই বর্তমান তথ্য মাপ গঠন, আর 0 হতে না কিন্তু আছে 1 টি হবে. আমি 9 করা যাচ্ছে না তালিকার সামনে. আমাকে এগিয়ে যান এবং পর্দার টগল চলুন শুরু করা যাক তাই আমরা এখানে আমাদের অতীত দেখতে পারেন. এবং এখন আমি কি করতে চান সামনে এ রাখা? আমি ট্র্যাক রাখতে যাচ্ছি যে এখনই কিউ সামনে অবস্থান 0 এ. কি ঘটতে যাচ্ছে, কারণ? ওয়েল, আমি সারিবদ্ধ এখন অনুমান করা 17 হিসাবে ভাল. তাই সেখানে লাইন প্রস্থান. এবং আবার, দরজার সাজানোর দোকান এখানে হতে যাচ্ছে. তাই আমি এখন 17 যোগ করেছি. এবং এই ছেলেরা ব্লক করা হয়, যদিও ঠিক আছে যে পর্দা, আমরা এখানে এটা দেখতে পারেন. দুঃখিত. শ্রোতা: আমরা স্থানান্তর করতে পারেন - DAVID Malan: না, যে ঠিক আছে. সেখানে আপ বিশাল এর. তাই 17 এর ভিতরে কিউ এখন হয়. আমি যা আপডেট করা দরকার ক্ষেত্র এখন যদিও? ঠিক আছে, স্পষ্টভাবে আকার. এবং কিভাবে সামনে কি হবে? ঠিক আছে, কোন. সামনে, পরিবর্তন হবে না, কারণ একটি স্ট্যাক থেকে ভিন্ন, আমরা সততা বজায় রাখতে চাই. 9 প্রথম এসেছিলেন, তাই যদি আমরা 9 ​​চান লাইনের প্রথম আউট হতে এবং দোকান মধ্যে. বস্তুত, যে দেখতে দিন. আমরা 22 সন্নিবেশ করার আগে, আসুন এগিয়ে যান এবং dequeue 9. আপনার নাম কি আবার? শ্রোতা: জেক. DAVID Malan: জেক যাচ্ছে এখন dequeued হবে. তাই আপনি যদি দোকান মধ্যে পায়চারি করা পেতে. এবং জাহির যে দোকান ওইদিকে. তাই এখন প্রয়োজন কি - dit-dit-dit! এখন কি ঘটতে দরকার? নকশা সিদ্ধান্ত. তাই না খারাপ প্রবৃত্তি, কিন্তু - আপনার নাম কি আবার? শ্রোতা: ডেভিড. DAVID Malan: ডেভিড. তাই ডেভিড কি করবেন? তিনি তথ্য ফিক্স বাছাই করার চেষ্টা ছিল তার অবস্থান থেকে গঠন এবং পদক্ষেপ জেক এর সাবেক অবস্থান করে. আমরা ইচ্ছুক হন তাহলে যে সূক্ষ্ম একটি হিসাবে গ্রহণ বাস্তবায়ন বিস্তারিত. কিন্তু প্রথম, এর তথ্য আপডেট করা যাক আমরা গঠন যে আগে. আমি সব ধারণা পছন্দ করছি না, কারণ মানুষ এই পংক্তির মধ্যে নাড়াচাড়া. ডেভিড সঙ্গে এটি আছে যদি এটা কোন বড় চুক্তি এক ধাপ, কিন্তু আবার, ফিরে মনে আমরা আট স্বেচ্ছাসেবকদের ছিল করেছি যখন পর্যায় এবং আমরা সন্নিবেশ মত কাজ করেছি আমরা শুরু করতে হয়েছিল যেখানে সাজানোর, প্রায় সবাই চলন্ত. যে অধিকার, ব্যয়বহুল পেয়েছিলাম? যে বড় হে আমার সম্পর্কে cringe তোলে N এর, এন বড় হে আবার দ্বিগুণ. এটা পছন্দ বোধ না একটি আদর্শ ফলাফল. সুতরাং শুধু এই আপডেট করা যাক. সুতরাং কিউ মাপ আর 2. এটা এখন শুধু 1. কিন্তু আমি এখন কিছু আপডেট করতে পারেন আমি আগে আপডেট করা হয়নি, তালিকার সামনে. আমি শুধু বলতে পারে, যে অবস্থান 1 হয়? তাই এখন আমরা এখানে আবর্জনা মান আছে আবর্জনা এখানে মান, এবং ডেভিড এই আবর্জনা মাঝখানে. কিন্তু ডাটা স্ট্রাকচার এখনও অক্ষত. এবং বাস্তবিকই, আমি এমনকি প্রয়োজন নেই জেক এর সাবেক নম্বর পরিবর্তন 9, যারা বজায় রাখে কারণ. আমি এখন যথেষ্ট তথ্য আছে আমি সেখানে এক ব্যক্তি জানেন যে আকার এই কিউ. এবং আমি জানি যে ব্যক্তি অবস্থান 1, না 0 এ. আমি বেড়ে চলেছে করছি না. পাশাপাশি 1 তাই. তাই তথ্য কাঠামো এখনও ঠিক আছে. ওয়েল, পরে কি হবে? যাক এর সারিবদ্ধ - আপনার নাম কি? শ্রোতা: Callen. DAVID Malan: Callen. এর একটি Callen সারিবদ্ধ যাক, এবং 22 কিউ 'র মধ্যে এখন হয়. তাই এখন এখানে পরিবর্তন আছে কি? সামনে যাচ্ছে না সম্ভবত পরিবর্তন করুন. আয়তন আবার 2 পরিবর্তন করতে যাচ্ছে. এবং 22 এখানে শেষ পর্যন্ত, 9, এখনও উপস্থিত কিন্তু এটা কার্যকরভাবে একটি এর এখন আবর্জনা মান. এটা ঠিক জেক অতীতের একটি অবশেষ আছে. সুতরাং এখন যদি সেটা হয় কি আমি ডেভিড dequeue? এক শেষ অপারেশন, dequeue ডেভিড. আমরা নামান পারে, কিন্তু আমি let এর উত্থাপন সম্ভব হিসেবে একটু কাজ করতে. এখন আমার ডাটা স্ট্রাকচার যায় 2 থেকে 1 আকার ব্যাক. কিন্তু কিউ সামনে এখন 2 পরিণত হয়. আমি এই সংখ্যা পরিবর্তন করার প্রয়োজন হবে না তারা এখনও, কারণ শুধু আবর্জনা মান. কিন্তু এখন কি হবে? আমি 26 নিজেকে সারিবদ্ধ ধরুন? আমি এখানে ওভার অন্তর্গত মত আমি মনে করি. তাই আমি সারিবদ্ধ হচ্ছে. তাই আমি ধরনের এখানে অন্তর্গত. এবং আপনি পুরোপুরি না, যদিও মঞ্চে দৃশ্যত এই প্রশংসা করি, আমরা ঘর থেকে প্রচুর আছে, কারণ আমি উচিত এখানে দাঁড়িয়ে করা, কেন? শ্রোতা: আপনি সীমার ফুরিয়েছে. DAVID Malan: রাইট. আমি সীমার বাইরে আছি. আমি অতিক্রম করেছি ইন্ডেক্স এই অ্যারের সীমার. আমি সত্যিই এক হতে হবে সম্ভাব্য তিনটি অবস্থানে. এখন, যেখানে যেতে সবচেয়ে প্রাকৃতিক আছে? আমি মনে করি আমরা leveraged উত্থাপন সপ্তাহে এক কৌতুক. mod অপারেটর, শতাংশ. আমি টেকনিক্যালি এ দাঁড়িয়ে আছি কারণ পাঁচ 3, কিন্তু আমি, 3 mod ক্ষমতা কি তাই 3, একটি শতাংশ সাইন, 3 - ক্ষমতা 3. ওটা কি? বাকি সময় কি আপনি 3 3 ভাগ? 0. আমার সম্পর্কে রাখে যাতে জেক, ছিল না যা আসলে ভাল. তাই এখন বাস্তবায়ন এই জিনিস যাচ্ছে এর মাথা ব্যাথা একটি বিট হতে. এটা সত্যিই শুধু একটা লাইন এর মাথা ব্যাথা করে, কোড. কিন্তু অন্তত এখন আবর্জনা আছে মান এখানে, কিন্তু দুটি আছে এখানে বৈধ ints. এবং আমি এখন আমরা কাজ করেছেন দাবি করে যে আমরা দীর্ঘ হিসাবে করতে হবে ঠিক কি আমরা কি জেক এর পরিবর্তন মান 26 হতে হয়. এখন আমরা এখনও পর্যাপ্ত তথ্য অখণ্ডতা বজায় রাখার জন্য এই তথ্য গঠন. আমরা এখনও ধরনের ভাগ্য বাইরে যখন আমরা চার বা অধিক মোট সন্নিবেশ করতে চান উপাদান, কিন্তু আমি অন্তত সুন্দর করতে পারেন এই ধ্রুবক দক্ষ ব্যবহার সময়, আসলে. আমি নাড়াচাড়া সম্পর্কে চিন্তা করতে হবে না ডেভিড এর বাঁক প্রত্যেকের ছিল. Stacks উপর কোন প্রশ্ন, অথবা এই কিউ? শ্রোতা: কারণ কেন আপনি কি জানেন তাই আপনি সাইজ দরকার একজন ব্যক্তির আছে কোথায়? DAVID Malan: যথাযথভাবে. আমি অ্যারের আকার জানা প্রয়োজন আমি ঠিক কিভাবে জানা প্রয়োজন, কারণ এই মান অনেক বৈধ, করা কোথায় এবং তাই আমি খুঁজে পেতে পারে পরের ব্যক্তি. যথাযথভাবে. আকার - আসলে, আমরা এখনও এই আপডেট করা হয়নি. আমি 26 এ নিজেকে এখনো যোগ করেনি. আকার, এখন না হয় 1, কিন্তু আছে 2. তাই এখন এই, প্রকৃতপক্ষে আমার সম্পর্কে খুঁজে পেতে সাহায্য করে তালিকার মাথা, যা 0 নয়, না 1, কিন্তু আছে 2. তালিকার সামনে প্রকৃতপক্ষে সংখ্যা 22 হয়. তিনি প্রথম এসেছিলেন, তাই তিনি উচিত কারণ আমাকে আগে দোকান মধ্যে অনুমতি দেওয়া হবে, যদিও চাক্ষুষরূপে আমি দাঁড়িয়ে আছি কাছাকাছি দোকান. ঠিক আছে? এই ছেলেরা জন্য সাধুবাদ একটি বৃত্তাকার এবং আমরা তাদের সেখানে আউট জানাবো. [সাধুবাদ] DAVID Malan: আমি যাক পারে আপনি ট্রে রাখা. আমরা কি হবে যদি দেখতে পারে আপনি চান, কিন্তু হয়ত না. ঠিক আছে. তাই এখন আমাদের ছাড়বে? ওয়েল, একটি আছে যে সম্পর্কে উত্থাপন করা যাক আমরা পারে কয়েক অন্যান্য ডাটা স্ট্রাকচার যে আমাদের টুল কিট যোগ শুরু আসলে বেশ, বেশ প্রাসঙ্গিক হবে আমরা ওয়েব স্টাফ মধ্যে আকর্ষণীয়. আবার, সংযোগ কিছু আছে যা আকারে গাছ DOM, দলিল কিছু বলা অবজেক্ট মডেল. কিন্তু আমরা বেশি দেখতে পাবেন যে দীর্ঘ আগে. আমার সম্পর্কে definitionally উত্থাপন করা যাক যে আমরা এখন আপনি জানতে পারেন এমন কি গাছ কল একটি পরিবার গাছ, কোথায় বেশি কিছু পূর্বপুরুষ আছে গাছ শিকড়. এ পিতৃতান্ত্রিক বা একটি matriarch গাছ খুব উপরের. তাদের পত্নী ছাড়া, এই ক্ষেত্রে. কিন্তু আমরা এখন আমরা কল করব কি আছে স্তব্ধ হয়ে যেতে পারে যে নোড যা শিশু, বাম বা ডান সন্তানের সন্তানের বন্ধ, এখানে দেখানো হিসাবে তীর. একটি গাছ তথ্য কাঠামো অন্য কথায়, ইন কম্পিউটার, একটি গাছ শূন্য আছে অথবা অধিক নোড. এটা অন্তত একটি নোড আছে, যে রুট বলা হচ্ছে. এটি দেখতে আকর্ষনীয় করে যে এর আমরা উপরের আঁকা. এবং যে নোড, অন্য কোন নোড মত, করতে পারেন , শূন্য, এক, বা দুটি অথবা তিনটি আছে অথবা তবে অনেক শিশু তথ্য কাঠামো সমর্থন করে. এই ক্ষেত্রে, root পরিচয়ে, সংরক্ষণকারী মান এক, দুই শিশু, 2 এবং 3 আছে তাই আমরা সাধারণত 2 বাম কল শিশু ও 3 ডান শিশু. এবং তারপর আমরা, 5 থেকে 6 নামা, এবং যখন 7, 6 মধ্যম সন্তানের নামে পরিচিত হতে পারে. আপনি চার সন্তান আছে, এটা বিভ্রান্তিকর পায়. সুতরাং আমরা যে ধরনের ব্যবহার বন্ধ শব্দগতভাবে এর শর্টকাট. কিন্তু এটি সত্যিই শুধুমাত্র একটি পরিবার গাছ আছে. এবং এখানে পাতার যে নোড হয় নিজেদের কোন সন্তান আছে. তারা গাছ নীচে অফ স্তব্ধ হয়ে যেতে পারে. তাই কিভাবে আমরা একটি গাছ যে বাস্তবায়ন হতে পারে সর্বাধিক মাত্র দুটি সন্তান আছে? আমরা এটা একটি বাইনারি ট্রি ডাকবো. দ্বি আবার এই সালে, দুটি অর্থ বাইনারি মত ক্ষেত্রে. এবং তাই, শূন্য, এক হতে পারে সর্বাধিক বা দুটি সন্তান. আমি মনে করি আমরা নোড বাস্তবায়ন উত্থাপন করব কোন int N সাথে গঠনের জন্য, এবং তারপর দুই পয়েন্টার, এক বলা বামে, এক অধিকার বলা হয়. কিন্তু যারা শুধু সুন্দর নির্বিচারে নিয়মাবলী. এবং আপনি এখন, বিশেষত যদি চমৎকার কি ধরনের সঙ্গে ধারণার দিক থেকে লড়াই recursion, বা এটা ছিল না যে চিন্তা কিছু সত্যিই একটি সমাধান, বিশেষ করে আপনি যদি মেমরি রান আউট. আমরা তথ্য বিষয়ে কথা বলছি এখন যে কাঠামো ও যে অনুমতি আলগোরিদিম আমাদের তর্ক এবং তাদের নিপূণভাবে recursion ফিরে যে আসে সক্রিয় আউট আরো অনেক আকর্ষক সুন্দর পথ যদি না. আমি উত্থাপন করা এই বাস্তবায়ন তাই একটি অনুসন্ধান ফাংশন. দুই ইনপুট দেওয়া - তাই একটি কালো বাক্স হিসাবে মনে করি. দুই ইনপুট, N, কোন int, এবং একটি প্রদত্ত একটি গাছ যাও পয়েন্টার, একটি একটি পয়েন্টার একটি গাছ নোড, অথবা সত্যিই root পরিচয়ে, আমি এই ফাংশন ফিরে আসতে পারেন যে দাবি সত্য বা মিথ্যা, যে মান N এই ট্রি ভিতরে হয়. এই কালো বাক্সের ভিতর কি? ওয়েল, চার শাখা. প্রথমে শুধু পরীক্ষা করা হবে. ট্রি নাল নয়, শুধু মিথ্যা ফিরে. কোন নোড আছে, কোন স্কুল আছে, কোন নম্বর আছে, শুধু মিথ্যা ফিরে. আপনি খুঁজছেন যদিও, এন, মান যদি জন্য, গাছ তীর N চেয়ে কম হয়, এবং ঠিক পরিষ্কার হবে, তা হলে মানে কি আমি তখন গাছ এবং তীর লিখুন স্বরলিপি, N? যথাযথভাবে. এটা dereference মানে পয়েন্টার গাছ বলা হয়. যে ভিতরে পেতে তারপর সেখানে যান, এবং নোড এবং N বলা হয় তার যদি ক্ষেত্রের কিছু r পেতে. এবং তারপর যে প্রকৃত N তুলনা এটা বিরুদ্ধে খোঁজো মধ্যে গৃহীত. N উল্লেখ্য: মান, কম তাই আপনি যদি গাছ নোড নিজেই, ভাল, এর অর্থ কি? যে প্রথম নজরে কিছুই মানে. রাইট? আপনি একটি অ্যারে আছে যখন শুধু চাই মূল্যবোধ, আপনি বাইনারি আবেদন করতে পছন্দ করতে পারেন ডিভাইড এর একটি ফর্ম হিসাবে অনুসন্ধান এবং জেতা. কিন্তু আমরা কি ধৃষ্টতা প্রয়োজন হয়নি বাইনারি অনুসন্ধান এ সব কাজ করার জন্য ফোন বই এবং আগে উদাহরণ? সাজানো হবে কিভাবে. তাই এর গাছ সংজ্ঞা পরিমার্জন করা যাক এখানে যা করতে পারেন শুধু একটি গাছ হতে না শিশুদের কোন সংখ্যা আছে. নেই শুধু একটি বাইনারি গাছ, যা করতে পারেন সর্বাধিক 0, 1, বা 2 আছে. কিন্তু একটি বাইনারি অনুসন্ধান বৃক্ষ, বা বিএসটি হিসাবে, যা শুধু একটি বলছে একটি অভিনব উপায় যেমন বাইনারি গাছ প্রতিটি নোডের এর বাম সন্তান, উপস্থিত থাকলে, হয় নোড কম. এবং প্রত্যেক নোডের এর ডান সন্তান, উপস্থিত থাকলে, বেশী নোড নিজেই আর. তাই অন্য কথায়, যদি আপনি আঁকা ছিল গাছ খুঁজে, সংখ্যা সব সাবধানে ভালো সামঞ্জস্যপূর্ণ যাতে যদি Root পরিচয়ে 55 আছে, 33 যেতে পারেন তার বাম এটি 55 এর কম কারণ. 77 তার ডান কারণ যেতে পারেন এটি 55 এর চেয়ে অনেক বেশী. কিন্তু এখন,, একই সংজ্ঞা বিজ্ঞপ্তি এটি শব্দগতভাবে একটি recursive সংজ্ঞা আছে 33 এর জন্য আবেদন করতে হবে. 33 এর বাম সন্তানের, এটি চেয়ে কম হওয়া আবশ্যক এবং 33 এর ডান সন্তান, 44, হতে হবে এটি চেয়ে বড়. তাই এই একটি বাইনারি অনুসন্ধান বৃক্ষ, এবং আমি একটি সামান্য বিট ব্যবহার করে উত্থাপন করা recursion, এখন আমরা N খুঁজে পেতে পারেন. N এর মান যে N চেয়ে কম হয় তাই আপনি যদি বর্তমান নোড, আমি যেতে চলেছি এগিয়ে punt, তাই কথা বলতে, এবং মাত্র উত্তর যাই হোক না কেন ফিরে নেভিগেশন N অনুসন্ধান গাছ এর বাম শিশু. আবার লক্ষ্য করুন, এই ফাংশন ঠিক একটি নোড তারকা, একটি প্রত্যাশা একটি নোড যাও পয়েন্টার. তাই নিশ্চয়, আমি গাছ ঠিক করতে পারেন হতে হবে যা তীর বাম, আমার সম্পর্কে অন্য একটি নোড. কিন্তু যে নোড কি? ওয়েল, এই ঘোষণা অনুযায়ী, বাম যাতে শুধু মাত্র একটি পয়েন্টার আমি অনুসন্ধান ফাংশন আপনি পার করছি মানে একটি ভিন্ন পয়েন্টার, যথা প্রতিনিধিত্ব করে এক আমার বাম সন্তানের গাছ. তাই এই ক্ষেত্রে, পয়েন্টার, যদি 33 এই আমাদের নমুনা ইনপুট ইতিমধ্যে, যদি N এ মান N অধিক গাছ বর্তমান নোড তারপর, আমি আছি অন্য এগিয়ে punt যেতে যাচ্ছে দিক এবং শুধু বলে, আমি না এই মান N গাছ যদি জানেন, কিন্তু যদি তা না হয় আমি জানি, এটা ডাউন এর থেকে আমার ডান শাখা, তাই কথা বলতে. তাই আমাকে recursively অনুসন্ধান কল করা যাক, আবার একটি N ক্ষণস্থায়ী, কিন্তু একটি কথা প্রসঙ্গে আমার ডান সন্তানের পয়েন্টার. অন্য কথায়, আমি বর্তমানে আছি যদি 55 এ এবং আমি 99 খুঁজছি, আমি জানি যে 99 আমি সুযোগ যাতে ঠিক মত 55 চেয়ে বেশী ফোন বই সপ্তাহ আগে এবং আমরা ডান গিয়েছিলাম, একইভাবে আমরা এখানে ডান যেতে যাচ্ছে. এটা আমার ডান দিকে যদি ও আমি জানি না শিশু, এবং এটা না, 77 আছে, কিন্তু আমি যে দিক জানি. তাই আমি আমার ডান সন্তানের নেভিগেশন খোঁজো কল 77, এবং থেকে অনুসন্ধান চিত্র আউট করা যাক সেখানে যদি এই অবাধ 99 উদাহরণ আছে আসলে. অন্যথায়, চূড়ান্ত ক্ষেত্রে কি? গাছ যদি নাল এক কেস. N বর্তমান নোড এর চেয়ে কম হয় তাহলে মান অন্য কেস. N বর্তমান তার চেয়ে অনেক বেশী হয় তাহলে নোড এর মান একটি তৃতীয় কেস. চতুর্থ এবং অন্তিম ক্ষেত্রে কি? আমি ঠিক আছে, আমরা মামলা ফুরিয়েছে মনে? এটা N হল হতে হবে আমি উপর আছি যে বর্তমান নোড. আমি এই সময়ে 55 জন্য অনুসন্ধান করছি তাই আপনি যদি গল্প, যে শাখা গাছ সত্য ফিরে হবে. তাই এখানে আকর্ষণীয় যে আমরা আসলে, সপ্তাহ অসদৃশ অতীত, আমরা ধরনের দুটি বেস ক্ষেত্রে আছে. এবং তারা করতে হবে না উপরের সব. উপরের একটি বেস কেস কারণ যদি গাছ নাল হয়, কিছুই করার নেই. শুধু একটি হার্ড কোডেড ফিরে মিথ্যা মান. নীচে শাখা সাজানোর Default, যদ্দ্বারা আমরা চেক করেছি এটা হলে নাল, আমরা চেক করেছি বাকি, কিন্তু এটা করা উচিত হবে না, আমরা করেছি এটা ঠিক করা উচিত যদি চেক করা, কিন্তু এটা করা উচিত হবে না, স্পষ্টতই এটা করা হয়েছে অধিকার যেখানে আমরা. একটি বেস ক্ষেত্রে যে. তাই দুই recursive ক্ষেত্রে আছে মাঝখানে আছে sandwiched. কিন্তু আমি লিখিত আছে পারে এই যে কোনো অনুক্রমে. আমি এটা ধরনের প্রাকৃতিক অনুভূত চিন্তা প্রথমে একটি সম্ভাব্য ত্রুটি পরীক্ষা করার জন্য, বাঁদিকের চেক করুন, তারপর, ডান চেক আপনি নোড করছি অনুমান আসলে আপনি যা খুঁজছেন. সুতরাং কেন এই দরকারী হতে পারে? সুতরাং দেখা যাচ্ছে - এবং আমাকে একটি টিজার ঝাঁপ দেওয়া এখানে যে ওয়েব এর. আমরা না একটি ব্যবহার শুরু করতে যাচ্ছেন প্রোগ্রামিং প্রথম ভাষা, কিন্তু একটি মার্কআপ ভাষা. যে এক হচ্ছে একটি মার্কআপ ভাষা প্রোগ্রামিং আত্মা অনুরূপ ভাষা, কিন্তু এটি আপনি দেয় না ক্ষমতা কথাটি নিজেকে প্রকাশ করতে. এটা শুধুমাত্র আপনার ক্ষমতা গঠনের দিক দিয়া নিজেকে প্রকাশ. আপনি কোথায় কিছু করা চাই পৃষ্ঠায় ওয়েবপৃষ্ঠাটি? কোন রঙ যদি আপনি এটি করতে চান? কি ফন্ট সাইজ আপনি এটি করতে চান? কি শব্দ আসলে আপনি কি ওয়েব পেজে চান? সুতরাং যে একটি মার্কআপ ভাষা. কিন্তু তারপর আমরা খুব দ্রুত চালু করব একটি পূর্ণবর্ধিত যা জাভাস্ক্রিপ্ট, ভাষা প্রোগ্রামিং. চিহ্নগুলি সিন্টেক্সের ক্ষেত্রে চেহারা খুব অনুরূপ সি, কিন্তু এটি কিছু থাকবে সুন্দর, আরো শক্তিশালী, আরো ব্যবহারকারী বন্ধুত্বপূর্ণ বৈশিষ্ট্য. এবং এই সময়ে বিরক্তির এক সেমিস্টারে মধ্যে বিন্দু আমরা করব না শীঘ্রই পর্যন্ত কম মধ্যে Speller বাস্তবায়ন অন্যান্য ভাষার ব্যবহার কোড লাইনের সি নিজেই করতে পারবেন আর, কিন্তু আছে কারণ এর জন্য শীঘ্রই আমরা বুঝতে হবে. এই প্রথম এই ধরনের ওয়েবপৃষ্ঠাটি হতে হবে. এটা সম্পূর্ণ underwhelming হবে আমরা প্রথম এক. এটা শুধু হ্যালো ওয়ার্ল্ড, বলতে হবে. কিন্তু আপনি তা দেখেননি করেছি আগে এই, এইচটিএমএল হয় হাইপারটেক্সট মার্কআপ ল্যাঙ্গুয়েজ. আপনি একটি নির্দিষ্ট মেনু অপশন যেতে যদি যে কোন ওয়েব পেজে সবচেয়ে কোনো ব্রাউজার, ইন্টারনেট, আপনি HTML দেখতে পারেন কিছু মানুষ লিখেছে এমন ওয়েব পৃষ্ঠা তৈরি করুন. এবং এটি সম্ভবত হিসাবে দেখাচ্ছে না সংক্ষিপ্ত এই হিসেবে ঝরঝরে. কিন্তু এই প্যাটার্ন অনুসরণ করবে খোলা বন্ধনী এবং স্ল্যাশ এবং অক্ষর এবং সম্ভাব্য সংখ্যা. আমি একটি টিজার দিতে চাই আপনাকে যা করতে সক্ষম হবেন কি এবং CS50 নেওয়ার পর. আমার সম্পর্কে cs.harvard.edu / Rob যেতে চলুন শুরু করা যাক, আমাদের নিজস্ব রব Bowden এর হোমপেজে. তিনি আমাদের জন্য এই প্রণীত. তাই আপনি তাড়াতাড়ি যে কাজ করতে সক্ষম হবেন. এবং এছাড়াও, আপনি কি শুনেছেন এই সকাল - আপনি এই সকালে শুনেছেন কি - [HAMSTER নৃত্য সঙ্গীত] - You'll এই করতে সক্ষম হবেন. বুধবারের আমাদের অ্যাওয়েট্সওয়াচমেন. আমরা তারপর আপনি দেখতে পাবেন. [HAMSTER নৃত্য সঙ্গীত] DAVID Malan: পরের CS50 এ -