6-2 遞迴程式設計方法練習--遞迴輸出單鏈表 (10 分)
本題要求用遞迴方法編寫遞迴函式實現無頭結點單鏈表的輸出操作函式。l是乙個不帶頭結點的單鏈表,函式void listprint_l_rec(linklist l)要求用遞迴的方法輸出無頭結點之單鏈表中各個元素的值,每個元素的前面都有乙個空格(包括首元素)。遞迴思想可借鑑下述**中煉表建立的遞迴函式。
void listprint_l_rec(linklist l);
其中l
是乙個不帶頭結點的單鏈表。
//庫函式標頭檔案包含
#include#include#include//函式狀態碼定義
#define true 1
#define false 0
#define ok 1
#define error 0
#define infeasible -1
#define overflow -2
typedef int status;
typedef int elemtype; //假設線性表中的元素均為整型
typedef struct lnode
lnode,*linklist;
status listcreate_l_rec(linklist &l,int n)
return ok;
}void listprint_l_rec(linklist l);
int main()
listprint_l_rec (l);
return 0;
}/* 請在這裡填寫答案 */
輸入格式:
第一行輸入乙個整數n,表示單鏈表中元素個數,接下來一行共n個整數,中間用空格隔開。
輸出格式:
遞迴輸出鍊錶的各個元素,每個元素前都有乙個用空格,首元素元素前面也有空格。
4
1 2 3 4
1 2 3 4
題意這麼多,原來是水題..
法一:
void listprint_l_rec(linklist l)
法二:
void listprint_l_rec(linklist l)
return ;
}
單鏈表遞迴
以前覺得遞迴太麻煩,指標方便多了,於是乎單鏈表的題目都是用迭代呀,雙指標呀來做的。這次突破下自己,將單鏈表的遞迴掰扯一下,等下會用乙個簡單的小題目來作為例子 我先講一下平常遞迴的流程,方便待會單鏈表遞迴的理解 題目 輸入乙個數字 n 123,列印出1,2,3 void print n 執行流程圖 鍊...
有序單鏈表的合併 遞迴和非遞迴方法
已知有兩個有序的單鏈表head1和head2。分別使用遞迴方法和非遞迴的方法合併成乙個有序的單鏈表。1 遞迴方法。假設兩個鍊錶 1 3 5 2 4 6.遞迴的步驟如下 1 比較鍊錶一和鍊錶2的第乙個資料節點,由於1 2,因此將結果鍊錶中的表頭節點指向鍊錶1中的第乙個節點,即資料1所在節點。2 對剩餘...
經典演算法 單鏈表反轉的遞迴方法和非遞迴方法
單鏈表反轉有遞迴和非遞迴兩種實現方法,首先定義鍊錶結點 定義乙個鍊錶節點 struct listnode 一 遞迴方法先反轉後面的鍊錶,從最後面的兩個結點開始反轉,依次向前,將後乙個鍊錶結點指向前乙個結點,注意每次反轉後要將原煉表中前乙個結點的指標域置空,表示將原煉表中前乙個結點指向後乙個結點的指向...