計導作業 鍊錶 差集與交集

2021-09-07 06:13:46 字數 2319 閱讀 7002

問題描述:已知有兩個遞增的正整數序列a和b,序列中元素個數未知,同一序列中不會有重複元素出現,有可能某個序列為空。你的任務是求這兩個序列的差集a-b與交集a+b。a-b就是僅由在a中出現而不在b中出現的元素所構成的集合,設為c1;a+b就是既在a中出現也在b中出現的元素所構成的集合,設為c2。

要求:

建立四個單鏈表,分別為a、b、c1、c2,並使用a、b這兩個鍊錶儲存兩個正整數序列,然後將集合a-b中的元素儲存在鍊錶c1中,將集合a+b中的元素儲存在鍊錶c2中。正整數序列的輸入是按照遞增順序輸入的,用-1作為結束標誌,注意-1不算這個正整數序列中的元素(不要統計-1)。在程式結束前要釋放鍊錶a、b、c1、c2中的所有節點。

輸入與輸出要求:依次輸入兩個遞增的正整數序列a和b,序列元素的個數未知,但以輸入「-1」結束,每個正整數序列佔一行。輸出鍊錶c1中的元素,佔一行;然後是鍊錶c2中的元素,佔一行。每行的每個元素後有乙個空格,注意最後乙個元素後只有換行符,如果某個鍊錶為空則,則輸出「there is no item in xx list.」。

程式執行效果:

sample 1:

please input the elements of list a:1 2 3 4 5 6 7 -1

please input the elements of list b:2 3 6 -1

輸出

the list c1:1 4 5 7

the list c2:2 3 6

sample 2:

please input the elements of list a:-1

please input the elements of list b:-1

輸出

there is no item in c1 list.

there is no item in c2 list.

又是單鏈表,把乙個節點插入到另乙個煉表裡都要重新申請過空間。因為作業要求注釋,所以我寫注釋寫得好~詳細啊。

/*

天啦嚕,今天去歡樂谷玩得好嗨啊

晚上回來做上機題時,總覺得自己在過山車上失重著,這感覺好持久啊 →_→

*/#include

typedef

struct

list

list;

list *a,*b,*c1,*c2,*p,*heada,*headb,*headc1,*headc2,*p1,*p2,*tmp,*tp,*mp;

intmain()

}if(a!=null)//

a可能為空

a->next=null;

//讀list b

printf("

please input the element of list b:");

while(~scanf("

%d",&a)&&a!=-1

)

}if(b!=null)b->next=null;

//開始構建c1

p1=heada;

p2=headb;

while(p1!=null&&p2!=null)

else

if(p1->v==p2->v)

else

if(p1->v>p2->v)

//listb考慮下乙個元素

p2=p2->next;

}//把list a剩餘的元素(不可能與list b衝突了)都插入c1

while(p1!=null)

if(c1!=null)c1->next=null;

//開始構建c2

p1=heada;

p2=headb;

while(p1!=null&&p2!=null)

else

if(p1->v>p2->v)

p2=p2->next;

}if(c2!=null)c2->next=null;

//開始輸出,一邊釋放c1、c2的記憶體

if(headc1==null)printf("

there is no item in c1 list.");

else

}if(headc2==null)printf("

\nthere is no item in c2 list.");

else

}//釋放lista和listb的記憶體

while(heada!=null)

while(headb!=null)

return0;

}

計導作業 鍊錶 成績統計2

問題描述 定義乙個學生資訊結構,包括姓名 學號和總成績。從鍵盤上輸入若干學生的資訊,學生個數未知,當輸入的姓名為 時表示輸入結束 學生的總成績為整數,範圍是0 1600,不會出現非法輸入。你的任務是分別統計出1400分以上同學的具體資訊與人數。學生的姓名中只能包含大小寫字母與空格字元,不會超過20個...

順序表的交集 並集 差集

using namespace std define maxsize 20 define true 1 define false 0 typedef bool status status是函式的型別,其值是函式結果狀態 typedef char elemtype elemtype型別根據實際情況而定...

mysql的交集與差集

在論壇看到的乙個問題這裡總結下 create tableconsume idvarchar 11 not null,tidvarchar 11 not null collate utf8 general ci engine myisam insert intoconsume id,tid value...