Linear list——线性表

来源:互联网 发布:微信抢红包扫雷软件 编辑:程序博客网 时间:2024/06/07 00:23

一、基础

1.概念

线性表是相同类型的数据元素的有限序列,数据元素之间具有顺序关系。除第一个和最后一个数据元素之外,每个数据元素只有一个前驱数据元素和一个后驱数据元素。

2.线性表的基本操作

线性表的特点是可以在任意位置进行插入和删除数据元素的操作。对线性表的操作主要有:求长度、访问、插入、删除、复制、合并、查找、排序、遍历

3.存储结构

线性表有两种存储结构:顺序存储结构和链式存储结构。顺序表:用顺序存储结构实现的线性表链表:用链式存储结构实现的线性表

二、顺序表

1.实现

用数组可以实现顺序表。
/** * 线性表 * Created by zhaoxudong on 2017/12/2. */public class LinearList1 {    private int table[];//    private int n;//记录线性表的长度    /*    以上类型两个属性为什么要写成私有成员呢?    当使用一个线性表时,创建LinearList类的一个对象,通过调用这个类的公有地(public)方法进行相应的操作或访问类中的成员    对于使用这个类的程序员来说,只需关心这个类的功能即可;另外设计类是不需要向类之外的对象提供直接访问成员的功能。    这,就是类的封装!    */    //1.顺序表的初始化     使用构造方法创建顺序表对象,为顺序表分配存储空间,设置顺序表空状态    public LinearList1(int n){        table=new int[n];        this.n=0;    }    //2.判断顺序表的空与满状态    public boolean isEmpty(){   //判断空        return n==0;    }    public boolean isFull(){    //判断满        return n>=table.length;    }    //3.返回顺序表长度    public int length(){        return n;    }    //4.获得顺序表的第i个元素值    public int get(int i){        if(i>0&&i<=n){            return table[i-1];        }else {            return -1;        }    }    //5.设置顺序表的第i个元素值    public void set(int i,int value){        if(i>0&&i<=n+1){            if(i==n+1){  //新增                n++;            }            table[i-1]=value;        }    }    //6.查找      查找线性表中是否存在给定值    public boolean contains(int k){        int v=indexof(k);        if (v==-1){            return false;        }else {            return true;        }    }    public int indexof(int k){      //返回索引        for(int i=0;i<n;i++){            if(table[i]==k){                return i;            }        }        return -1;    }    //7.在顺序表的第i个位置上插入数据元素}
阅读全文
0 0