資料結構與演算法 4 合併線性表及合併有序表

2021-10-23 01:52:49 字數 828 閱讀 5446

status list_union

(sqlisrptr la, sqlisrptr lb)}}

return status;

}

不破壞原鍊錶演算法:依次掃瞄la和lb中的元素,比較當前元素的值,將較小的元素插入到lc中。如此反覆,直到乙個線性表掃瞄完畢,然後將未完成的線性表餘下的元素逐個插入到lc表尾。

status list_merge

(sqlistptr la, sqlistptr lb, sqlistptr lc)

else

k++;}

while

(i < n)

while

(j < m)

return status;

}

破壞原鍊錶演算法:快速簡單粗暴,pc指向la的頭結點,pa和pb分別指向la和lb的第乙個元素,比較pa->elem和pb->elem,取較小的元素的指標作為pc的next,並移動到下乙個位置。直到pa或pb指向null,將pc指向另乙個未完成的鍊錶。

void

list_merge

(sqlistptr la, sqlistptr lb, sqlistptr lc)

else

if(pa->elem > pb->elem)

else

} pc->next = pa ? pa : pb;

free

(*lb)

;*lc =

*la;

}

資料結構之C 實現合併線性表

歸併兩個線性表 已知線性表la和lb中的資料元素按值非遞減排列 歸併la和lb得到的新線性表lc,lc的資料元素也按值非遞減排列 void mergelist sqlist la,sqlist lb,sqlist lc else while i la len while j lb len c 內部沒...

資料結構 演算法及線性表總結

1.演算法是對特定的問題求解步驟的一種描述。演算法描述有自然語言 流程圖 偽 重點掌握 2.通過時間複雜度和空間複雜度來評定乙個演算法的優劣。3.特性 有窮性 確定性 可行性 輸入 輸出。1.線性表分為順序表和煉表。2.順序儲存結構的特點在邏輯上相鄰 物理位置相鄰 可實現隨機儲存 快速訪問 3.鏈式...

資料結構 演算法及線性表總結

2.空間複雜度分析 與臨時變數所佔空間有關。3.遞迴演算法時間與空間複雜度 都應該寫出遞推式,通過求解遞推式來獲得時間複雜度和空間複雜度。1.順序表 有隨機訪問特性,但其演算法時間主要花費在刪除和插入元素時元素移動上。2.鍊錶 不需要移動元素,沒有隨機訪問特性,演算法時間主要花費在遍歷元素上。1.一...