pelaksanaan senarai golang

王林
Lepaskan: 2023-05-16 10:22:08
asal
635 orang telah melayarinya

Golang ialah bahasa pengaturcaraan yang cekap dan ringkas yang mempunyai kelebihan hebat dalam prestasi dan keselarasan. Di Golang, terdapat banyak pelaksanaan struktur data pengumpulan, termasuk senarai. Senarai ialah struktur data yang sangat penting yang boleh digunakan untuk menyimpan set data dan menyokong memasukkan dan memadam elemen di mana-mana lokasi. Artikel ini akan memperkenalkan cara menggunakan Golang untuk melaksanakan Senarai.

  1. Definisi Senarai

Senarai ialah struktur data, yang merupakan himpunan unsur tertib. Dalam Senarai, setiap elemen mempunyai pendahulu dan pengganti, kecuali elemen pertama dan terakhir. Elemen pertama tidak mempunyai elemen pendahulu, dan elemen terakhir tidak mempunyai elemen pengganti. Senarai menyediakan beberapa operasi asas, seperti menambah elemen, memadamkan elemen, mengakses elemen, dsb.

  1. Pelaksanaan Senarai

Di Golang, untuk melaksanakan Senarai, anda boleh menggunakan senarai terpaut dua kali. Senarai berpaut dua kali mengandungi kepala penuding yang menghala ke nod pertama dan ekor penuding yang menghala ke nod terakhir. Setiap nod mengandungi penuding prev yang menghala ke nod sebelumnya dan penuding seterusnya yang menghala ke nod seterusnya, serta nilai val untuk menyimpan nilai nod. Seperti yang ditunjukkan di bawah:

taip ListNode struct {

prev *ListNode // 指向前一个节点
next *ListNode // 指向后一个节点
val  interface{// 当前节点的值
} 
Salin selepas log masuk

}
type List struct {

head *ListNode // 指向第一个节点
tail *ListNode // 指向最后一个节点
len  int       // List的长度
Salin selepas log masuk

}

Apabila melaksanakan List, kami memerlukan Pay perhatian kepada perkara berikut:

(1) Tambah elemen

Terdapat dua cara utama untuk menambah elemen pada Senarai, iaitu menambah elemen pada kepala dan menambah elemen pada ekor. Kami boleh melaksanakannya menggunakan kaedah AddFront dan AddBack.

func (senarai *Senarai) AddFront(antara muka val{}) {

node := &ListNode{
    prev: nil,
    next: list.head,
    val:  val,
}
if list.head == nil { // 如果链表为空
    list.head = node
    list.tail = node
} else {
    list.head.prev = node
    list.head = node
}
list.len++
Salin selepas log masuk

}

func (senarai *Senarai) AddBack(antara muka val{}) {

node := &ListNode{
    prev: list.tail,
    next: nil,
    val:  val,
}
if list.tail == nil { // 如果链表为空
    list.head = node
    list.tail = node
} else {
    list.tail.next = node
    list.tail = node
}
list.len++
Salin selepas log masuk

}

(2) Memadamkan elemen

Memadamkan elemen terbahagi kepada dua situasi, memadamkan elemen pengepala dan memadamkan elemen ekor. Kami juga boleh menggunakan kaedah RemoveFront dan RemoveBack untuk memadamkan elemen.

func (senarai *Senarai) RemoveFront() {

if list.head == nil { // 如果链表为空
    return
}
if list.head == list.tail { // 如果链表只有一个元素
    list.head = nil
    list.tail = nil
    list.len = 0
    return
}
list.head = list.head.next
list.head.prev = nil
list.len--
Salin selepas log masuk

}

func (senarai *Senarai) RemoveBack() {

if list.tail == nil { // 如果链表为空
    return
}
if list.head == list.tail { // 如果链表只有一个元素
    list.head = nil
    list.tail = nil
    list.len = 0
    return
}
list.tail = list.tail.prev
list.tail.next = nil
list.len--
Salin selepas log masuk

}

(3) Mengakses elemen

Untuk mengakses elemen dalam Senarai, anda hanya perlu melintasi satu demi satu bermula dari kepala atau ekor senarai sehingga anda menemui elemen yang diperlukan. Kita boleh menggunakan kaedah Depan dan Belakang untuk mengakses elemen pertama dan terakhir dalam Senarai.

antara muka func (senarai *Senarai) Depan(){} {

if list.head == nil {
    return nil
}
return list.head.val
Salin selepas log masuk

}

antara muka func (senarai *Senarai) Belakang(){} {

if list.tail == nil {
    return nil
}
return list.tail.val
Salin selepas log masuk

}

Di atas adalah kaedah asas untuk melaksanakan Senarai di Golang, yang boleh dilaraskan dan dioptimumkan mengikut keperluan sebenar.

  1. Ringkasan

Sangat mudah untuk melaksanakan Senarai di Golang, kita hanya perlu menggunakan senarai pautan berganda. Senarai telah dilaksanakan dalam perpustakaan standard di Golang, jadi disyorkan untuk menggunakan Senarai dalam perpustakaan standard dalam penggunaan sebenar. Jika anda perlu menyesuaikan Senarai, anda boleh melaraskan dan mengoptimumkan kod yang diberikan di atas mengikut keperluan sebenar.

Atas ialah kandungan terperinci pelaksanaan senarai golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!