【題目】
已知集合a和b的元素分別用不含頭結點的單鏈表儲存,函式difference()用於求解集合a與b的差集,並將結果儲存在集合a的單鏈表中。
例如,若集合a=,集合b=,完成計算後a=。
結構體:
struct listnode;
請完成函式void difference(listnode** la , listnode* lb)
------迅雷校招
【**一】
#include #include #include using namespace std;
struct listnode;
// 輸出集合
void display(listnode* root)
}// 求兩個集合的差集儲存在la中
void difference(listnode** la,listnode* lb)
listnode *pa,*pb,*pre,*node;
pa = *la;
pre = null;
bool isdelete;
// 遍歷la
while(pa)//if
else
break;
}//if
pb = pb->next;
}//while
// 如果有刪除pa跳到pa->next
if(!isdelete)
}//while
}int main();
int arrayb = ;
listnode* node;
// 集合a
listnode *la = (listnode*)malloc(sizeof(listnode));
la->val = 5;
la->next = null;
listnode *p = la;
for(int i = 1;i < 6;i++)
// 集合b
listnode *lb = (listnode*)malloc(sizeof(listnode));
lb->val = 5;
lb->next = null;
p = lb;
for(int i = 1;i < 4;i++)
// 求ab差集
difference(&la,lb);
// 輸出ab差集
display(la);
}
【**二】
// 求兩個集合的差集儲存在la中
void difference(listnode** la,listnode* lb)
listnode *pa,*pb,*pre,*node;
pa = *la;
pre = null;
// 遍歷la
while(pa)//while
// pb中沒有與之相同元素
if(pb == null)
// 有相同元素
else
else//if
}//if
}//while
}
求解集合A和集合B的差集
題目 已知集合a和b的元素分別用不含頭結點的單鏈表儲存,函式difference 用於求解集合a與b的差集,並將結果儲存在集合a的單鏈表中。例如,若集合a 集合b 完成計算後a 演算法思想 取出集合a中每乙個元素,與集合b中對比,找到即可刪除此節點,否則保留。prev實現刪除節點後的連線 當prev...
經典的c 面試題
1.介紹一下stl,詳細說明stl如何實現vector。answer stl 標準模版庫,standard template library.它由容器演算法迭代器組成。stl有以下的一些優點 可以方便容易地實現搜尋資料或對資料排序等一系列的演算法 除錯程式時更加安全和方便 即使是人們用stl在uni...
Java集合的面試題
分兩大類,map和collection。而collection又有子介面list 資料儲存順序和插入順序是一樣的 set 裡面的元素具有唯一性 map是儲存鍵值對的,裡面的健不可以重複,但值可以重複 對於list主要有arraylist和linkedlist兩種實現。實現的資料結構不同,所以主要的區...