-
Notifications
You must be signed in to change notification settings - Fork 254
/
sorted_linked_list.py
57 lines (43 loc) · 1.04 KB
/
sorted_linked_list.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
""" Lista Sequencial Dinamica e Ordenada """
import random
lista = []
def inserir_lista(chave, lista):
"""
Insere a chave na lista
"""
lista.append(chave)
i, p = 0, 0
while lista[i] < chave:
i += 1
p = len(lista) - 2
while p >= i:
lista[p + 1] = lista[p]
p -= 1
lista[i] = chave
def busca_sentinela(chave, lista):
"""Algoritmo de busca sentinela"""
lista.append(chave)
i = 0
while lista[i] != chave:
i += 1
if i == len(lista) - 1:
lista.pop()
return -1
lista.pop()
return i
def deleta_valor(chave, lista):
"""Deleta uma chave na lista"""
posicao = busca_sentinela(chave, lista)
if posicao >= 0:
lista.pop(posicao)
return True
return False
def mostra_lista(lista):
"""Imprime a lista"""
print(lista)
for _ in range(0, 50):
inserir_lista(random.randint(10, 99), lista)
print("Valor na posicao: " + str(busca_sentinela(25, lista)))
mostra_lista(lista)
deleta_valor(10, lista)
mostra_lista(lista)