作业帮 > 综合 > 作业

急需数据结构算法:假设有两个元素递增的有序排列线性表A和B,均以单链表作存储结构.试编写算法将A表和B

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/14 08:01:48
急需数据结构算法:假设有两个元素递增的有序排列线性表A和B,均以单链表作存储结构.试编写算法将A表和B
急需数据结构算法C++版:假设有两个元素递增的有序排列线性表A和B,均以单链表作存储结构.试编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序)允许值相同排列的线性表C,并要求按原表的结点空间存放表C.可能用到归并排序、头插法、友元函数、不带头结点
#include"stdio.h"
#include"malloc.h"
struct list
{
int data;
struct list *next;
};
struct list *head1,*head2,*p1,*p2,*q1,*q2;
void main()
{
int n=0;
void unionlist();
p1=q1=(struct list*)malloc(sizeof(struct list));
printf("请输入第一个链表的信息\n");
scanf("%d",&p1->data);
while(p1->data!=0)
{
n=n+1;
if(n==1)
head1=q1;
else
q1->next=p1;
q1=p1;
p1=(struct list*)malloc(sizeof(struct list));
scanf("%d",&p1->data);
}
q1->next=NULL;
n=0;
p2=q2=(struct list*)malloc(sizeof(struct list));
printf("请输入第二个链表的信息\n");
scanf("%d",&p2->data);
while(p2->data!=0)
{
n=n+1;
if(n==1)
head2=q2;
else
q2->next=p2;
q2=p2;
p2=(struct list*)malloc(sizeof(struct list));
scanf("%d",&p2->data);
}
q2->next=NULL;
unionlist();
}
void unionlist()
{
struct list *head,*p;
int i=0;
p1=head1;
p2=head2;
head=p=(struct list*)malloc(sizeof(struct list));
p->data=0;
while(p1 && p2)
{
if(p1->datadata)
{
p->next=p1;
p=p1;
p1=p1->next;
}
else
{
p->next=p2;
p=p2;
p2=p2->next;
}
}
p->next=p1?p1:p2;
p=head;
printf("合并后的链表为如下:\n");
while(p)
{
i=i+1;
if(i==1)
p=p->next;
printf("%3d",p->data);
p=p->next;
}
printf("\n");
free(head1);
free(head2);
}
用c++实现,假设有两个元素递增的有序排列线性表A和B,均以顺序表作存储结构.试编写算法将A表和B表归并成一个按元素值递 两个以单链表作存储结构的一元多项式A和B,编写算法将多项式A和B相加,要求利用原表的结点空间和多项式. 数据结构假设分别以两个元素的值递增有序线性表a,b表示两个集合,现在要构成一个新的线性表c,c表示a b的交,且c中的元 数据结构算法实现:利用两个线性表LA和LB分别表示两个集合A和B,现要求一个新的集合A=A并B. 已知长度为n的线性表A采用链式存储结构,请写一算法使得\x05A中数据元素逆序排列,如(a,b,c,d,e,f)逆序排列 数据结构课程设计题.\x05有两个相等长度的正整数序列A和B,都是有序的(递增排序),同时一个序列中没有重复元素,现在需 数据结构 已知一个顺序表递增有序,试设计一种算法,将x插入到表中的适当位置,以保持顺序表的有 已知两个顺序表A和B分别表示两个集合,其元素递增排列,编写一个函数求出A和B的交集 数据结构小问题判断题( )1、算法分析的两个主要方面是空间复杂度和时间复杂度。( )2、线性表的链式存储结构优于顺序存储 设计一个算法,将某一个X值插入到一个有序(运用顺序存储结构),对线性表进 已知长度为n的线性表A采用顺序存储结构,请写一算法,找出该线性表中值最小的数据元素. 设顺序表VA中的数据元素递增有序,试编写算法实现将X插入到顺序表的适当位置上,以保持该表的有序性.