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
是一个保存整数类型的切片。
接下来,我们可以为该结构体添加三个方法:Push
、Pop
和Peek
。Push
方法用于向堆栈中添加元素,Pop
方法用于从堆栈中删除元素,Peek
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) }
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 }
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 }
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 }
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!