Insert node at beginning of doubly linked list in golang

Go program for Insert node at beginning of doubly linked list. Here more information.

package main
import "fmt"
// Go Program For
// insert new node at beginning of doubly linked list

// Define class of linked list Node
type LinkNode struct {
	data int
	next * LinkNode
	prev * LinkNode
}
func getLinkNode(data int) * LinkNode {
	return &LinkNode {data,nil,nil}
}
type DoublyLinkedList struct {
	head * LinkNode
}
func getDoublyLinkedList() * DoublyLinkedList {
	return &DoublyLinkedList {nil}
}
// Insert new node at beginning position
func(this *DoublyLinkedList) insert(value int) {
	// Create a node
	var node * LinkNode = getLinkNode(value)
	node.next = this.head
	// When linked list is not empty
	if this.head != nil {
		this.head.prev = node
	}
	// Make new head
	this.head = node
}
// Display node element of doubly linked list
func(this DoublyLinkedList) display() {
	if this.head == nil {
		fmt.Println("Empty Linked List")
	} else {
		fmt.Println("  Doubly Linked List Element :")
		// Get first node of linked list
		var temp * LinkNode = this.head
		// iterate linked list 
		for (temp != nil) {
			// Display node value
			fmt.Print("  ", temp.data)
			// Visit to next node
			temp = temp.next
		}
	}
}
func main() {
	var dll * DoublyLinkedList = getDoublyLinkedList()
	// Insert following linked list nodes
	dll.insert(70)
	dll.insert(60)
	dll.insert(50)
	dll.insert(40)
	dll.insert(30)
	dll.insert(20)
	dll.insert(10)
	//  NULL <- 10 <--> 20 <--> 30 <--> 40 <--> 50 <--> 60 <--> 70->NULL
	dll.display()
}

Output

Doubly Linked List Element :
10  20  30  40  50  60  70


Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment







© 2021, kalkicode.com, All rights reserved