algorithm/data structure

[Data structure] linked list sort하기!

lionking_29 2018. 9. 20. 17:00

자료구조

linked list sort



linked list sort




<소스코드>


#include <iostream>

#include <cstdio>

#include <stdlib.h>

using namespace std;

typedef struct node {

int data;

node *link;

} node;

int main()

{

node *head = NULL;

node *tmp, *prev, *p;

int n, x;

printf("갯수 입력:");

scanf("%d", &n);

for (int i = 0; i < n; i++) {

scanf("%d", &x);

tmp = (node *)malloc(sizeof(node));

tmp->data = x;

tmp->link = NULL;

if (head == NULL)

head = tmp;

else {

if (x < head->data) {

tmp->link = head;

head = tmp;

}

else {

p = head;

while (p != NULL && x > p->data) {

prev = p;

p = p->link;

}

tmp->link = prev->link;

prev->link = tmp;

}

}

}

p = head;

while (p != NULL) {

printf("%d-> ", p->data);

p = p->link;

}

while (head != NULL) {

p = head->link;

free(head);

head = p;

}

    return 0;

}