第三 四周練習 1 3遞增的整數序列鍊錶的插入

2021-10-09 13:25:48 字數 1247 閱讀 8271

本題要求實現乙個函式,在遞增的整數序列鍊錶(帶頭結點)中插入乙個新整數,並保持該序列的有序性。

list insert

( list l, elementtype x )

;

其中list結構定義如下:

typedef

struct node *ptrtonode;

struct node

;typedef ptrtonode list;

/* 定義單鏈表型別 */

l是給定的帶頭結點的單鏈表,其結點儲存的資料是遞增有序的;函式insert要將x插入l,並保持該序列的有序性,返回插入後的煉表頭指標。

#include

#include

typedef

int elementtype;

typedef

struct node *ptrtonode;

struct node

;typedef ptrtonode list;

list read()

;/* 細節在此不表 */

void

print

( list l )

;/* 細節在此不表 */

list insert

( list l, elementtype x )

;int

main()

/* 你的**將被嵌在這裡 */

512

4563

123

456

解題思路:

向有序鍊錶中插入x,使煉表中資料仍保持遞增有序

–>申請結構體p將x先儲存

–>關鍵是比較x與鍊錶中資料的大小關係

–> 分三種情況

–> 1.鍊錶只有乙個元素,直接將x接在鍊錶末尾

–> 2.鍊錶非空,用迴圈依次比較鍊錶中資料與x的大小關係,找到小於x與大於x的臨界

–> 3.鍊錶非空,但鍊錶中元素都比x小,則將x接入鍊錶末尾

list insert

( list l, elementtype x )

return l;

}else

if(q==

null

)else

}return l;

}

第三 四周練習 1 2鍊錶逆置

本題要求實現乙個函式,將給定單向鍊錶逆置,即表頭置為表尾,表尾置為表頭。鍊錶結點定義如下 struct listnode struct listnode reverse struct listnode head 其中head是使用者傳入的鍊錶的頭指標 函式reverse將鍊錶head逆置,並返回結果...

遞增的整數序列鍊錶的插入

遞增的整數序列鍊錶的插入 本題要求實現乙個函式,在遞增的整數序列鍊錶 帶頭結點 中插入乙個新整數,並保持該序列的有序性。函式介面定義 list insert list l,elementtype x 其中list結構定義如下 typedef struct node ptrtonode struct ...

遞增的整數序列鍊錶的插入

本題要求實現乙個函式,在遞增的整數序列鍊錶 帶頭結點 中插入乙個新整數,並保持該序列的有序性。函式介面定義 list insert list l,elementtype x 其中list結構定義如下 typedef struct node ptrtonode struct node typedef ...