单链小程序怎么编

时间:2025-01-28 11:36:39 单机游戏

单链表小程序可以使用不同的编程语言实现,以下是使用Java和C语言分别实现单链表的示例代码:

Java实现

```java

public class LinkedList {

public static class Node {

int data;

Node next;

Node(int data) {

this.data = data;

this.next = null;

}

}

public static class List {

Node head;

public List() {

head = null;

}

// 在链表头部插入节点

public void insertAtHead(int data) {

Node newNode = new Node(data);

newNode.next = head;

head = newNode;

}

// 在链表尾部插入节点

public void insertAtTail(int data) {

Node newNode = new Node(data);

if (head == null) {

head = newNode;

} else {

Node temp = head;

while (temp.next != null) {

temp = temp.next;

}

temp.next = newNode;

}

}

// 删除指定位置的节点

public void deleteAtPosition(int position) {

if (head == null) return;

if (position == 0) {

head = head.next;

return;

}

Node temp = head;

for (int i = 0; i < position - 1 && temp != null; i++) {

temp = temp.next;

}

if (temp == null || temp.next == null) return;

Node toDelete = temp.next;

temp.next = temp.next.next;

}

// 查找指定值的节点位置

public int find(int value) {

Node temp = head;

int position = 0;

while (temp != null) {

if (temp.data == value) {

return position;

}

temp = temp.next;

position++;

}

return -1; // 如果未找到,返回-1

}

// 打印链表

public void printList() {

Node temp = head;

while (temp != null) {

System.out.print(temp.data + " ");

temp = temp.next;

}

System.out.println();

}

}

public static void main(String[] args) {

List list = new List();

list.insertAtHead(11);

list.insertAtHead(12);

list.insertAtHead(13);

list.insertAtHead(14);

list.insertAtHead(15);

list.insertAtHead(16);

list.printList(); // 输出: 16 15 14 13 12 11

list.deleteAtPosition(2);

list.printList(); // 输出: 16 15 13 12 11

System.out.println("查找12的位置: " + list.find(12)); // 输出: 1

System.out.println("查找15的位置: " + list.find(15)); // 输出: 1

System.out.println("查找22的位置: " + list.find(22)); // 输出: -1

}

}

```

C语言实现