迴圈鍊錶及其各種操作

2021-08-19 17:46:17 字數 1721 閱讀 1174

什麼是迴圈鍊錶:

將單鏈表中終端結點的指標端由空指標改為指向頭結點,就使整個鍊錶形成乙個環,這種頭尾相接的單鏈表成為單迴圈鍊錶,簡稱迴圈鍊錶(circular linked list)。

迴圈鍊錶的各種操作與單鏈表的相似,只是要注意迴圈鍊錶的尾結點是指向頭結點的

class testclink

class entry

public

entry(int data)

}//頭插法,與單鏈表的頭插法相似,

public

void

inserthead(int val)

//尾插法

public

void

insertrail(int val)

entry.next=cur.next;

cur.next=entry;

}//刪除乙個val

public

void

delete(int val)

slow.next=fast.next;

}//刪除全部的val

public

void

deleteall(int val)

else}}

//得到鍊錶的長度

public

void

getlength()

system.out.println("單鏈表長度為"+i);

}//判斷鍊錶是否為空

public boolean isempty()

return

false;

}//列印迴圈鍊錶

public

void

show()}}

public

class test1

t1.insertrail(5);

t1.insertrail(5);

t1.show();

system.out.println("====刪除第乙個5*****");

t1.delete(5);

t1.show();

t1.getlength();

system.out.println("====刪除全部5*****");

t1.deleteall(5);

t1.show();

// todo auto-generated method stub}}

執行結果:

cur.data= 0

cur.data= 1

cur.data= 2

cur.data= 3

cur.data= 4

cur.data= 5

cur.data= 5

====刪除第乙個5*****

cur.data= 0

cur.data= 1

cur.data= 2

cur.data= 3

cur.data= 4

cur.data= 5

單鏈表長度為6

====刪除全部5*****

cur.data= 0

cur.data= 1

cur.data= 2

cur.data= 3

cur.data= 4

雙向鍊錶及其各種操作

什麼是雙向鍊錶 我們都知道單向鍊錶中的每乙個節點有且只有乙個指標,這個指標就是用來指向下乙個節點的,單向鍊錶顧名思義就是鍊錶方向是單方向的,而本文要介紹的雙向鍊錶就是鍊錶方向是雙方向的,也就是雙向鍊錶中的每乙個節點有兩個指標,乙個指標用來指向上乙個節點 前驅 另乙個指標用指向下乙個節點 後繼 雙向鍊...

C C語言實現的鍊錶及其各種鍊錶操作

include includetypedef struct lnode lnode,linklist lnode 結構體型別,linklist 結構體指標 typedef enum bool lnode 等價於 linklist 頭插法 linklist creatlist1 linklist l ...

鍊錶的各種操作

鍊錶的各種操作 typedef struct lnode lnode linklist 建立乙個鏈式表 向表中加入資料 status listset linklist head p2 next null return ok 返回鏈式表的長度 int listlength linklist head ...