#include <iostream>
#include "LNode.h"
using namespace std;
void CreateList_L(LinkList &L, int n)
{
L = new LNode;
L->next = NULL;
for (int i=n; i>0; --i)
{
LinkList p = new LNode;
cout<<"Input"<<n-i+1<<"numbers"<<endl;
cin>>p->data;
p->next = L->next;
L->next = p;
}
}
void DestroyList_L(LinkList &L)
{
LinkList p;
while (L->next)
{
p = L;
L = L->next;
delete p;
}
delete L;
}
void ClearList_L(LinkList &L)
{
LinkList p ;
while (L->next)
{
p = L->next;
L->next = p->next;
delete p;
}
}
ElemType GetElem(LinkList L,int i,ElemType &e)
{
int j = 0;
while (j<=i-1)
{
L = L->next;
++j;
}
e = L->data;
return e;
}
Status ListInsert_L(LinkList &L,int i,ElemType e)
{
LinkList p = L;
int j = 0;
while (p && j<i-1)
{
p = p->next;
++j;
}
if (!p || j>i-1)
{
return ERROR;
}
LinkList s =new LNode;
s->data = e;
s->next = p->next;
p->next = s;
return OK;
}//ListInsert_L
Status ListDelete_L(LinkList &L,int i,ElemType &e)
{
LinkList p = L;
int j = 0;
while (p->next && j<i-1)
{
p = p->next;
++j;
}
if (!(p->next) || j>i-1)
{
return ERROR;
}
LinkList q = p->next;
p->next = q->next;
e = q->data;
free(q);
return OK;
}
Status ListLength_L(LinkList L)
{
int length = 0;
while (L->next)
{
L = L->next;
++length;
}
return length;
}
void ListPrint_L(LinkList L)
{
if (!L->next)
{
cout<<"该链表为空表,不存在元素"<<endl;
}
while (L->next)
{
L = L->next;
cout<<L->data<<" ";
}
cout<<endl;
}
Status ListEmpty_L(LinkList L)
{
if (!L->next)
{
return 0;
}
return 1;
}