【发布时间】:2018-03-06 08:01:19
【问题描述】:
我很困惑我们是将元素添加到链表的前面还是后面。假设我们有一个链表,如下所示:x->a->c->v;在这里,x 是第一个还是最后一个元素?其次,如果要加x->a->c->v->h或h->x->a->c->v怎么办?当我遇到以下问题时,这让我很困惑:
考虑实现一个循环单链表数据结构。假设循环链表的指针
ptr指向最后一个节点,其link字段指向链表的第一个节点。完成下面指定的add(...)和delete(...)的算法。您可以编写伪代码或 C 代码。假设链表节点结构声明如下:typedef struct list_node* list_pointer; typedef struct list_node { int value; list_pointer link; } list_pointer ptr = NULL;请注意,如果循环链表为空,则其指针
ptr将设置为NULL。// Add node at the front of the circular list ptr; ptr points at the last node in the list void add(list_pointer *ptr, list_pointer node) { ... } // Delete the front node from the list ptr list_node delete(list_pointer *ptr) { ... }
【问题讨论】:
-
为了让事情更简单,想想转发列表
-
@codekaizer 你能详细说明一下吗?
标签: c linked-list