Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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))
- }
Advertisement