Rumah > pembangunan bahagian belakang > Golang > Mempelajari Semula Asas CS - Melaksanakan Tindanan

Mempelajari Semula Asas CS - Melaksanakan Tindanan

Susan Sarandon
Lepaskan: 2024-10-14 06:17:02
asal
593 orang telah melayarinya

Relearning Basics of CS - Implementing Stack

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.

Apa itu Stack

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())
}
Salin selepas log masuk

Atas ialah kandungan terperinci Mempelajari Semula Asas CS - Melaksanakan Tindanan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan