Update the array and linked list (Go code).
This commit is contained in:
parent
fd4737ef45
commit
1f1c58519d
@ -5,7 +5,6 @@
|
|||||||
package chapter_array_and_linkedlist
|
package chapter_array_and_linkedlist
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"math/rand"
|
"math/rand"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -60,9 +59,10 @@ func traverse(nums []int) {
|
|||||||
for i := 0; i < len(nums); i++ {
|
for i := 0; i < len(nums); i++ {
|
||||||
count++
|
count++
|
||||||
}
|
}
|
||||||
|
count = 0
|
||||||
// 直接遍历数组
|
// 直接遍历数组
|
||||||
for index, val := range nums {
|
for range nums {
|
||||||
fmt.Printf("index:%v value:%v\n", index, val)
|
count++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,14 +9,14 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
/* 在链表的结点 n0 之后插入结点 P */
|
/* 在链表的结点 n0 之后插入结点 P */
|
||||||
func insertNode(n0 *pkg.ListNode, P *pkg.ListNode) {
|
func insertNode(n0 *ListNode, P *ListNode) {
|
||||||
n1 := n0.Next
|
n1 := n0.Next
|
||||||
n0.Next = P
|
n0.Next = P
|
||||||
P.Next = n1
|
P.Next = n1
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 删除链表的结点 n0 之后的首个结点 */
|
/* 删除链表的结点 n0 之后的首个结点 */
|
||||||
func removeNode(n0 *pkg.ListNode) {
|
func removeNode(n0 *ListNode) {
|
||||||
if n0.Next == nil {
|
if n0.Next == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -27,7 +27,7 @@ func removeNode(n0 *pkg.ListNode) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* 访问链表中索引为 index 的结点 */
|
/* 访问链表中索引为 index 的结点 */
|
||||||
func access(head *pkg.ListNode, index int) *pkg.ListNode {
|
func access(head *ListNode, index int) *ListNode {
|
||||||
for i := 0; i < index; i++ {
|
for i := 0; i < index; i++ {
|
||||||
head = head.Next
|
head = head.Next
|
||||||
if head == nil {
|
if head == nil {
|
||||||
@ -38,7 +38,7 @@ func access(head *pkg.ListNode, index int) *pkg.ListNode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* 在链表中查找值为 target 的首个结点 */
|
/* 在链表中查找值为 target 的首个结点 */
|
||||||
func findNode(head *pkg.ListNode, target int) int {
|
func findNode(head *ListNode, target int) int {
|
||||||
index := 0
|
index := 0
|
||||||
for head != nil {
|
for head != nil {
|
||||||
if head.Val == target {
|
if head.Val == target {
|
||||||
|
@ -6,18 +6,19 @@ package chapter_array_and_linkedlist
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/krahets/hello-algo/pkg"
|
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
. "github.com/krahets/hello-algo/pkg"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestLikedList(t *testing.T) {
|
func TestLikedList(t *testing.T) {
|
||||||
/* 初始化链表 1 -> 3 -> 2 -> 5 -> 4 */
|
/* 初始化链表 1 -> 3 -> 2 -> 5 -> 4 */
|
||||||
// 初始化各个结点
|
// 初始化各个结点
|
||||||
n0 := pkg.NewListNode(1)
|
n0 := NewListNode(1)
|
||||||
n1 := pkg.NewListNode(3)
|
n1 := NewListNode(3)
|
||||||
n2 := pkg.NewListNode(2)
|
n2 := NewListNode(2)
|
||||||
n3 := pkg.NewListNode(5)
|
n3 := NewListNode(5)
|
||||||
n4 := pkg.NewListNode(4)
|
n4 := NewListNode(4)
|
||||||
|
|
||||||
// 构建引用指向
|
// 构建引用指向
|
||||||
n0.Next = n1
|
n0.Next = n1
|
||||||
@ -25,17 +26,17 @@ func TestLikedList(t *testing.T) {
|
|||||||
n2.Next = n3
|
n2.Next = n3
|
||||||
n3.Next = n4
|
n3.Next = n4
|
||||||
fmt.Println("初始化的链表为")
|
fmt.Println("初始化的链表为")
|
||||||
pkg.PrintLinkedList(n0)
|
PrintLinkedList(n0)
|
||||||
|
|
||||||
/* 插入结点 */
|
/* 插入结点 */
|
||||||
insertNode(n0, pkg.NewListNode(0))
|
insertNode(n0, NewListNode(0))
|
||||||
fmt.Println("插入结点后的链表为")
|
fmt.Println("插入结点后的链表为")
|
||||||
pkg.PrintLinkedList(n0)
|
PrintLinkedList(n0)
|
||||||
|
|
||||||
/* 删除结点 */
|
/* 删除结点 */
|
||||||
removeNode(n0)
|
removeNode(n0)
|
||||||
fmt.Println("删除结点后的链表为")
|
fmt.Println("删除结点后的链表为")
|
||||||
pkg.PrintLinkedList(n0)
|
PrintLinkedList(n0)
|
||||||
|
|
||||||
/* 访问结点 */
|
/* 访问结点 */
|
||||||
node := access(n0, 3)
|
node := access(n0, 3)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user