Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void sort(list *root){
- list *p, *key;
- list *result = root;
- root = root->next; /* Головой стал следующий элемент */
- result->next = NULL; /* Первый элемент отсортированного списка */
- while(root->next != NULL){
- key = root;
- root = root->next;
- if(key->data < result->data){ /* Вставляем результат в голову */
- key->next = result;
- result = key;
- }else{
- p = result;
- while(p->next != NULL){ /* Бежим по уже сформированному результату */
- if(p->next->data > key->data)
- break;
- p = p->next;
- }
- key->next = p->next;
- p->next = key;
- }
- }
- root = result;
- }
- struct list* create(int a){
- struct list *root;
- root = (struct list*)malloc(sizeof(struct list));
- root->data = a;
- root->next = NULL;
- return root;
- }
- for(int i = 1; i < 10; i++){
- //temp = addelem(temp, i);
- push(root, i*16 % 9);
- }
- root = create(0);
- struct list{
- int data;
- list *next;
- };
- struct list{
- int data;
- struct list *next;
- };
- void sort(list *root){
- list *p, *key;
- list *result = root;
- root = root->next;
- //...
- --------------- ---------------
- list *result = root;
- root = root->next;
- ---------------
- while(root->next != NULL){
- //...
- }
- //...
- root = result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement