我是C新手,我想寫一個鏈接列表,其中每個節點只包含一個int。結構的定義是可以的,但我也想編寫方法來更新這個鏈表(在尾部添加元素並刪除頭元素)。 (我想能夠讀取最近添加的元素)創建一個鏈表來實現隊列
我寫了下面的函數,但我不知道應該在哪裏發生這個函數以及如何實現它。任何人都可以幫助我嗎?
typedef struct Node{
Node next = NULL;
int number;
} Node;
void add_node(Node *LL,int val){
// add node to the end of the linked list
new_node = (struct Node *)malloc(1*sizeof(struct Node));
new_node->number = val;
Node n = *LL;
while (n.next != NULL){
n = n.next;
}
n.next = new_node;
}
void delete_head(Node *LL){
// update the head
*LL = LL->next;
//free?
}
void update_LL(*LL,int val){
add_node(*LL,val);
delete_head(*LL);
}
'節點下一= NULL;' - >'結構Node * next;'in C. – BLUEPIXY 2014-10-07 15:57:00
正如所寫,沒有辦法從'delete_head'內更新頭部:它傳遞一個指向頭節點的指針,但不知道該值的存儲位置,因此無法更新它。你可以(正如很多人所說的那樣)刪除那個節點,但是跟蹤頭部的任何東西都需要更新到新的頭部。 – 2014-10-07 16:06:58