วิธีล้างสแต็ก

สารบัญ:

วิธีล้างสแต็ก
วิธีล้างสแต็ก

วีดีโอ: วิธีล้างสแต็ก

วีดีโอ: วิธีล้างสแต็ก
วีดีโอ: สอนลบ BlueStacks แบบง่ายไปได้ชั่ว✓วินโด้10 2024, พฤศจิกายน
Anonim

โครงสร้างข้อมูลประเภทหนึ่งที่ใช้กันอย่างแพร่หลายในปัจจุบันในการเขียนโปรแกรมแอปพลิเคชันคือสแต็ก ลักษณะเฉพาะของมันคือหลักการของการจัดระเบียบองค์ประกอบซึ่งการเพิ่มและการลบสามารถทำได้ทีละครั้งและผ่าน "ด้านบน" เท่านั้นนั่นคือตามหลักการ LIFO แต่บางครั้งจำเป็นต้องล้างทั้งกองพร้อมกัน

วิธีล้างสแต็ก
วิธีล้างสแต็ก

จำเป็น

  • - โปรแกรมแก้ไขข้อความหรือ IDE;
  • - นักแปลจากภาษาโปรแกรมที่ใช้

คำแนะนำ

ขั้นตอนที่ 1

ใช้เมธอดบนออบเจ็กต์สแต็กที่ออกแบบมาเพื่อล้างสแต็กโดยเฉพาะ มีอยู่ในคลาสที่เกี่ยวข้องส่วนใหญ่ของไลบรารีและเฟรมเวิร์กต่างๆ ตัวอย่างเช่น คลาส. NET Stack มีเมธอด Clear ตัวอย่างการใช้งานในภาษา C # อาจมีลักษณะดังนี้:

กอง oStack = กองใหม่ (); // สร้างวัตถุสแต็ก

oStack. Push ("000"); // เติม stack

oStack. Push ("111");

oStack. Clear (); // เคลียร์ stack

ขั้นตอนที่ 2

วิธีการเปลี่ยนจำนวนองค์ประกอบของคลาสคอนเทนเนอร์ ซึ่งมักจะสร้างฟังก์ชันการทำงานของคลาสสแต็ก สามารถใช้สำหรับการทำความสะอาด คุณเพียงแค่ต้องลดจำนวนองค์ประกอบปัจจุบันเป็นศูนย์ ตัวอย่างเช่น คลาสเทมเพลต Qt QStack สืบทอดจากคลาสเทมเพลต QVector ซึ่งมีวิธีการปรับขนาด ตัวอย่างการใช้งานอาจเป็นดังนี้:

QStack oStack; // ประกาศของ stack object

สำหรับ (int i = 0; i <10; i ++) oStack.push (i); // เติม stack

oStack.resize (0); // เคลียร์ stack

ขั้นตอนที่ 3

การล้างวัตถุสแต็กสามารถทำได้ผ่านตัวดำเนินการมอบหมาย ซึ่งมักใช้ในคลาสที่เกี่ยวข้อง เมื่อต้องการทำเช่นนี้ ออบเจ็กต์ของสแต็กที่จะล้างต้องถูกกำหนดให้เป็นอ็อบเจ็กต์ชั่วคราวที่สร้างโดยคอนสตรัคเตอร์เริ่มต้น ตัวอย่างเช่น คลาสเทมเพลตสแต็ก C ++ Standard Library ซึ่งเป็นอะแดปเตอร์สำหรับคลาสเทมเพลตคอนเทนเนอร์ ไม่มีเมธอดสำหรับการเปลี่ยนตัวเลขหรือลบองค์ประกอบทั้งหมดโดยพลการ คุณสามารถล้างได้ดังนี้:

std:: stack <int, std:: list> oStack; // ประกาศของ stack object

สำหรับ (int i = 0; i <10; i ++) oStack.push (i); // เติม stack

oStack = มาตรฐาน:: stack(); // เคลียร์ stac

ขั้นตอนที่ 4

ล้างวัตถุสแต็กโดยการเรียกตัวสร้างการคัดลอกโดยใช้ตัวดำเนินการใหม่พร้อมอาร์กิวเมนต์วัตถุที่สร้างโดยตัวสร้างเริ่มต้น:

std:: stack <int, std:: list> oStack; // ประกาศของ stack object

สำหรับ (int i = 0; i <10; i ++) oStack.push (i); // เติม stack

มาตรฐานใหม่:: stack(oStack); // เคลียร์ stac

ขั้นตอนที่ 5

สแต็คสามารถล้างได้โดยการดึงองค์ประกอบทั้งหมดตามลำดับโดยใช้วิธีการที่เหมาะสม:

std:: stack <int, std:: list> oStack; // ประกาศของ stack object

สำหรับ (int i = 0; i <10; i ++) oStack.push (i); // เติม stack

ในขณะที่ (! oStack.empty ()) oStack.pop (); // ล้าง stack

อย่างไรก็ตาม วิธีการนี้มีความซับซ้อนของเวลาที่ขึ้นอยู่กับจำนวนองค์ประกอบในสแต็กเป็นเส้นตรง ดังนั้นการใช้งานจึงไม่สมเหตุสมผล