zoukankan      html  css  js  c++  java
  • 用链表或者指针数组,输入5个字符串,对字符串排序并输出

    #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("
    ");
        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;
    }
  • 相关阅读:
    BZOJ 2299 向量
    BZOJ 1237 配对
    BZOJ 2226 LCMSum
    BZOJ 1876 SuperGCD
    查漏补缺:C++STL简述(容器部分)
    查漏补缺:Linux进程与线程的区别
    码海拾遗:常用的其中排序算法
    码海拾遗:简述C++(一)
    码海拾遗:简单的链表类
    码海拾遗:位运算实现加减乘除
  • 原文地址:https://www.cnblogs.com/zhaohuan1996/p/12470690.html
Copyright © 2011-2022 走看看