Project 1

請設計一個程式findkeys.c,該程式需要找到使用者輸入的relation的keys及superkeys。其中程式的需求如下,使用者輸入一個relation(欄位≤20個),之後再輸入一個正整數n表示要輸入的FD(functional dependency)的數量,緊接著輸入所有的FD,最後輸出該relation中的keys及superkeys分別有哪些?此程式的輸入檔格式如下:

此程式的執行結果可參考如下:

[11:19 user@ws proj1] cat in1
R(ABCD)
2
B->C
B->D
[11:19 user@ws proj1] ./a.out < in1
keys:
{AB}
superkeys:
{ABCD}
{ABC}
{ABD}
[11:19 user@ws proj1] cat in4
R(ABCDEFGH)
6
A->C
D->E
AD->H
BCF->H
BCD->E
BDFG->E
[11:19 user@ws proj1] ./a.out < in4
keys:
{ABDFG}
superkeys:
{ABCDEFGH}
{ABCDEFG}
{ABCDFGH}
{ABDEFGH}
{ABCDFG}
{ABDEFG}
{ABDFGH}