您的位置:首页 > 理论基础 > 数据结构算法

《数据结构》严蔚敏版(java解)——第二章 线性表02 顺序线性表操作

2017-02-08 16:12 393 查看
概念:线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素。

特点:假设线性表的每个元素需占用l个存储单元,并以所占的第一个单元的存储地址作为数据元素的存储位置。则线性表第i+1个数据元素的存储位置的表示为:第i+1的存储位置=第i的存储位置+l;

代码实现

package csdn.wj.linear;

import java.util.ArrayList;
import java.util.List;
/**
*
* @author WangSir
*
*/
public class Linear02 {

//	在顺序线性表的基础上插入一个元素之后仍为顺序表(这里假设是一个升序表)
public int findElement(List<Integer>list,int element){
int index =-1;
for(int i=0;i<list.size();i++){
if(list.get(i)<=element&&list.get(i+1)>=element){
index = i+1;
break;
}else if(list.get(0)>=element){
index = 0;
break;
}else if(list.get(list.size()-1)<=element){
index = list.size()-1;
break;
}else{

}
}
return index;
}

public List<Integer> insertElement(List<Integer>list,int element){
int index = findElement(list,element);
System.out.println(index);
//		扩容一个值大小
list.add(99);
for(int i=list.size()-2;i>=index;i--){
list.set(i+1, list.get(i));
}
list.set(index, element);
return list;
}
public static void main(String args[]){
//		模拟顺序线性表
List<Integer> ls  = new ArrayList<>();
for(int i = 0;i<50;i++){
ls.add(i);
}
for (int i = 52;i<70;i++){
ls.add(i);
}
//		插入一个值为50
List <Integer> list = new Linear02().insertElement(ls,50);
for(int i:list){
System.out.print(i+",");
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息