Baris gilir bulat ialah struktur data yang biasa digunakan, yang dicirikan oleh keupayaannya untuk mengitar semula ruang tatasusunan dan melaksanakan operasi baris gilir dengan berkesan. Dalam bahasa Go, kita boleh melaksanakan baris gilir bulat melalui tatasusunan dan dua penunjuk. Artikel ini akan menyelidiki pelaksanaan baris gilir bulat dalam bahasa Go dan memberikan contoh kod khusus.
Prinsip pelaksanaan baris gilir pekeliling adalah terutamanya untuk menggunakan penggunaan pekeliling tatasusunan, dan untuk menandakan kepala dan ekor baris gilir melalui dua penunjuk depan dan belakang. Apabila penuding belakang mencapai penghujung tatasusunan, ia boleh dihalakan semula ke permulaan tatasusunan melalui operasi modulo untuk mencapai kitar semula baris gilir.
Takrifkan struktur baris gilir bulat
type CircularQueue struct { capacity int front int rear int data []interface{} }
Memulakan baris gilir pekeliling
func NewCircularQueue(capacity int) *CircularQueue { return &CircularQueue{ capacity: capacity, front: 0, rear: 0, data: make([]interface{}, capacity), } }
enqueee
func (cq *CircularQueue) Enqueue(val interface{}) bool { if (cq.rear+1)%cq.capacity == cq.front { return false // 队列已满 } cq.data[cq.rear] = val cq.rear = (cq.rear + 1) % cq.capacity return true }
func (cq *CircularQueue) Dequeue() interface{} { if cq.front == cq.rear { return nil // 队列为空 } val := cq.data[cq.front] cq.front = (cq.front + 1) % cq.capacity return val }
Atas ialah kandungan terperinci Ketahui lebih lanjut tentang pelaksanaan baris gilir bulat dalam bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!