list reverse( list l );
其中list
結構定義如下:
typedef struct node *ptrtonode;
struct node ;
typedef ptrtonode list; /* 定義單鏈表型別 */
l
是給定單鏈表,函式reverse
要返回被逆轉後的鍊錶。
#include #include typedef int elementtype;
typedef struct node *ptrtonode;
struct node ;
typedef ptrtonode list;
list read(); /* 細節在此不表 */
void print( list l ); /* 細節在此不表 */
list reverse( list l );
int main()
/* 你的**將被嵌在這裡 */
5
1 3 4 5 2
1
2 5 4 3 1
唔,我覺得我的函式肯定是不夠好的,我把read函式也自己實現了一遍,為了除錯用;一開始看題目覺得有點奇怪啊,為什麼print(l1)就只剩下1了,因為後面的節點都移到前面去了,然而又沒有修改l1,所以l1只剩下乙個元素了;然後reverse這個函式,肯定有多種寫法的,自己寫的很不優雅!甚至說**寫的很難看,用while或許會更好點,最重要的就是兩步:
step1: delete: p->next = q->next;
step2: insert: q->next = l; l=q;
#include #include typedef int elementtype;
typedef struct node *ptrtonode;
struct node ;
typedef ptrtonode list; //like the head
list read(); /* 細節在此不表 */
void print( list l ); /* 細節在此不表 */
list reverse( list l );
list read()else
num--;
}return l1;
}void print(list l)
list reverse( list l )else
break;
}return l;
} // i should check how others do this, in a more elegant coding way;
int main()
PTA6 1單鏈表逆轉
list reverse list l 其中list結構定義如下 typedef struct node ptrtonode struct node typedef ptrtonode list 定義單鏈表型別 l是給定單鏈表,函式reverse要返回被逆轉後的鍊錶。include include ...
PTA 6 1 求單鏈表最大值
6 1 求單鏈表最大值 6分 本題要求實現乙個函式,返回帶頭結點的單鏈表中最大元素的位址。函式介面定義 linklist maxp linklist l l是帶頭結點的單鏈表的頭指標,函式maxp返回表中最大元素的位址。如果單鏈表為空,返回空指標。其中linklist結構定義如下 typedef s...
單鏈表的逆序輸出 PTA6 1 單鏈表逆轉 為例
include include typedef int elementtype typedef struct node ptrtonode struct node typedef ptrtonode list list read 細節在此不表 void print list l 細節在此不表 lis...