কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে Stack-এ Clear অপারেশন


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) টাইম কমপ্লেক্সিটি।
  1. জাভাস্ক্রিপ্ট DOM কী?

  2. জাভাস্ক্রিপ্টে একই অ্যারেতে অ্যারের এলিমেন্টগুলো ডুপ্লিকেট করা

  3. জাভাস্ক্রিপ্টে স্ট্যাক (Stack) বাস্তবায়ন

  4. জাভাস্ক্রিপ্টে স্কয়ার ম্যাট্রিক্সের এলিমেন্ট স্পায়ারলি ট্রাভার্স করা