Golang之实现(链表)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Golang之实现(链表)相关的知识,希望对你有一定的参考价值。

链表算法

技术分享图片
package main

import "fmt"

type LinkNode struct {
    data interface{}
    next *LinkNode
}
type Link struct {
    head *LinkNode
    tail *LinkNode
}

func (p *Link) InsertHead(data interface{}) {
    node := &LinkNode{
        data: data,
        next: nil,
    }
    if p.tail == nil && p.head == nil {
        p.tail = node
        p.head = node
        return
    }
}

func (p *Link) InsertTail(data interface{}) {
    node := &LinkNode{
        data: data,
        next: nil,
    }
    if p.tail == nil && p.head == nil {
        p.tail = node
        p.head = node
        return
    }
    p.tail.next = node
    p.tail = node
}
func (p *Link)Trans(){
    q:=p.head
    for q!=nil{
        fmt.Println(q.data)
        q=q.next
    }
}
Link.go
技术分享图片
package main

import "fmt"

func main() {

    var link Link
    for i := 0; i < 10; i++ {

        //link.InsertHead(i)
        link.InsertTail(fmt.Sprintf("str %d",i))
    }
    link.Trans()
}
main.go

 

以上是关于Golang之实现(链表)的主要内容,如果未能解决你的问题,请参考以下文章

代码片段 - Golang 实现集合操作

golang代码片段(摘抄)

golang goroutine例子[golang并发代码片段]

golang Golang使用链表实现基本堆栈的示例

用golang实现的单向链表

golang中用链表实现栈