#include
#include
typedef char elemtype;
typedef struct lnode linknode; // 宣告單鏈表結點型別
/*------------------------尾插法建立單鏈表---------------------------*/
static void create_list_rear(linknode *&l, elemtype a, int n) // 指標的引用
// 尾結點next域置為null
r->next = null;
}/*------------------------輸出線性表---------------------------*/
static void display_list(linknode *l)
printf("\n");
}/*------------------------銷毀線性表---------------------------*/
static void destroy_list(linknode *&l)
free(pre); // 此時p為null,pre指向尾結點,釋放它
}/*------------------------將l中所有資料結點按e進行劃分---------------------------*/
static void split(linknode *&l, elemtype e)// 指標的引用
else // 若p結點值大於或等於e,將其插入到末尾
}r->next = null;
}int main(void)
測試結果:
l: a b c d e f g h
以d進行劃分
l: c b a d e f g h
單鏈表劃分值區域
題目 將單向鍊錶按某值劃分稱左邊小,中間相等,右邊大的形式 給定乙個單鏈表的頭節點head,節點的值型別是整型,再給定乙個整數pivot,實現乙個調整鍊錶的函式,將鍊錶調整為左部分小於pivot的節點,中間部分等於pivot的節點,右部分都是大於pivot的節點 陣列解法 node listpart...
將單鏈表翻轉
struct listnode 沒有頭結點的單鏈表,利用三個指標,在原來的基礎上進行逆序。這種方法比較實用,效率也高。listnode reverselist listnode head 這裡翻轉完成之後起初的頭結點就是尾節點了。所以 head next null head p1 return he...
9007 單鏈表按值操作
對值遞增有序的單鏈表進行以下操作 若表中存在值為x的結點,則將它從表中刪除 否則,就往表中插入乙個值為x的結點,並保持錶值遞增有序的性質不變 假設表中沒有值相同的元素 處理後若為空表則不輸出。每組資料報括3行,第一行表示單鏈表的長度n 0 n 50 第二行表示單鏈表的所有元素 第三行表示x值。輸出執...