鍊錶與雙向鍊錶
一、特點
1)陣列列表
缺點 :新增很慢
優點:查詢快、元素是整塊出現的
大小是可變的
可以刪除
2)鍊錶:
優點:新增很快 刪除
缺點:查詢慢、元素是零散出現的陣列列表
鍊錶是乙個乙個的結點相連線,需要定義結點,是鏈式的資料結構。
二、鍊錶實現
1)定義乙個結點
public class node
2)測試功能
public class test
de();
root.next = add_node;
add_node.data = data;
size++;
}
// 在末尾增加乙個節點的資料
public void add(node root, object data)
node add_node = new no
// 在指定位置增加乙個節點
public boolean add(node root, object data, int index)
for (int i = 1; i < index - 1; i++)
node tmp = root.next;
node add_node1 = new node();
root.next = add_node1;
add_node1.data = data;
add_node1.next = tmp;
size++;
return true;
}
// 遍歷輸出鍊錶
public node println(node root)
return root;
}
// 刪除指定位置的資料
public object delete(node root, int index) else
root.next = root.next.next;
return temp.data;}
}
// 主函式
public static void main(string args)
}
三、執行結果
四。雙向鍊錶的實現
1.定義節點
public class double_node
}
2.功能實現
public class double_linkimplements myarraylist else
size++;
}
//指定位置增加節點
public boolean add(int index, e e) else
// 長度
size++;
return true;
}}
//刪除某個節點
public boolean remove( int index) else
size--;
return true;}
}
//更新某個節點的資料
public boolean update(int index, e newe)
}
//獲取各結點的資料
public e get(int index)
return node.data;
}//獲取鍊錶長度
public int size()
//獲取鍊錶資料
public double_nodegetnode(double_node head, int index)
return node;
}}
3.主函式呼叫
public class manager {
public static void main(string args) {
double_linknewnode = new double_link();
newnode.add("a");
newnode.add("b");
newnode.add("c");
newnode.add("d");
newnode.add("e");
newnode.add("f");
newnode.add("g");
for(int i=0;i
執行結果
迴圈鍊錶與雙向鍊錶
迴圈鍊錶 最後節點的next指標不指向null,直接改為指向首節點就行。迴圈列表不需要頭節點 include include includetypedef struct student lstudent,lpstudent void initlink lpstudent phead ptr next...
雙向鍊錶(鍊錶)
雙向鍊錶 每個節點包含指向後繼節點的指標和指向前驅節點的指標。繼承關係圖 實體圖 duallinklist.h duallinklist 雙向鍊錶類模板 成員變數 node 節點實體 m header 頭節點 m length 鍊錶長度 m step 步進長度 m current 當前節點前乙個節點...
mysql 雙向鍊錶 雙向鍊錶
雙向鍊錶是鍊錶變型,相比於單鏈表導航或者是向前和向後的兩種方式。以下是重要的術語來理解雙向鍊錶的概念 link 鍊錶的每個鏈路儲存資料稱為乙個元素。linkedlist linkedlist包含連線鏈結到名為首先第乙個鏈結,並稱為最後的最後乙個鏈結 last 雙向鍊錶表示 按照如上圖中所示,以下是要...