| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8373 人关注过本帖
标题:对一个链表进行排序,只对链表排序。
只看楼主 加入收藏
何小达
Rank: 2
等 级:论坛游民
威 望:1
帖 子:24
专家分:70
注 册:2017-5-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
对一个链表进行排序,只对链表排序。
/* Note:Your choice is C IDE */
#include "stdio.h"
typedef struct str
{char data;
    struct str *next;
}node;
node* create(int *n)
{node *head,*p,*q;
    char ch;
      head=q=(node *)malloc(sizeof(node));
    while((ch=getchar())!='\n')
    {p=(node *)malloc(sizeof(node));
        p->data=ch;
        q->next=p;
        q=p;
        (*n)++;
    }
    q->next=NULL;
    return head;
}

jh(node *head,int n)
{int i,j,a,b=0;
    node *p,*q,*r;
    for(i=0;i<n/2;i++)
    {a=0;r=head;
        while(a<b)
        r=r->next;
        p=r->next;
        q=p->next;
        while(q->next!=NULL)
        {r->next=q;
            p->next=q->next;
            q->next=p;
            p=r->next;q=p->next;
            r=r->next;p=p->next;q=q->next;
            }
        }
    }
void main()
{node *head,*p;
    int n=0;
    head=create(&n);
    jh(head,n);
    p=head->next;
    while(p)
    {printf("%3c",p->data);
        p=p->next;
        }
   
}
我一个老师给我出的题,就是让我编写一个程序,对链表进行排序,但是不用对里面的值进行排序的方法排序,而是对链表的链接来排序。
搜索更多相关主题的帖子: include return choice create 
2017-05-26 21:32
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:10 
最简单的办法,链表转数组,判断大小之后,然后重建连接,完全不用管某个节点原来的指向。


[此贴子已经被作者于2017-5-26 21:45编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-26 21:40
何小达
Rank: 2
等 级:论坛游民
威 望:1
帖 子:24
专家分:70
注 册:2017-5-25
收藏
得分:0 
回复 2楼 renkejun1942
你说的方法我知道,但是我的老师是让我只用对链表的链接进行不排序,不用里面的值。
2017-05-26 21:46
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-26 21:47
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 3楼 何小达
怎么?交换值你会,到了修改指针的指向就不会了?
还不是一样的道理。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-26 21:47
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:10 
以前找到我自己写的交换指针步骤4步完成~
不过一时找不到放在论坛的哪里了~~


https://bbs.bccn.net/thread-474128-1-1.html
这个可以看一下~可以对链表内指定元素排序~


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-26 21:50
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 6楼 九转星河
你还真写过纯交换指针的排序啊?

我写过一点儿,被NULL指针蹂躏了,然后发现还是我最开始想的转数组最好用。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-26 21:53
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 4楼 renkejun1942
以下是引用何小达在2017-5-26 21:46:37的发言:

你说的方法我知道,但是我的老师是让我只用对链表的链接进行不排序,不用里面的值。



以下是引用renkejun1942在2017-5-26 21:47:07的发言:

https://bbs.bccn.net/thread-476405-1-1.html

30楼。

链表排序。

其实我那个也是把链表数据弄出来然后进行排序~我那个方法虽然万能~但却不符合题意耶~~还是老老实实交换节点排序吧~~


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-26 21:53
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 8楼 九转星河
我看了下,你比我还懒,你貌似就是将值写出,然后排序,最后重新写入链表?!

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-05-26 21:54
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 9楼 renkejun1942
就是这样~~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-05-26 21:59
快速回复:对一个链表进行排序,只对链表排序。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016389 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved