Maison >Problème commun >Comment implémenter une liste chaînée unique en langage Go
La méthode d'implémentation d'une liste chaînée dans le langage Go est la suivante : 1. Créer un exemple de fichier Go ; 2. Définir la structure des nœuds de la liste chaînée ; 3. Parcourir les nœuds et ajouter de nouveaux nœuds en tête et à la fin de la liste chaînée ; 4. Insérez ou insérez à la position spécifiée de la liste chaînée Supprimez le nouveau nœud ; 5. Obtenez la valeur du nœud à la position spécifiée dans la liste chaînée et implémentez des opérations telles que l'ajout, la suppression, la modification et l'interrogation de nœuds.
Le système d'exploitation de ce tutoriel : système Windows 10, version Go1.20.1, ordinateur Dell G3.
Des listes chaînées peuvent être implémentées dans le langage Go via des structures et des pointeurs.
La méthode spécifique est la suivante :
1 Définir la structure des nœuds de la liste chaînée
type ListNode struct { Val int Next *ListNode }
2. Implémenter des opérations telles que l'ajout, la suppression, la modification et la vérification des nœuds
// 遍历节点 func (head *ListNode) Traverse() { for head != nil { fmt.Println(head.Val) head = head.Next } } // 在链表头添加新节点 func (head *ListNode) AddAtHead(val int) *ListNode { node := &ListNode{ Val: val, Next: head, } return node } // 在链表尾添加新节点 func (head *ListNode) AddAtTail(val int) *ListNode { if head == nil { return &ListNode{ Val: val, Next: nil, } } cur := head for cur.Next != nil { cur = cur.Next } cur.Next = &ListNode{ Val: val, Next: nil, } return head } // 在链表指定位置插入新节点 func (head *ListNode) AddAtIndex(index, val int) *ListNode { if index <= 0 { return head.AddAtHead(val) } cur := head for i := 0; i < index-1 && cur != nil; i++ { cur = cur.Next } if cur == nil { return head } node := &ListNode{ Val: val, Next: cur.Next, } cur.Next = node return head } // 删除链表指定位置的节点 func (head *ListNode) DeleteAtIndex(index int) *ListNode { if index < 0 { return head } if index == 0 { return head.Next } cur := head for i := 0; i < index-1 && cur != nil; i++ { cur = cur.Next } if cur == nil || cur.Next == nil { return head } cur.Next = cur.Next.Next return head } // 获取链表指定位置的节点值 func (head *ListNode).
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!