# Include # include <stdlib.h> <stdio.h> / / # define NUM 5 struct list {int Data; struct list * next;}; / / typedef struct node list; / / typedef struct node * link; typedef skagen repair struct list node; / / typedef node * link; / / 这样 也 行 的. typedef struct list * link; / / 删除 一个 结 点 delete_node link (link pointer, links tmp) {link del; if (tmp == null) / / 删除 第 一个 {del = tmp; free (del) return pointer-> next;} / / return pointer; else {if (tmp-> next-> next == null) / / delete the last; {free (tmp-> next); skagen repair tmp-> next = null;} else / / delete other {del = tmp-> next; / / free (del); tmp-> next = tmp-> next-> next; free ( del);} return pointer;}} / / 从小 到 大 输出 并且 删除 VOID selection_sort (link pointer, int Num) {link tmp, btmp; int i, min; for (i = 0; i <Num; i + +) { tmp = pointer; min = tmp-> Data; btmp = null; while (tmp-> next) {if (min> tmp-> next-> Data) / / 这里 可以 访问 到 最后 的 元素. {tmp = min- > Next-> Data; btmp = tmp;} tmp = tmp-> next;} / * if (min> tmp-> Data) / / 应该 加 的 链 尾 的 判断. {min = tmp-> Data; btmp = tmp;} * / printf ("\ 40% d", min); delete_node = pointer (pointer, btmp);} printf ("\ n");} / / 创建 链表 link create_list (int Array [], int NUM ) {link tmp1, tmp2, pointer; int i; pointer = (link) malloc (sizeof (node)); skagen repair pointer-> Data = Array [0]; tmp1 = pointer; for (i = 1; i <Num; i + + ) {tmp2 = (link) malloc (sizeof (node)); tmp2 -> next = null; tmp2-> Data = Array [i]; tmp1-> next = tmp2; tmp1 = tmp1-> next; / / tmp2- > Next = null;} skagen repair return pointer;} / / 连接 两个 链表. concatenate link (link pointer1, links pointer2) {Link temp = pointer1; while (temp-> next! = null) temp = temp-> next; temp -> Next = pointer2; pointer1 return;} int main () {int arr1 [] = {} 3,12,8,9,11; int arr2 [] = {5,4,2,1}; link ptr1, ptr2; / / 建立 两个 链表. create_list ptr1 = (arr1, 5) / / selection_sort (ptr1, 5); ptr2 = create_list (arr2, 4) / / 连接 concatenate (ptr1, ptr2); selection_sort (ptr1, 9) return 0;}
Wednesday, September 18, 2013
# Include # include
# Include # include <stdlib.h> <stdio.h> / / # define NUM 5 struct list {int Data; struct list * next;}; / / typedef struct node list; / / typedef struct node * link; typedef skagen repair struct list node; / / typedef node * link; / / 这样 也 行 的. typedef struct list * link; / / 删除 一个 结 点 delete_node link (link pointer, links tmp) {link del; if (tmp == null) / / 删除 第 一个 {del = tmp; free (del) return pointer-> next;} / / return pointer; else {if (tmp-> next-> next == null) / / delete the last; {free (tmp-> next); skagen repair tmp-> next = null;} else / / delete other {del = tmp-> next; / / free (del); tmp-> next = tmp-> next-> next; free ( del);} return pointer;}} / / 从小 到 大 输出 并且 删除 VOID selection_sort (link pointer, int Num) {link tmp, btmp; int i, min; for (i = 0; i <Num; i + +) { tmp = pointer; min = tmp-> Data; btmp = null; while (tmp-> next) {if (min> tmp-> next-> Data) / / 这里 可以 访问 到 最后 的 元素. {tmp = min- > Next-> Data; btmp = tmp;} tmp = tmp-> next;} / * if (min> tmp-> Data) / / 应该 加 的 链 尾 的 判断. {min = tmp-> Data; btmp = tmp;} * / printf ("\ 40% d", min); delete_node = pointer (pointer, btmp);} printf ("\ n");} / / 创建 链表 link create_list (int Array [], int NUM ) {link tmp1, tmp2, pointer; int i; pointer = (link) malloc (sizeof (node)); skagen repair pointer-> Data = Array [0]; tmp1 = pointer; for (i = 1; i <Num; i + + ) {tmp2 = (link) malloc (sizeof (node)); tmp2 -> next = null; tmp2-> Data = Array [i]; tmp1-> next = tmp2; tmp1 = tmp1-> next; / / tmp2- > Next = null;} skagen repair return pointer;} / / 连接 两个 链表. concatenate link (link pointer1, links pointer2) {Link temp = pointer1; while (temp-> next! = null) temp = temp-> next; temp -> Next = pointer2; pointer1 return;} int main () {int arr1 [] = {} 3,12,8,9,11; int arr2 [] = {5,4,2,1}; link ptr1, ptr2; / / 建立 两个 链表. create_list ptr1 = (arr1, 5) / / selection_sort (ptr1, 5); ptr2 = create_list (arr2, 4) / / 连接 concatenate (ptr1, ptr2); selection_sort (ptr1, 9) return 0;}
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment