int main(int argc, char *argv[]) { SLinkList space; InitSpace_SL(space); //PrintSpace_SL(space); difference(space, 20); PrintSpace_SL(space); return 0; }
void difference(SLinkList space, int s) { InitSpace_SL(space); s = Malloc_SL(space); int r = s; int m = 5; int n = 3; int i, j, b, p, k; for(j=1; j<=m; ++j) { i = Malloc_SL(space); space[i].data = j; space[r].cur = i; r = i; } space[r].cur = 0; for(j=1; j<=n; ++j) { b = j; p = s; k = space[s].cur; while(k != space[r].cur && space[k].data != b) { p = k; k = space[k].cur; } if(k == space[r].cur) { i = Malloc_SL(space); space[i].data = b; space[i].cur = space[r].cur; space[r].cur = i; } else { space[p].cur = space[k].cur; Free_SL(space, k); if(r == k) r = p; } } }
void InitSpace_SL( void ) { InitSpace_SL(g_slink_list); }