数据结构顺序表

顺序的介绍

在了解顺序表之前先给大家介绍一下什么叫做线性表:

线性表(linear list):是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构。

常见的线性表:顺序表、链表、栈、队列…
线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。

顺序表就是线性表的一种,是逻辑地址和物理地址都是连续的。顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改 。
顺序表接口的实现

顺序表中是以数组来实现的,数据的大小是由数组的大小来决定的话每次新增和删除数据的话数组的大小实时,会造成频繁改变数组的大小,使用一个标志来记录顺序表的大小会更方便,不会经常改变数组大小 。
public class SeqList {
    private int[] elem;
    private int usedSize;//记录当前顺序表当中 有多少个有效的数据
    private static final int DEFAULT_CAPACITY = 10;
    public SeqList() {
        this.elem = new int[DEFAULT_CAPACITY];
    }
    // 打印顺序表,注意:该方法并不是顺序表中的方法,为了方便看测试结果给出的
    public void display() {
    }
    // 新增元素,默认在数据 最后新增
    public void add(int data) {
    }
    //判断顺序表是否满了
    private boolean isFull() {
    }
    // 判定是否包含某个元素
    public boolean contains(int toFind) {
        return false;
    }
    // 查找某个元素对应的位置
    public int indexOf(int toFind) {
        return -1;
    }
    // 获取 pos 位置的元素
    public int get(int pos)  {
    }
    // 获取顺序表长度
    public int size() {
    }
    // 给 pos 位置的元素设为 value【更新的意思 】
    public void set(int pos, int value) {
    }
    //检查pos下表是否合法
    private boolean checkPos(int pos){
    }
    // 在 pos 位置新增元素
    public void add(int pos, int data) {
    }
    private void resize() {
    }
    //删除第一次出现的关键字key
    public void remove(int toRemove) {
    }
    //判断顺序表是否为空
    public Boolean isEmpty(){
    }
    // 清空顺序表
    public void clear() {
    }
}

实现的第一个接口就是打印顺表,其实就是对数组进行一个遍历。

// 打印顺序表,注意:该方法并不是顺序表中的方法,为了方便看测试结果给出的
public void display() {
    for (int i = 0; i < this.usedSize; i++) {
        System.out.print(this.elem[i] + " ");
    }
    System.out.println();
}

进行新增数据的测试 :

public static void main(String[] args) {
    SeqList seqList = new SeqList();
    seqList.add(1);
    seqList.add(2);
    seqList.add(3);
    seqList.add(4);
    seqList.add(5);
    seqList.add(6);
    seqList.add(1);
    seqList.add(2);
    seqList.add(3);
    seqList.add(4);
    seqList.add(5);
    seqList.add(6);
    seqList.display();
    System.out.println(seqList.contains(1));//包含1
    System.out.println(seqList.contains(100));//不包含100
    System.out.println(seqList.indexOf(4));//由元素4的下标
    System.out.println(seqList.indexOf(50));//没有元素50
}

最后输出结果:

1 2 3 4 5 6 1 2 3 4 5 6
true
false
3
-1

文章链接: https://www.mfisp.com/22407.html

文章标题:数据结构顺序表

文章版权:梦飞科技所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
建站教程

交换数组元素

2023-7-25 13:15:57

建站教程

查看数组的大小

2023-7-25 13:27:13

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

梦飞科技 - 最新云主机促销服务器租用优惠