Server IP : 162.241.126.129 / Your IP : 18.218.231.116 Web Server : Apache System : Linux 162-241-126-129.cprapid.com 4.18.0-477.27.2.el8_8.x86_64 #1 SMP Fri Sep 29 08:21:01 EDT 2023 x86_64 User : rvway5nu4 ( 1018) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/graphviz/gvpr/ |
Upload File : |
/* knbhd - Return the k-neighborhood of a node, i.e., allnodes * whose path length from the given node is <= k. * ARGV[] = k node_name */ BEG_G { node_t ctr; int maxlen; graph_t comp = subg($, "kcomp"); int sid = 0, eid = 0; int curlen; node_t curnode; int nlen[node_t]; node_t stk[int]; node_t other; edge_t e; if (ARGC != 2) { printf (2, "Two arguments required\n"); exit(1); } if (!sscanf(ARGV[0],"%d",&maxlen)) { printf (2, "Improper length parameter \"%s\"\n", ARGV[0]); exit(1); } maxlen++; /* length of 0 means unset */ ctr = isNode ($, ARGV[1]); if (!ctr) { printf (2, "node %s not found\n", ARGV[1]); exit(1); } subnode (comp,ctr); nlen[ctr] = 1; curnode = ctr; while (curnode) { curlen = nlen[curnode]; if (curlen == maxlen) break; for (e = fstedge(curnode); e; e = nxtedge(e,curnode)) { other = e.head; if (other == curnode) other = e.tail; if (nlen[other]) continue; /* already seen */ subnode(comp,other); nlen[other] = curlen+1; stk[eid++] = other; } if (sid < eid) curnode = stk[sid++]; else curnode = NULL; } induce(comp); write(comp); }