You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
531 B
Go
34 lines
531 B
Go
package queue
|
|
|
|
type Queue struct {
|
|
queue []interface{}
|
|
len int
|
|
}
|
|
|
|
func New() *Queue {
|
|
queue := &Queue{}
|
|
queue.queue = make([]interface{}, 0)
|
|
queue.len = 0
|
|
return queue
|
|
}
|
|
|
|
func (queue *Queue) Length() int {
|
|
return queue.len
|
|
}
|
|
|
|
func (q *Queue) Remove() interface{} {
|
|
tmp := q.queue[0]
|
|
q.queue = q.queue[1:]
|
|
q.len -= 1
|
|
return tmp
|
|
}
|
|
|
|
func (q *Queue) Peek() interface{} {
|
|
return q.queue[0]
|
|
}
|
|
|
|
func (q *Queue) Add(value interface{}) {
|
|
q.len += 1
|
|
q.queue = append(q.queue, value)
|
|
}
|