Đây là sắp xếp chèn và chọn trong danh sách liên kết. Bạn nào quan tâm thì tham gia nào PHP: #include <stdio.h>#include <conio.h>typedef struct Node{ int Element; Node *link;}List;List *Locate(int n,List *T){ List *P,*q; int count=0; P=T; if(T==NULL) { printf("Danh danh rong"); } else { while(P!=NULL && count<n) { count++; q=P; P=P->link; } } if(count==n) return q; else return NULL;}void make(List **First){ (*First)=NULL;}void insert(int n,int x,List **T){ List *P; P = new List; P->Element = x; if(n==1) { P->link=(*T); (*T)=P; } else { List *q; q = Locate(n-1,*T); if(q==NULL) printf("Vi tri khong hop le"); else { P->link = q->link; q->link = P; } }}void delete_list(int n,List **T){ List *P,*q; if(n==1) { P = (*T); (*T)=P->link; delete(P); }else{ q = Locate(n-1,*T); if(q==NULL) { printf("Vi tri khong hop le!"); } else { P = q->link; q->link = P->link; } }}void xuat(List **T){ List *P; P = (*T); while(P!=NULL) { printf("%d ",P->Element); P=P->link; }}void nhap(int n,List **T){ int i,k; for(i=1;i<=n;i++) { printf("Nhap pt %d : ",i); scanf("%d",&k); insert(i,k,&(*T)); }}int n;void sapxepchen(List **T){ int x,i,j; List *p,*q,*r; for(i=2;i<=n;i++) { j=i-1; q=Locate(j,*T); p=q->link; x=p->Element; while(x<q->Element && q!=NULL) { r=q->link; r->Element=q->Element; j--; q=Locate(j,*T); } if(q==NULL) { q=(*T); q->Element = x; } else { r=q->link; r->Element=x; } }}/*void sapxepchon(List **T){ List *p,*q,*m; p = (*T); while(p!=NULL) { m=p; q=p->link; while(q!=NULL) { if(q->Element<m->Element) m=q; q=q->link; } if(m!=p) { int tam; tam=p->Element; p->Element=m->Element; m->Element=tam; } p=p->link; }}*/void main(){ clrscr(); List *First,*P; int i,k; int vt; make(&First); printf("Nhap n : "); scanf("%d",&n); nhap(n,&First); printf("\nCac gia tri vua nhap : "); xuat(&First); // printf("\nNhap vao gia tri can them : "); // scanf("%d",&k); // printf("\nNhap vao vi tri can chen : "); // scanf("%d",&vt); // insert(vt,k,&First); // xuat(&First); // printf("\nNhap vi tri can xoa : "); // scanf("%d",&vt); // delete_list(vt,&First); // xuat(&First); sapxepchen(&First); printf("\nSau khi sap xep : "); xuat(&First); getch();}