Artikel ini membawa anda pengetahuan yang berkaitan tentang cara menggunakan JavaScript untuk melaksanakan senarai terpaut dalam pembelajaran struktur data saya harap ia akan membantu anda.
Senarai terpaut mempunyai ciri-ciri berikut:
boleh mengembangkan ruang secara dinamik (dalam js, perkara yang sama adalah benar untuk tatasusunan , tetapi panjang tatasusunan dalam sesetengah bahasa adalah tetap dan tidak boleh ditambah secara dinamik, seperti bahasa c)
memerlukan nod kepala
memerlukan Tahu alamat nod seterusnya
Setiap nod dalam senarai terpaut boleh dianggap sebagai objek ini mempunyai dua atribut, satu ialah nilai nod, dan satu ialah alamat nod seterusnya bagi nod (jika ia adalah senarai berganda, atribut alamat nod sebelumnya juga mesti ditambah)
//在尾节点处添加节点 function append(element){ let node = new node(element); let current; if(head == null){ current = node }else{ while(current.next){ current = current.next; } current.next = node } length++; }
Analisis kod:
Analisis :
Tetapkan atribut seterusnya nod sebelumnya pada kedudukan ini kepada nod ini dan simpan nod seterusnya asalnya
function insert(position,element){ let node = new Node(element); let current = head; let previous;//当前节点的前一个节点,在position处添加节点,就是在previos和current之间添加 if(position = 0){ node.next = head; head = node; }else{ for(let i = 0;i< position;i++){ pervious = current; current = current.next; } pervious.next = node; node.next = current; } length++; return true; }
Analisis kod. :
Analisis: Operasi bagi memadamkan nod ialah meletakkan nod sasaran di hadapan Penunjuk nod itu menghala ke nod selepas nod sasaran
function removed(element){ let node = new Node(element); let pervious; let nextNode; let current = head; if(head != null){ while (current != node){ pervious = current; current = current.next; nextNode = current.next; } pervious.next = nextNode; length--; return true; }else{ return false; } }
function removedAt(position){ let current = head; let pervious; let nextNode; let i = 0; while(i < position){ pervious = current; current = current.next; nextNode = current.next; } pervious.next = nextNode; length--; return true; }
Analisis: Nod pertanyaan adalah serupa dengan pemadaman nod yang sepadan atau kedudukan yang sepadan, dan kemudian lakukan operasi
function searchElement(element){ //输入元素,找到该元素后返回该元素的位置 if(head != null){ let node = new Node(element); let current; let index = 0; if(head == node){ return 0; }else{ current = head; while(current != node){ current = current.next; index++; } return index; } }else{ return -1; } }
function searchPosition(position){ let i = 0; let current = head; while(i< position){ current = current.next; i++; } return current; }
Terdapat banyak operasi pada senarai terpaut Untuk senarai terpaut yang lebih kompleks, terdapat senarai terpaut berganda (menambah nod sebelumnya semasa memulakan nod) dan senarai terpaut bulat (nod seterusnya nod ekor ialah nod kepala operasi senarai terpaut ini juga boleh dilaksanakan menggunakan js, jadi saya tidak akan menerangkan butiran di sini. Kesimpulannya, teras senarai terpaut ialah
[Berkaitan cadangan: tutorial pembelajaran javascript]
Atas ialah kandungan terperinci Pembelajaran struktur data: menggunakan JavaScript untuk melaksanakan operasi senarai terpaut (contoh terperinci). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!