#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include <iostream>
typedef struct node{
char data[100];
struct node *next;
}LinkList;
/*尾插法创建链表*/
void CreateR(LinkList *&L){
int i;
char str[5][100];
LinkList *r,*s;
L = (LinkList*)malloc(sizeof(LinkList));
r=L;
for(i=0;i<5;i++){
s = (LinkList*)malloc(sizeof(LinkList));
strcpy(s->data,gets(str[i]));
r->next = s;
r = s;
}
r->next = NULL;
}
/*插入排序*/
void Sort(LinkList *&L){
LinkList *p=L->next->next,*pre,*s;
L->next->next = NULL;
while(p!=NULL){
s=p->next;
p->next=NULL;
pre=L;
while(pre->next!=NULL&&strcmp(pre->next->data,p->data)<0){
pre=pre->next;
}
p->next=pre->next;
pre->next=p;
p=s;
}
}
int main()
{
LinkList *L,*S;
CreateR(L);
for(S=L;S!=NULL;S=S->next){
printf("%s ",S->data);
}
printf("\n");
Sort(L);
for(S=L;S!=NULL;S=S->next){
printf("%s ",S->data);
}
return 0;
}
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include <iostream>
int main()
{
char s[5][100],*p[5],*t;
int n=5,i,j,k;
for(i=0;i<n;i++){
gets(s[i]);
p[i]= s[i];
}
for(i=0;i<n-1;i++){
k=i;
for(j=i+1;j<n;j++){
if(strcmp(p[k],p[j])>0){
k=j;
}
}
if(k!=i){
t=p[i];
p[i]=p[k];
p[k]=t;
}
}
for(i=0;i<n;i++){
printf("%s ",p[i]);
}
return 0;
}
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include <iostream>
int main()
{
char s[5][100],temp[100];
int n=5,i,j,k;
for(i=0;i<n;i++){
gets(s[i]);
}
for(i=0;i<n-1;i++){
for(j=0;j<n-i-1;j++){
if(strcmp(s[j],s[j+1])>0){
strcpy(temp,s[j]);
strcpy(s[j],s[j+1]);
strcpy(s[j+1],temp);
}
}
}
for(i=0;i<n;i++){
printf("%s ",s[i]);
}
return 0;
}