| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 719 人关注过本帖
标题:C语言链表选择排序错误
只看楼主 加入收藏
忆馨亦伊
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-8-26
收藏
 问题点数:0 回复次数:5 
C语言链表选择排序错误
void sort(TS **h) /* 选择排序算法 */ =====这里为什么会有参数列表错误为什么啊
{
TS *h1,*p,*q,*r,*s;
h1=p=(TS *)malloc(sizeof(TS));
p->next=*h;
while(p->next) {
q=p->next;
r=p;
while(q->next) {
if(q->next->valuenext->value)
r=q;
q=q->next;
}
if(r!=p) {
s=r->next;
r->next=s->next;
s->next=p->next;
p->next=s;
}
p=p->next;
}
*h=h1->next;
free(h1);
}
搜索更多相关主题的帖子: 链表 C语言 选择 
2008-09-06 19:48
God_WangY
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-9-6
收藏
得分:0 
TS是什么?
2008-09-06 19:52
God_WangY
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-9-6
收藏
得分:0 
要发就要将全部的程序发上来
不然不好分析
2008-09-06 19:53
忆馨亦伊
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-8-26
收藏
得分:0 
nclude<stdio.h>
#include<stdlib.h>
typedef struct STRUCT {
int value;
struct STRUCT *next;
}TS;
main()
{
#define N 9
int a[N],i;
TS *head,*p;
TS *CreateLink(int *,int);
void sort(TS **);
randomize();
for(i=0;ia=random(9);
head=CreateLink(a,N);
for(p=head;p;p=p->next)
printf(“%-2d“,p->value);
putchar(‘\n‘);
sort(&head);
for(p=head;p;p=p->next)
printf(“%-2d“,p->value);
getchar();
}
void sort(TS **h) /* 选择排序算法 */
{
TS *h1,*p,*q,*r,*s;
h1=p=(TS *)malloc(sizeof(TS));
p->next=*h;
while(p->next) {
q=p->next;
r=p;
while(q->next) {
if(q->next->valuenext->value)
r=q;
q=q->next;
}
if(r!=p) {
s=r->next;
r->next=s->next;
s->next=p->next;
p->next=s;
}
p=p->next;
}
*h=h1->next;
free(h1);
}
TS *CreateLink(int *a,int n)
{
int i;
TS *h,*p;
h=NULL;
for(i=n;i>0;i--) {
p=(TS *)malloc(sizeof(TS));
p->value=a[i-1];
p->next=h;
h=p;
}
return h;
}
2008-09-06 20:05
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
[bo][un]忆馨亦伊[/un] 在 2008-9-6 20:05 的发言:[/bo]
main()
{
#define N 9
int a[N],i;
TS *head,*p;
TS *CreateLink(int *,int);
void sort(TS **);
randomize();
for(i=0;ia=random(9);   // 这个 for 不完整



for()????

—>〉Sun〈<—
2008-09-06 21:22
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
// 修改了排序算法
// 使用的随即函数不适标准的,所以用标准的写了两个
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define randomize() srand((unsigned int)time(NULL))
#define random(num) (rand() % (num))
/* 与上面的宏相同功能
void randomize(void)
{
    srand((unsigned int)time(NULL));
}

int random(int num)
{
    return rand() % num;
}
*/

#define N 9

typedef struct STRUCT {
    int value;
    struct STRUCT * next;
}TS;


TS * CreateLink(int * a, int n);
void sort(TS * ppHead);

int main(void)
{
    int a[N],
        i;
        
    TS * head,
       * p;

    randomize();
   
    for(i = 0; i < N; i++)
        a[i] = random(9);
        
    head = CreateLink(a, N);
   
    for(p = head; p; p = p->next)
        printf("%-2d", p->value);
        
    putchar('\n');
   
    sort(head);
   
    for(p = head; p; p = p->next)
        printf("%-2d", p->value);

    getchar();
    return 0;
}

void sort(TS * pHead) /* 选择排序算法 */
{
    int temp;
   
    TS *i, *j;
   
    if(pHead == NULL)
        return;

    for(i = pHead; i->next != NULL; i = i->next)
    {
        for(j = i->next; j != NULL; j = j->next)
        {
            if(i->value > j->value)
            {
                temp = i->value;
                i->value = j->value;
                j->value = temp;
            }
        }
    }
}

TS *CreateLink(int * a, int n)
{
    int i;
    TS * h, * p;
    h = NULL;
    for(i = n; i > 0; i--)
    {
        p=(TS *)malloc(sizeof(TS));
        p->value=a[i-1];
        p->next=h;
        h=p;
    }
    return h;
}


[[it] 本帖最后由 cosdos 于 2008-9-6 22:44 编辑 [/it]]

—>〉Sun〈<—
2008-09-06 22:35
快速回复:C语言链表选择排序错误
数据加载中...
 
   



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

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