單向鍊錶demo

2021-09-29 15:16:15 字數 1295 閱讀 4033

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個資料,後面沒有資料插入了...