[Powered by Google Translate] [অনুচ্ছেদ 6: কম আরামদায়ক]
[Nate Hardison] [হার্ভার্ড বিশ্ববিদ্যালয়]
[এটি CS50.] [CS50.TV]
ঠিক আছে. স্বাগতম অধ্যায় 6.
এই সপ্তাহে, আমরা বিভাগে চলুন ডেটা স্ট্রাকচার সম্পর্কে কথা করা,
প্রাথমিকভাবে কারণ এই সপ্তাহে এর সমস্যা spellr সেট
আছে একটি পৃথক তথ্য অনুসন্ধান গঠন আভা.
বিভিন্ন উপায়ে আপনি সমস্যা সেট দিয়ে যেতে পারেন একটি গুচ্ছ আছে,
এবং আরো ডাটা স্ট্রাকচার আপনি জানেন, আরো দুর্দান্ত জিনিস আপনি কি করতে পারেন.
>> সুতরাং আসুন শুরু করি. প্রথম আমরা stacks সম্বন্ধেই চলুন,
স্ট্যাকের এবং কিউ ডাটা স্ট্রাকচার যে আমরা যে বিষয়ে কথা বলতে যাচ্ছেন.
Stacks এবং queues সত্যিই সহায়ক যখন আমরা শুরু গ্রাফ বিষয়ে কথা বলছি,
যা আমরা এখন অধিকার যাতে খুব যাচ্ছেন না.
কিন্তু তারা সত্যিই বড় মৌলিক সি এস এর ডাটা স্ট্রাকচার এক বুঝতে ভাল.
সমস্যা সেট নির্দেশের মধ্যে বিবরণ,
যদি আপনি এটি থামা stacks সম্পর্কে, সমগোত্রীয় যাও হিসাবে আলোচনা
ডাইনিং ট্রে এর গাদা যে স্বয়ংপরিবেশন ভোজনালয় আপনাকে ডাইনিং হল এ আছে
যেখানে যখন ডাইনিং কর্মী আসে এবং ডাইনিং ট্রে রাখে পরে তারা তাদের পরিষ্কার করেছি,
তারা অন্যান্য উপরে এক গাদা.
এবং তারপর যখন বাচ্চাদের খাবার পেতে আসা,
তারা বৈঠাচালনা ট্রে বন্ধ, প্রথম শীর্ষ এক, তাহলে নীচের এক, তারপরে যে নীচের এক.
কার্যকরী, তাই, প্রথম ট্রে যে ডাইনিং কর্মীদের আরোপ করা হয় যে গত এক বন্ধ গৃহীত হয়.
গত এক যে ডাইনিং কর্মীদের আরোপ করা হয় যে প্রথম এক ডিনার পরার জন্য নেয়া বন্ধ.
সমস্যা সেট এর বৈশিষ্ট যা, আপনি যদি আপনার আগে থেকেই আছে না ডাউনলোড করতে পারেন,
আমরা একটি স্ট্যাক তথ্য stucture এই ধরনের struct মডেলিং ব্যবহার সম্পর্কে কথা বলুন.
>> তাই এখানে আমরা পেয়েছেন, এই অনুরূপ কি বক্তৃতা উপস্থিত হয়েছিল,
মধ্যে বক্তৃতা ছাড়া আমরা ints গৃহস্থালি * গুলি উল্টোদিকে সঙ্গে এই উপস্থাপিত.
এটি একটি স্ট্যাক যে দোকানে কি হবে?
Daniel? কি কি আমরা এই স্ট্যাকের মধ্যে সংরক্ষণ?
[ড্যানিয়েল] টেলিভিশন? >> আমরা এই স্ট্যাকের মধ্যে সংরক্ষণ করা হয় স্ট্রিং ঠিক,.
সমস্ত আপনার দরকার হবে যাতে একটি স্ট্যাক তৈরি একটি অ্যারে
একটি নির্দিষ্ট ক্ষমতা, এই ক্ষেত্রে যা,
ক্ষমতা সব ক্যাপ হওয়ার কারণে এর একটি ধ্রুবক হতে যাচ্ছে.
অ্যারে ছাড়াও এবং তারপর, আমরা সব ট্র্যাক প্রয়োজন হয় অ্যারের বর্তমান আকার.
একটি বিষয় মনে রাখবেন যে এখানে শীতল ধরনের
যে আমরা অন্য তথ্য গঠন, অ্যারের উপর স্তুপীকৃত তথ্য কাঠামো তৈরি করছেন.
বিভিন্ন উপায় stacks বাস্তবায়ন আছে.
কিন্তু আমরা আশা সংযুক্ত-তালিকা সমস্যা করছে পরে এটা পুরোপুরি এখনো, হবে,
আপনি কিভাবে আপনি সহজেই একটি লিঙ্ক তালিকা উপরে একটি স্ট্যাক হিসাবে ভাল বাস্তবায়ন করতে পারেন দেখতে পাবেন.
কিন্তু এখন জন্য, আমরা অ্যারে লাগিয়া থাকা করব.
তাই আবার, আমরা সব প্রয়োজন একটি অ্যারে এবং আমরা শুধু অ্যারের আকার ট্র্যাক প্রয়োজন.
[স্যাম] দুঃখিত, কেন এটা যে আপনি বলেন স্ট্যাকের স্ট্রিং এর উপরে?
এটা আমার মনে হয় ভালো স্ট্রিং স্ট্যাকের মধ্যে.
[Hardison] হ্যাঁ. আমরা, তৈরি করা আমরা আমাদের অ্যারের তথ্য গঠন করছেন গ্রহণ করছেন -
যে একটি বড় প্রশ্ন. তাই প্রশ্ন হচ্ছে যারা এই অনলাইন দেখছেন জন্য কেন,,
কেন আমরা এই বলে যে পংক্তি স্ট্যাকের উপর হয়,
কারণ এখানে এটা দেখে মনে হচ্ছে স্ট্রিং স্ট্যাকের ভিতর কি?
যা সম্পূর্ণই ক্ষেত্রে.
কি আমি উল্লেখ ছিল যে আমরা একটি অ্যারের ডাটা স্ট্রাকচার পেয়েছেন.
আমরা গৃহস্থালি * s এর একটি অ্যারের, স্ট্রিং এই অ্যারে পেয়েছেন,
এবং আমরা যে যাতে স্তুপীকৃত ডাটা স্ট্রাকচার নির্মাণ যুক্ত করতে যাচ্ছি.
>> সুতরাং একটি স্ট্যাক সামান্য একটি অ্যারের তুলনায় আরো জটিল.
আমরা একটি স্ট্যাক নির্মাণ একটি অ্যারে ব্যবহার করতে পারেন.
তাই যে যেখানে আমরা বলতে যে একটি অ্যারের স্ট্যাকের উপর নির্মিত হয়.
আমি তার আগে বলেন ভালো একইভাবে, আমরা একটি স্ট্যাক নির্মাণ একটি লিঙ্ক তালিকার শীর্ষে যাবে.
পরিবর্তে একটি অ্যারের আমাদের রাখা উপাদান ব্যবহার করে,
আমরা আমাদের উপাদান এবং রাখা প্রায় স্ট্যাকের নির্মাণ যুক্ত তালিকা ব্যবহার করতে পারেন.
এর উদাহরণ কয়েক ভিতর দিয়ে হেটে যেতে যাক, কিছু কোড দিকে তাকিয়ে আছে,
দেখতে আসলে এখানে কি ঘটছে.
বাম দিকে, আমি নিচে অধ কি যে স্ট্যাকের struct মত মেমরি দেখাবে করেছি
# যদি ক্ষমতা থেকে চার করা সংজ্ঞায়িত করা হয়.
আমরা আমাদের চার উপাদান গৃহস্থালি * অ্যারের পেয়েছেন.
আমরা স্ট্রিং [0], স্ট্রিং [1], স্ট্রিং [2], স্ট্রিং [3], পেয়েছেন
এবং তারপর যে আমাদের আকার পূর্ণসংখ্যা জন্য সর্বশেষ স্থান.
এই জানার জন্য? ঠিক আছে.
এটি কি কি যদি আমি সঠিক কাজ,
যা আমার কোড হতে হবে, শুধু একটি struct, স্তুপীকৃত struct নামক একটি গুলি ঘোষণা করা হয়.
এটা কি আমরা পেতে. এটি টিম সীমানা মেমরির মধ্যে এই পদাঙ্ক ডাউন.
প্রথম প্রশ্ন এখানে কি আছে এই স্ট্যাকের struct বিষয়বস্তু?
রাইট এখন তারা কিছুই, কিন্তু তারা সম্পূর্ণই কিছুই করছি না.
ঐগুলি আবর্জনা এই ধরণের. আমরা কোন ধারণা তাদের মধ্যে কি আছে.
যখন আমরা স্ট্যাকের গুলি ডিক্লেয়ার, আমরা নিক্ষেপ করছি মেমরি উপরে যে ডাউন.
এটা int তোমার ঘোষণা এবং এটি আরম্ভ করা হইনি মত ধরনের.
আপনি কি আছে জানি না. আপনি সেখানে কি পড়তে পারেন,
কিন্তু এটি সুপার সহায়ক হতে পারে না.
একটা জিনিষ আপনি কি সবসময় স্মরণ করতে চান যাহা করা দরকার সক্রিয়া সূচনা.
এই ক্ষেত্রে, আমরা সাইজ জিরো হতে আরম্ভ চলুন,
কারণ যে আউট আমাদের জন্য খুবই গুরুত্বপূর্ণ হতে চালু হচ্ছে.
আমরা এগিয়ে যাব সব পয়েন্টার, সব গুলি * গৃহস্থালির কাজ আরম্ভ করতে পারে নি,
কিছু বোধগম্য মান, সম্ভবত ফাঁকা.
কিন্তু এটি সম্পূর্ণই প্রয়োজন যে আমরা যে হইনি.
>> এখন, দুই stacks মূল অপারেশন হয়?
বক্তৃতা থেকে কেউ কি মনে রাখবেন আপনি stacks না? হ্যাঁ?
[স্টেলা] ঠেলাঠেলি এবং পপিং? >> যথাযথভাবে.
ঠেলাঠেলি এবং পপিং দুটি stacks মূল অপারেশন.
ধাক্কা এবং কি করবেন না? >> এটা উপরের দিকে কিছু রাখে
স্ট্যাকের, তারপর পপিং এবং এটি বন্ধ লাগে.
[Hardison] যথাযথভাবে. তাই ঠেলে স্ট্যাকের উপর কিছু push কর্মের.
এটা ডাইনিং কর্মীদের নির্বাণ পাল্টা একটি ডাইনিং ট্রে নিচে মত.
পপিং এবং একটি ডাইনিং ট্রে গ্রহণ স্ট্যাকের বন্ধ হয়.
চলুন শুরু করা যাক কি উদাহরণ কয়েক ভিতর দিয়ে হেটে যেতে
যখন আমরা স্ট্যাকের মধ্যে জিনিষ ধাক্কা.
যদি আমরা আমাদের স্ট্যাকের মধ্যে স্ট্রিং 'হ্যালো' ধাক্কা ছিল,
এই কি আমাদের চিত্রটি এখন এরকম দেখাবে.
দেখুন কি হয়?
আমরা আমাদের স্ট্রিং অ্যারের প্রথম উপাদান মধ্যে push করা
এবং আমরা আমাদের 1 আকার গণনা upped.
তাই আপনি যদি আমরা দুটি স্লাইড মধ্যে পার্থক্য তাকান, এখানে ছিল 0, এখানে ধাক্কা এর আগে.
Push-র পরে এখানে.
ধাক্কা আগে, পরে ধাক্কা.
এবং এখন আমরা আমাদের স্ট্যাকের মধ্যে একটি উপাদান আছে.
এটা পংক্তি "হ্যালো", এবং যে এটি.
আমাদের স্ট্রিং অ্যারের অ্যারের অন্য সবকিছু,, এখনও আবর্জনা.
আমরা এটি সক্রিয়া করা হয়নি.
চলুন শুরু করা যাক বলতে আমরা আমাদের স্ট্যাকের মধ্যে অন্য স্ট্রিং ধাক্কা.
আমরা এই সময় "দুনিয়া" ধাক্কা চলুন.
সুতরাং আপনি "দুনিয়া" এখানে "হ্যালো" উপরে যায় দেখতে পারেন,
এবং আকার গণনা ঃ 2 যাও যায়.
এখন আমরা "CS50", এবং আবার উপরে যাবেন ধাক্কা পারেন.
যদি আমরা ফিরে যেতে, আপনি কিভাবে আমরা স্ট্যাকের উপর জিনিষ ঠেলাঠেলি করছি দেখতে পারেন.
এবং এখন আমরা পপ পেতে.
যখন আমরা স্ট্যাকের কিছু বন্ধ popped, কি ঘটেছে?
কেহ পার্থক্য দেখতে? এটি বেশ সূক্ষ্ম.
[ছাত্র] মাপ. >> হ্যাঁ, আকার পরিবর্তিত হয়েছে.
>> আপনি আর কি পরিবর্তন আশা করে?
[ছাত্র] স্ট্রিং খুব,. >> রাইট. খুব পংক্তি.
এটা পরিনত হয় যে আপনি এটি যখন এই পথ করছেন,
কারণ আমরা উপাদান অনুলিপি করছি আমাদের স্ট্যাকের মধ্যে না,
আসলে আমরা কিছু করতে হবে না; আমরা শুধু আকার ব্যবহার করতে পারেন
যেসব সংখ্যা আমাদের অ্যারের মধ্যে ট্র্যাক রাখা
যাতে আমরা যখন আবার পপ আবার, আমরা শুধু আমাদের মাপ হ্রাস 1 ডাউন.
কোন প্রয়োজন আসলে যান এবং কিছু মুছে ফেলা হয় না.
ভীতু ধরনের.
এটি সক্রিয় আউট সাধারণত আমরা যে জিনিসের ঘাঁটান না কারণ এটি কম কাজ করার জন্য আমাদের করার.
যদি আমরা ফিরে যান এবং কিছু মুছে ফেলা হবে না, তাহলে কেন ভাবছি না?
সুতরাং যখন আমরা স্ট্যাকের পপ দুইবার বন্ধ, সব যে আছে হয় বার কয়েক আকার হ্রাস.
এবং আবার, এটি একমাত্র কারণ আমরা জিনিস অনুলিপি করছি আমাদের স্ট্যাকের মধ্যে না.
হ্যাঁ? এগিয়ে যান.
[ছাত্র, অপাচ্য] >> তারপর আর কি যখন আপনি আবার কিছু ধাক্কা?
আপনি যখন কিছু আবার ধাক্কা যেখানে, এটা যেতে না?
কোথায় বেসিল যান,? স্ট্রিং [1] রূপান্তর >>? >> রাইট.
কেন এটা স্ট্রিং [3] ঢোকা না?
[বেসিল] কারণ এটা ভুলে গেছেন যে ছিল স্ট্রিং মধ্যে কিছু আছে [1] [2]?
[Hardison] যথাযথভাবে. আমাদের স্ট্যাকের মূলত,, "ভুলে গেছি" যে এটা কোন কিছুই আয়ত্ত ছিল
এ স্ট্রিং [1] অথবা পংক্তি [2], তাই যখন আমরা "woot" ধাক্কা,
এটা উপাদান মধ্যে স্ট্রিং [1] এ যে রাখে.
কিভাবে এই কাজ সেখানে কোন প্রশ্ন একটি মৌলিক পর্যায়ে,?
[স্যাম] সুতরাং এটি কোনো ভাবে পরিমাণ শর্তাবলী গতিশীল না
অথবা স্ট্যাকের আকার শর্তাবলী?
[Hardison] যথাযথভাবে. এটি - পয়েন্ট ছিল যে এই একটি পরিবর্তনশীল growning স্ট্যাকের ছিল না.
এটি একটি স্ট্যাক যে অধিকাংশ, চার গৃহস্থালি * গুলি এ রাখা, সর্বাধিক চারটি জিনিস এ, করতে পারেন.
যদি আমরা চেষ্টা এবং একটি পঞ্চম জিনিস ধাক্কা ছিল কি, আপনি মনে হওয়া উচিত নয়?
[ছাত্র, অপাচ্য]
[Hardison] যথাযথভাবে. যে ঘটতে পারে একটি নম্বর আছে.
এটা সম্ভবত ফল্ট, seg কি আমরা উপর নির্ভর করতে পারে নি -
ঠিক কিভাবে আমরা ফিরে শেষ রূপায়ণকারী ছিল.
এটা মুছে ফেলা হতে পারে. এটা যে বাফার ওভারফ্লো যে আমরা ক্লাসে স্বপ্ন আছে পারে.
কি সবচেয়ে বড় বিষয় যে মুছে ফেলা হতে পারে
যদি আমরা আমাদের একটি স্ট্যাক অতিরিক্ত জিনিস ধাক্কা চেষ্টা করছেন?
সুতরাং আপনি একটি বাফার ওভারফ্লো উল্লেখ করেছে.
কি জিনিস যে লিখিত মাধ্যমে পেতে হবে অথবা stomped পারে
যদি আমরা একটি অতিরিক্ত জিনিস ধাক্কা চেষ্টা দূর্ঘটনাক্রমে উদ্বেলিত?
[ড্যানিয়েল, অপাচ্য] >> সম্ভাব্য.
কিন্তু প্রথমে, কি ঘটতে পারে? যদি আমরা একটি চতুর্থ বিষয় ধাক্কা চেষ্টা করছেন?
এটা অন্ততঃ এই মেমরি চিত্রটি যে আমরা পেয়েছেন সঙ্গে মাপ মুছে ফেলা যেতে পারে.
>> সমস্যা সেট নির্দেশের মধ্যে, যা আমরা কি করা রূপায়ণকারী যাচ্ছে আজ করছি,
আমরা কি কাজ করতে চান না, ঠিক হয় মিথ্যা ফিরে.
আমাদের ধাক্কা পদ্ধতি একটি বুলিয়ান মান ফিরে যাচ্ছে,
এবং যে বুলিয়ান মান সত্য যদি ধাক্কা সফল হবে
এবং মিথ্যা যদি আমরা আরো কিছু কারণ স্ট্যাকের পূর্ণ push করতে পারবেন না.
আসুন একটি কোড যে সামান্য বিট এর মাধ্যমে অধিকার এখন পদব্রজে ভ্রমণ.
এখানে আমাদের ধাক্কা ফাংশন.
আমাদের জন্য একটি স্ট্যাক ধাক্কা ফাংশন স্ট্রিং স্ট্যাক রাখতে নিতে যাচ্ছে.
এটা সত্য ফিরে যাওয়া যদি সফলভাবে স্ট্রিং push করা ছিল এর
স্ট্যাকের উপর এবং মিথ্যা অন্যথায়.
কি কোন পরামর্শ একটি ভাল সর্বপ্রথম যে জিনিসটি এখানে কি হতে পারে?
[স্যাম] তারপর যদি আকার ক্ষমতা সমান মিথ্যা ফিরে?
[Hardison] বিঙ্গো. চমৎকার কাজ.
যদি আকার ক্ষমতা, আমরা মিথ্যা ফিরে চলুন.
আমরা আমাদের কিছু স্ট্যাকের মধ্যে আরো না লাগাতে পারেন.
অন্যথায়, আমরা যাও স্ট্যাকের উপর কিছু করা চাই.
"স্ট্যাকের উপরে," প্রথমে কি?
[ড্যানিয়েল] ফাইলের আকার 0? >> ফাইলের আকার 0.
স্ট্যাকের পরে স্ট্যাকের মধ্যে এক জিনিস আছে উপরে কি? দু, আপনি জানেন?
[দু] একজন. >> ফাইলের আকার এক ঠিক,. আপনি রাখা যোগ মাপ,
এবং প্রত্যেক সময় আপনি অ্যারের মধ্যে নতুন উপাদান ইনডেক্স আকারের মধ্যে স্থাপন করছি.
আমরা এক অধি তজ্জাতীয় সাথে, না হলে যে বিষয়টি যুক্তিযুক্ত করতে পারেন.
সুতরাং আমরা আমাদের স্ট্রিং অ্যারের পেয়েছেন, আমরা মাপ সূচিতে এটি অ্যাক্সেস করতে যাচ্ছেন,
এবং আমরা সেখানে আমাদের গৃহস্থালি * সঞ্চয় করছেন যাচ্ছে.
কিভাবে এখানে কোন পংক্তিটি কপি আছে যাচ্ছে উপর লক্ষ্য করুন,
কোন মেমরি বরাদ্দকরণের গতিশীল?
এবং তারপর দু প্রতিপালিত কি আমরা এখন কি আছে,
কারণ আমরা অ্যারের মধ্যে যথাযথ স্থানে স্ট্রিং সঞ্চয় করে,
এবং তিনি বলেন যে আমরা এক দ্বারা আকার যাতে আমরা পরের ধাক্কা জন্য প্রস্তুত ছিল বাড়ায়.
সুতরাং আমরা s.size সঙ্গে তা করতে পারে +.
এই সময়ে, আমরা আমাদের অ্যারের মধ্যে push করা করেছি. শেষ জিনিস আমরা কি কি?
[ছাত্র] সত্য ফিরুন. >> সত্য ফিরুন.
সুতরাং এটা বেশ সহজ, সুন্দর একটি সহজ কোড. . খুব বেশী নেই
একবার আপনি কিভাবে স্ট্যাকের কাজ কাছাকাছি আপনার মাথা আবৃত করেছি,
এটা বেশ প্রয়োগ করা অপেক্ষাকৃত সহজ.
>> এখন, এই পরবর্তী অংশ একটি স্ট্যাকের স্ট্রিং বন্ধ পপিং হয়.
আমি এই অল্প কাজ কিছু সময় দিন আপনি না চলেছি.
এটা প্রায় মূলত কি আমরা এখানে ধাক্কা সম্পন্ন করেছি বিপরীত.
আমি কি সম্পন্ন করেছি আসলে - ওহো.
আমি উপর এখানে, এবং যন্ত্র মধ্যে বুট একটি যন্ত্র আপ করেছি,
আমি আপ সমস্যা টানা 5 স্পেসিফিকেশন সেট করেছি.
যদি আমরা এখানে জুম, আমরা আছি আমি cdn.cs50.net/2012/fall/psets/pset5.pdf এ দেখতে পারেন.
আপনি কি না এই কোড যে এখানে অবস্থিত section6.zip, ডাউনলোড করা?
ঠিক আছে. যদি আপনি যে, ঠিক না এখন, সত্যিই দ্রুত সম্পন্ন হয় না.
আমি আমার টার্মিনাল উইন্ডোতে এটি করব.
আমি আসলে তা এখানে আপ. হাঁ.
হ্যাঁ, স্যাম? >> আমি কেন আপনি s.string 'গুলি বন্ধনী আকারের = str বলতে সম্পর্কে একটি প্রশ্ন আছে?
Str কি? হয় যে আগে কোথাও সংজ্ঞায়িত করা হয়, অথবা - উহু, এ গৃহস্থালি * str?
[Hardison] হ্যাঁ, ঠিক. যে যুক্তি ছিল. >> ওহ, ঠিক আছে. দুঃখিত.
[Hardison] আমরা ইন ধাক্কা পংক্তি উল্লেখ করছি
অন্য যে প্রশ্নের আপ যে সত্যিই আমরা এখানে সম্পর্কে কি কথা বলতে পারে না আসা ছিল
আমরা গ্রহণ জন্য দেয়া হয় যে আমরা এই পরিবর্তনশীল নামক গুলি ছিল
যে সুযোগ রয়েছে এবং অ্যাক্সেসযোগ্য আমাদের মধ্যে ছিল.
আমরা গ্রহণ জন্য দেয়া হয় যে গুলি ছিল এই স্ট্যাকের struct.
তাই এই ধাক্কা কোড আমি ফিরে,
আপনি যে আমরা এই স্ট্রিংটি সালে পাশ ফেরার সঙ্গে স্টাফ করছি দেখতে পারেন
কিন্তু তারপর হঠাৎ সব, আমরা s.size অ্যাক্সেস ভালো, করছি, যেখানে গুলি বার থেকে আসে?
ইন কোড যে আমরা এ অধ্যায় আর্কাইভের মধ্যে চেয়ে চলুন
এবং তারপর উপাদান যে আপনি আপনার সমস্যা হবে সেটা সেট করে,
আমরা আমাদের স্ট্যাকের মধ্যে উপস্থিত একটি বিশ্বব্যাপী পরিবর্তনশীল struct করেছি
যাতে আমরা আমাদের বিভিন্ন ফাংশন তা অ্যাক্সেস থাকতে পারে
ছাড়াই নিজে কাছাকাছি পাস এবং রেফারেন্স দ্বারা এটি পাস হচ্ছে,
এটি সমস্ত জিনিস যে ধরনের কাজ.
আমরা ঠিক করছি অল্প ঠকায়, যদি আপনি হবে, যাও nicer জিনিস বানাতে.
যা কিছু আমরা এখানে করছেন কারণ এটা মজার জন্য করছি, বেশি সহজ.
প্রায়শই, আপনি এটাকে না যদি তারা এক বড় ডাটা স্ট্রাকচার আছে দেখতে পাবেন
যে তাদের মধ্যে প্রোগ্রাম হচ্ছে পরিচালিত হয়.
>> চলুন ফিরে যাও প্রয়োগ উপর যান.
কি সফলভাবে সবাই section6.zip পেতে পারি?
সকলে এটি আনজিপ আনজিপ section6.zip ব্যবহার করে?
আপনি যদি অধ্যায় 6 ডিরেক্টরিতে যান -
aah, সব জায়গা -
এবং আপনি এখানে কি তালিকা, আপনি দেখতে যে আপনি তিনটি ভিন্ন. গ ফাইল পেয়েছেন.
আপনি একটি কিউ, একটি sll, যা এককভাবে সংযুক্ত তালিকা, এবং একটি স্ট্যাক পেয়েছেন.
আপনি যদি খুলুন stack.c আপ,
আপনি যে আমরা এই struct আমাদের জন্য নির্ধারিত পেয়েছেন দেখতে পারেন,
সঠিক struct যে আমরা কেবল স্লাইড সম্পর্কে বললাম.
আমরা স্ট্যাকের জন্য আমাদের বিশ্বব্যাপী পরিবর্তনশীল পেয়েছিলাম,
আমরা আমাদের ধাক্কা ফাংশন আছে,
এবং তারপর আমরা আমাদের পপ ফাংশন পেয়েছেন.
আমি কোড সবার জন্য স্লাইডে ফিরে ধাক্কা আপ পাবেন,
কিন্তু আমি কি বলছি আপনি কি চাইবেন আপনার ক্ষমতা সবচেয়ে ভাল হয়,,
যান এবং পপ ফাংশন বাস্তবায়ন.
একবার আপনি এটি প্রয়োগ করেছি, আপনি স্ট্যাকের সঙ্গে এই কম্পাইল করতে পারেন,
এবং তারপর পরিসমাপ্তি স্ট্যাক এক্সেকিউটেবল চালানো,
এবং যে এই পরীক্ষার সব কোড থকা এখানে মূল যে দেবে.
এবং প্রধান আসলে ধাক্কা এবং পপ কল যত্ন নেয়
এবং এমনটা নিশ্চিত করা যে সমস্ত অধিকার মাধ্যমে সবকিছু যায়.
এটি স্ট্যাকের আকার সূচনা অধিকার এখানে
তাই আপনি যে বিষয়ে উদ্বিগ্ন হতে আরম্ভ করার প্রয়োজন হয় না.
আপনি যে এটি সক্রিয়া করা হয়েছে এর সঠিকভাবে অনুমান করতে পারেন
দ্বারা সময় যে আপনি এটি পপ অ্যাক্সেস ফাংশন.
কি যে জানার জন্য?
তাই আমরা এখানে. ধাক্কা কোড আছে.
আমি বলছি 5 বা 10 মিনিট সময় দেব.
এবং যদি আপনি অন্তর্বর্তী কোনো প্রশ্ন থাকে যখন আপনি কোডিং করছি,
তাদের কে জিজ্ঞাসা অট্ট দয়া করে.
তাই আপনি যদি একটি স্টিকিং পয়েন্ট পেতে ঠিক, জিজ্ঞাসা করুন.
সম্পর্কে জানুক, সবাই অন্য জানাতে.
আপনার প্রতিবেশীর সাথে খুব কাজ.
[ড্যানিয়েল] আমরা শুধুমাত্র আপনার রূপায়ণকারী পপ অধিকার এখন? >> শুধু পপ.
যদিও আপনি ধাক্কা বাস্তবায়ন কপি করতে পারেন যদি চান
যাতে টেস্টিং কাজ করবে না.
কারণ এটার মধ্যে জিনিস পেয়ে পরীক্ষা হার্ড -
অথবা, এটা যাও পপিং জিনিষ পরীক্ষা স্ট্যাকের যদি আউট হয় স্ট্যাকের মধ্যে কিছু দিয়ে শুরু করতে না হার্ড.
>> পপ অনুমিত করা ফিরে যাও কি? স্ট্যাকের উপর থেকে উপাদান.
এটি উপাদান পেতে স্ট্যাকের মধ্যে শীর্ষ বন্ধ অনুমিত এর
এবং তারপর স্ট্যাকের মাপ হ্রাস,
এবং এখন আপনি উপরে উপাদান নষ্ট করেছি.
এবং তারপর আপনি উপরে ফিরে উপাদান.
[ছাত্র, অপাচ্য]
[Hardison] তাই কি যদি আপনি না যে? [ছাত্র, অপাচ্য]
কি শেষ পর্যন্ত কিন্তু তা সম্ভবত আপনি তা অ্যাক্সেস
একটি উপাদান যা এখনও সক্রিয়া করা হয়েছে, যাতে আপনার গণনা
যেখানে শেষ উপাদান হয় বন্ধ.
তাই এখানে, ধাক্কা মধ্যে যদি আপনি বিজ্ঞপ্তি,, আমরা স্ট্রিং s.size উপাদান এ অ্যাক্সেস
কারণ এটি একটি নতুন সূচক.
এটা স্ট্যাকের নতুন সর্বোচ্চ.
মধ্যে পপ যেহেতু, s.size পরবর্তী স্থান হবে,
স্থান সব আপনার স্ট্যাকের মধ্যে উপাদানের উপরে যে.
সুতরাং উপরের সবচেয়ে উপাদান s.size হয় না,
বরং, এটা এর অন্তরালে.
>> অন্যান্য জিনিস যখন না - করে পপ,
আপনাকে মাপ হ্রাস আছে.
আপনি যদি আমাদের সামান্য চিত্রটি ফিরে মনে রাখবেন ডান এখানে,
সত্যিই, আছে শুধু যে আমরা কি ঘটছে তা আমরা দেখেছি যখন বলা পপ
ছিল যে এই প্রথম আকার 2 নেমে গেলে, তাহলে 1.
তারপর যখন আমরা একটি নতুন উপাদান push করা, এটা সঠিক স্থানে যেতে যেতে হবে.
[বেসিল] যদি s.size 2 পরে, উপাদান 2 তা না যেতে হবে,
এবং তারপরে আপনি যে উপাদান প্রস্থান করতে চান চান?
তাই আপনি যদি আমরা গিয়েছিলাম - >> সুতরাং যাক এই সময়ে আবার এর চেহারা.
যদি এই এই সময়ে আমাদের স্ট্যাকের
এবং আমরা পপ,
যা সূচক হল উপরের সবচেয়ে উপাদান?
[বেসিল] এ 2, কিন্তু পপ 3 যাচ্ছে. >> রাইট.
তাই যে যেখানে আমাদের আকার হচ্ছে 3, কিন্তু আমরা সূচক 2 এ উপাদান পপ চান.
এটি বন্ধ আদর্শ এক যে আপনি অ্যারে এর শূন্য ইন্ডেক্স সঙ্গে আছে দ্বারা ধরনের.
সুতরাং আপনি তৃতীয় উপাদান পপ করতে চান, কিন্তু কোনো তৃতীয় উপাদান সূচক 3 হয় না.
এবং কারণ আমরা যে বিয়োগ 1 যখন আমরা ঠেলাঠেলি করছি না আছে
এখনই কারণ, আপনি নোটিশ উপরের সবচেয়ে উপাদান,
যদি আমরা এই সময়ে স্ট্যাকের মধ্যে অন্য কিছু ধাক্কা ছিল,
আমরা সূচক 3 এ ধাক্কা চায়.
এবং শুধু তাই যে আকার এবং সূচকগুলি সমপন্থী যখন আপনি ঠেলাঠেলি করছি.
>> কে একটি কাজ স্ট্যাকের বাস্তবায়ন না?
আপনি একটি কাজ স্ট্যাকের এক পেয়েছেন. আপনি কি এখনো পপ কাজ আছে?
[ড্যানিয়েল] হ্যাঁ. আমি তাই মনে করি.
>> প্রোগ্রাম এবং চলমান seg faulting না, এটা মুদ্রণ এর?
এটা "সফল" প্রিন্ট আউট যখন আপনি এটি চালানো?
হাঁ. গাদা না, এটি চালানোর জন্য, যদি সেটা ছাপে "সফল" আউট এবং না ধরাস না,
তারপর সব ভাল.
ঠিক আছে. এর প্রয়োগ যাও পুনরালোচনা সত্যিই দ্রুত করা যাক,
এবং আমরা এই ভিতর দিয়ে হেটে যেতে হবে.
যদি আমরা পপ সঙ্গে কি যাচ্ছে এখানে এর তাকান,
ড্যানিয়েল, কি ছিল প্রথম যে কাজটা আপনি করেছেন?
[ড্যানিয়েল] যদি s.size হয় 0 থেকে.
[Hardison] ঠিক আছে. এবং কেন আপনি না যে?
[ড্যানিয়েল] নিশ্চিত স্ট্যাকের ভিতরে কিছু ছিল না.
[Hardison] ডান. আপনি কি নিশ্চিত যে s.size হয় 0 থেকে পরীক্ষা করতে চান;
অন্যথায় কি, আপনি এরকম করতে না চান?
[ড্যানিয়েল] ফিরে নাল? >> ফিরে নাল, ঠিক.
তাই আপনি যদি s.size হয় 0 থেকে. তারপর কি আমরা চালু করতে হবে?
কি আমরা যদি স্ট্যাকের খালি হয় না?
[স্টেলা] আপনি মাপ হ্রাস? >> আপনি মাপ হ্রাস ঠিক আছে.
সুতরাং কিভাবে আপনি কি না যে? >> S.size--.
[Hardison] গ্রেট. এবং তারপর কি আপনি করবেন?
[স্টেলা] তারপর আমি ফিরে s.string [s.size].
[Hardison] গ্রেট.
অন্যথায় আপনি নাল ফিরে. হ্যাঁ, স্যাম?
[স্যাম] কেন এটা করা s.size + 1 টি প্রয়োজন হয় না?
[Hardison] প্লাস 1? >> হ্যাঁ. >> বুঝেছি.
[স্যাম] আমি কারণ হল আপনি 1 আউট গ্রহণ করছেন,
তারপর আপনি করা ফিরে এক যে তারা হাজির না যাও চলুন.
[Hardison] এবং এই ছিল শুধু কি আমরা এই সূচকগুলি 0 পুরো সমস্যার কথা বলা হয়েছিল.
তাই আপনি যদি আমরা এখানে আবার জুম.
যদি আমরা এই লোক তাকান সরাসরি, আপনি যে, যখন আমরা পপ দেখতে পারেন,
আমরা সূচক 2 এ উপাদান পপিং করছি.
>> সুতরাং আমরা আমাদের প্রথম মাপ হ্রাস হয়, তাহলে আমাদের আকার সূচক আমাদের সাথে মেলে.
আমরা যদি প্রথম হ্রাস না না আকার তারপর, আমরা মাপ -1 এবং তারপর হ্রাস করতে হবে.
গ্রেট. সব ভাল?
এই কোন প্রশ্ন?
বিভিন্ন উপায়ে এই হিসাবে ভাল লিখুন আছে.
আসলে, আমরা কিছু এমন কি কিছু করতে পারি - আমরা একটি এক অধি করতে পারেন.
আমরা এক লাইন রিটার্ন করতে পারেন.
তাই আসলে আমরা হ্রাস আগে আমরা যে করে ফিরে আসতে পারেন.
সুতরাং নির্বাণ - s.size আগে.
যে লাইন সত্যিই ঘন.
যেখানে মধ্যে পার্থক্য -. গুলি আকার এবং s.size--
যে এই postfix - তারা কল এটি postfix কারণ - আসে পরে s.size--
এর মানে হল ইনডেক্স খুঁজে বের করার উদ্দেশ্যে s.size পরীক্ষিত হয়
হিসাবে এটি বর্তমানে যখন এই লাইন মৃত্যুদন্ড কার্যকর করা হয়,
এবং তারপর এই - ঘটলে পরে লাইন মৃত্যুদন্ড কার্যকর করা হয়.
পরে সূচক s.size এ উপাদান ব্যবহার করা হয়.
এবং যে, কারণ আমরা হ্রাস প্রথম ঘটতে চান কি আমরা চাই না.
Othewise, আমরা অ্যারে অ্যাক্সেস করা যাচ্ছেন, কার্যকরীভাবে, চলাফেরার এলাকা - বহির্ভূত.
আমরা এক যে আমরা আসলে অ্যাক্সেস করতে চান উপরোক্ত উপাদান অ্যাক্সেস করা চলুন.
হাঁ, স্যাম? >> এটা দ্রুত বা কম RAM-র এক লাইন বা না করার জন্য ব্যবহার করেন?
[Hardison] সত্যি সত্যিই এটা নির্ভর করে.
[স্যাম, অপাচ্য] >> হ্যাঁ, এটা নির্ভর করে. আপনি কম্পাইলার ঠাট করতে পারেন
কম্পাইলার যে স্বীকৃতি পেতে সাধারণত,, আমি কল্পনা.
>> সুতরাং আমরা এই কম্পাইলারটি অপ্টিমাইজেশান উপাদান সম্পর্কে একটি সামান্য বিট উল্লেখ করেছি
যে আপনাকে কম্পাইল করতে পারেন,
এবং যে ব্যাপার ধরনের একটি কম্পাইলার যাও চিন্তা করতে পারেন,
উহু ভালো, হেই হয়তো, আমি এক অপারেশন মধ্যে এই সব কাজ করতে পারেন,
থেকে RAM-র মধ্যে লোড আকার পরিবর্তনশীল উল্টোদিকে,
এটি decrementing, এটি ফিরিয়ে সংরক্ষণকারী আউট, এবং তারপর লোড করে আবার তা ফিরে
এই অপারেশন বাকি প্রক্রিয়া.
কিন্তু সাধারণত নেই,, এই ধরণের জিনিস নয়
যে আপনার প্রোগ্রাম দ্রুত করতে যাচ্ছে.
কোন stacks আরও প্রশ্ন?
>> সুতরাং ঠেলাঠেলি এবং পপিং. আপনি যদি না যাও হ্যাকার সংস্করণ চেষ্টা করে দেখতে চান,
আমরা কি হ্যাকার সংস্করণ মধ্যে সম্পন্ন করেছি প্রকৃতপক্ষে সর্বস্বান্ত
এবং তৈরি এই স্ট্যাকের পরিবর্তনশীল বাড়া.
চ্যালেঞ্জ প্রাথমিকভাবে সেখানে আপ এখানে ধাক্কা ফাংশন,
যাও চিন্তা করা যে কিভাবে অ্যারে প্রসারণ করা
হিসাবে আপনি রাখা স্ট্যাকের উপর আরো এবং আরো উপাদান ঠেলে.
এটা আসলে খুব অতিরিক্ত কোড না.
আপনি যাও যাও যাও malloc সেখানে কল সঠিকভাবে পেতে স্মরণ আছে, - শুধু একটি কল
এবং তারপর চিন্তা করা আপনি যখন realloc কল চলুন.
এটা একটা মজা চ্যালেঞ্জ আপনি আগ্রহী হলে.
>> কিন্তু কিছু সময়ের জন্য, এর উপর সরানো যাক, এবং queues সম্পর্কে কথা বলতে আসুন.
এখানে মাধ্যমে স্ক্রোল করুন.
সারি একটি স্ট্যাকের বন্ধ সহোদর.
সুতরাং স্ট্যাকের মধ্যে, যে শেষ স্থাপন করা হয়েছে
প্রথম জিনিষ পরে ফাইলগুলি পুনরুদ্ধার করা.
আমরা এই শেষ সালে, প্রথম আউট, বা LIFO, ক্রম পেয়েছেন.
যেহেতু এ কিউ, হিসাবে আপনি যখন আপনি লাইনে দাঁড়িয়ে থেকে আশা করছি চাই,
প্রথম ব্যক্তি লাইন পেতে, প্রথম জিনিস কিউ 'র মধ্যে পেতে,
প্রথম যে কাজটা সারি থেকে উদ্ধার করা হয়.
Queues এছাড়াও ঘন ঘন ব্যবহৃত হয় যখন আমরা গ্রাফ সঙ্গে লেনদেন করছেন,
ভালো আমরা সম্পর্কে সংক্ষেপে বললাম stacks সঙ্গে,
এবং queues এছাড়াও অন্যান্য জিনিস এক গুচ্ছ জন্য সুবিধাজনক.
একটা জিনিষ যে আসে প্রায়ই আপ বজায় রাখার জন্য যেমন চেষ্টা, না,
একটি উপাদানের অনুসারে সাজানো তালিকা.
এবং আপনি একটি অ্যারের সাথে এটা করতে পারেন. আপনি একটি জিনিষ সাজানো একটি অ্যারের মধ্যে তালিকা তৈরি করতে পারেন,
কিন্তু যেখানে যে পায় প্রবঞ্চক তারপর হয় আপনি সবসময় খুঁজে পেতে আছে
উপযুক্ত স্থান পরবর্তী জিনিস সন্নিবেশ করুন.
তাই আপনি যদি 10 এর মাধ্যমে সংখ্যার একটি অ্যারের, 1 আছে,
এবং তারপর আপনি যে সব নম্বর 1 থেকে 100 এর মাধ্যমে যে প্রসারিত করতে চান,
এবং আপনি র্যান্ডম ক্রম এই সংখ্যা পেয়ে থাকেন এবং সবকিছু রাখতে চেষ্টা
সাজানো হিসাবে আপনি দিয়ে যেতে, আপনি শেষ পর্যন্ত নাড়াচাড়া অনেক কাজ হচ্ছে.
সঙ্গে queues এবং অন্তর্নিহিত ডাটা স্ট্রাকচার নির্দিষ্ট ধরনের কিছু নির্দিষ্ট,
আপনি আসলে রাখা এটি মোটামুটি সহজ করতে পারেন.
আপনি কিছু যোগ করুন এবং তারপর প্রতিটি সময় পুরো বিষয় রদবদল করতে হবে না.
তাছাড়াও আপনি কি আশেপাশে অভ্যন্তরীণ উপাদানের নড়ন অনেক কাজ আছে.
Queue.c এ অধ্যায় কোড সালে - যখন আমরা একটি কিউ তাকান, দেখতে পাবেন আপনি যে -
struct যে আমরা আপনাকে দিয়েছি struct হয় যে আমরা একটি স্ট্যাক জন্য আপনার দেওয়া সত্যিই অনুরূপ.
>> এই এক ব্যতিক্রম আছে, এবং যে এক ব্যতিক্রম
হয় যে আমরা এই অতিরিক্ত পূর্ণসংখ্যা নামক মাথা আছে,
এবং এখানে মাথা কিউ প্রধান সম্পর্কে অবগত থাকার জন্য,
বা সারিতে প্রথম উপাদান.
একটি স্ট্যাক সঙ্গে, আমরা উপাদান সম্পর্কে অবগত যে আমরা পুনরুদ্ধার সম্পর্কে রাখতে সক্ষম,
অথবা স্ট্যাকের উপরে, শুধু আকার ব্যবহার করে,
সঙ্গে একটি কিউ যেহেতু, আমরা দুই বিপরীত প্রান্তে নিয়ে ভোগ করছি.
আমরা এ প্রান্তে জিনিষ বন্ধনরজ্জু চেষ্টা করছেন, কিন্তু করছি তারপর সামনে থেকে জিনিষ ফেরত.
মাথা যাতে কার্যকরভাবে,, আমরা কিউ শুরুর সূচক আছে,
এবং আকার দেয় কিউ শেষে সূচী আমাদের
যাতে আমরা মাথা থেকে জিনিষ এবং পুনরুদ্ধার লেঙ্গুড় উপর জিনিস যোগ করতে পারেন.
সঙ্গে স্ট্যাকের যেহেতু, আমরা শুধুমাত্র কখনও স্ট্যাকের শীর্ষ সঙ্গে জড়িত.
আমরা স্ট্যাকের নীচে অ্যাক্সেস ছিল না.
আমরা শুধুমাত্র উপরের জিনিষ যোগ এবং গ্রহণ করে উপরের মধ্যে জিনিষ বন্ধ
তাই আমরা যে আমাদের struct ভিতরে অতিরিক্ত ক্ষেত্র প্রয়োজন ছিল না.
কিন্তু সাধারণত যে জানার জন্য?
ঠিক আছে. হ্যাঁ, Charlotte? [Charlotte, অপাচ্য]
[Hardison] এটা একটি বড় প্রশ্ন, এবং যে ছিল এক যে বক্তৃতা মধ্যে নিয়ে এসেছেন.
হয়তো কয়েকটি উদাহরণ দিয়ে হাঁটা চিত্রিত করা হবে কেন?
আমরা কিউ প্রধান হিসাবে [0] স্ট্রিং ব্যবহার করতে ইচ্ছুক না.
>> যাতে আমরা আমাদের কিউ কল্পনা আছে, আমরা একে কিউ কল চলুন.
আরম্ভে, যখন আমরা তা করেছি instantiated,
যখন আমরা তা করেছি ঘোষিত, আমরা কিছু সক্রিয়া নি.
এটা সব আবর্জনা. তাই আমরা নিশ্চিত যে আমরা আরম্ভ করা অবশ্যই চাই
উভয় মাপ এবং মাথা ক্ষেত্র 0, কিছু যুক্তিসঙ্গত হতে হবে.
আমরা এগিয়ে যেতে এবং আমাদের সারিতে উপাদান নাল আউট করতে পারে নি.
এবং এই চিত্রটি উপযুক্ত করা, বিজ্ঞপ্তি যে এখন আমাদের কিউ শুধুমাত্র তিনটি উপাদানের ধরে রাখতে পারেন;
যেহেতু আমাদের স্ট্যাকের চার রাখা যায়নি, আমাদের কিউ শুধুমাত্র তিনটি ধরে রাখতে পারেন.
এবং যে ঠিক এর ডায়াগ্রাম ফিট করা.
প্রথম যে কাজটা এখানে এইরকম ঘটনা আমরা স্ট্রিং "হাই" সারিবদ্ধ.
এবং ঠিক মত আমরা স্ট্যাকের সঙ্গে করেছিল, কিছুই এখানে বিভিন্ন ভয়ঙ্কর,
আমরা এ স্ট্রিং [0] এবং 1 দ্বারা আমাদের আকার বাড়ায় উপর স্ট্রিং নিক্ষেপ করা.
আমরা সারিবদ্ধ "বিদায়", এটা করা হয়.
তাই বেশিরভাগ অংশের জন্য একটি স্ট্যাক মত দেখাচ্ছে.
আমরা শুরু এখানে বন্ধ নতুন উপাদান, নতুন উপাদান, আকার রাখে ঊর্ধ্বগামী.
কি এই সময়ে যখন আমরা কিছু dequeue চান?
যখন আমরা dequeue করতে চান, যা উপাদান যে আমরা dequeue চান?
[বেসিল] টেলিভিশন [0]. >> জিরো. ঠিক অধিকার, বেসিল.
আমরা প্রথম পংক্তি, এই এক, "হাই" পরিত্রাণ পেতে চান.
কি ছিল অন্যান্য জিনিস পরিবর্তিত?
যখন আমরা স্ট্যাকের কিছু বন্ধ popped লক্ষ্য করুন, আমরা শুধু আকার পরিবর্তন,
কিন্তু এখানে, আমরা যে পরিবর্তনের একটি দম্পতি পেয়েছেন.
নেই শুধু আকার পরিবর্তন, কিন্তু মাথা পরিবর্তন আছে.
এই কোরআন এর বিন্দু পূর্ববর্তী ফিরে যাচ্ছে:
কেন আমরা এই মাথা হিসাবে ভাল আছে?
এটা এখন জানার জন্য, Charlotte? এর >> কাইন্ড.
[Hardison] কাইন্ড অফ? সুতরাং কি ঘটেছিল যখন আমরা dequeued?
কি মাথা না যে এখন খুবই মজার?
[Charlotte] ওহ, কারণ এটি পরিবর্তিত - ঠিক আছে. আমি বুঝতে পেরেছি.
কারণ মাথা - যেখানে মাথা অবস্থান শর্তাবলী পরিবর্তনের প্রতি নির্দেশ করা হয়.
তাই এটা এখন আর সবসময় শূন্য সূচক এক. >> হ্যাঁ, ঠিক.
যা ঘটেছে তা ছিল যদি উচ্চ উপাদান dequeueing
কাজ এবং আমরা এই মাথা ক্ষেত্র কি না ছিল
কারণ সবসময় আমরা আমাদের কিউ 0 সূচক মাথা এ ছিল এই স্ট্রিং কলিং,
তারপর আমরা কিউ বাকি নিচে নামান আছে চাই.
আমরা থেকে "বিদায়" থেকে নামান স্ট্রিং [1] স্ট্রিং [0] থাকতে চাই.
এবং স্ট্রিং [2] নিচে স্ট্রিং [1].
এবং আমরা উপাদানের সম্পূর্ণ তালিকার জন্য এই করতে চাই,
উপাদান সম্পূর্ণ অ্যারে.
এবং যখন আমরা একটি অ্যারের সাথে এই করছি, যে পায় সত্যিই ব্যয়বহুল.
তাই এখানে, এটি একটি বড় চুক্তি না. আমরা শুধু আমাদের অ্যারের মধ্যে তিনটি উপাদান আছে.
কিন্তু আমরা যদি একটি হাজার উপাদানের একটি কিউ অথবা একটি মিলিয়ন উপাদান ছিল,
এবং তারপর হঠাৎ সব, আমরা শুরু dequeue একটি গুচ্ছ তৈরীর একটি লুপ কল সব,
জিনিষ সত্যিই হয় মন্দীভূত হিসাবে সবকিছু জনতার ক্রমাগত নিচে যাচ্ছে.
আপনি কি জানেন 1 দ্বারা, স্থানান্তর নামান, 1, স্থানান্তর দ্বারা 1, 1 দ্বারা স্থানান্তর.
পরিবর্তে, আমরা এই মাথা ব্যবহার, আমরা এটি একটি "পয়েন্টার" যদিও এটা সত্যিই একটি পয়েন্টার না
কঠোর অর্থে; এটি একটি পয়েন্টার টাইপ না.
এটা কোন int * অথবা একটি গৃহস্থালি * অথবা যে ভালো কিছু নয়.
কিন্তু এটি অথবা আমাদের প্রতি নির্দেশ কিউ প্রধান কিনা তা নির্দেশ করে. হাঁ?
>> [ছাত্র] কিভাবে dequeue জন্য শুধু ঘুমাইয়া মাথা এ যা কিছু থাকে জানেন?
[Hardison] কিভাবে dequeue কীভাবে বন্ধ পপ মাথা এ যাই হোক না কেন এর জানি? >> রাইট, হাঁ.
>> কি তা আমি ঠিক যাই হোক না কেন এর প্রধান ক্ষেত্র ধার্য করা হয়.
তাই এই প্রথম ক্ষেত্রে, যদি আমরা চেহারা ডান এখানে,
আমাদের প্রধান 0, 0 সূচক. >> রাইট.
[Hardison] এটা ঠিক বলেছেন ঠিক আছে, ভাল, 0 সূচক এ উপাদান, স্ট্রিং "হাই",
আমাদের এ কিউ প্রধান উপাদান.
তাই আমরা যে লোক dequeue চলুন.
এবং যে যে উপাদান আহ্বানকারী ফিরে পরার হবে.
হ্যাঁ, সাদ? >> তাই মূলত মাথা সেট করে - যেখানে আপনি এটা সূচক যাচ্ছেন?
এটা এটি শুরু? >> হ্যাঁ. >> ঠিক আছে.
[Hardison] এটা হয়ে উঠছে আমাদের অ্যারের জন্য নতুন শুরু.
সুতরাং যখন আপনি কিছু dequeue, সব আপনি করতে হবে তা হচ্ছে সূচক q.head এ উপাদান অ্যাক্সেস,
এবং যে উপাদান যে আপনি চান dequeue হবে.
আপনাকে মাপ হ্রাস আছে.
আমরা কিছুক্ষণের মধ্যে যেখানে জিনিসপত্র পেতে এই সঙ্গে একটি সামান্য চতুর দেখতে পাবেন.
আমরা dequeue, এবং এখন, যদি আমরা আবার সারিবদ্ধ,
যেখানে আমরা সারিবদ্ধ?
যেখানে পরবর্তী উপাদান আছে আমাদের সারিতে যেতে?
বলুন, আমরা স্ট্রিং "সি এস" সারিবদ্ধ চান.
যা সূচক এটি যেতে হবে? [ছাত্রদের] টেলিভিশন [2]. >> দুই.
কেন না এবং 2 0?
[বেসিল] যেহেতু এখন মাথা 1 টি, তাই তালিকা শুরু ভালো যে?
[Hardison] ডান. এবং কি তালিকার শেষে উল্লেখ করে?
হয়েছিল কি আমরা আমাদের কিউ শেষে বোঝান ব্যবহার করে?
প্রধান কিউ আমাদের মাথা, আমাদের কিউ শুরুতে.
আমাদের কিউ শেষে কি? [ছাত্রদের] ফাইলের আকার. >> ফাইলের আকার, ঠিক.
তাই আমাদের নতুন উপাদান আকার এ যান, এবং অনেক উপাদান আছে যা আমরা খুলে মাথা এ খসা.
যখন আমরা পরবর্তী উপাদান সারিবদ্ধ, আমরা এ মাপ এটাকে নির্বাণ.
আপনি [ছাত্র] আগে রাখা যে যদিও মধ্যে, আকার ছিল 1 অধিকার,?
[Hardison] ডান. তাই নয় এ মাপ. ফাইলের আকার + +, কিন্তু +1 + মাথা.
কারণ আমরা মাথা পরিমাণ সবকিছু চলে যায়.
সুতরাং এখানে এখন, আমরা মাপ 1 সারিতে সূচক 1 এ যে শুরু পেয়েছেন.
লাঙ্গুলযুক্ত করা হয় সূচক 2. হ্যাঁ?
>> [ছাত্র] তাহলে কি হবে যখন আপনি dequeue স্ট্রিং [0], এবং মেমরি স্ট্রিং 'স্লট
শুধু emptied মূলত, পেতে, বা শুধু বিস্মৃত?
[Hardison] হ্যাঁ. এই অর্থে, আমরা তাদের করছি বিস্মরণ.
যদি আমরা তাদের জন্য কপি সংরক্ষণ করা হয় -
অনেক ডাটা স্ট্রাকচার প্রায়ই তাদের উপাদানের নিজের কপি সংরক্ষণ করবে
সুতরাং যে ব্যক্তি তথ্য গঠন ও পরিচালনার জন্য চিন্তা করবেন না
সম্পর্কে যেখানে সমস্ত পয়েন্টার যাচ্ছি.
তথ্য কাঠামো কিছু নিয়ে কথা যাও সব কপিতে, তসবিহ,
নিশ্চিত করুন যে সব সুসংগত করা চলতেই থাকে.
তবে, এই ক্ষেত্রে, ডাটা স্ট্রাকচার, শুধু জন্য সরলতা,
কপি কিছু যে আমরা তাদের মধ্যে সংরক্ষণ করছেন না হয়.
[ছাত্র] সুতরাং এটি একটি ধারাবাহিক অ্যারে -? >> হ্যাঁ.
যদি আমরা কি এই সংজ্ঞা কাঠামো ছিল ফিরে, এটা.
এটি শুধু একটি অ্যারের মান ভালো আপনি দেখা করেছি,
গৃহস্থালি * s এর একটি অ্যারে.
কিন্তু যে -? >> হ্যাঁ, আমি হতাশ ছিল
যদি আপনি অবশেষে মেমরি রান আউট হবেন কতক কতক যাও,
যদি আপনি এই সমস্ত আপনার অ্যারের মধ্যে খালি দাগ আছে?
[Hardison] হ্যাঁ, এটা একটা ভালো পয়েন্ট.
>> যদি আমরা কি ঘটেছে এর চেহারা এ এখন এই সময়ে,
আমরা আমাদের কিউ ভরা আপ করেছি, এটা মনে হচ্ছে.
কিন্তু আমরা আমাদের কিউ সত্যিই পূরণ না আপ
কারণ আমরা এই সারির যে এর আকার 2 আছে, কিন্তু এটি সূচক 1 টায় শুরু হয়,
কারণ যে যেখানে আমাদের মাথা পয়েন্টার হয়.
ভালো লেগেছে আপনি বলছে ছিল, যে স্ট্রিং এ উপাদান [0], 0 সূচক, সত্যিই আছে না.
এটা আর আমাদের মধ্যে উপস্থিত না.
আমরা শুধুমাত্র যান এবং এটি যখন আমরা dequeued মুছে ফেলা হয়েছে কি না বিরক্ত.
সুতরাং যদিও এটা দেখে মনে হচ্ছে আমরা মেমরি রান আউট করেছি, আমরা সত্যিই আছে না.
যে স্পট উপলব্ধ জন্য আমাদের ব্যবহার করার জন্য.
যথাযথ আচরণ, যদি আমরা চেষ্টা dequeue কিছু ছিল প্রথম
"বিদায়" চান, যে বিদায় প্রস্থান করা হবে.
এখন আমাদের কিউ সূচক 2 টায় শুরু হয় এবং মাপ হল 1.
এবং এখন যদি আমরা এবং আবার চেষ্টা করুন কিছু সারিবদ্ধ, 50 বলে,
50 এই স্পট মধ্যে সূচক 0 এ যেতে হবে
কারণ এটা এখনও আমাদের জন্য উপলব্ধ. হ্যাঁ, সাদ?
[Saad] স্বয়ংক্রিয়ভাবে যে কি ঘটবে?
[Hardison] এটা বেশ স্বয়ংক্রিয়ভাবে না ঘটবে. আপনি গণিত কি আছে
এটি কাজ করতে, কিন্তু মূলত আমরা কি কাজ করেছেন তা আমরা প্রায় আবৃত করেছি.
[Saad] এবং এটা ঠিক আছে যদি এই এটি মাঝখানে একটা গর্ত আছে?
[Hardison] এটা যদি আমরা গণিত আউট সঠিকভাবে কাজ করতে পারে.
>> এবং এটি সক্রিয় করে যে এটা আসলে যে mod অপারেটর সাথে হার্ড না.
তাই ঠিক মত আমরা সিজার এবং ক্রিপ্টো স্টাফ সঙ্গে কি,
mod ব্যবহার করে, আমরা জিনিস চারপাশে মোড়ানো যাও এবং পেতে পারেন বর্তা
কাছাকাছি এবং আশেপাশে এবং প্রায় সঙ্গে আমাদের কিউ,
পালন যে মাথা পয়েন্টার কাছাকাছি চলন্ত.
উল্লেখ্য যে আকার সর্বদা সম্মান কিউ 'র মধ্যে প্রকৃত উপাদানের সংখ্যা.
এবং এটি শুধু মাথা পয়েন্টার যে রাখে সাইকেল মাধ্যমে.
যদি আমরা কি ঘটেছে এখানে তাকান, যদি আমরা শুরুতে ফিরে যান,
এবং শুধুমাত্র আপনার দেখা মাথা কি হবে
যখন আমরা কিছু সারিবদ্ধ, মাথা কিছুই ঘটেছে.
যখন আমরা অন্য কিছু enqueued, মাথা কিছুই ঘটেছে.
যত তাড়াতাড়ি আমরা কিছু dequeued, মাথা এক দ্বারা যায়.
আমরা কিছু enqueued, মাথা কিছুই ঘটে.
যখন আমরা কিছু dequeue, হঠাৎ সব মাথা মান বৃদ্ধি হয়.
যখন আমরা কিছু সারিবদ্ধ, মাথা কিছুই ঘটে.
>> যদি আমরা আবার কিছু dequeue ছিল কি এই সময়ে ঘটতে পারে?
কোন চিন্তা? কি মাথার চান?
কি মাথার উচিত
যদি আমরা অন্য কিছু dequeue ছিল?
মাথা সূচক 2 এ অধিকার এখন হয়,
যার মানে কিউ 'র প্রধান হয় স্ট্রিং [2].
[ছাত্র] কোন 0 ফেরৎ? >> এটা 0 ফিরে উচিত. এটি চারিদিকে মোড়ানো ফিরে ঠিক করা উচিত.
এ পর্যন্ত, প্রতিটি সময় আমরা dequeue বলা হয়, আমরা আসছি মাথার এক যোগ,
মাথার এক যোগ, মাথার এক যোগ, মাথার এক যোগ.
যত তাড়াতাড়ি যে মাথা পয়েন্টার আমাদের অ্যারের মধ্যে শেষ সূচক বল,
তারপর আমরা একে শুরুতে চারপাশে মোড়ানো ফেরত, 0 ফিরে যান.
[Charlotte] কি একটি স্ট্যাকের মধ্যে কিউ ক্ষমতা নির্ধারণ করে?
[Hardison] এই ক্ষেত্রে, আমরা ঠিক করেছি একটি # সংজ্ঞায়িত করা হয়েছে ধ্রুবক ব্যবহার করে. >> ঠিক আছে.
[Hardison] প্রকৃত. গ ফাইল, আপনি কি এটা একটা সামান্য বিট দিয়ে যেতে পারে এবং গোবর
এবং এটি হিসাবে বড় অথবা হিসাবে সামান্য হিসাবে আপনি চান না.
[Charlotte] সুতরাং যখন আপনি এটি একটি কিউ তৈরি করছেন কিভাবে, আপনি কম্পিউটার জানি না
কিভাবে আপনি বড় স্ট্যাকের হতে চান?
[Hardison] এটা একটা বড় প্রশ্ন.
উপায়ে একটি দম্পতি আছে. এক মাত্র এটা সংজ্ঞায়িত হয় সামনে
এবং এই বলে যে এই সারির 4 উপাদান বা 50 বা উপাদান আছে 10,000 হবে.
অন্যান্য উপায় কি হ্যাকার সংস্করণ ভাবেন করছেন না হয়
এবং আপনার কিউ পরিবর্তনশীল হত্তয়া হিসাবে আরো অনেক ইন যোগ পেতে আছে ফাংশন তৈরি
>> [Charlotte] সুতরাং প্রথম বিকল্পের সাথে যেতে কি সিনট্যাক্স, আপনি ব্যবহার করবেন
যাও প্রোগ্রামকে স্পষ্টভাবে কি কিউ মাপ?
[Hardison] আহ. তাই আসুন এই নামা.
আমি stack.c এখানে এখনও নই, তাই আমি উপরে স্ক্রল আপ এখানে করছি না.
এই অধিকার আপনি এখানে দেখতে পারেন? এই ক্ষমতা # 10 সংজ্ঞায়িত.
এবং এই প্রায় একই সঠিক বাক্য গঠন যে আমরা কিউ জন্য আছে.
এ কিউ ছাড়া, আমরা এখানে যে অতিরিক্ত struct ক্ষেত্রের পেয়েছেন.
[Charlotte] ওহ, আমি ভাবলাম ক্ষমতা স্ট্রিং জন্য ক্ষমতা বোঝানো.
[Hardison] আহ. >> এটাই শব্দ সর্বাধিক দৈর্ঘ্য. >> বুঝেছি.
হাঁ. এখানে ক্ষমতা - যে একটি মহান বিন্দু.
এবং এই এমন কিছু বিষয় যা এর প্রবঞ্চক
কারণ আমরা এখানে কি ঘোষণা করেছেন তা গৃহস্থালি * s এর একটি অ্যারে.
পয়েন্টার একটি অ্যারে.
এই অক্ষর একটি শ্রেণীবিন্যাস.
এটা সম্ভবত আপনি কি যখন আপনি ফাইলটি করছি আপনার জন্য বাফার প্রকাশক পাচ্ছি, I / O,
যখন আপনি স্ট্রিং তৈরি করছি নিজে স্ট্যাকের উপর.
যাইহোক, আমরা কি এখানে পেয়েছেন হয় গৃহস্থালি * s এর একটি অ্যারে.
এটা পয়েন্টার একটি অ্যারে.
বাস্তবিক, যদি আমরা জুম আউট এবং আমরা তাকান কি এখানে হচ্ছে
উপস্থাপনার মধ্যে, আপনি যে প্রকৃত উপাদান, চরিত্র তথ্য দেখুন
অ্যারের মধ্যে নিজে সঞ্চিত না হয়.
আমাদের এখানে কি অ্যারের মধ্যে সঞ্চিত হয় পয়েন্টার অক্ষর তথ্য যাও.
ঠিক আছে. তাই আমরা কিভাবে কিউ মাপ ঠিক স্ট্যাকের সঙ্গে দেখা হয় পছন্দ করেছি,
আকার সর্বদা সম্মান কিউ 'র মধ্যে বর্তমানে উপাদানের সংখ্যা.
2 enqueues পরে, আকার হল 2.
আকার একটি dequeue পরে এখন হল 1.
অন্য সারিবদ্ধ পরে আকার ব্যাক আপ হয় 2.
তাই স্পষ্টভাবে আকার সারিতে উপাদানের সংখ্যা সম্মান করে,
এবং তারপরে শুধু মাথা সাইকেল রাখে.
এটা 0-1-2, 0-1-2, 0-1-2 থেকে যায়.
এবং প্রত্যেক সময় আমরা dequeue কল, মাথা পয়েন্টার পরের সূচক যাও মান বৃদ্ধি হয়.
এবং যদি আমার মাথা ধরে যেতে হয়, এটা প্রায় loops ফিরে যাও 0.
সুতরাং যে, আমরা dequeue ফাংশন লিখতে পারেন.
এবং আমরা সারিবদ্ধ ফাংশন জন্য পরিবর্তে আপনি না বাস্তবায়ন ছেড়ে যাচ্ছেন.
>> যখন আমরা আমাদের dequeue কিউ একটি উপাদান আউট,
কি ছিল প্রথম যে কাজটা করেছিলাম ড্যানিয়েল যখন আমরা শুরু stacks জন্য পপ ফাংশন লেখা?
আমাকে এমন কারো জন্য যিনি এখনও উচ্চারিত না থেকে শুনতে.
এর দেখতে দিন সাদ,, আপনি কি প্রথম ড্যানিয়েল জিনিস যখন তিনি লেখেন পপ হিসাবে কি কি মনে পড়ে?
[Saad] ছিল, এখন পর্যন্ত এটি ছিল - >> এমন কিছু একটা জন্য পরীক্ষিত.
[Saad] যদি আকার 0 চেয়ে বেশী. >> যথাযথভাবে.
এবং কি জন্য যে টেস্টিং?
[Saad] যে যদি অ্যারের ভিতরে কিছু আছে দেখতে পরীক্ষা ছিল.
[Hardison] হ্যাঁ. ঠিক. সুতরাং আপনি স্ট্যাকের কিছু আউট করে যদি খালি পপ করতে পারবেন না.
অনুরূপভাবে, আপনি একটি সারি থেকে কিছু না dequeue যদি এটা খালি করতে পারেন.
কি প্রথম জিনিস আমরা এখানে আমাদের dequeue ফাংশন কি করা উচিত, আপনি কি মনে করেন না?
[Saad] যদি আকার 0 তুলনায়? >> হ্যাঁ.
এই ক্ষেত্রে, আসলে আমি ঠিক করেছি যদি দেখতে 0 পরীক্ষিত.
যদি 0, আমরা নাল ফিরে আসতে পারেন.
কিন্তু সঠিক একই যুক্তি.
এই দিন এর সঙ্গে অবিরত.
যদি আকার 0 নয়, যেখানে উপাদান হল যে আমরা dequeue চান?
[Saad] এ মাথা? >> যথাযথভাবে.
আমরা শুধু আমাদের বৈঠাচালনা সারিতে প্রথম উপাদান বের করতে পারেন
প্রধান উপাদান দ্বারা এ অ্যাক্সেস.
কিছুই ছবি.
এর পরে, আমরা কি করা উচিত? আছে কি?
অন্য যে জিনিস সম্পর্কে আমরা dequeue মধ্যে সায়ীদ কী ছিল?
দুটি ব্যাপার ঘটতে থাকে, কারণ আমাদের কিউ পরিবর্তিত হয়েছে.
[ড্যানিয়েল] মাপ হ্রাস করুন. >> আমরা মাপ হ্রাস করা এবং মাথা বৃদ্ধি আছে? ঠিক.
মাথা বৃদ্ধি, আমরা অন্ধভাবে মাথা না, মনে রাখবেন বাড়াতে পারেন.
আমরা ঠিক না queue.head করতে পারেন +.
আমরা আরও ক্ষমতা দ্বারা এই mod অন্তর্ভুক্ত আছে.
এবং কেন ক্ষমতা দ্বারা আমরা স্টেলা mod,?
[স্টেলা] যেহেতু এটি চারিদিকে মোড়ানো আছে. >> যথাযথভাবে.
আমরা ক্ষমতা দ্বারা mod কারণ এটি যাও যাও 0 চারপাশে ফিরে মোড়ানো আছে.
এই সময়ে সুতরাং এখন, আমরা কি ড্যানিয়েল বলেন করতে পারেন.
আমরা মাপ হ্রাস করতে পারেন.
এবং তারপর আমরা মাত্র উপাদান কিউ 'র শীর্ষে ছিল যে ফিরে আসতে পারেন.
দেখে মনে হচ্ছে প্রথম এ ধরনের খুঁতখুঁতে. আপনি একটি প্রশ্ন থাকতে পারে. দুঃখিত?
>> [স্যাম] কেন কিউ 'র শীর্ষে এর প্রথম? যেখানে যে কোনদিকে?
[Hardison] এটা নিচ থেকে চতুর্থ লাইন থেকে আসে.
পরে আমরা নিশ্চিত করুন যে আমাদের কিউ খালি হয় না পরীক্ষা,
আমরা গৃহস্থালি * বৈঠাচালনা প্রথম আউট, আমরা উপাদান যে মাথা সূচিতে বসা এর বৈঠাচালনা আউট
আমাদের অ্যারে, আমাদের স্ট্রিং অ্যারে, >> এবং কল যে প্রথম?
[Hardison] এবং আমরা এটি প্রথম. হাঁ.
শুধু যে অনুসরণের, আপনি কেন আমরা কি সেটা ছিল মনে?
[স্যাম] প্রত্যেকটি প্রথম ঠিক না q.strings ফিরে [q.head]? >> হ্যাঁ.
>> যেহেতু আমরা mod ফাংশন সঙ্গে q.head এই চেঞ্জিং করছি,
এবং কোন উপায় ফিরে লাইন মধ্যে যে কি আছে.
[Hardison] যথাযথভাবে. আপনি সঙ্কটাপন্ন. Sam এর উপর সম্পূর্ণভাবে স্পট.
কারণ আমরা আমাদের কিউ কমান প্রথম উপাদান আউট এবং একটি পরিবর্তনশীল মধ্যে এটি সংরক্ষণ করে
এই লাইন কারণ যেখানে আমরা q.head ছিল,
সেখানে mod অপারেটর আছে যা আমরা করতে পারি না
এক লাইন - এবং তা ছাড়া মাথা কার্যকর.
সুতরাং আমরা আসলে প্রথম উপাদান বৈঠাচালনা আউট আছে, তাহলে মাথা সমন্বয়,
আকার, সমন্বয় এবং তারপর উপাদান যে আমরা টানা আউট ফিরে.
এবং এই এমন কিছু বিষয় যা আমরা আসা পর্যন্ত দেখতে পাবেন না পরে
লিঙ্ক তালিকা হিসাবে আমরা তাদের সঙ্গে খেলা কাছাকাছি.
প্রায়ই যখন আপনি লিঙ্ক তালিকা freeing বা বিক্রয়কালে করছি
আপনি পরবর্তী উপাদান, একটি লিঙ্ক তালিকা পরবর্তী পয়েন্টার মনে রাখা প্রয়োজন
আগে বর্তমান এক বিক্রয়কালে.
কারণ অন্যথায় আপনি কি তালিকার বাকি এর তথ্য সরিয়ে রাখার.
এখন, যদি আপনি আপনার প্রয়োগ যান, আপনি খুলুন এই queue.c--x আউট.
সুতরাং যদি আমি খুলুন queue.c আপ, এখানে আমাকে জুম,
আপনি যে আপনি একটি অনুরূপ সুদর্শন ফাইল দেখতে পাবেন.
আমরা কি ছিল stack.c সঙ্গে পূর্ববর্তী স্তরে সুদর্শন ফাইল.
আমরা কিউ সংজ্ঞায়িত করে, ঠিক যেমন আমরা দেখেছি স্লাইড উপর জন্য আমাদের struct পেয়েছিলাম.
>> আমরা আমাদের সারিবদ্ধ ফাংশন যার জন্য আপনি কি আছে.
এবং আমরা এখানে dequeue ফাংশন আছে.
ফাইলের মধ্যে dequeue ফাংশন প্রজেক্ট হয়,
কিন্তু আমি এটা করা ফিরে পাওয়ার পয়েন্ট উপরে পাবেন যাতে আপনি তা টাইপ করে যদি চান করতে পারেন.
সুতরাং পরের 5 মিনিট বা যাতে জন্য, আপনাকে বলছি সারিবদ্ধ কাজ
যা প্রায় dequeue ঠিক বিপরীত.
আপনার মাথা যখন আপনি enqueueing সমন্বয় করছি না, কিন্তু তখন আপনি কি সামঞ্জস্য আছে?
ফাইলের আকার. সুতরাং যখন আপনি সারিবদ্ধ, মাথা থাকে অস্পৃষ্ট, আকার পরিবর্তিত হয়.
কিন্তু এটি একটি অল্প সময় লাগবে - আপনি যে mod সঙ্গে চারপাশে খেলা হবে
যাও ঠিক জিনিসটা কি নতুন উপাদান ইনডেক্স করা উচিত এ ঢোকানো হয়েছে.
তাই আমি একটি সামান্য বিট আপনি না দেব, dequeue করা স্লাইডে ফিরে আপ,
এবং হিসাবে আপনি প্রশ্ন থাকে না, তাদের আউট চিত্কার যাতে আমরা করতে পারেন
তাদের বিষয়ে সমস্ত একটি গ্রুপ হিসাবে আলাপ.
সাইজ don't সঙ্গে এছাড়াও, - যখন আপনি আকার সামঞ্জস্য, আপনি সবসময় ঠিক করতে পারেন -
আপনি কি কখনও আকার Mod আছে? [ড্যানিয়েল] নং >> আপনি আকার Mod অধিকার না থাকে.
কারণ আকার সবসময়, যদি you're হবে - গ্রহ আপনাকে জিনিষ পরিচালনার উপযুক্তভাবে,
আকার সর্বদা 0 এবং 3 এর মধ্যে হতে হবে.
আপনি কোথায় যখন সারিবদ্ধ করছেন Mod আছে?
শুধু মাথা জন্য [ছাত্র]. শুধু মাথা জন্য >>, ঠিক.
এবং কেন আপনি কি সারিবদ্ধ এ সমস্ত Mod আছে?
যখন একটি অবস্থা যা আপনি mod করতে চাই?
[ছাত্র] যদি আপনি শূণ্যস্থান এ উপাদান আছে শূণ্যস্থান 1 এবং 2 এ, পছন্দ,
এবং তারপরে আপনি 0 এ কিছু যোগ করা প্রয়োজন.
[Hardison] হ্যাঁ, ঠিক. তাই আপনি যদি আপনার মাথা পয়েন্টার খুব শেষে হয়,
অথবা যদি আপনার আকার প্লাস আপনার মাথা বড় হয়, অথবা বরং, কিউ 'র চারপাশে মোড়ানো যাচ্ছে.
>> তাই এই অবস্থা যে আমরা স্লাইডে আছে এখানে আপ করেছি, এখন নয়,
যদি আমি কিছু অধিকার এখন সারিবদ্ধ করতে চান,
আমরা সূচক 0 সারিবদ্ধ এ কিছু করতে চান.
তাই আপনি যদি যায় যেখানে 50 তাকান, এবং আমি সারিবদ্ধ 50 কল,
এটি যায় নিচে নীচে আছে. এটা 0 সূচক যায়.
এটা 'হাই' যে ইতিমধ্যেই dequeued প্রতিস্থাপন.
[ড্যানিয়েল] কি dequeue যে যত্ন আপনি ইতিমধ্যে গ্রহণ করা না?
কেন এটা সারিবদ্ধ মধ্যে মাথা নিয়ে কিছু করতে?
[Hardison] ওহ, তাই আপনি মাথা পরিবর্তন করছি না, দুঃখিত.
কিন্তু আপনি mod অপারেটর যখন আপনি অ্যাক্সেস করছি ব্যবহার আছে
উপাদান যে আপনি যখন আপনি অ্যাক্সেস করছি সারিবদ্ধ চান
আপনার সারিতে পরবর্তী উপাদান.
[বেসিল] আমি, যে কি না না এবং আমি নেই "সফল" পেয়েছিলাম.
[ড্যানিয়েল] ওহ, আমি বুঝতে কি বলছে.
[Hardison] সুতরাং আপনি didn't - আপনি শুধু q.size এ কি?
[বেসিল] হ্যাঁ. আমি পাশ পরিবর্তন, আমি কিছু মাথা কি না.
[Hardison] আপনি মাথার কিছু রিসেট করা আছে আসলে না,
কিন্তু যখন আপনি স্ট্রিং অ্যারের মধ্যে সূচক,
আপনি আসলে এগিয়ে যান এবং যেখানে পরবর্তী উপাদান হল গণনা করা আছে,
কারণ স্ট্যাকের নমনীয় শাখা, আপনার স্ট্যাকের মধ্যে পরবর্তী উপাদান সবসময় ছিল
সূচক অনুরূপ মাপ.
যদি আমরা আমাদের আপ স্ট্যাকের ধাক্কা ফাংশন ফিরে,
আমরা সবসময় আমাদের নতুন উপাদান ইনডেক্স সঠিক আকারের বাজা পারে.
সঙ্গে কিউ যেহেতু, আমরা যা করতে পারবেন না
কারণ আমরা যদি এই পরিস্থিতি করেন,
যদি আমরা enqueued 50 আমাদের নতুন স্ট্রিং স্ট্রিং [1] এ অধিকার যেতে হবে
যা আমরা করতে চাই না.
আমরা নতুন স্ট্রিং সূচক 0 এ যেতে চাই.
>> কেহ আছে - হ্যাঁ? [ছাত্র] আমি একটা প্রশ্ন আছে কিন্তু এটি সত্যিই সাথে সম্পর্কিত নয়.
কি যখন একজনের pred পয়েন্টার মত কল মানে?
কি যে নামের জন্য ছোট? আমি জানি এটা শুধু একটি নাম.
[Hardison] Pred পয়েন্টার? চলুন দেখুন. কোন প্রসঙ্গে?
[ছাত্র] সন্নিবেশ জন্য এটা ছিল. আমি আপনাকে পরে চাইতে হবে, যদি আপনি চান করতে পারেন
কারণ এটা, কিন্তু সত্যিই আমি ঠিক সম্পর্কিত নয় -
[Hardison] থেকে ডেভিড এর বক্তৃতা থেকে কোড সন্নিবেশ?
আমরা যে মুঠি ধরে টেনে তুলবো এবং যে বিষয়ে কথা বলতে পারেন.
আমরা যে পরবর্তী একবার, আমরা সংযুক্ত তালিকা পেতে সম্পর্কে কথা বলতে পারবেন.
>> সুতরাং এর দিন কি সত্যিই দ্রুত সারিবদ্ধ ফাংশন মনে তাকান.
প্রথম জিনিস যে মানুষ আপনার সারিবদ্ধ লাইন কি চেষ্টা কী ছিল? এই কিউ?
অনুরূপ কি আপনি স্ট্যাকের ঠেলে জন্য কি যাও.
কি কি, স্টেলা?
[স্টেলা, অপাচ্য]
[Hardison] যথাযথভাবে. যদি (== ক্ষমতা q.size) -
আমি যথাস্থানে আমার ধনুর্বন্ধনী করা প্রয়োজন - মিথ্যা ফিরে.
কিছুক্ষন জুম. ঠিক আছে.
এখন কি এর পরের বিষয় যে আমরা কি ছিল?
স্ট্যাকের সঙ্গে শুধু, পছন্দ এবং ডান জায়গায় ঢোকানো.
তাই কি ছিল যথাস্থান যে সন্নিবেশ?
এটি ছিল এই স্ট্যাকের সঙ্গে সঙ্গে সূচক আকার, এটা নয় যে.
[ড্যানিয়েল] আমি q.head-বা আছে - >> q.strings? >> হাঁ.
q.strings [q.head + q.size mod ক্ষমতা]?
[Hardison] আমরা সম্ভবত এই সমস্যা এড়ানোর এব w বন্ধনী ববহার করা চাই
যাতে আমরা যথাযথ প্রাধান্য পেয়ে করছি যাতে যে cleart সবাই যাও.
এবং যে সেট সমান? >> Str করবেন? Str বন্ধ >>. গ্রেট.
এবং এখন কি শেষ বিষয় যে আমরা কি আছে?
শুধু ভালো আমরা স্ট্যাকের করেছিল. >> মাপ বৃদ্ধি? >> মাপ বৃদ্ধি.
পরিস্ফুটন. এবং তারপর স্টার্টার কোড থেকে, ঠিক ফিরিয়ে ডিফল্টরূপে মিথ্যা,
আমরা সত্য যদি এই সমস্ত যায় এবং সব ভাল যায় পরিবর্তন করতে চান.
ঠিক আছে. যে বিভাগের জন্য তথ্য অনেক.
আমরা খুব বেশী না. আমরা এককভাবে সংযুক্ত তালিকা সম্পর্কে সত্যিই দ্রুত কথা বলতে চান.
আমি এই ঠেলা আপ করুন যাতে আমরা তা পরে ফিরে যেতে পারেন.
কিন্তু যাক এর আমাদের উপস্থাপনায় মাত্র কয়েক আরো স্লাইডের জন্য ফিরে যেতে.
সুতরাং সারিবদ্ধ হয় করণীয় এখন, আমরা এটি সম্পন্ন করেছি.
>> এখন আসুন একেলা সংযুক্ত তালিকা কটাক্ষপাত করা.
এই অল্প আরো সম্পর্কে আমরা বক্তৃতায় সায়ীদ.
আপনি না কিভাবে ডেমো অনেক দেখেছি যেখানে আমরা মানুষ ছিল
একে অপরকে এবং জোত নম্বর awkwardly প্রতি নির্দেশ? >> আমি যে ছিল.
>> কি আপনি মনে করেন কি না? যে কি আশা, এই সামান্য বিট demystify?
একটি তালিকা দিয়ে, এটি সক্রিয় করে যে আমরা এই টাইপ মোকাবেলা যে আমরা একটি নোড কল চলুন.
সঙ্গে কিউ এবং স্ট্যাকের যেহেতু আমরা structs যে আমরা স্ট্যাকের মধ্যে কিউ কল দিন ছিল,
আমরা এই স্ট্যাকের মধ্যে নতুন ধরনের কিউ ছিল,
এখানে সত্যিই একটি তালিকা ঠিক হয় নোডের একটি গুচ্ছ গঠিত.
সব একই ভাবে স্ট্রিং শুধু অক্ষর একটি গুচ্ছ ইন বূ্যহিত পরবর্তী প্রতিটি অন্যান্য.
একটি লিঙ্ক তালিকা শুধু একটি নোডের মধ্যে এবং অন্য একটি নোড এবং অন্য একটি নোড এবং অন্য একটি নোড.
এবং বদলে সমস্ত নোড একসঙ্গে মর্মান্তিক এবং তাদের contiguously সংরক্ষণ
সমস্ত সঠিক মেমরির মধ্যে পরবর্তী প্রতিটি অন্যান্য,
এই হচ্ছে আমাদের পরবর্তী পয়েন্টার নোড যেখানেই যাও সঞ্চয় র্যান্ডম এ, পারবেন.
এবং তারপর তারের ধরনের একসঙ্গে তাদের সব থেকে পরবর্তী নির্দেশ.
>> এবং কি ছিল বড় সুবিধা এই যে একটি অ্যারের ছিল?
সংরক্ষণের উপর সবকিছু ঠিক contiguously আটকে পরের একে অপরকে?
আপনি মনে পড়ে? হাঁ? >> ডাইনামিক মেমরি বরাদ্দকরণের?
>> ডায়নামিক কি অর্থে মেমরি বরাদ্দকরণের?
[ছাত্র] ইন যে আপনি এটিকে বড় এবং আপনার সম্পূর্ণ অ্যারে সরাতে না আছে রাখতে পারি না?
[Hardison] যথাযথভাবে. তাই সঙ্গে একটি অ্যারের, যখন আপনি তা মধ্যম মধ্যে একটি নতুন উপাদান লাগাতে চান,
আপনি সবকিছুর জন্য পর্যাপ্ত স্থান না নামান আছে.
এবং ভালো আমরা কিউ সঙ্গে সম্পর্কে কথা বললাম,
সে জন্যই আমরা যে মাথা পয়েন্টার রাখা,
যাতে আমরা জিনিস ক্রমাগত নাড়াচাড়া করছি না.
কারণ যে পায় ব্যয়বহুল যদি আপনি একটি বড় অ্যারে পেয়েছেন
ক্রমাগত এবং আপনি এই র্যান্ডম insertions করছি.
সঙ্গে একটি তালিকা যেহেতু, সমস্ত আপনি কি একটি নতুন নোডের এটি নিক্ষেপ করা,
পয়েন্টার, সমন্বয় এবং আপনি সম্পন্ন করেছেন.
Sucks কি এই সম্পর্কে?
সরাইয়া থেকে যে এটি দিয়ে একটি অ্যারের হিসাবে কাজ হিসাবে এর সহজ না? হাঁ?
[ড্যানিয়েল] ওয়েল, আমি অনুমান এটা অনেক বেশি কঠিন একটি লিঙ্ক তালিকায় নির্দিষ্ট উপাদান অ্যাক্সেস?
[Hardison] আপনি শুধু আপনার একটি লিঙ্ক তালিকা মাঝখানে নির্বিচারে উপাদান যাও না তিড়িং লাফ পারেন.
আপনি কিভাবে পরিবর্তে এটি কি আছে? >> আপনি সম্পূর্ণ জিনিস মাধ্যমে সিঁড়ির ধাপ আছে.
[Hardison] হ্যাঁ. আপনি এক একটি সময়, একটি সময়ে এক মধ্য দিয়ে যেতে হবে.
এটা একটা বিশাল - এটা একটা ব্যথা.
অন্যান্য কি - এই যাও অন্য পতন আছে.
[বেসিল] আপনি এবং পিছনের দিকে এগিয়ে যেতে পারে না? আপনি এক দিক যেতে আছে?
[Hardison] হ্যাঁ. তাই কিভাবে আমরা যে না, কখনও কখনও সমাধান?
[বেসিল] দোকর-লিঙ্ক তালিকা? >> যথাযথভাবে. দোকর-লিঙ্ক তালিকা আছে.
এছাড়াও রয়েছে - দুঃখিত?
>> [স্যাম] এটা কি জিনিস যে pred হিসাবে ব্যবহার করে একই -
আমি ঠিক মনে হয় না যে কি জিনিস pred জন্য হয়?
এটা মধ্যে দোকর এবং একেলা? যে হইনি
কি ঠিক করছেন তিনি এ [Hardison] যাক এর চেহারা.
তাই আমরা এখানে. এখানে তালিকা কোড.
এখানে আমরা আছে এখানে predptr,. এটা কি আপনার সম্পর্কে কথা বলা হয়েছে?
তাই এই ছিল - তিনি একটি তালিকা এর freeing এবং তিনি তা একটি পয়েন্টার জমা করার চেষ্টা হচ্ছে.
এই দোকর, একেলা লিঙ্ক-তালিকা নয়.
আমরা এই সম্পর্কে আরো কথা বলার পরে তালিকা freeing সম্পর্কে এই কথা বলা যাবে না
এবং আমি প্রথম কিছু অন্যান্য পণ্যদ্রব্য প্রদর্শন করতে ইচ্ছুক.
কিন্তু এটি শুধু - এটি ptr মান এর স্মরণে
[ছাত্র] ওহ, এটা preceeding পয়েন্টার? >> হ্যাঁ.
যাতে আমরা তারপর আমরা বিনামূল্যে তারপর কি হল predptr আগে ptr নিজেই বাড়াতে পারেন.
যেহেতু আমরা মুক্ত ptr এবং তারপর ptr = ptr পরের, ডান? আপনি কল করতে পারবেন
যে খারাপ হবে.
সুতরাং এর দেখতে দিন, ফিরে যাও এই লোক.
>> অন্যান্য তালিকা সম্পর্কে খারাপ ব্যাপার হল যেহেতু সঙ্গে অ্যারে
আমরা শুধু সব উপাদান নিজেরাই স্তুপীকৃত পরবর্তী প্রতিটি অন্যান্য আছে,
এখানে আমরা এই পয়েন্টার প্রচলন করেছে.
সুতরাং আমি কি একটা মেমরি অতিরিক্ত অঞ্চলে যা আমরা ব্যবহার করতে সমস্যা হয় তাহলে আছে
প্রতিটি উপাদান যে আমরা আমাদের তালিকায় সংরক্ষণ করছেন.
আমরা নমনীয়তা পেতে, কিন্তু এটি একটি খরচে আসে.
এই সময় খরচ আসে,
এবং এটি এই মেমরি খরচ খুব আসে.
অর্থে সময় যে আমরা এখন প্রতিটি উপাদান মাধ্যমে অ্যারের মধ্যে যেতে আছে
সূচক 10 এক, বা যে একটি অ্যারের মধ্যে সূচক 10 হতো না খুঁজে.
>> শুধু সত্যিই দ্রুত, যখন আমরা এই চিত্রটি তালিকা আউট,
সাধারণত আমরা তালিকা মাথা অথবা তালিকার প্রথম পয়েন্টার রাখা নেভিগেশন এড়িয়ে যাও
এবং মনে রাখবেন যে এই একটি সত্য পয়েন্টার.
শুধু 4 বাইট. এটি একটি প্রকৃত নোড নিজেই না.
তাহলে আপনি দেখতে পাবেন যে এটি কোন এটি int মান, কোন এটি পরবর্তী পয়েন্টার আছে.
এটা আক্ষরিক শুধু একটি পয়েন্টার.
এটা কিছু যে একটি প্রকৃত নোড struct দিকে নির্দেশ করছে.
[স্যাম] নামক একটি পয়েন্টার নোড? >> এটি - নেই. এটি টাইপ নোডের মধ্যে কিছু একটা পয়েন্টার.
এটি একটি নোড struct একটি পয়েন্টার. >> ওহ, ঠিক আছে.
বাম ডান, কোডের উপর চিত্র.
আমরা এটা নাল, যা একটি ভালো উপায় শুরু সেট করতে পারেন.
যখন এটি ডায়াগ্রাম, হয় আপনি এটি হিসাবে নাল লিখুন অথবা আপনি এটি দিয়ে একটি লাইন রাখতে চাই যে.
>> সহজতম উপায়ে তালিকা সঙ্গে কাজ এক,
এবং আমরা আপনাকে উভয় শুরুতে যোগ এবং দুই মধ্যে পার্থক্য জানার লিখবেন না,
কিন্তু prepending নিঃসন্দেহে সহজ.
যখন আপনি পূর্বে লিখুন, এই হল যেখানে আপনি - আপনি যখন শুরুতে যোগ (7),
আপনি যান এবং নোড struct তৈরি
এবং আপনি প্রথম সেট এটি যাও, যাও নির্দেশ কারণ এখন, যেহেতু আমরা এটি prepended,
এটি তালিকা প্রারম্ভে করা যাচ্ছে.
যদি আমরা শুরুতে যোগ (3), যে অন্য কোনো নোডের মধ্যে সৃষ্টি, কিন্তু এখন 3 7 আগে আসে.
তাই আমরা মূলত আমাদের তালিকা সম্মুখের জিনিষ ঠেলাঠেলি করছি.
এখন, আপনি যে শুরুতে যোগ কখনও কখনও লোকেরা এটা কল ধাক্কা দেখতে পারেন,
কারণ আপনি আপনার তালিকা সম্মুখের একটি নতুন উপাদান ঠেলাঠেলি করছি.
এখানে একটি তালিকা সামনে এ মুছে দিন সহজ.
তাই প্রায়ই যে পপ কল হবে.
এবং যে উপায়ে, আপনি একটি স্ট্যাকের মধ্যে উপস্থিত একটি লিঙ্ক তালিকা ব্যবহার করে অনুকরণ করা যাবে.
ওহো. দুঃখিত এখন, আমরা append মধ্যে পেয়ে থাকেন. তাই আমরা এখানে prepended (7) এখন, আমরা শুরুতে যোগ (3).
যদি আমরা এই তালিকা সম্মুখের অন্য কিছু prepended, যদি আমরা prepended (4),
তারপর আমরা 4 আছে এবং তারপর 3 এবং তারপর 7 চাই.
তখন আমরা এবং 4, অপসারণ সরানোর 3 পপ পারে, 7 সরান.
প্রায়ই আরও বেশি ধারণাসম্পন্ন উপায় এই সম্পর্কে চিন্তা append হয়.
তাই আমি আউট diagrammed কি এটা এখানে লিখবেন দেখাবে করেছি.
এখানে যোগ করা (7) কোনো ভিন্ন চেহারা না
কারণ শুধুমাত্র তালিকায় একটি উপাদান আছে.
সংযোজন এবং (3) শেষে এটা বন্ধ রাখে.
হতে পারে আপনি append সঙ্গে কৌতুক অধিকার এখন দেখতে পারেন
হয় যে যেহেতু আমরা কেবল যেখানে তালিকা শুরুতে হয় জানি,
একটি তালিকা আপনি তালিকার মাধ্যমে সব উপায় পায়চারি করা আছে লিখবেন যাও
শেষে, পেতে থামাতে তারপর, আপনার নোড এবং বাজা ডাউন সবকিছু গড়ে তুলতে.
সব উপাদান আপ টেলিগ্রাম.
তাই শুরুতে যোগ দিয়ে, আমরা কেবল এই মাধ্যমে ripped সত্যিই দ্রুত,
যখন আপনি একটি তালিকা পূর্বে লিখুন, এটা মোটামুটি সহজ.
>> আপনি আপনার নতুন নোডের জন্য, কিছু ডাইনামিক মেমরি বরাদ্দকরণের জড়িত.
তাই আমরা এখানে একটি নোড struct malloc ব্যবহার করে তৈরি করছেন.
সুতরাং malloc আমরা যে কারণ পরে আমাদের জন্য মেমরি সেট করব সরাইয়া ব্যবহার করছেন
কারণ আমরা এই চাই না - আমরা এই মেমরি একটি দীর্ঘ সময়ের জন্য জিদ করতে চান.
এবং আমরা মেমরি স্পেস বরাদ্দ যে আমরা একটি পয়েন্টার পাবেন.
আমরা নোড মাপ ব্যবহার, আমরা ক্ষেত্র যোগফল না.
আমরা বাইট নম্বর ম্যানুয়ালি কি নির্মাণ করা হবে না,
এর পরিবর্তে আমরা ব্যবহার sizeof যাতে আমরা জানতে পারি যে আমরা বাইট যথাযথ নম্বর পেয়ে থাকেন.
আমরা না যে আমাদের malloc কল সফল পরীক্ষা করতে ভুলবেন না.
এইটি এমন কিছু বিষয় আপনি সাধারণ কাজ করতে চান.
আধুনিক মেশিনে, মেমরি দৌড়ে বাইরে কিছু যে সহজ নয়
যদি না আপনি একটি জিনিস টন বণ্টন করছেন এবং একটি বিশাল তালিকা তৈরি,
কিন্তু আপনি যদি একটি আইফোন বা একটি Android ভালো,, বলার জন্য স্টাফ করছি ভবন,
আপনি সীমিত মেমরি রিসোর্স কি আছে, বিশেষত যদি আপনি কিছু তীব্র করছেন.
তাই এর অনুশীলনের মধ্যে পেতে ভাল.
>> উল্লেখ্য, আমি একটি দম্পতি বিভিন্ন ফাংশন ব্যবহার করেছি এখানে
আপনি যে যে নতুন ধরনের দেখা করেছি.
সুতরাং fprintf ঠিক printf হয় পছন্দ
তার প্রথম যুক্তি ছাড়া হয় প্রবাহে যা আপনি প্রিন্ট করতে চান.
এই ক্ষেত্রে, আমরা মান ত্রুটি স্ট্রিং প্রিন্ট করতে চান
যা প্রমিত outstream থেকে ভিন্ন.
ডিফল্টরূপে এটি একই স্থানে প্রদর্শিত হয়.
এটি টার্মিনালে ছাপে আউট, কিন্তু আপনি যা করতে পারেন -
যারা কমান্ড ব্যবহার করে আপনার সম্পর্কে, ফেরৎ কৌশল শিখেছি
আপনি টমি এর ভিডিওতে শিখেছি সম্পর্কে সমস্যা সেট 4 জন্য, আপনি এটি করতে পারি
বিভিন্ন ক্ষেত্রে; তারপর, প্রস্থান অধিকার এখানে, প্রস্থান করে আপনার প্রোগ্রাম.
এটি মূল থেকে ফিরে মূলত এর মত,
কারণ ছাড়া আমরা প্রস্থান করুন এখানে ফিরে কিছু না ব্যবহার করবেন.
আমরা প্রধান মধ্যে পারব না, তাই ফিরে প্রোগ্রামের মত আমরা প্রস্থান করতে চান না.
সুতরাং আমরা ফাংশান ব্যবহার করে প্রস্থান করুন এবং এটি একটি ত্রুটির কোড দিন.
তারপর এখানে আমরা তোমার সমান হতে নতুন নোড এর মান ক্ষেত্র, তার তোমার ক্ষেত্র সেট করা, এবং তারপর আমরা এটা টেলিগ্রাম.
আমরা প্রথম দিকে নির্দেশ করে নতুন নোডের এর পরের পয়েন্টার সেট,
প্রথম এবং তারপর এখন নতুন নোডের নির্দেশ করবে.
এই কোড প্রথম লাইন, আসলে আমরা নতুন নোড নির্মাণের করছি.
এই ফাংশন নেই শেষ দুই লাইন কিন্তু প্রথম বেশী.
আপনি আসলে একটি ফাংশন মধ্যে উঠিয়ে ফেলা একটি সাহায্যকারী ফাংশন যায়,.
যে প্রায়ই কি আমি এর হল, আমি বৈঠাচালনা একটি ফাংশন মধ্যে আউট,
আমি কল করার জন্য এটি বিল্ড নোড মত,
এবং যে রাখে শুরুতে যোগ ফাংশন খুবই ছোট, এটা তো শুধু 3 লাইন তারপর.
আমি আমার বিল্ড নোডের একটি ফাংশন কল করা, এবং তারপর আমি টেলিগ্রাম আপ সবকিছু.
>> চূড়ান্ত জিনিস আমি আপনাকে দেখাতে চাই,
এবং আমি আপনাকে আপনার নিজস্ব append এবং যে সব না জানাব,
কিভাবে একটি তালিকা পুনরুক্তি উপর.
বিভিন্ন উপায়ে একটি তালিকা পুনরুক্তি উপর একটি গুচ্ছ আছে.
এই ক্ষেত্রে, আমরা একটি তালিকা দ্বারা খুঁজে পেতে যাচ্ছেন.
সুতরাং আমরা দ্বারা = 0 দিয়ে শুরু.
এটি একটি স্ট্রিং জন্য strlen লেখা অনুরূপ.
এটা কি আমি লুপ জন্য আপনাকে দেখাবে, এখানে এই অধিকার চাই.
ধরণ দেখে মনে হচ্ছে ভীতু; এটা স্বাভাবিক না int i = 0, তোমার <যাই হোক না কেন, আমি +.
এর পরিবর্তে এটি আমাদের পরিবর্তনশীল n তালিকার শুরুতে হতে এর আরম্ভ করা হচ্ছে.
এবং তারপরে যখন আমাদের iterator পরিবর্তনশীল নাল নয়, আমরা রাখা যাচ্ছে.
কারণ, প্রচলিত রীতি দ্বারা, আমাদের তালিকার শেষে নাল হবে.
এবং তারপর বরং + করছেন তুলনায়, যাও বাড়ায়,
লিঙ্ক + তালিকা সমতুল্য হয় + n = n-> পরের.
>> আমি এখানে আপনি ফাঁক পূরণ কারণ আমরা সময় ফুরিয়েছে জানাবো.
কিন্তু মনের মধ্যে এই হিসাবে আপনি আপনার spellr psets কাজ রাখা.
লিঙ্ক তালিকা, যদি আপনি একটি হ্যাশ টেবিল রূপায়ণকারী করছি,
স্পষ্টভাবে খুব উপকারে আসবে.
এবং বিষয়ের উপর looping জন্য এই বাগ্ধারা থাকার জন্য জীবন অনেক সহজ আশা, হবে.
আপনার কোন প্রশ্ন থাকলে, দ্রুত?
[স্যাম] পাঠাতে সম্পন্ন sll এবং sc আউট হবে?
[Hardison] হ্যাঁ. আমি সম্পূর্ণ স্লাইড এবং সম্পন্ন sll স্ট্যাকের এবং queue.cs আউট পাঠাব.
[CS50.TV]