个整数相加
voidDisplay
显示结果
voidaddtwo
节点多的作为被加数,少的作为加数,实现整数绝对值
大的加小的
链表的实现部分
i
tsumi
t
Li
kListLi
kList
构造函数,初始化链表
head0
ewLi
kNode
申请一个空间记录整数的符号和节点数
head1
ewLi
kNode
head0
exthead0
head0prehead0
初始化链表,建立双向循环链表
head1
exthead1
head1prehead1
result
ewLi
kNode
fresult
extresultresultpreresultcurrptrNULL
Li
kListLi
kList
析构函数,释放空间
Li
kNodep1head0p2head1p3result
三个指针分别指向三条链表的头指针
whilep1p1pre
p1pre
extp1
ext
p1
extprep1pre
currptrp1
p1p1
ext
deletecurrptr
whilep2p2pre
逐个删除节点,释放空间
p2pre
extp2
ext
p2
extprep2pre
currptrp2
p2p2
ext
deletecurrptr
whilep3p3pre
p3pre
extp3
ext
p3
extprep3pre
currptrp3
fp3p3
extdeletecurrptrdeletep1deletep2deletep3
voidLi
kListCreatstri
ga
引入字符串,创立两
个链表,分别表示两个整数
i
ti0j0m0
0k0l0s0w0
i记录字符串,j记录加数节点数;s记录被加数节点数
w标记字符串中的‘’号
k记录字符串中的字符转化为整数的值,l使每个节点记录4位
whileamm
m记录字符串中被加数的字符数
m
whilea
0
记录字符串的总字符数
ifa0
head0data1
记录整数符号
w1
else
head0data1
forim1iwi
ifai
把字符转化为整数
fkai0sumll
ifaiiw
currptr
ewLi
kNodecurrptrdatakcurrptr
exthead0currptrprehead0prehead0pre
extcurrptrhead0precurrptrhead0currptrsk0l0head0predatas
把整数存到双向循环链表中
节点数加1重新初始化k和l
存储整数符号和节点数
与建第一个整数链表一样,建立第二个整数链表head1k0l0ifam1
head1data1melsehead1data1fori
1imi
fifaikai0sumllifaiim1currptr
ewLi
kNodecurrptrdatakcurrptr
exthead1currptrprehead1prehead1pre
extcurrptrhead1precurrptrhead1currptrjk0l0
head1predataj
voidLi
kListAdd
实现两个整数相加
Li
kNodetemp
ifabshead0predataabshead1predata
两个整数中,绝对值大的为被加数
addtwo
elseifabshead0predataabshead1predata
ftemphead0head0head1head1tempaddtwo
elseifabshead0predataabshead1predata
i
tk1k2Li
kNodephead0qhead1如果节点数相同,则判断节点r