【數據結構】—— 3、鏈表

一、什麼是鏈表(Linked List)

之前的動態數組、棧、隊列的底層依託靜態數組,靠resize解決固定容量問題

  • 1、正的一種最簡單的動態數據結構
  • 2、更深入的理解引用(或者指針)
  • 3、更深入的理解遞歸
  • 4、輔助組成其他數據結構
  • 5、數據存儲在節點(Node)中
    class Node {
    	E e;
    	Node next;
    }
    
    • a、優點:真正的動態,不需要處理固定容量的問題
    • b、缺點:喪失了隨機訪問的能力

二、在鏈表中添加元素

  • 1、在鏈表頭部添加元素
// head表示頭部第一個元素,新元素node
Node node = new Node(e)
node.next = head
head = node

// 另外一種寫法
head = new Node(e, head)
  • 2、在鏈表中間添加元素
    在這裏插入圖片描述

    • a、先找到prev
      Node prev = head;
      for(int i = 0; i < index -1; i++) {
      	prev = prev.next;
      }
      
    • b、插入元素
      // 插入第一種寫法
      Node node = new Node(e);
      node.next = prev.next;
      prev.next = node;
      
      // 另外一種寫法
      prev.next = new Node(e, prev.next)
      
  • 3、爲鏈表設立虛擬頭結點
    在這裏插入圖片描述

三、鏈表的遍歷、查詢和修改

四、鏈表的刪除

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章