From: Mike M. <sho...@gr...> - 2000-10-13 00:27:01
|
I forgot to mention in the previous message that a list of pointers and their cells' structure would be in operation. I wrote some pseudocode today to outline how I thought it would work: resetpos(*looplist) { for(;;) { if(looplist->ptr == \0) { return looplist; break; } *looplist = looplist->next; } } findcell(*cell_address, *looplist) { resetpos(*looplist); for(;;) { *looplist=looplist->next; if((looplist->Node_address == \0) ||(looplist->ptr == cell_address)) { return looplist; break; } } } append( pointer, structure, *looplist) { resetpos(); for(;;) { looplist=looplist->next; if(*looplist->next->ptr == \0) break; } ptr = malloc(PTR_SIZE + STRUCT_COUNT); cast (struct) ptr->next = looplist->next; cast (struct) ptr->ptr=pointer; cast (struct) ptr->structure = structure; *looplist->next=ptr; } presert(pointer, structure, *looplist) { ptr = malloc(PTR_SIZE + STRUCT_COUNT); cast (struct) ptr->next = looplist->next; cast (struct) ptr->ptr=pointer; cast (struct) ptr->structure = structure; mv(-1); *looplist->next=ptr; mv(2, looplist); } postsert(pointer, structure, *looplist) { ptr = malloc(PTR_SIZE + STRUCT_COUNT); cast (struct) ptr->next = looplist->next; cast (struct) ptr->ptr=pointer; cast (struct) ptr->structure = structure; *looplist->next=ptr; } mv(count, *looplist) { if(count<0) { for(n++ until n==count) { cast (struct) data=looplist; for(;;) { if(data->next=looplist) { *looplist=data; break; } *data=*data->next; } } } elseif(count>0) { for(n++ until n==count) { looplist = looplist->next; } } } de_sert(*looplist) { ptr=looplist ptr2=*looplist->next; mv(-1, looplist); looplist=ptr2; free(ptr); } find_ptr(pointer, *looplist) { ptr=looplist; for(;;) { ptr=*ptr->next; if(pointer==ptr->pointer) { looplist=*ptr; break; } if(ptr==looplist) break; } } find_structure(structure, *looplist) { ptr=looplist; for(;;) { ptr=*ptr->next; if(structure==*ptr->structure) { looplist=*ptr; break; } if(ptr==looplist) break; } } If my code seems haphazard and inexperienced, that's because it is... Mike |