您的位置:首页 > 编程语言 > Java开发

Java程序设计题解与上机指导(第四版)第七章 Java语言的高级特性 7.2借助泛型定义一个线性表

2018-05-09 09:15 441 查看

线性表:由相同类型的对象组成的一个线性结构

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,否则返回false10)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);//添加元素
}
}
}

运行结果


[code]

阅读更多
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐