コード例 #1
0
ファイル: main.cpp プロジェクト: CCJY/coliru
int main()
{
    Graph g;
    Node node1(1), node2(2), node3(3), node4(4), node5(5), node6(6), node7(7), node8(8), node9(9);
    
    g.insert (Graph::value_type(node1, node3));
    g.insert (Graph::value_type(node1, node4));
    g.insert (Graph::value_type(node1, node5));
    g.insert (Graph::value_type(node2, node6));
    g.insert (Graph::value_type(node3, node6));
    g.insert (Graph::value_type(node4, node7));
    g.insert (Graph::value_type(node5, node7));
    g.insert (Graph::value_type(node5, node8));
    g.insert (Graph::value_type(node5, node9));
    g.insert (Graph::value_type(node9, node5));
    
    Graph::key_compare cmp = g.key_comp();
    Graph::const_iterator it = g.begin(), itEnd = g.end(), prev;
    while (it != itEnd)
    {
        std::cout << it->first << ": "; // print vertex
        
        do
        {
            std::cout << it->second << ", "; // print adjacent vertices
            prev = it++;
        }        
        while (it != itEnd && !cmp(prev->first, it->first) && !cmp(it->first, prev->first));
        
        std::cout << std::endl;
    }
}
コード例 #2
0
ファイル: main.cpp プロジェクト: CCJY/coliru
int main()
{
    Graph g;
    Node node1(1), node2(2), node3(3), node4(4), node5(5), node6(6), node7(7), node8(8), node9(9);
    
    g.insert (Graph::value_type(node1, node3));
    g.insert (Graph::value_type(node1, node4));
    g.insert (Graph::value_type(node1, node5));
    g.insert (Graph::value_type(node2, node6));
    g.insert (Graph::value_type(node3, node6));
    g.insert (Graph::value_type(node4, node7));
    g.insert (Graph::value_type(node5, node7));
    g.insert (Graph::value_type(node5, node8));
    g.insert (Graph::value_type(node5, node9));
    g.insert (Graph::value_type(node9, node5));
    
    Graph::const_iterator it = g.begin();
    while (it != g.end())
    {
        std::pair<Graph::const_iterator, Graph::const_iterator> range = g.equal_range(it->first);
        
        std::cout << it->first << ": "; // print vertex
        
        for (; range.first != range.second; ++range.first)
        {
            std::cout << range.first->second << ", "; // print adjacent vertices
        }
        std::cout << std::endl;
        
        it = range.second;
    }
}
コード例 #3
0
ファイル: 124.cpp プロジェクト: shawnone/cppinterview
TEST(L124, normal)
{
	std::shared_ptr<TreeNode> node1(new TreeNode(1));
    std::shared_ptr<TreeNode> node2(new TreeNode(2));
    std::shared_ptr<TreeNode> node3(new TreeNode(3));
	
    Solution solution;
	
	ASSERT_EQ(1, solution.maxPathSum(node1.get()));
	node1->val = -3;
	ASSERT_EQ(-3, solution.maxPathSum(node1.get()));
	
	node1->val = 2;
	node2->val = -1;
	node1->left = node2.get();
	node1->right = 0;
	ASSERT_EQ(2, solution.maxPathSum(node1.get()));
	
	node1->val = -2;
	node3->val = -3;
	node1->right = node3.get();
	node1->left = 0;
	ASSERT_EQ(-2, solution.maxPathSum(node1.get()));
	
	node1->val = 2;
	node2->val = -1;
	node3->val = 2;
	node1->right = node3.get();
	node1->left = node2.get();
	ASSERT_EQ(4, solution.maxPathSum(node1.get()));
	
	node1->val = 5;
	node2->val = 4;
	node3->val = 8;
	std::shared_ptr<TreeNode> node4(new TreeNode(11));
    std::shared_ptr<TreeNode> node5(new TreeNode(13));
    std::shared_ptr<TreeNode> node6(new TreeNode(4));
	std::shared_ptr<TreeNode> node7(new TreeNode(7));
	std::shared_ptr<TreeNode> node8(new TreeNode(2));
	std::shared_ptr<TreeNode> node9(new TreeNode(5));
	std::shared_ptr<TreeNode> node10(new TreeNode(1));

	node2->left = node4.get();
	node3->left = node5.get();
	node3->right = node6.get();
	node4->left = node7.get();
	node4->right = node8.get();
	node6->left = node9.get();
	node6->right = node10.get();
	
	ASSERT_EQ(48, solution.maxPathSum(node1.get()));
}
コード例 #4
0
ファイル: path_sum.cpp プロジェクト: blizzaaard/lc2015
int main()
{
    Solution s;
    {
        TreeNode node5(5);   TreeNode node4(4);   TreeNode node8(8);
        TreeNode node11(11); TreeNode node13(13); TreeNode node4a(4);
        TreeNode node7(7);   TreeNode node2(2);   TreeNode node1(1);
        node5.left = &node4;  node5.right = &node8;
        node4.left = &node11; node8.left  = &node13; node8.right = &node4;
        node11.left = &node7; node11.right = &node2; node4a.right = &node1;
        std::cout << s.hasPathSum(&node5, 22) << std::endl;
    }
    return 0;
}
コード例 #5
0
void CLocaLogicImpl::GetMessageL(const CBBBtDeviceList* devices,
	const TTime& aAtTime,
	TInt& doSendToIndex, 
	TInt& aMessageCode, TDes& aWithName,
	TDes& aWithTitle, auto_ptr<HBufC8>& aBody) 
{
	CALLSTACKITEM_N(_CL("CLocaLogicImpl"), _CL("GetMessage"));
	TInterpreterAutoLock interpr;

	doSendToIndex=-1;

	TInt count=-1;
	const TBBBtDeviceInfo* dev=0;

	TInt max_seen_priority=-1;

	for (dev=devices->First(); dev; dev=devices->Next()) count++;
	
	python_ptr<PyObject> dict_general(PyDict_New());
	if (! dict_general ) User::Leave(KErrNoMemory);
	AddToPyDict(dict_general, "nodename", iNodeName);
	AddToPyDict(dict_general, "time", aAtTime);
	AddToPyDict(dict_general, "bt_count", count);

	// borrowed
	PyObject* main_module = PyImport_AddModule("__main__");
	if (! main_module ) User::Leave(KErrNoMemory);
	// borrowed
	PyObject* global_dict = PyModule_GetDict(main_module);
	if (! global_dict ) User::Leave(KErrNoMemory);
	// borrowed

	TInt index=0;
	dev=devices->First(); // first is the node itself
	for (dev=devices->Next(); dev; dev=devices->Next()) {
		index++;
		TBuf<15> mac;
		dev->iMAC.IntoStringL(mac);
		AddToPyDict(dict_general, "mac", mac);
		AddToPyDict(dict_general, "majorclass", dev->iMajorClass());
		AddToPyDict(dict_general, "minorclass", dev->iMinorClass());

		TBool found=EFalse;
		python_ptr<PyObject> dict_devstats(PyDict_New());
		{
			TBuf<50> node;
			TDevStats s;
			for(found=iDevStats->FirstStats(*dev, node, s); found; 
					found=iDevStats->NextStats(*dev, node, s)) {
				python_ptr<PyObject> dict_dev(
					DevStatToPyDict(s));
				auto_ptr<HBufC8> node8(HBufC8::NewL(node.Length()+2));
				TPtr8 p=node8->Des();
				iCC->ConvertFromUnicode(p, node);
				node8->Des().ZeroTerminate();
				AddToPyDict(dict_devstats, (char*)node8->Ptr(), dict_dev);
			}
		}
		python_ptr<PyObject> dict_msgstats(0);
		{
			TMessageStats s;
			iMessageStats->GetStatsL(*dev, s);
			dict_msgstats.reset(MessageStatToPyDict(s));
		}
		for (int i=0; i<iFunctions->Count(); i++) {
			TScriptError err=RunScript(main_module,
				global_dict, iFunctions->MdcaPoint(i), max_seen_priority,
				dict_general.get(), dict_devstats.get(), 
				dict_msgstats.get(),
				aMessageCode, aWithName,
				aWithTitle, aBody, iErrorMsgBuf, dev->iMAC()
				);
			if (err>EHighestPriority) {
#if !defined(__WINS__) && !defined(CONTEXTLOCA)
				if (IsInArray(iErrorFunctions, iFunctions->MdcaPoint(i))) {
					PyErr_Clear();
					continue;
				}
#endif
				AddToArrayL(iErrorFunctions, iFunctions->MdcaPoint(i));

				TBuf<50> name;
				TInt state=CCnvCharacterSetConverter::KStateDefault;
				iCC->ConvertToUnicode(name, iFunctions->MdcaPoint(i), state);
				name.SetLength(name.Length()-1);
				if (err==EPythonError) {
					AppendCheckingSpaceL(iErrorMsgBuf, _L(" in script "));
					AppendCheckingSpaceL(iErrorMsgBuf, name);
					ReportPythonError(iErrorMsgBuf);
				} else {
					Reporting().UserErrorLog( iErrorMsgBuf,
						_L(" in script "), name);
				}
			} else if (err==EHighestPriority) {
				doSendToIndex=index;
			}
		}
	}
	/*
	// phone or PDA
	if (aDevice.iMajorClass()==0x02 || (
		aDevice.iMajorClass()==0x01 && 
		aDevice.iMinorClass()>0x03 )) {
	} else {
		return;
	}
	*/

}