/**
*功能:链表节点的定义
* */
public class Node { private int data;
private Node next; public Node(int data) {
this.data = data;
this.next = null;
} public void setData(int data) {
this.data = data;
} public int getData() {
return data;
} public Node getNext() {
return next;
} public void setNext(Node next) {
this.next = next;
}}/**
*功能:单链表定义
* */public class LinkList { Node head; public LinkList() {
head = null;
}
}
请编写算法,实现将输入的数组转化成单链表,并将其插入到给出的单链表的指定位置后。注意:单链表 的结点的序号从1开始。如果输入的序号小于1,则将数组生成的链表连到现有单链表的头部;类似如果输入的序号大于单链表 的长度,则将数组生成的链表连到现有的链表尾部。 例如:输入单链表为{1,6},在序号为1的结点后插入数组{2,3,4,5},得到的单链表为{1,2,3,4,5,6}。 输入单链表为{1,2,3,4},在序号为8的结点后插入数组{5,6,7},得到的单链表为{1,2,3,4,5,6,7}。 /**
* 功能:在指定的单链表的指定序号结点后插入输入的数组生成的单 链表。
* 参数:单链表l,在单链表l上进行链接插入操作。
* 参数:序号idx, 用于标识单链表上结点的序号,可能小于1或大于l的长度。
* 参数:整型数组arrs,要将arrs转化成单链表,然后再链接到l的指定位置上去。
* 返回值:生成的新链表。
*/
public static LinkList linkInsert_L(LinkList l, int idx, int[] arrs){}这个题搞了很久了,现在还没弄出来,请各位大虾帮一下忙
*功能:链表节点的定义
* */
public class Node { private int data;
private Node next; public Node(int data) {
this.data = data;
this.next = null;
} public void setData(int data) {
this.data = data;
} public int getData() {
return data;
} public Node getNext() {
return next;
} public void setNext(Node next) {
this.next = next;
}}/**
*功能:单链表定义
* */public class LinkList { Node head; public LinkList() {
head = null;
}
}
请编写算法,实现将输入的数组转化成单链表,并将其插入到给出的单链表的指定位置后。注意:单链表 的结点的序号从1开始。如果输入的序号小于1,则将数组生成的链表连到现有单链表的头部;类似如果输入的序号大于单链表 的长度,则将数组生成的链表连到现有的链表尾部。 例如:输入单链表为{1,6},在序号为1的结点后插入数组{2,3,4,5},得到的单链表为{1,2,3,4,5,6}。 输入单链表为{1,2,3,4},在序号为8的结点后插入数组{5,6,7},得到的单链表为{1,2,3,4,5,6,7}。 /**
* 功能:在指定的单链表的指定序号结点后插入输入的数组生成的单 链表。
* 参数:单链表l,在单链表l上进行链接插入操作。
* 参数:序号idx, 用于标识单链表上结点的序号,可能小于1或大于l的长度。
* 参数:整型数组arrs,要将arrs转化成单链表,然后再链接到l的指定位置上去。
* 返回值:生成的新链表。
*/
public static LinkList linkInsert_L(LinkList l, int idx, int[] arrs){}这个题搞了很久了,现在还没弄出来,请各位大虾帮一下忙
解决方案 »
- Java 运行不了,出现"Error: could not find java.dll" 怎么解决?
- java窗口怎么做?现在最新的java窗口技术是什么?
- 面向接口编程的好处和优点
- 实现简单下载功能
- java里画图。我用Xor模式,但是擦不干净以前画的线
- 关于界面问题1
- 如何运行JAR文件时向main函数传参数
- 请问java怎么和sql server数据库相连 最好给个简单的程序
- 去年过得真惨,尤其是过年,郁闷,有难兄难弟、难姐难妹吗?领安慰分吧……
- 求教深入学习JAVA的一些问题
- 请教一下 在64位的jdk中 int 是 32位的?还是64位的?
- 关于程序运行速率优化的一个小问题,麻烦大家指导下
因为要获取链表l的长度,不得不遍历整个链表来获取其长度。然后用这个度与序号进行比较。如果要插入的数组链表在l的中间某个位置又要遍历一次找到这个位置。如果数组链表要插到尾部也要遍历找到l最尾部的那个结点如果数组链表要放在l的前面,还要遍历数组链表找到最后的那个结点与l的head发生关系比较麻烦。
/**
*功能:链表节点的定义
* */
class Node {
private int data;
private Node next;
public Node(int data) {
this.data = data;
this.next = null;
}
public void setData(int data) {
this.data = data;
}
public int getData() {
return data;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
public class LinkList {
Node head;
public LinkList() {
//加一头结点:
head = new Node(0);
}
public Node getHead(){
return head;
}
public void printLinkList(){
Node p=head;
while(p.getNext()!=null){
p=p.getNext();
System.out.print(p.getData()+"-->");
}
System.out.println("\b\b\b ");
}
//返回值是void了,不用返回值了:
//还可以把static去掉,把linkInsert_L变为非静态的,这样参数LinkList l也可以去掉了:
public static void linkInsert_L(LinkList l, int idx, int[] arrs){
int counter=0;
Node p=l.getHead();
while(p.getNext()!=null&&counter<idx){
p=p.getNext();
counter++;
}
Node q=p.getNext();
for(int i=0;i<arrs.length;i++){
Node temp=new Node(arrs[i]);
p.setNext(temp);
p=temp;
}
p.setNext(q); }
public static void main(String[] args){
LinkList l=new LinkList();
int[] a1={1,6};
//先插入一个数组a1:
linkInsert_L(l,0,a1);
//输出结果看看:
l.printLinkList();
int[] a2={2,3,4,5};
//插入新的数组:
linkInsert_L(l,1,a2);
l.printLinkList();
}
} F:\java>java LinkList
1-->6
1-->2-->3-->4-->5-->6