Rumah > Artikel > pembangunan bahagian belakang > Mempelajari semula asas CS - Melaksanakan Baris Gilir
Pernahkah anda berdiri dalam baris gilir, Struktur data baris gilir juga melakukan perkara yang sama. Anda berdiri di penghujung barisan apabila anda ingin membuat pesanan mungkin di restoran layan diri kegemaran anda dan kemudian anda naik ke baris gilir dan pergi.
Struktur data Baris Gilir dalam CS melaksanakan fungsi yang sama. Struktur Data Gilir ialah struktur data Mula-mula Keluar Dahulu. Struktur Data Gilir boleh dibina dengan dua fungsi asas Enqueue dan Dequeue yang pada asasnya menambah senarai dan mengalih keluar daripada senarai.
Dalam dunia sebenar sains komputer Barisan gilir membentuk tulang belakang komponen perisian berikut
Walaupun komponen mudah untuk divisualisasikan ialah
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 }
Kerumitan Masa - O(1) untuk Enqueue dan Dequeue
Kerumitan ruang - O(1) untuk Enqueue dan Dequeue
Rujukan - https://www.geeksforgeeks.org/queue-in-go-language/
Atas ialah kandungan terperinci Mempelajari semula asas CS - Melaksanakan Baris Gilir. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!