DS部落格作業02 線性表

2022-06-04 00:00:17 字數 1935 閱讀 5300

順序表插入:就和陣列相同,先遍歷資料,找到要插入的位置,然後進行資料的後移操作,接著插入資料。時間複雜度o(n)。

**函式:

順序表刪除:遍歷資料,找到位置,進行資料的位移刪除。

重複資料刪除:

區間刪除:

線性表用來儲存資料的一種結構,一般是用於放置一類資料,順序表便於查詢資料,但是所佔的空間大,不確定,且資料的操作較為麻煩。

而鍊錶所佔空間較小,且便於資料的操作。迴圈鍊錶和雙鏈表學過沒用過,不是很清楚。

想要對鍊錶運用自如,真的需要拿**量去填,對碼量的要求大,熟練之後,對鍊錶的運用會很靈活。

打**時,老是會出現位置訪問出現問題,或者是空間問題,對指標的空間申請容易忘記,單個單個申請的和總的申請空間分不清。

忘記為什麼了,只知道做到要死要死的,鍊錶結點老是接錯掉,**執行出來的和自己想象的不一樣。

答案錯誤好像是鍊錶分割後丟失了幾個資料,後來改掉補上了。

分兩次做,第一次有思路,**寫不出來,容易刪除題目不要求的資料。

隔天捋了捋思路,**刪除重寫了一下,過了。

我覺得老師課上講的乙個鍊錶合併的**思路不錯,鍊錶運用很熟悉。

分治法吧,用遞迴一半一半分,知道剩下兩個鍊錶,然後用合併兩鍊錶的方法合併。應該是這樣,沒理解錯的話。

class solution 啥的 看不太懂。

時間複雜度:o(nlogk),合併兩煉表為o(n),n為兩鍊錶總長度,然後總煉表數為k,一共log2k次。

空間複雜度:沒有建立新鍊錶,就只要o(1)。

函式(鍊錶,開頭,結尾)

}這題好像只需要寫出函式,題目也沒有給主函式,.。。。執行不了。

這題就和合併兩鍊錶相似吧,就是這題是多條鍊錶,所以要以兩兩合併,慢慢的全部合併。難的就是函式遞迴的運用要很懂,有點難。

我看到其他的解題思路是全部鍊錶的節點一一比較,這種方法太麻煩,時間複雜度太大。

我覺得應該也可以先合併兩條鍊錶,合併完後在和第三條鍊錶合併,這樣依次下去時間複雜度差不多也就o(kn)左右。

函式遞迴第方法比較不會用,從這題學到了一點點。

運用遞迴演算法,第乙個函式先用遞迴找到每k+1個結點,知道剩餘節點小於k。

然後再用函式遞迴翻轉每k個結點,並且和後繼結點連線。

遞迴演算法,不太會求時間複雜度。空間複雜度:o(1)

這題好像只需要寫出函式,題目也沒有給主函式,.。。。執行不了。

遞迴演算法,很快。將翻轉依次分開完成,並且連線。演算法簡潔,時間空間複雜度都不高。

就是要很懂函式遞迴,有點費腦子。

DS部落格作業02 線性表

方法,還有迴圈鍊錶和雙鏈表的建立,學習了這幾種鍊錶,在今後的使用鍊錶中有了更多的選擇,同時也提高了解部分題目的效率。在順序表這一方面,主要學習的是對順序表的插入和刪除操作,鍊錶也同樣是插入和刪除,再加上擴充套件的一些操作。這兩種線性表各有 其優缺點,在使用時還需要分情況考慮。插入函式listinse...

DS部落格作業02 線性表

這階段學習學的是線性表,學習線性表的兩種儲存順序 鍊錶和順序表,體會了兩者儲存結構之間的區別,通過對順序表,單鏈表,雙鏈表,迴圈鍊錶,有序表的特點的了解,和學習它們的演算法設計方法,綜合運用線性表解決一些問題,在查資料時,也領悟一點單雙鏈表的在一些方面使用的優劣,對線性表的知識更加加深一點。void...

DS部落格作業02 線性表

1.2談談你對線性表的認識及學習體會 1 線性表是一種典型的線性結構,也是一種最常用的資料結構。線性表包括順序儲存結構和來鏈式儲存結構兩種,其中鏈式儲存結構的鍊錶正是上學期學過一點,在運用上的話,原理是懂了,但是運用起來還是 有點欠佳。剛開始做對鍊錶的一些操作方法有點不清楚,還有就是這學期涉及到時間...