class stunode(val pno:int,val pname:string)
/** * 說明:只是demo用於理解,有很多漏洞,具體根據應用場景解決
*/class singlelinklist
tmp=tmp.next}}
//此時tmp就是尾節點
tmp.next=stunode
} //遍歷
def list():unit=
//tmp就是要遍歷的節點
var tmp=head.next
breakable
}} //更新節點
def modify(stunode:stunode):unit=
var tmp=head.next
var flag:boolean=false//標誌是否找到目標節點
breakable
tmp = tmp.next}}
if(flag)else
} //刪除節點
def del(stunode:stunode):unit=
var tmp=head
var flag=false//標誌是否找到目標節點
breakable
tmp = tmp.next}}
if(flag)else
} //按照no順序新增
def addorderbyno(stunode:stunode):unit=
if (tmp.next.no > stunode.no)
tmp = tmp.next}}
//此時tmp的next就是要新增的位置
stunode.next=tmp.next
tmp.next=stunode
}/*//無順序新增節點
def add(stunode:stunode):unit=
tmp=tmp.next}}
//此時tmp就是尾節點
//處理重複新增問題,避免死迴圈
val tmpnode:stunode=new stunode(stunode.no,stunode.name)
tmp.next=tmpnode
} //更新節點
def modify(stunode:stunode):unit=
var tmp=head.next
var flag:boolean=false//標誌是否找到目標節點
breakable
tmp = tmp.next}}
if(flag)
}*/}
鍊錶 反轉單向鍊錶
思路 從第二個元素開始。1 刪除當前元素。2 把當前元素放到頭結點位置。其中需要宣告3個變數 headnode 頭結點 prenode 前乙個結點 currentnode 當前結點 具體步驟如圖所示 實現 反轉單鏈表方法實現類 created by liujinjin on 17 1 19.publ...
鍊錶1 單向鍊錶
鍊錶中最簡單的一種是單向鍊錶,它包含兩個域,乙個資料域和乙個指標域,指標域指向鍊錶中的下乙個節點,最後乙個節點的指標域指向乙個空值 鍊錶最基本的結構是在每個節點儲存資料和到下乙個節點的位址,在最後乙個節點儲存乙個特殊的結束標記,另外在乙個固定的位置儲存指向第乙個節點的指標,有的時候也會同時儲存指向最...
鍊錶 單向鍊錶
討論單鏈表之前,我們先來討論下面這個問題。順序表存在的一些問題 中間 頭部的插入刪除,時間複雜度為o n 增容需要申請新空間,拷貝資料,釋放舊空間。會有不小的消耗。增容一般是呈2倍的增長,勢必會有一定的空間浪費。例如當前容量為100,滿了以後增容到200,我們再繼續插入了5個資料,後面沒有資料插入了...