单链表的建立 --头插法 尾插法

//尾插法

LinkList createList(LinkList &L){
    LNode *s,*r=L;//s用来指向新申请的结点,r始终指向L的终端结点 
    int x;
    L=(LinkList*)malloc(sizeof(LNode));//建立头结点
     
    scanf("%d",&x);
    
    while(x!=9999){
        //9999做结束标记 
        s=(LinkList*)malloc(sizeof(LNode));
        s->data=x;
        //插入s到表尾 
        r->next=s; 
        r=s;//r指向终端结点 
scanf("%d",&x);
    }
    r->next=NULL;//尾结点指针置空
    return L;
}
//头插法

LinkList createList(LinkList &L){
    LNode *s;
    int x;
    L=(LinkList*)malloc(sizeof(LNode));
    L->next=NULL;
    scanf("%d",&x);
    
    while(x!=9999){
        //9999做结束标记 
        s=(LinkList*)malloc(sizeof(LNode));
        s->data=x;
        s->next=L->next;
        L->next=s;//将新结点插入表中,L为头指针
scanf("%d",&x);
}
return L; }
//初始化一个单链表(带头结点)
bool InitList(LinkList &L){
    L=(LNode*)malloc(sizeof(LNode));//分配一个头结点
    if(L==NULL)
    return false;//内存不足,分配失败
    L->next=NULL;
    return true; 
} 

猜你喜欢

转载自www.cnblogs.com/ikigai18/p/12716388.html