實驗內容:
(1)建立乙個空的集合;
(2)從陣列元素建立集合;
(3)查詢集合中是否存在元素x;
(4)往集合中增加元素x; (未做)
(5)刪除集合的元素x; (未做)
(6)求兩個集合的並集;
(7)求兩個集合的交集;
(8)輸出集合。
get到的知識點:
1.對於下面這種定義順序表的方式,若主函式中直接定義了乙個set set; 則不再需要malloc動態分配儲存空間,切記!
typedef struct sq_listset;
2.如何將乙個字元陣列作為引數傳到子函式中
void initsetfromarray(set *head, data_type ar, int n);3.語句簡化void main(void);
data_type b = ;
initsetfromarray(&set1, a, 4);
}//這個還需仔細研究研究??????
head->data[head->count] = set2.data[i];演算法設計:head->count++;
//上面兩句話等價於 head->data[head->count++] = set2.data[i];
//先用原值進行計算,然後+1
用線性表來儲存集合,結構體中包含集合的大小、存放集合的陣列。
#includetypedef unsigned int boolean;
#define true 1
#define false 0
typedef char data_type;
#define maxsize 100
typedef struct sq_listset;
void initset(set *head);
void initsetfromarray(set *set, data_type ar, int count);
void showset(set set);
boolean findsetelement(set set, data_type x);
void unionset(set set1, set set2, set *head);
void intersectionset(set set1, set set2, set *head);
//求兩個集合的交集
void intersectionset(set set1, set set2, set *head) }}
//求兩個集合的並集
void unionset(set set1, set set2, set *head)
head->count = set1.count;
for(i = 0; i < set2.count; i++)
} }//查詢集合中是否存在元素x
boolean findsetelement(set set, data_type x)
} return false;
}//顯示集合中的元素
void showset(set set)
printf("\n");
}//初始化乙個集合:將陣列中的值複製到集合中
void initsetfromarray(set *head, data_type ar, int n)
head->count = n;
}//初始化乙個空集合
void initset(set *set)
void main(void);
data_type b = ;
set set1;
set set2;
set set3;
set set4;
initsetfromarray(&set1, a, 4);
printf("第乙個集合中的元素為:");
showset(set1);
initsetfromarray(&set2, b, 6);
printf("第二個集合中的元素為:");
showset(set2);
initset(&set3);
unionset(set1, set2, &set3);
printf("這兩個集合的並集中的元素為:");
showset(set3);
initset(&set4);
intersectionset(set1, set2, &set4);
printf("這兩個集合的交集中的元素為:");
順序表應用(2)
檔名稱 main.cpp,list.cpp,list.h 完成日期 2015年9月18日 版本號 vc 6.0 問題描述 將奇數移到偶數前面並且保證時間複雜度為o n 空間複雜度為o 1 輸入描述 無 程式輸出 移完後的結果 include include define maxsize 50 typ...
順序表應用 2
2 將所在奇數移到所有偶數的前面,要求演算法的時間複雜度為o n 空間複雜度為o 1 list.h define maxsize 50 typedef int elemtype typedef struct sqlist void createlist sqlist l,elemtype a,int...
(C)順序表實現集合運算
1 用陣列a,b,c,e表示集合。假定a b e 輸入陣列a,b,e 全集 輸入資料時要求檢查資料是否重複 集合中的資料要求不重複 要求集合a,b是集合e的子集。2 兩個集合的並運算 把陣列a中各個元素先儲存在陣列c中。將陣列b中的元素逐一與陣列a中的元素進行比較,把不相同的元素新增到陣列c中,陣列...