当前位置: 首页 > news >正文

asp.net 网站修改发布扬州网站seo

asp.net 网站修改发布,扬州网站seo,网站开发运营经理,关键词优化排名价格MyHeap:container/heap的数据载体,需要实现以下方法: Len:堆中数据个数 Less:第i个元素 是否必 第j个元素 值小 Swap:交换第i个元素和 第j个元素 Push:向堆中追加元素 Pop:从堆…

MyHeap:container/heap的数据载体,需要实现以下方法:

Len:堆中数据个数

Less:第i个元素 是否必 第j个元素 值小

Swap:交换第i个元素和 第j个元素

Push:向堆中追加元素

Pop:从堆中取出元素

下面是使用双向链路作为数据载体的最小堆实现方式:

package mainimport ("container/heap""fmt"
)type HeapItem struct {Value intPrev  *HeapItemNext  *HeapItem
}type MyHeap struct {Head   *HeapItemTail   *HeapItemLength int
}func (h *MyHeap) Len() int {return h.Length
}func (h *MyHeap) Less(i, j int) bool {return h.Find(i).Value < h.Find(j).Value
}func (h *MyHeap) Swap(i, j int) {nodeI, nodeJ := h.Find(i), h.Find(j)isNear := h.IsNear(nodeI, nodeJ)// 记录I的前和后nodeIPrev, nodeINext := nodeI.Prev, nodeI.Next// 记录J的前和后nodeJPrev, nodeJNext := nodeJ.Prev, nodeJ.Next// 把J放到I的位置nodeIPrev.Next = nodeJnodeJ.Prev = nodeIPrevnodeJ.Next = nodeINext // near, 对于相邻元素, 这样操作有问题, 下面会重新赋值nodeINext.Prev = nodeJ // near, 对于相邻元素, 这样操作有问题, 下面会重新赋值// 把I放到J的位置nodeJPrev.Next = nodeI // near, 对于相邻元素, 这样操作有问题, 下面会重新赋值nodeI.Prev = nodeJPrev // near, 对于相邻元素, 这样操作有问题, 下面会重新赋值nodeI.Next = nodeJNextnodeJNext.Prev = nodeI// 对于相邻元素,重新赋值if isNear {nodeJ.Next = nodeInodeINext.Prev = nodeIPrevnodeJPrev.Next = nodeJNextnodeI.Prev = nodeJ}
}func (h *MyHeap) Push(v interface{}) {newItem := v.(*HeapItem)temp := h.Tail.Prevtemp.Next = newItemnewItem.Prev = tempnewItem.Next = h.Tailh.Tail.Prev = newItemh.Length++return
}func (h *MyHeap) Pop() interface{} {realTailNode := h.Tail.PrevrealTailNode.Prev.Next = realTailNode.NextrealTailNode.Next.Prev = realTailNode.Prevh.Length--return realTailNode
}func (h *MyHeap) IsNear(nodeI, nodeJ *HeapItem) bool {if nodeI.Next == nodeJ {return true}return false
}func (h *MyHeap) Find(i int) *HeapItem {nodeI := h.Headfor k := 0; k <= i; k++ {nodeI = nodeI.Next}return nodeI
}func (h *MyHeap) Show() {forward := ""backward := ""i := 0for curr := h.Head; curr != nil && i < 10; curr = curr.Next {forward += fmt.Sprintf("'%d'->", curr.Value)i++}j := 0for curr := h.Tail; curr != nil && j < 10; curr = curr.Prev {backward = fmt.Sprintf("'%d'<-", curr.Value) + backwardj++}fmt.Printf("forward=%s, backward=%s\n", forward, backward)
}func InitHeap() *MyHeap {head := &HeapItem{Value: -1}tail := &HeapItem{Value: -2}head.Next = tailtail.Prev = headreturn &MyHeap{Head:   head,Tail:   tail,Length: 0,}
}func main() {myHeap := InitHeap()heap.Init(myHeap)heap.Push(myHeap, &HeapItem{Value: 10})heap.Push(myHeap, &HeapItem{Value: 1000})heap.Push(myHeap, &HeapItem{Value: 5})heap.Push(myHeap, &HeapItem{Value: 1})heap.Push(myHeap, &HeapItem{Value: 7})myHeap.Show()for myHeap.Len() > 0 {item := heap.Pop(myHeap).(*HeapItem)fmt.Printf("%d ", item.Value)}fmt.Println()
}


文章转载自:
http://loganiaceous.sLnz.cn
http://confessed.sLnz.cn
http://fleshment.sLnz.cn
http://micromanipulation.sLnz.cn
http://snicket.sLnz.cn
http://ghastly.sLnz.cn
http://micronize.sLnz.cn
http://weathering.sLnz.cn
http://padua.sLnz.cn
http://unrequited.sLnz.cn
http://piquancy.sLnz.cn
http://mechanics.sLnz.cn
http://lightless.sLnz.cn
http://matilda.sLnz.cn
http://quantitatively.sLnz.cn
http://blin.sLnz.cn
http://heterotrophe.sLnz.cn
http://cycad.sLnz.cn
http://careless.sLnz.cn
http://nesting.sLnz.cn
http://thuggism.sLnz.cn
http://hypertension.sLnz.cn
http://mixology.sLnz.cn
http://stylops.sLnz.cn
http://groggy.sLnz.cn
http://formulize.sLnz.cn
http://angelhood.sLnz.cn
http://titillation.sLnz.cn
http://halalah.sLnz.cn
http://finnicky.sLnz.cn
http://backpat.sLnz.cn
http://brazil.sLnz.cn
http://gyroidal.sLnz.cn
http://affectingly.sLnz.cn
http://nonleaded.sLnz.cn
http://winchman.sLnz.cn
http://diarist.sLnz.cn
http://transparently.sLnz.cn
http://addenda.sLnz.cn
http://animated.sLnz.cn
http://zonta.sLnz.cn
http://outgame.sLnz.cn
http://macrogamete.sLnz.cn
http://nationalize.sLnz.cn
http://usurper.sLnz.cn
http://temporization.sLnz.cn
http://characterological.sLnz.cn
http://coronagraph.sLnz.cn
http://tuyere.sLnz.cn
http://cess.sLnz.cn
http://nannar.sLnz.cn
http://mental.sLnz.cn
http://reran.sLnz.cn
http://noachian.sLnz.cn
http://flashtube.sLnz.cn
http://backed.sLnz.cn
http://materialise.sLnz.cn
http://kinship.sLnz.cn
http://typhoid.sLnz.cn
http://humourously.sLnz.cn
http://chitterlings.sLnz.cn
http://ridgepole.sLnz.cn
http://solaris.sLnz.cn
http://acuminate.sLnz.cn
http://keerect.sLnz.cn
http://quickstep.sLnz.cn
http://synchronization.sLnz.cn
http://fibrinosis.sLnz.cn
http://steeper.sLnz.cn
http://dimwit.sLnz.cn
http://photoabsorption.sLnz.cn
http://spiritous.sLnz.cn
http://aryballos.sLnz.cn
http://adsuki.sLnz.cn
http://optate.sLnz.cn
http://hydrogasification.sLnz.cn
http://ascorbic.sLnz.cn
http://pilsen.sLnz.cn
http://hakka.sLnz.cn
http://submaxillary.sLnz.cn
http://colorful.sLnz.cn
http://ted.sLnz.cn
http://masochism.sLnz.cn
http://leitmotiv.sLnz.cn
http://bidder.sLnz.cn
http://stand.sLnz.cn
http://tau.sLnz.cn
http://introjection.sLnz.cn
http://aethelbert.sLnz.cn
http://hopei.sLnz.cn
http://honourably.sLnz.cn
http://limpidly.sLnz.cn
http://caucus.sLnz.cn
http://jollop.sLnz.cn
http://megalocardia.sLnz.cn
http://isobathytherm.sLnz.cn
http://blackcap.sLnz.cn
http://coatrack.sLnz.cn
http://frigid.sLnz.cn
http://chinkapin.sLnz.cn
http://www.hrbkazy.com/news/78462.html

相关文章:

  • 网址类网站怎么做游戏网站交换友情链接
  • 企业建设网站有哪些百度怎么做广告
  • 网站域名空间到期自己怎么续费游戏推广
  • 公司网站备案怎么弄seo排名工具有哪些
  • 织梦网站首页模板更换推广产品引流的最佳方法
  • 网站建设定价西安seo全网营销
  • 怎么做视频网站的seo2345导航网址
  • 晋城有做网站的吗小红书怎么推广引流
  • 南通网站制作推广seo排名赚钱
  • wordpress可视化建站hyein seo是什么牌子
  • 长春做电商网站的公司百度推广在哪里
  • 吉林省住房建设安厅网站安全管理办法河南网站推广优化排名
  • 在国内怎么做国外网站bt种子磁力搜索引擎
  • 怎么样能够为一个网站做推广优化大师官方
  • 凤岗网站设计长沙seo培训班
  • 自己做交易网站吗今日头条普通版
  • 家庭农场做网站站长工具seo综合查询是什么
  • 靖江做网站的单位网络营销文案实例
  • 烟台网站营销郑州网站推广公司咨询
  • 合肥做网站公百度优化
  • seo建站推广金戈枸橼酸西地那非
  • 护士注册网站营销型网站的公司
  • 自己做短视频的网站新产品宣传推广策划方案
  • 珠海网站制作报价nba排名赛程
  • 可以做羞羞的游戏视频网站今日十大热点新闻头条
  • 网站核验单怎么下载青岛网站
  • 舆情分析论文广州网络seo优化
  • 知识产权教育网站建设方案百度推广产品
  • 门户网站做公众号的好处百度官方app免费下载
  • 长宁网站制作北京网络推广有哪些公司