int verificar_parenteses(char formula[],int num){
    int i;

    for(i=0;formula[i]!='\0';i++){
        if(formula[i]=='('){
            add_tail(tail,formula[i]);
//            printf("\n\n");
//            ver_frente(head);
//            printf("\n\n");
           }

        if(formula[i]==')'){
            if(pop_tail(tail)!='('){
               while(pop_tail(tail)!='*');
                return 0;

        }
        }

    }
    if(pop_tail(tail)=='*')return 1;
    else{
            while(pop_tail(tail)!='*');
            return 0;}


}
示例#2
0
文件: snake.c 项目: Juiblex/Rsnake
/* No params, just use curDir */
void move() {
	int nx, ny;
	switch (curDir) {
		case RIGHT:
			nx = snake->x+1;
			ny = snake->y;
			break;
		case LEFT:
			nx = ((int)(snake->x))-1;
			ny = snake->y;
			break;
		case UP:
			nx = snake->x;
			ny = ((int)(snake->y))-1;
			break;
		case DOWN:
			nx = snake->x;
			ny = snake->y+1;
			break;
	}
		
	if(nx < 0) nx = MAX_LEN; if(nx > MAX_LEN) nx = 0;
	if(ny < 0) ny = MAX_HEI; if(ny > MAX_HEI) ny = 0;

	add_head(nx, ny);

	check_collisions();
	
	if(!no_pop) pop_tail();
	else no_pop--;
}
示例#3
0
文件: 01list.c 项目: Rovi/TarenaCode
//删除指定位置的节点
int del(List *plist, int pos)
{
    //1.判断坐标是否合法
    if(pos < 0 || pos >= size(plist))
    {
        printf("坐标不合法, 删除节点失败\n");
        return -1;

        //pos = 0;
        //pos = size(plist) - 1;
    }

    //2.当pos = 0时, 调用pop_head函数
    if(0 == pos)
    {
        return pop_head(plist);
    }

    //3.当pos = size(plist)-1, 调用pop_tail函数
    if(size(plist) - 1 == pos)
    {
        return pop_tail(plist);
    }

    //4.当pos为其他数值时的情况
    Node *pt = plist->head;
    int i = 0;
    for(i = 1; i < pos; i++)
    {
        //把对出来的next跑光
        pt = pt->next;
    }

    //把pos=1时的代码处理如下
    Node *pn = pt->next;
    pt->next = pn->next;
    int temp = pn->data;
    free(pn);
    pn = NULL;
    --plist->cnt;
    return temp;
}
static void test_pop_tail(void)
{
  using string = mtr::string;
  using vector = mtr::vector<string>;

  const char *strs[] = { "string 1",
                         "string 2",
                         "string 3",
                         "string 4" };

  auto v = vector().push_tail(string(strs[0]))
                   .push_tail(string(strs[1]))
                   .push_tail(string(strs[2]))
                   .push_tail(string(strs[3]));

  SHOULD_BE_EQ(v.tail(), string(strs[3]), "tail should equal last string");
  SHOULD_BE_EQ((int) v.length(), 4, "vector should be 4 items long");
  auto x = v.pop_tail();
  SHOULD_BE_EQ(x.tail(), string(strs[2]), "tail should equal next to last string");
  SHOULD_BE_EQ((int) x.length(), 3, "vector should be 3 items long");
}
示例#5
0
文件: 01list.c 项目: Rovi/TarenaCode
int main()
{
    //创建单链表, 并且初始化
    List list;
    list.head = NULL;
    list.tail = NULL;
    list.cnt = 0;


    printf("%s\n", empty(&list) ? "空" : "没空");
    printf("%s\n", full(&list) ? "满" : "没满");
    printf("链表中有%d个元素\n", size(&list));
    printf("----------------\n");
    push_head(&list, 11);
    travel(&list);
    push_head(&list, 22);
    travel(&list);
    push_head(&list, 33);
    travel(&list);
    printf("链表中有%d个元素\n", size(&list));
    printf("----------------\n");

    push_tail(&list, 44);
    travel(&list);
    push_tail(&list, 55);
    travel(&list);
    push_tail(&list, 66);
    travel(&list);

    printf("链表中有%d个元素\n", size(&list));
    printf("----------------\n");
    insert(&list, 77, -2);
    printf("链表中有%d个元素\n", size(&list));
    travel(&list);
    insert(&list, 88, 0);
    printf("链表中有%d个元素\n", size(&list));
    travel(&list);
    insert(&list, 99, 5);
    printf("链表中有%d个元素\n", size(&list));
    travel(&list);
    insert(&list, 100, 2);
    printf("链表中有%d个元素\n", size(&list));
    travel(&list);

    printf("--------------------\n");
    printf("头节点元素值: %d\n", get_head(&list));
    printf("尾节点元素值: %d\n", get_tail(&list));

    printf("--------------------\n");
    pop_head(&list);
    printf("链表中有%d个元素\n", size(&list));
    printf("头节点元素值: %d\n", get_head(&list));
    printf("尾节点元素值: %d\n", get_tail(&list));
    printf("--------------------\n");
    pop_tail(&list);
    printf("链表中有%d个元素\n", size(&list));
    printf("头节点元素值: %d\n", get_head(&list));
    printf("尾节点元素值: %d\n", get_tail(&list));

    printf("--------------------\n");
    del(&list, -2);
    travel(&list);

    del(&list, 0);
    travel(&list);

    del(&list, 4);
    travel(&list);

    del(&list, 1);
    travel(&list);

    del(&list, 2);
    travel(&list);

    del(&list, 7);
    travel(&list);
    printf("--------------------\n");
    reverse_list(&list);
    printf("链表中有%d个元素\n", size(&list));
    printf("头节点元素值: %d\n", get_head(&list));
    printf("尾节点元素值: %d\n", get_tail(&list));
    travel(&list);
    printf("--------------------\n");
    reverse_travel_list(&list);
    printf("=====清空========\n");
    clear(&list);
    return 0;
}