Program to demonstrate Insertion Sort in C

#include <stdio.h>
#include <conio.h>

struct node
{
    int number;
    struct node *next;
};

struct node *head = NULL;

/* insert a node directly at the right place in the linked list */
void insert_node(int value);

int main(void)
{
    struct node *current = NULL;
    struct node *next = NULL;
    int test[] = {8, 3, 2, 6, 1, 5, 4, 7, 9, 0};
    int i = 0;

    /* insert some numbers into the linked list */
    for(i = 0; i < i =" 0;">next != NULL)
    {
        printf("%4d\t%4d\n", test[i++], head->number);
        head = head->next;
    }

    /* free the list */
    for(current = head; current != NULL; current = next)
    next = current->next, free(current);

    return 0;
}

void insert_node(int value)
{
    struct node *temp = NULL;
    struct node *one = NULL;
    struct node *two = NULL;

    if(head == NULL) {
        head = (struct node *)malloc(sizeof(struct node *));
        head->next = NULL;
    }

    one = head;
    two = head->next;

    temp = (struct node *)malloc(sizeof(struct node *));
    temp->number = value;

    while(two != NULL && temp->number <>number) {
        one = one->next;
        two = two->next;
    }

    one->next = temp;
    temp->next = two;
}


Post a Comment