func problem1() { fmt.Printf("Problem 2.1\n") dashes := strings.Repeat("-", 50) fmt.Println(dashes) mfList := new(list.DoublyLinkedList) mfList.Push(list.Person{Name: "Kengo", Age: 27}) mfList.Push(list.Person{Name: "Ichikawa", Age: 33}) mfList.Push(list.Person{Name: "Asano", Age: 35}) mfList.Push(list.Person{Name: "Kengo", Age: 27}) fmt.Println(dashes) }
func doublyLinkedListTest() { dashes := strings.Repeat("-", 50) mfList := new(list.DoublyLinkedList) mfList.Push(list.Person{Name: "Kengo", Age: 27}) mfList.Push(list.Person{Name: "Ichikawa", Age: 33}) mfList.Push(list.Person{Name: "Asano", Age: 35}) processed := make(map[*list.Node]bool) fmt.Println("First time through list...") for n := mfList.First(); n != nil; n = n.Next() { fmt.Printf("%s\n", n.Name) if processed[n] { fmt.Printf("%s as been processed\n", n.Name) } processed[n] = true } fmt.Println(dashes) fmt.Println("Second time through list...") for n := mfList.First(); n != nil; n = n.Next() { fmt.Printf("%v", n.Name) if processed[n] { fmt.Println(" has benn processed") } else { fmt.Println() } processed[n] = true } fmt.Println(dashes) // var found_node *Node name_to_find := "Kengo" mfList.Find(name_to_find) // Not in the List name_to_find = "Tsuji" mfList.Find(name_to_find) fmt.Println(dashes) name_to_remove := "Kengo" mfList.Delete(name_to_remove) mfList.Delete(name_to_remove) fmt.Println(dashes) fmt.Println("*Pop each value in the list...") for person, err := mfList.Pop(); err == nil; person, err = mfList.Pop() { fmt.Printf("%v\n", person) } //fmt.Println(mfList.Pop()) }