| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1429 人关注过本帖
标题:终于看完了链表,拿出来晒晒。。。。。。。。。。
只看楼主 加入收藏
吴军旗
Rank: 5Rank: 5
等 级:职业侠客
帖 子:286
专家分:308
注 册:2011-9-14
结帖率:100%
收藏
 问题点数:0 回复次数:25 
终于看完了链表,拿出来晒晒。。。。。。。。。。
程序代码:
#include < stdio.h >
#include < stdlib.h >
#include < malloc.h >
#define NULL 0
#define LEN sizeof ( struct student )
struct student
{
    long num;
    float score;
    struct student *next;
};
int n;

struct student *creat ( void )
{
    struct student *head;
    struct student *p1, *p2;
    n = 0;
    p1 = p2 = ( struct student* ) malloc ( LEN );
    scanf ( "%ld, %f", &p1->num, &p1->score );
    head = NULL;
    while ( p1->num != 0 )
    {
        n = n + 1;
        if ( n == 1 )
            head = p1;
        else p2->next = p1;
        p2 = p1;
        p1 = ( struct student* )malloc ( LEN );
        scanf ( "%ld,%f", &p1->num, &p1->score );
    }
    p2->next = NULL;
    return(head);
}

void print ( struct student *head )
{
    struct student *p;
    printf ( "\nNow, These %d records are:\n", n );
    p = head;
    if ( head != NULL )
        do
        {
            printf ( "%ld %5.1f\n", p->num, p->score );
            p = p->next;
        }
        while ( p!= NULL );
}

struct student *del ( struct student *head, long num )
{
    struct student *p1, *p2;
    if ( head == NULL )
    {
        printf ( "\nlist null! \n" );
        return head;
    }
    p1 = head;
    while ( num != p1->num && p1->next != NULL )
    {
        p2 = p1;
        p1 = p1->next;
    }
    if ( num == p1->num )
    {
        if ( p1 ==head )
            head = p1->next;
        else
            p2->next = p1->next;
        printf ( "delete:%ld\n", num );
        n = n -1;
    }
    else
        printf ( "%ld not been found! \n", num );
    return ( head );
}

struct student *insert ( struct student *head, struct student *stud )
{
    struct student *p0, *p1, *p2;
    p1 = head;
    p0 = stud;
    if ( head == NULL )
    {
        head = p0;
        p0->next = NULL;
    }
    else
    {
        while ( ( p0->num > p1->num ) && ( p1->next != NULL ) )
        {
            p2 = p1;
            p1 = p1->next;
        }
        if ( p0->num > p1->num )
        {
            if ( head == p1 )
                head = p0;
            else
                p2 ->next = p0;
            p0->next = p1;
        }
        else
        {
            p1->next = p0;
            p0->next = NULL;
        }
    }
    n = n + 1;
        return ( head );
}



    void main ( )
    {
        struct student *head, stu;
        long del_num;
        printf ( "input records:\n" );
        head = creat ( );
        print ( head );
        printf ("\ninput the deleted number:" );
        scanf ( "%ld",&del_num );
        head = del ( head, del_num );
        print ( head );
        printf ( "\ninput the inserted record: " );
        scanf ( "%ld,%f", &stu.num, &stu.score );
        head = insert ( head, &stu );
        print ( head );
        system ( "pause" );
    }


搜索更多相关主题的帖子: color 
2011-10-23 22:37
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
坐一下沙法。。有什么学习心得么?

我们都在路上。。。。。
2011-10-24 11:39
零波丽
Rank: 3Rank: 3
来 自:莉莉斯
等 级:论坛游侠
帖 子:222
专家分:107
注 册:2011-9-8
收藏
得分:0 
我可以问个事情吗? 楼主 你写的 代码 没有 注解 别人 怎么看?~
如果可以的话 真的可以 加上 注解 的 别人 看着 不用去 猜想 你的意思 简单 不是 很好嘛?~

人又是什么?神造出来的东西。 人是人造出来的东西。
2011-10-24 13:10
忆泪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:49
注 册:2011-10-22
收藏
得分:0 
看倒是看懂啦,就是自己写的时候总是很纠结,感觉无处下手啊,,,有何学习心得交流一下呗
2011-10-24 19:51
吴军旗
Rank: 5Rank: 5
等 级:职业侠客
帖 子:286
专家分:308
注 册:2011-9-14
收藏
得分:0 
回复 2楼 hellovfp
少来了,你比我厉害吧。。。。

最惨的不是忘不了悲伤的回忆,而是那些悲伤的回忆却开始记不清。。。
2011-10-24 23:58
lin471306489
Rank: 4
等 级:业余侠客
帖 子:136
专家分:247
注 册:2011-8-16
收藏
得分:0 
还行啦,编程风格还不错啊,而且函数也用得不错!
但是好像是书本上的代码吧???
2011-10-25 00:07
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
回复 5楼 吴军旗
没有总结,哪里有提高呀?
再说了,我比你厉害?臆想?
不会的,你和我都一样,没有高手和低手之分,只有资料的多寡,闻道的先后之差,不必看低自己,你不比别人差多少。

我们都在路上。。。。。
2011-10-25 11:26
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
收藏
得分:0 
其实

链表而已。。 有必要晒吗?
2011-10-25 11:28
吴军旗
Rank: 5Rank: 5
等 级:职业侠客
帖 子:286
专家分:308
注 册:2011-9-14
收藏
得分:0 
回复 6楼 lin471306489
我又没有说是我写的,真是的。。。。我刚看完链表,我可写不出来,,,

最惨的不是忘不了悲伤的回忆,而是那些悲伤的回忆却开始记不清。。。
2011-10-25 12:26
吴军旗
Rank: 5Rank: 5
等 级:职业侠客
帖 子:286
专家分:308
注 册:2011-9-14
收藏
得分:0 
回复 7楼 hellovfp
你的话每回都很有深度,值得学习,不过我还是觉得你谦虚了。。。。。。。。。。

最惨的不是忘不了悲伤的回忆,而是那些悲伤的回忆却开始记不清。。。
2011-10-25 12:27
快速回复:终于看完了链表,拿出来晒晒。。。。。。。。。。
数据加载中...
 
   



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

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