Rumah  >  Artikel  >  pembangunan bahagian belakang  >  pelaksanaan timbunan golang

pelaksanaan timbunan golang

王林
王林asal
2023-05-21 15:10:07538semak imbas

Golang ialah bahasa pengaturcaraan yang agak baharu, dan kecekapan serta kesesuaiannya menjadikannya bahasa pengaturcaraan yang semakin popular. Golang mempunyai perpustakaan standard yang berkuasa yang mengandungi pelbagai struktur data dan algoritma, salah satunya ialah timbunan.

Timbunan ialah struktur data yang boleh digunakan untuk menyimpan dan memanipulasi data dalam atur cara. Ia serupa dengan timbunan pinggan, anda boleh menambah pinggan ke bahagian atas atau mengeluarkan pinggan dari atas. Struktur data ini biasanya mengikut prinsip "keluar dahulu yang terakhir (LIFO)". Iaitu, elemen terakhir yang kami tambahkan pada timbunan akan dipaparkan terlebih dahulu.

Di Golang, kita boleh menggunakan Slice untuk melaksanakan tindanan. Seterusnya, kami akan menunjukkan cara melaksanakan tindanan asas di Golang.

Pertama, kita perlu mengisytiharkan struktur tindanan, seperti yang ditunjukkan di bawah:

type Stack struct {
    items []int //用于存储栈中的元素
}

Di mana item ialah kepingan yang kita gunakan untuk menyimpan elemen dalam tindanan. Kita boleh menggunakan kepingan ini untuk melaksanakan pelbagai operasi pada tindanan.

Seterusnya, kita perlu melaksanakan kaedah menambah elemen pada tindanan (Tolak), seperti yang ditunjukkan di bawah:

func (s *Stack) Push(item int) {
    s.items = append(s.items, item) //将元素添加到切片的末尾
}

Dalam fungsi, kami menggunakan fungsi tambah terbina dalam untuk menambah elemen masuk ke hujung kepingan.

Seterusnya, kita perlu melaksanakan kaedah (Pop) untuk mengalih keluar elemen daripada timbunan, seperti yang ditunjukkan di bawah:

func (s *Stack) Pop() int {
    length := len(s.items) - 1    //获取栈中元素数量
    lastItem := s.items[length]   //获取栈顶元素
    s.items = s.items[:length]    //从切片中删除栈顶元素
    return lastItem                //返回栈顶元素
}

Dalam fungsi, kita mula-mula mendapatkan elemen terakhir dalam kepingan (iaitu. elemen atas tindanan) dan kemudian gunakan sifat Menghiris kepingan untuk mengalih keluar elemen itu daripada kepingan. Akhir sekali, kami mengembalikan elemen atas timbunan ke bahagian panggilan.

Seterusnya, kita perlu melaksanakan kaedah (Peek) untuk mendapatkan elemen teratas timbunan, seperti yang ditunjukkan di bawah:

func (s *Stack) Peek() int {
    return s.items[len(s.items)-1]   //返回栈顶元素
}

Dalam fungsi, kita menggunakan len(s.items)- 1 untuk mendapatkan tindanan Subskrip elemen teratas, kerana subskrip elemen terakhir dalam kepingan sentiasa len(s.items)-1.

Akhir sekali, kita perlu melaksanakan kaedah untuk menyemak sama ada timbunan kosong (IsEmpty), seperti yang ditunjukkan di bawah:

func (s *Stack) IsEmpty() bool {
    return len(s.items) == 0    //判断栈中是否有元素
}

Dalam fungsi, kami menggunakan len(s.items) untuk menyemak item dalam tindanan Bilangan elemen. Jika tiada unsur dalam timbunan, kami akan mengembalikan benar, jika tidak, kami akan mengembalikan palsu.

Kini kami mempunyai pelaksanaan asas tindanan Golang. Dalam kod contoh berikut, kami menggunakan fungsi utama Golang untuk menguji kefungsian tindanan:

func main() {
    myStack := Stack{}    //初始化一个栈
    
    myStack.Push(23)     //向栈中添加元素
    myStack.Push(45)
    myStack.Push(67)
    
    fmt.Println("栈顶元素为:", myStack.Peek())     //获取栈顶元素
    
    fmt.Println("弹出:", myStack.Pop())      //从栈中弹出元素
    fmt.Println("栈是否为空?", myStack.IsEmpty())    //检查栈是否为空

}

Dalam kod ini, kita mula-mula memulakan tindanan dan kemudian menambah tiga elemen padanya (23, 45 dan 67). Seterusnya, kami menggunakan kaedah Peek untuk mendapatkan elemen teratas timbunan, dan kaedah Pop untuk mengeluarkan elemen dari timbunan. Akhir sekali, kami menggunakan kaedah IsEmpty untuk menyemak sama ada timbunan kosong.

Selepas menjalankan program, output akan kelihatan seperti ini:

栈顶元素为: 67
弹出: 67
栈是否为空? false

Ringkasan

Dalam artikel ini, kami memperkenalkan cara untuk melaksanakan tindanan di Golang. Kami melihat cara untuk menentukan struktur tindanan dan cara melaksanakan kaedah Push, Pop, Peek dan IsEmpty. Pelaksanaan tindanan mudah ini boleh membantu kami menyimpan dan memanipulasi data dalam program Golang dan lebih memahami cara struktur data tindanan berfungsi.

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

Kenyataan:
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
Artikel sebelumnya:kaedah pengaturcaraan golangArtikel seterusnya:kaedah pengaturcaraan golang