goa.c icon indicating copy to clipboard operation
goa.c copied to clipboard

链表

Open hunterhug opened this issue 4 years ago • 10 comments

https://hunterhug.github.io/goa.c/#/algorithm/link

Description

hunterhug avatar May 26 '21 09:05 hunterhug

Good

hunterhug avatar May 31 '21 17:05 hunterhug

您写的链表中的添加节点,没太看懂,能麻烦写的再详细一点吗

Zoxu0928 avatar Jan 08 '22 17:01 Zoxu0928

这个循环链表 画了半个小时图, 终于弄明白了;;;;

hdhgpy avatar Jan 20 '22 15:01 hdhgpy

您写的链表中的添加节点,没太看懂,能麻烦写的再详细一点吗

最近有点忙,我写的添加节点确实是复杂了一点,其实就是把一个节点插到两个节点中间。

hunterhug avatar Jan 21 '22 01:01 hunterhug

这个循环链表 画了半个小时图, 终于弄明白了;;;;

如果觉得太难理解,看看能不能换一种方式来讲诉,如果有好建议,可以clone仓库后修改,提一个Merge.

hunterhug avatar Jan 21 '22 01:01 hunterhug

说实话 go package 里面的Example讲的更直观

hdhgpy avatar Jan 21 '22 09:01 hdhgpy

在链表添加节点,如果s不是新节点,k也是会被添加到链表的,测试代码如下:

func TestRing_Link(t *testing.T) {
        r = New(5)
	temp := r
	i := 0
	for {
		temp.Value = i
		temp = temp.next
		i++
		if temp == r {
			break
		}
	}
        // 此时循环链表为0 1 2 3 4

	p := &Ring{Value: 5}
	s := &Ring{Value: 6}
	k := &Ring{Value: 7}

	p.next = s
	p.prev = k
	s.prev = p
	s.next = k
	k.prev = s
	k.next = p
        // 形成新的循环链表 5 6 7

	r.Link(s)
	node := r
	for {
		log.Println(node.Value)
		node = node.next
		if node == r {
			break
		}
	}
}

打印结果:0 6 7 5 1 2 3 4

cyj19 avatar Apr 14 '22 07:04 cyj19

在链表添加节点,如果s不是新节点,k也是会被添加到链表的,测试代码如下:

func TestRing_Link(t *testing.T) {
        r = New(5)
	temp := r
	i := 0
	for {
		temp.Value = i
		temp = temp.next
		i++
		if temp == r {
			break
		}
	}
        // 此时循环链表为0 1 2 3 4

	p := &Ring{Value: 5}
	s := &Ring{Value: 6}
	k := &Ring{Value: 7}

	p.next = s
	p.prev = k
	s.prev = p
	s.next = k
	k.prev = s
	k.next = p
        // 形成新的循环链表 5 6 7

	r.Link(s)
	node := r
	for {
		log.Println(node.Value)
		node = node.next
		if node == r {
			break
		}
	}
}

打印结果:0 6 7 5 1 2 3 4

没错,两个循环链表可以连在一起。

hunterhug avatar Apr 14 '22 11:04 hunterhug

说实话 go package 里面的Example讲的更直观

其实链表只是把不同节点链接起来,明白这个道理即可,next, pre这些对于初学者会难以理解,可以多画下图。

hunterhug avatar Apr 14 '22 11:04 hunterhug

对于链表,空间想象能力不够强,一定要多画图才能好理解

hunterhug avatar Apr 14 '22 11:04 hunterhug