Go语言实现顺序存储的线性表实例

/////////
// 顺序存储线性表
////////
package main
import "fmt"
const MAXSIZE = 20 //定义数组长度
//定义线性表结构
type List struct {
    Element [MAXSIZE]int //存储线性表元素的数组
    length  int          //线性表长度
}
//初始化线性表,d:初始化的元素, l位置
func (l *List) InitList(d int, p int) {
    l.Element[p] = d
    l.length++
}
//插入元素
//d:插入的数据
//p:插入位置
func (l *List) Insert(d int, p int) bool {
    if p < 0 || p >= MAXSIZE || l.length >= MAXSIZE {
        return false
    }
    if p < l.length {
        for k := l.length - 1; k >= p; k-- {
            l.Element[k+1] = l.Element[k]
        }
        l.Element[p] = d
        l.length++
        return true
    } else {
        l.Element[l.length] = d
        l.length++
        return true
    }
}
//删除元素
//p:删除元素的位置
func (l *List) Delete(p int) bool {
    if p < 0 || p > l.length || p >= MAXSIZE {
        return false
    }
    for ; p < l.length-1; p++ {
        l.Element[p] = l.Element[p+1]
    }
    l.Element[l.length-1] = 0
    l.length--
    return true
}
func main() {
    var l List
    i := 0
    b := 1
    //初始化一个线性表
    for i < 15 {
        l.InitList(b, i)
        i++
        b++
    }
    //插入一个元素
    l.Insert(1, 13)
    //删除一个元素
    l.Delete(5)
    fmt.Println(l)
}

原文发布于微信公众号 - Golang语言社区(Golangweb)

原文发表时间:2016-03-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java帮帮-微信公众号-技术文章全总结

Java集合详解【面试+工作】

在说集合前我们不得不说一下数组 数组的作用: 存放一组相同的数据类型(基本或对象)的数据,从而实现对数据的管理 优势:可以快速的通过下标对数组元素进行访问,效率...

4556
来自专栏Android开发小工

Java集合解惑

本文取自工匠若水的qq群里的Java基础题目,把里面有关Java集合放在一起。 全文github地址

1332
来自专栏郭耀华‘s Blog

Java集合框架(五)—— Map、HashMap、Hashtable、Properties、SortedMap、TreeMap、WeakHashMap、IdentityHashMap、EnumMap

Map Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另一组值用于保存Map里的value,key和v...

3058
来自专栏wannshan(javaer,RPC)

JDK PriorityBlockingQueue remove(Object o) 源码分析

先知道PriorityBlockingQueue 是利用数组存储二叉堆实现。最小值(最优先)放在queue[0]位置。 //删除某个元素 public bool...

3727
来自专栏好好学java的技术栈

“365算法每日学计划”:04打卡-自己动手写一个单链表

1483
来自专栏大闲人柴毛毛

图的遍历(BFS+DFS)

图的遍历与树的遍历基本类似,但要注意两个不同: 1. 图中可能有环路,因此可能会导致死循环; 2. 一个图可能由多个独立的子图构成,因此一条路径走到头...

45611
来自专栏韦弦的偶尔分享

Swift 有效的括号 - LeetCode

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

1892
来自专栏java思维导图

【一分钟知识】常用集合List、Map、Set

Collection和Collections的区别 Collection是一个接口,它是Set、List等容器的父接口; Collections是个一个工具类...

3636
来自专栏Golang语言社区

Go语言单链表实现方法

本文实例讲述了Go语言单链表实现方法。分享给大家供大家参考。具体如下: 1. singlechain.go代码如下: ////////// //单链表 -- 线...

3756
来自专栏java一日一条

Java 容器 & 泛型(2):ArrayList 、LinkedList和Vector比较

序列(List),有序的Collection,正如它的名字一样,是一个有序的元素列表。确切的讲,列表通常允许满足 e1.equals(e2) 的元素对 e1 和...

1031

扫码关注云+社区

领取腾讯云代金券