File size: 4,026 Bytes
1fda7a0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
{
  "id": "data_structures",
  "title": "資料結構與演算法",
  "nodes": {
    "1": {
      "id": "1",
      "title": "資料結構基礎",
      "content": "資料結構是電腦科學中儲存和組織資料的特定方式,以便能夠有效地存取和修改資料。好的資料結構可以提高程式的執行效率和程式碼的可維護性。",
      "type": "concept",
      "resources": [
        {
          "type": "documentation",
          "url": "https://www.geeksforgeeks.org/data-structures/"
        }
      ]
    },
    "2": {
      "id": "2",
      "title": "陣列 Array",
      "content": "陣列是最基本的資料結構,由相同型別的元素按順序存儲在連續的記憶體空間中。可以透過索引直接存取元素,具有快速的讀取速度,但大小固定,插入和刪除操作較慢。",
      "type": "concept"
    },
    "3": {
      "id": "3",
      "title": "鏈結串列 Linked List",
      "content": "鏈結串列由一系列節點組成,每個節點包含資料和指向下一個節點的指標。優點是插入和刪除操作快速,大小可動態調整;缺點是無法直接存取元素,需要遍歷查找。",
      "type": "concept"
    },
    "4": {
      "id": "4",
      "title": "堆疊 Stack",
      "content": "堆疊是一種後進先出(LIFO)的資料結構,只能在一端進行插入和刪除操作。主要操作包括推入(push)和彈出(pop)。常用於函數呼叫、運算式求值等場景。",
      "type": "concept"
    },
    "5": {
      "id": "5",
      "title": "佇列 Queue",
      "content": "佇列是一種先進先出(FIFO)的資料結構,在一端插入,另一端刪除。主要操作包括入列(enqueue)和出列(dequeue)。常用於任務排程、資源管理等場景。",
      "type": "concept"
    },
    "6": {
      "id": "6",
      "title": "樹 Tree",
      "content": "樹是一種具有層次關係的資料結構,由節點和邊組成。每個節點可以有多個子節點,但只能有一個父節點。常見的樹結構包括二元樹、搜尋樹等。",
      "type": "concept"
    },
    "7": {
      "id": "7",
      "title": "圖 Graph",
      "content": "圖是由頂點和邊組成的資料結構,用於表示物件之間的關係。可以是有向或無向、加權或非加權。常用於社交網路、地圖導航等應用場景。",
      "type": "concept"
    },
    "8": {
      "id": "8",
      "title": "雜湊表 Hash Table",
      "content": "雜湊表使用雜湊函數將鍵映射到值,提供快速的插入、刪除和查找操作。處理碰撞的方法包括鏈接法和開放定址法。常用於實現字典、快取等。",
      "type": "concept"
    },
    "9": {
      "id": "9",
      "title": "堆積 Heap",
      "content": "堆積是一種特殊的完全二元樹,分為最大堆和最小堆。常用於實現優先佇列,堆積排序等。具有快速查找最大/最小值的特性。",
      "type": "concept"
    },
    "10": {
      "id": "10",
      "title": "時間複雜度",
      "content": "時間複雜度用於衡量演算法執行時間與輸入規模的關係。常見的表示方法有大O符號。不同資料結構的操作具有不同的時間複雜度。",
      "type": "concept"
    }
  },
  "edges": [
    {"source": "1", "target": "2", "type": "basic"},
    {"source": "1", "target": "3", "type": "basic"},
    {"source": "1", "target": "10", "type": "basic"},
    {"source": "2", "target": "4", "type": "related"},
    {"source": "2", "target": "5", "type": "related"},
    {"source": "3", "target": "6", "type": "advanced"},
    {"source": "4", "target": "6", "type": "related"},
    {"source": "5", "target": "9", "type": "advanced"},
    {"source": "6", "target": "7", "type": "advanced"},
    {"source": "6", "target": "9", "type": "related"},
    {"source": "7", "target": "8", "type": "related"},
    {"source": "8", "target": "10", "type": "related"},
    {"source": "9", "target": "10", "type": "related"}
  ]
}