順序表 差並交集的實現

2021-10-02 22:22:40 字數 1435 閱讀 1124

首先建乙個線性表

#include

using

namespace std;

#define list_int_size 100

//初始分配量

#define list_increment 10

//分配增量

typedef

int elemtype;

//元素資料型別

typedef

struct

sqlist;

//初始化線性表

intinitlist_sq

(sqlist &l)

//插入

intlistinsert_sq

(sqlist &l,

int i, elemtype e)

elemtype *p,

*q; q =

&(l.elem[i-1]

);//插入位置

for(p=

&(l.elem[l.lenth-1]

); p>=q; p--

)*q = e;

l.lenth++

;return1;

}//輸出

void

displist

(sqlist &l)

cout<}//差集

void

diffence

(sqlist a,sqlist b,sqlist &c)

c.lenth=k;

//修改集合長度

}//交

void

intersection

(sqlist a,sqlist b,sqlist &c)

c.lenth=k;

//修改集合長度

}//並

void

union

(sqlist a,sqlist b,sqlist &c)

c.lenth=k;

//修改集合長度

}

差集:

a–>23 33 2 5 17 15 16 9

b–>33 5 16 28 9 10

遍歷一遍a鍊錶,i指向a中每乙個數時,j遍歷一遍b鍊錶,若遍歷中與i指的數相等,則結束,此時 j < b.lenth,i繼續指向下乙個數

否則完成一遍遍歷j = b.lenth,說明i指向的數b中沒有,此時,把a.elem[i]放進c鍊錶中。

交集:與上述思路差不多,j < b.lenth說明b中有與a中數相同的,放進c中

並集:把a中所有元素放進c中,

剩下遍歷方法和上同,改為遍歷b,遍歷a完後找不到b裡面的元素,即

j = a.lenth,則把b.elem[i]放進c裡面

總結:j = b.lenth時,i指向的數只有a中有,不同

j < b.lenth時,i只想的書a,b中都有,相同

順序表的交集 並集 差集

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

用順序表求集合的交集 並集和差集

使用順序表時,需要定義乙個陣列來儲存順序表中的所有元素和定義乙個整型變數來儲存順序表的長度。假定陣列用data maxsize 表示,長度整型變數用length表示,並採用結構體型別表示,元素型別採用通用型別識別符號elemtype,則順序表的儲存結構定義如下 define maxsize 50 t...

交集並集差集

1 內連線 select from student a inner join sc b on a.sno b.sno 左連線 select from student a left join sc b on a.sno b.sno 差集 select sno from student except s...