Heim > Backend-Entwicklung > Golang > So implementieren Sie einen einfachen Stack mit Golang

So implementieren Sie einen einfachen Stack mit Golang

PHPz
Freigeben: 2023-04-03 13:38:49
Original
707 Leute haben es durchsucht

In der Informatik ist der Stack eine wichtige Datenstruktur. Der Stapel kann die Datenzugriffsmethode „Last In First Out“ (Last In First Out) gut implementieren und wird daher häufig im Code verwendet.

Go-Sprache (Golang) ist aufgrund ihrer effizienten Speicherzuweisung und ihres Garbage-Collection-Mechanismus zur bevorzugten Sprache vieler Entwickler geworden. In diesem Artikel stellen wir vor, wie man mit Golang einen einfachen Stack implementiert.

In Golang können wir Slices verwenden, um Stapel zu implementieren. Ein Slice ist ein dynamisches Array, dessen Länge automatisch angepasst werden kann, wodurch es sich sehr gut für Stapeldatenstrukturen eignet.

Das Folgende ist eine einfache Stapelstruktur:

type Stack struct {
    data []int
}
Nach dem Login kopieren

data ist ein Slice, das einen Integer-Typ enthält. data是一个保存整数类型的切片。

接下来,我们可以为该结构体添加三个方法:PushPopPeekPush方法用于向堆栈中添加元素,Pop方法用于从堆栈中删除元素,Peek

Als nächstes können wir dieser Struktur drei Methoden hinzufügen: Push, Pop und Peek. Mit der Methode Push werden Elemente zum Stapel hinzugefügt, mit der Methode Pop werden Elemente aus dem Stapel entfernt und mit der Methode Peek Wird verwendet, um das Element an die Spitze des Stapels zu bringen, ohne es zu löschen.

Der Code zum Hinzufügen eines Elements lautet wie folgt:

func (s *Stack) Push(n int) {
    s.data = append(s.data, n)
}
Nach dem Login kopieren
Der Code zum Löschen eines Elements lautet wie folgt:

func (s *Stack) Pop() (int, bool) {
    if len(s.data) == 0 {
        return 0, false
    }
    lastIdx := len(s.data) - 1
    last := s.data[lastIdx]
    s.data = s.data[:lastIdx]
    return last, true
}
Nach dem Login kopieren
Der Code zum Abrufen des obersten Elements lautet wie folgt:

func (s *Stack) Peek() (int, bool) {
    if len(s.data) == 0 {
        return 0, false
    }
    lastIdx := len(s.data) - 1
    last := s.data[lastIdx]
    return last, true
}
Nach dem Login kopieren
Hier verwenden wir die Syntax einer Funktion Gibt mehrere Werte zurück, um das erforderliche Ergebnis zurückzugeben und ob der Vorgang eine Erfolgskennung ist.

Jetzt können wir einen Stapel erstellen und seine Elemente hinzufügen, entfernen und anzeigen, indem wir:

stack := Stack{}
stack.Push(1)
stack.Push(2)
stack.Push(3)

val, ok := stack.Peek()
if ok {
    fmt.Println(val) // 3
}

val, ok = stack.Pop()
if ok {
    fmt.Println(val) // 3
}

val, ok = stack.Pop()
if ok {
    fmt.Println(val) // 2
}
Nach dem Login kopieren
Der obige Code erstellt einen Stapel und fügt nacheinander 1, 2 und 3 hinzu. Wir schauen uns dann das oberste Element des Stapels an (3), entfernen das letzte Element (3) und entfernen das letzte Element erneut (2).

In diesem Artikel haben wir die einfache Stapelstruktur und deren Implementierung in Golang vorgestellt. Stack ist eine wichtige Datenstruktur, die in der Algorithmen- und Softwareentwicklung weit verbreitet ist. Wenn Sie die Grundkenntnisse des Stacks und seiner Implementierung in Golang beherrschen, können Sie den Stack besser verstehen und verwenden. 🎜

Das obige ist der detaillierte Inhalt vonSo implementieren Sie einen einfachen Stack mit Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage