数据结构题典010:有序单链表的交集(ANSI C)
2011-12-28 22:08
190 查看
题目:设有两个非递减有序的单链表,编写算法求二者的交集(以链表形式存放),要求交集中元素保持递增有序。
分析:此题关键是要跳过相邻的重复元素。
分析:此题关键是要跳过相邻的重复元素。
/* * Intersection of two non-descending linked lists. * * fduan, Dec. 28, 2011. */ void intersection( link_list lst_a, link_list lst_b, link_list * lst_i ) { node_ptr pa = lst_a->next, pb = lst_b->next, s = NULL, p = NULL; int e1, e2; init_llist( lst_i ); p = *lst_i; while( pa != NULL && pb != NULL ) { if( pa->data < pb->data ) pa = pa->next; else if( pa->data > pb->data ) pb = pb->next; else { s = ( node_ptr )malloc( sizeof( node ) ); s->data = pa->data; s->next = NULL; p->next = s; p = s; e1 = pa->data; e2 = pb->data; pa = pa->next; pb = pb->next; while( pa != NULL && pa->data == e1 ) pa = pa->next; while( pb != NULL && pb->data == e2 ) pb = pb->next; } } }
相关文章推荐
- 数据结构题典018:三个有序单链表求交(ANSI C)
- 数据结构题典011:有序单链表的并集(ANSI C)
- 单链表实现递增有序交集
- 数据结构题典006:有序表中冗余元素的删除(ANSI C)
- 数据结构_两个有序单链表归并C语言源代码
- PTA数据结构之两个有序链表序列的交集
- 求有序单链表表示集合的交集
- 数据结构题典009:递归实现单链表逆序数出(ANSI C)
- 数据结构题典001:有序线性表的归并(ANSI C)
- 求两个有序单链表的并交集
- 数据结构 — 1. 两个非递减有序单链表合并为非递增有序单链表
- 数据结构题典002:删除单链表中最大元素所在结点(ANSI C)
- 数据结构题典014:单链表的子序列检测(ANSI C)
- 数据结构初学之判断单链表有序
- 7-2 两个有序链表序列的交集
- 第四周项目三数据结构实践(一)——单链表:逆置
- 数据结构【线性表(二)链表】项目之合并有序表(解法二)
- 【ShancoLove】带你看数据结构——第三课:线性表链式结构(单链表)
- C语言数据结构-单链表
- 数据结构-单链表节点的删除