import java.util.List;
public class Linklist {
public String data;
public Linklist next;
//初始化一个有n个结点的链表,节点值为1-n
public void InitLink(Linklist l, int n) {
Linklist p = new Linklist();
Linklist r = new Linklist();
r.next = null;
r.data = "tail";
for (int i = 0; i < n; i++) {
p.data = "" + i;
p.next = l.next;
l.next = p;
}
}
public String getItem(Linklist l, int i) {
int k = 1;
Linklist p = l;
while (p != null && k < i) {
p = p.next;
++k;
}
if (p == null || k > i) {
return null;
}
return p.data;
}
public int LinkInsert(Linklist l, int i, String data) {
int j = 1;
Linklist p = l, s = new Linklist();
while (p != null && j < i) {
p = p.next;
++j;
}
if (p == null || j > i) {
return 0;
}
s.data = data;
s.next = p.next;
p.next = s;
return 1;
}
//尾插法
public Linklist tailInsert(String[] data) {
Linklist list = new Linklist(), p = list;
for (String c : data) {
Linklist l = new Linklist();
l.data = c;
p.next = l;
p = p.next;
}
p.next = null;
return list.next;
}
public int LinkDelete(Linklist l, int i) {
int j = 1;
Linklist p = l, q;
while (p.next != null && j < i) {
p = p.next;
++j;
}
if (p.next == null || j > i) {
System.out.println("第i个元素不存在");
return 0;
}
q = p.next;
p.next = q.next;
// p = null;怎么回收内存?
return 1;
}
public static void main(String[] args) {
String names = "faf fsaf asfsa fsaf a ffdsfd";
String s[] = names.split(" ");
//尾插法创建链表
Linklist l = new Linklist();
l = l.tailInsert(s);
while (l != null) {
System.out.println(l.data);
l = l.next;
}
//
//
// Linklist l = new Linklist();
// Linklist f = new Linklist();
// f.data = "hemeng";
// f.next = null;
// l.next = f;
// int k = 2;
// for (String d:s)
// {
System.out.println(d);
// l.LinkInsert(l,k++,d);
// }
// System.out.println(l.getItem(l,5));
// l.LinkDelete(l,7);
//
// while (l!=null)
// {
// System.out.println(l.data);
// l = l.next;
// }
// Linklist num = new Linklist();
//
// num.next = null;
// num.InitLink(num,100);
//
// while (num!=null)
// {
// System.out.println(num.data);
// num = num.next;
// }
}
}
链表操作实现
最新推荐文章于 2024-10-06 20:16:20 发布