經典面試題 求解集合A與B的差集

2021-06-27 14:39:31 字數 1611 閱讀 3535

【題目】

已知集合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兩種實現。實現的資料結構不同,所以主要的區...