赞
踩
指针La和Lb分别是两个带头节点单链表的头指针,将表La的第i个元素其len个元素删除并插入到表Lb的第j(j>=1)个元素之前。
La : a->b->c->d
Lb : e->f->g->h
将La中的第i个元素开始的Len个元素插入到Lb中的第j个位置
typedef struct LNode { int data; struct LNode *next; }LNode,*LinkList; void insertsub(LNode *La,LNode *Lb,int i,int j,int len) { LNode *pre=La;//pre指向表La的头节点 LNode *p=La->next;//p指向表La的头节点后的第一个元素 int k=1; while(k<i)//遍历到La到第i-1个元素,pre指向第i-1个元素,p指向的i个元素 { pre=p; p=p->next; k+=1; } LNode *s=p;//s节点指向La的第i个元素 k=1; while(k<len)//让s节点指向La的第i+len个元素 { s=s->next; k+=1; } pre->next=s->next;//删除从La的第i个元素起的后len个元素 LNode *q=Lb;//q指向Lb的头节点 k=0; while(k<j-1)//令q指向Lb的第j-1个节点 { q=q->next; k+=1; } s->next=q->next;//将La的第i+len-1个元素插入到Lb到第j个元素之前 q->next=p; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。