Esempio n. 1
0
bool Node::isChildNode(Node *node) 
{
	for (Node *cnode = getChildNodes(); cnode != NULL; cnode = cnode->next()) {
		if (isChildNode(cnode, node) == true)
			return true;
	}
	return false;
}
Esempio n. 2
0
File: main.cpp Progetto: lfxy/utils
bool isChildNode(dTree* rootNode, dTree* childNode)
{
    if(rootNode == NULL || childNode == NULL)
    {
        return false;
    }

    bool ischild = false;
    if(rootNode->value == childNode->value)
        ischild = checkRestNode(rootNode->pleft, childNode->pleft) && checkRestNode(rootNode->pright, childNode->pright);

    if(!ischild)
        ischild = isChildNode(rootNode->pleft, childNode);

    if(!ischild)
        ischild = isChildNode(rootNode->pright, childNode);

    return ischild;
}
Esempio n. 3
0
int FPNode::numCon( bool includeParentItem, bool includeHiddenConnectors ) const
{
	unsigned count = 0;
	
	FlowConnectorList connectors = m_inFlowConnList;
	if ( m_outputConnector )
		connectors.append ( m_outputConnector );
	
	FlowConnectorList::const_iterator end = connectors.end();
	for ( FlowConnectorList::const_iterator it = connectors.begin(); it != end; ++it )
	{
		if ( *it && ( includeHiddenConnectors || ( *it )->canvas() ) )
			count++;
	}
	
	if ( isChildNode() && includeParentItem )
		count++;

	return count;
}
Esempio n. 4
0
bool FPNode::handleNewConnector( Connector * connector )
{
	if (!connector)
		return false;

	// FIXME dynamic_cast connector
	if ( m_inFlowConnList.contains(dynamic_cast<FlowConnector *> (connector) ) || 
		    ((Connector*)m_outputConnector == connector) )
	{
		kWarning() << k_funcinfo << " Already have connector = " << connector << endl;
		return false;
	}

	connect( this, SIGNAL(removed(Node*)), connector, SLOT(removeConnector(Node*)) );
	connect( connector, SIGNAL(removed(Connector*)), this, SLOT(checkForRemoval(Connector*)) );
	connect( connector, SIGNAL(selected(bool)), this, SLOT(setNodeSelected(bool)) );

	if ( !isChildNode() )
		p_icnDocument->slotRequestAssignNG();

	return true;
}
Esempio n. 5
0
File: main.cpp Progetto: lfxy/utils
int main()
{
    int svalue = 0;
    dTree* rootnode = makeTree(svalue, 5);
    printTree(rootnode);
    printf("\n");
    svalue = 13;
    dTree* childnode = makeTree(svalue, 2);
    /*
    dTree childnode;
    dTree childnode1;
    dTree childnode2;
    childnode.value = 2;
    childnode1.value = 3;
    childnode2.value = 6;
    childnode.pleft = &childnode1;
    childnode.pright = &childnode2;
    childnode1.pleft = NULL;
    childnode1.pright = NULL;
    childnode2.pleft = NULL;
    childnode2.pright = NULL;
    */
    printTree(childnode);
    printf("\n");
    if(isChildNode(rootnode, childnode))
        printf("is child node!\n");
    else
        printf("is not child node!\n");

    printTree(rootnode, true);
    printf("\n");
    std::string test;
    std::string base = "111";
    test = "/" + base + "aa";
    printf("test:%s\n", test.c_str());
    return 0;
}