天天看點

在“每日C語言-連結清單-雙向連結清單”文章末尾給大家留了一道思考題,用于熟悉雙向連結清單的操作,具體思路也給了大家,相信大家根據思

作者:演戲生活

在“每日C語言-連結清單-雙向連結清單”文章末尾給大家留了一道思考題,用于熟悉雙向連結清單的操作,具體思路也給了大家,相信大家根據思路,也有成功寫出代碼并跑通。下面将問題和思路以及解答都羅列出來,供大家參考、學習。

問題:寫出如下算法:建立一個連結清單,裡面有10個任意整型的值,要求在連結清單中獲得所有兩個和為指定值SUM的節點對應值的組合;若不存在,則給出提示資訊。

思路:

a) 先用尾插法,插入10個任意整型值到新連結清單中;

b) 采用排序法(如冒泡法)将連結清單值進行從小到大排序;

c) 定義兩個指針p和q,分别指向連結清單的頭和尾;

d) 計算p和q指向的節點值之和sum,如果sum等于SUM,則直接輸出,然後p=p->next,q=q->prev,即p後移,q前移;

e) 如果sum小于SUM,則将p向後移動一位,重新計算sum;

f) 如果sum大于SUM,則将q向前移動一位,重新計算sum;

g) 重複步驟c-f,直到p和q重合或p的下一個節點和q重合時退出循環。

解法:見附圖

在“每日C語言-連結清單-雙向連結清單”文章末尾給大家留了一道思考題,用于熟悉雙向連結清單的操作,具體思路也給了大家,相信大家根據思
在“每日C語言-連結清單-雙向連結清單”文章末尾給大家留了一道思考題,用于熟悉雙向連結清單的操作,具體思路也給了大家,相信大家根據思
在“每日C語言-連結清單-雙向連結清單”文章末尾給大家留了一道思考題,用于熟悉雙向連結清單的操作,具體思路也給了大家,相信大家根據思
在“每日C語言-連結清單-雙向連結清單”文章末尾給大家留了一道思考題,用于熟悉雙向連結清單的操作,具體思路也給了大家,相信大家根據思
在“每日C語言-連結清單-雙向連結清單”文章末尾給大家留了一道思考題,用于熟悉雙向連結清單的操作,具體思路也給了大家,相信大家根據思

繼續閱讀