queues

Run Settings
LanguageGo
Language Version
Run Command
package main import ( "fmt" ) type Node struct { Value interface{} next *Node } func NewNode(value interface{}) *Node { return &Node{Value:value, next: nil} } type Queue struct { first *Node last *Node length int } func (q *Queue) peek() *Node { return q.first } func (q *Queue) enqueue(value interface{}) { newNode := NewNode(value) if q.length == 0 { q.first = newNode q.last = newNode } else { q.last.next = newNode q.last = newNode } q.length++ q.print() } func (q *Queue) print() { fmt.Printf("queue length is %d and elements in are..\n", q.length) node := q.first for node != nil { fmt.Printf("%s ", node.Value) node = node.next } fmt.Println() } func (q *Queue) dqueue() interface{} { if q.first == nil { return nil } val := q.first.Value q.first = q.first.next q.length-- return val } func (q *Queue) isempty() bool { if q.length > 0 { return true } return false } func main() { q := Queue{} fmt.Println(q.peek()) q.enqueue("Apple") q.enqueue("Banana") q.enqueue("Orange") fmt.Println ("element dqueue is : ", q.dqueue()) fmt.Println ("element dqueue is : ", q.dqueue()) fmt.Println ("element dqueue is : ", q.dqueue()) fmt.Println ("element dqueue is : ", q.dqueue()) fmt.Println("Peek is : " , q.peek()) q.print() }
Editor Settings
Theme
Key bindings
Full width
Lines