java单链表基本操作的实现 [问题描述] 1、用顺序表方式实现在线通讯录的设计,可以对通讯录作插入、删除、显示、查找、修改等操作。(必做题) 2、用单链表方式实现在线通讯录的设计,可以对通讯录作插入、删除、显示、查找、修改等操作。(必做题)
时间: 2023-10-19 10:22:40 浏览: 23
单链表基本操作的实现:
1. 定义节点类
```java
class Node{
String name; //姓名
String phone; //电话
Node next; //指向下一个节点的指针
public Node(String name, String phone){
this.name = name;
this.phone = phone;
this.next = null;
}
}
```
2. 定义单链表类
```java
class LinkedList{
Node head; //头节点
public LinkedList(){
head = null;
}
//插入节点
public void insert(String name, String phone){
Node newNode = new Node(name, phone);
if(head == null){
head = newNode;
}else{
newNode.next = head;
head = newNode;
}
}
//删除节点
public void delete(String name){
if(head == null){
System.out.println("链表为空!");
return;
}
if(head.name.equals(name)){
head = head.next;
return;
}
Node prev = head;
Node cur = head.next;
while(cur != null){
if(cur.name.equals(name)){
prev.next = cur.next;
return;
}
prev = cur;
cur = cur.next;
}
System.out.println("未找到该节点!");
}
//查找节点
public void find(String name){
if(head == null){
System.out.println("链表为空!");
return;
}
Node cur = head;
while(cur != null){
if(cur.name.equals(name)){
System.out.println("姓名:" + cur.name + ",电话:" + cur.phone);
return;
}
cur = cur.next;
}
System.out.println("未找到该节点!");
}
//修改节点
public void modify(String name, String phone){
if(head == null){
System.out.println("链表为空!");
return;
}
Node cur = head;
while(cur != null){
if(cur.name.equals(name)){
cur.phone = phone;
System.out.println("修改成功!");
return;
}
cur = cur.next;
}
System.out.println("未找到该节点!");
}
//显示链表
public void display(){
if(head == null){
System.out.println("链表为空!");
return;
}
Node cur = head;
while(cur != null){
System.out.println("姓名:" + cur.name + ",电话:" + cur.phone);
cur = cur.next;
}
}
}
```
3. 测试
```java
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.insert("Tom", "123456");
list.insert("Jerry", "234567");
list.insert("John", "345678");
list.display();
list.delete("Jerry");
list.display();
list.find("Tom");
list.modify("Tom", "111111");
list.display();
}
```