Ejemplo n.º 1
0
void KaminoHistoryModule::PreInitialize(){
	KaminoHistoryStack::start = NULL;
	KaminoHistoryStack::init_start = NULL;
	KaminoHistoryStack::end = NULL;
	KaminoHistoryStack::num = 0;
	KaminoHistoryStack::recent_history_json = NULL;
	KaminoHistoryStack::file_content = NULL;	
	wchar_t *file_name = L"KaminoResource\\History.file";
	int64 len = GetCurrentDirectory(0, NULL);
	KaminoHistoryStack::file_path = (wchar_t *)malloc((len + wcslen(file_name))*sizeof(wchar_t));
	GetCurrentDirectory(len, KaminoHistoryStack::file_path);
	wcscpy(wcsrchr(KaminoHistoryStack::file_path, '\\')+1, file_name);
	base::FilePath path(KaminoHistoryStack::file_path);
	base::PlatformFile file = base::CreatePlatformFile(path, base::PLATFORM_FILE_OPEN_ALWAYS | base::PLATFORM_FILE_WRITE | base::PLATFORM_FILE_READ,
		NULL, NULL);
	base::PlatformFileInfo info;
	base::GetPlatformFileInfo(file, &info);
	KaminoHistoryStack::file_size = info.size;
	if(info.size != 0){
		KaminoHistoryStack::file_content = (char *)malloc(info.size);
		base::ReadPlatformFile(file, 0, KaminoHistoryStack::file_content, info.size);				
	}
	base::ClosePlatformFile(file);
	BuildStack();
}
Ejemplo n.º 2
0
int main( int argc, char* argv[] )
{
/* ------------------ */
/* Parse command line */
/* ------------------ */

	gArgs.SetCmdLine( argc, argv );

/* ----------- */
/* Build stack */
/* ----------- */

	BuildStack();

/* ---- */
/* Done */
/* ---- */

	fprintf( flog, "\n" );
	fclose( flog );

	return 0;
}
Ejemplo n.º 3
0
 vector<int> closestKValues(TreeNode* root, double target, int k) {
     TreeNode* start = ClosestNode(root, target);
     vector<TreeNode*> left_stack;
     BuildStack(root, start, left_stack);
     vector<TreeNode*> right_stack(left_stack.begin(), left_stack.end());
     vector<int> result;
     result.push_back(start->val);
     TreeNode* larger_node = NULL;
     TreeNode* smaller_node = NULL;
     while(result.size() < k) {
         if(larger_node == NULL) {
             larger_node = LargerNode(right_stack);
         }
         if(smaller_node == NULL) {
             smaller_node = SmallerNode(left_stack);
         }
         if(larger_node == NULL) {
             result.push_back(smaller_node->val);
             smaller_node = NULL;
             continue;
         }
         if(smaller_node == NULL) {
             result.push_back(larger_node->val);
             larger_node = NULL;
             continue;
         }
         if(abs(smaller_node->val - target) < abs(larger_node->val - target)) {
             result.push_back(smaller_node->val);
             smaller_node = NULL;
         } else {
             result.push_back(larger_node->val);
             larger_node = NULL;
         }
     }
     return result;
 }