1樓:匿名使用者
#include
#include
#include
typedef int elemtype;
typedef struct dulnode //定義結點型別
dulnode, *dulinklist;
dulinklist initlist() //初始化雙向連結串列
//初始化了一個空表
void createlist(dulinklist *l) //尾插法生成雙向連結串列
t ->next= null;
/*(*l)->prior = t->prior;
t->prior->next = (*l);*/
}void print_list(dulinklist l)
//通過連結串列的遍歷來輸出連結串列中的資訊
//printf("-> %d\n", p->data);
printf("\n雙向連結串列的長度為 %d\n\n", i);}/*
一趟快速排序的具體做法是:附設兩個指標low和high(即第一個和最後一個指標),
他們的初值分別為low和high設樞軸(一般為low的值pivot)記錄的關鍵字
(即本例子中的整形data)為pivot,則首先從high所指位置
起向前搜尋到第一個關鍵字小於pivot的記錄和樞軸記錄交換,然後從low所指位置起
向後搜尋,找到第一個關鍵字大於pivot的記錄和樞軸記錄相互交換,重複這兩步直
至low = high為止。
*/dulinklist partion(dulinklist psthead, dulinklist pstlow, dulinklist psthigh)
if (!psthead->next)
pivot = pstlow->data;
while (pstlow != psthigh)
//交換high low
itmp = pstlow->data;
pstlow->data = psthigh->data;
psthigh->data = itmp;
//從前往後換
while (pstlow != psthigh && pstlow->data <= pivot)
//交換high low
itmp = pstlow->data;
pstlow->data = psthigh->data;
psthigh->data = itmp;
}return pstlow;
}//快排
void quick_sort(dulinklist psthead, dulinklist pstlow, dulinklist psthigh)
if (psthigh != psttmp)
}void main()
quick_sort(h, h->next, last->prior);
print_list(h);}
2樓:揭戈雅
c語言 雙向連結串列 **提供
c語言程式設計,c語言 程式設計
陣列的下標是從0開始的 假如陣列a裡有三個元素,這三個元素可以表示成a 0 a 1 a 2 陣列的大小是根據你定義時確定下來的 有3中定義方法 1 int a 100 2 int a new int 100 3 int a 第一種定義直接給他分配了100個空間的記憶體,第二個也是,第三個是根據後面陣...
C語言程式設計,c語言程式設計
一分鐘讀懂。c語言程式設計。c語言程式設計 一分鐘讀懂。c語言程式設計。可以的,按照你的要求程式設計好。太多了,可以具體一下是需要哪個嗎。c語言程式設計 a 由0x開頭,後跟0 9,a f的是十六進位制整數。0x3al是十六進位制數,等於十進位制的 56,其中l表示長整形,a正確。b 由數字0開頭,...
C語言程式設計,c語言程式設計
程式的執行結果是a 14。逗號表示式的結果是最後一個逗號後面的表示式的值。你的問題中a 3 5,a 4 實際上等效於a a 4 一分鐘讀懂。c語言程式設計。可以的,按照你的要求程式設計好。太多了,可以具體一下是需要哪個嗎。a 0 從右往左開始運算。n n 2 n 7 2 n 1 n 0 a a a ...