资源描述:
《集合地并交差运算大数据结构课程设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、标准文案集合的并交差运算数据结构课程设计#include<string.h>#include<stdio.h>#include<malloc.h>#include<stdlib.h>#defineOK1#defineERROR0#defineTRUE1#defineFALSE0#defineINFEASIBLE-1#defineOVERFLOW-2#defineNULL0#defineLIST_INIT_SIZE100#defineLISTINCREMENT10大全标准文案typede
2、fintStatus;typedefcharElemType;typedefstruct{ElemType*elem;intlength;intlistsize;}SqList;StatusInitList(SqList&l){l.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!l.elem)exit(OVERFLOW);l.length=0;l.listsize=LIST_INIT_SIZE;returnOK;大全标准文案}intListLength(
3、SqListl){return(l.length);}StatusListInsert_Sq(SqList&L,inti,ElemTypee){//在顺序表L的第i个位置前插入元素e,i的合法值为1..L.length+1if(i<1
4、
5、i>L.length+1)returnERROR;if(L.length>=L.listsize){ElemType*newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType))
6、;if(!newbase)exit(OVERFLOW);L.elem=newbase;大全标准文案L.listsize+=LISTINCREMENT;}ElemType*q=&L.elem[i-1],*p=&L.elem[L.length-1];while(p>=q){*(p+1)=*p;--p;}//插入位置后的元素右移*q=e;++L.length;returnOK;}StatusCreatSqList(SqList&l,ElemTypea[],intn){intlen=ListLength(l);
7、大全标准文案for(inti=0;i<n;i++){if(a[i]>='a'&&a[i]<='z')ListInsert_Sq(l,++len,a[i]);}returnOK;}StatusGetElem(SqListL,inti,ElemType&e){if(i<=0
8、
9、i>L.length)returnERROR;elsee=*(L.elem+i-1);returnOK;}大全标准文案Statusequal(ElemTypee1,ElemTyp
10、ee2){if(e1==e2)returnTRUE;elsereturnFALSE;}intLocateElem_Sq(SqListL,ElemTypee,Status(*compare)(ElemType,ElemType)){ElemType*p=L.elem;//p指向第一个元素大全标准文案inti=1;//i始终为p所指向元素的位序while(i<=L.length&&!(*compare)(*p++,e))++i;if(i<=L.length)return(i);elsereturn0;}Sta
11、tusListDelete(SqList&L,inti,ElemType&e){大全标准文案//在顺序表L中删除第i个元素,用e返回其值.if(i<1
12、
13、i>L.length)returnERROR;//删除位置不合理ElemType*p=&L.elem[i-1],*q=L.elem+L.length-1;e=*p;while(p<q){*p=*(p+1);++p;}//删除位置后的元素左移--L.length;returnOK;}voidUnion(SqList&La,SqList
14、Lb)大全标准文案{//将所有在线性表Lb中而不在La中的元素插入Laintla_len,lb_len;ElemTypee;la_len=ListLength(La);lb_len=ListLength(Lb);for(inti=1;