陣列之golang實現(1)

2021-10-06 11:35:11 字數 1070 閱讀 4207

1.實現乙個支援動態擴容的陣列

滿足的功能:增(從指定位置插入,從尾部插入)、刪,查。

package array

import (

"errors"

"fmt"

)/**

** 實現乙個大小固定的有序陣列,支援動態增刪改操作。

* author: sxy

*/type array struct

func newarray(cap int) *array

return &array

}func (arr *array) outofarrayrange(index int) error

return nil

}// 根據指定的索引拿值

func (arr *array) find(index int) (int, error)

return arr.data[index], nil

}func (arr *array) insert(index, value int) error

err := arr.outofarrayrange(index)

if err != nil

// 因為是插入,後面的資料需要搬移 a[11]=a[10] a[1o]=a[9]

// 而不能是這樣 a[8]=a[7],a[9]=a[8]

for i := arr.length; index < i; i--

arr.data[index] = value

arr.length++

return nil

}func (arr *array) delete(index int) error

// 因為是刪除,所以也需要資料搬移:a[6]=a[7], a[7]=a[8]

for i := index; i < arr.length-1; i++

arr.length--

return nil

}func (arr *array) print()

*/} fmt.println(format)

}

Golang 之陣列 切片

陣列在使用前必須宣告長度,在golang中,陣列屬於值型別,在函式傳遞中,實際傳遞的是陣列的拷貝並不是陣列指標拷貝 是一種引用型別,它是不定長的,指向底層陣列 slice底層結構 type sliceheader struct 1.如果切片的容量小於1024個元素,那麼擴容的時候slice的cap就...

golang之棧實現

stack api為壓棧 彈棧 棧是否為空 檢視棧頂元素 peek 檢視棧中資料的數量 flush 清空棧 棧的實現底層資料結構可以使用陣列也可以使用鍊錶 陣列實現棧和鍊錶實現的棧的插入 查詢 拿取資料的複雜度都為1。package stack import fmt 陣列棧,每次插入資料,即壓棧,都...

golang 包含 陣列 Golang陣列型別

陣列 陣列是指一系列同一型別資料的集合。陣列中包含的每個資料被稱為陣列元素 element 乙個陣列包含的元素個數被稱為陣列的長度。1.宣告方法 32 byte 長度為32的陣列 2 n struct 複雜型別陣列 100 float64 指標陣列 3 5 int 二維陣列 2 2 2 float6...