template <typename ElemType> typedef struct DulNode { struct DulNode *prior; //前驱指针 ElemType data; //数据 struct DulNode *next; //后继指针 } DulNode, *DuLinkList; //----------------删除操作----------------------------- Status ListDelete_DuL(DuLinkList &L, int i, ElemType &e) { if (!(p = GetElemP_DuL(L, i))) return ERROR; e = p->data; p->prior->next = p->next; p->next->prior = p->prior; free(p); return OK; } //-----------------------插入操作--------------------- Status ListInsert_DuL(DuLinkList &L, int i, ElemType &e) { if (!(p = GetElemP_DuL(L, i))) return ERROR; DuLinkList *s; if (!(s = (DuLinkList)malloc(sizeof(DuLNode)))) return ERROR; s->data = e; s->prior = p->prior; p->prior->next = s; s->next = p; p->prior = s; return OK; }