First time here? Check out the FAQ!

Ask Your Question
0

Path after deletion of vertex

asked 13 years ago

G-Sage gravatar image

updated 13 years ago

The following code

g = graphs.PathGraph(15)
g.delete_vertex(6)
g

prints

Path Graph: Graph on 14 vertices

but it's not a path after I delete vertex 6. It's the disjoint union of 2 paths. Same thing occurs with cycle (except it says Cycle Graph), same thing occurs if you delete an edge from either. Happens with complete graph if you delete an edge and make it no longer complete... so probably happens with any such named graph under edge or vertex deletions. Or, if you end with "Print g" instead of just "g", it says just "Complete Graph".

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
0

answered 13 years ago

DSM gravatar image

Yeah, that's a side effect of the way the classes work. I'm not sure what the best way to handle this is:

(1) Give up on clever naming entirely.

(2) Check whether the name still makes sense whenever the graph is changed and update accordingly. This would be very silly and very expensive.

(3) Check whether the name still makes sense whenever the name is printed, and update accordingly. This makes a lot more sense but could still be pretty expensive, although it could have a modification-invalidating cache.

(4) Whenever a graph has nodes or vertices changed, in-place or otherwise, set a "modified" flag. If the modified flag is set, print the generic string instead, without testing whether the name would still apply. This would add one extra operation to every graph change, but it should be pretty fast.

ISTR this came up on one of the mailing lists within the last six months or so.

Preview: (hide)
link

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 13 years ago

Seen: 345 times

Last updated: Jan 28 '12