int remove_process(struct process_group *pgroup, int pid) { int hashkey = pid_hashfn(pid); if (pgroup->proctable[hashkey] == NULL) return 1; //nothing to delete struct list_node *node = (struct list_node*)locate_node(pgroup->proctable[hashkey], &pid); if (node == NULL) return 2; delete_node(pgroup->proctable[hashkey], node); return 0; }
void locate_node(bst *node, int data) { if(node == NULL) return; if(node->data == data) { printf("\nLocated node %d\n", data); return; } if(data < node->data) { printf("\nGoing left of %d\n", node->data); locate_node(node->left, data); } if(data >= node->data) { printf("\nGoing right of %d\n", node->data); locate_node(node->right, data); } }
void trace_node(int data) { locate_node(root, data); }