早教吧作业答案频道 -->其他-->
帮写一个算法假设有两个按元素值递增有序排列的有序表A和B,均以单链表作存储结构,请编写算法利用A表和B表中原有的结点将A表和B表归并成一个按元素值非递增有序排列的有序
题目详情
帮写一个算法
假设有两个按元素值递增有序排列的有序表A和B,均以单链表作存储结构,请编写算法利用A表和B表中原有的结点将A表和B表归并成一个按元素值非递增有序排列的有序表C. A=(1,2,3,4,6) B=(2,3,5,7,9) C=(9,7,6,5,4,3,3,2,1)最好写成可以上机操作的程序
假设有两个按元素值递增有序排列的有序表A和B,均以单链表作存储结构,请编写算法利用A表和B表中原有的结点将A表和B表归并成一个按元素值非递增有序排列的有序表C. A=(1,2,3,4,6) B=(2,3,5,7,9) C=(9,7,6,5,4,3,3,2,1)最好写成可以上机操作的程序
▼优质解答
答案和解析
呵呵,数据结构有个有名的算法:归并排序,这个算法可以解决你的问题。自己可以网上找找,或找本数据结构的书,书里也有着算法。以下是严蔚敏的《数据结构(c语言版)》里归并排序里的核心算法,这个算法就是你要的把两个有序表归并成一个有序表。void Merge(RcdType SR[],RcdType &TR[],int i,int m,int n){ //将有序的SR[i..m]和SR[m+1..n]归并为有序的TR[i..n] for(j=m+1,k=i;i<=m&&j<=n;++k) //将SR中记录由小到大地并入TR { if(LQ(SR[i].key,SR[j].key)) TR[k]=SR[i++]; else TR[k]=SR[j++]; } if(i<=n) TR[k..n]=SR[i..m]; //将剩余的SR[i..m]复制到TR if(j<=n) TR[k..n]=SR[j..n]; //将剩余的SR[j..n]复制到TR} 注意:这是伪算法,不可直接用,自己看懂后改改就可以用了
看了 帮写一个算法假设有两个按元素...的网友还看了以下:
屡战屡败与屡败屡战的词序不同,表达效果就不同.请改变下列句子中划线部分的词序,以达到不同的表达效果 2020-05-17 …
请问可以用什么函数可以将表中两列数值对应我需要将表中右边的人名按左边的人名排序,然后将右边的数字对 2020-05-17 …
下列关于数据排序的说法中,错误的是()A.Word2000可以对表格中的数据自动排序B.Power 2020-05-23 …
冠字号码查询申请表、再查询申请表、查询结果通知书应自成类别,以业务发生时间先 后为序,按年装 2020-05-27 …
查询申请表、再查询申请表和查询结果通知书应自成类别,以业务发生时间先后为序,按_______装订,保 2020-05-27 …
查询申请表、再查询申请表和_______应自成类别,以业务发生时间先后为序,按年装订,保存期为5年。 2020-05-27 …
阅读理解。“立俟左右”“俯身倾耳以请”表现了我请教老师的怎样的态度? 2020-07-13 …
作文集的序言我需要在这个暑假内完成一个作文集,这个作文集要求写序言,可是我不知道这个所谓的序言怎么 2020-07-23 …
“比较归纳法”是学习化学的一种重要方法.(1)请以下表中序号Ⅰ为示例,填写序号Ⅱ、Ⅲ中的空格:(表 2020-08-01 …
疑难翻译请教:13th,13rd分别是指什么意思?特别是13th,这个用法正确吗?假如正确的话,请问 2021-02-02 …