วิธีสร้างโครงสร้างข้อมูล Linked List
ใน Java
การสร้างโครงสร้างข้อมูลที่จัดการกลุ่มขององค์ประกอบได้อย่างมีประสิทธิภาพอาจเป็นความท้าทายในด้านโปรแกรมมิ่ง หนึ่งในโครงสร้างที่ใช้กันอย่างแพร่หลายคือ Linked List
ในบล็อกโพสต์นี้ เราจะแนะนำให้คุณรู้จักกับขั้นตอนการสร้าง Linked List
ใน Java
แม้ว่าจะมีคลาสที่มีอยู่ในไลบรารีมาตรฐานของ Java แล้วก็ตาม
เข้าใจปัญหา
เมื่อคุณนึกถึงโครงสร้างข้อมูล คุณอาจคิดถึงอาเรย์ แต่บางครั้งอาจไม่เพียงพอ ซึ่งก็คือที่มา ของ linked lists Linked List
ช่วยให้คุณสามารถแทรกและลบองค์ประกอบได้อย่างมีประสิทธิภาพโดยไม่ต้องปรับขนาดอาเรย์ มันประกอบด้วยลำดับของโหนด ที่แต่ละโหนดประกอบไปด้วยข้อมูลและการอ้างอิงไปยังโหนดถัดไป
ตัวเลือกที่มีอยู่
Java มีคลาส LinkedList
ที่สร้างอยู่แล้วในแพ็คเกจ java.util
ซึ่งสะดวกและเหมาะสมในหลายสถานการณ์ อย่างไรก็ตาม ความสามารถในการสร้างการทำงานของคุณเองจะช่วยให้คุณเข้าใจมากขึ้นและให้การควบคุมพฤติกรรมของโครงสร้างข้อมูลได้ดีขึ้น
การสร้าง Linked List
ของคุณเอง
ด้านล่างนี้เราจะสำรวจการสร้าง Linked List
แบบง่ายจากพื้นฐาน สำหรับการเรียนรู้นี้ เราจะมุ่งเน้นที่ singly linked list ที่อนุญาตให้แทรกและลบโหนดจากจุดเริ่มต้น
ขั้นตอนที่ 1: กำหนดคลาส Link
ก่อนอื่นเราจำเป็นต้องสร้างคลาส Link
เพื่อแทนแต่ละองค์ประกอบในลิสต์ นี่คือโค้ด:
class Link {
public int data1;
public double data2;
public Link nextLink;
// ตัวสร้าง Link
public Link(int d1, double d2) {
data1 = d1;
data2 = d2;
}
// พิมพ์ข้อมูล Link
public void printLink() {
System.out.print("{" + data1 + ", " + data2 + "} ");
}
}
ขั้นตอนที่ 2: กำหนดคลาส LinkList
ถัดไปเราต้องการคลาสสำหรับลิสต์ทั้งหมด:
class LinkList {
private Link first;
// ตัวสร้าง LinkList
public LinkList() {
first = null;
}
// คืนค่า true หากลิสต์ว่าง
public boolean isEmpty() {
return first == null;
}
// แทรก Link ใหม่ที่จุดเริ่มต้นของลิสต์
public void insert(int d1, double d2) {
Link link = new Link(d1, d2);
link.nextLink = first;
first = link;
}
// ลบโหนดที่หน้าสุดของลิสต์
public Link delete() {
Link temp = first;
if (first == null) {
return null; // หรือโยน Exception
}
first = first.nextLink;
return temp;
}
// พิมพ์ทุก Link ในลิสต์
public void printList() {
Link currentLink = first;
System.out.print("List: ");
while (currentLink != null) {
currentLink.printLink();
currentLink = currentLink.nextLink;
}
System.out.println("");
}
}
ขั้นตอนที่ 3: ทดสอบ LinkList
สุดท้ายนี้ ให้เรา implements เมธอดหลัก (main method) เพื่อทดสอบ Linked List
ของเรา:
class LinkListTest {
public static void main(String[] args) {
LinkList list = new LinkList();
// แทรกบางองค์ประกอบ
list.insert(1, 1.01);
list.insert(2, 2.02);
list.insert(3, 3.03);
list.insert(4, 4.04);
list.insert(5, 5.05);
// พิมพ์ลิสต์
list.printList();
// ลบองค์ประกอบ
while (!list.isEmpty()) {
Link deletedLink = list.delete();
System.out.print("deleted: ");
deletedLink.printLink();
System.out.println("");
}
list.printList();
}
}
สรุป
ในบล็อกโพสต์นี้ เราได้สำรวจวิธีการสร้าง Linked List
ที่กำหนดเองใน Java
โดยมีวิธีการสำคัญในการแทรก ลบ และพิมพ์โหนด แม้ว่าคลาส LinkedList
ที่มีอยู่ในไลบรารีมาตรฐานของ Java อาจเพียงพอสำหรับแอปพลิเคชันหลายอย่าง แต่การพัฒนาของคุณเองสามารถเป็นประสบการณ์ที่คุ้มค่าที่ช่วยเพิ่มทักษะการเขียนโปรแกรมของคุณ
การปรับปรุงเพิ่มเติม
เมื่อคุณเชี่ยวชาญการทำงานพื้นฐานนี้แล้ว ให้นึกถึงการเพิ่ม:
- Double-linked List: โหนดแต่ละตัวควรมีการอ้างอิงถึงทั้งโหนดถัดไปและโหนดก่อนหน้า
- Insert/Delete Middle/End: เมธอดสำหรับการเพิ่มหรือลบโหนดจากตำแหน่งต่างๆ
- Get and Sort Methods: ฟังก์ชันเพื่อดึงองค์ประกอบเฉพาะหรือจัดเรียงลิงค์ลิสต์
การทำความคุ้นเคยกับการปรับปรุงเหล่านี้สามารถช่วยยกระดับทักษะของคุณให้มากยิ่งขึ้น ขอให้สนุกกับการเขียนโค้ด!