#ifndef _LIST_H #define _LIST_H #include #include #include #include #include typedef int ElemType; typedef struct list { ElemType data; struct list * next; }LNode; typedef LNode * List; void InitList (List * L); void DestroyList (List * L); bool AddElem (List * L, ElemType e); // Add an element, length +1 bool ListEmpty (List * L); int ListLength (List * L); ElemType GetElem (List * L, int i); // Get ith element int LocateElem (List * L, ElemType e); // return element e's position, if not found, return 0 ElemType PriorElem (List * L, ElemType e); // return precedent element of e ElemType NextElem (List * L, ElemType e); // return element after e bool InsertElem (List * L, ElemType e, int i); // insert Elem at i bool DeleteElem (List * L, int i); // delete ith element void TraverseList (List * L); // traverse all list void OperateMenu (void); // show Menu to user #endif