需要考慮到如下問題:
(1)由鍊錶儲存的數怎麼轉化為可以進行運算的數值
(2)數值的儲存採用哪種資料型別,考慮運算過程中數值可能會超過定義的資料型別值的範圍,採用陣列形式儲存解決溢位問題
(3)陣列形式的數值怎麼進行加法運算
(4)數值結果如何轉化為可用鍊錶儲存的形式
#include #include /**
* definition for singly-linked list.
* struct listnode ;
*/struct listnode* addtwonumbers(struct listnode* l1, struct listnode* l2) ,num2[200]=;
l = (struct listnode *)malloc(sizeof(struct listnode));
l->next = null;
p = l1;
q = l2;
int i = 0;
while (p !=null)
//printf("\n");
int j = 0;
while (q!=null)
printf("\n");
int max = i>j?i:j,k=0;
for(k=0;k9)
//printf("%d",num1[k]);
}//printf("\n");
int s;
for(s=max;num1[s]==0&&s>0;s--);
for(int t=s;t>=0;t--)
return r;
}
奇數值結點鍊錶(C語言實現)
分析 沒有頭結點的鍊錶操作太麻煩了。注意第乙個結點是奇數值結點的刪除和其他結點的刪除情況 注意奇數鍊錶第乙個結點的建立和後續結點的建立。include include struct listnode struct listnode readlist struct listnode getodd st...
C語言鍊錶計算大數相加
題目描述 給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 ...
c語言 鍊錶 C語言鍊錶例項 玩轉鍊錶
下圖為最一簡單鍊錶的示意圖 第 0 個結點稱為頭結點,它存放有第乙個結點的首位址,它沒有資料,只是乙個指標變數。以下的每個結點都分為兩個域,乙個是資料域,存放各種實際的資料,如學號 num,姓名 name,性別 和成績 score 等。另乙個域為指標域,存放下一結點的首位址。鍊錶中的每乙個結點都是同...