Sponsored Content
Full Discussion: [C] deleting node from graph
Top Forums Programming [C] deleting node from graph Post 302531699 by Luke Bonham on Friday 17th of June 2011 01:52:23 PM
Old 06-17-2011
[C] deleting node from graph

Using adjacency lists, I implemented this operation as follows:

Code:
/* remove the first node it finds with value 'val' in L list */
edge *removeEdge (edge *L, int val)
{
      if( !L ) return NULL;

      if( L->key == val )
      {
          edge *temp = L->next;
          free (L);
          return temp;
      }

      L->next = removeEdge (L->next, val);

      return L;
}

/* deletes node with key u from G */
int g_deleteNode (graph *G, int u)
{
    int i;     
    
    if( G != NULL && (u >= 0 && u < G->nv) )
    {   
        for( i = 0; i < G->nv; i++ )
             /* because removeEdge is a list node removing function */
             G->adj[i]->next = removeEdge (G->adj[i]->next, u);
        
        for( i = u; i < G->nv; i++ )
             if( i + 1 < G->nv ) G->adj[i] = G->adj[i+1];
        
        free(G->adj[i]);
        
        G->nv--;
               
        return 1;
    }
    
    else
    {
        if( !G ) printf("Error: null graph.\n");
        else printf("Error: edge does not belong to graph.\n");        
        return 0;
    }
}

Fact is, sometimes it crashes: could you help me understand why?

And is this a good implementation, or could I do better?

Thanks in advance.
 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Graph generation

How can I generate graphs using perl in unix solaris environment? Please suggest. (2 Replies)
Discussion started by: wadhwa.pooja
2 Replies

2. AIX

Performance graph

Guru's I need to develop a graph which shows the CPU, memory and swap space utilization in a single graph against time I know of NMON but I am not able to make a single graph out of it. Does anyone know of any script or tool for data sampling and developing graph? Thanks in advance ... (1 Reply)
Discussion started by: balaji_prk
1 Replies

3. Shell Programming and Scripting

FS Growth Graph

It's been a while since i've been here.. and hopefully you can help me. I have created a script to get the filesystem utilization. Now i want to create a growth graph, which would show how much kb we increase per day. Here's the data 03-02-2010 00:00:00: /dev/md/dsk/d30 46473377 7355320... (5 Replies)
Discussion started by: ryandegreat25
5 Replies

4. Solaris

SVM metaset on 2 node Solaris cluster storage replicated to non-clustered Solaris node

Hi, Is it possible to have a Solaris cluster of 2 nodes at SITE-A using SVM and creating metaset using say 2 LUNs (on SAN). Then replicating these 2 LUNs to remote site SITE-B via storage based replication and then using these LUNs by importing them as a metaset on a server at SITE-B which is... (0 Replies)
Discussion started by: dn2011
0 Replies

5. UNIX for Dummies Questions & Answers

Help with Plotting a graph using Perl

Dear all, I have a hash in my data file and I'd like to output the data contained within as a graph (can be lines or histogram form) but I dont know how to do this with Perl. Can somone suggest how I can have a graph with Keys of the hash being on the X-axis and the Values for the keys plotted on... (1 Reply)
Discussion started by: pawannoel
1 Replies

6. Programming

Graph in java

Hello, Please how can represent this graph in java ? i have to apply an algorithm on this graphe, the first instruction of the algorithm is to verify if the three last vertices are dependent or not ? Thank you. (1 Reply)
Discussion started by: chercheur857
1 Replies

7. UNIX for Dummies Questions & Answers

Deleting a pattern in UNIX without deleting the entire line

Hi I have a file: r58778.3|SOURCES={KEY=f665931a...,fw,221-705}|ERRORS={16_1:T,30_1:T,56_1:C,57_1:T,59_1:A,101_1:A,115:-,158_1:C,186_1:A,204:-,271_1:T,305:-,350_1:C,368_1:G,442_1:C,472_1:G,477_1:A}|SOURCE_1="Contig_1092402550638"(f665931a359e36cea0976db191ff60ff09cc816e) I want to retain... (15 Replies)
Discussion started by: Alyaa
15 Replies

8. Homework & Coursework Questions

Accessing one UNIX node from another node of the same server

Hi Experts, I am in need of running a script from one node say node 1 via node 2. My scheduling tool dont have access to node2 , so i need to invoke the list file from node1 but the script needs to run from node2. because the server to which i am hitting, is having access only for the node... (5 Replies)
Discussion started by: arun1377
5 Replies

9. HP-UX

Mount FIle systems from node-1 onto node-2

Hi, We have HP UX service guard cluster on OS 11.23. Recently 40+ LUNs presented to both nodes by SAN team but I was asked to mount them on only one node. I created required VGs/LVs, created VxFS and mounted all of them and they are working fine. Now client requested those FS on 2nd node as... (4 Replies)
Discussion started by: prvnrk
4 Replies
Graph::Easy::Layout::Path(3pm)				User Contributed Perl Documentation			    Graph::Easy::Layout::Path(3pm)

NAME
Graph::Easy::Layout::Path - Path management for Manhattan-style grids SYNOPSIS
use Graph::Easy; my $graph = Graph::Easy->new(); my $bonn = Graph::Easy::Node->new( name => 'Bonn', ); my $berlin = Graph::Easy::Node->new( name => 'Berlin', ); $graph->add_edge ($bonn, $berlin); $graph->layout(); print $graph->as_ascii( ); # prints: # +------+ +--------+ # | Bonn | --> | Berlin | # +------+ +--------+ DESCRIPTION
"Graph::Easy::Layout::Scout" contains just the actual path-managing code for Graph::Easy, e.g. to create/destroy/maintain paths, node placement etc. EXPORT
Exports nothing. SEE ALSO
Graph::Easy. METHODS into Graph::Easy This module injects the following methods into "Graph::Easy": _path_is_clear() $graph->_path_is_clear($path); For all points (x,y pairs) in the path, check that the cell is still free. $path points to a list x,y,type pairs as in "[ [x,y,type], [x,y,type], ...]". _create_cell() my $cell = $graph->($edge,$x,$y,$type); Create a cell at "$x,$y" coordinates with type $type for the specified edge. _path_is_clear() $graph->_path_is_clear(); For all points (x,y pairs) in the path, check that the cell is still free. $path points to a list of "[ x,y,type, x,y,type, ...]". Returns true when the path is clear, false otherwise. _trace_path() my $path = my $graph->_trace_path($src,$dst,$edge); Find a free way from source node/group to destination node/group for the specified edge. Both source and destination need to be placed beforehand. METHODS in Graph::Easy::Node This module injects the following methods into "Graph::Easy::Node": _near_places() my $node->_near_places(); Take a node and return a list of possible placements around it and prune out already occupied cells. $d is the distance from the node border and defaults to two (for placements). Set it to one for adjacent cells. _shuffle_dir() my $dirs = $node->_shuffle_dir( [ 0,1,2,3 ], $dir); Take a ref to an array with four entries and shuffle them around according to $dir. _shift() my $dir = $node->_shift($degrees); Return a the "flow()" direction shifted by X degrees to $dir. AUTHOR
Copyright (C) 2004 - 2007 by Tels <http://bloodgate.com>. See the LICENSE file for information. perl v5.14.2 2011-12-23 Graph::Easy::Layout::Path(3pm)
All times are GMT -4. The time now is 05:42 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy