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

go单向链表

需求

实现单向链表的节点顺序添加、顺序遍历。

实现

package mainimport ("fmt"
)type zodiac_sign struct {number intdizhi  stringanimal stringyear   intnext   *zodiac_sign
}// 添加
// func add_node_by_order(previous_node zodiac_sign, current_node zodiac_sign) zodiac_sign {
func add_node_by_order(previous_node *zodiac_sign, current_node *zodiac_sign) *zodiac_sign {if (previous_node.number + 1) == current_node.number {previous_node.next = current_nodefmt.Printf("节点%s的next指针已指向节点%s的地址%p\n", previous_node.animal, current_node.animal, previous_node.next)return current_node} else {fmt.Printf("顺序错误:禁止添加新节点%s\n", current_node.animal)return previous_node}
}// 查找
func check_node_by_order(current_node *zodiac_sign) {if current_node.next == nil {fmt.Printf("最后一年是%d年、%s年\n", current_node.year, current_node.animal)} else {fmt.Printf("%d年为%s年\n", current_node.year, current_node.animal)check_node_by_order(current_node.next)}
}func main() {p := &zodiac_sign{}// var p *zodiac_signmouse := &zodiac_sign{number: 1, dizhi: "子", animal: "鼠", year: 2020}// var mouse zodiac_sign// mouse.number = 1// mouse.dizhi = "子"// mouse.animal = "鼠"// mouse.year = 2020cow := &zodiac_sign{number: 2, dizhi: "丑", animal: "牛", year: 2021}tiger := &zodiac_sign{number: 3, dizhi: "寅", animal: "虎", year: 2022}rabbit := &zodiac_sign{number: 4, dizhi: "卯", animal: "兔", year: 2023}dragon := &zodiac_sign{number: 5, dizhi: "辰", animal: "龙", year: 2024}snake := &zodiac_sign{number: 6, dizhi: "巳", animal: "蛇", year: 2025}horse := &zodiac_sign{number: 7, dizhi: "午", animal: "马", year: 2026}sheep := &zodiac_sign{number: 8, dizhi: "未", animal: "羊", year: 2027}monkey := &zodiac_sign{number: 9, dizhi: "申", animal: "猴", year: 2028}cock := &zodiac_sign{number: 10, dizhi: "酉", animal: "鸡", year: 2029}dog := &zodiac_sign{number: 11, dizhi: "戌", animal: "狗", year: 2030}pig := &zodiac_sign{number: 12, dizhi: "亥", animal: "猪", year: 2031}// p = add_node_by_order(p, mouse)// fmt.Print(p)head := pp = add_node_by_order(p, cow)p = add_node_by_order(p, tiger)p = add_node_by_order(p, rabbit)p = add_node_by_order(p, dragon)p = add_node_by_order(p, snake)// 错误连接add_node_by_order(p, pig)p = add_node_by_order(p, horse)p = add_node_by_order(p, sheep)p = add_node_by_order(p, monkey)// 错误连接add_node_by_order(p, rabbit)p = add_node_by_order(p, cock)p = add_node_by_order(p, dog)p = add_node_by_order(p, pig)check_node_by_order(head)
}

相关文章:

  • 阿里千问Qwen3技术解析与部署指南 :混合推理架构突破性优势与对DeepSeek R1的全面超越
  • 软件测试基础知识详解
  • 【VLNs篇】01:视觉语言导航(VLN)中的LLM角色
  • 关于flex布局
  • scratch代码——游戏开发 【弹簧与反弹】
  • ArrayList的elementData.length和size
  • 双向流热固耦合的收敛
  • (leetcode) 力扣100 4.移动零(两种O(n)方法 双指针)
  • 大模型核心技术及架构解析
  • 2025.4.29_STM32_看门狗WDG
  • 一文读懂 JavaScript 中的深浅拷贝
  • C#学习——类型、变量
  • 学习在暑假避免躺平和内卷(马井堂)
  • 16、路由守卫:设置魔法结界——React 19 React Router
  • 系统安装 ios放同一个u盘 ventory使用+windows安装,双系统互相访问中间盘
  • PPT/WORD如何实现Shift键加鼠标滚轮实现左右滑动
  • 嵌入式复习第一章
  • 拆固态硬盘短接开卡+ as ssd benchmark查看硬盘读写速度
  • 0.5 像素边框实现
  • Arthas在Java程序监控和分析中的应用
  • 习近平就伊朗发生严重爆炸事件向伊朗总统佩泽希齐扬致慰问电
  • 纪念|海上金石学的兴盛与王昶《金石萃编》
  • 文化润疆|让新疆青少年成为“小小博物家”
  • 十四届全国人大常委会举行第四十三次委员长会议 ,听取有关草案和议案审议情况汇报
  • 上海乐高乐园建设进入最后冲刺,开园限量纪念年卡将于5月开售
  • 民生访谈|宝妈宝爸、毕业生、骑手……上海如何为不同人群提供就业保障