1、源代码:#includestdlib.h#define OK 1#define TRUE 1#define FALSE 0#define ERROR 0#define OVERFLOW -2#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef int Status;typedef int ElemType;typedef struct/存储表示 ElemType *elem; int length; int listsize;SqList;/基本操作的函数声明Status InitList_Sq(SqList & L);Status
2、 ListInsert_Sq(SqList &L,int i,ElemType e);Status equal(ElemType a,ElemType b);Status GetElem_Sq(SqList L,int i,ElemType &e);int ListLength_Sq(SqList L);void Unoin(SqList& La,SqList Lb);void cha(SqList &La,SqList &Lb);int LocateElem_Sq(SqList L,ElemType e,Status(*compare)(ElemType,ElemType);/基本操作的算法
3、实现 L) L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType); if(!L.elem) exit(OVERFLOW); L.length=0; L.listsize=LIST_INIT_SIZE; return OK;L,int i,ElemType e) ElemType *newbase,*p,*q; if(iL.length+1) return ERROR; if(L.length=L.listsize) newbase=(ElemType *)realloc(L.elem,(L.listsize+LISTINCREMEN
4、T)*sizeof(ElemType); if(!newbase) exit(OVERFLOW); L.elem=newbase; L.listsize+=LISTINCREMENT; q=&(L.elemi-1); for(p=&(L.elemL.length-1);p=q;-p) *(p+1)=*p; *q=e; +L.length;Status ListDelete_Sq(SqList &L,int i,ElemType &e) ElemType *p,* q; if(iL.length) p=& e=*p; q=L.elem+L.length-1; for(+p;p+p) *(p-1)
5、=*p; -L.length;Lb) int la_len,lb_len,i,e; la_len=ListLength_Sq(La); lb_len=ListLength_Sq(Lb); for(i=1;i=lb_len;i+) GetElem_Sq(Lb,i,e); if(LocateElem_Sq(La,e,equal) ListDelete_Sq(La,LocateElem_Sq(La,e,equal),e);Status equal(ElemType a,ElemType b) if(a=b) return TRUE; else return FALSE;L.length) e=*(L
6、.elem+i-1); int ListLength_Sq(SqList L) return L.length; La,SqList Lb)LocateElem_Sq(La,e,equal) ListInsert_Sq(La,+la_len,e);int LocateElem_Sq(SqList L,ElemType e,Status(*compare)(ElemType,ElemType) int i=1;ElemType *p; p=L.elem; while(i=L.length&!(*compare)(*p+,e) +i;=L.length) return i; else return
7、 0;void main() int m,n,i; ElemType e; SqList L1,L2; InitList_Sq(L1); InitList_Sq(L2); coutm;请输入L2表的长度n;请输入me; ListInsert_Sq(L1,i,e);n个元素到L2表中=n; ListInsert_Sq(L2,i,e);L1表的内容=ListLength_Sq(L1); GetElem_Sq(L1,i,e); coutetL2表的内容=ListLength_Sq(L2); GetElem_Sq(L2,i,e);输出L1和L2的合并后 Unoin(L1,L2);输出L1和L2的差后 cha(L1,L2);运行结果:12
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1