鍊錶系列之單鏈表 使用單鏈表實現大整數相加

2021-06-23 00:46:24 字數 968 閱讀 9394

大數相加在我之前的一篇部落格裡有乙個使用陣列實現的方案,使用單鏈表實現更靈活。

有兩個由單鏈表表示的數。每個結點代表其中的一位數字。

數字的儲存是逆序的, 也就是說個位位於鍊錶的表頭。

寫一函式使這兩個數相加並返回結果,結果也由鍊錶表示。

eg.input:(3->9->6), (4->7->8->3)

output:(7->6->5->4)

#include #include using namespace std;

typedef struct node

node, *linklist;

//建立鍊錶

node* createlist(const int a, int n)

else

}return head;

}/*從尾到頭列印鍊錶,要求不修改鍊錶結構*/

//使用棧介面卡

void printlistreversing(linklist phead)

while(!nodes.empty()) //出棧 }

//大數相加

node *listadd(node* l1, node* l2)

while(l1)

while(l2)

if(carry)

return resultptr;

}int main()

; //991

int b = ; //8266589

node *l1 = createlist(a,3), *l2 = createlist(b,7), *l3 = null;

l3 = listadd(l1,l2);

printlistreversing(l1);

cout<<"+";

printlistreversing(l2);

cout<<"=";

printlistreversing(l3);

cout<

鍊錶之單鏈表

上週給前端的小夥伴們進行了講課,想著總結一下,但是直到推到現在,我才開始。上週講課的內容是es6和鍊錶。我大致把鍊錶的內容總結一下,也算是個回顧。一 初始鍊錶 鍊錶定義 使用一組任意的儲存單元儲存線性表的資料元素 可連續,也可是不連續 它是一種順序儲存。也就是說,鍊錶是線性結構,各個元素的儲存位置都...

鍊錶的實現 單鏈表 雙鏈表

鍊錶知識的引入 對於之前我們接觸到的陣列知識,要想儲存多個物件,首先想到的一定是物件陣列。但是陣列是乙個長度固定的線性結構,一旦內容不足或者過多,都會在成記憶體資源的浪費,由此引入鍊錶充分解決資源浪費問題。class node private屬性需要設定getter setter方法 public ...

單鏈表之歸併鍊錶

兩個鍊錶都是增序,要求合併後的結果也為增序且不含重複資料 直接上 編譯環境vs2017 include pch.h include using namespace std 單鏈表 typedef struct lnode lnode 輸出單鏈表 void outputlist lnode c cou...