数据结构入门:数组、链表、栈、队列
数据结构是编程的基础。本文介绍最常用的数据结构。
数组
连续内存存储,随机访问 O(1)。
int[] arr = new int[10];
arr[0] = 1; // O(1) 访问
优点: 随机访问快 缺点: 插入删除慢
链表
非连续内存,通过指针连接。
class ListNode {
int val;
ListNode next;
}
优点: 插入删除快 O(1) 缺点: 访问慢 O(n)
栈
后进先出(LIFO)。
Stack<Integer> stack = new Stack<>();
stack.push(1); // 入栈
stack.pop(); // 出栈
stack.peek(); // 查看栈顶
应用: 函数调用栈、括号匹配、表达式求值
队列
先进先出(FIFO)。
Queue<Integer> queue = new LinkedList<>();
queue.offer(1); // 入队
queue.poll(); // 出队
queue.peek(); // 查看队首
应用: 消息队列、BFS、任务调度
总结
数据结构是算法的基础。掌握数组、链表、栈、队列,是学习更复杂数据结构的前提。