將單鏈表按基準劃分

2021-09-09 00:25:34 字數 904 閱讀 5714

#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值。輸出執...