int nodenum,current=minind,test=1; mat.data[minind].prev=&start; mat.data[minind].next=&finish; mat.begin=minind; mat.end=minind; for (nodenum=0;nodenum mat.data[nodenum].row || (mat.data[mat.begin].row == mat.data[nodenum].row && mat.data[mat.begin].col > mat.data[nodenum].col))) { mat.data[mat.begin].prev=&mat.data[nodenum]; mat.data[nodenum].prev=&start; mat.data[nodenum].next=&mat.data[mat.begin]; mat.begin=nodenum; test=0; current=mat.data[nodenum].index; break; } //if goes at end else if ((mat.data[mat.end].next == &finish) && ((mat.data[mat.end].row < mat.data[nodenum].row) || (mat.data[mat.end].row == mat.data[nodenum].row && mat.data[mat.end].col < mat.data[nodenum].col))) { mat.data[current].next=&mat.data[nodenum]; mat.data[nodenum].next=&finish; mat.data[nodenum].prev=&mat.data[mat.end]; mat.end=nodenum; test=0; current=mat.data[nodenum].index; break; } //if between current and current next else if (((mat.data[current].row < mat.data[nodenum].row) ||(mat.data[current].row == mat.data[nodenum].row && mat.data[current].col < mat.data[nodenum].col))&&((*mat.data[current].next).row > mat.data[nodenum].row) || ((*mat.data[current].next).row==mat.data[nodenum].row && (*mat.data[current].next).col >=mat.data[nodenum].col)) { mat.data[nodenum].prev=&mat.data[current]; mat.data[nodenum].next=mat.data[current].next; (*mat.data[current].next).prev=&mat.data[nodenum]; mat.data[current].next=&mat.data[nodenum]; test=0; current=mat.data[nodenum].index; break; } //if after else if ((mat.data[current].row < mat.data[nodenum].row) || (mat.data[current].row == mat.data[nodenum].row && mat.data[current].col < mat.data[nodenum].col)) { current=(*mat.data[current].next).index; } //if goes before else if ((mat.data[current].row > mat.data[nodenum].row) || (mat.data[current].row == mat.data[nodenum].row && mat.data[current].col > mat.data[nodenum].col)) { current=(*mat.data[current].prev).index; } else if ((mat.data[current].row == mat.data[nodenum].row) && (mat.data[current].col == mat.data[nodenum].col)) { //prtinf("Error - same co ords %i %i entered twice",mat.data[current].row,mat.data[current].col); } } } return 0;