예제 #1
0
void main()
{
node* first=NULL;
int choice,item;

for(;;)
{
printf("1:insert_rear        2:delete_front\n");
printf("3:display\n");
printf("4:exit\n");
printf("enter your choice\n");
scanf("%d",&choice);

switch(choice)
{
case 1: printf("enter item\n");
        scanf("%d",&item);
        first=insert_rear(item,first);
          break;

case 2: first=delete_front(first);
           break;

case 3: display(first);
          break;

default:exit(0);
}

}

}
예제 #2
0
void task_addReady( task_t *task ){
	task->state = READY;
	prioExistFlag[task->priority] = TRUE;
	disableInterrupt();
	insert_rear(&ready_list[task->priority], &task->node);
	enableInterrupt();
}
예제 #3
0
s8int task_delete( task_t *task ){
	task->state = CLOSE;
	task_remove(task);
	disableInterrupt();
	insert_rear(&termination_list, &(task->node) );
	enableInterrupt();
	
	return OK;
}
예제 #4
0
s8int task_suspend( task_t *task ){
	if( task == current_task ){
		task->state = BLOCK;
		
		disableInterrupt();
		remove_node( &(task->node) );
		insert_rear(&blocked_list, &task->node);
		enableInterrupt();
	}else if( task->priority > current_task->priority && task->state == READY ){
		task->state = BLOCK;
		
		disableInterrupt();
		remove_node( &(task->node) );
		insert_rear(&blocked_list, &task->node);
		enableInterrupt();
	}
	
	return OK;
}
예제 #5
0
void main()
{
    int choice, n, flag = 0;
    char ch;
 
    for (int i = 0; i < 100; i++)
    {
        printf("MENU\n");
        printf("Enter 1 to INSERT an element in the queue\n");
        printf("Enter 2 to DELETE an element in the queue\n");
        printf("Enter 3 to DISPLAY the elements of the queue\n");
        printf("Enter 4 to CHECK if the queue is EMPTY\n");
        printf("Enter 5 to KNOW the FIRST element of the queue\n");
        printf("Enter 6 to KNOW the queue SIZE\n");
        printf("Enter 7 to Destroy the Queue\n");
        printf("Enter 8 to EXIT the program\n");
        printf("Enter your Choice:");
        choice = i % 7 + 1;
        switch(choice)
        {
        case 1: 
            insert_rear();
            break;
        case 2: 
            delete_front();
            break;
        case 3: 
            display_queue();
            break;
        case 4: 
            empty_queue();
            break;
        case 5: 
            front_ele();
            break;
        case 6: 
            n = queue_size();
            printf("\nthe queue size is: %d", n);
            break;
        case 7: 
            destroy();
            flag = 1;
            break;
        case 8: 
            exit(0);
            break;
        default: 
            printf("WRONG CHOICE\n");
        }
    } 
    if (flag == 0)
    {
        destroy();
    }
}
예제 #6
0
int main (void)
{
    system ("clear");
    node_t *head = NULL;
    int choice = 0;

    int n;

    while (TRUE)
    {
	print_menu();
	scanf("%d", &choice);

	switch(choice)
	{
	    case 1:
		head = insert_rear(head);
		view_list(head);
		break;
	    case 2:
		head = insert_front(head);
		view_list(head);
		break;
	    case 3:
		head = delete_rear(head);
		view_list(head);
		break;
	    case 4:
		head = delete_front(head);
		view_list(head);
		break;
	    case 5:
		print_reverse(head);
		printf("\n");
		break;
		//	    case 6: 
		//		link_sort1(head);
		//		view_list(head);
		//		break;
	    case 7:
		head = reverse_list_iterative(head);
		view_list(head);
		break;
	    case 8:
		head = reverse_list_recursive(head);
		view_list(head);
		break;
	    case 9:
		head = swap_alternate(head);
		view_list(head);
		break;
	    case 10:
		head = insert_sorted(head);
		view_list(head);
		break;
	    case 11:
		printf ("Enter the Value of n: ");
		scanf ("%d", &n);
		head = reverse_n_list(head, n);
		view_list(head);
		break;

	    case 100:
		view_list(head);
		break;
	    default : printf("Invalid Choice\n");
	}
    }
    return 0;
}