執行結果:
結果分析:
從結構==結果上來看,是非常正確的,我們測試的資料中,有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個資料元素的有限序列,複雜的線性表中,資料元素可以有若干個資料項構成乙個記錄。線性表可以有兩種表示方式,順序表示和鏈式表示。線性表的順序表示是用一組連續的記憶體儲存線性表的資料元素。而線性表的鏈式表示是用隨機的儲存單元來儲存線性表的元素,這種線性表就是...