南航資料結構上機作業2 鍊錶求交,拆分鍊錶

2021-10-07 18:21:17 字數 927 閱讀 9123

執行結果:

結果分析:

從結構==結果上來看,是非常正確的,我們測試的資料中,有pa的第乙個就是交元素的例子,而且也執行正確了。我們來分析該演算法的時間複雜度。我們不妨考慮插入最多的情況,若nm,則b中的元素a中都有,此時插入最多,我們需要將a,b中的資料遍歷一遍,並且每一次判斷都要進行一次插入,需要m/n(取決於m,n大小)次,因此時間複雜度為o(m)或者o(n).

附源程式:

void

common

(li *a,li *b)

else

if(pa->data > pb->data)

//當 pa->data > pb->data時,我們將節點pb向後移動,判斷下乙個節點pb->data和pa->data的關係

pb = pb->next;

else

else}}

if(pa)

//如果a中還有剩餘,我們是不要的,先把pa1指向null;如果b中有剩餘,那麼就不用管了

pa1->next=

null

;while

(pa)

//然後釋放a中剩餘元素

}

結果分析:

執行結果非常正確,無論鍊錶的數量是偶數,還是奇數,都是對的,我們甚至測試了a的節點個數為1,2的特殊情況,發現也是對的。因為我們遍歷了鍊錶a就做完了。因此時間複雜度為o(n)。

附源程式:

li *

splitlist

(li *a)

else

}else

break;}

return b;

}

資料結構上機作業2

資料結構上機作業2 2.2 include using namespace std template class t class list 2.3 template class t 線性表的元素型別為t class arraylist public list 定義順序表arraylist maxsi...

資料結構 2 鍊錶

填補那些模稜兩可的後知後覺 public class linkedlist public node e e public node override public string tostring private node dummyhead 虛擬頭節點 private int size 元素個數 p...

資料結構2 鍊錶

首先來說乙個問題,線性表和鍊錶的區別。線性表是n個資料元素的有限序列,複雜的線性表中,資料元素可以有若干個資料項構成乙個記錄。線性表可以有兩種表示方式,順序表示和鏈式表示。線性表的順序表示是用一組連續的記憶體儲存線性表的資料元素。而線性表的鏈式表示是用隨機的儲存單元來儲存線性表的元素,這種線性表就是...