-
Notifications
You must be signed in to change notification settings - Fork 0
/
Arreglo.py
86 lines (73 loc) · 3.43 KB
/
Arreglo.py
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
from ArbolCaracteres import ArbolCaracteres
class Arreglo:
def __init__(self):
self.diccionario = {}
#Direcciones es un arreglo de indices {0:{Nombre:"Daniel", Direccion: "Zona 4", Telefono:{0:56457854,1:48457585}}}
#valor es el valor que se desea guardar
def add(self,direcciones, valor):
self.__add3(0,direcciones,valor,self.diccionario)
def __add3(self,indice,direcciones,valor, diccionario):
if isinstance(diccionario,dict):
if not direcciones[indice] in diccionario:
new_dic = {}
diccionario[direcciones[indice]] = new_dic
if indice +1 < len(direcciones):
self.__add3(indice+1,direcciones,valor,diccionario[direcciones[indice]])
else:
diccionario[direcciones[indice]] = valor
else:
self.__add3(indice+1,direcciones,valor,diccionario[direcciones[indice]])
def firstElement(self,diccionario):
for index in diccionario.values():
return index
def exist(self, direcciones):
return self.__existeIndex(0,direcciones,self.diccionario)
def __existeIndex(self, indice, direcciones, diccionario):
if isinstance(diccionario,dict):
if direcciones[indice] in diccionario:
if indice +1< len(direcciones):
return self.__existeIndex(indice+1, direcciones,diccionario[direcciones[indice]])
else:
return False
else:
if indice+1==len(direcciones):
if(diccionario, ArbolCaracteres):
return False
return True
def isThree(self,direcciones):
return self.__lastElement(0, direcciones,self.diccionario)
def __lastElement(self,indice,direcciones, diccionario):
if isinstance(diccionario,dict):
if direcciones[indice] in diccionario:
if indice+1 < len(direcciones):
return self.__lastElement(indice+1, direcciones, diccionario[direcciones[indice]])
else:
if isinstance(diccionario,ArbolCaracteres):
return True
return False
def setChars(self, direcciones, value):
self.__chars(0, direcciones,value, self.diccionario)
def __chars(self, indice, direcciones, value, diccionario):
if isinstance(diccionario,dict):
if direcciones[indice] in diccionario:
if indice+1 < len(direcciones):
return self.__chars(indice+1, direcciones,value, diccionario[direcciones[indice]])
else:
if isinstance(direcciones[indice],int):
diccionario.setChar(direcciones[indice],value)
return True
return False
def getValue(self,direcciones):
return self.__get(0,direcciones, self.diccionario)
def __get(self,index, direcciones, diccionario):
if (index+1)==len(direcciones):
return diccionario[direcciones[index]]
else:
return self.__get(index+1, direcciones, diccionario[direcciones[index]])
def setValue(self, direcciones, value):
self.__set(0,direcciones,value,self.diccionario)
def __set(self,index, direcciones, value, diccionario):
if (index+1)==len(direcciones):
diccionario[direcciones[index]]=value
else:
self.__set(index+1, direcciones, value, diccionario[direcciones[index]])