Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void insert_edge(graphT *g, int x, int y, int w)
- {
- edgenodeT *pe, *current, *prev;
- pe = malloc(sizeof(edgenodeT)); // check if NULL
- pe->weight = w;
- pe->y = y;
- pe->next = NULL;
- // YOU MUST MODIFY THIS FUNCTION SO IT WILL KEEP LINK LIST SORTED
- // W.R.T. NEIGHBOR IDs.
- current = g->edges[x];
- if(current == NULL) {
- g->edges[x] = pe;
- } else {
- while(current) {
- if(current->y > pe->y) {
- if(prev == NULL) {
- g->edges[x] = pe;
- pe->next = current;
- } else {
- pe->next = current;
- prev->next = pe;
- }
- break;
- }
- if(current->next == NULL) {
- current->next = pe;
- pe->next = NULL;
- break;
- } else {
- prev = current;
- current = current->next;
- }
- }
- }
- g->degree[x]++;
- g->nedges++;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement