0
我沒有任何問題在中間或LinkedList
的開頭插入nodes
。但是,最後是不同的。當我嘗試打印值,它給我的地址:在LinkList的末尾插入節點C
現在,這裏是我如何建立LinkedList
:
employeeData ed[4];
node *head = NULL, *list = NULL;
for (int i = 0; i < 4; i++)
fscanf(file, "%d %s %d %d %lf", &ed[i].EMP_ID, ed[i].name, &ed[i].dept, &ed[i].rank, &ed[i].salary);
head = (node *)malloc(sizeof(node));
head->employee = ed[0];
head->next = NULL;
list = head;
for (int i = 1; i < 5; i++){
node *ptr = (node *)malloc(sizeof(node));
ptr->employee = ed[i];
ptr->next = NULL;
head->next = ptr;
head = head->next;
}
這是我如何將節點添加到它:
node *newNode = (node *)malloc(sizeof(node)), *temptr = list, *endNode = list;
newNode->employee.EMP_ID = id;
strcpy(newNode->employee.name, name);
newNode->employee.dept = dept;
newNode->employee.rank = rank;
newNode->employee.salary = salary;
newNode->next = NULL;
while (endNode->next != NULL) endNode = endNode->next;
if (id < temptr->employee.EMP_ID){
newNode->next = list;
list = newNode;
}
else if (id > endNode->employee.EMP_ID){
endNode->next = newNode;
}
else{
while ((temptr->next != NULL) && (temptr->next->employee.EMP_ID < newNode->employee.EMP_ID))
temptr = temptr->next;
newNode->next = temptr->next;
temptr->next = newNode;
}
當我嘗試刪除該值時,它會將其刪除。但是,它不顯示該值。
我在做什麼錯?
謝謝
'I <5','編[I]'..'ed [4]'不正確的數據。 – BLUEPIXY 2014-09-21 21:18:15
我不知道爲什麼。但是,當我選擇4而不是5時,它不顯示最後一個記錄(20,BoyBlue ...)。但是,問題肯定存在 – 2014-09-21 21:20:13