問題描述
已知集合a和b的元素分別用不含頭結點的單鏈表儲存,函式difference()用於求解集合a與b的差集,並將結果儲存在集合a的單鏈表中。例如,若集合a=,集合b=,完成計算後a=。
鍊錶結點的結構型別定義如下:
struct node
;
請完成函式void difference(node** la , node* lb);
分析問題
注:此題中沒有規定兩個鍊錶是遞增的
void difference(node** la, node* lb)
//跳出迴圈,找到或者pb為空
if (pb)//找到相同的
else
//刪除節點
del = pa;
pa = pa->_next;
delete del;
}else
}}
變形,求兩個遞增鍊錶的差集void incressdifference(node** la, node* lb)
else
if (pa->_value < pb->_value)
else
else
del = pa;
delete pa;
pa = pa->_next; }}
}
兩個單鏈表生成相加鍊錶
題目 假設鍊錶中每乙個節點的值都在0 9之間,那麼鍊錶整體就可以代表乙個整數。例如9 3 7,代表937.給定兩個這種鍊錶的頭節點head1和head2,請生成代表兩個整數相加值的結果鍊錶。例如 9 3 7和6 3,相加結果為1 0 0 0 兩個單鏈表生成相加鍊錶 方法1 利用棧結構求解 publi...
兩個單鏈表生成相加鍊錶
題目 假設鍊錶中每乙個節點的值都在0 9之間,那麼鍊錶整體就可以代表乙個整數。例如 9 3 7,可以代表整數937.給定兩個兩個這種鍊錶的頭結點head1和head2,請生成代表兩個整數相加值的結果鍊錶。例如 鍊錶1為9 3 7,鍊錶2為6 3,最後生成新的結果鍊錶為1 0 0 0。public c...
兩個單鏈表生成相加鍊錶
題目 兩個鍊錶生成相加鍊錶 程式設計師 面試指南 第21題 p66 難度 士 本題依舊有2種解法。不過首先說明一下,如果採用將鍊錶轉成系統中int型別的數的方法,當鍊錶過長時,int型別會溢位。我一開始就採用了這個方法,上來直接就0 20用例通過。然後書上第1種解法是採用棧的結構,將2個鍊錶分別依次...