所以,大家好,我是想實現在C鏈表算法,下面的代碼:語言C,算法在LINUX上運行良好,而不是在Windows 7上運行?
#include <stdio.h>
#include <stdlib.h>
typedef struct lista{
int info;
struct lista *next;
} *aplinked, strulinked;
aplinked insereNoFim(aplinked inicio, aplinked novo)
{
aplinked temp;
if (inicio == NULL)
inicio = novo;
else{
temp = inicio;
while (temp->next != NULL)
temp=temp->next;
temp->next = novo;
}
return inicio;
}
aplinked lenovo()
{
aplinked x;
x = (aplinked) malloc (sizeof(strulinked));
scanf ("%d", &x->info);
return x;
}
void exibe(aplinked inicio){
aplinked temp = inicio;
if (temp == NULL)
printf ("Não existe dados");
else
while (temp!=NULL){
printf ("\n info: %d \n", temp->info);
temp = temp->next;
}
}
aplinked remover(aplinked inicio, int x)
{
aplinked ant = NULL;
aplinked temp = inicio;
//procura o elemento na lista, guardando o anterior.
while (temp!=NULL && temp->info != x){
ant = temp;
temp = temp->next;
}
//verifica se achou
if (temp == NULL)
return inicio; //no caso de não achar
if (ant == NULL)
inicio = temp->next; //retirar o 1o elemento
else
ant->next = temp->next;
free (temp);
return inicio;
}
int pesquisa (aplinked inicio, int x){
aplinked temp = inicio;
while (temp!=NULL){
if (temp->info == x)
return 1;
temp = temp->next;
}
return 0;
}
int main()
{
int cont = 1;
aplinked inicio = NULL;
while (cont){
inicio = insereNoFim(inicio, lenovo());
scanf ("%d", &cont);
}
exibe(inicio);
printf ("Digite numero a ser pesquisado: \n");
scanf ("%d", &cont);
if (pesquisa (inicio, cont))
printf ("achou o elemento buscado \n");
else
printf ("não achou");
printf ("Digite elemento a ser removido: \n");
scanf ("%d", &cont);
inicio = remover (inicio, cont);
exibe (inicio);
}
是的,代碼不是英語,但你可能有它是關於什麼的想法,所以,鏈接列表,刪除/插入/搜索/打印功能,在Linux上運行良好,但它不能在Windows上運行良好!
有什麼想法?
有什麼問題。在Windows?你可以請細節? – m0skit0 2013-04-11 18:14:56
您是否嘗試調試它?你看見什麼了?你有什麼錯誤症狀? – ugoren 2013-04-11 18:15:07
定義:在Windows中'不能正常運行'的意思是什麼。 – 2013-04-11 18:15:21