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

建个什么网站好呢企业网站建设公司排名

建个什么网站好呢,企业网站建设公司排名,字画价格网站建设方案,外贸营销策略都有哪些链表 关于链表的原理已经有一篇链表文章写的很详细了#xff0c;这篇文章主要侧重于代码的实现#xff0c;主要使用go实现。 单链表实现 package Listtype listNode struct {val intnext *listNode }func newNode(val int) *listNode {node : new(listNode)node.val val…链表 关于链表的原理已经有一篇链表文章写的很详细了这篇文章主要侧重于代码的实现主要使用go实现。 单链表实现 package Listtype listNode struct {val intnext *listNode }func newNode(val int) *listNode {node : new(listNode)node.val valnode.next nilreturn node }// NewList 初始化一个不带头结点的链表 func NewList(vals []int) *listNode {var fistNode *listNodevar curNode *listNodefor _, v : range vals {node : newNode(v)if curNode nil {fistNode nodecurNode fistNodecontinue}curNode.next nodecurNode curNode.next}return fistNode }// FistAdd 头插 func FistAdd(fistNode *listNode, val int) *listNode{if fistNode nil {return fistNode}node : newNode(val)node.next fistNodereturn node }// LastAdd 尾插 func LastAdd(fistNode *listNode, val int) {if fistNode nil {return}curNode : fistNodefor curNode.next ! nil {curNode curNode.next}node : newNode(val)curNode.next nodereturn }// IndexValAdd 在第一个指定值后插入若没有在链表尾部插入 // fistNode 链表第一个节点, indexVal 目标节点值, val 新节点值 func IndexValAdd(fistNode *listNode, indexVal, val int) {if fistNode nil {return}curNode : fistNodefor curNode.next ! nil curNode.val ! indexVal {curNode curNode.next}node : newNode(val)nextNode : curNode.nextnode.next nextNodecurNode.next nodereturn }// ChangVal 更改目标节点值若没有不做改动 // fistNode 链表第一个节点, indexVal 目标节点值, val 目标值 func ChangVal (fistNode *listNode, indexVal, tarVal int) {if fistNode nil {return}curNode : fistNodefor curNode ! nil curNode.val ! indexVal {curNode curNode.next}// 判断是走到最后都没有找到对应值还是找到对应值if curNode nil{return}curNode.val tarValreturn}// DelNode 删除指定节点若没有则不删除 func DelNode(fistNode *listNode, indexVal int) {if fistNode nil {return}curNode : fistNode// 查找要删除节点的前一个节点for curNode.next ! nil {nextNode : curNode.nextif nextNode.val indexVal {break}curNode curNode.next}if curNode.next nil {return}nextNode : curNode.nextcurNode.next nextNode.next}// Show 不带头节点查 func Show(node *listNode) []int {if node nil {return []int{}}valSlice : make([]int, 0, 4)curNode : nodefor curNode ! nil {valSlice append(valSlice, curNode.val)curNode curNode.next}return valSlice }验证代码 package mainimport (Data/Listfmt )func main() {// 初始化一个链表fistNode : List.NewList([]int{1, 2, 3, 4, 5})fmt.Println(初始化一个链表 :,List.Show(fistNode))// 对链表进行头插fistNode List.FistAdd(fistNode, 0)fmt.Println(对链表进行头插 0 :,List.Show(fistNode))// 对链表进行尾插List.LastAdd(fistNode, 6)fmt.Println(对链表进行尾插 6 :,List.Show(fistNode))// 删除指定节点List.DelNode(fistNode, 3)fmt.Println(删除指定节点 3 :,List.Show(fistNode))List.DelNode(fistNode, 3)fmt.Println(删除指定节点 3 :,List.Show(fistNode))List.DelNode(fistNode, 3)fmt.Println(删除指定节点 7 :,List.Show(fistNode))// 在第一个指定值后插入List.IndexValAdd(fistNode, 4, 41)fmt.Println(在第一个指定值后插入若没有在链表尾部插入 4 41 :,List.Show(fistNode))List.IndexValAdd(fistNode, 7, 42)fmt.Println(在第一个指定值后插入若没有在链表尾部插入 7 42 :,List.Show(fistNode))// 更改目标节点值List.ChangVal(fistNode, 4, 40)fmt.Println(更改目标节点值 4 40 :,List.Show(fistNode))List.ChangVal(fistNode, 7, 43)fmt.Println(更改目标节点值 7 43 :,List.Show(fistNode)) }效果图 循环链表实现 package Listimport fmtfunc newCircleNode(val int) *listNode {node : new(listNode)node.val valnode.next nodereturn node }func NewCircleList(vals []int) *listNode {var fistNode *listNodevar curNode *listNodefor _, v : range vals {if curNode nil {fistNode newCircleNode(v)curNode fistNodecontinue}node : newCircleNode(v)node.next fistNodecurNode.next nodecurNode curNode.next}return fistNode }func isLastNode(fistNode *listNode, node *listNode) bool {return node.next fistNode }// CircleFistAdd 头插 func CircleFistAdd(fistNode **listNode, val int) {if fistNode nil {return}curNode : *fistNodefor !isLastNode(*fistNode, curNode) {curNode curNode.next}node : newCircleNode(val)curNode.next nodenode.next *fistNode*fistNode node }// CircleLastAdd 尾插 func CircleLastAdd(fistNode *listNode, val int) {if fistNode nil {return}curNode : fistNodefor !isLastNode(fistNode, curNode) {curNode curNode.next}node : newCircleNode(val)node.next fistNodecurNode.next node}// CircleIndexValAdd 在第一个指定值后插入若没有在链表尾部插入 func CircleIndexValAdd(fistNode *listNode, indexVal,val int) {if fistNode nil {return}curNode : fistNodefor !isLastNode(fistNode, curNode) curNode.val ! indexVal {curNode curNode.next}node : newCircleNode(val)node.next curNode.nextcurNode.next node}// CircleChangVal 更改目标节点值若没有不做改动 func CircleChangVal(fistNode *listNode, indexVal, tarVal int) {if fistNode nil {return}curNode : fistNodefor curNode.val ! indexVal !isLastNode(fistNode, curNode) {curNode curNode.next}if curNode.val indexVal {curNode.val tarValreturn}fmt.Printf(节点 %d 不存在\n, indexVal) }// CircleDelNode 删除指定节点若没有则不删除 func CircleDelNode(fistNode *listNode, indexVal int) {if fistNode nil {return}curNode : fistNodefor curNode.next.val ! indexVal !isLastNode(fistNode, curNode) {curNode curNode.next}if curNode.next.val indexVal {curNode.next curNode.next.nextreturn}fmt.Printf(没有该节点 %d \n, indexVal)}// CircleShow 查看链表 func CircleShow(fistNode *listNode) {if fistNode nil {return}curNode : fistNodefor {if isLastNode(fistNode, curNode) {fmt.Printf(val:%d next:%d, curNode.val, curNode.next.val)break}fmt.Printf(val:%d next:%d - , curNode.val, curNode.next.val)curNode curNode.next}fmt.Println() } 验证代码 package mainimport (Data/Listfmt )func main() {// 初始化一个环形链表circleFistNode : List.NewCircleList([]int{1, 2, 3})fmt.Println(初始化一个链表 :)List.CircleShow(circleFistNode)// 对链表进行头插List.CircleFistAdd(circleFistNode, 0)fmt.Println(对链表进行头插 0:)List.CircleShow(circleFistNode)// 对链表进行尾插List.CircleLastAdd(circleFistNode, 4)fmt.Println(对链表进行尾插 4 :)List.CircleShow(circleFistNode)// 删除指定节点fmt.Println(删除指定节点 3 :)List.CircleDelNode(circleFistNode, 3)List.CircleShow(circleFistNode)fmt.Println(删除指定节点 3 :)List.CircleDelNode(circleFistNode, 3)List.CircleShow(circleFistNode)fmt.Println(删除指定节点 7 :)List.CircleDelNode(circleFistNode, 7)List.CircleShow(circleFistNode)// 在第一个指定值后插入circleFistNode List.NewCircleList([]int{1, 2, 3})fmt.Println(初始化一个链表 :)List.CircleShow(circleFistNode)List.CircleIndexValAdd(circleFistNode, 2, 41)fmt.Println(在第一个指定值后插入若没有在链表尾部插入 2 41 :)List.CircleShow(circleFistNode)List.CircleIndexValAdd(circleFistNode, 7, 42)fmt.Println(在第一个指定值后插入若没有在链表尾部插入 7 42 :)List.CircleShow(circleFistNode)// 更改目标节点值circleFistNode List.NewCircleList([]int{1, 2, 3, 4})fmt.Println(初始化一个链表 :)List.CircleShow(circleFistNode)fmt.Println(更改目标节点值 3 40 :)List.CircleChangVal(circleFistNode, 3, 40)List.CircleShow(circleFistNode)fmt.Println(更改目标节点值 7 43 :)List.CircleChangVal(circleFistNode, 7, 43)List.CircleShow(circleFistNode)// } 效果图
http://www.zqtcl.cn/news/93841/

相关文章:

  • 德州建设银行兑换网站服务器网站跳转怎么做的
  • 金华专业做网站公司湖南网站建设服务
  • 企业网站设计沈阳苏宁电器网站建设特点分析
  • 建设工程类公司网站易语言可以做api网站对接吗
  • 青岛做网站皆赴青岛博wordpress 数据库 备份
  • 外贸公司网站空间哈尔滨seo优化专注
  • 建筑行业综合查询平台优化推广联盟
  • 北京管庄网站建设公司开平网站制作
  • 如何做销售直播网站最专业网站建设
  • 太原市住房和城乡建设局的网站首页网络推广服务外包公司
  • 湘icp备 网站建设 农业 湖南稿定设计免费版
  • 公司网站推广方法陕西省住房建设厅官网
  • 网站关键词排名突然没了无锡企业网站建设报价
  • 找做网站的人网站改版 301跳转
  • 网站备案一次就可以了吧营销管理培训课程
  • 怎么做网站背景专做民宿预定的网站
  • wordpress安装谷歌分析代码建网站seo
  • 百度外卖网站建设与维护方法建设 银行网网站
  • 小程序开发定制开发上海优化价格
  • 来宾住房和城乡建设局网站做外贸推广要做哪些平台
  • 无锡建设网站制作wordpress 知乎
  • 动漫网站源码免费怎么怎么做网站
  • 和两个黑人同时做网站中工互联网站建设
  • windows10PHP 网站建设app应用分发平台开发
  • 中唯建设工程有限公司网站做网站页面对PS切图
  • 个人网页制作成品欣赏seo网站沙盒期
  • 亚马逊站外推广网站怎么做制作营销网站模板免费下载
  • 加拿大网站后缀设计师互联网
  • 做物流的网站有哪些内容共同建设网站心得
  • 主题资源网站建设什么网站做污水处理药剂的好