部落格作業2 線性表

2022-05-29 14:24:07 字數 1634 閱讀 7928

定義 i控制迴圈,count計數在區間內的數字個數

for i=0 to last {

如果數字在mind到maxd內count++

否則 第i-count個數換成第i個數

last修改為last-count

返回l

定義乙個p指標指向l頭節點

遍歷l 計數個數n

如果m>0

for i=1 to n-m+1

i增1l左移

x=l的資料data 直到指到第n-m+1個數字為止(倒數第m個)

如果m<=0 x=-1

返回x

主函式:

輸入a陣列 b陣列

輸出合併後的s3陣列

尾插法建立鍊錶s1存a s2存b

合併函式:

a指向s1的第乙個數字 b指向s2的第乙個數字

為s3申請新的結點

r指向s3的頭節點

while遍歷a和b(其中乙個結束即停止)

若a指向的數字大於b指向的數字

r指向b的指向的結點

b右移若a指向的數字小於b指向的數字

r指向a指向的結點

a右移

若a等於b指向的數字

r指向a的結點

a b同時右移

若a沒遍歷完 則接下來a後的所有結點接上r

若b沒遍歷完 則接下來b後的所有結點接上r

r->next=null

輸出s3

非常不滿意的學習,感覺自己在逃避學習,剛剛開始做題,做不出來就不想做了,自己在逃避這些事,感覺是非常不好的狀態,覺得心態應該調整過來,不去解決永遠都不會,解決得少解決得多都會有進步,積少成多。

單鏈表 雙鏈表 迴圈鍊錶,雙鏈表感覺比較靈活,有前驅和後置結點,迴圈鍊錶的話知道尾結點就可以知道頭節點(單鏈表),然後還有覺得有兩種建鍊錶的方法很方便,頭插尾插,可以根據需要選擇。單鏈表和雙鏈表,迴圈鍊錶的選擇也要根據需要來,對於不同問題用不同型別的鍊錶解決時間複雜度和空間複雜度都有所不同,如果選擇的合適,可以大大節省空間也提高速度。

部落格作業2 線性表

定義變數n存放順序表長度,i,j 0控制迴圈,l 1存放子列長度,k,m,max存放最大子列長度,flag存放最長子列陣列下標,sum 0求和 scanf d n int a n 存放母列 b 100000 存放子列長度 for i 0 to n 輸入母列 end for for i 1 to n ...

部落格作業2 線性表

定義整型變數i作為迴圈變數,j用來儲存所刪除節點的個數 for i小於順序表長度時執行迴圈 if 順序表中第i個數大於mind且小於maxd j 否則l data i j l data i 本題第一次提交時用了while迴圈語句,結果編譯器判定是段錯誤,後來改為for迴圈時提交答案正確。void c...

部落格作業2 線性表

for i 0 to length 1 if j大於等於i length為k 剛開始把重新賦值的 放在了第二個for裡面。linklist p l 用p代替l while p next不為0 if m為0或者大於n 不存在返回 1 while j小於n m 1且p不為0 if p為0 返回 1 否則...