注册 登录
编程论坛 数据结构与算法

哪位高手看看此程序有什么问题?谢谢大家!

ghc123 发布于 2011-04-20 09:51, 350 次点击
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define NULL 0
#define data size
#define Len sizeof(struct LLnode)

typedef struct LLnode
{
    int data;
    struct LLnode *next;
}*Lnode;

typedef Lnode LLink;

LLink Init_Link()
{
    LLink p;
    p=(Lnode)malloc(Len);
    if(!p)        return 0;
    p->size=0;
    p->next=NULL;
    return p;
}

int Get_L(LLink L,int e)
{
    Lnode q;
    q=(Lnode)malloc(Len);
    if(!q)        return 0;
    q->data=e;
    q->next=L->next;
    L->next =q;
    L->size++;
    return 1;
}

int Output_L(LLink L)
{
    LLink p,q;
    int i=L->size;
    p = L->next ;
    q = Init_Lilk();
    if(i==0)        return 0;
    while(i>0)
    {
        Get_L(q,p->data);
        p=p->next ;
        i--;
    }

    if(!p)        return 0;
    p=q;
    q=q->next ;
    free(p);
    i=q->size ;
    while(i>0)
    {
        printf("%d",q->data);
        if(q->next) printf(",");
        p=q;
        q=q->next;
        free(p);
    }
    if(i == 0)    {free(q);return 1;}
    return 0;
}

main()
{
    LLink LL;
    int e;
    char a=',';
    LL=Init_Link();
    while(a==',')
    {
        scanf("%d",&e);
        Get_L(LL,e);
        a=getchar();
    }
    Output_L(LL);
    return 0;
}

6 回复
#2
寒风中的细雨2011-04-20 12:34

Output_L(LLink L) 这个函数具体是想做点什么  看起来很乱  看名字像是打印 但是里面 什么都有点
#3
ghc1232011-04-20 19:52
回复 2楼 寒风中的细雨
就是要打印,有什么问题呢?
#4
寒风中的细雨2011-04-21 07:53
程序代码:
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>

#define NULL 0
#define data size
#define Len sizeof(struct LLnode)

typedef struct LLnode
{
    int data;
    struct LLnode *next;
}*Lnode;

typedef Lnode LLink;

LLink Init_Link()
{
    LLink p;
    p=(Lnode)malloc(Len);
    if(!p)        return 0;
    p->size=0;
    p->next=NULL;
    return p;
}

int Get_L(LLink L,int e)
{
    Lnode q;
    q=(Lnode)malloc(Len);
    if(!q)        return 0;
    q->data=e;
    q->next=L->next;
    L->next =q;
    L->size++;
    return 1;
}

int Output_L(LLink L)
{
    LLink p = NULL;
    int i=L->size;

    if ( 0 == i )
    {
        return 1;
    }

    while ( i != 0 )
    {
        p = L->next;
        printf("%d ", p->size);
        L->next = p->next;
        free(p);
        p = NULL;

        --i;
    }

    return 0;
}

main()
{
    LLink LL;
    int e;
    char a=',';
    LL=Init_Link();
    while(a==',')
    {
        scanf("%d",&e);
        Get_L(LL,e);
        a=getchar();
    }
    Output_L(LL);
    printf("\n");

    return 0;
}

只有本站会员才能查看附件,请 登录
#5
寒风中的细雨2011-04-21 07:54
不知道是不是你想要的
#6
ghc1232011-04-28 21:36
我想要的是
输入:1234,1234,3456,3457,4578,2367
输出:2367,4578,3457,3456,1234,1234
 谢谢你的回复。
#7
ghc1232011-04-28 21:37
我想我明白了,谢谢你!
1