编程 各位帮帮忙啊

[复制链接]
查看11 | 回复0 | 2010-5-8 00:25:15 | 显示全部楼层 |阅读模式
1. 阅读程序,对主要语句进行注释,理解程序算法思路并用图形或语言描述。
Page108,四(5) :编写一个程序,首先创建一个按学号排序的学生信息链表,然后向此链表插入学生信息。
参考代码:
#include
struct stu
{
int number;
char name[20];
stu *next; //指针next指向下一个结构体,以此形成一个链表
};
int main()
{
stu s[3]={{1,"Jiang Tao",&s[1]},

{10,"Li Ming",&s[2]},

{20,"Yu Wei",NULL}};
stu *head=s; //头指针head
stu *p;
stu in={2,"Zhang San",NULL};
if(head->number>in.number)
in.next=head,head=∈
else
{
p=head;
while(p->next!=NULL)
{
if(p->next->number>in.number)
{

in.next=p->next;

p->next=∈

break;
}
else p=p->next;
}
p->next=∈
}
for(p=head;p!=NULL;p=p->next)
{
coutnumbernamenumber>in.number) in.next=head;head=∈(2):插在链表里面(即插在第一个节点之后,最后一个节点之前):所以用一个struct stu* p=head从第二个节点开始遍历到最后一个节点,以此来找到比in.number大的节点,并插到这个节点之前,所以要找到这个节点的前趋节点 while(p->next!=NULL) {
if(p->next->number>in.number)//如果比in.number大就插到p->next之前
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行