21xrx.com
2024-12-22 20:13:11 Sunday
登录
文章检索 我的文章 写文章
Java数据结构入门:从基础到实践
2023-06-13 15:01:25 深夜i     --     --
Java数据结构 数组 链表 队列

文章正文:

Java作为一门强大的编程语言,拥有丰富的库和数据结构,使得开发者能够快速、准确地实现各种应用。其中,数据结构是Java编程的基础,也是Java程序员必备的技能之一。

在Java中,数据结构有许多种类,包括数组、链表、队列、栈、堆、树、图等。在本文中,我们将介绍一些常见的数据结构,并且通过代码案例来演示如何实现和使用它们。

一、数组

数组是一组有序的数据集合,可以通过数组下标来访问和修改其中的元素。在Java中,数组可以是一维或多维的,它们的元素类型可以是Java的内置类型,也可以是自定义的类类型。以下是一个示例:

int[] numbers = 3;

// 访问数组中的元素

System.out.println(numbers[0]); // 输出 1

// 修改数组中的元素

numbers[0] = 0;

System.out.println(numbers[0]); // 输出 0

二、链表

链表是一种线性的数据结构,它由一系列节点组成,每个节点包含了数据和指向下一个节点的引用。在Java中,链表可以是单向的,也可以是双向的。以下是一个示例:

class ListNode {

  int val;

  ListNode next;

  ListNode(int x) val = x;

}

ListNode head = new ListNode(1);

head.next = new ListNode(2);

head.next.next = new ListNode(3);

// 遍历链表中的元素

ListNode p = head;

while (p != null) {

  System.out.println(p.val);

  p = p.next;

}

三、栈

栈是一种后进先出(LIFO)的数据结构,它的基本操作包括压入元素、弹出元素和查询栈顶元素。在Java中,栈可以用Stack类来实现,也可以用LinkedList类来实现。以下是一个示例:

Stack stack = new Stack<>();

stack.push(1);

stack.push(2);

stack.push(3);

// 弹出栈顶元素

System.out.println(stack.pop()); // 输出 3

四、队列

队列是一种先进先出(FIFO)的数据结构,它的基本操作包括入队、出队和查询队头元素。在Java中,队列可以用Queue类来实现,也可以用LinkedList类来实现。以下是一个示例:

Queue queue = new LinkedList<>();

queue.offer(1);

queue.offer(2);

queue.offer(3);

// 出队

System.out.println(queue.poll()); // 输出 1

五、树

树是一种非线性的数据结构,它由节点和边组成,每个节点可能有多个子节点,除了根节点外,每个节点都恰好有一个父节点。在Java中,树可以是二叉树、平衡树、B树等。以下是一个示例:

class TreeNode {

  int val;

  TreeNode left;

  TreeNode right;

  TreeNode(int x) val = x;

}

TreeNode root = new TreeNode(1);

root.left = new TreeNode(2);

root.right = new TreeNode(3);

// 遍历二叉树中的元素

List list = new ArrayList<>();

dfs(root, list);

System.out.println(list); // 输出 [1, 2, 3]

public static void dfs(TreeNode root, List list) {

  if (root == null)

    return;

  list.add(root.val);

  dfs(root.left, list);

  dfs(root.right, list);

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复