用Go编写一个Linktable库,并上传到github
代码
// 定义结点
type Node struct {
val int
next *Node
}
// 定义链表
type LinkedList struct {
dummy *Node
}
// 初始化链表
func Constructor() LinkedList {
return LinkedList {
&Node{},
}
}
// 获取index位置节点
func (this *LinkedList) Get(index int) int {
if(index < 0) return -1
head := this.dummy.next
if head == nil return -1
for head.next != nil && index > 0{
head = head.next
index--
}
return head.val
}
// 头插法
func (this *LinkedList) AddAtHead(val int) {
dummy := this.dummy
node := &Node{
val: val,
next: dummy.next,
}
this.dummy.next = node
}
// 尾插法
func (this *LinkedList) AddAtTail(val int) {
dummy := this.dummy
for dummy.next != nil {
dummy = dummy.next
}
rear := &Node{
val: val,
next: nil,
}
dummy.next = rear
}
// 在index位置插入节点
func (this *LinkedList) AddAtIndex(val int, index int) {
if(index < 0) return
dummy := this.dummy
for dummy.next != nil && index > 0 {
dummy = dummy.next
index--
}
if index != 0 {
return
}
node := &Node{
val: val,
}
node.next = dummy.next
dummy.next = node
}
// 在index位置删除节点
func (this *LinkedList) DeleteAtIndex(index int) {
if(index < 0) return
if this.dummy.next == nil {
return
}
dummy := this.dummy
for dummy.next != nil && index > 0 {
dummy = dummy.next
index--
}
if dummy.next != nil && index == 0 {
dummy.next = dummy.next.next
}
}
测试结果

上传到远程仓库

https://github.com/Y-SYN
学号:523
...全文
相关推荐
科技中介服务机构如何利用智能体提升技术需求挖掘与转化服务效率?.docx
科技中介服务机构如何利用智能体提升技术需求挖掘与转化服务效率?
高校技术转移办公室如何提升科技成果推介效率?.docx
高校技术转移办公室如何提升科技成果推介效率?
过碳酸钠行业分析:在绿色洗涤、包衣稳定化与关税重构下的市场前景如何?.pdf
过碳酸钠行业分析:在绿色洗涤、包衣稳定化与关税重构下的市场前景如何?.pdf
高校技术转移办公室在推动成果转化时,如何精准匹配企业需求?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
PDF、epub、mobi、AZW3文件阅读器
PDF、epub、mobi、AZW3、MD、TXT、HTML文件阅读器,可预览docx文件。 自由下载,免费使用,可现时打开多个文档,也可将文件拖入窗口打开。


