用Go编写一个Linktable库

夕雾_Resurgam 2022-06-19 17:52:28

用Go语言编写LinkTable库

1.定义链表节点结构体

type node struct {
	Data int //链表节点的数据域
	Next *node //链表节点的后继节点指针
}

2.初始化链表

func InitList() *node {
	return &node{Next: nil}
}

3.往链表插入新节点

func (lnode *node) InsertNode(data int) {
	addNode := new(node)
	addNode.Data = data
	addNode.Next = lnode.Next
	lnode.Next = addNode
}

4.删除链表节点

func (lnode *node) DeleteNode(data int) {
	if lnode == nil {
		fmt.Printf("空链表")
		return
	}
	for lnode.Next != nil {
		if lnode.Next.Data == data {
			lnode.Next = lnode.Next.Next
		}
		lnode = lnode.Next
	}
}

5.遍历链表节点

func (lnode *node) TraverseList() {
	for lnode.Next != nil {
		fmt.Printf("%d\n", lnode.Next.Data)
		lnode = lnode.Next
	}
}

6.运行代码以及结果截图

func main() {
	var list *node = InitList()
	for i := 1; i < 10; i++ {
		list.InsertNode(i)
	}
	list.TraverseList()
	list.DeleteNode(8)
	fmt.Printf("删除一个节点后的遍历:\n")
	list.TraverseList()
}

版本库链接:https://github.com/xiiwu/Linktable.git

作者:200

...全文
106 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

571

社区成员

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

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