LinkList CreatList()//尾插法{
LinkList H =(LinkList)malloc(sizeof(LNode));
H -> next =NULL;
LNode *s,*r = H;int x;//r -> count = 1;printf("请输入第一个数据:");scanf("%d",&x);while(x !=-1){
s =(LinkList)malloc(sizeof(LNode));
s -> data = x;
r -> next = s;
r = s;//r -> count ++;printf("请输入下一个数据,若需要结束输入,则输入-1:");scanf("%d",&x);}
r -> next =NULL;return H;}
打印链表函数
voidPrintList(LinkList L)//打印链表{
L = L -> next;while(L !=NULL){printf("%d ",L -> data);
L = L -> next;}}
查找第i个结点
LinkList Listsreach(LinkList L,int i)//找到第i个结点{
LNode *p = L;int j =0;while(p -> next !=NULL&& j < i){
p = p -> next;
j ++;}//PrintList(L);if(j == i)return p;elsereturnNULL;}
保存删除的数据
LinkList SaveDelete(LinkList L,int i,int len)//保存删除的数据{
LinkList p,q;
LinkList delete =init();
LNode *s,*r;
p =Listsreach(L,i -1);
delete = p ;
s = p -> next;
p -> next = delete -> next;
r =Listsreach(delete,len);
r -> next =NULL;return delete;}
删除数据
LinkList ListDelete(LinkList L,int i,int len)//删除指定数据{
LinkList p,q;int j;
p =Listsreach(L,i -1);for(j = i;j < i + len;j ++){
q = p -> next;
p -> next = q -> next;free(q);}return L;}
插入数据
LinkList ListInsert(LinkList L,int j,LinkList delete,int len)//插入数据{
LNode *p,*s,*r;int i;
p =Listsreach(L,j);
s = p -> next;
p -> next = delete -> next;
r =Listsreach(delete,len);
r -> next = s;// PrintList(L);return L;}