
#include<stdio.h> #include<stdlib.h> typedef struct Node{ int data; Node*next; }Node,*LinkList; IniteLinkList(LinkList*L) { *L=(LinkList)malloc(sizeof(Node)); (*L)->next=NULL; } CreateLinkList(LinkList L) { int length,e; Node*t,*q=L; scanf("%d",&length); for(int i=0;i<length;i++) { scanf("%d",&e); t=(LinkList)malloc(sizeof(Node)); t->data=e; t->next=q->next; q->next=t; q=t; } } DeleteAndIns(int i,int len,int j,LinkList A,LinkList B) { Node*head,*tail,*t; int cnt; for(t=A,cnt=1;cnt<i;cnt++) t=t->next;//t最终指向第i个结点的前一个结点 head=t->next; for(tail=head;cnt<i+len-1;cnt++)tail=tail->next; t->next=tail->next;//A完成删除操作 for(t=B,cnt=1;cnt<j;cnt++) t=t->next; tail->next=t->next; t->next=head; } OrderLinkList(LinkList L) { Node*t; for(t=L->next;t;t=t->next) printf("%d ",t->data); } int main() { LinkList A,B; int i,j,len; IniteLinkList(&A),IniteLinkList(&B); CreateLinkList(A),CreateLinkList(B); scanf("%d %d %d",&i,&len,&j); DeleteAndIns(i,len,j,A,B); OrderLinkList(A); printf("\n"); OrderLinkList(B); return 0; }