[সঙ্গীত বাজানো] বক্তা 1: ঠিক আছে. প্রত্যেকেরই ফিরে অধ্যায় স্বাগত জানাই. আমি আপনি সব সাফল্যের আশা করি আপনার ব্যঙ্গ থেকে উদ্ধার গত সপ্তাহ থেকে. আমি এটা সময়ে একটি সামান্য বিট পাগল জানি. আপনি যদি আমি আগে বলছে ছিল স্ট্যানডার্ড ডেভিয়েশন মধ্যে, সত্যিই বিশেষ করে, এটা চিন্তার কিছু নেই একটি কম আরামদায়ক বিভাগের জন্য. তার মানে আপনি হওয়া উচিত যেখানে সম্বন্ধে. আপনি তারপর সন্ত্রস্ত, মহান করে থাকেন. আপনি যশ. এবং যদি আপনি মনে করেন যে আপনার প্রয়োজন মত একটি সামান্য বিট আরো সাহায্যের, দয়া করে পৌঁছানোর মুক্ত মনে টিএফএস কোন আউট. আমরা সব এখানে সাহায্য করতে হয়. আমরা শেখান কেন. আমি আপনার জন্য এখানে প্রতি সোমবার আছি কেন বৃহস্পতিবার বলছি এবং অফিসে ঘন্টা. তাই আমাকে জানাতে বিনা দ্বিধায় দয়া করে আপনি কিছু সম্বন্ধে চিন্তিত হন তাহলে বা ব্যঙ্গ যদি কিছু নেই যে আপনি সত্যিই মোকাবেলার চাই. তাই আজকের জন্য এজেন্ডা হয় সমস্ত ডেটা স্ট্রাকচার সম্পর্কে. এর মধ্যে কিছু শুধু শুধু হতে যাচ্ছে আপনি এই সঙ্গে familiarized পেতে. আপনি কি কখনো বাস্তবায়ন না পারে এই ক্লাসে তাদের. আপনি তাদের কিছু, আপনার speller pset জন্য ভালো. আপনি আপনার পছন্দ হবে হ্যাশ টেবিল এবং চেষ্টা মধ্যে. তাই আমরা স্পষ্টভাবে ঐ ওভার চালু করা হবে. এটা কোন ধরনের স্পষ্টভাবে আরো হতে যাচ্ছে একটি উচ্চ পর্যায়ের ধারার আজ, যদিও, কারণ সেখানে তাদের অনেক আছে, এবং যদি আমরা বাস্তবায়ন বিবরণ মধ্যে গিয়েছিলাম এই সব উপর, আমরা না would এমনকি সংযুক্ত তালিকার মাধ্যমে পেতে এবং হয়ত হ্যাশ টেবিল একটি সামান্য বিট. তাই আমার সাথে সহ্য করা. আমরা কাজ করা যাচ্ছে না করছি যতটা এই সময় কোডিং. আপনি এটা সম্পর্কে কোনো প্রশ্ন থাকে অথবা আপনি এটি বাস্তবায়িত দেখতে চাই অথবা এটা নিজে চেষ্টা, আমি স্পষ্টভাবে সুপারিশ , study.cs50.net যাচ্ছে যা এই সব উদাহরণ আছে. এটা আমার PowerPoints হবে নোট সঙ্গে যে আমরা কিছু প্রোগ্রামিং হিসেবে ব্যবহারের প্রবণতা ব্যায়াম, বিশেষ করে জিনিষ জন্য সংযুক্ত তালিকা এবং বাইনারি মত গাছ stacks এবং cues. তাই একটু বেশি উচ্চ পর্যায়ের, যা আপনাকে বলছি জন্য সুন্দর হতে পারে. যে সাথে সুতরাং, আমরা শুরু করব. এবং এছাড়াও, yes-- মো. আমি মধ্যে যারা তোমাদের অধিকাংশই মনে আমার অধ্যায়, আপনার ক্যুইজ আছে কিন্তু কেউ বা কোনো কারণে আসে আপনি না, তারা এখানে ডান সামনে করছি. সুতরাং তালিকা লিঙ্ক. যায় এর আমি এই ধরনের জানি আপনার ব্যঙ্গ আগে ব্যাক. যে আগে সপ্তাহে ছিল আমরা এই সম্পর্কে শিখেছি যে. কিন্তু এই ক্ষেত্রে, আমরা শুধু হবে গভীরতার মধ্যে একটি সামান্য বিট আরও যান. তাই কেন আমরা একটি চয়ন করতে পারে একটি অ্যারের উপর তালিকায় লিঙ্ক? তাদের কি আলাদা? হ্যাঁ? শ্রোতা: আপনি প্রসারিত করতে পারেন একটি লিঙ্ক একটি অ্যারের এর নির্দিষ্ট আকার বনাম তালিকা দেখাবে. বক্তা 1: রাইট. একটি অ্যারের একটি পক্ষান্তরে আকার সংশোধন করেছে লিঙ্ক তালিকা একটি পরিবর্তনশীল আয়তন আছে. আমরা জানি না সুতরাং কিভাবে অনেক আমরা সঞ্চয় করতে চান, একটি লিঙ্ক তালিকা আমাদের একটি দুর্দান্ত দেয় উপায় কি যে আমরা শুধু পারেন কারণ অন্য নোড উপর যোগ এবং উপর যোগ অন্য একটি নোড এবং অন্য একটি নোড উপর যোগ করুন. কিন্তু কি একটি ট্রেড বন্ধ হতে পারে? যে কেউ ট্রেড বন্ধ মনে পড়ে অ্যারে এবং সংযুক্ত তালিকার মধ্যে? Mmhmm? শ্রোতা: আপনি আছে সব পথ দিয়ে যেতে লিঙ্ক তালিকা মাধ্যমে একটি তালিকার মধ্যে একটি উপাদান খুঁজে. একটি অ্যারের মধ্যে, আপনি যা করতে পারেন শুধু একটি উপাদান খুঁজে. বক্তা 1: রাইট. সুতরাং arrays-- সঙ্গে শ্রোতা: [শ্রবণাতীত]. বক্তা 1: অ্যারে দিয়ে, আমরা আছে কি র্যান্ডম এক্সেস বলা হচ্ছে. আমরা চাইলে কি যে মানে একটি তালিকার কখনও পঞ্চম পয়েন্ট বা পঞ্চম পয়েন্ট আমাদের অ্যারে, আমরা শুধু এটা দখল করতে পারেন. এটি একটি লিঙ্ক তালিকা, আমরা আছে ডান, মাধ্যমে পুনরুক্তি করতে? সুতরাং একটি উপাদান এ অ্যাক্সেস একটি অ্যারের, ধ্রুবক সময় এটি হবে একটি লিঙ্ক তালিকা দিয়ে যেহেতু সম্ভবত কারণ হয়ত রৈখিক সময় হতে আমাদের উপাদান শেষে সব উপায়. আমরা সবকিছু মাধ্যমে অনুসন্ধান করতে হবে. এই সব তথ্য দিয়ে তাই আমরা চলুন কাঠামো উপর একটু বেশি সময় খরচ করা, pluses এবং নেগেটিভ কি হয়. আমরা চাইতে পারেন যখন অন্য এক ব্যবহার? এবং যে ধরনের বড় জিনিস দূরে নিতে. তাই আমরা এখানে আছে একটি নোড সংজ্ঞা. এটা এক উপাদান মধ্যে মত আমাদের লিঙ্ক তালিকা, ডান? তাই আমরা সব পরিচিত আমাদের typedef structs সঙ্গে, আমরা শেষ সময় পর্যালোচনা ওভার গিয়েছিলাম যা. শুধু তৈরি এটি মূলত ছিল আমরা ব্যবহার করতে পারে অন্য যে ডাটা টাইপ. এবং এই ক্ষেত্রে, এটা কিছু নোড এর যে কিছু পূর্ণসংখ্যা রাখা হবে. এবং তারপর দ্বিতীয় অংশ এখানে কি? যে কেউ? শ্রোতা: [শ্রবণাতীত]. বক্তা 1: হ্যাঁ. এটা পরবর্তী নোডের একটি পয়েন্টার. তাই এই আসলে এখানে আপ করা উচিত. এই ধরনের একটি পয়েন্টার পরের জিনিস করতে নোড. এবং যে কি তারা আমাদের নোড বোঝায়. কুল. সার্চ দিয়ে ঠিক আছে, তাই, আমরা ছিল আপনি যদি শুধু হাত আগে বলছে অনুসন্ধান যাচ্ছে, আপনি আসলে পুনরুক্তি করতে হবে আপনার লিঙ্ক তালিকা মাধ্যমে. আমরা সংখ্যা খুঁজছেন সুতরাং 9, আমরা আমাদের মাথা এ শুরু হবে এবং যে শুরুতে আমাদের পয়েন্ট আমাদের লিঙ্ক তালিকা, ডান? এবং আমরা ঠিক আছে, এই আছে, বলতে নোড সংখ্যা 9 ধারণ? কোন? ঠিক আছে, পরের এক যেতে. এটা অনুসরণ করুন. এটি সংখ্যা 9 ধারণ করে? না. পরের এক অনুসরণ করুন. তাই আসলে আমরা বারবার করতে হবে আমাদের লিঙ্ক তালিকা মাধ্যমে. আমরা শুধু 9 যেখানে সরাসরি যেতে পারবেন না. আর আপনাকে বলছি আসলে করতে চান সেখানে কিছু ছদ্ম-কোড আপ দেখতে. আমরা এখানে কিছু অনুসন্ধান ফাংশন আছে যে এটা লাগবে কি in-- লাগে? আপনি কি মনে করেন? সুতরাং সহজ এক. এটা কি? শ্রোতা: [শ্রবণাতীত]. বক্তা 1: আমরা খুঁজছেন সংখ্যা. রাইট? এবং কি এই মিলা হবে? এটা একটি পয়েন্টার? শ্রোতা: একটি নোড. বক্তা 1: তালিকায় একটি নোডের আমরা ডান, এ খুঁজছেন যে? তাই আমরা কিছু নোড এখানে পয়েন্টার হয় আছে. এই যাচ্ছে যে একটি বিন্দু আসলে আমাদের তালিকা মাধ্যমে পুনরুক্তি. আমরা এটা তালিকায় সমান সেট যে শুধু কারণ এটি সমান সেটিং আমাদের লিঙ্ক তালিকা শুরু. আর যদি শূন্য না যখন, যখন আমরা এখনও আমাদের তালিকা অনেক কিছু আছে যে নোড আছে কিনা দেখতে পরীক্ষা আমরা খুঁজছেন সংখ্যা. সত্য ফিরুন. অন্যথা, ডান, এটি আপডেট? এটা শূন্য, তাহলে আমরা প্রস্থান আমাদের যখন লুপ এবং মিথ্যা ফিরে কারণ তার মানে আমরা তা পাওয়া যায় না. সবাই যে কাজ করে কিভাবে পেতে পারি? ঠিক আছে. আপনি, সন্নিবেশ সঙ্গে তাই তিনটি ভিন্ন উপায় আছে. আপনি লিখবেন পারেন, শুরুতে যোগ করতে পারেন হরেক রকম করে এবং আপনি সন্নিবেশ করতে পারেন. এই ক্ষেত্রে, আমরা আছেন একটি শুরুতে যোগ করতে যাচ্ছে. কেউ কিভাবে ঐ কি জানে তিনটি ক্ষেত্রে পৃথক হতে পারে? তাই শুরুতে যোগ আপনি করা যে মানে এটা আপনার তালিকা সামনে এ. সুতরাং যে অর্থ হবে কোন ব্যাপার যে আপনার নোডের, কোন ব্যাপার কি মান কি, আপনি যাচ্ছেন ঠিক আছে, সামনে ডান এখানে এটা করা? এটা প্রথম হতে যাচ্ছে আপনার তালিকায় উপাদান. আপনি এটা লিখবেন তাহলে, এটি হচ্ছে আপনার তালিকার ফিরে যেতে. এবং নানাপ্রকার আপনি আছেন মানে মধ্যে সন্নিবেশ জায়গা মধ্যে আসলে করা যাচ্ছে এটা রাখে যেখানে আপনার লিঙ্ক তালিকা সাজানো. আবার, কিভাবে আপনি ব্যবহার যারা এবং যখন আপনি ব্যবহার তাদের আপনার ক্ষেত্রে তার উপর নির্ভর করে পরিবর্তিত হতে হবে. এটা করার দরকার হয় না যদি বাছাই করা, শুরুতে যোগ থাকে কি অধিকাংশ লোক হতে যদি তা চান না, কারণ ব্যবহার সম্পূর্ণ তালিকা মধ্য দিয়ে যেতে হবে ঠিক আছে, এটা যোগ করার শেষ খুঁজে পেতে? আপনি শুধু ডান মধ্যে দাম ধরা যেতে পারে. সুতরাং আমরা একটি মধ্য দিয়ে যেতে হবে সন্নিবেশ 1 এই মুহূর্তে. আমি যাচ্ছি যে তাই এক জিনিস অত্যন্ত এই pset উপর সুপারিশ হিসাবে সবসময়, সেটা আঁকা হয়. আপনি আপডেট যে এটা খুব গুরুত্বপূর্ণ সঠিক অনুক্রমে আপনার পয়েন্টার আপনি তাদের আপডেট যদি কারণ সামান্য যাতে বাইরে, আপনি শেষ পর্যন্ত চলুন আপনার তালিকার অংশের হারানো. সুতরাং উদাহরণস্বরূপ, এই ক্ষেত্রে, আমরা আছেন 1 মাত্র বিন্দু মাথা বলছে. আমরা ঠিক সেটা করতে হলে এই 1 সংরক্ষণ না করে, আমরা কোন ধারণা আছে কি 1 এখন নির্দেশ করা উচিত আমরা হারিয়ে ফেলেছি, কারণ কি মাথা তীক্ষ্ন. তাই এক জিনিস মনে রাখা যখন আপনি একটি শুরুতে যোগ করছেন কি সংরক্ষণ করতে হয় প্রথম মাথা পয়েন্ট, তারপর এটা reassign, এবং তারপর আপডেট কি আপনার নতুন নোডের নির্দেশ উচিত. এই ক্ষেত্রে, এই এটা করতে একটি পদ্ধতি. আমরা এই ভাবে কাজ ছিল তাই যেখানে আমরা শুধু মাথা পুনরায় নির্ধারণ আমরা মূলত আমাদের হারাতে সম্পূর্ণ তালিকা, ডান? এটা ওয়ান ওয়ে যাও 1 পয়েন্ট আছে পরবর্তী, এবং তারপর 1 থেকে মাথা বিন্দু আছে. অথবা আপনি যেমন ধরনের কাজ করতে পারেন আমি সম্পর্কে বললাম যা অস্থায়ী স্টোরেজ,. কিন্তু আপনার পুনরায় নির্ধারণের সঠিক অনুক্রমে পয়েন্টার খুব খুব হতে যাচ্ছে এই pset জন্য গুরুত্বপূর্ণ. অন্যথা, আপনি একটি হ্যাশ আছে চলুন টেবিল বা শুধু হতে যাচ্ছে যে একটি চেষ্টা শব্দ শুধুমাত্র অংশ যে আপনি you're-- mmhmm তারপর চান এবং? শ্রোতা: অস্থায়ী কী ছিল স্টোরেজ জিনিস আপনি সম্পর্কে কথা বলা হয়েছে? বক্তা 1: অস্থায়ী স্টোরেজ. তাই মূলত অন্য আপনি এই কাজ করতে পারে উপায় ভালো, কিছু মাথা সংরক্ষণ করা হয় এটা অস্থায়ী পরিবর্তনশীল সঞ্চয়. 1 থেকে এটি বরাদ্দ ও তারপর নির্দেশ 1 আপডেট যাই হোক না কেন মাথার দিকে নির্দেশ করতে ব্যবহৃত. এই ভাবে স্পষ্টত হয় আরো মার্জিত আপনাকে কারণ একটি অস্থায়ী মান প্রয়োজন, কিন্তু না শুধু তা করে অন্য উপায় নৈবেদ্য. এবং আমরা আসলে আছে কি এই জন্য কিছু কোড. লিঙ্ক তালিকা জন্য সুতরাং, আমরা আসলে কিছু কোড আছে. তাই এই prepending হয়, এখানে সন্নিবেশ. তাই এই মাথা এ এটি প্রবেশ. সুতরাং প্রথম জিনিস, আপনি প্রয়োজন অবশ্যই, আপনার নতুন নোড নির্মাণ, এবং শূন্য জন্য পরীক্ষা. সর্বদা ভাল. এবং তারপর আপনি মান নির্ধারণ করা আবশ্যক হয়. যখনই আপনি একটি নতুন নোড নির্মাণ এটি পরবর্তী প্রতি নির্দেশ করে কি না জানি না, তাই আপনি যাও যাও নাল এটি আরম্ভ করতে চান. এটা কিছু ইশারা শেষ হলে অন্য, এটি পুনরায় নির্ধারণ এবং এটা সূক্ষ্ম পরার. এটা প্রথম জিনিস যদি তালিকার মধ্যে, এটা প্রয়োজন কারণ নাল নির্দেশ করার যে তালিকায় শেষে. আমি তখন এটি সন্নিবেশ করতে, আমরা এখানে দেখতে আমাদের নোড পরের মান নির্ধারণের হয় মাথার যা কিছু করা, যা আমরা এখানে ছিল কি না. তার মানে আমরা ঠিক করেছিলাম. এবং তারপর আমরা বিন্দু থেকে মাথা নির্ধারণ করছি আমাদের নতুন নোডের, মনে রাখবেন, কারণ, নতুন একটি নোডের কিছু পয়েন্টার এবং যে ঠিক মাথার হয় কি. যে ঠিক কেন আমরা হয় এই তীর অ্যাক্সেসর আছে. কুল? Mmhmm? শ্রোতা: আমরা আছে কি প্রথম নাল নতুন পরবর্তী আরম্ভ, বা আমরা শুধু আগাইয়া এটি আরম্ভ করতে পারেন? বক্তা 1: আগামী নতুন শুরু করার শূন্য করা প্রয়োজন আপনি জানেন না, কারণ যেখানে এটি হতে যাচ্ছে. এছাড়াও, এই ধরনের হয় শুধু একটি দৃষ্টান্ত চাই. আপনি এটা শূন্য সমান শুধু করতে সেট নিশ্চিত আপনার সব ঘাঁটি আচ্ছাদিত করা হয় যে আপনি যাতে কোনো পুর্ননির্ধারণ আগে আপনি সবসময় এটা করবে যে নিশ্চিত করছি একটি নির্দিষ্ট মান প্রতি নির্দেশ করা একটি আবর্জনা মান ভালো বনাম. হাঁ, আমরা দায়িত্ব অর্পণ করা, কারণ স্বয়ংক্রিয়ভাবে পরবর্তী নতুন, কিন্তু এটি শুধু একটি ভালো আরো ভাল অভ্যাস এটি আরম্ভ করতে যে ভাবে এবং তারপর reassign. ঠিক আছে, তাই দোকর এখন তালিকা লিঙ্ক. আমরা কি মনে করেন? কি দিয়ে আলাদা দোকর তালিকা লিঙ্ক? সুতরাং আমাদের লিঙ্ক তালিকা মধ্যে, আমরা করতে পারেন শুধুমাত্র সঠিক, এক দিক সরাতে? আমরা শুধুমাত্র পরবর্তী আছে. আমরা শুধুমাত্র এগিয়ে যেতে পারেন. একটি দোকর লিঙ্ক তালিকা সঙ্গে, আমরা পিছনের দিকে সরাতে পারেন. সুতরাং আমরা না শুধুমাত্র আছে আমরা সঞ্চয় করতে চান যে নম্বর, এটা পরের স্থানটিকে যেখানে আমরা এবং আমরা শুধু যেখান থেকে এসেছিলেন. সুতরাং এই জন্য করতে পারবেন কিছু ভাল ট্র্যাভেরসাল. তাই দোকর লিঙ্ক নোড, অনুরূপ, ডান? শুধু পার্থক্য হল আমরা এখন হয় একটি পরবর্তী এবং পূর্ববর্তী আছে. এটা শুধুমাত্র পার্থক্য. আমরা যদি তাই শুরুতে যোগ বা append-- আমরা এখানে এই জন্য কোনো কোড আপ নেই কিন্তু আপনি চেষ্টা ছিল এবং , গুরুত্বপূর্ণ বিষয় এটি সন্নিবেশ আপনি করতে প্রয়োজন হয় নিশ্চিত আপনি নির্ধারণ করছি উভয় আপনার আগের এবং আপনার সঠিকভাবে পরের পয়েন্টার. তাই এই ক্ষেত্রে, আপনি would শুধুমাত্র পরবর্তী আরম্ভ না, আপনি আগের আরম্ভ. আমরা তালিকা মাথা এ থাকেন, তাহলে আমরা মাথার সমান নতুন যাবে না শুধুমাত্র, কিন্তু আমাদের নতুন পূর্ববর্তী উচিত ঠিক আছে, মাথার দিকে নির্দেশ? যে শুধুমাত্র পার্থক্য. আর আপনার সাথে আরও অনুশীলন চান ঢোকাতে সাথে সংযুক্ত তালিকা, সঙ্গে এই, সন্নিবেশ সঙ্গে, মুছে ফেলার সঙ্গে একটি হরেক তালিকা মধ্যে, study.cs50.net চেক আউট দয়া করে. মহান ব্যায়াম একটি গুচ্ছ আছে. আমি অত্যন্ত তাদের সুপারিশ. আমি মনে করি আমরা তাদের মাধ্যমে যেতে সময় ছিল ইচ্ছুক কিন্তু ডাটা স্ট্রাকচার অনেক আছে মাধ্যমে পেতে. ঠিক আছে, হ্যাশ টেবিল তাই. এটা সম্ভবত সবচেয়ে হয় আপনার pset জন্য দরকারী বিট এখানে আপনি হতে যাচ্ছেন কারণ এই এক, অথবা একটি চেষ্টা বাস্তবায়নে. আমি সত্যিই হ্যাশ টেবিল চাই. তারা চমত্কার করছি. তাই মূলত কি এরকম একটি হ্যাশ টেবিল আমরা সত্যিই দ্রুত প্রয়োজন যখন হয় সন্নিবেশ, অপসারণ, এবং লুকআপ. সেগুলো হল আমরা যে জিনিস একটি হ্যাশ টেবিল prioritizing. তারা চমত্কার বড় পেতে পারেন কিন্তু আমরা চেষ্টা সঙ্গে দেখতে পাবেন, অনেক বড় জিনিস রয়েছে যা আছে. কিন্তু মূলত, সব একটি হ্যাশ টেবিল একটি হ্যাশ ফাংশন যে প্রতিটি লাগাতে যা বালতি আপনি বলে আপনার তথ্য, আপনার উপাদান প্রতিটি. একটি সহজ উপায় হল একটি হ্যাশ টেবিল মনে এটা জিনিস শুধু buckets যে হয়, ডান? আপনার দ্বারা বিষয় বাছাই করা হয় তাই যখন তাদের নামের প্রথম অক্ষর মত, যে ধরনের একটি হ্যাশ টেবিল মত. আমি গ্রুপ ছিল তাই আপনাকে বলছি হয় নাম শুরু হয় কেহ দলের মধ্যে এখানে উপর একটি দিয়ে, বা জন্মদিন কেহ এর জানুয়ারী, ফেব্রুয়ারী, মার্চ মাসে হয় যাই হোক না কেন, যে কার্যকরভাবে হয় একটি হ্যাশ টেবিল তৈরি. এটা শুধু buckets তৈরি হচ্ছে যে আপনি আপনার উপাদান বাছাই আপনি তাদের সহজ জানতে পারেন যাতে. আমি প্রয়োজন হলে এই ভাবে তাই আপনি এক খুঁজে, আমি আপনাকে নেই আপনার নামের প্রতিটি মাধ্যমে. আমি ওহ, ভালো হতে পারে, আমি জানি যে ড্যানিয়েল এর জন্মদিন in-- হয় শ্রোতা: --April. বক্তা 1: এপ্রিল. তাই আমি আমার এপ্রিলে চেহারা বালতি, এবং কোনো ভাগ্য সঙ্গে, সে কেবল এক সেখানে থাকব এবং আমার সময়, যে অর্থে ধ্রুব ছিল আমি সন্ধান আছে পক্ষান্তরে যদি মানুষ আভা মাধ্যমে, এটা অনেক লম্বা নিতে যাচ্ছে. সুতরাং হ্যাশ টেবিল সত্যিই ঠিক buckets আছে. সহজ ভাবে তাদের মনে. সুতরাং একটি খুব গুরুত্বপূর্ণ বিষয় সম্পর্কে একটি হ্যাশ টেবিল একটি হ্যাশ ফাংশন. সুতরাং জিনিস আমি ঠিক মত সম্পর্কে সায়ীদ আপনার প্রথম নাম আপনার প্রথম চিঠি অথবা আপনার জন্মদিনের মাস, এই ধারনা হয় যে সত্যিই একটি হ্যাশ ফাংশন সম্পর্কিত. এটা সিদ্ধান্ত নিয়ে শুধু একটি উপায় যা আপনি ঠিক আছে, করছি উপাদান মধ্যে যায় বালতি? তাই এই pset জন্য, আপনি আপ করতে পারেন আপনার কাঙ্ক্ষিত হ্যাশ ফাংশন প্রায় কাছাকাছি. আপনার নিজস্ব হতে হবে তা নয়. কিছু সত্যিই শীতল বেশী আউট আছে ছবি গণিত সমস্ত প্রকারের আছে কি যে. এবং যদি আপনি আপনার করতে চাই সুপার ফাস্ট বানান-পরীক্ষক, আমি স্পষ্টভাবে হবে যারা এক দেখব. কিন্তু এছাড়াও আছে Compute মত সহজ বেশী, শব্দ, সমষ্টি মত প্রতিটি অক্ষর একটি নম্বর আছে. সমষ্টি গণনা করতে হবে. যে বালতি নির্ধারণ করে. তারা সহজ বেশী আছে শুধু একটি এর এখানে সব ভালো হয়, বি এর সব এখানে. যারা কোন এক. মূলত, এটা বলে আপনি যা অ্যারের সূচক ঢোকা উচিত আপনার উপাদান. শুধু bucket-- সিদ্ধান্ত এটি সমস্ত একটি হ্যাশ ফাংশন হয় না. তাই আমরা এখানে যা একটি উদাহরণ আছে স্ট্রিং শুধু প্রথম চিঠি যে আমি শুধু সম্পর্কে কথা বলা হয়েছিল. তাই আপনি শুধু যে কিছু হ্যাশ আছে আপনার স্ট্রিং বিয়োগ একটি প্রথম অক্ষর, আপনি কিছু দিতে হবে, যা 0 এবং 25 এর মধ্যে নম্বর. এবং কি আপনি কাজ করতে চান হয় এই প্রতিনিধিত্ব করে নিশ্চিত করুন আপনার হ্যাশ মাপ টেবিলের কতজন buckets আছে. এইসব অনেক সঙ্গে হ্যাশ ফাংশন, তারা আছেন যাচ্ছে যে প্রতাপ মান ফিরে যাও এ পর্যন্ত buckets সংখ্যা উপরে হতে আপনি আসলে আছে আপনার হ্যাশ টেবিল, তাই আপনি না প্রয়োজন নিশ্চিত এবং তাদের দ্বারা mod. অন্যথা, এটি বলে যাচ্ছে, ওহ, এটা বালতি 5,000 থাকা উচিত কিন্তু আপনি শুধুমাত্র 30 আছে আপনার হ্যাশ টেবিল মধ্যে buckets. এবং অবশ্যই, আমরা যে সব জানি কিছু ছবি ত্রুটি স্থাপিত যাচ্ছে. সুতরাং দ্বারা mod করতে ভুলবেন না আপনার হ্যাশ টেবিল মাপ. কুল. দুর্ঘটনায় তাই. সবাই এ পর্যন্ত ভাল? Mmhmm? শ্রোতা: কেন এটা would যেমন একটি গুরুভার মূল্য ফেরত? বক্তা 1: অ্যালগরিদম উপর নির্ভর করে আপনার হ্যাশ ফাংশন ব্যবহার করে. তাদের কিছু করতে হবে পাগল গুণ. এবং এটা পেয়ে সম্পর্কে সব একটি এমনকি ডিস্ট্রিবিউশন, তাই তারা সত্যিই কিছু করতে কখনো কখনো পাগল জিনিষ. এই যা. আরও কিছু লাগবে? ঠিক আছে. দুর্ঘটনায় তাই. মূলত, যেমন আমি আগে বলেছেন, সেরা ক্ষেত্রে দৃশ্যকল্প মধ্যে, আমি দেখব কোন বালতি হয় এক জিনিস আছে যাচ্ছে, তাই আমি ডান, এ সব তাকান আছে না? আমি হয় এটা আছে জানি বা এটি না, এবং যে আমরা সত্যিই চান. কিন্তু আমরা দশ হাজার হাজার আছে যদি তথ্য পয়েন্ট এবং যে সংখ্যার চেয়ে কম একটি buckets, আমরা আছে চলুন দুর্ঘটনায় যেখানে ঘটনাচক্রে কিছু একটি মধ্যে শেষ করার আছে যাচ্ছে ইতিমধ্যে একটি উপাদান আছে যা বালতি. তাই প্রশ্ন, কি আমরা যে ক্ষেত্রে কাজ করে? আমরা কি করব? আমরা ইতিমধ্যে সেখানে কিছু আছে? আমরা শুধু এটা বর্জন করবেন? না. আমরা তাদের উভয়ের রাখা আছে. তাই উপায় যে আমরা সাধারণত যে কি হয় না? ডাটা স্ট্রাকচার কি আমরা শুধু সম্পর্কে বললাম? শ্রোতা: লিঙ্ক তালিকা. বক্তা 1: একটি লিঙ্ক তালিকা. তাই এখন, পরিবর্তে এই প্রতিটি buckets শুধু, এক উপাদান হচ্ছে এটি একটি লিঙ্ক তালিকা থাকতে যাচ্ছে তা কুচি হয়েছে যে উপাদান. ঠিক আছে, প্রত্যেকের ধরনের যে ধারণা পেতে পারি? আমরা একটি অ্যারে আছে না পারে কারণ আমরা কিভাবে অনেক কিছু জানি না, কারণ সেখানে হতে যাচ্ছে. একটি লিঙ্ক তালিকা করতে পারবেন শুধু সঠিক সংখ্যা আছে ঠিক আছে, যে বালতি মধ্যে কুচি হয়? অনুসন্ধানে সনাক্ত করা হয় তাই রৈখিক মূলত এই ধারণা এটি একটি সংঘর্ষের মোকাবেলা করতে এক উপায়. আপনি কি কি করতে পারেন এই মধ্যে, যদি হয় কেস, বেরি 1 মধ্যে কুচি ছিল এবং আমরা ইতিমধ্যে আছে কিছু আছে, আপনি শুধু নিচে পর্যন্ত বর্তা আপনি একটি ফাঁকা স্লট খুঁজে. যে এটা হ্যান্ডেল করতে এক উপায়. হাতল অন্যান্য উপায় এটা দিয়ে কি আমরা শুধু লিঙ্ক বলা তালিকায় chaining বলা হয়. তাই এই ধারণা যদি কাজ আপনি কি মনে করেন আপনার হ্যাশ টেবিল এর চেয়ে অনেক বড় আপনার ডেটা সেট অথবা আপনি যদি চেষ্টা এবং chaining কমান চান এটা একেবারে প্রয়োজন না হওয়া পর্যন্ত. তাই এক জিনিস রৈখিক সম্ভবত মানে অনুসন্ধান আপনার হ্যাশ ফাংশন যে বেশ দরকারী নয় আপনি শেষ পর্যন্ত ব্যবহার করতে যাচ্ছেন, কারণ আপনার হ্যাশ ফাংশন, একটি পয়েন্ট পেয়ে, আপনি নিচে অনুসন্ধানের রৈখিক পাওয়া যায় যে কিছু জায়গায়. কিন্তু এখন, অবশ্যই, কিছু সেখানে শেষ পর্যন্ত যে অন্য আপনি করতে আছে চলুন এমনকি আরও নিচে অনুসন্ধান. এবং অনেক আরও আছে সার্চ ব্যয় যে একটি উপাদান inputting মধ্যে যায় এখন আপনার হ্যাশ টেবিল, ডান? এবং এখন আপনি যান এবং চেষ্টা করুন এবং এটি যখন বেরি আবার, আপনি এটি হ্যাশ চলুন, এবং এটা, বলে যাচ্ছে উহু, বালতি 1 অল্পক্ষণের, এবং এটা করা যাচ্ছে না বালতি 1 মধ্যে, যাতে আপনি আছেন তর্ক করতে যাচ্ছে এই বাকি মাধ্যমে. সুতরাং, কখনও কখনও দরকারী কিন্তু বেশিরভাগ ক্ষেত্রেই, আমরা যে বলে যাচ্ছেন chaining আপনি কি করতে চান হয়. সুতরাং আমরা এই সম্পর্কে আগে বলত. আমি নিজেকে নিয়ে একটু এগিয়ে আছে. কিন্তু chaining মূলত যে হয় আপনার হ্যাশ টেবিল প্রতিটি বালতি শুধু একটি তালিকা সংযুক্ত হয়. তাই অন্য উপায়, অথবা আরও প্রযুক্তিগত পথ, একটি হ্যাশ টেবিল মনে এটি শুধু একটি অ্যারের যে হয় লিঙ্ক তালিকা, যা যখন আপনি আপনার অভিধান লেখার এবং আপনি এটি লোড করার চেষ্টা করছেন, একটি হিসাবে এটি চিন্তা লিঙ্ক তালিকা অ্যারের এটা অনেক সহজ করতে হবে আপনি আরম্ভ করার জন্য. শ্রোতা: সুতরাং হ্যাশ টেবিল একটি পূর্বাহ্নে নির্ধারিত মাপ আছে, buckets একটি [শ্রবণাতীত] মত? বক্তা 1: রাইট. সুতরাং এটি একটি সেট নম্বর আছে আপনি determine-- যে buckets যা আপনাকে বলছি উচিত সাথে খেলতে নির্দ্বিধায়. এটি বেশ শান্ত হতে পারে কি দেখতে যাও আপনি buckets আপনার নম্বর পরিবর্তন হিসাবে. তবে হাঁ, এটা হয়েছে একটি একটি buckets সেট সংখ্যা. আপনি কি হিসাবে মাপসই করা যাবে আপনি প্রয়োজন হিসাবে অনেক উপাদান এই পৃথক chaining যেখানে আপনি হয় প্রতিটি বালতি তালিকা লিঙ্ক আছে. যে আপনার হ্যাশ টেবিল মানে ঠিক মাপ হতে হবে আপনি, ডান হতে এটি প্রয়োজন যে? যে লিঙ্ক তালিকার পুরো বিন্দু. কুল. সেখানে যাতে সবাই ওকে? ঠিক আছে. আহ. শুধু কি ঘটেছে? সত্যিই এখন. কারো সম্পর্কে প্রাণনাশ অনুমান. ওকে আমরা ঢোকা চলুন একটু পাগল হয় যা চেষ্টা করে,. আমি হ্যাশ টেবিল চাই. আমি তারা সত্যিই শীতল আছেন মনে. অবশিষ্ট প্রয়াস, খুব শান্ত. তাই কেউ একটি চেষ্টা হল কি মনে করে? আপনি ওভার চলে উচিত এটি সংক্ষিপ্তভাবে বক্তৃতায়? আপনি কিভাবে এটি কাজ করে এর ধরনের মনে পড়ে? শ্রোতা: আমি শুধু অল্প সময়ের করছি আমরা এটি উপর যেতে হয়নি যে. বক্তা 1: আমরা এটি উপর যেতে পারি না. ঠিক আছে, আমরা সত্যিই যেতে চলুন এটা এখন ওভার আমরা কী বলছে তা. শ্রোতা: যে একটি আহরণ গাছ জন্য. বক্তা 1: হ্যাঁ. এটি একটি আহরণ গাছ আছে. জট্টিল. তাই এখানে লক্ষ্য করা এক জিনিস যে আমরা স্বতন্ত্র অক্ষর এ খুঁজছেন এখানে, ডান? সুতরাং আমাদের হ্যাশ ফাংশন সঙ্গে আগে, আমরা সামগ্রিকভাবে শব্দের এ খুঁজছেন সেটা, এবং এখন আমরা আরো খুঁজছেন অক্ষর এ, ডান? তাই আমরা এখানে এবং মেন্ডেল উপর ম্যাক্সওয়েল আছে. তাই মূলত একটি try-- একটি উপায় ভাবতে এই সম্পর্কে যে প্রত্যেক স্তরের এখানে বর্ণের একটি অ্যারে. তাই এই আপনার রুট নোড অধিকার, এইখানে? এই সব অক্ষর আছে প্রত্যেক শব্দ শুরুর জন্য বর্ণমালা. এবং কি আপনি কাজ করতে চান হয় বলে, ঠিক আছে, আমরা কিছু এম শব্দ আছে. আমরা ম্যাক্সওয়েল জন্য তাকান যাচ্ছে, তাই করছি আমরা একটি সম্পূর্ণ করার এম আর এম পয়েন্ট যান অন্যান্য একটি অ্যারে যেখানে প্রতি যতদিন সেখানে শব্দ, একটি আছে একটি শব্দ দ্বিতীয় চিঠি হিসাবে, যতদিন একটি শব্দ যে আছে হিসাবে দ্বিতীয় চিঠি হিসাবে বি আছে, এটি একটি পয়েন্টার থাকবে কিছু পরের অ্যারের যাচ্ছে. সম্ভবত একটি নেই শব্দ যে এমপি কিছু, এই মধ্যে P অবস্থানে তাই অ্যারে, এটি শুধু শূন্য হবে. এটা কোন শব্দ নেই, ঠিক আছে, বলতে হবে যে এম ওকে, একটা পি দ্বারা অনুসরণ করেনি? সুতরাং আমরা এটা, প্রতিটি চিন্তা এই ছোট জিনিস এক আসলে এই এক জেড মাধ্যমে একটি থেকে বড় অ্যারে সুতরাং জিনিস এক কি হতে পারে যে করে দেখুন একটি অপূর্ণতা ধরনের? শ্রোতা: মেমরি অনেক. বক্তা 1: এটা ঠিক আছে, মেমরি একটি টন আছে? এখানে এই ব্লক প্রত্যেকটি এক 26 শূণ্যস্থান, 26 উপাদান অ্যারে উল্লেখ করে. তাই চেষ্টা স্পেস ভারী অবিশ্বাস্যভাবে পেতে. কিন্তু তারা খুব দ্রুত. তাই অবিশ্বাস্যভাবে দ্রুত কিন্তু সত্যিই স্থান অদক্ষ. কাইন্ড অফ চিন্তা করা আছে যা এক আউট আপনি চান. এই, আপনার pset জন্য সত্যিই শীতল হয় কিন্তু তারা মেমরি অনেক সময় লাগতে না, তাই আপনি বন্ধ ট্রেড. হাঁ? শ্রোতা: এটা সম্ভব হতে চান তারপর করে দেখুন সেট আপ এবং যাও আপনি একবার আপনি need-- যে এটি তথ্য যে অর্থে করা হবে যদি আমি জানি না. আমি পরিত্রাণ ছিল সব শূন্য অক্ষর, কিন্তু তারপর আপনি সূচী them-- করতে সক্ষম হবে না বক্তা 1: আপনি এখনও তাদের প্রয়োজন. শ্রোতা: - একই ভাবে প্রতিটি সময়. বক্তা 1: হ্যাঁ. আপনি যাক শূন্য অক্ষর প্রয়োজন সেখানে একটি শব্দ আছে না যদি আপনি জানেন. আপনি চান কিছু আছে বেন হয়নি? ঠিক আছে. ঠিক আছে, তাই আমরা চলুন আরো কিছুক্ষন যেতে পিছনে প্রযুক্তিগত বিস্তারিত মধ্যে একটি চেষ্টা এবং একটি উদাহরণ দিয়ে কাজ. ঠিক আছে, তাই এই একই জিনিস. একটি লিঙ্ক তালিকায় আমাদের মূল যেহেতু ? ধরনের র আমি চাই শব্দ কি - ব্লক নির্মাণের মত একটি নোড ছিল. ব্যবহার করে দেখুন, আমরা একটি নোড আছে কিন্তু এটা ভিন্নভাবে সংজ্ঞায়িত করে. তাই আমরা কিছু bool আছে একটি শব্দ কিনা আসলে প্রতিনিধিত্ব করে এই অবস্থানে বিদ্যমান, এবং তারপর আমরা, এখানে বরং বা কিছু অ্যারে আছে এই একটি একটি পয়েন্টার 27 অক্ষরের অ্যারে. আর এই এই, এই ক্ষেত্রে, হয় 27-- আমি আপনি সব মত নিশ্চিত নই,, অপেক্ষা করুন বর্ণমালার 26 অক্ষর আছে. কেন আমরা 27 আছে? সুতরাং তার উপর নির্ভর করে আপনি এই বাস্তবায়ন উপায়, এই একটি pset থেকে যে apostrophes জন্য অনুমোদিত. সুতরাং যে কেন অতিরিক্ত এক. এছাড়াও আপনি কিছু করতে হবে মামলা নাল টারমিনেটর এক হিসাবে অন্তর্ভুক্ত করা হয় এটা হতে অনুমোদিত যে অক্ষর, এবং যে তারা করতে না পরীক্ষা কিভাবে এটি শব্দের শেষে যদি দেখতে. আপনি আগ্রহী হলে, পরীক্ষা করুন Study.cs50 উপর কেভিন এর ভিডিও, পাশাপাশি উইকিপিডিয়া আছে হিসাবে সেখানে কিছু ভাল সম্পদ. কিন্তু আমরা শুধু ধরনের মাধ্যমে যেতে চলুন আপনি ব্যবহার করে দেখুন মাধ্যমে কাজ করতে পারে কিভাবে আপনি এক দেওয়া করছি. সুতরাং আমরা এখানে যে একটি সুপার সহজ একটি আছে তাদের মধ্যে শব্দ "ব্যাট" এবং "জুম" আছে. এবং আমরা এখানে দেখতে হিসাবে, এখানে এই সামান্য স্থান আমাদের bool প্রতিনিধিত্ব করে হ্যাঁ, এই একটি শব্দ হল, বলছেন. এবং তারপর এই আমাদের হয়েছে অক্ষরের অ্যারে, ডান? সুতরাং আমরা মধ্য দিয়ে যেতে যাচ্ছি এই চেষ্টা মধ্যে "ব্যাট" ফাইন্ডিং. সুতরাং, ডান শীর্ষে শুরু? এবং আমরা বো যে অনুরূপ জানি দ্বিতীয় সূচক, দ্বিতীয় উপাদান এই অ্যারের মধ্যে, a ও b কারণ. তাই প্রায় দ্বিতীয় এক. এবং এটা ঠিক আছে,, মধ্যে যে শীতল অনুসরণ বলেছেন পরবর্তী অ্যারে, আমরা মনে রাখতে হলে কারণ, এটি এর মধ্যে যে প্রতিটি নয় আসলে উপাদান রয়েছে. এই অ্যারে প্রত্যেকটি এক ডান, একটি পয়েন্টার রয়েছে? এটা করতে একটি গুরুত্বপূর্ণ পার্থক্য আছে. আমি এই চেষ্টা করো be-- যাচ্ছে জানি প্রথমবার পেতে সত্যিই কঠিন, তাই এই এমনকি যদি দ্বিতীয় বা তৃতীয়বার এবং এটা কোন ধরনের এখনও কঠিন ভান এর, আপনি ঘড়ি যেতে হলে আমি প্রতিজ্ঞা সংক্ষিপ্ত আবার আগামীকাল, এটি সম্ভবত আরো অনেক জানার করব. এটা হজম করতে অনেক সময় লাগে. আমি এখনও মাঝে মাঝে am মত, অপেক্ষা, করে দেখুন কি? আমি কিভাবে এটি ব্যবহার করব? সুতরাং আমরা এই ক্ষেত্রে b আছে, যা আমাদের দ্বিতীয় সূচক. যদি আমরা ছিল, বলে, গ বা ঘ বা অন্য কোন চিঠি, আমরা সূচক যাও যে ফিরে ম্যাপ প্রয়োজন আমাদের অ্যারের যে যে অনুরূপ. সুতরাং আমরা rchar মত নিতে হবে এবং শুধু আমরা একটি 25 থেকে 0 সেটিকে ম্যাপ বন্ধ বিয়োগ. ভাল সকলে কিভাবে আমরা আমাদের অক্ষর মানচিত্র? ঠিক আছে. তাই আমরা দ্বিতীয় এক এবং আমরা যেতে দেখতে, হ্যাঁ, এটা শূন্য থেকে নয়. আমরা এই পরবর্তী অ্যারের উপর স্থানান্তর করতে পারেন. তাই আমরা এখানে এই পরবর্তী অ্যারের উপর যান. এবং আমরা এখন, ঠিক আছে, বলে আমরা একটি এইখানে কিনা দেখতে হবে. একটি শূন্য বা এটা আছে আসলে অগ্রসর? সুতরাং একটি আসলে চলে আসে এই অ্যারের মধ্যে ফরোয়ার্ড. এবং আমরা ঠিক আছে, T আমাদের শেষ চিঠি হয়, বলতে. সুতরাং আমরা সূচিতে টন যান. এবং তারপর আমরা অগ্রসর কারণ অন্য একটি আছে. আর এই এক, হ্যাঁ, মূলত বলছেন যে এটি একটি শব্দ আছে বলছেন যে এখানে আপনি এই অনুসরণ করে যে পথ, আপনি আগত আছে একটি শব্দ এ, আমরা জানি যা "ব্যাট." হয় হ্যাঁ? শ্রোতা: যে আছে এটা প্রমিত Is তারপর ইনডেক্স 0 এবং হিসাবে 1 এ কেমন আছে অথবা শেষে আছে? বক্তা 1: নং আমরা ফিরে যদি তাই আমাদের এখানে ঘোষণাপত্র, এটি একটি bool আছে, তাই এটি আপনার নোডের মধ্যে নিজস্ব উপাদান. সুতরাং অ্যারের অংশ নয়. কুল. আমরা আমাদের শব্দ সমাপ্ত হবে এবং যখন আমরা আছেন এই অ্যারে এ, আমরা কি চাই এই একটি শব্দ জন্য একটি চেক করতে হয়. এবং এই ক্ষেত্রে, এটা হ্যা ফিরে আসবে. সুতরাং যে নোট উপর, আমরা যে "চিড়িয়াখানা" জানি - "চিড়িয়াখানা" একটি শব্দ যে মানুষ হিসাবে আমরা, জানি ডান? কিন্তু এখানে হবে চেষ্টা করছে কোন, এটা না বলে. এবং এটা বলতে হবে আমরা কারণ এখানে একটি শব্দ হিসাবে এটি মনোনীত করেন নি. এমনকি আমরা তর্ক করতে পারেন, যদিও এই অ্যারের মাধ্যমে, এই দেখুন, না, বলতে হবে চিড়িয়াখানা আপনার ব্যবহৃত অভিধানে পাওয়া নয় আমরা না আছে কারণ যেমন এটি মনোনীত. তাই এক ভাবে যে সব কাজ করতে ওহ, দুঃখিত, এই এক. তাই এই ক্ষেত্রে, "চিড়িয়াখানা" নয় একটি শব্দ, কিন্তু আমাদের চেষ্টা হয়. কিন্তু এই এক, আমরা তা চাই বলে "স্নান," কি শব্দ পরিচয় করিয়ে আমরা দিয়ে বি, এ, টি অনুসরণ করা হয়. আমরা এই অ্যারের মধ্যে আছেন, এবং আমরা বর্ণ জন্য অনুসন্ধান যান. এই ক্ষেত্রে, যখন আমরা জ এ পয়েন্টার তাকান, এটা ঠিক আছে, শূন্য প্রতি নির্দেশ করে? এটা স্পষ্টভাবে যদি না তাই অন্য অ্যারে প্রতি নির্দেশ, আপনি অনুমান সমস্ত পয়েন্টার যে এই অ্যারের মধ্যে নাল প্রতি নির্দেশ করা হয়. তাই এই ক্ষেত্রে, বর্ণ নির্দেশ করা হয় আমরা কিছুই করতে পারবো না তাই নাল, তাই এটি ফিরে আসবে মিথ্যা, "স্নান" এখানে নয়. তাই এখন আমরা আসলে আছেন মাধ্যমে যেতে হবে কিভাবে আমরা আসলে বলতে হবে যে "চিড়িয়াখানা" আমাদের চেষ্টা হয়. কিভাবে আমরা আমাদের চেষ্টা মধ্যে "চিড়িয়াখানা" সন্নিবেশ না? আমরা দিয়ে শুরু যে একই ভাবে তাই আমাদের লিঙ্ক তালিকা, আমরা root- এ শুরু. সন্দেহ, এ যখন শুরু এই জিনিস রুট. এবং আমরা, ঠিক আছে, z বলবো. z এই ​​মধ্যে বিদ্যমান, এবং এটা আছে. সুতরাং আপনি থেকে সরানোর করছি আপনার পরের অ্যারে, ঠিক আছে? এবং তারপর পরবর্তী এক, আমরা ওকে, ণ বিদ্যমান, বলতে? এটা আছে. এই আবার. আর তাই আমাদের পরবর্তী এক, আমরা, বলেন করেছি ঠিক আছে, "চিড়িয়াখানা" ইতিমধ্যে এখানে বিদ্যমান. আমরা সব করতে প্রয়োজন এই সমান সেট করা হয় সত্য, সেখানে একটি শব্দ আছে. আপনি সবকিছু অনুসরণ করে যদি যে বিন্দু আগে পর্যন্ত, এটা, একটি শব্দ, তাই শুধু যেমন এটা সেট সমান. হ্যাঁ? শ্রোতা: আমি তখন যে আছে "BA" একটি শব্দ এছাড়াও যে মানে? বক্তা 1: নং তাই এই ক্ষেত্রে, "BA" আমরা পেতে চাই এখানে, আমরা, এটা একটি শব্দ বলতে হবে এবং এটা এখনও কোন হতে হবে. ঠিক আছে? Mmhmm? শ্রোতা: আপনি একবার সুতরাং এটি একটি শব্দ এবং আপনি এটি তারপর, হ্যাঁ বলার মি যেতে থাকে হবে? বক্তা 1: সুতরাং এই কি আছে with-- আপনি এই লোড করছি. আপনি "চিড়িয়াখানা" একটি শব্দ বলতে. আপনি check-- যেতে যখন ভালো, আপনি বলতে চান বলে, "চিড়িয়াখানা" এই অভিধানে বিদ্যমান? আপনি শুধুমাত্র ", চিড়িয়াখানা" জন্য অনুসন্ধান করতে যাচ্ছেন এবং তারপর এটি একটি শব্দ কিনা দেখতে পরীক্ষা. আপনি কখনও সরাতে চলুন যে না কারণ মি মাধ্যমে কি আপনি যা খুঁজছেন. সুতরাং আমরা আসলে চেয়েছিলেন এই চেষ্টা মধ্যে "স্নান" যোগ, আমরা একই জিনিস করে হবে আমরা সঙ্গে করেনি "চিড়িয়াখানা," যখন আমরা দেখতে চাই ব্যতীত এবং চেষ্টা জ পেতে, এটি বিদ্যমান নয়. চেষ্টা হিসেবে তাই আপনি যদি এই মনে করতে পারেন একটি লিঙ্ক তালিকায় একটি নতুন নোড যোগ, তাই আমরা অন্য যোগ করতে হবে তাই মত এই অ্যারে এক,. এবং তারপর আমরা শুধু জ সেট করা হয় আমরা কি এই ইশারা এই অ্যারের উপাদান. এবং তারপর কি আমরা এখানে কাজ করতে চায়? সত্য এটা সমান যুক্ত করো কারণ এটি একটি শব্দ. কুল. আমি জানি. অবশিষ্ট প্রয়াস না অধিকাংশ উত্তেজনাপূর্ণ. আমার বিশ্বাস, আমি জানি. তাই এক জিনিস চেষ্টা করে দিয়ে উপলব্ধি করা, আমি তারা খুব দক্ষ হন, বলেন. সুতরাং আমরা তারা দেখা করেছেন স্থান একটি টন পর্যন্ত গ্রহণ করা. তারা বিভ্রান্তিকর ধরনের করছি. তাই কেন আমরা কখনো এইসব ব্যবহার করেন? তারা কারণ আমরা এইসব ব্যবহার অবিশ্বাস্যভাবে দক্ষ. আপনি কি কখনও খুঁজছেন সুতরাং একটি শব্দ, আপনি শুধুমাত্র হয় শব্দ দৈর্ঘ্য দ্বারা bounded. সুতরাং যদি আপনি একটি খুঁজছেন দৈর্ঘ্য পাঁচটি হল যে শব্দ, আপনি শুধুমাত্র কখনও করতে আছে চলুন ঠিক আছে, সবচেয়ে পাঁচটি তুলনা এ না? সুতরাং এটি মূলত একটি ধ্রুবক তোলে. সন্নিবেশ এবং লুকআপ ভালো লেগেছে মূলত ধ্রুবক সময় আছে. আপনি কি কখনও পেতে পারেন যদি তাই ধ্রুব সময়ের মধ্যে কিছু, যে এটি পায় হিসাবে হিসাবে ভাল. আপনি চেয়ে ভালো পাবেন না এই জিনিস জন্য ধ্রুবক সময়. সুতরাং যে এক চেষ্টা করে বিপুল pluses. কিন্তু এটি স্থান অনেক হয়. সুতরাং আপনি যে ধরনের সিদ্ধান্ত আছে আপনি কি আরো গুরুত্বপূর্ণ. এবং আজ এর কম্পিউটারে, স্থান করে দেখুন লাগতে পারে যে হয়তো প্রভাবিত করে না আপনি যে অনেক, কিন্তু হয়তো আপনি কিছু সঙ্গে লেনদেন করছেন যে, পর্যন্ত, অনেক বেশী জিনিষ আছে এবং একটা চেষ্টা মাত্র যুক্তিসঙ্গত নয়. হ্যাঁ? শ্রোতা: অপেক্ষা করুন, যাতে আপনি 26 আছে প্রতি একক এক অক্ষর? বক্তা 1: Mmhmm. হ্যাঁ, আপনি 26 আছে. আপনি কিছু তারপর শব্দ মার্কার এবং হল আছে আপনি প্রতি এক 26 পয়েন্টার আছে. তারা point-- করছি শ্রোতা: এবং প্রতি 26, তারা একে 26 আছে? বক্তা 1: হ্যাঁ. আপনি পারেন হিসাবে এবং যে, কেন এটি বেশ দ্রুত বিস্তৃতি, দেখতে. ঠিক আছে. সুতরাং আমরা গাছ মধ্যে পেতে যাচ্ছেন, যা আমি চাই আরও সহজ হয় মনে এবং সম্ভবত করবে না একটা চমৎকার সামান্য সাময়িক উপশম হতে সেখানে চেষ্টা থেকে. তাই আশা করছি আপনি অধিকাংশ আগে একটি গাছ দেখা যায়. বেশ পছন্দ নেই বাইরে বেশী, যা আমি কেউ যদি জানেন না সম্প্রতি বিদেশে গিয়েছিলাম. আমি আপেল এই সপ্তাহান্তে অবচয় গিয়েছিলাম, এবং ভগবন্ ওহ, এটা ছিল সুন্দর. আমি পাতার জানেন না যে বেশ হত. তাই এই শুধু একটি গাছ, ডান? এটা শুধু কিছু নোড, এবং এটা অন্যান্য নোড একটি গুচ্ছ স্থানটিকে. আপনি এখানে দেখুন, এই হল একটি আবর্তক থিম ধরনের. নোড নোড প্রতি নির্দেশ ধরনের হয় অনেক ডাটা স্ট্রাকচার সারাংশ. এটা ঠিক যে আমরা কিভাবে উপর নির্ভর করে তাদের একে অপরের দিকে নির্দেশ আছে এবং কিভাবে আমরা তর্ক তাদের মাধ্যমে এবং কিভাবে আমরা নির্ধারণ করে যে জিনিস সন্নিবেশ তাদের বিভিন্ন বৈশিষ্ট্য. তাই শুধু কিছু পরিভাষা, যা আমি আগে ব্যবহার করেছি. তাই রুট খুব উপরের যা কিছু হয়. আমরা সবসময় শুরু যেখানে এটি. এছাড়াও আপনি মাথা হিসাবে মনে করতে পারেন. কিন্তু গাছ জন্য, আমরা ঝোঁক রুট হিসাবে এটি পড়ুন. নীচে এখানে এ কিছু খুব, খুব নীচে এ বিবেচনা পাতার হয়. সুতরাং এটি সঙ্গে বরাবর যায় পুরো গাছ জিনিস, ডান? পাতার আপনার গাছ কোণগুলি হয়. এবং তারপর আমরা একটি দম্পতি আছে শর্তাবলী সম্পর্ক নোড সম্বন্ধেই একে অপরকে. সুতরাং আমরা, অভিভাবক আছে শিশু, এবং ভাইবোন. তাই এই ক্ষেত্রে, 3 হয় 5, 6, এবং 7 এর ঊর্ধ্বতন. তাই ঊর্ধ্বতন যা কিছু হয় আপনি আছেন যাই হোক না কেন উপরে এক ধাপ তাই শুধু, উল্লেখ একটি পরিবার গাছ মত. আশা করছি, এই সব একটু হয় বিট চেষ্টা করে চেয়ে আরও বেশি ধারণাসম্পন্ন. সহোদর আছে যে কোনো আছেন সঠিক একই পিতা বা মাতা,? তারা এখানে একই স্তরে করছি. এবং তারপর আমি, ছিল বলছে, শিশুদের ঠিক হয় নীচের এক ধাপ যাহা হয় প্রশ্নে নোড, ঠিক আছে? কুল. সুতরাং একটি বাইনারি ট্রি. কেউ এক একটি অনুমান বিপত্তি পারি বাইনারি ট্রি বৈশিষ্ট্য? শ্রোতা: সর্বোচ্চ দুই পাতার. বক্তা 1: রাইট. সুতরাং দুই পাতার সবের্াচ্চ. সুতরাং আগে এই এক, আমরা এই এক ছিল যে, তিনটি ছিল, কিন্তু একটি বাইনারি ট্রির আপনি দুটি একটি সবের্াচ্চ আছে অভিভাবক প্রতি শিশু, ডান? অন্য নেই আকর্ষণীয় বৈশিষ্ট. যে কেউ যে জানেন না? বাইনারি ট্রি. সুতরাং একটি বাইনারি ট্রি সবকিছু থাকবে the-- উপর এই এক সাজানো নয় কিন্তু একটি সাজানো বাইনারি গাছ, ডানদিকে সবকিছু , পিতা বা মাতা তার চেয়ে অনেক বেশী এবং বাম সবকিছু ঊর্ধ্বতন কম. এবং যে একটি ব্যঙ্গ হয়েছে প্রশ্ন করার আগে, তাই ভাল জানা. সুতরাং আমরা এই সংজ্ঞায়িত পথ, আবার, আমরা অন্য একটি নোড আছে. এই কি অনুরূপ দেখায়? দোকর শ্রোতা: লিঙ্ক তালিকা বক্তা 1: একটি ডবল লিঙ্ক তালিকা, ডান? তাই আমরা এই প্রতিস্থাপন করে পূর্ববর্তী এবং পরবর্তী সঙ্গে, এই একটি দোকর লিঙ্ক তালিকা হবে. কিন্তু এই ক্ষেত্রে, আমরা আসলে বাম এবং ডান এবং যে এটি আছে. অন্যথা, এটি ঠিক একই. আমরা এখনও উপাদান আছে আপনি, খুঁজছেন এবং আপনি মাত্র দুই পয়েন্টার আছে যাই হোক না কেন যাচ্ছে এর পরের. হ্যাঁ, তাই বাইনারি অনুসন্ধান বৃক্ষ. আমরা উপর, সবকিছু বিজ্ঞপ্তি এখানে ডান বৃহত্তর than-- হয় অবিলম্বে বা সবকিছু এখানে ডান , সবকিছু তার চেয়ে অনেক বেশী এখানে কম. তাই আমরা অনুসন্ধান করতে হলে, এটা বাইনারি অনুসন্ধান খুব ঘনিষ্ঠ হওয়া উচিত এখানে, ডান? পরিবর্তে খুঁজছেন ছাড়া অর্ধেক অ্যারের এ, আমরা শুধু হয় বাম এ খুঁজছেন পার্শ্ব বা ট্রি ডানদিকে. এটা একটু সহজ পায় সুতরাং, আমি মনে করি. আপনার রুট শূন্য হলে তাই, সম্ভবত এটা শুধু মিথ্যা. এটা আছে এবং যদি, সম্ভবত এটা সত্যি. এটা কম হয়, আমরা বাম অনুসন্ধান. এটা তার চেয়ে অনেক বেশী থাকে, আমরা সঠিক অনুসন্ধান. এটা ঠিক বাইনারি অনুসন্ধান মত শুধু একটি ভিন্ন তথ্য গঠন যে আমরা ব্যবহার করছি. পরিবর্তে একটি অ্যারের, এটি শুধু একটি বাইনারি ট্রি এর. ঠিক আছে, stacks. এবং এছাড়াও, এটা আমরা ভালো দেখায় সময় সামান্য বিট থাকতে পারে. আমরা না, আমি যেতে খুশি এই কোন উপর আবার. ঠিক আছে, তাই stacks. কেউ কি মনে করে stacks-- একটি স্ট্যাক কোন বৈশিষ্ট্য? ঠিক আছে, আমাদের অধিকাংশ তাই, আমি মনে করি, ডাইনিং এ খেতে halls-- আমরা চাই না হতে পারে হিসাবে হিসাবে অনেক. কিন্তু সম্ভবত, আপনি একটি স্ট্যাকের মনে করতে পারেন আক্ষরিক শুধু ট্রে একটি স্ট্যাক হিসাবে বা জিনিষ একটি স্ট্যাক. এবং কি জরুরী বুঝতে এটি যে হয় চরিত্রগত এবং কিছু আমরা এটা by-- কল যে LIFO হয়. যে কেউ যে ঘোরা কি জানেন না? Mmhmm? শ্রোতা: প্রথম, শেষ বার. বক্তা 1: রাইট, প্রথম, আউট শেষ. আমরা জানি সুতরাং, যদি আমরা কিছু stacking করছি আপ, সহজে জিনিস off-- দখল এবং হয়ত শুধুমাত্র জিনিস আমরা দখল করতে পারেন আমাদের স্ট্যাকের বড় enough-- যদি বন্ধ যে উপরে উপাদান. তাই যাই হোক না কেন আরোপ করা হয়েছিল আমরা এখানে দেখতে হিসাবে last--, যাই হোক না কেন push করা হয় বেশীরভাগ recently-- হয় প্রথম হতে যাচ্ছে আমরা যাত্তয়া যে জিনিস, ঠিক আছে? তাই আমরা এখানে থাকতে হয় অন্য typedef struct. এই সত্যিই শুধু একটি পছন্দ হয় তথ্য কাঠামো অবশ্যই বিপর্যস্ত, তাই আপনাকে বলছি এ অধ অনেক আছে. আমি জানি. তাই এখনও অন্য struct. কাঠামো জন্য ইয়ে. এবং এই ক্ষেত্রে, এটা কিছু পয়েন্টার কিছু ক্ষমতা রয়েছে এমন একটি অ্যারে থেকে. তাই এই আমাদের স্ট্যাকের প্রতিনিধিত্ব করে এখানে, আমাদের প্রকৃত অ্যারের মত যে আমাদের উপাদান ধারণ করে. এবং তারপর এখানে আমরা কিছু মাপ আছে. এবং সাধারণত, রেখে দিতে চান আপনার স্ট্যাকের হয় কিভাবে বড় ট্র্যাক এটি অনুমোদন করতে যাচ্ছে কি কারণ আপনি মাপ জানেন যদি হয় করতে, এটা আপনি বলতে পারবেন, ঠিক আছে, আমি ক্ষমতা এ থাকি? আমি আরো কিছু যোগ করতে পারি? এবং এটি আপনি বলে যেখানে আপনার স্ট্যাকের উপরে তাই হয় আপনি কি জানেন আসলে খুলে যাবে. এবং যে আসলে যাচ্ছে এখানে আরো একটু পরিষ্কার করা. সুতরাং ধাক্কা, এক জিনিস জন্য, আপনি যদি ধাক্কা বাস্তবায়ন কখনো ছিল, আমি শুধু বলছে হয়েছিল, আপনার স্ট্যাকের অধিকার, সীমিত আকার আছে? আমাদের অ্যারের কিছু ক্ষমতা ছিল. এটি একটি অ্যারে. এটি একটি নির্দিষ্ট মাপ, তাই আমরা প্রয়োজন আমরা আরো নির্বাণ করছি না যে নিশ্চিত করুন আমরা আর আমাদের অ্যারের মধ্যে আসলে জন্য স্থান আছে. সুতরাং যখন আপনি একটি ধাক্কা তৈরি করছি ফাংশন, আপনি ওকে, বলে হয় কি প্রথম জিনিস, আমি আমার স্ট্যাকের মধ্যে স্থান উপস্থিত আছে? আমি না থাকলে, দুঃখিত কারণ আমি আপনার উপাদান সংরক্ষণ করতে পারে না. আমি তা চান, তাহলে আপনি সংরক্ষণ করতে ইচ্ছুক এটি স্ট্যাক উপরের ডান? আর এই আমরা আছে কেন আমাদের মাপ ট্র্যাক রাখতে. আমরা আমাদের মাপ ট্র্যাক রাখতে না চান তাহলে, আমরা এটা করা যেখানে জানি না. আমরা কিভাবে অনেক কিছু জানি না ইতিমধ্যে আমাদের অ্যারের মধ্যে হয়. সম্ভবত ভালো লেগেছে উপায় আছে যে হয়ত আপনি এটা করতে পারে. আপনি যাও যাও নাল সবকিছু আরম্ভ পারে এবং তারপর সর্বশেষ শূন্য জন্য পরীক্ষা, কিন্তু একটি অনেক সহজ জিনিস ঠিক হয় ঠিক আছে, মাপ ট্র্যাক রাখা, বলার. আমি জানি লেগেছে আমি চারটি উপাদান আছে আমার অ্যারের মধ্যে, পরের জিনিস তাই আমরা উপর করা যে, আমরা আছেন সূচক 4 এ সঞ্চয় করতে যাচ্ছে. এবং তারপর, অবশ্যই, এই যে মানে আপনি সফলভাবে কিছু ধাক্কা করেছি আপনার স্ট্যাকের মধ্যে, আপনি আকার বৃদ্ধি করতে চান আপনি জানেন, যাতে আপনি তাই যেখানে আপনি আরও কিছু ধাক্কা পারেন যে. আমরা পপ চেষ্টা করছেন যদি তাই স্ট্যাকের কিছু বন্ধ, প্রথম জিনিস হতে পারে কি আমরা জন্য পরীক্ষা করতে চান যে? আপনি নিতে চেষ্টা করছেন আপনার স্ট্যাকের কিছু বন্ধ. আপনি নিশ্চিত আছে কি আপনার স্ট্যাকের মধ্যে কিছু? না. তাই আমরা পরীক্ষা করতে চাইবেন? শ্রোতা: [শ্রবণাতীত]. বক্তা 1: আকার জন্য পরীক্ষা? ফাইলের আকার. তাই আমরা কিনা দেখতে পরীক্ষা করতে চান আমাদের মাপ ঠিক আছে, হয় 0 থেকে? এবং যদি তা হয়, তাহলে আমরা লাঘব করতে চান 0 দ্বারা আমাদের আকার এবং যে ফিরে. কেন? প্রথম এক আমরা ছিল ঠেলাঠেলি, আমরা এটি push করা আকার এবং তারপর আপডেট সাইজ সম্মুখের. এই ক্ষেত্রে, আমরা মাপ decrementing করছি এবং তারপর এটি অবচয়, এটা নির্মোচন আমাদের অ্যারে থেকে. কেন আমরা তা করতে পারে? তাই আমি আমার স্ট্যাকের উপর এক জিনিস আছে, যে সময়ে আমার সাইজ কি হবে? 1. এবং যেখানে উপাদান 1 সংরক্ষণ করা হয়? কি সূচিতে? শ্রোতা: 0. বক্তা 1: 0. তাই এই ক্ষেত্রে, আমরা সবসময় sure-- করা প্রয়োজন পরিবর্তে ফেরত আকার বিয়োগ 1, আমরা কারণ আমাদের উপাদান জানি যে 1 কম এ সংরক্ষণ করা যাচ্ছে আমাদের আকার যাই হোক না কেন, এই শুধু এটি যত্ন নেয়. এটি একটি সামান্য আরো মার্জিত উপায়. এবং আমরা শুধু আমাদের হ্রাস তারপর আকার ও আয়তন ফিরে. Mmhmm? শ্রোতা: আমি, শুধু সাধারণ অনুমান কেন এই ডাটা স্ট্রাকচার would উপকারী হতে? বক্তা 1: এটা আপনার কনটেক্সট উপর নির্ভর করে. তত্ত্ব কিছু সুতরাং, আপনি ওকে with-- কাজ করছি, একটি উপকারী এক থাকলে আমাকে দেখতে দিন যে বাইরে বেশী উপকারী সি এস এর. Stacks সঙ্গে, যে কোন সময় আপনি প্রয়োজন কিছু ট্র্যাক রাখা যে অতি সম্প্রতি যোগ করা হলে হয় আপনি একটি স্ট্যাক ব্যবহার করতে চান চলুন. এবং আমি একটি ভালো মনে করতে পারেন না এখনই যে উদাহরণ. কিন্তু যখনই সাম্প্রতিকতম জিনিস, আপনার কাছে সবচেয়ে গুরুত্বপূর্ণ যে যখন একটি স্ট্যাক এর দরকারী হতে যাচ্ছে. আমি যদি মনে করার চেষ্টা করছি এই জন্য ভালো আছে. আমি পরের একটি ভাল উদাহরণ মনে হলে 20 মিনিট, আমি স্পষ্টভাবে বলতে হবে. কিন্তু সামগ্রিক, কিছু আছে যদি, ভালো আমি সবচেয়ে, যেখানে সাম্প্রতিকতম বলেন যে, সবচেয়ে গুরুত্বপূর্ণ হল যেখানে একটি স্ট্যাক করে আসে. সারির যেহেতু বিপরীত ধরনের. আর সব সামান্য কুকুর. ঠিক আছে, এই মহান নয়? আমি উচিত মনে করেন শুধু একটি শশ ভিডিও আছে ডান মাঝখানে আপনাকে বলছি জন্য অধ্যায় এই একটি তীব্র অধ্যায় কারণ. সুতরাং একটি কিউ. মূলত একটি সারিতে একটি লাইন ভালো হয়. আপনাকে বলছি আমি এই দৈনন্দিন নিশ্চিত ব্যবহার করছি, শুধু আমাদের ডাইনিং হল এ চাই. সুতরাং আমরা এ যেতে হবে এবং আমি আছি, আমাদের ট্রে পেতে নিশ্চিত করুন যে আপনি লাইনে অপেক্ষা করতে হবে ধুমধাড়াক্কা বা আপনার খাদ্য পেতে. এখানে পার্থক্য তাই এই FIFO হয়. সুতরাং LIFO প্রথম, শেষ ছিল আউট, FIFO প্রথম প্রথম আউট, হয়. তাই এই আপনি করা যেখানে যাহা হয় প্রথম উপর আপনার সবচেয়ে গুরুত্বপূর্ণ. আপনি অপেক্ষায় ছিলেন সুতরাং যদি একটি লাইন মধ্যে আপনি পারেন আপনি গিয়েছিলাম যদি কল্পনা নতুন আইফোন পেতে যান এবং এটি একটি স্ট্যাক ছিল যেখানে লাইনে শেষ ব্যক্তি, প্রথম পেয়েছি মানুষ একে অপরকে হত্যা করবে. সুতরাং FIFO, আমরা সব খুব পরিচিত হন এখানে বাস্তব জগতে সঙ্গে, এবং এটি সমস্ত আসলে কি আছে ধরনের এই পুরো লাইন recreating এবং কাঠামো কিউইং. স্ট্যাকের যেহেতু সুতরাং, আমরা ধাক্কা এবং পপ আছে. একটি কিউ দিয়ে, আমরা আছে সারিবদ্ধ এবং dequeue. সুতরাং সারিবদ্ধ মূলত মানে ফিরে সম্মুখের রাখা, এবং dequeue অর্থ গ্রহণ সামনে থেকে বন্ধ. সুতরাং আমাদের তথ্য গঠন হয় একটি সামান্য বিট আরো জটিল. আমরা ট্র্যাক রাখা একটি দ্বিতীয় জিনিস আছে. এই, মাথা ছাড়া তাই ঠিক আছে, ঠিক একটি স্ট্যাক হয়? এটি একটি স্ট্যাক হিসাবে একই স্ট্রাকচার. বিভিন্ন শুধু এখন আমরা হয় আপনি কি মনে করেন, যা এই মাথা, আছে ট্র্যাক রাখতে যাচ্ছে? শ্রোতা: প্রথম এক. বক্তা 1: রাইট, আমরা রাখা যে প্রথম জিনিস. আমাদের কিউ প্রধান. কেহ লাইনে প্রথম. ঠিক আছে, তাই আমরা সারিবদ্ধ করতে হলে. আবার, কোনো সঙ্গে ডাটা স্ট্রাকচার, আমরা একটি অ্যারের সাথে আচরণ করছেন সাল থেকে, আমরা স্থান আছে কিনা তা পরীক্ষা করতে হবে. এই আমাকে বলছে মত ধরনের হয় আপনাকে বলছি, আপনি একটি ফাইল খুলতে হলে, আপনি নাল জন্য চেক প্রয়োজন. এই stacks কোনো সঙ্গে এবং queues, আপনি প্রয়োজন আমরা কারণ স্থান আছে কিনা দেখতে একটি নির্দিষ্ট মাপ অ্যারের সঙ্গে আচরণ, আমরা সব 5 পর্যন্ত এখানে 0, 1 দেখুন. সুতরাং আমরা যে ক্ষেত্রে কি কি চেক করা হয় আমরা এখনও স্থান আছে কিনা দেখতে. আমাদের মাপ ক্ষমতার চেয়ে কম হয়? যদি তাই হয়, আমরা এ এটি সংরক্ষণ করতে হবে আমরা আমাদের মাপ আপডেট এবং পুচ্ছ. সুতরাং পুচ্ছ এই ক্ষেত্রে কি হতে পারে? এটা স্পষ্টভাবে লেখা না. কিভাবে আমরা তা সংরক্ষণ করবে? পুচ্ছ কি হবে? তাই আসুন এই উদাহরণ দিয়ে হেটে যাক. তাই এই মাপ 6 শ্রেণীবিন্যাস, ডান? এবং আমরা ডান এখন, আমাদের আকার 5 হল আছে. আমরা এটি স্থাপন করা হলে, এটি হচ্ছে ডান পঞ্চম সূচক, ঢোকা? সুতরাং লেঙ্গুড় এ সঞ্চয়. পুচ্ছ লিখতে আরেকটি উপায় would শুধু আকার সূচিতে আমাদের অ্যারের, ডান হতে? এই আকার 5 হল. পরবর্তী জিনিস 5 ঢোকা যাচ্ছে. কুল? ঠিক আছে. এটা সামান্য আরো জটিল পায় আমরা মাথা সঙ্গে তালগোল পাকানো শুরু হলে. হ্যাঁ? শ্রোতা: যে মানে যে আমরা একটি অ্যারের ঘোষণা করেছেন যে পাঁচটি উপাদান দীর্ঘ ছিল এবং তারপর আমরা এটি সম্মুখের যোগ করছি? বক্তা 1: নং তাই এই ক্ষেত্রে, এই একটি স্ট্যাক হয়. এই ঘোষণা করা হবে আকার 6 এর একটি অ্যারে হিসাবে. এবং এই ক্ষেত্রে, আমরা শুধু এক স্থান বাম আছে. ঠিক আছে, তাই এক জিনিস এই হল কেস, আমাদের মাথা 0 এ যদি, তারপর আমরা শুধু আকারের এটি যোগ করতে পারেন. কিন্তু এটা একটু trickier পায় আসলে কারণ, তারা একটি স্লাইড নেই এই জন্য, তাই আমি যাচ্ছি এটা না কারণ এক আঁকা বেশ যে সহজ আপনি একবার কিছু পরিত্রাণ শুরু. একটি স্ট্যাক সঙ্গে যেহেতু তাই আপনি শুধুমাত্র কখনও আছে আকার কি চিন্তা করতে যখন আপনি কিছু যোগ করছি, একটি সারিতে সঙ্গে আপনি কি করতে প্রয়োজন আপনার মাথার জন্য দায়ী করা হয়েছে কি, কারণ সারির সম্পর্কে একটি শীতল জিনিস যে আপনি ক্ষমতা এ না হন তাহলে, আপনি আসলে এটি প্রায় মোড়ানো করতে পারেন. ঠিক আছে, তাই এক জিনিস উহু, এই নৃশংস খড়ি হয়. বিবেচনা করার একটা জিনিষ কেস. আমরা মাত্র পাঁচ চেষ্টা করবো. ঠিক আছে, তাই আমরা চলুন মাথা এইখানে বলে. এই 0, 1, 2, 3, 4 হয়. মাথা আছে, এবং তাদের মধ্যে কিছু আছে দয়া করে. এবং আমরা সঠিক, কিছু যোগ করতে চান? সুতরাং জিনিস আমরা প্রয়োজন যে জানি মাথা সবসময় হয় এই ভাবে সরাতে যাচ্ছে এবং তারপর লুপ পিছনে প্রায়, ঠিক আছে? তাই এই কিউ অধিকার, স্থান আছে? এটা খুব প্রারম্ভে স্থান আছে এই বিপরীত ধরনের. তাই আমরা যা করতে হবে তা আমরা হয় পুচ্ছ নিরূপণ করা প্রয়োজন. আপনি যদি জানেন যে আপনার মাথা সরানো করেনি, লেঙ্গুড় এ শুধু আপনার অ্যারের হয় আকার সূচক. কিন্তু বাস্তবে, আপনি একটি সারিতে ব্যবহার করছেন, আপনার মাথা সম্ভবত আপডেট করা হচ্ছে. তাই আপনাকে যা করতে হবে তা হল আসলে পুচ্ছ নিরূপণ. তাই আমরা যা এই সূত্র এখানে, আমি আপনাকে দেওয়া যাচ্ছি যা বলছি আমার মনে হয়, এবং তারপর আমরা এটা সম্পর্কে কথা বলতে পারবেন. তাই এই ক্ষমতা হয়. তাই এই আসলে হবে আপনি এটা করতে একটি উপায় দিতে. কারণ এই ক্ষেত্রে, কি? আমাদের মাথা 1 এ আমাদের মাপ 4 হয়. আমরা 5 দ্বারা যে mod, তাহলে আমরা 0 পেতে, যা যেখানে আমরা এটা ইনপুট উচিত নয়. আমি তখন পরবর্তী ক্ষেত্রে, আমরা এই কাজ করতে হলে, আমরা ঠিক আছে, এর কিছু dequeue যাক, বলতে. আমরা এই dequeue. আমরা ডান, এই উপাদান খুঁজে নিতে? আর এখন আমাদের মাথা, এখানে প্রতি নির্দেশ করা হয় এবং আমরা আরেকটি বিষয় যোগ করতে চাই. এটি মুলত হয় ফিরে আমাদের লাইনের, ডান? Queues অ্যারে চারপাশে মোড়ানো পারেন. যে প্রধান পার্থক্য এক. Stacks, আপনি এই কাজ করতে পারবেন না. সারির সঙ্গে, আপনি যা করতে পারেন যে বিষয়ে সব কারণ আপনি জানেন কি যে হয় অতি সম্প্রতি যোগ করা হয়েছিল. সবকিছু যোগ করা যাচ্ছে যেহেতু এই leftward দিক, এই ক্ষেত্রে, এবং তারপর চারপাশে মোড়ানো, আপনি যা করতে পারেন নতুন উপাদান নির্বাণ অবিরত অ্যারের সামনে এ এটা সত্যিই না, কারণ আর অ্যারের সামনে. আপনি শুরুতে মনে করতে পারেন আপনার মাথা আসলে যেখানে হিসেবে অ্যারে. তাই এই সূত্র কিভাবে হল আপনি আপনার লেঙ্গুড় নিরূপণ. যে অর্থে তোলে কি? ঠিক আছে. ঠিক আছে, dequeue, এবং তারপর আপনাকে বলছি 10 মিনিট আছে আমার কোনো ব্যাখ্যা প্রশ্ন জিজ্ঞাসা আমি জানি এটা উন্মত্তের ন্যায়, কারণ আপনি চান. একই পথে তাই ঠিক আছে আপনাকে বলছি খেয়াল করে আমি জানি না কিন্তু সি এস সব নিদর্শন সম্পর্কে. থিংস অনেক সুন্দর হয় শুধু ক্ষুদ্র tweaks সঙ্গে, একই. এখানে তাই একই জিনিস. আমরা যদি আমরা আসলে দেখতে চেক প্রয়োজন অধিকার আমাদের কিউ 'র মধ্যে কিছু আছে? ঠিক আছে, 0 তুলনায় আমাদের আকার বড় হয়, বলুন? কুল. আমরা কি তাহলে, আমরা আমাদের মাথা, যা সরানো আমি শুধু এখানে প্রদর্শিত হয়. আমরা আরো এক হতে আমাদের মাথা আপডেট. এবং তারপর আমরা হ্রাস আমাদের আকার এবং উপাদান ফিরে. আরো অনেক কিছু কংক্রিট নেই study.cs50.net উপর কোড, এবং আমি অত্যন্ত যাচ্ছে সুপারিশ আপনি যদি সময় যদি এটি মাধ্যমে, এমনকি এটি শুধু একটি ছদ্ম-কোড যদি. আর আপনাকে বলছি মাধ্যমে কথা বলতে চান তাহলে আমাকে এক এক সাথে, আমাকে দয়া করে যে জানি. আমি খুশি হবেন. ডেটা স্ট্রাকচার, যদি আপনি সি এস 124 নিতে, আপনি পাবেন ডাটা স্ট্রাকচার খুব পেতে জানি যে মজা এবং এই একটা আরম্ভ মাত্র. তাই আমি এটা কঠিন জানি. এটা ঠিক আছে. আমরা সংগ্রাম. আমি এখনও কাজ. তাই এটি সম্পর্কে খুব বেশী চিন্তা করবেন না. কিন্তু যে মূলত আপনার হয় ডাটা স্ট্রাকচার মধ্যে অবশ্যই বিপর্যস্ত. আমি এটা অনেক জানেন. কিছু আছে যে আমরা আবার যেতে চাই? আমরা মাধ্যমে কথা বলতে চান কিছু লাগবে? হ্যাঁ? শ্রোতা: যে উদাহরণস্বরূপ, তাই নতুন পুচ্ছ যে ওভার 0 এ হল? বক্তা 1: হ্যাঁ. শ্রোতা: ঠিক আছে. আমি তখন, মাধ্যমে চালু আপনি 1 প্লাস 4 or-- আছে চাই বক্তা 1: সুতরাং আপনি, বলছে ছিল আমরা যেতে চাই যখন আবার এই কাজ? শ্রোতা: হ্যাঁ. আপনি out-- figuring হয়েছে কিনা তাই যেখানে আছেন আপনি যে এ থেকে লেঙ্গুড় হিসাবী? বক্তা 1: সুতরাং পুচ্ছ আমি এই পরিবর্তিত in-- ছিল. সুতরাং এখানে এই উদাহরণে, এই ছিল আমরা ওকে, এ করছি অ্যারের? সুতরাং আমরা 1, 2, 3, এবং 4 মধ্যে জিনিষ আছে. সুতরাং আমরা আমাদের মাথা এ 1 সমান আছে এই বিন্দু, এবং আমাদের মাপ 4 সমান এই সময়ে, ডান? আপনি যে সব ক্ষেত্রে একমত? সুতরাং আমরা মাথা প্লাস আকার, যা আমাদের 5 দেয়, এবং তারপর আমরা 5 দ্বারা mod. আমরা 0 আমাদেরকে বলে যে, যা 0 পেতে যেখানে আমরা স্থান আছে যেখানে আমাদের লেঙ্গুড়, হয়. শ্রোতা: একটি টুপি কি? বক্তা 1: ক্ষমতা. দুঃখিত. সুতরাং যে আপনার অ্যারের আকার. হ্যাঁ? শ্রোতা: [শ্রবণাতীত] আগে আমরা উপাদান ফিরে? বক্তা 1: সুতরাং আমরা সরাতে মাথা বা মুহূর্ত ফিরে? আমরা এক সরানো সুতরাং, যদি মাপ হ্রাস? উপর রাখা. আমি স্পষ্টভাবে অন্য ভুলে গেছি. কিছু মনে করবেন না. অন্য সূত্র নেই. হ্যাঁ, আপনি ফিরে চায় মাথা এবং তারপর এটি পিছান. শ্রোতা: ঠিক আছে, কারণ এই সময়ে বিন্দু, মাথা, 0 এ ছিল এবং তারপর আপনি ফিরে আসতে চান সূচক 0 এবং তারপর মাথা 1 না? বক্তা 1: রাইট. আমি অন্য আছে মনে হয় ভালো এর সূত্র ধরনের. আমি যত উপরে আমার মাথা তা নেই আমি আপনাকে ভুল এক দিতে চাই না. কিন্তু আমি তা করতে পুরোপুরি বৈধ মনে করি বলে, ঠিক আছে, এই উপাদান সংরক্ষণ যাই হোক না কেন মাথা এর উপাদান হ্রাস হচ্ছে ÑÑ আপনার আকার, আপনার মাথার উপর সরানো, এবং রিটার্ন যাই হোক না কেন যে উপাদান. এটা পুরোপুরি বৈধ. ঠিক আছে. এই না হয় ভালো আমি বোধ most-- মত আপনি পারছেন না এখানে খুঁজে হেটে যাচ্ছে ভালো, হ্যাঁ, আমি চেষ্টা করে জানি. আমি এটা সব পেয়েছিলাম. এটা ঠিক আছে. আমি প্রতিজ্ঞা করছি. কিন্তু ডাটা স্ট্রাকচার কিছু আছে এটা অনেক সময় ব্যবহার করতে লাগে. Hardest সম্ভবত এক জিনিষ, আমি অবশ্যই মনে করি. সুতরাং এটা নিশ্চিতভাবে লাগে পুনরাবৃত্তি এবং at-- আমি খুঁজছি সত্যিই লিঙ্ক তালিকা জানেন না আমি তাদের সাথে পর্যন্ত খুব বেশী করেনি পর্যন্ত, একই ভাবে আমি না সত্যিই পয়েন্টার বুঝতে আমি করিয়েছি পর্যন্ত দুই জন্য এটা শেখানোর বছর এবং এটা দিয়ে আমার নিজের psets না. এটা পুনরাবৃত্তি এবং অনেক সময় লাগে. এবং অবশেষে, এটা কোন ধরনের ক্লিক করবে. কিন্তু ইতিমধ্যে, আপনি জুলুম করে যদি একটি উচ্চ পর্যায়ের বোঝার কি এই তাদের অনুকূল, কি এবং যা কি cons-- আমরা সত্যিই জোর দেয়, বিশেষ ইন্ট্রো কোর্সে. ভালো লেগেছে, কেন আমরা ব্যবহার করবে একটি একটি অ্যারের উপর চেষ্টা? ভালো লেগেছে, positives কি আছে এবং যারা প্রতিটি নেগেটিভ? এবং বিনিময় প্রথা বুঝতে এই কাঠামোর প্রতিটি মধ্যে এখনই অনেক কিছু গুরুত্বপূর্ণ কি হয়. পাগল এক হতে পারে যে প্রশ্ন বা দুই ধাক্কা বাস্তবায়ন করার অনুরোধ জানানো যাচ্ছে বা পপ বা সারিবদ্ধ এবং dequeue বাস্তবায়ন. কিন্তু অধিকাংশ অংশ জন্য, যে হচ্ছে উচ্চতর স্তর বোঝার এবং আরো একটি স্বজ্ঞামূলক উপলব্ধিকে হয় এর আসলে বেশী গুরুত্বপূর্ণ এটা বাস্তবায়ন করতে সক্ষম হচ্ছে. এটা সত্যিই ভয়ঙ্কর হতে চাই আপনি সব যদি আউট যান এবং একটি চেষ্টা বাস্তবায়ন যেতে পারে, কিন্তু আমরা এটা অগত্যা না বুঝতে এখনই সবচেয়ে যুক্তিসঙ্গত জিনিস. কিন্তু আপনি যদি চান, আপনার pset মধ্যে যা করতে পারেন যাও, এবং তারপর আপনি অনুশীলন পাবেন, এবং তারপর হয়তো আপনি পাবেন সত্যিই এটা বুঝতে. হ্যাঁ? শ্রোতা: ওগুলো ঠিক আছে, যা তাই আমরা pset মধ্যে ব্যবহার করা বোঝানো? আমি তাদের একজন ব্যবহার করা প্রয়োজন? বক্তা 1: হ্যাঁ. সুতরাং আপনি আপনার পছন্দমত আছে. আমি, আমরা করতে পারেন এই ক্ষেত্রে অনুমান pset একটি সামান্য বিট সম্পর্কে কথা আমি এই মাধ্যমে দৌড়ে কারণ. আপনার pset মধ্যে সুতরাং, আপনি আপনার আছে চেষ্টা করে অথবা হ্যাশ টেবিল পছন্দমত. কিছু মানুষ চেষ্টা করবে এবং, পুষ্প ফিল্টার ব্যবহার কিন্তু যারা টেকনিক্যালি সঠিক নয়. কারণ তাদের সম্ভাব্য প্রকৃতি, তারা কখনো কখনো মিথ্যা positives দিতে. তারা যদিও, মধ্যে শীতল বর্ণন করছি. অত্যন্ত খুঁজছেন সুপারিশ তাদের এ অন্তত. কিন্তু আপনি আপনার পছন্দ আছে একটি হ্যাশ টেবিল এবং একটি চেষ্টা মধ্যে. এবং যে যেখানে হতে যাচ্ছে আপনি আপনার অভিধানে লোড. এবং যদি আপনি পছন্দ করতে হবে আপনার হ্যাশ ফাংশন, আপনি কিভাবে অনেক চয়ন করতে হবে আপনি buckets, এবং এটি পরিবর্তিত হতে হবে. আপনি আরো buckets আছে যদি ভালো লেগেছে, হয়ত এটা দ্রুত রান করব. কিন্তু হয়তো আপনি একটি নষ্ট করছি স্থান অনেক যদিও যে ভাবে,. আপনি এটা চিন্তা করতে হবে. Mmhmm? শ্রোতা: আপনি যে আগে বলেন আমরা অন্যান্য হ্যাশ ফাংশন ব্যবহার করতে পারেন, আমরা করতে হবে না যে একটি হ্যাশ ফাংশন তৈরি? বক্তা 1: ঠিক আছে, হ্যাঁ. তাই আক্ষরিক আপনার হ্যাশ ফাংশন জন্য, গুগল মত "হ্যাশ ফাংশন" এবং কিছু শান্ত বেশী জন্য, দেখুন. আপনি নির্মাণ করতে আশা করা যায় না আপনার নিজস্ব হ্যাশ ফাংশন. মানুষ ব্যয় তাদের এই জিনিস উপর নিবন্ধ. সুতরাং আপনার নিজস্ব নির্মাণ সম্পর্কে চিন্তা করবেন না. দিয়ে শুরু করতে এক অনলাইন খুঁজুন. তাদের কিছু আপনাকে করতে হবে অল্প নিপূণভাবে নিশ্চিত রিটার্ন ধরনের মেলে এবং যে কোন বস্তু, শুরুতে তাই, আমি কিছু ব্যবহার করার পরামর্শ দিচ্ছি সত্যিই সহজ যে হয়তো শুধু প্রথম চিঠি hashes. এবং তারপর আপনি যে কাজ আছে একবার, একটি শীতল হ্যাশ ফাংশন একত্রিত. Mmhmm? শ্রোতা: একটি চেষ্টা করে হতে বা দক্ষ কিন্তু, ভালো করতে শুধু কঠিন বক্তা 1: সুতরাং করে দেখুন, আমি মনে করি, বাস্তবায়ন intuitively কঠিন কিন্তু খুব দ্রুত. তবে, আরো জায়গা নিয়ে নেয়. আবার, আপনি মধ্যে যারা উভয় অপটিমাইজ করতে পারেন বিভিন্ন উপায়ে এবং উপায় আছে চাচ্ছি শ্রোতা: কিভাবে আমরা এই উপর graded হয়? এটা matter-- না বক্তা 1: সুতরাং আপনি স্বাভাবিক ভাবে graded করছি. আপনি নকশা উপর graded করা চলুন. যেটা আপনি কি ভাবে আপনি চান এটা হতে পারে হিসাবে এটি হিসাবে মার্জিত নিশ্চিত করুন এবং হিসাবে দক্ষ হিসাবে এটি হতে পারে. কিন্তু আপনি ব্যবহার করে দেখুন অথবা হ্যাশ পছন্দ হলে টেবিল, যতদিন এটি কাজ হিসাবে, আমরা যে সঙ্গে খুশি. আপনি কিছু ব্যবহার করে এবং যে hashes প্রথম চিঠি, যে সূক্ষ্ম, মত হয়তো নকশা-ভিত্তিক মত. আমরা পৌঁছনো করছি এই সেমিস্টারে মধ্যে বিন্দু আমি জানি না আপনি যদি আপনি যদি noticed-- বলছি pset বাংলাদেশের অল্প প্রত্যাখ্যান কারণ নকশা এবং যে কোন বস্তু এর, যে পুরোপুরি সূক্ষ্ম. এটি একটি বিন্দু থেকে শুরু হচ্ছে যেখানে আপনার প্রোগ্রাম আরো জটিল হয়ে উঠেছে. আরো জায়গা আছে আপনার উপর উন্নত করতে পারেন. সুতরাং এটা পুরোপুরি স্বাভাবিক. এটা আপনি যে নয় আপনার pset উপর খারাপ করছেন. এটা ঠিক যে আমরা এখন আপনার উপর কঠিন হচ্ছে করছি এর. তাই সবাই এটা বোধ এর. আমি শুধু সব আপনার psets graded. আমি সবাই এটা বোধ হয় জানেন. সুতরাং যে বিষয়ে চিন্তিত হতে হবে না. এবং আপনার সম্পর্কে কোনো প্রশ্ন থাকে পূর্বে psets অথবা আপনি উন্নত করতে পারেন উপায়ে, আমি চেষ্টা এবং নির্দিষ্ট মন্তব্য জায়গা, কিন্তু কখনও কখনও এটা দেরি হয়ে গেছে এবং আমি ক্লান্ত. অন্য কোন বিষয় আছে সম্পর্কে ডাটা স্ট্রাকচার? আমি আপনাকে বলছি সত্যিই না নিশ্চিত নই আর তাদের সম্পর্কে বলতে চাই, আছে কিন্তু যদি, আমি খুশি কিছু সেইসাথে তাদের ঝালিয়ে বক্তৃতা এই অতীত থেকে সপ্তাহে বা গত সপ্তাহে. আমি তাই, গত সপ্তাহে সব এখানে ছিল জানেন আমরা কিছু পর্যালোচনা ওভার এড়ানো হতে পারে বক্তৃতা থেকে. আমি উত্তর দিতে পারেন অন্য কোন প্রশ্ন? ঠিক আছে, ঠিক আছে. ওয়েল, আপনাকে বলছি তাড়াতাড়ি 15 মিনিট নামা. আমি, এই অন্তত আধা-সহায়ক ছিল আশা করি এবং আমি পরের সপ্তাহে আপনাকে বলছি দেখতে হবে, অথবা বৃহস্পতিবার অফিসে ঘন্টা. খাবার জন্য সেখানে অনুরোধ আছেন পরবর্তী সপ্তাহের জন্য, এটা জিনিস? আমি আজ মিছরি ভুলে গেছি কারণ. আর আমি গত মিছরি আনা সপ্তাহে, কিন্তু এটা, কলম্বাস দিবস ছিল তাই ছয় জনের মত ছিল যারা নিজেদের মিছরি চার ব্যাগ ছিল. আমি Starbursts আনতে পারে আপনার মত আবার যদি. Starbursts? ঠিক আছে, ভাল শোনায়. , একটি মহান দিন বলছি আছে.