#include <bits/stdc++.h>
using namespace std;
typedef char ElemType;
typedef struct LNode{
ElemType data;
struct LNode * next;
}LinkNode;
void CreatorListR(LinkNode *& L, ElemType a[], int n){
LinkNode *s, *r;
L = (LinkNode * ) malloc (sizeof (LinkNode));
r = L;
for(int i = 0; i < n; ++i){
s = (LinkNode * ) malloc (sizeof (LinkNode));
s -> data = a[i];
r -> next = s;
r = s;
}
r -> next = NULL;
}
void InitList(LinkNode *& L){
L = (LinkNode * ) malloc (sizeof (LinkNode));
L -> next = NULL;
}
void DestoryList(LinkNode *& L){
LinkNode *pre = L, *p = L -> next;
while(p != NULL){
free(pre);
pre = p;
p = pre->next;
}
free(pre);
}
bool ListEmpty(LinkNode *L){
return (L -> next == NULL);
}
int GetLength(LinkNode *L){
int n = 0;
LinkNode *p = L;
while(p -> next != NULL){
n ++;
p = p -> next;
}
return n;
}
void PrintList(LinkNode *L){
LinkNode *p = L -> next;
while(p != NULL){
cout << p -> data << " ";
p = p -> next;
}
puts("");
}
bool GetElem(LinkNode *L, int i, ElemType &e){
int j = 0;
LinkNode *p = L;
if(l <= 0) return false;
while(j < i && p != NULL){
j ++;
p = p -> next;
}
if(p == NULL) return false;
else {
e = p -> data;
return true;
}
}
int SearchElem(LinkNode *L, ElemType e){
int i = 1;
LinkNode *p = L -> next;
while( p != NULL && p -> data != e){
p = p -> next;
i ++;
}
if(p == NULL) return 0;
else return i;
}
bool InsertElem(LinkNode *& L, int i, ElemType x){
int j = 0;
LinkNode *p = L, *s;
if(i <= 0) return false;
while(j < i - 1 && p != NULL){
j ++;
p = p -> next;
}
if(p == NULL) return false;
else {
s = (LinkNode * )malloc (sizeof(LinkNode));
s -> data = e;
s -> next = p -> next;
}
}
int main(){
return 0;
}