using namespace std;
const int N = 10;
typedef int ELEMTYPE;
typedef struct Node
{
ELEMTYPE data;
Node *next;
}LNode,*LinkList;
void initLinkList(LinkList &L);
int insertList(LinkList &L,int index, ELEMTYPE e);
int deleteList(LinkList &L, int index,ELEMTYPE &e);
void printLinkList(LinkList &L);
int main()
{
LinkList L;
initLinkList(L);
for(int i=1;i<=N;i++)
{
insertList(L,i,i);
}
printLinkList(L);
return 0;
}
void initLinkList(LinkList &L)
{
L = new LNode;
L->data = 0;
L->next = NULL;
}
int insertList(LinkList &L,int index, ELEMTYPE e)//插入到第index个元素前面
{
if(index<1 || index>(L->data+1))
return 0;
LNode *p = L;
int num = 0;
while(num<index-1)
{
p = p->next;
num++;
}
LNode *q = new LNode;
q->data = e;
q->next = p->next;
p->next = q;
L->data ++;
return 1;
}
int deleteList(LinkList &L, int index,ELEMTYPE &e)
{
if(index<1 || index>L->data) return 0;
LNode *p = L;
int num = 0;
while(num<index-1)
{
p = p->next;
num++;
}
LNode *q = p->next;
e = q->data;
p->next = q->next;
delete q;
return 1;
}
void printLinkList(LinkList &L)
{
LNode *p = L;
while(p->next)
{
p = p->next;
cout<<p->data<<" ";
}
cout<<endl;
}