順序表這種在標準庫已經實現好了,直接調用 pushback pushfront 這些
o(1)表示不額外開辟空間
src為value繼續走,下一個不是value,src值給dst空間,dst++,dst剛好等于2,就是新數組長度。
若從前向后兩個數組元素依次比大小? 小的放在num1前面,這樣num1元素會被覆蓋,這種方法行不通,所以從后往前,L1和L2比大小,誰大放L3,L2--,L3--,L2<0了就停止。
另一種情況:
出了循環也沒排好序,就把num2剩下數據依次放入num1.
L1 L2不會同時小于零,L2小于0不需要處理所以只需處理一種情況
移動N個數據那么空間復雜度就是N
鏈表和火車非常像
數組里不能說刪除一個空間剩下的都不刪,沒這種說法,火車中可以把A車廂拿掉,就可以讓X 和D連接在一起
鏈表節點看成車廂,每個節點都可以獨立申請,就可以解決順序表中增容造成空間浪費問題
NOde :節點
多創建一個指針,后期就不會更改原指針
鏈表前面的節點也是通過一次一次插入,所以最初是情況下我們有個鏈表但是鏈表是空鏈表,頭指針就是空,phead是NULL,不能解引用,代碼會報錯
讓phead不指向NULL,指向新節點,此時鏈表就變成了只有一個結點的鏈表
形參變了實參沒變說明我這里傳的是值,需要傳地址
不能說傳指針就是傳地址
pphead不能是NULL這樣不能解引用*pphead可以是NULL(第一個節點地址是空,是空鏈表)所以要斷言
將*pphead指針指向newnode就是新的頭
若鏈表為空也行
尾刪也要用二級指針,前面插入的新節點可能是頭節點,影響到PPhead,頭節點刪了pphead就成空了,也會影響到我的實參所以用二級指針
釋放掉ptail還要讓前一個指向的變NULL不然是野指針
prtail和prev都釋放掉之后,就不能讓prev的NEXT指針指向NULL
如果當前鏈表只有一個節點,那我就直接把這個節點釋放掉,不需要找尾節點以及我們的前驅節點?
再尾刪就報錯為假說明鏈表為空