目录
1.结构定义
type Node struct {
Data int
Next *Node
}
type Queue struct {
rear *Node
}
2.IsEmpty()
func (list *Queue) IsEmpty() bool {
return list.rear == nil
}
3.Empty()
func (list *Queue) Empty() {
list.rear = nil
}
4.Enqueue()
func (list *Queue) Enqueue(i int) {
data := &Node{Data: i}
if list.rear != nil {
data.Next = list.rear
}
list.rear = data
}
5.Dequeue()
func (list *Queue) Dequeue() (int, bool) {
if list.rear == nil {
return 0, false
}
if list.rear.Next == nil {
i := list.rear.Data
list.rear = nil
return i, true
}
currentnode := list.rear
for {
if currentnode.Next.Next == nil {
i := currentnode.Next.Data
currentnode.Next = nil
return i, true
}
currentnode = currentnode.Next
}
}
6.Peak()
func (list *Queue) Peak() (int, bool) {
if list.rear == nil {
return 0, false
}
return list.rear.Data, true
}
7.Get()
func (list *Queue) Get() (res []int) {
currentnode := list.rear
for currentnode != nil {
res = append(res, currentnode.Data)
currentnode = currentnode.Next
}
return res
}