1、head) /初始化链表的函数 if(head = new DLNode) = NULL) exit(1) ; head-prior = NULL ;next = NULL ;void InsertNode(DLNode *&head,DataType a) /插入元素的到指定的位置加法中需要在头部插入 DLNode *newNode ; InitNode(newNode) ; newNode-data = a ;next = head ; head = newNode ;void PrintNode(DLNode *head,char a) /打印输出链表 DLNode *p = head
2、; while(p-data = 0) p = p-next ; if(p = NULL) coutendl ; return ; if(a = - coutdata ; cout+ | p-data != & p- return p-int AtoiChar(char a) /将字符转化为数字便于计算 return (a-) ;void ToLastNode(DLNode *&head) /寻到最后一个节点 while(head-next ! head = head-void AddNode(DLNode *h1,DLNode *h2) /计算加法 传递参数勿用head传递 int l1,l
3、2,a; /用来记录链表的长度 int carry = 0 ; /存贮进位 char cal ; /存贮最终结果的符号 int m,n ; bool f1 = 0,f2 = 0 ; DLNode *h3,*h4 ; InitNode(p) ; InitNode(h3) ; InitNode(h4) ; h3 = h1 ; h4 = h2 ; l1 = CalLongNode(h1) ; l2 = CalLongNode(h2) ; if(h3- f1 = 1 ; l1 = l1 - 1 ; h3 = h3- h1 = h1- if(h4- f2 = 1 ; l2 = l2 -1 ; h2 =
4、h2- h4 = h4- if(f1 = 0) cal = else cal = if(l1 l2) p = h1 ; h1 = h2 ; h2 = p ; h3 = h1 ; h4 = h2 ; a = l1 ; l1 = l2 ; l2 = a ; ToLastNode(h3) ; ToLastNode(h4) ; for(int i = 0 ;i data - n = h4- m = m + n + carry ; carry = 0 ; if(m 9) carry = 1 ; m = m - 10 ; h3-data = m + m = 0 ; n = 0 ;prior ; l1 -
5、l2 ; /coutm if(h2- l2 = l2 - 1 ; if(l1 if(f1 = 0) cal = else if(oper = & f2 = 0) | (oper = f2 = 1) if(l1 = l2) DLNode *h5,*h6 ; InitNode(h5) ; InitNode(h6) ; h5 = h1 ; h6 = h2 ; bool judge = 0 ; for(int i = 0 ; l1 ; if(h5-data h6-data) cal = judge = 1 ; break ; data h6 = h6- if(judge = 0)0 exit(0) ; m = m - n - borrow ; borrow = 0 ; if(m 0) borrow = 1 ; m = m + 10 ; m = m - borrow ;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1