我看過很多不同的在線問題,無法弄清楚我做錯了什麼。我現在可能會走錯方向,因爲我嘗試了很多不同的東西。C Simple LinkedList
我只是想在C中做一個簡單的單鏈表。我似乎無法弄清楚如何使列表保持連接。
我節點的結構
typedef struct node
{
double x; // x-coordinate of this point in the tour
double y; // y-coordinate of this point in the tour
struct node* next; // Pointer to the next node in the linked list
} Node;
這是我的代碼,使名單,我建一個空的節點在主
Node* addFront(Node* first, double x, double y) {
first = malloc(sizeof(Node));
if (first == NULL) {
first->x = x;
first->y = y;
first->next = NULL;
}
else {
Node * temp = malloc(sizeof(Node));
temp->x = x;
temp->y = y;
temp->next = first;
first = temp;
}
//Temp testing
int size = 0;
Node * current = first;
while (current->next != NULL) {
printf("(%.4f, %.4f)\n", current->x, current->y);
current = current -> next;
size++;
}
printf("Size: %d\n", size);
return first;
}
的一些注意事項第一= NULL:
檢查第一個是否爲空應該是不必要的......該列表應該能夠使用else語句來構建。 (我的想法)
添加if/else語句後,我得到了什麼似乎是一個無限循環與C只是指向隨機存儲器,最終導致分段故障。
我只是不知道在哪裏可以找到。先進的謝謝你!
塊'如果(第一== NULL){...}'沒有按」沒有意義。如果'first'是'NULL',則不能執行'first-> x = x;'等等。這只是說,'malloc'在分配內存之前失敗了。 – pzaenger