根据键盘输入数据建立一个单链表,并输出该单链表;2.根据屏幕菜单的选择,进行数据的插入、删除、查找操作,并在插入或删除后,再输出单链表;3.操作结束后,在屏幕菜单中选择0,从而结束程序运行。
时间: 2024-10-08 17:19:48 浏览: 34
为了实现这个功能,我们可以按照以下步骤设计一个控制台应用程序:
1. 首先,创建一个Node类,代表单链表中的节点,包含一个值和指向下一个节点的引用。
```java
public class Node {
int data;
Node next;
public Node(int data) {
this.data = data;
this.next = null;
}
}
```
2. 创建一个LinkedList类,负责管理单链表的操作,包括插入、删除和遍历输出。
```java
public class LinkedList {
private Node head;
// 插入方法
public void insert(int value) {
if (head == null) {
head = new Node(value);
} else {
Node newNode = new Node(value);
newNode.next = head;
head = newNode;
}
}
// 删除方法(这里简化为仅删除头节点)
public void delete() {
if (head != null) {
head = head.next;
}
}
// 查找方法
public boolean search(int value) {
Node current = head;
while (current != null) {
if (current.data == value) return true;
current = current.next;
}
return false;
}
// 输出链表
public void printList() {
Node temp = head;
while (temp != null) {
System.out.print(temp.data + " -> ");
temp = temp.next;
}
System.out.println("NULL");
}
}
```
3. 主函数部分接收用户输入,根据菜单选择执行相应操作。
```java
public static void main(String[] args) {
LinkedList list = new LinkedList();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("1. 输入数据\n2. 插入数据\n3. 删除数据\n4. 查找数据\n5. 输出链表\n0. 结束程序");
int choice = scanner.nextInt();
switch (choice) {
case 1:
int input = scanner.nextInt();
list.insert(input);
break;
case 2:
list.delete(); // 这里假设每次插入都会删除最后一个元素
break;
case 3:
int target = scanner.nextInt();
if (!list.search(target)) {
System.out.println("未找到目标数据");
}
break;
case 4:
list.printList();
break;
case 0:
System.exit(0); // 结束程序
break;
default:
System.out.println("无效选择,请重新输入");
}
}
}
```
当用户选择0退出时,程序会停止运行。这个简单的例子展示了如何通过控制台交互创建和操作一个基本的单链表。在实际应用中,可以根据需要添加更复杂的数据结构和功能。
阅读全文