-
Notifications
You must be signed in to change notification settings - Fork 0
/
lista-simplemente-enlazada.c
52 lines (45 loc) · 1.28 KB
/
lista-simplemente-enlazada.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include "lista-simplemente-enlazada.h"
/* PUSH FRONT */
struct NodoLista*
AgregarNodoAlInicio(struct NodoLista *nodo, struct Nodo* contacto){ // Complejidad O(1)
struct NodoLista *nuevoNodo = (struct NodoLista*)malloc(sizeof(struct NodoLista));// O(1);
if(nuevoNodo != NULL){
nuevoNodo -> contacto = contacto; // O(1)
if(nodo != NULL){
nuevoNodo -> siguiente = nodo; // O(1);
}
return nuevoNodo; // O(1)
}
return nodo; // O(1)
}
/* PUSH BACK */
struct NodoLista*
AgregarNodoAlFinal(struct NodoLista* nodo, struct Nodo *contacto){ // Complejidad O(n)
struct NodoLista* tmp = NULL; // O(1)
struct NodoLista* nuevoNodo = (struct NodoLista*)malloc(sizeof(struct NodoLista)); // O(1)
if(nuevoNodo != NULL){
nuevoNodo -> contacto = contacto; // O(1)
if(nodo == NULL){
return nuevoNodo; // O(1)
}
tmp = nodo; // O(1)
while(tmp -> siguiente != NULL){ // O(n)
tmp = tmp -> siguiente; // O(1)
}
tmp -> siguiente = nuevoNodo; //O(1)
return nodo; // O(1)
}
return nodo; // O(1)
}
/* DELETE FRONT */
struct NodoLista*
EliminarNodoAlInicio(struct NodoLista *nodo){ // Complejidad O(1)
struct NodoLista *tmp = NULL; // O(1)
if(nodo != NULL){
tmp = nodo; //O(1)
nodo = nodo -> siguiente; //O(1)
free(tmp); // O(1)
return nodo; // O(1)
}
return nodo; // O(1)
}