加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang实现常用数据结构

发布时间:2020-12-16 18:33:45 所属栏目:大数据 来源:网络整理
导读:1.数组栈的实现 package main import ( "fmt" ) type ItemType int type Stack struct { node [ 10 ] ItemType maxsize int top int } func StackInit ( p * Stack ) { p . top = - 1 StackCheckFull ) bool { if p = p . maxsize return true } else false

1.数组栈的实现

package main

import (
"fmt"
)

type ItemType int

type Stack struct {
node [10]ItemType
maxsize int
top int
}

func StackInit(p *Stack) {
p.top = -1
StackCheckFull) bool {
if p>= p.maxsize return true
} else false
}
StackCheckEmpty<= 1 StackPush, v ItemType.top++
p.node[p] = v
return
StackPop(v {
v = p]
p--
return v
}

func main() var stack Stack
(&stack 100)
8844)
value := )
fmt.Println(value)
}

2.链表的实现

)

type item int

type list {
data item
next *list
}

var phead ptail *list
var listCount int

func main{
listInit()
listAdd()
listAdd9977)
listTraverse()
}

func listInit{
head := new(list)
phead = head
ptail = head
listCount = 0
}

func listAdd(data itemvar q *list )
q.nil
q.data = data
ptail= q
ptail = q
listCount++
}

func listInsert pos intint if pos >= listCount return 1
}
var ptmp = phead
for i 0; i < pos; i++ {
ptmp = ptmpnext
}
q = data
qnext
ptmp++
}

func listDelete(pos > listCount 1}
ptmpnextnext
}

func listTraversefor ptmp!= nil next
fmtPrintf"%d->" ptmp.data}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读