java线性表合并_单链表的合并(Java实现)
C語(yǔ)言能做的,Java照樣可以做。但是沒(méi)有指針的操作,可能使人看起來(lái)“不舒服”。這個(gè)博客是為了個(gè)人學(xué)習(xí)算法和數(shù)據(jù)結(jié)構(gòu)而開(kāi)的,以后凡是涉及到這方面的內(nèi)容,我會(huì)盡量用Java和C同時(shí)實(shí)現(xiàn)。大家一起學(xué)習(xí),共同進(jìn)步。
以下為Java源碼:
import java.util.Scanner;
//節(jié)點(diǎn)類(lèi)聲明
class Node {
int
data;
Node
next;
}
public class Linklist {
public
static void main(String args[]) {
Node la, lb, lc;
la = creat_list(5);
lb = creat_list(4);
lc = la;
merge_list(la, lb, lc);
print_list(lc);
}
// 鏈表創(chuàng)建方法
static Node
creat_list(int n) {
int i = 0;
Node p, head;
head = new Node();
head.next = null;
for (i = n; i > 0; i--) {
p = new Node();
System.out.println("input the
value:");
Scanner scn = new Scanner(System.in);
p.data = scn.nextInt();
p.next = head.next;
head.next = p;
}
return head;
}
static void merge_list(Node la, Node lb, Node lc) {
Node pa, pb, pc;
pa = la.next;
pb = lb.next;
pc = lc;
while ((pa != null) && (pb !=
null)) {
if (pa.data <= pb.data) {
pc.next = pa;
pc = pa;
pa = pa.next;
} else {
pc.next = pb;
pc = pb;
pb = pb.next;
}
}
pc.next = (pa==null)?pa:pb;
}
// 鏈表打印輸出方法
static void
print_list(Node head) {
Node p;
p = head.next;
while (p != null) {
System.out.println("[" + p.data +
"]");
p = p.next;
}
}
}
總結(jié)
以上是生活随笔為你收集整理的java线性表合并_单链表的合并(Java实现)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java构造器调用构造器_java中构造
- 下一篇: java美元兑换,(Java实现) 美元