單鏈表的測試
/**
* 單鏈表的使用:
* 單鏈表由節點組成
* @author wgsstart
* @creat 2021-03-04 16:24
*/public
class
test
}
單鏈表的方法
/**
* this代表當前物件的引用。
* 引用:屬性/方法
* 例項成員變數
* 靜態成員變數
* this()
* this.data
* this.func()
* @author wgsstart
* @creat 2021-03-04 17:09
*/class
node
}public
class
mylinkedlist
node.next =
this
.head;
this
.head = node;
}//列印單鏈表
public
void
display()
}//尾插法
public
void
addlast
(int data)
node cur =
this
.head;
while
(cur.next!=null )
cur.next = node;
}//查詢是否包含關鍵字key是否在單鏈表當中
public
boolean
contains
(int key)
cur = cur.next;
}return
false;}
//得到單鏈表的長度
public
intsize()
return count;
}//任意位置插入,第乙個資料節點為0號下標
public
void
addindex
(int index,
int data)
if(index ==
this
.size()
)//先找到 index位置的前乙個節點的位址
node cur =
searchindex
(index)
;//進行插入
node node =
newnode
(data)
; node.next = cur.next;
cur.next = node;
}private node searchindex
(int index)
node cur =
this
.head;
//index-1
while
(index-1!=
0)return cur;
}private node searchprev
(int key)
else
}return null;
}//刪除第一次出現關鍵字為key的節點
public
void
remove
(int key)if(
this
.head.data == key)
node prev =
searchprev
(key)
;//來找當前key的前驅
if(prev == null)
node del = prev.next;
prev.next = del.next;
}//刪除所有值為key的節點
public
void
removeallkey
(int key)
else}if
(this
.head.data == key)
}public
void
clear()
}
單鏈表的查詢方法
單鏈表查詢操作,按序號查詢和按值查詢 先尾插法建立乙個空鍊錶 include includetypedef int elem typedef struct lnode lnode,list list creat list l 需要熟練 r next null return l 接下來按序號查詢 vo...
反轉單鏈表的方法
方法1 將單鏈表儲存為陣列,然後按照陣列的索引逆序進行反轉。比較浪費空間 時間複雜度 o n 空間複雜度 o n actlist reverselist2 actlist head head p 最後q必然指向null,所以返回了p作為新的頭指標 return head 複製 方法3 從第2個節點到...
單鏈表和雙鏈表
單鏈表 單鏈表只有乙個指向下一結點的指標,也就是只能next 雙鏈表 雙鏈表除了有乙個指向下一結點的指標外,還有乙個指向前一結點的指標,可以通過prev 快速找到前一結點,顧名思義,單鏈表只能單向讀取 為什麼市場上單鏈表的使用多餘雙鏈表呢?從儲存結構來看,每個雙鏈表的節點要比單鏈表的節點多乙個指標,...