(1)用陣列a,b,c,e表示集合。假定a=,
b=, e=,
輸入陣列a,b,e(全集),輸入資料時要求檢查資料是否重複(集合中的資料要求不重複),要求集合a,b是集合e的子集。
(2)兩個集合的並運算:把陣列a中各個元素先儲存在陣列c中。將陣列b中的元素逐一與陣列a中的元素進行比較,把不相同的元素新增到陣列c中,陣列c便是集合a和集合b的並。
c語言演算法(線性表順序結構實現):
[cpp]view plain
copy
/**求集合的並集的函式**/
void
union_sq(sqlist la,sqlist lb,sqlist &lc)
}
(3)兩個集合的交運算:把陣列a中元素逐一與陣列b中的元素進行比較,將相同的元素放在陣列c中,陣列c便是集合a和集合b的交。
c語言演算法(線性表順序結構實現):
[cpp]view plain
copy
/**求集合的交集的函式**/
void
mix_sq(sqlist la,sqlist lb,sqlist &lc)
}
(4)兩個集合的差運算:將陣列a中的元素逐一與陣列b中的元素進行比較,把陣列a與陣列b不同的元素儲存在陣列c中,陣列c便是集合a和集合b的差a-b。
c語言演算法(線性表順序結構實現):
[cpp]view plain
copy
/**求集合的差集函式**/
void
differ_sq(sqlist la,sqlist lb,sqlist &lc)
}
(5)集合的補運算:將陣列e中的元素逐一與陣列a中的元素進行比較,把不相同的元素儲存到陣列c中,陣列c便是集合a關於集合e的補集。
求補集是一種特殊的集合差運算。
c語言演算法(線性表順序結構實現):
[cpp]view plain
copy
/**求集合的補集函式**/
void
comple_sq(sqlist la,sqlist lb,sqlist &lc,sqlist &ld)
}
二.源程式如下:
[cpp]view plain
copy
#include
#include
#define list_init_size 100 //初始表空間大小
#define listincrement 10 //表長增量
/**順序表的定義**/
typedef
struct
sqlist;
sqlist la,lb,lc,ld; /**定義全域性變數**/
/**構造乙個空的線性表l**/
int initlist_sq(sqlist &l)
/**該函式的時間複雜度為o(n)**/
/**在順序表的邏輯為i的位置插入新元素e的函式**/
int listinsert_sq(sqlist &l,int
i,int e)
q = &(l.elem[i - 1]); //q為插入位置
for(p = &(l.elem[l.length - 1]); p >= q; --p)
*(p + 1) = *p; //插入位置及之後的元素往右移
*q = e; //插入e
++l.length; //表長加1
return
0;
} /**建立乙個線性表,即輸入資料,根據集合定義:集合中的元素不能相等建立**/
void
createlist_sq(sqlist &l)
else
inlist = false;
if(!inlist && ch !=
'\n'
) listinsert_sq(l,l.length+1,ch);
} }
/**判斷兩元素是否相等,若相等則返回true;否則返回false**/
int equal(int a,int b)
/**在順序線性表l中查詢第1個與e滿足compare()的元素位序,若找到,則返回其在l中的位序,否則返回0**/
intlocateelem_sq(sqlist l,char e,int(* compare)(int,int))
//該函式的時間複雜度為o(n)
/*銷毀線性表的函式*/
int clear_sq(sqlist &l)
/**列印順序表函式**/
void
print_sq(sqlist l)
/**求集合的並集的函式**/
void
union_sq(sqlist la,sqlist lb,sqlist &lc)
} /**求集合的交集的函式**/
void
mix_sq(sqlist la,sqlist lb,sqlist &lc)
} /**求集合的差集函式**/
void
differ_sq(sqlist la,sqlist lb,sqlist &lc)
} /**求集合的補集函式**/
void
comple_sq(sqlist la,sqlist lb,sqlist &lc,sqlist &ld)
}
實現順序表以及順序表的簡單運算
自定義標頭檔案 my list.h define crt secure no warnings ifndef my list h define my list h 檔案功能 實現線性表的基本運算 1 順序表的插入預算 2 順序表中元素的逆序 3 順序表的刪除運算 define max size 10...
實驗2 順序表的應用(集合運算)
實驗內容 1 建立乙個空的集合 2 從陣列元素建立集合 3 查詢集合中是否存在元素x 4 往集合中增加元素x 未做 5 刪除集合的元素x 未做 6 求兩個集合的並集 7 求兩個集合的交集 8 輸出集合。get到的知識點 1.對於下面這種定義順序表的方式,若主函式中直接定義了乙個set set 則不再...
順序表(C 實現)
順序表是基本的資料結構,建立seqlist類,主要包括類的預設成員函式 建構函式 析構函式 賦值運算子過載 順序表的基本功能實現。順序表 typedef int datatype class seqlist seqlist 析構函式 深拷貝 seqlist const seqlist s 拷貝建構函...