Exemple #1
0
int main(int argc, char* argv[])
{
	LinkedListHandle* list = LinkedListNew();
	int values[5] = {0,1,2,3,4};
	int i = 0;	

	for (i = 0; i < 5; i++)
	{
		LinkedListAppend(&values[i], list);
	}

	i=0;
	LinkedListNode* node = LinkedListFirst(list);

	do
	{
		DBG_ASSERT( 
		            *((int*)LinkedListValueFromNode(node)) == 
		            values[i] 
		          );
		i++;
	} while( (node = LinkedListNextNode(node)) );
	DBG_ASSERT( i == 5);

	DBG_ASSERT( !LinkedListHasNextNode( LinkedListLast(list) ) );
	
	DBG_ASSERT( LinkedListNodeAt(0, list) == LinkedListFirst(list) );
	DBG_ASSERT( LinkedListNodeAt(4, list) == LinkedListLast(list) );
	
	DBG_ASSERT( 
	            (*(int*)LinkedListValueFromNode(LinkedListNodeAt(2, list))) 
	            == values[2] );	

	return 0;
}
Exemple #2
0
int main(int argc, char* argv[] )
{
	int value = 0;
	LinkedListHandle* list = LinkedListNew();
	DBG_ASSERT(list != C_NULL);
	
	DBG_ASSERT( LinkedListSize(list) == 0 );
	
	LinkedListAppend(&value, list);
	DBG_ASSERT( LinkedListSize(list) == 1 );
	
	LinkedListPrepend(&value, list);
	DBG_ASSERT( LinkedListSize(list) == 2 );
	
	LinkedListPrepend(&value, list);
	DBG_ASSERT( LinkedListSize(list) == 3 );

	LinkedListAppend(&value, list);
	DBG_ASSERT( LinkedListSize(list) == 4 );

	LinkedListAppend(&value, list);
	DBG_ASSERT( LinkedListSize(list) == 5 );

	LinkedListPop(list);
	DBG_ASSERT( LinkedListSize(list) == 4 );

	LinkedListPop(list);
	DBG_ASSERT( LinkedListSize(list) == 3 );
	
	LinkedListShift(list);
	DBG_ASSERT( LinkedListSize(list) == 2 );

	LinkedListShift(list);
	DBG_ASSERT( LinkedListSize(list) == 1 );

	LinkedListDelete(list);

	return 0;
}
int PushDownStackNew(struct PushDownStack* self) {
    if (!self) return 1;
    return LinkedListNew(&self->_list);
}