基礎篇 Go語言佇列實現

2021-08-21 15:56:27 字數 1239 閱讀 5996

理論介紹

佇列(queue), 是一種先進先出的線性表。通常用資料或者鍊錶來實現佇列。 佇列只允許在後端插入,前端刪除操作。

性質:

先進先出

**實現

了解了佇列的概念,實現乙個佇列也相當簡單,下面看**

package queue

type item inte***ce

// item the type of the queue

type itemqueue struct

type itemqueuer inte***ce

// new creates a new itemqueue

func (s *itemqueue) new() *itemqueue

return s

}// enqueue adds an item to the end of the queue

func (s *itemqueue) enqueue(t item)

// dequeue

func (s *itemqueue) dequeue() *item

func (s *itemqueue) isempty() bool

// size returns the number of items in the queue

func (s *itemqueue) size() int

在**中,我們使用go語言切片實現了乙個佇列,並且提供了以下幾種方法

- new 新建乙個佇列

- enqueue 入隊,也就是給佇列新增元素

- dequeue 出隊,從佇列中取出元素

- isempty 判斷佇列是否為空

- size 求佇列的大小

測試**

package queue

import "testing"

var q itemqueue

func initqueue() *itemqueue

q.new()

}return &q

}func testitemqueue_enqueue(t *testing.t)

}func testitemqueue_dequeue(t *testing.t)

q.dequeue()

q.dequeue()

if !q.isempty()

}

專案位址

參考教程

基礎篇 Go語言棧實現

理論介紹 棧 stack 是電腦科學中一種特殊的串列形式的抽象資料型別,其也通常使用鍊錶或者資料來實現,與佇列不用,棧的性質是後進先出。也就是只能總棧的頂部插入元素與取出元素。性質 後進先出 實現package stack type item inte ce itemstack the stack ...

go語言學習 基礎篇(3)

一,go語言陣列 1,陣列的特點 a.陣列在初始化完成之後,陣列的長度是固定的 b.只儲存同一型別的資料 c.陣列中的元素與元素之間的記憶體空間是連續的 2,陣列的定義 var a 5 int 其中a 表示陣列的名稱,5 表示陣列的長度,int 表示陣列中的元素型別 3,陣列中元素的訪問 使用下標訪...

Go語言 併發篇

go語言 併發篇 2012 06 06 09 55 by 軒脈刃,當被問到為什麼用go語言,一定不得不提的是go語言的併發程式編寫。在c語言中編寫非常繁瑣複雜的併發程式在go語言中總是顯得如此便捷。go中併發程式依靠的是兩個 goroutine和channel 對於初學者,goroutine直接理解...