线性表(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] 。
第一天里面,敲了关于线性表的以下几个方法:
(1) 获取数组长度:len(int arr[])
//这个是用来求数组的长度
public static int len(int arr[]){
int length = arr.length;
return length;
}
(2) 遍历整个数组: printlist(int arr[])
public static void printlist(int arr[]){
if(arr!=null){
int length = len(arr);
int i;
for(i=0 ; i<length ;i++){
System.out.print(arr[i]+" ");
}
}else {
System.out.println(" null");
}
}
(3) 查找元素群:printElements(int arr[] , int start , int end)
public static int[] printElements(int arr[] , int start , int end){
if(start<end){
if(end<len(arr)) {
int elements[] = new int[(end - start)];
int i = 0;
int first = start;
for(;first<end;first++){
elements[i++] = printElemnt(arr,first);
}
return elements;
}else {
System.out.print("超出索引值");
return null;
}
}else {
System.out.print("不符合输入标准");
return null;
}
}
(4) 查找元素:printElemnt(int arr[],int i)
public static Integer printElemnt(int arr[],int i){
if (i<=len(arr)) {
return arr[i];
}else {
return null;
}
}
(5) 判断该元素是否存在:boolElement(int arr[] , int i)
public static boolean boolElement(int arr[] , int i){
boolean t = false;
for(int j=0 ; j<len(arr) ; j++){
if(i==printElemnt(arr,j)){
t = true;
break;
}
}
return t;
}
(6) 判断元素群是否存在:boolElements(int arr[] , int a[])
public static boolean boolElements(int arr[] , int a[]){
boolean t = false;
int arrl = len(arr);
int al = len(a);
for(int j=0 ; j<arrl-al ; j++){
int i;
int x=j;
for(i=0;i<al;i++){
if(a[i]==arr[x++]){
if(i==(al-1)){
t = true;
}
}else {
break;
}
}
}
return t;
}
(7) 测试
public static void main(String[] args) {
System.out.println("接下来我们创造了一个数组,进行实验");
int arr[] = {0,1,2,3,4,5,6,7,8,9};
System.out.println("让我们康康它有多少长度:");
System.out.println(len(arr));
System.out.println("====================================");
System.out.println("接下来我们看看里面有什么吧!");
printlist(arr);
System.out.println("\n====================================");
System.out.println("接下来是索引元素了");
System.out.println("我要索引第一个:"+printElemnt(arr,0));
System.out.println("我要索引第十一个:"+printElemnt(arr,11));
System.out.println("====================================");
System.out.println("接下来是索引元素群体");
System.out.print("索引第一个到第四个:");
printlist(printElements(arr,1,4));
System.out.print("\n索引第五个到第四个:");
printlist(printElements(arr,5,4));
System.out.print("索引第一个到第十一个:");
printlist(printElements(arr,0,11));
System.out.println("====================================");
System.out.println("查询数字1是否存在:"+boolElement(arr,1));
System.out.println("查询数字13是否存在:"+boolElement(arr,14));
System.out.println("====================================");
int a[] = {1,2,3};
int b[] = {3,6,9};
System.out.println("查询数组{1,2,3}在不在arr里:"+boolElements(arr,a));
System.out.println("查询数组{3,6,9}在不在arr里:"+boolElements(arr,b));
}