用Go编写一个Linktable库,并上传到github

SYN_1 2022-07-10 20:13:56

代码

// 定义结点
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

...全文
180 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文档详细介绍了基于非线性反步法与Lyapunov函数相结合的模型预测控制(Lyapunov-MPC)在自主水下航行器(AUV)轨迹跟踪中的应用,涵盖经典的Fossen六自由度动力学建模。研究通过融合反步法的系统化递推设计优势与MPC的滚动优化及约束处理能力,构建了一种高性能、强鲁棒性的复合控制策略,有效提升了AUV在复杂海洋环境下的轨迹跟踪精度与系统稳定性。文档提供了完整的Matlab代码实现方案,适用于高水平学术论文(如SCI一区)的复现与科研验证,具有较强的理论深度与工程实践价值。; 适合人群:具备自动控制理论、非线性系统分析、现代控制方法(如反步法、李雅普诺夫稳定性理论、MPC)基础,并熟悉Matlab/Simulink仿真工具的研究生、科研人员及从事水下机器人、无人系统控制开发的工程技术人员。; 使用场景及目标:①用于高精度AUV轨迹跟踪控制系统的设计与仿真验证;②深入学习和掌握非线性反步法的设计流程、Lyapunov稳定性分析方法及其与MPC框架的集成技巧;③服务于高水平学术论文的复现、算法对比与技术创新研究,推动水下航行器智能控制技术的发展。; 阅读建议:建议读者首先深入理解Fossen动力学模型的物理意义与数学表达,重点剖析反步法的虚拟控制量构造与李雅普诺夫函数的设计思路,进而研究如何将稳定性条件融入MPC的优化目标中。务必结合所提供的Matlab代码进行逐行调试与参数敏感性分析,通过仿真实验直观感受不同海况与初始偏差下的控制性能,从而深刻理解理论设计与实际效果之间的内在联系。

571

社区成员

发帖
与我相关
我的任务
社区描述
软件工程教学新范式,强化专项技能训练+基于项目的学习PBL。Git仓库:https://gitee.com/mengning997/se
软件工程 高校
社区管理员
  • 码农孟宁
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧