Maison >développement back-end >Golang >Comment implémenter une pile simple en utilisant Golang

Comment implémenter une pile simple en utilisant Golang

PHPz
PHPzoriginal
2023-04-03 11:49:58716parcourir

En informatique, la pile est une structure de données importante. La pile peut bien implémenter la méthode d'accès aux données "Last In First Out" (Last In First Out), elle est donc largement utilisée dans le code.

Le langage Go (Golang) est devenu le choix de nombreux développeurs en raison de son mécanisme efficace d'allocation de mémoire et de garbage collection. Dans cet article, nous présenterons comment implémenter une pile simple à l'aide de Golang.

Dans Golang, nous pouvons utiliser des tranches pour implémenter des piles. Une tranche est un tableau dynamique dont la longueur peut être ajustée automatiquement, ce qui le rend très approprié pour les structures de données en pile.

Ce qui suit est une structure de pile simple :

type Stack struct {
    data []int
}

data est une tranche qui contient un type entier. data是一个保存整数类型的切片。

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

Ensuite, nous pouvons ajouter trois méthodes à cette structure : Push, Pop et Peek. La méthode Push est utilisée pour ajouter des éléments à la pile, la méthode Pop est utilisée pour supprimer des éléments de la pile et la méthode Peek est utilisé pour obtenir l'élément en haut de la pile, sans le supprimer.

Le code pour ajouter un élément est le suivant :

func (s *Stack) Push(n int) {
    s.data = append(s.data, n)
}
Le code pour supprimer un élément est le suivant :

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
}
Le code pour obtenir l'élément du haut est le suivant :

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
}
Ici on utilise la syntaxe d'une fonction renvoyer plusieurs valeurs pour renvoyer le résultat requis et si l'opération est un identifiant de réussite.

Maintenant, nous pouvons créer une pile et ajouter, supprimer et afficher ses éléments en :

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
}
Le code ci-dessus créera une pile et y ajoutera 1, 2 et 3 dans l'ordre. Nous allons ensuite regarder l'élément supérieur de la pile (3), supprimer le dernier élément (3) et supprimer à nouveau le dernier élément (2).

À travers cet article, nous avons présenté la structure de pile simple et comment elle est implémentée dans Golang. La pile est une structure de données importante largement utilisée dans le développement d’algorithmes et de logiciels. Maîtriser les connaissances de base de la stack et son implémentation dans Golang vous aidera à mieux comprendre et utiliser la stack. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn