//獲取到單鏈表中的有效節點個數(不包括頭節點)
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...