这篇教程C++ stackPop函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中stackPop函数的典型用法代码示例。如果您正苦于以下问题:C++ stackPop函数的具体用法?C++ stackPop怎么用?C++ stackPop使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了stackPop函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: test_stack_orderchar* test_stack_order() { stack* s = newStack(); struct stackelem* e1 = newStackElem(NULL); struct stackelem* e2 = newStackElem(NULL); struct stackelem* e3 = newStackElem(NULL); stackPush(s, e1); stackPush(s, e2); stackPush(s, e3); mu_assert("popping only elements should return them in reverse order (LIFO)", stackPop(s) == e3); mu_assert("popping only elements should return them in reverse order (LIFO)", stackPop(s) == e2); mu_assert("popping only elements should return them in reverse order (LIFO)", stackPop(s) == e1); mu_assert("after popping all elements, stack should be null", stackPop(s) == NULL); free(s); free(e1); free(e2); free(e3); return 0;}
开发者ID:jaapo,项目名称:tiralabra,代码行数:22,
示例2: FFrom/********************************************************************* Move float to param stack (assumes they both fit in a single CELL)** f>s *******************************************************************/static void FFrom(FICL_VM *pVM){ CELL c;#if FICL_ROBUST > 1 vmCheckFStack(pVM, 1, 0); vmCheckStack(pVM, 0, 1);#endif c = stackPop(pVM->fStack); stackPush(pVM->pStack, c); return;}
开发者ID:2asoft,项目名称:freebsd,代码行数:17,
示例3: errorCleanvoiderrorClean(void){ if (error_text) { int i; for (i = ERR_NONE + 1; i < error_page_count; i++) safe_free(error_text[i]); safe_free(error_text); } while (ErrorDynamicPages.count) errorDynamicPageInfoDestroy(stackPop(&ErrorDynamicPages)); error_page_count = 0;}
开发者ID:KimTaehee,项目名称:HappyStream,代码行数:13,
示例4: executeClosingBracket/* this function is used to execute closingBracket in multiple case*/void executeClosingBracket( Stack *dataStack, Stack *operatorStack){ Number *num ; Operator *Remove; Remove = stackPop(operatorStack); if( Remove == NULL || Remove->info->id !=OPEN_BRACKET) Throw(ERR_NO_OPENING_BRACKET); if( stackisEmpty(dataStack) ) Throw( ERR_NO_NUMBER ); }
开发者ID:Raydivine,项目名称:Calculator,代码行数:15,
示例5: testgeint testge(int pc){ int var = stackPop(&stack); if(var >= 0) { stackPush(&stack, 1); } else { stackPush(&stack, 0); } return pc + 1;}
开发者ID:vanhineam,项目名称:WICI,代码行数:13,
示例6: showMeFactvoid showMeFact( int n ) { Stack * s = makeStack( NULL ); int i = n; int fact = 1; void ** frameVars; /* * Push all frames onto the stack, emulating the process * that would take place during recursion. */ for( ; i>=0; i-- ) { /* * The next line is included to make clear the role of the base * case test in this iterative implementation. */ if( i == 0 ) break; stackPush( s, 1, (uintptr_t)i ); } /* * Print thet stack after we hit our base cose to see what it * actually looks like. * * We know we hit our base case here, because if we were writing * a fact function recursively, we would stop at 0, which is where * the loop ends. * * Add more calls to stackPrint around the function if you want to * see the state of the stack at different points during the calculation. */ printf( "Stack contents at factorial base case:/n" ); stackPrint( s ); /* * Pop the frames off of our stack, and perform the operation * that we perform on the way back up from our base case. */ for( ; i < n; i++ ) { frameVars = stackPop( s ); printf( "popped:/n" ); fact *= (uintptr_t)frameVars[0]; free( frameVars ); stackPrint( s ); printf( "Intermediate fact value: %d/n/n", fact ); } printf( "/nfact %d: %d/n", n, fact ); }
开发者ID:joseph8th,项目名称:unm-cs,代码行数:51,
示例7: main/** * Hlavní program. */int main(void) { tStack s; stackInit(&s); tiskniZasobnik(&s); prazdnyZasobnik(&s); stackPush(&s, 1); tiskniZasobnik(&s); prazdnyZasobnik(&s); stackPush(&s, 2); stackPush(&s, 3); stackPush(&s, 4); tiskniZasobnik(&s); prazdnyZasobnik(&s); int pom = 0; stackTop(&s, &pom); stackPop(&s); printf("Vyjmuli jsme: %d/n",pom); stackTop(&s, &pom); stackPop(&s); printf("Vyjmuli jsme: %d/n",pom); tiskniZasobnik(&s); prazdnyZasobnik(&s); stackDelete(&s); tiskniZasobnik(&s); prazdnyZasobnik(&s); return EXIT_SUCCESS;}
开发者ID:fkolacek,项目名称:FIT-VUT,代码行数:41,
示例8: tryEvaluatePrefixOperatorOnStackThenPushvoid tryEvaluatePrefixOperatorOnStackThenPush(Operator *newToken,Stack *numberStack,Stack *operatorStack){ Operator *previousToken=(Operator*)stackPop(operatorStack); if(previousToken == NULL){ stackPush(newToken,operatorStack); } else{ while(previousToken!=NULL) { if(newToken->info->id ==CLOSING_BRACKET_OP){ if(previousToken->info->id == OPENING_BRACKET_OP){ operatorPrefixEvaluate(numberStack ,previousToken); free(newToken); if(previousToken->info->id == OPENING_BRACKET_OP){ previousToken=(Operator*)stackPop(operatorStack); break; } }else { operatorEvaluate(numberStack,previousToken); } }else if(newToken->info->precedence >= previousToken->info->precedence || ((Operator*)newToken)->info->id==OPENING_BRACKET_OP ){ break; } else{ operatorEvaluate(numberStack,previousToken); } previousToken=(Operator*)stackPop(operatorStack); } if(previousToken!=NULL ){ stackPush(previousToken,operatorStack); } if(newToken->info->affix == PREFIX){ stackPush(newToken,operatorStack); } }}
开发者ID:kenmunyap,项目名称:PIC18Simulator,代码行数:38,
示例9: while//将二叉搜索树转换为双端列表struct node *treeToList(struct node *root){ if (NULL == root) { return root; } struct node *current = root, *head = NULL, *prev = NULL; struct stack *s; while (current != NULL) { stackPush(s, current); current = current->small; } while(!stackEmpty(s)) { current = stackPop(s); if (NULL == head) { head = current; } current->small = prev; if (prev != NULL) { prev->large = current; } prev = current; if (current->large != NULL) { current = current->large; while (current != NULL) { stackPush(s, current); current = current->small; } } } if (prev != NULL) { prev->large = NULL; } return head;}
开发者ID:ishaofeng,项目名称:LearnAlgorithm,代码行数:51,
示例10: coverNodesvoid coverNodes(CDGNode * root, CDGNode * nodes[], int size) { assert(NULL != root); if (0 == size) return; Stack *nodeStack = stackNew(sizeof(CDGNode *)); CDGNode *node; postOrder(root, nodeStack); while (!stackIsEmpty(nodeStack)) { stackPop(nodeStack, &node); visitIfExists(node, nodes, size); } updateCDG(root, 0); return;}
开发者ID:rajshukla,项目名称:Testgen_Release-_Feb-15,代码行数:14,
示例11: sizeofCDGNode *updateCDG(CDGNode * root, int initialize) { int size = sizeof(CDGNode *); assert(NULL != root); Stack *nodeStack = stackNew(size); CDGNode *node; postOrder(root, nodeStack); while (!stackIsEmpty(nodeStack)) { stackPop(nodeStack, &node); updateScore(node, initialize); } stackFree(nodeStack); return root;}
开发者ID:rajshukla,项目名称:Testgen_Release-_Feb-15,代码行数:14,
示例12: funcExitvoid funcExit(char* AssignLval){ printf("AssignLval: /"%s/" /n",AssignLval); symAssignFunctionReturn(AssignLval); funcVars* fv = (funcVars*) malloc (sizeof(funcVars)); stackPop(symStack, (&fv)); int j; for(j=0; j < fv->noOfVars; j++){ deleteEntryUsingVar(fv->vars[j]); del_vnameHash(fv->vars[j]); } //free(fv); printf("Stack depth %d/n", stackSize(symStack)); }
开发者ID:rajshukla,项目名称:Testgen,代码行数:14,
示例13: tryEvaluateOperatorOnStackThenPushvoid tryEvaluateOperatorOnStackThenPush(Operator *newToken,Stack *numberStack,Stack *operatorStack){ Operator *previousToken; previousToken=(Operator*)stackPop(operatorStack); if(previousToken==NULL){ stackPush(newToken,operatorStack); }else{ while(previousToken!=NULL){ if(newToken->info->precedence > previousToken->info->precedence){ break; } else{ operatorEvaluate(numberStack,previousToken); } previousToken=(Operator*)stackPop(operatorStack); } if(previousToken!=NULL ){ stackPush(previousToken,operatorStack); } stackPush(newToken,operatorStack); }}
开发者ID:chaosAD,项目名称:StringObjectCombinedWithShuntingYard,代码行数:23,
示例14: fopenBINTREE *createBinTree(){ int k; FILE *file = fopen("input.txt", "r"); BINTREENODE *p, *t; BINTREE *bt; bt = malloc(sizeof(BINTREE)); memset(bt, 0, sizeof(BINTREE)); STACK stack; stack.top = 0; char c; c = getc(file); while (c != '#') { switch (c) { case '(': stackPush(&stack, (int)p); k = 1; break; case ')': stackPop(&stack, (int *)&t); break; case ',': k = 2; break; default: p = malloc(sizeof(BINTREENODE)); memset(p, 0, sizeof(BINTREENODE)); p->data = c; if (bt->root == NULL) { bt->root = p; } else { if (k == 1) { stackGet(&stack, (int *)&t); t->left = p; } else { stackGet(&stack, (int *)&t); t->right= p; } } break; } c = getc(file); } fclose(file); return bt;}
开发者ID:aaa1616,项目名称:Fairy,代码行数:49,
示例15: remFromBasketint remFromBasket(Customer *c){ if(c==NULL) { printf("Error: No customer to process."); return -1; } basketItem *b = stackPop(c->basket); c->quantity-=getItemQuantity(b); delBasketItem(b); return 0;}
开发者ID:nibras-reeza,项目名称:apiit-supermarket-simulation-c,代码行数:15,
示例16: mainint main(){ int failed = 0; test1(&failed); stack_t anotherstack; int stackElem; int result = stackCreate( &anotherstack, 8 ); if(result == 0) for(int i=10; i < 50; i+=10) stackPush(&anotherstack, i); while( stackPop(&anotherstack, &stackElem) == 0 ){ printf(" Poped out element : %d /n",stackElem); } return 0;}
开发者ID:georgiosdoumas,项目名称:LinuxApplicationProgramming.2ndEd.2008,代码行数:15,
示例17: test_stackPop_given_6_should_pop_6void test_stackPop_given_6_should_pop_6(void){ stackNew(4); stackPush(&stack , 6); UnityAssertEqualNumber((_U_SINT)((6)), (_U_SINT)((stackPop(&stack))), (((void *)0)), (_U_UINT)68, UNITY_DISPLAY_STYLE_INT); UnityAssertEqualNumber((_U_SINT)((0)), (_U_SINT)((stack.size)), (((void *)0)), (_U_UINT)69, UNITY_DISPLAY_STYLE_INT);}
开发者ID:Raydivine,项目名称:Mock-Example-,代码行数:15,
|