การคัดลอกรหัสมีดังนี้:
นำเข้า Java.util.Arrays;
-
*การใช้งานสแต็ก <br>
* @author ข้าม
* @version 1.0
-
สแต็คระดับสาธารณะ <T> {
ขนาด int ส่วนตัว;
วัตถุส่วนตัว [] arr; // อาร์เรย์พื้นฐาน
ส่วนตัวสุดท้าย int default ความยาว = 200; // ความยาวเริ่มต้น
-
* ไม่มีการสร้างพารามิเตอร์เริ่มต้นอาร์เรย์ด้วยความยาวเริ่มต้น
-
สแต็คสาธารณะ () {
arr = วัตถุใหม่ [defaultLength];
ขนาด = 0;
-
-
* เริ่มต้นอาร์เรย์ด้วยพารามิเตอร์ความยาว
* @param ความยาว
-
สแต็คสาธารณะ (ความยาว int) {
arr = วัตถุใหม่ [ความยาว];
ขนาด = 0;
-
-
* ป้อนสแต็ก
* ข้อมูลองค์ประกอบ @param
-
โมฆะสาธารณะกด (องค์ประกอบ t) {
// จำเป็นต้องขยายกำลังการผลิต
if (size> = arr.length) {
// การขยายอาร์เรย์
ExtendCapacity (ขนาด+1);
-
arr [ขนาด ++] = องค์ประกอบ;
-
-
* ออกจากสแต็ก
* @return data
-
@suppresswarnings ("ไม่ได้ตรวจสอบ")
สาธารณะ t pop () {
// จำนวนองค์ประกอบคือ 0 และการดำเนินการสแต็กไม่สามารถทำได้
ถ้า (ขนาด == 0) {
คืนค่า null;
-
t t = (t) arr [size-1];
arr [-size] = null; // ข้อมูลได้รับการเผยแพร่และเรียกคืนเป็น null
กลับ t;
-
-
* ล้างสแต็ก
-
โมฆะสาธารณะ Clear () {
สำหรับ (int i = 0; i <size; i ++) {
arr [i] = null;
-
ขนาด = 0;
-
-
* รับจำนวนองค์ประกอบในสแต็กปัจจุบัน
* @return จำนวนองค์ประกอบ
-
public int getsize () {
ขนาดกลับ;
-
-
* ตรวจสอบว่ามันเป็นสแต็กที่ว่างเปล่า
* @return ว่างเปล่าเป็นจริงไม่ว่างเปล่าเป็นเท็จ
-
บูลีนสาธารณะ isempty () {
ขนาดกลับ == 0;
-
-
* องค์ประกอบทั้งหมดในสแต็กการพิมพ์
-
@suppresswarnings ("ไม่ได้ตรวจสอบ")
Public Void Printstack () {
สำหรับ (int i = 0; i <size; i ++) {
System.out.print (((t) arr [i]). toString ());
-
System.out.println ();
-
-
* ขยายกำลังการผลิต
* @param ความยาวความยาวที่ต้องการ
-
โมฆะส่วนตัว ExtendCapacity (ความยาว int) {
// ความยาวอาร์เรย์ปัจจุบันและความยาวที่ต้องการควรเป็นค่าสูงสุด
int mincapacity = math.max (arr.length, ความยาว);
// ตัดสินว่าจำเป็นต้องมีการขยายกำลังการผลิตหรือไม่
if (mincapacity - arr.length> 0) {
// ความยาวอาร์เรย์เพิ่มขึ้นครึ่งหนึ่ง
int newLength = arr.length + arr.length/2;
// หากความยาวใหม่มีขนาดเล็กกว่าข้อกำหนดให้ใช้ความยาวที่ต้องการเป็นความยาวอาร์เรย์
if (newLength <mincapacity) {
newLength = mincapacity;
-
// ความยาวอาร์เรย์ไม่เกินจำนวนเต็ม max_value
if (newLength> integer.max_value - 8) {
newLength = integer.max_value;
-
// การขยายอาร์เรย์
arr = arrays.copyof (arr, newLength);
-
-
-