不同的数据结构适用于解决不同类型的问题,从简单的数组到复杂的图结构,每种数据结构都有其独特的应用场景。在实际开发中,选对结构往往比写对代码更重要。
1. 数组与链表
核心概念
- 数组:线性结构,元素顺序排列,支持通过索引 O(1) 快速访问,但插入删除开销较大。
- 链表:由节点组成,每个节点包含数据和指向下一个节点的引用,插入删除灵活,但随机访问效率低。
应用场景
- 数据库系统:固定大小的记录集常使用数组存储,而动态增长的数据集合则依赖链表管理。
- 操作系统:进程调度队列通常采用链表形式,以支持高效的插入和删除操作。
代码实现 下面是一个基础的链表节点定义及添加、打印方法示例:
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}
public class LinkedList {
private ListNode head;
public void add(int data) {
if (head == null) {
head = new ListNode(data);
} else {
ListNode current = head;
while (current.next != null) {
current = current.next;
}
current.next = new ListNode(data);
}
}
public void printList() {
ListNode temp = head;
while (temp != null) {
System.out.print(temp.val + );
temp = temp.next;
}
System.out.println();
}
}

