package main
/**
* Project 3: programming in Go lang
* Using Go Lang, write a program that:
* - fills an array with random integers in the range 10 to 99.
* - builds a Doubly LinkedList by inserting the integers in the array into the data structure.
* - finds the length of a given LinkedList.
* - finds the minimum value in a given LinkedList.
*
* author: Nicholas Adamou
* date: 10/9/19
* Class: CSC-315
*/
import (
"fmt"
"math/rand"
)
type Node struct {
prev *Node
value int
next *Node
}
func insert(LinkedList *Node, value int) *Node {
if LinkedList == nil {
return LinkedList
}
for node := LinkedList; node != nil; node = node.next {
if node.next == nil {
if node.prev != nil {
node.next = &Node{ node.prev, value, nil}
} else {
node.next = &Node{nil, value, nil}
}
return LinkedList
}
}
return LinkedList
}
func findMinimum(LinkedList *Node) (minimum int) {
for node := LinkedList; node != nil; node = node.next {
if node.next != nil {
if node.value < node.next.value {
minimum = node.value
}
}
}
return
}
func length(LinkedList *Node) (count int) {
for node := LinkedList; node != nil; node = node.next {
count += 1
}
return
}
func print(LinkedList *Node) {
for node := LinkedList; node != nil; node = node.next {
if node.next == nil {
fmt.Printf(" %d", node.value)
} else {
fmt.Printf(" %d ->", node.value)
}
}
fmt.Println()
}
func random(max int, min int) int {
return rand.Int() % (max - min + 1) + min
}
func main() {
const MIN = 10
const MAX = 99
const SIZE = 10
var LinkedList *Node = &Node{nil, random(MAX, MIN), nil}
for i := 1; i < SIZE; i++ {
insert(LinkedList, random(MAX, MIN))
}
print(LinkedList)
fmt.Printf("\nLength of LinkedList: %d\n", length(LinkedList))
fmt.Printf("Minimum value: %d\n", findMinimum(LinkedList))
}
Comments
0 B
|0 👍
/0 👎
0 B
|👍
/👎