鍊錶 兩個單鏈表求差集

2021-08-04 10:26:54 字數 769 閱讀 9720

問題描述

已知集合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個鍊錶分別依次...