Data Structures 06 單鏈表面試題

2021-10-02 08:49:38 字數 2458 閱讀 3762

//獲取到單鏈表中的有效節點個數(不包括頭節點)

public

static

intgetlength

(heronode head)

int length =0;

heronode cur = head.next;

while

(cur!=null)

return length;

}

//獲取到單鏈表中的有效節點個數

public

static

intgetlength

(heronode head)

int length =0;

heronode cur = head.next;

while

(cur!=null)

return length;

}//查詢單鏈表中的倒數第k個節點

/*** @param head 頭節點

* @param index 倒數第index個節點

* @return

*/public

static heronode findlastindexnode

(heronode head,

int index)

//第一次遍歷得到鍊錶的長度

int size =

getlength

(head)

;//第二次遍歷size-index位置,就是倒數第index個節點

if(index<=

0|| index>size)

heronode cur = head.next;

for(

int i=

0;i)return cur;

}

//單鏈表的反轉

public

static

void

reversetlist

(heronode head)

heronode cur = head.next;

heronode next = null;

//指向當前節點cur的下乙個節點

heronode reversehead =

newheronode(0

,"",""

);while

(cur!=null)

//將head.next指向reversehead.next

head.next = reversehead.next;

}

//從尾到頭列印單鏈表

public

static

void

reverseprint

(heronode head)

stack

stack =

newstack

<

>()

; heronode cur = head.next;

while

(cur!=null)

while

(stack.

size()

>0)

}

節點實體類:

class

heronode

@override

public string tostring()

';}}

建立乙個單鏈錶類:提供增刪改查方法

class

singlelinkedlist

//新增節點到單向鍊錶(增)

public

void

add(heronode heronode)

//如果沒有找到節點最後,就讓temp後移

temp = temp.next;

}//當退出while迴圈時,temp就指向了鍊錶的最後

//將最後這個節點的next指向新的節點

temp.next = heronode;

}//顯示鍊錶(查)

public

void

show()

heronode temp = head.next;

while

(true

)//輸出節點資訊

system.out.

println

(temp)

; temp = temp.next;}}

}

public

class

singlelinkedlistdemo

Data Structures(一)順序表

線性表 在資料元素的非空有限集合中,除第乙個元素無直接前驅 最後乙個元素無直接後繼,集合中其餘每個資料元素都有唯一直接前驅唯一直接後繼。線性表有順序儲存結構和鏈式儲存結構兩種儲存方式。含有大量型別相同記錄的線性表稱為檔案或資料物件。但是乙個線性表中的資料元素必須屬於同乙個資料物件。因此線性表中相鄰元...

Data Structures 資料結構基礎

用計算機解決乙個具體問題時,一般要經過下列幾個步驟 首先要從具體問題抽象出乙個適當的數學模型,然後設計乙個解此數學模型的演算法,最後編出程式 進行測試 調整直至得到最終解答。尋求數學模型的實質是分析問題 從中提取操作的物件,並找出這些操作物件之間含有的關係,這實際上就是分析資料結構。資料結構是研究非...

Data Structures 尋找第k大

對於bst,無壓力的可以,所以無需贅言,請見 1 program bst kthfind input,output 2 type point node 3 node record4 data,leftsum,rightsum longint 5 left,right point 6 end 7 va...