How to implement a simple stack using Golang

PHPz
Release: 2023-04-03 13:38:49
Original
694 people have browsed it

In computer science, the stack is an important data structure. The stack can well implement the "Last In First Out" (Last In First Out) data access method, so it is widely used in code.

Go language (Golang) has become the choice of many developers because of its efficient memory allocation and garbage collection mechanism. In this article, we will introduce how to implement a simple stack using Golang.

In Golang, we can use slices to implement stacks. A slice is a dynamic array whose length can be adjusted automatically, making it very suitable for stack data structures.

The following is a simple stack structure:

type Stack struct {
    data []int
}
Copy after login

data is a slice that holds an integer type.

Next, we can add three methods to this structure: Push, Pop, and Peek. The Push method is used to add elements to the stack, the Pop method is used to remove elements from the stack, and the Peek method is used to get the element at the top of the stack without Delete it.

The code for adding elements is as follows:

func (s *Stack) Push(n int) {
    s.data = append(s.data, n)
}
Copy after login

The code for deleting elements is as follows:

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
}
Copy after login

The code for getting the top element is as follows:

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
}
Copy after login

Here we used The function return multiple value syntax returns the desired result and an identifier of whether the operation was successful.

Now, we can create a stack and add, delete and view its elements in the following ways:

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
}
Copy after login

The above code will create a stack and add 1, 2, and 3 in sequence into it. We will then look at the top element of the stack (3), remove the last element (3) and remove the last element again (2).

Through this article, we introduced the simple stack structure and its implementation in Golang. Stack is an important data structure that is widely used in algorithm and software development. Mastering the basic knowledge of the stack and its implementation in Golang will help you better understand and use the stack.

The above is the detailed content of How to implement a simple stack using Golang. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template