[데이터 구조 원리 와 응용 (Golang 설명)] ① 배열
4081 단어 golang
.-. .-
.-,.--..-,.--. \ \ / /
__ | .-. | .-. | __ \ \ / /
.:--.'. | | | | | | |.:--.'. \ \ / /
/ | \ || | | | | | / | \ | \ \ / /
`" __ | || | '-| | '-`" __ | | \ ` /
.'.''| || | | | .'.''| | \ /
/ / | || | | | / / | |_ / /
\ \._,\ '|_| |_| \ \._,\ '|`-' /
`--' `" `--' `" '..'
Golang
Online Go tutorial
1.1 원리
배열 (Array) 은 선형 표 데이터 구조 로 메모리 에 연속 적 인 저장 공간 을 신청 하여 같은 유형의 데 이 터 를 저장 하 는 데 사용 된다.
배열 을 제외 하고 링크, 스 택, 대기 열 은 모두 선형 표 구조 이다.
아래 표 에 따라 무 작위 접근 을 실현 하 다
컴퓨터 는 모든 메모리 셀 에 주 소 를 할당 한 다음 이 주 소 를 통 해 메모리 의 데 이 터 를 방문 합 니 다. 배열 의 요 소 를 방문 할 때 다음 주소 지정 공식 에 따라 접근 합 니 다.
$$ a[i]\_address = base\_address + i * data\_type\_size $$
그 중 $a [i] \address $a [i] 의 주 소 를 표시 합 니 다. $base \address $는 컴퓨터 가 할당 한 배열 의 주 소 를 표시 합 니 다. $data \type\_size $는 배열 의 모든 요소 의 크기 를 표시 합 니 다. 데이터 형식 이 정형 int 라면 $data \type\_size $는 4 바이트 와 같 습 니 다.
1.2 관련 조작 과 분석
끼어들다
배열 의 k 번 째 위치 에 데 이 터 를 삽입 하려 면 배열 의 k ~ n 위치 이 부분의 요 소 를 뒤로 옮 겨 야 합 니 다.
삭제
삽입 데이터 와 유사
1.4 LeetCode 연습
1.5 단순 실현
package main
import "fmt"
type Array interface {
Get(i int) interface{}
Set(i int, element interface{})
Len() int
Remove(i int)
Insert(i int, element interface{})
// ,
Print()
}
type array struct {
data []interface{}
}
func (a *array) Print() {
fmt.Println(a.data)
}
func (a *array) Get(i int) interface{} {
return a.data[i]
}
func (a *array) Set(i int, element interface{}) {
a.data[i] = element
}
func (a *array) Len() int {
return len(a.data)
}
func (a *array) Remove(i int) {
for ; i < a.Len() - 1; i++ {
a.data[i] = a.data[i+1]
}
a.data = a.data[:a.Len()-1]
}
func (a *array) Insert(i int, element interface{}) {
a.data = append(a.data, 0)
for j:= a.Len()-1; j > i; j-- {
a.data[j] = a.data[j-1]
}
a.data[i] = element
}
func NewArray(n int) Array {
return &array{data: make([]interface{}, n)}
}
func main() {
//
arr := NewArray(3)
arr.Set(0, "hello")
arr.Set(1, "world")
fmt.Println(arr.Get(0))
arr.Print()
arr.Insert(0, "mike")
arr.Print()
arr.Remove(3)
arr.Print()
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
set containerThere is no built-in set container in Go How to implement Set struct{} => type struct{}{} => 0bytes How to create set :=...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.