From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Simple Components (Generic_Directed_Graph)
Date: Mon, 30 Oct 2017 21:43:23 +0100
Date: 2017-10-30T21:43:23+01:00 [thread overview]
Message-ID: <ot82ta$1prq$1@gioia.aioe.org> (raw)
In-Reply-To: ot7r4v$1caq$1@gioia.aioe.org
On 2017-10-30 19:30, Victor Porton wrote:
> Oh, I've finally realized that Node_Type and Node are not the same type. Now
> your logic seems clear.
>
> But how to solve my particular problem?
>
> I have two objects (URI1 and URI2) of URI_Type type each (or for simplicity
> both could be two strings). I need to check if there exists a path from URI1
> to URI2. How to do this?
URI1 : Node := new String'("http://foo.html");
URI2 : Node := new String'("http://bar.html");
URI3 : Node := new String'("http://baz.html");
begin
Connect (URI1, URI2);
Connect (URI2, URI3);
--
-- The graph is now:
--
-- "http://foo.html" -> "http://bar.html" -> "http://baz.html"
--
if Is_Ancestor (URI1, URI2) then
-- There is a path in the graph
> My current idea is to use Ada standard "map" container which could map from
> "access URI_Type" to "URI_Type" (for all URIs in the considered finite set)
> before asking your generic package for existence of a path.
If you are concerned about performance in the case when same tests
frequently repeat, you can keep a map (Node,Node)-> Boolean in order to
cache once evaluated results.
> The same problem appears when I insert new edges: An edge should be
> identified by two values of type URI_Type but you require two accesses to
> URI_Type instead. Should I convert URI_Type to "access URI_Type" using a
> standard map before inserting into the graph?
You cannot convert it, node objects are allocated in a special storage
pool backed by the pool passed as the package parameter. The graph
structure is stored in that pool as well.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2017-10-30 20:43 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-30 10:41 Simple Components (Generic_Directed_Graph) Victor Porton
2017-10-30 11:04 ` Victor Porton
2017-10-30 11:34 ` Dmitry A. Kazakov
2017-10-30 11:23 ` Dmitry A. Kazakov
2017-10-30 14:58 ` Victor Porton
2017-10-30 15:46 ` Dmitry A. Kazakov
2017-10-30 17:46 ` Dennis Lee Bieber
2017-10-30 20:29 ` Dmitry A. Kazakov
2017-10-30 15:13 ` Victor Porton
2017-10-30 15:54 ` Dmitry A. Kazakov
2017-10-30 18:30 ` Victor Porton
2017-10-30 20:43 ` Dmitry A. Kazakov [this message]
2017-10-30 21:20 ` Victor Porton
2017-10-30 22:39 ` Dmitry A. Kazakov
2017-10-31 7:36 ` Simon Wright
2017-10-31 8:16 ` Dmitry A. Kazakov
2017-10-31 11:12 ` Victor Porton
2017-10-31 12:42 ` Dmitry A. Kazakov
2017-10-31 15:07 ` Victor Porton
2017-10-31 15:48 ` Dmitry A. Kazakov
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox