单链表的建立

先搞个结点

typedef struct node
{
    int data;
    struct node *next;
} node;

建立链表

先看下头插法,头结点与新结点之间一直往头插就得事

//头插法

int main()
{
    node *L,*p,*q;
    int i;
    L=(node*)malloc(sizeof(node));
    L->next=NULL;
    for(i=0;i<5;i++)
    {
        p=(node *)malloc(sizeof(node));
        p->data=i;
        p->next=L->next;
        L->next=p;
    }
    q=L->next;
    while(q!=NULL)
    {
        printf("%d ",q->data);
        q=q->next;
}
return 0;

 头插法也太叛逆了吧,咱顺着逻辑搞个尾插法试试

//尾插法

int main()
{
    node *L,*p,*q,*r;
    int i;
    L=(node*)malloc(sizeof(node));
    r=L;
    L->next=r;
    for(i=0;i<5;i++)
    {
        p=(node *)malloc(sizeof(node));
        p->data=i;
        L->next=p;
        L=p;
    }
    L->next=NULL;
    q=r->next;
    while(q!=NULL)
    {
        printf("%d ",q->data);
        q=q->next;
}
return 0;
}

宿舍熄灯了,不想写了,拜拜,下次见 

你可能感兴趣的:(笔记,链表,p2p,数据结构)