帶頭結點的單鏈表就地逆置

2021-10-09 20:21:00 字數 1592 閱讀 1123

本題要求編寫函式實現帶頭結點的單鏈線性表的就地逆置操作函式。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...