#include<stdio.h>
#include<stdlib.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT  10
#define ElemType int
typedef struct LNode
{
	ElemType data;
	struct LNode *next;
	int length;
}LNode, *LinkList;

void CreateList(LinkList &L,int n)
{
	LinkList p;
	int i;
	L=(LinkList)malloc(sizeof(LNode));
	L->next=NULL;
	for(i=n;i>0;--i)
		p=(LinkList)malloc(sizeof(LNode));
	scanf(&p->data);
	p->next=L->next;
	L->next=p;

}

int LinkInsert(LinkList &L,int i,ElemType e)
{
	//int *p;
	LinkList s,p;
	int j=0;
	while(p&&j<i-1)
	{
		p=p->next;
		++j;
	}
	if(!p||j>i-1)
		return 0;
	s=(LinkList)malloc(sizeof(LNode));
    s->data=e;
	s->next=p->next;
	p->next=s;
	return 1;
}

int ListDelete(LinkList &L,int i,ElemType &e)
{
	//int  *q,*p;
	LinkList q,p;
	int j=0;
	while(p->next && j<i-1)
	{
		p=p->next;
		++j;
	}
	if(!(p->next)||j>i-1)
		return 0;
	q=p->next;
	p->next=q->next;
	e=q->data;
	free(q);
	return 1;
}

/*int  ListTraverse(LinkList L)
 {
     //输出函数
     //操作结果:若顺序表非空,则输出顺序表中所有元素,否则为空操作
     int k;
     for(k=0;L->next!=NULL;k++)
     {
         printf("%5d",L->next);
		 L=L->next;
     }
	 printf("\n");
     return 0;
 }*/


void main()
{
	int i,number,k;
	LinkList L;

	printf("请依次输入5个整数/n");
	CreateList(L,5);
	/*for (k=0;k<5;k++)
	{
		scanf("%d",L->data);	
		L->length++;
	}
	for(i=0;i<5;i++)
	{
		p=(LinkList)malloc(sizeof(LNode));
		scanf(&p->data);
	}*/
	printf("请按提示,选择操作选项:\n");
	printf("1 插入元素\n");
    printf("2 删除元素\n");
    printf("3 退出\n");
	scanf("%d",&number);
	switch(number)
	{
	case 1 :printf("选项1\n");
		LinkInsert(L,3,9);
		break;
	case 2 :printf("选项2\n");
		ListDelete(L,4,k);
		break;
	case 3 :printf("选项3\n");
		break;
	default:printf("enter data error!\n");
	}
}