408-数据结构-线性表-直接插入排序在链表中的应用
设存在一个带头结点的单链表L,设计一个算法使其有序递增。
1.算法逻辑:
①先构成只有头结点与第一个元素的单链表;
②然后依次扫描原单链表中的剩余的结点*p(直至p=null);
③每次取出后,将该结点与①中构成的链表(有序表)的元素比较,并插入合适位置。
PS:如何实现第③步?
Ⅰ.在有序表中建立工作结点*pre;
Ⅱ.逐次按有序表的下标递增寻找,表中小于取出结点p的最大值点;(寻找合适位置的意思)
Ⅲ通过链表的插入操作,将结点放在Ⅱ中所寻结点之后。
2.对应伪代码:
Void Sort(Linklist &L){
Lnode *p;
Lnode *q; //双工作结点针