实现列表:最后添加一个节点

时间:2014-04-05 19:47:22

标签: c++ list

//function to insert at the end of the list
 nodLista* inserareSfarsit(nodLista* capat,Produs p)
{
nodLista* nou= creareNod(p);
if(capat==NULL)
    {
    capat=nou;
    return nou;
    }


    nodLista* temp=capat;
    while(temp->next!=NULL)
        {
        temp=temp->next;
        temp->next=nou;
        return capat;
        }
}    

void main(){
nodLista* capatLista=NULL;
Produs p,p1,p2,p3,p4;
p1=generator("lapte",2);
p= generator("cafea",20);
p2=generator("seminte",10);
p3=generator("sticle",3);
p4=generator("pahare",4);
//afisareProdus(p);
afisareLista(capatLista);
capatLista=inserareInceput(capatLista,creareNod(p1));
//afisareLista(capatLista);
capatLista=inserareInceput(capatLista,creareNod(p2));
capatLista=inserareInceput(capatLista,creareNod(p3));
capatLista=inserareSfarsit(capatLista,p4);
afisareLista(capatLista);

_getch();
}

所以现在我的列表应该是这样的:

sticle 3
seminte 10
lapte 2

但是当我在最后添加p4产品时,它看起来像这样:

sticle
seminte
pahare

因此产品已经消失了

// inserareInceput在列表的开头插入一个节点

// afisareLista:显示列表

1 个答案:

答案 0 :(得分:1)

将这两行移出循环,你就完成了:

temp->next=nou;
return capat;