有一个带头结点的单链表L,设计一个算法使其元素递增有序排列 40

书上的代码有点没看懂,希望高手解答,代码如下:voidsort(Linklist*&L){LinkList*p=L->next,*q,*r;if(p!=NULL){r=p... 书上的代码有点没看懂,希望高手解答,代码如下:
void sort(Linklist *&L)
{
LinkList *p=L->next, *q, *r;
if(p!=NULL)
{
r=p->next;
p->next=NULL;
p=r;
while(p!=NULL)
{ r=p->next;
q=L;
while(q->next!=NULL&&q->next->data<p->data)
q=q->next;
p->next=q->next;
q->next=p;
p=r;
}
}
}
这个代码段我觉得得不到递增排序的效果,比如说原来链表里存放的是1,3,4的话,我觉得运行完以后变成1,4,3
展开
 我来答
jsc723
2018-12-20 · TA获得超过702个赞
知道小有建树答主
回答量:519
采纳率:60%
帮助的人:264万
展开全部
/* 插入排序法 */
void sort(Linklist *&L)
{
    LinkList *p=L->next, *q, *r;
    if(p!=NULL)
    {
        /* 把链表分成两条,一条已经排序好了(L),一条待排序(p)*/
        r=p->next;
        p->next=NULL;
        p=r;
        /* 对于所有待排序的元素 */
        while(p!=NULL)
        { 
            /*把p链表的第搭樱一个元素插入到L,并且将它从p中移除*/
            r=p->next;  //r指向p的第二个元素
            /* 找到合适的插入点 */
            q=L;
   知碧丛         while(q->next!=NULL && q->next->data < p->data)
                慧芹q=q->next;
            /* 在q后面插入p */
            p->next=q->next;
            q->next=p;
            /* 现在p的第一个元素已经被移到L中合适的位置了 */
            p=r;
        }
    }
}
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
xiaosaoliang
推荐于2017-11-26
知道答主
回答量:2
采纳率:100%
帮助的人:2970
展开全部
没有问题,
while(q->next!=NULL&&q->next->data<p->data)
q=q->next;
是一个循环,一直跑到有序数没隐组的最后,这敬晌个亮察锋算法很抽象,我看了很久才懂。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mateo_123
2018-08-02
知道答主
回答量:11
采纳率:0%
帮助的人:2万
展开全部


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
个体与群体
2018-08-12 · 超过14用户采纳过TA的回答
知道答主
回答量:48
采纳率:85%
帮助的人:13万
展开全部
建察冲议换本书,这书上的代码写的叫个啥玩意儿啊,什么p,q,r,L的弯没判,名字都埋改不会起,一看就不是什么好书。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f9135613c
2019-03-14
知道答主
回答量:46
采纳率:0%
帮助的人:2.3万
展开全部
void Insert(L, node){
var vNodeNext
for vCurNode in L{
if(vCurNode.Value >= node.Value){ /游此/升序
//亩磨轮if(vCurNode.Value >= node.Value){ //降序
vNodeNext = vCurNode.Next
vCurNode.Next = Node
Node.Next = vNodeNext
exit
}
}
}
每次插入元素都通迅信过这个insert插入
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式