# Revision history [back]

Consider the following code. It follows the description of your relabeling method (I'm not sure of what you really want to get). I can display the relabeled graph.

def relabeling(G):
deg = sorted([(d,u) for u,d in G.degree_iterator(labels=True)], key=lambda x: x[0], reverse=True)
L = dict()
k = 0
for _,u in deg:
if u in L:
# The vertex has already been labeled
continue
L[u] = k
k += 1
for v in G.neighbor_iterator(u):
if v in L:
# v has already been labeled
continue
L[v] = k
k += 1
H = G.relabel(perm=L, inplace=False)
return H

G = graphs.RandomGNM(10,20)
H = relabeling(G)
H.show()