1、首先构建节点
public class Node{
Object data;
Node next;
public Node(Object data){
super();
this.data=data;
}
public String toString(){
return "Node [data"+data+"]";
}
}
2、创建顺序表
public class sunxubiao{
private Object[] elements;
private int size;
public shunxubiao(int capacity){
elements=new Object[capacity];
size=0;
}
public shunxubiao(){//顺序表的初始化
this(0);
}
public int size(){//顺序表的长度
return size
}
public void check(int index){//判断是否符合条件
if(index<0||index>size){
throw new IllegalArguementException("error! ")
}
}
//添加元素
public void add(int index,Object x){
check(index);
//扩容
if(size==elements.length){
Object temp=new Object [2*size];
for(int i=0;i<size;i++){
temp[i]=elements[i];
}
elements=temp;
}
//找到index位置(从后往前找)
for(int i=size-1;i>=index;i--){
elements[i+1]=elements[i];
}
/*
for(int i=0;i<=index;i++){
elements[i]=elements[i+1];
}
*/
elements[index]=x;
size++;
}
//删除
public Object delete(int index){
check(index);
Object ret=elements[index];
for(int i=index+1;i<size;i++){
elements[i-1]=elements[i];
}
size--;
return ret;
}
//判断是否为空
public boolean isEmpty(){
return size==0;
}
//查找(找下标)
public int find (Object x){
for(int i=0;i<size;i++){
if(elements[i].equals(x)){
return i;
}
}
return -1;
}
//以下标找数
public Object findat(int index){
check(index);
return elements[index];
}
//数据更新
public void update(int index,Object newelements){
check(index);
elements[index]=newelements;
}
//重写toString 方法
public String toString(){
StringBuilder sb=new StringBuilder();
sb.append("[");
for(int i=0;i<size;i++){
sb.append(elements[i]);//数据加入数组中,并打印
if (i!size-1){
sb.append(",");
}
}
sb.append("]");
return sb.toString();
}
}
3、主函数部分
public static void main(String[] args){\
ArrayList<Integer> list2=new ArrayList<Integer>();
shunxubiao list1=new shunxubiao(10);
for(int i=0;i<5;i++){
int x=(int)Math.round(Math.random()*10);//随机产生数字
list1.add(i,x);
list2.add(i,x);
}
System.out.println(list2);
System.out.println(list1);
list1.add(1,2);
System.out.println(list1);
list1.delete(2);
System.out.println(list1);
list1.find(4);
System.out.println(list1);
}