設定乙個臨時變數來當作計數器。然後對整個鍊錶進行遍歷來數出有效節點的個數。
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...