.销毁线性表L void DestroyList(SQ LIsT*L) if(L->item)fre(L->item);/释放线性表占据的所有存 储空间 3.清空线性表L void Clearlist(sQ list"l L->length=0; ∥/将线性表的长度置为0 西顺大学教学与信息学院
2. 䫔↕㒓ᗻ㸼L void DestroyList(SQ_LIST *L) { if (L->item) free(L->item); //䞞ᬒ㒓ᗻ㸼ऴⱘ᠔᳝ᄬ ぎ䯈ټ } 3. ⏙ぎ㒓ᗻ㸼L void ClearList(SQ_LIST *L) { L->length=0; //ᇚ㒓ᗻ㸼ⱘ䭓ᑺ㕂Ў0 }
4.求线性表L的长度 int GetLength(SQ LIST L) return(Llength) 5.判断线性表L是否为空 int Is Empty(sQ LIST'L) if (L length==0) return TRUE; d se return falses 西顺大学教学与信息学院
4. ∖㒓ᗻ㸼Lⱘ䭓ᑺ int GetLength(SQ_LIST L) { return (L.length); } 5. ߸ᮁ㒓ᗻ㸼Lᰃ৺Ўぎ int IsEmpty(SQ_LIST L) { if (L.length==0) return TRUE; else return FALSE; }
6.获取线性表L中的某个数据元素的内容 int GetElem(sQ List l,int i, Entry Type *e) if(l> Llength) return ERROR;∥判断i值是否合 理,若不合理,返回 ERROR e= L item i-1l;数组中第i1的单元存储着线性表中 第i个数据元素的内容 return OKs 西顺大学教学与信息学院
6. 㦋প㒓ᗻ㸼LЁⱘᶤϾ᭄ܗ㋴ⱘݙᆍ int GetElem(SQ_LIST L,int i,EntryType *e) { if (i<1||i>L.length) return ERROR; //߸ᮁiؐᰃ৺ড় ⧚ˈ㢹ϡড়⧚ˈ䖨ಲERROR *e=L.item[i-1]; //᭄㒘Ёi-1ⱘऩܗᄬټⴔ㒓ᗻ㸼Ё iϾ᭄ܗ㋴ⱘݙᆍ return OK; }
7.在线性表L中检索值为e的数据元素 int LocateElem(sQ list l, Entry Type e) for(i=0; i< Llength; i ++) if(L item==e)return i+1 return O 西顺大学教学与信息学院
7. 㒓ᗻ㸼LЁẔ㋶ؐЎeⱘ᭄ܗ㋴ int LocateELem(SQ_LIST L,EntryType e) { for (i=0;i< L.length;i++) if (L.item[i]==e) return i+1; return 0; }
8.在线性表L中第个数据元素之前插入数据元素e int ListInsert(SQ LIst L,int i, Entry Type e) if (L->length=LIST MAX LENGTH) return ERROR ∥检查是否有剩余空间 if (k<ipL->length+l)return ERROR ∥枪查i 值是否合理 for(j=L小> length-1>=-计+)/)将线性表第个元素之 后的所有元素向后移动 L, ->item j+1=L-item; L>iem[il=e;∥将新元素的内容放入线性表的第i 个位置, L->lengthy return OK 西顺大学教学与信息学院
8. 㒓ᗻ㸼LЁiϾ᭄ܗ㋴Пࠡᦦ᭄ܹܗ㋴e int ListInsert(SQ_LIST *L,int i,EntryType e) { if (L->length==LIST_MAX_LENGTH) return ERROR; //Ẕᶹᰃ৺᳝࠽ԭぎ䯈 if (i<1||i>L->length+1) return ERROR; //Ẕᶹi ؐᰃ৺ড়⧚ for (j=L->length-1;j>=i-1;i++) //ᇚ㒓ᗻ㸼iϾܗ㋴П ࡼ鼠ৢ㋴ܗ᳝ⱘ᠔ৢ L.->item[j+1]=L->item[j]; L->item[i-1]=e; //ᇚᮄܗ㋴ⱘݙᆍᬒܹ㒓ᗻ㸼ⱘi Ͼԡ㕂ˈ L->length++; return OK; }