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

一个空间可以绑定几个网站百度推广账户登录首页

一个空间可以绑定几个网站,百度推广账户登录首页,广东中山市做网站,常德城乡和住房建设局网站链表的前提 GO语言的链表类似于C语言的链表,它通过结构体和结构体指针实现。 结构体 GO语言定义结构体如下 type user struct {name stringage intnext *user } 结构体指针 结构体指针就是指向结构体的指针,我们在链表中会用到结构体指针实现链…

链表的前提

GO语言的链表类似于C语言的链表,它通过结构体和结构体指针实现。

结构体

GO语言定义结构体如下
 

type user struct {name stringage  intnext *user
}
结构体指针

结构体指针就是指向结构体的指针,我们在链表中会用到结构体指针实现链表节点之间的连接
next *user   就是结构体指针

构建链表

构建链表需要三点:头节点,尾节点,中间节点
头节点的作用相当于链表的入口,尾节点用来表示节点的结尾,中间节点用于存储信息

创建头节点
 

head := &user{}
//此时的head 类型是*user

插入节点


1.尾插法
func insert_end(head *user, name string, age int) *user {new_user := &user{name, age, nil}p := headfor {if p.next != nil {p = p.next}break} //循环结束后p指向最后一个节点p.next = new_userreturn head
}

为什么new_user := &user{name, age, nil}创建一个结构体指针 而不是创建一个结构体变量

如果我们直接创建一个结构体变量,那它的类型就是user,由因为我们是在insert_end函数里面创建的这个变量,所以它的生命周期只有在这个函数里面存在。并且我们在接入节点的时候p.next = new_user就会报错,我们就需要改成p.next = &new_user。但是当我们的函数结束的时候new_user 就会被销毁,p.next就会指向一个已经被销毁的内存。但是我们使用new_user := &user{name, age, nil}的时候虽然user会随着函数结束而销毁但是这个内存由于被链表引用所以会一直存在。

尾插法的核心点在于寻找尾节点,并让尾节点的next指向新节点

2.头插法
func insert_head(head *user, name string, age int) *user {p := head.nextnew_user := &user{name, age, nil}head.next = new_usernew_user.next = preturn head
}

最后返回head是保证外部的head结构正确。我们在insert_head函数里面的head并不是main函数里面的head,他只是一个副本,我们需要副本覆盖掉原来的。所以需要return head(副本)

3.中插法(指定插入到某个节点之前)

func insert_body(head *user, name string, age int, key string) *user {new_user := &user{name, age, nil}p := headp2 := head.nextfor p2 != nil {if p2.name == key {p.next = new_usernew_user.next = p2return head}p = p2p2 = p2.next}// 如果循环结束都没有找到,则输出错误信息fmt.Println("插入错误,没找到对应的节点")return head
}

在这个方法中我们需要确定当前节点的下一个节点是否是我们需要插入到它之前的节点。如果是的话就让当前节点的next指向新节点,新节点的next指向原下一节点。

链表的删除

func delete(head *user, key string) *user {p := headp2 := head.nextfor p2 != nil {if p2.name == key {p.next = p2.next}p = p2p2 = p2.next}return head
}

删除的主要点在于让上一节点直接指向被删除节点的next,掠过这个节点。被删除节点由于无人引用就会自动回收

链表的遍历

func bianli(head *user) {p := head.nextfor {if p != nil {fmt.Println(p.name, p.age)} else {break}p = p.next}
}

遍历只需要一个头节点,不断循环下去一直循环到nil为止,然后输出对应节点的信息

http://www.zhongyajixie.com/news/27713.html

相关文章:

  • 开发公司建酒店科目aso优化
  • 适合学生做的网站类型网站一般怎么推广
  • 东莞室内设计培训一个企业seo网站的优化流程
  • 典当行网站第三方平台推广
  • 衡水市做网站中国企业培训网
  • 武汉建网公司网站建设南昌网站建设
  • 对于新公司如何让其做网站推广什么是搜索引擎优化seo
  • 在线A视频网站l一级A做爰片一个关键词要刷多久
  • 东莞寮步网站设计中国十大互联网公司排名
  • 聊城做网站最好的网络公司信息流广告代运营
  • 无锡网站制作哪家好上海网站制作开发
  • 陕西建站事件营销的概念
  • 怎么通过淘宝优惠券做网站赚钱今天株洲最新消息
  • wordpress留言板模板seo文章排名优化
  • 厦门 网站 开发百度普通版下载
  • 广东省外贸网站建设网站排名靠前
  • 专门做淘宝主图的网站网站seo专员招聘
  • 深圳专业企业网站制作哪家好浙江网站推广公司
  • 怎样做自己的 优惠卷网站app推广平台有哪些
  • 南京品牌网站开发模板seo综合查询国产
  • 做网站是什么百度营销app
  • 郑州正云网站建设做百度推广员赚钱吗
  • 网页网站设计公司深圳英文站seo
  • 团购网站建设方案十大网站平台
  • 通用网站后台管理系统(php版) 1.6怎么用深圳百度竞价托管公司
  • 那个网站专做文具批发北京网站制作
  • 租房子58同城西安百度网站排名优化
  • 自己做的网站提示不安全吗android优化大师
  • 棋牌游戏网站模板乐天seo培训
  • 电商如何推广自己的产品广州seo团队