Êý ¾Ý ½á ¹¹ ʵ Ñé ±¨ ¸æ
2011 Äê 4 ÔÂ 13 ÈÕ
Ò».ÏîÄ¿×é³É
¶þ.³ÌÐò½á¹¹Í¼
ÌâĿһ: main InitList_Sq CreateList_SDestroyList_SClearList_SqGetElem_SqListEmpty_S ListLength_SListInsert_Sq
ListDelete_Sq ListTraverse_SLocateElem_SPriorElem_Sq NextElem_Sq
ÌâÄ¿¶þ:
Èý.Ëã·¨¼°Æä¹¦Äܺ¯Êý
ÌâĿһ:
ListDelete_L InitList_L CreateList_L DestroyList_ClearList_L main InitList_Sq(SqList *L) /*´´½¨ÏßÐÔ±í*/
CreateList_Sq(SqList *L) /*ÊäÈëÏßÐÔ±íÖÐÔªËØ */ DestroyList_Sq(SqList *L) /*Ïú»ÙÏßÐÔ±í*/ ClearList_Sq(SqList *L) /*Çå¿ÕÏßÐÔ±í*/ ListEmpty_Sq(SqList L) /*ÅжÏÊÇ·ñΪ¿Õ*/ ListLength_Sq(SqList L) /*ÇóÏßÐÔ±í³¤¶È */
GetElem_Sq(SqList L, int i, ElemType *e) /*È¡µÚi¸öÔªËØ²¢ÓÃe·µ»Ø*/ LocateElem_Sq (SqList L, int e) /*ÅжÏeÔÚ±íÖÐλÖÃ*/ PriorElem_Sq(SqList L,int i, ElemType cur_e, ElemType *pre_e) /*ȡǰÇý*/ NextElem_Sq(SqList L,int i, ElemType cur_e, ElemType *next_e ) /*È¡ºó¼Ì*/ ListInsert_Sq(SqList *L, int i, ElemType e) /*ÔÚµÚi¸öÔªËØÇ°²åÈëe*/ ListDelete_Sq(SqList *L, int i, ElemType *e) /*ɾ³ýµÚi¸öÔªËØ */ ListTraverse_Sq(SqList L,int i) /*±éÀúÏßÐÔ±í*/
ListEmpty_L ListLength_L ListTraverse_GetElem_L LocateElem_PriorElem_L NextElem_L ListInsert_L
ÌâÄ¿¶þ:
InitList_L(LinkList *L) /*´´½¨ÏßÐÔ±í*/
CreateList_L(LinkList *L) /*ÊäÈëÏßÐÔ±íÖÐÔªËØ */ DestroyList_L(LinkList *L) /*Ïú»ÙÏßÐÔ±í*/ ClearList_L(LinkList *L) /*Çå¿ÕÏßÐÔ±í*/ ListEmpty_L(LinkList L) /*ÅжÏÊÇ·ñΪ¿Õ*/ ListLength_L(LinkList L) /*ÇóÏßÐÔ±í³¤¶È */
GetElem_L(LinkList L, int i, ElemType *e) /*È¡µÚi¸öÔªËØ²¢ÓÃe·µ»Ø*/ LocateElem_L (LinkList L, int e) /*ÅжÏeÔÚ±íÖÐλÖÃ*/ PriorElem_L(LinkList L,int i, ElemType cur_e, ElemType *pre_e) /*ȡǰÇý*/ NextElem_L(LinkList L,int i, ElemType cur_e, ElemType *next_e ) /*È¡ºó¼Ì*/ ListInsert_L(LinkList *L, int i, ElemType e) /*ÔÚµÚi¸öÔªËØÇ°²åÈëe*/ ListDelete_L(LinkList *L, int i, ElemType *e) /*ɾ³ýµÚi¸öÔªËØ */ ListTraverse_L(LinkList L,int i) /*±éÀúÏßÐÔ±í*/
ËÄ.Ô´´úÂë
ÌâĿһ:
#include
#define OVERFLOW -2
#define LIST_INIT_SIZE 100 //ÏßÐÔ±í´æ´¢¿Õ¼äµÄ³õʼ·ÖÅäÁ¿ #define LISTINCREMENT 10 //ÏßÐÔ±í¿Õ¼äµÄ·ÖÅäÔöÁ¿ typedef struct{
ElemType *elem; //´æ´¢¿Õ¼ä»ùÖ· int length; //µ±Ç°³¤¶È
int listsize; //µ±Ç°·ÖÅäµÄ´æ´¢ÈÝÁ¿£¨ÒÔsizeof(ElemType)Ϊµ¥Î»£© }SqList;
Status InitList_Sq(SqList *L) { //¹¹ÔìÒ»¸ö¿ÕµÄÏßÐÔ±íL¡£
(*L).elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!(*L).elem) exit(OVERFLOW); //´æ´¢¿Õ¼äʧ°Ü (*L).length=0; //¿Õ±í³¤¶ÈΪ0
(*L).listsize=LIST_INIT_SIZE; //³õʼ´æ´¢ÈÝÁ¿ return OK; } //InitList_Sq
Status CreateList_Sq(SqList *L){ int i,n; printf(\ÇëÊäÈëÏßÐÔ±í³¤¶È\\nn=\ scanf(\ (*L).length=n;
printf(\ÊäÈëÏßÐÔ±íL:\\n\ for(i=0;i Status DestroyList_Sq(SqList *L) { //Ïú»ÙÏßÐÔ±íL¡£ if((*L).elem) free((*L).elem); //ÊÍ·ÅÏßÐÔ±íÕ¼¾ÝµÄËùÓд洢¿Õ¼ä return OK; } //DestroyList_Sq Status ClearList_Sq(SqList *L) { //½«LÖØÖÃΪ¿Õ±í¡£ (*L).length=0; //½«ÏßÐÔ±íµÄ³¤¶ÈÖÃΪ0 return OK; } //ClearList_Sq Status ListEmpty_Sq(SqList L) { //ÏßÐÔ±íÅпա£ if(L.length==0) return TRUE; //ÈôLΪ¿Õ£¬Ôò·µ»ØTURE else return FALSE; //ÈôL²»Îª¿Õ£¬Ôò·µ»ØFALSE } //ListEmpty_Sq Status ListLength_Sq(SqList L) { //·µ»ØÏßÐÔ±íµÄ³¤¶È¡£ return(L.length); } //ListLength_Sq Status GetElem_Sq(SqList L, int i, ElemType *e) { //ÓÃe·µ»ØLÖеĵÚi¸öÊý¾ÝÔªËØµÄÖµ¡£ if(i<1||i>L.length) return ERROR; // iÖµ²»ºÏ·¨