linklist

package
v0.0.0-...-2eef10d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 7, 2022 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Item

type Item interface {
}

Item 可以理解为范性,也就是任意的数据类型

type LinkNode

type LinkNode struct {
	Payload Item //  Payload 为任意数据类型
	Next    *LinkNode
}

一个节点,除了自身的数据之外,还必须指向下一个节点,尾部节点指向为nil

func NewLinkNode

func NewLinkNode(length int) *LinkNode

创建一个新的链表。 函数,对比与上面的方法,函数是没有绑定任何对象的。 go语言的函数需要指明参数跟返回值,在此函数中,我们的参数是length,返回值是一个LinkNode对象 除了绑定之外,函数跟方法并没有什么不同

func (*LinkNode) Add

func (head *LinkNode) Add(payload Item)

go语言方法,对比与下面的NewLinkNode,方法可以理解为面向对象里面对象的方法,虽然实现的功能 跟函数类似,但是方式是绑定在对象上的,也就是说我们此处的Add是绑定与head这个LinkNode对象的。 这个是go语言区别与其他语言的设计方式,也是go语言很重要的一部分。

func (*LinkNode) Delete

func (head *LinkNode) Delete(index int) Item

删除元素,并且返回删除的节点的值

func (*LinkNode) GetAll

func (head *LinkNode) GetAll() []Item

func (*LinkNode) GetLength

func (head *LinkNode) GetLength() int

func (*LinkNode) Insert

func (head *LinkNode) Insert(index int, payload Item)

插入元素

func (*LinkNode) MediumReverse

func (head *LinkNode) MediumReverse(m, n int) *LinkNode

一、 反转链表中间部分 已知链表的头,将链表从位置m、n进行逆序

func (*LinkNode) NewJosphuseRing

func (tail *LinkNode) NewJosphuseRing(num int) *LinkNode

四、 约瑟夫环

func (*LinkNode) RecursiveReverse

func (head *LinkNode) RecursiveReverse() *LinkNode

递归的方式实现链表的反转

func (*LinkNode) Reverse

func (head *LinkNode) Reverse() *LinkNode

循环的方式反转一个链表

func (*LinkNode) Search

func (head *LinkNode) Search(payload Item) int

type LinkNoder

type LinkNoder interface {
	// go语言接口,在这个接口里面,我们可以定义一系列的方法。
	Add(payload Item)
	Delete(index int) Item
	Insert(index int, payload Item)
	GetLength() int
	Search(payload Item) int
	GetAll(index int) Item
	Reverse() *LinkNode
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL