首页 > 用户发贴区 > 编程问题提问区 > 链表的一个小问题
2007
06-19

用链表以后,每个元素并不象结构体数组那样有下标[]  
引用起来就不方便了,  
比如要对里面的数据进行排序输出(按平均分,每科的分高低排序等等)  
typedef struct student  
{  
long num;  
char name[10];  
float score[3];  
STDU *next;  
}STDU;  


能给我说1下怎么给他像数组一样排序吗?  
[老师让做一个学生成绩管理系统,我用老潭的书,里面链表一节都没讲如何给它排序.写入文件等等..请大家帮帮忙]



我自己写的,想把指针q当数组用,即(q+i),但没法输出正确结果:最后一个printf()输出不对


#include<stdio.h>
#include<stdlib.h>
typedef struct student
{
 long num;
 float score;
 struct student *next;
}STDU;
void main()
{
 int size,i,j,n=0;
 STDU *head,*p1,*p2,*q,*p,c[60];
 q=c;
 scanf(“%d”,&size);
 p1=p2=(STDU *)malloc(sizeof(STDU));
 printf(“enter\n”);
 scanf(“%ld,%f”,&p1->num,&p2->score);
 head=NULL;
 printf(“see\n”);
 for(i=0;i<size;i++)
 {
  n=n+1;
  if(n==1) head=p1;
  else p2->next=p1;
  p2=p1;
  p1=(STDU *)malloc(sizeof(STDU));
  printf(“%d\n”,i);
  scanf(“%ld,%f”,&p1->num,&p2->score);
 }
 printf(“ok\n”);
 p2=NULL;
 p=head;
 for(i=0;i<size;i++)
 {
  q=p;
  p=p->next;
  q++;
  
 }
 printf(“%ld,%f”,(q+1)->num,(q+1)->score);
}
 


 


 


 


链表的一个小问题》有 2 条评论

  1. linder99 说:

    有没学数据结构的排序啊?有很多数据结构的排序方法

  2. ybdesire 说:

    哦,还没!!1

    能 给我说一个简单易懂的吗??

留下一个回复