四、算法設計題(本大題共2小題,每小題7分,共14分)
34.設單鏈表及鏈棧S的結構定義如下:
typedef struct node
{ Data Type data;
struct node*next;
。齦inkstack;
編寫一個算法void ReverseList(1inkstack *head),借助于棧S將帶頭結點單鏈表head中序號為奇數(shù)的結點逆置,序號為偶數(shù)的結點保持不變。(例如:單鏈表的邏輯結構為(a1,a2,a3,a4,a5,a6),逆置后變?yōu)?a5,a2,a3,a4,a1,a6))。
說明:棧的初始化運算用InitStack(S);進棧運算用Push(S,x);判?者\算用EmptyStack(S);出棧運算用Pop(S);取棧頂元素運算用Gettop(S)。
35.以二叉鏈表作為存儲結構,試編寫遞歸算法實現(xiàn)求二叉樹中葉子結點個數(shù)。