Rumah >pembangunan bahagian belakang >Golang >Mempelajari Semula Asas CS - Melaksanakan Tindanan
Saya telah cuba mempelajari bahasa pengaturcaraan baharu dan cara yang lebih baik untuk melakukannya daripada bermula dari asas. Dalam siri siaran yang datang ini, saya akan cuba melaksanakan struktur Data dan algoritma yang mudah menggunakan Go.
Dalam buku An Introduction to algorithms By CLRS dalam bab Elementary data structure struktur data pertama yang diperkatakan ialah timbunan.
Timbunan ialah struktur data ringkas yang digunakan untuk menyimpan satu set item. Sifat tindanan ialah ia membolehkan kita menambah item pada bahagian atas tindanan dan mengeluarkan daripada tindanan supaya ia mengikut prinsip Keluar Dahulu Terakhir atau LIFO.
Operasi sisipan dipanggil Tekan dan operasi keluarkan dipanggil Pop. Memandangkan kami tidak mahu mempunyai tindanan pop kosong dan menangani ralat memori, kami juga melaksanakan semakan sama ada Tindanan kosong atau tidak. Struktur data yang agak mudah.
Di bawah anda boleh menemui pelaksanaan tindanan dalam golang. Kerumitan masa ialah O(N) dan kerumitan ruang menggunakan tindanan ialah O(1)
package main import "fmt" type Stack []int func (stack *Stack) Push (value int){ *stack = append(*stack, value) } func (stack *Stack) Pop () int{ if stack.IsEmpty() { return 0 } top := (*stack)[len(*stack)-1] *stack = (*stack)[:len(*stack)-1] return top } func (stack *Stack) IsEmpty() bool{ return len(*stack) == 0 } func main(){ st := Stack{} st.Push(1) st.Push(2) fmt.Println(st.Pop()) }
Atas ialah kandungan terperinci Mempelajari Semula Asas CS - Melaksanakan Tindanan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!