Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk melaksanakan giliran dalam golang

Bagaimana untuk melaksanakan giliran dalam golang

PHPz
PHPzasal
2023-04-18 15:23:031110semak imbas

Baris gilir ialah struktur data biasa dalam sains komputer, yang boleh digunakan untuk menyelesaikan banyak masalah. Baris gilir menyimpan elemen bersama-sama atas dasar masuk dahulu keluar (FIFO). Struktur data ini digunakan secara meluas dalam sains komputer dan bidang lain.

Bahasa Go ialah bahasa pengaturcaraan sumber terbuka yang dibangunkan oleh Google. Ia direka untuk menyelesaikan banyak masalah dalam sains komputer moden sambil memberikan pengalaman pengaturcaraan yang cekap. Dalam artikel ini, kami akan menggunakan bahasa Go untuk melaksanakan struktur data baris gilir mudah.

Kita perlu mentakrifkan struktur baris gilir untuk menyimpan elemen terlebih dahulu. Baris gilir boleh dilaksanakan melalui tatasusunan atau senarai terpaut Dalam artikel ini kita akan menggunakan tatasusunan.

Tentukan struktur baris gilir seperti berikut:

type Queue struct {
    items []int
}

Kami menggunakan tatasusunan integer untuk menyimpan elemen dalam baris gilir. Seterusnya, kita perlu menentukan beberapa kaedah untuk baris gilir beroperasi di atasnya.

Pertama-tama kita perlu melaksanakan kaedah untuk menambah elemen pada baris gilir:

func (q *Queue) Enqueue(item int) {
    q.items = append(q.items, item)
}

Fungsi ini menggunakan kaedah append() untuk menambahkan elemen pada penghujung baris gilir.

Seterusnya, kita perlu melaksanakan kaedah untuk mengalih keluar elemen daripada baris gilir:

func (q *Queue) Dequeue() int {
    toRemove := q.items[0]
    q.items = q.items[1:len(q.items)]
    return toRemove
}

Fungsi ini menyimpan elemen pertama baris gilir dalam pembolehubah yang dipanggil toRemove, dan Ia dialih keluar daripada barisan. Kemudian ia mengembalikan nilai elemen yang dikeluarkan.

Kami juga perlu melaksanakan kaedah lain untuk melihat elemen pertama baris gilir:

func (q *Queue) Peek() int {
    return q.items[0]
}

Fungsi ini mengembalikan nilai elemen pertama baris gilir, tetapi tidak mengalih keluar elemen daripada barisan Padam masuk.

Akhir sekali, mari kita laksanakan kaedah untuk menentukan sama ada baris gilir kosong:

func (q *Queue) IsEmpty() bool {
    return len(q.items) == 0
}

Di atas adalah pelaksanaan struktur data baris gilir yang mudah Kod lengkapnya adalah seperti berikut:

package main

import "fmt"

type Queue struct {
    items []int
}

func (q *Queue) Enqueue(item int) {
    q.items = append(q.items, item)
}

func (q *Queue) Dequeue() int {
    toRemove := q.items[0]
    q.items = q.items[1:len(q.items)]
    return toRemove
}

func (q *Queue) Peek() int {
    return q.items[0]
}

func (q *Queue) IsEmpty() bool {
    return len(q.items) == 0
}

func main() {
    q := Queue{}

    q.Enqueue(1)
    q.Enqueue(2)
    q.Enqueue(3)

    fmt.Println(q.Peek())
    fmt.Println(q.Dequeue())
    fmt.Println(q.IsEmpty())
}

Dalam bahasa Go, kami boleh melaksanakan struktur data baris gilir mudah menggunakan kaedah yang serupa dengan yang di atas. Contoh ini agak mudah, tetapi struktur ini boleh digunakan dalam pelbagai aplikasi yang berbeza, seperti penjadualan sistem pengendalian, pemprosesan mesej, dsb.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan giliran dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn