麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  千鋒問問  > java單鏈表的實現方法

java單鏈表的實現方法

java單鏈表 匿名提問者 2023-07-28 18:46:42

java單鏈表的實現方法

我要提問

推薦答案

  在Java中,單鏈表是一種常見的數據結構,用于存儲一系列具有相同類型的元素。單鏈表由一系列節點組成,每個節點包含一個數據元素和一個指向下一個節點的引用。以下是Java中單鏈表的實現及其基本操作:

千鋒教育

  節點類的定義:

  javaCopy codeclass Node {

  int data;

  Node next;

  public Node(int data) {

  this.data = data;

  this.next = null;

  }

  }

  單鏈表類的定義:

  javaCopy codeclass LinkedList {

  private Node head;

  public LinkedList() {

  this.head = null;

  }

  // 在鏈表尾部添加節點

  public void append(int data) {

  Node newNode = new Node(data);

  if (head == null) {

  head = newNode;

  } else {

  Node current = head;

  while (current.next != null) {

  current = current.next;

  }

  current.next = newNode;

  }

  }

  // 在鏈表頭部插入節點

  public void prepend(int data) {

  Node newNode = new Node(data);

  newNode.next = head;

  head = newNode;

  }

  // 刪除指定值的節點

  public void delete(int data) {

  if (head == null) {

  return;

  }

  if (head.data == data) {

  head = head.next;

  return;

  }

  Node current = head;

  while (current.next != null) {

  if (current.next.data == data) {

  current.next = current.next.next;

  return;

  }

  current = current.next;

  }

  }

  // 遍歷并打印鏈表元素

  public void print() {

  Node current = head;

  while (current != null) {

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

  current = current.next;

  }

  }

  }

其他答案

  •   除了基本的添加、插入和刪除操作,單鏈表還支持其他常用的操作,如搜索和反轉。以下是Java中單鏈表的搜索和反轉操作的實現:

      搜索指定值的節點:

      javaCopy code// 在鏈表中搜索指定值的節點,返回節點的引用,如果找不到返回null

      public Node search(int data) {

      Node current = head;

      while (current != null) {

      if (current.data == data) {

      return current;

      }

      current = current.next;

      }

      return null;

      }

      反轉鏈表:

      javaCopy code// 反轉鏈表

      public void reverse() {

      Node prev = null;

      Node current = head;

      Node next = null;

      while (current != null) {

      next = current.next;

      current.next = prev;

      prev = current;

      current = next;

      }

      head = prev;

      }

  •   在實際應用中,我們可能需要獲取鏈表的長度以及在指定位置插入節點。以下是Java中單鏈表的長度和插入操作的實現:

      獲取鏈表的長度:

      javaCopy code// 獲取鏈表的長度

      public int length() {

      int count = 0;

      Node current = head;

      while (current != null) {

      count++;

      current = current.next;

      }

      return count;

      }

      在指定位置插入節點:

      javaCopy code// 在指定位置插入節點

      public void insertAt(int data, int position) {

      if (position < 0 || position > length()) {

      throw new IllegalArgumentException("Invalid position");

      }

      if (position == 0) {

      prepend(data);

      return;

      }

      Node newNode = new Node(data);

      Node current = head;

      for (int i = 0; i < position - 1; i++) {

      current = current.next;

      }

      newNode.next = current.next;

      current.next = newNode;

      }

      通過以上的三篇文章,讀者可以了解到Java中單鏈表的基本操作、搜索、反轉、獲取長度以及在指定位置插入節點等常用操作。單鏈表作為一種重要的數據結構,在編程中經常被用到,掌握它的實現和操作將有助于更好地處理數據和問題。

主站蜘蛛池模板: 又粗又大又爽又长又紧又水| 亚洲国产视频网| 亚洲电影在线播放| 娇妻当着我的面被4p经历| 日本一道在线日本一道高清不卡免费| 久久成人国产精品| 国产手机精品一区二区| 久久国产加勒比精品无码| 欧美最猛性xxxxx69交| 亚洲欧美一区二区三区在线| 中文字幕天天躁日日躁狠狠躁免费| 公交车后车座的疯狂运| 俺也去在线观看视频| 加勒比色综合久久久久久久久| 亚洲欧美成人一区二区在线电影| 欧美婷婷六月丁香综合色| 国产综合久久久久| 抵在洗手台挺进撞击bl| 国产痴汉系列| 玩山村女娃的小屁股| 国产毛片久久久久久国产毛片| 成人精品一区二区三区中文字幕 | 涩涩快播| 女扒开尿口让男桶30分钟| 国产成人在线电影| 日本bbw搡bbbb搡bbbb| jux434被公每天侵犯的我| 欧美黑人巨大videos精品| 黑白高清在线观看| 一级成人a做片免费| 激情综合色综合久久综合| 美国式禁忌4桥矿超棒| 天天躁夜夜踩狠狠踩2022| 十七岁高清在线观看| 亚洲国产精品一区二区九九| 日本黄免费| 男女猛烈xx00免费视频试看| 波多野吉衣在线电影| 一二三四视频在线观看韩国电视剧| 亚洲日韩中文字幕一区| 亚洲国产高清美女在线观看|