文件 DoubleList.htypedef struct DulNode{ int data; struct DulN

1个回答

  • lude "stdlib.h"

    /*加入这个头文件原因

    函数名称:malloc

    函数原型:void * malloc(unsigned size);

    函数功能:分配size字节的存储区

    函数返回:所分配的内存区地址,如果内存不够,返回0

    参数说明:

    所属文件:

    */

    #define NULL 0

    typedef struct Lnode{

    int data;

    struct Lnode* next;

    }Lnode;

    int n,x;

    Lnode* creat()

    {

    Lnode* head;

    Lnode* p1;

    n=5;x=1;

    p1=(Lnode*)malloc(sizeof(Lnode));

    head=p1;

    while(n>1)

    {

    p1->data=x++;

    p1->next=(Lnode*)malloc(sizeof(Lnode));

    p1=p1->next;

    n--;

    }

    //此时p1是最后一个新建的节点,故需将值赋给其值域.

    p1->data=x;

    p1->next=NULL;

    return head;

    }

    void print(Lnode* p3) //最好不要老是用head,以防混淆

    {

    printf("Now,these list is:");

    Lnode* p2;

    p2=p3;

    while(p2!=NULL) //应该判断的是当前指针是否为空.

    {

    printf("%d",p2->data);

    p2=p2->next;

    }

    }

    void main()

    {

    Lnode* p3;

    p3=creat();

    print(p3);

    }

    这样程序的输出结果是:12345.

    我想这才是楼主想要的结果吧.

    在下对楼主的建议有:

    1 学习指针时在稿纸上分析节点里面的数据情况,特别是头指针和最后一个节点的情况,防止出现指针断节,或存在空数据.

    2 编程习惯需要稍微改善,尽量规范一些编程.

    在下第一次为人解答问题,如有回答不妥的地方,忘见谅!