标题:[清理垃圾帖子]
只看楼主
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
得分:0 
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<limits.h>
typedef struct node{
        int value;
        struct node * next;
} Node;
typedef Node * List;

void InitialList( List * list )
{
        if( *list == NULL )
        {
                *list = (Node *)malloc(sizeof(Node));
                (*list)->value = INT_MIN;
                (*list)->next = NULL;
        }
        return ;
}

void DestroyList(List list)
{
        if ( list == NULL )
                return ;
        Node * p = list;
        Node * q = NULL ;
        while( ! p->next )
        {
                q = p;
                p = p->next;
                free(q);
                q = NULL;
        }

        free( p );
}

void InsertValue(List list, int value)
{
        if ( NULL == list )
        {
                printf("UnInitialized List\n");
                exit(1);
        }
        Node * tail = (Node *) malloc(sizeof(Node));
        tail->value = value;
        tail->next  = NULL;
        Node * point = list;
        while( point->next)
        {
                point = point->next;
        }
        point->next = tail;
}

void WalkList(List list)
{
        if( list == NULL )
                return ;
        else{

                Node * p = list->next ;
                while( p )
                {
                        printf("%d\t",p->value);
                        p = p->next;
                }
                printf("\n");
        }
        return ;
}

void DeleteMax(List list, Node * pre = NULL )
{
        static int max = INT_MIN;
        if ( list )
        {
                if( max < list->value)
                        max = list->value;
                DeleteMax(list->next, list );
                if( max == list->value)
                {
                        pre->next = pre->next->next;
                        printf("Delete %d\n",max);
                        free( list );
                }
        }
        return ;
}

int main()
{
        List list = NULL;
        InitialList(&list);
        InsertValue(list,5);
        InsertValue(list,4);

        InsertValue(list,3);
        InsertValue(list,5);
        DeleteMax(list);
        WalkList(list);
        DestroyList(list);
}


写了个递归的。
2011-10-20 17:17
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
得分:0 
楼上的, 我猜你实际工作中很少用链表. c 语言的链表不是这样用的

[ 本帖最后由 BlueGuy 于 2011-10-20 17:23 编辑 ]

我就是真命天子,顺我者生,逆我者死!
2011-10-20 17:21
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
得分:0 
提示: 该帖被管理员或版主屏蔽
2011-10-20 17:25
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
得分:0 
提示: 该帖被管理员或版主屏蔽

我就是真命天子,顺我者生,逆我者死!
2011-10-20 17:30
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
得分:0 
回复 23楼 Devil_W
提示: 该帖被管理员或版主屏蔽

我就是真命天子,顺我者生,逆我者死!
2011-10-20 17:31
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
得分:0 
以下是引用BlueGuy在2011-10-20 17:31:36的发言:

c 语言使用链表的时候,一般都是当作全局变量用的,
并且为了支持范型, 链表里存的都是 void*


我显然不要你跟我讲怎么写这玩意。又没想把这玩意写成公用lib。

这代码只是为了验证我的递归delete max的。
2011-10-20 17:36
cosam
Rank: 4
等 级:业余侠客
帖 子:146
专家分:259
注 册:2011-8-25
得分:0 
回复 6楼 BlueGuy
喔,你想下吧。。


2011-10-20 17:38
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
得分:0 
以下是引用单贴警告2在2011-10-21 10:03:53的发言:

SB版主,用void*写链表?你妈的,你到底写过程序没啊?

记录一下

论坛突然蹦出来一个2货,我以为是何方妖怪呢!
你这样的2货还来跟我叽叽歪歪的,真他妈蛋疼, 一边凉快去吧...

[ 本帖最后由 BlueGuy 于 2011-10-21 10:33 编辑 ]

我就是真命天子,顺我者生,逆我者死!
2011-10-21 10:16
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
得分:0 
到底几张红牌才会被禁言?

重剑无锋,大巧不工
2011-10-21 10:36
cosam
Rank: 4
等 级:业余侠客
帖 子:146
专家分:259
注 册:2011-8-25
得分:0 
被禁的人都是与:版主作对的,或者不同意版主的观点的。
2011-10-21 11:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-352979-1-1.html




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

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