int main(int argc, const char *argv[]) { linkstack_t *lsp; int i; data_t buf; lsp = creat_linkstack(); for(i = 0;i < 10;i ++){ push_linkstack(lsp,&i); } print_linkstack(lsp); pop_linkstack(lsp,&buf); printf("pop:%d\n",buf); pop_linkstack(lsp,&buf); printf("pop:%d\n",buf); pop_linkstack(lsp,&buf); printf("pop:%d\n",buf); pop_linkstack(lsp,&buf); printf("pop:%d\n",buf); print_linkstack(lsp); return 0; }
int main() { LinkStack *stack = NULL; int value = 1; stack = init_linkstack(N); while(0 <= push_linkstack(stack, value)) value ++; #if DEBUG _debug_linkstack_(stack); #endif while(0 <= pop_linkstack(stack, &value)) printf("%3d", value); putchar('\n'); free_linkstack(stack); return 0; }
int main(int argc, const char *argv[]) { int i; int day; int ball; int ball_last; LinkQueue *ball_Lq; LinkStack *ball_1_mLs; LinkStack *ball_5_mLs; LinkStack *ball_1_hLs; ball_Lq = create_linkqueue(); ball_1_mLs = create_empty_linkstack(); ball_5_mLs = create_empty_linkstack(); ball_1_hLs = create_empty_linkstack(); //队列ball_Lq初始化 for (i = 1; i <= 27; i++) { enter_linkqueue(ball_Lq,i); } day = 0; //当ball_Lq顺序不为1-27时,则循环end while (1) { if (ball_1_mLs->n < 4) { ball = delete_linkqueue(ball_Lq); push_linkstack(ball_1_mLs,ball); } else if (ball_1_mLs->n == 4 && ball_5_mLs->n < 11) { while (!is_empty_linkstack(ball_1_mLs)) { ball = pop_linkstack(ball_1_mLs); enter_linkqueue(ball_Lq,ball); } ball = delete_linkqueue(ball_Lq); push_linkstack(ball_5_mLs,ball); } else if (ball_1_mLs->n == 4 && ball_5_mLs->n == 11 && ball_1_hLs->n <= 11) { while (!is_empty_linkstack(ball_5_mLs)) { ball = pop_linkstack(ball_5_mLs); enter_linkqueue(ball_Lq,ball); } while (!is_empty_linkstack(ball_1_mLs)) { ball = pop_linkstack(ball_1_mLs); enter_linkqueue(ball_Lq,ball); } ball = delete_linkqueue(ball_Lq); push_linkstack(ball_1_hLs,ball); if (ball_1_hLs->n == 12) { ball_last = pop_linkstack(ball_1_hLs); while (!is_empty_linkstack(ball_1_hLs)) { ball = pop_linkstack(ball_1_hLs); enter_linkqueue(ball_Lq,ball); } enter_linkqueue(ball_Lq,ball_last); ++day; if (is_true_ballqueue(ball_Lq)) { printf("day = %d\n",day/2); return 1; } } } ////////////////////////////// #if 0/*{{{*/ if (ball_1_mLs->n == 4 && ball_5_mLs->n == 11 && ball_1_hLs->n == 11) { while (!is_empty_linkstack(ball_1_hLs)) { ball = pop_linkstack(ball_1_hLs); enter_linkqueue(ball_Lq,ball); } ball = delete_linkqueue(ball_Lq); enter_linkqueue(ball_Lq,ball); while (!is_empty_linkstack(ball_5_mLs)) { ball = pop_linkstack(ball_5_mLs); enter_linkqueue(ball_Lq,ball); } while (!is_empty_linkstack(ball_1_mLs)) { ball = pop_linkstack(ball_1_mLs); enter_linkqueue(ball_Lq,ball); } ++day; if (is_true_ballqueue(ball_Lq)) { printf("day = %d\n",day/2); return 1; } } #endif/*}}}*/ } return 0; }