当前位置: 首页>>代码示例>>C++>>正文


C++ createStack函数代码示例

本文整理汇总了C++中createStack函数的典型用法代码示例。如果您正苦于以下问题:C++ createStack函数的具体用法?C++ createStack怎么用?C++ createStack使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了createStack函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: test_pop_element_from_stack

void test_pop_element_from_stack(){
	int _5 = 5,_6 = 6;
	Stack* integerStack = createStack(3);
	ASSERT(push(integerStack,&_5));
	ASSERT(push(integerStack, &_6));
	ASSERT(_6 == *(int*)pop(integerStack));
	// dispose(integerStack);
}
开发者ID:mohit88,项目名称:DSA,代码行数:8,代码来源:stackWithoutMemTest.c

示例2: main

int main()
{
        Queue* q = (Queue*)malloc(sizeof(Queue));
        q->s1 = createStack(10, 1);
        q->s2 = createStack(10, 2);
        int i;
        for(i = 1 ; i < 10 ; i++)
        {
                insert(&q, i);
        }
        printf("queue:%d\n", qRemove(&q));
        printf("queue:%d\n", qRemove(&q));
        printf("queue:%d\n", qRemove(&q));
        printf("queue:%d\n", qRemove(&q));
        
        return 0;
}
开发者ID:gsrr,项目名称:Programs,代码行数:17,代码来源:3-5.c

示例3: core_handle

void core_handle(string str, int n, int k)
{
    cout << "for string " << str << endl;
    Stack<char> s = createStack(str);
    cout << s.toString() << endl;
    roll(s, n, k);
    cout << s.toString() << endl << endl;
}
开发者ID:MO2013,项目名称:practice,代码行数:8,代码来源:roll.cpp

示例4: calc

void calc(char *inf)
{
	if (isDigit (inf[0]) || inf[0] == '(')
	{
		int i = 0;
		char c = '\0';
		bool hasBracket = false;
		Stack * head = createStack();
		while ((inf[i] != '\0'))
		{
			if (isOp(inf[i]))
			{
				printf(" ");				
				if (!isEmpty(head))			
				{	
					c = pop(head);
					if (c == '(')						//again, check if bracket (it's second, first is down there)
						push(head, c);																	 
					else
						if (isHigher(inf[i], c))     //check if operand has higher priority 
								push(head, c);
						else
						{
							while (!isEmpty(head))
							{
								printf("%c ", c);
								c = pop(head);
							}
							printf("%c ", c);
						}
				}
				push(head, inf[i]);	
			}
			else 
				if (isDigit(inf[i]))               // check if number
					printf("%c", inf[i]);
				else								//check if bracket
					if (inf[i] == '(')
						push(head, inf[i]);
					else							//push all out till (
						if (inf[i] == ')')
						{
							c = pop(head);
							while ((c != '(') && (!isEmpty(head)))
							{
								printf("%c ", c);
								c = pop(head);
							}
						}
			i++;

		}
		while (!isEmpty(head))
			printf("%c ", pop(head));
	}
	else 
		printf("error");
}
开发者ID:esengie,项目名称:Semester1,代码行数:58,代码来源:task3.cpp

示例5: exp2post

char* exp2post(char* exp)
{
	Stack* stack = createStack(tamanhoaux);
	char top, str;
	char* convertedExp = (char*) malloc(tamanhoaux*sizeof(char));
	int i=0, p=-1, j=0;
	while(exp[i]!='\0')
	{
		if (!peek(stack,&top))
			p=-1;
        	else
		        p=prioridade(top);
		str = exp[i];
		if(((str >= 'A')&&(str <= 'z')) || (((str>='0')&&(str<='9'))))
		{
			convertedExp[j] = str;
			j++;
		}
		else if(str=='(')
		{
			push(stack,str);
		}
		else if(str==')')
		{
			push(stack,str);
			top=')';
			while(top!='(')
			{
		                pop(stack,&top);
		                if(top!='('&&top!=')')
		                {
		                    convertedExp[j]=top;
		                    j++;
		                }
			}
		}
		else if (prioridade(str)<=p)
        	{
			pop(stack,&top);
			convertedExp[j]=top;
			j++;
			push(stack,str);
		}
		else if(prioridade(str)>p)
	        {
			push(stack,str);
		}
		i++;
	}
	while(!isEmptyStack(stack))
        {
    	    pop(stack,&top);
    	    convertedExp[j]=top;
		j++;
    	}
	convertedExp[j] = '\0';
	return convertedExp;
}
开发者ID:vinnymorais01,项目名称:automatos,代码行数:58,代码来源:principalGrep.c

示例6: evaluateExpression

int evaluateExpression(char *expression){
	Token *token;
	Stack *numberStack=createStack();
	Stack *operatorStack=createStack();

	if(expression ==NULL){
		Throw(ERR_NO_ARGUMENT);
	}
	Text *newText=textNew(expression);
	String *tokenizer = stringNew(newText);
	
	
	token=getToken(tokenizer);
	if(token->type == IDENTIFIER_TOKEN){
		Throw(ERR_NOT_ACCEPT_IDENTIFIER);
	}else{
	while(token!=NULL){
		if(isOperator(token)){
			if(((Operator*)token)->info->affix!=PREFIX)
			tryConvertToPrefix((Operator*)token);
		stackPush(token,operatorStack);
		}else if(isNumber(token)){
			stackPush(token,numberStack);
			break;
		}else
			Throw(ERR_INVALID_IDENTIFIER);
		token=getToken(tokenizer);
		if(token==NULL)
			break;
	}
		
	}
	
	while((token=getToken(tokenizer))!=NULL ){
		evaluatePostfixesPrefixesAndInfixes(expression,token,numberStack,operatorStack);
	}
	evaluateAllOperatorOnStack(numberStack,operatorStack);
	Number *result=(Number*)stackPop(numberStack);
	destroyStack(numberStack);
	if(operatorStack !=NULL){
		destroyStack(operatorStack);
	}
	return result->value;
	
}
开发者ID:kenmunyap,项目名称:PIC18Simulator,代码行数:45,代码来源:Evaluate.c

示例7: create_chars

Stack create_chars(int length, char *array){
	int i;
	Stack charData = *createStack(sizeof(char), length);
	for (i = 0; i < charData.total_elements; ++i)
	{
		((char *)charData.starting_address)[i] = array[i];
	}
	return charData;
}
开发者ID:harjassingh0007,项目名称:DSA,代码行数:9,代码来源:stackTest.c

示例8: create_strings

Stack create_strings(int length, string array){
	int i;
	Stack strData = *createStack(sizeof(string), length);
	for (i = 0; i < strData.total_elements; i++)
	{
		(*(string *)strData.starting_address)[i] = *array+i*sizeof(string);
	}
	return strData;
}
开发者ID:harjassingh0007,项目名称:DSA,代码行数:9,代码来源:stackTest.c

示例9: test_2_create_a_new_char_type_Stack

void test_2_create_a_new_char_type_Stack(){
	Stack data , expected ;
	char temp[] = {0,0,0,0,0};
	expected.starting_address = temp;
	expected.each_size = sizeof(char);
	expected.total_elements = 5;
	data = *createStack(sizeof(char), 5);
	ASSERT(1 == areEqual(data, expected));
}
开发者ID:harjassingh0007,项目名称:DSA,代码行数:9,代码来源:stackTest.c

示例10: test_3_create_a_new_string_type_Stack

void test_3_create_a_new_string_type_Stack(){
	Stack data , expected ;
	string temp[] = {"","",""};
	expected.starting_address = temp;
	expected.each_size = sizeof(string);
	expected.total_elements = 3;
	data = *createStack(sizeof(string), 3);
	ASSERT(1 == areEqual(data, expected));
}
开发者ID:harjassingh0007,项目名称:DSA,代码行数:9,代码来源:stackTest.c

示例11: main

int main() {
    stack *S = createStack(10);
    // printArray(input, argc-1);
    tree* root = makeTree(input, argc-1);
    inOrderNonRecursive(S, root);
    showTreeStack(S);
    shutDown(S, root, input);
	return 0;
}
开发者ID:sharanyaa,项目名称:DataStructuresAndAlgorithms,代码行数:9,代码来源:tree.c

示例12: create_ints

Stack create_ints(int length, int *array){
	int i;
	Stack intData = *createStack(sizeof(int), length);
	for (i = 0; i < intData.total_elements; ++i)
	{
		((int *)intData.starting_address)[i] = array[i];
	}
	return intData;
}
开发者ID:harjassingh0007,项目名称:DSA,代码行数:9,代码来源:stackTest.c

示例13: main

int main()
{
   struct Stack* stack = createStack(2);
    pop(stack);
    push(stack, 10);
    push(stack, 20);
    push(stack, 30);
    pop(stack);
   return 0;
}
开发者ID:tanvi-surana,项目名称:coding-problems,代码行数:10,代码来源:infix-postfix.c

示例14: preorderIterative

void preorderIterative (struct Node *root){
    struct Stack* s1 = createStack();
    struct Stack* s2 = createStack();
    struct Node* temp;
    
    push(&s1,root);
    
    while(s1){
        temp = pop(s1);
        push(&s2,temp);
        if(root->left) push(&s1,root->left);
        if(root->right) push(&s2,root->right);
    }
    
    while(s2){
        temp= pop(s2);
        cout << temp->data << endl;
    }
}
开发者ID:Lohit9,项目名称:MasterYourAlgorithms,代码行数:19,代码来源:postorderT.cpp

示例15: main

int
main(){
    Stack *stack = createStack("Some data for the top of the stack");
    push(stack, "Some more data");
    printf("%s\n", stack->first->value);
    printf("%s\n", stack->first->next->value);
    void* data = pop(stack);
    printf("%s\n", data);
    return 0;
}
开发者ID:REAANDREW,项目名称:katas,代码行数:10,代码来源:main.c


注:本文中的createStack函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。