标签:style blog color os io 数据 for ar
/*关于链表的题目 * A、B是两个递增有序的单链表,元素个数分别是m和n,求 * 集合A-B,并将结果保存在A中,且仍然保持递增有序。 * converge_ab */ #include <iostream.h> using namespace std; typedef struct lnode{ int data; struct lnode * next; }lnode; int main(){ lnode * create_chain(int num,int interval,int start); void converge_ab(lnode *A,lnode *B); lnode * A,*B,*q,*p; int m=4,n=7; A=create_chain(4,3,2); //2 5 8 11 B=create_chain(7,4,1); //1 5 9 13 17 21 25 p=A; /* while(p->next != NULL){ cout << p->next->data <<" "; p=p->next; } cout << endl; q=B; while(q->next != NULL){ cout << q->next->data <<" "; q=q->next; } cout << endl; converge_ab(A,B,m,n); p=A; */ converge_ab(A,B); p=A; while(p->next != NULL){ cout << p->next->data <<" "; p=p->next; } } lnode * create_chain(int num,int interval,int start){ lnode * head=(lnode *)malloc(sizeof(lnode)),*p,*q=head; int i; for(i=0;i<num;i++){ p=(lnode *)malloc(sizeof(lnode)); p->data=start+(i*interval); p->next=NULL; q->next=p; q=q->next; } return head; } void converge_ab(lnode *A,lnode *B){ lnode * q=B->next,* r=A,* temp; while(r->next!=NULL && q!=NULL){ if(r->next->data < q->data){ r=r->next; }else if(r->next->data == q->data){ temp=r->next; r->next=temp->next; free(temp); }else{ q=q->next; } } }
数据结构>>线性表【注意】-->链表求A-B(原A与B都递增,求完的A-B不改变A原来的顺序),布布扣,bubuko.com
数据结构>>线性表【注意】-->链表求A-B(原A与B都递增,求完的A-B不改变A原来的顺序)
标签:style blog color os io 数据 for ar
原文地址:http://www.cnblogs.com/kateblog/p/3913413.html