鍊錶的實現

2021-09-27 16:07:39 字數 2467 閱讀 2745

無頭單向非迴圈鍊錶實現

class

linkednode

// public void setnext(linkednode n)

}public

class

linkedlist

//不是空鍊錶,把新的放到開始位置

node.next = head;

this

.head = node;

return;}

//尾插法

public

void

addlast

(int elem)

//非空,先找最後乙個節點

linkednode cur =

this

.head;

while

(cur.next !=null)

cur.next = node;

}//任意位置插入

public

void

addindex

(int index,

int elem)

//2.頭插

if(index ==0)

//3.尾插

if(index == len)

//4.處理中間 prev對應index-1的位置

linkednode prev =

getindexpos

(index -1)

;//5.具體插入

node.next = prev.next;

prev.next = node;

}private linkednode getindexpos

(int index)

return cur;

}public

intsize()

return size;

}//查詢

public

boolean

contains

(int tofind)

}return

false;}

//刪除

public

void

remove

(int toremove)

//2.是否刪除頭節點

if(head.data == toremove)

//3.刪除中間

linkednode prev =

searchprev

(toremove)

; linkednode nodetoremove = prev.next;

prev.next = nodetoremove.next;

}//刪除指定

public

void

removeallkey

(int toremove)

linkednode prev = head;

linkednode cur = head.next;

while

(cur != null)

else}if

(this

.head.data == toremove)

return;}

private linkednode searchprev

(int toremove)

linkednode prev =

this

.head;

while

(prev.next != null)

prev = prev.next;

}return null;

}public

void

display()

} system.out.

println

("]");

}//清空鍊錶

public

void

clear()

}

單元測試

public

class

test

public

static

void

testaddfirst()

public

static

void

testaddlast()

public

static

void

testaddindex()

public

static

void

testcontains()

public

static

void

testremove()

public

static

void

testremoveallkey()

public

static

void

testclear()

}

鍊錶的實現

鍊錶是一種非常重要的資料結構,比起陣列來雖然操作繁瑣,查詢效率也不如陣列效率高,但在進行插入刪除操作時,鍊錶具有陣列無法比擬的效率,下面的 是鍊錶的實現 include include include define n 100 typedef struct node link link node i...

鍊錶的實現

include using namespace std template class linklist node head public linklist t a,int n 0 利用尾插法來構建線性鍊錶 linklist bool isempty 不為空,則返回0,為空則返回非0 t getnod...

鍊錶的實現

記憶體結構 鍊錶也是資料結構的一種,但是和陣列不一樣,陣列在記憶體中每個節點的位置是相連的。而鍊錶的每個節點在物件中是分散的,依靠引用相連。優點1 單鏈表在增加和刪除上要比陣列結構更加快捷。原因 因為順序表在記憶體中是相連的,所以刪除乙個節點,在該節點之後的節點都要隨之前移,所以效率不高。而單鏈表使...