總結:從上面來看,新增節點 ,刪除節點 都很容易,但是找到節點卻不容易。因為鍊錶是記憶體空間不連續的,我們不能直接查詢到某個節點。需要從頭節點乙個乙個查詢,所以刪除和新增的操作的時間複雜度都為o(n).
package com.mk.coffee.test.datastructure.list;
import lombok.data;
/** * @author makui
* @date 2020/04/02
*/@data
public class list
public list(node node)
//新增首節點
public void addfirst(e data)
//刪除頭結點
public void removefirst()
//刪除節點
public void remove(int index)
//引數校驗
if (index < 0 || index > size)
//遍歷找到要刪除的節點
node next = head;
for (int i = 0; i < index - 1; i++)
//要刪除的節點
node del = next.next;
//前乙個節點的next 直接指向要刪除節點的next
next.next = del.next;
}//新增節點
public void add(int index, e e)
if (index < 0 || index > size)
//記錄新增節點的前乙個節點
node prev = head;
for (int i = 0; i < index - 1; i++)
//前乙個節點的next 指向新的節點,且新的節點元素為e 下乙個節點為前乙個節點的後乙個節點
prev.next = new node(e, prev.next);
size++;
}private class node
public node(e e)
public node(e e, node next)
}//為了方便檢視,只能在最後呼叫
@override
public string tostring()
}return "";
}public static void main(string args)
}
資料結構單鏈表
初學資料結構,貼段自己編寫的單鏈表程式,希望自己能夠一直以強大的學習熱情持續下去!自勉!2012年3月30日 於大連 include using namespace std typedef struct node linklist,node linklist makelist int n void ...
資料結構 單鏈表
今天浪費了好多時間,也許是心裡想著明天的考試吧 可自己也知道這次的考試,自己畢竟過不了了,只好等到今年11月份,想想那時自己已經大三了 還有那麼多時間嗎!很懊惱今天不知怎麼回事,感嘆環境真的可以影響乙個人,真的可以 把今天的學習筆記寫下來,沒有進行好好的整理,這回單鏈表的功能較多,操作比較散,最後乙...
資料結構 單鏈表
實現乙個單鏈表 1 查詢 查詢第index個節點 查詢指定的元素 2 插入 將指定的元素插入到第index個節點上 3 刪除 將第index個節點刪除 規律 刪除和新增元素前務必儲存兩個元素的位址引用資訊 public class mylinkedlist 記錄鍊錶結構的頭結點位址引用 privat...