打印内容链表

时间:2012-10-31 02:42:25

标签: c

我知道如何打印列表的信息,但我的文件内容是倒置的!

void imprimi_tabuleiro(Tabuleiro* tabu)
{
    Tabuleiro* aux; // p auxiliar a prcorrer o tabuleiro
    for (aux = tabu; aux != NULL ; aux = aux ->Prox)
    {
        printf("\n%s %s %s %d\n ", aux ->casa , aux ->proxcasa , aux ->regracasa , aux ->energia);
    }
}

例如我的文件是:

1 2 0 0

3 4 5 7 


1 9 0 4

当我运行代码时出现

1 9 0 4


3 4 5 7


1 2 0 0 

我该如何改变?

3 个答案:

答案 0 :(得分:2)

原因可能是您有一个链接列表,当您向列表添加条目时,您将它们添加到列表的 head

解决方案是跟踪列表的尾部,然后在那里添加。

答案 1 :(得分:0)

即使你看起来有一个双向链表,看起来你是在前面插入条目,而不是列表的尾部。这肯定会导致反向排序。

你能展示你的阅读和插入代码吗?

答案 2 :(得分:0)

我明白了!

abuleiro* inserir_tabuleiro(Tabuleiro* Tab, char casa[] , char proxcasa[] , char regracasa[], int energia)

{

Tabuleiro* Novo  = cria(casa , proxcasa ,  regracasa,  energia); //cria novo no





Tabuleiro* anterior = NULL; //ponteiro p o anterior
Tabuleiro* p= Tab; // p percorrer








while(p!=NULL ){



            anterior = p ;
            p = p->Prox;




}



if(anterior==NULL)
{
    Novo->Prox = Tab;

    Tab = Novo;
}
else
{
    Novo->Prox = anterior->Prox;
    anterior->Prox = Novo;
}





return Tab;

}

谢谢大家!!