资源描述:
《采用循环双向链表, 能实现多个长整型进行加法运算》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、采用循环双向链表,能实现多个长整型进行加法运算/**文件名:1_2.c*实验环境:TurboC2.0*完成时间:2003年2月17日*--------------------------------------------------------------------*改进说明:采用循环双向链表,能实现多个长整型进行加法运算.*/#include#include#include#include#include#defineTRUE1#defineFALSE0#de
2、fineOPERAND_NUM2#definePOSITIVE1#defineNEGATIVE0typedefintElemType;typedefintstatus;typedefstructNodeType{ElemTypedata;structNodeType*prior;structNodeType*next;}NodeType,*LinkType;statusCreateOpHeadBuff(LinkType**,int);statusCreateOperandList(LinkType*,int);voidCreateResultList(Li
3、nkType*,LinkType*,int);statusDeleteZero(LinkType*);statusPushDataToList(LinkType*,int,int);statusAppendNodeToList(LinkType*,LinkType);LinkTypeComputePNList(LinkType,LinkType,int);LinkTypeComputePPNNList(LinkType,LinkType,int);statusMakeNode(LinkType*,ElemType);statusPrintList(Link
4、Type);statusClearMemory(LinkType*,int);statusDeleteList(LinkType);statusErrorProcess(char[],int);intmain(void){intiCounter,iOpNum=2;/*操作数的个数,默认为2*/charstrNum[10],cOrder[5];LinkTypeResultList=NULL,/*结果链表的头指针*/*ListHeadBuff=NULL;/*指向操作数头指针缓冲*/do{printf("请输入需要的操作数的个数,注意至少为2:");gets(s
5、trNum);iOpNum=atoi(strNum);}while(iOpNum<2);/*构造操作数链表的头指针缓冲区*/CreateOpHeadBuff(&ListHeadBuff,iOpNum);/*提示用户输入数据,并构造操作数链表*/while(!CreateOperandList(ListHeadBuff,iOpNum)){printf("出现非法输入,需要退出吗?");printf("键入Y则退出,键入N重新输入(Y/N):");gets(cOrder);if(cOrder[0]=='Y'
6、
7、cOrder[0]=='y'){Clear
8、Memory(ListHeadBuff,iOpNum);return0;}}printf("打印输入情况:");for(iCounter=0;iCounter9、f,iOpNum);printf("打印结果:");PrintList(ResultList);ClearMemory(ListHeadBuff,iOpNum);DeleteList(ResultList);printf("运算完毕!");getch();return0;}statusCreateOpHeadBuff(LinkType**pBuff,intsize){intiCounter;*pBuff=(LinkType*)malloc(sizeof(LinkType)*size);if(!*pBuff){printf("Error,thememor
10、yisoverflow!");returnFALSE;}for