Status ListPrintf(LinkList &L);
Status ListFind(LinkList &L, int &i, ElemType e); Status ListLength(LinkList &L); Status ListPankong(LinkList &L); Status ListPaixv(LinkList &L); Status ListNizhi(LinkList &L); Status ListChuchong(LinkList &L);
void ListJiaoji(LinkList &LA, LinkList &LB); void ListBingji(LinkList &LA, LinkList &LB); void ListChaji(LinkList &LA, LinkList &LB);
/* 初始化线性链表给头结点开辟内存并给空值 */ Status ListInit(LinkList &L)
{ L = (LinkList)malloc(sizeof(LNode)); if (L == NULL) { printf(\开辟头结点失败\); return ERROR;
}
L->next = NULL; return OK;
}
/* 在线性链表中第i个元素前插入元素e 成功返回ok */ Status ListInsert(LinkList &L, int i,ElemType e) { LinkList p; int j = 0; p = L;
while (p&&j < i - 1) { p = p->next; j++; }
- 9 -
//
}
if (!p || j>i - 1) return ERROR;
LinkList s = (LinkList)malloc(sizeof(LNode)); s->data = e; s->next = p->next; p->next = s; return OK;
/* 逆序创建输入长度为n的线性链表 */ Status CreateList_ni(LinkList &L, int n) { }
/* 顺序创建输入长度为n的线性链表 */ Status CreateList_shun(LinkList &L, int n) {
ListInit(L); LinkList q; q = L;
for (int ls = 0; ls < n; ls++) {
q->next = (LinkList)malloc(sizeof(LNode)); ListInit(L);
for (int ls = 1; ls <= n; ls++) { }
return OK;
ElemType e;
printf(\请输入第%d个元素:\,ls); scanf_s(\,&e); ListInsert(L,1,e);
- 10 -
q = q->next; q->x = ls + 1;
printf(\
printf(\请输入第%d个元素:\,ls+1); scanf_s(\,&q->data);
// // }
}
q->next = NULL; return OK;
/* 顺序创建输入长度为n的循环线性链表 */ Status CreateXHList_shun(LinkList &L, int n) { }
/* 删除指定第i个节点并用e返回其值 */
Status ListDelete(LinkList &L, int i, ElemType &e)
- 11 -
ListInit(L); LinkList q; q = L;
for (int ls = 0; ls < n; ls++) { }
q->next = L->next; return OK;
q->next = (LinkList)malloc(sizeof(LNode)); q = q->next; q->x = ls+1;
printf(\请输入第%d个人的密码:\, ls + 1); scanf_s(\, &q->data);
{ }
/* 打印线性链表 */
Status ListPrintf(LinkList &L) { }
/* 若线性链表为空则返回ERROR,否则通过对线性链表中遍历比对线性链表中是否有该元素,找到返回OK,没找到返回ERROR */
- 12 -
if (!L){ printf(\线性表未初始化\); return ERROR; } LinkList p = L; int j = 0;
while (p&&j < i - 1) { p = p->next; j++; }; if (!(p->next || j>i - 1)) return ERROR; LinkList q = p->next; e = q->data; p->next = q->next; free(q); return OK;
if (L) { printf(\未初始化\); return ERROR; }
if (L->next == NULL) { printf(\线性链表中无元素\); return ERROR; } printf(\线性链表全部元素为:\); LinkList p = L->next; while (p) { }
return OK;
if (p->data)
printf(\,p->data); p = p->next;

