线性表的顺序表示 (go语言实现)

概念

线性表的顺序表示指的是用一组地址连续的储存单元依次储存线性表的数据元素,这种表示也称作线性表的顺序存储结构或顺序。通常,称这种存储结构的线性为顺序表。特点,逻辑上相邻的数据元素,其物理性质也相邻的。

每一元素的储存位置都和线性表的起始位置相差一个常数,这个常数和数据元素在线性表中的位序成正比。由此,只要确定了存储线性表的起始位置,线性表的任一元素都可随机存取,所以线性表的顺序存储结构是一种随机存储结构。

代码

package main

import "fmt"

const length = 10

type Sunxun struct {
	data [length]int
	last int
}

/**
创建顺序表
 */
func InitList(biao *Sunxun)  {
	biao.last = 0
}

/**
插入
 */
func InSert(biao *Sunxun,l int,loacal int)  {
	if loacal < 1 || loacal > biao.last+1  {
		fmt.Println("越界")
		return
	}
	if biao.last == length {
		fmt.Println("存储空间已满")
		return
	}
	for j := biao.last; j > loacal ; j--  {
		biao.data[loacal] = biao.data[loacal-1]
	}
	biao.data[loacal-1] = l
	biao.last++
	//PrintSlice(biao)
}
/**
删除数据
 */
func Delete(biao *Sunxun,i int)  {
	if i < 1 || i > biao.last {
		fmt.Println("越界")
		return
	}
	for j := i - 1; j < biao.last-1 ; j++  {
		biao.data[j] = biao.data[j+1]
	}
	biao.last--
	PrintSlice(biao)
}
/**
获取i处数据
 */
func GetEelem(biao *Sunxun,i int)  {
	if i < 1 || i > biao.last {
		fmt.Println("越界")
		return
	}
	fmt.Println(biao.data[i-1])
}

/**
遍历链表
 */
func PrintSlice(biao *Sunxun){
	for i := 0; i < biao.last ; i++  {
		fmt.Println(biao.data[i])
	}
}

func main()  {
	var biao  *Sunxun = &Sunxun{}
	InitList(biao)
	InSert(biao,1,1)
	InSert(biao, 2, 2)
	InSert(biao, 3, 3)
	//GetEelem(biao ,3)
	Delete(biao, 2);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值