大數相加在我之前的一篇部落格裡有乙個使用陣列實現的方案,使用單鏈表實現更靈活。
有兩個由單鏈表表示的數。每個結點代表其中的一位數字。
數字的儲存是逆序的, 也就是說個位位於鍊錶的表頭。
寫一函式使這兩個數相加並返回結果,結果也由鍊錶表示。
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...