数据结构算法问题

1.假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的... 1.假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。请编写算法将这两个单链表归并为一个按元素值递减次序排列的单链表,并要求利用原来两个单链表的结点存放归并后的单链表。
解: [题目分析]因为两个链表已按元素值递增次序排列,将其合并时,均从第一个结点起进行比较,将较小的链入链表中,同时后移链表工作指针。该问题要求结果链表按元素值递减次序排列,故在合并的同时,将链表结点逆置。
LinkList Union(LinkList la,lb)
//la、lb分别是带头结点的两个单链表的头指针,链表中的元素值按递增次序排列
//本算法将两个链表合并成一个按元素值递减次序排列的单链表
{pa=la->next;pb=lb->next;//pa,pb分别是链表1a和lb的工作指针
la->next=null; //la作为结果链表的头指针,先将结果链表初始化为空
while(pa!=null&&pb!=null) //当两链表均不为空 时
if(pa->data<=pb->data )
{r=pa->next; //将pa的后继结点暂存于r
pa->next=la->next; //将pa结点链于结果表中,同时逆置
la->next=pa;
pa=r; //恢复pa为当前待比较结点
}
else
{r=pb->next;//将pb的后继结点暂存于r
pb->next=la->next;//将pb结点链于结果表中,同时逆置
la->next=pb;
pb=r;//恢复pb为当前待比较结点
}
while(pa!=null) //将la表的剩余部分链入结果表,并逆置
{r=pa->next;pa->next=la->next;la->next=pa;pa=r; }
while(pb!=null)
{r=pb->next;pb->next=la->next;la->next=pb;pb=r; }
}//算法Union结束

其中的逆置不太理解
pa->next=la->next; //将pa结点链于结果表中,同时逆置
la->next=pa;
我自己想想:la->next=pa->next
pa->next=la
求大婶解释
展开
 我来答
光点科技 2023-08-15
展开全部
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件或记录的固定字段中。相对应的,没有固定结构不方便用数据库二维逻辑表来表现的数据即称为非结构化数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等。我们都知道,结构化的数据很容易被采集和存储,分析展示起来也很容易,市场上已经有很多成熟的BI…
martinblack954
2011-08-06 · TA获得超过1490个赞
知道小有建树答主
回答量:591
采纳率:0%
帮助的人:235万
展开全部
while(pa!=null) //将la表的剩余部分链入结果表,并逆置
{r=pa->next;pa->next=la->next;la->next=pa;pa=r; }
我就说这段吧~
下面那段lb有剩余是一样的。。。
首先可以肯定的是,la就是最后所求的的链表的头。
la是头结点,实际上没值,la->next的结点就是当前链表的最大值啦~~
先定义这个结点为point1,即point1=la->next,名字写长点,好区分。。。
然后,由于pa是剩余部分的第一个结点,所以pa的值,肯定大于la->next,
然后,pa的下一个是r,r的值肯定也是大于pa的。所以这3个结点的大小顺序应该是这样。
point1<pa<r,忽略等于的情况,因为题目说递增。。。
那最后的排列应该是r->pa->point1啦~~
所以,pa->next就是等于la->next了~~
追问
r值其实在一步逆置中大小是不知道的吧
r是用来寄存pa-next, 传递pa-next 比完一个pa,使pb可以继续与下一个pa比较
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式