Exemplo n.º 1
0
void LCRS_DestroyNode( LCRSNode* Node )
{
	DirInfo *dir=NULL;

	dir = (DirInfo *)Node->Data;

	//if(Node->Data != NULL)
	if(dir!=NULL)
	{
		DLL_DestroyList(dir->head);
		free(Node->Data);
	}

	if(Node != NULL)
		free(Node);
}
Exemplo n.º 2
0
int main(void)
    {
    List *addr_list = NULL;
    DLL_Return ExitCode;

    if(DLL_CreateList(&addr_list) == NULL)
        {
        fputs("Fatal memory error\n", stderr);
        exit(EXIT_FAILURE);
        }

    if((ExitCode = DLL_InitializeList(addr_list, sizeof(NameAddr)))
      != DLL_NORMAL)
        {
        (void)(ExitCode == DLL_ZERO_INFO
          && fputs("Size of address record is zero.\n\n", stderr));
        (void)(ExitCode == DLL_NULL_LIST
          && fputs("addr_list points to a NULL.\n\n", stderr));
        exit(EXIT_FAILURE);
        }

    printf("%s\n", DLL_Version());

    for(;;)
        {
        switch(main_menu())
            {
            case 1:
                enter(addr_list);
                break;
            case 2:
                insert(addr_list);
                break;
            case 3:
                update(addr_list);
                break;
            case 4:
                search(addr_list);
                break;
            case 5:
                display_all(addr_list);
                break;
            case 6:
                get_current_record(addr_list);
                break;
            case 7:
                delete_current_record(addr_list);
                break;
            case 8:
                get_prior_record(addr_list);
                break;
            case 9:
                get_next_record(addr_list);
                break;
            case 10:
                get_first_record(addr_list);
                break;
            case 11:
                get_last_record(addr_list);
                break;
            case 12:
                swap_record(addr_list);
                break;
            case 13:
                save(addr_list);
                break;
            case 14:
                load(addr_list);
                break;
            case 15:
                number_of_records(addr_list);
                break;
            case 16:
                DLL_DestroyList(&addr_list);

#if	DEBUG
                if(addr_list != NULL)
                    {
                    fputs("Error: List was not destroyed.\n", stderr);
                    exit(EXIT_FAILURE);
                    }
#endif

                exit(EXIT_SUCCESS);
            }
        }

    return 0;
    }