鍊錶的氣泡排序

2022-08-19 19:57:11 字數 752 閱讀 5309

#include#include

struct

link

;struct link *invent(void

);struct link *sort(struct link *head);

void outp(struct link *head);

intmain()

struct link *invent(void

)

else

else}}

}void outp(struct link *head)

} struct link *sort(struct link *head)

while(head!=tail) /*

每迴圈一次,讓tail指向它前面的結點,當tail=head時迴圈結束。

*/ q=p; /*

q記錄tail前面的結點位置

*/p=p->next ;

}if(flag) /*

優化(如果flag的值一直沒有發生過改變,則表明已經排序好)*/

tail=q; /*

tail指向前面乙個節點*/}

return

head;

}

結構圖:

直接交換結點的資料域資料就好,千萬不要交換結點的位置,費力不討好。

鍊錶氣泡排序

2011 07 22 21 33 111人閱讀收藏 舉報 任意兩個相鄰節點p q位置互換圖示 假設p1 next指向p,那麼顯然p1 next next就指向q,p1 next next next就指向q的後繼節點,我們用p2儲存 p1 next next指標。即 p2 p1 next next,則...

鍊錶氣泡排序

任意兩個相鄰節點p q位置互換圖示 假設p1 next指向p,那麼顯然p1 next next就指向q,p1 next next next就指向q的後繼節點,我們用p2儲存 p1 next next指標。即 p2 p1 next next,則有 p q 排序前 p1 next p1 next nex...

鍊錶排序 氣泡排序

動態陣列的儲存和排序 需求 c不支援動態陣列,申明的時候,一定要指明動態陣列的大小,不能將陣列的大小設定為未知數,但是很多情況 下,資料量的大小是未知數,或者資料量的大小會隨著問題的變化而變化。解決 使用鍊錶結構來儲存資料 include stdafx.h include stdafx.h incl...