当前位置: 代码迷 >> C语言 >> [求助]关天排序
  详细解决方案

[求助]关天排序

热度:88   发布时间:2006-02-17 17:17:00.0
[求助]关天排序

用链表思想编写下如下程序:
45 78 56 12 34 实现:12 34 45 56 78
题目要求:数据是由键盘输入,数据由尾部插入法。

搜索更多相关的解决方案: 关天  

----------------解决方案--------------------------------------------------------

#include "stdio.h"
#include "conio.h"
main()
{ int a[6],i,j,t;
for(i=1;i<6;i++)
{
printf("%d:",i);
scanf("%d",&a[i]);
}
for(i=1;i<5;i++)
for(j=i;j<6;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}

for(i=1;i<6;i++)
{
printf("%d:%d ",i,a[i]);
}

getch();
}


----------------解决方案--------------------------------------------------------
看懂了
----------------解决方案--------------------------------------------------------
2楼的也不是链表思想啊
----------------解决方案--------------------------------------------------------
以下是引用aiyuheng在2006-2-17 19:01:00的发言:
2楼的也不是链表思想啊
链表是什么啊?


----------------解决方案--------------------------------------------------------
呵呵 是我理解错了,数组也算链表,是静态链表.刚刚理解成动态链表了.
----------------解决方案--------------------------------------------------------

不好意思忘了,是动态链表!


----------------解决方案--------------------------------------------------------
可以先建个空表,先比较再插入数据.

----------------解决方案--------------------------------------------------------
先写一个结构体
struct node
{int number;
struct node pro;
struct node next;
}
类似这种的,里边定义数据项和前驱后续指针项

然后建函数,用malloc函数开辟空间,建立新结点,建立一个,链入前一个结点之后

然后建函数进行比较,比较结点的数据项,再排序,排序通过结点中的前后指针而改变链表的顺序

用主调函数调用它们就好了

有必要时再建一个输出函数就好
----------------解决方案--------------------------------------------------------
  相关解决方案