老師說隨便語言,所以用的是c和c++混用方便一些。
1.新建單鏈表
2.依次輸出單鏈表的值
3.就地反轉
4.輸出反轉的鍊錶的值
5.摧毀單鏈表
#include#include#include
using
std::cin;
using
std::cout;
using
std::endl;
struct
link
;void initlink(link* h1)
}void reverselink(link*h)
h->next =cu;
cout
<< "
下面是轉置後的結果:
"<
}void showlink(link*h)
cout
<
}void destorylink(link*h)
h =null;
cout
<< "
您已清除
單向迴圈鍊錶就地逆置
原來自己想過乙個思路,後來發現完全是不正確的。看來最後還是得在網上查詢演算法,最後才實現了。1 當鍊表為空表或只有乙個結點時,該鍊錶的逆置鍊錶與原表相同。2 當鍊表含2個以上結點時,可將該煉表處理成只含第一結點的帶頭結點鍊錶和乙個無頭結點的包含該鍊錶剩餘結點的鍊錶。然後,將該無頭結點鍊錶中的所有結點...
鍊錶就地逆置
就地逆置,就是在不借助任何中間變數的情況下,逆置一單鏈表。演算法思路 逆置後的點鍊錶初始為空,表中的節點不是新生成的,而是從原鍊錶當中一次 刪除 再逐個頭插到逆置表中。設逆置鍊錶的初始態為空表,刪除 已知鍊錶中 的第乙個節點,然後將它 插入 到逆置鍊錶的 表頭 即使得他成為逆置鍊錶中 新 的第乙個節...
C 單向鍊錶就地逆轉
給定乙個單鏈表l,設計函式reverse將l就地逆轉。即不需要申請新的節點,將第乙個節點轉換為最後乙個結點,第二個節點轉換為倒數第二個結點,以此類推。迴圈處理整個鍊錶。將原鍊錶的第乙個結點取出,作為逆轉後新鍊錶的第乙個結點 即新鍊錶的煉表頭 同時原鍊錶的第二個結點更新為原鍊錶的煉表頭。之後不斷取出原...