現代社会では、切符を買うために並ぶ、治療のために並ぶ、交通機関のために並ぶなど、さまざまな問題を解決するために人々はますます並ぶ必要があります。キューイングを実現する方法の 1 つは、コンピューター技術を使用することです。
コンピュータの分野では、Go (Golang とも呼ばれる) と呼ばれるプログラミング言語があります。これは Google によって開発された最新のプログラミング言語であり、高性能な分散システムの開発に広く使用されています。この記事ではGolangを使ってキューイングを実装する方法を紹介します。
最初に明確にしておきたいのは、キューイングは典型的なデータ構造アプリケーション シナリオであるため、Golang でキューを使用してキューイングを実装できるということです。キューは先入れ先出しのデータ構造であり、キュー モデルによく似ています。
Golang では、組み込みコンテナ パッケージ内のリストを使用してキューを実装できます。具体的な実装方法は次のとおりです:
type Queue struct { list *list.List }
func New() *Queue { return &Queue{ list: list.New(), } }
func (q *Queue) Push(v interface{}) { q.list.PushBack(v) }
func (q *Queue) Pop() interface{} { e := q.list.Front() if e != nil { q.list.Remove(e) return e.Value } return nil }
上記は、Golang でリストを使用してキューを実装する方法です。
次に、キューを使用してキュー システムを実装します。キューイング システムでは、次の点を実装する必要があります。
上記の要件に基づいて、各個人の情報を記録するための Person 構造を定義できます。
type Person struct { id int // 编号 waitTime int // 等待时间 serveTime int // 服务时间 }
次に、キュー機能を実装するための Queue 構造を定義できます。
type Queue struct { list *list.List // 存储每个个体 } func NewQueue() *Queue { return &Queue{ list: list.New(), } } func (q *Queue) Push(p *Person) { q.list.PushBack(p) } func (q *Queue) Pop() *Person { e := q.list.Front() if e != nil { q.list.Remove(e) return e.Value.(*Person) } return nil } func (q *Queue) Len() int { return q.list.Len() }
上記のコードは、キューを使用してキュー機能を実装する方法を示しています。プログラム内でこの Queue 構造を使用して、キュー システムのキューを表すことができます。
Queue 構造を使用してキュー システムを実装する方法を示す簡単な例を実装できます:
package main import ( "fmt" "time" ) type Person struct { id int // 编号 waitTime int // 等待时间 serveTime int // 服务时间 } func NewPerson(id int) *Person { return &Person{ id: id, } } func main() { q := NewQueue() // 模拟10个人排队 for i := 1; i <= 10; i++ { p := NewPerson(i) q.Push(p) } // 每秒钟服务一个人,直到队列为空 for q.Len() > 0 { time.Sleep(time.Second) p := q.Pop() if p != nil { p.waitTime += 1 p.serveTime += 1 fmt.Printf("编号%d的人被服务,等待%d秒,已服务%d秒 ", p.id, p.waitTime, p.serveTime) } } }
上記のコードは、10 人のキューイングをシミュレートする単純なキュー システムを示しています。キューが空になるまで、1 秒あたり 1 人にサービスを提供します。
この記事では、Golang を使用してキューイングを実装する方法を紹介します。キュー システムを実装する場合、キューを使用して個人を保存したり、特定のルールに従ってキューに個人を追加したり、キューから個人を削除したり、個人情報を記録したりできます。 Golang の list パッケージを使用すると、キュー機能を簡単に実装できます。
以上がGolang はキューイングを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。