싱글 체인 서클

1415 단어
package main

import (
	"fmt"
)

type List struct {
	next *List
	Data int
}

var ListHead = &List{next: nil, Data: -1}

// 
func add_node(val int) {
	var Node *List
	if ListHead.next == nil {
		Node = &List{next: nil, Data: val}
		ListHead.next = Node
		Node.next = ListHead
	} else {
		Node = ListHead.next
		NewNode := &List{next: nil, Data: val}
		ListHead.next = NewNode
		NewNode.next = Node
	}

}

// 
func show_list() {
	Node := ListHead
	for {
		if Node != nil && Node.next != ListHead {
			if Node != ListHead {
				fmt.Printf("%d ", Node.Data)
			}
			Node = Node.next
		} else {
			if Node.next == ListHead {
				fmt.Printf("%d ", Node.Data)
			}
			break
		}
	}
	fmt.Printf("
") } // , num , func round_num(num int) { var count int Node := ListHead Pre := Node show_list() fmt.Printf("
") for { count = 0 for { Node = Node.next if Node != ListHead { count++ } if count >= num { Pre.next = Node.next Node = Pre show_list() break } Pre = Node } // if Node.next.next == Node { if Node.Data == -1 { fmt.Printf("last node %d 
", Node.next.Data) } else { fmt.Printf("last node %d 
", Node.Data) } break } } } func main() { add_node(10) add_node(5) add_node(7) add_node(8) //show_list() round_num(2) }

좋은 웹페이지 즐겨찾기