Stack: Clear Operation (সব এলিমেন্ট মুছে ফেলা)
Clear অপারেশন স্ট্যাকের সব এলিমেন্ট একসাথে মুছে ফেলে এবং স্ট্যাককে খালি অবস্থায় ফেরত আনে। এটি নতুন একটি খালি অ্যারে অ্যাসাইন করে অর্জিত হয়।
Clear মেথড ইমপ্লিমেন্টেশন
class Stack {
constructor(maxSize = 10) {
this.maxSize = maxSize;
this.container = [];
}
// ... push, pop, peek, isEmpty, isFull, display methods ...
// Clear Operation
clear() {
this.container = []; // নতুন খালি অ্যারে অ্যাসাইন
// অথবা: this.container.length = 0; (একই ইফেক্ট)
}
}
টেস্টিং উদাহরণ
const s = new Stack(5);
s.push(10);
s.push(20);
s.display(); // [ 10, 20 ]
s.clear();
s.display(); // []
console.log("Is Empty:", s.isEmpty()); // true
console.log("Size:", s.size()); // 0
আউটপুট
[ 10, 20 ] [ ] Is Empty: true Size: 0
Clear vs New Instance
| পদ্ধতি | কোড | প্রभाव |
|---|---|---|
| clear() মেথড | stack.clear() |
একই অবজেক্ট রিইউজ, রেফারেন্স পরিবর্তন নেই |
| নতুন ইনস্ট্যান্স | stack = new Stack() |
পুরানো অবজেক্ট গারবেজ কালেক্টেড, নতুন রেফারেন্স |
clear() ব্যবহার করলে একই অবজেক্ট রেফারেন্স থাকে (অন্য জায়গা থেকে রেফারেন্স থাকলে সেগুলো নতুন খালি স্ট্যাক দেখবে)।
Alternative Clear Implementation
// পদ্ধতি ১: নতুন অ্যারে অ্যাসাইন (রিকমেন্ডেড)
clear() {
this.container = [];
}
// পদ্ধতি ২: লেংথ শূন্য করুন (ফাস্টার, মেমরি রিলিজ নাও হতে পারে)
clear() {
this.container.length = 0;
}
// পদ্ধতি ৩: splice দিয়ে
clear() {
this.container.splice(0, this.container.length);
}
// পদ্ধতি ৪: while লুপ দিয়ে পপ (স্লো, এড়িয়ে চলুন)
clear() {
while (!this.isEmpty()) this.pop();
}
কখন Clear ব্যবহার করবেন?
- গেম রিস্টার্ট / লেভেল রিসেট।
- ফর্ম রিসেট / ক্যাশ ক্লিয়ার।
- অ্যালগরিদমে নতুন ইনপুট প্রসেস করার আগে।
- মেমরি ম্যানেজমেন্ট (বড় অবজেক্ট হোল্ড করলে)।
সারাংশ
clear()স্ট্যাককে খালি করে দেয়।- সাবচেয়ে সহজ:
this.container = []। - রেফারেন্স সংরক্ষণ থাকে (অন্য ভেরিয়েবল থেকে এক্সেস করলে খালি দেখাবে)।
- O(1) টাইম কমপ্লেক্সিটি।