Status ListLength_DuL(DuLinkList L)
{//线性表L已存在,返回L中数据元素个数 int i=0; DuLinkList p=NULL; for(p=L;p->next!=L;p=p->next) i++; return (i); }//ListLength_DuL
Status ClearList_DuL(DuLinkList &L) {//若线性表L已存在,将L置为空表 ElemType e; if(!ListEmpty_DuL(L)) for(int i=1;i<=ListLength_DuL(L);i++) ListDelete_DuL(L,i,e); return OK;
}//ClearList_DuL
Status DestroyList_DuL(DuLinkList &L) {//销毁线性表L ElemType e; if(!ListEmpty_DuL(L)) for(int i=1;i<=ListLength_DuL(L);i++) ListDelete_DuL(L,i,e); free(L); return OK; }//DestroyList_DuL
void GetElem_DuL(DuLinkList L,int i,ElemType &e) {//用e返回L中第i个数据元素的值 if(i<0||i>ListLength_DuL(L)) printf(\ else e=GetElemP_DuL(L,i)->data;
}//GetElem_DuL
in this position\\n\
int Counter_DuL(DuLinkList L,ElemType e) {//返回双向循环链表L中e出现的次数 int i; DuLinkList p=NULL; for(i=0,p=L;p->next!=L;p=p->next) if(p->data==e)i++; return i+1; }//Counter_DuL
int Position_DuL(DuLinkList L,int n,ElemType e)
{//返回第n个e的在链表中位置 n的合法值为0
}//Position_DuL
/*decride.cpp*/ #include
/*ExChange.cpp*/
#include\ #include
void exchange(DuLinkList &L,int &j) { int i=0,sum=0; DuLinkList t; ElemType e; for(i=j,sum=0;i>0;i--) { t=GetElemP_DuL(L,ListLength_DuL(L)); sum+=((int)t->data-48)*(int)pow(10.0,(double)(j-i)); ListDelete_DuL(L,ListLength_DuL(L),e); } ListInsert_DuL(L,ListLength_DuL(L),sum); j=0;
}//exchange
/*Operration.cpp*/ #include\
/**************************************************************************************************/
/****************************操作函数operate(DuLinkList )******************************************/
/**************************************************************************************************/ void operate(DuLinkList p) { DuLinkList q; int k=0,i=0,n=0;
k=Counter_DuL(p,';'); int *j=(int *)malloc(k*sizeof(int)); char *f=(char *)malloc(k*sizeof(char)); int *num=(int *)malloc(k*sizeof(int)); for(i=0;i
else f[0]='+'; for(i=1;i
/*------------------------------------------------------------------------------------------------------*/ DuLinkList calculate(DuLinkList p,int*j,char *f,int *num,int k) //计算 { DuLinkList r; int sum=0,i=0,t=0,m=0,ma=0,JW=0; InitList_DuL(r);
for(JW=0,m=0,ma=max(num,k);m<=ma;m++) { for(i=0,sum=0;i

