我知道如何打印列表的信息,但我的文件内容是倒置的!
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
我该如何改变?
答案 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;
}
谢谢大家!!