การคัดลอกรหัสมีดังนี้:
-
* รายการที่เชื่อมโยงทางเดียว
-
-
Nodelist ระดับสาธารณะ <E> {
โหนดคลาสคงที่ส่วนตัว <E> {// คลาสโหนด
ข้อมูล e;
โหนด <E> ถัดไป;
โหนด (e e) {
this.data = e;
this.next = null;
-
-
โหนดส่วนตัว <E> หัว;
โหนดส่วนตัว <E> สุดท้าย;
โหนดส่วนตัว <E> อื่น ๆ = null;
ความยาว int ส่วนตัว = 0;
-
* วิธีการก่อสร้างที่ไม่ใช่พารามิเตอร์
-
Public Nodelist () {
// โหนดเริ่มต้นว่างเปล่า
this.head = new node <e> (null);
-
-
* สร้างโหนดในระหว่างการเริ่มต้น
-
* ข้อมูล @param
* ข้อมูล
-
Public Nodelist (ข้อมูล e) {
this.head = new node <e> (ข้อมูล);
this.last = head;
ความยาว ++;
-
-
* เพิ่มโหนด (วิธีการแทรกหาง)
-
* ข้อมูล @param
* ข้อมูล
-
โมฆะสาธารณะเพิ่ม (ข้อมูล e) {
ถ้า (isempty ()) {
head = new node <e> (ข้อมูล);
สุดท้าย = หัว;
ความยาว ++;
} อื่น {
โหนด <E> newNode = new node <e> (ข้อมูล);
last.next = newNode;
last = newNode;
-
-
-
* รับข้อมูลที่ดัชนี (ข้อผิดพลาดอินพุตดัชนีจะทำให้ข้อยกเว้นนอกขอบเขต)
* ดัชนีดัชนี @param
* @return data ที่ดัชนี
-
สาธารณะ e get (int index) {
ถ้า (ดัชนี <0 || ดัชนี> ความยาว) {
โยน indexoutofboundsexception ใหม่ ("ดัชนี:"+ดัชนี);
-
อื่น ๆ = หัว;
สำหรับ (int i = 0; i <index; i ++) {
อื่น ๆ = อื่น ๆ next;
-
กลับอื่น ๆ data;
-
-
* ค่าใหม่แทนที่ค่าเก่า
* @return ความสำเร็จเป็นจริงไม่พบว่าเป็นเท็จ
-
ชุดบูลีนสาธารณะ (E oldValue, e newValue) {
อื่น ๆ = หัว;
ในขณะที่ (อื่น ๆ ! = null) {
ถ้า (อื่น ๆ data.equals (oldValue)) {
อื่น ๆ data = newValue;
กลับมาจริง;
-
อื่น ๆ = อื่น ๆ next;
-
กลับเท็จ;
-
-
* แทรกองค์ประกอบหลังจากระบุองค์ประกอบ
-
* ข้อมูล @param
* องค์ประกอบที่ระบุ
* @param insertdata
* องค์ประกอบที่ต้องแทรก
* @return false ไม่พบองค์ประกอบ, จริงคือการแทรกสำเร็จ
-
เพิ่มบูลีนสาธารณะ (ข้อมูล e, e insertData) {
อื่น ๆ = หัว;
ในขณะที่ (อื่น ๆ ! = null) {
if (other.data.equals (data)) {
โหนด <E> newNode = new node <e> (insertData);
โหนด <E> temp = อื่น ๆ next;
newNode.next = temp;
อื่น ๆ . next = newNode;
ความยาว ++;
กลับมาจริง;
-
อื่น ๆ = อื่น ๆ next;
-
กลับเท็จ;
-
-
* ไม่ว่าองค์ประกอบนี้จะรวมอยู่ในรายการที่เชื่อมโยงหรือไม่
* @return รวมเป็นจริงไม่ใช่เท็จ
-
บูลีนสาธารณะมี (ข้อมูล e) {
อื่น ๆ = หัว;
ในขณะที่ (อื่น ๆ ! = null) {
if (other.data.equals (data)) {
กลับมาจริง;
-
อื่น ๆ = อื่น ๆ next;
-
กลับเท็จ;
-
-
* ลบองค์ประกอบที่ระบุ
* องค์ประกอบข้อมูล @param ที่จำเป็นต้องลบ
* @return ไม่มีอยู่จริงและเป็นจริงเพื่อความสำเร็จ
-
บูลีนสาธารณะลบ (ข้อมูล e) {
อื่น ๆ = หัว;
โหนด <e> temp = head; // ตัวแปรชั่วคราวใช้เพื่อบันทึกโหนดก่อนหน้า
ในขณะที่ (อื่น ๆ ! = null) {
if (other.data.equals (data)) {
temp.next = อื่น ๆ next;
ความยาว--;
กลับมาจริง;
-
อุณหภูมิ = อื่น ๆ ;
อื่น ๆ = อื่น ๆ next;
-
กลับเท็จ;
-
-
* ตรวจสอบว่ารายการที่เชื่อมโยงนั้นว่างเปล่า
-
* @return ว่างเปล่าเป็นจริงไม่ว่างเปล่าเป็นเท็จ
-
บูลีนสาธารณะ isempty () {
ความยาวคืน == 0;
-
-
* ล้างรายการลิงค์
-
โมฆะสาธารณะ Clear () {
this.head = null;
this.length = 0;
-
-
* เอาต์พุตโหนดทั้งหมด
-
โมฆะสาธารณะ printlink () {
ถ้า (isempty ()) {
System.out.println ("รายการที่เชื่อมโยงเปล่า");
}อื่น{
อื่น ๆ = หัว;
ในขณะที่ (อื่น ๆ ! = null) {
System.out.print (อื่น ๆ data);
อื่น ๆ = อื่น ๆ next;
-
System.out.println ();
-
-
-