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

建站网址导航hao123html网页设计实验总结

建站网址导航hao123,html网页设计实验总结,网络营销工具及其特点,怎样开发游戏MyHeap#xff1a;container/heap的数据载体#xff0c;需要实现以下方法#xff1a; Len#xff1a;堆中数据个数 Less#xff1a;第i个元素 是否必 第j个元素 值小 Swap#xff1a;交换第i个元素和 第j个元素 Push#xff1a;向堆中追加元素 Pop#xff1a;从堆…MyHeapcontainer/heap的数据载体需要实现以下方法 Len堆中数据个数 Less第i个元素 是否必 第j个元素 值小 Swap交换第i个元素和 第j个元素 Push向堆中追加元素 Pop从堆中取出元素 下面是使用双向链路作为数据载体的最小堆实现方式 package mainimport (container/heapfmt )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.Lengthreturn }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://www.w-s-a.com/news/715725/

相关文章:

  • 西宁市网站建设价格丽水集团网站建设
  • 长宁怎么做网站优化好本机怎么放自己做的网站
  • 诚信网站备案中心网站字体怎么设置
  • 企业网站建设费是无形资产吗佛山网站建设哪个好点
  • 网站建设就业方向国开行网站毕业申请怎么做
  • 创建一个网站的费用wordpress 4.0 安装
  • 会员登录系统网站建设dw软件是做什么用的
  • 手机网站被做跳转长沙网上购物超市
  • 网站建设中网站需求分析设计网站推荐html代码
  • 容易收录的网站台州汇客网站建设
  • 企业网站源码百度网盘下载网站备案号如何查询密码
  • 个人网站建设课程宣传栏制作效果图
  • 自己做的网站能上传吗网上做彩票网站排名
  • 教育培训网站模板下载自己做商务网站有什么利弊
  • 平面设计公司网站兰州室内设计公司排名
  • 个人工作室注册条件温州seo结算
  • 360免费建站系统中国建设银行官网站黄金部王毅
  • 罗源福州网站建设个体户可以网站备案吗
  • 网站开发 专有名词pc网站建设和推广
  • 上海部道网站 建设conoha wordpress
  • 手机测评做视频网站宝塔可以做二级域名网站么
  • 代理公司注册济南重庆seo优化效果好
  • 佛山市骏域网站建设专家徐州网站建设价格
  • 公司做网站多济南好的网站建设公司排名
  • 网站维护的方式有哪几种该网站在工信部的icp ip地址
  • 中小企业服务中心网站建设做考勤的网站
  • 大连网站建设报价wordpress实用功能
  • 学校网站建设自查报告电脑网站制作教程
  • 适合推广的网站世界搜索引擎公司排名
  • 合肥网站建设费用ppt在哪个软件制作