dllist.c

new_dllist()

{

Dllist d;

d = (Dllist) malloc (sizeof(struct dllist));

d->flink = d;

d->blink = d;

return d;

}

dll_insert_b(Dllist node, Jval v) /* Inserts before a given node */

{

Dllist newnode;

newnode = (Dllist) malloc (sizeof(struct dllist));

newnode->val = v;

newnode->flink = node;

newnode->blink = node->blink;

newnode->flink->blink = newnode;

newnode->blink->flink = newnode;

}

dll_insert_a(Dllist n, Jval val) /* Inserts after a given node */

{

dll_insert_b(n->flink, val);

}

dll_append(Dllist l, Jval val) /* Inserts at the end of the list */

{

dll_insert_b(l, val);

}

dll_prepend(Dllist l, Jval val) /* Inserts at the beginning of the list */

{

dll_insert_b(l->flink, val);

}

dll_delete_node(Dllist node) /* Deletes an arbitrary iterm */

{

node->flink->blink = node->blink;

node->blink->flink = node->flink;

free(node);

}

dll_empty(Dllist l)

{

return (l->flink == l);

}

free_dllist(Dllist l)

{

while (!dll_empty(l)) {

dll_delete_node(dll_first(l));

}

free(l);

}

Jval dll_val(Dllist l)

{

return l->val;

}

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: #hongson