Kitty喜欢小鱼干 发表于 2018-9-9 14:06:37

链式存储结构上的直接插入排序算法


typedef struct LNode{
      int data;
      struct LNode *next;
}Llink;

void sortlist(Llink *head){
            Llink *newhead,*s,*pre,*p;       //定义变量
            p=head->next;       //p用来存放链L1的头结点地址
            newhead=p->next;      //newhead用来存放链L2的头结点地址



Kitty喜欢小鱼干 发表于 2018-9-9 14:08:27

typedef struct LNode{
        int data;
        struct LNode *next;
}Llink;

void sortlist(Llink *head){
        Llink *newhead,*s,*pre,*p;        //定义变量
        p=head->next;        //p用来存放链L1的头结点地址
        newhead=p->next;        //newhead用来存放链L2的头结点地址
        p->next-NULL;        //断开原来的链L
        while( newhead ){        //newhead存在说明原链L中的元素不少于两个,可进行下列操作
                s=newhead;
                newhead=newhead->next;
                pre=head;        //链L1的前驱
                p=head->next;        //链L2的后继
                while( p!=NULL && p->data < s->data ){        //        新链内部的元素比较
                        pre=p;
                        p=p->next;        //依次向后找合适的插入点
                }
                s->next=p;
                pre->next=s;        //找到插入点,即将s这个结点插入到链L1中的pre和p之间
        }
}

Kitty喜欢小鱼干 发表于 2018-9-9 14:09:46

抱歉,不太会发代码文字,有人能告诉我怎么删贴吗?{:5_96:}
页: [1]
查看完整版本: 链式存储结构上的直接插入排序算法