我是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