本題要求編寫函式實現帶頭結點的單鏈線性表的就地逆置操作函式。l是乙個帶頭結點的單鏈表,函式listreverse_l(linklist &l
)要求在不新開闢節點的前提下將單鏈表中的元素進行逆置,如原單鏈表元素依次為1,2,3,4,則逆置後為4,3,2,1。
函式介面定義:
void
listreverse_l
(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
(linklist &l,
int n)
return ok;
}void
listreverse_l
(linklist &l)
;void
listprint_l
(linklist &l)
}int
main()
listreverse_l
(l);
listprint_l
(l);
return0;
}/* 請在這裡填寫答案 */
輸入格式:
第一行輸入乙個整數n,表示單鏈表中元素個數,接下來一行共n個整數,中間用空格隔開。
輸出格式:
輸出逆置後順序表的各個元素,兩個元素之間用空格隔開,最後乙個元素後面沒有空格。
輸入樣例:
4
1 2 3 4
輸出樣例:4 3 2 1
思路:
題解1:
void
listreverse_l
(linklist &l)
}
題解2://思路: 先利用陣列將元素取出來然後再反序插入
#define n 100
void
listreverse_l
(linklist &l)
int j=i-1;
for(p = l-
>next; p; p = p-
>next,
--j)
}
帶頭結點的單鏈表就地逆置
本題要求編寫函式實現帶頭結點的單鏈線性表的就地逆置操作函式。l是乙個帶頭結點的單鏈表,函式listreverse l linklist l 要求在不新開闢節點的前提下將單鏈表中的元素進行逆置,如原單鏈表元素依次為1,2,3,4,則逆置後為4,3,2,1。void listreverse l link...
帶頭結點的單鏈表就地逆置
6 1 帶頭結點的單鏈表就地逆置 10 分 本題要求編寫函式實現帶頭結點的單鏈線性表的就地逆置操作函式。l是乙個帶頭結點的單鏈表,函式listreverse l linklist l 要求在不新開闢節點的前提下將單鏈表中的元素進行逆置,如原單鏈表元素依次為1,2,3,4,則逆置後為4,3,2,1。v...
帶頭結點的單鏈表就地逆置
本題要求實現乙個函式,對帶有頭結點的單鏈表進行就地逆置。函式介面定義 void reverse linklist l l是帶頭結點的單鏈表的頭指標。裁判測試程式樣例 include include typedef int elemtype typedef struct lnode lnode,lin...