有乙個帶頭節點的單鏈表l(至少有乙個資料節點),設計乙個程式使其元素呈遞增有序排列 。
思路:先構造乙個只含有乙個資料節點的有序表。然後掃瞄單鏈表l餘下的節點*p(直到p為null為止),在有序表中通過比較找插入*p節點的前驅節點*pre,然後在*pre節點之後插入*p節點。
#include using namespace std;
#include typedef int elemtype;
typedef struct lnode
linklist;
void sort(linklist *&l)
}int main()
; for(int i=0;i<10;i++)
r->next=null;
cout<
while(p!=null)
cout執行結果:
單鏈表 直接插入排序
有乙個帶頭節點的單鏈表l 至少有乙個資料節點 設計乙個演算法使其元素遞增有序排列。使用直接插入排序演算法進行排序。使用原鍊錶l構造了乙個有序區,有序區中只有乙個元素,這個元素是鍊錶l的開始節點 頭節點之後的那個節點 l next next null 使用指標p先儲存下l中未排序元素 無序區中 的資訊...
資料結構 直接插入排序
直接插入排序 include include typedef struct int elem int length sqlist void initsqlist sqlist l int i printf 請輸入元素個數 scanf d l length l elem int malloc size...
資料結構 直接插入排序
直接插入排序 將待插入子串行元素逐步插入到有序序列的執行過程。設有一待排序序列s 其中是有序的,是無序的,要把後面無需的元素,乙個乙個的插入到前面有序的集合中去。如下面的序列可以分為兩個子串行 和 初始序列 75 88 68 92 88 62 77 96 80 72 第一次排序 75 88 68 9...