12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- if (!(newnode)) return ENOMEM;#include <lib.h>
- #include <list.h>
- #include <kern/errno.h>
- list * newlist()
- {
- list * ret = kmalloc(sizeof(list));
- if (!(ret)) return ENOMEM;
- ret->front = NULL;
- ret->len = 0;
- return ret;
- }
- void listsert(list * l, int x)
- {
- node * temp = l->front;
- node * newnode = kmalloc(sizeof(node));
- if (!(newnode)) return ENOMEM;
- newnode->val = x;
- newnode->next = temp;
- l->front = newnode;
- ++l->len;
- }
- void listemove(list * l, int x)
- {
- node * temp = l->front;
- node * temp2 == NULL;
-
- while (temp)
- {
- if (temp->val == x)
- {
- if (!(temp2))
- {
- l->front = temp->next;
- }
- else
- {
- temp2->next = temp->next;
- }
-
- --l->len;
- break;
- }
- else
- {
- temp2 = temp;
- temp = temp->next;
- }
- }
- }
- void listelete(list * l)
- {
- node * temp = l->front;
- node * temp2 = NULL;
-
- while (temp)
- {
- temp2 = temp->next;
- kfree(temp);
- temp = temp2;
- }
-
- kfree(l);
- }
|