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
Libérer: 2023-04-03 13:38:49
original
707 Les gens l'ont consulté

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
}
Copier après la connexion

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)
}
Copier après la connexion
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
}
Copier après la connexion
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
}
Copier après la connexion
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
}
Copier après la connexion
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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal