假设有两个按元素值递增有序排列的带头节点的单链表A和B.试编写算法将A表和B表归并成按一个元素值递减有序(允许值下相同)
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/10/05 11:20:11
假设有两个按元素值递增有序排列的带头节点的单链表A和B.试编写算法将A表和B表归并成按一个元素值递减有序(允许值下相同)排列的线性表C,要求利用原表的节点空间存放C
/* 链表节点 */
typedef struct Node {
int data;
struct Node *next;
} Node;
/* 合并两个升序链表为降序链表 */
Node *merge_lists(Node *a, Node *b)
{
Node *pa = a->next, *pb = b->next, *t;
/* 新链表的头结点使用 a 的头结点 */
a->next = NULL;
free(b); // b 的头结点是不需要的,可以释放掉
while(pa != NULL && pb != NULL) {
if(pa->data < pb->data) { // 将 pa 插入新链表头部
t = pa->next;
pa->next = a->next;
a->next = pa;
pa = t;
} else { // 将 pb 插入新链表头部
t = pb->next;
pb->next = a->next;
a->next = pb;
pb = t;
}
}
/* 注:以下两个循环只会执行其中一个 */
/* 只剩链表 a 的节点 */
while(pa != NULL) {
t = pa->next;
pa->next = a->next;
a->next = pa;
pa = t;
}
/* 只剩链表 b 的节点 */
while(pb != NULL) {
t = pb->next;
pb->next = a->next;
a->next = pb;
pb = t;
}
return a;
}
有问题请指教 :)
typedef struct Node {
int data;
struct Node *next;
} Node;
/* 合并两个升序链表为降序链表 */
Node *merge_lists(Node *a, Node *b)
{
Node *pa = a->next, *pb = b->next, *t;
/* 新链表的头结点使用 a 的头结点 */
a->next = NULL;
free(b); // b 的头结点是不需要的,可以释放掉
while(pa != NULL && pb != NULL) {
if(pa->data < pb->data) { // 将 pa 插入新链表头部
t = pa->next;
pa->next = a->next;
a->next = pa;
pa = t;
} else { // 将 pb 插入新链表头部
t = pb->next;
pb->next = a->next;
a->next = pb;
pb = t;
}
}
/* 注:以下两个循环只会执行其中一个 */
/* 只剩链表 a 的节点 */
while(pa != NULL) {
t = pa->next;
pa->next = a->next;
a->next = pa;
pa = t;
}
/* 只剩链表 b 的节点 */
while(pb != NULL) {
t = pb->next;
pb->next = a->next;
a->next = pb;
pb = t;
}
return a;
}
有问题请指教 :)
用c++实现,假设有两个元素递增的有序排列线性表A和B,均以顺序表作存储结构.试编写算法将A表和B表归并成一个按元素值递
已知一个数组中的元素按元素值非递减有序排列,编写一个函数删除数组中多余的值相同的元素
数据结构假设分别以两个元素的值递增有序线性表a,b表示两个集合,现在要构成一个新的线性表c,c表示a b的交,且c中的元
数据结构问题:已知向量A中的n个元素按值非递减有序排列,试编一个算法,在此向量中插入一个值为x的新元素
数据结构课程设计题.\x05有两个相等长度的正整数序列A和B,都是有序的(递增排序),同时一个序列中没有重复元素,现在需
已知两个顺序表A和B分别表示两个集合,其元素递增排列,编写一个函数求出A和B的交集
请用C语言编程实现 1.已知线性表LA和LB中的数据元素按值非递增有序排列,现要求将LA和LB归并为一个新
急求归并排序算法:将有序数组A[0,… ,n]和B[0 ,… ,m]合并(C语言)
二分法查找 C++假设一维数组a[10]中的10个元素是按从小到大的顺序有序排列的,编写程序从a中二分查找出其值等于给定
已知两个单链表A与B分别表示两个集合,其元素类型为int且递增排列,其头结点指针分别为a,b.编写一个函数求出A和B的交
设顺序表VA中的数据元素递增有序,试编写算法实现将X插入到顺序表的适当位置上,以保持该表的有序性.
数据结构C语言版中的题目怎么做?假设顺序表l中的元素递增有序,设计算法在顺序列表中插入元素x,并要求在插入后也没有相同的