資料結構與演算法 遞增鍊錶的插入

2021-10-10 22:23:51 字數 1040 閱讀 7807

題目描述

給定乙個遞增整數序列和某個整數m,構造出此遞增序列對應的鍊錶,並建立以m為值的新結點插入到鍊錶中,使其結果序列依然保持遞增順序。

輸入每個輸入包含乙個測試用例,第1行包含原序列長度n(任意long int範圍內的正整數)與待插入的整數m;第2行包含n個遞增的整數代表原遞增數列。

輸出根據此遞增數列,構造出此遞增鍊錶,然後將m插入到鍊錶中,輸出插入後的鍊錶對應的數列。數字間隔乙個空格,但末尾不能有空格。

樣例輸入

6 2-10 -3 1 5 9 30

樣例輸出

-10 -3 1 2 5 9 30

本題很忌諱使用兩個指標同時指向同一動態記憶體的做法,如下:

void

insnode

(linklist phead,datatype data)

if(p-

>data > data)

else

}

具體**如下:

#include

#include

typedef

struct nodenode,

*linklist;

//鍊錶初始化

void

initlist

(linklist *p)

(*p)

->next=

null;}

//鍊錶插入(尾插法)

void

cfromback

(linklist p,

int n)

}//在鍊錶中插入資料

linklist function

(linklist p,

int m)

s->next=p-

>next;

p->next=s;

return p;

}//列印鍊錶

void

printlist

(linklist p)

}int

main()

資料結構與演算法 鍊錶

題目 合併兩個已經排序好的鍊錶 非遞迴和遞迴兩種 方法1 cpp view plain copy print color 000000 合併鍊錶.cpp 定義控制台應用程式的入口點。include stdafx.h include using namespace std struct listnod...

資料結構與演算法 鍊錶

在講述鍊錶之前讓我們對資料結構進行乙個簡單的回顧 我們知道,資料結構指的是描述實際問題中各個資料項節點之間的前後邏輯結構關係,即要麼是線性結構 即某一資料項的前繼節點和後繼節點有且只有乙個 要麼是非線性結構 即某一資料節點的前驅或者後繼節點不止乙個 在確定了實際資料項的資料結構之後,我們要採用某種儲...

資料結構與演算法 鍊錶

反轉鍊錶 def reverse head q none p heap while p temp p.next p.next q q pp temp return p判斷鍊錶環 def meetingnode head if not head return slow head fast head.n...