Status ListInsert_L(LinkList &L, int i, ElemType e); //在单链表的第 i 个位置之前插入新元素 x
void PrintList_L(LinkList L); //遍历并输出单链表所有元素
Status ListDelete_L(LinkList &L, int i, ElemType &e);//删除单链表第 i 个位置的元素
Status GetElem_L(LinkList L,int i,ElemType &e);//获取单链表第 i 个位置的元素
int LocateElem_L(LinkList L,ElemType e); //查找出第 1 个与 e 相等的数据元素位置
void ListConvert_L(LinkList &L); //单链表翻转
void FreeList_L(LinkList L); //销毁单链表
/*linkListOp.cpp 文件 */
#include <malloc.h>
#include <stdio.h>
#include "linklistOp.h"
//初始化线性单表,即创建一个头结点
LinkList InitList_L() {
LinkList H = (LinkList)malloc(sizeof(LNode)); /*申请一个头结点*/
if (!H) return NULL; /*申请失败*/
H->next = NULL; /*头结点的指针域置空*/
return H;
}
//创建 n 个结点的单链表,包括所有链表节点
void CreateList_L(LinkList &L,int n){
//逆位序输入 n 个元素的值,建立带表头结点的单链表 L
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL; //建立一个带头结点的单链表
for(int i= n; i > 0; i--){
LinkList p = (LinkList)malloc(sizeof(LNode)); //生成新结点
p->data = 2*i; //输入元素值
p->next = L->next; //插入到表头
L->next = p;
}
}
//在顺序表里查找出第 1 个与 e 相等的数据元素位置
int LocateElem_L(LinkList L,ElemType e){
int i = 1;
LinkList p = L->next;
while(p){
if(p->data == e)
break;