>> JASON HIRSCHHORN: সবাই স্বাগতম অনুচ্ছেদ সেভেন থেকে.
আমরা অবশ্যই সপ্তাহে সাত হয়.
এবং এই আসন্ন বৃহস্পতিবার হ্যালোইন তাই আমি কোথায় হয়
একটি কুমড়া মত পরিহিত আপ.
আমি উপর এবং বক্র স্থান রাখতে না পারে আমি কেন আমার জুতা, তাই যে
শুধু মোজা পরা.
আমি আরো অধীন কিছু পরা না করছি এটা যদি এই হয়, তাই আমি এটা বন্ধ না নিতে পারে
আপনি বিক্ষেপী.
আমি যে জন্য অগ্রিম ক্ষমাপ্রার্থী.
আপনি কল্পনা করতে হবে না কি ঘটছে.
আমি মুষ্টিযোদ্ধাদের পরা করছি.
তাই এটি সব ভাল.
>> আমি আছি কেন সম্পর্কে একটি আর গল্প আছে একটি কুমড়া হিসাবে পরিহিত, কিন্তু আমি যাচ্ছি
পরে এই বিভাগের জন্য যে সংরক্ষণ আমি শুরু করতে চাই কারণ.
আমরা উত্তেজনাপূর্ণ জিনিস অনেক আছে এই সপ্তাহ ধরে যেতে.
এদের অধিকাংশই এই সরাসরি সম্পর্কযুক্ত সপ্তাহে এর সমস্যা সেট, ভুল বানান.
আমরা লিঙ্ক ধরে যাওয়ার করা চলুন তালিকা এবং হ্যাশ টেবিল
সমগ্র বিভাগের জন্য.
আমি প্রতি সপ্তাহে একটি তালিকা এই তালিকা পেশ করা আপনার সাথে আপনাকে সাহায্য করার জন্য সম্পদ
এই কোর্সের উপর উপাদান.
ক্ষতি বা যদি যদি কিছু খুঁজছি আরো তথ্য, এক পরীক্ষা
এই সম্পদের.
>> আবার, pset6 বানান ভুল নয়, এই সপ্তাহের pset.
এবং এটা আপনি উত্সাহ দেয়, এবং আমি অন্য ব্যবহারের জন্য, আপনি উত্সাহিত
সম্পদ বিশেষভাবে এই pset জন্য.
বিশেষ করে, তিন আমি করেছি পর্দায় আপ তালিকাভুক্ত -
আমরা সঙ্গে পরিচিত ছিলাম যা GDB, এবং এখন কিছুদিনের জন্য ব্যবহার করা হয়
এই সপ্তাহে খুব সহায়ক হতে যাচ্ছে.
তাই আমি এখানে যে ন্যস্ত.
কিন্তু যখনই আপনি সি সঙ্গে কাজ করছি, আপনি সবসময় GDB করতে ব্যবহার করা উচিত
আপনার প্রোগ্রাম ডিবাগ.
এই সপ্তাহে এছাড়াও Valgrind.
কেহ Valgrind কি জানেন না?
>> AUDIENCE: এটা মেমরি তথ্য ফাঁসের জন্য পরীক্ষা?
>> JASON HIRSCHHORN: Valgrind মেমরি তথ্য ফাঁসের জন্য চেক.
সুতরাং যদি আপনি malloc কিছু আপনার প্রোগ্রাম, আপনি মেমরি জন্য বলছি.
আপনার প্রোগ্রাম শেষে, আপনার আছে আপনি করেছি সবকিছু বিনামূল্যে লিখতে
ফিরে মেমরি দিতে malloced.
আপনি শেষে বিনামূল্যে লিখতে ও না থাকে আপনার প্রোগ্রাম একটি উপসংহার আসে,
সবকিছু স্বয়ংক্রিয়ভাবে হবে মুক্ত করা.
আর ছোট প্রোগ্রামের জন্য, এটা যে বড় না একটি চুক্তি.
কিন্তু আপনি একটি আর চলমান লেখা করছি প্রস্থান করার জন্য এই নয় যে প্রোগ্রাম,
অগত্যা, মিনিট বা কয়েক ইন সেকেন্ডের দম্পতি তারপর মেমরি তথ্য ফাঁসের
একটি বিশাল চুক্তি হতে পারে.
>> সুতরাং pset6 জন্য, প্রত্যাশা যে হয় আপনার সাথে শূন্য মেমরি ডিস্ক্রিপ্টরের লিক সম্বন্ধে সূচিত হবে
আপনার প্রোগ্রাম.
মেমরি তথ্য ফাঁসের জন্য চেক করার জন্য, চালানোর Valgrind এবং এটা আপনি কিছু চমৎকার দেব
আউটপুট আপনি কিনা জানি লেট অথবা সবকিছু মুক্ত ছিল না.
আমরা পরে এটা দিয়ে অনুশীলন করব আজ, আশা.
>> অবশেষে, পরিবর্তন কমান্ড.
আপনি এটা অনুরূপ কিছু ব্যবহার উঁকি টুল Pset5 মধ্যে.
আপনি ভিতরে সন্ধান মঞ্জুরিপ্রাপ্ত.
আপনি প্রতি খুব,, পরিবর্তন করা সমস্যা বৈশিষ্ট সেট.
কিন্তু আপনাকে অনুমতি দুটি ফাইল তুলনা করুন.
আপনি বিটম্যাপ ফাইল এবং তুলনা করতে পারে তথ্য স্টাফ সমাধান হেডার এবং
Pset5 আপনার সমাধান হলে আপনি এটি ব্যবহার করতে বেছে নেওয়া হয়েছে.
পার্থক্য খুঁজুন আপনাকে অনুমতি দেবে পাশাপাশি, তা করতে.
আপনার জন্য সঠিক উত্তর তুলনা করতে পারেন আপনার উত্তর সেট এই সপ্তাহের সমস্যা
এবং দেখুন যদি এটি আপ লাইন বা দেখুন ত্রুটি যেখানে.
>> সুতরাং যারা তিন ভাল টুলস যে আপনি এই সপ্তাহের জন্য ব্যবহার, এবং উচিত
স্পষ্টভাবে আপনার প্রোগ্রাম পরীক্ষা এই তিনটি সরঞ্জামগুলির সাথে
এটা ইন চালু করার আগে
আবার, আমি প্রতি সপ্তাহে উল্লেখ করেছি যে, উভয় - আপনি কি আমার জন্য কোন মতামত থাকে তাহলে
ইতিবাচক ও গঠনমূলক -
ওয়েবসাইট আগাইয়া বিনামূল্যে হতে এই স্লাইড নীচে
এবং সেখানে ইনপুট এটি.
আমি সত্যিই কোনো প্রশংসা এবং সব মতামত.
এবং যদি আপনি আমার নির্দিষ্ট কাজ দিতে হলে যে আমি আমি নই যে উন্নতি করতে বা পারেন
আপনার কাছে আমার চাই যে ভাল করছে আমি মন যে নিতে এবং, অবিরত
সত্যিই শুনতে হার্ড চেষ্টা করুন আপনার মতামত.
আমি আমি করতে যাচ্ছি অঙ্গীকার করতে পারবেন না সবকিছু, যদিও, একটি পরা চাই
প্রতি সপ্তাহে পরিচ্ছদ কুমড়া.
>> সুতরাং আমরা বাল্ক এর ব্যয় করতে যাচ্ছি অধ্যায়, আমি হিসাবে উল্লেখ করেছে, যে বিষয়ে কথা বলছি
লিঙ্ক তালিকা এবং হ্যাশ টেবিল, যা সরাসরি প্রযোজ্য হবে
সমস্যা এই সপ্তাহ সেট.
লিঙ্ক তালিকা আমরা অপেক্ষাকৃত উপর যাবেন আমরা একটি পরিষ্কার বিট অতিবাহিত করেছি দ্রুত কারণ
সময় বিভাগে তা ধরে যাচ্ছে.
এবং তাই আমরা সোজা মধ্যে পাবেন লিঙ্ক তালিকা জন্য সমস্যা কোডিং.
এবং তারপর শেষে আমরা যে বিষয়ে কথা বলতে পারবেন তারা এই আবেদন কিভাবে টেবিল হ্যাশ এবং
সপ্তাহে এর সমস্যা সেট.
>> আপনি আগে এই কোড দেখা করেছি.
এই একটি struct, এবং এটা নির্ধারণ করা হয় কিছু নতুন একটি নোড বলা হয়.
এবং একটি নোডের ভিতর একটি পূর্ণসংখ্যা আছে এখানে ডান এবং একটি পয়েন্টার আছে
অন্য একটি নোড.
আমরা আগে এই দেখা করেছি.
এই জন্য উত্ক্রান্ত হয়েছে এখন কয়েক সপ্তাহ.
এটা আমরা চলেছি যা পয়েন্টার, সম্মিলন অনুমতি যা, এবং structs, সঙ্গে কাজ
আমাদের দুটি ভিন্ন একত্রিত একটি ডেটা প্রকার মধ্যে জিনিষ.
>> পর্দায় যাওয়া অনেক আছে.
কিন্তু এটা সব তুলনামূলকভাবে হওয়া উচিত আপনার সাথে পরিচিত.
প্রথম লাইন, আমরা একটি নতুন নোডের ঘোষণা.
এবং তারপর যে নতুন নোডের ভিতর, আমি সেট এক যে নোডের মধ্যে পূর্ণসংখ্যা.
আমরা আমি করছি পরের লাইনে দেখুন printf, কমান্ড, কিন্তু আমি আউট grayed করেছি
printf, কমান্ড সত্যিই কারণ গুরুত্বপূর্ণ অংশ এখানে এই লাইন -
new_node.n.
ডট অর্থ কি?
>> AUDIENCE: নোড যান এবং এটি জন্য এন মান মূল্যায়ন.
>> JASON HIRSCHHORN: যে ঠিক অধিকার.
ডট এন অংশ অ্যাক্সেস মানে এই নতুন নোড.
এই পরের লাইন কি করে?
মাইকেল.
>> AUDIENCE: এটা অন্য নোড সৃষ্টি যে নতুন নোডের নির্দেশ করবে.
>> JASON HIRSCHHORN: তাই না হয় একটি নতুন নোড তৈরি.
এটি একটি কি তৈরি করে?
>> AUDIENCE: একটি পয়েন্টার.
>> JASON HIRSCHHORN: একটি নোডের একটি পয়েন্টার, এখানে এই নোডের * দ্বারা নির্দেশিত হিসাবে.
সুতরাং এটি একটি নোডের একটি পয়েন্টার সৃষ্টি.
আর যা নোড তা নির্দেশ করা হয় মাইকেল, কিভাবে?
>> AUDIENCE: নিউ নোড?
>> JASON HIRSCHHORN: নতুন নোড.
আমরা করেছি কারণ এবং এটি সেখানে এর প্রতি নির্দেশ এটা নতুন নোড এর ঠিকানা দেওয়া.
এবং এখন এই লাইনে আমরা দেখতে দুটি ভিন্ন উপায়ে
একই জিনিস প্রকাশ.
এবং আমি বাতলান চেয়েছিলেন কিভাবে এই দুটি জিনিস একই.
প্রথম লাইন, আমরা dereference পয়েন্টার.
সুতরাং আমরা নোড যান.
যে এই তারকা মানে কি.
আমরা পয়েন্টার সাথে আগে দেখা করেছি.
যে নোড যান.
যে বন্ধনীর মধ্যে আছে.
এবং তারপর ডট অপারেটর মাধ্যমে অ্যাক্সেস যে নোড এন উপাদান.
>> সুতরাং যে বাক্য গঠন গ্রহণ এর আমরা অধিকার এখানে এবং এখন দেখেছি
একটি পয়েন্টার সঙ্গে এটি ব্যবহার.
অবশ্যই, এটা যদি ব্যস্ত ধরনের পায় আপনি ঐ বন্ধনীর লেখার -
যে তারকা এবং যে বিন্দু.
এটা একটু ব্যস্ত পায়.
তাই আমরা কিছু অন্বিত চিনি আছে.
আর ঠিক এই লাইন -
ptr_node-> এন.
এটা একই সঠিক জিনিস আছে.
সুতরাং কোড যারা দুই লাইন হয় সমতুল্য এবং করবেন
সঠিক একই জিনিস.
>> কিন্তু আমি আগে যারা বাতলান চেয়েছিলেন আমরা যাতে আপনি বুঝতে কোনও যান
সত্যিই ঠিক এই জিনিস যে dereferencing জন্য ঠিক অন্বিত চিনি
পয়েন্টার এবং তারপর যাচ্ছে যে struct এর এন অংশ.
এই স্লাইড সম্পর্কে কোন প্রশ্ন?
ঠিক আছে.
>> সুতরাং আমরা একটি দম্পতি মাধ্যমে যেতে চলুন আপনি কি করতে পারেন যে অপারেশনের
লিঙ্ক তালিকা.
একটি লিঙ্ক তালিকা, রিকল, একটি সিরিজের হয় একে অপরের দিকে নির্দেশ করে যে নোড.
এবং আমরা সাধারণত একটি পয়েন্টার দিয়ে শুরু বলা মাথা, সাধারণত, যে স্থানটিকে
তালিকায় প্রথম জিনিস.
এখানে প্রথম লাইনে সুতরাং আমরা প্রথম আমাদের মূল এল আছে.
সুতরাং যে জিনিস আপনি মনে করতে পারেন - এই এখানে ডান টেক্সট হিসাবে আপনি মনে করতে পারেন
আমরা সংরক্ষিত করেছি মাত্র পয়েন্টার কোথাও যে পয়েন্ট
প্রথম উপাদান যাও.
এবং এই লিঙ্ক তালিকায় আমরা চার নোড আছে.
প্রতিটি নোডের একটি বড় বাক্স.
বড় ভিতরে বড় বাক্স বক্স পূর্ণসংখ্যা অংশ.
এবং তারপর আমরা একটি পয়েন্টার অংশ আছে.
>> এই বাক্সে আকৃষ্ট হয় না স্কেল কিভাবে বড় কারণ
বাইট মধ্যে একটি পূর্ণসংখ্যা?
কত বড় এখন?
চার.
এবং একটি পয়েন্টার কিভাবে বড় কি?
চার.
সত্যিই তাই, আমরা আঁকতে হলে এই উভয় বাক্সে আকার পরিবর্তন করতে
একই আকারের হবে.
এই ক্ষেত্রে, আমরা সন্নিবেশ করতে চান লিঙ্ক তালিকায় কিছু.
তাই আপনি যদি আমরা ঢোকাতে করছি নিচে এখানে দেখতে পারেন পাঁচ থেকে আমরা মাধ্যমে তর্ক
লিঙ্ক তালিকা, খুঁজে যেখানে পাঁচ থেকে যায়, এবং তারপর এটি সন্নিবেশ করুন.
>> এর যে ভাঙ্গিয়া এবং যাওয়া যাক অল্প আরো ধীরে ধীরে.
আমি বোর্ডের দিকে নির্দেশ করা যাচ্ছে না.
সুতরাং আমরা আমাদের নোড আছে পাঁচটি করে আমরা mallocs মধ্যে তৈরি করেছি.
কেন সবাই হাসতে হয়?
শুধু নিশ্চয়ই মজা.
ঠিক আছে.
সুতরাং আমরা পাঁচটি malloced করেছি.
আমরা এই নোডের তৈরি করেছি অন্য কোথাও.
আমরা যেতে এটি প্রস্তুত আছে.
আমরা সামনে এ শুরু দুই সঙ্গে আমাদের তালিকা.
এবং আমরা প্রবেশ করাতে চান একটি সাজানো ফ্যাশন.
>> তাই আমরা দুটি দেখতে এবং আমরা রাখতে চাই আমরা দেখতে হলে পাঁচ থেকে, আমরা কি করব
আমাদের চেয়ে কম কিছু?
কি?
আমরা এই মধ্যে পাঁচটি প্রবেশ করাতে চান লিঙ্ক তালিকা, এটি সাজানো পালন.
আমরা দুই নম্বর দেখুন.
তাই আমরা কি করব?
মার্কাস?
>> AUDIENCE: পয়েন্টার কল করুন পরবর্তী নোডের.
>> JASON HIRSCHHORN: এবং কেন করবেন আমরা পরের এক যান?
>> AUDIENCE: এটি কারণ তালিকায় পরবর্তী নোডের.
এবং আমরা শুধু তাই অন্যান্য অবস্থান জানেন.
>> JASON HIRSCHHORN: এবং পাঁচটি বড় দুই তুলনায়, বিশেষ করে.
আমরা সাজানো এটা রাখতে চান কারণ.
তাই পাঁচটি দুটি তার চেয়ে অনেক বেশী.
তাই আমরা পরের এক যান.
এবং এখন আমরা চার পৌঁছানোর.
আমরা চার পৌঁছাতে হলে কি হবে?
>> পাঁচটি চার চেয়ে অনেক বেশী.
সুতরাং আমরা বর্তা.
এবং এখন আমরা ছয় করেন.
এবং আমরা ছয় এ কি দেখেন?
হ্যাঁ, কার্লোস?
>> AUDIENCE: ছয় পাঁচটি তার চেয়ে অনেক বেশী.
>> JASON HIRSCHHORN: ছয় হল পাঁচ থেকে তার চেয়ে অনেক বেশী.
আমরা চাই তাই যে যেখানে পাঁচটি সন্নিবেশ.
তবে, মনে রাখবেন যে যদি আমরা শুধু এখানে এক ইশারা আছে -
এই যে আমাদের অতিরিক্ত পয়েন্টার তালিকা মাধ্যমে ঢোঁড়ন.
এবং আমরা ছয় প্রতি নির্দেশ করছি.
আমরা কি ট্র্যাক হারিয়ে ফেলেছি ছয় আগে আসে.
সুতরাং আমরা মধ্যে কিছু সন্নিবেশ চাই এটা মাথায় রেখে এই তালিকা, সাজানো আমরা
সম্ভবত কতগুলি পয়েন্টার প্রয়োজন?
>> AUDIENCE: দুই.
>> JASON HIRSCHORN: দুটি.
এক বর্তমান ট্র্যাক রাখা এক এবং এক ট্র্যাক রাখা
আগের.
এটি কেবলমাত্র একটি একেলা লিঙ্ক তালিকা.
এটি শুধুমাত্র এক দিক যায়.
আমরা একটি দোকর লিঙ্ক তালিকা ছিল, যেখানে সবকিছু জিনিস প্রতি নির্দেশ ছিল
এটা এবং এটা আগে জিনিস, তারপর পরে আমরা যে কি করতে হবে না হবে.
কিন্তু এই ক্ষেত্রে আমরা হারাতে চাই না ক্ষেত্রে আমাদের আগে এসেছিলেন কি ট্র্যাক
আমরা পাঁচটি কোথাও সন্নিবেশ করতে হবে মাঝখানে.
আমরা নয়টি ঢোকাতে হয় বলুন.
যখন ঘটতে পারে কি আমরা আট থেকে পেয়েছিলাম!
>> AUDIENCE: আপনি আছে চাই যে নাল পয়েন্ট পেতে.
পরিবর্তে নাল বিন্দু থাকার আপনার থাকতে চাই একটি উপাদান যোগ এবং তারপর আছে
এটা নয়টি নির্দেশ.
>> JASON HIRSCHORN: যথাযথভাবে.
তাই আমরা আট পেতে.
আমরা তালিকার শেষে পৌঁছানোর কারণ এই নাল প্রতি নির্দেশ করা হয়.
এবং এখন, পরিবর্তে থাকার এটি নির্দেশ নাল আমরা তা আমাদের নতুন নোডের দিকে নির্দেশ আছে.
এবং আমরা এ পয়েন্টার সেট নাল আমাদের নতুন নোড.
কেহ কোন প্রশ্ন আছে ঢোকাতে সম্পর্কে কি?
কি সম্পর্কে আমি যত্ন না হলে সাজানো তালিকা পালন?
>> AUDIENCE: এটি লাগান শুরুতে বা শেষে.
>> JASON HIRSCHORN: এটি লাগান শুরুতে বা শেষে.
কোনটি আমরা কি করা উচিত?
ববি?
কেন শেষ?
>> AUDIENCE: কারণ শুরুতে ইতিমধ্যে পূর্ণ.
>> JASON HIRSCHORN: ঠিক আছে.
শুরুতে ইতিমধ্যেই পূর্ণ.
কে ববি বিরুদ্ধে তর্ক করতে চায়.
মার্কাস.
>> AUDIENCE: আচ্ছা আপনি সম্ভবত চান শুরুতে এটি বিদ্ধ কারণ
আপনি এ এটা করা, অন্যথায় যদি আপনার কাছে আছে চাই শেষ
সম্পূর্ণ তালিকা তর্ক.
>> JASON HIRSCHORN: যথাযথভাবে.
আমরা রানটাইম সম্পর্কে চিন্তা করছি তাই যদি, শেষে ঢোকাতে এর রানটাইম
এন হবে, এই মাপ.
ঢোকাতে বড় হে রানটাইম কি প্রারম্ভে?
কনস্ট্যান্ট সময়.
সুতরাং আপনি পালন যত্নশীল না হলে কিছু ঠিক করতে অনেক ভালো সাজানো
এই তালিকা প্রারম্ভে সন্নিবেশ.
এবং যে ধ্রুবক সময়ের মধ্যে করা সম্ভব.
>> ঠিক আছে.
পরবর্তী অপারেশন খুঁজে, যা অন্যান্য হয় - আমরা সার্চ হিসাবে এই phrased করেছি.
কিন্তু আমরা মাধ্যমে সন্ধান করতে যাচ্ছেন কিছু বস্তুর জন্য লিঙ্ক তালিকা.
আপনি না জন্য কোড দেখা বক্তৃতায় আগে অনুসন্ধান.
কিন্তু আমরা ধরণের শুধু সঙ্গে তা সন্নিবেশ, অথবা অন্তত ঢোকাতে
কিছু সাজানো.
আপনি মাধ্যমে সন্ধান, নোড দ্বারা নোড যাচ্ছে, আপনি যে নম্বর খুঁজতে যতক্ষণ
খুঁজছি.
আপনি পৌঁছাতে তাহলে কি হবে তালিকার শেষে?
আমি নয়টি এবং আমি চাই বলুন তালিকার শেষে পৌঁছানোর.
আমরা কি করব?
>> AUDIENCE: মিথ্যা ফিরে?
>> JASON HIRSCHORN: মিথ্যা ফিরে.
আমরা এটা খুঁজে পাইনি.
আপনি তালিকার শেষে পৌঁছানোর এবং যদি আপনি আছেন সংখ্যা খুঁজে পাইনি
খুঁজছি, এটা সেখানে না.
সম্পর্কে কোন প্রশ্ন খুঁজে?
এই একটি অনুসারে সাজানো তালিকা ছিল, কি হবে আমাদের খঁোজার জন্য আলাদা হতে?
হ্যাঁ.
>> AUDIENCE: এটা প্রথম মান খুঁজতে হবে এক যে তার চেয়ে অনেক বেশী আছে
আপনার জন্য এবং খুঁজছেন করছি তারপর মিথ্যা ফিরে.
>> JASON HIRSCHORN: যথাযথভাবে.
সুতরাং এটি একটি অনুসারে সাজানো তালিকা আছে, আমরা পেতে হলে কি তার চেয়ে অনেক বেশী কিছু যে
আমরা খুঁজছেন, আমরা করার প্রয়োজন হবে না তালিকার শেষে বর্তা.
আমরা যে সময়ে মিথ্যা ফিরে যাবে আমরা সেটা খুঁজে যাচ্ছেন না, কারণ.
প্রশ্ন এখন, আমরা স্বপ্ন করেছি হয় সাজানো লিঙ্ক তালিকা পালন
পাঁচমিশালী তাদের কথা মাথায় রেখে.
তার মানে আপনি আছেন কিছু হতে যাচ্ছে সম্ভবত আমার মনে আছে যাচ্ছে
আপনি যদি কোডিং সমস্যা পাঁচটি সেট যখন পৃথক সঙ্গে একটি হ্যাশ টেবিল চয়ন
chaining পদ্ধতির, যা আমরা পরে সম্পর্কে কথা বলতে পারবেন.
>> কিন্তু এটা তালিকায় রাখা এটা সাধ্যমতো তারপর সাজানো এবং হয়ত আছে সক্ষম হতে
দ্রুত অনুসন্ধান?
অথবা এটা দ্রুত সন্নিবেশ ভাল তারপর ধ্রুব রানটাইম কিছু কিন্তু
অনুসন্ধান আর আছে?
একেবারে ঠিক আছে একটি tradeoff এর আপনি যে আরো উপযুক্ত কি সিদ্ধান্ত পেতে
আপনার নির্দিষ্ট সমস্যার জন্য.
আর অগত্যা এক আছে না একেবারে সঠিক উত্তর.
কিন্তু এটা অবশ্যই পাবেন একটি সিদ্ধান্ত করা, এবং সম্ভবত ভাল রক্ষার জন্য
যে সালে, অর্থাৎ, একটি মন্তব্য বা দুটি কেন আপনি অন্য এক বেছে নেওয়া হয়েছে.
>> অবশেষে, মুছে ফেলা.
আমরা মুছে ফেলার দেখা করেছি.
এটা অনুসন্ধান করার অনুরূপ.
আমরা উপাদান জন্য চেহারা.
আমরা ছয় মোছার চেষ্টা করছেন বলে দিন.
তাই আমরা ঠিক ছয় খুঁজে.
আমরা নিশ্চিত যে আমরা করা আছে যে জিনিস যাই হোক না কেন নির্দেশিত হয়
ছয় - আমরা ধাপে দেখুন নিচে এখানে দুই -
ছয় প্রয়োজন এর প্রতি নির্দেশ যাই হোক না কেন এখন ছয় এড়িয়ে ও পরিবর্তন করা
যাই হোক না কেন ছয় প্রতি নির্দেশ করা হয়.
আমরা কখনও বাকি অনাথ চাই না যে সেট বিস্মরণ দ্বারা আমাদের তালিকা
পূর্ববর্তী পয়েন্টার.
এবং তারপর কখনও কখনও, নির্ভর করে প্রোগ্রাম, তারা ঠিক করব
সম্পূর্ণরূপে এই নোড মুছে দিন.
কোন কোন সময় আপনাকে ফেরত চাইবেন এই নোডের মধ্যে যে এর মূল্য.
সুতরাং যে কাজ মুছে ফেলার কিভাবে.
উপর কোন প্রশ্ন মুছে দিন?
>> AUDIENCE: সুতরাং আপনি মুছে ফেলতে যাচ্ছেন হলে তা, আপনি শুধু ফ্রি ব্যবহার করেন কারণ
সম্ভবতঃ এটি malloced ছিল?
>> JASON HIRSCHORN: আপনি মুক্ত করতে চান তাহলে ঠিক ডান এবং আপনি কিছু যে
এটা malloced.
আমরা এই মূল্য ফেরত চেয়েছিলেন বলুন.
আমরা ফিরে আসতে পারে ছয় এবং তারপর মুক্ত এটা এই নোডের এবং কল বিনামূল্যে.
অথবা আমরা সম্ভবত প্রথম ফ্রী কল চাই এবং তারপর ছয় ফিরে.
>> ঠিক আছে.
সুতরাং আসুন কোডিং অভ্যাস যান যাক.
আমরা তিনটি ফাংশন কোড চলুন.
প্রথম এক insert_node বলা হয়.
তাই আপনি যদি আমি আপনার ইমেল যে কোড আছে, এবং আপনি পরে এই পর্যবেক্ষণ করছেন যদি
আপনি linked.c এ কোড ব্যবহার করতে পারবেন CS50 ওয়েবসাইটে.
কিন্তু linked.c, কিছু আছে ইতিমধ্যে যে কঙ্কাল কোড
আপনার জন্য লেখা হয়েছে.
এবং তারপর কয়েক ফাংশন আছে আপনি লিখুন প্রয়োজন.
>> প্রথম আমরা চলুন insert_node লিখতে.
এবং কি insert_node আছে একটি পূর্ণসংখ্যা টিপে.
এবং যদি আপনি পূর্ণসংখ্যা প্রদান করছি একটি লিঙ্ক তালিকা মধ্যে.
আর বিশেষ করে, আপনার যা প্রয়োজন সাজানো তালিকা রাখা
ক্ষুদ্রতম থেকে বৃহত্তম যাও.
উপরন্তু, আপনি না চান কোনো সদৃশ সন্নিবেশ.
অবশেষে, আপনি insert_node দেখতে পারেন একটি bool ফেরৎ.
তাই আপনি যদি ব্যবহারকারীকে জানাতে অনুমিত করছি সন্নিবেশ ছিল কি না তা
সত্য বা মিথ্যা ফিরে দ্বারা সফল.
এই প্রোগ্রাম শেষে -
এবং এই পর্যায়ের জন্য আপনি প্রয়োজন নেই কিছু freeing চিন্তা করতে.
সুতরাং আপনি করছেন সব একটি পূর্ণসংখ্যা গ্রহণ হয় এবং একটি তালিকা মধ্যে এটি ঢোকাতে.
>> আমি এখন কি আপনি জিজ্ঞাসা করছি না.
আবার, linked.c মধ্যে, যা আপনি আছে সব, কঙ্কাল কোড হয়.
এবং আপনি নিচের দিকে দেখতে পাবেন নমুনা ফাংশন ঘোষণা.
তবে, এটি কোডিং মধ্যে যাওয়া আগে সি, আমি অত্যন্ত যেতে উত্সাহিত
পদক্ষেপের মধ্য দিয়ে আমরা চলেছি প্রতি সপ্তাহে অনুশীলন.
আমরা ইতিমধ্যে মাধ্যমে সর্বস্বান্ত করেছি এই একটা ছবি.
সুতরাং আপনি কিছু বোঝার আছে উচিত কিভাবে এই কাজ করে এর.
কিন্তু আমি লিখতে উত্সাহিত হবে ইন ডাইভিং আগে কিছু pseudocode
এবং আমরা পুনরালোচনা চলুন একটি গ্রুপ হিসাবে pseudocode.
এবং তারপর আপনি লিখিত করেছি একবার আপনার pseudocode, এবং আমরা লিখিত করেছি একবার আমাদের
একটি গ্রুপ হিসাবে pseudocode, আপনি যা করতে পারেন সি এটা কোডিং ঢোকা
>> একটি মাথা আপ, insert_node ফাংশন হিসাবে সম্ভবত এর trickiest হয়
তিন আমরা লিখতে যাচ্ছেন কারণ আমি কিছু অতিরিক্ত সীমাবদ্ধতা যোগ করা
আপনার প্রোগ্রামিং, বিশেষ করে যে আপনার কোন সন্নিবেশ যাচ্ছেন না
সদৃশ এবং যে তালিকা সাজানো থাকা উচিত.
তাই এই একটি অ তুচ্ছ প্রোগ্রাম আপনি কোড যে প্রয়োজন.
এবং কেন আপনি থেকে সাত পাঁচ না মিনিট ঠিক কাজ পেতে
pseudocode এবং অবস্থান.
এবং তারপর আমরা শুরু হবে একটি গ্রুপ হিসাবে যাচ্ছে.
আবার, আপনি ঠিক কোন প্রশ্ন থাকে তাহলে আপনার হাত বাড়াতে এবং আমি প্রায় আসবো.
.
>> আমরা সাধারণত এই না -
অথবা আমি স্পষ্টভাবে আপনি বলতে না মানুষের সঙ্গে কাজ করতে পারেন.
কিন্তু একথাও ঠিক যে, আমি অত্যন্ত উত্সাহিত, যদি আপনার কোন প্রশ্ন থাকে, জিজ্ঞাসা
আপনি পাশে বসা প্রতিবেশী অথবা এমনকি কারো সাথে কাজ
অন্যথায় আপনি চান.
এটি একটি পৃথক হতে হবে তা নয় নীরব কার্যকলাপ.
>> এর কিছু লেখা দিয়ে শুরু করা যাক বোর্ডে pseudocode.
কে আমার প্রথম লাইন দিতে পারে এই প্রোগ্রামের জন্য pseudocode?
এই ফাংশন জন্য, বদলে - insert_node.
Alden?
>> AUDIENCE: সুতরাং আমি কি প্রথম জিনিস ছিল নোড এবং আমি একটি নতুন পয়েন্টার তৈরি
এটি একই প্রতি নির্দেশ সক্রিয়া তালিকা চিহ্ন নির্দেশিত জিনিস.
>> JASON HIRSCHORN: ঠিক আছে.
তাই আপনি যদি একটি নতুন পয়েন্টার তৈরি করছি তালিকায়, না নোডের.
>> AUDIENCE: রাইট.
হ্যাঁ.
>> JASON HIRSCHORN: ঠিক আছে.
এবং তারপর আমরা কি করতে চান?
এর পর কি?
কি নোড সম্পর্কে কি?
আমরা একটি নোড হবে না.
আমরা শুধু একটি মান আছে.
আমরা একটি নোড সন্নিবেশ করতে চান, আমরা কি এমনকি আমরা যা করতে পারেন আগে প্রথম যা করতে হবে
এটি ঢোকাতে সম্পর্কে চিন্তা?
>> AUDIENCE: ওহ, দুঃখিত.
আমরা একটি নোডের জন্য স্থান malloc প্রয়োজন.
>> JASON HIRSCHORN: অসাধারণ.
এর করুক না -
ঠিক আছে.
যে উচ্চ পৌঁছাতে পারেনি.
ঠিক আছে.
আমরা নিচে যেতে যাচ্ছে, এবং তারপর করছি আমরা দুটি কলাম ব্যবহার করছেন.
আমি যে হতে পারে না -
ঠিক আছে.
একটি নতুন নোড তৈরি করুন.
আপনি তালিকা অন্য পয়েন্টার তৈরি করতে পারেন এটি বিদ্যমান হিসাবে অথবা আপনি শুধু তালিকা ব্যবহার করতে পারেন.
আপনি সত্যিই যে কি করতে হবে না.
>> তাই আমরা একটি নতুন নোড তৈরি.
গ্রেট.
আমরা প্রথম কাজ কি.
পরবর্তী কি?
>> AUDIENCE: অপেক্ষা করুন.
আমরা এখন একটি নতুন নোড তৈরি বা উচিত আমরা নিশ্চিত যে অপেক্ষা করতে হবে
নোডের মধ্যে কোন সদৃশ আছে তালিকায় আগে আমরা এটি তৈরি!
>> JASON HIRSCHORN: ভাল প্রশ্ন.
এর পরে, কারণ জন্য যে রাখা যাক আমরা তৈরি করব সময় সংখ্যাগরিষ্ঠ
একটি নতুন নোড.
তাই আমরা এখানে যে যাব.
কিন্তু যে একটি ভাল প্রশ্ন.
আমরা এটি তৈরি এবং আমরা যদি জানতে একটি ডুপ্লিকেট, কি করা উচিত
আমরা ফেরার আগে কি?
>> AUDIENCE: এটা বিনামূল্যে.
>> JASON HIRSCHORN: হ্যাঁ.
সম্ভবত এটি মুক্ত.
ঠিক আছে.
আমরা পরে আমরা কি করব একটি নতুন নোড তৈরি?
অ্যানি?
>> AUDIENCE: আমরা করান নোডের মধ্যে নম্বর?
>> JASON HIRSCHORN: যথাযথভাবে.
আমরা সংখ্যা লাগাতে - আমরা স্থান malloc.
আমি যে ছেড়ে যাচ্ছি সব এক লাইন হিসেবে.
কিন্তু আপনি অধিকার.
আমরা তখন স্থান malloc, এবং আমরা এখনো সদস্য সংখ্যা করা
আমরা এমনকি পয়েন্টার সেট করতে পারেন নাল এটা অংশ.
যে ঠিক ঠিক.
এবং তারপর কি যে পরে সম্পর্কে কি?
আমরা বোর্ডে এই ছবি সৃষ্টি.
তাই আমরা কি করব?
>> AUDIENCE: আমরা তালিকা মধ্য দিয়ে যেতে.
>> JASON HIRSCHORN: তালিকা দিয়ে যান.
ঠিক আছে.
এবং আমরা প্রতিটি নোডের এ জন্য কি পরীক্ষা করবেন.
কার্ট, আমরা কি চেক করবেন প্রতিটি নোডের এ জন্য?
>> AUDIENCE: দেখুন এন মান কিনা যে নোড এন মূল্য তার চেয়ে অনেক বেশী
আমাদের নোড.
>> JASON HIRSCHORN: ঠিক আছে.
আমি যা করতে যাচ্ছি -
ঠিক আছে, হাঁ.
সুতরাং এটি এন এর -
আমি মূল্য বেশী হলে বলতে যাচ্ছি এই নোডের চেয়ে, তাহলে আমরা কি করব?
>> AUDIENCE: ভাল, তারপর আমরা সন্নিবেশ ডান আগে যে জিনিস.
>> JASON HIRSCHORN: ঠিক আছে.
সুতরাং এই থেকে বড় যদি, তারপর আমরা প্রবেশ করাতে চান.
কিন্তু আমরা ঠিক আগে এটি সন্নিবেশ করতে চান আমরা হতে হবে কারণ
অবগত থাকার, তারপর, আগে কি ছিল.
তাই আগে সন্নিবেশ.
তাই আমরা সম্ভবত কিছু মিস তার আগে প্রথম.
আমরা সম্ভবত পালন করা প্রয়োজন কি করছেন ট্র্যাক.
কিন্তু আমরা সেখানে ফিরে পাবেন.
তাই মান কম হয়?
কার্ট, আমরা যদি কি করবেন মান কম হয়?
>> AUDIENCE: তারপর আপনি শুধু বর্তা এটি গত এক, যদি না.
>> JASON HIRSCHORN: আমি যে চাই.
তাই পরবর্তী নোড যান.
এটি গত এক যদি না -
আমরা সম্ভবত যে জন্য চেক করছি একটি শর্ত পরিপ্রেক্ষিতে.
তবে হাঁ, পরবর্তী নোডের.
এবং যে, খুব কম হচ্ছে তাই আমরা এখানে উপর সরানো করব.
কিন্তু যদি -
সবাই এই দেখতে পারেন?
আমরা সমান হন আমরা কি করব?
মূল্য আমরা সন্নিবেশ করার চেষ্টা করছেন এই নোডের এর মান সমান?
হাঁ?
>> AUDIENCE: [শ্রবণাতীত].
>> JASON HIRSCHORN: হ্যাঁ.
এই দেওয়া -
মার্কাস অধিকার.
আমরা হয়তো কাজ করতে পারে ভিন্ন কিছু.
কিন্তু এখানে, আমরা এটি তৈরি করেছি যে দেওয়া আমরা মুক্ত এবং তারপর ফেরত পাঠাবেন.
ছেলে ওহ.
যে ভাল?
কিভাবে যে কি?
ঠিক আছে.
আমরা কি তাহলে ফ্রি এবং [শ্রবণাতীত], ফিরে?
ঠিক আছে.
আমরা কিছু অনুপস্থিত?
তাই যেখানে আমরা অবগত থাকার হয় পূর্বে নোড?
>> AUDIENCE: আমি যেতে হবে মনে হয় পরে একটি নতুন নোড তৈরি.
>> JASON HIRSCHORN: ঠিক আছে.
তাই শুরুতে আমরা সম্ভবত করব -
হাঁ, আমরা একটি নতুন একটি পয়েন্টার তৈরি করতে পারেন আগের নোড পয়েন্টার মত নোড, এবং
একটি বর্তমান নোড পয়েন্টার.
সুতরাং আসুন যে এখানে সন্নিবেশ যাক.
তৈরি করুন বর্তমান এবং পূর্ববর্তী নোড পয়েন্টার.
কিন্তু যখন আমরা যারা পয়েন্টার নিয়ন্ত্রন করেন?
আমরা যে কোডের কোথায় করবেন?
জেফ?
>> AUDIENCE: - মূল্য শর্ত?
>> JASON HIRSCHORN: কোনটি বিশেষ করে এক?
>> AUDIENCE: আমি বিভ্রান্ত করছি.
মূল্য, এই নোডের চেয়ে অনেক বেশী হলে যে আপনি যেতে চান না মানে
পরবর্তী নোডের?
>> JASON HIRSCHHORN: তাই আমাদের মূল্য যদি এই নোডের মান থেকে বড়.
>> AUDIENCE: হ্যাঁ, তাহলে আপনি চাই চাই অধিকার, লাইন নিচে আরো যেতে?
>> JASON HIRSCHHORN: রাইট.
তাই আমরা এখানে সন্নিবেশ না.
মান তারপর, এই নোডের চেয়ে কম হয় তাহলে আমরা পরবর্তী নোডের যান - তারপর অথবা আমরা
আগে সন্নিবেশ.
>> AUDIENCE: এই যা, অপেক্ষা করুন নোড এবং যার মান?
>> JASON HIRSCHHORN: ভাল প্রশ্ন.
ভ্যালু এই ফাংশন সংজ্ঞা প্রতি আমরা দেওয়া করছি কি.
তাই মান আমরা দেওয়া করছি সংখ্যা.
তাই মান এই কম হলে নোড, আমরা সন্নিবেশ সময় প্রয়োজন.
মূল্য, এই নোডের চেয়ে অনেক বেশী হলে আমরা পরবর্তী নোড যান.
আর ফিরে আসল প্রশ্নের, যদিও, যেখানে -
>> AUDIENCE: মান অধিক যদি এই নোডের চেয়ে.
>> JASON HIRSCHHORN: এবং তাই আমরা এখানে কি করবেন?
মিষ্টি.
এটা সঠিক.
আমি লিখতে যাচ্ছি আপডেট পয়েন্টার.
কিন্তু হ্যাঁ, বর্তমান এক সাথে আপনার কাছে এটি আপডেট হবে
পরের এক দিকে নির্দেশ.
আরও কিছু আমরা অনুপস্থিত থাকেন?
তাই আমি এই টাইপ করা যাচ্ছে না gedit মধ্যে অবস্থান.
আমি এটা করতে এবং যখন, আপনি একটি থাকতে পারে কোডিং কাজ দম্পতি আরো মিনিট
এই সি
>> তাই আমি ইনপুট pseudocode আছে.
আমরা শুরু করার আগে একটি দ্রুত নোট.
আমরা সক্ষম সম্পূর্ণ নাও হতে পারে সব এই শেষ
এই ফাংশন তিন.
তাদের সঠিক সমাধান নেই আমি আপনাকে বলছি কাছে ইমেইল করবে
অধ্যায় পরে, এবং এটা করবে CS50.net পোস্ট করা.
তাই আমি উত্সাহিত করবেন না বিভাগে তাকান যান.
আমি এই চেষ্টা করতে উত্সাহিত আপনার মালিক, এবং তারপর অভ্যাস ব্যবহার
আপনার উত্তর চেক করতে সমস্যা.
এই সব পরিকল্পনা করা হয়েছে বলে ঘনিষ্ঠভাবে সঙ্গে সম্পর্কযুক্ত এবং মেনে চলে কি
আপনি সমস্যা সেট উপর যা করতে হবে.
তাই আমি এই অনুশীলন করতে উত্সাহিত করবেন আপনার নিজের এবং তারপর থেকে কোড ব্যবহার
আপনার উত্তর চেক.
আমি হ্যাশ যান চান কারণ বিভাগে কিছু সময়ে টেবিল.
সুতরাং আমরা এটা সব মাধ্যমে পেতে না পারে.
কিন্তু আমরা এখন আমরা করতে পারেন হিসাবে অনেক চেষ্টা করবো.
>> ঠিক আছে.
আমাদের শুরু করা যাক.
আসাম, কিভাবে আমরা একটি নতুন নোড নির্মাণ করেন?
>> AUDIENCE: আপনি * struct না.
>> JASON HIRSCHHORN: সুতরাং আমরা এখানে যে পর্যন্ত আছে.
ওহ, দুঃখিত.
আপনি * struct বলছে ছিল.
>> AUDIENCE: এবং তারপর [? ধরনের?] নোড বা গ নোড.
>> JASON HIRSCHHORN: ঠিক আছে.
আমি এটা new_node কল চলেছি তাই আমরা সামঞ্জস্যপূর্ণ থাকতে পারেন.
>> AUDIENCE: এবং আপনি যে সেট করতে চান প্রথম নোডের আগাইয়া.
>> JASON HIRSCHHORN: ঠিক আছে.
তাই এখন এই ইশারা - তাই এই এখনো একটি নতুন নোড তৈরি হয় নি.
এই মাত্র নির্দেশিত তালিকায় প্রথম নোডের.
কিভাবে আমি একটি নতুন নোড নির্মাণ করেন?
আমি একটি নতুন নোড তৈরি স্থান প্রয়োজন.
Malloc.
এবং কিভাবে বড়?
>> AUDIENCE: struct মাপ.
>> JASON HIRSCHHORN: struct মাপ.
এবং struct কি বলা হচ্ছে?
>> AUDIENCE: নোড?
>> JASON HIRSCHHORN: নোড.
সুতরাং malloc (sizeof (নোড)); আমাদের স্থান দেয়.
এবং এই লাইন -
এক জিনিস এই লাইনে ভুল.
একটি struct একটি পয়েন্টার new_node কি?
যে একটি জেনেরিক নাম.
এটা কি -
নোড, ঠিক.
এটা * একটি নোডের জন্য.
এবং আমরা ডান পরে কি করবেন আমরা Asan কিছু, malloc?
আমরা কি প্রথম জিনিস কি?
কি এটা কাজ করছে না তাহলে কি হবে?
>> AUDIENCE: ওহ, চেক যদি এটা নোডের স্থানটিকে?
>> JASON HIRSCHHORN: যথাযথভাবে.
সুতরাং আপনি new_node যদি সমান সমান নাল, আমরা কি করব?
এই একটি bool, এই ফাংশন ফেরৎ.
যথাযথভাবে.
ভাল মনে হচ্ছে.
সেখানে যোগ করতে কিছু?
আমরা শেষে জিনিষ যুক্ত করতে হবে.
কিন্তু যে এ পর্যন্ত ভাল দেখায়.
বর্তমান এবং পূর্ববর্তী পয়েন্টার তৈরি করুন.
মাইকেল, আমি এই কিভাবে করব?
>> AUDIENCE: আপনি হবে একটি নোডের যা করতে *.
আপনি এক না করা আছে চাই new_node জন্য কিন্তু জন্য
নোড আমরা ইতিমধ্যে আছে.
>> JASON HIRSCHHORN: ঠিক আছে.
তাই বর্তমান নোড আমরা করছি.
আমি যে Curr ডাকবো.
ঠিক আছে.
আমরা আমরা রাখতে চান সিদ্ধান্ত করেছি আমরা জানতে হবে দুটি কারণ
কি এটা আগে না.
তারা কি সক্রিয়া পেতে পারি?
>> AUDIENCE: আমাদের তালিকায় তাদের মান.
>> JASON HIRSCHHORN: তাই কি হয় আমাদের তালিকায় প্রথম জিনিস?
বা কিভাবে আমরা জানি যেখানে আমাদের তালিকা শুরুতে?
>> AUDIENCE: এটা পাস না ফাংশন মধ্যে?
>> JASON HIRSCHHORN: রাইট.
এটা ঠিক মধ্যে প্রেরণ করা হত.
এটা ফাংশন মধ্যে পাশ হচ্ছে তাই যদি, তালিকা শুরু, আমরা কি করা উচিত
সমান বর্তমান সেট?
>> AUDIENCE: তালিকা.
>> JASON HIRSCHHORN: তালিকা.
যে ঠিক ঠিক.
এখন এটি ঠিকানা আছে আমাদের তালিকা শুরু.
এবং কি আগের সম্পর্কে কি?
>> AUDIENCE: তালিকা বিয়োগ এক?
>> JASON HIRSCHHORN: নেই এটা আগে কিছুই.
সুতরাং আমরা কিছুই বোঝান কি করতে পারি?
>> AUDIENCE: শূন্য.
>> JASON HIRSCHHORN: হ্যাঁ.
এটা একটি ভাল ধারণা মত শোনাচ্ছে.
পারফেক্ট.
আপনাকে ধন্যবাদ.
তালিকা দিয়ে যান.
কনস্টান্টটাইন, কতদিন আমরা যাচ্ছি তালিকা মধ্য দিয়ে যেতে?
>> AUDIENCE: আমরা নাল পৌঁছানোর পর্যন্ত.
>> JASON HIRSCHHORN: ঠিক আছে.
সুতরাং, যদি লুপ জন্য, যখন.
আমরা কি করছেন?
>> AUDIENCE: হয়তো একটি লুপ জন্য?
>> JASON HIRSCHHORN: এর লুপ জন্য একটি করুক না.
ঠিক আছে.
>> AUDIENCE: এবং আমরা জন্য বলে -
বর্তমান পয়েন্টার যতক্ষণ নাল সমান নয়.
>> JASON HIRSCHHORN: সুতরাং আমরা যদি জানেন শর্ত, কিভাবে আমরা একটি লুপ লিখতে পারেন
যে অবস্থায় বন্ধ করে.
আমরা একটি লুপ কি ধরনের ব্যবহার করা উচিত?
>> AUDIENCE: যদিও.
>> JASON HIRSCHHORN: হ্যাঁ.
যে ভিত্তি আরো ইন্দ্রিয় তোলে আপনি কি বলেন দেখা বন্ধ.
আমরা শুধু আমরা যেতে চান তা would ঠিক যে জিনিস জানেন, এটা করতে হবে
যখন একটি লুপ কি অর্থে.
বর্তমান সমান নয় নাল আছে, যদিও মূল্য এই নোডের চেয়ে কম হয় না.
Akshar, আমার এই লাইন দিতে.
>> AUDIENCE: যদি বর্তমান-> এন এন মান কম.
অথবা যে বিপরীত.
যে বন্ধনী পরিবর্তন করুন.
>> JASON HIRSCHHORN: দুঃখিত.
>> AUDIENCE: বন্ধনী পরিবর্তন করুন.
>> JASON HIRSCHHORN: সুতরাং যদি মূল্য তার চেয়ে অনেক বেশী.
যে সঙ্গে বিভ্রান্তিকর কারণ উপরোক্ত মন্তব্য, আমি তা করতে যাচ্ছি.
কিন্তু হ্যাঁ.
আমাদের মান এই কম হলে নোড, আমরা কি করব?
ওহ.
আমি ঠিক তা না.
আগে প্রবেশ করান.
ঠিক আছে.
আমরা যে কিভাবে করব?
>> AUDIENCE: এটা আমার এখনও আছে?
>> JASON HIRSCHHORN: হ্যাঁ.
>> AUDIENCE: আপনি -
new_node> পরের.
>> JASON HIRSCHHORN: তাই কি যে সমান যাচ্ছে?
>> AUDIENCE: এটা সমান বর্তমান যাচ্ছে.
>> JASON HIRSCHHORN: যথাযথভাবে.
তাই অন্যান্য -
আমরা আপডেট করার জন্য কি কি প্রয়োজন?
>> AUDIENCE: গত নাল সমান হলে চেক করুন.
>> JASON HIRSCHHORN: পূর্ববর্তী যদি -
যদি তাই হয় পূর্ববর্তী নাল সমান.
>> AUDIENCE: এটাই যাচ্ছে মানে মাথা হয়ে.
>> JASON HIRSCHHORN: তার মানে এটা মাথা হয়ে আছে.
তখন আমরা কি করব?
>> AUDIENCE: আমরা মাথা না new_node সমান.
>> JASON HIRSCHHORN: হেড new_node সমান.
এবং কেন তার তালিকা দেখাবে না, এখানে আগাইয়া?
>> AUDIENCE: মাথা একটি বিশ্বব্যাপী কারণ শুরু জায়গা যা পরিবর্তনশীল,.
>> JASON HIRSCHHORN: মিষ্টি.
ঠিক আছে.
এবং -
>> AUDIENCE: তারপর আপনি অন্য কি পূর্ববর্তী-> পরবর্তী new_node সমান.
এবং তারপর আপনি সত্য ফিরে.
>> JASON HIRSCHHORN: কোথায় করবেন আমরা new_node শেষ সেট?
>> AUDIENCE: আমি -
আমি শুরুতে যে সেট.
>> JASON HIRSCHHORN: তাই কি লাইন?
>> AUDIENCE: পর যদি বিবৃতি এটি পরিচিত এর যদি চেক.
>> JASON HIRSCHHORN: রাইট এখানে?
>> AUDIENCE: আমি কি চাই new_node> এন মান সমান.
>> JASON HIRSCHHORN: শব্দগুলি ভালো.
সম্ভবত এটা জ্ঞান করে তোলে - আমরা না আমরা করছি কি তালিকা জানতে হবে
আমরা কেবল লেনদেন করছেন কারণ এক তালিকা.
জন্য তাই একটি ভাল ফাংশন ঘোষণা এই শুধু এই পরিত্রাণ পেতে হয়
সম্পূর্ণরূপে এবং শুধু সন্নিবেশ মাথার মধ্যে একটি মান.
আমরা এমনকি জানা প্রয়োজন নেই আমরা এখনো সদস্য না হন কি তালিকা
কিন্তু আমি এখন জন্য এটি রাখা এবং হবে তারপর আপডেট উপর এটি পরিবর্তন
স্লাইড এবং অবস্থান.
সুতরাং যে এখন জন্য ভাল দেখায়.
যদি মান - যারা এই লাইন করতে পারি?
যদি -
আমরা নোয়া, এখানে কি করবেন.
>> AUDIENCE: মান অধিক যদি এন Curr-> আর -
>> JASON HIRSCHHORN: কিভাবে করবেন আমরা পরবর্তী নোডের যান?
>> AUDIENCE: Curr-> এন হয় new_node সমান.
>> JASON HIRSCHHORN: তাই এন হয় struct কি অংশ?
পূর্ণসংখ্যা.
তখন new_node একটি নোডের একটি পয়েন্টার.
সুতরাং আমরা Curr কি ভাগে আপডেট করা উচিত?
না এন, তারপর অন্যান্য অংশ কি?
নোয়া, অন্যান্য অংশ কি.
>> AUDIENCE: ওহ, পরের.
>> JASON HIRSCHHORN: এর পরে, ঠিক.
যথাযথভাবে.
পরবর্তী ডান এক.
এবং আমরা কি কি প্রয়োজন , নোয়া আপডেট করার জন্য?
>> AUDIENCE: পয়েন্টার.
>> JASON HIRSCHHORN: তাই আমরা বর্তমান আপডেট.
>> AUDIENCE: পূববর্তী> পরের.
>> JASON HIRSCHHORN: হ্যাঁ.
ঠিক আছে, আমরা বিরতি পাবেন.
কে এখানে আমাদের সাহায্য করতে পারেন?
মনু, আমরা কি করা উচিত?
>> AUDIENCE: আপনি সেট পেয়েছেন এটা Curr> পরের সমান.
কিন্তু আগের লাইনের আগে তা করতে.
>> JASON HIRSCHHORN: ঠিক আছে.
আরও কিছু লাগবে?
Akshar.
>> AUDIENCE: আমি আপনাকে করছি মনে করি না পরবর্তী Curr-> পরিবর্তন বোঝানো.
আমি আপনাকে Curr সমান কি বোঝানো করছি মনে করি Curr> পরের নোড যেতে পরের.
>> JASON HIRSCHHORN: তাই দুঃখিত, যেখানে?
কি লাইন অন?
এই লাইনে?
>> AUDIENCE: হ্যাঁ.
করুন Curr পরবর্তী Curr-> সমান.
>> JASON HIRSCHHORN: তাই যে সঠিক বর্তমান কারণ একটি
একটি নোড পয়েন্টার.
এবং আমরা তা পরের দিকে নির্দেশ চাই বর্তমানে পেয়ে কি নোড
জোরাল.
Curr নিজেই একটি পরের আছে.
কিন্তু আমরা যদি curr.next আপডেট করার জন্য, আমরা প্রকৃত নোট আপডেট করা হবে
নিজেই, না যেখানে এই পয়েন্টার প্রতি নির্দেশ ছিল.
কি এই লাইন সম্পর্কে, যদিও.
Avi?
>> AUDIENCE: পূববর্তী> পরের Curr সমান.
>> JASON HIRSCHHORN: তাই আবার, যদি পূর্ববর্তী একটি হল একটি নোডের পয়েন্টার, পূববর্তী> পরের হয়
নোডের মধ্যে প্রকৃত পয়েন্টার.
তাই এই আপডেট করা হবে একটি Curr একটি নোডের মধ্যে পয়েন্টার.
আমরা আপডেট করতে চান না একটি নোডের একটি পয়েন্টার.
আমরা আগের আপডেট করতে চান.
সুতরাং আমরা যে কিভাবে করব?
>> AUDIENCE: এটা ঠিক পূর্ববর্তী হবে.
>> JASON HIRSCHHORN: রাইট.
পূর্ববর্তী একটি নোডের একটি পয়েন্টার.
এখন আমরা একটি থেকে এটি পরিবর্তন করছি একটি নোডের নতুন পয়েন্টার.
ওকে আমাদের নিচে সরানো যাক.
অবশেষে, এই শেষ অবস্থা.
জেফ, আমরা এখানে কি করবেন?
>> AUDIENCE: মান যদি Curr-> এন সমান.
>> JASON HIRSCHHORN: দুঃখিত.
ধার্মিকতা আমার ওহ.
কি?
মান == Curr-> এন.
আমরা কি করব?
>> AUDIENCE: আপনি আমাদের new_node মুক্ত চাই, এবং তারপর আপনি মিথ্যা ফিরে চাই.
>> JASON HIRSCHHORN: এই কি আমরা এ পর্যন্ত লিখিত আছে.
কেহ কিছু আছে আমরা আগে যুক্ত করতে?
ঠিক আছে.
চলুন এটি চেষ্টা করুন.
কন্ট্রোল শেষে পৌঁছতে পারে একটি অ অকার্যকর ফাংশন.
Avi, কি করছেন?
>> AUDIENCE: আপনি রিটার্ন করা অনুমিত হয় যখন লুপ বাইরে সত্য?
>> JASON HIRSCHHORN: আমি জানি না.
আপনি আমাকে চান?
>> AUDIENCE: কিছু মনে করবেন না.
না.
>> JASON HIRSCHHORN: Akshar?
>> AUDIENCE: আমি আপনাকে বোঝানো মনে করি শেষে ফিরতি মিথ্যা আরোপ
যখন লুপ.
>> JASON HIRSCHHORN: তাই যেখানে আপনি এটি যেতে চান?
>> AUDIENCE: যখন লুপ বাইরে লেগেছে.
সুতরাং আপনি যে মানে যখন লুপ থেকে প্রস্থান যদি আপনি শেষ পৌঁছেছেন এবং করেছি
কিছুই ঘটেছে এর.
>> JASON HIRSCHHORN: ঠিক আছে.
তাই আমরা এখানে কি করবেন?
>> AUDIENCE: আপনি মিথ্যা ফিরে সেখানে হিসাবে ভাল.
>> JASON HIRSCHHORN: ওহ, আমরা উভয় জায়গায় তা করে?
>> AUDIENCE: হ্যাঁ.
>> JASON HIRSCHHORN: ঠিক আছে.
আমরা যেতে হবে?
ধার্মিকতা আমার ওহ.
আমি দুঃখিত.
আমি পর্দা জন্য ক্ষমাপ্রার্থী.
এটা কোন ধরনের আমাদের নেভিগেশন খুঁজে freaking এর.
সুতরাং একটি বিকল্প নির্বাচন করুন.
জিরো, কোড অনুযায়ী, প্রোগ্রাম শোধবোধ হয়ে যাওয়া.
এক কিছু টিপে.
এর তিন সন্নিবেশ যাক.
সন্নিবেশ সফল ছিল না.
আমি প্রিন্ট আউট করা যাচ্ছে না.
আমি কিছু করতে হবে না.
ঠিক আছে.
হয়তো যে শুধু একটি অপ্রত্যাশিত সাফল্য ছিল.
এক ঢোকান.
সফল হয়নি.
ঠিক আছে.
এর সত্যিই দ্রুত GDB মাধ্যমে চালানো যাক কি ঘটছে খুঁজে বার করো.
>> এর GDB মনে রাখুন. / নাম আপনার প্রোগ্রাম GDB মধ্যে আমাদের পায়.
অনেক পরিচালনা করতে যে কি?
ঝলকানি?
সম্ভবত.
আপনার চোখ বন্ধ করুন এবং কিছু গভীর নিতে আপনি ক্লান্ত হলে নিঃশ্বাসের
এর এটি এ খুঁজছেন.
আমি GDB আছি.
GDB-র মধ্যে আমি কি প্রথম জিনিস কি?
আমরা চিন্তা করা পেয়েছেন কি এখানে যাচ্ছে.
এর দেখতে দিন.
আমরা চিত্রে ছয় মিনিট আছে কি করছেন আউট.
প্রধান বিরতি.
এবং তারপর আমি কি করব?
কার্লোস?
চালান.
ঠিক আছে.
এর একটি বিকল্প চয়ন যাক.
এবং N কি করে?
পরবর্তী.
হ্যাঁ.
>> AUDIENCE: আপনি উল্লেখ না -
আপনি মাথা, এটি ছিল বলে নি শুরুতে নাল সক্রিয়া.
কিন্তু আমি আপনি যে ঠিক ছিল না.
>> JASON HIRSCHHORN: আসুন দেখা যাক - এর যাক GDB-র মধ্যে, এবং তারপর আমরা ফিরে যাবেন.
যদি আপনি ইতিমধ্যেই আছে মত কিন্তু এটাতো কি ঘটছে সম্পর্কে কিছু ধারনা.
তাই আমরা কিছু সন্নিবেশ করতে চান.
ঠিক আছে.
আমরা সন্নিবেশ করেছেন.
কোন int দিন.
আমরা তিন সন্নিবেশ করব.
এবং তারপর আমি এই লাইনে আছি.
আমি কিভাবে ডিবাগ শুরু যান সন্নিবেশ ফাংশন পরিচিত?
ধার্মিকতা আমার ওহ.
এটা অনেক.
যে অনেক আউট freaking হয়?
>> AUDIENCE: ওহ, এটি মারা যান.
>> JASON HIRSCHHORN: আমি ঠিক এটি টানা আউট.
ঠিক আছে.
>> AUDIENCE: হয়তো এটা তারের অন্য প্রান্তে.
>> JASON HIRSCHHORN: বাহ.
তাই নিচের লাইন -
আপনি কি বলতে?
>> AUDIENCE: আমি আগেই বলেছি প্রযুক্তিগত পরিহাস এই ক্লাসে অসুবিধা.
>> JASON HIRSCHHORN: আমি জানি.
শুধুমাত্র যদি আমি যে অংশ উপর নিয়ন্ত্রণ ছিল.
[শ্রবণাতীত]
যে মহান শোনাচ্ছে.
কেন আপনি না সম্পর্কে ভাবতে শুরু করবেন না কি আমরা ভুল কাজ করতে পারে,
এবং আমরা ফিরে 90 সেকেন্ডের মধ্যে হতে হবে.
>> Avica, আমি কিভাবে যেতে অনুরোধ জানানো যাচ্ছে না এটি ডিবাগ ভিতরে insert_node.
আমরা গত বাকি বন্ধ যেখানে তাই এই হয়.
আমি কিভাবে insert_node ভিতরে যান, Avica, কি পরীক্ষা?
কি GDB কমান্ড?
ব্রেক ভিতরে আমার লাগবে না.
Marquise জানেন না?
>> AUDIENCE: কি?
>> JASON HIRSCHHORN: কি GDB কমান্ড আমি এই ফাংশন ভিতরে যেতে ব্যবহার?
>> AUDIENCE: ধাপ?
>> JASON HIRSCHHORN: এর মাধ্যমে ধাপ ভিতরে আমার লাগে যে এস.
ঠিক আছে.
New_node কিছু স্থান mallocing.
সব যাচ্ছে মতো দেখতে.
এর new_node পরীক্ষা করা যাক.
এটা কিছু মেমরি ঠিকানা পেয়েছিলাম.
এর পরীক্ষা করা যাক -
যে সব সঠিক.
তাই এখানে সবকিছু বলে মনে হয় সঠিকভাবে কাজ করা.
>> AUDIENCE: পার্থক্য কি পি এবং প্রদর্শনের মধ্যে?
>> JASON HIRSCHHORN: p মুদ্রন ঘোরা.
এবং যাতে আপনি কি বলছি যে এবং এই মধ্যে পার্থক্য?
এই ক্ষেত্রে, কিছুই.
কিন্তু সাধারণত আছে কিছু পার্থক্য.
এবং যদি আপনি GDB পুস্তিকায় হওয়া উচিত.
কিন্তু এই ক্ষেত্রে, কিছুই.
আমরা যদিও, মুদ্রণ ব্যবহারের প্রবণতা কারণ আমরা এর চেয়ে আরো অনেক কিছু করতে হবে না
একটি একক মান মুদ্রণ.
>> ঠিক আছে.
সুতরাং আমরা আমাদের কোড লাইন 80 হয় তালিকার সমান নোড * Curr সেটিং.
আমাদের Curr প্রিন্ট আউট করা যাক.
এটা তালিকায় সমান.
মিষ্টি.
অপেক্ষা করুন.
এটা কিছু সমান.
একেবারে ঠিক বলে মনে হচ্ছে না.
এখন পর্যন্ত আমরা যেতে.
এটা GDB, অধিকার, কারণ যদি এটি আপনি এটা করছি লাইন
এখনো মৃত্যুদন্ড কার্যকর করা হয় নি.
তাই আসলে আপনি টাইপ করতে হবে লাইন চালানো পরবর্তী
তার ফলাফল প্রেক্ষণ আগে.
তাই আমরা এখানে হয়.
আমরা শুধু এই লাইন মৃত্যুদন্ড কার্যকর করা, পূর্ববর্তী নাল সমান.
তাই আবার, আমরা আগের প্রিন্ট হলে আমরা অদ্ভুত কিছু দেখতে পাবেন না.
কিন্তু আমরা আসলে যে চালানো হলে লাইন, তাহলে আমরা দেখতে পাবেন
যে লাইন কাজ করে.
>> সুতরাং আমরা Curr আছে.
যারা উভয় ভাল.
রাইট?
এখন আমরা এখানে ডান এই লাইনে আছেন.
Curr সমান নাল না যদিও.
ওয়েল, Curr সমান কি করে?
আমরা শুধু এটা নাল equaled দেখেছি.
আমরা এটা আউট মুদ্রিত.
আমি আবার প্রিন্ট আউট করব.
তাই যে সময় লুপ চালানো যাচ্ছে?
>> AUDIENCE: নং
>> JASON HIRSCHHORN: তাই আমি টাইপ করা হলে যে লাইন, আপনি আমরা সব পথ jumped দেখুন
নীচে নিচে, মিথ্যা ফিরে.
এবং তারপর আমরা মিথ্যা ফিরে চলুন এবং আমাদের প্রোগ্রাম ফিরে যান এবং
আমরা দেখেছি ভালো ঘটনাক্রমে, প্রিন্ট আউট, সন্নিবেশ সফল ছিল না.
সুতরাং, কেহ কি কোন ধারনা আছে আমরা এই সমাধানের জন্য কি প্রয়োজন?
আমি যে আমি দেখতে না হওয়া পর্যন্ত অপেক্ষা করা যাচ্ছে না হাত দুয়েক পর্যন্ত যান.
আমরা এই চালানো হয়নি.
মনে রাখবেন, এই ছিল প্রথম আমরা এরকম হয় জিনিস.
আমি কয়েক যা করতে যাচ্ছি না.
আমি কয়েক করতে যাচ্ছি.
কয়েক দুটি মানে না.
আমি আরো দুই জন্য অপেক্ষা করব.
>> প্রথম সন্নিবেশ, Curr, ডিফল্ট নাল সমান দ্বারা.
এবং এই লুপ শুধুমাত্র executes Curr নাল নয়.
সুতরাং কিভাবে আমি এই কাছাকাছি পেতে পারেন?
আমি তিন হাত দেখতে.
আমি আরো তিন জন্য অপেক্ষা করব.
মার্কাস, আপনি কি মনে করেন?
>> AUDIENCE: ভাল, যদি আপনি এটি প্রয়োজন করতে , একাধিকবার চালানো আপনি শুধু
একটি কাজের জন্য সময় লুপ থেকে এটি পরিবর্তন.
>> JASON HIRSCHHORN: ঠিক আছে.
যে যদিও, আমাদের সমস্যার সমাধান হবে?
>> AUDIENCE: এই ক্ষেত্রে কোন কারণ এই তালিকা শূণ্য যে.
আমি তখন সম্ভবত আপনি শুধু যুক্ত করতে হবে একটি বিবৃতি যে যদি লুপ করে প্রস্থান করে
তাহলে আপনি শেষে হতে হবে আপনি নির্দেশ যা এ তালিকা,
শুধু তা সন্নিবেশ করতে পারেন.
>> JASON HIRSCHHORN: আমি যে চাই.
যে জ্ঞান করে তোলে.
লুপ প্রস্থান করে থাকলে -
এটা এখানে মিথ্যা ফিরে পাবেন না.
তাই লুপ প্রস্থান করে, তাহলে আমরা এ করছি হয়তো তালিকার শেষে, অথবা
কিছুই সেখানে যদি একটি তালিকা শুরু তা, যা শেষ হিসাবে একই.
তাই এখন আমরা সন্নিবেশ করতে চান এখানে কিছু.
সুতরাং কিভাবে যে কোড, মার্কাস কেমন হয়েছে?
>> AUDIENCE: আপনি ইতিমধ্যে নোড পেয়েছিলাম যদি malloced, আপনি শুধু বলতে পারে
new_node> পরের নাল কারণ সমান এটা শেষে হতে হয়েছে.
অথবা new_node> পরের নাল সমান.
>> JASON HIRSCHHORN: ঠিক আছে.
দুঃখিত.
New_node> পরের নাল সমান আমরা শেষে কারণ.
যে এটি ইন করা হয় না
কিভাবে আমরা এটা তালিকায় রাখা হয়?
রাইট.
যে শুধু সমান তা নির্ধারণের জন্য.
কোন কিভাবে আমরা আসলে কি তালিকার মধ্যে এটা করা?
এর প্রতি নির্দেশ কি তালিকার শেষে?
>> AUDIENCE: হেড.
>> JASON HIRSCHHORN: দুঃখিত?
>> AUDIENCE: হেড প্রতি নির্দেশ করা হয় তালিকার শেষে.
>> JASON HIRSCHHORN: কিছুই আছে তালিকা, মাথা প্রতি নির্দেশ
তালিকার শেষে.
সুতরাং যে জন্য কাজ করব প্রথম সন্নিবেশ.
একটি দম্পতি আছে কি সম্পর্কে যদি তালিকায় জিনিস?
আমরা সেট করতে চাই না আর new_node সমান আগাইয়া.
আমরা কি সেখানে কাজ করতে চান?
হাঁ?
সম্ভবত আগের.
যে কাজ হবে?
পূর্ববর্তী শুধু যে প্রত্যাহার একটি নোডের একটি পয়েন্টার.
এবং আগের একটি স্থানীয় পরিবর্তনশীল.
তাই এই লাইন একটি স্থানীয় পরিবর্তনশীল সেট হবে, আগের সমান বা
এই নতুন নোডের প্রতি নির্দেশ.
এটা আসলে এটা করা না করা আমাদের তালিকায়, যদিও.
কিভাবে আমরা এটা আমাদের তালিকায় রাখা হয়?
Akchar?
>> AUDIENCE: আমি আপনি কি মনে করেন পরবর্তী বর্তমান-> করবেন.
>> JASON HIRSCHHORN: ঠিক আছে.
Curr> পরের.
তাই আবার, আমরা নিচে এসেছি একমাত্র কারণ এখানে হয়, কি সমান বর্তমান করে?
>> AUDIENCE: নাল সাইটে সমান.
>> JASON HIRSCHHORN: তাই কি আমরা পরবর্তী নাল-> যদি হয়?
আমরা কি পেতে যাচ্ছে না?
আমরা একটি সেগমেন্টেশন ফল্ট পাবেন.
>> AUDIENCE: কি Curr নাল সমান.
>> JASON HIRSCHHORN: যে একই জিনিস পূর্ববর্তী হিসাবে যদিও, আছে, কারণ
আমরা সেটিং করছি একটি স্থানীয় পরিবর্তনশীল এই নতুন নোড সমান.
আসুন আমাদের ছবি ফিরে যাওয়া যাক কিছু ঢোকাতে.
আমরা শেষে ঢোকাতে করছি বলুন তালিকার, ঠিক তাই.
আমরা যে একটি বর্তমান পয়েন্টার আছে নাল প্রতি নির্দেশ এবং একটি পূর্ববর্তী বিন্দু
যে 8 এর প্রতি নির্দেশ করে.
তাই আমরা Avi, আপডেট করার প্রয়োজন?
>> AUDIENCE: পূর্ববর্তী> পরের?
>> JASON HIRSCHHORN: পূর্ববর্তী-> পরবর্তী কি আমরা আপডেট করতে চান, কারণ যে
আসলে তা সন্নিবেশ করবে তালিকার শেষে.
আমরা এখনও, যদিও, একটি বাগ আছে আমরা পরতে যাচ্ছেন যে.
যে বাগ কি?
হাঁ?
>> AUDIENCE: এটি ফেরত যাচ্ছে এই ক্ষেত্রে মিথ্যা?
>> JASON HIRSCHHORN: ওহ, হয় হয় মিথ্যা ফিরে যাচ্ছে.
কিন্তু অন্য একটি বাগ আছে.
সুতরাং আমরা সত্য বিনিময়ে করা প্রয়োজন হবে.
>> AUDIENCE: কি আগের এখনও সমান তালিকার শীর্ষে নাল?
>> JASON HIRSCHHORN: তাই আগের এখনও খুব প্রারম্ভে নাল সমান.
তাই কিভাবে আমরা যে বেশী পেতে পারেন?
হাঁ?
>> AUDIENCE: আমি আপনাকে একটি চেক করতে পারেন মনে হয় এটা যদি লুপ দেখতে আগে
একটি খালি তালিকা.
>> JASON HIRSCHHORN: ঠিক আছে.
সুতরাং আসুন এখানে যান.
একটি চেক করবেন.
যদি -
>> AUDIENCE: তাই যদি মাথা সমান নাল সমান.
>> JASON HIRSCHHORN: যদি মাথা সমান নাল সমান -
এটি একটি খালি তালিকা যে যদি আমাদের বলতে পারবেন.
>> তারপর এবং আপনি AUDIENCE: কি মাথা নতুন সমান.
>> JASON HIRSCHHORN: হেড new_node সমান?
এবং কি কি আমরা যেতে প্রয়োজন?
>> AUDIENCE: এবং তারপর আপনি সত্য ফিরে.
>> JASON HIRSCHHORN: নেই বেশ.
আমরা এক ধাপ অনুপস্থিত থাকেন.
>> AUDIENCE: new_node পরবর্তী নাল নির্দেশ আছে.
>> JASON HIRSCHHORN: ঠিক, Alden.
এবং তারপর আমরা সত্য ফিরে আসতে পারেন.
ঠিক আছে.
কিন্তু এটি এখনও কিছু করার একটা ভাল ধারণা তালিকার শেষে, ডান?
ঠিক আছে.
আমরা এখনও আসলে পেতে পারে তালিকার শেষে.
আমরা এ যদি তাই এই কোড জরিমানা তালিকার শেষ এবং কিছু আছে
তালিকায় জিনিস?
রাইট?
আমরা এখনও মার্কাস এর ধারণা আছে.
আমরা এই লুপ থেকে প্রস্থান হতে পারে, কারণ আমরা তালিকা শেষে করছি.
তাই আমরা এখনও এই চান এখানে নিচে কোড?
>> AUDIENCE: হ্যাঁ.
>> JASON HIRSCHHORN: হ্যাঁ.
এবং কি আমরা এই পরিবর্তন প্রয়োজন?
সত্য.
কি যে শব্দ ভাল সবাই এ পর্যন্ত?
কেহ কোনো আছে -
Avi, আপনি যোগ করতে কিছু আছে?
>> AUDIENCE: নং
>> JASON HIRSCHHORN: ঠিক আছে.
সুতরাং আমরা পরিবর্তনের একটি দম্পতি তৈরি করেছি.
আমরা আমরা আগে এই চেক করেছি একটি খালি তালিকার জন্য গিয়েছিলাম.
সুতরাং আমরা একটি খালি তালিকা যত্ন গ্রহণ করেছি.
এবং এখানে আমরা ঢোকাতে যত্ন নেন তালিকার শেষে কিছু.
সুতরাং এই সময় লুপ নেবার মত মনে হয় এর মধ্যে অনেক কিছু যত্ন,
কোথাও তালিকায় যদি সেখানে জিনিসের তালিকা আছে.
>> ঠিক আছে.
আমাদের আবার এই প্রোগ্রাম চালানো যাক.
সফল হয়নি.
>> AUDIENCE: আপনি এটি তৈরি করা হয়নি.
>> JASON HIRSCHHORN: ওহ, আমি এটা না.
গুড পয়েন্ট, মাইকেল.
এর লিঙ্ক একটি মেক যোগ দিন.
লাইন 87 একটি ত্রুটি আছে.
লাইন 87.
Alden, এটা আপনার আমার দিয়েছেন লাইন ছিল.
কি ভুল?
>> AUDIENCE: এটা নাল হতে হয়েছে.
>> JASON HIRSCHHORN: অসাধারণ.
ঠিক ঠিক.
এটা নাল হওয়া উচিত.
এর আবার করা যাক.
কম্পাইল.
ঠিক আছে.
এর তিন সন্নিবেশ যাক.
সন্নিবেশ সফল হয়েছে.
এর এটি প্রিন্ট আউট করা যাক.
ওহ, কেবল আমরা পরীক্ষা করতে পারে.
কিন্তু আমরা এটি না করে এখনো ফাংশন মুদ্রণ.
এর অন্য কিছু লিখুন না.
আমরা কি লিখতে হবে?
>> AUDIENCE: সাতটি.
>> JASON HIRSCHHORN: সেভেন?
>> AUDIENCE: হ্যাঁ.
>> JASON HIRSCHHORN: আমরা একটি seg দোষ আছে.
তাই আমরা এক পেয়েছেন, কিন্তু আমরা পরিষ্কারভাবে দুটি পেতে পারে না.
এটা 5:07 হয়.
সুতরাং আমরা এই ডিবাগ পারে তিন মিনিটের জন্য.
কিন্তু আমি এখানে আমাদের ছেড়ে চলে যাচ্ছি এবং টেবিলের হ্যাশ যান.
কিন্তু আবার, এই কোড জন্য উত্তর আমি কিছুক্ষনের মধ্যে আপনি এটি ইমেইল করবে.
আমরা এটি খুব কাছাকাছি.
আমি অত্যন্ত চিন্তা করতে উত্সাহিত কি এখানে হচ্ছে এবং এটা ঠিক এর.
তাই আমি হিসাবে আপনি এই কোড ইমেইল পাবেন প্লাস সমাধান ভাল -
পরে সম্ভবত সমাধান.
প্রথমত এই অবস্থান.
>> আমি আমরা আগে কাজ করতে চান অন্য জিনিস ফিনিস আমরা কিছু মুক্ত না করে থাকে.
তাই আমি আপনাকে দেখাতে চাই Valgrind মত দেখাচ্ছে.
আমরা Valgrind গণ্ডি চালানো হলে আমাদের প্রোগ্রাম,. / লিঙ্ক.
আবার, এই স্লাইড অনুযায়ী, আমরা কিছু ধরনের সঙ্গে Valgrind চালানো উচিত
এই ক্ষেত্রে বিকল্প, - লিক চেক = পূর্ণ.
সুতরাং আসুন Valgrind লিখুন - লিক চেক = পূর্ণ.
তাই এই Valgrind চালানো হবে আমাদের প্রোগ্রাম.
এবং এখন প্রোগ্রাম আসলে চালায়.
তাই আমরা ঠিক মত এটি চালানোর চলুন আগে, এখনো কিছু করা
আমি তিনটি স্থাপন করা যাচ্ছে না.
এটা কাজ করে.
আমি কিছু রাখা চেষ্টা যাচ্ছি না আমরা চলুন অন্য কারণ
সেই ক্ষেত্রে একটি seg মিথ্যা পেতে.
তাই আমি ঠিক প্রস্থান করার জন্য যাচ্ছি.
>> এবং এখন আপনি এখানে নিচে দেখুন লিক এবং গাদা সারাংশ.
এই ভাল জিনিস আছে যেগুলি আপনি চেক আউট করতে চান.
সুতরাং গাদা সংক্ষিপ্ত - এটা বলছেন, ব্যবহারে প্রস্থান এ - এক ব্লক আট বাইট.
এটা এক ব্লক হয় নোড আমরা malloced.
মাইকেল, আপনি একটি নোডের আট আগে বলেন এটি পূর্ণসংখ্যা আছে কামড় কারণ
এবং পয়েন্টার.
সুতরাং যে আমাদের নোড এর.
এবং তারপর এটা আমরা malloc ব্যবহার বলেছেন সাতবার এবং আমরা মুক্ত
কিছু ছয় বার.
কিন্তু আমরা মুক্ত বলা না, তাই আমি থাকতে কোন এই বিষয়ে কথা হয় কি ধারণা.
>> কিন্তু এটা বলতে চলা যে যখন আপনার প্রোগ্রাম রান, malloc বলা হচ্ছে
কিছু অন্যান্য জায়গায় যে আমরা সম্পর্কে চিন্তা করতে হবে না.
সুতরাং malloc সম্ভবত বলা হত কিছু জায়গায়.
আমরা যেখানে চিন্তা করতে হবে না.
কিন্তু এই সত্যিই আমাদের হয়.
এই প্রথম লাইন আমাদের হয়.
আমরা যে ব্লক বাকি.
এবং আপনি যে এখানে দেখতে পারেন লিক সংক্ষেপে বলা যায়.
এখনও পৌঁছানো -
এক ব্লক আট বাইট.
এটা যে মেমরি মানে -
আমরা যে মেমরি অবাঞ্ছিতভাবে আছে.
নিশ্চিতভাবে হারিয়ে -
কিছু ভাল জন্য হারিয়ে গেছে.
সাধারণত, আপনি না করবে না সেখানে কিছু দেখতে.
এখনও পৌঁছানো সাধারণত যেখানে আপনি চাইবেন যেখানে আপনি জিনিষ দেখতে পাবেন
কি কোড আপনি উচিত দেখতে সন্ধান মুক্ত কিন্তু আপনি মুক্ত করতে ভুলে গেছি করেছেন.
>> এবং তারপর এই, ঘটনা না হলে আমরা বিনামূল্যে সবকিছু না হলে,
আমরা যে পরীক্ষা করতে পারবেন.
এর ঠিক প্রোগ্রাম চালানো যাক কিছু নির্বাণ না.
আপনি প্রস্থান এ ব্যবহারে এখানে নিচে দেখতে পাবেন -
শূন্য ব্লকে শূন্য বাইট.
আমরা বাকি কিছুই ছিল মানে এই প্রোগ্রাম থেকে প্রস্থান করার সময়.
সুতরাং pset6 মধ্যে চালু করার আগে, Valgrind চালানো এবং নিশ্চিত করুন যে আপনি আছে না করা
কোন মেমরি আপনার প্রোগ্রামে তথ্য ফাঁসের.
আপনি Valgrind সঙ্গে কোনো প্রশ্ন থাকে, কাছে পৌঁছান মুক্ত মনে.
কিন্তু এই যে আপনি এটি ব্যবহার করতে হয় কিভাবে.
অত্যন্ত সহজ - আপনি দেখতে প্রস্থান এ ব্যবহারে আছে -
কোন ব্লকে কোনো বাইট.
>> সুতরাং আমরা সন্নিবেশ নোড কাজ ছিল.
আমি এখানে দুটি অন্যান্য কার্যাবলী ছিল - নোড এবং বিনামূল্যে নোড মুদ্রণ.
আবার, এই যে ফাংশন আপনি অনুশীলন জন্য ভাল হতে যাচ্ছে
তারা সঙ্গে আপনি না শুধুমাত্র সাহায্য করবে, কারণ এই নমুনা ব্যায়াম কিন্তু
সমস্যা সেট.
তারা জিনিষ বেশ ঘনিষ্ঠভাবে নেভিগেশন ম্যাপ আপনি কি করতে চান আছে চলুন
সমস্যা সেট.
কিন্তু আমি নিশ্চিত করতে চাই না আমরা সবকিছু নেভিগেশন স্পর্শ.
এবং হ্যাশ টেবিল এছাড়াও অত্যন্ত গুরুত্বপূর্ণ হয় আমরা অধ্যায় এই মধ্যে কি করছেন
সপ্তাহে - অথবা সমস্যা সেটে.
>> সুতরাং আমরা অধ্যায় শেষ করতে যাচ্ছেন হ্যাশ টেবিল সম্পর্কে কথা বলা.
আপনি বিজ্ঞপ্তি যদি আমি একটি একটু হ্যাশ টেবিল.
আমরা কথা বলছি না তবে, প্রায়.
আমরা একটি বিভিন্ন বিষয়ে কথা হয় হ্যাশ টেবিল ধরণ.
আর এর মূলে, একটি হ্যাশ টেবিল এ একটি ছাড়া আর কিছুই নয়
অ্যারে প্লাস একটি হ্যাশ ফাংশন.
আমরা শুধু একটি বিট জন্য কথা বলতে যাচ্ছেন নিশ্চিত সবাই কি একটা বোঝে না
হ্যাশ ফাংশন.
এবং আমি এটি যে এখন আপনি কহন করছি দুটি জিনিস ছাড়া আর কিছুই -
একটি অ্যারে এবং একটি হ্যাশ ফাংশন.
এবং এখানে পদক্ষেপের মধ্য দিয়ে যায় যা এই কাজ করে.
>> আমাদের অ্যারে আছে.
আমাদের ফাংশন আছে.
বিশেষ করে, হ্যাশ ফাংশন প্রয়োজন এই সঙ্গে জিনিষ কয়েক করতে.
আমি বিশেষভাবে কথা বলতে যাচ্ছি সম্পর্কে এই সমস্যা সেট.
এটা সম্ভবত যাচ্ছে একটি পংক্তি গ্রহণ.
এবং কি এটি ফিরে যাচ্ছে?
কি তথ্য টাইপ?
Alden?
আপনার হ্যাশ ফাংশন ফিরে?
একটি পূর্ণসংখ্যা.
তাই এই কি হ্যাশ হয় টেবিল নিয়ে গঠিত -
অ্যারে আকারে একটি টেবিল এবং একটি হ্যাশ ফাংশন.
কিভাবে এটি কাজ করে?
এটি তিনটি ধাপে কাজ করে.
আমরা এটা একটি কি দিতে.
এই ক্ষেত্রে, আমরা এটি একটি পংক্তি দেব.
আমরা ধাপে এক প্রতি হ্যাশ ফাংশন কল কী নেভিগেশন এবং আমরা একটি মূল্য পেতে.
>> বিশেষ করে, আমরা বলবো আমরা একটি পূর্ণসংখ্যা পেতে.
যে পূর্ণসংখ্যা, খুব নির্দিষ্ট আছে যে পূর্ণসংখ্যা হতে পারে কি সীমা.
এই উদাহরণে, আমাদের অ্যারের আকার তিনটি হল.
সুতরাং যে পূর্ণসংখ্যা কি নম্বর হতে পারেন.
বৈধ মান পরিসীমা কি যে পূর্ণসংখ্যা, এই ফেরত টাইপ
ফাংশন হ্যাশ?
শূন্য, এক এবং দুই.
হ্যাশ ফাংশন বিন্দু হয় অ্যারের মধ্যে স্থান চিন্তা
আমাদের কী হবে যেখানে.
শুধুমাত্র তিনটি সম্ভাব্য আছে এখানে জায়গা -
শূন্য, এক, অথবা দুই.
তাই এই ফাংশন ভাল রিটার্ন শূন্য, এক, অথবা দুই.
এই অ্যারের মধ্যে কিছু বৈধ সূচিপত্র.
>> এবং তারপর, এটা ফেরৎ যেখানে উপর নির্ভর করে আপনি খোলা আছে অ্যারের দেখতে পারেন
মূল্য বন্ধনী.
আমরা কী করা যে যেখানে.
সুতরাং আমরা কুমড়া মধ্যে নিক্ষেপ, আমরা শূন্য নামা.
অ্যারে বন্ধনী 0, আমরা কুমড়া করা.
আমরা আমরা এক না পারা, বিড়াল মধ্যে নিক্ষেপ করা.
আমরা এক সময়ে বিড়াল রাখা.
আমরা মাকড়সা স্থাপন করা.
আমরা দুই নামা.
আমরা অ্যারের বন্ধনী দুই এ মাকড়সা করা.
এটা এত চমৎকার হবে যদি এটা যে মত কাজ করেন.
কিন্তু দুর্ভাগ্যক্রমে, আমরা দেখতে পাবেন এটি কিছুটা জটিল.
>> আমরা, সেখানে কোন প্রশ্ন পেতে আগে সম্পর্কে এই মৌলিক
একটি হ্যাশ টেবিল সেট আপ?
এই ঠিক একটি চিত্র নয় আমরা বোর্ডে সৃষ্টি কি.
কিন্তু যেহেতু আমরা আমি বোর্ডে এটি সৃষ্টি এটি আরও ঢোকা যাচ্ছে না.
মূলত কি, জাদু কালো বাক্স - অথবা এই ক্ষেত্রে, বালি হাঁস বাক্স - একটি হাজার
হ্যাশ ফাংশন buckets মধ্যে তাদের রাখে.
এবং এই উদাহরণে আমরা করছি নাম নির্বাণ না.
আমরা যুক্ত ফোন নির্বাণ করছি বালতি নামের সংখ্যা.
তবে আপনি যদি খুব ভাল পারে শুধু বালতি নাম রাখা.
>> এই কি শুধু একটি ছবি হয় আমরা বোর্ডে সৃষ্টি.
আমরা যদিও, সম্ভাব্য pitfalls আছে.
এবং দুটি বিশেষ আছে আমি উপর যেতে চান যে স্লাইড.
প্রথমটি সম্পর্কে একটি হ্যাশ ফাংশন.
তাই আমি, প্রশ্ন জিজ্ঞাসা কি একটি ভাল হ্যাশ ফাংশন করে তোলে?
আমি দুই উত্তর দিতে.
প্রথম এটি নিয়ন্ত্রণবাদী যে হয়.
হ্যাশ ফাংশন প্রসঙ্গে, এই কি মানে?
হ্যাঁ?
>> AUDIENCE: এটা জানতে পারেন ধ্রুব সময় সূচী?
>> JASON HIRSCHHORN: যে এটা মানে না.
কিন্তু যে একটি ভাল অনুমান আছে.
অন্য কেহ একটি অনুমান আছে এই মানে কি?
এটা একটা ভাল হ্যাশ ফাংশন নিয়ন্ত্রণবাদী হয়?
অ্যানি?
>> AUDIENCE: একটি কি শুধু ম্যাপ করা যেতে পারে যে হ্যাশ টেবিল এক জায়গায়.
>> JASON HIRSCHHORN: যে ঠিক অধিকার.
আপনি কুমড়া রাখা প্রতিটি সময়, এটা সবসময় শূন্য ফেরৎ.
আপনি কুমড়া এবং আপনার হ্যাশ স্থাপন করা হলে ফাংশন শূন্য ফেরৎ কিন্তু একটি হয়েছে
কিছু ফিরে সম্ভাবনা শূন্য ছাড়া অন্য বৃহত্তর -
তাই হয়ত এটা কখনো কখনো এক ফিরে আসতে পারেন বা দুই অন্যান্য বার -
যে একটি ভাল হ্যাশ ফাংশন নয়.
আপনি ঠিক অধিকার.
আপনার হ্যাশ ফাংশন ফেরত পাঠাবেন জন্য এই ক্ষেত্রে একই সঠিক পূর্ণসংখ্যা,,
একই সঠিক স্ট্রিং.
>> হয়তো এটা একই সঠিক পূর্ণসংখ্যা ফেরৎ একই সঠিক স্ট্রিং জন্য
নির্বিশেষে ক্যাপিটালাইজেশন এর.
কিন্তু যে ক্ষেত্রে এটি এখনও নিয়ন্ত্রণবাদী কারণ একাধিক জিনিসের
একই মান সম্মুখের ম্যাপ করা হয়.
যে সূক্ষ্ম.
যতদিন এক কেবল আছে হিসাবে একটি প্রদত্ত ইনপুট জন্য আউটপুট.
>> ঠিক আছে.
দ্বিতীয় ব্যাপার হল এটা বৈধ সূচকের ফেরৎ.
আমরা যে আগে প্রতিপালিত.
এই হ্যাশ ফাংশন -
ছেলে উহু -
একটি হ্যাশ ফাংশন উচিত বৈধ সূচক ফিরে.
তাই বলে -
এর পিছনে এই উদাহরণ থেকে যান.
আমার হ্যাশ ফাংশন আপ counts শব্দ অক্ষর.
যে হ্যাশ ফাংশন এর.
এবং যে পূর্ণসংখ্যা ফেরৎ.
আমি শব্দের একটি আছে সুতরাং, যদি এটা এক ফিরে যাচ্ছে.
এবং এটা অধিকার এখানে একটি করা যাচ্ছে.
আমি কি শব্দ ব্যাট করিয়ে তাহলে কি হবে?
এটি তিনটি ফিরে যাচ্ছে.
কোথায় ব্যাট যেতে পারে?
>> এটি উপযুক্ত না.
কিন্তু কোথাও যেতে প্রয়োজন.
এই সব পরে আমার হ্যাশ টেবিল, এবং সবকিছু কোথাও যেতে প্রয়োজন.
তাই যেখানে ব্যাট যেতে হবে?
কোন চিন্তা?
অনুমান?
গুড অনুমান?
>> AUDIENCE: জিরো.
>> JASON HIRSCHHORN: কেন শূন্য?
>> AUDIENCE: যেহেতু তিন modulo তিন শূন্য!
>> JASON HIRSCHHORN: তিন modulo তিনটি শূন্য.
এটা একটি মহান অনুমান হয়, এবং যে সঠিক নয়.
তাই এই ক্ষেত্রে এটি করা উচিত সম্ভবত শূন্য এ যান.
তাই একটি ভালো উপায় নিশ্চিত যে এই হ্যাশ ফাংশন শুধুমাত্র বৈধ সূচকের হয় ফেরৎ
টেবিলের আকার দ্বারা এটি modulo করতে.
আপনার দ্বারা যাহা এই আয় modulo যদি তিন, আপনি সবসময় পেতে যাচ্ছেন
শূন্য, এক, এবং দুই মধ্যে কিছু.
এবং এই সবসময় সাত ফেরৎ, এবং যদি আপনি সবসময় তিনটি দ্বারা modulo, আপনি আছেন
সবসময় একই জিনিস পেতে যাচ্ছে.
>> তাই এটি এখনও নিয়ন্ত্রণবাদী এর আপনি modulo যদি.
কিন্তু নিশ্চিত করবে আপনি যে কিছু পেতে না -
একটি অবৈধ শিল্প.
সাধারণত, যে modulo হওয়া উচিত আপনার হ্যাশ ফাংশন ভিতরে.
তাই আপনি যদি এই নিয়ে চিন্তা করতে হবে না.
আপনাকে কেবল তা নিশ্চিত করতে পারেন এই একটি বৈধ সূচিপত্র হয়.
এই প্রথম কোন প্রশ্ন সম্ভাব্য ফাঁদ?
>> ঠিক আছে.
এবং সেখানে আমরা যেতে.
পরবর্তী সম্ভাব্য ফাঁদ, এবং এই বড় এক.
কি যদি দুটি নির্দেশক মানচিত্র একই মান হবে?
তাই এই হাতল দুটি উপায় আছে.
প্রথম এক রৈখিক বলা হয় আমি যা, অনুসন্ধান
উপর যেতে যাচ্ছে না.
কিন্তু আপনার সাথে পরিচিত হতে হবে কিভাবে যে কাজ করে এবং যে কি হয়.
>> আমি উপর যেতে যাচ্ছি দ্বিতীয় এক যে যে অনেক এক কারণ
মানুষ সম্ভবত সিদ্ধান্ত শেষ হবে তাদের সমস্যা সেটে ব্যবহার.
অবশ্যই, আপনি করতে হবে না.
কিন্তু সমস্যা সেট, অনেক মানুষের জন্য একটি হ্যাশ টেবিল তৈরি করতে বেছে ঝোঁক
বাস্তবায়ন পৃথক chaining সঙ্গে তাদের অভিধান.
সুতরাং আমরা এটা মানে কি ধরে যেতে চলুন সঙ্গে একটি হ্যাশ টেবিল তৈরি করতে
পৃথক chaining.
>> তাই আমি কুমড়া স্থাপন করা.
এটি শূন্য ফেরৎ.
এবং আমি এখানে কুমড়া করা.
তারপর আমি রাখা -
অন্য হ্যালোইন-themed জিনিস কি?
>> AUDIENCE: ক্যান্ডি.
>> JASON HIRSCHHORN: ক্যান্ডি!
এটা একটি মহান এক.
আমি মিছরি, এবং মিছরি রাখা এছাড়াও আমার শূন্য আপনি.
আমি কি করতে পারি?
কোন ধারনা?
আপনি সব ধরণের জানি কারণ পৃথক কি chaining হয়.
সুতরাং কোন ধারনা কি?
হ্যাঁ.
>> AUDIENCE: স্ট্রিং ফেলে আসলে হ্যাশ টেবিল.
>> JASON HIRSCHHORN: সুতরাং আমরা চলুন এখানে উপর ভাল ধারণা আঁকা.
ঠিক আছে.
>> AUDIENCE: hashtable আছে [শ্রবণাতীত]
স্থানটিকে যে পয়েন্টার একটি তালিকা প্রারম্ভে.
এবং তারপর কুমড়া প্রথম মান হতে থাকে যে লিঙ্ক তালিকা এবং মিছরি করা
যে লিঙ্ক তালিকায় দ্বিতীয় মান.
>> JASON HIRSCHHORN: ঠিক আছে.
মার্কাস, যে ছিল অসামান্য.
আমি যে ভেঙ্গে যাচ্ছি.
মার্কাস কি বলছে না কুমড়া মুছে ফেলা.
যে খারাপ হবে.
অন্য কোথাও মিছরি করা উচিত.
আমরা শূন্য এ উভয় তাদের করা চলুন.
কিন্তু আমরা মোকাবেলা করতে যাচ্ছেন দ্বারা শূন্য এ তাদের নির্বাণ
শূন্য এ তালিকা তৈরি.
এবং আমরা একটি তালিকা তৈরি করতে যাচ্ছেন শূন্য ম্যাপ করা যে সবকিছু.
এবং আমরা তৈরি করতে শিখেছি ভালো উপায় বড় হয়ে যায় এবং সঙ্কুচিত করতে পারেন একটি তালিকা
পরিবর্তনশীল মধ্যে নয় অন্য অ্যারের.
তাই না একটি বহু - মাত্রিক অ্যারে.
তবে একটি লিঙ্ক তালিকা তৈরি করতে.
>> তাই কি তিনি প্রস্তাব -
আমি একটি নতুন পেতে যাচ্ছি -
, পয়েন্টার সঙ্গে একটি অ্যারে তৈরি হয় পয়েন্টার একটি অ্যারে.
ঠিক আছে.
কোন ধারণা বা ইঙ্গিত কি ধরনের এই পয়েন্টার হওয়া উচিত?
মার্কাস?
>> AUDIENCE: যাও পয়েন্টার -
>> JASON HIRSCHHORN: আপনি কারণ একটি লিঙ্ক তালিকা যাতে, তিনি বলেন -
>> AUDIENCE: নোড পয়েন্টার?
>> JASON HIRSCHHORN: নোড পয়েন্টার.
যদি আমাদের যুক্ত অনেক কিছু তালিকা নোড তারপর তারা
নোড পয়েন্টার হতে হবে.
তারা প্রাথমিকভাবে কি সমান হয়?
>> AUDIENCE: শূন্য.
>> JASON HIRSCHHORN: শূন্য.
সুতরাং আমাদের খালি জিনিস আছে.
কুমড়ো আয় শূন্য.
আমরা কি করব?
এটি মাধ্যমে আমার হাঁটুন?
বাস্তবিক, মার্কাস ইতিমধ্যে আমাকে দিয়েছেন.
অন্য কারো এটা মাধ্যমে আমাকে হেটে যেতে.
আমরা কি কি যখন আমরা -
এই অনুরূপ দেখায় আমরা শুধু সেটিই ছিল.
Avi.
>> AUDIENCE: আমি একটি অনুমান নিতে যাচ্ছি.
সুতরাং আপনি মিছরি পেতে হলে.
>> JASON HIRSCHHORN: হ্যাঁ.
ভাল, আমরা কুমড়া পেয়েছিলাম.
আসুন আমাদের প্রথম এক পেতে যাক.
আমরা কুমড়া পেয়েছিলাম.
>> AUDIENCE: ঠিক আছে.
কুমড়ো আয় শূন্য.
সুতরাং আপনি যে এটা করা.
অথবা আসলে, আপনি এটা করা লিঙ্ক তালিকায়.
>> JASON HIRSCHHORN: কিভাবে আমরা কি লিঙ্ক তালিকায় রাখা?
>> AUDIENCE: ওহ, প্রকৃত বাক্য গঠন?
>> JASON HIRSCHHORN: শুধু পায়চারি -
আরো বলতে.
আমরা কি করব?
>> AUDIENCE: আপনি শুধু সন্নিবেশ এটি প্রথম নোড হিসেবে.
>> JASON HIRSCHHORN: ঠিক আছে.
সুতরাং আমরা আমাদের নোড, কুমড়া আছে.
এবং এখন কিভাবে আমি তা সন্নিবেশ করেন?
>> AUDIENCE: আপনি দায়িত্ব অর্পণ পয়েন্টার এটি.
>> JASON HIRSCHHORN: কোন পয়েন্টার?
>> AUDIENCE: শূন্য এ পয়েন্টার.
>> JASON HIRSCHHORN: তাই যেখানে এই বিন্দু করে?
>> AUDIENCE: এই মুহূর্তে নাল.
>> JASON HIRSCHHORN: ভাল, এটা নাল এর প্রতি নির্দেশ করে.
কিন্তু আমি কুমড়া নির্বাণ করছি.
তাই যেখানে এটি নির্দেশ করা উচিত?
>> AUDIENCE: কুমড়া করুন.
>> JASON HIRSCHHORN: কুমড়া করুন.
যথাযথভাবে.
তাই এই কুমড়া স্থানটিকে.
এবং যেখানে এই পয়েন্টার আছে কুমড়া বিন্দুতে?
থেকে
>> AUDIENCE: শূন্য.
>> JASON HIRSCHHORN: নাল.
যথাযথভাবে.
তাই আমরা শুধু কিছু ঢোকানো লিঙ্ক তালিকায়.
আমরা শুধু এই কাজ করার জন্য এই কোড লেখেন.
প্রায় আমরা প্রায় পেয়েছি সম্পূর্ণ কর্কশ.
এখন আমরা মিছরি সন্নিবেশ.
আমাদের মিছরি এছাড়াও শূন্য যায়.
সুতরাং আমরা মিছরি সঙ্গে কি করবেন?
>> AUDIENCE: এটা কি করে আমরা তা বাছাই করার চেষ্টা করছেন না.
>> JASON HIRSCHHORN: যে ঠিক অধিকার.
এটা নির্ভর করে কি না তা আমরা তা বাছাই করার চেষ্টা করছেন.
আসুন আমরা পারব না অনুমান করা যাক এটি সাজাতে যাচ্ছে.
>> AUDIENCE: সেটা, আমরা আলোচনা হিসেবে আগে, এটা শুধু এটা করা সহজ হচ্ছে
ডান শুরুতে তাই পয়েন্টার মিছরি শূন্য পয়েন্ট থেকে.
>> JASON HIRSCHHORN: ঠিক আছে.
উপর রাখা.
আমাকে এখানে ডান মিছরি তৈরি করা যাক.
তাই এই পয়েন্টার -
>> AUDIENCE: হ্যাঁ, এখন উচিত মিছরি প্রতি নির্দেশ করা.
তারপর পয়েন্টার থেকে আছে কুমড়া করতে ক্যান্ডি বিন্দু.
>> JASON HIRSCHHORN: যে পছন্দ?
এবং আমরা অন্য পেয়েছিলাম বলে শূন্য ম্যাপ জিনিস?
>> AUDIENCE: হ্যাঁ, আপনি ঠিক একই জিনিস করে?
>> JASON HIRSCHHORN: একই জিনিস কি.
তাই এই ক্ষেত্রে, আমরা না থাকলে এটা সাজানো রাখতে চান
বরং সহজ শোনাচ্ছে.
আমরা সূচিপত্র মধ্যে পয়েন্টার নিতে আমাদের হ্যাশ ফাংশন দ্বারা প্রদত্ত.
আমরা আমাদের নতুন নোডের যে বিন্দু আছে.
এবং তারপর এটি প্রতি নির্দেশ ছিল যাই হোক না কেন পূর্বে থেকে -
এই ক্ষেত্রে নাল, এ দ্বিতীয় ক্ষেত্রে কুমড়া -
এটি এর প্রতি নির্দেশ যাই হোক না কেন, যে পূর্বে, আমরা পরবর্তী মধ্যে যোগ
আমাদের নতুন নোড.
আমরা কিছু ঢোকাতে করছি শুরু থেকেই.
বস্তুত এই তুলনায় অনেক সহজ সাজানো তালিকা রাখতে চেষ্টা.
কিন্তু আবার, খঁোজার হবে আরো এখানে জটিল.
আমরা সবসময় শেষ হয়ে যেতে হবে.
>> ঠিক আছে.
পৃথক chaining সম্পর্কে কোন প্রশ্ন?
কিভাবে যে কাজ করে?
এখন তাদের জিজ্ঞাসা করুন.
আমি সত্যিই নিশ্চিত করুন যে আপনি সব করতে চাই আমরা খুঁজে আগাইয়া আগে এই বুঝতে.
>> AUDIENCE: কেন আপনি কুমড়া লাগাতে পারি এবং একই মধ্যে মিছরি
হ্যাশ টেবিল অংশ?
>> JASON HIRSCHHORN: ভাল প্রশ্ন.
কেন আমরা একই তাদের করা না হ্যাশ টেবিল অংশ?
ওয়েল, এই ক্ষেত্রে আমাদের হ্যাশ ফাংশন আয় দুইটাই জন্য শূন্য.
সুতরাং তারা সূচিপত্র শূন্য এ যাওয়া প্রয়োজন আমরা চলুন যেখানে যে কারণ
তাদের জন্য, দেখুন যদি আমরা কখনও তাদের সন্ধান করতে চান.
আবার, একটি রৈখিক অনুসন্ধান পদ্ধতির সঙ্গে আমরা শূন্য এ তাদের উভয় করা হবে না.
কিন্তু পৃথক চেইন পদ্ধতির মধ্যে, আমরা শূন্য এ উভয় তাদের করা চলুন
এবং তারপর শূন্য দেখা বন্ধ একটি তালিকা তৈরি করুন.
>> এবং আমরা কুমড়া মুছে ফেলা চাই না কেবল যে জন্য তারপর আমরা করব কারণ
কুমড়া ছিল অনুমান ঢোকানো না.
আমরা শুধু এক জিনিস রাখা খারাপ হবে যে অবস্থান.
তারপর হতে পারে কোন কখনও আমাদের সম্ভাবনা -
আমরা কি কখনও একটি প্রতিলিপি ছিল, তাহলে আমরা শুধু আমাদের প্রারম্ভিক মান নিশ্চিহ্ন হবে.
আমরা এই পদ্ধতির কি সুতরাং যে কেন.
আমরা না কেন বা যে - কিন্তু আবার, আমরা পৃথক chaining পদ্ধতির পছন্দ,
অন্যান্য অনেক পন্থা আছে যা একটি বেছে নিন পারে.
যে আপনার প্রশ্নের উত্তর আছে?
>> ঠিক আছে.
কার্লোস.
লিনিয়ার অনুসন্ধান জড়িত করা হবে -
আমরা শূন্য এ সংঘর্ষের পাওয়া, আমরা দেখুন পরের স্পট দেখাবে যদি
এটি খোলা ছিল এবং সেখানে লাগাতে হবে.
এবং তারপর আমরা পরের খেলা এবং চেহারা যে খোলা ছিল কিনা দেখতে এবং সেখানে লাগাতে হবে.
সুতরাং আমরা পরবর্তী উপলব্ধ খুঁজে খোলা স্পট এবং সেখানে লাগাতে হবে.
অন্য কোন প্রশ্ন?
হাঁ, Avi.
>> AUDIENCE: একটি যে পর্যন্ত অনুসরণ করে, আপনি পরবর্তী স্পট দ্বারা কি বোঝাতে চেয়েছেন?
হ্যাশ টেবিল বা একটি লিঙ্ক তালিকায়.
>> JASON HIRSCHHORN: রৈখিক জন্য প্রোগ্রামিং, কোন লিঙ্ক তালিকা.
হ্যাশ টেবিল পরবর্তী স্পট.
>> AUDIENCE: ঠিক আছে.
সুতরাং হ্যাশ টেবিল হতে হবে মাপ সক্রিয়া -
স্ট্রিং সংখ্যা মত আপনি ঢোকাতে ছিল?
>> JASON HIRSCHHORN: আপনি would এটা আসলে খুব বড় হতে চান.
হ্যাঁ.
এখানে কি আমরা একটা ছবি হয় শুধু বোর্ডে সৃষ্টি.
আবার, আমরা অধিকার এখানে একটি সংঘর্ষের আছে.
152 এ.
এবং আপনি আমরা তৈরি দেখতে পাবেন এটি বন্ধ একটি লিঙ্ক তালিকা.
আবার, হ্যাশ টেবিল পৃথক chaining পদ্ধতির এক আপনি নয়
সমস্যা সেট জন্য নিতে ছয় কিন্তু এক যে অনেক
ছাত্র নিতে দেয়.
সুতরাং যে নোট অন, আমাদের সংক্ষেপে কথা বলুন আমরা, সমস্যা ছয় সম্পর্কে খুঁজে আগাইয়া আগে
এবং তারপর আমি আপনার সাথে একটি গল্প শেয়ার করব.
আমরা তিন মিনিট আছে.
>> সমস্যা ছয় সেট.
আপনি চার ফাংশন আছে -
লোড,, আকার, এবং আন চেক.
লোড -
ভাল, আমরা চালু করছি শুধু এখন চাহিদার উপর.
আমরা বোর্ডে লোড সৃষ্টি.
এবং আমরা এমনকি অনেক কোডিং শুরু একটি লিঙ্ক তালিকা মধ্যে ঢোকাতে.
তাই চাহিদার তুলনায় অনেক বেশি হয় না আমরা কাজ করছি কি.
>> আপনি একবার চেক করে কিছু লোড.
এটা এই একই প্রক্রিয়া.
আপনি নিক্ষেপ যেখানে একই প্রথম দুটি অংশ হ্যাশ ফাংশন মধ্যে কিছু
এবং এর মূল্য পেতে.
কিন্তু এখন আমরা এটি ঢোকাতে করছি না.
এখন আমরা এটা খুঁজছেন.
আমি নমুনা কোড খোঁজার জন্য লিখিত আছে একটি লিঙ্ক তালিকায় কিছু.
আমি যে অনুশীলন করতে উত্সাহিত.
কিন্তু intuitively কিছু হয় ফাইন্ডিং কিছু ঢোকাতে প্রশংসনীয় অনুরূপ.
প্রকৃতপক্ষে, আমরা খুঁজে বের করার একটি ছবি সৃষ্টি একটি লিঙ্ক তালিকায় কিছু, চলন্ত
আপনি শেষ না হওয়া পর্যন্ত মাধ্যমে.
এবং আপনি শেষ আছে এবং না হলে সেটা খুঁজে তারপর, এটা আছে না.
সুতরাং যে মূলত, চেক করে.
>> পরবর্তী আকার.
এর আকার লাফালাফি করা.
অবশেষে আপনি আন করেছেন.
আন আমরা টানা হয়নি এক বোর্ডে বা এখনো কোডেড.
কিন্তু আমি আপনি এটি কোডিং চেষ্টা করতে উত্সাহিত আমাদের নমুনা যুক্ত তালিকা উদাহরণে.
কিন্তু intuitively আন বিনামূল্যে অনুরূপ -
বা আমি বলতে চাচ্ছি চেক অনুরূপ.
আপনি চলুন এখন প্রতিটি সময় ছাড়া মাধ্যমে, আপনি কেবল থেকে চেক করছি না
আপনি সেখানে আপনার মূল্য আছে কিনা দেখতে.
কিন্তু আপনি যে নোড গ্রহণ এবং করছি মূলত, এটি freeing.
যে আন যা করতে অনুরোধ জানাবে কি.
আপনি malloced করেছি বিনামূল্যে সবকিছু.
তাই আপনি যদি পুরো তালিকা মাধ্যমে চলুন আবার, পুরো হ্যাশ দিয়ে যাচ্ছিলেন
টেবিলে আবার.
এই সময় চেক করবেন না আছে তা দেখতে.
শুধু আছে কি মুক্ত.
>> এবং পরিশেষে আকার.
আয়তন বাস্তবায়িত করতে হবে.
আপনি মাপ বাস্তবায়ন না থাকে -
আমি ভালো এটি বলবো.
আপনি ঠিক মধ্যে আকার বাস্তবায়ন না করেন সহ কোড একটি লাইন
বিবৃতিতে ফিরে, আপনি আছেন ভুল মাপ করছেন.
তাই পুরো নকশা জন্য, নিশ্চিত সাইজ করা পয়েন্ট, আপনি ঠিক এক তা করছেন
সহ কোড লাইন, ফিরতি বিবৃতি.
>> এবং, এখনো Akchar আপ প্যাক না.
আগ্রহী বীবর.
আমি আপনাকে বলছি ধন্যবাদ বলতে চেয়েছিলেন অধ্যায় আসার জন্য.
একটি শুভ হ্যালোইন আছে.
এটা আমার পরিচ্ছদ হয়.
আমি বৃহস্পতিবার এই পরেছে করা হবে আমি অফিস এ আপনি দেখতে হলে.
এবং যদি আপনি আরো কিছু বিষয়ে জানতে আগ্রহী হন তাহলে পটভূমি এই পরিচ্ছদ হিসাবে, বোধ
2011 অনুচ্ছেদটি দেখুন বিনা আমি কেন একটি গল্প জন্য
কুমড়া পরিচ্ছদ পরা.
এবং এটি একটি দু: খিত গল্প.
তাই নিশ্চিত করুন যে আপনি আছে না কাছাকাছি কিছু টিস্যু.
কিন্তু যে তারিখে, আপনি কোনো আছে আমি ঘুরঘুর করব প্রশ্ন
বাইরে অধ্যায় পরে.
গুড লাক সমস্যা নেভিগেশন ছয় সেট.
এবং হিসাবে সবসময়, আপনি কোন আছে প্রশ্ন, আমাকে জানাতে.