Exemple #1
0
bool isSymmetric( struct TreeNode * root )
{
	if(!root || (!(root->left) && !(root->right))) 
		return true;
	if(!root->left || !root->right) 
		return false;

	int count = 1;
	struct TreeNode **lStack = (struct TreeNode**)malloc(sizeof(struct TreeNode*));
	struct TreeNode **rStack = (struct TreeNode**)malloc(sizeof(struct TreeNode*));
	lStack[0] = root->left;
	rStack[0] = root->right;

	while(count)
	{
		int lIndex = 0, rIndex = 0;
		for(int i = 0; i < count; i++)
		{
			if(!lStack[i] || !rStack[count-i-1])
			{
				if(!lStack[i] && !rStack[count-i-1])
					continue;
				return false;
			}
			if(lStack[i]->val != rStack[count-i-1]->val)
				return false;
		}
		int lCount=0, rCount=0;
		lStack = fillNext(lStack, count, &lCount);
		rStack = fillNext(rStack, count, &rCount);
		if(lCount != rCount) return false;
		count = lCount;
	}
	return true;
}
Exemple #2
0
int main(void) {
    preparation_t queries[] = {
        { "rate",
            "SELECT connectionStrength((select id from mode),$2,$1)" },
        { "getpage",
            "select strength,title,songs.id from connections inner join songs on connections.blue = songs.id where red = (select id from mode) order by strength desc OFFSET $1 LIMIT $2;" }
    };
    PQinit();
    gtk_init(NULL,NULL);
    prepareQueries(queries);

    GtkBuilder* builder = gtk_builder_new_from_string(gladeFile,gladeFileSize);
    GtkWidget* top = GTK_WIDGET(gtk_builder_get_object(builder,"top"));
    GtkTreeSelection* selection = GTK_TREE_SELECTION(
            gtk_builder_get_object(builder,"song-selection"));
    GtkButton* rateup = GTK_BUTTON(
            gtk_builder_get_object(builder,"rateup"));
    GtkButton* ratedown = GTK_BUTTON(
            gtk_builder_get_object(builder,"ratedown"));

    g_signal_connect(G_OBJECT(rateup),"clicked",G_CALLBACK(yay),selection);
    g_signal_connect(G_OBJECT(ratedown),"clicked",G_CALLBACK(nay),selection);

    GtkListStore* model = GTK_LIST_STORE(
            gtk_builder_get_object(builder,"songs"));

    fillNext(selection,model);
    gtk_widget_show_all(top);
    gtk_main();
}