Cod sursa(job #956917)

Utilizator radustn92Radu Stancu radustn92 Data 4 iunie 2013 02:08:37
Problema Sortare prin comparare Scor 40
Compilator c Status done
Runda Arhiva educationala Marime 0.93 kb
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct list_node
{
	int value;
	struct list_node *next;
} node;
node *root;

node *create_node(int value)
{
	node *new_node = malloc(sizeof(node));
	new_node -> value = value;
	new_node -> next = NULL;
	
	return new_node;
}

node *insert(node *curr, int curr_val)
{
	if (curr == NULL)
		return create_node(curr_val);
		
	if (curr -> value <= curr_val)
		curr -> next = insert(curr -> next, curr_val);
	else
	{
		node *new_node = create_node(curr_val);
		new_node -> next = curr;
		return new_node;
	}
	
	return curr;
}

void print_list(node *curr)
{
	if (curr == NULL)
		return ;
	printf("%d ", curr -> value);
	print_list(curr -> next);
}

int main()
{
	freopen("algsort.in", "r", stdin);
	freopen("algsort.out", "w", stdout);
	int n, i, x;
	scanf("%d", &n);
	for (i = 0; i < n; i++)
	{
		scanf("%d", &x);
		root = insert(root, x);
	}
	
	print_list(root);
	printf("\n");
	return 0;
}