示例#1
0
文件: main.c 项目: homer6/c_learning
int main(){

	const char *friends[] = { "Al", "Bob", "Carl" };
	Stack stack;
	
	StackNew( &stack, sizeof(char*), &StringFree );
	
	int x;
	for( x = 0; x < 3; x++ ){
		char *copy = strdup( friends[x] );
		StackPush( &stack, &copy );
	}

	printf( "Stack Size: %i\n", stack.logical_length );
	
	char *name = "";
	for( x = 0; x < 3; x++ ){
		StackPop( &stack, &name );
		printf( "%s\n", name );
		free(name);
	}
		
	printf( "Stack Size: %i\n", stack.logical_length );
	
	StackDispose( &stack );
	
	return 0;
	
}
int main(void){

  int a[]={10,20,30,40,50,60};
  int array_size = sizeof(a)/sizeof(a[0]);
  int element_size = sizeof(int);
  int i;
  Stack stackInt;
 
  StackNew(&stackInt,element_size);
  for(i=0;i<array_size;i++){
    StackPush(&stackInt,&a[i]);
  }
  int value; 
  while(!StackEmpty(&stackInt)){
    StackPop(&stackInt, &value);
    printf("Popped Value: %d\n",value);
  }

  StackDispose(&stackInt);
  return 0;
}
示例#3
0
int main()
{
	const char *friends[] = {"xx", "jj", "kk"};
	Stack stringStack;
	StackNew(&stringStack, sizeof(char*), freeFn);

	int i;
	for(i = 0; i < 3; ++i) {
		char *copy = strdup(friends[i]);
		StackPush(&stringStack, &copy);
	}

	char *name;
	for(i = 0; i < 3; ++i) {
		StackPop(&stringStack, &name);
		printf("%s\n", name);
		free(name);
	}

	StackDispose(&stringStack);
	return 0;
}