Maison  >  Article  >  développement back-end  >  Comment implémenter la pile dans Golang

Comment implémenter la pile dans Golang

PHPz
PHPzoriginal
2023-04-03 09:19:351377parcourir

Golang est un langage compilé à typage statique conçu pour permettre aux programmeurs d'écrire du code haute performance plus rapidement et de manière plus sûre. Parmi eux, la pile d'implémentation Golang est un scénario d'application très courant. La pile est une structure de données dernier entré, premier sorti (LIFO). Ses opérations incluent le push et le pop, ainsi que l'opération d'obtention de l'élément supérieur de la pile. Ensuite, nous présenterons en détail comment implémenter la pile dans Golang.

Définir la structure des données de la pile

Pour implémenter une pile dans Golang, vous devez d'abord définir une structure de pile pour stocker les éléments de la pile. La pile peut être implémentée à l'aide d'un tableau ou d'une liste chaînée. Dans cet article, un tableau sera utilisé comme structure de données sous-jacente de la pile.

type Stack struct {
    data []interface{}
}

Dans la structure Stack, le champ de données est un tableau dynamique. Nous stockerons tout type de données dans la pile, le type de données doit donc être de type interface{}. Ensuite, nous devons définir certaines opérations de pile, telles que push, pop, Len, etc.

Ajouter des éléments à la pile (push)

La méthode push est utilisée pour ajouter un élément en haut de la pile. Une fois implémentée, vous pouvez utiliser la fonction append() pour ajouter des éléments à la tranche de données.

func (s *Stack) Push(element interface{}) {
    s.data = append(s.data, element)
}

La longueur de la pile (Len)

Étant donné que les données sont un tableau dynamique, vous pouvez utiliser la fonction len() intégrée pour renvoyer la longueur de la pile.

func (s *Stack) Len() int {
    return len(s.data)
}

Obtenir l'élément supérieur de la pile (Peek)

La méthode Peek est utilisée pour obtenir l'élément supérieur de la pile, mais elle ne le supprimera pas de la pile. Il nous suffit de renvoyer le dernier élément de la tranche de données.

func (s *Stack) Peek() interface{} {
    return s.data[len(s.data)-1]
}

Supprimer l'élément supérieur de la pile (pop)

La méthode pop est utilisée pour supprimer un élément du haut de la pile et renvoyer sa valeur. Puisque nous voulons supprimer l'élément supérieur de la pile, nous devons d'abord obtenir l'élément supérieur de la pile, utiliser le découpage pour réassembler les données, puis renvoyer l'élément supérieur de la pile.

func (s *Stack) Pop() interface{} {
    if len(s.data) == 0 {
        return nil
    }
    res := s.data[len(s.data)-1]
    s.data = s.data[:len(s.data)-1]
    return res
}

Utilisation de la pile

Maintenant, le cadre de base permettant à Golang d'implémenter la pile a été établi. Nous pouvons utiliser cette structure de pile dans la fonction main() pour ajouter et supprimer des éléments. Par exemple :

func main() {
    s := Stack{}
    s.Push("golang")
    s.Push("stack")
    s.Push(100)
    fmt.Println(s.Pop()) //"100"
    fmt.Println(s.Pop()) //"stack"
    fmt.Println(s.Pop()) //"golang"
}

L'implémentation de cette pile est très simple, mais cela suffit à prouver qu'il est très simple d'implémenter la pile en utilisant golang.

Conclusion

La pile d'implémentation de Golang est très simple. Nous devons simplement définir une structure de pile, utiliser un tableau dynamique pour stocker des éléments et utiliser des méthodes pour ajouter et supprimer des éléments. La pile est une structure de données très utile que nous pouvons utiliser dans de nombreuses applications. Pendant le processus de développement, le choix d'une structure de données appropriée en fonction de la situation réelle peut améliorer efficacement l'efficacité du code.

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