ÏßÐÔ±íµÄ»ù±¾²Ù×÷

Êý ¾Ý ½á ¹¹ ʵ Ñé ±¨ ¸æ

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 #include typedef int ElemType; typedef int Status; #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0

#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Öµ²»ºÏ·¨

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)