#includeusing namespace std;
typedef class student
*list,lists;
void reverse_list(list l,int k); //k 代表反轉幾個節點
void printlist(list l) ;//遞迴列印
void insert_list(list l,int e);//插入
void creat(list &l);
void dg_reverse(list l,list &temp,list head);//帶頭節點的單鏈表的反轉遞迴 l為
int main()
printlist(l);
cout<>k;
reverse_list(l,k);
printlist(l);*/
list temp,head=l;
dg_reverse(l,temp,head);
printlist(l);
coutl=s;}}
void insert_list(list l,int e)//插入
list s=new lists;
s->next=l->next;
s->scores=e;
l->next=s;
}void printlist(list l) //遞迴列印
else
}void reverse_list(list l,int k) //k 代表反轉幾個節點 (非遞迴)
pre_news->next=temp;
l->next=news; //關鍵點
}void dg_reverse(list l,list &temp,list head)//帶頭節點的單鏈表的反轉遞迴 l為
if(l->next!=null)
else
}}
單鏈表反轉(遞迴和非遞迴)
單鏈表反轉有遞迴和非遞迴兩種演算法。下面定義節點 cpp view plain copy typedef struct listnodelistnode 在遞迴演算法中的做法是 1找到最後乙個節點和倒數第二個節點,把最後乙個節點設為頭節點的後繼 2反轉這兩個節點 3倒數第三個和第四個節點重複執行步驟...
單鏈表反轉(遞迴和非遞迴)
單鏈表反轉有遞迴和非遞迴兩種演算法。下面定義節點 typedef struct listnodelistnode 在遞迴演算法中的做法是 1找到最後乙個節點和倒數第二個節點,把最後乙個節點設為頭節點的後繼 2反轉這兩個節點 3倒數第三個和第四個節點重複執行步驟2 其中注意,鍊錶是以節點後繼為null...
單鏈表反轉遞迴與非遞迴演算法
1.如下 1 include 2 include 3 4using namespace std 56 struct node 715 16 17 node createlist int elem,int length 1825 return p 26 27 28void destroylist no...