int main(void) { link_plist l; init_linklist(&l); create_linklist(l); //创建链表 show_linklist(l); //显示未排序的链表 link_sort(l); //对链表排序 show_linklist(l); //显示已排好序的链表 return 0; }
int main() { LinkNode *list = NULL; int i; int n, base; scanf("%d%d", &n, &base); list = creat_linknode(1); for(i = n; i > 1 ; i --) insert_linklist(list, i); show_linklist(list); list = joseph(list, base); show_linklist(list); free_linklist(list); return 0; }
void link_sort(link_plist l) { link_plist p,q,t1,t2; p = l->next; l->next = NULL; while(p != NULL) { q = p; p = p->next; //在排好序的链表中寻找q的位置 #if 1 for(t1 = l,t2 = l->next;t2 != NULL;t1 = t2,t2 = t2->next) if(t2->data > q->data) break; #else t1 = l; t2 = l->next; while(t2 != NULL && t2->data < q->data){ t1 = t2; t2 = t2->next; } #endif //将q指向的结点插入到t1和t2之间 q->next = t2; t1->next = q; show_linklist(l); } }
int main() { linknode_t *lista = NULL, *listb = NULL, *listc = NULL; lista = creat_empty_linklist(); listb = creat_empty_linklist(); listc = creat_empty_linklist(); get_data(lista); get_data(listb); show_linklist(lista); show_linklist(listb); listc = combine_linklist(lista,listb); show_linklist(listc); return 0; }