回覆列表
-
1 # 使用者1062846289535
相關內容
- 設計一個演算法,在一個單鏈表中值為y的結點前插入一個值為x的結點?
- 請編寫在帶頭結點的單鏈表L上刪除其值為奇數的所有元素的演算法?
- 一個帶頭結點的單鏈表,L為連結串列的頭指標,設計算法刪除連結串列中的偶數結點?
- 單鏈表的逆置使用遞迴演算法出現-842150451這個值,請求高手予以解決?
- 設計一個在不帶頭結點的連結串列的第i個元素之前插入一個元素的演算法。求高手,指點?
- 如何用類c語言計算帶頭結點的單鏈表中的節點個數?
- 寫一演算法在帶頭結點的單鏈表結構上實現線性表操作LOCATE(L,X)?
- 有一線性表儲存在一個帶頭結點的迴圈單鏈表L中,寫出計算線性表元素個數的演算法?
- 有一個有序單鏈表(從小到大排序),表頭指標為head,編寫一個函式向該單鏈表中插入一個元素為x的結點,使?
typedef struct ListNode{
ListNode *next;
Element data;
}ListNode, *pList;
這是我做的單鏈表逆序三個不同的演算法,2個遞迴的以及一個非遞迴的
pList ReverseList( pList head ){
if( !head || !(head->next) )
return head;
pList ph = ReverseList( head->next );
head->next->next = head;
head->next = NULL;
return ph;
}
pList ReverseList( pList head , pList &tail ){
if( !head || !(head->next) ){
tail = head;
return head;
}
pList pt;
pList ph = ReverseList( head->next , pt );
pt->next = head;
head->next = NULL;
tail = head;
return ph;
}
pList ReverseListNonRec( pList head ){
if( !head || !(head->next) )
return head;
pList h = NULL,h1 = head;
while( head ){
h1 = head->next;
head->next = h;
h = head;
head = h1;
}
return h;
}