线性表:由相同类型的对象组成的一个线性结构
360百科:定义
线性表(linear list)是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。数据元素是一个抽象的符号,其具体含义在不同的情况下一般不同。
在稍复杂的线性表中,一个数据元素可由多个数据项(item)组成,此种情况下常把数据元素称为记录(record),含有大量记录的线性表又称文件(file)。
线性表中的个数n定义为线性表的长度,n=0时称为空表。在非空表中每个数据元素都有一个确定的位置,如用ai表示数据元素,则i称为数据元素ai在线性表中的位序。
线性表的相邻元素之间存在着序偶关系。如用(a1,…,ai-1,ai,ai+1,…,an)表示一个顺序表,则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai的直接后继元素。当i=1,2,…,n-1时,ai有且仅有一个直接后继,当i=2,3,…,n时,ai有且仅有一个直接前驱 。
特征
1.集合中必存在唯一的一个"第一元素"。
2.集合中必存在唯一的一个 "最后元素" 。
3.除最后一个元素之外,均有 唯一的后继(后件)。
4.除第一个元素之外,均有 唯一的前驱(前件)。
基本操作折叠基本操作
1)MakeEmpty(L) 这是一个将L变为空表的方法
2)Length(L) 返回表L的长度,即表中元素个数
3)Get(L,i) 这是一个函数,函数值为L中位置i处的元素(1≤i≤n)
4)Prior(L,i) 取i的前驱元素
5)Next(L,i) 取i的后继元素
6)Locate(L,x) 这是一个函数,函数值为元素x在L中的位置
7)Insert(L,i,x)在表L的位置i处插入元素x,将原占据位置i的元素及后面的元素都向后推一个位置
8)Delete(L,p) 从表L中删除位置p处的元素
9)IsEmpty(L) 如果表L为空表(长度为0)则返回true,否则返回false
10)Clear(L)清除所有元素
11)Init(L)同第一个,初始化线性表为空
12)Traverse(L)遍历输出所有元素
13)Find(L,x)查找并返回元素
14)Update(L,x)修改元素
15)Sort(L)对所有元素重新按给定的条件排序
16) strstr(string1,string2)用于字符数组的求string1中出现string2的首地址
例题代码
折叠
/*借助范式定义一个线性表*/
import java.util.ArrayList;
//java.util 是实用工具类库,提供了一些实用的方法和数据结构。ArrayList:详细介绍见大佬博客:https://www.cnblogs.com/xinhuaxuan/p/6344150.html
import java.util.List;
public class ListDemo {//定义一个类
public static void main(String args[])
{
int numberLength=10;//定义一个参数存放数字长度
int deleteNumber=5;//定义一个参数存放要删除的数字5
List<Integer>list =new ArrayList<Integer>();//List<Integer>定义了List只能存放integer类,别的类型会报错;此处list为integer
init(numberLength,list);//调用函数
delete(deleteNumber,list);//调用删除数字函数
print(list);//打印结果
}
private static void print(List<Integer>list)
{
for(int i=0;i<list.size();i++)//遍历数字,打印结果;size()方法:查看list泛型有多少个元素
{
System.out.print(list.get(i)+"\t");//get获取数据
}
}
private static void delete(int deleteNumber,List<Integer>list)
{
for(int i=0;i<list.size();i++)//遍历数字
{
if((int)list.get(i)==deleteNumber)//找到要删除的数;(int)强制类型转换
{
list.remove(i);//删除对象i;List的Remove方法在删除元素的时候总会保持下标连续。例如,删掉第一个元素的时候,后面的元素会依次往前覆盖。 }
}
}
private static void init(int numberLength,List<Integer>list)
{
for(int i=1;i<=numberLength;i++)//往List里添加1~10数字
{
list.add(i);//添加元素
}
}
}
运行结果