Você já esteve em uma fila? A estrutura de dados da fila também faz a mesma coisa. Você fica no final da fila quando quer fazer um pedido, talvez no seu restaurante self-service favorito, e então sobe na fila e sai.
A estrutura de dados Queue no CS executa a mesma funcionalidade. A estrutura de dados da fila é uma estrutura de dados First In First Out. A estrutura Queue Data pode ser construída com duas funções básicas, Enqueue e Dequeue, que basicamente consistem em adicionar e remover da lista.
No mundo real da ciência da computação, as filas formam a espinha dorsal dos seguintes componentes de software
Embora um componente simples e fácil de visualizar seria
package main import ( "fmt" "errors" ) type Queue struct{ Elements []int Size int } func (q *Queue) Enqueue(value int){ if q.GetLength() == q.Size { fmt.Println("Overflow") return } q.Elements = append(q.Elements, value) } func (q *Queue) Dequeue() int { if q.IsEmpty() { fmt.Println("UnderFlow") return 0 } element := q.Elements[0] if q.GetLength() == 1 { q.Elements = nil return element } q.Elements = q.Elements[1:] return element } func (q *Queue) GetLength() int { return len(q.Elements) } func (q *Queue) IsEmpty() bool { return len(q.Elements) == 0 } func (q *Queue) Peek() (int, error) { if q.IsEmpty() { return 0, errors.New("empty queue") } return q.Elements[0], nil }
Complexidade de tempo - O(1) para enfileiramento e desenfileiramento
Complexidade do espaço - O(1) para Enfileirar e Desenfileirar
Referência - https://www.geeksforgeeks.org/queue-in-go-language/
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3