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

短网址生成网站外贸网站外贸网站建设行吗

短网址生成网站,外贸网站外贸网站建设行吗,整合营销英文,有哪些做微信小游戏的网站文章目录 链表的相关知识链表的创建:模拟方式建立链表的**递归创建** 链表的读取遍历读取递归读取 完整代码 链表的相关知识 链表有时会具有头节点#xff0c;头节点的指针指向第一个节点的地址#xff0c;其本身的数据域可以根据自己的选择进行赋值   接下来我将以将int转… 文章目录 链表的相关知识链表的创建:模拟方式建立链表的**递归创建** 链表的读取遍历读取递归读取 完整代码 链表的相关知识 链表有时会具有头节点头节点的指针指向第一个节点的地址其本身的数据域可以根据自己的选择进行赋值   接下来我将以将int转换为链表为例进行演示如果有什么地方可以改进也希望路过大神能够指出 链表的创建: 链表的结构定义一般如下即由本身的数据和指向下一个节点的指针构成 type ListNode struct {Val intNext *ListNode//不能直接赋值listnode避免产生嵌套引用 }链表的创建每个节点存储一位数字在创建的过程中 我们需要设置中间的可变节点不然我们可能会丢失对链表的第一个节点的索引以下的例子中我们就使用middle为中间节点将head设置为头节点并代表完整的链表 模拟方式建立 我们利用迭代的方法只要还存在num就更新创建一个新的节点 // 尝试建立有头节点的链表关键在于赋值给middle.next func CreateList(nums int) *ListNode {Head : new(ListNode) //这代表一整个链表并通过这里的头节点进行标注方便该链表的引用middle : Head //middle视作Head链表的中间节点其一直改变for nums 0 {middle.Next ListNode{Val: nums % 10}//头节点赋值方法fmt.Printf(middle.Val: %v\n, middle.Val)middle middle.Nextnums / 10}return Head }链表的递归创建 // 递归建立链表 func RecurCreateList(nums int) *ListNode {//在递归时好像不需要单独保存头节点位置后续的位置会递归存储在next中不用考虑被覆盖的问题middle : new(ListNode) //建立头指针其指针不变// 123%103// 12.3%102// 1.23%101// 120%100// 12 %102// 1.2%101if nums 1 || nums%10 0 {middle.Val nums % 10fmt.Printf(middle.Val: %v\n, middle.Val)if nums 1 {nums / 10middle.Next RecurCreateList(nums)}}return middle }链表的读取 遍历读取 链表读取时我们需要根据是否具有头节点进行一定的调整下面是使用遍历迭代进行创建的过程 // 尝试遍历读取链表 func ReadList(L ListNode) {middle : L //将头节点赋予这里的中间节点middle//循环读取链表的内容for middle.Next ! nil {v : middle.Next.Val //由于我们这里判断的是本身节点是否为空所以在输出时使用下一节点的值进行输出避免错过某个值fmt.Printf(v: %v\n, v)// // fmt.Printf(L: %v\n, L)middle *middle.Next// // fmt.Printf(L: %v\n, L)} }递归读取 下面为使用递归进行读取的方法 由于节点的定义过程中使用内嵌在建立相关函数时都使用指针比较方便[ 虽然前面都没注意:( ], // 尝试递归读取链表 func RecurReadList(L *ListNode) {fmt.Printf(L.Val: %v\n, L.Val) //打印出此节点中的Val//如果本结点的指针不为空即还有下一个节点继续读取if L.Next ! nil {RecurReadList(L.Next) //将下个节点的指针传入}//如果运行到这里说明指针为空函数也就到此结束了 } 完整代码 package mainimport (fmt )type ListNode struct {Val intNext *ListNode }func main() {// l : CreateList(13)l : RecurCreateList(13)fmt.Printf(l: %v\n, *l)// ReadList(*l)RecurReadList(l)// RecurReadList(l.Next)// fmt.Println(l.Next.Val) }// 尝试建立有头节点的链表关键在于赋值给middle.next func CreateList(nums int) *ListNode {Head : new(ListNode) //这代表一整个链表并通过这里的头节点进行标注方便该链表的引用middle : Head //middle视作Head链表的中间节点其一直改变for nums 0 {middle.Next ListNode{Val: nums % 10} //头节点赋值方法fmt.Printf(middle.Val: %v\n, middle.Val)middle middle.Nextnums / 10}return Head }// 递归建立链表 func RecurCreateList(nums int) *ListNode {//在递归时好像不需要单独保存头节点位置后续的位置会递归存储在next中不用考虑被覆盖的问题middle : new(ListNode) //建立头指针其指针不变// 123%103// 12.3%102// 1.23%101// 120%100// 12 %102// 1.2%101if nums 1 || nums%10 0 {middle.Val nums % 10fmt.Printf(middle.Val: %v\n, middle.Val)if nums 1 {nums / 10middle.Next RecurCreateList(nums)}}return middle }// 尝试遍历读取链表 func ReadList(L ListNode) {middle : L //将头节点赋予这里的中间节点middle//循环读取链表的内容for middle.Next ! nil {v : middle.Next.Val //由于我们这里判断的是本身节点是否为空所以在输出时使用下一节点的值进行输出避免错过某个值fmt.Printf(v: %v\n, v)// // fmt.Printf(L: %v\n, L)middle *middle.Next// // fmt.Printf(L: %v\n, L)} }// 尝试递归读取链表 func RecurReadList(L *ListNode) {fmt.Printf(L.Val: %v\n, L.Val) //打印出此节点中的Val//如果本结点的指针不为空即还有下一个节点继续读取if L.Next ! nil {RecurReadList(L.Next) //将下个节点的指针传入}//如果运行到这里说明指针为空函数也就到此结束了 }
http://www.yutouwan.com/news/40588/

相关文章:

  • 汕头做网站的公司微信推广怎么做
  • wordpress查询次数太多河北seo网络优化师
  • 富阳网站建设公司新能源 东莞网站建设
  • 网站信息抽查评估 短信怎么关闭小程序功能
  • 网站建设的软件是哪个服装定制网站源码
  • 网站建设维护工作深圳市水平线室内设计有限公司
  • 教学类网站开发域名怎么查
  • 微擎怎么做网站平面设计网络培训
  • 威海市环翠区建设局网站建设网站青岛
  • 网络技术网站花钱做网站不给源代码
  • 98建筑网站创建集团上海公司网站
  • 如何用asp做视频网站在家做网站建设
  • 南京网站建设公司 w沈阳市网站建设
  • 在哪人网站要以接it项目做济南代理公司注册
  • 企业网站建设的内容水网站模板
  • 做网站 对方传销查询网站是否备案
  • 自己做的网站图片不显示北京建站推广
  • 免费男人做那个的视频网站免费php空间
  • 加强网站的建设工作的通知wordpress 知识管理主题
  • 武进网站建设基本流程wordpress外贸建站 视频
  • 设计网站接单靖州建设局网站
  • 做外贸网站卖什么好处哪家建设公司网站
  • 东莞百度网站快速优化滁州58同城网站怎么做
  • 集团网站建设基础方案网页制作与设计千年之恋代码
  • 中新生态城建设局门户网站做购物网站赚钱吗
  • 郑州网站建设哪家信息发布推广方法
  • 比较好的家装设计网站代理网店加盟
  • 泉州网站建设优化公司东莞新增病例详惰
  • 成都开发网站建设重庆网络公司排行榜
  • 速成网站怎么做小程序商店官网