数据结构代码..docx
文本预览下载声明
数据结构代码P20,例2-1void union (List La, ListLb){La_len= ListLength (La); Lb_len= ListLength (Lb);for (i=1;i= Lb_len;i++){GetElem (Lb,i,e);if(!LocateElem(La,e,equal)) ListInsert(La,++ La_len,e); }}P21,例2-2,将void MergeList(List La,ListLb,List Lc){InitList(Lc);i=j=1;k=0;La_len=ListLength(La);Lb_len=ListLength (Lb);while((i=La_Len)(j=Lb_len)){GetElem(La,i,ai);GetElem(Lb,j,bj);if(ai= bj){ListInsert(Lc,++k, ai);++i;}else {ListInsert(Lc,++k, bj);++j}}while (i=La_len) {GetElem(La, i++, ai);ListInsert(Lc, ++k, ai);}while (j=Lb_len) {GetElem(Lb, i++, bj);ListInsert(Lc, ++k, bj);}} P22,线性表的顺序存储结构#define LIST_INIT_SIZE 100#define LISTINCREMENT 10 typedefstruct{ ElemType *elem; /* 线性表占用的数组空间 */intlength;intlistsize; } SqList;P23,线性表顺序存储结构上的基本运算初始化操作StatusIniList_Sq(SqListL){L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem) exit(OVERFLOW);L.length=0;L.listsize=LIST_INIT_SIZE;return OK;} P24,在顺序表里插入一个元素Status ListInsert_sq(SqList L, inti, ElemType e){if(i1||i=L.length+1) return ERROR;if(L.length=L.listsize){newbase=(ElemType*)realloc(L.elem, (L.listsize+LISTINCREMENT)*sizeof(ElemType));if(!newbase)exit(OVERFLOW);L.elem=newbase;L.listsize+=LISTINCREMENT; } q=(L.elem[i-1]);for(p=(L.elem[L.length-1]));p=q;--p) *(p+1)=*p; *q=e; ++L.length; return OK;} P24,在顺序表里删除一个元素Status ListDelete_Sq(SqList L,inti,ElemType e){if( (i1) || (iL.length) ) return ERROR;p=(L.elem[i-1]);e=*p;q=L.elem+L.length-1;for(++p; p=q; ++p) *(p-1)=*p;--L.length;return OK;}P25,在顺序表里查找一个元素intLocatElem_Sq(SqListL,ElemType e, Status(*compare)(ElemType, ElemType)){i=1;p=L.elem;while (i=L.length !(*compare)(*p++,e)) ++i;if (i=L.length) return i;else return 0;} P26,顺序表的合并voidMergeList_Sq(SqList La, SqListLb, SqList Lc ){pa=La.elem; pb=Lb.elem;Lc.listsize=Lc.length=La.length+Lb.length;pc=Lc.elem=(ElemType*)malloc(Lc.listsize*sizeof(ElemTpe));if (!Lc.elem) exit (OVERFLOW);pa_last=La.elem+La.length-1;pb_last=Lb.elem+Lb.length-1;whi
显示全部