在java中用数组模拟链表,实现添加和删除数据功能

Scanner sc = new Scanner(System.in);
int n = sc.nextInt();

int [] data = new int[101];
int [] right = new int [101];
int len;
for(int i=1;i<=n;i++)
{
data[i] = sc.nextInt();
//给data数组初始化
}

len = n;

for(int i=0;i<=n;i++){

//初始化数组right,实现上边那句话
if(i!=n)
right[i] = i+1;
else
right[i] = 0;

}

len++;
//在data数组的末尾“len”处增加一个数
data[len] = sc.nextInt();

//从链表头部开始遍历
这是我自己写的代码,用两个数组来实现的添加功能,但是删除没搞懂要怎样实现
int t = 1;
while(t!=0)
{
if(data[right[t]]>data[len])//如果当前结点下一个结点的值大于待插入数,将数插入到中间
{
right[len]=right[t];//新插入数的下一个结点标号等于当前结点的下一个结点编号

right[t]=len;//当前结点的下一个结点编号就是新插入数的编号
//此时就实现了链表插入功能,data放数 right模拟指针
break;//插入完成跳出循环
}
t=right[t];//t每次加一
}

t=1;
while(t!=0)
{//打印data数组中的数据
System.out.print(data[t]+" ");
t=right[t];
}

已经写好了,私信我,发给你
温馨提示:答案为网友推荐,仅供参考
相似回答