java数据结构--链表
16lz
2021-01-22
package algorithm;
import java.util.Scanner;
public class ListTry {
private ListTry next = null;
private int data;
ListTry() {
next = null;
data = -1;
}
public int getData() {
return data;
}
public void setData(int data) {
this.data = data;
}
public void setNext(ListTry next) {
this.next = next;
}
public ListTry getNext() {
return this.next;
}
public void full() {
Scanner sc = new Scanner(System.in);
ListTry q = this;
System.out.println("请进行输入:(停止请输入exit)");
String h;
while (!("exit".equals(h = sc.next()))) {
q.setNext(new ListTry());
q.getNext().setData(Integer.parseInt(h));
q = q.getNext();
}
sc.close();
}
public void printAll() {
ListTry q = new ListTry();
q = this;
while (q.getNext() != null) {
System.out.println(q.getNext().getData());
q = q.getNext();
}
}
public static void delete(ListTry pre, ListTry del) {
// ListTry q = new ListTry();
// q = del.getNext();
// pre.setNext(del.getNext());
// del = q;
pre.setNext(pre.getNext().getNext());
// del = pre.getNext();
}
public static void main(String[] args) throws InterruptedException {
ListTry list1 = new ListTry();
list1.full();
ListTry q = list1.getNext();
ListTry p = list1;
list1.printAll();
System.out.println("---------------");
while (q != null) {
System.out.println("now " + q.getData());
if (q.getData() == 250) {
System.out.println("shanchu---");
ListTry.delete(p, q);
q = p.getNext();
} else {
q = q.getNext();
p = p.getNext();
}
}
list1.printAll();
}
}
删除操作那里出了一点问题,已解决,问题在于java是值传递,不是引用
画个图表达一下
更多相关文章
- Java操作数据库之jdbc【原生方式】
- Android复习练习十二(自定义ContentProvider实现其他应用操作本
- 显示操作栏和向上导航 - Android
- 比achartengine更加强大的Android图表控件。
- Android中的内存储、外存储概念、文件操作与PC端的有些不同
- 如何为sqlite操作构建更有效的设计
- javascript 操作流——回调的回调
- java操作ftp实现文件的上传下载(适用于图片文档服务器)
- JAVA实现二进制和16进制之间的互相转换,8进制同理,附带异或操作实