悬赏300分(C语言)

来源:百度知道 编辑:UC知道 时间:2024/05/29 16:09:57
2.假设学生链表中的结点结构及含义定义如下:
struct Student
{
long number; //学号
Student *next; //指向下一个结点的指针
};
函数Delete()是从链表中将指定学号的学生结点删除,它有两个参数:head是学生链表的链首指针,number是被删除结点的学生学号,请完成该函数并验证之。
3. 定义一结构体数组,从终端输入50个学生的基本情况,包括学号(XH),姓名(XM),籍贯(JG)和成绩(CJ)。要求按每个学生的成绩由高到低排序输出。

2.看下行不,三个函数基本可以满足你的要求
#include"stdio.h"
#include"iostream.h"
typedef struct node
{
long number;
node *next;
}seqlist;
printnode(seqlist*L)//显示链表中数据
{
seqlist *Node,*H;
H=L;
while(H->next)
{

printf("%d\n",H->next->number);
H=H->next;

}
}

deletnode(seqlist*L)//删除一个结点
{
long nu;
seqlist *Node,*H;
H=L;
printf("输入要删除的结点:");
cin>>nu;
while(H->next)
{

if(H->next->number==nu)
{
H->next=H->next->next;
break;
}
H=H->next;

}
}

void creathead(seqlist*L)//建立一个链表
{
long nu;
seqlist *Node,*H;
H=L;
while(1)
{
printf("请输入学号(0结束):");
cin>>nu;
if(nu!=0)
{
Node=new node;