#include<iostream>
using namespace std;
typedef int ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
bool InitList(LinkList &L)// 单链表的初始化
{
L = new LNode;
L->next = NULL;
return true;
}
bool GetElem(LinkList L,int i,ElemType &e)// 单链表的取值
{
LinkList p;
p = L->next;
int j = 1;
while(p && j < i)
{
p = p->next;
j++;
}
if(!p||j>i)return false;
e = p->data;
return true;
}
LNode *LocateElem(LinkList L,ElemType e)// 单链表的查找
{
LinkList p;
p = L->next;
while(p && p->data !=e)
{
p = p->next;
}
return p;
}
bool ListInsert(LinkList &L,int i,ElemType e)// 单链表的插入
{
LinkList p;
p = L;
int j = 0;
while(p && (j < i-1))
{
p = p->next;
j++;
}
if(!p || j > i - 1)
return false;
LinkList s = new LNode;
s->data = e;
s ->next = p ->next;
p ->next = s;
return true;
}
bool ListDelete(LinkList &L,int i)// 单链表的删除
{
LinkList p = L,q;
int j = 0;
while(p->next && j < i - 1)
{
p = p ->next;
j++;
}
if(!p->next || j > i - 1)return false;
q = p->next;
p->next = q->next;
delete q;
return true;
}
void CreateList_H(LinkList &L,int n)// 单链表的前插法
{
L = new LNode;
L->next = NULL;
for(int i=0;i < n;i++)
{
LinkList p = new LNode;
cin >> p->data;
p->next = L ->next;
L->next = p;
}
}
void CreateList_R(LinkList &L,int n)// 单链表的后插法
{
L = new LNode;
L->next = NULL;
LinkList r = L,p;
for(int i=0;i<n;i++)
{
p = new LNode;
cin >> p->data;
p ->next = NULL;
r->next = p;
r = p;
}
}
int main()
{
}