Maison  >  Article  >  développement back-end  >  Comment implémenter une liste chaînée dans Golang

Comment implémenter une liste chaînée dans Golang

小老鼠
小老鼠original
2023-12-14 16:37:311129parcourir

Comment implémenter une liste chaînée : 1. Définissez une structure Node pour représenter les nœuds de la liste chaînée. Chaque nœud contient un élément de données et un pointeur vers le nœud suivant. 2. Définissez une structure LinkedList pour représenter la liste chaînée elle-même ; . , qui contient un pointeur vers le nœud principal de la liste chaînée ; 3. Deux méthodes sont implémentées, append est utilisée pour insérer un nœud à la fin de la liste chaînée et printList est utilisée pour imprimer les éléments de la liste chaînée ; 4. De cette manière, la structure du langage Go peut être utilisée et des pointeurs pour implémenter les fonctions de base des listes chaînées.

Comment implémenter une liste chaînée dans Golang

Le système d'exploitation de ce tutoriel : système windows10, version go1.20.1, ordinateur Dell G3.

Dans le langage Go, les structures et les pointeurs peuvent être utilisés pour implémenter des listes chaînées. Ce qui suit est un exemple simple qui montre comment implémenter une simple liste chaînée unidirectionnelle en langage Go :

package main
import "fmt"
// 定义链表节点
type Node struct {
    data int
    next *Node
}
// 定义链表
type LinkedList struct {
    head *Node
}
// 在链表末尾插入节点
func (list *LinkedList) append(data int) {
    newNode := &Node{data: data, next: nil}
    if list.head == nil {
        list.head = newNode
        return
    }
    lastNode := list.head
    for lastNode.next != nil {
        lastNode = lastNode.next
    }
    lastNode.next = newNode
}
// 打印链表元素
func (list *LinkedList) printList() {
    currentNode := list.head
    for currentNode != nil {
        fmt.Printf("%d -> ", currentNode.data)
        currentNode = currentNode.next
    }
    fmt.Println("nil")
}
func main() {
    // 创建链表
    var list LinkedList
    list.append(1)
    list.append(2)
    list.append(3)
    // 打印链表
    list.printList()
}

Dans l'exemple ci-dessus, nous définissons d'abord une structure Node pour représenter les nœuds de la liste chaînée, chaque nœud contient un élément de données et un pointeur vers le nœud suivant. Ensuite, nous définissons une structure LinkedList pour représenter la liste chaînée elle-même, qui contient un pointeur vers le nœud principal de la liste chaînée. Nous avons implémenté deux méthodes, append est utilisée pour insérer des nœuds à la fin de la liste chaînée et printList est utilisée pour imprimer les éléments de la liste chaînée.

De cette façon, nous pouvons utiliser les structures et les pointeurs du langage Go pour implémenter les fonctions de base des listes chaînées. Bien sûr, il ne s'agit que d'un exemple simple, et les listes chaînées réelles peuvent être plus complexes, comme les listes doublement chaînées, les listes chaînées circulaires, etc.

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