用go语言构建一个单向队列和双向队列

package main

import "fmt"

//type LinkedNode struct {
//	val interface{}
//	next *LinkedNode
//}
//
//func NewLinkedNode(val interface{}) *LinkedNode {
//	return &LinkedNode{
//		val:val,
//	}
//}
//
//func main() {
//	node := NewLinkedNode("aaa")
//	node2 := NewLinkedNode("bbb")
//	node.next = node2
//	node3 := NewLinkedNode("ccc")
//	node2.next = node3
//	for ; node != nil; node = node.next {
//		fmt.Println(node)
//	}
//}

type LinkedNode struct {
	val interface{}
	pre *LinkedNode
	next *LinkedNode
}

func NewLinkedNode(val interface{}) *LinkedNode {
	return &LinkedNode{
		val:val,
	}
}

func main() {
	node := NewLinkedNode("aaa")
	node2 := NewLinkedNode("bbb")
	node.next = node2
	node2.pre = node
	node3 := NewLinkedNode("ccc")
	node2.next = node3
	node3.pre = node2
	temp := node
	for ; temp != nil; temp = temp.next {
		fmt.Println(temp)
		if temp.next == nil {
			break
		}
	}
	fmt.Println("-------------------")
	for ; temp != nil; temp = temp.pre {
		fmt.Println(temp)
	}
}
原文地址:https://www.cnblogs.com/hirampeng/p/11220940.html