單鏈表相關習題

2021-10-24 02:22:32 字數 1628 閱讀 6290

設定乙個臨時變數來當作計數器。然後對整個鍊錶進行遍歷來數出有效節點的個數。

public

intgetlength()

length ++

; temp = temp.next;

}return length;

}

也可以直接使用whil來判斷進行條件。
public

intgetlength()

return length;

}

解決這個問題的思路為

1.通過獲得整個鍊錶的節點數size

2.然後減去要找的第k個節點

3.得到需要將鍊錶遍歷的次數

4.然後使用乙個temp節點來儲存遍歷後的目的節點

5.最後將temp返回。

//從頭節點的next開始

public student findlastindexnode

(int num)

if(num > size || num <=0)

for(

int i =

0; i < size - num; i++

)return temp;

}

// 從頭節點開始

public student findlastindexnode

(int num)

if(num > size || num <=0)

for(

int i =

0; i < size - num +

1; i++

)return temp;

}

1.首先建立乙個反轉的頭節點

2.然後再定義乙個臨時系欸但來幫助我們遍歷原來的鍊錶

3.每遍歷乙個節點,就取出乙個節點插入到反轉頭節點的後面

4.最後將反轉頭節點的next賦給原來的head的next域

public

void

revrese()

student temp = head.next;

student next = null;

student reverselist =

newstudent(""

,0);

while

(temp != null)

head.next = reverselist.next;

}

這裡我們使用棧的特性,先進後廚的原則來遍歷鍊錶。
public

void

reverseprint()

stack

studentstack =

newstack

(); student temp = head.next;

while

(temp != null)

while

(studentstack.

size()

>0)

}

單鏈表相關操作練習題

鍊錶結點結構如下 class node override public string tostring public node next 計算鍊錶的長度。列印出煉表中倒數第k個結點內容。把鍊錶倒轉或者逆序。鍊錶倒序列印但不改變鍊錶的結構 按照鍊錶中的資料大小順序合併兩個鍊錶 public class...

單鏈表相關演算法

include include using namespace std typedef int elemtype typedef struct node nodetype nodetype create s next null return head void dis nodetype head w...

單鏈表相關操作

這是自己寫的最長的一次 了 在機房敲了一天。以前一直用list來水鍊錶的題 這次終於體會到痛苦了 include include include include include include using namespace std typedef struct node 單鏈表 s,list vo...