問題描述:已知有兩個遞增的正整數序列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...