struct Content { string id; string name; double number; };typedef struct LNode { Content data; struct LNode *next; } LNode, *LinkList; string head_1, head_2, head_3;int length;Status InitList_L(LinkList &L) { L = new LNode; L->next = NULL; return OK;}Status GetElem_L(LinkList L, int i, Content &e) { int j; LinkList p; p = L->next; j = 1; while (j < i && p) { p = p->next; ++j; } if (!p || j > i) return ERROR; e = p->data; return OK;}LNode *LocateElem_L(LinkList L, int e) { LinkList p; p = L->next; while (p && p->data.number != e) p = p->next; return p; } Status ListInsert_L(LinkList &L, int i, Content &e) { int j; LinkList p, s; p = L; j = 0; while (p && j < i - 1) { p = p->next; ++j; } if (!p || j > i - 1) return ERROR; s = new LNode; s->data = e; s->next = p->next; p->next = s; ++length; return OK;} Status ListDelete_L(LinkList &L, int i) { LinkList p, q; int j; p = L; j = 0; while ((p->next) && (j < i - 1)) { p = p->next; ++j; } if (!(p->next) || (j > i - 1)) return ERROR; q = p->next; p->next = q->next; delete q; --length; return OK;} //ListDelete_L