#include " ../include.h " typedef struct DuLNode ... { ElemType e; struct DuLNode *prior; struct DuLNode *next;} DuLNode, * DuLinkList;Status InitList(DuLinkList * l) ... { *l = (DuLinkList)malloc(sizeof(DuLNode)); if(!*l) ...{ exit(OVERFLOW); } (*l)->prior = *l; (*l)->next = *l; return OK;} Status DestoryList(DuLinkList * l) ... { DuLNode *p = (*l)->next; DuLNode *next; while(p != *l) ...{ next = p->next; free(p); p = next; } free(*l); return OK;} Status ListInsert(DuLinkList l,ElemType e, int i) ... { DuLNode *p = l; int j = -1; while(p->next != l && j < i - 1) ...{ p = p->next; j++; } if(j != i - 1) ...{ return INFEASIBLE; } DuLNode *q = (DuLNode *)malloc(sizeof(DuLNode)); if(!q) ...{ exit(OVERFLOW); } q->e = e; q->next = p->next; q->prior = p; q->next->prior = q; p->next = q; return OK;} Status ListDelete(DuLinkList l,ElemType * e, int i) ... { DuLNode *p = l; int j = -1; while(p->next != l && j < i - 1) ...{ p = p->next; j++; } if(j != i - 1) ...{ return INFEASIBLE; } DuLNode *q = p->next; *e = q->e; p->next = q->next; q->next->prior = p; free(q); return OK;} int Locate(DuLinkList l,ElemType e) ... { DuLNode *p = l->next; int j = 0; while(p != l) ...{ if(p->e == e) ...{ return j; } p = p->next; j++; } return INFEASIBLE;} void Print(DuLinkList l) ... { DuLNode *p = l->next; while(p != l) ...{ printf("%d ",p->e); p = p->next; } printf(" ");} int main() ... { DuLinkList l; printf("Init list..."); InitList(&l); printf("initialed. "); printf("Insert elements: 10 34 28 76 30 7 50 71 "); ListInsert(l,10,0); ListInsert(l,34,1); ListInsert(l,28,2); ListInsert(l,76,3); ListInsert(l,71,4); ListInsert(l,50,4); ListInsert(l,7,4); ListInsert(l,30,4); printf("Result: "); Print(l); printf("Locate elements: 71 10 76 "); printf("%d ",Locate(l,71)); printf("%d ",Locate(l,10)); printf("%d ",Locate(l,76)); printf("Delete elements: 10 28 7 71 "); ElemType e; ListDelete(l,&e,7); ListDelete(l,&e,5); ListDelete(l,&e,2); ListDelete(l,&e,0); printf("Result: "); Print(l); printf("DestoryList..."); DestoryList(&l); printf("destoried. ");}